From cad4d266a363ecbf4abec4c5b09de4853cb5669e Mon Sep 17 00:00:00 2001
From: pblan <p.blaneck@gmail.com>
Date: Thu, 4 Nov 2021 13:37:28 +0000
Subject: [PATCH] added semester 3 classes

---
 LICENSE                   |   42 +-
 README.md                 |    2 +-
 algo/algo.bib             |   12 +-
 algo/algo.pdf             |  Bin 440365 -> 553236 bytes
 algo/algo.tex             |  460 ++--
 algo/baeume.tex           | 4585 +++++++++++++++++++------------------
 algo/btreevis.sty         |  816 +++----
 algo/datenstrukturen.tex  | 1605 ++++++-------
 algo/floyd.java           |   16 +-
 algo/formale_sprachen.tex | 1313 +++++++++++
 algo/graphen.tex          | 3165 +++++++++++++------------
 algo/grundbegriffe.tex    |  202 +-
 algo/insertionsort.java   |   18 +
 algo/selectionsort.java   |   11 +
 algo/simplesort.java      |    9 +
 algo/sortierverfahren.tex | 1454 ++++++++++++
 algo/warshall.java        |    7 +
 ana1/ana1.tex             | 3126 ++++++++++++-------------
 ana2/ana2.pdf             |  Bin 300023 -> 300006 bytes
 ana2/ana2.tex             | 3484 ++++++++++++++--------------
 itg/itg.tex               | 3088 ++++++++++++-------------
 la1/la1.tex               | 1338 +++++------
 la2/la2.pdf               |  Bin 301292 -> 301292 bytes
 la2/la2.tex               | 3148 ++++++++++++-------------
 or/or.bib                 |   34 +-
 or/or.pdf                 |  Bin 175578 -> 175142 bytes
 or/or.tex                 |  152 +-
 spicker.cls               |  452 ++--
 tgi/tgi.pdf               |  Bin 257132 -> 257136 bytes
 tgi/tgi.tex               | 1026 ++++-----
 30 files changed, 16224 insertions(+), 13341 deletions(-)
 create mode 100644 algo/formale_sprachen.tex
 create mode 100644 algo/insertionsort.java
 create mode 100644 algo/selectionsort.java
 create mode 100644 algo/simplesort.java
 create mode 100644 algo/sortierverfahren.tex
 create mode 100644 algo/warshall.java

diff --git a/LICENSE b/LICENSE
index e24214a..bd57688 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,21 +1,21 @@
-MIT License
-
-Copyright (c) 2021 Patrick Gustav Blaneck
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
+MIT License
+
+Copyright (c) 2021 Patrick Gustav Blaneck
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
index 1413059..ec1fe02 100644
--- a/README.md
+++ b/README.md
@@ -1 +1 @@
-# matse-spicker
+# matse-spicker
diff --git a/algo/algo.bib b/algo/algo.bib
index b05a176..fc5587f 100644
--- a/algo/algo.bib
+++ b/algo/algo.bib
@@ -1,7 +1,7 @@
-@misc{wiki:Landau-Symbole,
-  author       = {Wikipedia},
-  title        = {{Landau-Symbole} --- {W}ikipedia{,} The Free Encyclopedia},
-  year         = {2021},
-  howpublished = {\url{http://de.wikipedia.org/w/index.php?title=Landau-Symbole&oldid=212674123}},
-  note         = {[Online; accessed 05-June-2021]}
+@misc{wiki:Landau-Symbole,
+  author       = {Wikipedia},
+  title        = {{Landau-Symbole} --- {W}ikipedia{,} The Free Encyclopedia},
+  year         = {2021},
+  howpublished = {\url{http://de.wikipedia.org/w/index.php?title=Landau-Symbole&oldid=212674123}},
+  note         = {[Online; accessed 05-June-2021]}
 }
\ No newline at end of file
diff --git a/algo/algo.pdf b/algo/algo.pdf
index b7b3be364da8d0b3b6949573f07dd138eb1a1309..f23478ee370536307c4fffd15698e55bae050ef6 100644
GIT binary patch
delta 358596
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

delta 246084
zcmbR8NOA24sSU<#(+@VW2s2xnn@tvE(yV_Q;hlfmgJ<9K@D~<V88+|T^9^UEY=4n>
zQDX0s>KQkLqdOK!Oqx?xdvpK3DQ-o{H!H7{i7~!vHk{_>9Q4O7NX65n*Q2D+DQ<U?
zlEqZPgG_Z^QqGH+wr#ufuc**SW-iY;-p&;VVl>2h^ORQUUUPAs#qG1S&u#JxuCuGM
z;_4*odEUi@R@szK?mYjYzkXVC(Y#|Kz4^6*|80M5N#x}a7i4bjIvKU&QiQjhYEvTT
zHIq&Ln_t$R5z)GoRrdUI)VT+9g8trE(NegkwNFUTaI1~XpVOhPR{MH|(=>NQOqtrf
z(~19K)r_5Y4nOmnbu`Q{lzVeT#)d{sfvfxOr^oAR$Jg7-6t+n+FE(TrH=TWdhRWG6
zCUeK2PZ{q`=Kn~V=x@)mR;c~!WhL*!_HGiqZVl?!?sXItbTh<f=tyus`gbN>Z}lnm
zc%53Sc~3JX@BH#!z!u69os_w@tHG#qZSG&+$1Or?7g=xE?qt(8{d8IBubamAYy~%`
zV4oe0-Om(mADmYI>ub}5TWqIN)wOOEOsi~=X;}U7d*Pv#PV%u&KX1|!+kTZvuKD-R
zU6J9O>W4B^%0BrXUNisPLat)g9EJ>u?3)J)9xHoZ*m<7eeuGMd_MgJ*33GR|?lYO*
z|5i7t)9mb2FGYnml_z_358b+Md$U?utHY(p_DOxO_>%WU*LMBk53fIWspi)849oiE
zb~W!E@|w@RVT`rks}jp$%D9ec-X7i$i9VXY%*DJEw(ofTTwHZyqrcDWcnxb82X!Zh
zrtOQKhNqv`TGE~=JYTS;Nn;MfMp^dyXO$D&GWV|e79)I9@qxbh<C~=u5;sg)KYioF
zhSf(TKF+@UIdW6f1FfgOpGbZ%sNa@jd-Fr+CQH_;pf6vGjdC0&vjt~;I~dGt-zWL9
z)aFLp)_dI9D-D%*@teI@+V3i<bYJW0f}DAdH*I=18M$+mTkm8293cO`$8v$^k~itq
z7nA-y-RGsJnCopaueRT^*=1i&W`e2N1+O=g_pG&P`Yp1mI<&nr^v0~-ExNm<F7B?c
z+<8$%qwvh8_Vwb@24ADEcPCw)vg_xX`;M(vfu*HN%h}fmSFfEPakaB_>T`2z%UYES
zw+ni@owrPuof{^4FEXw+Uc~(A9*@tdR{rL@ix<8XoFcyAB74r)qpK9Mo9?Dw{_Vba
zzv<O8G7~EqXPUo%k~(|l`PY(nYtNWyy^Fba=2eEtt~uuBcYZ9Lqx&T9@Zqpiw>|`H
z6^m`#SUC09ql4n+d0~I#-B#oUS%0*jcYPV(^4u4fg^I$T&A*;8PvX#b``Vt#2F%N)
zrf^*4ZQDNAPI~Si_HAX~e7REdQi@B8QWJAQto)=bE(=hu7ul@E{f~>$a=PJ0M$ygo
zV*l1nZ<xv`%4}?CJ~@#^qyBAFbn$I7vAXN)A1Iq{PAXu3v3#p~=By<%S7!T{FY}bw
z;GVW~nMUjMsz>qnnFSuWF3Z??@myN@uL%=a80R$eKd*VtoGP-0S!B;##qzy7=I#CE
zxRGIVhmm8`>)Q>-1=Y1COmgM=_@GL(hU;X_K^6Y{DOHO<Yt0lE6sy{|Afjb`{baA_
zsi9ZCU#)38yz9cxKi^+}-)w%}m`5$3;kM+)o{BY1v(LWqW{}&%yGGhr<YL6f2Z|Z9
z1WViw#R!BK1~~MG@BaGMK3_=2@&6?r2gXhj3!Nt4&nF60CUj*^*qJVsc(S5FSt&`z
zK+Mq1)%ukEeHLRi%^SxbOwT{#quiaOXIY;wJyS$b(dk3ktGI6Syyc(Q-V3{y|K;D7
z&(Z18;%9_?9<|SMmw3lEQ~mS$?=P$m&Dfn#CVfUvS|G8gLS9>K<K7_8K9)%<I5d|$
zx$u^G?f<=^?{rzBYBo5kBzrP@DW{lK7$45Nl=kS|zqH54)+S!LeQ)c`bVfbzlyx$$
zO-9C3>(7eGu}c`ZK2S*Me*M(?W=`c=d*w5qws>v-DVf5#^kM()vt?_G@7jDVTBet?
zt>U$ve)Y}G>5O-Fyb0S~a5}c+^<En(<sRjAeGMn9zlul+9d=pO%9d=|*84hjW99Vo
z;wr}$`W5F+=UXiCx<6@yUjeu2-}f>FX){9nCsrqk2#eGw`rZ0?GRS(e=d_p4-W@L6
zeEZOxsr6g4JYIL|&*<!!DUqiZoo=;vXZCMC-rxw;!~0g3ZuzyV`^`7MoNV@oH@0ny
zzVaqZ?o0K;goB<g2ES(q{a<$Fzp9t$#x9AOX(892D=d8FC4S#y<y`6eyo<SRe2LhQ
zE^+nyuk4<z3A2+$_f4q}=X9yHIkb9pNlTdf%_$5^f_`Xby@;4%UcNFewJps3tkapz
z5pOrIIye9ERk;cEt>K0|<}<&|R|wN#3DNLrNe|OWQP~)9C0+9l^EH_l=lS18vHiJa
z$}h1k``tv3>?QY~+5WU&5E<cd#Nb$UUjMeb^CsPvE_!SJiP)U3P?@(dvi|l{fz$K!
z8-*wRUZomYe56@j=GoObCqBGBcfmblMnjNTotw<u{rl!=i%l!&?|+*3{#nMdvVuJm
z+COd=Fm&gba+QT&_#`u9%dv$m(Lc_8zODN~i`g*p%FkV)bARh(Cb%tW+?o9D(%ur5
z@OivHc$=7x*l%6ou)&PYUic9EUN;W&dZ$HCZ?B$P=hOT4_mNw2i=!=8Y2WITC|*;!
z=5tDAdK$wDPLGt?{4Q0;EjGOuGca6oZ_#(Xlh<GFn)$fj()r=G&<C!?pYt|n?=xB=
zc1)3ndyPhi`^$z2><t`tGyiheUtIm`qOY-uk-^+6^EIc|?f24fy=tWS%;t;l^QV5d
zWiqPj@0Uqig+1*^ns^}h<gQ&ioA<6e<u&{9agAq2U5T3O{=d?EB<96+S7lDNm_?sJ
zSFNqiq+4Ix&m}Cep38B|d{K(Zu1mjv7^rh?+b;QYvm<MJ=D!*5E-^2cmSlcc_v7Zj
zbqpt+jxWsD=RMDVa@`flH&<`&_}9UxYImmL{wuvkv%K~74RvqMMwx$<{M?~vCpXXH
zP!rFg;^>gOQ_kKMjj6bC|L6)y*=F?~KIf0yt74aIcZ<Di*E!v6&YtdFJMN~*23}F^
zSg3PVO{!O6Qy9aMj-b*L^=TTLzORe>C6NE~S;POmZ<Xh`a|Kmct(<pr-*$njmumi}
zV-uNQ{)nwfFHsN?ldP{gQGd~M+O)rC-WpD9?EhTwv2gb)<Lld6ntyJ}DxS@-#oPH9
z%b^F6D{ln;bzIt^zGTtK@|L5<L4qMVCj@S|`JCMzP{G+1C|ljc;y?4}jtM{0CukU%
z?b>ir`bdYwvXpX}_fc$38?)s&j;-6dd}5UHU$f^Y%9n_XcFvsGW#blRRPS}9uQk+x
zMVa%Xg-AR5to_MnJy@D2e$+Hk7C!Lh&&<O+-=}>3o;3UVQt=+QzZW;;%nMr1eP6v^
z#Xalbyq_C$-spa*FkQiO^Fn@Lvy0~HZobowT_Fc7mYA3Q`MFwgWyo*;K7O~bCE4*J
zR<U>WzwQ&UF%h}e;dy=9uGha){8%T{%cv$knjz=+MxxdCpu|LFCawf+eVv>4)XaCu
zJWUUHG~v^}&q2<vT0whDRBp{V^UbWsNwoE7e15_K>C?xRVyw-?+IGyIy;eA0>COx5
z)$88W`(B>+;&L9(l?|8rUs>KeGs%kk_k6)WH=gKiZ9Up`#diM2jwwpL=X*1<3jb|5
zEC02AT~@e_i0ON`vWI6@u6XjyF4DSF{fa|Pqs^kVN`K5#oI}Dh&2}+!vsOtt$j$gW
zomWlT@o+|l=-c(h7EhXLPL{k>4N*|?^I>hiarBC8kb?c)^~LeKOga~884CqmU<|tH
z^7D%|SJ;P3IhIolS0pWaeXJzk#7QjXte*SiMg_*mdI9zjhqS^sR~U0%XE9!j-}?K<
z6@ITX?OKIO_8N`8ZN`@m^#9wZYnS2~S!N$zck{W@WA^#qngbbT&XVWgvu3&!=^+|$
zLf7pM|0??zIi?#0d5XGDi!&H7J?efwgJt9UJ(kaAv%WYa^XdOZmIwWwmER3-njV^B
zz<KO@$vuC~CAaF2EIJtC^Ks>(^B00-%BQIxdaKeFz2sNh`EDjAJ-+=?{4xRdOMmW-
ztDOFAW6{;ei_cvTj%fU5X7$`9BJp$Q(a_J&b}U%_!K(A4*!q2i!Y=n1*{^@Kaa*V>
zy6gQd#yfR-mvSeX*(NAUak^bOQqK8ZZ{;cW(_F5pU2)TV9{HcqXRrTsTj<NvVxL1D
z3BeNb3qE|^bZzUr6DL-4WnDX>)m!jr`6-XZ3oY!ll>L)$d|YRFe8LUZi0%`OqTa$n
z%TKLte3~9sBXqd#=(0zg@Aki{n;Ell<<^ZhSG#^sn;-enljrvb`N&PF{K2cDj$T|H
zrfazUgN%n@_$9sucGGF6C#!N?iKs8$W;v<NKY0)9hWtA^RYG>*Z{`PmVPt)9<EK*W
z(#s7(l7VHL{xowb7|gtJLhSV98@U_b+%C;73y59PzH#m(=F+gG)vX_uBK;XUSK4;X
z<M815pi##&L4D(GrkmTjUzcic&zQ1n)`7xD+|KWH?7y`x{2g)O|GoBa|ME7;KKr+=
z(9m(h&sYBZwTcRcn<qI3toW&CbmPFqd57zn66~EnfLc<hZ7M^9>5RXagjtMCO^iV8
zr|Ac#GP2Z5TMF%a9WGEkiSO)(zb7&`cL*mKG{+vc^PSVIvo%LGs5;48!l&-9*h#hD
z3-k7FzR1TT5n#SMV$H8z5r4XJgugU!{IXDZ`hI^Nd%m4SqsGxNueQ8&k0_m)j#1n>
z9WL90zhs^;kWF<u{jgmy_;8Kk+4=60%d>XqEqmw0fBd_C{p#l*uZPOz-R}>tWYm4V
ze)ZSlxE{Ov|BQC*k`0iUq9ApALRivKky$$I_XTcz5v)AS#!{TE@=Lfijp>lfPI;wX
z*YgS=pY^xjv{z5=a{PC+RG}mBaBEP8WZue45t%0?qmHn3&r~?3&^2?DNFc9N=Bw~~
zeis}v_}BunlWrf{%31H=;VpT)C2WS_(iGpqy}Etxz8-yMac$APh*`nC57w;BDJWl{
zQdYYC!rnJe-t8&Ank&*`*PmhF-29qBS)={=H4fju`qy*fHI^O-$+)&{_wJwSzit$<
zMkO5xGzcv=xS8a&g4-f0i+9%Q*C#i<`N444?pj^*BA%RUNB%Z_pOv}%RK34arXXts
zX9UOO6;ryL>V)>5f6pO$w8pev>)s)ghc!Rm{j9V}O8YT=zCz&|3(IWbWlQ<l_O6?A
z+UxzMS=HC8lMivEwY+EaG|6V>a#b}uqo$#8H8!H4;<k=Mq3L%`MwiwV-9g<uA1%1+
zZCUb9>**}5nXL>L0^b$xkxD&t>EWCD%#RbqFWcPN`)6YP{O8@SmDQ&0>H3q8f8+_e
z9L-<xh2!Aq1J{cBRakNYs*lge>8d@YqIj79=jl~fey;mrR~OUrx=^sL_Eq(+|C5}J
zbY}hav~0L%cVM?*`xz_lSNon^{-YZ6@3uDY_4wnimiJ2j*-Se8C1K+JCwiK@U#rhw
zZYx$l*<Igszd!%}_41$Epa0BpIa@Go`l)|1oMtV4Aw0`<Ut2GlbWr=D!EVtMhedC{
z+3?jzR<xdBlwB`zv`tEJb@y`_-aMxz@3>A_Trge5v`_4z<mb(-2JJeV!&}^2r?N41
z&XMLQdhB%M3v1<+?xcULlfUh{J}v9q<AmI>nX_xGMC!MHsk@`>!dJ9+Uc@V|T?}nM
zU;Sb4=Cu`ypK;1*Rl|D2y`CzkTn+p6?;hB$diC7ogLiap&aQbRSDnho5>Zew_Z3US
zYpz`kV)tfEW|+1iFKeUpgP?Vc2Dce@s9t5-VX~b$A!5gpfDjpu4U<0DJ>_J$E?UC4
z=G+9OghuA}vgI8?_3I`o{a`z!yHf1XDtk|cn~%I!FbkSV#c9|xKHSx$*V3Cj?~>x0
zwH88&-m;|}ifbzM4=7Aav+t;E_{g!$mfK#W?p6W&RnxP)_nY2Erq+DAAmziW-p*#C
zs>m+eU+(Oj9;C*lrTTPoo568KzOAwk98b?!ckzx`VsjL~@S;GG&-D}PbDL$hUY%lU
z%f*&H_2|`8>|dq`XuVu$@p(d*-+`U$77C}cS?aE-b9Xm;zD^;?+Ie>I%uR>(EtD<&
zex%G~zxIxm1t+4aGmI7*Em<xcus-{Ri|jRtSD!kMJh(A&h4=QQ4;<L9i@xT~69~S<
zS}yQ;!SX{#clZjgyK{PmB6H{QWA#-}`UEaTZgXH~@|Z05EofHg=2ekTSdVW$_4!q;
z=5gg7izy00Z>K#CzIMH>?cDdJjH<OsW=0~}8{N&AEEoG4OXud;x#rg1Twzk7EPXKk
z;<Dol|DDWY4cNflb>l3T#65v+hJF7g+n=8oQ@X6}bfMwN`(<L$vlW+Y6g|V<_*B)q
z{&(%%S36$3-X5itGQ%-*^@@Xek6C^Ge3`jG)8-HBPbS`1#_GFD9xb$rT`>D#X}a8^
z2Tcu<2OE}bFyg(tM!moC_<_7~_xaf|xr%3^nB&iOOV)i}EiF~py7r=8-;B<yTfb};
z*l<WB;C$Bkc?;x@Eqt_BdD0&3w8xJa*S%OKea2{i{mw!;`x&hcjZ5Dh|4|s~^EpqS
zMe#<%*XJLd93;JEvaPOh?>gIk|Jmx$erdL#`9b%%HLsfKv&=|qJ-xNme8#HXiKYP-
z2U;ZVU%g!<dwF;6vU25;srORLtIB6?n0eP+#B=|Xu&x)=IK5ex{dr)1wdA6%)Twz-
zl8ujYMN}^exVW;OeU(67*^Y>1ZI5ko&T8<9u6*drzghS551Hm7#uA<h_e?Wpl|7dT
z@#s^1E3>8k_>OJnyEi85-1!!E=g-@y2OOuiG|tScJHgp|DWbsf5@T=E)r(Qv`{m4j
znci5|vuR~~R>qu*ORgQ$^vzm(PGQo&s9=+a`2}9eqAg37Ez2w`e_j7{-bD@-MZuMu
zWiEOY_;T$2+o8twRrcbYHOD5eua-N1h3(C(oT=&8s~0nJ%L=l~ockho$zxd!>&@T<
zsTndy6f_fkLu!8iY_Wf+(XaStmY$~AwRV@%Ef*c5PNn<13hq8`Jh>+B$>~os)aKr|
zImcb@_RvyyO7)#wg>SuzcRq%{t-tvz@v0ru$?njPTVl%Qmpq7dmla_sVhJhgy?L&=
zFZsNl-%VA~<?kkSg$b5>{_YgtcDpQdcaZp=_`@rzOW!PUUNNi9fF)GVOm$7KUBO=|
zkA-W}14M7!aO*wlCABD-xmd?1g5%4k#7pHDUa0IeuzJbGR_8Q-?+KAJO;cL-?GUba
zTO=vG;nqPd&W}4wZhAy+*M4xVh}G2UiK=o#r33TjW2a8NeibM-f9bu*S90wq9!Ut7
zG_RY;en?WQm62=u)rlQ_>6~31zFCYcTZMX-PGfNkb3c6FB5`HQT9G&{xz0m*Ynrd*
zKi|R0q%CAvJ3nB_*KPg$(K<|tcJ}gZm+oXOtyh-6mRH=_ym%r%v&fvnz>g1aTzGPL
z<JOby$=OH0Px{B^%BQyH)5GqcX`Tl|5<bb)L>$o4dQoN-bLz{+hp$Wbo%^10_-a9{
z@Y<s6|Nc|YxwW+hM0}m!Iz1&KgV%D>yqP?gizg;l8c4<+&#ymr+G5G#<3$p_D~?(7
zM~emcWn{<I|NNvKU-$I1{bYS^pB*Y^%G>twEK_H8dj9@ynys;#PU0o&{EC=+Rho+J
zPkpjtjh|1tS@^R2XpilpPSMGep0K&?IsNrWoBqx3wKF%^PUDm=_c>L^A<UM>r84F7
zk(Pt@=X|yrpV_EnP^+ybBR$K<Vw>5_f}FL64_EAW>}%#+?^FMyXokVjOE)$fBzjD&
zyIrp>s@M8!$A{m4Zd>tB|G4AK+Gp=(H}bq#s&(_a{U7E=Q&#>}&%XP={_T46ZtZ3}
z-s$&k4qi*CaNjAB`c6r1;oE~dw6|MnmLGbr9*}n;W=8Pd=AvS56|K73U;7u|`Tnye
z>iGdz@t0vdyDu+}yL7f}!n^v<0a@?PNtFFPf5m^%mGu7s-=_xc4|;W7_r-PH7yp;*
zz6i+<%~(>jI>$>iymEfmI@^Md((A2@A52Set5DXMbbF)j!%0qu{#*CF>FD_Oh2d{k
zROUZ3b)ojFiF->{|2hAvhk37g$?5%GJO0ZT&R<gX=#gaio5c$MSp|d3e}S5all6}(
zvlv^Nn1Wh_^-p8Gi>1v$4Z<_`POLgp@qw-A){;LfeBXw-YKJe?D&w1CGD%|c6yKoP
zUHZSTZ<p>rm>^ffyZ2fZ|F*US{tJIg7w={?iAeh%Idkt$jlc0s|EEiyY|&)7I`hFE
zfjOz>r@Q?n1@@lQdFmQzu-NsR`?Fcz3VN#lG+WJXN@>K^?5W@X`}Nr#5r_Q;#ZUE!
z%_`K~y!8Kxl7m|&-c+hFYZYu-(IXNfH7Ssfe@bxZe#z*(P2B4w3LJa#O!PO*bT;?u
za5D}Unzuxx*Kt<vJi*(UcV8WkF_E@SFXTzFF>0E>VDbm8x|ZvIy?=22H??DPs(7xr
zd&g-#J=p~pENk*j!jJr`PwkT9(t6rD&E><C_Y0q`S5Nj9$>3b(Ug0RhJk56@r~75)
zec{)OYxYI{5`X`2t9kGKb&F*x!c_mU2F?h$akW2RKW>khnleK+r_8>+r)@$Ns;X!2
zoxNwxz3DCMpWXiX_|@;sa}u-n{3$k#K4)&uf0a%8$CIy9UU_caG56oMZ_BId-x&1A
z?Ol5_<14>Uj9X%{e(pVi@1GKSI2c7wGAm^Hzn79yOgY%Qa-pKd-(5F2xO|T!e$LwG
zG_i5oXEj|z*2z4(wufx@-Lc}*<m+;)&PhngE#-P28$LVt>xR~Ho|$Lnnca`BVE!Mu
z&ec(4^Nzq*Tffc=nmB3iY1c@l<yS9#-BMK_<6pc;?ext>Q9IRAURZyxu)bZf>8G#6
z@A%+2KRNO4vtqm1UWO<pCNPNpStK7e<=bu<6@?%5f3N10TJJCadndenTF2@pt;_%I
zG%e12NMrZ!ZhfA-@1~e8&w=HQhrddkXg2(@b=Ljx*DD`QRxqn6vRH3-xIFs)pW{=4
z4RY4+QmePQDmCS?-2AWwE3<xE*3@lXG3{zr$Mboajt5yJc1W)*Rebu6<FU?ufp79w
zhy0x1@tlfst60R6HszU;-I~>J9vwH>{mpOYfm5ks%Ttp1o^1(8Xk5VZp_~2e!3&9R
z7P2f(l3JF0l4~K`^27z)DPfPVl?k~-hpb#)c<0%~yHU$*FVxR#$XT28$4tAQY57Z;
z*|J|&GQ{vHu^43*En++Hwy0oX7;_A-)`7{DTHW?9AIulpD!ccw>H3+rBK2ve>R&(p
zC}#Vn;QrwLn+5#!d6H7C`x`<WKkofey-Drgmgah|D~IlXuCn>Z6r8}h@Mp%Kr3}>q
z${+H}F0}8rY36Pc;5T|(U+y?huh4PL;wG_BZ}v|q>MS=kC&$RGXYNg$-h07ubF-an
z!Y?K(rioJ$)n6T$&{Qc}aF8vOA!TblqtWUnrb|-Jcjb*Vt+)zf&8z%UiuXL9_%q6B
zG54a#o%dg@59*JxGB3Bf=gGg<Z~v4H=cZhHT~I6asON-}_M^4?t_XfISze#&BAU8#
zlS7)~{|juEU#`8-nR>!-j(gwYo52ZNRGMVEjf>yqu$((9S5??%y13xt*Ob$3rITV8
zzA?@{=JM8@&-Cqu?+v-^-+uSZE^xUfQK|FlkmUx!73S41TxB1LIMyq1t$f+JqWjW1
z{t!-YKR@<f=@UyF9+#zveW}V_URZjvUS)?}%wonvYC0G1O;5eKds4Hw*J0*Jb^A{_
zraQdE5BYtt@sj(hYAASdj_hjv){WIZEPholu1;r~a>XNmiRZ!}jQ2QRY`L`3JgPL|
z+g{#E<?{ve&AtBY^Zs|HF;6~LMx*~E)8Q{1%X=dEb-lKWZaS^bzA4tuGW*Nb(vwQv
zZ>;KhVm>sw*sZa3xRrW|r<wbt=J{E<ix{|{W=b!J(TccwpJfe`K&6B7QnjVqJhd<F
zJ6*R~Wcz{F{vY0#$K*`wI<!G#`$Gp??>FvJF^<Us)6YEk*ZAz%13Bi<TOAygf3*1T
zU(J91^>t#0O;6$E*wpEf$&7ol^v~ZBvg^;TSZ;8#s@`m(ifF@%`|Ez}jJp4D8qd_p
zPjgCxYwz!lz3|mwmBE~-BfOtIU#$24{`%+LDKAdO8Z`O$T6l7E-HV_0Ak=Gi(Z1ij
zjk=5xyN^%!o9H>+<K4F@VmGfIP0gR7<n#CxlNHnLPp2oWUOu~hReHi5gV5(v;gTPm
z);7kU4KF|1z5lkXO8tgp=4*Y@9;<fmbXjsg=F@%KygWIs?ZKb-i9F?Bz5C`Xxp^Mp
zJXskF4?3M!W;advIDxZP(lTys-s(Ed3eIo*8=u+)eGrlnP`Rq^?O5jdvHxe8wL%-)
zyQN!#3O0Fj_(`4-?m6PCxgy6aQN*HZBBwH!R?Ua~JO}SDIVf)%Ec>V4wf@6#i<!s%
z`MDobOWCMwWE0=I@wvQvw$@a^Vy;X#&Y8#L_*Qx<M1B3n{5oXW_Y*H-4p+J?5!rtJ
zW_`5F=IA32%+4t*yVdy3Yh3%SMC4%AL(QOjirg2!E<ADF!1ja596=v8holqVx2o+}
zeChh1^X7K9n>4xwce`=z>FmF~S*70ZyVcFlFXlM^@=Un0-nP_Qt35}Sf7gM@*)135
zi=UhJx#HVHe(z`h7HHaXeOCAXSMcJb@NQ$JMcy{cWV>W!__?I-+pc{*an(O#ONPJ`
z3YV^ym3>|quExc9_MLImuHUO>-Cw`zZG2nl+h8k2#Y>%YKZ*p4CtbaK#k7DkU#mg-
zbG>tOXS!O8W=O>E^Gfrjdi;xCvnTjHl49mLwEXXWAKtkkt3zMU(PH9RVZZJY^WG@m
ze><{&Zn?ST++jN#J$t=XxfZv7-F}rQ*7w-XrfyF7>)g*va%@#)?!~^f{lvB6sPXl4
zo(9{q8S7Wvo?deJS7YKIh4^I}%@4(N7lyR2;!#ViU#7M6^)3dFABFaJj=XBTF)1YV
z$g?F{%4WwWHCuRW)-CwNJ0;biPj9NwtWUNV{?wc{QV`*o(RyXhVjbrIKH+<B^iFfQ
zIHyYPKX+Yzp4c^Kt%zB-MfLKQNBye5U6!F?D7}7mdUp8XgE?C=cBH@l;;;EGqvMkK
zQt1V;ay?&uJmRZgq}Y~ax#eY-+8v?AOD5<$mqfl>@i}7;Tjac!geiNz-PBYOKXp_u
zO@yKEba6Q6p*C$tDci{b4cFfM+I8#9_W2jTXT5BevsrcW>hUbTSJAum-)(3*V!uCf
z_YNtuR<Br%XHP<=?2dcQaa&^E)E#G&FFlmMZ@g^Pp|5|6%3{yn{V=<}s$!9v_V=&p
z;!@AvO<uoe!}<N;!A^!n20yAc7RKJ$^<%E-nJ%plZMWW;-?(^J%XXcxY}16xOCHYq
zV0F(vWOLmd&9Bz~4KIKEc%J<b!;53>C$a^Ozdf>h)f{Vo`|pgGjL)08q!nj$o;m9r
z>r=FS9+$&nFZcO(Z#_G^?3S+S!wqTmYl^?V&Dm$+_3EdQtQdDnSAsyBYwv@1CM@fk
zykCWUIvvt+@=k00o95Oz{idfAf23?H>5XgkbqzkDWVysK#;C!KrF+Sq!wgH$%=@P*
zb7tN9)i<Sd3ZrwEcRiS$Gwbl-^1LIj6LJ!|zeiu+#;94HxMusygFh;)&MnY1wM?0C
z!mxhTW%I&Wy9(>;?nE4aYw%GxLHffsmA?(!)Yz=F^b$f3*u;3gym%&C*u44G8;dIm
z4>P6B55Fwkwf9R%xJzlGO0z*0*Ul~X@_RRFJU(Qwz(r_^Q<G%it?*z~g;SDTvjR5!
zxmMl1if{d_T~_`lr>stw2wi_b@sbg%p=eY8tw6&^^)H!bM!)Jl_p_o~hxb9>-TbX-
zuS#SOuq;p5Q(gMtrI2jN>1$CThf9OqwI1Hqn`2aw;xdPC!>fGviyW6&H#J_`Dt6U)
z<=jWf*~@<@ZVg_(szETzw`e{WQ|uz9Tecf~R<?OB?+ZR?ylzgB`|D&I!D|gNLcC0|
zk2)jbT~8JmoUpCmUpwywhv}8Lmlmch`|W}xH%|X|Ny|nzJYpKB_shwv{S{>0^AqK7
zJosdMfz@cW@I75A&y`l}Kl>h^D9{b>t$5qQw=#vJpqk%K=-rLeemmaYWv~;=W80?o
zBW{Q7%+_e0L$cPdo2`xRv|8K9G;b@vrhKt)@0$X151pS8_0GI0^|uaR-PEWzA#%gh
z3Hviku076I+P`*<72EY>h3^Wzt#|hCll~;I#m!M}(HpxHwy{h*rMfmTPpEFYJ)u5J
zZSwJkx6l7aY^XKgeUQ)dmc)kFYl`@9H0m)%^QTT_PN;6HKG1i1dGdj88*_DT?3;Zz
zp*{4Z#)iX2S@JjL=`r5s(Ot||f8ZO>_lCLi+sZ7(UKH^ksoTt;c&(-Pj;=$9m(sVl
zVk}16y|miPxTW@%mT@cX7JPVlj(eS4v)ze##jlh<YHZ0o9QxjAwwt=l#dkaXr%u}X
zZnI_E?Sku*OdagC7}o^KPiOoUSEk-D<HyZd_dni#cR4q-OX~f9oKj(YY$B^xdu9E1
zzEH2JPVaX1p7|E}W8T-Z3^yK!ng4rxw|ll!PK>sJtx(RH$!G1>$WCmY#p@XR{fetq
z(XI9`flEL9ywQ8K_IKC8=AK<Wl{ebF7I=T(@?*mP7xx1>`POe;D6~1dWV+Co;vQRJ
z^SdA2)y}LGQ=55r_xZ$s2b*QiammCgNZ*R_U0HuCvhlpX^5MNRm!7@M^3Uto$?G<)
zr?o97m(@zPc%AoSid^8;XLz}}Z_0+bk-K~>ir%dLZTQ1Tcah)pUbkpt?T{5t&6TW{
zlTBEZ{BvHeeYIWm@5WX3m+XGe`se@FJLAr>&L+9Ew<7x82|t)-1($b=Xq>#}(V%s@
zs6zPaW!6pq>Q#35Ufn7DOk&;7x4v&X3$;^h3Q}LWY*dggzg;__hT#)4oBRo;(4w>%
z9M_a`xSv(_=~Q?3&q@s|N%NKSnJlDpXLa;Pr=G^Cj>Zkru^hfG#pgGf{ocdb{5PRs
zQ=r?dEB}M1NB+5)dC$V;ZsF`!uhiGU?fIKad?ds(mP95<dDr*9Dt=b^qqH}7YuuUD
zzq3NcRrk%wU41oecipcIysh)?*IeJMX*}6Jd29ab0*N^a8<(m?tXp+BcV+XsGY^v5
z1?uK$8&8S;Z1LpOnVHAFhNn$xWY^1lAv@jV%gOMxbIR^Jj6SD6xlx|#HqW!GAT@2f
zNL2*aF7K|t;b|Ic4);Vm)z5o)jwkg2^C5p%-s?+VH@{Qdu=(!Hjr;8vot^paOpm~)
z(|2cD_IGS)*&;qYJU+T#{hs>6|Ki_0v+S$H=028H+Ow@>!MXW&Wf$dpJiq??oxn-s
zmo|44r51jEUex}gSf|)LA<T(C{N}b(IkCLCJk#bDeZOlyN#T#QYg_%czNPlj_1AYy
zywa@@Jc0Ro@uN>Gt5(JBSz~7#`d8BU$IHk0s)2jtwU1insXmlz(9XJ7tKGRf+Vj!Q
zdtO=G?00rGNB%KvKDOq~skD<)n_|zdW<P)6wYpA6ye(T>T6<hW(RZOE7yJ{y#W!fN
z*R3@BZqE9KKl*}f^`^GlClzPjjmn*K;=6(LA9=3T-%o)0<!DnkhUU{9=Q9d38=FCv
zzTAz8oP1}SVBP)rgU4rfwH>N`p&1rg_~u4v+<L8*T~FID>Xnx-x_R@gOwgL?f4-JH
zR&eCAI9?>uADdd~xq-8!o?(~tf#ZrtV;#Hl^*nxfKm5OBLF<;KDa!(mO>=qu=-0zX
z_gOh=gDp;S2Nh+fd|X*@bm@ksL$g(%{t&WJxillGp0i1R{=2;YHMUDt_iS?t4BBw1
zU}4C|2l=}Cy-(c4KNskGJFZP&)t$L%%Z61U$2`LJhl|IEi#ruxXo<Q!<=n=QDPdWf
zvx63fo}3Z1X{Ehpm(~uc<jkD>d17o!XNd(ob>rUC?Dc4M1^4>)=^yz1t8NbzxVKYZ
zFR#1%bi)eMGhFoo8!rioY@OA?%xKzRKY7{O@@*f?w`@pen{s5LyQ`<EeveL~#=#wn
z7y8BL7uWt3h}+#feV^yQUs-AkHmdy)=XrRE_u=(?{kVUwx0;ydv3#knj%Hb@@#WjH
zAC+Hz6>f~&E9GzTe6jrW&BqOm7eCFh{rB{3dF!L47ml*D?OGD|Yk&PZ87_`Rf#Uwx
zSNs2XRC4A^#?E!eO14P(zjz^~_wM=Sqp_{;uVx+p`TbdLuA{r@h5wrzGlddnU9pIj
z<I!EZ)Q08OI{yp>)g>XEOQyUM30~1v(mP?zk;XsY7#CC;M_W98=&JZDZVTHRqqpK4
zjW;N(1@+xC^gMP)g8hpKLtL!+hWd9Qor0|2%1dUgT@aP_W`)z!2d8@e8E(s&a_!F{
z?>ix<H_C)^>wis)vkmDky}D=bhw0%T-1{Dcn%gBkb~<!N;F>v~>~pE|Z5AtCd=+z6
zZp~V~Gji>!o$LS0e$;>K5_n*bIm1y!gLkZcK^$ynwrMk)W}H5B<MEv-UflX$_C=k&
zRzH8WtK_W!o80CD8EvyVKN>&3-LBsMlBZ#wf$1%scX6pxyY+8<P*Tc&`C|9W8LKZI
zH*A0RS=HQl#ku&pdpdtzZ}Dsi;QrOU|Lk&xt@)udw*($bu;VJ|-glAV+4||TvnI<|
z8`QUo1paGXUvCw^xHP0+?DE$)$r^WJ?mwSpvWBIg-ibATdT43r(`xSnZ(R4kR+YWA
z+s50tw|L&tGU0ohb-F^h7P7~mXt_06y1{wknVoK&o{hE!ZGjR=UIFs6YZ^5qFZLX}
z;iP(`aIMAq_*}23PRHOor+8*PQu%VVcS&mCWMePB4QbgeWiuNe&XVQQ-mbcI&+4*m
zU*=3^{!pPBs9x{MKV{R>jb-Ik0<Cwp{MuFJz9Qnxwav#}PYBhm;Ol?x*?cqd`i!y)
z7x(b&c9)WquADQy>mAZ%m0L7hAN+n?S#y5T{IIv*ZL%Kx+`^sq;7XFg&83V}mp%Eg
zC3GtH{W+He_I-Sn_3MK{d7tci1*sbsA0N7ZWQJ^B{;H|_cgzmo{JOq6{)}6^zhlzh
z*Oym)@!ub-b09U?c-Q=M_m7)TSNy&C!L3^yjEj0!^(`&hGD|n_PiTj!k+0&K?y{@O
zTa?|*xz9*lU#kCqT~U>q{*T%GmyaHb*R9Ez%yH;&$-DU3t?lNa6*FFZD%3ggqVVU#
zkBO7GA96Km^HptmkQo1ATf9z1a{c{hZqr+?xZRX^^UF!;>Vw-MQ&y!doSDz~{^{E<
zySP67NZa*EeD={@T#|=M1cUan*Vq5H*uQ##&RGGc(#=QSd|e%Or}gAfg^9+w#rF->
zqLc2<@K=1MUFvb6UHkSA<{6q^B0-K_%MLxMXtnxu@%2ltt)I;=pVf`)u+ZBf|8Diy
zqWaH?dpTY0ZP%$A_WpfRmGZOlQ`N4@iih*JuleShZ?MvEv48SGhBsUN*BWX1t~EHg
zRab*&b7b*b(S21dYkog#e;Ir&?!<!B$@NoZHz;ZbUilq-?91i@|6Z4r?l(T%)wI6m
zx%z=i96G%RF6Aby%uckejX(SR>OPgVAJ5#p8ej5fZ@uL#J>9GE8t#`LbnF!L?Mw4o
zyf&lAgq1rf(c!O^`)co7mQk^H&Ru-<$V9#yoS^KT`qWf<%<f*a3a_{)DRm~ju#3g_
zP*JSsMr+4zr&`Wi-vwOwd@oF5`^*`&<;@CNaqX)USbCGM-PrwDXh}<B<$_nKTfUpt
z%Lkw7R#==+uXwPNJMq7`@iK*9SBor<+Pn;}mp1O65SnUi!`&SnYW-O1nJ#bP#hl71
z(XsdS&H4Se8`k92__?^-or<}?-f34L^Q4!0rw(QZ-w8_GaNybQTA4rQA72@~Ib3lx
zBXdP#Mo_%Y>PL@GeSf%bT^Dbx*x3M&Uv*50^Ce}N3_kO{`duH9X#8x3?o7s3)*po>
zinW|o6S|Z5Qnp)PVOpbnRqjFDZO_GdxtBNYILdW*ag$7HmDS@*Tty7cW-^ll89xWw
z2qzq5;CjfoY}?F)xqlQoTs7O@FZy-9iu+Mt!u9rwUiIEnTVsU|?Fk5x;oLMSvH0aq
zh2^489KtO0Oqz0D7#p(H%P-vdQNs9WHG3i0;$5u;?yH&$0?LD4N8e@<oTR<5?})gK
z*5w?AeVMG5HCs!XYfdPnxlC`nS=(&U^;Y&s>_NUGj*sssEbDntw{eO4BA=a;<rs=r
zx2@Tnuxv>ipX3Ri%YmoA@jcPFE_EV@`)Oau^-z{tV`WM4%C@NLHxc#6*80qmVGi)i
zKCy^r)x!dLlR1jBS2o}4dnj|{8~^jZ2Vrr~L(lc4H{T1CEY`UcX6bIv@N!F=&Ly!|
z0+$qXe}10ujK@ghg!kWuZ_z(@GWHgI4Pf24;RBoM%>T}Zjcgokugwj)yY2jH`^+!v
z*Sh>ayyeMpb(y+TJSQzCNlDeJWYjxKPCou>F<ZJrmOs~#1k*JwrE$J9()*ZRaEY=p
zs-ILVu)gYUm|NSvXvX~f=)3Q<y<cVB6uvUo<d>O7_6OZLFOrkleclEYnzB6I(x!82
zK~#tA`EOZG9cmR{s<&!vyS}=Vb+-rm)Z)0_;4ivSvfU=>&XX60@memil%2=NSr|}n
zC35tZNB*<Vx=W6pE74fBr?sS4Wfk|WM{e^L-pN04AxQe%pE{l;|3vzg9zXM``>FZy
zhNN>~^564E_20c?`*Ps!@A`+cCTARDS@UeiQWuBa!ckhMr{3<H)D^9=ULsNViPr`3
zW2e|IJ-eu4xBC9PE9;M|scr0i{b<z=ojGUqZa;0Scb#2WJ-uM*7IS7<Yx7g)o-1`l
zZzh{^NgkSEmA$z(uI2T!40FBJI?4xwX7rruO3+plb&<;Z7SVS`E|S07c<UW^AH~uw
za}t&GwtR4AsFFUmEqT*H-XnpYJE!gDbvN`qe<w%WD93>3Y+H@5z_Py_4_M@c7ussQ
zP+Zf*leGQri~4CRjbi3+eHy)-XYvkyb5FBJHB1-nG<#-GnIKUlH|d1@>ZflP+iTR!
z&|9}U{HE{zI}7KD&X8l;U^8dM-{Ru!bM8L+`6l<vga3JNMU6a+7j}D{y7TSY`TYuO
zmK?Yoo#*@UWT)MN9rjkU#KXm>|D4Muan;E=Rlq&@$&Onw_rqtl71lqGoxdtJ*ZXGf
zkFz<2(fj_~lYLMW8uj>?fAJU56{#1_iYV88dQ(_h8~>{|+@}72R-tw5oukS>wn?5b
zl4tf$V&~3j&`&--`>5~K?M@CRMmy9jJ4KlmNj}W!7hQIrYuo8A`Lx%i{gMI_BF}EL
zOsji(CA}p<<{4++yQN_cI=*Y_8TPkEa-aDebbRjP(>t!`e|*9e<oYfm<AG(#orCXF
z<-3BehHQ1+Cg;#Sdx_jF`&i2-!jn1{Td&Gh65XK2=wH5|_u2oH#ou|B8%}iGq<KO?
z*t%I-#<w=cd9&!rAhVdmck>>bxD^%rZaSryTzcE%BagDNs44TK)Cn1{*Lfvp+0@r}
zZ*0G<JE4Q&)r`#=nF)nE_GlL!wXYQp`!8j0?a{_uF<D^y^4M#KwoR_hn_oVmb&1EJ
zPYbU;m&mpc-+W-lk6^Ka2t7fi`RzYCmpO^eo4{K5N1^$0?2Cjg%kxB*e{k6D5OGjg
zz-Q%$*D^1}S4=UQS<>5n*r8tY;W9pxRS9dk>b1Fcwsy3(E;UxxJ7-+6W!0mdp263d
zDk7)OH?rNjr=xwphg4VkIaB5AxV84{nO|xp?z?#LH<$m4>!#jsT+bCf`4Y6wn0aBU
z*;)TRArFr%)-l?8AZu+R+t-=A#hX7`tUlhleA`>Ar+tr?+WmjOFpItJpx(M||NWkv
zF4#J=VX6P2`m4*PIs9K1lbhL^RlGI!q*?fF(fs1Av4yi&zm<Mjuyw9ly}&xNjV}_m
zowzmg(dP8*)4>Ie3L6^l2khSI5V)eB`^(qImxb$`j8{F&j{meVs_sDkRxOX67cUp+
zx!v!-xcq^5boLIbDb`aoZg{_&cD%4%Lgxyn^dZ@#9k=t&JbaT^@3ZC6c25uGrs^ev
zg0~k6CR$$Vun6r_+VaJ<pwhbcynP?*rhdDM9PzjtpIhz}|IfT|>%M|&75~IJ+6@y{
zP3tqiuy~(w=le6elsRu7^z_PVeaV@<vTW^q^VQ#$N3+EkZ1-!Md}eucY3i{Z`MWQj
zTK4+<=b8U^E%)Ah?5vW~;psv3ADK5z*)dfhD?D1|^0W_&-^<<S5?}f)dhPAg{x%n~
z^cQ_(-u^VA`(oWa(Syvvfd;7xn{Iu69P4P};&pn0G0U5*Hg)GSPv8C&X3-Z(tvb(t
zD=GK9K*-s7mv$^JD}8fu^MT%zis^qcS#K&!*+e7>WG8<8bw=3zl%?G2-;>Qft0U{f
z9d*1cTjo!@dR*5pz<oot(__<lCR+1bN>$r8t$QMO?W)5&1uL&ZHYZ%Z?f$PIeza;w
zv+PQlw_4}rWDe|p<XjnE!~gyipE7?I?@EdL&(#)1+zxzlqFMH!%==US-c^KO*|pH_
zNW6i8|KrYgdG&%vzy0c7mtY>vt@T{yn8CZLlJ#fy-g0f9nj)~<_t%DZZkt87O}{Jl
zWKqPtWjCk3a?<gfcC#)1eSvac>c4=ue|`v*T$bAOqA9E6fI^zIMPT`*ZMPF$HtywH
ztbK#ka>bm_5{E6qatw~II?b5KGkxoy8#(QqMlMr-lui4>?AdCRBXO{gd%NM|=OXW)
zzAx50ST$c|QT+`^mfZp6L8Yg+EvTE8P@dLemR9&FvT9B6)07OkYpWEkxz<RC?AkH)
z;_7!?v4J`HFJ5t#Rp0H(xgq8D^HH;Ae9iSLrzs~4C7cpP&dh%EJo4Avkmny*o~ZB!
zo_rz4m%K)I<(k}y;TG;mNB+uZiCA9iFHAhFUv4A)d`p|oxtQJct#=i&WM@1#<11s|
zps~%o0a9OWKAp^*A@|o;XuGrKhqY3hETmtt{ZW|1$gfiM=CEbQ+q+FKxXKFowDKRu
zT>g2--D%a?7u>15EA_=#;^KGMHrx_dJwNsC^CIWF5gi5(mQR~v;+D*@nCFh8#)0^m
zMo}~WS|n(>nf&T8K3;#2HNVY$5-%Um#>SS|D`nD4wrR!nOY*#%@XnlhnLJ0gNcbPa
zW@Gk4zoSlOr|B~(^M37p5GWg{VjxkN$EkKiZku|S=CQApm*v(vav7^_IqBojuCiq9
zX$`d>Osn#}3MMoBX<6Z&C8MS(@Q&>kL;vAS<?3~L2R&Ytc4kjw;r&y8*DCAc%xirN
zdJ;>rN*#S?+A{FwxOlq$ym|Pb4Cg_kS%(gOVAeW4S+IGELh90-V@>A|eoT4FVDn)&
z+vz+1PS1S&@Y}`EvmEW330pW?3fRt@{P=sIS>Mtz&-=7vN*hz_mdg_b>f*m72z{SA
z>+>SnF9|6<&Oruq<j%}<<ZsK2T2wD>&uKg3p?HCz_HAE&yTILza(A+RNJQyMd-2=#
z%1)H~llta{JO4EGO-h%V%cDO&eQ_|Ob<r!8KMC(9g$Vk$*HypEnX{fHsn1r>_J@P8
zziZ<*_KVH_Nr@@!{2M-)9JwjCzK~10kbCN(AJ)dw+4DcyNPkYbF|BvG%HcZ4kYAQA
z!JM|5$7g2!@XxGrtg72yCseoN-rrXpMtkRPc^oBNKJU)^%Jv-R?}qXJ*jMY$P~*bb
zU}R`yGW|X;izuTdc;Um{X!yd1XD(qgIqvb#zqaZ|r1k7(<?C|SzBP)uUpgZ4^h4tE
zFR!;tOYj&t_jt^_8Fe-6=)(;+FK5(bl+@cYUwpM|(be<mTmGhesE^v{Ww~g_+9^+6
ztixmP&HEeJc<KDq>o$vBELN||4;2UwSSDq^V$-^)=41Ww>(>9Pud_^N`C?wdyw+l)
zQ&#NVZSk6_F$Ej;^)R{d%m@`#j<IHAa$I3n;JwGxQ*X6#Cd-b4bIu;|7V&;Gh0)kk
zr&n!G_S#L3MUh{QM87@qcERbG8@r~lIi8=a{)4yYNc2bTJNNFj-2V{&%~b1<t@+iP
zp{3u<9Jr1>EKgsW_%B$ZPNja$nW&_lX+;mpBmdaXd7Pl7(0TB<N}^lH8N)?Wk3L9V
zdo{r_HvZl=^SHyg_UZEvUf`)Q6R}U!a*{MD{rB$8@$gfjJPAu5Jlwr{)zvPq_hMIn
zpY;FAe(K4pn`Y&!pI@FSkn|~O^UmG*&u%}<-s{*oXV0u6>y^{HUmh>d-*xbDSXKSc
zb)S<B7%D!Roh`fOS3d3R_qQJv4x0Qhl;AC|Xzwj*%9yty@ywJ1fn5RTm@V{Yi~32H
zEIm^?Q`w2z;QiKTwtIGLoE)wj_PaU5L)Plvjht-@-rrb~7goAsR|CJ*&S>3NU$5S+
zvPw=XlCF!acwEqU?Dg5={bGfiuAT{6WcppfxxRq?x4cDo?bh$ct}ma&2OmoaFv(ZH
zzig6!mc)jyPmQfMb6sD3H+OHI*>v;34^m(L@l5}|yL3mz#t8qbOYY^&s@fYJyIgYX
zzkM;+wtvmqtymkL@p`r8!Rv?Z)(EZ1DyrOkL{Wi1>(Pt@D?ATtzp9^YsATA|`F`1K
z-@QC#b^)&M>rYy8cCXIew~b3k?@E`1$ou*qTiNpKenjxFq;i<YvNT3M%l#!Y!%WzG
zmC+ReR_-e9s?2o1r89m^Sg0r`!2UYn)b+%31$#5~@|%t&)$OkqYq3AO{p%_|?MwIW
zuX(grJD<(v`s<am@6-w$a!LMYx8vn5zWdL2ul{|P-OEzvnAVQ^d8&*@LzX7)b~NMc
z+rM)6hqJaElk(42oqCdT@tEZr&Bc=+RL2~7q_$<2!`2K%mc6cfZ<}4emwcmHe8(+g
z9=ZM7f=-nwdY^u%lW<4Zow@jynZ@qvh=aMiZ~1ip5o=&HYBip5o@1%monODcdC!P?
zyzz=~$Fb)}6%|WA*4?@?p^BwGd-|`hT*3OY_ssNfomDfJ%Wft+=ewo)*%5bgf7j}G
zE@hn2YTCHzzVyQR+Z=4>Z8HjvDNeDk4etJB_T!V(qO4le{cF6XRoFN}L>@gkaOC~x
z^~FrDx2x<ww_m2nDahl%;h#3#dOFW$7ZjFm-*YTRaNpleEkD~lR<S+x@;2ZtIaeQ@
zxry}--z1&jmdiUH<f-JpJv)op{B_X3-KDYpz5?rFR#iQiJZ<W;g5A99Y>&$-sy#10
zQ*`?S>o>)?1MfJi!(0Aty}7P@{`TErUvA$m6El8bF7NsJ_syR*<-c|Q+?!o2u=k8`
z-e%s&uZ^au4!Uz0>lLFTRhtism%q;4D=}MdNxhBg?i$M#e8#*-XKiFQeU!N7zv2Bm
zJ-m8~`**MSVY6fwPlQ-ws$j%6ex1+CInU?6db;V|@BQaHjlKmwagp82IVB_X>y=w(
zsnfn{&O01&<0H?B)sN&ZZkst#=!YnG@#7Z%^h+A=vxUVB%h&I1FXX)$^)FmX!BaJ$
zh|_y(50k{1`anHvHom~cj0=xkp1kBbgKFV=Mz2RM?=CCs)T#PZe}RFsL*rzRXzhOY
zBmO%Xh4^G9JzJmAAo9dJ_2yyTfDozdhJw{GZ^PyXmZY4X+#7xC-c26)i=Q5xyS99b
zjZeg(yAj7XpLY;pJ;%xTa`SiZ`%^fQe^peRoO`~jqIBceGu7<%Q<*Y<ZCn4`T81%a
z&AXnxKfbJt)Z0~Lq@p`f*}{)SWZyh@^VB#7%Tvoj;x={NT$o%g9(YvgkQ4KzgI%w=
z4&6VsFSFx)-jeI=o?R`P5qIYw+RSihQRYRD9SqO6=|0z+D3aM&l5t!2tmzcl^T+3J
zO<lFpdoAA%cNG@7ZN}dk!;aTKTkDtkNoJRTWy=Qpa*o1VA3vry8_kNkbN=*&%oU#6
zKgxskyMqtz;O1eeaJi|?r{c7`{W^;T%Vp>NH6qt;Z_5$ZVm<tYJ@`nv@P^5XoYRl&
zSA6ZD&+|c6>W#F2I%{F>eOvhnQyT4!Pb#{4^Xjs+S4X|5@7ip~e%xt!C{HSDz3{t$
zK5M64Hq%7ExT?L@&Accyfo1o0^{TQ7LO1rf>%Nn5-caJIdhT>Jdxdva-|5#W8{W7~
z_5WJSYkN*>+ppMwKex;l>Y8fvv%QUx;ys-4t!it=yM-4ujRLuUUYj;EL-DEc1D_eQ
zRVH|d$rbk&FSB>rIL~oGRGOlX$_EEV#oP6q*GfyvE}s716`^HVUA?{U<p07KAr)Jc
zdJ20?c^j?bn4|WtcqUl!_%ib!hpQJmnP-*R?d0PP<6m=-p_xf?*{rl%p~rdnB-oYC
z33B#4{e2+dhmXXI%~SY1EaX`iU+vC%d+mj-Ra5BX{^|k~mJ|aIc>(*Yk>=O=_}nBm
z)HFKQyK)*C-)NerZue#OSN@qg$J0e6O3ytsYqWY~v7t%jFo(^1w^LRD905-Z9zHU>
z@ZB<ChyCW@s8qMc)eOz{iF0=zQ&QzySA6C5+Rt(?PhZQaI6UF$)^+07dXpD>vObMu
zyRrX<KVyuR($p_JL9(vB+!YDClehRYaqW6(Xt5}2_0#%`3rac;I%G3Aelgz}9hH1;
z;fooQzinz*QF>q%-`c_}x1%4+Ej*!au_xK$@U`!Ul#a`+7i3mFV`wQC(;B~FvHAhS
zedZ^d_4|}Hc)a$>`G0cMUsb6SclGqM^M7;hUcbX#^1kHL&)iqZA1mvoNB1!wV7l8d
zyDz`^o1no$7U$b+(e)Gh+A6MeXE8RWZH-^Y*7ciV!R49fnOQ{G?<}aa<6?Zl-{U{w
zz)P9`aV!!ost-=c=Ij-ik;>8(7sBnYyxhxo*6mt>U%Q+In(oiM%`C9srl?fW5kZNJ
z|2zf97VJ)RtFynpG2s6Kzu)Q_{Drbty0he(K38qsr9E+4OfiE)fz{{wo%a8yeC}sB
zAaG2Pw}5eNgW-MdhBn?#)wU)}YrFpou4Vmv`M>yk<-VKq>--B1em^LD_95Y$>{<&W
z&IiG9e7U{T{<NqZFqoS0GTzp93X6mOD%N$oqs=}iiJdUvj%3(#ZVsP7$yJ5bzp52v
zg1@wW^ZniFI-l#!89vd!3q-r@r0aEm&0QOG(f{4F3jc6Xc~-`6DT&YLGB8dv6yNs3
zS;A#21Cu<n;^r_X#mX3`g^wTgI~{!V_f3e1$u*N&fz~kH1qyC~9@o4yRQkO&QtlpK
z>|t>2_T|C@v+7v*)<zw0?0Ym}jc8{<(N2z*hDOQOj4BxcnaiEFq8x0ZJv*Bnwq(^a
za+q?tYzkvh+8M*LDA}h!r~8A`d=3^N8E5`yCsv3xTu63Expr!8;PWCuj>pmJe{cK?
zNKTr#oGH;_<Kr_cXD6-}YcN>sppxyXFzK|bf>Ldb4Bxf%X~Bg7KW@d!9$6U5ZE+(|
zX3|zAzLQTseP+_p2(sN&Q1s>dl@Lxzt9|RM>IK@vbRRr$EA+VLWuemFZBR13znSsJ
zN?S=bg#(W`B%)0DnWbxsCPiu=x=<O@;&^z8<>cdT%qqgiogBPh?-OTtT;rUSt9$X5
zT?@15!#8XD-W#6~DKp}iUsJo{9<%C=b3Wf4IfYOB(O-1QRJxy=?{m07&a!^R8*9Tl
zdM_%?%BdH1KFlLw_D5X0J5pjYw~cti@q(5GUFk_Rsr&|<uWTAW{P8gqDSp_o>{9mg
zPhwjcjaKBYG*G+FXRvp@UDZ}ri{5;_diLv_rZT@>YF0X{T9_xhSTFor$j;i`)_-bk
z$&YKIry5JO66e>=I(mQC?)1BF3p*lZ9&g&U;$B#7iAY#|s14se_vOOhFC3KRik&OK
zTvGL^`Gv|`_5Qxkw%oFdE_eRkIN3Es&T8h5f+sFd)%krZVjs?td$-!}9>44Z8@B-C
zI}x@&A6|I5Wxk!=waby&?LSIB$=UsEJN@9~QTB^3r_8spI8m`e*g40l(7wbdQ_gbc
zkAep-PnYxiia%n``BdLK>44!49uM0CYLn$!)Lz+zrtG>r@8gPt@|_F^;x1J@l8{PK
zTB*+P-hR>NEr<4t3Y-hOzvo@<(H><F{*OKPj^4ce=WV&gI)l^av{?=*rMBunRm}SE
zg_T7>&T4XnPIwx7B-7@NM>2K)&Nfv@`_VJ0Ky|nM<dc4HmIx<ky!>}8HO6p%r+Vh>
zZ~jqnI@7Oz&HeXX?P197>ydxs>W|r%91#9<cj4TO#K-;*x;&Q^f4JdRJwa=3r}n(V
zvU_g4Tz}@C<L(MQb8EZknul*xN-WkeO;Y#$t#_&K=WqF|$FAO-?EXrF+1SJc+|hXo
z>gXI7-1j;Bjo=!iW1s7GXoYT6iVmE!#3|U5ZyLYAP9}3EM@a_NXwbaz`RsJ@%`6U9
zomx8ucJH+{w!QzQq~3P-lCzr@p6xc4s+at;ls9{da@TFQY%i0`XRp4!>CdaNH)GE;
zN!3G<S8H<i%<xc`+@j)>pj_cGb?aF+k^22L`)hvRUd^g}A*XxQmWM~UR+bh^=Se<y
zG03dk?8W4`X6Yf*o`Sa$93qJZEvJ2}Plgt&^)h77*xXvtn&dgh$V)US)8t`Hb|_EK
zsY$B)uB-Spuk%VYSu4+?`(F2;^$Qi#qtO|1(huj(&#0d*vhb{L@waW3yE{%;ou11g
zx?HB-H8g#NjaWoh=f+z-y6e0DcW;*QWmP%JJyYdON1LHzPs)o{oo`ZA@7Ax+OFpb>
zQXTlGt?yaF=7m4Fg9T3|grAR_Tl;e@lRk5ZX2g$Ixx!l~U0VJ6S^Le++ivfBf9q=a
z^J2v#Zz{hpyj@oQ`t6_Z-EYtS>|g(H0=swhi`n6ocLM9%4PLq0@2;G4Z_kYTM=vgj
zSk!CFH0k5Ha{(D|Ijq8)nhb*vI~6vqd%m&a-d2m`3sW~;d1@fXT<;Mjxah3q=FMfh
zXa8S$_wJq8?azzz-n=mlE$LA5h<H<;!MxdE$4S}y_nr9r&c>}Pf4k{!%WVJe55Kcn
zWnF*xE1BK-^v%*8yYuSfgHK(L-F?&bpsmfa&8ugxU$uFrv2zbYi$Pw5?6G~Gs~#Bi
zaPVp~tm=};n^bABF{^!2#2q=u*Uvlq)?9FP=h4}k_ieW4j#jC1izvHAzeIQL-My|{
zrSs5U$u0k4-f|>gxG;MwbIp?6xVuh^PoLA*)-`P3ZT{Bs@n-(#lg_>~n_vHK`fmLI
zKJ8+?qibT<H(x8ws^PSk5=&`SGdUT$(?DRt;R?6bk8z(FiZaE;Ip)hsmF>T~Z8d-0
zj<f6DhJAmXDv^CR_U@Y|)BIcI-CwK3pWH2TKXlc6cmMOI^I~_6W_`Eaar;$Sg0!2X
z+L^@1OCC!2wja}t<4)Z5boaK~jpvt%)fcsF7M;)%nQ^i5`n3mV?!E7A_j&7hY=@ed
z+1C8oZqhSUH!o9~^!cGi>4k(XZ|`Pp&2Hw5W-y3R)o@Hazi<6|^XFV;|I7AU+eY8X
zKNx>+Yqrpo`TBWI)^puf?aWqF?_t&!biVxhp7r!YLdSRTZ<}*`#=WxFW-U$ob9UYK
z=VrKAe?Rvj<440<t7+nio5fBSNAOLoxjQ9FWU-!#|G)PtAznZK=n2ga+R!P|o|mK+
zmY|frAvS2Yj>LqOI<f^Tb>4b9z1uIKD*R8qV@eC}nglE7!>=!$pXui5Y%zI1Tlb|&
zf|_p*>u70SjSxxuyZ!s?a_a{SGqwbNGh;D&rttDm9c%sb@QG!AF55G5e&tB9TvB-d
zlk@JIad%7JmUiF1wRsEck*jwtw{MQWm#j9oRim0ERC`(2?R&Ou;_4T|7wK3xuJR2w
z<Lc~NrFkk%@k*da^E`Q%p19(5Y=UclCa%+%Te~;vsKASjzn<3a{-<^4|Jyl+W`_%S
z-tc}hW&f~Fc=Im5E%mQI)p8%)e^)1HMt=L^3lfE252wYvGrL>0v)8%4_UG>D`uqQA
zFA+`X{=9#_^*dqriXA)Hc0FM4-llM$%OrWbk|WE`wsY?u6>~hBaPaZj&A(UAew+7k
zS!})Fe7<PCzkl6*GT!P5UTXidB)-dPseiWJMD`_9j%;AAWSHYz*rn*`SkF{&{FpYQ
zo588rQw%~sCYo^t)pxl#39B!?yfaf@Ql&A@<^<E;9UbkJ6N0Ac{Ol2G<T5$&Lnop2
zq5E=1K5hLa63-h~{n+fs;_!Ehz<xKihDZS|{wtR~HAC71dJT8JGx%~m=YuR;)`Hr7
zDmF%b;>_WXOYDyZdu6#k4fe`n`%=%r{jl9TtM!Y=@gFi7HMg&F>QCX(xt=~fwC#0=
z!Oo&Loo_eTG$cG$s5>Ad#Cp#3pv)&(r7)Y%p$Bqz#~s`E?)ukHf~$&Wx9?jSm7cgv
z^!2Gf^2{Gjzs*}D#eR(EFwd%wx%M+0wZu>7oVaZuE4^^-d`%A}-6v1hd_C%Na$RG~
zg?eST%X%6guk`D_u5$jf?S8P7p0Vn+6YbL_ojA_U3)p^BVD*_mvwp!<x8_VK`Ffy9
zD9^~@Ycki0OEU`knF?#B88U3F%UaC2HS0}JzxCRS-wHMO*qZYy8Xqk*mR+#7@6`Vl
zf2;i>H`{Ca&byfSmv5C(UVte3zHZU4zkRKg6E@$jKf25Ba>KQ&vK|RrXR3XUovHNg
zjX>WCIfqH-tnV1)dURh@k(0Ffe%#;hY(r+(%|~pjIX0xRiakE*W6{r%9`Sm?4Bw2$
zh3?z$wyJlVn;+h+{XAjo6#0NlryP4ucZtn$;nR&?GySenNle00p}%3B>-gG4_>wHv
zTtBGT+A8IJ^J4u3^VPA^?Kip4-|BwW{7`5S+qRvP7Ea!@?DOgO{Kb#XCQaR=B)7EC
zQ^(3AMQ-=}sWYA_Y9CE6_l}v7`(^3VTHDwR4j;Yajc@hlINskb?02|xl4}HS**;HK
zzA3h^cNg4Xt@|am`_SSi{;|9J()MtQa{f5`>ui#7X;;WXLm$USZS}5`{>eN%&?pcj
zdT36N5?7b?6V>9r#$#S7cU-tXH0s>ga`t9wlEY61UN7+*8+;hvTE3HYGFq)3B~@lU
zZ?)$;4%5l&1t-M?eRlYNaJ`|;f>#-Sn;hHYk6G<wDKa_GA<(w+oAKG44Gql48hJQA
zI-hoLV%&4SY5uvTNe6CxQIQC&*Iy~hV_;|+V_~^f)ktHTLRNJ{51S;@qvclTi}$|Z
zR$gP@!2TmE!#{!dNp<6MqdSYbE!%hV36#sM+8x*S?pw~AJfEt3mohm$KgP-v@0@=x
znt!Y6k+z@SmEf=`*~}9iWnwNaF^{-tRMQupekUPjzsqH9?IWr)d|00zExW(JqyG0^
zhh}frC6o4<1uaanlI8bUd*I36vi4aizc{pBs+#t*FHIIXmZdB*>Ezy{TT`D+u>Y{(
zFXw5U1BJ3;;_TBbU%u5XwvfNwA};on=eX`M<DPBd*M2USxNMrVpk-#yOXhy|SFGMV
z(eYgWZglW%vygMxSYx$-ed~&+6Mt-rEwz7N&;G3O(Y(dg-PO(A9xdtZmfK{^tGS<u
zN*O+yQupKw?>rsp8T(wg3}p{5jtk;uD0%(&h)K{Lc7|TP967}W76Kl}`<xqu6Kfhm
zTr59Eur$1rZtsb6KKgW-AV-zwS>+F}Vpc|$@8&-gP|oADVYfjw3zLa()aGP^3j*2-
z1x6~{>)q_;U5$7UI$<K~2F~9Cs~z_)5xZZ=5WVK&<e*{}2ZLQ3DlPuoJ(Fi_P&_j|
zk;#6RK|ia*Z(hsi8yI&6US?p~yW|<;kH>#^A1#w_Son;iA)zF(nC$_><Fiv9Tb$~?
z-JAHpv@7G}d;#Sd+y<H75;_>Rt`OCD|94e%h_lQ3h)#j}grda418U1Vn*`r97Vszv
zY%uayXW`#J`P59iRjf`2)HoggZuK(SxqXLQchNB$PF4@cGhOP76xMv%`khf^Qj|lZ
z|H6PTVa^M;?`U&c_DX$W!baPAEiS3<o6QO=Ya1G898vfl+PuJgJDX$R%sDO-48`qb
zSvEM!uqkG+3OrHasNcC>%l6${TNzXD3YHs(H$=>9d7i|iXfsjx+e!{Y?uUMIEgGv>
zd#<Rs)#iszsG7Wb-K5NGom)lXUZ^uQt~ucoe0It7D@+1aTpf$HR~b(AUB{GIvvH}v
zu9j(=^v@8554|r;?w&I4$ztR%=5)CqE!uJKiIzZT@w~R?uZquCS}@dmr?mf7%wQFH
zqr$awy%xvby<dgd&KL&Go#Aa6b^1ndpg<4DNxnk@SDE<ogxdFQml9|_8LIH<X{H0i
z!ma-7OrK`hFm<dDyXWRBw@qYkXyXgtbxaErZ_PQGY^zig#UppNqon_+qrmG4dDgGe
zKQQq9a4ZSx&Tm*C$#1W-hhM6xUg($JF1aS5H}B7`Pny&{;qsirf25Aw4xiTESsuiF
z&Tyt{_q|o;65Y;J_vf~#-QVvKUXe9t)uhS|-Q0hswFN#fY0`@8_-HJCASmFuCmT~w
z{LjW2+}vf7N8LVgyydWacb`dXo%h>@r~GI8<K9XwYt`TQkI{z3|I*gX1Hvp@d3x$+
z7c2D&{a83f=!E?9o&rummh)#*e@dPU{hu*!-qUNJ@7VAf`X|SjPCx59S>X(Wrq8|;
zNo@?N9~l(<3>zOl*OgOnH<{Yi|Ku`5q}GBfdRx>PAGJvJJ+-V`;BwL8|E-9O|GZO~
zt{*=c{qn<ArINI{T8v)(&t696*`7apS>UsYTRmfd+wq@G?R^(dK3e!&#4ofVxQjn&
z@>Kikj6<sho`0#xPW^eIl;=XMBd_#sKTZ2LR*}CyA3t7oE&Hv+d>#1*!FfBF<^|OV
z%w6;6X7k~Xb5{x{=WMEYVb!|j%N(bg8-<fTJ?A>hX}R`3i}IIKYroXby!z?;xoUZ@
zL(49U{5{}xNaHB;e-~l<BWp^xUC;azpPIode)%}p9Z&x+TN{45OnR}*?(z@uBL<5O
zP8RqfB5I;wppc)G#bsl|rSFrPmtK;gU}QP{LNk+A{oQEq;ycGc{ip{g)}|c)T(@J=
zDi2lf&bdX4Ituxw@hga{2qrpq9*E-9|M~hS+vkV`@zb#<H?95T%2HLGwyS#C?)~o?
zGYW$*JUS}bTQB)<DXTW9ALV51xgzc8)n9L78JCG4Jy7Y^Sr8`rzT070!m?Zc7oOVn
zNKPhx&)%K?>Mw_$<oIE2-yk+8LUF6!wTDwPz1J)Z6Y*7%@LF<VQ$kDj@ek)Z7J5Bx
zoLLY$$5UB>xwy<b*CteGIZvEXsFbh8^{CwE@)I}l9G=oSM=a;q5sj;5ocf=`c>cF}
zUJCf%^{{Y4y>!T(eQIt!J9W>k>)t&5;EWkE`>nNkrT=jq_BX9x5#-{Lcc$;o=O^)j
z$7MquJdg7o@0D!KUD#s%wqLe;bKA`A=fhuHd|*2q*YmHfbJ~QP0sqBUaisnU@z+1M
zuVP)y!Gtg_PW^S=C#KHO3p@J#`T14Xr<~mO?)C0(r;i446#hHgbo=w}Wh<>O>^gl^
zX#LgPo9kxzR&W0C@X_l%b)Od3uh-k8VV&(TVS04y^uWhYJ)TZizkTx1!y}wwx4yp1
zkv(e}_@N_3_Sl&@l_KAl7i~CafBnL}ji2);S*|h@kTZL@-u!fKW#rcV{O_;Uzgo9`
z_3u_I|26h{D)#H&?OuI*S5#=O=!*5fes5Zz_lhg*yPB`lV+LWrvk6+~9;@wr7UR34
zUSao?<eQT2PYy}){;Aj7eOsz}>yu;i*1xv1so7o-H^Dsg{_<X#v&)aB*g5_Qp5T<O
z`Q_b;m8^#!M|8<;%bd01bL!QvS99g#PWe7pzkR(Wa#7^GC$~>**({*$GvmnRE4iV4
zzW>5=nC8h}6<B5XXz_t{OTP+w8y~uKXuBu#^OH`G>nAih3m)E_vwr2G%~f8Da+6-A
zJ)h`eXgjO@?5slqhd;TPe@!)czba?3;i(d{*B%x2GAEwBGRr%Cv_LPb{?KoasD~{4
z{O1ciZm)YIf9SQZ>57<wm7QgWs_$MaatypN+2CyV(-+%!|NeI(t>7_-`y2aRlKrwf
z9B*vw`_8Sl(0lfm`h44?hcaiMmbFzk>-ZD<H7|JUhiA(?Z<Xh-mMXg)xIBW(cE|m7
zyK9)1@7=v`-7QD2JvNcNpTc9?1wJR*{h6p%yR~uGMY+(sYQ<B1-^<Um%s;)4Pf)Mu
z@85OOlTIp|y+3sL^Qw>Mg}t+qw#?`{b7IQV-%A&X=*_FKJNJ#N{>9JO`rWhK;@{Wb
z*Of@tWQosXlYYG1m*-vngr~nYy}j&HpV?d_wlKQj#VwWRx49gbSD#H!tttEdE%)k^
z%I(rJPjAI*$lbG&x%1&$Uhuki3q$H7x-v8kwU2t+%k5@)>%ZaZ_Sydu(+)S=U;W#1
zU%O;)=KUXU?+NG03-?@lFQazirL97J(>94>$6)ptx3}k+&gr%{T+m1?=3bnoUFuXG
zCaB8uz(;C2r*O`^l^`7bVCHlAiIX_?GiLN9u{`KowerU2E9WI=Bv-20vFe2T31uIB
zyurp$w(05mb$Rb!@2l6ypDpb8BjcuJ`{`G6`3^SvP5G-S5X0%W;EW<i-^w3-d~WrE
z5sP+2RIk2r)h6u@UvZbk9}CHC$vc&_mueU~7zRI!)LEvu^{>l}b23Lulxu4w^UwCl
zGQ3z4^qk}V!-aEKwEl4Cae8FnvdKW@@aBtm=4dVY+4rx!wpKWeRiumir;nx13+4Uw
z5(l0BTP+a%|3J9gYX7Z`n+xW=5Ps5F{&>pFmGw5W*R7uQGq(S*%5j-It5w!%;hGba
zj`Y3Tx9W42$_#M<zXh>&d*T(IPwY&ySQ3*YG-dO#Sq3Mo<DcEN&xs2@bvtw&&+b+A
z9XIwIezLJg#ou#P@2jsoJ{%ST{G5lEywVL@7`roWc}Y)K*8XX8Ru^26@i`IjBlE<^
z@a?&A>i?gm)<@g*YuYbbQTA0s!*WmDmG38=UVJ|L^*1BaR>3bZ{Ap!3lylp(4!;YR
zymUlM`QNrqC%!zx19N=W6}H`d{QTmL^^g9gvHI)ro)GLY?#ka>+b?3zpCF?a@HhJJ
z=MsgT{Qh@V+-ZDrV*4eodC?Q@{P@tqJhytnOru<<v`<^OXP#VKA2Lr|^715={jGLO
z@;Nki-fo+-wC-B0$1+Z5iN7KR?T=<i*Rs5GS>{~u{O5ybrvy$eEiYbH@!)U#hk7fK
z?aIHFW#+v*eRbuH4DH8z7N=$ZX?o#d(ae+CXQHvR^_q?3yE-%TqWV8BOj743o|s_U
z_CRx~%<QauLCc1zCPg7k@3z)|7T_;;dU~4og7ejHo+@UZ`!1zNJ+8KOkS%<CI&#Vr
zj;oPB?9Zv!S8!)>I=A%hy>;RJVZZ&S+eAYIUdA;3;Z2v;E8F+KQB3>Kk5a>!euX7f
z*G#8Pk=tc@boJ)x7k^x4Wu4mmqbT6<#%E6^F-LPeyY0yL(O|<bm%1J2e=F)Lr`A8^
zJbUp@nAYrwFZ(6@xV{{y`t;=7-E2i4(`Keio-@836!BZ}RQ}?gXUqn--#wle)W@-T
z{pHDJ3}1sky5;U->1B%Jy>Rx%1;e?<4A+u#k{A;1yz)3FU-{PkY0do)V#kZ@&TUL_
z-Xr{Pm5{yC*W1CxB3oM?x#R`gA3a&ZrZ+LjzTPKytJ|z|EA4}qt+b!Ke5L(l_fB1X
zqh+d|c8jm%@BGa7aLQumZ{{KMG9pB7ba6e|-udA3mGhQAty}g_4!VBvj=o9A=64_O
z%%8!=UmbPz?(JP!X}4sU72_O!ee&S2Z1}}0T{Yp~);#9xM-O!cGXFObFc2y`SG+y!
zC#xZYd(EeL_5Uo`1TJkatJs!s=EUk%IYAP4w2LOpSnqx0O_`l-w&RwQE0@{`w5~k4
zJwD!4H0yjxYDnI?!-w|={yP`uXDAe}mYM%**?rB3={ybooYhgBk$2<oGoJX7we{T8
zdjVf+E&C-kE<D-RTf8;&V#V@)U73EaiJZAUciuSIpQ!kpy6%3x?2gkaF*32|ni(G1
zTEwU>nfc~j)zOaErb}~n_ul?_p#6}*w&Joa{lOteTHEgIYPii{+j%@-qROOMvJoZ|
z=W`oB@oF?WZ)F$s@B^>#w`)SjWaKu?5?h{ARD50be*BX}#j}~;w!L}rPfU4Te0jaQ
zx7MO<TIZ}a=X3~~f2n=2{!0DQ(--e}-(r7vZ^hF*{$+XTuB}Tu1SQw~eap~vea`u>
z-ZvN4WmYE0uMn7Ar#Y$d_BEE^lQJ7G)h<aWdgOY}Z%@XuZ66A6Npjop`iNb)uc&{h
zB<8)ixU#-c-jAp@>mvzEmp`b}+OK$R2a~76X=UFO8QYnMD>I_?b{?Nq^E~BGcKyTI
zdmn2buhB~q)MIq#i~Ht1U(0>JZ};h!ZQKd(-`35WkbJ4!tmBiOi1Nz0Ro6{^X18AX
za9caD-e*2zfxUCXe>TOSnux!}_s`dc7OWAsIQ2w6R6L+})|clmS*=*V9GK(%l|gCw
z6t}1Sf^*kTH2HCPhtCWV=9yM2S&d3tIxhdIR}K<-Xnuiti_E*%u_;R5Y`zxjF|Y9q
ze`CLu=fNd~NwPaX`uMa*HJtx<TPgGCdoi0E{^82Y7yh2ev-!SsN~%4_UF)UwTzk^l
zmN#v>tncvig2VNPc_-`pHCP`>y;`be<7ekP<;4BNs?#Kr=I=L%(wS)&A6~kn^Apc&
z-|MW?3L5J*%9xg`PnrI3{rmrG4{w-#s{P{k((A2LgUU`^FA%HjyQ#2YV*C1^OF}!?
zvR2*H$nMF%&Qde!_xmLk3Ag!Q%y9Ak%lX)H;f1r+3*K{Pv?@GZd_d->y#6<%on{wg
zFG&5!?%B_uoX8&Uy7RE5+mV_-Dy7@!G5<K`BK9q3(wn?h>tgD^w;RdNySzPWcFFA<
zVY6da-wm1m^x2jz-}0_+obf-x_5If1iPMapBs!S*%&NW6Y@8I(^i$!1ux-pKhD%yo
z+c_H6Z8>hi!0Tcesl)nED{0;~AFWpI=UG$vo?o3^ThZ`n^ZRWDDb^eJFL`+Ctzy9A
z-MvPKba%Q=sh=_V+|PaCj~x8O{AOQ%Q`cB!5zw1-h;e~H^EnC43(WtgCrbV|KK!9~
zYr|~W4ig#m{)NAsZ@$+La@KX>_xw|zrv7Fc7v@?plj)5KOrlJXV-f4$#zYoN9~Z29
zzW#>$hDWmJYj<dcPCOMZG(A}~^eOvkeu0fDiH!`s%3fb4?Vq>)dBmG0ZUF^V_o5h8
zq3)ZORaI5H_Ww)Mh>H#1^Xpm9bN|NsdxWNPp7Ds6Tsf0}*{(gdzqdLq&0iJqxyM*^
z&&qpYD`zY=+WzHWFaK2`Q@j1U_tpP8{WQYhN_-%5oaeKt+qUgG8{eBAW2w6;Qj_CM
zkz|ePj4h5Kmx`XveX=ljm+sCr=e7h3I4}6Ot-|f-EY`<8FGaG`XHK~`>zu;fO-i0`
zw(6d1KDVnia?4u<m7ifkzuNq~f`4^A+bLMPc>cNTL4vt?t2VEG^~N<w)9U!|2U~?d
z2G?6wu8G>3WMr{Z`TM>{|L@9_FKe2VRO4j)P{ifi8ENlh>P72UK7af9X>MLcZ`%D5
zyI^<Il(IQ?FAs9OdiC@4=JWf_777Jux3}o8Ulp@Dq{?z-omB13J&&BuFMs_q>EF@H
zwNs@2GOMndY5wx|=Hi!blT(ZJ+*W^<+Q00}jyq@8zpURYxA#$7yw0=9nVWN-{ZKkr
zU-xr+*r84L_f_5G+O5p$QoAwKb8cx+`IJwOGJLCYd}>?d%J({~wqKm_(RsDKVoZ4B
zMW^y*i7cBxu<GY8JoEhQmv4L8e)j6UoAvUk@8*_ce=_Esy5~3jxl_N|%iFKhyk;Ge
zh<Y#W%yRaGUUhSgb$#4jAJ5;HUSE7$GFMJ4JUn7k>aR~ZO%wmDh)mpg>9Wn<7dm2M
z8`fMqSm`8t#{25@#H}8aXY?*sU{v<`tn>V=T36$7l}umfklm}-%Uljyc2Di>{uPZ4
ze$$?(U5UAOX7<<gof*5l_$MDNnmg}PKvIclw*TdVMXQUAcg^m-{yylZef@b;dEG^F
zdB;9`PLB2u&lYoiykXY?i|>{0J)b+orN4x=-8yssg4n@?$gYnyHqkNZn#VUsP8Ji_
z-kkOO{G{o8`@0W&Do0MZnCdaTtwxo%|9#d$mMuZ$_jJReHN(#O&U;-^{MBsRhqg-n
zcI(4NTo+&ST%I3yJaT*Wf>l#RI<mFuvlXYrEqQtU_e!%l{rhI0n_YON`l68Cf_oXk
zAvW)~Hf2U$HPy|WabVlBTD|Q;-n(zF%AauK@SeLO9aj&&JeBk+=tqi^{XA*oS8wz?
zr)ErQh}R7_X#J?dxi_n8rEl=w_*tHY3-;@$ZGOqMdQSC?1@?Bk_Gtcf;eHjl`O_p#
zi;Wuf-DaNC${2SAY4<NZ`t7CX-i&aw(+Y{6uY<m=QQst!n-{$EMdyW8haF>==)S5*
zP+qFreSWuUnWx#=+aLGrc7N6^=lS9Q%eAiMS7)hmE39{7va~-Xx3ttmL&<%z_ObWn
zAKyOu`laEz;4#IfQ$~E&IUZYuR^-*1saCJioS6T4_pW;5X_m96zxS3nw?OJv1oIjW
zo~zj=cVD~T-Y9TkNBQ5huU6~U%9#Y2?s~O$OUwBuir&&s`ZksxpLEJVJGFkzStDN7
z?=y9Lj_=J*c(8e2VDW*thkcUj3Lb~w{C@24=cXgCR^~#k+xgq70-7C^&#amoxs;(}
z=aK~Hg-<SAm{px~Wp4e^-I~4)(^!JVJeYiWiZ6*Lt5nOqiBQ&<=C%4@or&?GvR{Jy
zej(b2K3iwKUBu37KJnXTr%JPhtB<~^vV9}9CB^OM?{yEm6Js@xG(Pxk_bV;>>cU{X
zNnLA<M7A`YI9P18f{E4LqhR;iZ!V>~=2<o79C~qn3Cq6y$tw<3#NK)vUtjp$F-%6$
zsOO)_n%otWgZdBu3XZeOa1#4^J8FCP$vE49eUq|k>u-b$rL}N3XnOG7P~&%Q))y}?
z=RFk8#>Tqbj)(nD@&kt(hDE}YrY)MtZ*8_v*C}Pys!EBDYq`sBF$kTkTYhq*qq?m|
zfBt8gfR7T%TfQq#+-Jr-!_n%biCO)j!$BVHZ-f$7svmu%=2lX&&*?^Q#`U8-%&MHO
z4<4@nY+gA1zS-we_oPsjbD7QE2Nkwge*YHZEwV<qW%qN}9%decwAn2pJ~i^Y?L~H7
z{=9Oc_4ZTCe(#BNy!Nux&8YmeVN0awhHH!V%TIgGxFeY@^veXXtqz;S7%jtRJoqSK
zRe$)-jgx71niu}?+PZu687w{f@7=fW-*VS1F}d7+>wU?FgH|#29Mc4XmT>jo$SAtb
z<5R|(!ggQ%v^$$%@PaR2N{zd{mOW1iKKUhMTFA9WuXb-Sn-aY7%d7R<UlvdPb4<)I
zLU^HvObp)}$(vzU4(Kh^f10+hY2lh{t_|xIv#Y9%>*qZ;y2bJ3NHWuIse6p4jNX3Y
z`;iq^CN7q@ul34{7rRa#=vCgxHPLd?zq)11JD<PUb6X@jZ|XA7Ox2@zL~i@7e||IV
zS$9y}mwTSQn{%1Ozw$n@lf9g1*Y;w@v`EjCGkacLdnBSE^XN6ZQovkQJEm!o93kw5
zTaI^$Fo~`^$=&{={+`f^T+jIqx!u26vZC)K^4xaZmFha_K67K1V118ZQoH8e;6H}K
zE3PR|`t{v$!6Chw!v72!qqN>C2h?j!WSux~jr{DG89ej;O`fbFxZN?@CN6E4DVxZn
z&~TT{+YFB?eTym&^1q+9t+TLv4u|0cnUnX*zL=c2mlyuTJSAT>V0OLuFNSJqr+O)=
zA7N1!H*MEks-(ZGeO9iu0L%HtPt~?A9)Z%c@9c4kGJ3Z`iP8H~{Y(?S=QD-Gv+Uyj
zSzp~dCs$zOw9AK0a<%#Y*cc?eI6Ya@BlN)pslOF{@sDS#PVBn;lPB>tZ@`uGo!2V1
zdimRbY20kqr>PtK-0n^~OO&BWeNfoiG7;;z{ihGBKMOmWQEh#MJG;F#%<_nz#;SdJ
zX=h7MciQ@E6h|e+6$dNb%YJb1>uzVkl1n+)Hg8L1dOBfZVZDu{_hC!hq?tlzR-T)E
z^lk3K*7Vkl>g^}jByDc{v3~hx&x4s8LWCKfIL$9&UDVrAcUAO4(ih<$ch72{ds<rm
zDq-)Ob=R#UreE>7@=r5hd$;e>bekQQH)MvfSD%Y|WokTg^E97%@0BNW-@bcXpSjO7
z;!}ppyad<AI({X=Kc_uCp6oq6S>%JfOU73I)61-Ozpz{#rKG;NXUBuN?0Z8eCcIYd
zd~ro0!g=nk+{I`0OcOe?4$eDwb=wr@{6{;t`=!^*PM@<Rw>5XK;mkeV_AO%XL?gbO
zRMmaXe5&%^OM~2$^Bi4smdwoKc)2CN^=o6~$;TTHYI>_$^e_M2FTU*h;jr=#f1_CI
zR=woVeCT#J_{qy}1#hCb9I7+td|R%sR(SW&tmPhe-agFe^mWm7w0BBM>3aF$(?y~3
zYKy3(ge3Vd$@MJXwp^XJDY?p4Mz>%=t=eB@m1#1!16$NR?!0~&(Yf?UT!@qHA$3nz
z>2I2S3$8nBZ@jWaw%Pisp<)V?v8`@LhJ_;Eov#4`3#)`WUKI#v?&W2lxQnC4zR$z^
z_wD&IZc7*IuA9F}<*wW$n=8wX`LMX#`Bds%&}e_|{BN=7M_q>cH%!~amlSXGuu55V
zF+Jk!&Rpr^GGCO^Z`_Nz73<T!Bkk$JJqxbIowzci_<iWK-^*V;x9H|vqPpNW_geGv
zAR*tz!ijJ02%XsCcyq=PX>T6cUsnYKoUP=~gh}2GFRi@3ZQbo>sU5p|3L|4f^j9s}
z{o>Y(KPkH-wm;c(p@Vx?V{2YLPf)=_)`msh0;SQ<1bAFaBm;sKwp<OI{CHwhhkWUO
z?X6qFg3>&!jAA<a!`&~=zU1i@@9t=*Z&@zeDo~ii=v}g2=YVQK>88FF3%@C4{Ykza
z_~m|(8`u8D%9<}6E=b?J+HT_GeRg-7%efE<tA{p`o*A0X8-4``2(|K@?Y$RRFLbxY
z$m|P`r*&IIlF#;@b)1&!{?{i4`Xv0XW767nT;;lI_iF3RJNsr=)IM{F+;6LLyS#nz
zWgUmTcfQYl>OAMx4xdXb;Sw?`i=teZmj7P&WP6kwQ~K2yrE*^pzASn7hg+s=#v}-t
zU7DQn{KbXnWfRx}MRnQq(zbl{v2l7;YFa<<_-EF|FE;f{94)q1{#+^HRo?d{z^Lx*
zrNh%7m&Beb(Q`d(@Ute!VuOU+@$9(51gnUUp9Y8CTF+wL5qu&b$=T(?-r(lc<GTg-
z3d-#(a$?`bIC1s$H;3;t6}aF1oe?a~zkZkX)}K#49AT<#=eN<1KiFrnt6MZ<X2gl(
z+iLE&*7JAz?pa%Qg{|TJ=cM$1HymDvZkls)%R!_4dE3fDRw(5h5{<3TjHoluJ*9fP
zLOr9}qi<8_GKSdGSC97k@SDj6y}K}J(i&gEj59}`Z!S(vEc&_Q&!=a4GdF#lc+_s1
zRP_GrXES+OyuP0LmzI+7eZ{PIowgHsx4iG>{Znc@Pv`i@dV&A8pBhX0#J@C`C@fV|
zPf^VMS8Nhk_VHlkCiYLy7kh5`E#jJT@X+MSEyBY89%pX*E%g83mZ|^xmtE5P_uwL1
z<(9>ro4W6}s9Mis+x?@&!r-?HUyoiIgPF~d#;IBDmK*%ie_I&*o@Zg8pq8~%ac<2L
zu8hE>s;4FkzSl_!eC?@UY8bq=nc;kEY|Hh_!E&37ljcwN-kha=_0`JqSJy6;sLSkP
zRCsw@Yn5%uV(-@_-p?AHw+FrburPZ0=IZvmuVHuel3vWW)%umJ@Z`+#m5P5)#^~x!
zwz3K1Pq~|NZqmi0v-f6gVEDC8>*~A&{mLWf8e~J4O6ICx$;#S2S>^E|RjYb)DVgcH
zGmk%LTKCeqcV6{uCHv=IFS6{X-d<Qxz9Pm%?A(nRr)!>s<Q-9$dzsX~ltn2#>@rK#
zwJ=3}LzY9^U84;9AEs`d9(C*C6s~^mj)RG}Ha>Lsd+cVC5*u&3!9|d1<D?UuOAgq`
zTuM6QTh<jd>vzc8Ejr)TU5dW1@XVWGUVr2IlpCxrmZJYBaagph6WHR~I>RQ=R#*S$
z$L!@_&pGc~zVCU>E5`SqS4>`V?eCTO6aKGkmkqFe(D;f`yyR14(Cg+`{>M45Hpi`y
zD{%hWApgtWChzvHMO6pHuYR9<@%@h}EiSDG+wWdB6YiLOW$$HoX^HKNqMa0En|E9`
zb=kg4(Q@g}DSVUO-R1q(u<^@t{T{y;{y!hH?R#F|v+{GjWbkFjc|yPWR-{b$sL-5u
zdAg2MN9~fQ^^BL=Umck)Ey$?BY-S8O-G8GQqgef>#|jN^T1zL?EGTnVQPeY6+ZnW|
z`+wEGy0c$+(tq3teWTERw5aXs)vNKgyH@S?SncY%dV09Y-}<`RuUF&Ou9>0Yloc1d
ze?4ew>Xd}1PUzLIxnI+imKkSWdGd40#*_KME1#zPD+u?m-}&$M)$Z5YY++lHDwjN&
z<MDdc?A@#5>$T5(*~E1@Hc)9!=+)&~`<5vzyY+uD*Olminy=@N{@#D*j3ndVbNmZL
z)y0}#zS6VfTG;vU%&V-q@ezmCPF$1(n#E!Y(pc+ayrs4{IM!2HfvtF3#oll0RSQpP
zgzlN<CVXyd*in_IyLCJt%!+^RdHv~Wl_=}Z>3gOgv2XO0dnI3QXv6!-|KIwGGc6LE
z*Q~o29=={_NkZTIxl`L({~!8LocOehW0}VLQ?{Re@y8_RYgSC|<rh2C({N&%!OA@!
zHy$x9%Co<JXK5ohPj%#<{+_f6Hv|612QF&;vZiUaM!4YtFGa;WDuJns9;n^FmajQ^
z_SL%5{XeU$gq?im9S&@o|D-;1({s_f%gL=j<F>w@wY2qY*VMgM(tO<SC#5$`Tx!MO
z$fa|$la1xr83C>)#kw6Ghq|vGTQ9LCXxf%Df(u!1u&?4d!|45vLtJh0+Opp-d#ue?
zhR?RDi(2>UZH;wmNzvw*w|UcEevMxBqHLAg*Y@_ed0z{)ezLp@(5d_VwkAHmtp4}g
z!|i_$mt{R^Ir3e<?BoBWt@r9>MW!xfcyzDA^#a3lwNsy`6<<}YHV&TR_w04)q{m;c
zBtCPkin?;TO4!~>#cJpMEvIkt9aga{v|0cE>y*nU4}UA(E63uku_(9s<)6gs(M-nE
zGODt8+l>m6QWiJovn_8E{g{*EBe2>hRpX9Wz2l2te2b@jeYI8~&3?~`qz&=<X0y&c
zn7`c3=iR~-<4B)$FQ+uu<%c$%tl6B=AT53((caj$(ax{+^AG-0li7;WIvy;t{_u0<
zON*FbgPXEn-+f-ba`A@Ei$7~>1ng-1Y4v9-Tj=x`@}Flv{r&r^WCDl9y~eV0jLsg8
z5&5?!Z&MJdcb@U8x2i26<II!bf>UQZBV`{=+FcOFnZ>vMWzQ`8J>NgSdXQ5d*m6Bi
z{j1Wx^9n8Pw>wgl*%wdoSYmwZQ0tanop}Gyvf~eq&6j7pzUTq}rjHL3e-|E+oa=dQ
zb=AiAKi3_6rkzt1``0yATx*lrWtq~DypBW5CVRxM`Tq6W;b(I78%ri^oW$XN_KD>K
z-cPA6FNHZWRTl7`+{{t&LCfw@=#AE%Jq%yD!~Px4Dz@GetLe1Trud{-=exkO5l%B-
z=<a-PdhWG<#+!GA%m#0p{>WM6OgPx$=NG%c_6Y0BSoyo_OlDamawkSC+oU>Gv2CNz
z(e`G>n%%xkabJA*Y5&xD^1S}syzRmN1<sl~RPR6I*?L`{$-&29QREfnLat0H(OkJ^
zj|Cz3=D$hVcmKFUk;}a^kCH0ihy7l+<A%I>I;XB|qt&c6S&ujKr>WO{J@(Af&tq<d
z48O<1Pa4T9n!U5$&)m1?i=oKH8{Iiwk?!Wq%Qk#wT*%ivpY82-V|_CpF6q}i_1+I=
zPFT$<n6tCnEFx)s6r+sgPFaz)bK0$Q*6w{8yVyf4;>oYO5pB^$0w?O0Tw&+9x?7{m
zfAZ_QfjuhsGLwG=&6yQhWK(!gcH0W`&u7#A>-hbX^O!qBdbYC7Kc}xA?E(!g%Zzh2
z?}~iaUY?+m>b2sb?2m{ep?q&<3)t~++7;D5JXN%KH+OVSNX)$FtF|j^+D_A)t^4SC
zfP9X9{i^Wp_OnUbZ=7o{7hBzt`#2?8Sm&p2RR-6R+o4>k_jBydPv@K)yT<s`jKEX2
z0X;<$D#zUxY;k;eynp_qA5EVt5`Shd*P2`Dt0ixJUeojQl(QM<CdMz|nJ;>XH+1Pt
zy~#_xyy``#hNPdg{glTT*CoUKe%YTqmdQO9PpVg3<aAFettzaIka+mz;s%5618aB_
zKHg-Qn!F)pm(R3s`fnm?U4Bimb>YgCwz!ocvLIvP3n$TiY5neA3P&&WZ<EjD_$>OD
zbAeGT`-=C6=dD!hwcc8tcD#0%^X?O(m*g4Dy)X1A9uG{aKXhb^3fIAZg=%W@y>slj
z55DQ*Qkp5nsy8WhRUz|hLB1Q)Wtue~T{v{X^<;bY=ZY!w(&EHKx$T*kx?FF3>GSy&
z@7@D@l#G&hc=lHLgc`H|`*-8(_uhm%3MZ8O=Xf?>n({jEiBPPXby9-uDQ=}3I*AvZ
zF1B_V*5uD?xH`GV=SRJfQ0EEF6-Ke_t3LOvvH!xPeELRD;&T;8U)$t6g3F$~mp%HY
zwk_n^{H*AtR@vivmr^$s8ov&X6FQ+J#wucK%zV0l<-dF5(uuag<x*>0%Gn}pPkA3W
zl~M9=*3UPwo(mOK7haKkoxdgR#P+SBY@3Sf_paEudfn>P^AGSnnetnotG*~;x4>_Q
zoYrI`!DQuWSK{Yaw7YKX_{4gpXEDbzF=H*ip5P$$qE?mp()&H9Jz;wiW;lN{m&N3x
z%RTZwX!M@HwMF%mlypj9mq7=gu<JK}-8afX%JRisMz@!yT~WGe&~SLNcUr}?xs@iO
z*X1lj0<UE}*(&kyb!hhC?D|W&EvM>@4J`I9)|gYREK!!VF0|slG}G?N<}EDVTNnNO
z?`^R9cJTdkCS73?m(B>hmF-BbIy?32O2#1n&Z^Al_Q<N0+b%7fAQI8O^TY=3Y%iNM
z-pOi<_0yTcbYvLp^fad{sXjfPJ=N#>%Fust{*v>LSg#2=d9hh$ula`8zDqxxeKl{L
zZat&5$fZ-=Ut6DW+&eOV#l~qT4SVOt$H-j0-I=6yIQ|+3b5-)<D(N)>mxQcb4@?h|
zOA>s3XxHhf&n**f`Ul6IezM}zIlsI8TJI~^?!8!W<^cPY<L*<<XVfoOEh&1VztqO<
zpy=-V$}#5~R~PzU0V)4>?p$Yo=6jc{*)OeDzHO-gc4Wr4HsRY_TKr!9I=V&uPpVjP
z{|DPPk;&P=UA~IO^u2ojC*|`BrvBwUy>h3f6go5(g)}xxrbIcLyXpkq)w^`_Q@?(D
ze3A2-<ff@ypE(7dOy9Q2qu%M#43RR6eXE@w_V+cmeO@`wZndiBC(Q_cA0vz0+1rkL
z-nNY2de@dct3F*Sa+!T!aa+Ja`GsGd57sdH@^12fC_D34QsEIEqsT>G?O*<t?AdE0
zX|?EG@9Xd0OHH?WXRYe=4P6x2<KTC8(xth@$+8i?#-S&5g9DdXocecNO8)OoC82VO
z`&Ro4G~{<?SiRq|XrE%>w!f8cXZt-){=Mt+j~n~+tp3jOJXIc9Kk0w-F?YUR?svPB
zcgglCum9gJEpHiAeDKEfjG8GPc|xl{9y{)1a_fi0ZU*hOo&78#ik5=^#qK?JEogf7
zwdVJ`KXE6Wjwt%;9<bOSKI!1kopoNDRW_S!wz#CDsq@Nj-lTK+pV!7#o|S+9t1VAx
zE#KSBo!<}KU!pyCHh;{a0&)HNueHV}c3(}~_qV*}-f`*wyI!1rv7Pl`OXh7^<NE2W
zQEXE^@6QnR*|C?S_pe%nRpP8_Q}g?G@9UJmHGP_!_Vx1=L$P=EhyCL3G#=}j{blxj
zqpTCFbT6-TUKiIW!`(MGcDWVL&h=Y-rXO9j@BY2KR~<Vqa(aiFNaeZfe>i>3=HdBz
zuia}NPt{rC9lojLQ}W)ZYqKw8OxVY%zTwA(Z*wo4eCzxw>uvA9y5ilxWc2DEcjdos
z|C@Djr`CA|#kRxI%_8q#->nN=|Jrr``l*V-OYGE3|M9$O+GlhzE-8Nd4CyPZCSS7y
zU(fA-GM~5S%bG{kaa%*;-OsKMpUr=k*Iex9nu@vgeXHFkGy9zC`0~6;{QJ&%8&_Pg
z_uk^6d8#ZWlr1{RaoRM|zT5fJem5>PjqlaTKft|X^8|~nPCwjU&z!KPbL-nctqTHb
zLBHp%-hC<Dx_7rpO1JE`lOLF$Z=PMD%fyi6+<x(H*5+Na*ZY^BFG`B=?-1DY>iqX^
ztF?w^#Y!nG+dtIj?|Z!_vS5k+gUX__`((wgI;L;?o!ZfL{t=Jw;n<2_0sRMc5=%r(
zub$MbUCkTpp1`-(vu@MTU2%7Hs^_kV{4Vxe#QUD?_U>&LnKxQRUTiOY^D`sAQYheG
zyY90;ALjmk^}1eh-r84h>vW8YRqogc?y$c0`+lEO>Y|M&r!3yn|Gqv={{8iAdCS{*
z`BpQPzvzClO6r(4y*)!RD(SSObB9>S(KM6)iju46pSJ&2s+-~y!6dxn+Kx)bw6>Zp
zb97Jr)G0bAe6MX<%6~-(6T2rO4goXI*iPh?WLDa1pT+S<-mF7$w_2^liY4XWQ}r|7
zDgBu;x!<JqOFHYL9PY?9;fd?(y#lRRElxD<?OPI<(Al(b_syEif5IMBa_}8EBR{95
zGPgc%#g*x4N6R-J{^YV~iObFRH)e$0Tp{U`EnK|#-n;zSK3Nw2pV)cJ6#TO`&3SU%
znalG;L06BXYC_KM(=!*X)IA|1q%ZsGl;d8JA4}fz)f~I5*(`K@-dUxi%XTdDlW?p*
z+q>$+Bn_iW+-E~C-~WBr;EadhE%`$_&kxTI*ip3YpWV6pkCztzco>)Y|Mz0I?0UJm
zlg)mbN~b)&JzaX^Ka*<-{&Q_I3hSh#f3le6o^@DeU@7;1<F@{NhlM?-WNt0KD0KRY
zXY2gA9`)xgUM<cya|x?gzkjLsg_}UVTzbcbS5NBKEV2yLQak$2`|tWIHDSwVN<}2h
z{I0o_kLO_7?z_GjsoBe_yftl^*F5ujaeZ6tQFG>scPn@g>xaHyckj=m{t1~+y;JKC
z|J9suPjRM0=Ig1O*VXN+GOba4pRc~*>f%+b;rEzN_su%5`bmD(MImXChwItTmu>9k
zeI6wHYI8}%nNkm#7A3PU))~kAwY!QN7hdlA_8{@aj86}?DE>Vob@-UHglxP2PqyqE
zj+g8oC$HWApHaQZi3`gFsp<5CO)SFOS^XLP`4q06UiEg#%>R5I|3fOVs%@OgD7?Kr
zmT@kRLdp7!HNmDo;)CCXzr~`~Y`Wt_CXwwCS&RaFygtu!N?uoW{AYCS<hVM0p&qO7
zbTwB-4L(!E;!7jw@uzR2a`R=j3;wIy-y}bo>1ojkMN1x*#brX)jF%2gh*_|9A%A-2
zWEq|NlFNg$zhD18Gj?u`{-wKKyH|yTH<Ubi$JfrEK2NdzPVX^E!-;zo+wIT0tu|C~
zPTG_FXTrz8MF$r<+>@T~>#<QHo~QbtZ@NW*6swWUWaER<=O%C;+;AkNo=IAd_50$o
z;0rfg<}Xm0eWK6D;rogi0X{yGUUNI0jFOBtF0ieh9Mk#Yh|2o8n>-act&BBy<yg#|
z^5O8!C2QUuUE=g&&x|((##NI&?`W_wM;tuTW5n2EY`G(eMRoDzp5KP9lUYMgxn1xJ
z;j8MpEdR$bQc?Mckrt!Uh5m(|$NB3OxE6nIS{8WlLEV+#IVuMwo&*RkZ}W5OI$W?|
zrNg9v=|LGTd}lqs@ZDl9W#b8vXe!{X(kS5m6SC=*vdt+6-wzRjJ30+sDM>IL)NwTw
zRt<glsKaAw<@!g9Y}I0d14CX+@sKujbB~*-X3-t8__Tp|Wv!O0Y=akPmA9yPBS%a<
zua8`8Md%aT3Kl<x9=l8{9s_0535)wQH9|@yGtH;4`cElP(UO(wkTi1qD%yH%)p{36
zN6iwetxDOvp;xACS-5j~MN`(bdijTLJG?F?t<cPHt&en{o~Xja$q?Opqi63EqoBhM
zGrL6Bs@8U}9n>~5b?11X<vNwS%XU@Fm48?30~HTmTr#bx_hNaLTe!(87kBYXFCHX>
z$o{pno9k0=%+AjC_4J~hU!Q$Geybw5*4}#d*?zk||E%D@0so7Og5>vAHNJXtxWdRZ
zf9}<Wqw5cI^o7=#+1uv7UvFc`cRnu8$6svn%`Gp}DldK!&I{WyrTN_3vO0Ew^m~W+
z+P3(`zpAfy{P||)%cb7!&#GQTZQJiBzDhq$Jb0^OnvF@ZLUf*%>cfZqmnYxMT>JLK
ziq^0HBcj9X>!Pk)4*vY@`p27<xwGy+JGeQ0@vE;jWkn(S3pQ8%J?vd<bLi~)`~P>p
zx#NC)Ld>lzU$_3apJVVq^WXpdkNz9}_^<h|`j>slr}`@wcOI$NeiwglS5;aV>vrw!
ziN{TIcTGqZO+CLev3=F;OF7P=&u1RI-SNjbK5&V!vDoKs^`x4oM-*Of<n-`AQlWIr
z%5YZNjURS`$r(vsJdMj%{EDAf)1)e2d((ZJTnqDVpRZZp(%7Cn%MFNVm$;I$@U4`S
z8T0D6{`%GK3YSHGi9c7%s-NG!_|*ox`LSpGUlrRnX21Kh({650{29Bg&ONG8^Ct_c
zX+M?FI99A-5E%9H`Q?{63zPYJoow@Sx-N*_5!<L66#Zn|gl!tW2Xzbbwic{zjn=)B
z^)QTkd(@7rht`VaZH-|~w0_2Rhof%h{A-`R`$O$R?ZfYzUt69m`=3+CD>A44TCi(;
z&PhgtNxBWQCF?#5SnsOX-f-&G^pjs|zy5i!;N^m<djiX?R{g8`vH4&9=if;mKmOUh
z>X$*>oa^5n|M;@SZu5M*|GTaJTUb`cpWn~A=e0oGD)ZiduNi}jH?qhab&IfZW3#h;
z)-~;GiRr=;$)xjV*-ZCYu9x02ZJ(+0Vh+CgYus&J2ddVvpM21Bzw;1(yOQyYmB(+M
ze6?}$^c2mPp2eF!JpQVocQ2Mv@{+>zfE^;<k>_=qOEr`iPTwToDSyXw&gNYH*^Vzb
zQVjei-Cf6d__lK8Y){Tdxmt_zRo492b6(-0UCiO6L>A|hH=8CUYRpfupYo9NbmK-J
z5nG1si{96#OB_72MgEkng~w(khYvRvByUP*F)3vK|KWqjob9gtZ<xK9M7qqp*#93n
zn5_OJDfaU*mYkzrVqJ$@gvySc`@qJ@d0E0d-_hV?)dDZGV|&>iR(H%jaFnf<F{C8O
zv*B4T#}@fhA2teacwjj(&F!N~gW9y1JN&9V{=!b%+?TA+tj}$$|KhReO<Ys^^HtMx
zzD`|mPL=W7#{xn1Tb)Y0{Z7w+&gf;CJ>jV$`-X$dV-@}t@Mq6sH$U?7bodWeON-~y
z;`dcMwr+^^T>Ssr_j-w|uUzlzMc*~^(?55vFJDNvH)C2y<d(@9MJZpu{$2Ir7Td<N
z4HHZC#lF^L-P#jT&bhv?UhJ`J?yZ{2ki9NR_w&+OJgwv3F|nMC*t14Bv+hPr%;woE
z?p>KLHv8x2WAhxhedF2r<(Baiv-b0wlq=sKXi8%)J=zq&@lS2?hB;=z%oP(h-1IPv
zmj4l@G{;A5Yia$j>rehZ*&ToE^5u_5<@@dGE6lA||K3n6E1tmeqj}?UmA^&x2VSmv
zKl@HcRRh!dCDzePrK5ib6||NqY;Vcsdc@Q{>%&!6gLp&H-IhO<+J36&>u*>t_VVz<
zN9L9>?>4>vn{?4>ZqNP8i~g>u2#;Q>8(nB0ee|45tZ=Q5i|?)tF>xw}OTTP1P;2xR
ze*N6NHfN2zS*hu#U2hi8<qPxOXT;3oSXf__dYf_Q^+n6#yET>mMy%1T-TyS#_9W-b
zoD0URnl}!-YOg-=Wlr7H>1*~seDQpFeEMeAU8~#gh*Ydu{-NjljR57(UpPJIr$zUy
z-FKfk`M?tYw~aa9x!jZaQ$+4IwDc|w+5hvkoUQhzM}}2PH%B}VQjg^Ccg>O6bs{Kn
zb^Kb}5A~BSsS35v5Yx<eRXuv!MYVFf<g_E-1=}1SxLD*!wpG<l{JYQK&Yk=hdAp3?
zhNbGi6m+@xgnhyBucse=_`K!0u3N?Z$%6CRQdp*^XiiE@jP9zt*mER~NBMnu_49>0
zJUQfd2`Bk(i#?j`buIOl?(R9!J8r~Ws-JI@T@$H#>DIQ=`Wth?_E+9l3fjj#F|1ds
zKa+pMw#r>b_hR3QZe!N}!n?;H<3V6o*#2K`-;!tZ|1dNaekS*RuCC^r&OKWsD<6tY
z+^#jd`K-rJfxu}SBT6Uro~t@}H-%Zr>aAET+ZGn>cMHRtd6iyypDL>LiO>D;{!}1e
zv`p$N$;;E%FOYZldB34P`#r<+w=vzx@sIB+&5fK~8&Z8C@$H_!M_E6v?eo`c^R+(y
zPQCv1rs<JP-zG3VwH5r;cKNxk^?JDvya~_O25WcSxqj{=qk8jhDW#pc&K~j3Q=$dd
z<>)5$95vkVUQK%AgNZgf8virL|FxFI)@U-D-ZYg_X#1QB#x@@A8}pXPcK+u#)N1OV
zo)F6@0%@s*v@-GwaB03d_vSzU_ub(aAW{qcn1r`anabG9DW9_}!~NlZ#(fW7C1A0_
zV){ZqCXwwS^BMOG%1PIB^Zlw{dh|^Z7L}HurE|h8rbZ^<gXyOiY-D7qf3mHp?)v%%
zk5?oe+7W*)xTa{%+Eaz0i@t^hiT<`ZaVygEq{pX7&wC+ppRQl-WvgI3DcN`A?$;@i
zTW?7=`QF)eF{6fI|HG@LM^~Gt+thOXm><5#s8RBz_EFx;K_TJg>GkU!UigZtp0@}-
zIQvzw>&ZEp3uS8}6z8nAYdW%he_Vb2kK?Po4?6r4lz%WaB`!02we_wm=M0s%Y`ChY
z&T=faV3Cl|Ed{N&3uWH!&5_FuUbo8ltw@M7%YDy#iJQ_6S|nSYycMaobnCKU4|Cn?
zD$iz3E?&4hFKJy=FvnG!>n!UPCjZfhJM{Ra;+{kM&!vjBr01>L%zyPJYpG@m-}mNX
zv$}e=cYp5WZS7*scin&M@yhs(t**`rs<Y=^@UdVu{idVQy-Yo5-IU_re_!d@R`B-k
zeOVLaW_smj;h&ae8jlTD+wZsj{cXPQ3YHSBcBy^80}@YfS+VKD?(bLqXTLAI&j0*U
zzTG{$yLW8u|GnH3=9T;J(}&mVpPQ=Wm&?n~)0>|s|E~W0|8MW&XEl9R`1LO~xILuR
zk5}*3v}-F@mM&i_zS-JC<NT7@7ww<k$ou7*eKf##XMDnkGHbR?lX8t&BASea-W@t?
z{bKQd3-hYt-ydUMoUMK#uWNq$cJ-e{X7}fE%bETE=lu8i>F3tFzSsOe{q)_Zf3M1Z
ze|#zJ^{Zsv(X{IN`_=UkdH<^Zf7s%CzxdYg+&7sk7F`n#4T*4<xVG2I>8(R_xcQWY
zC9}&nrro}MS3ktqqiTQc68+t`fB%;|aWx|EqG;ga3%{>rYOxtt`-skY<9sl&rSb9`
zTh6un?$s?Y+9Y%5d626myTAL+`AZ+B`nGI3Gh>m~`Ro1(iw@@7EzG*|>~Fn!$<Kd6
z*1L8JmZ~{7d^xW2f#+mRajEn4fQ@et>WR<el>a4qz>(=Ov-Lh>w{N9ApBf!Qf8G3Z
zhW9_C$fqA4ZJzW51ur-(S9ayhhM#X^4*vZe$DbzZd3MXUDfgqdH07lQG#t=jd9uB`
zpZ#P{mz=Mf`Gqf4x-&LxT4nuRPHw)$-FogO%@t+3326@--~D_3Iq&zE{r({bmZ!h^
zs2iL0>&2=#kF?wwT2YJpU)*7qH9qw?H|xx|dF%2|Di%KD`Nle#Exq^M)7$3hSN#La
z%6IQpdHF<MA^n=S#K-hQ86Tc6+;q;Np+LdFVgA<prVCxRaBlb><)B{7Uw9<e{Hg(;
zut(~``k!sqZ`cK!mPD@H*>G~HoX3@BpH~wPeYohiDcMPrd692fkWpWtuZ}_dfnesw
zi804c?_M}_*YyYT)q4A;opJopD%|osX<GkzsSI`Tf)=L(;@Jloo-CQ}pX8|}HKRN2
zLU6VJ3j5x`*xRcviCptZ$!%3&;WX&rVc-5V-Q?AK--`OoNB3`=%N}l6>0P<uz`Bhr
z60TmR+n7R)1ddHuYa$*SohkI%sJ|*8;C_Hg@V#H_=330?)qLU^zuU}7^YHQGUY^e`
zW<Ka|-gm@~eR9ph)P}{P3plv>j3P`kB~_*^U6i__G4)Gp+q8*UHzQnrCv0iECUHv4
zio@Q~P)^M<FD?3Xy?;Q)hkL7^ea;VjQQNiR-%D$?WQVDbR{s<ApWYkw;o`d1)K)XL
zE224iRchCEH5g6a^}Xc&KB<|74|hdh3rLya9~ok_>B_!q2cAg<mrpQ%r8ae|ly*p0
zaD+wF;=ebuEAC1<38dXVq_{(1&Fd<b*NGvi{SM--?hB4oP4JAJ7E)Eua)Kdfx18gF
zOUplUmR$VKHO1^q%90hwbf1Ljy%jxh{ICw^KgmaidT;h|GC$oE@rAo8=hzFcv*kP~
zs*~MVxQg`rRtU(k|812$%(Pg=bV2a{?xM=)3l95jZ!FC^Si*hrYxiR2#;aTFZLi0v
z&;7dWb(C@6iv-=o-Xx8_wanaB3+knhTwNKwVcqSgFUsamGf3MeC+@hla6^Z|#iLgR
z!aRhTS`P8eTHSKuW~|6YMZIFHMx}E?jN*;+S9l$h5-*-+=1@}ZKDFI}UuN&&1Ro~@
zH_PXt=Z_w=(pO}B7o!njnj|mv;f>MFB_;P9SDR*>U{|eP`)+5=(IsJpXEOg!ntJGX
z{p&4xb-$Ob&RyYqVCNYpv0dh(4*5};nhq)}RYcUAqP|U=u-9XwdaMt}m7Z;);_ab5
zv0@_aPt$S>u6<)^y2hpBsXQstI%9k54(Z8F92<&OHYYkAKGL+>jQ{nK7a5Aq>W@x6
zI4)9jqoG2^MW?Uf?U#v@9!9>lWMcZEqhZjL@uU8Qf3LrgD3j3t*2zZYL0JV+3T(Xl
z53AZnC@Stgb|_2g)JH2876ym+2e(*d=U@F9_qpV*&Ajdv#ggGy`>(o+?%t4pF7|Su
zg<eU?;ZwU7`?MD+v>uo~@8tt0fzl+^lC3kh%mt;xkAIqHn9Ot9lW)6HHP>0st&Qu6
z0E@21j==hE)9X$Z64ioCvbldliYG@*>pJ^%@><;`?HdfYEy?w;j`+r8FOX-YZt(6(
zhPTl#N5<w89Tu{hf7s-17_Jr7>*Ad?tFLkC#0{62>z^EuUpPJM7*~|y@?0)mCmG|P
zlP?)+Jq_}znxXywx2$&S!2^e9&FP+4)OYYr<jR^oc1z~=)q6&MXyVZIxbus1vYKmB
zq}Hqu&Y9;Ln5)aKpWn2_`qhMO_Ih6Y%>Up0KB%X|T)>^lxS&9a>(^oB_Qj_Ugg3T#
z9q#E8zEk(Xp!+Q=Klj3oQy<uTxUkA1@}{zwt9HbP$^%T2Nd_(wi>BwDa@Z6jCe6<6
zweoR*i$V7_tz!W$vg-A<sfUHqHZMA-Zz>sa(DI#TP*Y{%rIblAV$#RwdawMcHrZ#<
z){aFJrJAZ^3Y2OR!z&)CJm_4qx$jil<#v(Pe*T`zmu&K!s^s&gzwFIwr~OK89$K@D
z_UQL~2<xp&4XIH1GmHIn*0HI4dIyj5u~i=GUwS-1<I!=ao<*B}hi|#-RDYnhAa9G$
zgY{Qg{&}s~F`>iE{mXTWQj=fN+MVp@3_>`#xIQ*XEwEX$P}OPI2AAeNqT;q+%JSz0
z=r5n6yQw8~;WWSfI^Hakd5_=ZZ!DE}aq>)jxu~%9InTW5kITyXDl!79oz^6NO*Tr(
zwN3Jt+Sj?@t4LDsgQ?fNnXhq8yTnz$HcdZa?$T$B*IK`DaI~vG?sHrt%j|8u!i~T5
z5fkG&<2#Q&6v}8Eo?<L;CMn3^#%!_jK*giRiGoe*=B5V~c72v+I9K@kv7q7cxtBu!
z<-B{)=p@HjxIs>Rjh*WjsW$yb-%c;OdZ|#2Bl~uHSo%h}s966+SC>{ah6Q`OU3m33
zub!8E&IY;cZaX%yo=G*5JPEoNtvw8cMP=TqWu{i#xt1;`R>Go^S<tOlH~E~xhCA;n
z6e3=895Gc~xPz_K$NZ78or?y~DnXU+>P(NXZE)Ih?3m;8Bh#A;RV#AEV<&Aq!)=%v
z<*DQCdRb~tm@VIN-Oq1s$G_@dX06B9W5b(wy0w0(xu43uBqhGLvsG4B-d1ZZ*nf4U
z=+k8<1va)VRBn#t*)-2-QrLwmp)KEDrE*Mm^XEuRVOhKOQ!q#Hw9`qC7o=#KwnkTP
z<=;Lnq5IzDRc<Fl8)|GBUdD4dtV%ejuX0AJYyO=p9z~HkG7UOQkDYVzXPA&8wAOVB
zgNjT23NC;B`b}%N9||9k_e@=T%#Ba?(W3OwmoE?WFWICy^_Zhf-}l#(^^I9xvfZ9|
z=;yrXcGcvb8I{$6dG5zR<+rUy)`RPbJEecs#ojRKG!bvj@6SB!bL>>s-s-#;hi-e{
zl32FY`o-PNG3R&le_P|d^5<>u(oH>@-{sz(TC?uKk_5j?H>cF=N2tHK9Q^V~kF9(}
z*@nI=f|GbFzKQH})p0Xg`(bHtOGZe8!f)0cM*H?<eH3MAS;NcE!t^*WA+fOciOS|n
z6_qS&ats8@*PSprG(l<MgTp%M2Y+1PpQfB7``hv2LZ>%uozIgth;O<0?L}ONX<1WW
zbN7VnC*?lM&(mJRHKS5LtG;)yl=iK&0@k5i@70Xv99TOwf{V3t{e$C`;*QT&F0PBz
z;(Y7w$n`MuMpWm@#hXfF6ohVQ9ZpJE?e?sxWvfz|`NfDyr<~ZOZi~M&H`}@>_eeyv
z={J_WQ?<6ntXX-&&4IyA>eG^>$r016F5Gb16_A_dd3yq9%j&j;oX(>C8Qb&g3(qSz
zFeJ9k=HH*r)Db7^ZYj%lhhMBy>5fI9i!*~FR~6%7-Op8g%r2joJZP&lIC^jKVi5to
zcN5($&7Bx8K3iene*64H3x%4D6>>_2Oy^|;=1P~i$_V^edYbXz_aX-q(*UOSdGD_$
z*m1hd?l<SLt=5-MX_QEKct0T3+C-qH{`2jf&xB0`tQykAJJ}Z5$lInge&B0!v6#oI
zB$r+AIa1+@=4OY8*3HFN6(>YSD%c5gAJOJ7;_l9WGx7ZQ$=#1srnW4qJb6%hukFm~
z^B=|C|6{W?xuRLzKK{Snd#_g;f4u(9H(PeQrO2<jCl}6pvMEC5O`5?C?v=_P)-$sm
zj<2nksJ|=yo9Ei(Wt^?)N0!(a_@}Jo^qR5ng5Vkc%k7^&vz@wbd0_9IvO`Y_pH0qB
zs9n+e;~wifmo@6!{Ml7~t+d;p*8M2zxwt^ht2xlESx}5qX`(^0iqK|<lh1y>TNtmk
z-11ZQn{dUN1B)YLqVL-Gb*tOSZnEo>KmPa4^K{mE+VxWfrMZ0k=7ydQ^6a>GbG};5
z3vc~`Ix$Z9C5NY<p7=pg;TChQ%RctL_Dtpb%svx@`Xj2=7+<n2IIL^I-x*_KchNRO
zwEt*n--TNOM)#e2_+A*_cR0k}yv;L3Q11RNo1MyAggn#4?H#q7Sl)VdSzlFIHT&qM
zD~-ZimR2O%tkkUk%_%R?)yZ+-P!GS<suY!@UQabQ`!$0S%z+;P9^wvWrcW{swOhR_
zX*u&lL3i(;hAI4E>8IK=o_qXEs903<flWP{`LDk5<K_!TBOhk$j{2eSV$FvBlJh0X
zLUsyQ*#zx&1Y2tGth=ssqK$?9P|eQChvZ}<Y_7`AC@4F$U{XlESk$9A1rt;6zX;0T
zGS{&Ats|$zgrcR@7N)z{C0X|ImvX3`NvbY9<dnh66~17@;qO%@0Xv#(yPIu)td>*s
zv-rL6kk0jHu6Fi?+$)n89?IlP$Y9-fa0?Tg`qwV=6**kTsufwbFdc|LpngC~+3f<m
zzyqD@%?<3g*_U21Jf41Bv3|LpHcQ)A?a9Y8FS0DSq_!||uJeu1mFgu;W=B6Q4Vuo{
z{#<FFd&7y(ALCX{*V_=4!+eRg-+Ak1e*tCV)~*Ow@g;6aTxa8%gOpoYG+e$|s!VV?
zB=KE{jZ<~zlbCOxgXc*eyc$xsxALSy+eVWlUEP0C6RaB|(pOe?lq$xaiMmqX^H`&6
z;z!5FA0Jg*k(&04clFlIT7h;yJid8mdStfD;b+VY%C4DfFBI;6jr|C_wZfdk&V8l7
z-qbs6RFrrv^su?_xMTPht4}Q&A6S10M9n=~mGRZYx=_<jdhNaUIuqV2x=cH9;yc4U
z!zzv%-J1{6YL`?`_~4OJy<yr3IhlVKWa<lTSNMEg;Jxpj;g4-QokRF%zI0@%RbtTl
z;-m7$HH~@Qewn(}D(Qtz7k+G;Q9jwtH7PQS@z6b^)0aN1aK81=!r?1JaMb~eoSVGD
zOJ$5R=KePK*>qzM@8qCeHr)QYmS?^tu=Yf3-(*{3dgfN<_e<h-mxBZv)9!f9t9dy2
z$)+0?^<AM}z6Y+Y+~&R6c1=F(`+DskN9XWMElza4Y+HU=pLKG?G^zVHG+M$AwNL$!
zs9F=jDSz$nYW?2O?D=(aUnhk77ujyNJFv=oW$Q}0F!h3}5dNyARX>;mY|kiZ$}Kft
z5q~~Ep#QVr6?P6zzRfl~7Q(NXmvC-od>weKo0UWV*vWcLzJg$xB~=mv88Q#f|M(Na
z&(~u+f5W!PEewGgCuJ5fzc{sT*7HQiPt3XzcX|$Lit46yU2QtD>55`h_r5PGSDmN-
zPMGy7(K3wtuyV*0g{KCrn&}&Lw(j4$^oz+==K|#qVdpj;eQ@BnXZ9?IW!a2M|K{lN
z#NRymYF~vhH=FI$o%Q1C-FYEJ-ST%FGFmjUq~_e%Z(+5uUiGur<@2V;)_w1)e3`3~
zxSXZ=teD&urH{PD4|R`i6<GGv{kF&q^9hp9tWT2iCzsFQS$qIG7NYvkCM6nWFl1F!
zG{?0)YdvRO`n0%W=i!w)c2}fgi)XTCO8vR8tNuC1%*E#Y>TC8E73FPjY7Uqq9e$<S
z=BM_yjTv6|MHg3cu@|?@WPaJrWzK!S#P0LMyrkw8jypdtcl)eix^Q=jM^K~&-=+OI
z_0OE{-&eBvzr1+Hj;qhsKfjbO_pa`4?*HfCG=)r9X2{0g*(RX&*7#ri9!AbW8<UgM
z{ihty=l3wJUt}_ADTm<6phwJN>FSo+%b!~>a?Omge&pFD=F9tkTeE&z_R+%%^S7Q2
zGVtUnQBqiRA@P&UqV|A>!zZ>&ojIPC#*@i)kL$~k+3)k;clt6nF{EBzf5fLa^T(N`
z6RnJ%vz2aG70u2OId>7?<V|avb?0l{o8D_|qW<xHdGv+wB<A{^)pa#zjwtt^4>zBw
z@<e84flwevM08U8!TDx~&N{o=A6O^(?&H#&|EAon>jFC5rnpRSOP$idn(jMyX&L|Z
z$2t0XvtlOglGi<Fw6tcqMd1Q-)#JQUGk;yyy*YpS_v^Q%l|mjiwJtc$8ET+@Q8}cM
zz5hbfRvn$COjDO0$#83%S-<V7v6Z-u@n*w-`pV}*g~1m$pYOkZ`}N(oSAElF%}iZ)
z?Rf6w=33P{_h+~Cx3?{rl=+(NaQzk5zYfRR)fKMR$Su6FvifV5;=ir>fm;0YkF)-~
zeCg#1ZlU$B1Cr((`W*c@*!TG9CDqfz&HMeY%V+i-a$c8~H7P4c<!<$lNKN*xdc)bd
zmu@G$YLOJHkNv$QT}1pvY2)Mc7YBcMh{To$3adHze#r@2cl`Jpnfk@^+9&?~a5|7L
zxG-&QWKDst@lKC|oJsqOZmijS`pcU~-_Gm(cU$NDDC^GIzI^+f_xu08i;3KD{_eMr
z7krdwa%4@M_=SB=W?T09bDz?3-d@#Nd`w`D&%s%o^^e`El$1Dr$6aMnePk)fdTc`6
z<q0)iH{SneywrE56Wd6pIp%3U#wO;|FE%r2)<2Do?7wqNunu(JrlgDW_gaq1j@BD|
zIqch%6d9F%CYDXN_U<r#eI}9p_oV&vw7wn8lPg|3*McLVdrn$uY3$!p(Ma#EP{*$I
zc^&)rRn~vLIo(ZU%Cs=Aus!t}OLSF@TdyrLaS?m}zMJ1T?$b}F49n`x6~@a;zOCOG
zkhINaP5tVh{O|Yg`}ycEFKgM71&P}fmTkErR{nZ+y~u`J;jX)%@M`Wf-SlH;!C{t;
z&O_W2kBLPu`0?iW)x+}drfp&QCF`fas?96zC7S(xvUgySvWV_10|mz_r%*@lWjd{l
zu|`=l`+|2*-2KQc;{y8<<C6u=hna3<XiiQ9U(jh3sZuY?J!wnK;ev=Qp6q)w?kZ_i
zs&oEhQcKkO*YdJX=-;9Lljk=IJhKrq=RbNjIz1?X@BCW9S=++b-Q1Zbx@JpM_RQ0^
zhJWI(Y+TOO)AC^Pq9wDMPY5|(Pxugc{%Ya7cki#&J>ptcJ2ggjG3$vnoN)&aOD#@&
zyRB;rE9+*V2?E=?me+H+ybb%A{B>f$#+Bc{UViqq=Ah+qU*_ngcQq3iZumcG?&V}Q
z?R{@eqARY7b>`)tH|uEpt9s7BeL_|On`5b_M1R_Xkne94R<?Ar_!p<QuV4K;%R1h`
zJN<snyl+>J-M#)V>gw!Orkn=CN~vy|+LAni$B#?rAKWt2vajIt-EVcp^*7f1S&=^Z
zv`eQh?~x_x!MWf1J;DvzE_Ot*_t&OO+R`s(Fgs|^k@VAP_IgWnT0<Lu?qFGVMQhTX
zYu3vxq@S_}dEQZ6{=>C)U&boa7a>#qiqdpBauxg@c&*_-x~nMrU#{NCHydi#Nqzsl
zE$`jxy}S4GyF8fqyy|IvjotICvKzVe)B0b(nks#Z^^pJR-f|`0H+`>{`D(7%<z%TZ
zv4ihVKyK4Ix9L|daK?V#S-FFEQDJ!gySsNkeb{h2d_ld$4cpxBrCaarc1_&8p=Q3;
zg|6oM`|BUSayw^t-$q~l;wiTu8LbEN6Q&m2=VH08AaLO*$MNI4_tx*b`QJu7C+z6V
zBe8b%LZ0_bPXCq5TOnQb$s|ea2E+HcyQ6dG{)wwts3NoTmS=x->D;^q7jKLEj<z#b
z|NJtsSoTSznf3bg*wpNXMhO{lE{lMNYHpho4zNaW%&WS}eI)SCi*NcDRhLiCc_3is
zGF6Fx*7@1T*8g0V*=f<Pe0k2<>iztS%u2U%EppOeb*;a)d(}?f$M?gEPo>#!jmwQ%
zsPtglk3RQUwR=j-e{Pu2awhEb+oH>E%f$b_Z@;>&Zbq<i^$pu_(<q(UZc)#4IPNCT
z+A&8cAh6rX(I`WqH^a6(`s%s6w=G+)Zfay$TVCEjmH+X3$62LUXEnaMxs3bb^H07n
z>uR^p4dxK)ziz<rx_*LQ#b2=_yI);w7jv<zy0dU%y2Jw4<aMV+=VWmlR*bTo<3GV6
zZPEX_KQSIjF%b@h)6P$to6(uNSK-AilPk?9mt0*Mbgghle3iwTf0De9Yrj5!wa>0X
z=9Y!u1~Wt9hd$n`BE*XPe^*_#%P!t6Gf^ey>V{xLe}C4k6T&3ldOVm_pZ|Nx^j4nO
z)ji>}pEaM5YDx@$KR?z+TjKuORiVMjCKXNgsoh2%vR5UujU2rX`fhu1dGTRZ+w5t(
zV`DyD%eAnz&e`<z@8|tag@@9we!H2NzPD+??X}xZSAYMpVds10&}<6_t%J4_Ru>BM
z#8}K!XMgHFP@_{>mN9FC$Xr`_n>Y0Z8Z8P&pATytYHK!$G<p|sT*guMe-5YC+s6m<
z9M4{T5-Hw4O(g6xuVqzSu*dTmdmrp6TRu(rV6n+dv(#O-&Ng4m8;>nB*%s2nHYw%s
z^V3~HWh)auPtjPAs61)H?8eOpKRr;K`I^D|P@&s{OP?00efkx<J?6OQ)F8KwFIQ}Q
z;8Xu_m&deQJz2}W&iO8qwOt$AA@8SHeZ7)l?w8fx$K$@QF4kCkAb*>Hn3l<bgNvV9
zUK2e2n)SQ9h$8odvrdZp8=Bp?SNu*)k8CSrOP5ePaPIc19UB>(u4$O`OgS=jUZRd)
z>m-3kM>V)pOT8r6gS{BPiBEg3^Ekolr=E6?*o6Jb^|e)Dfg)>#-^<K?drJ9a{G>^p
ziH}$+&ns>G7;#qQ1=Gyx^G=&CTYir5n>W3^(=7ip(}d|$V%Ma18h?ntu;KT_%*+KA
z+tV{%zAVx`yJVW}r#ito8Ixag&USI`<hJlU_<p*j=<~&k-ukXmQI~rXD6{6N+7zCW
z#x<cq8#GmaKe1J<->VfkIVR9EVgG~RT>Z<NAD@4)GiU3hrJI&r)?&{+XJG8OrXWRb
z7su;nuY?&NyuW@F(qDAq-Coz4>WO<E9WV*qYMk)Vc#HI5`7B9>Po94QW!$QNJYM$g
zgSybNAHtf!e>$gV{&P7M&scvUEu(rxgcwtgI`3Sriza8=n_ZgM9_pz#d%bYU`>O{m
z6Kgmh9Ed54tqJOjToCTL^5k^CM!gAJKb~x>`f}o!VyYmk+|jAiS2Vw$v@pwZW#97C
zS0^%;R;4_CV7S!Jg@5tcsjo8b1gy1^U@qgbT@kh+mO;ekrb-n{8|VJQFCUcLU%a?i
zXm#U7z~Xl8Lkt#s1VaC{Z<6|06jGlka{tBY$t#3jC{5Y2{P%&QwVM>DbSMXGsyO&8
zS;jtzb9u*xvLHc!@e^~Dk`{RM=P21)GO12?s$1Uq<j2aFTfA*z-%Vod`Ev4DLW;=!
z$$y;VS9UI28hS^O<ND;E?3dSUNqFL5)~V2#cqm`%|AoaIj~J4;>_4phVSmc2j`7cf
zDfNxgFHa`$mPBsoIw*KgeYcGLk{w3j&lGZQl$=aI@bV4U>C#t<OzB&0PF=t}RpxQa
zdy5Gc2ah*C`Q<!^`;S-sC!Xg5pMEesc_R7lr?1SzxO;Cn{<{_ntt()@efgKhZL!eh
zUqAA!Kj$eXXR^%T=u@3ft_u!%^X~IhY}GjN_V<KCo%JmTMS|`ekz3%hi7!AYmP>u&
zy5`9q-(NRyZku%CGW&e>(+g7yn!c~la~9G$x!&dr%M8)Em$MeGoO$KYW!6n$yp|3}
z>~5w6K4zWAFyZx8!H8G$7lPs@5EM6)8H`r>u}pY<HE>4I?8~nzcE!jV2P}6t<CLFk
zW&4BU$ApLMZ|ZB<R+dyZaGzy8p1WhggqY&amArLX0>^gkTT#B_q2*(Xd6S$&&r3)N
zcPw3I@T%kQw&#+jQ_`ksX|t~>{2ct|v)4*Zm7F74$D)gvg{=cl-23d2BkpJ#vXW!(
ziPX%y&u^B*JknnJXRVO7q|2&f`kLX(7)917o3vRM%XcjAidzs|FTy43|19grMSdm`
z{{A29{vUpkE*!_TY*#;<N{vwCK^2XMKFS}H&$_EUd9j?8J44of{hm*IJ^oI=akQN^
zbk~2eDvjMbOMB1MN$j&My5`k0b?WQ2_EzORRlZpo{xK~Qb-67TYO?(orv}KV#@0A2
zi4VWjaBP#VabW5qb#JL2{(8r5hcYd@3Nd+QKIyb86(`ywZSCETJF7mq_tN-(+y37(
zSsE?nSbU}y8L>1u3RN%pI?cE;{iES=hL((#@mxaO=bu@4Fiev0jc*fd*!tl1WP!$%
zsMp$xk6K>)wKUJ<Xg??}AkVbdUt)S|!}jAA96EcB_Ah35x~POzTSw)}Rl|CLA0;_%
z;mwD`9&coE;;b#5$3B^NpJj4^k&&e+n@9Wo-OM+aCK?pnEWG~RMl#0U!n-KNpKtQN
z?Nuw!E_vR}D<qt9??c(UGcup&`~H5vfO~2b>sDSF_FJ+#!fQ8fJZ+jPwqgS}m(#?Z
z?}Lw5Ut%qjY^*=9=+~KNnK@CRV$mtH>kSwrWww?4s!Quy=Gx!VS*Vch(Z4v-zDmY7
zYAy5s5{(ldqF=jR&t1>4z_xLN<@p6-m!y^|RGvE`C;wOX`=Vf`>zlRyOy2wA&W#{$
zv%B5rSmkE-o%n9PZr-yqXSRL)S6F-FXW5tX&#ZH0-#sh2w(Vn~-mPnjHBX}3_41<p
zU8HZ<&+HWZ*X;ZHOxHG^d3jOC%|dIgAKvMnaR1w$RdUJlAN-3Q)BI=0t@phi_;=U!
z+?&tdL>^bwJ^ssLe|hiDf;OQ=$E){G5;Ok)=7Yel)cJYULTgvO{d8}8>)o*5Z$G^&
zjBmBuxMlJ;yE|)E-DT|j<IlmZmR{b!PyMVxeCT}j8+qaNrowmcFYQ@=y=srD@T=eJ
ze%7uD{y%5ijvFsdTRu=oyvMofwMI4jt7H2<@JjT}y7_q1&bPOom95-aw(+yY+ar0i
zYt64-x^I8<V)XStY+S1^J-Aq%Cj7B%-O)8XwuzqJ2I>Xpie|G5OY<(%pYHqk=-n$1
zE{7}fmHn>TyRNG5|CNOL`X5ssCx)IrdegW6x#hph5sT;PXl~OB*w9&?WGf}l6Ynd+
zd2@B$o85bl9Q-h4{#`HW**7<)OP?`c*0La1{~_zc==b0L-plj*c;nJeWqYIlh4#Md
zKkqkel)X_GZjt9$+s4Y6GNIgk+bTIeX^xKTnev&kw{ON?FBg(7XnM1G|Idi}>%VtM
z+8woDyW;l>ODTy-Q)iuwS1}1NoToKyTi5e>EpJSp9k%aVzw&{MM6__x_jS2broO#@
zjrZOu9xM0M{l#1EztQxG|H8<!<;$DxB9^-QT9}_?2$U)Yy`BI4u*A#~(dH7xiS?%<
zJ9-`%P5plN*(2{8?>S^A<|I5xG@AT`H+{N><dW~@TVof#{wF8)ziNT*k7ahZquKZ#
zwjT0Jn!k5r%mtSR^~@bhC)7;7$SeX`kz!(QYzn^d;%#hnzp{B*-Te5#{<{sK&;D+5
zXgJc5t0Jv3WA4d!&3pN6@6O75yTVj@>n-6o-v6r3JzRTY)uM=?_&L4o646<&K1^u0
z`BQOXeV5AJT=!k__a}VteE5IK;<;P)rYw6L^S$NOyI=p#)|V=LNq(+!f5N<I<=y&o
z{nhp^a5~(+DCBisJ-^WXe_y{nwvUUyDECC(fca%a{*HiEyT8|SDOP*)8s0Tidl4tG
zuEM=~nNBOq<?NGNd?MSYynfevL1vZX+LM#E&(NvT-Z~|6(}h*(KAJN{CoMlZ%VMpe
zrP!{s!pT>I6xTglsrEx$qcifO{|Pyxhw(q+zom<`*p%O$-G6uX_I;l9j+TG&wuZgC
zER;LVOgr5+v1!AmdsCmpUpzKZbAr&^{;qjhFBH}-U}dqA=Z)I??BVaPwI?dLZ`Pf$
z+q+2gN~G|g7Jac*%&YcQ|9^H{e#u)66Ya(&-{q~h_*~HA+PnW{-L4<Y-@bkBou>C~
z_TjsKA0K|N7e426_j~i*{nP8~{;!`~zin^YuIP#LPEB}Re}{j9)114Se?OM({k+rs
zU2x2rhunK3?*HDuFS@q;YsGujyld6}pW1&j-+lb9?y5iE*tJ~ZVplEXkw`o8dcWhs
zlq#7M_xJm+6_8TQZr<)3z1}H#{ibVmyLWW^=%1X#rzASVQ}#$AhnHE2z=IPj+UIai
z`g)0@KHvQ9+=qdw-!FR!6@7g7@mF5$&ZKE^Z`Q4Q|7Uyo2SxpL@3*b%)_K3Qz>nAV
zMabVXDj)Z{S2y-f{QK?4hYk0tOkdwU`|H8}r0`u!&hq^h++VkSua!(qyJqkgapS!~
zI^V9p`+U~wOLnG8ur1@`rW@y7gfx!M<j`p2y=L60Fya5tdiHb+vHf>**1PdGS!K-J
zmgMxcP3ro4om(fK&EAw@s<$xnPDXp>!h2b1m$Kr`etT;j@a=AMe){Cm=YJa_-+!Mj
zB=sq8@9!U#)w}(8t9O4(?v=Vb`zY)EHn~IJs_(Q0mA`hEiCj1LT6TEckI((nrv!Z$
zHx-Z9V{M)!zbv%j<GPOeb>U6D+J=|E7^Hq<dT`Zz@25pI+g{f1xRodWtfuq!JmH&V
zs&~CtzS2AACH{ZIy=rSk`N<_8FWks`Tu@>0CvV%X2F;MUFMfvi%k#fJTef$$>weKx
zfjo`qst?N}_by96;<lClb?^E&f1efH5c6Z$P<JE#?l1egogxor?EX2Cr&po=*s~?)
zW>4V{Wr=vaXU*%YSIilVB3;6mdKF8TuX!W7;Lq>s6QABc*l$rOQTFlo-RFm^_LT)T
zGj2)QbEV+#j{ED&+i#|w@=9+AWw|0&xxVc7*Ib?Zy_$IzW{drIuKW_RhM#@;(g#~w
z&&>|=wP49FoAR>ky?e4qpg>{N!xR&d2PyTF4nNyvFz4x-kZ(WJJM#8QzuDv3;i<$J
zr{fwh<F)f-8C}<a58Df;$_lhCbM`2D8hc+>u4dx?n4;Np)?TWcbm$0gMc|9SSF-Fm
zw{BeQbMYfvc;~sa0~-w!99QyZU%#uI5EXbcIIQYZ`%3ldKfj)zt-7W%!)3-a*C$5C
z8L=0nkJWz_OTTf$^YTs^XT{8OGfr>R-!}X1^7fgI_N%tEwaK{stvP&p-iMl3%i`X$
zulUy<@%ikV6;lm%-em1K_aR$E`aAF88?`p8<Nd4BUnMcQ?Y7I4vM}uxD*X1Zt~%nq
zedt7w%{9}0y$%(vOsLe{+1cbiLA+tQVC^H9Pu;W6edoVkUO)S5yJS1t@^sEQhihtr
zi(e`?I+-nt-skerT0ZF@>*Z_9jD#6K&72%9VOZ@q`)q5UuV~ZZU4Fe%KMu1oJ@));
z)HqMsYrcp-XSvvHPH%Pja|#7rM_+u{lsLieW{;wP*MzTmoBK}B=4jdA#C!B}%X{st
zLT2~J)8{o9Th?ZN?OI%avg_!>hq-GG`tr;WIjN|t^ZeWP#5hSY)!*JT?(#iO?fl-D
z(|St8Z==`-foo@dWbWr33VreM>azdr-Zw-g@;jT3>iSq4^gp(`WTcevRlk~<PixoT
zUDe6eX=?%vEEKcU>a<mtEnRc_9q*3Tz_5!>2CB~{Z8#xx=u=Rt*BRCOqV=a=iRx@B
z*q?fFlGRqfU(>D_s8;nQ>t|owSz0=!JE_joY1!Z4uBp)+k#p})o6RD##D8nrhJyw(
zB*kwCJn@n~bEIwJjS6X%)!CV>%LTr1ZokT0TRu&54$GAZ4_;iGF-tR0udDJzN^<bA
zB;{bI*5F$2Vim^o$KtnMO^-Tk@Z!<F`sAE_naVs?HsJy0Ti6oXB<xoO>Kt)P$?^}F
z@$&RrPSd!hTEG9U+~RHeWubJp9sBpHa}HctlGk&W1jq!rdpz9SH$jQ>na4zx;w2uF
zEQ3@|N-h!bcjx*bxI9BOahXBO^%&#$g-&8j#V%(ait&~(Nd*=!t6-6OB$3hZdc)^G
zlk2^Dj#V0PKI@(3>8RKBbM1zevdSAPA4DwWI=|rf<ui=oAtjBLj_XX^{mw{so^5o$
zJEuj??Y8mRjXbqdXBq?7*GLw>aMW#?#dATqBlM!O)|oG77rU=0YU*2}aNt;jlyZ!q
zKu+;Tmx!O%Tn_UX!z2>+8*Sm#4%AERoV`cA)<&$}n%8@d@nz%10*wC_?~$Fgag}VG
zj#s7ekt01ptAv`4oI1yRa%P&x<=JMZ*f(x6R}(OrG|OG!lh8u;%e&n7e|-?x%(slU
zqUBRZ0DIpGotIH!B}-}@`?*Z7G|XQrx_@rO6Ui{$IR~s}&R90xZRa6h)|qW5m)^)+
zEylvDd9HVY<L-LSwv0q^me3ilp8W+g4zq?f`8lVqw+y!7R}2aXH}apcXXgj$wzVgv
zU&e6x-kY;$@u5>sY}f2<JNY|uvEaG{k#1Ht&5l`TgqoWUZC*Svl%Y>*-H(i?GBJhc
zr#`t-$Yv^27r=T!z?D(j-Qh5&MI57v-D8flNjDgbJ@wdUs+c#_`%J1fkGy9qekx(l
zirdABQ?vuqjF$Hw^}8e8==y7B@xlc+W*_8>zAM+6<ajDlQ9Z(P(yDcZPPy7UiuUQA
z`DUYcv+st`5w7SfN2Ud>;?mr_O~u3VzSzQQ@7vp0HXfRGa@|#rRb6V$y2>V;1%V4V
zd#X5AOr3qH^;y$nftW}Q#%J~AIZ7P!dHSO4c@~;Vwkxcdux!zFuLmi-mx6*lzFkT@
z@!2UxIaR;FxoC;>tPjik9_ooTWdHfIIs4)4bsryebD!lnnwxlpzl&ezS?i-ivBg?j
zwXX(<UbimPwtD}w=5v+VL?_9F4b^)5;UOnBf4>rNY@(~Nm^=TXr@MEaS-i3TZ+)A;
z>Y*=A;<opmT}_$wT+4z-?S%H7W13ssY7Z-%ay5M3)D=?prJFG<O=hvHLH^V?)wlCL
zFWh_}SoLYqt>&ht_3GOXev7=g=Ac)itEpYl3#kvwp9F4ke)n5{!-NB}I%)@=?pVse
z{(Xh_L7pda+oyCzo4a#o>;9TuCX)MR>ci!s^?!7q#w~rbu_ILH@viFYd*AK~%s#L`
z)-dIu&f@B0H^Zf#+{_SoX!bv{o2@g6S4!pbw=NTp(`^djw*r<rKFf{pXnvu7Ng=|*
zF8s~{$3+p%Y$vybW(d@l=sVd?WD{h&&bG|8*=3^|@1&Qj-+HWAY{GGFo7x41sM@<#
z5e*{KzPHuyUcMmltLxP!R_iAR)R!f-ad8TLNz3w&l9}T#6~Oj6)#OB&q<h3;$LiI3
zT~{q8EYQ1Lrp2x_FNN>;bcKl9a}>g789#M!OS-Ch$h%PCkkgqrXAVx+N}0;sxJcy4
zjlebM8d+Lr?i040&>+d2(&KQ{qhr@mVZ*1}MQa~8KR)-4t$ta>Mi!ONJSRL}ec5}a
zm{TCjbWQah(WdJ+-Sx$mYO$Q~cvZsWGDp@eu*T_<S+(-1sdo*RI=CfGz46%9LV(XZ
zKbyHCATHI>f=6F(w?^1=$EHI*_cMJw4zy{N{YXE#uT6QmZp@5}x%s?Bt=qe9wtDM*
ztMciH&Rdbt5s>4UaI{|GkLn%wuo;UFwYZ#}`6xWqso<kxNHN#*mWRKWz16hQTI2Ij
z|9s1XSIxQx9Mg@vbPY5#Y^>EjZU}T1Wtm%Su=IxiX~wo}j&HXZk_%23vKZ*SmPlBX
zz-SP-iD8CDB!kbCInN#EJrv~aGgO}H+tXR3dd#PC!o(XZ`>W^fU%h~*z9gw5V9J`$
zmX3N|p))3IydfFVaohRHAD`l$S5w96WV+^9%k?@huJ+xn5h~y27{4s<U*-CM$6V{?
z<n}8_$bML6+oT~AnA^PQP?sa~Iv%!O3qf{S)0oOb?>t4L)HZepP3fKJs`125tVPdr
zgXAuilTj}|8S$(xU`&;cTolu&Q*SJD!{g1<?Xk}@ML9puh)W2apuL7`%c(QBe<ptn
zHcy$qVUobCZ(&`}yqq$wrN3_eb%N)Y7I&v&i=>#)`CUdr)4oj7-*Eg=+$+{^EVb$S
zJz<+~YkmHref0TB4fiE3ZlN5j`aZ4?`hLganD9xxw%rl#Kf--P&iIx7ejL4EmB;#B
z_4@Pv&ru6nI5EVzd||~sZuMQ~8vHi*O9s5Uw;}4_9hYgoI&uEXs@C-}v%V4&(Jo)s
zxv`Y(N~i0}Kb1`@KQ%Gve)9d{pC7X+*Qx&8_H_%|6mNSR@Q=0O*vk6;;++St>t-2#
zh+AF#!fnQeM4^e3n!+_09NM@QdQ>DQ-MPLoJv^^|y0EzBk5k--#ZMnf|HWEl+?K-p
zZerwHkK_COPl?>`uWd9xZm}sPW}AHPq6=L)Uoxhgx0<zYa>BoYkV$8jzgL-QFE>>s
zeumN0Z!cDR1?qK~YFzfYtsS&XSGp-C(|M}V-0csiY6R=t@wm0fXK_Tc(b+9?{btU4
zkrX<?k0opI>_zo47kxRGsWV=UsHwZA)-4gzc;2ORee^VSgB3Lyn^SqR&J@gXJbPuI
zQS&KPx$U9L^P6HsvJF<u+!o*Nm^)MWiC6I|o~)yDp7N}!RBG-LHJG(k;)=$#lmO$}
zt#`eOr#R~VDd}^p6<YSkO!A5tIIp=&UisXR@^#8Wafy&{qxw`{Hd8Oz^Z?^nQMRdj
zC7N%&=+y`>bD!!s_kI8M#DKyL+1}ASSt8j+D`xK7EOAAvjD_uMwndRu^Q}+U6v8XA
z=Q`TT+s-?)VArCfoGe)<E<EsO-<p1L`LoV1naTh9zGN2v>*Lb?T<$l2)^rXJq1szU
z8W)!5f@&*fp?*nIkNS^aUcPMjG}TV_@^apW&LY(VAulgm9oS=1+tuf0nR{`0;2OvI
zX}9WRe~D-(%*?y6JaCog{IpkfvcI+@`Y-XH&F0!F+C1&ja!``Lb~5}|iOYPm396?=
zPXsOZKYz!uvh3HER8W%6y1aa9>XFqKmiMN*EbyPbx?{!qO<fhXzv{Q7_AmFp4NAQ0
zyTUeCYgyKMeJFXUS?wjd&(1v2e{zZAJflYaWqv0wYs3~T-}&t3cZtvDfs5I=;yg@#
z?F@F@a*g}GOKWI*=)Z@{9A}%__D_B8b4xO{Q*pM;4*#`9>^AF{Fw|V$dYj?W!GEH=
zdW|l6tHwV`63EfpaBF|y8{zs7MGT_vrz{9jTySxUzN*OdrX^P%`AwKIE4Ezl%5%+)
zZ2$T7ST<V3eaQH==+@_z|EI5KUdZyy(0Tr2D*?Z))<3_$C{+l2aiUb=|Fb@y&|7C0
zUf%8CQOA4YdHd_#pOggT^7}15iwW3-#`d4Pq^G;_-GjStoH)zfU9BGOs7?2{7EoWT
zF|qXICu`>d{h6nP^>}BN$R94QothUTc1XwW_JiF2({Gi^espRmSn@9M|Bsg+cIY?t
zKK$_J;=+?G=R*vh3husfV)ya4-)7&mJN$V6jXQ<6ca^J4?r1*pQKMD#t?vhEtMUZ~
z`^x!eO}=10UHjw{*SJp>tBMx7TG`3;Km06zMZW&Hb@71`tMZ?-PX%7vyQL(D=Y+_y
z2VycuZ%;jxd2Mrh_2VVCQ-e;QnYccm?{jT)zR$1bW$FGU?>U`|CxxW>$y68rE_dN=
z=4b41oN?&U&si@bj_cJjY}sbuDpI-OKw9FIg75o6Cw@+Roablw?NQ$2^EGPX=Cil@
z|FV_)E-SRYtlmyn^-pT8XQYjM?e356?#%~wAFkRRdwlXo&pK_Nd4K(<i}{P#%j^$0
z^h%ETz@k(CWjEij2{Ya6`S`8;v#CZBg>P)k?JljU;OJejIPLH4$A_=}t<9OlV0|QV
z{{2$|j66wEs}HX}Y99W3_3?hWWp_+1chCO0`Fn5MI~l)I>vuX-*3UoiivM;0!)dMi
ze;Vao|JTH-diV6}sf!OO%INiR9rt{9p*{X?*IfTTh57GUIW8-{;k)|Nzr-LS=)?K=
zXZg_#Po8Gl$hQe!SlGFbGuK2$(_YKVF~;~#<%Zd%(rbEifAelvk4gRbbkgST)qj_Y
zEq*P%>~fyj!Lxq5Guh^He^tM%l(yq^{?QMDERpsOO#GXS_5|OV%kaLl-ppFmsrSFQ
zVOERk<crM0jE2)0e=!NOm>3$EL5Hm(^JR{MP9dMMXJW(ltKSn<9F%Sd$*^;zXr5?(
z%ia|em_1Q@HoM3R)q2~|+A}5R{rulM1{LWXxW<>hf91PZk6*9)SC*Dhe(~bFpMt&f
zdHyYxeGNLt&CkP+MfmQ`s~7WS8|IbERl0N*gq6zgDwrj7a!Diq*%^j+O%>+-sjvF@
zY<>Fj9)^Ex`U_;$!#vjRUj1SDl!oUqH{Kb|eb5s5*yT9K^}d6gj!TR}zE0;$KetOc
zlO?3ta`xPPM=npYNS$)Z&wDZF^QhHpCj5z6)wz9^-*PAY&y!bX)hh0LR_psg-(Zs7
zQTvCVDg^(v{!g!0Q;7Mz&ARHc>|PFEu450Y>(hI_&F_=iox8cnb<NW`)4#5p^RLCO
zFQ(Br^Mj%1j7C189*;LuRx69GWjlTN<IT`LADHy2=hd<~bFbLE@JA<m*TR*{*Z0k{
z30{|cVU0-Ek5|6!^E|JqUReG4-SNl!W8?PNKm7Kis`U4_SMQ#^p4=+%=!d+z{r+Fo
z%XxXUuj*<f)^q-g|IZq>%Kq!WXK&sX$*zk&dj4tF-aUt$EB};y{PN|U)*QR|xc27y
zxcTefUlY%GbJAEXHO@OtCQ&3U(x6_>VW~P_)du%JE~0<)_Qu7jzrMfz{(Zgc1+yM*
zt<7G#^Z(n``yM9kPCffA>BT(PH}hSuIqGkF7wRn{8vW(vjETSY)r)iqoi4dQ-NAD4
zxi6vNJrXNs=Xbte@N;MK%AX$#T6v2X^-ce{`hwZRA6cc+d~x^U?(f~bclWomuI?c}
zpUm9m`oCa?-Zh8M7EUXre<f@(H=P)@Y~C+Zrvt*wljl{nD4j}77M|lSC#E~~sF#wi
zQCk16tg0^t`FdhM@^(3>v5IBXFIElH=GXbYz^m}UrabHKvzB&tUOHu`KUZ1(0;^4p
z!H*dR+*gA+_jy+{F3ZrrfA`2ni*sSYsf>ReQ`s;0G;b{I?mczcDKB(hSukszT<)>M
z5|^FWZ&a<)an*2_uezexE0%sSk5z5jog8x~<7r=BvoW7~_~Gf*J1y_^jgEN4#?^<c
z+^Ow;U4QMb2=*)LUYE^Rf3=)2bL;W^@Ev>)F8<7t<lEP-fBEF)(mzIXf239(`th+{
zxN}eC&Rr312TtF9`t<3g?fx68e_7R*a>chSmY<fdw71SDUg_tt!}aqOB;)V5?N2zk
zJ7(RvdwzVoiX1PU6MUIckXu_`X?as+&f|v$Tj~ol+tMB>M~fW_<4D@OHs3GbPb}!w
zjzizG#aL%Ol3OLwZ+pg>|GApvR2PltTRw~ovs|Aib3U+feg5$M&cZ{91;wkpC;#`H
zZZRjv>2Q_Qv$+e+e*T`Gxp{}h+mq?DmGyp}6<y>$wWfG`UHR^+{c%6#+@||qUq1c4
z{-KZVJXL1V^-%{NEZxYOK07MHdCldo%k1{<mb`UmdTL+%`fIM4T|r4bS<}@L4@9m#
zb;&RJ!Gvg^W-n&}-n@!Cr+07OzFzUf?_C}859SLf9dS!r^5@ra)+_IRNcx=>Xx-C%
zbK}03iziS2u(0p^y|}hdiJK0G967<MwBI52B>xMq&cdi~ckiA(TmPx3sG-0)M1H~@
zpE4T-wi8-xLC*!`46EiWdw*h8OF{qcXPcI7lPH@Nu*LR3js6#t=Eb_E7gq~MoNm|>
z_nSldyn^m}v&9FNPhY-$d#%Hr@`Frjaw*<+m!7VC`6I=?wz_unp1(Whl*ARvbKE;V
z=XOEezMF~$<(IZpZ;rq4{*M-8y{?d(C=VN(wr6U9;n^<7r|I`gY&8UP+OvM_eC-~3
z(RpLSjA*VI>p3<scQdFa+zVc<cYn=0tEt7Zd@a6}j%RucqT=I^{QTSeKL5|ZUq@v3
z@0aau*>LO$r-;h_BMuVF)+n((dU}&r#Anj8$qPTor$lfU+&#EzgMdSm%ro8(eUIx!
zt}}Banlvx?U3F8|Q7&Wd)g49#yqWfSd`pV|E}gK&+1_~r$K9FCzb9J;IUQ1(tKs`i
zz4*y#rPt9K^R+LpHQKkY^w;8hJl8iIGUBM;EH>BczmVR+nttwGH|<r|oGI9BwO^w+
z!cpS>)!An^npC7JMwLfbh!!pl-zL$vvt0RyMScDGJsN+7B|JU$Z&v&w=l5vF!osTu
z4{hCII$cQb;2!Tu{nlAL(mRE;?_A$r;vOjRxoG`6r`t07!WZ4N<P0zAyCglYCqdc&
z)2_C=Q|kOvUsyB;a>#hN&$*o@o;uk=Wr<JBj3x`6<8$g<WTFn-Y_hntRQb`1M&`nl
z6LT!8o;b+VOMXi1ILv6u`NoCu?7N7y!kcHDf4I(&XI@1k|I-_6%`UrV-i+mF2}roG
z*G;u~kHe-H6HFJq3OJ$~(UE9&N8<3Zl}Q)FD<<jl6}mt8W|qHOxNxa;*5SE=IkWV#
z-Yv1@n10LlZsW|AJ>~Agyo?U-`FQ@=q&6=yNnzj=`!4f>?SH*$^US@R*CM`zzN=hp
zE?}9wphs{egKQzkYyQU~c`7Y(zJ7sSY)h3MPbqlW5nPpUPSe)t`4qXC#a{h25`G8Q
zR(#ogRFm<VaA*7$^XeTgZ{1Y7otMos-mt_?f5qx5!30jxJrktkrmXNfVt8KZ_s)Zo
zOYU5_z4o5Rj!o8P5-B{Z>se%spCsOyw@_GINUyBXM&wDW=%)uBc>+1=5mRj@9XxZ-
zr1FSX{si|YZCd3mYhHO<Y>JjUZ1^<4_gaUx+v+)Il8bJ<d&Ai9mreVbgq5Yz7qLds
z?M(rK%G!4_j-T+_#5;e{(=#7TrnjsLSDLhUdcpickGnC4Sf9qt$<ljxG9k5|Q$A@@
zBIo|=Gmfas)o{04+_+rB-M;AH-sDLR(xzdKmn^3Qw=}jcJF6+S{h`~ONBXkGUQA+h
zCQV>nu99+4lhg8`=BENbK?!A}t52r1Xj`TxYsw!svvfVT%<Ol*YzDWjgtE|a->dx{
z-Ww(q<QF`a2=mQV`_A`g%NP57f=T}6^*TQM%7^zD$AmqfYkFjZ-ojUx^=_R$ll!6L
zyZW^qhm@;-D{HzjFM8R(L~42P?S&~D9$h$~-0ZB{|KrZmQ_B2XqZgSzPF9<E>rl`J
z*OE)jvoCt~*Bp7_@~dIvSryK3gU(ITvNlb&fAq9}EnpE$<Ca%i_rWoL!wHFPuj5`Z
z{%kO*@3Byw{j<SjPD)^1?LOD)sU-;<E^Q?b;yz2i)Cf%Cu9sQzHI2J|(cZn6XCHm?
z>;zN2>+vn~^F^-a7GxY$QJ=-R#6B@FNGQ{>+@+w={_2Sfrvwr|vTxyd7GxxOu<%;9
zOz(4*^4Zf09~tMTGF0!q{vhC6MwZVa<`XP)zMW2QE32Q@5yF3Ps&_&`aco<P!?HOV
z=k|Mqepe3-blmaGccs>$sGzF}Zx4EW5nkaU(tXi)s>Y!xt&0h7KZY*)dGFoR`Fpmf
zhb%gI@82RJ+YMeVt8K66RZrE3HCQi{npPgtd81KlB7b~{w@TNFHaC+St2|wD!jzKO
zy<B+XmDYS%swLoC|9jGF=QoaD6+ISl-ZQ>@p<QUrO8(Su`(8ND@3y;=G@0SGW=fd+
zt$wF>&hm#Q%{1k$)mZrK>%ueF7Qc4x1t;TGzb=&2+w|GBOrD!{^%9bP6#-7Sb^438
zJ~B`8G|cL~-=TdhKcr__ow8X|J=4<@;%A@moeHeqwP>MCYMXs$(UpihlZ&pz+?jmv
z)T4hDrvgteTp_bnwu|k1U)VkkcmBmPraM$0dgZOuaxe9(%y`P-JuPJGl*KIB8tyZ<
z{+*&+x1gxyb4&2GfIgvBD`irjWt|e7AKLe$@l@d9`AcL>Wxd$6`JSE<{J%)Xc2&`p
zgh?&hGnTBAd0W4;uxLTil~0O~xa41*3RDfQ5P7;{qNdB!6*Dzds;9a<{5WOtG<!$O
ztlz?K-_HH<r*P`x`^zSY@|^zQDd227p_XHd&5^<h+l3qpk3}WToN(%X`11pj_YB*)
z*PPExT=(GamGoLogJoOldAb%>SbtWMU84UWiZ$f<YF<|@LG}y%ck9pBS<H35`+@Cj
z`~tQImd`gm{=p$Eu`>MOPA(;zSl7&lH5W8xudw{O7qPr8(6VN$$NjJ2`oB&G3wDPb
zi~PQ+`r^;P$(PoP$G2>E7rdvkL~>bWcZ7>+%JzfT4(IJY`<7wJ?jsxYqHbP`P2#+E
zi&5g>_nVV<i}PLxZ#XrLZAJnwZ@t0hZ!e@C{5jygq2|F=(E}$Nx9??macSD#KmYHS
zPyVjV@JLCS=j-|BH~bh_9{G!(;b=%OH{KoWR&yga>7eZCw`=}gSG_Rj&-K)4WqTcc
zWNVsd<W>tMEY-gJYW~`vMo$i|-F^5D<E!~aFL-*2);+so&pI)^>FnzIQ>8Qa-m06m
zdUbuh-n$2<yM8S{+Zgi6I_Uos+m-c~w(V4TRK+&);(wzXc_N!ETq@kp@_m)oiOM!z
z&A_C0@R`a1p0IxNh`Ano7Z_G%mU$kU8f&zcF>OPp+|26?XBnjy^j}CkrLCD}>Y%ra
zW%hN3weO6ow}#vZF?Gm&#l!UPhwQVtoGMQmPT7YF*0UYsKVPpe{Z(JCC9KA2lXpXt
zxQFg3j#MX;&t>0v1HSE>eIQ+4ZEfqas&FB%`W@;M6TUXe@TPrR#ys`pZRK|l%lOaO
zhul_N|IhMjnTF&Vi!TqpSO0K1lK;v?#_8+%oW}ts5rr#i_q#8cBz0Lq(6BD!+UMh!
z|5sGU`s_%GUGt*8{?3^Rp0$@%mOM+V|J(mlSHI`Y+8LMs3rtTi{uR$R`{MsI&37%Q
ziT&I;v;CL+^XM~sG79><o;csPT6UXnAp^&s8)X`jcV>IlBsK5PTsy(jqvy!p_X}&*
z2`$(o&w1fe*}cgHtTTPQ8!U5<pLoK+d0`u;;X^KYEujT#)wp;$17zzbX;hr_o1M0(
z;e6@xl5Q78$u%lm&K5>0T;FH?tT^kp%~*atW7NJ@=Zg>S%{;F((Zx}zRB*!MZC|!2
zEik^F-QeZ9Z{e#@QwMDu;rx}1uevyXM9WQk_-XHjSq9r~GfjM6u2C!UGH%{4i=@40
zRxY{kv_i|8aeBhO*Z*73TeSTXe_!vv!}8yU<-hoqPItQ>R<yAEaihPjRPkf#Z1q_I
zyuR#dcb}a-`%?1P-^U-cZ!KWcOW*dFiLdoMR~!GTHMc+c3jVYFb?3yFf4oOIU1tBi
zZQihJi;2O8OR0Z5AKjJyd-Ks%>AyE0t`$02Q>GUBpt$;N8|%8y^ACN{l@4Z6+`Z=O
zlaux5e@&I1Q&1_de}}=Z`9Z|h_#KTaSUz3;GW)6jl#^e%=F7<5-zJ!@7yQpxMt)mO
zrfb-jC*InVx_9r{<dpxD`_?IKZG~0JS<h~kNuO5}51H^o;AMXJ>zC|R>0VP<ru)=g
zJWweg)&C)FgC9r4^G&Ps*N1Q4et~sXyZH1M509!Atg5ds<ealFVx9l{LoYvHE<G~u
z-rk>DbGZ5Y{h!<46HN~ne^~PGNKNnxg<6FZiAO~$dH>toRXH>{^JmkPUC)CK_5@mO
zm!6l^zxB}aoYN0AZ@(1cp5Afe%8mme^QH4X{M_%ly3IYm`tj=3E7RMT2R^#^^S8$b
z$$v|><@D;U(=)dE@2XL{GcC90_K$Ds659`4Shwr_dD(s5o+VKNnU7@G#`x^hVb%I$
zpYmF`0W^3pJ>w#yD6_c*V&p(&J7}-M#eSg)nV;=G38=8;JZE6a*;6L>#zy1Pnk5w`
zn@TGh|9)Nh=%Vj8li9Ymvp#NQ+9T)t{kp4I<e!L?joBW>cPBhsZLU%i^us<gLpfJ_
zW@d}(+9}I+?y3G9%)DT|RC|qcR9<h6oyk9=Ojc1TJCUVP=KKvm-W;!g{k?wQo&~xO
z<UcZA+HkF4VMwv~zNl+Ox}5oDADQykDy&+l8$9h$`Awsw((ei74>wgRo3vX6WdB+%
zy+<obd+U_Hp$kJ#&j{KyeSTb5X@S!2(+dyyRvBJdrO)*GPB`=a#tA<(>ROK<cK*Tp
zUo~D?VBXHmdwcTl?fKfvdFbK3t5Nkk{k^x$yuIMo7B`I*-eK=AJ&pG}-l$ceI!jhm
z_v)U+w(Yl~Osu7rRGs{Le|q`DgV_~tRzJDS9pyOJ^q_x0t9S1ryZZ0XHtR3V1+8_F
z+E;ylL0XfU;Fou+e!hF7Kl}CX;<R&edGqt$&6EFMvG38G`G23zdAa%d@z-a6efxAQ
z{#X5vhu=PaO56MO{=TTg;yXTVsr!*w{hwv}|IhE<$L@Xf<JY6u@S_2Tmo(-7Zi{H0
z7NP3<v8?R(%rGIt#b4VN@5?q#%=H#|9mU)Bb;He$%q=MyYu8=fXS;mLyu0=>HuiSw
z=G)ojuV46Z#?tivFQk}{a7^r47_zmcNaI%L56y;8n|$g|i}p^~eOq1s>+H8ze?6>r
z`eFO+G<*HWXG(Ws@8@ld{&4<c-p!Sqi^Wzr9!aXxxpJiU<UTb=p$3f*p<A-0o7P^M
zyTHEp_1UOfj_Y2f*7B}8vHA3DUZ;iY4CZVUk2JXPex}O1b6wk*a@BUW@7;KF+ds1j
zTV7uk4Vfe$eWrHz-W@yZqyJx=nQg+6QnHNc!jYsIXB?8NBoBSdaCsqi-+T7$xBRc$
zgZg)#wx7>kR2FZb!pfHUZNuXCohstDyU+gJDt_<g)x$e&qT}z`tbNZlwNX9uUdRQH
zI*SK0Qfrs<M6Ldrr^;!$o40BI4IZ7KnQOM~3f;8*cz65PZ<!&w>!NS2?yIWzH5Hk>
zwuQ5*j^8$a{V~>qC)AU69ZmJ_^~-YG`^<k`@Algl9))kbU#xAO(D>tvT$){6V8;A)
z^B()IxU{goboaNbA6wd{E@tC!Gf0?vyx{$#pMNtF*?1gg3!Ccmq~8^q+y88T?ApHp
za@iaQU&@sh7vJXhUwnwgqQU1HdyG5Vf%+2{-(4?%edBw^x^>=DGgL41HfgQO`@>Q0
zeMls6){}GQ<@?Onoi}xqC^uk~>o!ZRPTaZok9kzA5#R2GbA2xP6m4+6sKFOJb;;#E
z1HU7eh1dP(Px~nPWhQHQ$<gR!$>|nLquf|3)E5}+xVWt{!aP6cbdM>Qy2PrU#22rQ
zX5U?0|Deh7xm0T7{h)+$Lsza0&%{c-O}l3(?LTMJJvE2*SM%mQUF%AB?YA=Yk$Azz
zU3+)?iy7U5g@Vs^^-iAqPx3&KzShdmx9|8r(q;YaI@ut{f9i*y?XMMH#CLvXkt<o<
z5$wAy?B=2@M)5>HQ^!p=l|l;{<gL2mrut2e3G_R-P`G}D#?vZ&*Xpf2LOVIL0s}*|
zA1Iw!eYC79he3LUu-2Wc=Hc!_26Y>ki+<b0xnujOkX-#oMz<$ttvD%Qc0pzB>hinR
z?EBu^@Lrzt^hLqpp!~km`%Wu7_;h%}Rmo<Fwk4(s0!JTa9aH#tk+Hetz&uBxlv4__
zo6;w+RLZbjeDTr2vHnuR=GQ^$O%Y<@QM;BtU^&8m@2+F{C0Q-bBH@kI1}FcyTzZ)t
z%FV5~p8u)qHI5A(MP?_<rbsL}wlm4pSB(9I(?Qm-4JvCig$s9@6|FccV0KPawe%4~
zPVYAEs}E&lb}itGDqqeQQM>EK;|*=gw{&iJ@Ntstr*0<UO64gVU#+@RKhaHHLBQ?2
zII|mLSu5vb2dBiS2Ie4D5zWr~wO$-Y?X481@XZkNYWLw>>b$Jwl48HJMu_2q!npJ)
z4X-PX>{QuZYtx`x;Q7L-*fe3%Ax);@)nTr#OnQg*C?&a1WL)#6;)2oiJyVKZbtO!a
zzxr|Q*fTlh<W8wW-1knf?9AAGrGEXQ9lqiwMnO|fuzp`w&?%qjTGYuTT>1Ek(5gMo
zdX3gycbI-P9NyLtb!Xo;x6SQV9xtxnseLH*V)wg!5_e|F?9hLAap7;F#+ko`Cc<$1
z`yJW(JJ}W$$&0heFEmh3vFll|__U&yxV7Q5&#lLJx<w?_>$1DItugu0Q=hnKi|{g;
zBVR8ayE`M`ev|a(80nbB8G%>X-Wgdr&sNBbnSHNY^6E0>Sx0Z}DD7I4b+|L5xz$%w
zcxkWp<;gzlef*5(xp>Jmi@5N|@&B#je9Dn?=;CsbuQLrFZJHVQ=FBhW8~a2yRm^Yn
z=K3r0Wx=)`=LHG{pM^iS)?TQ%=7i$ndTHMFVh(qI+2qWrfy*<s552LoeABcezRS5M
zbM4CP<id*AyUZN#1PMj5&eOPfV&k{aDT{JEl$|6GKhIfRa^TfAul6~+*DCQX7i_$z
zyn20;lHOv$%r;w_mbaHWW-OYR8m6@)Pjh8(;*nIV6|!8Chq$;GFjb#$7GpoK$zbLc
zarSzrRbiJUyPGvOY_Q-kJtxMlzw6dPWmTVxyPTxlw#{7}Ah4ri>t?CD-i;5>OO#q`
z9ALik)^*K_gtbXrlGB>y*Gcq$-kEFpIKZK6+ODS(-A+2fOnYSec@NK9p0Gzv_1ry;
z85y$f7JW5c?i+**Si6<mlAp3=s79^s5S6@@#B#2)p1~yjlG>Y%yDzz|N(q^@<=%>3
zqZPYS&)wrZvt-`3B`v9J?)tJ^2WE(-9;*=NI3er*r=`iDEOEwrjypQ<?EmssOe>Pe
z%=^x+mDwy<d;QPxnO8(Z-oO9wzW%|q?JmY@Qf<d4a)jlxK4rAswX{3r&aSn_iH;lx
zJ=RR!oBC~g*vGi~?_X9`+lX!KN{um#H_w+&w<!GmAa^BeqF=KlLp6J~D64X7vu)%8
z`3NOP#T5qEoF6}7;jWGmdoWROvFTf@_1QK#CIuR?Q$?>EI6X?QKmO?1@`BVTXOq9W
zCh~u_pFOTr$le&%*2ufT-{zE7Tvj_{kDnKxZkGDuH80k)-UyjeZ`vqZY_y&wLbY%G
ztT4vu*{aK#)@at;&;0k`!74tj!qaNat8ZNwObkAFmBq~Nw7mWft<<f>N_wy7I2D*S
z>hi9W`t_0}{3thD_`;v623P(($f{T%6!Z4zxqBf3?Cjx7ue%4@O2$m}b@62luf8JT
z-!YjbeEHOui<Zqad-~wj4y*dl&8weXc%UWt;Pt1h0@DMp4qlCm)7+7D>R_m`Z1mJW
zrrUODY>QHyB4N^N64bd?@4-aZ<9pqbRtIdEutzGIcSBUp*6G{6FI>kQ_PEwW^cdIk
zH4+aMUfjB^cIZ^H{;|O7%Eu{1OWwBH&4>!rU<=OXDm{3mu=N>hu<CrCWkz4CKGd&1
zry9)7w6O5^4mUl<X@#ecRGyaEYk$<E(19nEz0I)1FGOPA1)B{VHi2DS)dxH86t0_?
z)RZlD{&SwMQcmf-;~83}tL)CZH?~&pdp@gfUVY&4qq@Ekv5MjWp_|qPi0rsg_%X&v
zG+6bE>9Sq<K2u+5ZFY(A(|v4sm8I;`3@yL<fVz_lZie`X77CgP2Ky%Nck!9J`>v3T
z<|!YxP|bX$9HUiTOv07R`B$Hk<dT%xozv#znBcf@=EP8m{K*rqD(9^Fb542np;=lp
zU1HqS9#6a~Qnu-Y*2Pk%o*h2zA5Ua)S(m0<-5ohuo3&?+*6G*Utr`VcFN?pN&<ZbY
zHQ2Q3dA)`Ri(cHX66^KG%B!b5UU%xuiB+9~XDt_o9(=RzNm54WV#D)%Yx`Wob|1KQ
zZuZxZ+t+&KpFDkZ``_K}-^q?fO`k1q%t~-SdHi5&PUixhWse)G*D86HM=DzA^z=+y
z=6~X1{7IvtFVi<qk@@@7?x9P(N0n~Klky3Zn-71OKBd~(w?0H>|DWu0Cl6ZkNUO#v
zskbwH@0tB_iVUOi#EFli&-~d?SFvZ$&ggu*V<s~8_vL5wFJ6D=27_<Z!<Ls8D;lO&
z>q@sfY`gkr%1et~Ez+%Xcs(ce>`~FXBYF97aKenv^1Z&Zm=51hb=$t9;EYi872|{(
z*Lft?OB%!(C)8v~8t|>Gzg=-_(Q1oTi#XS84}ZP!jKqQ4$<0k#oN?P{S!?C6{CiWi
ze!jM|lftr2;prD2K7Y+E^Uv98O+cc=o%kP<w)vlbeOB$(*NjceZeI-aKe+Ikr}|mh
zZx6(5s&@X5y&vOHIs3wddwKHbR$9D{lCnIs^*{f4{{HRu{en_e@u#kF@IL!cpE5ag
zvHO_=_6NeX3f2Fe?mo+wo%-b_o7zM5>vG3<j#bLvW;w>KWS~4(_#*GmB^nXVJI$pw
zZTj=0JT>-c(Z5=~lQ%yfcCSA?CwBd3p^v#bwu>F=9Zo%Az1M7L`;*E3j??c?n^)Vb
z#4p^*zBTfGp8dVJ^?$F{H}&q_e?R8<Y{sSam#vnE_MYVy))BsTeSz|-x4$g^OwE+3
z`nBF~0<VnuJL7<<zj?l!zqUwdj;!7H>(8T~dNrOVE&1mYeJ<zCa_g?%akr_=KO^RC
zo&%d$b3)u1hl^MCq)oN_v1joiW2K6BTk<b{oZKiUp1AaLAM=fueUb*ua!Yu-1lFB;
z&S<N5=u-WRG%>ByiR!0hjRiM7Rr#UE^G7;ct!P6<Ov_SsId`#q=O3DzPZ{vc{j}<>
zYfM_TGP^wchNF?GM_wO1ZY#kOX3+MKfhG80a?RHV);5X<4tMd3@Y%8L?7UHH_L|>P
z=S0-QtBFhIa2{Hyw4&gRA-k@JX7LOq8TXP{VgA#hH*G)H&sf|Q{q?xjCl2NyuNwa*
z;}1)_qrZxD9TI*i7-m-{%A)p3Or~<nqDlU4^;YR}@eN)DtLJkBKcCd_T4G7TvqFa3
z{Z4#VpED9&4{Zr=nPRS>tar#OU5<Uj-?<ZyKJ<1=v~@4p>aC>rUT9~vg+aS$+-8eY
zj_!I<z0S<1xAlnm*9RBMr0nV3@F{bZg2BY?3fVpL&PgfTe_dnvsP&q~Zwrkd4FNXa
z1CIHzFS@go?-ZkD*o@Of&z>Lp68rYyMu!(kQqK<kSoiJ6MhAU^iQDrpNmNG65{+m&
zvCC;rgLP_Z>_UwV3j*G+m3dttw9aM6O6?;K^X4rM5QqrKh<hhtIoG<aUN?2thM>P&
zEZY{_pM3Q><w)x1Cnt6uXUw^Oec!bC)gcuf%4a6cP+hRZ{eWx4%R7%5wmrD>IPpr7
zNJPu3eixp6BeP@`w#MKqMQ4ipn_5h!ing)@>V5!OTwu6$Pui5qpT+$TBBg@j*<EAY
z)Rdpgv2VCMr}~KaO5eEx%6gX*>z~|t%usf!xL@i|_0rYc>^6}uCwf|)MIs_BWd7e#
z{%1CI#rl?(rMl1VuFwXRRGfcz8K3HTrgKyOtk0xFk6De*1#olwzY3n7p|;|_%rl41
zYr7Q;cCA=omzRHG+J}Zo$3ENIJ>Dg<STlHr+O1;SEd|1MyIx0VT|ShaxiMtdzCZQ3
zYI7RH9$aY?Gtn#OGuqR(ZKA}T<C*NsOx|c^Y<<!-?S~nozqQ3_%jV3KN6#N<Pw_0B
zUf`ygTtAsJz2mfL^52bnruXix%UWMizA;?pU(TcNicETkv^HLMxwSHReT2!=HDcAh
z8@%3_PTcli`yP9aYewALNgbzmrRa!z^F>cmsgIVGh&d{LhI8(nCI&686)$BuPR@>t
z%4`dt%ot{VlIuH5`j@Y7-&zI=mKRASCj?lZPJa{sNVwvXon2tZ2DXEpcP{_QW1sqC
zR#W(iS4C;u{M{>pdQ9Et{wcRMdDgJ8G?hv3dYbtetA@EYTYFLy&iTn+&Wc^aYqP!Q
z`6Q(rrM>m7;xkU%Ha;gMu~@x_ap{h)4R#X(?F^4M@2tI~wbUi%xbow|Yl?4L`q~xj
zPQ2?{CcMA%S)pK9$7a4n^%9#ICHqZd-cM>cy*tJHoK?fz3m+4r+Ql6bPW%o%S5e_5
zJ)<^4IPvL+5P=ydW<Rekxh*_T(TnF%-sxrz7UOp-f6WZ!tM|^gwlMDE=R2{ud8xV^
zv)<A^zUlMCd3PwMmMi>t?Oi4x-y-b8dbT(|#eABSs(y)E+?xri`<^<z=5mWM<5A~}
z<a_Y@ZQQ;G{fvc;x9yg#i$C!6SLdQS<{$q`oOf0k%8K%2<k~P!?5vr^D4v+fk?nJw
zagT@dl>W;Xv;=%R+w1$bn*G|!<`vh}e_?ls@fphpM#cAdr|={mS6QfXlJ!i?qIJ$k
zQmuMeyx2DEU77atjJ`zP!Pl?O=vzqac=UCqJ(tdzKbd(pr99zo543vD1aRa<8@ex4
zDA=gISt^!qX`|3WLu;jDb_N?46h_XstcYSe{?2c~68B)nb<Nl8ekq!Uww~U-a1!6U
zL#8{z`4XI`%6bZ1Oe}0&Cz+=1zGc#!l~tG6S089K(tF)3_mg+l$~F9fH~IoP)3pi~
z6h7p0n;Mgo!nnZb=w0cHbxY^@*Pi_Hp<ZY0@)w|CE=D8B8W|%COH<Gqndv-SOv3e{
z*}FIGbID#BG_{m(0?Wh>&lAs*Lsy^v_w~!321y2yl_#PDgY0gwwAtF;wY^_bZ>yvy
z#;SL3{=*NR59(tkI7z6i&=WE1=zLUF`)w=3%<rwjHitVTb-R8a;!mD%^io~ILf?&y
zo$~v1^8VMv3bK5Pwq_I;$vn1H=i0weLzR+^^<4T)f_g0)9E&bZaPmCDIepdaE4(q{
z=`zcVoO|B6hnG!JRu*~j!p+hqP;2Rnuj<ZuwafMRjvftrnXq9+c>deBz8mrvsQ7JN
zZ(!@QDgRsiCn?s%bDJ!7>z>oA5pcAu$u|i<QfuVu&$DF9t*KXb-n_i{zbij`-vN&!
zQV%;c!aV954Z_5-RW!bK{eJ$sbjJ3E$oG@|*Dq(8EV^y}15RPTt3RLK<bU6y$#F!a
zxpDe-*9l!t)6I|SZ<c@UKjXu;o2KP&Uss-#m_7IZN}KiHUjMY$uYVQRwfxE3)a@@E
zq;)DUR)?`&KXq?=_vFWp9n3E-7Vz}v$+L0!ZPw#zSz*GnptGK@Mqq<M&Yh=HN}r~i
zwjA7W^Zu>ay*K0ZXa73Jcj4yYd-a8J^KRb|nR}H@nRjAYR6^wPr^2E)yuYp%%$@Mi
zDxOa%c6;2%Z{Bxf^k1Ldqf&J3*3AU#=j=Jlr6x@@*=e@B{Buyje!I&@Uh=QvYil&@
z>N#a<dire4nXLSq{a4rJZLgnsy})I{#4kIphY55$PFQ`{IUx4!c7Z3M!SzW#YY)`R
zzfn8#WLe(k)W>~>9ID0#UrrT2=)qYol*v$@?#G!YoMgZ2{i?g?T%*oLJxS%cB-4=1
zut80xZ`r+b-dQKs+<f=vaOmA1?b6n_?e=88e?I5jt8Z!d_5NH~yS;t)o!2~<oa>u8
z9(}7&x&OA=PW<)iRey656WMQNMLO4rZD^9ealAeE^0xiwEa%-_8+NYq__@q-wPk&o
z<xl=-=63sNT{*Hzzw2F$<Bo)Rf=y92tcoi+k~aK2r{4Bs&l9gRb^C5lm0v&od$Csf
z)j6wfK4Wa~I`QVa<@7zwnOWr*)DO65Y^--ttluWRWJcOXG2wLwN|vSiylTl-5izYb
zedoTZ=njAS*B$bHS$^9+ti*VJ+H0I@akNbk`@Zw;<-__rb%d8GBzEQpPG8DUy`o}|
zp8G=Q(w+9syX>8pi@!S3c9Q2pb#>L!YaUvk=XmLAus)gXy!4h+{sUHJkM=$Px6Ra>
zbW(@;Rp+_-w4(-Lo<HQGXJq`Iv|i>E<CWvfzVe4(U6r+dcGc$3rH$v;&Dv8GxOSn8
z!Sdq=vMLYyh%JdyJe9F6;c3^$W9z>b*6-cJbUOZLcs^5m*OqV0|5xQN(h%vex>ET2
z*TTKGuO58Ft`W^6Gec|rBn_2RjaTxswrQ80&T3C`Rh@8nQ_;`*;JYVNUr$PjU4F>k
z;mx7z?^m4-{i}6l%kF^q)wwJ7cBgHvo*TNoiQ@#T&YF8y!?cQ4#(Onx)O{3p{{C|&
z=c%<T!kcI9+uGh0$nnWJ&h?>vwOz(}^<~p5Hb=FZGKoGE(%`RF65aUOKC$uk->lGI
z9S5~vdi_0XnC<Ou@xpMn?v?rw7V|dqquh)q8zo+u|B3a>-{>~SP~GVzOHOsHkVN9T
zto<()Uw(^Elh_jd`xO82zkUz2)9d%H&0~uC?x^F}yF`EC1|h$ff!Yf>6qgoh3+qXQ
zWgcpbTqC3UeR2M+_N<+s;zJJhq?oh$Y~|M7oXEMSyg(pe|7-b&foH06pFWMLKk##H
zel~kk&0<bgKNWxG=aqNw97&!rC#Cw=A;#Nh&aN>(J$r|(WZ7e{$tqu0dR-Rn)m+D^
z-pACe@~CCEIA08xoywEEQYGt!LK=$_n%vL1tGc#Ctb5MMJk`N?%d#c2Z}z85SucN1
zBi??_ggHChtVG^cWKQwdd}+rU_Up<5rls{qLq0s5db;tUxX(|G6xPLGwlAo;Q?SI;
z+UKVPdwuf+>jU{=-PWhynw`ztc`u*&HS?s$w>?uQG;Pk~)-TzackKPfMG4Q#&G*Ic
z&}N<S_EyF*S^q|3`Fm_WLG}|p)z<mWeXr8tzvJ^kk#okCeA80`{z**ikNKToTEJq*
z*lcI|zdkuWUq<;tTG{=aXDkw-HN`)LtCz7do0YHon_T^z`}nS?s}FB~R{S{mKoCdi
zYEGNN;7c=IRRfMJj6Kl%=Gu`~@vpgYKP;ZOmhZ3ju};2~8@;S{e*vpR$^DSr)cp84
z$BX@R?rt&c$on~qgP+g#aF*#&CCe=zrX2U4^^2|N{`T(rh;$j-KS8-V>F+F5moxkQ
zT$a1~>8`wZeoG(y%9j7ChL3pyiypLT?3@tzQKWQ>&Xl(+)10+3J}RpIwA}AkCM>0S
zv$JH&<>_}5Q`My!-PJ?CZPzyV@Hz4Fg1)Sd<cM<n%vp{)TkqXd_0?X?VkBn&Zn?#i
z^y4Ml%5(p`68p9<vff8fhUw;=56XoS@%=$AcaJ`v+#6&1_W6l+yOJf(H#Rs3nM|vf
z>CRJ6s$DO`*u8en+nTV2(l`HYi@Uztm)RzJ(g)5CcFvCz`X4{4%{?i#<C}(+&idtR
zZeRTU(mQEElGWz}k@b7;*y={yQgA%-_~4|M_rA_OA2QplgRix2g2CS_^=Y|X-+w*N
z%Fkb%I9ZMP_zdst<?~mkmWrBQo~UnW?$0}K#epeC*Pp3ueP`glE%e*Rs9&Z5_79&$
z>E2^~wZ4T>so_JZm6n1vW5$xyvKyNPlUF>?zRP`KU6D#)-;^oB-8WaB+|X3JRcB{7
z`(D;<HTQKT;uEfUBsiV^QssR<$+*4#ymH~o2(~vnFRlB$N%xy3%g4RxoylDunp5;O
zu1;IX`14`Ag!h#0BtGwWKGS&TmviP;ey)CPYrI=xC#TmEp=tY?jOv=^$3L!7xwHSQ
zQr2(FR^biSXI=T!cw3I1kn=fmsrK2;x*ETQBF9fnY%AL0*QdO|?Ln_!!jeXZf*CK%
z?CSR|G3ZK8Rt?V9O-{a2Y1yfeyZPAW4b17Bnn{UyEJiJIDZ3r@y1uT=;<9#rDOk4X
zp=_GfmC8L|3M4JgcILJ#&I#Cm#k_U$p*G$JM|xYhCLMBh)_U>bNnBe)QS(y|Ps^yR
z7L9|7L6VDREZgNgrCL(qRB!K8pS4$&wXCdKHP+O>+$_l2yEOIa(!G-p{3-Y^@?=qj
z|3)=I(+P4)tBh+}Ry54uGuV0l$I5_NI(Z_TX@zzt+$N>Jco<_Wc=2&O+l!CQPXpX7
zqcS+;*0l;sR?K)igQ@IJF`ult$u)zm0qt|n9XBkpc(N(|xf0h~@x(70MT=tE=KO9h
z%~6=EtZrD-QZG}(VRB(NM|Ifzh$~5aN_yN+Ihs6sPTDYPwzP(Ews4eigtW7W#2axO
zJy^74iHz>lWR6|@kM(|APmowLRX~yP=yVa+!kjfJS!)><AGvsvCFT9Ad7R3Aw$=7Q
zmlnl@UD_wta?zn`O2eXu$`Vr<^&)+l&uO)+P6_xZk~6d0BePzbziVn^fJVlJp2F|5
z<R40Btv54u*)4KOko`E9m)e`FOa3nG++=drA(2<OD)c7H{&gQd2?z>3xw}K@qTJ&N
z9P7BwCaj*hZGY=QD~|qkH{Y%o==sZi^*i6A`i;#ALRw7|+^st_%A?o~r~Ko$?s$Ll
zTfg_VKRZuOyJ>&w#N(4@r|RcU%W1##IOR0|SAOB0-(IiS`{Q2Uz6)hjGL!3HR*Lw>
zz1fmhqEJ(%A0?OVc2GTS-}goO+r_tvdI*$lS=>>y{Ocm;mzS#p`DZZ4w&sTH{CTf`
z-;BB`yW_P!E`HHjwEXL0=a-j%Uo=usIePw~9n%bJ@y4CWlQ;cYxaGabn->dSz6jXw
z5zTSIamSLyeTU06f}UQwus}muMbcCzmf!FfvyJHmAA@VIiGOZi`q%$kT)4}P>+$=u
zx%}xHEN%!$DJ;JAZ;_Bt@CvQw{XbQH|IBX-)L{p=w2h}5Ze$c@GB%&ixQ|K8<!$Wg
zqPu27cVBDom?Gx#p{~O8@vIx6Gedk&mW6qWZPM|U@-EUjSr}^e`Ss<y3_lo7ddI!=
znwGX>gT8z_gOm-!FO%6K)Ahud*4J-zURYouKWFn7=^dZFt*=(4ZQ<E<|6S+d`xlQL
z60w-HQr$$@FYvDo%aVB>OOH*u{r2(cl82fx-*$bL=3ce%Y~N%3Jc&lvy*1mvAJ!Ju
zV!V55Ve5Olu#A~vp=^792mIaj|9ki4^X!-2$Irh%FSc%PWnqB!(r@)P`+rq@_`Q3+
zmU#V)$?H~G3jgf-e}U8D(8+hteq6sid3D8C%fGMw3f~a;t)BV*?DN~d-hRAkzUFPm
zsz0miD!+U+n)kO?`d^n{Y|N1$78#+4@Z>zXUH1F3b^P1P-`M5+-tH$GQ(pC>;A5_!
z(7Uze+<D%XOHH;rd%vg=opoDrjn+GM(|a5eEA_rT(yreW&$dxN?#TW6*jlTdKT5v-
z6tfblV)nYYE4u4}#fpu2S`WOLzOMe{6FF0{Ue06Z|H?fk2DhTGD;?)9wvbbL^5>b^
zw$E+vbnn~m`llVM8uMLihx8=R^q1Q_EVq1raWtcQN^|8x!}qT<ZZ>L~=UhB$S#sC+
z&cEkBueR^_`n>U3aQ!uQ=E?5Kf8`gKF8r$IJYn18wP|@5y8jj}ST#ZLYmVgOvco>d
zjy`iTx%1N?Kk#z(`}6vC4<;O4*Th&Ow7t%5zm<I^n~MImOXnJ<9B^ZPz2Y(7iM3|y
zms`9r<6o<vIn$s-cbd>`-NX>?gDl4zi*MRyNwjB5RJC~@etbr>si(NQelv4$iLJwx
zW~WyZPkp#_F7bFv5ZeOZ!XTr*eT<<q${(y^Ojt7I<F9j%x~?1lNS$|lmM41}V}wn%
zq9o52*Y1<AcP!$WE_~8bq|NPN!-lt2K?3TJjn+K9VPX2~#lIBU+4r~E`CVyeHcs@~
zdc#C^#<R4>x$&RAp1H99_2rmbv-RfIt1$PU{Bn|I9Si?9)yWRm9bC^V<d?6U(tovC
z=#`^wt=z!{7h`_&_1atxIy|-H`DefBZa;5qn6PozxlO`XBP>rT^amf^yF>XvszHEH
zZg0BKofVw#QexV+ZoVT??)9a?dgnvl^r&ls@lm@(+_Dc&Y47{a#<3&V%2F=GQC(JN
zx^2Bx<qR$<yNiCF8deefTr1f_c_mV}OsI9!)UQ3PaZ6Le^>|xr&(*6&TGCd>G~PYk
zE6FOv+r3iv%$%r|o^Gl!ZCkV7Yb@p}Ik{rlLuNPCV<s&xZ=cz|^wNt*YBL!Hl}_J0
z@k*}Rgu`m`P2qB`Z%3L-Bi(FQtWfFy#<nDKx(!!t{naC~x84P}^YMC1tX`4mm;88w
zrPQ-czt6iWyt1@V+<eA!hg|VKU!&y?-)COV{Lx@p(`E9YRC?jIxGQcenKPE=)ITfi
zk$!J=M^Gn2#5|<t-pfLD`8DjVSDIJ-dUEl_`q%Hy2+v@zoSQap&*i25c4j&$Yt|i^
z-?wnFF+bO@>R*oaPgb4POXa*4eR7{qm1FIPgj*-q%1v1Ar}A=b%7c|s&acJS6!X0k
zFJ<?c>ErP(L6q&QiZh4E&kF8z6*haDlG0qAo!n2jubfKwa47rIx(zoD70uGi=zbL|
z@Y+<6|F5FZyguuRw}m^}+E^cp-bsHNxU6{o0mCJ1+hXUdDc|4I=UeZxwJSF~W_83u
zo`eq02%{}mx${m=HuIWroqN{Zs)r{%uQk?`Pk8Sn(RF;!*^6q~2`ib*MLKjYeD0V2
z$r88N;&>;2ZSLuvJ~}_Q{+es?neo;S;Xl94L(c7(9CX-(ZL`Gn3n!usq(gdAB)NCV
zYkiQalFu%&n=!5G?Mkcp+3VKLu0LHYTDtD>j;d(cu$gaS_pvwD`UEvKi^K_S>G*qh
zC#$mg;<;W6oqZHM8Tdly9G<mNV8Q<-OJ|xKH0nBbX!hjCn{Us4-Mr!d&u=fj*<`(+
zcxqR1PM}}?43*^Q=*J!>7wf)@{p!Z==6S&M*>1rlo8R5n@;ko7l~<0lZ*#TpDXw=*
z>M!qD!7lM-@-36YLRp*lXdFm>wJ7%&Q!3Zu(y2oJ0bU+83{8q2F?CZXOxCVClzJmg
zGjP##@6NC}YR7o)I_<Mv9JalnIl3coS@kB5Ms}sbjdK$NkA00Wk(ATEnEY@f?>xo%
z%LI2wT`0Y0bo{TD_x}AlN3XhZPFnio%;lV@Lju$56KAJpcE;&>XDfM}?%#J-O3mPH
z+2Q%6LZ@zp+@I}oE0O!T=ad3lA>UP(g>0uRuj+E?RJWDN)%I7vs(f8-mHX2aw(aUY
zheep&_bq2NZ?B1SpYl9%hSwsFu9bRHudX|Cw?v!xo%FpVa=Kw2=M|BV#VLJEtjAUP
z1OwJxdo<aDvwl&8RLC9$pQ#hgLIS6sTH>ARbErdfA<GsSQGL$9xhyODxTc;<INQYS
zZJPc5YVftCvc^)oxtJGU_@>33``4#rTgz0f3&DJ8N8g2-z0jGkTWeL0+?AG7=Qi{#
zGW>fw)#s+ee517WCrobDPyVP_I_JepJ(K5s>+a9jx$ro(*L9I={i|uq!o^+`N@#D0
z`1qCaWAT*-QIA$xtUhR*Gm%aI!1oIe(yl(>Uw-gtt*rQ2!v@>+2aWS)vgu!R=G8OH
zEZCgQYj=9ZRndDh<*uvQ9-f~Za!B{`W7VqVRWWU$6YOOj`@H*?E!+_4oqET}F>cXz
z;U@<sgif^AcI}(__|O^cPd(A~%T9QI`M*|4-h*QU|1P%BRP~!BYYqp`+uGPS;U3?o
zzWe@9WFN~&yqi>BQ=9PZ<HYA>JC7^8KlnD>+RH94+HP*GPTJ-E=WmYxN!~g6PqOjE
zdKvS7j<HpBMSn5_`HTuenP>N~>RE61I+H%Lxrg`Aj$T6p^OYxWnmjhjQDfifa9_=k
zUDCKP#q0W|*Gzw0#1aG({t9kLe4zLEl-bO8;)RmiDjD@Io)(|}RgTHJe!}++|BAL}
z`Z~w7on10t<i*pM>JtrwEl<vPw(jt(v;R^SiCl6iFPmn|c|G}j%9KSe`GQM5cwT-=
zkBVb^yg8|*b;)Wy?~*HvDz;o$^tLlk%V>(C$;tzD&x+2JY+KhK*0!@DfBw|Y(~oza
z(3srgm3c1Cqw25BkHoc$%!61=r00gzAKY_3@zI05Uln*6`?WP}1H&htxoeXm_<6!!
zpUM*!UY9wiOy!!qaVu*gkDKjuofPo{VH<8b>T`c(h&<t7**kd>AJg%FA!0>MsaNK1
zp3q(ND_L3c_N`qHRxUTI=)Qh@UjG`;!+9o}C&blGDBoG*X`DAxP4}X+uasC;(7gFI
z>n5>%Ihm6A@YHk@1t!b-*XmXNFO<60-p@Aik(RaJQ+)G{W46K8bwA%WTvEID`%zA8
zOicMYE4B5ehh}|FKCnx7zfEl1eSN!)$~P|>C7&}rwa>BqRK5-8s~g+m-M7rXzw7?>
z3zw8zr!8Pj*z6H>F7HHR=MJ9PCl_d4h;ErCl(_7N3KR3gR=+6=d}fs@yw9muxV|#q
zI`;PaYVAP#dpqA>_c-JHq+3JGKr*`7LHwZK^KO@zwzE&Wzg&!VNfL7ZC38!p`{9pY
zK_9==IUBGo)>wRShS46T%N`Rd=G$;Yoos!_nyg`*AkY(dc>9Ul!j4J*Z0`D8X;)y=
zY?Z4z5xrJO=CF!P@s?c$D>(KT{`tk+QSZzavN0<;&wg*|x!V6*KmWL9`Re$ywVx+W
zKWDzDIL?1x$-Oz1+w|vpAAjW3_danp`-wLGS&2W7U62+FKKVg#s-wxVI=lV9w#2Sj
zuCeq?e*d&>ZRgsnvKE>Yi)`NHqq%=y#lN|W?7zHJI3rX3a9=$0M;`aCX9kWpUiLQ%
zXf>wItH1MQL-MNCx!*(XxF1aMou9S&4EuJrx_KUcn>hL+V|;i#vUQgS3vx^goXy<I
zT2bj#^vJ_|;-RGG#Jr%CqO%&cPWR=TehS=C^Eo9l@1k~d@cm2OJ9uV$W@uhGZSOdx
z;?hFT#8QU8n(xmn4ps9zedNaG$+qh+d@R|*<&k*3;r!(K)2c>|k<!zd)t3i%D(Ngv
zGwS^HKzEUCr><_~FE#cLMX@qRvp1w~KREBk*17ZEez&RPv^im2{#WXCWy2cjnlt^G
zvv$NhYX7{fE$>k34WDbijrWwUO}4o7Tp%dQ`_BUgw*007!$4Q53G;rm*75A-I3N3O
z)qEyjt+|~mr3`*%zN$YIC9N@ANT<og{=l~TyhlzHXnb^XGGzQ5cfj<kQ)!atH7lO)
z4?Zi-o~3Mf=*Y{TmUT(@pPy&&a(O-D;NqST7B_Z*Ju&XC-1)wF)+To?Pw~7zwD`oa
zlC2FJ<(``@`+8*i&A_`-2JV>xi79p-o}Jb=?EN@WRO{|KX8fAMEHimi{m)|x<%Ql}
zcV4M{_uxO<%Q$t1&a?X^P7j~2mwl?4Z2aP#{mp{&3%*t=&tIU&QD}PngQ)I_^UBdD
zyMGuOtehG5WNqH;wJ8>BG%AiaAD!_qWLr>E>Xi@Ke0j&?i#4*}oVQyUeJd_<!u1r9
z9^SprOl{AfnD)saLgQm{a)$O{v7_7Sxjrmr+kS2Od-;#a6%ry2{0VB8rWT%didC)Z
zE&aRx_^v63RAbH_+hvp&xn{M?dy8vJuSHyEKDz6Q)a$BkCw-@^T$$b+E4f|gR_LPZ
z1=pqCMIDaa?VlTD@Vd=F`rWA=sSno)?QPpFr*Y@1#^;0gmxKf~zpk)uwx4wKXZ7@U
zWmaAVE}wdf?eG3Py>oGgM#<U_t2R00Prp-_x!msI$M_Yezkh=E+CW!tGZ`CBPt4@d
zntnrtNrdT5;P!VaOsb6a?-N&P&Y0TJ_WU|$pU(vquDS85`+NTx&0pg;Q*v$k?Uza0
zD=TLeopaAmJN^1{{k;FW7tJpFsB50gSo2Z-JL?ny^LLAC%ui0=_w7t=S0EpM$&~i(
z<*Rdl{VS^K-rE~Hz5M0sk9iOG|MgJ$d9T)V{_ijek-#^rCGukS<e%%F*xpzle(dkI
zE%{PBbHa4~lzrF|z_qTCZ^qPR{+emd0h1*eD(3L6sz|n)^KMca+nz4tN8j^)oVg@e
z{nGyYCtiu%Z8x92_CI}9Yz?Pc<F=L++gvTrtE^MJf9APD$a{f3ElGh-PHQGF4lU2-
zF$uErdS@lQIU!Kg)xmcC+p4Xl!ERFjw$&S@@<d(VU}ySxW|FO)`0}S4zS^_9E5*j<
z9MwLVa4(Td)A6?6s-;HC8v=x<3aWJ;-?sJ4`hSmD#R_jt@`&zTB0D$ns+Zx9#B-`0
zVrLDf3HHdZJN$!bYZR00+LG_)U+p%UJqQ<k$*Na*?7-e-Q&K}VIKF#!=J%X!hZ7lc
z87sU^>q|6wv<>}AWj*8cx-7TcxuOu%>gK#_-<-X_mVT?#+@H%k*|DZAVjkCQP9?UU
z&&6xzdw$Qi?OeNe^`Xv2Kc{O4Q;a;<XdQGhtSFGTepD>#wNWQ`>x6B;RzBvqX5Mow
zB!OjH5>wW$nf>~q5=S?cDaY3OCeP4yyV<FbEd0sfO+fu><0FbbLM)GJPjCh~t|)Pd
z-LdlYwgBN!y$eAP&MGfu@k-v&ly;|KnH$p=IZ=;U5%(A-ZRpw{HG#*Xk;(JjQcl(I
z8QY{hqhq&jP+?6i)hRse)2RCW(t%0Z+2)t7hIcNtxS*#acv!AS)uULlt>UQSF3*kP
zzK(ibtpYpv{dr&3t1aR>8r{Lwp~(;|Z@g1~iq&DM(<&+}*1T+=vSOh-$Kh0${`$-X
z$HkYOHM<n%?)!m*S!EHMTwkZpfxhZ>&c{W!M!$Hq!okn*m{}1^#YXmO#WuyOU2#ub
zc1jiHeRtomt3=jP^l0=6#orFhFDD(@`s>C+o~)vEui`w?U8G_U3f7-(2%q(!^^rHP
z`$mIY(@EQQtzzbkn0_=Mj_G6?TSmkOr;kgymPTC5Te5n6!_rd@)_VnfE<0~j@i=Di
z*k0z+q6pJvwfDN0>?%0Tsu=s0CFm8y;n#t>uFu{lNglD`{rvRI#GsjhZd+Kb8;)<j
zX4UpbZeOCuB;FZTQ%|Y#>M48dtaq7|-J)z65}lmfx@lz;>;3g#J|*x=J&E19EKvS+
zf<|MzG~Z{Q)$AF9hK@J#_Z_%#ZL-0M^7Ol{D;6veTfFEH-_p}+il?+UEIH)H$npBl
z)?4fD9$^y@{qV&h$LQ=^1+^E_tG3*|=$*d*=$T)3r}genWBHt$n(O|+(Wpn8FKC-%
z{V!3K)k~dqZG$c1Cp2qUYuE;RiWCL>+wh^9?LgcVfA7eIt@4RqkHs>3ue@#3aliMv
z_`J*Syx*LPdzG!wW2?&+zosQM*EV2Iy=d6!!!y&?$J=f?r=C3bPLpqi{!5;u!xrhz
zKUN2wvweAYVwxS>*(Y3T&L{RQkU7dGc((1s#LW7Cg)`JrY-dIX+14nY;!U3A`%?Mx
zpKmkNe1h4cz9_4o01Msk&n$C#enL;aH<qjGxZx`O39cI*-)vI6lQ#X4!tRv&Lc4Pe
z*-jWAEIjZ%^J&kj(@!3<_zS+2*=qdLwa)zX^4(8UimSD5Xw1+3bWhlD#d^k6hcM&h
ze)gpQ)9cxjSb_x3tY@q+n3?uoE?`1;k}Z1@@5}!a=gO1|%)fE`H2eHy35Hc|tg0)U
z=D5DSTgF)w_-4cOd@ug{E^j`4njc;Atm4QopPl;6J6u1$FROYW@-(a9*6F(0mkz(o
zzjeGmG2+pQy7@hSFR?RoF-=UG(IYj(vrJ>x!iWi0XKJMn)gNA|zv9eWJE7)15-ZM6
z{AV}2IgGLPK|%Eb;UlXq+^jznB`$Za_A*1iR>il?;t#lYG`{%3v@taA;*@WHSiGe}
zmj7Ag6|;a>%i*Ki`Hy=%UhXovpp?6Gk?ySG`Nf7Aky^@fPh)g`G_9}Fd-hwVPA~1?
zOWSulB@%egPW4(+8}rV;{^Fh(k?KvGH@excy==I};s47Sml)PPet5&Yz+xGv&c`}7
zsi$p*7nXeqPhD_)?$PCUBTJU^@7R39S$NSMgKIaZ$nD!{(NcQqvF7W|R;gPhw)xn%
zG~F>+c5});{mWC>XR2*?U-h$xKgu+2^XsLv0&@he=5WZbe74=wl=aKGO8u)n^-0Yu
z(wu+vdzo@Sy0Gi*F~^`q7f(N4&77X<l(C_!^G^H8S$8Mj5Ay8T&AR=g_^EZDw$@h|
z>*pWX*`&X`>CNr~ZU_5T?U-98obrmRap`I9;)>(%rWhy0l<)g`Gwrwf|1C3h*Z;Zv
zR_8_0-1XZxd&YjAa_B@$vP#90RqZ_+yh|^{)Mr%jUtOQJ^ZKjn!JclrzsB0-^C{kW
z+Twb8#^ZU<7`~gRet)x1hGV66`d_Y9dbiDd)Erd>eV6ggeq-Cis%{f!y6435$4{^B
ziS|4pf1>u;|FUiA8&r&sOe<HbmcBJL;iTa1D?Q6rSMEE%`$%ZuJ(0J&_D99JzFqXe
z!>F^N<hb3*`oE>853)GTuBg51_2uuJ<EzhyrFK1TeI2o0W5wNAeXs2B>)n?=g_T{b
zTdJ|@1Mi*ac7sD(m}W%=@812z@_y9u4aaUK$3z|9pRy=Se%}_kR=$|1{}*=}vBpXC
zJjz?M`BiV}q>!$#2UA{MziJs5eqP+R{Azow`}&?0*_P9n?Y^H|U-Egv=@)a7Hf<`u
zE;P?4Szw2L&g9RmGhTm{IJ`0C;IY=cmV+KW!loDIP1bGlTI%WL5V|%i_n78^wDfnA
zk7*uIGH3l^p>^2($6kghe@x=qc3n7QRKES$N7ec3_BQM`oxfhuXSe>lvVWgX=WLcf
zpDz95RY-5r|Lx0}p2_do+R&0*Kl3V^<XOcJeVSi){V%ZWjkCLVeg3(mWkv_tSGg<t
zHyY|5b9_-{I{(S()dCypEvFWl>^>E)c>Scf`SqVA^Yr7dJ(jnsm@Sy}oyEh(=BbD*
z<2!kc%%1y)-f7g8vjwmB(G5=$(CYqSdN(iMOh10lkMCLA@1~0X?Ea%(S62S{Zh5`@
zz3amBzU|w7$mYV4wh!#G$9DVP_{KIrFZBC1^VXX7tK0ULU;bLd_TWQU<<#?L=9_Eg
zwWp}X`z8F-TYmJsbI2#oZu{qps)IJDn_fTqy0~ihujB3V^*d`tif1xEGm3pywfUdP
z_r8FXIUgRryq9OmDfX{&^80mR(^s#~__Vra``h|W746Tp_nz73a_r6N<VzotZ8X`p
zCxyOT)l+bLtI*u<rGHM!u{}Oq9p_hV@HA6vi_BkB`TINe>{=DQqLE$gih3mbq$NHP
zcQg-pD_(j#uYf5)LgJ1oOPE@z&r}oUe0Rl-ydTA!%mQ0hFNz8b@SfUrDQZ>7lxZs+
zK<O#tLyu9t>S3LA8ro}b2W*(t(fDl2j^FBzTW3AGyY#$ec+dmmma3i@PX2u}Ej}>Y
zYlybqxm2+=N=#B{UEinYWpzi79D5#kn>*q~+LXsm_aF9ubC|O0`1$uCTV6$defnX4
z(mrS1vs<Rw-WKHHkn6U)kZ#%M8EqD|cKh5Z0W;PlOgpzAc8)-OdH98&Z5oDrbH3{R
z@h#}dxp!}J*pc#e0!jxIlKyDjUo-85=~Inm3h(oadN>>&#%kKI``bmk_3!(@Zy)<d
z`~Mc+jf)l5*U#@apS|Ov(Mj`#I}Nz(JEFFQ_=mCOH0+VfFJAEJ_1)!f^)zb5<v(RF
zIV;bZSiZR?GUvyi4LfE&=l0iV@Zs(WO9?N$V81?HJAp;-P@&3^TRe6d_w$_kb{?G{
zJ*z*_Z_~VhaK;-C0^Gm-;fWRerDeG4bAO7?=@kd%mlZ@dT%P-~wm$w}{JV@}y5I)4
z$#lnwOu{TihUTWA1xfXHqr4|S-X^&3{Q3tIS4ADHu&?Rbp0;V_jlRuO3x7U1>u9}5
z<(QDEqGrC$^gmxs=CNpIxy@cPS2x~e!Oe^kbLqSC3=fl{A3QqC%jeIue}_V=fk!~B
z$5DaAT@@C0{%mGgX5RXE&%q8!-7fxC_2h(Om+UrNSeDWFxcm6qXZ-xyP4x}?H!~MF
zPE3nA_2|KF7U?BCsjF_VGbwg(rdBu#Ol@OmRPq#kmifY=QX|ho<2a9@mGXPtnaavj
z1SDr_cWO)xN|~IpWl85`sgs45YW;Xt@lK97%kG=Q-*RN(HtxfR6>b-|@!dVakz984
z?6Mt|uVc9mJ=}XSM(}$|SKP}m=2>3#=T1btt$g+W;-OAOht7rW7D`<Q-5C{++_<3Z
zxN5r17J0tJ2V!k|PtJ?GAXE}|!|tHSk7r?5UjLr0|4)O*!=0_U?fYz{0@r1~OFt%8
zM(;h`VqO|AKU-hi`&h)!<yl{M{P_KM{$-QGlXvbemsDSruy1>F?CFFXMw{Qfz54Eg
z$Exi5Ifk((PI3kbFFE;uh3T!NK1Y`GdCQ0E^41(YaH{g07f;fp#**Wre~Z*6IyoG?
z#GO-mU4Pn@37eQ!uKReaTi;@d)WNm9CKdl>MQ`klYBEWxzq~s1cU`Gf1!KEa#~qpP
zw^v1mJAR1e-TN+a`>ijcHMYOcE($*&%a(ZIR2`4i8Tb05Gu|FwdSJ($>u3G%p6Bj6
z{kV?*SM*dB*F(BYC;E&}vE?4#9lCklc41Z($DmmY8fxMi*Jp27<y*Jf>i(ZymQAS(
zHy2M9UL~+N>0URBpk>+PkBQfLm3A$z&%52K+5cW5c;Ekp>uQuWAExsyUiJ6)kHGth
zjr(K&W@k1t-bzU_Zmf?`_~f;|Su8C3)Py5nHaV8$Ot`wMpKsUg@b*=lyY{wk?a{O_
z`m+01;`8X$X-W6^xf@Rh{|<S(-l#k1NW2NxHH}_xN#_oYIFA#@W^8`+k3ret{NGhK
zohAt``{TZKo0&o9>HT?OE8iw>_$VvQ!G2!OzFpORZq)q`ZaUMJ<cKdRsoxe+#J=%K
zbX~~ZH(|f`eQF9@&U>Ue);wF@FSytFQ-M_Z@ono@Z<D`SIgfR7i}7^UV5iTP8#Igb
zcxue1a{My-@}Nb#!o$P<Rn`l}paqXUve+u9N*~hjyui%-;i3pvT9aI-QJY++O`BZj
zoWng9o_^i4YVs~PYrdSvrd_)<dTV_Pf1ZME-<5gG>&{&`EU;wC50MkjTx~p0?scDN
zE{xD<JgGWi{kPkXn_g{N`}^+0E36+FmsUI$Q=6jCx|1zPzH#eAw?Ecl@^8-geYt#X
zDVs#>ZuRn|;#?;Wez#+~kdk&r_vyj-{fhGhxs-K}s@fzghx@KcxT45A{YYN;y0DaW
zzV%!}oT_ovWxh7mt8911II%Fj+nDgaOxrRvM~r*Y>x-NCcwV1)Y1b-$Im+Pj{;r<a
zuLLR<@AEBP<>pj-{JN3Vhr0)FSooS78SHA#Xy8#?9?k3Y@lIImRr{}kOb&t%pGsA7
zI_qwhc8*wZh(SW-7WdD@#GJ}atnP{HIfIX6z0s_HFhOC@r~FB*ef#^a$n0+|51k<T
zWs8YMm%y2THMh$Yz0P}{njhx-`INE6-GhG||Lo+wCg{W+VSVNHhr7vF*Xg{O-@Y%>
zko`z%_m7M(-~0Krugs25Q!KQLF<ucf`C;~ohb+_icjub+d3vp#-TPSWgUs<1HL(Vc
zOEG;%=asGP)~H|W-9Go>%Q?By!s)?l_iTQ<TSDYQi6ZxT2D_ZkUpKz*Z-4r-(6U#L
z>!gC7|MCOjzT02TuW_-R%QTNQxb&rgM{`_*(9Nj-?-#H*M{S7b^lI2E<CW$lBy(!+
zfg%SXhHobA4iXbwmiSC?QSqPPqVjx&qTi&;O-lRO6%tp=JWOJ$S4mqr-*mzQftjCz
z88{D0zKK5j*+I$3mRV)r$Jr6B78XxsTp!3d$SCUeD6)9Z?(aX$Kl9t>ABsC)R{e44
zxZD1p|3@Qt^2Hyje;5{>d&Q!f=RNB&`-(8%{TqL~FIsTHG`;%ko==klE7hGV)i>rG
zekcAdyV5H4%BsviPfFB2tLxTFUiIKK4ZB=-xGpVtj@H?Xs-SnyrRUg>bRIb(8=<(&
zsck)f+~1Cr1vj>Hx;@}=+wo3U<mE^1``&R3rf=?D&2B2bYWOCUIk+Is?&XzgnQbqk
ztU@bGPM)Y#GHkl6VBFJFbdFo=|I?Dd$C5cmc@HSdC0v~2@BW<MEanjBk^8^0>i6^S
zDedUZkkgd^9^m%&nzXCVs^!AY$CMd6?^)V=vUlcqx2)n<(JuPAD~egc`sQZ#-<wuC
zukeswmi$A}B*o$3Qtwi}&aVen-g%g??l`ATR$S%DyMi{?e797}6+eBXSgX9|*rWV@
z`B~|K;d%|ts&iIPZ0KI$ozV5fG>rSk&FK0Q2Ais`e@j2W@geDqb)P0%um{J-lww)_
zd&^#&kqs+#j%a!IYD=Mngx!P7FOwTWr?I5_uS%Y@mtze>mElkASpLiw$%&Gij65W!
z&b=tm&6W6hYAnC&sV7w$lhm&}Pqf*`^=a~xEh|pGe^}LVI6Q$t{@8Wr%~#G#MM*Xo
z{0er^uICfImX|tzuWXmk`MZ3re~MY<PA!{r)cNGL`vUxo4K2O1tJwH`9|*JutxW3e
z{-!@u?cciNW;uzU*G_p9|8w8jl5a1~|5}M2yYTsUt?irdr8aICw&mE(?W@baA0p1W
zOUOKYw&ayGM`j6$s|ThFt@N%;Yq+u9&{zF+uKKj-pkuS^*DdGg_B$xK?|bgm_kAxn
zol-uuxmrs};Aoc3-KE@<-&|0<8^y9fGT%XIiUi+ol_wb|^<&o;NVnazu3lkUzCO9I
zQStiS*LMz;xlD~*TjzN*ziHV5KC#c?c{k5aJ7=z&zH8q4gF5%t>(%}^v|n}F!}mho
z-Pe}x+|jXOVMj)o2b&xp-)@~%?p<kI|Je;?o9BU=C=w<n*se7+gS1yb>pJf25QVJk
zIP&08?;0ad-#N499`iGs7r7%Py6n_9i%qe?kx#D|>&vMyO!6)Bp0>6l^l_%3O@(|+
z48!t^dv?F8`2M74x&MLxpZTob&J<f0>}K#fr~K=`H}_?m=9Ms39-H~aue`p*aE3AK
zsYmUM8@BCsJi;%(KK}pDSM{t0N9q@G>=8cWnd<Z1&d%$gq{iFW?|SSEn;D|Y543!2
zU~H;9-Yd7LPci)N%uPbwj57{M{OM~F{d_CQD0#!CHqOKzJtNJ-MV?NpEG^Q1t>f`=
zl{Q{Dsb6)Wx{r$cQum&DN*9IyYRef5Jl^y2TwHnj^o^c|g*ETjnm)W-{CZoxnf7&`
z!nZE5?^++^M;u?KB{AtFdspMsxh!jT2D;dJtUNa5`2O|xmUmp2c<cF5Qux)zGt(}s
z|6SNP>DTGao8|v4t99=z)_J)3y6jaS$LWse<I2vTudgZp`@6N^xp}_*{>uMPFVEMj
z(tP^U-tJp{{ntm2Z(kR;o%3J4?e8hm|1aOxw_g|EZ~J>E^UE2JH@%)1Xu0x#o4Ldx
z=VqRV@$2Gi51epV-@fR1<B!Xm7mBSEa+TFPzU@_T@>kdF*u1<XffHN?(zAA$3OHZR
zdOqWT)bnMo+!wawYV0|ds2;oK$Au^hvDWY@y&FDWUGMbyM$CaJq6@Envd&uH9amvd
z|MQjFzlW9ee`<a!nktFDYm1un@5j@Vk>73h?BDs}`Tlyo88L!B6G9n_b@OMMZQC5-
zCu5Pqa()K?`%COwqw@kcL?m@Io<26|*MkCYVWlne55%!19FV<r?R)BqG@160^bNTt
z+Z%K4bzAtgv&-cDWx41t^fKLO@e0=ssR~QoUQCdY3iF$0mr_4N-ryRG!Q@jlb@_|F
zuG0FmWs#0pM4;k?U17P4bKW%;Zm^hhT}CZwXX>3*s@KwD+F1YnJaA@`yzUygSsV8x
z7e3w~!}dHvzdh~R1NC$B>$-PpODfHr=;v^h|9sEHq6O^J92V>Lf02;$s^V#^o$Y3S
za>cW@giDg)L5GbJ7vJ@-ub;N1L-F#9;+-mPBBFDiGTTq&6pEI%opUcDWsX6&kH-!k
zZl4Khhg#Uoj<du~OsEjAu7C5VO*SKL>LIqWw#;?qWip5PYK^Qd$`*f#C|Eg@W$%f;
zmeU&!@GVq-laUZy_JXx+$vt`N{fX=aCl4t0GU~3|Qeb1hXT!3G?X0i0nk4G`HoL2N
z)MRi7G5_{d`m3^<)A@q;cT?vBDpq{_yxvYXOeXH!<2LU}mzm8$R=&R5!j(<m<fY|K
zKC}HcIew96Q))<xr}rebkm4m8Pg|5{GPANuO`9NG#@%HTChXLk=WnL?Aj5LcsotK|
zCluAimN@#}OccK%_^WQF6w_sA@$W0@U#hPAY4}awUrs+z@BJl7!x!_Fb;Fj=Zdtv2
z_DbVR2ew%&ck*^$?hVSQQJg7sOW*R+l!$|dchj~7O1--2R$+L~?BT+>xlRf8o=fJZ
zm_FptySDHV$FC0wM&6H{&rX&w^G(rP->B*A`u>V`;Enla{^m|PmsB1a>0Ds>)1t<k
zv%5ZgQbxdr1*P5v7lp$rj(<q;SYW8#Kgpy#D{f8FxdT@DLhBy&&Z^qXo3p#pb4$dN
zv%2AjritC+_21)O9k%JfLSFd_A-Sk|EeGl*dE9??<r0hVfeT$~K{FHCy7+m0LBTh3
zjoY*(QTLXn3Z62Qy=L7WepoVmZQH?ZJei5Nb-nBNZ<4V)8hbO`y8Ou{E-UMec~^Z;
z?l|Q;bJ7yW-15xdqUNbHYA<ANi+;=T@B5y`pOxBWXWG|uFPNUG{&&5-k)YY7%loSS
z9=ZJZg1*SsB~kA#H+rZRRIFHGmN#`<=a<kov(lK;<nBzb^i{lEa%+vy>7c*IPG)H@
zJk@*QTB^pcHSg-L9Q=C6`s>4ztTK`5R$r&hp50${X#ZTz@;MhzzFVc~zvI-D!$+o=
zuTb{+d5SIl*3MhU{~VV5TzEJ$^GLt+wd(nH3r<?*8;0M#wOIPu67wyMM+**WYaEZO
zwAwj6B8$~0;$_pWCz@O5EObsR`ebS>loIj!8{dqQhbiLMrylZtYjm%kJ8g}S#6fQ>
zdqX3a4?A281ZK0YWtTTDn9(2*bA-d|!-mM~(WmzW7(L`Y&b5R?YQvqV+siyIP58z6
z+E{av%Jo|hCN0yO^yP%7<eka8JeWUw2Qo={`!DLSH&}MTC*bRBmd0t032HA>Co*lb
zGuu4<+VNxCqgs@Uvuc#LaP;y=J*%&X2s~f7j8pWg%xjm7Rq8EgR?eGbZ7%lv!h%Ik
z*=v&*POO=s*Q=_tIi&Et*!6mc(3<do4*^|Q)=iTLS-N7v!a3ZQvy)PUzc2JUr7f>^
z^2o9qr3=<J<c2D}(pV5VpNqk0-MkLVJu4=a%+7Xs63VwSOx5E~sap9Pm4g;{^49I%
zQ@_9ONoo|Qq|$=qLu-2$`>>g^ZtMAerei_jp+!<sZs&|t3m>qYZT&u__`S-@jG6-X
zq~tF$l}A@*WjGw*nDp?-`H#Ivm$1H=vAsB>Z1Ua;JBj!gb;s)eE0woIH*U<#W_SAj
zwISKnjd8ZwmfZ(t2HUM!+gcje@0L+>^?AATo4Strd7EDp%Z1;){BG0f-tdr=6_LTN
zQsD`_+Y;XwNCom;`5v?Q(%s2EvmY#7)V=hp+IoHYi#%&)J-nXr$X0XRiMg)Ti+tV+
zE~->s>|Wi%IW6#@;-BZN40HDH`uXS4>E)}<*W0PYhRzP(*?vPMxVmTKI@i$0B_R^_
zf8IMAyH5SJ`gBtLbjEa@dD~`RdlH>tR`&B+xz7C{i<;Kh(0tV!T@|Yx=dQbJ^l69e
z>%Tur{?$BwayNUW?c_Ua-o>Tg>6*5>HTV8rzZ{DdPZtIHtiHQq)%{k9_}G`~tiSZM
za!WaOt_V4|gD3hz(bf%bm&dRCe*E10%SDp%{=QSE{eF3DZ`Mu~zrw!yG;yozF8?bh
zs&h_H{G7E;taQm7?#zG<30lvM`0@@;j=fOIWj`f#QdnO0ACDbf^1_bc-Bw-~T=(wx
z;Wr7G_06GgW@_2nqls^izTC$dRh#|h*PF=&SKk<4joY%}?LN<>qmSM=yPKBG+UUJ|
zU+Wg{sH2D6u6MbpKMq?GtNX?xQ@nnzyX=&*%<?^3x|>RVY}c=TcWh(m3yqA3>C9;{
zM`y0g+R`ek{`%6p4Qo!Xh`m<&ev@8m?hMsyV#g%6E4|K2bU(Fg0#kcRY}orv>++Re
z2i?$qxO<y+R6~!o&g-l|_fxyp*lE0;w43S0!;`yI)|}Y&=iW+w|7%bAPw(1tBQ^HB
z-s}2HHg&c+XQ!m!NsJ8dwhFqo^r&N`_<dIge*YUs?{;lD{k~`~yT;p3Wq!9rRf3ni
zd322blHPI8BH<;mPu@?zq^Izcfpg`Q3q=>oBHbtHuby$FATn$BmNpGVA*M$Y3on#u
zPE7Hiryc3FdxuAnl;V=h&0D%(FL<M1+beV}FEozTvwq6dl_!EStuyv-QTL3vP*-TF
zyjMw5qRRA&-PEk^FJ2Fx%;Czp^RJ_;BT+wP5nJ(t$x=QiHJZ7y3|{->iJPyQ6=fSC
z_Bc}XI;Ufg``H;^65_;~3??LgUm)1RIr&PkJJ+EelOipSV8@=aSqf)vTH4Ntp4Qx{
zFf;pU!n`L{>MQCG?g<Sxl@R%A8N|EnaINQBsWYns?{8bjCLH0tIMev(q>_uSSLHvl
zsTA(NKJOymszsl<o|$OQouVA3Bw6h$CBFRdIR@pbX;}s`+-57L?%D2C^0T<cxzgHi
zmaz5)|DNslcT4Gnf^$_C>l@Lm`Ye9#EwX<Nt|T<Qk;@f-yrSML-jP>rZ`zjZo6@IG
z2I#LiXr!~)FQj?vNt3>`HLoMCuFcw@^L&@i;X*mC+t*VP4&?2+@;Wah@pScr{x~(W
z>IY&|lfE7KEb=AGCRZ%;OVrf3X)LNSZMqppqi)<e_dMc`uXydt+w<qVY2Up4->uC~
z$GKK6Tk5KQLbv{{<s+k<hxG;9T4mK`PT#M(<~_aP=-)!sZ`zOExm&0?OkVH%c<R2D
zdn%g!kEPydDp&(j7n~SxQ~K|XYJ#VQSj~*TKc2|#7wuoW{>5!Sx66~VCaMZf3;eul
zBiokR!@9u<DF+^jCM*|tV#s~WPfUbM^TMj#rD-ZLuDzWJYg}{1Mfl7c&ejVp-VvDm
z`O2o#miyX_lSIF@M9t3=S~n|inbtS4vME72ch?!(-)*@pKT*UXp?v8LO|OlY_X_oj
zie6lCVc9t$ZzY|@VkJquS-ZU_Sp)<;xWJo`P`>-q+c#aGeG0apo6)jb!+2`v)(vmV
zmhSnR-DjLAxTJjMjg>|lFYi}OW+_{Gw*K^kqchbX8|65vT|2Zbda7Mu!sWN|Y4OkR
zy#JoOBvGN{i~pl%|82a5^bS8uP14QUZ5@60U#eK%f1%%+Uk>m7>-}bXz3si*`_I@t
zyg%Eg=iF@t8ToZHKDDg&`RSr|ZIR!ezo*}9uYbF}{%!5AguMT^bh4B#&RDL?Eu?0-
zp?S&~iF)QhuVap@C1-|KCe8?pJA9@!F=Nx0H?4^=(dub>Jd+RcC~f?8%%E@H-r4sg
z)L!0OqTCvD^=MM^#n;_OyB3*0+Vrt+<3_QsvdO8seUqkZc8O=t*302G(w(WlGbo1N
zXvyDg8~@+GeQa7@fRu^x<oG{}AL={s75{vq&e0t&tYiE@k$b=4t>yBPZ@c3q=iZ%h
z=+wkjmrexi*`fb*dfo2#^>?0^PG9(sS(wSlWcorsCQ(M?$%U^pr$6vx;;z@!<w%y>
z)Mc#s)NARg+)%Sk;;Xi?sZYw;{<bJ}YW(@V5*`e5R+g39bBAW_b^j!Aq@bXXQRbfe
zZgbhU^I|XlIQgLd)<!?eMLXWIJa4hOd3VqLUmKY(Y(A&FUPJKQs(07*<}7nD%6#B#
zoaR%`-EqFI;`6V5bA3t1KmHZWZ!I=D)o0z^%ikUpoTR#SPxW-a0;QE=>ylftk3VQp
zxTW#3E&8~z`Q51|Oq&kQIqSFo@MYxl;NK|z+&M*fewNi-xnFwrGdG#p9C==If>X{>
z>1CKr%k9U$6)p8Q6PXU#=I>s8{qEJ$6+s>{>#UQv{4cq3WA9Zh)5Iy)e#X^X{B1~G
z)5Vl7^mB&FnGQcKw=G5<c4EQ2n*I0l?;V%Ee<1h#rt=d5_$$ps>_2uV&A2juUVQC0
zb5@z=tfdnUKVNUHGczTY$@c%Y>W@!8m*?-RKlOI<?e}$czyD32|L?;VaVMLf+;fcm
z>;7K&|M%)?`F+)Y?-zW_UiHF$Uft(E-F@|(FU)<)Y*lrZezC7-{cJtw*T3bnx39N5
zkjt~4_om<659`mj3msuf`MF>2^~!$HtLdhtdv{k!ZfA*3-CUM^+u+Ko5RoF)_Ndl#
z@u92FTc@1kkoJ;WbyDE;#h8E}_vincrTuFCmmY(&8~?RsFWfZm+ntT-_xJ7MjhEq_
zf4{cFw4*+9_tC5)`tf$VU&Z}+z1{!r<oEU8W`yu~OcGIlw(70`>rI0>f?K!}{;uoz
zeEkvowWw8oX&ojyb7Hnly20@J>!0LnUhz&+3$-k_=r>0#6w`V0`_CFB5v#D}3s;Gl
z&MQ9m@j`Sv^NSK_&rPmvd)ji|L??&r{*w<MG<>^fUvD6LAXfN*kJjh&)zUc;fe+RT
zEoT3xsbnaBAX)jlpvBe`H;Q#iLLN7qz9Nt%W;v&T^O@vJoABa&S2k>#-}a~PCU5PR
zswh3~Z(>pGyQcCrzcWj2t7<uSOf!_#RmLXJ&@g~y(}JCk^_EQME9&A=2lbAg1gbh(
z2qv&c9^=o*u74dNq1e_uNB-p<lZiXiU5ip!|7M-y7PWp}=*F?4^h}ePgWWoDNx?$S
zXOfCnTLeXOPIb(<+{k%&>w%_;ETZ0PRD+oQu2mC~E104h6>&~$T81vyBn^pQp-P?>
zD?Eh!zLiS-ec~wG7m=HKP%tkdiK9;UXJh)Z?dNS%6OIQQu&z&KZ%uQtUfIgDI#28-
z$eNo6m%mw&@cX7<bbZdBF4-Qg7a?N%8a_U~Ci}eovD@{q7Rl%+K`!Q#39f$}b6x+O
ztefOvUwNfP(coo)s`HG#5*a?NX+MfDyF8m``bkA}%Og(q-$~~`u^eMeaak|J!_lOB
zQRR@3)`lf&o~&Aylj@%q9h!Kgv4=_2`-16jj;@+jYAo7!=a?z-{K;KqzH?#$tL2d+
zO(82Zt<Nx7*WA_*Znjq1ntAy2%!jV?p0%-EpY!qUL)AxJ4_#kyT58>xV{PT%cjH(0
z;qEC3IgtjkO*5Y@zPG+#YoTqaRNRV)C7wrAXDsI|7M>Nd;cuMB631gr^|yE%Pxj5f
zGxv$7vGVdCi7Fet@;@s-;;Q?wQgUU&@3S5`|6J>SSoYc3Uq0GdlIk*tS?#&nAtzpb
zw<Gdb+>XqDqu%-D>*TC52d08;8x);hHOfC+uu1XX9g~SO-FwwkrhU@W<(MvZhjpjr
zY2O`5(@y)GoglUCe$$tUOx~C8oZ$_u&xpFM^X!Mtvn{JnSu%g?e9>pH^~9tOZ-eub
zG(EMh)P--AzdO;R>2;N=b&t^lp4ofLSpMy8SZ<ZQQ1S9}bGa|MF=qciKX3UR`guo3
zoZQ6<i!I#uW(DhRed(}7#zICUL^|C0wac$Z?<RqJaL>=ra$5HCN`IG5_fu){r0+sn
z_3<y(#5S)vd&*5V=FGJf(=V?$sTh-WCFkO&9?Snr*#Gn!KNb7_Vw-MdgJ|0vU!F=%
ztAyjnLr+Iq%S~S#)xLiYpM2QFX}hW;8cWvt>Sw3)tqn8F=C_+s%Er4~?V8bk&D-8z
z&TMhJe4b-D&$6cXHEvaF3onb?*02f}EdQgkeLGKm+R?h(*M2NydgF1#+HcE51Ic%D
z6+$EpE><)*|7=WK7^Nc^BR%=uh6zm1r?guiaNquqFS+A!&=F}KiESO>JrT>NtlXqx
zk~OE`>e_RY9QH>Yu32_wQo#YwhqaTfyki9QK3b%7wn{IMn=6vY$)uwYdgz$+f^TyU
z{7qjIym-g@kofxLF@^EVeK=(gPN;WJ{KD~b`5jJ|<Zm;N9x?pgbZg4D{@1mvn^%dv
zGfobZZ7<o_?GV=L6B)`gRr<YA+S;WZS6Q!~JuRXt&>y6i7R;lv@SM1()yqEz#65+g
zS~L&e+^3|dsB(GZx0xKqN>7;2cA13yE9;yv*`X>@tz*iTSuc08)IYr6zRLXRt_iPm
z%vk1jAItps_oUam8yn0#y$tX1Ugx*Wyk5!l_^+?rCywd&T8k1szI}Em@=)#x=d6gy
z?J-{t?S9aABe&F}CAY&_>&m~-@5^{AudH6xwD4VM4i|$^UaV};;&11V&9-@Bc*?oO
z<j8s5Z8ro9Uw@h)b@hp&xb2>X`qbl{-=F;uDwO^-LF(EQ#r?waqG@ME#Iww{{TI%2
zmJ2%kE=ukY|0k6_S!~<I_1$Zd%%1+@`>AwLFkn{hC)I~$Pn1k^?BkVWXT?0(c+zzV
z;~}o?malzx@b2{B%`TdF|L766`^;00<>eWv-Pskh#LaZ4$K>vuldcunS58mv{-9Pb
zURhEk=sH)vb-PdHp|#v@Ss}qaCPzKs#0mBF5|Yz4=iM*KjOCuu-urqtU$fbjre7r%
zOE^819xv>B5cIrxdj$Jrz0A(m{ES6&jQEVsA6zBLcRepC^ov0*TRBtmcZuZ_Ki-^P
zz#5_2v*lmju_Ya14~{1IMSf@fQ~y_5mM6<%dP06{^1i24Y;VLBLna=&;bqGfQdGC?
zOmAtHiT2~AcCpg$-nHMpto-Xs&+K=r-|h1L`Ym~*ncs#Ld#AZb?mYe4GrPn2>v<EG
zX?7QQuYaF%kT2T8<-+cb=YLNv@Ap!8&-eH9)3dju<*%}-+TXIC9plS<@5j4&vA>@_
ztG8cocZ9>VbX!;GpGOmy=8I;hu9=dsBY4GZ<))?cieFU4O;EnjbISLjP{E8YG5+U^
z9zAS`4Yat;c-#5SqTBNm1h;;<m(Xb?$#eXGz`_2tKlR=U)J(eVb-i3lru}iSqUZ-j
znWv`@7BcA_6l;DwWdrl8<p;V_zfNw;+?aR!^7r4j>J85@t?AEcOw2v=Df_tK^n~t%
zg<dxp8ACGuiZY5QcbWgad^ktg!j0$LhoxZ&r^Q@(1g8ajezlyd#O2Qu%?*ocn+&5i
zEUU9xT4yC|-dV_2X*m0d$Bri1%MUC>v+7?gx$#T;m->ujnb+B7RP*&W_ier*m!Pyx
zBH`H~kZXP|ufOo?^e=V3T;mqoi@yI$-2Ru$Q@iB!zE_!N`{|2?Ogf9injed-_$$*X
zb3(&F)Lt`2!^&mSwo88(Xy4s<R!sWpd2g3s4O<Tf>AuzS(#Drtw9}S-X3Q<RA=nzU
z;J_lMlTAyf_%8gCz?i$Fn~%jPNp%75BcUA21-^Y&ivqZGB0}mlIQL(>^UXm&lmE*0
zo15%7XR+Lu&dIIv{I%pl#_3-w5)7u<zm~9brYoP_Cd<F!P|x|c%_kk)k9aQpDSp&*
zj>okpp5ki$T)o?r0-StX^VU`+GA+H3#eKHxcgu<}p*#L34n8*zV$BusV^Mi`vO1G@
zYgGRwUJ>bx<d30QSFT%#)?c+|^Vx7P{^!Rmk+nA!3X3L`t}0|-J4L5)@|#1O)hDU?
zO%eLh5wvN^!B2c$lbklQ2=n*a3xz!M)R@BXU|02A^@E942}$z~95}5}v?=3i&KY5o
zsS|#im>P&Hhe?Z-M8;SuPF~h|ct=X}GFH{t$k3#x+4hW$r>+|`R4NMGQQT60Vc)xj
zZ&n6v=$KP!Z#Ugk(?R<n|LIvQCfldii*8bzaZFR~hi0VksnC*{av{q<KH6sKJ6Xl;
zhc%b4FzY_UlYH5;4(!udt;H!M!1gLf=e(e=u(Ff(X)WK$ifvq4d>OM$E_6R$wNqU=
zi{ZZep+%oKX2)rFxrqGmE_z`8U{OO-T>bo`1?!G3n*aFEdEeAkYJ8K!^`8{X@-k6<
zSiGm{{5G-rN!;^t8xo!wa?e)#DR2Lnbp_wMIq&CQFuij0#FjZ~i54Hah01j=74>nL
zh@YBq^7qBX9@>k9PE@!4ui|ohd2;pb`SJgR>e6$9%R`q2?dsh(BU!V2<vOFCA#!S5
z$2?z_)wgsqMMc+!XKC9k{SzM?^EN0ZGS7dXNqZRoTcK4;dgAV^_1M7@J>klg4XhWZ
zJ}vVuDK$BAWslqXz0>{*E?o8@HhlNaC36doPWl$o8-BR2b8VQjZ{x<`cYh|8-R8EJ
z&eHmF@v7>C7VT>eVokoO8<LZ>pNfe)Hr?o2cDCT~t!c;W|GLi>GRtc#-YS*rbwlr9
z*dpK570pfBQr{2rMhC<g{uH#y>{`9~<FXH}OLgm9Vh;BItO%BTHRDm&NztkW&)8gN
zySvR4(@Hy;{<ni8B;@nkK=nsmf$4Tkp?tUBPp&Z2(cfFmDz@p?=aV;=9oQAlI*ng4
z_3?tkb7FfPQV$n2ZK&VM5hD3!1_yV>gpCPqEvaW5=WV(Ahh02Ta`T-Pb^9(Ia<O%p
zq2c-G*SljqrVq_rB23>b;K<hXnWDO;wX<r4LEr;rtt|7}j+SWg#H%ZsmDX%E2t2fU
z_ieZLOIL0PJM7{(dy7G!xW?fqUSU?}1a9H43W<wMCYDtT8a=$$8e#gXet}T7u8)Yi
zuU~bg)tXY#X}O7u^a5H_)e{$~-9EeG$Ro$wEPeY!gZR9395>3WIAY}2?bW$-vWkba
ztcpoo=Ta3vwn9C{z;6?$L<A(fp3$>P-A7k*V-HuJC0pDkEAb@Gw@p4Bo_;qKjtJ?o
zYEPQA%SUbM%F_i}OxsR|NV=%@)F0Zl!ni_qO5~}Z;&Oo=M@_;#XR78V*k|o$Nq^R0
z#Jwhaf*R+^BoDoiG)WQ8mJDYJlNCW}OOG{tTD|1VBayikA!(ZCZgV~rw#=F9wRy(%
zhceUCG*$10%u-c(mpNy0nxy;FkU6fJ!QHQPER@w=>0~Xvl71y}lBRiRdZ6YR&(eCa
z3y%I*B5!47eP6wK2UBpvNr@#6SJD_01De``tK3_@I_@;c5O@7(I-w!Z@o)FE09Fxh
z*3E_)vB4diS1jGp+q+A5ZK0Qp-Er+787sV=uC;soDKLBUrXn8J)m|N66_+HNU1@(9
z729Rk{aRpRyy1)GkIXq1KNSh-<@0uN>RxJ5A0;>~K;1N|)M%=^<S8q$(&awc7b0Vy
zKX2{7!zvuWt9z*Y<W`@_*>`uxc)RYLX1#NBqkZ0k#nTVWcow$JTUqbmw7UOmo6hPM
z_T7w~n!S|uy>s;9;x(DK7k~N_eS)hw@sWR4KuPzs`%Zj2SfX#ptxf#>eeb8Q`CC<Q
zUh>T<blFs2`cJl$=Vlk*6u0pD!eEm_LRpR*LKl8}-}~lr_Q_?}s}_V`(VS5|=MyJi
zvGs156AF)na^lv9F7A7^^~tn2Z_~Zk{{FL55TC@+ld$(_e~0!D!;9HhS1|AAmx%hm
z{X(|s@+W?!Pwr^+NbR+K=MrQ2!DsFyuCjp5N8d+m-s(0}?0x;$<dus*?mcZHvGV9m
zzeB1wn)+6^$^KA17;B|>yCg<@`QuH}R(e-UV$w@vo<E&^!QYZ^vh?K}E!xXA2Fr%?
z-nQ?3YaVBtWwoxoW;08Td#BySw)lw!t?`Dco~>C{>y|yfb*XUUwH4EsKTh&J{`Eyk
z%pu3}%Q?5FxW^=(Qny+sm3_4&#`pNvRgbe01@!}ur`pTPhKH^bj#`(g)P6Mfy6^p~
zUt+7j#LiwdbxFa=b=FJX8E8E}o%Q21hwb6}k|8rW9y%*dovE@y=AV<=I_V;(=GGap
z<|T6s=HxXWPPin;+PiC>QRWBzfBdsdp4<aXqfcKg$|SaZS_0E6K2G1%SO3}TlW%E(
zBqU7DG3VEfOiUp2>vy9f`|s=!teYRd@Oa*lvrlVvHaO(mu=XeuKJp=fH)SsS*)7Z5
z=jHWYK3?%Se*PoHuAt!Bik#yon%#wVN9c&H-lr8NDc;Q_K3&|xhV#!+R?Qa2rdLi0
zy&V^io_+P`KC3{iSl=fm<+Lptc4BoB%!bpxHMW`^mC~sDv0=yG&%V>63z#&SeG3mx
zZ!ci7tzWlehpt{+btzNvkGmP`I;xFa{X<u>e2d7sJH0yRNB#EW2g4GUnA#i?4CHZ{
z*1?g?+t0FYUh((3&0NCb25*fjtK5tyL?-@jS!=LRXSH~^xcwiV7|s=<%`M^ET^D3^
zu6uU${p9Iat$iwj^Ix|=JN~lA(5%vWX;qN!vj4k&WyjR7{5mr{yznBUdBmsE?OP*n
z+}62y=k;V$Ck~-sEVVqgmaiNInx|X}<ZoFqM~TJNhs|}*%yTPdglxTQ=JUX2u7k)W
zk!b}}rt5ZYY+_=5=5aviz$>P+{s+!JIBBg@FmIvDwMVue^Bb4wFLB$WTsiIOp^48n
zsa8%E^;SB(C`5tp<huH$4zoN$ul7!z=c9N1X}fibdc|3(>UC_1IfuGRgDX$Xm!H=C
z;g`kJicbO-e=gbNtWI-T`k?fbh4(@enM1eNlw8v?$UgepaJPS1+cQ%`-LJ{p7cdoW
zP!{yqv6gA!@>ANq%Igk>DPO%IdGcHdpMHAdk%<?ZU%PHfzbqM;*7P7TqyAUJ!9503
zo-SdW6(W^6$H1p*mD=k3Mh=HqC$p?*2F6=WDti(NtY4jczv`E4a@K5d;X{(*YiBgL
zTRgZZSM0^O>+wzdGpkGIEp+H{P5*T~*YbREGK2lZHFAbA5tBA6O7PT954iPn-RIWZ
zMLX~OxbC|5j+^l{TjOOOTwJS|{=QmJA2~PHN$K3;6)LBFly7=|<O{ajCa<F$Irk|`
z_r%E-g7<<<m6Zw;t=uG@%gSxI_aU$N+~Uu5{5KR>JsJ4=s~#F|PCs;OFQdYn%%lV*
z5AWGqTsIl-smphq7b{@4Lb1HLJzBq$ss7Z#b{D4(Tjv*=oJ$t2Jkz=UTfe(%VCS>*
z67_w{xHZ<h*~DcpX-~^JzbqzCZVz{ed-Cz+cbCPiUG?l7tAdi@q7B*||F+y^{n{RT
zCLz=5jq<-Rv+h+h!*eCHq&b{luJiPdQ*wy&b1un_>^TyA<_71pW7gBFtf%QGxcYaU
zc~bC#*~VxYcfGsq=ZG`b5?@4i%+?ax^w>epc*^tov$}ImKeO}YV!LDb!1>O*JzNz(
z%eWfXMjc4c6FjK!QBJFxLF2=z5bx$sVGfFRg;~EW&mCWLiZOEIucWX8ew&&mf1Yp1
zobW8;f%?r8_C2{Gn@v8=Ph?y_>u2L-@dZ2w?Vo=+$$4D=d*6Qc+6i+Vl(aJb|0pf<
zZHW20^I?iagkk+;O_TlwdMSQEGW+xes#RWXn0n*szO*$mH&k8(_8pna{Jq~e=<wTJ
zb!$$mrqmj*`f|`GP-w}n&fRJ6dRO1e`FlDoI@jFL?5mD`K;M$)0&^R6X`b(zt2Bic
zJfF99@0!(rmMLy3{q?idO8Ahw{j#mxrFFl}mgQB=>aa5w;CQp(aJ~NOrZ?vf2&62D
z>XX^{=h?##Cmnv67F~&(G(UPq;gS`S>+U?y6bKevcIfWSjk@LA|E0!-&(4~<@!adI
z&AWGUZ~Iet>f!XSQwkg|9*dUg=+4|<qRe1znDIF4ss3k!$k{ErH8Nk0PEmcxv`%o*
zd10PU+xG1I{7#d9SNf^$q=F*b3H9%1il4||%em<ud-&10+Y+v%&f3kJ(!g)l_@z02
z+tVuR&+qU3eyDm(IlUk+BlPaty@%LNB}r+n-DB`{Q*&47PM^)!zuM~T`f7E&`s<`U
zau4sMZn<6m@A<x{XYb{tgkmb6rG6JTVCLqnR9Rr;I*p@Eka4zDPu8?UYyO+cy}rN~
z?opaxm|tHPc=mPL#%!^hYr4Id8{`7hY+f#l*SuTQ{x3Mp%tHL^;?s5VGZol#H^%8$
z2F&(7wP5G19G%U-PUQqI2}#&}C~4_Wt?5i<OxpGTosC&0G;(aXS9e+2{+H}_Cy6_$
ziJ#*a2p=+K(6_zA!D*6QJK^~@exv&Mx>d9M)y<rDg%<z2_V(SLFb+Zgm#qbvvzz~T
z=r39NN%4gH&0XO~%HJ!>ORRpG+^u1FQg834ZFZ_#A5_Ge3RtXD6zXT1BRD~Kwc}fp
z&R=Gs>sKcV)}IWmNRrrg@_gytGppYkw)jjjZkrJITUo%9=ZyOCS;so0^Hy6Fuy3E6
z_Cs(%(EJy-SvHk2TbzknqatM#(wlqfm2F?cRn2){`W`#*>pac?VJ5c1#*#HtA6Ykf
z`{uIobxXVv2xdGme?^FP@3bghmGk`d=O=hhaqFp<Jd+|+pIORd!aT9~yg2{aJmCkQ
z&a%(;ZuGx(=EAb-ye}806~FDyR;#*W!RlchxT)@D?ynM!s}mM}FrH8%5~$h0mX^d5
zc(9s>?Y<(Drf~MvkS_~X{HRqk;G6ogy_DA=GW>OJKbytjtqbPg6khmCH~4{0`{r+}
z<1LnLtY?h)qZ|`<SGB&CbIHoh_xe(!Bh)*hOV#(ky_V_ucf$_j9l}AL^VHUh3z_wu
zpZ2lV^gciTZ2o&rxwA`>ocGH9$@SuB+<kk>g_DQw|JxB8^mO``zis!rwy`~a7r9wr
z!#}>nch}6!u6_6XvPJPj{?lLk%J_sl^tE@ta<9Ia)%=KY>aDQWq+gj<vGt*zH&@@e
zCLPf6zb0~>`R%NoZ;t$KiCggH#B_tLuV#PZnIp<vQaSU9V0ZbiAJfG4uUPlDcV19^
zrIhuhgEQady_;5Aezv##-|x*e*V1au*y}He-Fp2aIaW71xymlJXw&VQ57nC!J?Gt#
z-F*Gys+;zS<!0|%4(FeD{<m9e`|Dr*2kRf~(|q$@?h>2UmwA~r+8i%V&wsh^`{!`C
znBMebJF>NYtP5So!e_3XJ}r~8M(yg8zaA40O#3JFC?G$fDP@+4i?Zf-F0R9qj8r5y
z*!le~{lLjLZMDm{-3PbTt@qDlE;-v&V?0Ok*4MI6y#>*tJu&zCuS}4fHuKQ&^sURT
zPQ13|m_uGP!@qU+-gp$o7td}_+iY8u?-A4xQzsPM`{kCwtnilq4OYzVj!hFc?rD<R
zz<-wO<bgZQFM7VQ__F-dk6qp$25LPqnt{)m+J3H?$(Ox8)BZ}|waYRRBA<9NlO}VR
zx~iVpA9DAkit(k&%Z6ubO6~G5zdZ0gcJ<GT7KRDiJx;nx9XnWD*?-yfX!n^TMJJU*
zLr%@!lDttiIzPSm?ZV4>w{-1y-%Yc9F01?6@@VR<1-a!Wp)#KYmV6eu&XWI1_wve5
z$;Y?Ym-+k_{dp>cv#-8v(Tx?R-;$#AM5VLuZV-QQVXBG8TigG$LhDzG20h<Vb>u$B
z^r+iGrPF47j=Ny!kr$~sc~QNpf7idMG2FMdPM$VR<mdhsKfPU#FK;@%@)`FN?{&Yt
zm%5*QI(@~j<o#As@BG658efjO`v2Y8<Nn*z#s1FjtFF7j^YPE3{nCdEuZY*L{^_kZ
zaoUXRv;VWN{Sm#Sl6l?hU+3$Rqx-vdiT%;v|6u(NXRr0wPPxo{TXJx}V43cZ_>_b3
zg=Y>H+^XN?Hsz+D_#f%S>rMZsYyLQ0%Ua*Hx2t<<SN$`q$WQq$x>x=@-TJIP(X>9(
zz_vAl``OI5C1>{wmaY9+zjoICTaxEbdK{}?v+uyvn|{~-NGE!m)|amR8K3>{`mFz3
zpVebw-jDwr?$#Uga_X%8B7CtY^LIUye<jVY#(K=JvANoZMW^<V^_xf6_e<EgEZwkj
zZ8_8BZtI4qJi9w}t<DvFzDs#;+HZ@PG*eYNZQq$|_HFZv=T`F7$G7Xtnl&?NKUntg
z^1U-}WcMG`tNmF$)o9a^YxetQ6_*~5-}06*VS-ok(<`$XF0{<L#m(^T^10ig3_{WW
z4eHKaWnPeVoB4q7<lq`%h7*z*`TK+!{5oeuvnp)-+Q0mHj4i{eZMF;+xw?|!w`&?c
z7rfgd%;d*DJ8F&Ngqy$8D~jva$+7hAishLQ&b4}idHx{>!J;I6wi)x!{0ij}ivAyx
zeeUYf1*@VBei+LtL_IcJ$Esy;IV!>Kx^N5E)V3{RI@M0kPUrlMuy{U8_Kj+7_pYxx
z;TK=qesrlh{3H2+%#CFWw{vY}%DUK*G&Lo9s-s`e#?=YDFYP|hn3|}pvdC~sRQ(?<
ztBtAa>LTVDp1r@r<Ca+JYfbka*ID_p`+Khat;zOLv5^zANx7Ug)0Ra~^JpCZ!s3_0
z@)pl_&c7iR7d4~stL>5%w?9tsee5s%M_~5*uamWwKGvE2MeE$A!v;qq{cfxNcFY#r
z`b4L8bxLmk*-I9uw|zWqWB6TC?exotw%HGE*Jounoy@J+rhj;fK-1A0)5B+KCi8sW
z5ohvv)@=36JDx_G@(0(Q$?cWiGVS=!otN!A&)u<`yJMRs=efdMf1w!W+b>miw5&1X
zjN{9>t75^v%}**u`L-HMQA+W}Z`R7uQ#WPI&$X;FyRc4XZ$yTw`}vy5GO>D*E9Ngw
z=l;6si<)iyZ5F3(g6VZB^WK{VDKDG8CO2rUj>B%ADbp8-{#My`IeLZU<wHVOjQwYC
z%w<+w?^Mk@g;h3k#dG)B-ztyxXFOhVHqL(0+L;$t*G;+MmtQ26XluWU>-(P!VUDBy
zDRWq=|E}nI`SYUM)m8GEzuqK1-`AdP{p)J2|1+zZr%V^^stc*V`u5jFGl4Gow<ZA}
z7x%T!s>xeiX1VZoX;_fauBn?RoiVr6zUVC(`+v=nl#;!VC#fyH-Qj%hWm&W)r`4uQ
zk3aM|+%Z~i{$eNp(MvxfI|9B~Y4nFmX*F}6KmA?V^X5#akY?eOFRQLT4effR7}r%$
zWc0;Lmmwsmap9zE2Qw=4<?1I*h`Pj}K0zd_b;$%RmDUnAm8st!DRyQy2~>4?s)h$>
ztz8t9nSS7sLA;%w;(`}H;vAd370q{uL^XRaoZIZ3x-TH+Qrq2U0a>za?^`(b&+SY7
z{vmX#?AqX$yZ0Pj*nHahrJmJ<X^Q?#nUWPtpFIrsVtm+RF>B!uwnG}KE^{L5O{1ek
zYJaJgTC@25=V-jTD>h#vUFg!~^q;R+2yAX*dnSEgsoxY&owdeGC!G#ixx^~`9LLhs
zO)+&UxdEBVnay5`;UQcr9aC*5goWtY^_kh3#3rl~4y}6Z%DZvbMac^$btOL^OfjGH
zES_0@$A!hbn;YXQwj{lr{q)n%LjPM6ugHC=7j($3>dyPAa;W>qdZkkrN^LGo_I|JM
zmp}Q_X;o-_0XpGgd&oql^*mf5#q}}2>ji9AYz4_ppOeod!eVS<WCYrZxBcT1CVyTf
z$@2Bi*EYQVVLwlF!%nW$yp-aSqSVA(5Gy|^i_6f=V){lU7Il7e3od=1)V%bP3<X0I
zbI3h<S0e-SMa%{2?#Dko{_SY?`5SV(yCx`@h;W8Xaky%B%9%sEtLxpO({2v+w)fvm
z{GvB|%emYKhn)4|et)j`bJjfW_UmAib3as$Ss(hJP~&l|+xSg@n9;$P#<K+)Cnq>v
z{FR}U-h9q5dwY`5(qr8cnq2y7({pOdma%L}&-d#4;a_j%<JcJ35I8^aOm)w?vv!qV
zT<eRt+;r9RYV=-Bxwb&l%4X`p&<6H+rZ*yQSK5~R5Hd77rapa+=gA4zcTQ<?x)9aw
zw2;lh`AEj`E1Cv%4U13wXk->iHAvK$XvWEvb!K6hP0j(~NfK9VxUA-VZ!22RW@Gha
zO~MtCYmCi__C0gzdH9)=uK76bJ*^><n{;^1V&ND48R|S|POg5;$~wW3#d@Zs?}lIt
zsg^!&j^jQ8+J6M9g-sT*L?|3-d*G0;-uGe)Ls^Fr)2yulJ`Byg8x^(`7^LzV&PnLq
z>a=6V3*|SBA3Xx!rncPQI4LcuA&@J;DdngDSBE*PVc?u>jRn<m^%8y>FItq}Oj*LS
z*^_VHs=7Us*n3swx2n!OvV?VojsVYMGgd}6B~Q-;i-p@A7A^@q7st%%(`d$Nc66oG
zTtWX^nu`}WCuu~w@%g@DNa}Pt$YG!=Q{ybK%z(vn!fqA=7f<d*4^mVzQx@<F_VTO{
zZ`5Yl=p8mS;oBrb;ifyP&h?7|I6pNly?Hb9*7W&))|dBL)ZI3H`>y6%`R0E-S$-ae
z|1P`x{@k<Y-IL$toH)AhRps|*cRw!v>0bOIK+t>3D_6dI&x)=bxWuG3LBi&Myp4og
zWe(rp3AcVP`}?=w-f>TFN9D2vSrrrO`v3o4a9=yn`~CCLgD*dNrdQm2dbIF<d3XKH
zg-;)!m;bHK{<rYHq<x6VTR9tZYwKlqo8>-DkE@<_(lFLW;lt1S?F`fP<sY29WVz$Q
zzKApae7o++B;7e)y{z_T?VGc$<>nt$>&}GFJTZNT);_n0MC}vB9S5v57IAr>WK;3y
z73=QvJ+blskz+<bX4h=u^S-vd^SzfxV8_Q_2kQO%OXZG6UAhu+S~p4e@eC11pH~a!
ztyyPfdP8FIQ?K0zt5?5&D5b-mE*thtN+)&Ozpgv`I$PdFnN{k{uCcx;QXXm+xoyvq
zxKCR(wOifSh}ch@>h!%;)JCD!OKx?BZ@lzm_2f^FLOuok_1e-FyY9!0%m~l_&3hx*
zg!XhT<vX2JuYCXI?3AyvfxA^Yc6#iTZti4%(>nd;zRZ-9y_cM}zniSIdiI}NC)OqE
ze;4Kx{7`!1#hQ1QS8wQ%eB!lR?<UXw><ylqQdiE7_Bxoh^0RqjUf>SC(<h65RQ;ZB
zTDb0%*z@k7edks=+x2aES-HrpcE$B)THlQ7?rmCZmBSI%zbLw|{^Zx$-CIr5E;CG&
zXJ6sNBe1jji(hPPTYkW=V|RLw`fe98pV+fwck7Pp8{+u_Th|EWeiqoOIon6s?51zZ
z<iF<OkABI$`}ODEj728PG;*8*e;1g|KK$rm!R%#vFH>jz+yCfbL-sBA&qrtH8O|tk
zf2;rYa+x^)y&uY@&sa8}IC!d{UNhsXlJA;#*(LI7c8tXZ|8}+S{dRNr&HHZ;&z*a)
z>i35w_2%=pvcFyZclodHhvRGOtG)%_uA4Rg`}1$5*UR>Qnq2Q!ULG&I=dWO$Z_!z6
z>zL+P3-_GE2hJ`#x3})krTQ86^<Up?=hr^RyQ%xD=bpA$HN(_5ED_tZE`B{)R8_`a
zZ$2$=-mJS%t?e%caVUo|`KG9T5R1Gyqr*l`$ye2BpR>}VAG#9x-^F?!Y6)JvuJ4|G
zV|M?`XbZplFL|Y1B|pn7|1{^_<$d3uIWx!g#jLBAEV%MMB2{Q(rp^PC&;uv$2PeI6
z+3<1MyR!M`*D1ddlb#^5TL0O#4dT~zKDgNjh9&ymjQ;yAw)N_H$GBG;_?FL$NH>3)
zv+{`5nug7%cB&RkXU;92dMBjOD2_YzRg}ip@Wa_Rrg9&NS;8m1@PL<wJI4m0*AL2e
z##^5}zwo&8CQuE*Xfd7f7ihb-g%M<U_HA@@{+(??b>G)tc&rz&aZmiGk^~jrbF3N7
zQZJluu^*o{*Y*1BvRreAxO4IL#(O+eR4dE(&Yrj6taDPPi433R{Tk=4s9Sf;wp7--
zJ&tGlf4R-{l;F|a#dFoJoP74`-J9=hQ{v3yKKBScT$5#I=IG-%GwYA@)Y7wJCj0)r
z{r0S0K74vl!#`WI1-$BE9&2asF32{$qrH4q>7MN_LCY!*b6oE;y(XBu;#uwPxPq&5
zJe3cyK6|4OyEsH>c~4Mth?K9z^(fwN#(_l#qkS%2xo;)zw!BU5!qbD?dzh71YTk4D
ze1qfthxoGDA`8#{e)eXWWwr1!p`OFV=}Qy;tv9GS|FYhs%j2Dd_T72Y{>i&X@Up0I
z7WoLJxg_h{5a_TF>t#E9`0Lf!oO159aq0EVbH!rJME)Q0Xfeuo_2<!>+wZ4jOPtYU
zW!KM}wPNZNy>+v<cTc~2e#*(SuM)o|eonf{r6~6Q<-Zr#-hRLRI`8(pc)NSC_Ic~?
zt=E^&pSC~d&+7NqOJ&cm?!MQ1%Fg0rnnboV`)$6(wVS{57`llBSDy)(JKcH<lYISA
z`(oF>lcx!GGM}1fyYIf8PPD`QNAHS+^>$rd#vT6r_R^-??RmxjE56!s-7j7J<I3%n
zS;EWGeleFbUaPDZn5*}#_-Dm`-yOT^UtD{At9SOhe-B&v6J{xWh<8j6`FX*?Y00}C
zT3_#N>$-Gw_3wm?QhDF}u<-YnQ)g%@_`S0=e_TJasgd>k<IVj1t8c$}|5fYU(f#J~
za+eD1Y?m?S)W??AJu_SKNxmR0ab45zXPMvQn|ck-8>Byc^*C#HN>QQgySTltgBIjD
zY3xuvR($D6!><d+)BA5vl=YaSy109S&E03SZ-f--NEJNfV0CFTi7EY_`9lA5T4B@f
zvufQMHyByG>t`xU<SDKf_<k>8-jRC?VtG7mn(P<P@yHB%T(n5tsK#U2N*?)5rYS#`
zoxGZHIm>rO@%*JnoS3xLV^?iB#qepxo0V~qI(%6x*!M12v0?9)6&v=JtWend*GI(m
z2e(K>gUIG-U6<ZwzMLMDu(Z+U>2i$?Qf<#}^fAqz@{H>Z|Lu1j^`B<#G?-d*IO4nh
zda<y+Z!=!4YE?bevGY~eiq&k4or`ty_1^t*n%xtnA$F#U_ld;%i^BPNoY!_wsAydp
zQQzCqdj3R6y<^G7kgAQZ^4flJ9}1{<e7~oliQ8|^y|*l{0zJMR>JFKDux8Dv1pB}r
z4`v@YB_1I^uX<9Ns^@f``K8+R3(Yt+PvzBr(7FF~$@_Uqf6vGX=x$uY#jTm9!m8(X
zD|^qLH`Db~4O>-DILGM6EI+h6F1N0?^<&aY3zoFM>((EgFSk24Dk3DcINb2m2J@->
zw%gLPCOYm4o4-^nGr`t<s?Sl5Q}cp2mV0F05;%Qz!)@>Hu9{wl773|7Jg{Z&Tc7$V
zyZ&>BD5)|`ce)J;sLm;BMg`w5PUSGV`DTqvVCFU<-JP*DJL)Z#$?(?sEWK~=;Cy&r
z+UZG6cc*YKTXt%asSC$t4ffTQg66e7KJVnXyiWbdF?P&wt&V!P?#I1nf2XmRMf@%o
zJglR(+v2_4w&@w`ZWaIC5+d?VZ~m^YeD$-=KKpdjWcB__Z^CE&y_|7vUQ^oCfR@&;
zUu@2*Ew!BW_xUr9rn5FPR3oY_4(<vTSmVOAHA(!S5o_U<`O_252D4Nv{Jy$I*YEtT
z#}?_umhKzgaW=8eQwsVl%j3OdGEZ?gr_Gy&c84ux{$&p)39g=F*qOOg#HC0z<y54e
z>P5dp_4`y!WmQ=3@;z!QU@tsoT&uoQr}7i)#C1>ol<sS}+rF35`aU<}&N<GsSH|6v
zAH{w4#Bdy1YsLE6t6pJya^vhNHM8cGul{{M?5@?OcMjX?l)Il-G0YI#uwE(jzj@yC
zneoM6lIEZLJ+b)NlaNbkmp9s5Gv8PKEaP|H)VH|NTlheI+tdv|ZhhP*`nO`2^_35d
z4<5?uFWzv-frCHDRpY_3gUt-ChhwadGfVuIJ`iGkDZ}0ER_D15nQCSZ$xLB!&6ejl
zQw37*C+=ztQ*PzdzWjGDzh)HAkK;-?4>q`{E7VMTzdhem@P#i2m%~Jv0DT4Sqi-xj
zFL`Iltv8xek@8~A)q1ZAwtDt*W|Qg$K0nR_$~-=SDo<_MrYXA!=<1}i+R0pu>X4Ir
z(8zR%>%)uuqKYqvwr#uEXQj3A;KFHHvz-qM$oUmtO6BWTkTjqFN>xco`T>hvLcn=v
zCi4$5&EAJJm7d*SskV2Cn3&csH>b5`ZcbmexI6SO6!@$7L)1#-f=K<2OHpt8H}6~Y
zn4#oE`eJ9P74K)vj;Ju1@9KWVJ1a5Q=22%<ZkPJ9i-L>oS@t`zAM#5`X((Xzd%o~P
z!JQXea&3~)51fN-+<Ja+n2XvqZIG4BbdT+2P_igjb(qnY@g`quLdDG+Cqm+xeJ(j@
z&nQURQEBFr!257R8&{w0i^v)EE_;`VB^Wt*E)89zQe4t9siTR9Mbt;-sE8etT79^f
zC7+zs{)vxvKNS4RRnZ}6qqX+$L&3%N{QMCmfqxD?&hGtb9IntO+$OVg^)Z*dn~wE_
zD@?uhPkVyI-<wjCFFgGC_|Cx(26LM3t~%y%^pq6yKYr6=_pg{9<Gwv{V%e3e918Uz
zKNrtoWIkiHOxWd+FXto$Y3Z4-R=0cFUpUV!e5N|L{E*73*6j^>VrtD>4<}4oxZp@<
z{E1cR`N=&K7q@m4Z&-3pF+owVdcu#{QYvvb`g*pM`kT5PVDRAX;aFKM#c3|;wkIbi
zWzlLzrNSx8T{;AQ<VC%|b4q1zlJ?;<8Ntyj>)-ZIFmp=C(?6^;@zKxFXRm|4c5Ll<
zaB2D5by<_YbY&SI^H{p|f7B9Qg&EprI|7s5-IVwlJ^4i8kAS9#?DEITuS9<&DA$BU
zu|H5&TEO7Z9pBEqU!r73U2vV@wIbIoN4EE@-EhQ8&`zZ_l2J`%iejJ0EW-^eooZiB
z*t6n;{{Dsa3yVDO?~hydL+Bi1E9dgod<N}2??B!~J^Mdy*p<()dDU8>g^f>4DpXWi
z+S$w+*`(?p3Pl&#EZMxMs57%5#?ZJ-b4v8WTK;nmEB9$H={dASVwz2pbf)i*J2SNp
z+d339?MS=iKcTVG``S)bzlT}U_G?Nn6|O(q8TP|BA=~22_WI<&NC}Bu&-vD$oibmh
z)5W#$VeSW)9xv&u?#t8GHtakg%k9(uE&t@af29ozF8uwH&&>D3;g8i^-g{-+W$SeI
zt+e;q|MuEn#z$w{zvgb=`HpSw!_OA?g?*Ga?40pU>G#nF$#Z6LOV<3bwXQPwC)4cg
zv-C^#j_vy|Jd=`p#MoJ|t^VhW(Dw;q8V@(zJuJLL{`|cVH-iIrEdHn-5H_<p`fz5h
zfuZSh0pA^ByxS{Ugr@h}|M-0M+wTu+6SvFqw=nl=zw&#`{QShuU0)nmsV3aXthp(r
zXW`YLCoc0(tLD*r(Y&@MHl6avt(~jXR&DwypmNMf)~=~DLu!HixxSud$0n_+_Y?KY
zE&MIB>{7k>M(Zi+g$(nU`a}6Xi0lw?6#V~<v0E|3dCSsMPA^J-cmIr#vuWu}XySd=
z=j*FsdTfr?G%q2opscp@9OdqxMdZF5JY%b|S)Xm|iG4;hQl-*1_5{x3eYQ|}Mu+N*
zfM++39N}+%a#BcmnwrJZkJp{OkBQgos3ye!h!=d@_sX;8<xjKksb{v=PWZ)9EGuc=
zul{eXq2Zo#iT1A#6n&0}`rnzqE%5kOyDk0MygILg&e!Ex)+kS?=QH`eH|$StF?a5t
zogezbO{K&b+r-_wwr0*a_@8mvz2YCBcJcIvsf?mbW}w|ATHAH@F*$I_&!59#CG^8S
z+4bKA&{zrTsEM(`^v0=-BHI_7U@GQN@Zo29%lW51@gv_nEJ_W{w;Nw%O6QWl>KuOh
zkNCuhUvgMf8JTR~d7J5ku;SA#H`r5uFZ|EGY|Yl)SQHvhKiI?~!fa}402<_}KO1$o
z|F)S>{r&w;`RdGqr}KjtxnjOe($RB#FO{>7_0pZ@ob24xT+8&+p1bS+^6pm&TvmSf
zLBZS8UW?ifKP<4TGme?F)@aV%n8g1oAH>sDgjIz?(kC4Xevz|r?=OEg7xS4*_Z;e&
z8kG`nY~Ir-;r;o5)AXBi8vB0l+4cMNBBgqc7yM~V=QJ+$c+bqet1if6cvR!GSz^QD
zNtsKHn^x#>@_4vxWa>+NWw7bQx*bexs+wOjDw5k8djp($+IBXXYb}+~HIn0=6tOPR
zLT8sGf7Qh{*PbWMD$lrQw5)t4yzIB<v(tGcKX_UU(&xtBO$~oP$E(ruPh8fzj#?vE
z{ZQ?C^%YYlt?az>@}Ye}|Kzm?JPhnWi#OzCR&Fvm=57;yys{!b=kF0wpWTwSvWuBg
z!fx0kYWrv$e)a3`)$;YOGX(>***NdtPo1YFus1$!{}cV!{WCsndpRricTJeVu}`<Z
z=DC&bd;iKg{Ex+At@XP~KR&KAzklU+)wlQG^Q#z}tn2qy-9K#<$)Zwe{$|IAXg#;;
zy7G;SOn%7jckm5Xe}7eZrd!0NINO#LQ|ekAB;H(n^*nU*s@r*&b*?Rtjhgi5+m49q
z@3yWL%U;ZvaOCF<K}8YHxI>So9nT6AaQf6A@<8&rjs3Rvb&;~WcCp%dJ-0uvaV|UJ
zxN-N=OHzfmK4(R3um84cp5Ux{)}6a<88#i9UHi2%c6;2V*@B(|!bu#CK21iwGrAOX
zQxg78fAVRA=%LUBmAf}5F(-x@@YXFpyKovu@>`B|uaB+$x9G3cW0Uo_pKgrZx$srR
z^SA^RA^S=9YOho~Z^(K!_qW{*VGqsOhxAqyhN~a=8*=kE`-aC>*Gh_(*H2RPt9a1-
zM@>>fYhm5w)cq$9KVNq5O4y=%_Y@AyvXHr4w<P39$bJ!~$A7kEhR@!$gY{s+KI=ne
zh5H)be?4a{XAx_{|75DptsM?78n1(=tg17$oNH?7|68i;=cb<}^)J4KeoWeY>+S5k
zy|!|54%sI)Mi<+;Mz3GB?q`z!<-gyy)n^^#I+o6H<w;>C_x=sS;dQfjT>qN3dF`!7
zU-`Zq{hS*0=J&45=I*|f@6*0M-2S_&SV@1*mX;d|{#Rz&>=B>MD-*EU{?GpNufL|5
zCtLi_J*M*J-}6Y%&sp^m;R@#?M3eiLZ>$ty3*NYsf3u#^_M0=f(pjJQc~prvsOB-V
zPuiedUz!-UT%daClqoD5Tw0x`NV3^o4oZA-Sb2j<k4r+PMBjl+1~yLYf0Z6@R5&@G
zS4UIz?Pit}<tw8sT?&_V&RDR>_;7vF2A7>qKkA#Ns#J(we!fuX@dM4iW4q>k)bH+|
z(_gtkgh?Z1?w%PFVmPL<IR@Rc$oWyUfW`8jsPTQSDH8Q_Hih{=P+>gL@>8dr*|XG6
zfq(MJ$tR<Nm#A=Fe4}<@il7do@x|IBzwd20VzzGi#%V6A(tiX?IV##su<<Txd|M>w
z5vO`|(z1D6DvI@U)*NO0@i9?%bzf?&Ma!Gwx09Cndi>^VxbX1ZjeF8x-eyYA->LJ#
zM(5hqSpN6dLd_XvSnCrHiLDb)U2FceXwHGV+E3gL$mjmr!f>47+sEBMjV@?(INg}!
zFd>C$n!D=9x=TwAiXLkF?ocLX6Wl2g=C2dAD&wsGNz+E3)gNaqaNy@Y$0*I6f7xR4
z1)-$8e8zfjsZOV$Day(R)7SVWT~q$G<PA@tp8WR66+tQIp9TlXbR<R8tK^uiV-~3p
zkX$k6;}R}L8;{=QFHTOgd1K^U!&`Cm@m9ewY00ODue15=_ls6F6b!V>ocbqv&8HiB
zm)$%cPPI>+vT4r&Eyd4*W^tc?&b+Ma{c+32m)$+R_PIHaGLs+gzkY+O<FUX2S;K^X
z9~GwsRDC<L;m>0YiAxG?Rv~ky@O#$(uDThrIyO2t>+%MM#a53mL@1a}*;c=&k5}CA
zY0;u&-}A349&J>$D0{PU+exv*{EUp(XMGUssN0Yl8x+l$ln{L9RK=~_qQ4iTj!Zjd
zH81r7({;P2g;V$EmJ8I*|9P>>UU*$b^ZKcxb|)Mfr9)m#lf2qDQ}>6u^^z9Gw(yUu
zYU{rrEo_tOnmz5n-*e_E4ihE_zik&h5_Cx8WcfP%hY$P~)R(vHy7JlBtmt;=?|1j!
zsj=M6Vfw{##QVS{za=|wXJ7ugz+(OT)!W`$%fA&m8rJt%jM-6B{m1UiSD~|?UAR(x
zKr&PQg23-cdGGwmX5ois%RPwLG&yCKOXHJwK1Omp<@HPEt5{z?|12eAzO9^;kMwDm
zc^W1cR-W>id{dq=XO>~`>!|@>r@rG@_d4|Qp+>#lOQrjA*L-t#=Wf3Gq0DAY)(L-a
z_OnyockGaVZhD1zndYPYy{;hwy=B_&)o=NwAIyEJD#h*C_etL1ZQgcGrDo1cUWo^1
zOf3t2pZxXcMk$}{`VYVL(+xJRRg&$zulq62O>w_g@Xp7I6RV#$eL3bEYV>RE_vL>x
zrR>$7YMWkZ%*iU*Sd&n)ivR5EWwjRDzDhOyd=kOUp~d0PXy7elH+MyF!V(4M$kKf)
zcekIrrYFR6Q0{!v-CY4J?AvDVo^N9|-7a9K{OoTR3p`nwLr+%hoqws`uO-*ybG2Rb
ziHVxO<gebT*c>7(UAFkD`bLpe7B5AU8ct>!$j;DoVPJ7NbLVCAxnnkxn{&IkD~yUi
zvh9=pJjc2&ed;NeDUp+oZQf_Il2=W!_EM*rR=Z2;zk|ts;j`D?N!VL{Zdb(l)qACl
zKK_Wj<UF$_YE91#r$Z6!HNV&ACe-JuWp{Q=eB-2Uy<A93K>Sl-e7n#_mB9Gw7{^1L
z8zvp&JE9)K;?zImjhKRAvYp)CH9nT<HXf`0q~5Jt6&<{9*86+Wa$kj3O>7hHoKYva
z$Hlp!eaVvvwVWC&rYHv#bJe&#l6sKgb*1C$%mXGCx-xw|%kS9j6>`ZqsCL<H;p>_8
z!TpDY7fk<lW7ov2*Yh?e7x8R$eJLt?X4UqI9}meiKMa)9mx(oEEWWWRwsb>AeZTS6
zB#spgJ+hOZU08TwdxleHTJMeewPtOXEh+_iWM8p7zS=LbO)kCv!b1rr?UVb>)*XNU
zzWLD6>wE5*e7(~qbKPL2kA96q&bN6lAG}wKv3gv8>`-Zxl7-ib+T%i@uYKG7-m&@2
zNHaVl;CbU~(!2MZ4;4Qht-4=gw{z2m^|xj)T>M$J{i7w@wyQrX1RdPg^cY9B&6?M8
z!GHNBJEt!hLP6@y@i{YX4o#A0m~rR*w)y5?*E4YO%+(Pze4r<~!tK`Q{jGf6jJBT>
zRJYGxyZ7zy*$3)VYd!A#{A%#z=%?VX0o(a+uexo%U#j7Y%}hhh6K(CQUd>N`uzHC}
z=t0*t3%*@af2!NhZQ=H0%S8#}MxQSK9S0J5e3{asXFLB{<T=q%BB<%=*A(^Zq03{R
zEKHrfC!b&T;m5grcAxzXTmP@0aY)4{YF;+;WubumY2WUJ1kSfeGL&(D^iTXpjj9J1
z#>}2E<Y><ABEOjWxa&LLxNXZV*s;-S)r^wzMC(K@zgh;HZ5vB}DO&O=pMH2Fcj{!G
z`AwXY?Y>@_k(OMw!$diF!<49_(h19FFzK3R_O4v}{==Hx^`8?`xK?k_S$5&mlb%H^
zYo$J>o)Y7^q!W2rXwII`#%2pos!g#!r55%wU}NVt=M9YKYI@q@j`^SKtKZbi?rpk>
zcaGe&KP9&lUQAOg+#`R-RqEz3r)jmO;<qy@#U@MS)t6VSI>6>p+cfD-+v}@u)24pZ
zExTOyO=NfFh7jf52QMZq3-8jbSTsG~*mm~T*{wS1Z<am1c}&F1anFAD|8pk0W)@Ci
zTw@e)lp$)RzhMKrx2X}sC-I)gC)pYTkGDomvN*-VXWh?}pm<u6Iipg}sNskC^vly0
z*tndY*=~`*v6?5suqEtQb6Y}$Pv+ivQa6(X_^0Ki2zadedeXS_g@qE6nfDI)m?{a$
zBTmzdr+;8$makWyo1t_3lk9f!&0g^*iril6o^RK*UBp%G@OyQS-^DuZS08U3zn_<7
z(Jg8dacZHcM%1E;_kQu&Qt9Sg<?DJS@07?y9SoXwIqbsYo!dm$7+c-ss#>%zgOz`J
z(T+?;u4}*BbD|7nq#Q2YUD(!p@m!(E`k74sUw2#R9P<@P31oX-FMR3VucLSG9>1->
z|Hq^K_BFeHU-`S|w^MD+H~mMCp1&5~F7NceICk>Kl)RMXuOCm?Z+Ld!?YlAWzLn2k
zcmI+=Ro%Cjze@jndVBV_cfjIrn+|_1Yimwjx$uIbvd{B|!!MWqx&4#(qSC27>Zf)H
z_`JL1qc|hra_e>VeIFz9-I8BkEU3S7tZ|pm!#$f073Vr9C-$$AIbym_GCBK;5i`f(
zf~Q5M@>9AVuJ{--E6iiPQZVaxEu+wa;G7i(nTe5;&aY4jw%DDJYjgNP;pyim5~qrV
zv(1q`Vaxk(4!2REYiC!)QU&3iVd^&;n|yZsoi#Bj;Ei~kSLw`oZ}s%opVN$)ADchF
z{_*pU&sB+Ym$|L+{Jw_y!|kh?QoU1`1ROc@CUcRFmH5MV89tlK^2_btuiM|_`1a`8
zpU1mTrt3|aetTE-ucS|zoL+fX)V1o_JjI$`d<mAheADT}eKqm$8*}wF>SrxkWVQU%
zva{PKCtY+}DSr8<ioRFMlvR5U73{fp_ujj8kH4qyu3sKA=kKSG&dqmupEch$pTF+@
z{kQf@?#I6`&rG_p|8DI4eY-5`i>Kd?n{&VRCiiy>tHsu9V>d`lENA-fmKh=c{`lIo
zH*bFaeEKw3<!jyc{eC_Fs_JT|@B8=b^gIip-6tEvwjJ)gS<QET#m9#;FDgjRn$cP2
zdbq^mXmCeB_A3Mb{(9z{yc^3e&n}<)*mhpLUy({tsqDY6OB5rP2)%t`mmIjvYv26p
zqKMvi{>G0Cf>-RBEyDi%UCDX9?N98Um<!JASybM=wpeuL4f%5^+nhG`Ef(_fy2*Fz
zy7}+V+vV4t*Ds&Gd$p|O)h`^%k=sty*(LL6rFo>99Q*3|v7)Elob@no{hOAvZE~vv
zLOfe9H}*WuZOY5C`Tw%2e!KntJNMs}pZFG3P+M7ESN#3oufum0?Vm1n-fo<@>ewcc
zrTcE)zc)Aj|1710%RO(gIX`N@DE2c-cwc1oj0aXas^{*V>9}RMvTf40lZmMjR-en%
z_O)NWr)l`_OWLhZoTq0keAz!$U88kvee?F+zfJjy7dtvmj@VIpt0l&8<$(>4w+P<I
zp6mIha>cfbYTxGPEn>U(HtsvqmnT!6SjF7_-{X97Z}5`>r^Tr|!~X54xO^u4xWsz(
zj~4sOnJ&BgC2X4OQ+IE#{r-J@myOT8X)`TYFC2K|q^Do`I=<V2>_7Q5Z|Tli(B74z
zQ4n^qKIlyHzc=rf+uq#Pf6TA<<)^x2)9=!&_uP*-+p=+yT!D6puk8QCU9Xj7_E`Qq
z@KE#B=Q5+KFN>X*s@Y$<xAA6HN9E*C3!hwk{AM}t@4Jg7lOi-$&Q+{?%y;hS%#HG|
z?9cJrFZN9CuDYZYb2j7CvikdP-`}g>@vCCz@AZFUJN6!1Tz{u*M$X;F*eze8qXK%1
zC1ksbR2KfL49b()D-e9x!Xti_=APN#v}R2`^Ki<kg^yB}Hl2-nbfV(Vw>-V=Mt(ih
zw&az0S}&JXb-QJ`Vd2F$vS;3z%iYS`(i8Fd{w5xq>r>`uYkSL9<P>@_-afUvZ^ew4
ztY`UBuWxktwY!h?&izuI`Uh$5YYj5XWjCw**XBA{%$m4Yg!$z1gY&=cQ|@!O*m-Q<
z;sr4Qo2t1ErY~9P^r7&uVUF1?VRLEeNVVF{-+q19=X$S^6L6<YM<v+(N{hPs=7oF;
zt=ykht!7(cwb~##OJv>Vhu6%%$GK!{)wcvqbnbcEaiZ*ucBqt3fQojaV0e88=e5j<
zyj%W>X7lg`94k@#xm4)m-hX^u+>fd}Vk|yJsO30%dg^K_9x=`I*Y-Az51RC$$60o9
zhuE8MPgjTpExIO<?XAdKxO&UhkUfXW))p-++wCk>f0fDBY_93N_hq-Nbe(3FwN2{L
z*zP%b>Ux1GRmUIuCFig{YT=qbEj&oHev;*)M7BkJCV30Ry_m$m6_oBZ&=ENDQ74>H
z?56S3LjK^~A3p2f{#;>Vvqj%#=D|Z;lU4*gb^homG~w*D-e>m`gl?y7dAXfYC5d;f
zV{C=T?zNB1Ol4HElCAH(&S7>f<v7)CquKdMLYytSVBN-^>n53D3|_kz3zcgepVG)D
zx~INZyX4gUvlG&1I8-uBDc4W&DEBke<KE2FvGu`X57vmIdP~%PP4_ye-u2n)m~hGK
z1<9&U4{0r|aOk^qz|nAH*yog~0dGVP842Gi$^GE7R`FVv<;mS^nZo1Ut`;0j?u-@I
zz8Wg=YI$*cvhWNq7oC%*d03NP1Qwl*3Mffi+MB(w-XiaGQsowxwN66kU!0M2d*|u7
z_(n*STj`<J<@Gbu+g!^1Hl-$9Uhb29<?N&Loe6LMo|tRuJhe!uZT8ZCJ#RQ!-)w!C
zwDfFb`?1W99<x|Mv*7FwUK=T<@XG4^stpNOOST>Iu$&U$wPW+rO3~Jf8vC-GyKVY+
z9_bVlvAt!mF1lW0TWoLWuAtQutlshRm>*I-yJD)?%L^0Mo@&cvbUp8PNi^f~TA#ct
zmml5ed@^U-$-o7Z7vwISR%OO@^~aLjch7BSf9bd|<wDxM*ArKm9$}luyD9YEGNuh8
z57(ObT#C}U`hV({XA^InOPOR?oWjX(b6^Tnu}4K}SG~>F$U}1a(>3aiwr=>MvZ_WY
ziz6iT>E^Fo#&K@5*L^fNB9;EL(0>=looVkqemxO0lev6)(FI+}&Z`#nr751z*94lB
z#M#aY@~Z4mv5B3t;&Q;1V|Q0y?lFs<l-gms_Oe#~>Y!6bye}8e&s4A~YB|TGV<me`
zsa^e9N4jZar3~xF4Xc+Xw9eDlsc%=+Xn3qRC4g_5eKeo;!_+M^58Yv2lW4j|<K4Cs
z))y4TW3~o!t!y=tk9KJP;-0xGU+wtuMRt4Gg<97Z8YXUJDvp%S=U=HG`ubyWYw<6O
z<g1QXv@%y)snmOMNeW4b$1}BD<vbo4=cv47s>xraw1;t-D`L}%1vg)~{lPgyJF-6G
zwZ_{T9oJc^eNr6;?+wmQzm}oa%-7#ivogRWcCqE7)GZ4xua$bfqjpPTpS0>artMj-
z)6y-q_$Ee8?W;OE>zvo(L$l%^9*xSKsC{gQUsY-3`n<{Y9l1;0qL+T)T6TP4_!_l<
z6TQh2)2_+7>@*kj@-~txHh;a6Q-ASUk?*nz^}O-nVyx>ved98F{7ZD{t|#xBu5~U9
zTJd#-m*}cX57&CE(Dzn8F7nN*nOXXd(m}g8pHhiCUqcsHEOuG5G{3h@qW?!^-NhT%
zt|S^R349)8BX&1=znrY##r|n8<4#4~7Pyx&b>`LDL#H#0kM3fRI9&8A@PSsoe$eAR
zQ>MRcwRKuvFY9ij#v9ExB~?=~@cF?9wVYDRFN+=y)=Jk<tDeCdmzpL0*7@kAlPf+)
zoV2bxX&(^W{Hv4c_~*mNE<LWWXM0!O^&u>1cgRPPh>dgjzos1C_oL^LaGcxf*7T|_
z`2^nhe!-`@kK|TmALr$JBw%F6C${x)w1LR%RSOQCbo;Q+BBXvxbQx!x^`7gO=DRem
z`Frr~>~;pVI|=HpiS@<%Otyb|;;ZyztJd`^)s}_zClgK?x3HIey7JqbE!{F^{_7*W
zsh#0R68p<!*Ufvh=V9$SVe>PGxxZX{wd&CvnUV`vJF{nSasS)Ext}Y1Pl4b|kJF`#
zIGPU?xt(B*kyZ^n*L>^zg8GAemuHk)O6G08wBYgDSIh7B3s)p49Bz43bY<qQ>FW=j
z+24@u?fjs3OSY%qKaGTs-#zF3EmXYzZ)4OC<$K209!K#_^WXi%sz)=``B^E;<2O@R
ze`pPVbnv@j&F18Fhb4X+_{bi$`29@t*vz|JtfIQ{r`PUyKcVQ$<{g~ds|>DlZm*AW
z|MVto?UVL9S+eWY_9?A69xC%;Wot}&&8nwWH<pLJTze?$Hvh376P(vxy8S4?{fn9P
z70tAnvRxlPgrusrAL_2%Im3Lyn*jc2Ru2PSd(4wvHTBN~=e37TtwT;vl`mLPx}!?2
zYumRSvnunWS~EW`oAy#MKdOE8k>dS!!PN&Q`_*qe{=_rlMMYltCzTvofujdsdmWqi
zrC?pMf0XB^C!V$^`717Y#Y|TJx<l^6lBqk?{9hH$oj?6r;w;;jam!9l4tpeJyYl##
z2KBiq{WmA)tf|>KNj<Xp^Wo;_iNf=~B&-vjx25mN&B;+G`71A3#cWpJ8iQa|T+;IC
zu2;W%+@$)FRm^1dtv>vfmo&f4*k<J5T={Xr+Mbi@k$pnGJ34Y!?fq{WbL)7h*r^!N
zpv8RcQ`xr1xL9o8np^k#)vwYW4s%{}#LVBn%cH#WrStr~yLQ~Xf7kUy$=|O5)=T0X
ze|~<FJ8462-FsKLdyBu+loxNW|6Tq)M(gC_4-1sc%!}2}9^PmxbNSJZ8QOgN-f$g%
z*vnI1l58Ms>nYv&pM9rg&PA*}Q_$=Qv$-L7q3ZM;5oS%E%srR?-(zkNpTMMQIenoB
zvtqr)L=Ue?F>BBLo62y}^^wMTgCw`^C&`ay8$N2$-r?ai#mmg$<Kf>wzs_H0)YMRy
zZT+A{>FkavCr{ZMX$pp3IgxVHL}S5)CN-A8Ob!zXmkpElyuGzGMm0UgP@q{t)<i$o
z*xgM-u_<j`f{xZw4mQr)Ql2u`m+h1+ku<xusI)nv{-m|%8)1XYUANp{#FcOI|E6D&
z!?EzZZ&BIYIeWiou|E57Peb+Y)r6(~p{o~o6z2U(Iv)MM-B`wlB}(eDvW(zShosge
zv6HS!uH0F5?(W~KtKM0(=ZPP@YCNmy4A*UKAJ!X@VfOL!{(gv=(b5oP=uuHQ_r}b^
zNhU7SH$N%;m10>R@4v#&+_iM`t=#kK!N($g)flP1ytMa+$!xw1wS4{hOxKJ%FK?!5
z`|A2AoIag*?sC<o%L&)?{lliZF?|*mF)jHN<~WDTCE=wsYoj>7$rBfLX{PTVrFNZo
z{&V*pma_rQm%4qw{X3S$@T*Af+tq~fOMEY?O-(j19WhFt#+J9zte*F*|1?#<`w5MU
zWfWCbPJ6g|))M^<pq-^Mpq-_Q6f4C<y_F7^I5Rz(@FGHn^TD0Ir&kP5Z@<0g%Xj<d
z!cLd_h5atq1iwA?^IKK8-m0Y7{qse4?yn3x^SP+HbaHIC@BP_ptjf!-u91=8687MD
ztJ8L=%J5!*)~}NF%b6a3nO<KLX8hkfEbQyscFyCPJ#w+S%?1n4=Gc{(a3u+rsW5q}
zB~+wzd`oc+(HBZQy<1s(^XeU)0i6<I?rf&3%%A0!_$XY~k`Wepp&lz1Zhm#kndgzA
zH3iv$uT%G~T_ftw+bh+vXD#a=%Pf@#>khHFHMxTZnFEe~Ju2|@(}uHLE%m9VpPFg$
z9Wl~TGCN%wpW*7^{<JsUU&%@E-I8O>&M6<F3d&|F+MS<vdhPWeO8Td27w`EU(eUzl
z;cAu~Mq~S|seg*s6osFA<mUNsn!K@Brr!py6Adk`$@BWxtTTMHW8=%oJ-zbgW`%cd
z{HX2C<tmh6+M&K|)AkNFrM%~w26gA<0=~J-3F@0T^`#1PbyUjd(wVxSQ}>-ZxXR5&
zirc|)`Ymy0DK`NnUWZbLDbuwVRBhZO!`gCa)2)<fX@jjk@5@R*Uw%}!u~nS!y-CFJ
zy_M7RS0`;<Wqsz8Z_M+9A9^ww?6=te`}}m5TQK9K=~fcVmMjzIvan1qmta<??++|A
z+4S<E#JP=@i>FpzQ<&0vndNGLRsgrDwf)*q-iH&lXZbXj?>-y5FW2y#y*k^bkAE!8
z8ow_5eIteA&y*bDqn!<pA9JYRu@ve`yQsO8MKkfD^#QdUwuO_vCo?K%aYX%oV{(Ma
zlxN4`H%F}*J}f$AKJ(~A(>hK^r4W`WU!Nu`X^5G}`*J8U_~^RL)h~ANv`yHuT`RW!
z&;j;T*||?2zOd1rW31zlbbh1cx7fgQ3_{=AKR%xRI*W(Tfz!2*H9jCTeO>wP#XhV)
z&R?$9YnU7MUFlT#Bd^W>@A*0T1ex86hOeeqN-|5=SFbo@>2Gms@d>4?>)m8~6Pi5Q
zP4e9@sZ30hsAEcQd(pjPpZ$e5U*5^>{iUnFztiz6<JavE1dQ(3+`l4qZraBcrp+ae
z1-CSE3<~z$e0DX~u3-Mki+Sm5pWBPbnkY>774n=gAwJFFO8mX26Rt1RJLPS%<@-M?
zzgEV?(0WcWWzBj{<9pq+-Ipn=SbTndUOlaB(oQP@`ANabUD2zhH4eSq!K*O&!G*(D
zZvI^<-W2)9DAD4tNut(VUIC#!dgWJRpXSG273TiU+qFPOi-lp{-bOjCnLe5ut+i(S
z+HDcdRrOA5!g;@-g`XIl6?tu|C(rt4y4vjMe);O77IQeyg}iUxP_OXWfL-hE***R5
z7z#Mvinj{dI+QPD5YrN}xv;AIb)HB;+OszoZ5=mtEU;!2yf5a`cktWZ(^C|r179lq
z?z5W6x@gO}lchD4LfYDleT<)GIDORp#dgO%S0?S;q`p^QXRIu7y<X9HvF*k71<ZDb
zycJKq+x+)Kna=4Bu|;!_?<|R~Z&YS`c46~v#-#xlRht}cFs{oh40DZKW7K||cm3Lz
z8|y!8Q@gb2%lZ2D?uH$_e$hvTBa)AEtqM1l(2$GhVZSr6K<t#SDT9yhZ=Tr?j$J;)
zylKyzpAkFP6iVjXG_il2bNi>vq<P#Lxjyx4!renptGe>6S`%kJ|6jPRAfHyBlWYB|
zN~T8n%q*M9lLc<Snqshiw^0_4;pV*ZZH<keYi3UUytl_E_w0*rX3RHi*i7Q4xQ3>j
zPKtga?XcnFUpC#tz1!61wk+I!n>YMK$+v3H@U8B5VsE`q(!DCa)7tjx-Is;s(-rlb
zqvy-sU}nj2-1qtJ+QX)dj1yXBS_TQeeO}MyQJ)fjzM3=M&g1I|<*SR!yFwp2B`jhQ
zTCi6$U^8D%asSl=5v4+VX4YzLo_c%d+Q6IZXLovD|LnUhs`B^@jhx?`Pm1K7vt84i
z;1%^^HQT40_1Epzultm`*L=_Fnf8$(yU#uKTT#W3%<bC#Z~Ok=7k8a`|2Q;$o=fD8
zMv;Eo1+k2L^{k1$3X7f!9&nU>@Zg!sk&6>*KO1IjXkEcrwS_V5s_NN&_EHR8Z@FTR
z8}kcQ++X8&Wo6s+Gp5lGr*b*T9os0vxVZD0+=+^^iWO58_pg?no!oe<t>b@q==>)v
zLNE17kHred#I&wiaID&7Q+b<2>ixxbmZHZ?KZN>jmselol6$9q=J%pM|5o-tXmEXV
z#l5=W@cf?|lP7T9{u|T85$xWV=oq!^%)2E420FWso>*#YS8{8k;vxefo-dnn<|X>}
zTzgxokaYf}M{3CJ&Dk$ykG+~z-M(?xvj-~ztvzmpaev~Sdo<|Q)DpH2E6YqLZT%$t
zRZB!fxXgT?e$}3z(RLG9C-BxEGv_Z<=$3rCt;C%_C302UiEy6m-;#W*?myGGCN6iF
zOQpjy#o+q-avttCcZ?j){LJ|9WqZddjpupsy8<OI?^te}XWlw<%Wke!jd~1QE^qyP
zmnTbLCA)Ne&&9;2r2+eD83hC#4{dIq_HMhCjS0)+58M`K!fyyCco}H4<evSoxW0D5
zJJBtF8TA6BQvwtdCMxYHnC3K>VS#@6{-wX??!JHO@4X16S3el?A2`qWJ&SSE&-nj=
zv7VFumHn^ue=YfC)xP%uU$;MAwZB&3>ixRVtM&WC_Dh8SebgAT{|DD9`I?E^bM9Pc
zf9@O6!9MrY-JVySd%uZit51pIVCTt|PR(QbQ2%P}_2cr@zc_Yp+%UUa%GdnDA?5m)
z<=RSj#S){}YDDzj|I^OcaiZqIhvTY|UsQf-s-3((>p*|qb=GM;vk$I2UH|U8*Su@l
z@1svt$njmeb@G5j|DW@Rw)|V(s<|~iMN{7ToDZ)nOVR$6cNtxiXK!BdK;c6@qlfc*
z*a8?nq>V_%W+vM+<e3+W$!rX}|Mh>mQ)VHSmgDpVeoP`PMwS+k)h};jqWhz_3)bC_
zFZ{KPRjcj0_q<sOo!xd<H+D1ieqQh<OTRVjb=GywTk-evD<)QG$jZhht<P2|(CPeT
zF-MZG{qsckXLoat?+zEY*<bhj+oRR;d)~FAc}3scyZ5C}g4?fimS=6u@7{j>Zh7a<
zIa%py_Ay@8m3yY-ZK|4~`)qn}z3QDOXMf))uoRtqbLotjyBBx={PgMh_WFYY!AECu
z>UD1PJTu#U(&nmt^ViqSU7wd$zM5tKkAH7l9pvwIE^2)?Pf~x^>h|vX(hI*r#Y6W$
z@L|p0RbReRGT9^VWvjIOE>VH_z5Dn6ynNNi;KBSA%<ok`8(b>mf4O+lk7!Tb-L9De
z^-Hop%uTq&*2q?}(Qi%lI_Y)0xZjFQ5pY-^Eq-NHq`|ovzN^cod1kI%$+qHlmsnt0
zrk=9it7B`frSV*<TFhSCG~v=zyG7OST;{*{|0<br(fQc&!ppIH{NA+`)X48CQ`)Dc
z&R?pzeFoE7slDv8;x8OKCbDJ9fx}(`ex+U<%X*jA9}ternzW~~{_6zmdy8(ber3uz
z%PIZ%OVe{3lmiQQ&b+|6W2&>W&h{Ry1v~uq&EEgmN&o%)_wv)@lc#E${`_3??H}js
zW65`qYz=DD*4`Oq-RsfwyDIs<iL}L9otoMW(KcrvGx}*p<yty(AGZk0D{K?UYd6pN
zaAwsbo+o0GE+zGjRptM`%(=HGsx~4{KW+QxFCW#^WEFYCB71mKCTKjKYhqJp-g-8r
z=Ih;doqtu|rrg_ekbAz(u|F*_&(!zFWm$T5zPj|}3ftMO>rBND87&o9=b1HYy-9d<
z*s23g6If3@suAli4bJ499CdW&p;;PY9+!{*H8Gvz|L>!s=HIt}zSY-x9(0obx2?wO
zmHqk6zV>Itum62#bGrQZ)Bj)dzD?Pyz3&}kg6Ogpo4E4CkL7l5&0W7w|I+P8-T7kO
zHn+Za|2$mtbB_IAYu|%QFHFw%ama~2x9;7u@278m+U0Vh_8;3?)-9Y;Cil(-w|MB!
zH2w8}V`uHXe9I@^Y|6JJtxtWCe_rn|FLr+ObG0MSzfV=IKeKSx;Rjjs%%A-;s;`?D
zF7&%`na*R6-s8s_|F9H(xcm2DVt~*5zn{L??B72(|IowZKmXpXsr<Y{<0oTN-lJJ%
zlT*K)vd;T)U!T`q>c{(<kL)!f%Efa<ZBOs<4Y7;8yVlNT&wkCxUp@qE@!xjO{&BHx
zrF;E8{u5_cJnWg~Q@nG3Sl92}&QGc*|69~so1SbIvMTR0-`DQr0coGpOyBG6)4hG%
z>bCc@2eVc>34LdOE9QEAYm38dVHb&~GdEXd>_4%gsq5U+T-}=uzkVkMm9BkRrM>2C
zr}ff>wihyMXW7m>=6FTo@r(;)x&2?aT1tjGT%2?D@#Fg9?7-&N(Nnh0&AU>&SMx33
ztY4SY<5=95B|MvJyu8wj<EV<&@s-;z@%q*t6pbjEmSKB!(XAwnm%GEhNBFOlu$ysY
zvF*}gDaR+QrHhtNY5b<8FT^4JDdd=F#Fr^|K7}-A*-ZT!ySjSK@}4xe=!N~?MOG|e
zC_T_OXXXRWc}5TTh3fk*NqBZSx-*IyyS6?3#1p7=x%<S?sJGixc1?<@)_uJ%>~F;S
zMlsFRxlc`8<{X=*;y&kDXO(fKK=aL~2GhTZw1mBQx_a9y*1k38SG?FzTKh&*RI@v)
zD@fXA_r3r33eS~?9eZ)0S#QHziL+UuQCIJ^UCf@{f4-8VT7LTFjr+u!>I>Rr*7@Ci
zuM+q~VAA2ry$`?2`dPGhXl=NE<8k!Q%`ZY%UOhek=9jHc-FM5rc58{ymDzhe<2;ju
z_$uDV{&#W?Y@Q)-^KIM?$L+60B3QQ-R-ccIj8a{5e$V7X*|p~9x*D$Ly8Zj{D(SZ5
zhJzC#&V??Qb*XS{U8#7!`etVHpT`#+>m?eE)HU`TzGB(EZ1uZGzTfs=pEi4j_f)5~
zJ1TwS1D-FC>2XVco3ZA}p831xFV<eaP)?)lyMK{&c~I7j#Z3>SxSFgJ6Quq7dqNwJ
zeY8@ju`o-NKa=KW7Vmqy{Pn%drQeN?Z0RYyy7y&V`NiC&0(E<Lht$3>50(q9yQ{NC
z#hjzQ-Qr6^POy&HLtaJOSz8vKZDQ3}wp#7SMa6Y86GC4zt?iQ3_PzVc!0=9ybT&`^
zj?c1_EX}oMHHUHq*tol_ejamL>cz(JRRP(L4fAXkzRgtbS)R7^*DDTh_C;;iGa}9`
zIr{rl))TX12d}0)T~N9vM4LCZwn5cvvw+{-KpxpY2kKYfX<T~ap{~UtuB^k;wr#sB
zw=Oa>@?r13%%u;{Z+b2I|B~@bP0u>DB`4>*&Js~Nk!gHt7FV8qZdTy!JtymH?zt?V
z67$3GQAon#Gb>r^0<U-`8k>go2Q6>9?LRl_%5;~x6JF2wR5Zm(^iJKYD~tB2yjrs1
zbHt}_9OX(eXT;nKme(u&E>`yMJNNu>B#T!u&(kLwjY=^k2i21TT-P(QP1XHhpBgA-
zz3+S76xU3v*At#i-ne4X^-i5rszn>_emL~TbFtL5JN=u~4@s_dzY#p~+r=Bg$GwU>
zvU|O5+&s6qWXcNm412>SvDOK*B6;S|2oBhEeojlrcPF=E@y$VXzVQL^^-m0Bg^CwR
zPq;rb_-ts-n{4S-NiWs>R?b=(!8<kgO&rHWQ;)D&@A|W!wS>tlRo`cj<qCS6CD)d?
zG_&O3wnHi>Cg)cK-`T%*<!^46b~BrMKh{(RZ+-Laqngs?dvlM^o^rY8+XlgVQxX^N
zS$S})bzabpr@p%{opIj3vr8z8PwM~IdYiUa$E}qnPEFSpJ{NuYOmCS<@}ikivNMkM
zT>ZOnt&wAA*1y(?J_?81>Xrl;CtcYk7jpTq#UlMl5ldemJ-U4H%_g}`3#Qcg?a64_
zX4{Y<9;2Uh>p0uK$hB$HwS4|<-n;N?b$)Kf$w`4seUU~UOJ?Y;Uv%L7>rX~=Dy|(g
z)#dT2Z(F$g!@=dTT<Z>$ef}V3T2e1*r^e6EmZ^MU+WHxuuBZ5<<^{5voH!(XXL@P9
zrtaErCO>0%?w?AHY2>{VZ?;1J)jy$`_kx3ZC!TFz|I}#R0k(H-Qdh)F>oZ>l$`(y=
zzq^P{mNnv(2xr-azo|m8p8wux?6AI=d2iDU77e8ysg!zkCKrV&g@ty%WYfY{U&?A|
z+`V|kgZv|V{O^2HF%m58J9q8twCgcT7?;O>+NKwM@A#hmXR1Q8cn#lw5IXbwh?f5$
znfyh&52oypFEK9&X%xM2U~lTQFiz>Ddu1z52;4LFX8k6a>Bm-86yEd9^3cTB{U?iE
zzd0<@e)axDN&8&A74-}s=hg8#ya^ZTUphBh(>K&$RsDU|0A}B55mtvb{JqS2G<Mf?
z(`y%!-#s<06?}2gPCe8rW&wLhy?x9INvRj92D{w<ybNb8m}a&}Z7xTuPia5LvKPy=
z@6Iw3y5I6Xl$GWFl}q2w3Go~g_1kuwTZT1~W7$qsHp5h-4|20EnT4OKzZ!OZWsQ8i
z%Mwd*qgb2L$yZh|ob=N5eEx9xTcdRc+Vs<;6E>gQbWVEeXU@ZYcV92OA2Z+J!;jYr
zfxmfvH<T<Ycl0~|@8W0vMYewqavW-#c2?UpdyT%M;8USRcHN82))ZT9dL?TppzOCN
zwfT$B&kHhYm7h*|%jmPXYd_ypF!4eCqIu`i+zu^$Q1!6r!%L^zyE_-=ct|_n-u`<=
zpsPK%^@oteg3bSX^S=7)teqem(bF{Xa!b?g`dJqi@mc#y=-S19x+bmSdNOd|+{E86
z%b2bDa`|^Xx0$AUZuiS?8X?|^``S~)@6=7YyQpkJj^T-o?0<{Zw%e_L5yBXpcl@O3
z!%OvtEcd+7+2o&mz4>32XV_X*E@w%%NYjTavTS<7Zf}0Sb#oN+8Y_FrKbewSZMy@L
zcQ0>Bni42{uCh>JvE7A>SwFO_S8tsja9dpA$~PUSwYJw5nJ#XbRnXNf=oGs|)_p~N
zeb3j&Vh1#i?+kw~dVtGK)9~DMu6J9QcD%hiX+_G31YgEIUtecu>e_gEM!%_YSo=q%
z=I`rwv4^&`JgZ-n81+}0cQ=2wipKU=2A*GfTuWNaocCw`kzbYU{0B?Z-W+@o4zr<!
z(e#bs%$oIABcqFFTZq)XU;jb*j96ET!v_ifSzCO|Zs!{B=D%Hgz-`+~!<3ySzIA`)
z6ggSKWUMEjJLf0wGk5Xg_jmR;@4Z>|?5tjV<)`Ah&#%t9x}<gNu;cvrCe4&P$^5{@
zo}fo=aR$3R)9WMOcTf4d;s3s$AD%HOS~<^?t~PvhsqeXvO#L|-nOz!(oPOm5nul)6
zo$>a8MC5bN!(Gq*O%r|eKYs54YwP_Rlh3buD7jZGUU;3ngJlD2yUQxC{i^(HDkd1&
z$#Hs?c+H$}@`<Uu&~5&;@3-}@eeyswly%a^(tPC>9ZgAz_bXq2QuLnnX1DK#qfctZ
zb^M=dW?ea-xaF%=`pqKc`X_SlHdXBm{I?_JgZz(WiC4F291IVV{?@BtHKRVp`ty>z
zo}McD(-t-yU|l$2-v33X6O%4k$agAC=KY+qvvq>r_Q;K43m3S>dd?H^eijodIb-tI
zZ3`}}ndY6oCd*7G`^=)fj}AuVTsiuwX1d5Z*T|b45i5(Qt@n1=cysGkuKkA9_0J|4
z{K<BSWzqYh@O}6D{f`d3{>Pvxr+mcz*M8NjN&NlI6`V(eLxP`vX((DX<#yvyt%ZNQ
zci(wY{<Cd&m2=+YRS)Z?SB9!?mlj=n;>BjJJNm^&nn528^lvMf$_I;=GCW+gh^@ru
z<hPSc)gM^?UY_cFw_K_2$uF6j7ef2Lx1Tv%f8c9?$>o1Vaof6MvJx(|sd!!Bs#<y6
z|JSy|@@-*CtF9~V^R}@%RyVKq_NR9#Ui`_g=1<?gU1$B98(PvDe>a_fapQ@U;$05G
zi)yQMv!#~JdT6@-v-8_Wd$t&EeaH1&);n+W)xQsRzxK0Pw2nRZ<_zx>t``n}jnUd|
zw|FNT_YFUh`W=EF)gQd?PPtyX?C&)(iH&~zd%Rzry`VI~{1gZ0%iL{kM<Vkkg)X*I
zIL);*(O&0RR{d<z)hRm-TaM1y7_;ZMoU-`wBQeiTs9uquTDd!nWAoe}F(<0p6eR^~
zYIZ+h4VGDxA+^)w!0#}>#LLVZUdrX1J$R|9`Li;c)`NrgOClKR`;<1YJ^SU?-n=B>
z$xg;6N$M^wKK<U|Zpqg_e~g&PB<VHbAcN5qWlx*si{`gpbI*9wI8`in<Ft?#fw^58
zAr>7ByY2VsnQju7RjIh^+R@X$S1kPW$_}-2j9ns=G9Jwl?-9*sT*aldl2M3%@$_?f
zZ?k^>*qJj&|AR!t0beV=(0bdR3a15&WG;7xbDU8Vv7cvT@}*UP^Lz2K>ui?Ik2e~z
zN_ZcrVCa!&w=ucUt#ZEAKu9)_UF`Tef5yH2cQmG5v`<js`6A%%FLAQ9=|QG)X{vs@
zO5Giget$QWUXhy99~Cz@6|UZQ!u$6321({-Q(>*I4`$E$;`&{+l-b^DmrVVqnpoAB
z6%7o59}aPD@lKe2ns@$cwQb3Bo=iXEc4L?IuNiCBonBYDxnzqx$G6+-178VO`9EO0
zFwJTHE)l2OnGb>suZl(I`t&ZFVic$UUC{i%Lj?nuU;fffF=1z$mafTNpxwuATl<E~
zPs=3u!{UgnfOSkVGd>pBAL3|R{WX=JqdshR?yXbHju@?t`>Xo&-IT==hux%B_g?v_
z(P5|HF!5@rBiHi@>{}<Qzx8s}y3(&)_-oaf&uiok3C>>gy7d+7Z3f$Ox98nFqL#hx
z)ZN^3bt%0G94D3@NbG<5XOfZLj3lW!YF}PYUQ!oWe$(@c{~UHV{UeV~d_5uYt)hzM
z{Cv5r>-C%o*E{_qm%4Ow#lE_@*njKp#O+f`<Q-oxGw4%yyu<BPkrmKzygDq>=Vx%a
zPD?1O{MrEL-l^#a3+}5g{<5bn$2;ozcEhblm#OT1H*3}nlTXRsN(M{cFP`nGuW-Ba
z%O06IK`#U{#GYL7^#0i5#J{&-p1SYiQhOJb)oK^oUM5=CFJdlpQNQ`|PH4i0$F+e5
zJO6br<WcUw<mpwe-+5$a?6o%=kF8$g!Mkq4=fD4jE;i3wz;5%g;JT=@nML#YDi_^a
zt5x$BTC3JbE|=L^<l1$s<sr9ws{DbN#~mw^>^6nl?DIQnz+ZDtX1Dek?kUX)H<jWn
zwjBtWDDhoR{p0y>KkDlfH%!~0^m*5lnnTR`S0?pE$$ky_ojI?*D1V9m?C&-+9{;+Z
z>blLli1o$k+#r!#zs2f#9G*|vZ}i~8WzH47Py4m)!oqD6ZM}C_TrWMgN{-#1^&P`G
ziAz2yM^=2UP_z2Ia?R|?oNM3h@xSYOK3Gso^yaw@PkwIvY4_rvY_>{X$D#Vmv;H}F
z?QWlyE9$sZ#Nx%~EqjGC8txxEzWH65X+c#>%Cy7-4u@@vcSaw1o&Dt4#g8(Zrlnr^
zFu(FsiihFWa^)L&kN0Mj&5<~~tFJHZ$!a^!)2{I|Zp~V~Z0nDi4$}(m_T2w!ec_GL
zhWsh>_J7{~_OkiGT?f(=)+}AK<Gbrwt={dSzue4z&eXlK-ad+_XZMT3_lv$w|H!BK
ze_>;Q!pl#`J%yxN@88?=OT2iudI`4L)Lg+pAwMaL%f<$Nu8*mi!DK-u&HCD4-~QPK
z0(+l_|KJEJ{LA@6Dzkj`w@sHWt=;0w@As%d)PTcz`|kbw*nFJAwk)4$nt$)i>`FHU
zb`G1I3H`ToKL3<^%#y&uDkPDjet`9f3ajU#gf5E{eGk$<h`6<|w=cRH`(3a5)8uMy
znFNu4r}kMb<1qH{cy!S9ZrQ1_i;LgXcfHui>l*OhJ5)3NXx{3i_^Tet-!`qc>FNr7
z=l0Th;jMd5gx{2(2nd+{^5cb5%L3BU6jt-hwV7kvw4U$MZnk*=;lX#Zjh%#9k_DMr
zF8XX&u9+mflQ+qx#oKS2B7fSd#xh0z%PY0S3_O3f3r-jQv0_VL-HhBVdp`--lrIly
z=%`OHceT2hvQS~&x-;!-&sZPKwm#`}j(M%$sT&Kw_M~RNE?lFLk?Qd{@%uW*mA-Pe
zCxdQ!%{sa>eOgMwPK&(0h629JQ<!`#eKh8s*gt!5RyoH-D;3WVRva@*FC8_AnIJiT
z^)<;w!E>|3<syPlvwn5;{o;DkZT>yAD}03|%g<&Wsb413HDhhOg!8luv$?<TG+HNf
z-g%j@LF(cy9ag&w^xs+@xiNR+*7ij~Pk-0kkN&SUz4q$0PRrT5c3aHcU@Ck5@zorC
z@7%ACylYmkUKUbcVlI|=NN=9+|HqN@C(pH=e(6?r{`$EA8W~lqUmkz4;m_f1is^sE
zzAw669N!oDYTAshdbj@zrt+t(Pq*498JW3VCAEF4e`j^5++U85yRIwwDR$reVDr$x
z?Ve4}-I?V#pXnbh^)$hfz$_rmH47s{aGL53_07L+0ZLOJwoGW~c=r9cUe_YW*Lq!x
zxN~~GO?b8-qUWsJG9J&o*?)fZxt!V%wD`n9fy{GzDnF-LsAM#ARMk6P`kqy~F+!?w
z#eo=&wy^IWQ93gnqquWATvl`4O$k3&Uj066`u%lwI@6|Pxo~bfa_Qh=g$RRIu4M+M
zI#u<1R_>eXuV-_0-|M@naR%PT=h(|Tq8%)beYsN<{%!4l%bA-pW;Iw|o1&)mG%;NE
z)|^Q>d)K;ayBbd9>EZk!*SpWi^O*92w1b;1EVcQ+yE|z~X*R7~&^c{Z(7M;Ll3l6H
z8(qRg^I!R1{#Cczy5wZ+2F>{s6HfhE`~Ta8uep`y8tc!o1WZ0$e*dRh$<h6(+kKa%
zvCS=tzvg?+^V^K#(s>s&K5X1^S$xVyw?mT@x-6#7$Y|SQ5MkICX3ZeSbYK3EGrviU
z#DSDDd!q#>eFd6&w_NmfTfg{}aZR?Nc~&3)S1H5&&zn-$y}cIwUQ0aY&-dJ$yD!+k
zi`_Bj=#!uXZh=|O_2p5b3v+ZNw>z+V9piZx<x*)kZJ`$b(dEnZ+g&DUym2XBs1__Q
zXO-Z*Y1z8nbta7&Ei1&g2d?;YY^&k1sr-UY$)0Ds6>nK*Jad_R>~vs2(nhtMc{fdO
zc)TdrDE}Ygbh}@#{M`FTuYPT~cWl?iGt1v=ZC|i;{c&lFPRIU~9kpWhkBj{@Z6`9H
z>v)u`_ltk$i|Ho|#gh6y?3Oz39(-^oqq%~fg~H~Q)AnYcmaBTR<!Alupu@3Ej*gdN
zcP-p*T+NbR^2+A0;Z&&~!e`d>^?p~KuJoC|?!8w0BNL8R3*JI5$A!+UGUp9~+T-ls
zy_;3_qE6RQXxZaer(5bIzpu_UimX4xVKmcwcX{I99qVRa{Pf1gZs|eZ!%r-EWsKXI
zXRsZf&^mw8v4AUi7k2LdFaISZP3(z;L-OjYHV3x7|6Z>zHubRmvN@lc(spE;cguH|
zG;`V*TsbGtEU)!l`2F_Z*Z029{;tJ2P24HfbL;+DyFOjjcAI&r$>`tnRmMj*%F4BO
z^jjuZ-~A(=C4a}hFnrzhb+2PY%U#6e`3{Qq7*x%E({5^KAKhK(aZp)R=kTRvt98#r
zzAj(g9q;@7M#AKa%)(5T#*jnU%*^41wV@ewj^k?N{a|Txfx7SU3zz$S3YfcO>XxAP
z3rw0O#xHr8U;0EJYTl@SB>2_m8H*MF*Y3BKNlMl*T6V#1!DY|+VZR?=zISTJlc|Av
zuBp9;Cr|w<cz#LFw2y0KDxWSn-?KdQiOxK~K%N=uPk9Y2S3Jl)pBi>?a?<J~p^6|M
zrt@8v8b)ra^|L>2(Q-X>d1VgE^H4s4+@?*}JlU%(+-;2lj<_E42%Dy}Y>lJ3gG8K;
zqfsRL(v8}YPVB!YeLcmNb7ltT-D46Rn>M#DJhRbVtVvkC$DyEX!*R!gzK^FInsZMa
zauT+2^RS$q!lnF3rl>$@;+m#kM~qm%SEg6Fd<f;3acE2TraAQ+Yz~R5tV_`ko^V)c
z!jYR1jz=EV-t@kc$*S{8>Za4T;(hLN&w`zlm265BH{Lp~bGWN%s(H_*8IK>fKT)`l
ztmSGVw}U4=@IalVOJw5*$rmyzeR2saUiV6H@K<ZIF+E=^ArVo@t{&*|!i6#Ysj8C*
zuT_$fOT{S$<z03uECM?9jZFbsR!<{yoJ?xl+&Qb*nYCwpIKsV#KP<;VfawvN^BS(X
z@+^-M?YPeey_lHLJXx}tZ<#7vV{gR#5D&L7<~c241(7E%%(7U0Ba;2PyP|pHfs2cq
zuL?$g<#?{hCU&1yRCz_iNr^;O)x}EOya#iCoYpj3AbQf7#n5W*dBrmw^$c?)*|@8v
zrT4zN``mNws=xm-@2)PJRT$lWyZDIpgEz8YRyF_HvvUUDtIzKoN}cVm9}cYFy)(p}
zjrl^H^@<sLu4>AESIFcNd@%F<gW0q1>aD*z@%6dSjjQVZzAcYf&wPSeEQ49CNB`Wp
zzW0ZWGR+<>UvtzqHDa~wp^%o;Yi*|%)bpJW>DcP1?3EgkY#OnvA++OIq_ORsFYH?v
ztyca0ciY<K$t*jn|9;$b*E;8SZtsE94(o5ZGF&~@wyLa<;Zn}kbz9dIgr(_Qa2Shj
z2;6F)%hq1Hx=-Qn*LADzU7fym*R}6uMNf9P^t}mJWS89K*(Y=A<i>`xveSYu$h<#z
zZcndEeT&8|Bb~~#7V}*rHXIh7n&^9F(l74~KlWsLiuIr9Q?bl)>kwLYf}2TbUHk^M
zb%zyi)K7MP)VI|_<^GExKHY@$I=8$lZKpRFTF<qao@klrdENDfLzJC`>Wv2~hnE<w
z`D*pc=(dWqYBhgZ*}Ix8w_5&OnVCKDV84U=o8rlRW^3v_-K9^zwCMlqbUb4N^Yp~#
z%PVA0Z(xb7`8U5N=fuyYCoHz7rN~TmPm`;TPsuy{Yt7}}C7<NKncYmye{Q<hciElW
zpKrV_IbwAqq~+_)49(*14IZ&GlO(5o$n;;wlg*S<-8N;%kIrMJ?B91SW$6@;5eSaz
zR=uaQvE`C;L{M(;@p@hrxzcdYz?a9)-K|-FD{tB1s#~2V$FKTdot?$5zav$?TZlR1
zyhnqZUP+Nj;citH#Zz1T(kC}q?Xk#I+*oBT^*=B-H>c#&>a~v6S;wv>em#9q`e*gW
zjk)U2?}uJ}{%q0S3+km$)o=fP_xNPR`#qJMXP-IG4_{Ckw~oQmVQWBJJ!@#7>!0i?
zQ3)57_CM=1_Sd{3YpHLXwK5=OYK84OUGc8EtxkrwW=o!2AE5Cox@(Kx^5sf74htn_
zc5i5Ly7(ia&DU?T?&ax9PnJ2!1~e?oIK5#?=@KW|fHhUYE1I|7T4p3$AbHht%F722
zjLTB3EPn8`eke})_)~d%!Hj49Gyl{-Q{JC_*QS@>Hmz{ynXbIE$zrEZtyz9DrQ0&=
z;PLC0SqC5Te@lt_mJ)M)a?HF9VjKSdd3|E-jT5(aKmWJ&;W_`azdj~z7m+v1KGvRF
zStGXL`;q5nIm?zV`Q7oc@(nkue*7BCHLu_P5UET(C(LhZryHzm+mTgVY7{TaI_v5B
z_G|U0Bi0ula_YHtFu!q8nu~S8HNEv=`io=auKl|FqW_{x&!w|pw)_g|J$Cq4kiVVZ
zzI^w$k$+$1*4w;^uc`j=^ZevzYyK^>l<sR=Kj#no*=YCTtzWy^9?Z^L{O7pq>3XM{
zOJc629UA}F)`wZQtjuiPGa>8*_evf8JFUIfGF}G>n$@fHKcD=3c4(GVsIQ;>AA=Xs
zxx0ATYE|!^J-fPduI}4iALr_}-kbi=vEGd5$Ds{Bt@56!m2K<ci+|!#Ug!E_my?>+
z)^#PX4JN;Q*=e=wTj1AS|FTV1@PFIZfAvh0bLd;s_fkG9#h;hD`{%}=dei;gqvFTo
z@5g4?W-hxF<6%54O<Ln@r^!~6<<}=nG?8C7``6RC);sf-?`M3nHtWIkgDaVZnM^IG
zE6isX**<AC%PzU;TmCVNY)?4Fa$cI*#LO5X<MxcjUUs@WD~pJTp@N~Mi7Bj>Gg7cL
zGBKadXvZqTYG`0$W-)zX1*3X>?+(_GDcRy?Jq=S#E}1IymP{`xSLWb2%)oq@hsU{j
z$&`}mQ%pQOwoek86r`kZS5fz=dDSc1=l`$&+IKYS!=3Bz_O7qBH#RVS@uK+TtpjTu
zy$m#(y8CB`%P6d0`F~2k_<_^f2hN^8-GBH@4uhM6L;XXGGj0kyv?bU?|I71MTGXH5
zYCIycM!>_>S3+dLGd9K#oD4r&j{bBxQd!CPXV0Fbdd))*9x<?Lmv7*8m@K`3t+^?t
zaK_Wbb8!V5=GrnzK40(7AU#3$fV!I6rytub9j<Y*urse+z~HOhVtay9QZR#+@x|eW
z1c5`Z<MnQ+ycOg~FO-wx=jYGURu9jUxbv=_^LKIsyF?=Y1?HVi58f$AA6P$$F)GY&
zfxY+RV~K1MH=1Mr3%od-BPbVEAi%)saKJ&}ifHB|wylf@8Be@ms14<9*k;V}t9{ck
zd9HrOdNcL|$IpJ>zT19ny(N=#y>v8Vqk($5_6l){EcOko&JGN@s=RqE>W>T$aAke=
zzR2~cp3C`G^v>u;#jtB0t@l?(Gfqh<WehvP^?%KIQ4V%%<(QqZ2Pedve)?0?oU>W!
ziksZCCoD}$F@<$cmov0AH=Nj4{qc`wjJw7e=2xGupA_TSy76ylTkmY+enpWtkJy4j
ze+090KK#>svr&LSG0reCQPGa!1S`WQmRq0ya3wr=%2WSK_Ybdf_J_}fZI;YA6H^=h
z9N4DtL|#TdT)SL=fw7$V=g&XuAKX`$v9oL7mFQrIXnu1bU{3uW<-`eZ<<p=1d6?ke
zAgMp8u7=@WynVg>Ol8S5=4Pio{{sKpCdpMsmImvZp0oG<7p<Yr{+Z=R!N+dK9Y<O!
z8Ea~44lxJ{DmK*L-~abTMC1Q6kLz<n7j83XxFP>i>GzlLQ}61F8s45~O=SObd%76U
z$ryo#xAKeZAB#R>RjU8^*Z%U~?I-`spRTX`xnJn-eo4)pjtcvq=G1HasecmYm(X#2
zzLdwaU5XQ;7jQbiWBRgx)v*QkVd26l%w@&D)`y5Dw%%cjTp>H@VoZHa)15s{^$!xl
zRX3=gaAWUbxb^?wEc=4P@xR#^ogJ+V!auB+X3IQ!`nSAf(aDCs6VXRRJ<r}(5-4i_
zCmSxv)pGMslv$l(VuPqm-qY6RIi{afSUx;-&RfcR;<NcoMw>eU5=@y)4%c3=Z)iPO
zSjQXY!gFBpU+!PELQhyfDAXRPx5-(fC@?|ykv!vl`zCv~-_u<j9{8W!pJ=BdT)Ad#
zL*F_9?eO3A32_hO4gS<K)TuCRXKMN<+TS1k!2gGR-bCF;j7<klJiGDtc*FbrgZq6a
z%zf-=^}jUrPjjb&q5lSLCeEgbSAKJg3$uQ>;gn$TV}DI|=iknMw+-!$7TsMREnm;V
zzH`Ule(|~#7mlKg|85f(2ur+r_N!k?sGwQlz_}BF|K`q6Xkh2s^!x9rpZ?DoY|foX
zJCHNM{N4HvvwH6dvZZZ1cK*A)Q(==(x`l-2>w2{&9**sse(ue#Z}u>?I3dRLsibss
z8SCHk5fe>!H%;7~_;voH2|AApo15zIveYm7U;jw?0xzGt+K=Cl9438T|M|T+BgYd?
zrblOd4>t%Y^1XMurMEhDrR|Pu_K7;W<t|5T-|~t(Z8-Df*NyCiG!6e9Cv3M@dK*qz
zWgIPKW%t(mY+-@rqn~e_!yY7cdGRs1ZY&Rd*P)&N;P^>)Yk|4EJ*V<QR7{hmzA%WJ
zKJCFy$z785*^54YIqN-9ukq}u-lp4p*L{OG#x@8qcrj;!Vyl#(?(Dl8yMMjXWWH>a
z^x>uPA&I0Nk+Wtuu6p=F_my_Rnbw$Sk*ECYLpRU(a<H|vKeBf3N~YsKU)>Eol<(}R
zAz!uHFoj?BOYo#)=_^flE!uE`bMEQsYR3(O#H?C3=`6ApkK9u~@67w`-uL1KtG8dC
z#9y=EZ_<u~YsJ(|bf@0kTH%wtb6VzyX7>I?nu>@16_#pEmMNafd+KMxt;DGeD$Awk
z_V6_X-ZuOnTr3n8Q}i)}`K!0H$g}PQ#_nFjuG7yiN`9>Q^Xz1hz{P+0`A=F(6-v%I
zZ#x#Br!tvQCFG2X)vAmro_fC1dCvWE#q;;RWSu_yg1VFc_E~n@c*|O456<Ar@Kk4d
z>~qVwth(%xbZF~2dtu2!4KC%ZE9nVyr@h&DbK~THRhBnjSgn;kCA7>aX>)SVMmHvw
zN;Vf`HmTVfnNc_VkH(*3^AUP9*+Op0rLek{0&?f3a%D~O661YPYiM6q;_p~ru0L%<
z+SkUs>;1pQ3a@=omaEg@{yK**`1kXpQERd|4q6l(&bxDV+MUat2b3qiJSwx(+PU6)
z(j@WoMLCPtC!aI(f6ZU)lahVdS5eS&uJFIr)AHLgZ~OjE%D8l||842^&1(5otFFY)
zT`WH_f?uoqyK$R{(<$ks)~F}qzdV$A&es20V{*%H_J#+shqv)Aw=ej4Mo)$1I@4U;
zZLhZS&0T*w=7|Wy5tcQZ^^dZI-Opm%(D8G@<2LD^+7IS-3O$bOy~_U4-+5=?n_TIF
zYYLZM#h>_8es)HjsjJY{I8AH$x#gF2CTzKK;lqlr)y(=AxSFT9tiM~zvajy3;YG23
zFI2f-uc^1J*tk10?~T)1fh9M41pkE;to)&}rBma7=9?=8`#Sp`O+2Rif0b(e=jQEa
zml{k>k(aS6I?s8ko!NTL+}yk=`_>xlIsI8XS+^=`FVE2>j~D&@^6ZA^mCM=FmRvRA
z*n7!;Q~EzCmlajtYNnQW-Mn_c`(EF#!ZybbPxQ|+y0(6f&8d%2G<mlzcte8U?Z7Ub
zvv+HMMeXPAFyWn$Y&hrRgSD;u<Bqmf&J2Db^)S7lu%l|`w*xLb&99nQluv%Y&Rp}{
zmyUNjf|HL4y_|da{^ehHQ*OvjRkUd9_EeLXc$W6_$GUlQU;c{ZT%$eJ;ld<qKNs7J
z+A9pX)dV=Tj%`wn%@0?}s+Zg+q1$)&;mPehc06WHSC^gJy*=f<sz>=%wTs>=saHLC
zYimDQEXm)xW6xvB<e&X*Pk25R?*04wUDc<Pn_FK*?&A7pG3Cc(qiOw{f1hmI#Bocu
z^W>tnxr(zlt(tBnwjy=wOSxi66<4!W%v$&Qat?4eCY*n5vFk+R0o%Wh&azjd>Z9eq
zPQ2v5E=0eO-_CYz*6G{NZx;U-u+Exxy~fu2`jUfd=BjU=y-rAGmWR&H6^Er3e@n}_
zci*<|RiS*a?BczN8<%~_e7o*T(IVsHB^@2s|9Ey@*~2$~_5D>wj*EO6!<r@>o#;^1
za<FRcid=7vhEv|#HFS1F&bD2`x4tPnr6{?nUh=<cS%*>H!O*68-=!x_7QUT3e}f^n
z66^2v%O_?3w0rqdyXd5|_2s(o_rITQiv5`z`P6@pSokX4-`eWhsb?BX7Im5iXbFm6
zOE}eA{pz84Q{SziC%?;|8eMK{XqmKr!f|dZgQMZyPo(=+%)e~;!F5B-g){pM65hnd
znD(8?^R=sQ-pUqv#=vxw%i8%evxPgICM92&ik%(l<Yf2Z$l5g#8`2FV)_iA)csO@~
zUbxJe-m7|(S+~75e&%^3Pxbze$OSLlADrNlUCw>lQ}FEb-OkT1^M-A_x9s?}o^6Kv
zWcF*Q8a_Yx<H*zZ&xP&onJY{-o_XkJml|_V{rhbq8K#eTWM|aJubutJ>}hb@@=&Rk
zqKxxzel5=Vts&iT$!7DKPzSLs+u{<xq~<QM-*I`B$>BdG-c_#*^<MqkXsX0NX-1mA
zhRpw9>pOc-Z<27%uig=+<0qfcxNP(J1+Qxw|0?$VS|q7gbMc$wq7BzfQde)zKU+J^
z?~LH}ZjH7zajFMTM>csSCe){iPI%$4^ZayEwYnwZNpTw|WWHUiqkr~<%oFY?jV}o|
zR(bwZk+BU~v3&E<Ef;U-{M-E3__srK&!fdR*E&gG>w5RqFKgX1wmbcQG;FTyWq9`9
zur9H9?v=pJ@h1!Cw#9|bych8GN%n*8zJ2y{yV>~WUg<w1cWz;rOIp?nk-EIV|MgW>
zmnNK@SJw7&(pgJm{+d@)@BCi5)j<8T9AD?sX9ZW@7VFK7@`+1Q?upL2c6rUkSsOnG
zwbY$-U~KID;?&EjX~h}+;qrs&w&HzJ$G-aCf3JPkEAQmbtIKk%ubnGT)_eJObL~v2
ztq<m>sy%U?x_9T@Vy;ZrPASD3Z9lA753AX~tDnjh^lIJq3Hx|Yey;L;G+W~L(Yf<}
zO!({?<H#55KPk!9;MwQhmRnfP?z<~FZ~OBtDZ4vvPR}scTF`UBQugPr-14=}zHX_B
z_IDQ9?qNPNC+Bn3KAXr-JH7{c&e=EnYEJf9x8VEJm8N=YDJVI<+IHm_|6cKjmeYO*
zT|d=hw<fj8xqhMAtOliReqHaL%(~$0l|OI&R^H-!!cupaDegNf$o2ijFP5DgbvmE5
z-dUTw1kHREZ#wtHH~sd|gx2eIG0W!UPKx!;`gftPq2x->iaXC{E|g%Y+SQlw?DD=V
zoex%=W^MFJ?#}793b2vc-x7EscGZWC-3e2VG)XQ#zKg$kMnz_N{d=a@r*`))IXL&o
z5y5-vvlrFw-8Z+@Kc~*BLNdjLz3jTQ<=6ZrdcnIy_-~)&4>~sgi2S*I`6qX%Kdaqe
zdRHN)?&AFA>>n4Y?laf@QfJsRE!jR)XBEGl)zV*D{LcbXcdW1Td-QU`^+UaXB_3Z^
zU2Yox^~>(}JMONUDZtw692;y>-*}*#O;%6i&6c-2=7tu%$^0$E){))c|6Isk%U#8w
z%Q^5x;40r6-<cwOy83t4+!S7BZK9f!Z{4=BpwE1R*p!pM`6kZaxn&*mcYD#gDsF4B
z-nXIOFKmtOC_DG)!DfYn{Ez1K@zmR1+8W)wI#J}~qc4xo&-PZ|(=M=D(5CoVdv*Pt
z9@q1aqr7#sOQjE*{0qrG_x^l!@(VUY!&u>f);&9Xo02bPsM&>Xs=vSBr1^>4?wVHH
z9|oU4S+1im-&YdxLI3>mMQxv|CQsK4zod70w~NWKcTrQNUgsHCxBCRG*qc4iRCB?p
z_d*UUsy==z+4InCevQb*>}fw%G?+y^ocQSZf_j$p=US?LpC)adb=2g$^Nw#z&T@pX
z{94eE!E`oEXU5{Ls`D;?)+B%StdDN9IKJGKH!Avy|HUPDlQ?z4IQfL;Y_VIic2DAs
zH_7oS!f$r1zG_*<<a=dz!1G?Ih`rB!{M%A9_ispc=0E2yf5lI7i>hGh^5bW-dvqSI
zek&)JAFa_)@11wHtM5pxYJ7d}qxVTa{uNv_cyr2JSoNvkF@D9x6Jl={9zG!}KG$J?
z_iWDimGc87Pn<W7b-K0B>aIleI?1H_-7k~=T)QT0S&(7*c1|j@T)6!|g{Q9r&gr|T
z*bAsksx)hzT`(gkbiS3h^NaI)&n^ye^0mESb7c1XrVFQ|@;d8Xo~AAN$nfx1aA4V^
z*DOz(t}UB8r=S1Ip@dSStESqTjrO|zWhv@^Si8bYJhxjvebM6=Zy?*L`E2`yqm~{I
z_ZUrQo07lx+s7U8sh$cd1%WF{63lN#YX6ARtIgIe_TRQ-PQ}i<Pw&3CD8Tsl((j{%
z2dmC_?Ap+@V<YoEFWKm>^Yu4G)%%x!tuAiy55N8H@{>c{U1uMO+wHLb-*!7JzF5|`
z?$*oql?%^&F>be7Qjk97w*LCcCkG3Hk~x1~zsR@L|E1@FSF?J4C}?(Vm(P(r@%~~l
z&(`UM$scm6627>+=-js9<e9U3PklJXY_|1uN%qDSR!h_L_f#ew`fyQG@=I+%T0M(X
zTmGNPg@-)iQeS`C`Xb%^)5;&eC&f*VjLNGB^PFMbs`_^C9oO3S6&!1K9hz6b@!$H8
zntNpEXM?h$v))Yq+5Z0No$nv~Y{AzM$BPmYFE<A3sLF^LZu$Fhjk$xQNRw!n^t5A)
z@h6u~yw`N4n{QX)s=rx}=35u1&hd2kvz?K*ep03Wo`|{MVpK2lZf8C^M^eW+pu6<;
zzBy|*ie;v1U6<9n?_b^2e=GXa%e~E&vW8z=4m|0Mnz#MSoI`aDQ?5NdUH$f2fX%H8
zdGVsx%X9oCp1W9Xi!0@+Dbo2Uw4-IMOWdLwR+c#~E7p`fJgQZ(#w320ILm`=!N(`Q
zyY=LkhT4RBKC!a>pE%|$j`34}l%`}Fb#KdZr<A$X)<%|AMl-qJg-u)}&zL*=)4Ek0
z(N8b-2B-A3`>kV*o4?%ZvUADmBH>c=OUf74PWSexoa6uQ>ij2{Bvf{lX!Le3ioWN2
zQb@JLsob-~KKb97@}T~Yi65s;nDgq)F^&?eI8)|sp8iQ!-`1z?{dw+`W7+E@p@ahd
zs-6i;=5-a>JUci^?`ip>l=E^@TWxdK-SUr%JGuW$)sbycU+4Vn_LnqGG<2S=7c0iE
z-~D=0`sbBzm&I779~Jp?b>X8+3ni2ObkE&p<-6sb^fK*b<w5)__pzQ$@qB;d1P8-S
z&a<qiRs?-0UzV{fV1}j1-};b@T`Mnb=iaRPB=?@q^1Jd4*4u-_KHHY;I2)+6Na+m^
z`@WK;t}5@fH^;3xVeg$;nC4!8x~{KqdaCDq$0_IIjE`QcnHm}K-ywK2>+*eOEa#V=
zpSyHn)(5A$%vcBRrH+TMY`u2a;rLngd1tn+P2KV<Nd32{`t{e_msYl|56Yf$uAWD~
zR3iGSyOXo!>Dy}a${JiemQ<d;IqCey17=sQNJ^ComG#X?lJB@VZ&lGzSI2qb^JG12
z<}2O3GeP!nkl^~&XJYGCIc1-n9<l$@s!Q)LKM}mMKK)~fO|#H{LqEOAK_{P!h_>!b
zR@TaVp6s*!<CSOaR^4a3g4R05{;e%alz3iT|Ge_ltIby5w(4(rb!OIuP<Gw&L(ES$
z_VJw9Bd(sa(R`z-dhn!0c}(wZ#a;GI75%yFYQ*il>Ebiy{eGF4EWnaj_pv@q$YIN(
zqwh0j=a(`S2MY^Uy!GD^T>fU?p39Z5*4yR3nY`3;r-p*9uypLI%A9}BcV+}VQk-aA
zd&m3Gmfvdi+Ctx*pS%#>pxou_k+idPTBz!hVhJ9uLyUL$rD9KhyKs*8>~*bX;U&j>
zmEOzUQRBF}x1XnhJws_;g=c7M(Hgd>(~C>@Y&ekZ{w3)2q3llzYj~&cbv<dW{(auu
zxHHdqE@ZGQddK$srOKub1p$^7&+|^*6M9wF6z_Lz@k<q{yEp13w`Z%a+xJR+dCAW0
z{IYlFoZP=+>bnr`yr-T4Ng`%X);+7;)Y({d>St(dxlzmXNreTQYGSg?KkR<}?NQwZ
zb)T~}mCJe(Z#;I3sBXOdKD3M>sr*EI#|w@78L2C_OxxVFV#CHqZ+}ZiO*|3he0@RB
zsh5}R)}Q@)aGr}#^Bj%Jh0^t@JMMNVy74c(U=W-WktNcdUz$^!u5zvW3G35MTO%*N
zxgxt~j~0*b_phpE>_skxA6^MDy#JkH_vLrpvY#E5>-Ao3Fg)u0_GZPZ0`;1AE6fe^
z`!{?&V|C*ArG%(SeEnt{-bFN<Rp0t?Z_=4Z`=@_ctZq^D)93Pk(}G#PHDV&s%JsGX
zj7p{+F^QevXM0DFXYZEs)eBaaOm1*d(>lFCiPPX{R_VDDcb32V9TR@{ee}QMSCh?K
zFRVGjQL|roTElI*K*M*pUp~6#o2^xDsjz&1lKOI!cMSo77Thjxt}Kasep2GfJCW$n
z%;1<^+!IZt+ZX1quw{C4xctHNawF|OVe521)vH{%_~X<@gZ*1%OHVB6GW~IvF;_5B
zj4^ZilEja@CD&F4^3LczyyrE~K8C~_!gs#7UkSM%d`xhS+DWq|NprfCOx>fhB_dv$
z1unAN`|Nn2-`Vw*hcx8B)T*D!o7<_VyJca~@|v$ArXr6sPyLkL%YJ6&lM?H>im@Br
zpKtA$WYUvVzvZ}NyF<>?AG*oU*mt|^JaIixd2g{5yWw)7BC%Z?Z!PU)vbVB)BFAxs
zZMS3e#Tio5Lw<iKuX`4emE7=dUj4C!{>fGQzu27U_wEUqzI=H>>}D~M3A(nw7uF}F
zFWU7_PWIuvzf!X*Qzm{5RR8w2?6u#{r+oXL{CK*2ik)A{AzPMu-|)z-H#5R~EtW>z
zi(R?RhjDY-o~#Rx%;XlWsJkYsY*F$`GSs;L>#K_I8<$NKda1Df!g)bI_p7CK$s5(T
zY1S?6WjM6)^t`rUMwbZZpXaC9v~RkwC@=olqg}n1n|EZ+ne&g)_>yO@$8VV{GnOA&
zvh~eo14TjiOG|ejaX<5Kh8Ac2`2e}_ioPH7c7^S%dMCar#anBo@Y;2)XYc*rk{|zP
z!Of70o=2)(mmeQ3tgh8d4t^9-vqjL9>)Nqb-Ht0KZCx)H^?H5wT7}d{f<Du4IeA-U
zE6UxSmMqw{XClw5ZYIHG=N_@wkL};YygO2nog@1DhRPhtrSI5s8;$SG>^rsYcX0hD
z=iQB~C*HVazwf=By4(@1GCz;cnNeDSqH5Fq1NTpLfBbPp-P<n$oBzCC@GpIt*WK)0
zg_XUR|4ja&W^~?!|4qKE>lXc~v&4+wZ+@^hfhRK9r{<I9mF<p?EUg^%*ZnsAtonDl
z7W3xX2PSPl69qU-Ck0wwop4IAYNd?w5$#VL59{Aqs=iBGEbad+?N#c}4|5xNlap>r
zXP-OEe{12h%@efF=dU>=cYO6Bwf9drtwpcA++wI{-*Pi;)6J6=Gj5AXF6A$s`S!>D
z8@-Q$e{J+lcT~`R5Z8Ej|Dw4s?E+mdAE-YsD}MZU*4+h}AG12j^Bykzy7=>%>a>~n
z;udoT`@B%t*HvG6TytTFwC&Bk&vW+br`9}L@~&Fa{-q69e07m%{MMJMn=k&}e6!#u
z*X!^5MRtX%{A#q*be|MgbWLfg0GrtP8`Bp5Hd>lEpMUbk9XX#aJimSSTG_mXCACg>
z6MR1JPbjsP_@bIxVWeMhHd@^G-raA<l2#dYHq~m)J-s~8dfU#Z>iS<@^8?l|S>1Qw
z^W$rJVzoQ+^slXKpK~|jkJs(B|8ld-)E@gts$Bl{;!gCUooc>UvtP}8bmlL=v$f#4
z4?^y~cibd-X6gx?{vFf!#Khx!0*llCq{Zzs%?jq%b{~&i|G%j4U9F@tYyDnnzgbEe
zjxQ!{PG5Ix>y0lnrgFVb^ez4vS$}K0@9ToQ<sr-6ul^EvB-4Jc*g-~hs`)Z&Rj!9g
z2TpOP<q4I(PmkjNtmJH#AEtjoq})J$eN)d5^^PSbClgiP@b6^0+VI!yKGzZT6+F*>
z9G^Xp=R@oH8lM!E7gtR4PV!#cXDi(={^Y{9eR&Vr%;s7!Og=S#(;c1KxpQSzJMZ4E
zpLk1D(XYyDVqAIM&yN|;H?9#V2`Kf{G@7aI{VUDFs8;g)ol{eH`*lC}t6L>1D)0F3
zYuMAJn*`P`m+!b1#iJcMf6`O;FxG2j3h%A<JdWNOWjNQ%;m_X#!69q6pSN17%M!`I
zY1<la_9*w4_cwQ~_P6<7z}6=<VaXArnz`HmbXM1|o8%T-D|u69uYjafeUba?$(Ovp
z9ewY&^zum&M(<x@+jl4%McmscGJo;xyZ3Jxrt{W)GCdu#d%+Ana}}eD%Z|Ebt`g=r
zl9;69U;UukCCPvJve$j8$GyJ3F^zh=y#37KL$TTKS+=dZa>FpS`OS&@g;FK5?o;;K
zYwUB$<d*GebFQDx5oY>LXzOMBjH9Y2uV`20uR1W(EB8iCw4U9S;)II!de?@jRu>8k
zmme~YjySda{i($@YON30(yqSQ@=3fRs3YKHO~!(&+LLxMd~t64dL`<0k(YXoee<h>
z1y>l~&RuiP_*3%=+qmbfvv%8d7WBFw$)7qs{`Tvc6^6Dmj%}G%Uw`fBVJ)L(w=|PO
z`w~3<Z~VCK&er$r?1!0|0~bHNv-;50(o;^ws}f2XcYbdDcYbC|`n!MWBK#LxLNk}W
zkbk6cCcJNJN8Ro`@5-|`-maYgePiImO9x&bGM)9Tx<UEvc8818o>t_!q)hjD<-Sad
zt#5^Ya{h_q;j;rzpWQa;cF)>Np7qRUO+E)zZv3c!T~6%vFS{9`8H-oDOMhf)6M4Y8
zr}FyRIr%A%AE!wh+rMn<3Vo){^4&Omul>)8>1%X1e5}0H&Y5~Rx9{H76<5};y%x;a
z937r=*!8b>!m5jNW%;(9*Uo<)RIlgB8)qQ+D`w`4nvkYVJ8u8DWoKbBafN?X1K(=B
z`lqG3JC^S@NmP8J70I4s)&E5&WABDD&-dm#STvqeUtZTQraSeI_M@-dC*Lirp5=e;
zzRi_>U9rf&a(W$Ze5<bNxXgSaTfO;4)AT3p$?wlBR4zYew6SnO_`QV>f_5sWwN-rJ
z_<Q#BiA^y|AMfy$`P=U0Gpt+6vf$$qlQ&TvKPpewx6aNh=z2Kk=%H1;=U$qq*4C_K
ziM+ce^YfZz>`!{R?=N+YzuuDWb45Y$oKo9S_dWNPPBX1tz4`&e_A?<`o4$4W2H33q
z-F;4TLEd9!X`>poWw*_ee@n7Aah=I<b`iS8%{|%Tw)fc?vDzk;8`<WBUtZ#SF+c6s
zzP;=h>m{e1cRpKxZ{l+i;}7p%eDi<Y!Kr2~eelzLm9vto&MM3+h|2q*F<;@ZOJ%zD
zqQ}Y46Dt<$t!DpZb4+-S-L?w-!*7>62Ky~vAK#i4z3qWXceO=8xbupwUSX~uJ@#Er
z*}w4Y`;%VNUToj%mMATpbwog?Ak<;Q*A9td@$a*q@Ydc;c2>M&b*TQs--SyAwcq~E
ztFkwod|_XE$P!7(<ZZ%H0V^JCm)W?yvFpO;Up*(yFTGH-dOwBhRO5sj=e++vd*}J(
z-^~mA&h?cqOjg-=q+BiXv-{OW%g(J%RL#_nF*?2a-P#{D%2hMouQw>kSt|eAM(d;Q
z=6w;9U3GSr)rHyaiCQr2lp^Q5<3{zi-%?)k{@UK%KliGv<rRVY!~EP5MGS`XZ@2B4
zI7@#<TExYJ`(zAzyzYwFhF`LNwwBrAI)A8BQgzOx`H?>Q^(Qa4TA%r~{@z~E?&>%0
z^-ioOqxeo8Tz|OjlEKs?+aGD~|F*uC^QGzYmhc;)Pd{+4Q;)r1ab<U`XZeq7&lsOe
zq}A)ZYnQ%~-G4bh@y(+k>GOx}zj*p~^nF>`dojF7ApUV{aKC@m)bpu#9G|A2Q*U_J
zmnj^wvN||QT#e~2$6qGC^(=mw?nciq-CL1Zb^k!Ja7F6mr7veMe0%D7qo|{%$c661
zdskm(|2n5u&u7k?;y>mA>mFIXSC%)bbg5cXR(W}MJ-dkQhjx>{B|dd3TT=7p^6j+o
z-xau&>u{IswHC`&yRPtW+x~!a(srgjJ!egB6@Kf`E8SQeSi`t~R(~sZyZ)}ENkz<s
znzJqVh0mQjzN7I?=F!82i%!||dg(MRjJ<Ge=5~AE=jT+vNd+`3BzGURU%Y(%(+x*Y
zn>_LNh`L>~q4!q3=wjoZswI-&?#*8ywxV;^`itkbe82u8^2^lBnmZ9;9}bnO9FbSO
zwj}%HhmwO#dtx3%M~L0Zc<#hpBa#%Vck+GflNgidMY&HH^lpZiEj{TZyQ`#G`BL<H
z=67|=4$HCai#&1qj_Q(ARZHtq?;HQVlXk%A2n+vVj;VJzVjVWFk@BkN{2u<Y-mW;V
zS7?=nik`FB|JK+Sn~lHj*(d%mrFB!T)T!bi-}i5Q?#-XU5*@{{=+1&2Zp@;)FLV4a
zx^U#cHfC9usXc=4S4}*6c;*eo@V>mf>NiLIT#V1&IlrsN&S_@)xqbI%%zT?{d!#hJ
zqjQ_@3<qt`Hl`I4V*SguEI4HUtfBsq@5i4Tt<Jiio~t(h_-@XA*}ZL?ZeJLe&%Ah?
z^}(w>3$HJe&#idgx$d@daC=^N<`vWLTi(1744>l7JISP?<Lvsb?Gxw8w`yImxFQ_4
zuu`bKu1|K>vy=ZCDh>FzP1@BOmgZiPG?8~pe_45m*{{6o-#(mQw*9`zr>jNGQtuK|
zF4S|(TFJim)~u`##o|*1mb?h-mEsimDQP2Gzs>S)*1?DM>!y5Cwm<RW&NZVQKeB^)
z?td*mCsF^m%lGs7fMP4X8pfNGHBxW37yC?{`bYlcd6yk#XZD=i6;}G?_VH`wouXzj
zDIec&v5ZhX&lh%o<GS<z6Beh{MulySSGYfG=89)0tm+rPE^>Cd7k(#vrL-R-hmp+F
z%lmI9Zr0?NT>m67Gw4I_3C4hlvCCaw%UJw4rZP<?d!bNQ_sW`nNzY9!_Onzk9F^n0
zR+fJ5)-KNj$0jYf*>!fo(++9PWR1{uF6MeZDN0)`R~gJu?AUp7V)$0Ic?%RH*roWn
zCg}ZM9>rR#6fgFu-gWWh%C~O31)DwYzd6Qy`(fSmi7Ca&zYSl$YFlg8?kX%X?f1WZ
z%JFLVZ*4VlJ5k6o-{9kJxr0Ze-%sZ{E+3P`YkH3(kXM4q-u`UqQf0xbt33Wb(|yhs
zf7?U&@W->VPYjGi51;RwT@m{8@Kcjb)#^KXH0PguEF&Im|1S9DJfS!Bw*HMDZ(aZ0
z&G1U~@0lGr8+Si>e^Bz4+{YJ}of+h}zfYg*tNYjd>a#P+-|v+^_?^6}z5997hRY>g
zI@uSwWi8LoKC`u;Wqs9G-=_@*wYlfcoqsMX{M|!#_4#)mP4TQ6;ws_lE7C7m&Nsh1
zrQgxT{FJ#yae(rRbS~TPU+>-54Na~W`ms}cs>s7vmyR4;9Xz!&#rN{-va?4_H!L_F
zBpYzsuJ4DL{l9bjUEa-o*&O6??j~OVYjnpS&&gkoEZ)0o?P`n5?;KJ$Tn-Ui+2{E3
zg+;RNtJ6Wxcivz)Y97|&99>>f_@nH7WV)5iar<7&d8Ntj*B736+~ZyMdHV$hs~YyN
z28s2v=6*jn{aH)G`_p;*%J};uZaw<jwk$zT=26?isHf#gAqKOvMVi0gdwXu9U~GuO
zU+L=;*3OyLXLNXpoM}_qOBsQaa-S+%3%_og$Q8WeZvWH*`3=u6J61$rJG}h}-`3p+
zTXNoW_t@BkocD2$7tppgmDra5me2eBf&R*_eLonF@2oeH*giwCbmGdG^`eCz65PrH
z0xXZFly{w*84;OgUS3y`kk_6Y%l_5y`KRX@Ig2*;b8OB_bY89hu&OviXFbpId8+Le
zk!lwwRu%5my)B(|=WS2-?v|o#L%#Y)PfzBvsx$^4U1$ID>*`lWpT&xLYHfZJ{z}s7
z+h3jc_MyR@S6>L!Z#1rDe5041v+=6aOUt{vyAJQEEq!%v!Q@S0ZApI)OuKn`y_WmE
zW&gEq?TBuPZ#-6XOyXYcFK6MkZE2}WlXFVfc29o8{k)0ka=-cWlTwFuG=zCNt=W!G
zotE(B{QHzPwd?b%?iZf@aHfDij?ZGPnEz6)SM{-48!lG6Oc48h$l0{METLh4@G|YD
zMP*(8IsaT(vp;s~9PTfPM<b>g<*h!leO2F#KU=HTq<lDQbs}DOvT;$!=U)$!TlTx&
zUsb%>EH&}cImJ7fp07SFWh?oYyz>5o<trE8IP?9h`m>dbx@}anmA>uHPGFg<QhvHQ
zoXebfk48lNrep8dy=IXQ-Fq&2zpQ_~Q8f3xTl3d#K3tG9|Df=?8PgQ%MSAnr_Ve;<
zi#9Mkd&~Kxv!HS9VJ$PA?dz@MS&lyBZrPvzci;Z-3(w|l*wCAKb4~8P@Kv*_PHIf(
z6IgIeXIV>IwMCWx2^X6m6YbxWiC#Uo<nq2vvm<!>94b~$$dUi<E1zlgHD-yu@xdU`
z)idi;6l9k#{4j6-@t|cjGHw4d#221oFLFpdYuKTw85S_(`OciEJ^qI0-uvg<&Rcym
zo15#l+e5!g7HL;zH>S^9*_!u4aAB0-Vv+al+2>u&H%a8!>Pyw7ta<)**>(Rv6%RR|
zsb5)g&GoA07Y5HuiVip5Jbb-!B1dS=j`smazE-b~3$Hgcm|VMjRrrcR1NA6N?K`!c
zEXD#W64d@JSoHVe+~Y_0suxTuub1wL_PD;`oTF%YZMe13mD_J}ntuD<|Gb0sxsJJK
zdxd6KFOz}=fAT*+gKwI5Q}?z{?0!}nv2fAML+1{<97vwKH^=8=UCGQHEKjx<Z7%K4
zus2~X=}%1lntmm)KD_EpZN~4l8k*ZvnPV2aZU6UJ`kwTqo=4wqPqxr2Zj;dbSGHOA
z!pT@3(NJD9=k{q`W*bzz=VoVY$uv)neBRZ##qOC7=beItT{($oOE&g&UzwX06L=$U
zofGeCvprLHv+^|rCR%n`Y&~54VcFXYafv_qrn%@X-|U=H@Gg6fU3<ORi5`)y<w3XA
zj4khnT%F#sa<)-@=+O%T@Ap*B70UQ(d+JD4jKRx~{b#%UrpG?0smxk>+**3Af%T=z
zm-~KC)wo>5S;6Z3_0Dq3rS49X%5I8;ttp=>7Z+ZnEq_Mi^_)MwX^zp$ea<z#Gn<rl
z`+#4hW5IE+Lw|VXjxKaFZa$<m%|zDQ>P_dm3woByHSK9fQ+}{7dA%jS-_<Dg>pbgO
zR}CIt+<Ib(ZGAw+##op0OMd)kJiob{VLEs%rkOc-#igL3g&7z0I(H)lBQtYD@ES`N
zV^agjy}zX)oE9O~@^0J{mkKD#Mn|Sk)>)`?^OR8X?rV|fdL|nhpH1Q{6cmiytn$`V
zB~`m~iAM5-tw($n13gvl<lL7mfBE~}_uBK7^DI9{-~ayqU)}%3%bq-0l<c<Tp`*6c
z)TPaC3wjvT?-b6m?Gt5K5U`>5l4w})=7a_dF_*<rk0KV-3nm<GV5p9fXt>6HAwzk~
zKEY!Q2NncKSX?|i@9dF@4`oc=I4oq?BKKak$Bo&g;{ekK1<6HR%9Rn@LWFo7-v2!8
zpK|$s7i%+*S`W*L|DEd?58QB(nkvL5;5f<PQj;5hvcnSwu?6e=E->gQPVix#b0cMr
zSwC~uTk+-}=~J0|S?dKI9RA*4^}pWmP5LGYfq7?{IvHkru}Cs#Gq9|YjbY55z-3e*
zvV+aPk>fz(4$Y~Y-+2=@zHswM@$lei@<~<B;4zxS;2h{6#O=8(SYS=SG&UxKWG0IS
zPj*g$J4`&P4JGqd++vVTVR1aOHQCvx;mm=+$`d+L41t^?W`Zpb6YK3c!*~}MXB60Q
z^c`3`C&OnNcO&D)NQPcUi^wQOm5xKFk8NaN>OIxce~=|Z#bUCD@`h%I9skx#aI*)_
zWZ>pW{aElp!G>LJZWDKN;lr>Jwk>XrXIoZ0ng8O}hE*vt%^r+1vui6?9oX9;@Ls|v
zPVuR~V?l|PYR=ke+opXrw>wgw)Fg7L{_OEC--Q+rni5niZ?k{6_I`g*fun%xoAgWn
zPi;(nn8216Vzh?o6~FkAElp02i-eCTu`sB}u&Ql;R{r$tRHi`3h$E)|8u+AIf4TEW
zGYB%R+;jQWU&$i&|2O2)C!AUKK;pjwLr~}c6yDR@j!9-devtAyZSmLdZ=<;7m(&Yo
zxXkmD*t?gZ@8E$}&coB$wtZ<RFtJHdk~kGTg@K`S!KH`-PKWf(N)HnaS}MzrImkO$
zu^lvixby#q1&k_Y3@LxVEcpJ4(WAqwX@!7x&e`AddFDRwO-MZaqF(#h;yr1L>u(t(
zvx#t3EPSASa&qR|pFi(Eub*@4&KxnWme+3_>lv*im}6(GVocbPp8upiP3Q&>+a9rO
zdB%u6``>IeWjh!!LE+AQcjY(T*0W~MKfX)3c;n3MmsbT7*R0lVKG>sUKg)E>-NN}_
zRNjU>-sSl8X}X-8*}wURS1*oRUHs8$Rp!6<LEZ)pr4gacAAg;>bxZ91`rSr5zR7p*
zvRf8v+84Q@UTsU1|EJl{m*3mQotLps+-3HA3-OoMUp`!FQ4c$~Iq&dZbFo-EJ#V%3
zE90dj+ZML!`)n^(f4l8Wjm;5P?<@2Dc5axxvE2HL#o^>tIR)lV^Ioz{n4-FUyYbgY
zch%K`4<5~!A71P|sW`oPnXIdn&a}RW8Flv~SibUD$<@8n(vGZu9<i{~_PFAnqu<z9
zKIhe3V$S2*-DBf$-0#^guG7KEXMdcpsQR*Y$G64H4W+x{`ufWat0e9Dep$7}2Fu+u
z&z8LM)hy<M;8j(jzRs+&x|DN`TBl^R)OUXKpZ5E?+KnYg-yEJA`6+1AmMzhjyG*aV
zXFj~_{pGcy8e6;S=Br)2s#Sk1{_f^I#^-!)+CHf6l3ph)(fwI_=EhS;?fd+*>?U%j
z+&ph>I5&BJ3ZKbcuWqX)>2iTd=eGI1@iUvjEcwbg?`^bqz}1?2#$hpQS2sP<o5|?X
z#+lyq*zL>RH*dT?o^@BfoXWo~!S)i{E1`K${h!r*$_zVQap&n*Tkj9D*B)%&RR6g<
z>(kS9$?7WhR};S^*~j~?urjGHkDnR3v2f|s?ySuY?~{I(IWJ1;NZ-O&9o{6eB+BM<
zz}=0LM0{-GDyo7R?l({Q^-e1B*}hF@`o0tv&)4SaY2C5<xvBZ`7hU{mPh+c$o^8)w
z9rpRz)uf*<FF(KiZHdYmJL5ff9=^_FKjX2teu0VdtVizIw%L9^_N`r^e`?N0i?HNN
zH+J#6i%E&?&2o%0zxwgX$`uplM<o^K?Ok%WCH3VKzsp~)&wIN}Df7VU%a<g>?_CW%
z9yg8g)-|p0AM>U?pC5K1+o9%8=G2-1=H+wBSO2-4R#oNr?!rd9S$_ZL@zwubHS>h@
zUH)}DizENk)w4{vtMcX1?70tiJ(<IBIqY55?f&1P%id{!J^I#b(dM)&_oc5&-?9BZ
zUvt6p*84O3IWv<21vV}?79)DA#d@l&$DMaZLZ!UF>{czgzH8A7cTc-~9o6c<60_ws
z9`5(P&vwb&c+Exn{?0GPoA*CnD!%W?v%Qv|AD%t?y!mEjNO`MjZ~aX{|L`^Qf9W-*
zT3^4r%Ump<)1%MWz5e9>W-Xywk6j;L_(m^!a`N7dFHC12&o8!2nDffO{nyS<>-x^V
z47=Q_y=*&sZO8s;8ac0mL@KxY-CrKLBDmy-Ytz-;D!;^{`ImP!ickL)7g@Fc@cc6`
z-g4LPJF2hrQ|KMTf0ODO+rlmD>Mw5Fb^56F%}?I9Oihbdo??-GX}o;jo9}m2;*y`_
z*;d+`6#h8zNU-|j%3CkrSDWA49+>l4+va9TL^Sv9(~<w{7DUGF{C4@k)iqKJuY29j
z=6si2*1y5)^sbdgp+7jUpYqq5asB<d@A4Cl)CmN?NjviQ+H>i}cA0-;`)@Vv(cI|z
zp#I?W+xIrTX$;Jr`hCX^<=Y!rPe^{vKCHLxQBkk>n$PB)p0A_h3`FFF|A=j~+nc}f
z9JBblh?=SsS3FcqZuU(SG`8(<Th5bPkz)7vW6H^!cU?`n*cgmE>$0Q!s_VD!l)cZl
z{<W&9r=8fm<Yf=%8HQ&R@gH?Q>&M%`a;`x5_OrG1IzmnrJG{emwe^2Qd|VpC+vB7B
zMC_}~lruLi#D(j>Jqn#EH~;?p3Vz4npWEh0e__6xXt+vf?m5L8wJow?t^2>8l75^z
z*;C(oYy0=xNtd5h?=!8~wq5Vs`3}>_9B=(jzga;M5<i}LHP-LUI{laB?Z5AF9E&Hi
z7g@Iiy?Wwy=SO{ds*&(6d++Jf#S{*+wchx(%Uss&tM~4AbyGJKcGOq%-`sgQ%HV6T
z^1jS3CQUwvUf76i*drXNxnXt1wY2lu`)gyS9BX)}7H>C8RO#!XcCn)S{bujaxou_&
z{ak)=@l%aocKnR4#~&Z5R$piJ?5L!)%2&VCl&t&y+xMr-re4oGRsY}RQN)$ieiM0(
z8l$2bcf^;MawS!NG*_M?<HuX)8*08|uTAxr$)EOKE7^BqQtLaXa~@6qcL+S(xja8=
z<@5eIEu~VY=D0L__ZX)B%$b>AEm9x6@y0$a!AAiNS1tBDS@wH%N>%FDi{1Sbo@xJ)
z>~1+N`1LpU`s|yEH!K%^YM*9Of9&|3lzz=QeeNzr&gnHucg}2*mc4rBhzVc6VNF}k
z>t8SZHZNbM#>FGnJKuc4y?13+M(3{ozM9BgA6js}foav*cYpT2Iq*qvHUsbS&_%V`
z1qav@FN*ptyRy@K`IjgAdY8C#6>DD;oi>Z-Y)$_H>lLPA%OXCDugU3J&ml8^HpkC;
zRb{S^3(vesSW$ZUxi9bSDbhmTJ*T(F=J%*<Iv;gSPWx=1g~;-J-86lLdp3S)J2<{^
zMR?nlWp_(>cvuy@T;t$cR^#GkR$2OHlE3wjHER0~YkkPjDcT*B*mh8RYJ}Icm@hG#
zL-t%>c=7Sqr=2V>?`(=`ayQK@mA-KDo~`P&j{4#Vr*>(H>+<`9|5zk#oMD{I7;1gJ
zOwT{g;`__JTLSkU4!UW+w`uRZmdaYKxX|L|$5z>hRsY|(bDits?=DiCDqr#4df@ej
zv)wW!Xku&frKV@x1&hkBsy@wS6j>^7_4jGyo_+HV7oKI3H_ZR;%BmkUX;!a~#jj(R
zq<{WAI{htEy>3nJ!s^>QRk{9z2tR!xZz#ujb=g}}BWCUMrW*vmx*btvecV&Ko8`zC
zj;R%C>-WsEzq%#J^Na6{m}iRnIHNn489mPU`|4IV_sVGxo;JxpU$6Ituh1*GJj=^`
z_OCg*mx5|vX3g#8)RI*Fw(p?X!_J^+{?k@3_D=Df_N>3^jk7?#`c-ewvyVTUid>i+
zE@vfs<k$+6J2pPMYOHg%^R0~D6H=G$=b|>>i(|>9(g$uui?5qCG6;(P+u1w6gj-?#
ztg}Yn+^qZ!4=od#!|PvmD$Ho!y~s>XPVqlwwnbhl?;}H|Jx}jnzjueqQT}_j7ngNy
z4=B0z?H$+Fr_70Wug4{t*3`e>tiM{o_xKymsrr0Iu10q)Y}F)POu3VU%fD{5|K<F^
zsWE<o@%7>h??jpmi*Fs53O1it{5*-Lu>RXQ)~&LgSJYO=&fzU{n!$gy`K*|brMp~)
zeyp{*cAimd>pFwz*r}hokK9?dKjNh7g9&|qg)$lyt@gR*X8iWs+ch)KyEUhNsri)f
zgWvucKRA&7r(f&nuF%ikw%0bEdo)>Gt}ezxGP&dHDJiE{vPQq6w(R=%@nGS`oBt*r
zPB-Dy<7a-SwC6M1c0X}RAvrb;>GZEQva3D|i`)>2$X^^a@5`Bl`qi`2UheC<zUy@P
ztdR66GiFWiy>|cY?70Q9nVKQz|E-yHtA1sD#G@pk6`}XUw%%DHeRTew|DleB@7|`y
zH|3>lJ-7ak?HrGNZ?5}&R5z>hpSC9U+=Q;FCtfYR8Z`YgYd7=X`EzR$rhPqUw_VYv
z=<kQV>?OJDT>mO9JiRw_QN%{kxgVl_HCArlv0L-|OXl?1wx&gel^gGfoLTuHyktT7
zJ@x2^g*O?!Hb38gTJn_p?bQLw!O31h?{f6|qi<x_O|sV2bgbU+KjZ#l#|MiKZC+q^
zQPDN?@t&2uQ=WWD^S#_Xh3{k{|No@)=$-`IxAC(NZo3Ta_d)jH2^v}&Aocq!Eg}6r
zCS!}~2Su5*>Ptg8ZKl*-_Y+dgo;T@=@3%u|ZW!G>9<*(vw@C6cvo=HHvv-t*U0t7e
z9-Fl3y=LI1mNkmMKPmWM6z*!#S=;hrulxJYw)b!UuHFCp`|Rp}&tt&wPx_P8H!`8U
zoFVxa=6E%ROw8giNocor-+It-->Tz^GBaD)1vqZ>TzD|Oe){nXjxsKbf_w@EI@r#<
zR5`$QoN0m;gHWg2s|A7X3?fX8O^teHK5Ts)$rCm(HZn|znj>y6#3|rW!SR8uQ-y24
zRr@E4qwQP@ruDZteQw>~=P==1!%T*y^_#Vs4a^(86gM+4y*RwSZ{ekg5}}LYOjD+O
zIMtxZsS?C!ttMDLqdu59>9g?CZ`o6HMU@^pI=rlR{r~^qhPjLvJ@5H&s4)0&F)m@A
zpwAI;!-`o<fpy8_69qly?uywKnyrk_zqTq!MaBMob8~Z+3s-Qjm-?#5iCRW4m{$sC
zrkHAQ1cfp8NHXvxTyU`A^kZau=qTlW<uC*967~ravvVg)Fih-QTu?tlQOjY`gOff?
z9G4H5$w!zrxGg{QkKqRM@=c446x?m*x->Ir$!;(<Wv}r_;ge!#tk7y@+<uT@g`L49
zhoi>K4i^9N<y({kB^X%P9A)J41?Dj~yB*t@5N9FU>vv11@uWgv$NvrTZK0}<Ua%OQ
zxN+umAnQ3-g~D421xzRZi?P(ZFP<1Vd*c<~EB`-CR$%k^_H+Hu8OA45qGK4=sHAf;
zo)crT-~M6$gdGe*Gr#grWBx1p+4#~7r<S7uS3@s5{V|y=@ob60gar4d5BnPU`*^PJ
z%q)M_Gs9<5!-jdY*D|c~V0k1yf3iO3d;f<f|H`exKRj2mY;aMNbpOAUV}jF<twr?_
z2hZ-h>ifp`&08P-zg73m0@FlnrXC37Te_6@!HW`^Zuxy~A3V7^+zutHH#p9@`jPd@
zRgDl1KE@267dAF>R`$=uUcO>@Wnpwy{J3F$)C7-Mhq+P={CStZ%s0JxFq^@0V}?S*
zkL4%M8h@H^9HTr}gk^{FgWo3v(?0)v{(I&B#r6Ke!dU_WYgRQggaleyHRv(1zR1X!
z^WR@(p6Bwz)*F9vGo1eVy|TF7(SYN~Xa4`5N9B3H@18n~XX=}CId9EM-*aEQeBnl~
zlkXbynv1r2u}?3b>C1Zb&%12z+asOHam5Gwo!qDF+WYg#jkxv6?-w#~hq*4kx2<K?
zEWUnzu8()k>Nl6OrQH<u4VK7w77)%d-81V=?db!@uAO3dRTO{f=jG(Bk;Zv`zwf-N
z&~i6qUM{o$b$@`JiQ_KE?f(rXyqULM<gZEg)n1X6|83QrC$7`=tP-kE`gkzD>q+}j
zV~3JQac}?KIMaUiS9fFUiD3Po&dO1bI`S8Pe`7ey`2Dq$8Zyi4=SE8JxncHyYILCG
zx7qXMuZ8>E+qkm0vrw%ve(Apl?Jpj5)@==D3RLIbVD-1tiM!Ca`b^s)=Qy!x#`3e~
zY`u3?hWSgirr0#?FIyE1`i(lmr}!UHxOA3R(>HJH%I_lUzRBOb8S1;<c5A<m%k8Yt
z+(u1FkwvkOce&-B)KRXQ;#~jgv$W^Ey7Kh%uQ#5EuhZARvUb<rE2kej_xXrFap%3w
z^Yi$!%fBwZ|9<96)z_!X+uodTtEze1BQPmeucGnA!iDme<v+Z=V3f0C%C5rS`v0e&
zuCBSym8|`XN8v!>Z}rWsYo=VfyYrCH*B@Jr`K)g0MN12>dHTF=_q$~sI;+3#v)x_4
zJJ(U+RFJ!nrA*cRi;<7nr`P>TPE0cUc56xFjPk1+-*!$&*u8(n)uns%Y<_Ke|L0fn
zJEO<<FUCCczv9*$ldrikT)lqJzr4FuR=F3%GPf>%(mFA{_iq2YEarWsr@qZxS>p9I
zNx1ar@-<HGS1nl$gnu71{+2Z3&av7L?-tIvsG3}_`#HUH>%YruZnjo=Ji5zK^|SY|
za{Dc(DLdM)xW%nGcK2QW=Z{S<nNk`L9Z<Zvwotj1tx2yryCyTWNxSp&y-AgVueQ2M
zpFGXU_3`It(ctwdy}wjlO@6M{TozRsknq^uzrTZLXWa1*0@_h0jd`}Ml$Fe=+vWVS
zmoxi-#w)FU@p{8kHDA>p&pG|oe(8@#O4rvNOz!@3Nm?t<|7D!KScr7B*@Z_-@)HC+
zpGy@P+sWAcSgXAH@V~=Pb$(fY_M91bEaGZ}+M~)DFK(2s{j*MHy8hOx;8`q7e@1p~
zD81KhRBr9_<?hZ)i|;SqE@NdpYkr#QgP^Ww>(n>279Zsj;n6XjQlCEWRivb6#i}1c
z;ZL^c-Yfeo(zD&vZq=&mn|qx%oHy!T?6l5Y-z$9WJs1Dq3YYH9aNVR4adiS?`oF)M
z*!%aX*6$Q3JQtz%`B?L#r<>1*O*#IHZQhfY%c}$4Mn!yI^-oLOaK*{JlGdy5o|?T=
zL8z+oeUOCsR-eQq#g}Tw-W>TMTCaGeb#?sVZ*Hob-=p$xPcKR{`B=7lvU7Tnqi3;>
z-QzjtFaGR1{c2ZCfZxnlf99Q^X#TWz+WZ<HPT`sli~dIizy0mAd+qn50=ir0H6AsZ
zb=OS)=ZCqHHT~gDv$xCSf0#EZWk>S6;-~4HKkmv$SyxQ>`zK-68s)Oa1WV^K(Yv|V
z>+ik0|14Fw?#Y7I<~L{mxo*2~^o{hvP9^pHy}EfDc1%2Le)ZR_cWH3}%Wn33t$25O
z!OLHn|1A%OEL$DBe#YXqqf@Hfzs%o!GxORvt;z2X-#8-j?-9eLo<es+KfC+UpY?9$
zU%0R|c6Zm0Edl?na*r#|oM^QD$3q>?t@^5q9$0gCde&e4ve$kZ_wLiL{Pkt;rk~c@
zpSr7FQL=HW?t0$J-PgUVOAgu3d>!QY_~zEftFL>hCY7v@fAO#8Vra+Qe=p37*436>
zad>kwV)Luc<@~e0OP$~C$1w9@_nJo=FQ~nAI3u$@X62;P{{723+kWq<ExP^gn_K_1
z7xq_=*huf3Z!YrC<#>I&$;;eBYj1X|_VU>_u93IDv*estCwK6X&LsbSl_c9e%Vfk9
zooA}gk9r+<x8je+I=7wq*94V+{%Ui|c@=BE<qAXQ>Md`}w|OdMnXZcY_GDl4rQpy)
z<%N4Xuks7MTX`q)^7~IeGE^45oqpg)(Zw%qsfVxbaA$APPWLP0zh)!8qh7LQ{fe(4
zl~3=a1>dYxOfEhA#qji+y`Gsj0{my46@PDiwf$kEP_N#6+r8h|W2^Lc3#|{|_4-Fk
zwg1mstP?-mvD}{(?QXMu38U%5S<2<llA`NY8@}CpBlPK&4SW87xm<Wk;nxMP1*f*1
zIc2<ZMbON~_RPq$Q|AY+?~AOpTVQclvA!~9Z(Ypx5?iD2Qz}i_Z*nIJcrUx9%0GKk
z*tFs$MJ>7(Wu8Zw+;?nMee4%lkrFa>s@3lHPv>~DtCA)Z{_T?y@w|0k{+m|fslx|?
zWG5=D2-3_7czZDZ<ZJWJ<9=CIACHz4gqrlIRT^A+R{ZMOdM3-?{QLGC*nCkmD0`=F
zXx+2=Uj?!MXU0sNYqmuE=K}x7s~j(Oe(zq(DjnPUl;8HqtsUh&dk@BU-Pp8SW_MK4
z%gy(4S1zCU^HKZfWmmU`9m~nPxXa69Zt&K5iyR*?_pa7nI_;8CdG(5O`wmw|YO$`&
zJEQK_+P`$q8c~h9YbR^wwz1rM_~x$`>#ExJLa`O+v&+BMf6FQ1`8(rCT=Lt^8tL2p
z_pI1qv_xh1mBXv|8h?~1-X(V8`<$O<E#)E$bDG_vO^he=$xK>SqGQc166f=!{Afh#
zr+*oDzFR~WaA*CxJ2ClI>E-Qz|F6*8%k6tV%4*BOe;udxF1Xcsbk8;Y?V)Elx9xIp
z3wXPFx?8vwoBhX)$6Q$Jxp-aEE6UrS%>HV+>(9Jn>m61bn(Vrgcy#Tr2#c>F9MucA
zsywKvjNDrjoAUH<^z_x?dh7V_hKD?uCnLZWHh=T}1Aks=1g^QRSrq41>BD(vsomZF
z2k(zR4b9*Fu<EI<NR^!Z-q-F2Cq&d0a?L-SQhi3!UhmDs&cmV~tCyWCnd4J0ZvK(C
zc$WRa&z3JX{mI&zXK>B3XZfPmd(M+f*O_P5xZRrgTj`&4)U*qq{zmd@9~OOU@>k`f
zD%+WfuXn6C?mMrSzhmnh-75Q4{O6LkM(=9Br&-G8c~WZsuJ%cjQ+cy4u9DHoPFuwN
zJY2d=sCsdkiF%QI@4L8_>*M-;XYI3}$X4GK|1>uCz^S{|x+~W_`MlOCSg$m_yrT1m
z@#5Ke)0Zw2iki1?%X3MC>!&Xq=-FyxQ($_1L%@oC&VT=Idv-fg+Bz(L-JV^Ro0{J$
z8mNct|F&S#(oEgIc6ASfTzt;mIkfwLW^m(-OW&$mZGWBq6xd#txq?GyZyHZv@|Ul>
z{vO`4U%FoI(Y0Mm)_!uEWFL}zd-}cp_uJ}sy{HyH(H-|^ZMVRUsFtgGCye)oeL4Fn
zsVHb;Zs6(mT~GU(L>B#crS$jIb%wcnCYI(&&z9IXMIhAPRd8wFoNc=*o`u}){<<P&
z!<C>Xy-Pk7#fb&)Uc9gF=lZGl{pLk@)C)ZP_N(G&%c-3KU6J*dVs;+Ly*mB$^7|*B
ztmbW5YQ1*x)1N!$$-egA^?zSrSxCY?|6<<1imwcq_u5;qEIq)db=~LDG@*NOn_pZ~
zzHn!Wz=I3#7wWy2E-47tdOxxMUG9r{LDzZj{rqe+>kPBz$$!_M)%MI#d%jJfj{o<P
z4ae#V4s89m>V)*smS>`g;<b+Ts=C(gQ(p+`OD=NjV>d|KQySZ6dhzGWFH08RtmTyc
zWU=Ubgos=Ex}bgfzq~DEwa$Gj+Ug^D|Fo6yx`WBuvxLq?A88iXoVc)Wjlb8Mxs&WB
zY?IAhtGIE}^Xunbzluye#lQLYml}tUQTJ~LT|Faso&O!T#PMs=g-M?8<~v_{<rY^T
zUUw!a=c7@))~kN$sw>&0hgtT{GGA}C_Q$F<3(oJoR=#r0qcTOqhl^v6om+pXd=Jap
zbtZ2<MQmeA?$LU)kI(Z|UhDsvMj}3Cxi-0zkL70f-ztkc@Z6wtO3i`Ob*gb&=1kv^
z%o1JX^(Xq<iSH~wFaB*jYBt~Q&DX47)8b_`0=?=bIX(XE`NR2mj?OH}1KZLo%}!rl
z^Y{8*smpHm9kWVXd9=3gs6W4M&dUqi-?lF>`6s&f>sqeESuYkH>wKF(=Zv=BRhuq>
z{2u<}XL$CA{SV%qF0=Xe!#9g^7I8@%-V>Pqw{PdBEQx~DZyJ05hVJAFyf8gQ@Y}Wr
z^J;=z{&Y8&uDvXi^w;y4e;oV1gSXFHStZAmI=4Qa{k7vi)0)?1J&=yHx#9E&D_BLg
z3;VO4iexr1HwJM<`HhW{y49uz(>H{(i?JG+8C#k|PORCoBQ<2s>rJLz)dkm&-35Wn
zIe9Tn&IRS=<xHIKgzl(Lc<`>pp<%)FHMQU3UcdP`cYe9Sf|*M<zgk&!PkhD6t0ps#
zu00^;AZc)7?##KZz6=YNtjXjnn#^Q%)3eDj>`l%YDF<nO_u_B{c5Z2DaUs*KOSCWC
zxy#2h$*7#2i=n>aZZ6}hY47qC@9EsQ@nhl&#!U_a7ry#tvTpdmsKI>q?ADq&jc*vN
zKJRakx^Z^y%|mzI`tq{eywTY3C0}n+Lb`mowRH4%dqazvGyl8%daQepDZpTR2}AWx
z%NvYm9K#q`#Ztu@xNf}m&0t@^+{_^65MAt^&2U3%0qYg!jBKy$`V6KN(~zxKO<qRc
zW6G|wux^h1-`>4s*|cps!VX?BuHI4%R}z^{WMyal{kf8rW$(xBiA*ap_P+f8q|*4$
z<8?Y~Ro5+DuXgs_ujOnE)(3=Nyh{77{<gkwab+^wkJ-0ouimPC<K=o52CL}u@^r?q
zFnxV}F=>ADa<L7odAm11j{j4?CFkuOhPZ@q_5-(<YhMuj5uR-05SIV8WIO9W?E~`<
zGiuz7WOB?qVDD%2pk8zCy{MnhzNnS|=ij*9ZO8x4mp}B28>9t(?7wtl*6zPgS1(z%
zjHSS6JM&Iv$7c$s&7I4O%lXY4ZpLrgp1(l!?S2j>#z}JP*3}nj{EvS6Yre_<WqS3D
zb*s;uxOn~ko!9&Q&&WJ^`0bzk-k<kVqnjM_%JSaj{qN#niMVaa^nXM7@8Yzw1^ZJ@
zJ<|GQbZJ)98L#|i_M|Yj{iW<j9=&_}Z~E8y6_0|vm>BH*{1~kH^&8&idMtGeo0Oow
z-27UeNBu4J)bH2S%Qvj%fBoO`KA*w{@e|+wU#pM4-MD7W|2ZvF+l^P7oj7-tSwsJ;
zeO$iMlKrV>4&@Be3@?}%s-kag`sexo`j<a~oBs>$-+J`^b;&n88_dc}n19`lWWH}V
zq2}%x+eU`+aQ+4R-`k7+msZ^PnQ6@%oxAth{^wRs_}8V!zln|c$A8tj<WKom|M#%m
zjqmpUzin$+Lj8or{0F!)dXKDPDyx?k*!92u+q?ZmCo3$hR?V<xeEDzvwSU|9?wmY#
z@%jIkAMe*GZLHsM`R~R5(~q6=J$6nyV`<v+yv*P0&Hj7qz0do%P4ba~wEKhGf`3&n
z{o9<=mmmDM%=qTtoi`ZHypg%{e`&RJgg3jug|oZ|4*#Fd_2b%<|BLGXmI>8+Fh{7C
z9ufVrMdJT?&tIowq*6GyZDPL3V6mf;;n})%&+I&M@*f{Oc$W7=YW?gQ?FHZCKQkw!
zGB)15AH#4??%h9z><!wN<{LkI$hM*Dzu;f)j|>s2|J-UA!dC7Vv~LLgW#2KK_kh-C
z^Cb2Sr~dU?Fsv!6SN3CA{pbD*-TLNB^#b>2FFkhu#o3_G`CrmjewIISo;$(xzw}<i
z%|AfIAO58D>cwea`F|Ya{UQJ3n##5Pe!u0}@>SOSH>*%i%zgfozu!J<L;GucnR`At
z{}^{Ntl9RzF(#jP>(|0<tWEzCKdNp1&0e$m=tKDrYbB1?AK0EX=U>~K{HuSIMSj;u
zn?Be-dGF08#{=~%?w_#wzqU^Mn&gWt_J8iyH}2o~w^;0(c~)Ni^<T?MHh=!t{!91J
z{k4zkyx--$=KAAaeDB82>c;;MKZMObZvP-Uci#Vo{F=T0+GO(Y{r5Qb(e2;g_z(5@
zEw|=BKN=q{fBU}nCwu-&`!_7xt$l-WMRxkvZ$cmI`Gr%9%fqenowseT?*8lh@7ve+
z_j~?_Griis{!V>`w@1U?+L@O3+4^TTw{ssjclO}V<<)ck{Xc#EQ~dcY``?|}9{bPy
z-)9F#hQ@mi-b=2gZdm$&{ddo_533knPP&;DkySTsb5x9=ZL7+Rt8Z@VDb=hzB+IoR
zBeNhnfX`Pm!qcz*fQ5ptM94b#zl_H}rY^SKn)mFOS8UF88wbk<j?k!@MGoz*)++9m
zsw;N2H~ouPxFBMGQ?}i5<(17M3v3IOPTs%z+qy6Lm+0ektJc8M<57ZZ!fz^7Yj0bv
zyzD!dRigRDQ#s~Ke!tFt(-QHS@ndKk>*hxVcQ{!sp8tz0>D@N1qkeUDR&46hV`su1
zJYtPKJF)$DirxHWKUudv^*JK=C{Xr`gln+q^))H?3|s_q_;%f#$|o3o^swf$;NH3G
zX5O&9(zusD=}4mO-=)RnR=#_FIOWXjmAU`rVc1o>mlH2$DDAuL`NS~i{gb!6Df6pB
z|7<r^32V%ai?8|mV`YNkO6S6;de%qk6E-+msomE1Gt-<CUG?kTBJCshroU|b8?=jS
znd|<2T&rHTA6Izowr$eVlM8!wg5=d6U+E}vmUC$Sl92zwLZvNpq3hHGFSnQOaqqol
zv~=V95Be7~E&UF6#!Jb2cV7Dt^wV(Ny6sF?CjJ(Rs8c!hXxXD1AAF|X<yz%vDY0u}
zJx6VC%omBDW;0|mmE*I_*S3C`efH7DT|8D?+5a^zHchn3-1D--H)>6~P0>^ZN6%lM
zPkOT~zbJZS>zx+`R|LCWMLuJ1fBAUF&9@wx`M;ygzgX?oi51M(sr{&_vFZ3%&gJhG
z-Mb`xWT$@xm$2o8O%InuiGSSty+wYC>w=B9Gr!NRKO_5o#%i~B+Ic%(ivMU|viTeD
zJXX1_$6O*E%bbr)J@kHmo%oqkY&$Zxc*I<PcJ$oz<BE^&E}Jr2Z>d_#r01){s(*Yr
z^|aJxyZ+7vPd*yx{O*iD{d>p4{uf`jCH=T6spM{Fves4Rd3=t@#h*&W?<H(p7Jn!>
zFtbv8+MJ6*^LW3d)vMo9YC92oE<xkx!UTPL;mbu|yEN9Ymxt*+y&dLxI9#~(#;=?{
zd7lfm&sG#|)@T>onH26(sIOOd;6>DufCWl1GLI+L-(7v-tf}8wn+xWPWm~RZd8+a6
z<-2L~jhs!k?me?x@%yc_r(ZiRm~7d*&*+drUCy<DWhP6y>K4qIUz@q4ezE)u<2zr9
z1BDVM`usL9JhZ&=<I3e4GryNgYJ4}SxfA)s;JM;k35L_kbBZRJ>FziY(b2P6w!+oi
zzI5G;!ln04Z9MbzpUIs@x3Ao>e2k`AW}eOOjf^?wv#FoeE9?2-F?Ze%<yCPr=RI?3
zG_>4jAF)wI$n$96-mnZOfi>bsKWwOXtyf)Dxw_?@{OY^AT$PSo+w<l_rr^_?DV<BB
z1^4c1n%h_@{!~ij!@5W16T)(>m=7kj@HQJ+X<k(RbLM?~T-6GJ>x##cKYC46u)c6}
zZk^*~=k+IRUm5=YcXHz0jwOOc{ULGtbuQmbQrQ}<u&}D;E|)?@kmtFaMfJViVtlHc
z|LX&!j|&#H_sZR}JY)At(a(Kx!>ptEGv42<P+MPa^w+p=qWiN?;XH3FKj-!-u6bEI
zm&>5NE~Lj#bHev9DY@PaYf~fSVh+r5p3d~YG&`W+&`hBQGY`kMr+e;}$BL{Mm3guI
z-1KcPi|-`IEl@ObOBUMu)7EWelGo990xJdMZW#Wo*D{W_H@@vVx6?Xfli#r}@8!3A
zgq>G;IOm<?`f)h+L=R_+rlkCYYVEWlwb(CytF8;VtJK*(%f2a|n*Hs~+KH2%Y_5J{
zEN(0oa+u+qm*fPe8G+``d5a!>zSMg8DWlGcEd}PY_kZoYu<`=ie{rV_!=)UxeWx!z
z``Y|Tz+cF(nZ16Yva!0+$H_T&1Fg1x{FePxMe)&|uh;i1@4DCNaF2tp@=QdLs%POT
zuH%}GJ9jkc)fIVWEIShZnn|;@t!Le*=L$D=yUz)(_~TQm`S<g)@TH3n-}1X>mdd#L
z=D(squgCiDCtkTyeBNOR^PN|((w;rnyKs(Y`a8+J)1JN&IdT2_=fm}i98aQ5RP~v6
z-1k>Vd}6$~JNyr?i{cCJTJ7U6l$+*hHZ|Q!zdv;&PuR5&%kqk(_G{Pvl`G>qASJzF
z>GmlbpX{34w|V~5y^iw_IoE_5WE}n1u`%eU(8C#-7TX1P`MExS@?-M4S*Nz~rRQ+9
z>HcO}`LOnH($YXLw^d&*-l+@y?o|I-E4A)V(DBQrhHUGvcb+z1psBofw`#J8piItc
zv2x=*iAT+YwbyOS)0J6Ka47F>O3%cHTJN{$H|^78zwvqIlyCQhH-Ajs%F;0V?v~5n
z%d&5OE4RDP8@TV-;R8?Zp8Oi@dcNquKEWf&0d0Q`rliXmdj0GcK4`tgpeaak*0<#y
z()C?>6PJX~UGw(w%V#~!fBJp?mA&iV-oJR+%~`v6R<AC8y2^g*h6QVG>|P{c{%YFS
zeTVL7WrnageLvuzv87-FtCz_oHAx5EH4=*gs&1`)xL4rR*~MXe9xetuFaGSkp7`h5
z#1P*`hyOFXClxREWcqL+$5-ZPrf$uf>lyDq{$Yq<@T^}uMdX>{ynQ*F(x?2q5xnhk
z5X*}B)=%fTs$TjbwD#BOqO%{&z6MJ>vpw4PLj3TnWUfuq&L2J{I9n%bTc6d<w5R39
zhq*fz{u1408Q)N~kZbN=zg@~lE$ii#4rgpvVB3+|J*PPLSZD&@6EA(C$#-7z)fT5s
za-X#^WA*MgX?4CcYwH)jy3?g|U*x8HK)q$>FQN0jKW1%pz7)7&RoJwa=t-sb4qRM$
zc;DN{6F+8O@49rob?Z+-POXBTuA+$Di<BR|X21Te`KeY1pQc3g8IRCwr_Z(W%-Q|$
zezEA&UyDW7hB|Gz-mQ4qSa*8Q!t>S3^0JS<s*!m5>fhb-{|<5%u`hgOU|-LZ`z17+
z@#{?W?u*ag+8jNpdH9B!w)CsG2{lpjf`(^&lvkA8symp$$}p*D@}ee_{$B+yQ)eCC
zc_W@X$UOO#)3P5gT$Cm(>in|F%E0Mm^28O6-}>F&KMB|=rl5DlW17C(f<wYDk9(Z6
z^4t6|XJOW_(&hVF(iTozo-A+mdd6Pus(P!HR?p-8XDsYX)!<e>E~Qq-)vqplvgOcR
z!>{Y7y*iQd#wD_@a@YB*Z$dtKR_qBnrvGnI<;smaujEE~1|QDdJKfT&-Eiyrx@$JO
z%#OKzon4hW^Uemz?-I+VHZ0P<S{qj2^W{zs57%^;qsd7hrI(*rU{|za@0*ez+dt_&
zSs^2~wSLn?cJ&umJJ)Zt&rw*qt!|6Mt4~G}Q;r23xpyqz(OBrlJh!Bj&r+w?D#!l}
ziI8BZpILXkDPHE~j)&al3=zU26E=ALOOp%s_1Um<_2Tr2k7RW-m1bX98nf;4n{&=d
z;!pMUe})}DwtCZI_gjo-RX&}V?^MjOo9+9reLfGfr_5xSR?ny#^?72!ky6iB!uK7g
z`K}OH<u+?h{Da)M-sPLvG9P9&y}ewnXIgoi>8DnUJo6jXm-3=B8`^$nUiq_KsoQ?p
zgxHT^E|IIXh3tQq?Vfm<Q@G#2XWgB*lfu&4XEJ?z-XpFX@cr!<<8qgeznb-z7e!jd
z*iYX3d(GA5!CUs7`Mx>1{+g_2l--|4g<fau3%)l--FjwgY;>(x>q5d$Po1+4PZY$y
zPm*=8*1uC-8ocz%i45biozZiel$O4j8uKdU`i2b*w-{<%Y@Z$5d~LC&imt=Sz=;PX
zdBVb#RBt_5D4ell{b#cY_q`6)-@kw3?CvklCakwtN6o)f65!!%lInO%&FpMFXV8|w
zo~O^>CMdsnBKoM6jd$b!PX+m@w>0!0+?x4#dTiG9@TvE1r@u>|T-<wk^)K$&s8r5t
zbCTH7!Y=-uV!iOY!;W<-_xUq&xO{F_iX>JpDHdJ%Z0)2b7r_=W_VxeHyx}^;lhr&$
z#MnBWUAdaeFir3FnNU+llY=?)W1pFQnOA>6x_0>~p@q*Msh-fu4me%D#=cl`-KBl~
zfovWfS)Yrq3g`bhbNgv#e`o~%nOA$;I(7Q~TP@lD`r{pz+h%hwZfTE}oML>?LM~hL
zgF$KaN+I5pQCok7>SZddeP!wJldIgFb*ATzZ|Tc7X&w8}-SQ;zgHOr9Gv^LWdK0Q$
zqWP=XwtkCH%^GuGi-~3jAM(gN=1jlzVcsLLw)46Fl&_1~KdpRvE;;x1p@KIeHSd3f
z#c-sGwXIg%meI9w#j9fDo3kS38{X&tGc(X=ss5s#pP@Qmt-nS}>aA_rKl`G_B7>6?
zzkFP#Id{iFiG#<xHEpcki|?Gh>DAV<FaF$Y`~hb_FzsMoRli3{(xTw}kt7M%$>*2-
zNU^X#_hrdm=ZOxfD?TZo{4uFOG5*|-qqi@=`Y`$OmG+*lNt35C{V!2n6<>XOYGl;f
zLNBkZN%jS9JGhO?p2&MlWLg=ie&O2XS-vb{ybGg~WXg`WTxU$1Kj&h0dX>Z*);S^@
zZZp@dKgV_@RYE(_e@)}ndb8Jc!S^D=;^d!Q*W<l5Sw8pe`o|~uCL2ETJEgF`Sif%G
z?nmFE5?rn<nUPT`o91$7D)$YCLw*TvQVciC)^gl+ZQa?o>x<J54@Q$N>o++ulG1z3
z4|xYp-<N-6M#isO)0SV+?RW3G+18NlvFNGS9AO!jF0&mAuf<RD((8Sua$dB)SaIoh
zldhYwT`RM^#BHuWbC~>KT2~~`*1ykK^uA2BdN50&id9&<e#Ww*`px&Y{A^AtGbyfr
zu9UCwYQ58qB|0JukuQJw{#&@Y;2!tw$r{I+@^qLSE-uL3UD!MK&FcMZmRZ7kE@<9y
zG-1hEdi#lYQH_yU<txJ%+c#fU`hVoQN_jnV<;Clb4!@1U<hg94^BGNb+0XoB_m~s+
z`)<meDP8?OSqtrtO;WRuKl8anqb4tUxlq5yg|>XL?2D0iPj5Q)+bTx6@7990b-Sa#
zzS8#Lcpg;l8?g49bN6DGI}c_TMd`OKK5{gN|6KU4_1bqzn=H-jQ)+h_n6!FD@A6wW
z=iI_6^#?Nqrth&Ti`Sj^TX)9${ZS8+Z%O@r%%ME%=K6>2D<<gi?iCjD7Sjuo_S&fJ
zuyv{6kxz%GZOCcZWpnt~6*>3AnXKv^TIYWoG}>1s-n+Hh$a(EMTYLK}RpMd-E8d<w
z6SZpUy;F&@-&M3aGGy)es_rZmk6yQP`g!YvZRb<t&7yqkS8RAK_iXd>jSp8;s4QF2
zt8`?QirBQXSHwP-o|KyvDfIA(#1q%wcIm(NE;@EXXkz+F4d3YvY288TsrwvLTU%eW
z^DR5UB_?;Z|Dx~Yf_ny~U4DMXWd&Agg$FkV?At!)rk#(`bG0i<YnJ<UxC+Of<9f5~
zd5AD~<gz<2<GwN5vMsFlzW&+V;kr=^v&kb>C0;|@|HXRNf6TqEy*-|i*eI7@bx?j<
z|L&;Q=C@|g|7>c=bo=b<3D@T)@8r96Y1Qqyn;)=mPc2XudB)stw8!do>hg{$-TQQ2
zn2KFWnXG%{%97B{`C4+Uo-cFDEB&7<e}A^C=j5EKx!Km|9#u`zoz++7%wK=iT1(Vn
zS9WF1ov9}{Tb?iE@HqBh_y3^nlO`3Pc<ge@@$tOL{yWVB*3Xz<d~Qxrqv&?q6oEI|
zyJkDj2&kxyeW)MdbU-p^t$w?2%%53h$J8eO3X*Lyj{01k`iSr0AM1%9JHteIzbws3
z$&q;Zle2u~-RX@L=dO79FRiJWTyR9Is=o8Q@fXL4iI<{R@AB_i<;R<?s%|rZ@hWFZ
zQRGJ-Tccc#mz7eINhyqz<vQm72ws@*B==5$m(&u!teZO0{3Z&YwT^2!2|p?`i4HQ^
zq&VTz#>;sTg^C{g<fZrZa7|s?@uz71;n=Un!O^q7efnCcqOftY$Rv&zZ^JiP9=6dA
z-|Sc)?d>@0hQg<dJAU$Q2`!6Rvz#gP7(?za8;!P%&E6p|XU<+Re}(YA6ALz^#wr^=
z{JnTx<il9utDzgj0)D%{)tjE`o3_b%*{<RjQfzOGY-BInO11VMJgKpB7F$d=*TZsg
zYtx#rmV&giufJ#6Gs;X$nO3~+uGPNkbuZ4!Y)eUr53N7_Z>o{u!)_nv9Xcjwxx&pS
z=Rfo<R;gH|#D4jCZ>_eF$Fd&3j0Pt5mlG3~hTNQytTIV4t9(k(+0UMv=CZ2)x^~RS
zXH&+3f{XX&O;_r)ICSaZnujv8?V~xm56sC=SSep5pnT_9cbob5_LjU4f3%X?$~{6a
z3ch-rc4xZ(`<-h(*DGXi`CWhL+pE$~bqlgDM0g~8PnNE~rC4U~FB)L!t|%0<;M2?r
zvsdpd=z35q|Kg8#b?`3@6PxH$zf(=(_xP1AS8m&QuKy}qrKsYC=2$tl!fBE51>XL$
ztSc>_&oq)socd7gZI{1a*8#;<iX2I;@6@Xfq|J1B)203Og!bLfQ?lx#(-yitJYMv5
zH&2hW>YI*JPTj{2vsQ2}oS(?EIVz_>UugM-L;cpf1zXjpZ)TdYr|;JU-@u|9Ke)?n
zbAKoueG;*w_A&1a#+(mYu8Vw}jTsA<Uc8;bVkDH8zV%yQ?;P(UhdWH04o|Y2ll(Nm
z$9vw^Z6ChdElWLgF6T>d)uONsiuD_()~e-Q+5hnFlj99;i5*4d&lXPIWWR7<)#Ewc
zN2+fxRSa&=IF@I})h?T{zWa+z%%Pk$6T4n~{7^CT$mR#tn|^Iv>US=0{o#1CE#Cv5
ztWccpd}~i|$)CGP-*+putjKzm9J7A;w^hy`j~r2Bo_*B6##ZgGzoe2DtNit>R?ecW
zF7-+ss=QLCCTxFTX0UkiN7pZXVP6GUmv~Nku6*N3c#N|4b@qK_`=f6M&V9JJ+C0*6
z4)Z}9>qlRAa)n+<UUFiK?fO><hLLmIwDY-J`tomYKJ;Uz31@sc`|7rfnKNzERhKc%
z<4dl7vbfWHzOmE7g-Y>ujN#RXR%=f^kgdWkQ>ds@pBs8o@^;UJuMB3rOIMp*FyFJ|
z`ESmrKkwzwF=A3mm2Y9^f2hNMLRh9|V%jP`vqc8;R~=-HasRhf%=6xQ*GE#8FV6G6
z^!;}(fd7wBQ1EG)Kjx0-+*B&Qc>1?^=-m1n+Ff(Ub&XIE-&q~KneB6Sz0Tx|mY@4G
zKG<o`D|?lIK-YQ!(?*}oI`2QoUMi5Yn7(fE+H-3KHJ(o4PG~ZCd-MCZ<Ety2R6cac
zZ4uV1KOt$V67{2>x65bsVYAwT%#-%dJ8KhM`S$H#m?&eT`sd1R>rYj@f4A++;5=XO
zbz#W|(aQ`{Vn-g{Sg~!2fUJbz6#;9TIGM&6(_htpA7wi$?e5sTum03?M_rAB>_1er
zTD1A|%hyL8bf0|l+_~t&sed<QNG1x&%=BN$XHa}OX0oxDzr*A62PY<RR~opO+%{$M
z3FDHTyUFv^_2)i%lC$P6dA@U!o21S6-(7Y$LKJ=V@6B5KQsCKB=Y~&Tv^FKg{)oKe
zJI&p;^=!)o+2@swE^&-rQ9RG;zsp-3V|DkL!u9*QmF#pr_un_$Q*QK$xa|HMnbT(0
zp11LrAm6nor6-QJoi8>ra{uuCT+mP5M?P0>+DIhGZ>U~#^rl-6Q?afvUxEEzmKgCB
z`^%GfS&rIPoL%&?<9_@qslz{PrtB!wY+L$Ni@i3gt=L95>G=ey^Cfc(%6S$XJX7EK
ze23+gZ(9~}t+HtRdVTZ%P|dz2Uypov`n);ej{d~OwmK{R_Vl~03DcOGP-U}n(fVVD
z&iyodJnvug=Z-IHC2#XC$?RS!WT1Qh)`c+p>}iY++-kfhC$wFkp+22i{m=608<#Q3
zz4e><_dUCbuxwZMb(I%6D<^RDMjo^IQ2jHvy|BJc&wNk$JJs_WU1kQbSZB<ioHAGQ
z*O~uT_6PI!wn_y*&uTt+A?1%J?}KZfT9UrEJ^Xi}OXzs}^vIBN4J>{9j&lv}uGZD}
zJ?LJ0d_MQ}IdU0&Ja6+q3Mt-tbXIus6&|zfx(TbU2&HFP8m=}|p7owF+<8K>@Z8kj
zUv1pa>$X?@tnak{-lfU2+~{3JfyBayiC1dwTv%w)Q#r}zw&KZq;x;Xtd*}2|-C&rp
zQK3d`<I{|F=dbTtdHcw@gzpBEU)?#qHBl<!eY04bnaanQ!|!hEHk+2+o}~2U`0FbE
zw<5LcmiE64x-CB?D{QA4UuV?2$ypY8?>8NvcwI}#qhCUB<13M^^$i?FC0ap(3X|+s
z&FAo(+}8DF>Qjl#?a#hVv)-Wp`_XpAkMnv$c6>_uvH8HSiI)}x{k!vF%AA?ijvaq@
z7gby=XJuV*Y?F9n;MupEonLX}uJ);UeQdIw=5AKC_Y9vndR8^;<}qLStdPl;HM8;v
zXUg538HGAgZkw<B9?g(nWO-&!{rSHEGtKkfq;%*6)ZL$~@-9*B_4M`n%7=pY98S{W
z>-#wU+nOh)JR&|iCMz5zlw{*Vy_7F~$SvA7C*xnGO54)pB<|<lr{%<NJWk_2bYxdz
zo9+H}HVmqhYYWmgT{$Eq>VNj{Jr4~n!_x(Z=dzb({4!c?qVS{hc0$b6$=QAX=7`lt
zI&uC}OK;0s!g6bK0h8D^qf<F6WddT4Y_VMRvu9;IPoGcrOyespeARC`%cDfu6YBoG
z7F%6(>y+NDG>!i|pYmJ}N!Y-BFD5A_>dTwd?Guyx*LsC`{SH|1KW$g%Iri`R6`dN>
zjW@4<`a)jad(y3Wn&PXz2_$ZLTGk+W|NhDCn)P{~4KDv@;<<dP$0hFIiT$th*L`}J
zdm~tM)zxxoX5)S4hqW30yqvu7+P{xkXM&2CzI~@sv!UC2R<Uz?YFyd;$$uW5)mmMD
zvaWX0m!=Gn#;qk*wU2w4?n<(*lE_ksuZ~L1(u`b|K0j-T`n0ZvhTXE73pU%|pVl_%
zokfS#l<%ef^--G`X1rToSEKy>vSBG_UE)gNnP)#lb5$0L>?#b{rL%OtM~mfCm*%q?
zP2Z*+GqH+fo4TU@;Hgt9om`koBXd4kZ@K=|-T2sJ|J1Avyuvq^URc3%Ho!NiEIHbw
zV%zhx@pTLSZP~o+JD*15`|~03y-U{Q<~-))`(nCjnOuEhrromobkRS53MY6Jx1VN;
z*!n9oHg4Yj9Q~gq*DXKpI>Y&HqkKuQ>bJww-5dV<m>ZVH26a|`z0>aYdHOO}?>*c$
zcbAv{xn+M@<YesHd+Zf%Ta^P&_542i-79GR%jcCZT4h#+D=fUW=Aue)Xohxmul^pl
z`*-{~Fa5gswC%LBl1X^=%iwwgk&O8jiDgdpZ7-T6*Yz^atGN-uTX5t|zjfg8Y`N4!
z8q=;O?-O&fN}nm2!1w>iuh}_P41Sk3Xo_|zuUNCqOeXU9-C10r4)*_Ke=k4Bweh3t
zd2QVn*<a32E%>-&pF+=s8$6#@JucPWqdvh-HZaItdfk#O*YhqcnqmKG;&jfN?e%H)
zNz+<lTi3;Nt^aaU;nG6aKEpMqqpvq+sm^}QooXX6=~4T}*$k68lBA<cZ?UvF&ETtB
zyX?ful)m2u=d{iRq?~N{>GkS^+YTqEFK;5Wt}97<u_+7g4vxP2|G52b!9NDgrdQ9*
zR@*$~sQ%mEHKl*F?*;k?{#_8PpqR0Gk2c@R`pw_wuMS(b)ojnq!e1XFHM}ZP_NV-v
z<#W-VCv{PP-J6Yx85bEp*WNhP#Qt6L%;y*Dug*@Km2mi{*_7a#$J;n&cD`r3y>;#G
znmtQG+b67$<}VOn*dTcFb)wV3<=1j7ZkHd7pHh++da`Ze$~S-A12#qNx35ud%{e@I
z{{;Qo9Gf#g>h0eAnmXkjw~(Fd|Ja6)!Ll5iy1yu1+HuRw+d=26+Q&&d4?UZG_jvi$
z?+=$7ZjBLn;obZER+jVpqk`Rb`ZpriWR*<auwYvx--|m^Djl&LUwZF8($KsR#+%`C
zY`?>iH~e=m8edKHRCxJr!Lli8ivkze-`;iPQ@Qa~U3osKJ6|{5ufJ8;tx$EbV};4g
z`@4>Oe{@Ae(#zjjp=X=cbB_-PD;2gq-6gY~HGA?Sh3m6J#Mg8_*ss;Gc}xC5$NJ<b
z;UoJtEZBafc8ldAmUFHJm!t$fxLO&0cW#w1jW=RR(^|yBe9BMn&b0m+eEBj9uUDUA
z4u7|WGxfPdb5z%q$R`WD|6X5GpWPH(&82p$RJ`Qh-{ns4(&cX#HR*8%mRIgsekhlv
z`<&ISCK0dO=hkU0Qq9{^_h&&@s&Yvl|LL>LESIhB9a(2Md4tB!(&|q4ysYI@N|s$d
zFaN{itANqnx0XM@#J+Axp1{0`?RS#p)5lxn1<%dByx>7yXvj*{8=v0z6>_xQ|GKc=
zdbiYnpWk7dnRjnnm(k0k`mb@y)$eReZ&hq>@;#?z>cw{A;)73rXY+on=$D=F(00|G
zDMw4}zez2cx$lI6HrMn=)*e$;rCjH9&(P)%%$f5#!Asrt{3ETp$lQa!H1E#7oc}bh
zbcK?4c{@knEM4X%<1~98oB6X3vv=;$K4!K*#I=6e${7`UCu^frtaB3-R6p&1Z#L!W
zH04y)KXDNp|7t24ovY^L#?3SM@FQ+Edzr*Vwr6*ncF8eK{bJp%)KD(IhGE0JH>Y+S
z+%e^yh6ew))$C8cwLH!*5*M5=S&`&<a9<t69*<wU4hc$h9eVSUb#cN)pP$}e4sHJ!
zDBYnY7y7F5V13}4SHANdy!T%1bCWp{>AzO-c{-OtX4?JVnJ4;h^e?}Dzy9Zir8Sp0
z%*5TN&bJ8RS}C+UkL%9E<vX;@o+#~K$$5sy&-hQ@mJc;nYi9B4UBAU1S?;#!M#QG7
z_j4Jzd(4_;Jx%6%*R?NPFHw8_QrQoqPg%b$wEwyW3Q0bFcXQSI`s#(DcP|^Zovh?P
z_VUKe?eex)=d?_kk|bA=JI$ee+27E`A5RM{$eb_ab^p64@8{RcF7h>Y^YYp3cCXaX
z{jD@BDZO*sY*$&K|L6ZOeEG|n&%DRsg7=eb(}e7`v(%5SIL0`0^L4klD6e<7KK5OV
zC~-adR=wd<_Y2kf=ytA)4|)9RX9qmkU3p^ts@aV}69etl3v=_EIM#ote{|yPUU|Es
z?RWYmKe_D+dilpRY|}-@(DdZZ#)}?a{u-gZ*=eEB(v49)GxzdY7`nZmW_~PS|4WuH
zduBx{CV$_5yT$rs*0IT#?BDRNyj=f`v2v!-Iv(Xc?|n@;?*F{h-!!{wEu-7J&T!NE
zG{Hda(6e<pde5@|PV3ktc}O8UZz|`+_;8u9PNi0sxYNoOw{~~OHeT(I>*d<nb~$R!
z7M~~+m!dhPg*sm&SU-#V97$`|Ju%~?{hsn=U0Gdwmu_WET5|s-pWuR4&D1K{_lc8k
z*k!E@zPe_2@4b!7cZe0$xjg33dAU(mY=4LL?RqVLvAwnBS3X{S;`L;Eo7?B@o@sBc
zm3!<y@U_<exxDbQ)utKym^!|+#~ps2sI8mjbLNrb-^1Z*87FSdm*$$sbFEd9S9{x9
zySRB_MaLQ@+Q@VppP0T^^w4_#LvvRKWVxGPJbKQU^L*d4mi-xes@eB%$2~f-e)li+
z7!HqJHy`d4t7oj@n`>;nIO)}iyOTHdUXXeF#xPK`d7aPNqngV?-mKD4c*hzUo-$KI
zd7pIf<ek%t-wRi88O}Oy9&{jMtMogSFK;)_E4^~%(1hpKYl|mjIAz?O_)P1-p;xK8
z*Lk$JZHv8Adw==AySFCf@hy!!n4~%T`tGk1DseBxL{D9myPf&Gy}qpb%V!?zPjB4R
zt`$7pdUvPBsi<YV_cq*C+~D-weVe+^^0i8Pms;=Lx!>q_!=?P&2^_P793K{ntnIlW
zAaqXFPXCir?$l2=Dx(ZimnpXVP+(WeVAXDC5-Va4ntXqT&!TC+*zYWJQnJ?ka6!?|
z>~uv?{9LO}(ctc<JB^&<b$D;r_hoE4uD;#DuYVic+{qsq#lC$`eYyVOoyAvXFX2($
zA|GG8U!_LpHph<X{3%cN9DdXj-4hpDSI)UH`B9|(og-GSpZP2^@UrT^<)&>d(y?Ex
zZ7u)7v{T|bod337S>nN&$imCBMyV;vD(ai$g1=(t8M`fxEB$-GC-~mE;AzvGmZo~{
z?fbeXniu)<3#vBs)wpfYWjGRHW9Y0F6Z~lE?_Et#ZrBNlJE?dvCO_If@$bZ$yt`F*
zX2@@!D4qKKajw>_a4EiTH{61i`Q#MEj{k1E!S1i0)=*!eAybjrS+ZEtT6S4=!>^oO
zEak6O%$fQ9@7FE;Zrx#$ig`btpFFuV-Dv9bdfTOyTyIK~T<1Nm)IPc|(e>=t=bE!T
z<2+3_OB-A4V6A`n=4hvoK66!}|E4*o7cPALdd;`qH~Z9o?PEPX-G7_^`|j)25py1A
zgil&yXSA-QcTeA}OW$&O&i8O;M+WZ_m~v`SeL=<ozT%t<=jJ;t5*J&%;n~bi)8z`c
zllWh(;m^5JpL}@hX|dSHB1;?__@1R5(Nf&LB0S|m<%E@Huf*bB&NmV?OiA?5z7Q>$
z`)lKy#5n>P3~F26o(VX##~?9Y_D|$LFX=1MFW$FKZ}_Jo?O-hw!mT>><t%BA$sZq=
z{kg|ywzunMW1qN@Y+&Z{)Jfq5kB=NV7^3fdDnLv-SNM#*er^4)5~rDqr!)FZ4N=PG
zeHwMJNd8Lwq{BX)YJDI5CaC*;oYtbcb=k~@y=kv<Y>lF~8_zp_PgUel?W^}M<Q-+*
z>uqu$Y(2QEGGTU=QO4!Cq7ntcJ6(AeeGh|Eww^DyQ0+>5aVqEUx>f7qy9^%jZ;+q4
zAT^<Hir~rz>vWuYJ>qAG*6Uo-yY*q_F{evgcBwFPt9002487+Z;bZwMZ0;$><^CLL
zyZepOEtJl(t1r=*KQn;ieP%Fw-j<o?@>=cg9A0%)Yrz)xh29UJU1+cWCAG43WyizQ
zr((AhyI-9rbNt~i<J2bYqA1@mF`frig)_4m&K8QebNC2F_T0=`yi;h`w19y6r+v2H
z4%Xb7v!ZQYM$mQ@OWQLKkFNA~oxUUH%!c`Q66fcr#?CcAe&K#Y<LVOYrw+fZROY%o
z^=kJK+wiNK@BhO7h5v0kueG1L^~+`1<9H|bZ{JN?nUB}(>@m#UooM&@p!bb0Mr%)=
z2~Bs*Q+h1nFC7>b^7#ADmA4*t9C^Qx^+A6<_uQPF7ngT0TXd@SxbH)^;H}m7(k0{$
z^1SA-=e*hT=+^QX2KM~THqwsfVbfOV++xnidcUkMO+0boo<feYlBbI{6ka`Tb}BPs
zdWdQS(`A$2E9YAX-aZmgaaG~OzTc-8DqCz=RxqKj<MgVAuD_wDT-5oPJ{~q%ZT!Ce
z-?Ot8N__PePO}1**-AXtI%X(m;gddHKf@%aO!DQjYx||jg+!iM`c)}yz85aAa_<zM
zP1FB=%H9}Y@ptLe8)X_YOTSv=Ha35GSm^bx`Wmb3wilrac`s~E-aPxGT<~H8Yr&z3
zzBBgEJ7`imG4AiCghP2kCSBjS?rr}tL*MIF)81_x#cfw99<Ntai9D%j^}B2O-153U
znOx56;RXs*m#qvDOHXIBWWPDzdc(V2M`g=TJ&jrVWq-Q;&W)2px>j`;2bHz1P@TlU
zI!D|#HYZ8=OK0K^Ztl-!2Ap5-^{RP)NU&62vb!a}RwhF@ao>k2EBJnA<juP6sB>hV
zqvDjM>6QkLQ@?ILnr$jq?`6!YthUl+F?-`rt0~LBUvBD`J+anT@X`d`e}Rv$T;2Vr
zuI>nv_|&dfJH4-qy?W9$U5nc?@c1M#5i0{lrS59s-Aj4(MIHLHro?7GUvc(f#buV$
zZrkGjc(--M+W)BDXSb6fP48)YjMQ<luKVS$-+8RK*m8CHgFXDr&t6XNk#w#%ms7gp
z@@L{^hQ?$0Mu9T#r>#C$z&3IB(&Rr2GQYIHpRD9p#8v;uZ_9H3!<*k9kf>@;xTN&D
z?RsW*<0%fl2;=6{0Tqoa*Gze`yyN*JuF!`r`q|!!i*NOOU8B7vab{t_?)8Tk-L;(A
zC9vr3HkRiiq3%s}i7i_f&Hp@=Y56jd?}GJ$Ns7_+hpX;>%sX)JV(sjT`%Y(dEwm?I
znkt+ZB`R3AWKYRQi8BT4>RwA7V|N$E*revZoHXI-i!G8<CziQyvYo29dt1yIro$Wy
zk6y4`DN*ay^x@|pA<>sku~LfSoG!0c&yg{F`)HB?kN%~rnvzjLS0+4JqW`k}pK;iw
z$tAp3ch%=~r|o_=Iqt9DdGV&w{y3@muCl*!dKK7KFSDH?urgixS$vW6pQ#Hu65dER
z37C|Ht?Tobx4)X&BhV@;@#9?D#}{*+Rb@Ug5)q7@xM|JD{aWRY?0Itp&urmSc(5Wm
zmu2xA)gX)Cj^@jxN=<owop-lc^4>~l{gaI~LHqCMgxSm0XLUbGZ`vOu|K1`eY@uS7
zxq9Xz_2e1XjsGmIzYv>}ec;dLQ(s=5iRljrd^xAWW20*R#1#3mL;gvDymM-w|6RE$
z>|(9s^X(O<TD$LFiW8d5W{`hq{=J#=IeR)j{^_~6<m=f3(u{sn4?nn*asBp>>=h|7
zSF}DKH8nc6yXwR$!H4qo%I2@8Gn)uEIlDZ1rD&cJCHYP4x#koPYc7k*#V;0|&0oY-
zz4fft`?DduPNv^JG);W6>b1+OwbuGI+lu8DJ^C-7ul;i2efK#+k7nBJJGCIEm_PS?
zk!q1%W!P`qX<ImSCV$?|xxMKp>rp-}%PI|vG@gqp57k!hesK5wY1eZBmCx$WRqt>-
zl3K;Fx7~UFMvLjoe{9-wXsK7lhp4raGF4P2zvwmT{8{*U!H(j0Izm&l4ED;q+}(QH
z{mY-3PgX5{AW`@3regQ@;?5nf^q19So!WiTyZB$nq?fXDgiEfczMUO)^QD#hroEO$
zImNpT-@W=8qWFoizkKVl?wyAxC#Cxz<v&sXns4g+Ig^5__S;D%{<?a8`>I!)FD{N*
zHO)Uh>cZCVdHUUg&D<-G^vvo}?kN`b4`01#f@s(OI0q)z+Eoi9_ilJH&F2!Q_-hv4
zr)ib_F0q2=4mohGJ@x0qkDUESU%oHsOFdZk^SxP>^IWy8I#%tr1D;A}m!&LPI4!`O
zVe1xOnY{Wijvp(MYzn6Du~PQldgPXpRO|PZOv1X33UN%{Q%^9qYWY21o@1)<vMC~s
zv)}n3OHFI)p1_Cd0y&zVSLGrm|DPnk`hn>qGv%q%KlQDBqGGY;HK){V5e<jWjhd4W
zcXK{Bd2*udwdr)V`~%N@GCKZ;*{}HQZtypFpTCTV)#}vv`h6QNG9+5w3wTvC+gG1c
zZ27}xvyZ<|y<YO`(?rIlZ}n>nKm3b%FV^7{@b~5M>%5byA4b$`3b1bYz2VTOniIcf
z$Zh2Bl|K0Kg-S|sz^<g!i94O`d&;Ny>#}@X#Ajc+`$o)}+lyaXh!wG!rB#Z0PYHQf
z^v2EH^c;tY^V7}c1x4-k(T#rlgl^24$e7{tfUT_0?6QU3f|sA#j>#Ubep9~kbHW_u
z9rb1jPsKyUonk&6|GYx(t!qQ@>hHB;MFp>Ce7tjS{_*mMH|@H<K458IZTiMZL_<ny
z*{6;zf-~!vPMF}g>V3imy=h<OEIm-Y<<&ADzSoZmgtC4p6sV^hteoYk_};9(HDG^r
z;HEbkQzo{{7fUGK(RAx}nNYkr_o`slrl6N^mwoS%_fbyW{ric#LS6k&#`EV+`}ew5
z#--g-kC=06PmYs$wn%%(MxiGkJr_=Py1nLK;PMc;7kbM&-);Ev)8gdfVg-k3ADHD%
zao*K;)oz?4XOVg^C5|cZn3GiOa(0=`{`K459C|&`zI{tSW3<}0%}g0jn6~AtpEl>$
zo22A-Q{`QQ(gXJD@%O#_^>~5)n}f%^uLbjnmF!v<$-iH4ahAxY4cnB=9*aq99?51Y
zJhFIF%q|0W?Y}jPwXPIMHQCR+rD)sUBE9%+jcbOge#)KfuP1y%_a@KeJ8z~OeKIAO
z>FWPU_1<#=wQXJ>oBTx~>B7{RkM+G*iA8<oy*c%DE&t8Ag==@+QC|4I#y&$w!@u=d
zee%6|rdbyh95jn3eR{;Lyza#&pUZL#JF{=Ja^A|k8XMNV!APz)@9DJ*M>$+)Jd(~x
zoYS$YusL<sv}HSg9=u`vNlwvY^S#+#9?6B>s!O&^ku}t)?+9p<kEl5pIoami=TtF~
z<%{?l)5@~Ui=Ujix_pYkeE(}buk&laDn@KC7vG>#r#bWT_IU~MQsSq&jkjrbonUqO
zd&H&d;N|Jt113fo#xgH>5^JG6GyI&2tl9BfN23KEh{Q{Bh%WB2T*k2{?n7w$T+v>?
zCDK1l@09*#u+>k_KUp8fXn3ljbE4Gt>z?apGA{ph_3&KNy!AO{ZBAci?_7O9!p@_p
zquppp%jI_a{N+ocnSZ^Qt*6#p)ql%S`b?@I=aLeO!(A1IpC<{dn`pSQlYRbjok=@x
zT)w^AH0bcXCjkpza<&G1`BgDR?NLSQVx9h{j<=^CySLz|ny35mj%(@0YwAs|J#-L=
z%-EunxbeDwSy;8dpSv{UGLPw9S3l?(&AD*hF(;<w+PY79Z|8<+U0-l}o8sD}FGea^
zx8F_)+h%gP<V~BplhTZyTU!r(Zckrnx_qY1^qTek($mi}v(7(ensZ`$X!QCw6SmEm
zc!jO4M0lS4m+PC)q+UL?#_=t?;@Wq$FY4<*yk$QA_rj~`;f<R=@wYAOIMu!D*6CCJ
zdNcK(uuXH%nSW)!k5hw=z~2c+4qc7@F1khY{D<4Isg?;XixxbI*>L&x!!rGvn3zfS
z;{W;F*>omq&+@mNkh8qb-DZaLMYlz5e}uezo}Nj)@L@~8ep^>f@Q+zi*()Da?NCv?
z!~Fi|h5Bc*#!Es~EA)4tb=B~gT6@4<VE_F}S+(7@kwUJYPka69m?ilCoru5Sre42=
z$NzHw6WFPk7rQlf{jG&zKIIdi9sPXxj088&!-O{HqAYH!2m?On8BN8imk%8NUfs@O
z{%=-O?T<V64mFBY?k(h5|N7c?!-HPa_g$F%^S0j7-~HD=)SJZaspwy+(mbQ^7k}wv
zIp<cd12UWTblknNdV2bufZ2z#u7@nXa^+Iv1vSa&q=-UaW=0PQ<*G<-+bQ>#)w(Ac
z{@fgYNh4+Vi&?(&Go8$(qBH|O?>DULN!T9Q*>de}d&x{8;m{D%>Bdv%1fBWW(z~y3
zw$cgZCqf$MKL6U8)Yw~}_t~`AlKEWOQNGDtQ!0+u1uuX3!u|ZC10BwNO@%ua?pWRP
zAUk?n&8=Pg9lrUm%(MNfyH$Idi`_M!zjeP~<cF_6{O^*lrfjr_bVQnx;i`8hn;)F<
z4Bs<z{vr9LnOd^%xIS_BuQ_@8uZy~`s9Zte%iuTxonzfW*)O8yQe$nzF4b3F^{iXV
z67r#9srH$xkAEMrJF)-pr}wKCp4)qjVVlc(m#nb23L(d34?Mj!vB|VpOzqLvxx(U`
zv=fDdQX=HjPu6#*$?vu^)9C*deJR^Hb`EE-=nR#u+}qPX{<Z5`SiVB`d=lp@ODCJj
zrPF#mpL{f*S+gef%>9G=1oE?29dr-)Tc0;)e-Sg+o|^?{HT>4B+1jyTQpx=l;y)(N
zESUS_AuF?fZ;f?YO510p{c9E8PS94mv14J&WKD-$-3jGkCK0P5)h@^fuep(LdU5q?
zzhk;C7o-v|Z;BB#<Ows^3Q|0ERH2*W#X}E+nLS}8F0yQ|#hsV7Cr-Y#pPS*%ueGbQ
zcYkH54=uKIy0x*R(*BpB)rQ=;`g=a>HW+IEn5Ot)_tC24=a2v06a7D>Y01iie-?ya
z&ib(0V^U+sS(j(;OZeozO-}shVD?o+%J5}f&83dcIBPBESypL_QkfFppQ)RCNA6+t
ztl9}*W+WfV7O#GC<Ilg=3AqsmcpG>AwVqbD?8NN1!Q#gCsjZW=BpKOtT_<dnKeJKs
z%Jbd3t2;8z&dW?%DY<pRN9~+BaY13R{y%4Qeg3m(`DBTWVz1<@pUrWdeK>IGosFj|
zpPnz>{i*3{VYGJ1x>?%uH@)2Mf7f)6E&s&=h52sMlLc-t?d@p`sF>__dBzpDj&51T
ztLyrf-sSF{>k`2d@p)yvnQxkc=4>;yrVq)Meu6?NhkF^rxBV<xP$a)($)kTopEgUC
zUb*XjlzWaw;itugFIhArH|*T^LGG#9!+aNSfz1jGK0L+BN%?B0w)$?>pUWZDuw-S}
zyDRBo6Q-1Xd62kpe$f__H`h(Qt{gmh+HTVAGwZkgnv<BgG09N=_c`W;{zdhxjz((E
zWnpHW=Xi04oTB&y<x}^IF8?f8+qo}8<kRhQ&NVWX6|-KZNv%s>IcY}XU#3v^?+lZ6
zetNg4<nvBFTTMy!&w0wN#uM&JI)9%k>y$n*%|7Rw#O_HB9REMC6?yPYm+eoO-I8-E
zKQ4BYf%bE*wtz|{iNmt)cAbqr=PGv1trtk%T08mM9lN-r9pYh+?kJ{<zTtcE_5JNL
z;Wt*8=yiO(^(RDnLj+&r#d$S+CuDtDCg?<X*Q|SUA}xCNFV}zGHir&;EB^6g;m0Gp
ze=x^Y8Wt8zEYAA1WBT_TH<LsBLA}${KO8u&we@91WK@7;&-q7_Ip+6m2r4>Te(B1Z
zON+%r>ushM{#3VobmH3uyMTLpFSm=|YPHk)eEE`Ld_x`EJprCrrFF-ZH*=M~x7Oo2
z*VO((%d(xDS(zj6#`k`Y?OlxCw_0Q_CR?mOQNCf-y5}0LmzHd24t}Low&}HTuJgQ^
zr;o19zNjcK@^YTqW~=znbywQC_qc1eb6i*{`1(((Z>LSYQDME~(u`9^cb8?T7c6W%
z=H~Hv#*sDyqZd1tw^Tb$;*ro!`mFYIQDjH<9VebkFXWhyKewBkcBp-wG<PxYo7%YO
z<IS%n%9}0cwY@$5wm0nKa)qN@t}8u#efDxYGH>1a+PZVenW@va7H0e@tdozNwsgK+
zfp*=+6Mvjk_J+QQJ6!)<q~y2nt4;P19=lnO82uKDzRTh{@8aVrOG0kG+_mfEwDVJ)
zc4lvrJN|T=!L#}g=iM~7RXz*<yXy4UC*CiPo9y#1PJI}eo|Jb};Y9uV#X;9*T%G>w
zY?~%O+k$@?OzK_}?bn~YC#HMjOmPB#K__p9fI!Y8U6<2Q4VP|yXnpiPI-|bav3>9V
zdF6sO{d<`;_4{OQ1@$OiP%I7PQ_p8Kf76x3%=qoS!HT98MN@Vi))iT(m=QN+ZzIbN
zKkZWnoPGN*XKgCnd?%-<z>}9#`-wtSQu~DsI=L$v?adeFy*BYFy%E%y?z&H>HD2b6
zQI@OjkFOC?;<MNFc3AHY@cH9>^)*ZV`{?Ek|Bui9<&Y*8{6{Bu{gU!$Y&yv|o~d5!
zO+KM>ILlo5_xvc%qf9q6+3a$^|B<o}yQ7`imHF3pneU?3jY{egtqrWA>GoI8=p4&j
zt1W-k<e1Opf3Zu=Zir6#@u&1wEm!?2;bg-p(z{ER?}~YJc<MftZuO{#qRSqzRC1Mk
ze_tPU)7CU8q;c6K_Z!z4ex2h}>*ap2A$#7Dce@@PQ+1R#dlIhpIYrDO>P)wfg1wRB
zRmXsiFT9S)Qlf{1bRvD%<k`Fuau2QBE%xl?!gE*3*yEZ`ecy32iYfK`QnOv<_oXGI
zYUZ}s`&({0k$Q_oy!m+2`PBk#HCLVlF0Olh&}foXeRg2mf`4`r=AT^*-+amo6gpRY
z%Y0VH>9?2Mjm_&X-g>(<#WVU`c|=Uy{@58SZtfF(lDO;5&yPDzmrtCX_mN|7+nncW
ziI*DeT^S75{r{|a^wQo9wtF3ai(Tw3yYwt!c~@M|CdQs4hQC-hvmg5|ru|PtWzmmq
z@4wnJyqLW>^mOmi`WQ~Pq7FAT!Q{XRSyN{;8n`8IJaFBE)oF@8yX}$n@~2*?iI_iY
z{Sa{R-S1_4<Q^oP((G|Rx=F%n|Jt9|>=rBz*rhBb^2*jo#OaCm(w7wiLONc5a<1)I
zTgCNek@)i~{)SJw_Zm+TxcO!hXO>=*z2~M(skE8XDl=VLP73{=>;AP~RBY$k)LDrN
z&!w2;>(7;Llboa%yN;(x-|ETkMTg|P798Ly$uK@s;j0usbMBlIaox(RkE|DZ%DOde
zhFNFoqBono_vI&BpJckb=l#+fkFTVMe7WJ1$eR#&YGV1K8y~_ozMJT;4=nRtq$;~W
zF#28MxfFvl^Lyf*-bIx>J<_`NiebHv=*j&O{V!*~(B=Hhe@WkIi&olezQ*L|U3EUH
z0`pf#UMyq1xIFQh*Y$v;<53K?FO_Rc{$|baZ@sOSwVw0w?#1@^!|yDQZr`mq_xhx&
zU4}Pv4}@<ImWz1tk?o9*X>s{hN$sHf9NFKF$D1^6-hAuInrQu}?Jd$tOShi4)i+A1
zsZaSnse0PYI-MJD&#O;fyua;_K$w6tdxqz|n#pzt_<n5*y}wa^O4Nx(O~R_?H>NPJ
zR&P@2GylHwDXU28%d^v6Zk%<vHf62f)T3K8Iv4|gd(3X?YrA20;n3p4DNnASJu_9+
z@%NkC|7R(_jMq7}^`EZh@kWJ+kMjcTV#6$77wp~nr2f^T8&TSCi^V>MKR<9aeQI0m
z77fk0%x$aAec7>3qJQ767-RD(@B0Lw79Tp!b?J)D=FX+o<-69L_kP^5##&-$x`Otn
zkWazsZzt!K2ke*eQ+wK|zi;Y`<m8warye~PWk1Cpd@)b!%w(4{t0i}dJUKegGSf2u
zG(-E%yuTCN*Y7o1Q*ZI{P{a3Z-k+a-zqGyoYkKJCps=+M4m><xzD4-SCY{uuiP3TH
z4?}{s_2@AEydurJw@<sBeVKdzvW$hxe{6Zb^kek;lYVR)<oq9;<F07ZD*G+@qQGEl
zx6pnG$uHm817<v1@<N^ItAaJlu9Moye~<6~@~cqu{KR!e>Zu0py%xc@>T~=2E>>+1
z=&b+p?3jksg&pRzzuw<7qq6@{qG1Zd^Q*7?Rc9YyJAEqU+0Br%uP?2VwOce}s_q7j
z6;Fh=w<~P=&a>UG>*V(9N~aYH1Npmi%C8+hQFpB<t?KhZ*_j!A=JWn^J2<`g(5}Wi
zqwVQLPp+B5P1hw8)gvDl@9{aEx90ey`q>6*FTXcuwobIK=S{AWk=&-MuTc?Mm!j{&
zV<!0W$iJZWsG=A3o32e^s9DxwqZ89RQ>6Ij=6mK%KiWFxnXkPo#XYrZEt_zFysX1~
zW0&}yIdc#A@O<KL|9oQdXQ`tM6FD4gs<JPh`?rcu?_|^GRF%esXFa<Y|DL8<wfdoX
zsAv5hXG6^yErxUdU77GI^W63D#~+*n>gqo)^tAXiWqJ2eJ?Y0i1?qC5XHFdNw){0o
z;ma%g0Iew77YBB5`z}blt=vC}eOW@L&!V3pr}@P;S%#c2Skm){<3+XX!3{0l9Y#LW
zkE^|MoPPA;`$IvIbDwPg`ju<WfqwPlRkn_+6SrhsSY6+%v{dPA&qk#qI<}V%3Cs@r
z`~TLq_6J@JuAB=t=HC9+n|pgkXJPW~ZMnCP9WhhCc4XV+|7Q6gSKr$;J@)GCb<BLe
zN~WwCk8>ZJ&34G0^owbF8qb>Lh2C?|_DZ<QG{tcoyZczD#^|bE?TMAMUnwVR9Go{j
zOMKg9CGDAtd-lIHOs=27a=y1dE%c??J29Uu&Yyht*OKr2l(06;ofpk7==#6i{+xu&
zL6-G8aUxkCXXws4eL}!aEhRgW^KbXbts2W8JYAvsKEb@yAm&1}zop!X>wgQTNGDl5
z;850o75&CT%6k8KC9e3Mj8*Lu&b<7v`s+ubL!F0`+zb+`b+pcB2Qv59TP&9UFPMKU
zGkxpFTeClD``vygF7{;N?)OPX-jhuKdfnaZuPbode}>DO8EV>fS7xa9ua^!NQT!`A
zv-Q82{^q+@6Pb4KGabv#cp<V!&atv2^m=D}|Fg<TJx~68<xhFD<d4tmlck17zbrko
z>;7TR=QndjD_w=}>Az_|u}3#;R&+qU?4NCO9&a+!xjFr9?WRDnB)gpHXRj?6X?(GG
zXV|ZK1!tHdLycY-lnVG~q}+|Pkb7%3=k3K=r>EN~ehKB)3p?DmIOShnjbrk<^E#^z
z^|(u<RQ{D~w6KkF@o31ESF&V(#}lB_p%K{1b+B}*!prp9YYUi9?f54WCd#{Om!NxB
zX1&9#V+#$hySz3@-X;<BXjjt1PO+H+^Z7P^2>!(}yYX7^huMF(U*3H0)2F*4|378T
zb$eNGW$#xDjp!{~mjpNXC|{FZ^R?>O_Lxnp?9y-TTr|}_nctbMNr$=H<jDN#2liOm
zl(<B{e%fNV=xsoI<;$MFxhJJM<X&f7oqWgS)HWtg`FfcX>-O~}ZEfJmdHh)TRYQE2
zg*5-fFmKLUnJ0fwoHlCJaXYJ*Xk)zo%;d?w8J0WOvD<DHKcl&G@l>DG@2hqnF5G!~
z<sOl)UFtQG>s4w>+8;aI<cfHfwQ1rlQOB6`59+6x2B}IPuUc&JuuCE0|ACMlXJTZz
zr=QH{o#KCTL)pXY^}f{%CUZiA_A{N})c*G7{>+NNyYFm@UZlHTY~P;8tCp~IbHd7X
z;cWRARNEK+H|1!(@^i_&v*K3Yeyp7Aesxp%T8^!1JSA0fZ<n%Em~2#U-^nU-Na9NA
za`)&shLhb1Go1Qf)m`@g|M-GlaacG%M?*o2%Kzo(44V^XX`h?CeeU#n*^|CXNn90-
zm!yoBKlv(Gllo`noc;qVw{KNE@T`ofW|^D1iB9HGneEH@9<=Xi5N$H`uD$Pe)BkVr
z6NTrYozvPJMCMfmueo7fu`~92xz0OrmtN_RF7dLLEJ^)(rgCcoxzvxZHh$w)km9w~
zWA%sMtj48wFD~9`;oZcv%cAU!Nd3W@c_t2z3p;;KZn+|w%*C@+bfNvaD7DP$5W5$@
z-6g-x-v7PyRCS^3`+#X(DOs5<R}P(Yk&V09+GUivNt3s1lk6A%ZiV)D#u^JvW9lRp
z2fCD(@O_^&|9F1aa);R;efi2IN<D0DH^}EVWhZXBaqoi2`u)ewI9dj;@H-{0w4kPb
z-_Oei*=DaK@1^AKUwF}cb8^*haTWFt?6I%q)q7)~s_<Uip~;h3F{e(GE8}+L6z_Mr
ztIp^ZAJ00#`})-`>H5i)5qwqYHrs#CZWR8Z<yw&3wPX8@8h$;^P0SY`AD!SN({=5_
z-%V>)N&QUv@=$W(#w9l^xV0h-{a^p9^3c9o<WX;5R=-Z_LFB<5!TBrB+?Bg!bi4cY
zcFFH<{-^WVR1yzwo1?7mGJBm#$bW}Y?@;lS-sEK4BIz=n=P}RJ#Wc^n{(rdrI={M6
zQ0{~K>t;N*>FhYNYSnSxG)-HsYtAw6c6Qz>oEcReI-$z=iu@1rk5yeCWELB9=*O+L
za{0PRX4?Ai^*b9U*LSH3o$=UH%zH%a@7!~L=4(x@tj}D*?iNzuSRMC8vS?O;zp}g5
z=L^hdV~fwPZm3i$y5~JxS9<Z|Jqr(B;M?<Uo@v=<w@_udOAAaS6-`pEcTRSD_5Y-%
zn8hXizMBg#bl<wd-@NC)eaR7)Z@CMeWL^Dv==mM%1FYG?w~hDI@4RuZymobJeYl-c
z!hGYIzf$8~q)nN&=kO!5^WN^i>b52Z|5`kE!TneFeur9Y+W#r*A;0<MriOrpPk3bV
z`Y+X_CGR}g^T9vs!m|gz`F%gm7n;VU)4JRA{Y%%x43$S$ZGM^vO4ypskJ6QuT(EBU
zvbOu|`G2*FK4>QyYDa24(e|#lh<l+v-{MKz+t-F?S<X4<O?K0?UoOa?q3_M!!Oec>
zXX~!j50`gvKDIl!y~^XJRGWdE{8NYXMPY&+h5b^-F>AHXf4ESTIWN-CF#PFu-nf&;
z)TU_PkuS<P|F$_~n(5VYx!ifH`ovCm@3!^+9xlZhTdwFVepFoO$&-wk)%vEd>LXgF
z-M+v0?EBMk=J&o$JZ^M)*<YuizeR=S!U-$Fx0ck1FA?~Vci~HJ%AfTvGk$*jfA8l{
z@fFd}MO<10Ok=OaFjh@fxm5Y-aL{C}|GyP#O~j-`EV$HS=l+d8R<i%%y21=bZNaa+
z9XqAYKDqhf)i%Wst1f+-Aa`@Z>8}l?GG?dW*ULF9S2nLN-R{UPFzMx)T$ike^H;n7
z^Z27Yt>kE^blIi*r&_kYo9`R3n{&;4F@4#B+jYBkzE8jQ%k0Ju#g*sYi=Jyv4B`0^
zS=lS5eR+<h!zJ+!=l*>ii#5})+IHW6zIx@;$o`D|SEFaX=jvS^%fCiEKGWyMULmHm
zZn^WX_g5^d&;R{Bvv9(<ca~w68+Gq`ugUuVS?Jb>GvakZg`xdsuUquRA8!{>HuQTL
z$2q^IdU?1){WKN+w{~{#Ie!*>vYrqX?v(H}aZAJQ$FC00tG}tx@aFmi%d|IpChQD3
z7UU6b?C7#*(TQ8;&Uq~ndhue}KO>`p&G%=wI?nUn{Z(>u?1y@<IHir%F?>2+FFC?n
z*39}^C7-+ar3dTL{?wScih=@umEHeW7riknZ8c%lf1{K7;i1urrSZ4Vi@s51{?<D$
z`<U-1#fo{7DIXUasaM6mzRQ;tVj`7r?AVOZ<0~e9J>H$UvS51SJ>jI2XKuexxHg-e
zMauW&VgI~KWl68CkBT<Fs<+IW9s21Smz!#_)agk-y7Knzd0xIWzNNe2zM{~x2Fbjn
z$frC~Q<l0vb?;rcb8h}^Gl?cSU(Gc$IJ5cARIl&;wWw})YNYS3JsHhuH+npz`3@Fr
ztx1}+HjMXmUg!R`W=mf@5Sk}{v-Yya?!Et(U7SCEFRyIwB*EAB_uT$cAZnIcf9+V^
zS?Ao38^2{9W!75wM*7`ZqhD{riaxp52KULo-0gBKp=M$6@z-B-=RSE*HCOrcEE%?@
z{`RE(Pt>E>{X^^f8xmizZnhK1y#6^$$>ZKWQIR=&Co9RmaQd-l!M>PFC(UxsER0Y1
zdg0lb=`lH5Zl14?+g=_Ra^aNs1<t73tOEJ<?EiBTI2;9E&SE{b{eoj%MZ@{>;M)9^
z0`9`!nqJ98K1$76vf@O9t4Wm6tqIp<7R5YvxfY!$_BKdkO~m9mt!^qksYWXc4(<1y
z|KgKM1iu@nh~@p5^Qya!HP!|j33bS=Y`)xVR?=&iZ>e0GT4j_x`?Ze_f0)FoV<m=D
zKRgKwufMlmc1pvf7tzsM`(3n7WSjg?y7BI1e74Q~sc%AS*<YPD{GOJdA)D|k{nmEF
zgel=lcRwksU$;N>O7iBpJ$qQo_7(9LTyi{T$5P{+-g5Do=gCX^%6@XLekH?xZL#mX
zvq_bU6nXSt{Ft<>@t^6D&^-CX)v7bz&x;MtnXCDhP4>&*`nWH`E9UC*L`f9Nbv>y4
z{PdGs?#I#%udLRD|Jsy%<o>(&leJ5YwtP2K+k8;xzWjr_htIgTKkO=6&~F*CZOhHW
z$6Sy01q&<4?@4I7JBjsXvVq*ZQmt#hvnIMFFJ%qfDyVq0?z^12MyBhFDB+(~@za+^
z2DlkSl|5gwW=gN=^{MjppMLzD?z4T%(~eVF+h-an%zhfQwJUt;fv}ySNzBRGyy_C2
z#!?nR``*3FUBUe8Z0QbmPu2zMT%TH-G+(<k&8(V|YIwfN#vwwI?PFEc_S;2S?{i*C
zCWy7>`W)RYUd7k*(ffn8;>A{Zq01hpJ5)CaY>Q*+SgW`8_jPeUj$aI&7WIEw13O)0
zo=jY<liqr@RPN9bRu-LL*;^vMakuO2sxDPazgDX>_S4_`%f;;Lq39b@Y2kg${$g*}
z?bKHJ%>3zx!db4_e(8Nt1y_!VuDVzi5tSxVE4t}?cb@WZjaBVx{Y!6eauM&D@_eKA
z+e7!(T-$MR#aChLwKE>S$=diq)yc=N-rb4WY!b&YQMF<bzCF5ycUKB4s1=y^B(M28
zVQSA?CCk?tM|XTNb+MT6f^+JGl7oD`J^K_3igJ#xFVXWaJXv{FOzz;crMx<Es$Fv;
z)`b-$iQLkwy*XLqqUgTm8tDe_cS>+^Zx%34>$6h-Ua{A5!a443MGg}K`llD)v0q>O
za8muzvtlx_m7jJ0>gu%B+NZX0pIDcg)jj3;n};6xw{#@tns#r|uxMq^`|8-Hye0bd
z1id>GCI%{1Z#ws-^L`G0jThVX+TdTu`>zDsD}@JIfA4!1>#*QM%3OKx;&1A_>S;f6
zgaX+6em=iFf5%*|ptg2KZwbEbcb1D@YWvg@%=0Xye%|U_PgbtfjbFDf`da-*xB8Rw
zA<aYQ{$2JDl$@DYSv##rFLFnM(}Oh|eRJ=d-bym~C+i%o;CDDJYodIK@iFCuB_+n2
zHb47yl4s%9Q+wpfl}?IX$kqPNsraSvp0>ScVEE29o-GSk|4UB3wsFCwGAY51?IIgY
z_q{yBdvHp@nm6_JGvBXW5T;@BUvG0#%)M<g>((V7Ua{HZM?y;Axo5{YH7&beNGTr|
zUN-BGM(59WCQbhXEF$iuq<4p|%2EA(ZLinS?AzuXEzi{yCI+Pz{9JT;$@1;bm7IBx
z?B#mZQ1&irW1G6q?wdbXc?vZ2+I8Ph5iFa(m?xLvRIAZ@+xjna`}67<mhAC+;^AdG
z^W3h`>EHaWe)_q4)1t|iDmoWryzbwYbL$B_RrFBi!t2Wd(kb;p4pq*7_vJ_JzU6-M
zUQE~Zqm?gbEc))V<@>JiE7w#-w0}KtI()ErO46T+li0Vcx+SHX`SpE4=l(JYm$~<O
z>Sh@_ZDE?X;Ed<dtUoK)ANFFsX?U;Rb_e&W-WO%@8^cTs&FAV){`2L;_k&w5TkNf4
zN!-S@_^#aN;<eJ5_Z8yb@d`xkE%4<v)ahRF_jLIZbEERVGY#ve&bH9KcyyjtoY%X=
zZ(9pj+?W|B8e@~jS$4wY9rM)2?GGFa|7H1hZJ72{$~EZL#b15f+FnfFl5Fd6r()l`
zvtjjVvN~pBbIrDCl<N7$zfL;lzTp1in=?H>e-EwnPx$fBdfpt)`q_SaCj36UR#^Uj
zsL35yZowCo&rFXTm2^J*GNxBx%JV5UFDzF+JgRV0WY%G4#V?aRmaI5C?~>}$>^FZ;
ze&vp+3-e0j*}$y$$iVdM+cSGyL=Wh0*|6ZBSiR=u81?#(X@_%zJj-5ul=bMGp7`X=
zy>M0Mwdommg!}Bnr(admv2PG&{Tj~u$uM|Ul{D+`Ur~EiKV0ikk^fV(xH(+0ZEk1J
z7Q1_KVQ#TA7Zm&WF~sh^;Ug5cooTVhf6wY-^$A?Mv3iqcls7z+t~kc;*<yG4N3Iy}
zbCc^U&KZ8)JZTw6{r1Brm%La1dglC#?=g+inw<|`-&IYn;)v`o<+rd*I&<t_ky8CX
zh6%xzag{RZilODd9=b|h%4lCUImt!G@0s&?q5h>h->Z7=ty=Upcy_?#_rIldGanxB
z`m?#EdwyHe=M^8mH!NzCEc2bWxUc#0!o;8rT7ji`o_~V&&g>|Adt-Wi%J%!agMB-~
z0*<_}XN>#&+LgI^mfjDKe;;)CmPSqV&#@LeQT_DJrqC_F=j_n%=$+&sq2PD^tfk`r
zl2=R4{%1XY&+oRvYQgxw%;#FgJO5~(vt9eLaIs1*uV3Ch=H^NEg;NsNJ!J0{dNTV=
zu~N}4`<zXmez&_O%=wlV*C29rt5tn-&#Udc?>P8QB;MKgRlQb?bNja2YlO2SZiLR;
zQ7_ZCZdtsacR=C(n`<7gSo0}IJ=I~(wUAkV<tOQ=taw~7?@N+oMEBbMbAQS+pBxuj
zR(1G|!r9jcUH1qGns%QEUN5(9Q`WSm5A)CO)R}N<Mmgi;H^R?l(>Y&nF>O~9b~r8m
zVO@Rpgn3I|iERq2Z)53vT4`xkT=gJ+f8Elg+bhghd!1vh@h`MvkPT6up&`o{(e_tP
zUTVUo*I7pn+^YH2?=yolTJ9&?&2%kRmxWt|ll^1v_G(O?@Mddbg5CMkYrZ8fxg@ae
z@IPlim#**2&b(LK$GK}6qwP`cGgevGmRQFKr>*keT>m}cNB7(ZPL)@`{GK(VypPTI
zLVL7$15fhaKOEefZ=8$%{?X6j^wCFi{g!%7Pwl&@_GOtzBbS<s*<q0|L$>)^^AwJ>
z&3?2#I^oRW&B;LlMvoIDEEm1q>ETqge$&h35>0Ql#j9p4-Vl`;%iDVHj&k}7VRyIQ
zg;SfD&Ys&Xepkz+zUYv~jlF8c!s?E{EM_RY?dhEAtHpcf!=Vpmx5P8KbK5<a@l|>L
z7tJeOlBLBY`b|9ZC!3LBO$B@E>b<s8o0<*WvZFdG1^rh~^qI(Gz}*;^G)vFpY|*X>
zva2MOJm02C_+D;z?X^w4Gy6XOsYAE+<b2iMr>T_bQ~8!-dj^Z-tNJ?u!c$m#xE_WH
zY&ctRo9lA(^q;}!r8a!DI5@ZNbW_@@^%Ai+merPh@{i=}%rpMHFTw4N|82e{2NQVg
z<b}foi?&xhNqkfEazS6a>P&;U*^^FPTQPgmG>aMAKjmf3P+H;FUA;W$Z1}p)1&T{#
zUpRO^n0X{zB}ULeiSgsMM1?<A^?zPmW%yEKd5Qm4%YXeYbq)QrX-#&FGs@0h<nucb
z_2B@c%e?Gomku7uR9v6->$M#7KjXZBA~r|ec}7}O4cSV11<zg6Y7*Pzwg36NPN@z0
zS2jGH<?O(*TukiQ(GOcDaK$N~>`HieAZK#q)bovjj2pW*^DnIsdStfCsMSVY_VmR1
zh_;zmk3YNr@KI|N|GL_q7iR0;+Rc#ZzPPn1{<fNVs;M2{^OBkA(QnfxE|Lthu|Ku$
zg!PwoDNief3M`B^8{Sl6*l%)PrgF*3j|#r6JHD<vT))cc+S{EP6W&b=ln<Dd`D%Zv
znwgK<TBC@NT7ip?<t3S4mN89G<_d4j_;lPPNxA-^mK^``)uzpyq5lH3=X}$g$<w-x
zTQ@oT->+$tR{g6L46|SJyg>1nRq%zY6HSdjAN0R<X2M1GlJ2AJp1u03>s(?gHkkIQ
z>FpJop<om;@9Ixx!(&&T6`4#i+TU8*b9lZ@zT%GEk$03kJ1;3cOFrawntSs%`x4$&
zKX*=gtPx$sTwlL$e{}aF$)^>(v$XXjzSy4*6xq|_=+}MZ3V+Ob6NZg{_E!9v`TWw9
z|Bron6=%)OQ}oSVWg8S){b-htPPlP`$w`5QTg`j-+kRA77Rr~fY_7}g=-GnHl}sD&
zl>}sZM(wrZEkCFGrE}55MeogGi`qpeP1z(HF7Wf<;yck@Qv+@5HF&oDH#=DUAmA6v
zD>a_&f`0<atg;i74wqKBX&sdR5%)6f*5t<reSY>&OiS>U&3w)4w)PoERe|k?>l<8u
zo)vLgS;{}H=5*Mq17{UFbF!;)x^C~`)Y7t;ulLZTlOb&`W5#c%%IvG_&YXXCpw%i*
zHB&Hi;>PG>@_bS`jvGaz`|Dku4hCJXZvA@nes0)0b%VzpYhuM`o7S=kUXNXTQ(uz*
zl-0xJDcuWM^L+CQHqQ%_jm^!uvcz2N+Fs76$cL}r?wj#;w!+M`5C0nXY%AQ8W@pd$
z`q)}W`Qs0?KW%zi@{cj{yx<YNw&V=S)33I!xjOUXttE3;uT-&{!_O=6B1TC5XMJH-
zDtqf?gU#HR43zF!JiGU@YW=zX+NlXDeravNNtF{W23+Udxm;P`#BrV9@8jq0wBI5V
z7%BRfzw@Qd>{<P*dJ?v*yx_lk&E$f9ZK2a4mnBVg>zdZzt@zNYVb3ij^SCA|Q2nVX
z$0j4g{hsUpO}cabZba(7R8bLW!6p2E{xMtBcmCKRBeIUCe9NDwrw)fSsqVQP9JQU}
z$HL>T{S(*Bo;&~bibtB}`|GdrSNCO3U1zAjM?Hq2{#1IL8UJ>6g|y1DknDMf>o4&B
zHtsB1z;jZl&F?`@=^vE|J0kzj>1=&%aJ$w1pXNd1?JKgHqWV9Fp7?mZ?L_`bpP!37
z9!)py><Fnh`ss51{e-034;^&x%J$^7@5%pns-L6&ZO~G4<2@052aKO3t`MAJ!Dw+Q
zw^IAe@3|S5L$l88wK$fpZProZbxg0>d1}PgxXj&Ex;NJ7on5qCXlwB)FY8a5KOXUI
zu}cq?-!s#1>X-PH|I;@FNHkTcwMSPzT#~q}{k50U2L3yfxa<8_Zb>(KTfa)Fp1F^~
zRC~^&9*y+@_vDv)?mc>|SM<OZCmpw2+spfBrddshmp`sI>Bh8Mnc?qO27VFwTzc$N
z?j`dApT=ztO#dGEr}WGc@R+`Dd7*gO)U_c`rDS&Tq-Q_Nx^*m~cJqbIN=AnK*-|#w
zCVTsu+>&}G^n2OC=kv~I)faDIVL2T$gS*F4pmc$Dh>VMwT<zpogTR)$S2iYld{*35
zuhyH?dvjr(xrpS)1wG#$xvJ|<yOO!Wr*Yc*-w!2H%k(=Ad{Pb${8;%q<;b46cZmwA
zy-QzR`J`9k>Y{XjiFJO2<j<r(Z+sR{ymPBxCbA>4y-oa1!dG_2mVeWqw<*?Zi9ZPw
zWOGrETH!bE+o8SpIvzFun%C{(aelSs`Inr^+<v!BpZK3;`~LLH{C~BZe@wNxyTbd2
z(~kS);ZGhO+c@LJR?VeRid#7q`Ly)4&7Az6<&?i$X3|@?M_DXYbIWrkmw%VHx4&61
z$^XjX>(`#^n)%s#H-sK5UUItk->i>~YH#Z&tNz|{^m&-|ZEIhXGtc^6cCw3dUijlY
zf5HES+E34Jx#+1Bp&ar@Dr1w~^3~?=Hg&y=+iPFx7w$OEZRV%r*8WfbJi483wtd%n
z?n##vl*$$qrZl=$c59zG;pc21u}-D=myT|be?!KBwT-hDww`nNwCRsrr}l5N2JLdY
zqq2<r_Vq{RIvMJ0&3$}r^YR>TuNvtU)hXUToL@Pu`eO3)!mqw9#R2lB&(ycAOSfk@
z`zHCof03YbPfJT4%r-s6*i^dOgMY%hMR$HzUvYo>Fh1ww1b&;ou&3w3W^m+vGi4By
zzICy8qu{M|SAth4x_CryYj52h;Izm1^I3C=gjtRYYD=HR)@OhGk@|nK&XoTJ2gQo+
zHLkzL(-o}Y_VrP%5XZNdk?OZ6T;aU^y>)}p<Yy0EE`Rx(wn}ose<sO<r|QlBqqN=j
zSTV>daz$Q$^!@&d5B71qX_s~v@YzkcxZxXX`BUwuUtJIFnb~J|BIns_-$#E_+N>wF
zUtmmKrm{Wk@Ef($H{MEj*UN2sUU255Z~C-KcB8WVZq2I)j%v4=wq}K#if<_76@JTq
z`L(PHU(Jl*)%#|g4srdvoHJb_?(dHKK5rH&CzW(eHg|RX@ap=6O~2hjp6YChe97Bh
z{b%j79|_6VT#lvd8ixqlcQQE{<!fwy(CnVJ?e+SNbyYuI_FG;_iTpa>vdN^rEBSL+
z>!UrdCUVWpw3*Xz)u6EZ=S*dmXn$7udB<YkET3)K_DCf3^9GSj^^@jTv-EE*`zZV6
zF89pymT}6yLEP&+eb{Qt<F1CK$feyo{bp~cZu~FfmfIcPx2LHXT;LM=YQ8P#=H_`T
zzcm_L|0rPU?prtei;IVW+N3%Ae{OnUkyqc&bY~jxujO00PXy&Ktz7-R)7Z91=9pP?
z+4-aE+&CQzPnGPFedW>k_L+#SD|5g@$-+AVAGe-;IW;L%ds!^YTgTt0a*`HtZ@+Ez
zeXrY={6v{UZ(qplJ9Ol%rCOyF$E&wfUoHJwUFntL?t1HwVH{V&?VI~GW^Z6x9?SOl
z-9b({{rdF|wHqV*FF$3szw@wQV}v97iIuBTEZ()<v@PwKv|CDu?`Vsq)xQ<_A!Zgv
zTxu7XG^3Ve9^bWP;kndf)=%B|9$ASB=hpx4%Q*b<{?jH_cFuc2RTcL>v_<9V3WhG*
zJA31UTlcl=%Z^MJXn*CbZTMl!%x49LmUEjUAAL~Sx%yCgy=2UnjXXwcf2IZ|&pMX#
z?z7^pi~2YCI|^BDzN_N@_&UzP-*nMW?Hr$<+a>mWv$$<&-fpA7|KYc%Us2+5hZ`GB
zwy)WHYIPk`%)K?jHy`q+y$smyAS-z9{hV2yuXiskxF)@5M%xjm=mw_mS3j<>4PTp_
z-=dJe=;!vbB<~X+nCG9b|0nYCMdmbT`F)a!|5{{QHF9e2#x$;UlGRWNKfG%Bal2Xx
z-g(y^1<wDQD6lB#w3z3Fo{e3lyARoCZ#lE;_94}9h2oQI`8#G!3p=!K+Mx$6&o5}s
zJJ`XZ>vg01T*?}SP2tnLZ3=EW=Kq{<)8=sBpUwL_HxzX3o;@x1lAGFzrCwq6?y>H>
zaz6aD*6vWN_ey@N;4@|IRjJn;O{z>f)@-YIbs6TBW`6DvnWo)iWp%`^|6ugo@K;{P
z1L7<Ud$yi;zAabzCjH<Sfynj7OGLhZ_L32Jb?(+&h4@MBm$%x8vpXp0Rz7i`wn~{t
z)990~aM+BaGE#RNSIp<gsQ$V}@leI_XZ5Qm9Qn<5SLLEm?q&Jx`xE59J&b74=ydR}
zFbVrnBT~__Cis<LS#`*<{|t5SV}rXd|8U!!%OlyMzI(}X$&2P@4)*i@u<k!R-JA8K
zM&Ud4!c8upRYVt7RO%iJ<c$=)J0~f*vW%4{>h*yqOF5=WJ-p5)#qz1-m0ZVEzU1S_
z-%awW-*@Rpii6>o|8?>)!JG*dVS$gHe?BQY&7$6hd1bJ5t((i7Xo0DP&w4}mELpdu
zTRi>Ygw6>TD_iQ_g)cNtx{_vgB5GF<y9>)^_It{|U(S8G<M8D0uSN9>_|3Eq?EAWR
z)6|j*v)K-7&HUbXtnxV8z4)+Kdy1z<Xj7@sp0i%9w_emAja+%@?K*wqKt?~+v(2~t
zPG(-}S{OUYBllJD72dqt#V<d}+BL*2S)D&mq$+bq+pX94wA@<mTz=y=-(`13w6b+w
zVI;4&5Sv|x_uYctPYLI5r@!g#;`Yh7TKE3=RHGZQmMx0ExtZOb9%8jVJZVCb&BZMO
zOjA1b1)XwRjx_h>*Kdf<F!EJ-@b-8>qJ+T0uv7U0yELu#IG=xhJV#A<*1Arm%8j4H
z-HW(N`HnmZxOcMX&!NtkYZeu)t|40)He8LqtJM=Kd)4knc|TVUf6n_i_Tp2Ytuy|-
zP41mvnMh%j*lIzRWwm#U&N+$d?MU#LGw*t(MZCuYtNXhoUVkY%7(byt>vLwb4gU$n
zZ9DFi&Aqi_ncbAt^~tZ6^c6eBv_96eU36f7{6)#jGIOWizVtdRJ+#hY@nvC;#L4#~
z_eEZvcEirO`|#&ETk3;1@wqSMlFU*3v*mGXS`F8^$w?*rwu?^(_=UYcRvHq%Drd*P
zWwNRE21$NZ-?&qA>Yne~7HILpC#0TjSIqtMf4jNw7t~0}Yi<imSNTyisrz_*b)<|(
zZ1yh}*FM{x7(tHIv$B)!u3P-LBqO4sFG-}9t(1A;>FOS#GNC7#;tJt?t(_@4JHLb*
z{+qZ!^0w2_DIspc%a&-XO*FcBv77mB{c@28Pa*B%SD%CvG#t;hZ&|P{qiVst)>k?8
z;SY}I70k|QdGEi<blLpFHj|6jWHa+WE;no6T=&CW{LHQ0uZr64PZ964Y;vpn(XhCm
z@yX&Tdh-&rHoZ`{T=Kzg;bl#$#mYP^)v<Z2eD`McYG2&H<afr_lZzHPt$%iN{*Ap;
z^ZaHsy;?0EpLg-#u5{xvlgBa(SFBk2^z1_O2Il7a$eg|2{JslI4nJ(FO13_=*Rp=n
zbW^!Yw)3NUZU0}6nQ<pyarQ=4H?f!X{x6%?CV#gz>8ZQ*@A|imFO39x-Wxpr!0?g#
zq6?$b+Np_`nJ;wz-QI0&w{X>*mR8&SF(n0$dkm!}|M;8MC-hPEKHD!2x57DgTkpTk
z(!Ohb%=U*H|K0lXV=Grx7%C(-NnA>upAqbQvN}!r#Hkv&d_T^|(|Qa(9u`<8#=&e6
zdtmn7$(b7Y;$F<(*i$7}%QkLt)0HyWYqUoFz2H^-g@SFn)V*)}D699H>z-5H^k9i)
zR=LIvm5OCfkvli~o&T)6O+aPI;%YvA<+f7B8Rb{r398udzI$t9z4o$)Cu23;l>d5L
zZ|aKnVM@$h6z}FDQ!#(v-Zwuj`F2m5eRf@?a=DwK^qu34&szomK4Q&Wv~!li{gCgP
z`>Iw>VqC-XwnF^S;Tfj41Ybo>oAvkomdhI*`uVneIM290L7L-ohLnuIppW2()h7Sr
z*Bug{Gy8W>zO;nwOQWwbKeoK9zj)DyN72%jlOy5H+k;nYlFwf*ahu(p@$Ohu!0hXW
z<|oaa_x@gG{USB~rOgZe7kdt^snpMqT_@r+Yr|Ik;=c(s*Vo7G3!VO);{}VDzQ`hv
zi-#|F&ba&H{mKI>r@Ql`X4uEG9aOYeIVvJi=KG{C{OWS;_$n>Q`$GNot541g`|z*6
zZ&mY(v+n<=FRzM}-13Qc+h?h)EY;uFw;$T}?ChNjpRdd~p?x5?_IV1+<PRTB9-W=6
zXz2XlW9D}o@eO;P_E<Lm)}H=zgVrau*{WZ1PA+$vqTyrj&C0M=wB+6fp<>tj3qLcS
zTr~Ui=B!&ErYLqK7A*@AYg)c&n&}#rxymo4?>*R5Z>7ZYr65ACa0N$5Q{+vnuw$qC
z4{lSvQnhEpq-XJOmO9zIJZ=Bw@cH#6n(rQ#7rXq7YI{?}BdPi8nO^a_H;2X7o;Wq(
z1S6kc%EM^6BSre#Evk2Hejm%HH-)+N!$+^ZH_WwG{=D{@@uS-NBafE-Hj7k|JQbv4
z8vSdUf${wlM;7sA)zz*zUdiuPEs^$T%A2CP`?Xffw0D{C3G&zFF~60bb;4`T!kYeo
zRwn;&@!%Uv)~4^hFm1oj<bN8=I2TulAKD_kV~<I~cDu{vm6Ka+Om~NW>|cEA=HuSh
z*&khg3z>X8%@(a>-uz#FUa4af^qL^k=?e4NMFlM_knROCG%zxr&S=Lf!fIq>XkrAt
z8EAWI$eg>IbbDCZALRA!-o2Zx{QI$mh2`bk?}Rwsy<2y1F2ljQiV+jM@712O{r%?s
zzrSw%@0MpzTem7QyCism#!91(8I3*-lN74O*~Hw^;u_}cu{j~9^8C=DGYVXrOqn+r
z85wUr930SL$=Dma#^KweV|os8494cl+{Vh<#>VyhHmnX@8T=)`8qPAP&10xs(7kci
za^?xF4!M8&7qAqSB^nr({R?1ztGnh+qlvs;k^;NGx;D4B_yKnwGq$$<6aQ6p8!@Hy
z`sO;kJ7*TgkX&utptIOU*@5xNKgKA=6^`E+gcmH`xYm*(g)e|Pi}6aRYDfrUkXF|#
zuT>^J@{RSOv9dA_e*Z(eXRMmFOT^Y8#>LT>iQ&ouc8`^-SN;7P!hCBs!(5#gj9gjr
zzxG$!@%-O)+IvOkicD?K4F-R0nHyLiu$2^T`!)NUeb(YXD|kNGFRk4%%ewK+KTn1Q
z+e!)xAEYJ~m6xY)DJU&VWU-7iu)6Utc>b)VQ;iSEK1pHzQD0%jnA`Z@<k;1FJTF)Z
zHnRNFK5##i;mI1G#&72i?Dw0rpkDK>UDVHqUmAD+xqrw`>ftBzWpDSNVLa#X;J;UL
z=9@qL>*q|GBy-^0jZ^nnGxBrte<i+1dh_TNkHIhY-xbVfSNscA5Kwsb>d6=L_CNKj
z=lsi`^<OVm<V&HEZFGKoa{c%Jb7pMZyL$8W{a>He%ik7Bd7tz2&7(i-I~*EzPSyR8
z|MgsbdRpp#el`6?3d))bR~=LM?r2%fR(Zj_{EcL+P0YWI|D^q0V*11n96igIkou6t
zp#DPep?f|&De2z>w;KPs|E)8+_RC4uCr?g(ncuQ)Bm2(V)&J`ginXhaKku(KuP-i5
z2-?2AsD$-Y$N%Xc*;)SE&tSd4dVq()im5?v*)*T}$$t+|-EVL@{>Ng@efRhj*c*0k
zTx)#c`YD+o9~-`xnUyg!#mtFm+;{K)x*zw2Y`Db_oH=#nY4bDr)lC2WOC+m{1sa~m
ze{fg*zxJ0tQ^5bt3rys1XR>YD{*`40<JpHZ>qQ*&<VzO(`=5ULpYrr2tJkh=+9*5W
zm%Y`m`Dw?>!nV!(pZG)GY}SGOM}z*`?^!!Xb*)W9npc?KvT6TKKE`k8>Hf(6-t~=c
zPNTf?PxheyyS=u_&-uHfe9gbO2nIGWzit07)LyuF<(S-yH#`s0{<^dN$v9Mh<@d#(
z`>!(1*s^8G)B4bmm;WXk{EzUwF}vx^nm4)(Yh>myB&(|@`&T^U7u!%&z_2IM?nMsU
zmmlqF3~FxG6Hd2tA2@jRsCWWjQPY2GFR`>RhRgOh>N{l^)K>o&jGV#f^X<RdCWaXf
z|J61z&zSSi_X&%^&Ogfk-ZyLfjeS%vaq5q~`tS9(-^xc`J<6F<&wOQzQSrt<<-(Q8
z;_BM`vCsIcHr70lU;qE#vj6*q0{)y&`!jp{3XKzoXE)AmmOXIb*csjjNy+~$WTpGx
z|1UEAd)@Xk|7Lr&5BERaS7m2tlyeCFaaDDKW_(9!RB^=2`7RfIEJaxPA4jTATQDu>
z(ekTjX8P60eEcIDwBW+_1J@erbx!3gSZ2o6?w{iDTS&J{z~}b%v)i7mdTDK(`Y<-x
zzS92Bc_Ag?N~xY#j**|V8K2%=Vsd;_W$Uf`H=l31C49S+;gzs@lFeLO|BY*c->)!V
zxuojp+t;iC?~Zco=t}r)%aGI7sEGZcZ5;bR@4dgoN5f-(l~!;0?ADqXA-w4VUv0gu
zhE+*sYu2rq+MT!f@1Ocr@*r_a_II5xLPsz4ZO^NcyDp;mtjA}L?N`rTdAt3SRK&D`
z;`JuH^WA5!Ro>)q>2c7>e8YPykFVOouH9Jc#&Mtdcb}tnfx75k$Ks<UfB39IHE-(+
zsm>KEEKi6yv35>C*0hVc>bDlYl-PQ}s?fWx{?v@CYG?mOot5f2?^gRGR?)W6xb=nT
zgRM_g%>;i1oReBSY4NUob^2dkuJkwIpZUl@=I5`-s=JO$RlfG0kzFHKF5a`?$0{@9
zhprZyOSqq;dx&m$7sq0h`ffgR%6)}tu@#3D9{!fy`|H4>dB+#j{rKdR-hAXhn!vn2
z{m*x&*T){OzrSt$!n-~<p0mWbgbOWSFX*Xq_jy%G!SY#8f1P<EaxG!DPUoLPj3*9r
zPh_y|x!G_0qpV8!`(yt-ujD?S*f>-E%jLqtjuP{p$S3L7bB`L{bv`uPrO=tLC?iK9
z`C6I#-vY}}olyOok2DL;FOJjtpw0cs?mg$HN$W#SEp>4IXt%Ilc;ThCezj}2`LE~{
z&F(H$-Kw)(o&AKI{v?6QANCJx19!dE^-Sz2tBKAFh?&>z?lofqztGc6Ke-iLv%39_
z@2&d$Lw3vZlQl;SBh(bO<k?A2aAI5ih$pQ7-`$Y2Hd`Ja@zdTSU?9tOPuFVEEVpeg
z%4L%dPWF8yyC!>cqTJd=ob{2@4{NTARy-y+`Ra)^%Ks)cN|*lnFmIXmqYrgr6<03Y
z&#o+y$Ui*eWVqQk=bLY=eJxJk`Wm9PMzZI|@5!NjHhre{uO@!4YT<nH$hUs`s;O73
zJC|9m`^}{#v`Xx}gTUe|vUSdj{FZrnc&|^IufKe8{vX}&+^_{(RtlMP`lpI{*I!+G
z<J20V15f9Pr%n2B#A=()v<Z?tQAek?ac0&CAK$M3@b5AA?Fn|(AHus`-49$=wd;QN
zQTY1uT+TlWgXCI!J~qBFo6WP-S=G%@=A({WuWKr=*7I{t-B<XO-<|z;MJI&2#8y1#
zrkY&jm7a@UE5iRTHFH>fNZsXf;GUdI4SuEd$4>fNCq;3xZ9O<G`>yk4kEn+%{qs$(
ze^^|<_344G$8sA3{|W__9LhiFVbZnioN-mXOd{{4^Xz*4nd*{1Qzl$1oN457p;wG+
zf#Dh>H5Zxry%F3TkIx+mc$1#~R;Bh(<2SCxZ$}o-?ACVjiaR2dt`y&UH(;Yx$-2CC
z=RRv^o~b{d)4qx^+0MObW0k&#i*#|p>&hUZZrS<AmcFi>5ZqVTRbjiZV+H4()%WLG
z^n6PDrEE0AQ9ih32mi;^8F9O#?Bmb!^q&{<E?(=rl=<bi^z0oEWd&QNE4hjrOgLhG
zcD8b+is9QII*AWM{$5DuP+!=<y?N<NckQp5Z?a})$$S*A=iQ-j%J58QcK^=!3f~py
zG73NMPB7T&Ub9#+Hnc}B&HT4YsPf*hX0u7ZEIfN6Ci|%JX}q`<bM4hb;bm#ZPfYx4
zJvDjd;)${;Q<J@9+RWm=rV3^3yz(H4_xU50rGgW}KC9T?UCEgHNm)N6{jb8@y^giY
zs~$OZe}Al)b)zB7I;j5Ie6<Z5W-OdMQ>Ub0UJc8UpHeYN9hQ18qL=@a41S;esiIjc
z@VoDBgP$j#{879*+ktEO*|*OvPitSCurkq&;r~<x|LHwb^^3Eg2TEHjI`6!E`1Q3L
z&9=F*f4&$6{JOejtJ9NjK5A2R=1f<#bKJEf@A*>0OPTy<xMg3I7+iR?sH=YEk6j1d
zq9T6xbX@mp+B)mw=XK|UChj`6SfhD^-?HTgoCF2MRO{C5HthT7V|lnU>r>>jTG736
z(NF#3Ch4V>Z-3*w`PWW$wSK;Nr;eTaTky<i`uFXhMK>JRbJ?|x({sy>kcufsEY8Iw
z#EX}xTxi;~L~xzBWyqCz*$ZAaNqAJQJ5t|!GRfL>0!QKxx%88@KGlU+-`?Q8ute~8
za@onS_jxi2Deo(fr)<@z%$k@rpVcYwPKCMUqQkRp#4_mD+jxJ!n!LF3Wu)i4y_Maw
z-b(0w$zEzzar{KngeM+v7kv@1m>>HrLi)C``TS#Ve|FYAejYE7o4$X$eKgC0oTx()
zr;LlY)nA;r{g&_sYava;zEXw*HD3+q*#6!0<7`Q7NMm8;za<y%xva4=xzeil_Vv4S
zPnHC=+~&KHd-ntPn&S;K<*usfmz<nFW$uN=tJZf<TbD5D`vi-99#>9@rTnOT^l8y`
zyHZE-D5V?v55s3QPCBB0^6*Wy2OHB&)U|c{^FsRfZQjjoT5of4rJ-g0qMJ?Cmp0~K
zZNIf|`M11{zL|0!v-4u-dk4l?EG{)ya%HItpZ?x)iK^+LjNFC^)?6MozfP^W*zKei
zDHhTj)DhTp+1o*4)6VxwB9dDlUu^1~zh-%Hot3@t3afRJ;mxO}EvXWc%)iv5{hDRB
zP`JzIJ4;q{ZGF2y^{j8bwAa}uJ7p^>b&qbly(+S1W{S1M%)swgl^FJ0T$ia_u`f?O
zbY{WU#N%=m<}CY|rGH)8r1JNU=Y!q_FO05KSKs}=^|9RtKLa<d#M_hCe46|qa_i1*
z7aTK{t&3NecZ6PyUNO@p_2jV?ERPb`t%y2yzHhDhgc_x~ij(g$_N8rlXV_O?Ib&Kt
zCim>LbAdkv-@Le<$uL!#pa0Jh7LDlhiSd8K51vwexz1g<Z$(&bq*tX!&u5{^hGgcq
z9<x>~eC;d8SN7!f>Yvx=$XmoNKbe1VCx_Xm6I*v!xW9e4T;=K4=97oNzYqDPab&{5
z{<hq+o<CbXmBe54e((FF)M{MuzV)=)D$n}QC&CN3JX&j%K3)$KH!4Z6xe%^5;pnEP
z5AW9}FsLuljx%oN{o@ljee?O-i}mll5YK!k722G~zs*`?#k<vo`bn{KPp#eEvN*iD
zzhO_K_=<0BRX!p|yM90XT{WR@|C3F>!nQv6(0MPT$I!0Q%cX7qdrg)Ff8rueF8$BA
z+*+)$sQ&o$yuRi+i%pdu|0}%|UglQ*_>Qsfe*f+7m+x_9ezss&ZKwT;BQKunZDpHN
z<Zy9ychsDf3_25pj{IZcZ#|x5Y`*Wfxz^&RzPoNu@hkV({P6I~sjgRMy%5fO{`g~L
z-Qk_(67Ti0-Y=|KpL5Oj^3nBo4Q?`IZA%gL7WM22?$aw0uitlQxzt;xWo4Yd6pu}A
z=FND$)3HI<edok&371Z29l6%ADUwB$_mJn7ZM8mcZ1sP++}t4jOvRv$Z?1VnS4B+S
z40hern7fV(OFN5oB9kf=4I^^XpH0c*D3a>-W-C9JbbUqd$FeIkZpSYy-zoF=%%ur?
zON$P0-Ds_?J&>xcaQ<`sjlSCoXDvR|?b<RoVz1@3`nA!w7vIx4kl?$rySg=e$vNBd
z(&yPC3)1z1kFMmqINMC(bLQs8fQeo*+t)@;SfIH?S?N%?jp^!!;7<>j*>+83GuyyA
zZCYaX&nFjMXQ-{>%bde_Dr{A{QudwoZDB#4i!0<$`)GD9NHCuEQU35xPsMuo11;N>
z=J4!PyZSCSiv40guh(qz3jVM+{^5&VPVN++&s*}ja+=j9vkx}k?l^U|{pe26y2fL4
z_RgY>_m}PeE`Nx-{jLW4`l)M=oZcboTy1qGaO3r$z}I^&@6LbQP*JM0{zx+$XOxH)
zQ=e++LeUNTy5eu&+<b1y(E}fZ7AW~OIM@H*^HtQ~;+p2${SnOq+zOM0zOFxIdhF8H
zL!QeInmuycx$@d)rtYiTyVu{pAu_R3GA~YGv*m`xuWgmWrx$NLvFL(Z+et^2ESU)Z
z^Ckgv-@d+`%*NWEt$V5H*|Ap7ns!r%cT%hYh7pf;x7|tLJAaKq($(|*dfnE4NBGxn
z_xGD}sDAVLuR9*h5W8O-rtO-(#pm<V*bWai_o|Z;ZW%A8O)D$u5A#~^@r~EQu(RHk
z6I9OIR3E?hXz!}ySw&maMDL^@f57U;tL0E|I@bDs2SeuRibKC^IbAn&CR-lPOjI>m
zTf%wHb?=cWt+HFQ)MtD>J30QTV5pJ3RM3lKd*+?iII!hM{Yw=;`$hAe+4t=I(Ea;!
z^p4tk?>&z~ijU8*yyzWtX!AQax0PX+XG(wVmB{H7@#nbpS0I>u(+vmn4S9k$G|Y~~
zSFTybwbMuEM$y?9Z~CU+l+<$)E}7@oc}44(sHeBvY3~$C*;PD8g#H+w+0!PGEkB>#
z{@kNO(QR8DkKJ(kCFE1jxpAG#Rf|ZOoeUGM8a62I71RClDB$4ToeuFakIpbh6~!Ic
z&HRR0QLZ#|>e-3&&sqlm`{1mX{lwt;o3J%(nOma224xygnp58#=A-buZ#{qR!uEsG
z_uN^|m?owARs8O+op-8&cf!V{PM6<)Ot|x{S8eGHj;E7)p1OJ6Dmypz(5Lzg*-cm0
zY*k#yuKgp??u*Fm!hloXmpOcSv_eAm(a9eM#ybw{?P3u1_Ia9CJIj-Ex3|;Tga2GU
zsBy2`-cZ4F+joB~-%^1!%L1-WI`Hseuol<R{#n*ri>H?_oO07&sp`k+m>KSO*c(sI
zjg&CvY)N{4a-F$mWsovQ+YFVDvxS8+pVu#&)Ms+2@3o|hLr<7e;H-r8O5un9-i}D%
z4V-esT4C?)kiu)Tr+M=1GWu=2cd35jvnjoKi_U%fUKO%j(v7iSHuUM7dnq9vFGW(%
zT>8P))U#%4<B{Fko!lW`7e8JvW3rc5_jI7+YVU5NHQh#8d5<_=rnL(_o|@+G?<TGm
zZN$F1e(uXC*XMtpw!9Ob*P8!N=!}5llSsdGv!o4I{4coM7cYJFXr8R+%wECd=J&_y
z{PQ|<vd_4`*LSs#KbRewqi`t7JN%%0d545X!Ro^{7uMLfWCtGHxq9dI&t}F8n`<Q*
zPcx^!@wRnUb6k+9KePY*%+|ebngZODa~FMIzWBjQ3#)pDh5Q!{U+?u=d#h|!{p{GK
z(tPp$^$WlG{MaSPpA$ac?Zk$IlPvAh-CF`)e{XZ|6P<IUebY0E4+642x9)6y679QR
z_SLUzjZ3GNzKuK4D{AjQ^{RHiZ%c_qR=Zi5>y$S3SFB&8HecHLEBL+7-5G`_d2TVy
zagSNBv+B)@9Y<|Nztr<aDw@{sdaOTvhmN#a+th_^4c2cj$K7;Q7re9j*rV&}kMBtE
zTZgCAPu#YW{~otE3-dJF0ISaj3(A7dT#%12*LhmQc0%V_^9}Qp7Ct>e{u<(YC!b#N
z{pM@ME3?F2&tl)I9vgMVD^QF1`%Q<oZ?mlq%5Hm>`_fce=I-?9D);Al_2P9>PWemM
zgrBh3-#>fpDz{~4*1O1eZQT4t_+Aime&b(fThXN#K5=aNoGP5cvxsMPqx+RU*8EvF
zURysdIk&?7Y0e?bx(C8+g5vw1&TRRfAf9R6+-dfhm(#rK!=eqZ%N-JG9<Hvx*1aex
zu$HU9di{+8mTkHlxVAl16R1tAoxHW)>ycG(?k$#?M|tm`{aD|#yV4{5{DqcDAvccn
zzbcVW+%s|7uf&CG8gtL|*k3<$@aQMi6FDnaUJ8`y-N&`S^X~Om5*3~+XH@C9<QOe)
z>K0jLvn;jxrKrA<sL3&v81C&G=V!hAv(wUlp7p}&6BmLs``l{Yop;dEa#$R4F@Bj?
z?brHz)64Ii+*W?w;wq|ebcyuQOg=|rgQ>+eQ_fo1E&KdbG|xr+_?u5luYW#uH#;V8
zmdQ@`51ZHYT~D4R|JA3&XNKoP(RP;^4cQj$iP1s_XP=(jwkXA}NL2Kn9MgKirKt}m
zN7;X7@^8K+Ila59ZpNE;F(0%WS6{K^7nj{Lzv11L@_NoC{EbE|LJQ~JeX(Z$nci;8
zqZ3%qM6FEMHOaF2aQAI$%f#M}tsdv*ys!>TEa3>9b;eQf&kNnIm^8b{Raa+ri}G#T
z@ZgF3yK?vN1ckgG>-OuH?7Dl&?V^NP$^K7jlm1+@>0&TkxXX9HF7M;$iSuW1wRCRC
zIHO*#xPEiqw4f(W_210p9v!)5SE&-Kzui?tP&aI6ROy4Ntwughyv@7brn784o;uOW
z@XX6M+l=R2R7zWvz3}x%BdhACJf9}Fv6m*Tu3y-gs4u#5mt64O{LD1&#0s6KqAQjq
z8kDZ?O9`5x^}<Ui`kkHguH}g<tj!~oG#z)BmuapRi+ve?)9WJpX^;9u;TJq@w<6bh
zzsbuv_1U*B-8zw1=2mECjNF^e9W3l3A383s{MfF1&Q-!9?ovbB+Y1NIKgzGte=Z<B
zXU1yb3%ed03G5fFdw1o;gr}K|^XJGfc{xeCf~oBb)BO8gddC)RXbM+pYkRR%=Vo2X
z;WKGh-7=qSJva3++q%<B_TN2nQl`F4<f8pz)ywm5{C|08*|Br!-^2c_+BT0t*6L}@
zt`{=S<^eWwse)GGzEk-9V(quY@Tf8_Jlwf>vAt58-2b=f_q2~r=u?_LKdafxphz(N
zb;`u8UL89&{@`=|VtRPqp#q`P!vA+S9PV<`_GV2GGCy>#&2P#L_EX#Weoj8}tLZt{
z$$G`BPyL%F2`PG}#7_H^$#kcV$?>VKW|U`ZT}#{j_cF4*=ii^4bASD|X$!?#c@rjW
z+V;ume@u!&-Shi;sk?Q<m|y%_((aXBV!F!x^G&b4;Ty#RmYZbnm0{})tCUpYJQgc`
zYk}%R_K2IWR<Q57BN^zpb(8${PXY^XF8ku8Qkj@uZ=9c}5W3g0-jdmDamhCc{i_u}
zw=L4yyrFv&S6bo5Tn@Q^pUS7-pFh*nUF+@9n*YKRrpe5idRvVBK(kkTug>D?i%OMx
zVaf3m1HVcYrb^E1cddxuTl{dfz3|tMa`F91Z);xv?3|i^Y=!xp)y{!Qh4cTeW!e8>
z^XWKdHqTRTd-Upce~LEG`uuC&()>p&^ZukC*dG2?K-hB9eNBI9{=)k=PJg|)W0g&_
zl*QVoZGTdf1m1n@p5hn%tR+Ki{_>XHa`UoeQ*ZO}UCHLt3%POIX30z;mjjv8nHT2n
zRGBm-tY?w6`9eOg8E5pi#;QHm@Dj?=Ztg8n{vt8g)LOX2Sn<B7NBxt4!%lPc6CZ9#
zII@uQUiTKgBa5w1Y?pqz&1%V$`3JM#FWbLT{-&$7^EZxfGY(f(ab$5w>0Pih{$Zq6
zqP5{f-M^cbq1DC<9xUi>Z{L`e`$xy%Mv}ST?rhFawbLq(=&w|-%&U?7pmQU5_Y%3d
zgjDB!7aYVNrHgW1p89^)EneBD^}7}%u!>a0W$xVQHlz3J<o2Zse5ZW!8=r>1c^EFC
z@R!T8HG6j9#aY|!?<@Z^vI+4xxT#}e#|NRO{3}^@e9v^+P|<Yq$nlk>-T$whe%<mz
zc<-B9^?c8uf@Gon(}Sm3b$&@`Z2Hj0!L|I)>5sXRi_KzQhAMpQ%iglFFmvX_S-P$D
znIAtbPc;2{`ntY)ghBXL-~4C?v)&t;n_s!B_MWX2ejUHnptSlzd3nUf_ocgQb3E%!
zUTFRnW}djs;@6bCI~fNKX4_1Bs2Y`C8?|pu?dzTK*^k`b7?$n&`oC2pY`aX8)$Ev4
zmqJVCopw==nXzrvgX_;XzSC9|IdQT!l1JwM(Z%(x%H@ZD`W)+hwDwv=+NahE>7r2e
zN1LV3JXW56{#L_mwafE9eERv}rOMl@i{{21*7_6ZcWSvo`IGk#&Bcr?f9}*xS*djS
zx#9gc=M9_8rzx$~o9({xF7K-AbDoC;t?iIDy0`Q;i~7{?&ok`Z-F`h;^+uuL67P9`
zgE%f9DdRaGPpqqdUf|C6>4^Jb<9#zzj_B@Kue0h<g&4<zZ&L+YyJoy=xq5lhSDsxT
zC09nYWXAThtF#rg{+_NeFI8FKkT0wLPqoM--D6r49Gz!4uC<!;?zG(Bd*?TO%AI?h
z&H7A{!#}n|mNCp$bya!3x8~fioA=GVH$418M}*3D<(u#Bo9tg6Qd#d2qBZAw>;<P)
zJ+&*(o=b8{OK&XR@aeP8zTM_A>5hE0|0+LkI9i-PafxMM%5#mSOdlkadjz*xNXjTS
z_uXHkB>2gA^@_;sU5kI~oVmH*@tMxP`D=o*FHQ4X-}$Zd=e0*)4|#c?_WHN3dBGyK
zG?jms-X+Df8yt;S`YpPd`D(O&WxdatN@3j@Pmcx4`yDuV@=&mZ52w`fIWNRdF67?2
z`MYC6@|hUn=?bx?6HYGJzb>NjddAiF5;`|_=B%53tt7oa!oc;-+N*0F_9?K`_Ds1U
z8JV}d+UDc5bOpb;|5yV4CETBW!TEggyd~i;&)MdiJicyKV!CnBhgrAPW0kco7E5e6
zTz}nR(=xxmz3<tBlT(7K7p>2GblSV@s+hLvCVL0d-o=&Y&KRt_Fh40^O5YsSm2ZVF
zX8tH$|M`W7*ym2WQcs`%#ab^uE1o=3lNdHt<LCC)i+Mh0_L+ZN5}KEGdEW~CVxQl$
z3t6Y#%;sKszg6tqtnCVU(HtwZR~ESR{&Ufr78~-c{+9O)qe*AJJWI9w8MZ=z+gG4}
zU)M{WuC9f9!<zUPuUAVxyJMYB!|b5rQG2&5AFtY>7<=mFndK!6x-)NW?79**XTM+T
ziEG~H)Hmr1?E7_l^1_;(`y845t=mq_d&TZ{Yv%zUySoQWr|iz2eCgTB`8yVuI+!(<
z)=91EVUxRm_}m7*dbwyzxq^hZ{CW#NdM}>uT=DI>>SxWBR+a+$cg$H}wJI&{njrTk
zkBl}&4L+6zZ6DSp#<P_2{awo@9Des>>-lZr4%{^t3!*<=-X~Xca``9SId4AS>0P7L
z_v@;s$c{IT%4~v1*L?VyRAjzEN#L${p4QHkS^D2+x-V0IYJPP>%}<5;o7>$y&c?r)
zaX#hNvy3In+r{P<cfXYu2|Oj(@Jl&Q^H#;4Cq{R!zMj;4B4zH)qrsc@MqipIx=VM4
zsMV+KW?e7Bls=vKplQQnJ|WuI<@nS$(qXHYcpmT3etbvp-2@|}6k~V(dh7b{Q_rcN
ze!%6#W+Uvnwr#;b^R~^CUJ0z-X&6>NclU)^uelPJ`akw~{(i-W)sq6}w{|++sgt<%
zLG0k#z7*A!7oLc4?1|($y~phHah3~7N$dIci+Osg#68d8x~3Jsm`#LhlGxRC(K9{l
z%OCHs{V0BF?vdR^>W9{tl=b?U%$UP0%fCBP#hH87@!w2uyk@+usc8xMk#T-nRq2D~
zv*PuB?zwAnw#~}hd&ELR_t^8+YH<lC!Dk;ArHbh~&#w4!=<Ra0z<|5Ed~;{pt}5jE
z{p|k1tFzWuorrl6wB*+1SJ{STNedTNEX_K(E2!oP)0F#K<*Qbju^f{QzVW$IJbIP?
z+P&f4Jr0ku9%Ys6JR&{kTZP#Qxq82Q#TWY*3VTg_XIP&nQdD7Q-xA5IUiW^9Gt&(P
zi9$=Us>Om5ET7qSIh3_lB=h9*{Jzb!<J*<$13?<CNBP9mZwd6)vCW;hy6?u*_i>Yi
zaz8Kj@m$2x_LS+*tu>Olo|pX&n|v#74vPv8V?VcCwfS)Bt~1@U>UD4DWTiP>*%5K1
zIpW=Vj)QBe&%Dv7XFGjs$2{?RgVzU&_<A+!@^zE)HYiSAR?l=cGSa($(>=i#6RoXo
z*-f|HILY_Q3T>Y^OATGQkMCb~X!l{0-7!~A21OPw&=L|`#rKX!{Z(zNk<M)QwZcoq
z_rLLG@%DA@_bZ8z-1KIZ^)+pV%|B*3v0iFr&H1eJD*D#1rFmEPO!-v*dR^J2?6P@3
z(xcjXW4Zer<yz0anN_^oJ+$=t-a0d$3t?s(m8vwZ*2b}y+LRV;(t054%^#lh_NxBN
zy$fIJTsK>r9(8T`t;+2YI*V6@cNUf#pKa3=5A<93jn%<9)9h8h<m%PsuSEARjh0Wl
zwB_WT(@J7IvliXCS+Tlf^)EXi`TBLe_hQ~%P>OlymVI=_$-n>3F6ihrPn$Zk;)CDu
zTfFaf-n6p|`IJ5JhMT9>72OGOjZv5PT;F%)6KAovq-}Xsd)b=MOKh7=SA>MGmUZa4
z#k=|2%`h3x{A1xC8aMg4mK68?V^v+8=hJ>nqDr_}D*oQa4#Cdnv$R6ao|O5%`I%)&
z{eOO4i|%vBOCN_E5wMlrbzt+dq)nVsXN<b679_rZfBOCn_q)@0j@9kfxW9SwR88kQ
zYp0o6URYO{XRtJVZ(CoC&-cabwhz{eTD`k4(OKh9sM{HTjt_@_JlDuMIYVh~dv#*c
z;(%!dC#Lu2MfuJ>XW{yEaSXFI%U&0Y8(x=xE%nu_w_LQN;H+uD6}e@zFX@IC<z?Ln
z4Sn^#*U?|g+xpl;hn$H0m*yAl&H29h=-J!at*+|F)|x))>1w>ye<EdzL++vT+q)mE
zzP@zh#jVfX>-@Dp&tIjs$}025ue58w6iQ2STz2&`3P$UmWj4AT`ccq|smQfM?^u&S
zfN9Fp2DkOES?|~H^;kaP*LU@~8cQ|qFlHsqeAc;MAnE10>7H5}D%C$H%7x^e;Om@Z
z8Sq3mGdX3`)ArA2cXLL~IHz%H(gZbQS^F~M(>ru6mO4~%d^WDQ{8&~d_RWII(DkMf
z>Qgj>A}0U5aL}k+H7&(HWAR<fs{sXTGwb@5*WT4PeE&Kw<6?S&P<_rM^Q@ooTQkmT
ze%i0f^G%O8=kJt8KIuu<Or2sYx{vtxyiI-1+TJ>ePvL4s@56-!Pd>>>ha7WgSH8Sy
z$qiH1&+FaupOzTuHeQVWFd_S7fXkW7`CC&PSFe;iEO<onw^^iSY*1#$y#3RncrLE=
z%~#HSF=@ATSViKJzCt&tyE(q~tCr<%3cNNgX!6G8e{S&1tvBBgeKl_>qx7ASkoQ3u
z^Q3k#iN2_OuN2J7lle$b$@itn18?cW6WF8+wyqYv?>On;lHP>L7c|nf`(q^Q>vrjU
zHq<%V_G0R@yrT;f7ao;fZ!DCd^KV=3qu6=778P!O)p6jj*c10(CsRWg>&)khvK6Rz
zl~jtF+>yTROqtO!0};tDp@E`KS6(dS?$&U;J?qle_gkx1ecN4fE-39_kW<&6P3Dgx
zv@K^$x3?2{o#MUx-<iU<QpHDvY)?tO7drlY+iv#LN~c#CHZIX;`m_Jw3?X(6p7587
zXEqxN34i$<$@+V`hvfr*F2Q~7-=DjPEM2Ws^Ss{l>+}+rWTl@IZC9^(XS})D&DvR~
zsd~ZF`v=$0XId|L&}PS@CF-WyX8gw#P4oLhd|VcBe$P94O2O*aR*pJ@Pm^|R3kb96
zo*>|umG))T!@^zNC-Ucdsy-FplKWYfQF*WYXBJkU0-^c}75Q(EJ*|{?Z|}36%;oiK
zz5S+LEWJ&8>W@m9`<&k(o@ITa@O^q;bltjhzHchnJ+*(IW_};5H0RfQHm|K_lGAoA
zl}@@<>{)XBI^#^a`dQaRo;J@Zwb`vP&-|1$gJ}FD8@`ZV`GUK`9?x;w;ppc0cTP{y
z<)&xp%zyMIO?lhoTW-ka>{PV;T<4d_yqoWQdIdX9Ts#>QdSZF~1XkxDech|>z1vuo
zJT^qA=)HU<S+}ytRln}>ah1T%UDEb*uZK58u4O8{y0Plk&n+CnlL|OzehlWCmRqr7
z*0cL-x{{T?ESOxlmSx%XG>iF${(89wWtPWie_H9t>>_)wac1=^VacZRL7JwvdpCvj
z_Ge!Xe8INlarEX#UUvF-v+JK~lq!pz_P%gN#DCJA{f+K|J-X-jZ(G33%VKTNw%Sfy
z_Sd{M*N-#Ddn#{xES-3~en#Ot>rYbQTW5<M-MYiSSkotCDM#RxNmGyguoRwMxx~kJ
zS>I`+t85#c1Tqc7j=WPjoMqJ({&JsxPs|Ply+3oDTin)kH0`^;b=G|5%LZ3|)ldDq
zHMMd{K}3%4uI!`b7i!*R#3+?!=I?nF=n|HqCwk7;_d-nGIgh_DW<~o*>pLxKD|wT;
zEk!i9@$T8{)?RwrCx2N<zhqn!p%qZbt-+wC^80~l=lP~juLZtZF!d=c)Z|?r)B9{r
zdeQsLNfw$nW@oHDUsdUMuDT%5@aIo8k5lz?I`1>xD^<M1{WrFIUdVN)$<`OI?8<KE
z{eGmp>Zyj#mDkdX=FOQtIZS2i9?t)#{^`#?xXQgG%H?U8(`^ye$Hy}BUVbRM<+D_O
z%Lh;IuGTIK&a*#W-#X@9>gmJtW`%;u2A5-pZ^t_ss;suR%WW@TZMRSNPSK{V&SK`u
z3qpIB&aFTDYJ%Vg$yW`E(#rp>a*M7TE&ObB=p1uR=cgmrLvP#1^~U9BY}Kk3l-M%Q
z)L(JgS)Q+c)k!C;ds;7Zby}Acx$F|*^A=lX==DuE>s??pca^>Dii9&?FPSDx4qMhE
z`e(_H6)sc$XD*6}5vniSskEd%IcoozrE*p(i=tM&IaPeFUg7wer(A56_r<e?c!M9j
zxF)MKf$657hR2c1|5q)L%lCT0&zrc4scq@GlpP0C1Noyna;|u@nN3d4xB9QH5*|}z
zze4{(ox;o*pBpdc*uUP{lJ8=8D!knFp;F56s~4uTm)v^)syATy{Q46t!8hma$hCA)
zdh=>h%<ZoSH}0H#@MBv2ZN9>JY>SQW{O%F(*I>QIp&?)I>sPL;VY>ADj00xIFAjg&
z^6HL7t<+PaskR0;H%*k=HRn&{<aOT4XL(MxdTr!1{oR=-HPdn8`oG35J6~`l>WLcX
z9<htfj-8}5rMzpyl;h7+gY_Qo*&y{OO^@*ix3s7G`{PlZIj<j<Dyg|!dDh3C{3hy?
z*|qVPkMWD5)sM;olk$SDuRdt&ZxigEKDB50ftbISl&3xP{q$Q+m#y5l`+&IdY$KLR
z4|%P-tyk0?3wWEW9pAmMU*#7P_byQJ%Z@XL7DumQzAnzO^{MEiX*=RKH+PrrUURR0
zdhL4d|3+)PbtLn=e9cdoGD#kY2{~3%f8_0!OTnG|(=$GOTD0|Mx?4chhsl9{W&MZ0
zar7;Jw(rq|mnRDk)T}mn%G4Xf>8bcBZ_?79`K=#kw~B1Okz%ZG5pJf+>bKoMCT51`
zx_ueD=g5V}FF!7vHP!f)n&8>iIpy<|eoS&Q_T9*F<h_>fhWGo;SNWXb-@iqF*QtM(
z($${UFM9G(%tTkBBP@U7>8A5rB2O$c@_2p!W$moLaf@udZUr6lFWoI*VtTj6Q+(CE
zA9wzQWn2+3YUyx)m?WC*t1Tw@?!>a^C+3GnF-V?{S!eg6qT*0!qt4!aKG)X<Kbd%F
zXV<pAlert%?(`LCJ&x~w7cu|lomR;OXC@>(D@qGm{W7<He|w)#)Vlw(j065}P%g;!
zG88b*n`&ArCmnEO_s&D<^G<tBnJMi3ta-|%T|f9vy4v05ke=r%7*OxzBV)O?d-ddY
z)##LI&P%pFSnVb0c5Lmz2?vtf)J#iGFaKtlxl$poDDIAGUYLHr^5G)&DvS8Dg@uRo
z*yBE5skp%TL-TvNR{htiFUtjES_<8YRHv>!ZeP81>Ksl!Uh%y`Mz6g)bic0I9K-Ck
zWV&cl+@;dfUw?mHZ5?l_``XD>`-69Fr&J<)OZt)poYrO^>%(6<A8T=ltrA`7ovhuZ
z<L+eU6s7V?dybqro7}s=qS^jYTu*{F=i0>BzB6x|-~VSyt#;}*O}=_N<>#GOcZAD*
z()+3us~D}B!V>c~uGZ5v?p<{5mOVwYmp<HMF>P(<iYu#s#zlCaUHm_Ek<O*c<;6Y$
z{fCTI_N)%Ol;LX=ni1Wzf|<2!sqyl*x=Ai=GCZAq&Nk;lI#k`?KYZP$d%ZgHiEQ-0
z)U5e)U6iLT`Nz`sQ)sfqbIBLn^`$T6=jvWH+BM}^!?|cKZ(~MpRV4=(nf*;Y`hkZM
z|C!D?p=Ol(U(2Frjks#x7R%ie6aQ8@96GyX$<(Lmf6`d5UzkvP=vt7H;AZz#(QosY
zb(p+b`N@NE;<+r=>56Of)fcg;bpCm(6FtSQgnL<7)bw!sX^O?Z6CdooEh1(%V{bzJ
zr8-`|IaT|vx3KdnXqV|VDXZp-I7arZXeo^~TUGY&&{^*vOHYe&>7D5;<k@V=C)e}x
z-KuAHbH9AM%l?j`bGgax$@>?tUK+af#6j&#bsqMAJ0{BBKJ@%hXncyqbUxO3VH>}(
z<VAO?8f(SZes5T>dTYCXpjE+T+b2Kx?a%+5w5R@C_9w?*KAl1#ok<5nN*~Vqo%&b(
z?7ocL?Dc*!zm6F_-1Xz=nX>C*7rhmGZ_RYrE4}}7dx+c(>HDHH*1fa%A~MO}Tijqu
zZ|lqc9p$`vKhJFT?Fd|*rn_d=wM&gxZ;FS^?tKs|kpJm)iE7ii!pCBJyp~Vt_FZQ*
z`HAGhYvKBNbL)Q`;cgJ|Uy+`?oc-=ZgSRoMS6Z1;eWcDOd1~x&uRdY<D`jVOHebt`
zsfSrM#V|R2yUuKQZGO?r)7*y=xpWzCbv6lnd(kuTS#$S1j;Vs`Hv(U+p6|$S-?@5+
z{rQ%L+d&z-Uy4+UpYao&d^)mzvG}p2DftFcF>kvH%pxKl9+x>@@Bi@Yv3bsSPl|e-
zYku-?<`<)BKVI|s?-c3W`lMl|V1U%zic9vtXL#K)T)vBc{|yDDzTdw+T=%>(?tAb=
z++x42Jcr9ppMcI=`}S74vn+1aoP7Kqr-6Td>uu{T+t#N{Wa`WP<NyB%hmU*KmXAmG
z-Tlxbd|6xDuSNg$l(Me$@?$US`D->f-`1OZh~2x}q<7Ad9W2~FfiGXR9jaXM;Mo7;
z{lWg*mabX!_smWCcgr|ebUwbE>AOs9`h&%Vcf(7i=GmrtKIWMy#2Xkd7yZrHBBlAr
z!P?xJEB4&8ua}k8xg~14XZh=6SCk?re)c+WHRRJ@A)&8)0&jkYB>tar^2~Ih@_G67
zo_vqKbaR*;*yQ)4`S{$Ed>$@WbyqfW#owq~F(G}5M)0Nx`*~j%>#IvSoof=`(Ow_&
zAl*pu!8=*|&Nb>!dwS$gzt!prKKoOv@VZF8u=<JCj$NFhEC0DSIv(Axo^Ukn?hEzQ
zn5{d4x_?Hxf9(I>IxXo&^-=APK(k-FYE_xdJ?niZ{gzJ*l>PGiYpqbW_1TQVZJmDv
zZ^Yc+5qUDx(!yZ2)RH@*k<qiOZ?0lvRhq9~u02<LjqH=$6|xuaMebjI+F{Cvy&)<Y
zapnC+EhmgMw7omey*An&rIN<%GAGghx5S;6T@4c+RJ?r>_hEa0OS(Y(lW#wow{rXN
zbx&stY1K%mFHBf;dD@)?tei})Z=^!@&*f}u|B#a3dn=~Hom=(m)0YBsWer4x^m@AO
zR>X0JYW{5#?tj)dWpk4HoP~d<WxR5)>kajLd~VmDEsi}O^X}S9*jS#@KmF<X?aobg
zr!}2rE9a>xH9gyTTv~b>&u`Du&wmEA-P#a#df!i<ezV`p<K61Dr-qiS?kG=d*|Wot
zZ~wm9eWyxRd3zo_XWr_+?bOnv@mm!p9?eMpmE?HK^)RzhUeoT?yM4<xnuzYc^84JB
z%0&!+GxvEEq(3?@wJ@brA~s9OnRTWt-~K1Rv=*fQ-5l}t9c#U*+adob(W;5(>=xU%
z%&R@4vW@4)-*-nf{vJ_V@}pieU*_I-zdrGA&*NWDef>e`%yhmV(SGrwJJ~tj{nNQ&
z-j$>$>oIR*@b{VaB_$0@@-Ek@Z#)yCBR=mvr`OMm7MES3Z)LkAw@nM%cF9=iQs1=h
zL*EosbG7~dSH_k|$n@51Z?`+uHa-5)f>RFHZf-wvI>0|{+QzOGn^QI@uD;`HS)V<j
z&Hk!Ql!L&#Sf(4X*SA{;F!TkmzumBG;?hKGw$=Mx6TH8R#o0go?9V3ftNOU+#{4K}
z37xCwTua4#W+nVII&5ezEZC|2wNLfD?Q!iV<`4LTckOz;Al-Rg+RlU&=~W%)`~yA|
zPdn9Hq<j0q)IW~PdLFTuJ@ni5rr@aeI`zHv$E&S;GWYK`+o}_Lqt4gV=g!K5-+$?J
zY5Cm`w>kUxw_ZR=QL~NkqF)B_DkpC<TXJj*T5wJ?@aSX9^6)-eAG>=Cq-UMVFXwCE
z$+bW7<k<d+QK9ltQg63E@;G7<ckFV@jj0xMG#C=xe}$g=XZX5$$-{-B&Qdr2I!$Ox
z^8I}FT}}NAaR-ghcLIu+3bef68D({wxA%rZ+9TtVq-_sm8_c#&U1YqT@ywAGDv2A9
z3Z6RlSaxUffo(7TZ!0eN{dv3k*XwRm9g-)WHxh0ya!fr`9(HHt4F4PcOp4~Sm21Q7
zi=r}>Wu?S&+%3xv*B8DwUCUl^Hf5de38NB+lp6KQPx=q4>#N(Z^Zf`uyXAJld6pL!
zyPv&m&ajRZ(LDe9<_?vz>vyGGzIL=t(!DxCLw3rZ8@_R>i{`HWq`tq2Khi_=#quqo
z+dV(kc>3JqG%VLW@}R~jbhd}^JpSJ)w^=>8N`-c9jC!`@NaL;~-rc!Rlm%|q<mE(6
z_y2XrnR#)A|7PRmKUB}xmoJ`dx2LA5&*Nd{?k_9KCbGQRsb|E-Y*%si$b;|vPd2h2
zo@SKsJ<jXd!(&gsh*s8~pBdab^-#mjmfeO|w?q_cyO+yy#;mIh33L$knUv90c|N~%
zo%NxGOWMD!xNWjr<<jkG=C9IuLQ*4cS#jw9mt&gnaB_t2;R~*lR-V=V+*ez_XrsCj
zOPc$o@2hXEJ$x-sEMxw@Z*MQ^hEJVSHKjsB_R#w8mrb|a_m_BAke&2AO!{r7a(mz$
z;W`eZ3#Hd5I$e^9jE+(gd_KkOMc0iAt7E@cygQ|t>2|>ULVR}jIq92DWpaz8U)otG
z%E({v;5YP|u{JC|d)o`smL0#=aPK^{y1af%|FrlSOp}%c*X12v`FzFX-TNX1W<EXK
z_w25b)}&qgCQki-AS&Lb-7eUq!>eXdMAo8rE`Egx3<1`SL7VK)YViD*h?5BkE4pF5
zb)IVH#Pk=_PCS!8d1v10#x<`lnqRD3=6T5Y@3P5jY^|?YStf0r<uWtdKBKGueHH8K
zBdyCnO{p)RT%aQ6_Vf4!4X59q-@2?iqn?y9<?f5;8qy(Jy%YVFS4Q${oL#B-{#I+i
zt&AEU)#89lENtA%bQhORdwHBoH+*60SC6wPowvMt7w_{kzc<13<k?%=uPZD*-u~cN
zb;pLSDmK{r{`0%1uIq^{v-JL^W%9@6Ue+nzN)6-UUB-q#>ZAB)b$7m8VYt07ss8dR
zZHGO2mOH=AvWonD?0j=$x|pZas(x`T$*sv!?AygdFUdS<{<DuQUq)K%z32YhYGxiQ
z?g{f8-J_7$-=TJ@EOdj!_i&bPDa(`mugA|d&G8U)byMdI|Iiz!U6v7)syI)jeZiJ}
zzK`8RzaKx;IZ3VXa992QpG7ZMPVmu>XPA?`eNVpHn%f*3+ifZz7uRd?luZBI)b#4B
z@#^@1Q;x+m-qf+5Uw*MnP|E69lSI3ESi8=4g$e(j>gG(a&@-AXmHAgRy>aKfxq9u=
zzka?lbvv=syHU*`AUw!^#=mFYb1Q?}S6zH5wDdsjiG`bg6@UBYe8cGQ%lefcSBjLU
z{}asp>F51X<@F-Ji;NF{{M#4K_x{hbLtis93T-$oIVQTS@;l(jcP7brp{K&d5@Uz#
zW+U|?@lV&X=WOAvDel(4GO@$|$!e8<0&kYRxwzg*Y190=fP7)Qxtr#1I&t9C*CPTS
zdNK-H%s(@IT4ot>&uYnbb0gtYW6Mc*>RU8(A}$EX2biBcKKqAn%E`P-d`8XtepYqb
z|NF7*V5vmdj%BAVZPDv&^4&1+qg2?b{xjPrpHrP+U$cK+V3OOLs7&c2Z(la+IeszO
z);vGA<bP|{b<2cBXBDl^)T}7Hl79L5x{AWBrtPn$*PE^?DlRTvexiT+sp!9RHggB$
z-IH*xcRcv(THH=uz4x9{n~v~YJUw4e#^Uc*HKD!=zU7Hu<PYm6ZR>qhr7?e!%!~dN
z3Y+chwYf@a;$5bM2rT;OwCwon=kbeeL{3J3GFwpD;`#mglS5*^-c^=4U*&FIe#X2^
zF7ko&=9!|`8lN!6p4Pq}<+-4q+47#ppPOM-w;d<8Mnu*(6>u(dT9ICIXG5%`;$jnl
zPpkcsB)y84s@5!#IX^X^dUsUJ=KDEoW{AI)51IJDv@=T3nB&{Q%^eHpOI;~%5w>!7
z{I>0%(|zwkj^d|Md_k_yY)fa^-h7>trtKr!VU`yneB)8wiIjSwl<m{<&GRko(`w@b
zbNW9%X%yz<cryETeWwxM?5K~y_xJCa_i@MS;N6pJo*1;<dc3jZ>Dli#>%v>^ZvHn>
zx@x)Q1zo{ao87;A8}95B)iLYN&i*^ECEn1i{QGRKGF#VeIz4CKS42eYYY}c<W2x25
z%N!W`Syr0;ZC~1-LiUUj<#mxonTL-5EsS?wIAO_}{Jw3o5?eVN=hxLQUVHG(+Cc9K
z#(v4KS?{{6{Ntp5!8NvAdFmb8CxJV8Zk%<!nD@MUyQ*!1s*a0D!(!`MQZCVA{b`+o
zuAFU0!t~sp7?wQvGx6ja3*#mGgdUz+6P+q}JbmiN%MAYO)*Y8hDSZ6W?9NQ3hh__!
zo{6)b_9)tOV~)io<G*rU`T;uT3+gks+>jHxqtbbL+q~#W*&b)-o<5!Z<nj}iwF~!8
zxggu-sa>MmWt|_@y(rxB{`%c+x2p<+Z#i3>)->XM;OZ5_xBR>8g08+&@xbJVr&b!h
zTJ$>M2*dSVEzZV*yYx?=txn5udFsCUgc;kxj$OQM3VTBqFP@n5<GXxFUC=q6qV;oE
z)>o~vxRt&2t;?H~goVP-g}?80URts3=R?2j+;g!ptKZJ@+VfGjcILd+?@cdc51*Vf
zseRSbt-O)%1!@^SCrAe|TW_k4``@(lu|e@^@jP*f<m2UY)`*uJvYvT?O*Aj!i`XNn
z<bVIV3rczgvz(^N#zm~1W_YW7hPlrc{<1i~cQQ}vZ_5@ee&3aKd1`)i<xhr#47c^}
zJ-dER^4Qr^sw>v3FYrt9F4>WMYGa#AT-{^m5G!RT&m$(kpL)njOIP>T?Xv8g=P18L
zlVPb<9RE(oK+ZXz|4i24zqohrf3e=XMGAM8a@@Nm_qW!QzxD9dFV`8@B#MSRJ)hy2
zvE<OBq5zXQ^XJ#MTkPCAQ}*{6BlZ*Xg73~Se=%$Be!c2#Yp>7h%b7jf{nHnbs54hT
z`yC4}(#v_Z>2Trw`wxHA94wxka&KE*`kHeS-dwJKbGzSCqIzM{q-7~Jk<(|!EIKI7
z;CM58s!4DEgn+lw`%R17o@|&^?6%{Y%ZBI!{`KcPSSJa&E-i`=wMeOd9Ne|-`Wkun
zJ@a3#>Uy~HX68$oePXs7G_;uBUOuA4A`r`bbn~T)XYxxq?tb;&y(Z?F<#na0PfHwa
zehWq@FTG^5H|(<Pg_|0t2{Idh?)7#FSj)?>q4oElt75FVe^x2IocBZV>$T9iHk(CG
zs)a~$zMoMv!DPSACyutCiR&-xtesc?o$vo~|B2f6<yo&%^yWWwId!`Dj&5rHdCTkF
zy1%9}Dt=3CP28R3mp`>xZUN_$4Ec4<6Hb3$Z+q64#Xh3y@lMf;HTI9)TWZ>$xo;I+
z^mfnhn`O!$F1YDjzR)7EJbg?2>&~KgUz<<tKA^k)_ZwbuvAR`%YI!c3CwEtd<O=EE
zx>$eu)X!c1u^(msJ&euoTIw4RQMD_5)2r>huUS&~Or~s;y5Y6zMfMJjIV%^o{as?Y
zQ2g)Pr)F0-npS<jYcltaPgJh>zqH(D7f~(!RNlXtdhXX={WE<0qSmpgQkd~=^=8vz
z-HfnR0zLUUeoxMAX<$grv5CK4!q~b}N5jvv!SixPee|9)Z{K;lPU<{-?~ul^>y!5I
zB?f<3yH)YjocP}YvnD?_n6r2W=T!^-e$mBGC(b&x>r0Hx5siaqW+n?A>VKf9AknEK
zw{+L6+Px1%K5W(JnDI}rrF1<@);*WS_f*Vnf~)6lXufOy^67nfCDpl=wg#bR8Zzg4
z@NJu_{Hf{0?pwhX^#Vl`>%X|GEGeFGeZp%u#T8+*Z^nHMS*!VRb9;C1oc{)0H;gyj
zQi?gnx*&7&_5UY7R-e=Fo_Fr<rpxmre#cC{`tf#x%<F_HJcmn6YEOF23Sl}N&(u*H
zmtLw-Ygw#yGQeT^3zi9r;Tdn$u9_|Of0ljga>bFCMW;R$C2hazQ1_^!-lLq;zIsBn
znuLbRqz$hVra2cFg}nOf_~GMuXF2Tz!B*bjyw6wr3jVk2wj0HzM;N^>Fg3qZR5{JY
zV@{Fz_cPt=Q?_rtd|HF$>+D0XRpxWMAC~{`E`H~aW#q+`(K9+<r^H@5mhmf_MS!i|
zUOY(Ro&OZO$!67(AJ#WS%zu1QX=%L{SGdQGOWNON+$@&p(n?+35*B;cb!B4bd0VzP
z=kq4Je%^QFf6sX7rG&!MyP5%ym+tIxw0X8SA!Oc7|9+Oxg{3V|Pn$8N{9e4`pn=gZ
zp=7sBmacqhRTr6y4zJx|Fp-htqu<8);)jjOZaent&*d|^k!@hC$FeQjuk+TNmXtrw
z>w|PFr%VfY%yMx<Poww-_s`u2Y-fGw)#93wQ{8rJ$-j46#}>BF;w!x)Vaw6rbkn~?
zJ&SvVcK9P7Y01gPPd8Sz=`2^i7iO|e#O!0mGS=w2I`%i$C$E@my6rGex<-74oqqqF
zUCp;^^2_rt<u$)Qt9^YLgQj=R=ID$5|3o+QcC4<?l#bzOZ@RM~a?2&oOZPNnJv8-I
zkIrV)jB<X?(0pip3Cn3`KG(_>GR?=0FCUHnqN2um>e#N}&9deb<nJC_7L>>Fgkw`=
z?_7&i!8w9kmZ`6|Fo~~z?`0y9$^KBzTj!5@`sC=2^(#M4)De58zVnMsFU$P5i8DJl
z%YIa1+PF{Ip+0_sLF@lnvKz1cX`0<0v??mQRZ#3qDnp>GQr8C~l@gH?aXU}lC{bHA
z=~yhwdxn=Yx<2o%J#<j!<E_2&Jy$)8x9(mSoO6mr;@hivE)Ra*{yLL+-m4(?oeUkH
z)X(!hR*f}CK4(9%c<t;g^K130hN6??FDAWNdV1lCYrCS=Q}!OstuN+^R<4~j)vTva
z)_?b}K%I@f#@vb?ty8`KNSxFwaxs`z@-gDmawcwe-KmS4d7~a)ES2AR(^=W##rKsg
z-U_Qc))`G|P5ZWXeL<UC`?Ru^+qd;iH!<UJ3|;+GVf#;cw|mz#|8F)gPzX1?oWr^1
z?&+L4K2NX2={@_^y=wYyCz~bpwSnS=&FfU+RFC>z2@;%iPH{)TvGuH*S8keDaYjFT
zouPqh_>HFPGACrG?Nrc{JsWcS*Y$6EKA%$KaqlzGww<wMV$1o$Yt7fpV%}&6-c4JQ
zqP@jIom0g3?7IoedJ+|_UbF>n4hi@kSjG2#Qq9iq>x)CxL`>dq-rP9<@4q^^8!zg+
zXE*hfGu^YzoV7ly=-;lrPY#|knVb10t-683c-g7zM`q4n_g_6obnUBeYK3O;e@$y{
z9lWi5eepECmZFIkqAcfBem55`@K#fq6tnMnMQz5Z-46syYPPoj5!iBEPG!%(n|T>C
zIbPmK*=KuW+kLJ%e|&c7Je#)0w~+hI;zaEZzMOiFxKneVdE6E^tE|2+dT1HLTk$Ej
z7X-HSo}Q*F@F(O#%=`rJ1N-M#|1s{FoFFsp!V8I@e<dF-RLI;3W?q*pUA4%=Z&jD#
zizR+euJV~K&YzDw`ZLw>go&?dQCXVM)XneH*R5?i(|u?<!@RAR<W^l@Q_S$#_4(<A
z3gVr0YcBpyIavQg(^AWsf8n~emb%@_jQo#HSB832PFm`*dk=r|q<KOcmnWAhwD~`|
z;pU;CU0+lreNd={n|FfQovuZHDnI_R`zy>5Z2L=g&Y$OJzRJbr@HK}Ex|DFcx=ed7
z-ryv+p7m*-la_Y1Q@G<SkM^zR#Wu;Qzg{W5>TZ2d``Bhvs#$M6>*TjJ^R%{Xknlb+
zi}kFoW~;P(+`MjqjJrF&r8Rt&c6*RBZ~o8OC-;18Q&hA(w>w{0pQH5tx%uZOMC7SY
z@>Vdro>{!DPVSxqgVxe-QGXj3@GLR0jkCWUx9Q+Jmnt!?N9R+cG#x)a=_=f7mLPE<
z;`;VwDvSJP-E|Un`{txycD?@8#1?_~e@`7M&6|2~-jZd$F41p}TRH5_7B<UCoOFSC
zM)c}D&s)<JWxt=AE@ya;(Yt~t_)7YPe{NyiE~or|b}qSIFKIKy!MsAM=2z96Eyl4K
zRT1AL7=F9mN&cbG!hC0<o3QFPq4Oe&pE>88t(>ELVUD)qv&gcD?!^zXp9(ycuiqxv
zGsC>$t5;JA_brR(p?5!LTkP?Wu3L0D);MVM>SXi%4&I_>tPc7jTU`Uq`-48s*)ii;
zY6^$I-Ws?3cxSt#p)YLQvNQW5D;<@-P28|@Q}yhG*;fMZ6|p5=m}IC_&9Wft4}+U=
z{Pact6<)b~pK|d2wT(<^Joo<hyw?6!yC%3^I#@NwWT~S3y2;UJIzP@jRukLRetvG(
z0*-x6hV>N>XSL*{i2rHJwbHBeoIBTXa;%T;%GP&QN@wQRu`d0gK4sGCM4L&HZ+CC<
zo6+O8=YfIg=a_3VF5Be1ihMBp;=GTSc%ypU#B^n=46+10zO%WhZ|6=tW-(QJD(CkA
zxiGoEf9f}xsdxmb6^6cy3|4>a@yg&J-;sZz5dp8WoOW3q-PHTUxw-W1Iy=+!Yxz&t
zW^BH=<fCM-4Cj}hB|BR_op~y@k}=)hNoU^Kj~0~)zgz6244-^rn)Yc+Le~nv{yj#&
z)x?_4Kh9bA!P(}&o$!6L>+v6#cksP=bWLT!(s$n*&aJ+2vOZ#;mFM$!E$fbE$ldw=
z$8y5ko9okb{;pgjvDng8<?u||+PzBckp((OH)>zY`TF9_?Uf07?D|5<l?zkdXFpd6
z|8VVsq4Xz~g{!MfQ?p|m7IEHiQPEO(;45k+C+cF}B-BvL=Iqw~PxzG$)6YA(e-z{&
zWge)IxnRt+WBK%xXD%G7_dESpBw}rW(#PctE3aI6x@mvlgsxL5ozA=`_5VMcu;8Ai
z^~+V}=eWKfdF#08`$yX?kxPHvdE>ivyVsnIWae9|t-h)xRo-#eIUs1Ke(}La=iDE=
z`uB?(bWE=4o8>q~V9oUhHARhDll#AzZIIgP_wbz2u1R?&D}Ef7+i;5|W?qDD{f9fQ
zQP=LKeyKJ75@MKpXXRDjPQh=So(D>kdE+!E>Rf+jrWe$8=Gj;G@}*{4T3w4z&3`b_
zb#u+b*Ro>2@*+$+A~X3WcFQ||*}i@4tZl_7YEyo1c4;y=k|=FlR;$T8V?!0^O5a`2
zIOLz%Z+U!Wg^J0nFx#Z=qdR0Xw6^*4i0IV|>Q=QFow7b2=d<A8o!vQCpPx8rl6SZB
zN4Sw-_>U*MT0FPUifDYqbUOO$N3-bn*OHHZk`W3_T^3N;yyf$A;f;R_CZ6IFei&oU
zn*2)l;MY3>uX(S|+iF|5=&obDp>C?F@Y-i@Up`IPB^GWp^;6j;tp@XjykhS!v!++i
za<@EIb-uo7)p3@{!(tb{%u;HU6g{%|saSK}zn?pqe13+mOwU@dW%Bi_Za=T&M-+c~
z!dO{k@}_WCl8@)?WBSjx6gw3BIH<hL_^Ig3yYJ=B^LMU@K3v@+@ZY|MtL1kuzgOLc
zs|BBv9d0<*s;{tRD4BTFDInhZ>a}27_t(dS*!9|fznAj+SpTp1O1ItRcSeRY=Q)`M
zA7U+@)Li88V5gDHsv9;ZmVLhTTEtm%$F0r5%qNwc^(I+*O_j`D{anL1X*=&4t@7Aw
zOcoB`cFqe-<yQT=@K%oP&Rb<))~uOVU%J#i=4OcZp~bh4X=*&JynFb(ljZ^~uf^K3
z``p@0{EQk4KGsiaj{nJ2zcAI_)%bCK11I;^#*p6am+K`?alJcoWNH2JnYDH&5AzBY
zoII^CA<27_^5nZac|YC=2@8Bxp0iA7<)Q_1N*gb5y=;{h%C5f6y)hzjhPvOGu=y2x
zi!V1EEqcmP6&hw)=MgK~GS7)I?!MAN-Ps4u?T_Z%DSJ!z;EM=Zv)jFPLBaJ6y&Ulz
z`YnqCl4oQ&ZFTxtrz`wkWZS((vI{;b*v~oS__HQJ_%x&I-ALv#RfpD`sg3Uv%07GO
z7v4#mdoEx@i0KbbS7zoQmT6O`mxN1}vg9fL$dq4gTw}LB{+-rJ`%5YXnpb1zFV*3m
zBQa^M*5;tT`c|3Jv|Wv2o)Q^dHC%l4mgcexU!O5NviE?~!;i0g{p%vC*Rp>+H{19B
z%^Jm}CMTB1?UOh#r)NWL^V|~snfnq}R;5h&tj!p|SZ?dilUBNN7j~@usPMb_D}PE^
zz{|evY8Q2^mnw=|E&lp&j)b6%{r(@@PI|B?EqNJxXrk!68rK=e+9T3+nbmurrvEm7
z@twEcap&f?pIU8+=klE9KG?iW=-Sx_wzr?~dI}|fP;^+g(*C^El#e%;T#Rg;cI;*W
zuhDczzq9i1i-Q&1e~VQ72=zIx65?}a-&yPVCCfI+vRt<9%}9T&@$rXWNO7JtOF^xe
zq=4GWeKFay7F>M!uG?~P^#Zxw@+%W{FV88f?(clR=X$+X>Sybf)|yPm?|U}h;d0%)
z=3swD>h5<s0k>U6rZr8f{W(QlTHbQEW_Ubr(ZsATn;VVRHhd_4md<DN{=WMn&s06N
z+<(O$YgBHnD!LH2?uD)EE1?~SUN08=$n|d$cm8ZO&c%Pulzn~c!_xoE#9+_6n(ZdD
zn%++M&HY~d`$67_iuxjk<DR>Cf5}HW7i**(6F&J(M*iwzZWZ2(zZ=W%hfVEhkEyfW
zIj7d*8}ElGI|;#uGcL1zmi<#>^ny)m{zS&L7gZN4PTg^O#>tJ7On*o`JANW_+Rm8B
zT_TsCPQSU={psb+;zdjUJk&Ri$jUUH&333YLELj{l-1GiM{D{&{WIH~Uq3Tr>-qV&
ze+k}M@SvBY#?w6Ysg2lyh_1-xpFUQqy#1B7=Xvh2GwVbvKVL}fR#<RVpnT1}xyy~1
z<&tI?e&}~`u+=c$?Dd6JFx7wBo(F6m37_X~Z%WH4nrZz>cBQ51Pu8h>_xh^)U(wzC
zRr>UEzc*8|U4%ARcFo}b5tYbr%6s3OdM}H4r@9%o&i-)yuhQ-Yu4$W!G*b-TaQxT5
zB6g?m=kB~U>T9YTrB^Gj*x41!WXXC(LOi9qRwsGIj_Vwob~1eMWp?Mg`9z5&-gR-r
z@`Xw1^MYErG__cBXV_?FZGZddURL0?>33co6o18<D|Ge#q94YV3zj_nxJuGn|3swi
z%YseyCz^j>s46+DbgGVRspPYX|F3V7d1<}hSt_`}dGadVJxn3Lzuq)ASE@MM=@fNr
zrGB(`<nskN5l24=R6aeW7JrB*QvHQc-j#pzUf0M9H@Lqn(l7r!NAp#FQ{a`5A4lz?
z4fG%Jq;@|Dkxr?Kc75>Cytn4wO4oPZx5avQ^{Ky}yQJRK@%n{%Cxh4}v$tE=P5-PM
zaV|)^P{905{~z&~-*3HNo@+M${`%{Bqa=eJJZ~r3ZF@HNJ@5Z*r}ji@tjln)I(|vq
zd+n2r)9%enJhnE*^R4SC`IC~j6T_E2v+>O^=USF7H_iGk*XqLg*)8|?L{#X>aQWXl
zYt4P3_nrH{j8o5N%&4!3Uz~7z3GW&CO4mQf51Y@r`fcZ;!`(_BFWUAU+_>4W_<wV}
z%~bK7y2tXC%iG%6_Wm`$@h98<U(3@P#(&N^{c4U2jHRT7{NL9nO)s4{W4i5c*=x@6
z$Ce-3DV?sr$aa2v41-+Ri%=GaZIf3NFKRWHaATiWG*$HfM84$nHR}w|)$it<`TqQc
z%GJw-)qfuhD1TV9DMn3i^K_FQcIOM9OqynQ&Ed9uJ1xNafq%B+wsl(^Zn?(^tFX9U
zNmpBTC9vzLlj?VY)ID1(Lynw|n&outeBOc^-1+^B4={Z9R+rp<m$7GFxABC1Y_1F2
zmv6{aIi9hey=ijf&4{=ZOCHsG!fWE|S#rw@__XR*BnEIb|8n@g@6Gk@uE$#!RG6sv
zcD?-n`Rk<J!ugILrGE9CY`Z?~MBWpQ470CJE!S?l?V1s`FuUZ^R$t@jrx(v1nOr$d
zF?rFJ{ozMD&)GiP^k`p9R-?Gu6XC$ep4-G~ma_J}@D+-9e;{h|%5Fd9g#{cf4j$W-
z(+%qx()caxm^jU?`hJ$HZ(kdJaDhgvct*DWhF^v&qr?hWs#mnR?OJ*5!^1SQTk5N`
z7UpDpwriRBVRzkG`PWjn%cgBR@q6WpgZpkd&58Kjp1^q~w!vG}Qp{ZHejBq;0N=r@
z_oKeI+~PDp?$BJ4vvNgf?VoTf&43Vw2fLSFRe9$VT_01Be<ar7{2T7os}DI8-?(;j
zLN4#!{71r#udhF^EV93AaC*CGmfpFig1v2Lc~3;m3f@;I!`2+>wyf*pg3bF%U-st}
zYKrfx^*z%UUlTLWXt&XyLz4G@-CX{C*%@)>cWfq%?#Bc!r!0FveO1T8^~P%D!IhVH
zJezW7)A0nxwq+N}>fLP@%#GV-?AQ2LJ2)r!;48~lf&V$|=euM_auq)1WPH*rIRC>-
z$2|<|w>^E?*8O13_V+0rOO6*^tG#obY4zpz?<5->Ed$;;o3B0dI3ZhVXLrQ5BTMar
z%=@37nk&F!$9q47?SNsL>#F1cy)W(+j^2wDi}+ndjyAmY<O&E1__(-!RfVu<EkD=o
zH^q}UuE;PQmzu;g_waG8$uA=p>Swd<P_mr3d4t;OWW5htq`uvI`d)8J<>bbs&B5%h
zOmCtlw|#iLPtGAlX?Y;$uatKiUWQozx+<~ggX7LSr*~|3?9+H3`RPX3iOMH$TK+h1
zN_@EcO>A4DNpkI(CoR3&tkQja$9L3s6un$N^U;^2Ki{{U)aqM#-~mf#aBRTm<JOTA
zwy#*#efw9_-dS9734h}2?S9Gb+j6<rvr*{nq?phr8}9Q(zw_37daJSgN;303fpzEP
ztLI<d98hv2`qr$(*cc;cj>(0|{0AnP@=M%a->)TO*5{GK<0sqU!^*NfQn!_{L@mm_
zrk<@?LO!g%>dYGdnjc(0Hfu{6ocun?&Q9py{=3T+E7GRbo_n0cyglOMXKrPt<s0Ty
zcv&p9j`MbLb<<{Fopyum|CYbA5(Q4(<OyrBlIz?caIWamt3S!oN7i3ZYj2ZGvzZ;s
zY3nYz#HPfw^F-XQB+J~=t9ieyUu3M=y*bz<hih{EpB!!H-%4B@nI31JpGdjmni71k
zCQa_@W%sJ7hddkD?UL`#nPnaH;El_>@64etugfIUHko#IKlsfrQK|jzO4YTuO7fPf
ze70uBMcPMY=N>5h@yuH3^y<Kau}u~+9JcK1g{?R4nIiS~=4anHrWls`hCj2NTi)f*
z64m(rv}?{LyL!8OUZT76H#J_Xv)0(6Xxu+_*85t!$yUrBsgDoe>RS}vpPU`<xO?TL
z5UDBiB3f0{e3aZIPOCeF39rxMP(0tb%KE0g^y@Xpc=qo#PPd6(+NaGV+HlRLY`<jk
zjNGMdz3uH%OYX#)IjpzzynoO8|Ext{xMbLpE?#_j^1kfywyg4cJ=30hD}OI}cI}`a
z+xDNQzR#7FVm19IcF&UYmY`9-!q=t@-3xcNE%@yA_3nnf5wk)%Ee-F@n=^IMR?%B+
zizc59C=4#0qf*KEdd0cJ+xi4UE>4~Q?15bJyN;;S4y}uOs~MO!O<KAm`|$mk!!buy
zeO_ypZed*bB(Nh^%29@GK}=x1;cRaCFy;&50edoRu7r8i-rT>vAj<icr|3?um~|f*
z0~Saszp8!OIe}Tiy+go%-JUm{0#8%?)=Kn!3Ho{<d|JqD_9tsznWYJGJ-v66wdM0$
z4*T+|><;~DI|F~}#rg$aHTpFB?7=6KR2^=vHTG1B%kJAA@#gIdaqIRiOX^Q5x7YvF
z@-9)+E!W(1*R{#Rvan1<qmpm_r*#r+`--36x^ZUvlaLJ^O;Yn^|KxTVD7=}rV@pry
zwF^7XuFd4{EL&EQ<;MOxa)H~$b;l<dtV`It*fM(l`N@Id@!NY|F*cmZ?5er?S6QH?
zZN>G+0d=*<#m%p3gfFsR*}tyAMSPCsKAjm-^$VHKzIdZ<sq^Ex4f|E5+{Wbw*DP+Q
zR>}6}Dju0}sbuZJn^gj)2Jd%f-fa?$S<g6o=1;x;kCIOcmh*moRp%)2kN?zz@0&kt
ziaMo~5O2n3CDS|U^DXIvLVrV9=CW5NZ)L2h+ik0<l+dzs^#i-_TQ7GAC@$^O?KXcc
z%=!1a>b8INtInt1IAQaHmrwdG<AinFXY9DQc8;m9)cKY1t)F^J-d)=^>zLi6)kceE
z>l)UU{eHcW?e2QJptI_>=}$ZFS^QtCW}azzruE2<<@a>XUomYG_$i(zn##E}R9xD3
z)25Fp>y(x1jl*qM2`=f}Q8nX%>r2rqo3vEg?(Ls@;_xer5RQrU$r66$k2YDB_FU-Q
z=Hp(nLv5qVgQoDKJA2Di`o$l;kmLR({rac#w6z_a2hCFqE**Pk`|j?)POBNUD=#dG
zi@sXf-8DIt_fN0R>?X652UC8&P-1SduSrp`zj}M(@vYv9Qk{%SPxZWfG86k>yqmXl
z7TZ_-ikFjx=d25#@$sFZ`PF*9EUxTGUZ3Z$)Ytv#ERX!UV9xxDrb@StvASPNJk@?o
zPHuBnndQ|JU4NQ5FNhwl%J-PKjIU-9r~9ohVH@X_EtY%Q`XkVn|NZWdU(J@VU%##B
zdaYykjS`QTN$#&B%pUN5JnHPTW~WV);B3bWCTke4my5ph+&X1>UE2-mLXV3@zv~rF
z@B19|>SBS$%r9cus-<g+4nO^SV(QBPvrC43QStnH6Zfon9l>$nrpC1-85eQ(xw_{$
z7o0dObnul-<IfAJOj4(Q|7$SS)br)s@MbB?&q?wtPu46iT<!eP@#3}k{T!2ax_ZTK
z`0d5m`ewuH1}$5TWr=5+*1pW%6J-D9_YdyNK3chA!CG(TRj)ITT5xxZ+K<d>3Cp`&
z#A@GLs>j!Q$UGPFQWMeP|G34EsULc>uKDx_D_BK@%q$F%j@C6dH#CGEt!rsyYCe5o
z1*3ZXmK~`fGG4b#yV!Z(O*(crwt4q%XXak(Ugv`E52TuQv+%Y&c*l8=>EPYF4`0tQ
zHnuc=|F>G4`)2>UTVF#$^;et>HJx!(XU-XiOMZO`X=P$&j17w>O`5z|*jjqC)rnJg
z<z8?-NJvb6?6hpzv;tPfgJynxlN<~@7!Gi6V_Pw!S+RcQ1P(K^x|FO2o)dykxC)~f
z&g^0IQZNX(d|UDe-vZ`;tRZvn95|EaVBR79BqQ}P$D;Nn9u}6>yKhBAHrHQ&kdpQ<
z_GS4t3vLIwjJ)ShUZ$lpGgw72Jc*nV!EnlNp1@+>hI1zc6WBJf-HK+Kqr*5$A+}*!
z+mu~w4sNlo-l5I)^H_r-4&S|b^W@j~7!?zfttm4YCMBJk6~r*XOxVHA+xhc%f8Pnp
zE&D}<9U_Gv{lCjD^us#V(<|5~*gv#u?$_^93~w0tC#;@*_Wid1hkMx$@qB2PQn`BR
z>dA-e*%+*{4Q@m>Ouc&f^5mnZ?(&{_^d#%(qn!WZ_P*KD<_*gyua>Q6_;gz|h5whg
zM7cY6$DD-h3-?*;^0^!?9+P?Ug6-E_mA7BEUuINNRpCrx|KBd*!tvq#tZ()0%y%3X
z{Lf0}E%~h-9vB)b_<&(cAxpDNW8bq04h8~m-mw|{J<ax$E%L%YUjdd01?8oG?>fJ{
zuXp|bmY?ROh3Y3x@w~15+c@w4?)qd0_j2?3^%<Y<pEfHmD%o7fy!&sgAj^g=8`=M+
zz5iByK1b&NCe2RG)1Ka$8AjSpZ09FNp5$EAr_6nW`%n0n_f<)gx+VlZdCFW+P{43Q
z!CC8RhT_8~4;T{Pw*85=^OWxJOHdEbzxLnwdRd>}yuN+^ujgex&Pe<jUCCXZ9;RFG
zE-hX@Va}8NixkzK*qdn!NE~2e*va4!_w3r5{kQ*`>h3@LX8&0M$v?Go=gwiA=1^@u
zVSleG$0zQa*LhzsGBw2Bb^N#Qf5{(nr?ls+5jSQuD>n04>YS(#onE}9gz3Zo+%|)s
z+h4~kJAA+HxU_vv5VyK}b$$cu389&xH#vDEIqG-)uRnM5|CdQ++qZ|aSv9=)7k=q~
zFSFH+8`b~ApZs@u(NI^sG`Os&l;PI@{`1FtZyn=KS(wFaw*8;?(fwzO5)@Lt9F<x7
z#&Lq}&(ll3{x-Skd`zt9>y1DAb~2oKW3%V~<7S^FJLf8&ILmwB@c-%DEP)T}e>g4q
ze^%_ks<n%>)~={O^`qYH*?I#__hNN!X?JY~c5{A)7q7U!xTQ6pVPrQqKQLX^=#rSi
z`u%LI2TnbD!P2&bVb0xy{}{a0!=K!reey7Kg6RL;U(z3$B2@n=*fFerQZJxy-4ObW
z{}IE6Q~w+%Xm!;KEa|!=e}q3F^e6wLWabU4{y9#Vl~pgG-Vpkjzy1-^hOB>%cNoIf
z+H+j;|83tPe~JHx{1MJX-jaegpXcvS{_^KJlJ!mg$T`N$)Ms2K?J<qh9@Nj+`9Jkv
zb=LpMXZ~%!$;a|<eMQ~5|2O`tGj2-z{9hr@BfnU^`h?1#+lP*Rz5VFHhjvqIX%~s^
zdIt~h3-jmx=#9D4_^m$6>C5(#`l9l`?rbeRSLgF|+<*1`GUu;!jwNfq$_q_68dYr_
z-7NE8ka6S9Kg>=g+y1h*aO8gH=ZL&6?`AWB^~V2sFYN0&xcKT7tW_S!uf3s|UG&SD
zP3ZL#j$iH4n;4$k=XtC%7Wky|XZpXGH~%;N+x{y?;M#=0+Y5g!Ru^}XNw5BH|D>W`
zf$c=;t8dpC|DJzQ@Yl@B@g9@$?|OsAi2sU8)-H?eOLr*lx$D4Z_J8mGJNuIz<o*Xt
zlMXs^_SkEF#f~X?-yF<e*Ne1W__vuO@5HSG*VZktpH$#%!ccAXSD7*B@Lzd>O|o+T
z8wAqk{g=q~*mm7sVacBF_6jb!^X;D~Os#QPS6{#V*ZXMCuiqE{xn6zv+w)n!t}mau
ze*@c%t0(!EBquZeT=K17Kvm&MM}_1DM>+1Y4%ts%-|z4Fx0><m{PK75Hy=Ini`#c5
zM!<K5rJ~WtqD}wp6m9<fpPKdW`}4N__cTwG{>uOJ`yyL|L!3hKlh#P};)4OVzdZZ!
zsXVAPSoFh{KRWg8p%qHIK6w^!M+V1taH@R1uIZ59-4w;VIkRhyNGfa3y`^lH(_RF%
zKe}cA|JR%#+se#^YP%R~mVfE{v31Ig7woxWYaiq+{du5ky~vm9Px4$}ymszO-LATI
zBI6df@2Wrcm)tvA=(8tb-ts_+ur0c^E#GzKCFUP2+<N@etm6u=6zb>Af7QUY|IR~|
zBTUst#3c637HfIjdrH}&ygccJ@iOs@SMSPyrfr!Q$~XC}%i0&kiq8wUM6Y)}TPZIr
zK09^dG|3}RL?1cr7InFO<94dgOs#X*XB^nX_d9IQMUTuyks;YZ>ZW_IDpar47fj&U
zdR^v|*vAtWrrl{=xySlK+5NuD1@&GUNmHaRcdQHBYkXCuK|6bg`&;Mqyd7)f!&UjG
zAMp<4xY!<L$TW%3;JtZSb4_PN+NqAtod<R;EZOCE^|<8IJrjPjNxr=H$=pF{e}d5V
zvoYxj#R1Nei<r-AOKtvJX0k?9N$=_P1N;Z}?zGuE+j!bXm!cc;Cq$LnR_0s9ewX=J
zuRl%9<JDBA8xgAo>NAZZgw|J{dHHB=_gdCEyHoLL-}b~GDEMo(YEp1Nk80ols+8MZ
zesPQH!{2>Nm-jIJI_3ZKbG9$H`R7?XUeY;u`d|0e&1D{<N4E>gtNX87FnO!K^P5z8
z_SWB9%1b$8IArCzUacyfI{&cOn@>}0PQ-IMnETb|t|~gFRyB=<E%WhS-Ans7Ic%OF
z5TCg}^>~?g$2tAW=U$6C_aAJ{)++nEa<yqp=6;!(bCiSZw(i)byh%GkMy&9Q_pi?E
z4H;jvn06;sxOKYdZ@aT%-`gN{iC(w6Q|33b1}<3SUlVFm7@Sb_A@|?*6<p?7p7(Zl
zuDSf({*<lRi~5iS*CZBBtMB`fUi<tvL$scWs(}6Kr?L6pPgx7><o(F<MWx@~FL}+~
z!!-x9o+@T8l}gy!{Dt|w@Z}v6Y2KpDpVi7#B-ej_tj(J-sYl37zE*#&WtH<n->p0w
z8(HQ4=CDa#{BU6_x5Sovm;5>U0)OdlaZ!=@dG7wwyv3%oJtv6O>j%$CoMzYm{j>S0
zdD1Uu&R6=i|N9HpNTC(yEElAUTTMxcF<rdx=c`BG!-5Yvq~1*bw0MDG`pG{fB9?D^
z-fd^=m8h}*%+=Mz!Z+h(_x$EU))V4&5>Iwd`+B3d%U`u7>($hcE4R&kub%m<!-!e$
z+GZc?U-OkzBy^uC|1#*_bvUYiZ_D+yUrqN}AKYBKUZ|&mIhsxDX4s@XvKl(`8)~~g
zA3Iv`Ca!9^z3se{4k6E<h}uLL)tvoX_u#o~f}Hecmp>*~WbU;56H5F1Ok30F{$EZ-
z4~=stCZrq_I_`4vs=^~%*9?al^Hwr36+908^ifo78JqNs=YOv>xeH9YsQW?3z`Wl3
ziop3>RylW<TGrhSD4djkbxGf*l;D2_*5;-HoYU%?=U+du#pH3Xz}d(1WUsFOS#!3t
z@U_#+C5^R_lblX26^_mPy10F3Qqh&ly<6s(t^BS0@$*LR%2)4PpYZJ1wE6dgQm-<X
zl{K$+{#ub_-tOro8(o^{_uJr9*TxeGzVjImiPgt6axV3Lz5bEP-#5Q!^F9vAJACi5
z%8dBaw!iMQ+kIxAE+=~6YxKe-)$XJ96PHX|%;)s%;`v_n_zETez^<8b&SCc7A80q2
zZ|F=hi#uFiv3P@5#H9T5b_Lr6-jw<seDZ(k<wx%PJNw*zzFpquayOwm@!0dD?=Bn8
zNbk&V$<7F`te2mbD(w7CK=zc2<uh@n1%Eb+CY^9gi3yWW$;{;XkiMuU!{9@qlUj1C
z;DWziF7X~-o4-0-KY412uYI^+=|m?fq23$bHAN>bTuu<lEPtJMYQ?qseFwhm5qzZ_
z{q=8NAS2J6o~N}k*7wRgvix@m-@C5y(c(bj+PIngk(1sYNlvVvw##zk?_G12>NEUX
z74v-F)<2UK-CsS>S)MW5C$s4>@76M=H)pdmzMp3*;IozIYxw=WcFE}kfspwtGx=0S
z%LNb4xU%cn*TPw=o!;#0s#$h#)sC}`^P{)y@8ei{g|GZDdwj;f2RwGqe!SlGvZ^fP
z`znJk#~43W$Mwv6=%V}1#89)oP4m~5xl1}fEI1Rh|AwrK(B-f#eE)j3{<db`7x({i
z;N8UQy@#GE+iB{r=ZKyArM;3j@cpez%$J^Ce)H|vjx$@z|LWVg8fD7*YQIQNJoU(E
z=lP7|j%;$r<2S0!njz%7@&{uX&*?{I`}Qq!($_l0%DO9rRX-=@py1)X-{a;vZ;h`1
z8!oq5(=;S;!yU1wQ=7lUukBwLBD?j<=XK&M+qQ(?_^|BDIcuL6?+@)Xv*fyV&*!hz
z<&UDKHqD2&3I&G?Zh042`9N%H&jDHCkPB~CeqzwS8++jDr-f&Qenr$@`MW7{?a@W^
z1t%Rm!Q6cL|FP-Uk~QBwdo2Dme*QaO&M?gm=cD)QPaUab@mg;tz3t*Tj`w>{x-OEq
zE0Xmo>7mitw!_=!e(2kvIGZoV@1B{+#Pn2ex73V-B0tv{K50@r^kZRtU`M~pzhH&m
zOFx~oIUy=`!|eZLj_ZcgPw_N__Q^Nid9nI=-i_1SS6NSZvfhQ!MsUgAJyVyPKAq<A
zQBii`y@l5_wM;nc<#_a@^tZ@A`k*HKF=*jC2G)tcm;Wx>FYn`Z-`Z!6Wx(F*JDh*S
zR<3o8)xY`QYG>!^$jDiaaV>7$dz-oD|4#ALxwu(z($v2;?R^HjrM$V9eOSw}B4(eo
z)x`UIe0DldYOGu_@zSmHGgRj@yw`9(Xu4x@bn@DcH8Wh+GK&9sX?LrBscx3$LC*8%
z`KLV>65!fBMWxrbw%4@Nxvp`F@w>Uq0U;MWYErcgk4*Vuxx?=I@->p;?>BvJ@Sk$*
z{`?a&^}<&4el2YEICLxIM&^TK*Gx^FYVSnv&dM;EX?G&4>4)y@u13vgXNpA%gJQ&|
zGngpt$x&$i#>^*P_fU0WRcT3uSiNAWZs1#uhOn<MOdibEh|idl`paQWl-H5%>t6nF
zKYu~<600gBx9mKfxtGtkOV{1opSL4IdBLMgjql#sxN<gMjh-cW;h@_~r;C1z5-;DL
z%ATtb;(6&_$lmKkGh6e1K7IczV&NCFo_Xs}>8bwqxEYtdD02tbN3}ze-=}!~h@We8
zqkhfj938I*$sdJk>gHX)?<3uLy+Qhamh9@<Wgd^+KXuwHxq7=x<IvPkSBuW9<9ZRa
zNVP0L`uX*%pU#}z>QHSoD`eLJ&R2W?f8o~s&0@RnU-thm93MO9$_xKWy2|)T<j!T~
z#}PUOCtegPJwEbb+nv2}k80nGzgxq-c5!>_eQgfz*m}o}YF~q9>lp0a)IEJp2J1=w
zv{2i=d-40?YFwqmb;9byGFN_--K%7}JxzM%wqy5M-yeIr>E`trPP>%!RT}>DR5$)k
zm)nu<Z~5xr*W`7xYUbH3|2i{g_SSq6c}uo=9hzbB8#eH)n=5O4@l@3M!<mv31uGhb
zKAxViD<~x2>{#KpdRg865F_!@>zP`&7?qOm&YVBxyV3XQ?u8{=Km9vVcSC8{1dS_q
z7U|Y)E7M(Ad6O%M=f=W`x0fE*p7;8RSL^q<+plcJUpzNCXL;#y&7m5rbd^(=nRAn^
zCjIi?7PDd!Z!A+%3df?gr)N1XleYLb!$f7-#6@{gT*2i<_Y&_}-;8UkUlRB>&-LOL
z$GEO<3eQu7qSBjRvCp!a{VM;&zj*IM*H$c;BRgx=_jeuw?)>5(#NrQj)$WtgFHOA~
z6JECZUB8&>7qg-n6W*I_eN<|{O?h%G6Q_%8LSJLKzPWXth-t>7&U?K(DsPDzhWj!-
z*<x_E*6K^{nr#cGC|#8}B=9Zf;@WzVm-D6yG3mX0FLOcdNZ;=7FTbn47izq5zEUMl
z#VKC*%SFkZtv_b|Irt(heYf{HJ7bOFy~pN;RWB+zRwX>;@ibj4HkE8orYFn&7KZi)
zw_UM6zvabtrmmP4hqMfj?ds>}O>>v6TfI$e@rv$i>Q<J<?EI70Ozf6&i&aZMW?gaQ
zO}(%4g&LElj~Vjvzcn7mT=`=^>vYlbHB)5QZU1oU(zOSz#dn=qU06e>>wdcU@%oXf
z)R~{}*Oae_HRhk@8@=e(<CqhvERQ7Fw1uuV-{vf5?2((OXs|5dyxa7Er%&5U4QI{t
zH#`}_k-KW`lgQ5;O2*Fj9v*r5R9|p=2Is?*TA@ez>X*rP9zOOU*MVcHZ+yvFpH1b3
zUkg^VZxq<qn#FZ1Fy_yO!=)#ey<Nl2=Jfx!?cWP;%{E+lnR)-t&KmFkn<};{D_+yu
z;Z@sH{Bg<y%g{@UQUjV!HM4{-aq=<?&}ca-+<8r#+54Nqv6kWhakbl1Wv3PS?_Rb=
z=w)5ZU)l3^kIyjFUrYZG%U$BRif#HCFP-XuD-RQ^9Qv+@T2FetTc6{yqCpzJ@rGM|
z_HpKx(lb<A`b~O2RCY_nHZQx<qUt@pC9V4RyFDgLrnS`i2=wM(h!$V|v&U;w-_5({
zO*>tmh<>p3+BUE6W!eUAuc&Z8v5j?4@}{m8zjBVN$Yn>q$*FXMlKLmjU(XdBJTm?J
z?)8Uvi+^18H7I$fn$4B_@hUqcAFcloI=T9ttXks3hl{^Q>8w?M8}|D`;ev}hKPBp%
z^Hq>jkh&ON8SH;x1*cY9onOKCoI{dN6f=`onf-tHQ0nx(1HR$+_8$xrH)&`6wex7U
zz|QIOg~D|_wm2znV)WlsCUWx5g8Cl8x;bYOayIVkw7;-MB<lac{+s;nE${BWRsSd^
zW9`MXY~8t#tuun=HQadHab)i0#gU8V=u9u1!87~&SGBIIj=LXo@u+<H@pGCJzuWXQ
z`QBM^jES0E*S>n$MO~ZqExe9*u6Ev1@c{pxV6o$iAA8)ld0h0iTrl?D)wz4k%~rjW
zuAjc`@T}A4-8Q$(4EVNTp+HaFvOT6=OuUM(E%fA8Ty#y;b~EC#<<jjro?~A4Kp<SL
zc2~r*%=m+P&vKg1^~>yia^2ql@6Gt5!e`gqWjxwqwC8ZnrW1D)y}i3;g;sMoD;cfN
zyqtKkP^`o#q3`9s$NA4gT3p@CzH4}^2?+mj^6;(qId%H3OhKmMI_LGy;ai=zpLL9C
z(CRs|!}?;osk-E0Iqg2dM3;=$D-Sup&I&cS|N89Kkdti>)ckX=wr|v`)$sY);&xxg
z?xMZB$Q4z?wne5|I}A3vRnCdHyx{1%HD}5TZz>ypn!7=8<-D*Z52{}-ShG|}Dx`Ju
zp(Pn&tAplBaMerlg}hp4632SHz-?yn_7Br_8QhmF@r`+B^=}WSXqUg){6dqvvQ0`q
zD{6clS+id)+iqc6Dtl|1-lH$Sq_?#$Ijtl0E_~YqlaDhKetz&w+vXU_y>B0LK#K{Z
zciMW#XpOha9j!k~@csGq%-cwwrOW+}?T_zb`QJ9Z-d>sHQdM-M{(~Fq?#X|D?05Pe
z`h)9}=Z5#Qc|M32Mr`>jwcNqSC~~a>U-TELxIPKb+D&Iz%F?*sZrgd{-X;#e43!s$
zR7L*I;n6u0{H7yhlDDR<Pi3iV`@YoXTiR_lzf1$W;{vXCe`a>Re!R9fFD~x0>t}|Z
z85UWWS~jwZ99tTpx1{4}(8KyKXQtdqdN(QV<)0nv7yQyYs~0<;J&$L~It?5B^~FuG
z*QSciJi~OI<J%G4iW@3zosstIFMs)@mAz9(`-f9W#^N<64ldisVxc!lvh%9-l{oeZ
z+ZdU57oU2vt3K$7)UwjMS{lceMo&8WebesnCTp8F+@Ukd&3p1E{@Ac=$*zxies}6E
zW@Y9+y0G)$p1L<;+~;4jKfXTM@df`=S?R{Jjn=OY_M|Ib*}dvmEcd;beoMJO+dVTn
zrtLm!m0Yow@m;IZ`ROw9*H3SgOO4tcv;125^*xDQvBI1Ds_MH~Ol2={EUWD5-ubP$
znpeGU?#<(xyjNbYdm|{I^6>Yvbzcr_j+<t6L!dr%xpgwT{yoLZrLLB~88`Y^uEuS+
zCD$8&@YBafajRb1)lYpcBV8q7`Me_J%C~AR4!g3_AFoUrZnhU{|Je3PV(0G{MV+C^
z&*IGQ{W@a%Sk=XRFHenX$t~Lr8w2X}Uxa5)iWdFK>|6HnN8Xoe{rp=^z9v!XCfOTB
zH%IfQ7Mwj%U$NlfEd_^pOaB^MfAW}D?9aF9&6_=nF>Ld;ML+#MdCOPxD2>&XvuDMp
zh_4TNT9^6u+mm@pPXtbu$G*&qx~VlKW^!y>_JuzMj#F#4)Gp-P8+T^O8kY2JMcmql
zU+YYcspogfSUX)LeZfAZjU0;_rxule5xa4BLA=xj@rOQ3!-Hz-jSYVY&0nV<I&t=r
zxmDk1o?Nc{*L7lsn&PpT*!iVz!ks&nZkcRVDm%a0*@Ev%kj3fe+DpznQFEVjXj=3`
zzSN&CcE!eT|8Bdzt@@kmm)YvVJ9$+(_ZH5q(YVa=US-aDH=8><Poyr$-`c>p@iVt&
z>yPDcxAx3k{PVj{#<6ubSIO7ZKVGh<61!x>qub}AEsS4m`sMjsF2c_JpULGpbDTL!
z-DbURI_Bj#WsT7psY+{aW3|t|X*?YXf18&7DX6>OVEdB2$KU&=LEVm9^5Hw*G=)XX
z=XOfGc`qd?=LNUahm4GN&uwPQx4t{s;VE|WQMJ=~pA6xjO%nz0Tq)hMCEDhS;?(+n
zr$<%ulWw!dE94t-{&%kJ>ae|1C3ASnHkU6|+XFHrzTeh8|L}%Y`1j~P?cvR<7p~m9
z>c+?R;EiG8&s=mLvYdP4f9Lp$?5evnR4)~tnOeXb8hU_d_r0ivchuCsXz@J$tnMnf
zopHtXIk%=x`k6A>+56DRl1%%3|1G}Qr0MSy{#GycKf~zx3%?q{Q>Uins4e5MzEJ(<
z_mAAV1#3<{iTvRs)oAl=PJ3ADYSSkcUtS7zFQ1iv!B9+e%BPzS7ImDJbJX&zSsn*H
z7O&K0o^*cC&Ie!4=G?n|@5uF*rB`l!bg<WZRF*vTiiKv{$qO5HW>0N-oUo?Qzld?h
zrmvc7yppajdQ`v0^6pCMKMNSPh5Pfp`*rI3!;0v)OYYyERXF|Hmo&yJEy?eHaD^2w
znCW+*DSL_4E6eq}3YQ%f{d1*aHFL~@>FPb(i|@Jo*z(wDW}Z@|e36FF;YZRJkJh#b
zeUbPlQI;dUB(CG<!;1$E4jPoP?|NLr@VPyxY*JBS5LarN#p<)cU+dNNr^}w17F=>V
zL*n8po%%m9J6`B`-TCl9Rpo)&!aO<mvx^+r%bVYC?%^$Z(a9hzRoCCUv!M5?!nfkO
zOVbxF_@%Vb<;tDo>t>7lxMrkYGSc8$&YoelaF*OV{f9OadzFIX(xP0w|9w8P_+R40
z*gZ0G!LINA*_qyW?r3%2aErZpeVbC^24fD}Q`2`>Mt#z@?qQa=x&1>%#O7RKkvpFZ
zL}xrnt5u)Iab@k>*GIOA?0vD=%;5Eno2yPK-z;h7UL1a%qfk50#MJJhq*-isbdr77
z?@f<STnx(<PnthbN90db$G3IoYjzt}w9X6t8nxtc^YUHOS$F>kUC>fu-YfBaR$p2D
z;(|xJehGK(o&3mWOVqDeCUfz~#Ff7e>uQDMg+|n5{a2Fv#vdk9VR&q@|9t(oP4;}5
z)77U;)0(;~`2B@s0WX_`9f^|19!r?kayy*aA72$%&;30(;kMD=QyaD)-W0lIripX5
zVdk{AOmCe;USF3!+EdChgY9?zX;TH=-o<-2=GXt*{jd5@+I{y&*=(EdFMeii#+6^Q
zG_9IrXYH>m!CFS9w~H5l%&zs!FS>M5e>tb4>9Q7y5Y64QPBeEE*h<Mc%5<FWdt~m{
zapchVd*7Un&t>*;&d+-2*4FmGvd?_$2LthSe@k?wavoYg+url%;x4{ej$oF5e}A1+
z6{%2u9#hU)U;caZI=93Q%g4(n=>5ExpQfI^^2b+~A_Iezc@6K1>c38X`aPD(`;XFE
z#mO)9%#Od3m3u!ewIkeZayI|8bqf~U6;?O2i75SjQ*V#1$>g`^lN&aD{ZV>z<DXBb
z81+@T42zs2&OPi&Ecu`kcF=3pvD~7+PkT8|*~tHzoOUP3@@h*xgU-&UDyMfO`gAw*
zaenl9SA1zj_MO`7;F!)i_BN};^gUk4p5O1gUhR;v+LMdsc6rA?JXt59Ayw-Z^1R?i
z_c3|KtZT=A95(j-z;v+K`pG^C{lKfA;uaNdZ!i6MrqaFTid<y_=jD8s)R}#cy&ddk
zO8hdu`=ju(^wiJ@mbZ1Lnf2U1-CQp1bUEEIt<>$`bmcv6i~+4yr+0U|D_rlFzSFV8
z=gsx4qVDSrKYuyS`EJeH)BAWH-;v&KWUnA?sIDqp`)JB0FYEOs3%BcB+P3HD(_;I;
z%f}>qei!UlZb~UwyF@SO&ez1VYfn2gwFUgy(3dg$xuR20NR{W3E2rO`dmc1-Vf~6*
zxoMIq=^ZDSZZ8vA^F~@psJnMctB}p*t&YLn?|&{icwq9Wd*y;_kM`Ciss3Fjx9u+X
zYVPglu5Wbe+Zz^l{?NyOsq_DSy_tH|ZlcB(r^fgF7mnmFs><OGh|P3;zcIew?_NyK
z(cGGuAAZgHcgSG_+xZ`_0&d=RUC!F+x;pU4-TME+Zd<fY@4hLuD$n%Hth-h^TYi3>
zV|Q7<|KyIMiTv+!rEQen2N&{|{kXqq`%3qsrz_MK<SN;j3166S>B95!O^J@*8%&q#
zW=)7L_CLH@^j&ReV9lI$LMPYAGW|XNLx}5IOI)CR2Gi`P)rEzn>Z@gQpW7DMw`P5m
z>-b=|%132M{hs^0cc1Kdl)^NNb7GzKG=;jihm0OO{F~Xit3B|swrWH8vGtP+RF4ZR
z4Xt{2Tw~^`r_9Y9aety>eXX6N&!?xDF8v~sq@%k~Zu8q>p~#}!kI%l3@Q}3&PWf8r
zX0hDViRJuZ`#7`Eq`jUgQo`+K&t@O0-|**A_O6L62BPg^D)IHwd-4|al}gsuNe8E2
z%znZ3?9e>LOV`Rm4%>W^Z$FiHqjS!*^wLY!Th3(`Z$3GTbIM_hPpn@LADf?ltXTVA
zYRw5psj{|Lt9uq~mb&~fh~s-%U&(RC`lMz13O5QII($AppjwCT@SLjk6Z-={ug;p<
z^Y-_P+h0Xo8SlJ2^Y+&1BWvnAmsS7LK6AGD-Ly&hVf+i$Uy?Y-Yw+mmzx7pqUy5FS
znE3w3W_96}XG+s<^3|P~u&y~erPq4-ggkzp_W0tPdy@hdeR=FKO_ycnm9j%B*Ulff
ztGE9>iwo1%fay=Zi|QV7zkB_c89TSwtPNkQG#8XzGVw6y*RgC8{Bq#>oZki_fxh*>
zn=3c!*)}f}lu&e)PGmmSZFcay$J|D))k}G{S|`oyF6?N$m7Xq>FCOZ&MNQjoVgKXS
z$Ch^cFS)KxR^N3~G(UFk&rKex=av;MY!tY6W|wrp;-9O<a;?4MlrQo=2{e!m|D@;|
zy8O*;wVzf0ZZICUeO*-4k#XhKh2=c|6iqgttKabVudb15eEn&+NTyS1Uo`BQbFPXn
zna`U2MpgaZ=MyG>D=d<0r#@RGvR;1W;+-uqr~h1a$rNq24|taLq(-7ok>l;cC7+n@
zriUe_-wgSC>O|e|#Rh*Qs_kdI-4eELb;F}nXOYP#<s2t`J>1(^d~}Ayo-pCB)r;Re
z-g(HaidBQXUjK<m|IdOd<+Z-`PCve`FJ1RAUFrS)vha@RYiC%`>=P-zS+ytce$ca(
z>Oa)H4=mz-d-BM|%RUNI?&p=Pd7wU};aTN{9}a9m_ZO?YG++6mIOYt`)DX!KU$*xj
z%);UyOFa^ObW7(xpNsCV4j!F-hAQvZ-eSGOtLk?4U1!FRPhl+eVL$yRFMYIYn*aHD
zuaGrj^U78Rr51AS;fxHfs`$D<v1!-3vh7Ym`r1LWF4#X&{<`YNV%@Udo9-W1oGX>h
zy>43OQWVpi5V+MPC9!SKy9e7J-O;?uvNYnUnQ+nlm$w2spBnZsWFN3LTN}r@%x#U?
zFaEP~m6>c7vsH{dF8z4B{(U{uL1BkItAvYZ_&&M$om+D6uEIpICs%_Uew;onE_q%@
z_mnp8llDGgyZF1dyKXgX4sQ>&-sN!pi`~QOKgXv2UGsafiQjUzuYSB?iECuPZ<k+d
zy5f7SsmX~+-@K=$Wvag{=h7`Zo-J)`f4j+sv2xk$SFPKk^q;!T%VhRAZzpfCr#{$X
z$`jxDy1Rb6EN`FJbo7N#@ce!L|4T0Zba}J4THASf8ryMQbMf;ts>>_{B39QMt%w&{
z9=lWaG{f8g!PUtrZ{+`;vI{sLlPNj9`L0+Uv%K_1A5(r+zG(NQ=?Bsp9ZfwI&tEhO
zZR?i#yol4nakB!WGTZe-7UeOk*1!FAVPitQyyTPm3!4R71VgJg_WtNywWzNog*kKU
zw(_T8kN&^5-0_&(_~)g~hhIG0yQSrNw?UL@OTxd2Hq*au%=&fu!|D$|A{M876KYI$
zIkI!x>T=E$&!yKsu}?7$cj|bf^!DwJb60mo8$R}5{O;%;sfN9ij|s^?|MSPhKY~a3
zx4iheFUOhdUpXw>dj5gn{n9{QmFP>H)BWRmrshXmt3_PjpZ2@_^mm)feTmC-Rj(P|
zOj&kzSw&}G;w+WBz2DSAe_p6Ob?;2gPagF~4F<N&KPm#GUrB6oSK~cU!=z>^EYEd6
zqjy~Z>y-M8(>{rF{uhMFy6W!hlfEZ6>CSaEv1bcC)n2#hO{+iXu#LY!nE%XMKRYD@
zo>R+o-raju^s;8}^}|Q4XMX<n$^C0kQ1W5v-mFh?uP!((?aNsCZP)q9AAbr78d$8~
z<P!Vhz{$zW6xpmcPyC$VWWlufEW@{HQk|#%%5ReS<Yqd5^}R|xea=AP1l5(Xho0S>
zGxO{(v%gy|T`rrqeEnR#1fF`CuTTEEp51+UNm7scMn=`WuPg2LZhdWZ_^Dup&|aR;
z!7;IWz3-~s(r){qw0ixI33rTlJ%7RLb!FFc(O~t6pYtwRxwy<fH0P&u&0Fmjqjfu2
za+doqGyi<GHtCvHcXIACV?&mNq)XL{`F<}-us=2ZtNvB?HJUq_O^@u;Kh4pTt6bmP
z$96*RnOM=+TVJ@p%>K3E-16s}{onps7+Cn*Zj(-LhszQV&fDKOcI=ve_{GnnrR;b8
zJ8la8$`Gh8h>26>4ydp>^ev>W``N4)b0(f$`g3CZ+?{R9gPvx5XKLMjUR1$pkEg`X
zZ&P-hTyt5ytSTX9%U;KLYm+XqWiAV@&#ZlN<4ygexz8GpA97lGf_1U}9X>~;^ql@z
zu}7EXT{>+n@<%E--qUvT-sA1rlkXK=Nmdm!^5l7D^)$`$YFOO9Q}ZPg3!dv}96Ygd
z|CC=REbh44U7dZf#_IPSp>3%y-jAC#E+kE<^RJlxsnz7rrWZdsCto%^%5>&d%alg-
zy)#=pcKMYYYpGYg^<Hn+;Y_pI>GL(@5{zmWd{}&<CeveP>bu`{ix<yy@r{_VzuHe&
zXY~`4mD$o;%0=Fs+WWFp^q+P5&t+zF(!#?uKh3TCsy|<8rioQq^6ygDXp<X7$#D(Z
zKjzBDM@CzVda+cngzTJRFJCInFSE@$x$b9HN{7Xgyud%4Zy4X#D@{1dcl^eejT>B*
zzHYm9JaozLtFyxmKib)7J(27Tc_dL4e7$40k&D}fP=m|czb>}iet$`9O5LpL;43~Z
zDXiP({@yGSTJt~fo!*a{dnZ+<$*gW-Ti&1bD)K_x4!wE#ENkZ<6`b+A`Ac8&&lBI%
zU%PNRH`ebH`uyQ2BV+vGV{OItyUN3KzXk*g2Fx;@a^x8Q^hpfq^G$27J$-c|vc&#v
zZG<T+^U@Oxj%lW>Y=_G#UdaCEwyDl}FU$1($hB1)WZKFcPIF$qW%wz&e|Ne_`-ZwL
zIckyR>5pn0<1NyTeXPje_eY8E6W`{*i9Sv??yhe)%%5`N$Y#CB!?su6&tqQceZM}}
zCQ`1JMZjD?@4fZjb;0J5+PhjUbB!kITn$s15%|xvyvRpF<JkHtorBS~+Y+<fzgW6$
zU(B;rLh*x6li*dQX&-uH<}TS7H0iYz-!&hHt9s!=PfxbZGT`I<y@~tM^h<kH`O|!^
z{pwZY%<nGkG~efNG?KxN(fRo0(6ZYJ+f`@R|1LXn+<?25jeQ;aN|AG(>_Yj+uWr67
zwpPA{x7^}h)(MZNKk8PTzPhw%+Y*N$<&PP~nJ%-Qtrxu`yI9}VW%j+tnZ4zEColOE
zp_G2N{pnh#*-7gw4oyC!9pkrqwZ2x9@J5!THQTZ$2=lV#1z7Bn_D=PFvYW|sk)(X(
z=9JHGr48!2KZTg=d6nR#*Sf{0G?j1nJey|q?ux)2cfMM37HpYwE_0`@@i+dsnHP-I
zGTKU}MV=1cKQ$$eH{!k4rQPWkw+`$ORpLzBxn0M!O|SDpt=Ic{`OhosEZ^y-KbwAh
z=HqX{*Y%pMz8c(H{Os@<M*C;~<dstca*G_c@4Hm<*!b!u*?NiS<y-bx@7#5khov{T
zX2)%lgEON4KNLK?I640GxeZKQT;)8|1iM*|h~6}r`CEKl<bn^SyNVYHJ}Z})_Bixz
zaGAURm9r+HVk;!BpP#kJv&c;T{PG3e&)ZH<6Mih*{o)JPy3p0-Z}s^n&-b3d{Kfc=
z)}BAllzersh5on{z_c!JN4<8_bB#$;B{`~2I8|Q1v(Yo@w^E+pA(rLgnv#0IykdTy
zTYkvw0^hYS@uttcms<#2FL9N-zk5mj{^w3#-Wy15imYiDaGO%H`BdirCncNionyA!
zyWpwwl4OsfXRR}5Z#up0)v9-&zi$6<tmH-y^SlL1YQtxU`Zad*J+<1}_Ni9<V*Nzz
ztV2%sGdmfkeJb3S+B?(fb?W9DsY`@4iaH9MqE~btjo{CJAtdh_*yk+eqEKcgczMb1
zi#zo8t`{nn`}k^?6;tpbSEg6HlG@L`E8MuS|L(zveg12nTCtox_0(so-Nal?h06!i
zL%TXAZ{E|GvmxCg|K#?^a;2s@1x3qVFaB*>zq~<lmzbaLMTr&e&jaqs&GpWiQXjy*
zw1wxsx`^L}+snTRUv6JEdGD37_oocK1XfjC)4bYQ*e}O?T<+D`*QaY16;vI0vW{(U
z?Uv<HOMJcfjh?UaezJ|>vXJpQE7k~}Z4q5A&t~1YnVfX)+vOd9_+QMMpW1t3-_6ry
z8p@Uv4}7~;FL7VnV1?cP8>yzYjP=o*G)<pI81DJ6X(t`{pZSW$Mg5Si%NH_Qe|KB*
zwCCvA$qok3WSyU}|9pDmm&`3eYo}lO*TZ|RzS7EXK7aZ_sQIZ)r|gcMc7DrX@l9XU
z^V)8)-&I1-Hmq&s_q10E`0@LLN$83loA1gwF+1`2pKhsb?@X)T_E)W@_gJ56lWDGd
z;>3&DH_C6em1wnn+I1@Md`eJ2(L#Y@o6a}Cw?6G?C~VvMBR^mJt8Db2Jvo6gPH&4o
z?`8`6b9d#w-~1dMi)??T9y)&Pi2aoK+qH9loH)(-`t-9~;__{eqc2)X%s1cpN83S0
zdtV#xyGvHAHvHjtF1+5l+_V15viE(8y4Sw-CFi^>E!)CT)9xfydGfgK|KoH2P5rxg
zIZws^`5p|DcGf*V#6ROsZFTVEqg-u4k5!%~PfiJbHp$${HB;%L@ZI7^vo@<uow?%v
z<Jz6tJhqdfB+`ypi!B$vQ75!7tVu|_z~*RfMqGTEOXNpI!>wF0mt5az?2xjOuiwQr
zz0~vI2jll9TlV_B2zsKL7^=%AX#UP{PMunXcW+MAtgb`n_rK|U;<!NP!_rF=^CeC9
zIZXV&sO!Dayk8G4RTmnmCt56+bz3ma=WFbR6Ps4w+`D0~%*wLjC@CH}Pp8CK$>sYd
z9f-<*<1g&fc|Bcv$=<6wp6$4$+Pus)^WORG^?U3%med(e3H@mPX2z2SgV+VW0=})M
zTcyOgui4GLET`q&k^6nM{zRrZtKKa;zn9&zRW-f+vcbaC%O<Lv&bu8~O#am$<j*GF
z^vBBbF83$<O}brEPt6xyXwJWC{(a6nM^a0!-aVH+CFEG4&3b{veL~y3_GGlG7S5a0
zcK+|TR}H)C`_^ui+mdyw<l*FJhW}+v?EW8Gw(9!k_Pdkh-US^s)4UTpv8XfHQmM8=
z_G((Llg;^i9^TueR5EUPRoJllXZaarta*Olto5ck`*M|)tme$y!wcA4HN#wA_x&rJ
zq!Dbn`RM;@lUa2eB)<pqTD6}27V+`hw3hUkg}=3y@$UY6=yUx$OUq|76h9hm>ygl&
z*1uIo?&|Jms<XP!`wBb0@VX$K)BR;rnSw<5xtZ5X+0F8H=d$VANF_EnKU=)4J*h3E
zB=78}m~*TDdC7S1-6h^#w%A1LmTHAusMp<XCpCJaVl&j<KE9fpx!=;-`EgIqpF=@h
zH~VW^l^=>cm}43FX7O^H`lj5CJz*PnCZyhopCMs!^5wC`EiW&qPy74)Q1FUxn@q3E
zO*xU2`$fCXW8UVd3!>|Nk1n+P_3owR`dM>Bw!VMaP@ylTk`b}#ShD#2r<FS;M580K
z>ovS5Oi|OD(0;Vcb>4#xj_ze;S2bKK{2#8X|28K*cKP=Q8mnG+yv{e+_;J_w`pCa_
z6KA&`DRQgcTz~WG@)y2^&1d^fuUG~hJX>3RglWE=;@^2mlSNgRci%AYOXk*`bTP1T
zU&sNkuO9yY)xK*kGP>f&X02gaaKfN_=H%-(THZ}v2BxPrADw>wN?q;5$kw=fs&4o5
z)~lt&v8Na<l>D~%^TaQko^EaPU3BKi#1h^5>ksurlI;yD4zzDMw|Reg<>Y^2x##`5
zK4-0eYFnLa7&7_SUzO4YuX&#<U3{pZn^&py%`RH7DAxIhtg}VIp+KARtqWPQ%W6V@
zJok$_G^x<`@Wa2k_a9F*Km6yx^Fqnqhvm&r?;q7O+W1{_-<ny{%ciAIVYA6v|7Px<
z!>__>B0K8S*4OTQ8#*u0lxIWD){5`jS`U`m`w07d7BCkwGra$H@9vJ-@^^V%G;b>I
zye%$$C+qp{oPfCnTuY<+zRtIr*5tlZOprV5z+#D|`rW-#G#p=Vu07us-xU2{W!=Ba
z_gmxpTMs&3|KK5{@-F`Ij8)0<4-PxXo)NyZ(CoEh^(y}zck0)?I9|oy_0wfqz*C$3
zf;xv}9Thqc+uD41xb9~Q+qyr84y-7y-Ty1|uA<L}KW2V)+aJUfoGLV7lUx7foQuiX
zOriO+!b<k}n-{6o8&ydsv;UHP=J)36tew%_8<zWD`&;(XBE#UHn`5B6Q|cp&+LiaV
z?|iS#S%3Ob)vt<sJ|ElX*7xt8p~dm=a`eU?72jt{flHOYefR2(T___fuf-Hq;NPC6
zw|7~b?~_~>wd(uz>L(^g)X$&s-gJpP*U_V~eKQjU=Q<@Bo;|W9;)v^Aqc43^R)t&o
zFN)fI_MF1W4IT>?+N7*o>9H&LZdiGsRmG1vQSWY6t=CTwSrxF?ts?te>H)+0Kj(Cl
zmZ{a2O}9DXmD3Qk`ND?<pB9v>&y5UuIi*NDzv1_)pQisBmaeN5ee>=u%NhQX(6b$1
zno}3*tDKLCbiWXG{%n;}d%RKXr2TvrDf7J#X1IxWdDJeP%Y4yyi{zEupN^Nq^(JWZ
z#QEe~TrXb4x>s}S(*vQ8<hQQAeD!9|-r4nA4fj2GA+YAe?I7({;{P-4a+c(BMK5n*
zSiOp4de_tn&4?vmUq{_7S?g3c^`j$q+$F!{Q!-iRcbA0KOmJSY<n6aQzqON}O`h}N
z^D?igOg<{<yVMREGMa4I(d&0VMs3SV^JgVZA}4Et0yk>?zMfzzHd}pjKHKsQZf=sI
z9Y%h&4)y02hDi8M30+ZEaP#cCb^1!Zr+B~po&LPYHTvnIqH5{(mAPq32D>L1dAU!x
zu~5V*iEpFKog+E9hwFsw51x%xReEH)Me6wKR>!p8??YQ}J><9PW3tx}ZxfBbzAEWO
z&XoN>xP%pVgv1Mkt(dne)W0gj-ejh*-5!p;^S7Qf%ZgU0-#ztVjMjqn%Hh}N*_bc9
zaq&TV|DMc~(_Zfqso!_zjoZsNGmeC*sb=RMV03DaDC|sJwMl>G!r5DYDOgRr(es11
z{BO*`h&?wy+Uk`Fe%tjV_D+-8-uIoViuHR$?`=H(%2a#XW<%aR{}cSDYrE9l+m`t7
z(WgZh4i@$|bxgOnxUj>p-ejiX-BVVfj?Z@NkeYPP;n?gS?|2j6SusDZ-g|lel+>_8
zPuX*gPX=e5P0vbxt)jiso9CS7i5sdlexGe$&CF3>5u)_A*dgBKL)^=gf4Eamah2TK
zcSz%srsA{%=?p$Q46gj0=$NN<KWxhCZ=Ro~8CpL~y!e-I^=`L#`;&!X&-SR+huwc}
zu+Hhh6yX(9BC2asUi?@n&L4S4=GdMKWkI(pq%Q2gaCMbSyi|sksAGxk_vUPkYV9ip
zm4X*@o*9SezL8r#d-mnEma?oH&RkjbYp%QbX^Y5t{6g*T9Y0(@_>D#AlEKAlmgJ?O
z48?tVa@YMr3eCN~%Y{D)>X+{8u$~_!wYc6Yxa)n#`gOvIYj&(X?RE3W`QD|rb7X9H
zeu&#LQOzeiT5a}|4Q++|3x%p)Z@&IwN0Yt&HkT_8>bzLnU%ufwBr9ZiZC_*e3)i)s
zeF}byb$g?>KMO963wC;^cFZmBqC!v2EB6U3X<Sn-y}V$ypFdpapJS`<+6q2fXOlT+
z0`^99*T0x~=7hz&59_-4Ik-+K%3LX_GceCtsM^c>*8N~|%u3EPXCiXnHKkf5-#L4-
zy);l;R<?HkaUb`H7S6+>)ytbyMCavv?2Tr9sm0K8chRSV|9l@^t6lWH_MsL3ztU8G
z*7-ZNoie#jzO3NNaes2_(SnV)>R!4&w)v)P+swDvXgf!}UHa1w8Ra|X%L8&OUma0d
z%lPE|QoHtrhnm}7{$4B`-2AZU@MeG4$UR1fTJ8y{-d9=Pu)w9KPjJ;Q8z<>s#xt)i
zatfR^=iQpevG<&>ZwptS(>~Yh^o)%%)07qls+FaN^W9lr_&#;6ptZBqO1soLy}YfW
zLYm73Hl?lpxaCfP#=ZK9mPc1*r}{?sACfqDOLb#t_}Rx2b-$TZH+(<$fN%3v)9-dG
z1A2c?`n34<k<W?k#iB~SeUl?9cSU4YO+2WmwljopneF>s2RMV`U+(UB{75xCq_=h{
zd(6Qt4$(oHCD#veCO;29nc3*svs&2ZYTeqd;^cWNQ`4<m@;thOV<I!v>i^w89G|qM
zz2GYI<F~#GZ$}5rkK#1ldaJlvTSm4nNbh9bwwr;BzmjU!NY1!Z?6=|kLG9*K;-|AN
z?m0h?kE?30Lg6w0z^|ck@=MR|vzgNn5I)CIVc$ff%{N0_sy=+<e4D+c>73alr@7l0
z7CT-pUMify9y6PBs{6T0m&rY?hcbif*LEsZGQ_>@h}N2<A*H<k1FJKCwb-Vt{BLa2
zp6}%I+_soue^AYXXA_#%Ii7DgrMv!>eJT(CovPh=mPJ0><*%Laa&1k&_xR)9pQ}&V
zdOd2pyVYGa^wG3`?g#4%=F0t@E^xCrInVNDVN}0Rqg2C-S1Xt4{*!&0vHYUH=Q6cD
z(OvbEoOfE^?e@RcU%op`=z4zPocMkFM3rwGVtD+!<ei9ozwocSzdr8Uzs7UT_eZ8i
z_Oa`v`IhWcoEvicHLuu$9=#rgeQTG!;1K-v#_a2=nSZt{{Hyc*u?&B+v-szCx?UGw
zPu!)=?X-s3Qf12d^T|%Fbs-^|`jeG%T{g&cK5JW6a-m*i(WiN5Zq|LA>+C51eWJW$
z=;CkMi?3Eby>RanufweVnLq0!Gw(EHu3Ue|`JJL?)hB&DsinTglQ_%2FBhFNe+%cD
zQ{UHgJr%#N#sA+%Wa}QO*JcdL>t4%<eB)kzi~UcDqmlf~Uz_}t&YG<FknqcP+QJ_-
ze}dap*WS78ox|&7x4*tuAYWmM>eqJpV6Lx9?cBB#=LL%`*(m3F<NRZv&@bjsoTqO7
zy;o+w{p7cO;WBSFWP~P(q%QF8YrUseEX<<s8NB>t`B8561qW-t1V4WxDVsJ=NU3Wp
zo3!Q*Z7ZMIOft8eZd_~%%y}TSW%b#|x#vGW40mYVqq-vhPu3l!bvk|V_1(Kx-i}+7
zQY?_|QWyL4VAQ4!1qSSI&+flty7}X|Bk2oIzjV2`yqeq2)%L=vf5A(ZJh*)6;`6Dw
z6(>{^w`J`qEAu}--JetS;;C6Je;Uunsh)Z!$Jij)y(=Mq=3@5VnOAh<@)@k8eNQY2
z{XTKMkOX`3osOU>8!t7PXC;3vbnIPSzbkOX_kX`$cW+R*`6lv)#kHw-`(K}!cl9%?
zW2&0Mn+e(R?u{{WwR|bp;*6C4f1C5H@i*W8jK+K${d@M4PnLg=I5w62lGok)%eJM=
zKJx6colR03U(Y?OBG(;LY-TQzR(mHCdRaAZsmW!(1M!uMPaCk-c&{wc^j(no%(aW7
zc>dk`un*@gj{a}^ol$qv!#2ojw!}9P_sKUK!=61!_i_67t~ug1??>bBTle=j`o;!*
z=9k$u*|)Bs+d8Ww;Ap^QDfv?O!v?A4_sTf>9|zk`NOpMnSiMpI^4;i+S1*&U28eH;
zapR@nil~kk4sV<`-n+Cl^H{Tu-4ye_gR4D~+plRi_SOGf?R5YCto5Pw^<VeZmOsm#
zA7LDvcsKFWsq;N%VSI;nI`>vHwBLAH{c6u7-)|?Qt$y@XnO(`UFtt4$eKg|&hhgo+
z!&yp~KIOTIx+hm!$NP7c*IK$Ce6t|n=<(7|v&zoCUuyr%+&yh|dqm(;Tb6)r_s{Q0
z_n2gv{7vv?MszxN{r<F2{XoCI8xh?$`zPIAx_epksgRb-`|G;Qw$5=0knj$b`aQ#<
z@{?kbW`=suL$@h=rq+w>vp!gHdCwP_p9dQ%&R<zt&QU8mEBmVS>A2h%BB2G(ec!}9
zWL@L9=;P+a&sLtT6#4OLvF16O^LyLN86)Rfwmm%Jbk)JE!alT!$JDN#?RbJpit3z#
zC=18QZ!Uk>^oeDq;)$96KlC#9<z1A%t8a2MbYollir)L1e@^8wN<U*-mh@*%ZsGUI
z>)-8N@WInoV9hlP*=cGMr)v8s@i5%EB%Zmh>0-|H#cGFUG<6+4e_Cg))XYo29{k$3
z=x!PF)1<k%i<N}8sD4|1PA(?S=aq21z{YE_Cg-30p1Y29Q<LQBPsu99#gEo!^UBpc
zdawUP;JT&R#b>z;m(^GHFfF;t_`^Eg=j|3<iFsG<c^o(S<LcUbaW0pl+Z?l&sC)Nr
zmT^C1^;Bx|d>_`Ls`qz}iE+ugUrZMrJdfXMoc}m><;pu37`wiRh8bSeRoZ?2{mS{5
z-fGmhcbqym-L9r$yHn_zbq9{NsohN7KUd)9x%X~Qja}bunY+tzmF(&*lT<Gky{hUv
z^R;RLtNd)6A~uOHk>4LRy_vzJVAn6yRQW+-?~9o!7tYMw)UMp4EN{oYrX=9XMQgjx
zw##9q)AwZ6+9|%Ro+dDj*UI<%>D6XEKQoeNZa4G4wYy$Ca@BO<6+FcYoGo5Vowuy%
z!&C2)xTuRKW!t&lvJ|qO75sf??W7$)mK%TKcl1uZ9Vof*e#?1Z!})FN*2`Qe?D=)*
z0mIMom$~ApCvsfxi=GX-{`Qx?v&b_0e^cbD&V4TY@;7z+H1j03^GiQ}n09AJIA`j`
zyvXKfH$N5R^gO!ZU09zipK^cpSML8Ymv;8I#diEy`PgmQnb7ZFZ$EHwm)hC4B+qnJ
z+n3lovY+A~XsT@8u~Yn~@1#`zyWE9lHw{^BHM6^2doLtyb%}6jZ?<`>bKnN!^wf)X
zJX$5+LxKeUX#Xx$TQ^^F#m*y|rap<Ay?$AgEALRr>K0bf-{f(v{`t$2`f$s}Nmjq+
zUMQ#xFDi%$>AGMS`!#g=<HZlMQag|C`Y3ox>yC5dKIyKL`^<xcEKmHE*g4-M`mL?n
zeRVY>%~yYSoPB-vhjYUjnbrSpx^6xoGsSlG>GGc+D|YSr9=*|DXzR0b+2Va^wfpZJ
zuIHGx(fpUY`f`IeFXyhldu8hL=Pz2%)F)i!ojv#MBhK!{lg~2WpRCUI;Tq@B`*Ov}
z&pdkA*F>$K`zTarr{+n8X}McAo$^kZJJ0l-g!a|n)71;yf<p3H{ma!8d2iggH%n)(
zflH|6tz)}YG7OA%?|2rJ*~V4Sy6>e;#i|A3D=f7&m+w8X?k@Kxcd<QPp>9p()wAuM
z?7E^_e_ltb#<S>F{EOvBjd_k1fBI&5%|-e0Vnu^3SKrp$-0jgZGd{Cv<Efmu7X}&K
zL9E(Rse*Fc7o}L)esOo)x~E&UU~5&|PEOON?Kj_U*?Z!{2hVeN|2{g#FS;}`e)`tB
zImMA}TT>q2{rr_BHYV4*?E&k4wW64U2d#a7FP*XEdsSRNS;WsaYUb*?#f?u^h}4}s
zSzYgay+`dO>uRr(gD(tP%gbL}@Zp$vefQm4+u3Z>WFH$Jc$_gMce?kTNQ1tkCsa)2
zew|DH%o#LwPNB2s!%VxPsUeFmTyR?M=v7**{h%Y~sdidNj9kFpj-=Xu+>>h^Wy)>@
znf~AZ|N9Eht313a#r1YZYA^afY5zO0_QTr`Oji}BKPtUAdF`c7-Lv!cr+zDV;P|-C
zCqVS&q<b=pA8cQ&nV6&RE&1@NNYVQISJ%wG=r}fpJz+AIY+9d|u_MnpaL%*6X>+({
zC!bzyve8A2^~sO>fqN%bd+Zkw(J{Q){c_{|Cz8Dh(Q2Va`}XhJKJ}psYrWo<*Vg-Y
zcSbMsIrOJVDo--$vBDuH*RIxoJ&vhjeG@v*`QDk@GIxO-^K0{5p}?M(ZksB1=uFz;
zu*mp-cX8xx1v`s}Kc;vvxIWNh-F<$sqD9uH6_ebxKKG?Q_c;+)F;TYBc=274xEpuu
zIymC`cJF2F{q`o{K)-&_J>Pw6ZB}ls|GCFV@Q<19U5-%xtqcKzmUlerul(vho@$oP
zwpcUcao+LwFKU7|O;8AYdiBuMz4;FkzsBx~bSQb3<g<<O{xqF?I_pK#4hFDy%5MA9
z($m<#XYKCgW`EU}wVsi3uid}F^Lb<T=ch-foN$W1?!No(yNz|KN-ZbvZi(Ic<N62o
zkc`IqsJ10b4r)vm_geAmVSf3lnJnp5rU~Ik-(?imZ`~e}_xpOl>6p77{St5aJ{w2Q
z*`(3C(p*yCfXOENd2N1d;iGi+8{aE?*VJ82NOU_@JxxeowNAof&5!!r*~$GHT-SAu
zZ~J~@TkdTHvi+`Net!FR`;tw&HtjOoS)XxC+~SHK6Z^`w=UcxUpEY3Sc6=T&brY}i
zL4GNQh9e(i%7Pj)3(roeI*}vtW!I&Tp||*oWX?;iJ)#;S7O=Km=t9c}uJCL7#U;Ml
z_Bl>VcvsFY_xt3}dk0c~wl;K4s0^IXdB60AvTBXRRxaJ(4>g(bkJwh6-~IEizu1;j
zGHb5XKiHgntI30}(ZqON^x>}+5l5RY|ID9d^<mNUtH%#jb%o~d?Tr3<yprYIsoR;W
z-_&i^{3m<;MM0Q%R&l>uM)P9%Nr};)EQ2ma2A^L!+kvxl!WNyq#WTglUvs)Gk)38J
zVn6ep>ie>MhaFNLngY%dAKB*KI9g-dCRLu)|F1Q1;)eQ_8?2?Ktg2G5>|1(C^}WxV
z2$QnvHJk3LUA>z1=Tn3HinnL;d<8s(Zm)mz$AbB%OM&^$#?~CA^-oy1HpZPzo8K^1
z=(^Xly2I8gFYjd7J@r1Ywe`!|+PT6jUA@+AQNP8vC*Jaw_}%b1uXd)*%(cFIVD7xw
z?Gl!cDjv^etJ-XGc|-j(XM^(3Ursv~-0%I|wcWO4<14P$SI?z}KAwNcdw-Ci$;VeO
z;?J(E?)Y@7x7o_+RORxtLzQ=r1qHHkI-c(PH8pN}2&dDe)DI6nNu2LKZ?xL!J0qX8
zjM(<&ZdZ@)-SGS1YR8mIZ}_G?c&&T(!QyFO+i$j?ZJ&J1oSoCp@Rjfb9?|-!wU^j-
zo!@CHeogPGx<cvYX5YH%oJ;H-JEa*VURgcsop0Fva*bJF;DV^#Uv4L_JeT!-iv7$l
z+I(+>uP$B6c#}!CUioh2*M;G_8uefLJcMK=XJ5X5V18xsq`91nToS*2WBk%@cOh#w
zN4MOZb&B%y)<&>5C#&3R(0N#_|2j;1ZT-W`mjpFiI;O0g;m@3}QR+3(?LSWo=U?MP
zQ|;b1l}{=D9>Ql;v_0Qf@cw+6hq^`|4cF(X$KT$zi!)}2G1Fp21D1U@bIae!_<k>F
z>CJ0vvJbj^|Bcu0X<_RE*@T(*=m(23-2e8r=gpiwH#6B1=Ic(}{pY#ak2+C?S8u*q
z|99!FFWx)Vw=p2`#>%I2Cke1Av=p8wU&IxlRFm*w&H1K#%rSEdJ=K0*l4I_koM&~h
zTs|XTSE|_0S@!?g8S$G%ANpk6FwH*nt-5E~MD~Ce9N7x<E8>G%*g6aj&p-94@4=_3
zy?-<W!hi8usT`0ESZ|=CV6je^wb8aMH#AxLZRD#Rm+Ezlif8$h7aceHcr+_=@rN8u
z8+I4v>B}3AIh>B_cr0DK`l@ka<d@VNtkrwn?@nzCZhF7q@~U--huOInZ?D;L!M#_(
zMdKw$T*5i8Z3ov1+cdD*zm~k$q?pI$?6!D~W4O-Is>PX%Pt&~RN_VqyY;ApT>%@w0
zih74k?k?Xor`GX7y-(+s2KIxQpX;0_hNg-Jo<FYMvOfK7XFK!e+lHZA&5AGVj`<iR
zSIW0cGU`@@xqE_DjjGE6h7HQ6y=G@EwYQXFj;p-d*YL(?GiS=`tvi3F-cND2<`Rl<
zG4e1`b?=+eQ}}L?{N$@<<?qWc_U=CP_qe5yREDD*tDL%EY>%PM|N6+3+by%)HCSWs
z959k)yQy-ZtW+mVs(q%k;qK)+rw@uVJ6alD(3hx+IWG4q^7YYv#S515=kKa5(_R`b
zu>9gCwJ!l-uZ@rH6})ro`WLZ39=-8P_)Q!wRvysUv|#az$0~n1L$*oGteA5?v8(OX
zvO{w{WNztnuy`n4wf!%x`P_e5{gv;Bo8A>GncVI<ufEH9^5@d$y1NpOcL(RNytG*N
zd(!-i_Hx?08SF%p?KG@kf4<gbYasZ*B+F}!%Y4QCJ-4rxznIdMq}F-O>3;pDwAY*E
zuEp%>c$$6TYkfu|uiuTAVK#h0_Co8Uzkj)AescH8s99;z%NS33$S+NGvd}MmxbaRs
zQ;}bfg>wC^%)50)-{%?qwmYyqGXAle0M}HvtCL<yvG2O&@ifBE|C>|An<mz;lkGQc
zt}~EWFk8%JVZU4It%_}{Rb+1pJO8dZ5z`}dspDpmmCL+0ldsPFA5gG|<(XJS$knxZ
z<(YFc?ACsp#s2KNq|=m4FHWZe@7w<O$FDx}N4!3Kj=FZ)O!@Wu@3(s_Zuz@)-)~Pz
zxg~#puHLzCzKh<rCX-DUMLT2u?_at1(2jPUpKl+rzJ5?^=hVH$yLtMzPr{MA1g0-#
zx_4%aFUzM7n;4f!&#9^@7ykUuXhY(kF9-M%k3`mgJGSX_VlDeYrt%5L<`=xLd45u-
zwDE08z}6W7_M7ULH7S*=#Ft)Jlh?TWLt9Fpn#I@6A9<aR*1xh;o){OsP5npy(dY3K
z+!jy2dXp*T?5Xv7iw@ifm=W9;vM#+(tclgr^{>vl&fF;VyDS&kRTod6H|ymSuENJg
zFModiGsAm@*(QPTrDe5>wa0INf1EzQ^yD==@3+3)*VnS&yLIQRXK_8_!lLlbf9kj2
z*?6qz`m%@RF4rru>AxTJZcc0#VM<?KrgYl=jh<+Tpu}^XcLL(hesc4ZyEdtNc{c3a
z&Q>0jvvPg^hpd}(U#1(oz7C9Zm?pb4?=$P2N$MsHH!|nW`?&K-)9<TRmJdG92nw}r
zzxr*z*9oqvN|8bT=ZSq;BOBPfus&+;ye$_6<#L{zmm8Jjew^vI{O#_CLA^QJ(Xr<_
zd>8u6b5nU@wRi_t61VdHIfslkt;>I)uy#Q=ul4sB{sU7Ne+tb=Z4j3~QGF&yG{xD$
zj;SPSd%^4@8XN7WW*okCu%T|*8qq1-g4f?i*WTupo3)&K#eC_bhK!0eviI0GcI7tL
zSFBBZ?i0ekOn2kq^=D-xEKPR)PCfMY+`@+~w!*)%W=g*Ktuv?kzQhC3tj5pro4dTa
zX6Nw6Ykxl>u|Z<i(FLZBORX7g3jBrkr>vT?=;TASMN^+PSGug{|GjF;zej)fWtxOO
zR*F4q(s#sj(yg8dmk(DGELK?=E<V_2%Koe3$hpM&<$@EXYNkwExZ;bhz)w5gN>;1o
ze%luAlhEE(z1&_?!{6#*^n~D_rHh}%y7B%qzdUco<LD~awp-t380Rg`dK?oZTWzf4
zx-ZCRXIbdxCk?DmSyru0P;FeMq;hgazQ&Utw~rge{L6}Fu)S<}>g_x`K<iBZ$5w``
zSG|@9^sHFhR8pVl(;%a}a9ZGkPvwd%FLaJfuZSp~*M2-G>;kiOYo`0b`$s)rs4UQM
zw-4H>_^VU;fbjFSk6JIR-!6PE_vuGs$dZcOInA!RD`E^+@qbo5*|n=8B~wfI<E9GB
z-`Rg7=RA;GTfXb$es_g~9JQA}aa6wQYi68kb+PhgRQ%fizF!)4*Kgcz<)NI;x#Yzs
z({)j|jg96%SX0bWV*h@(hO=Pam52q`A~sxjc7!LPTKw+npHH<siuvM=pHGf{zL9I9
zcV<ebhFfRWsmA4we>KnD=KDQ$uZPIzTQ>aD9&LVfzoO0cRs7vZ+w)JfM0<^t_8h)z
zbh}elTk3BA@yiz!k1e-cVi_e-zc`k`UxmTAc~RC<%_#F_hmW31UVqj^LU-3)OWSVk
zdlq*875CRaby#q{>+^B9b4|<i%(uy$-0k_Ytui^>Ys2TzMW1H<{>Gl<wS1@isc@^L
zMeEkxdh##q&BBgDma4H<K{99T5}0-3;^u9TX1pf3^6=TFj`IP3B&UR}(>Nk3*yB_G
zdWMw#jyv1WXBfO&DLtd;(DVsQbBe1yk1wqG8<;0=&}C+FFe`ORfbgSqf$+12a+z$r
z44oZIV$I7px$FyEqG;#E@Gg0J-H)Um|BR#+EFTVKI=p#j-|4{efA!?I-kq=hI*2TJ
zv$N{L7hMYpp$p}f3mRJ4(vn^^uru!U*JiXet^d2D^vZ(UZt9`_N7q)BxL5Q03a=Dg
z&03MW)w9#mF2JXar(j~>y8|^-&84OMW;iUdoqnt2O_8C8MOj;h$3FR!`sOJY+ttfo
zZ8*F0@mkr~mnX!3DztxHajx|_lTP=f|2(H-{)jGqvOCB+=;V(%`T9PscDrx4FF1a&
z{Xw?%d(F%BE=vw7?mpno&u6IYR^6nRHvRhEn5b9XHe1C07nHMYZ4~3Y^<30&TStR_
zNlcIO>kpsb`Rsb0^XlNnjLdo$uJ3VD9CnlL+08dloT~kKqPh9IzYG7)zag+;#r!iD
z)^{j!>}Gk}*!p;h;qKgTj+-xK+<A4QHQz<IFsE&9!nv%g7M}J0_wb$E8^m&X%};Yl
znTTB}3a&r+w^(YpDu3->`%B`%R$g_U+i!Tgj%<ARz2Lu6@&oxhx8G+@yu5kllP2@y
z2bB%}ocJ8<{%ynSZ&pDQO6Tz#tP-z&>*a8^GxkGAN)Bi6=8nBfHl?aPduq<X==PTR
z<#%7t&8kPwU+&v_xkD|FO{D%uwe6Ab@4L-HUxgOd*L0k*x)J~7_olt((@V><I{wXM
zILmNr!mJfl7k7GI=iRqV%=wI;ci!yZPS3aWHmxb**9r27KWo?Ob#>FB?~!u^ItmtB
zGEdOwdM03!S8Z#t&OJzq&CvhwYm=wfHv2{T6>a;v;zl#O((C6P+a^~0=h&IBtp0|m
z)sKp6jL#i!ioc)r!0Ef_MBDj%C)1A3|EG0aFJjF`x8^5tN0;w7c2)S#Zual-kM;*%
zEMnM|{#oem*~0k$N3A1$_gndOEq@k$QkgqrKj-d@6d{WbPc+z{{<Erh*K&Kd+N74b
z!MXLOoyn8W&+=dSTxfEr^3-yjxbFK2`=Wn))NfO*4o~$Cn*Ue1FplMa*{K5$f4_e2
zI5~C6KG~L)X<J<n&EGloSk3MpRp!Zu4s5(AeX%}HbG2u8VzaJO=|Kk0)idwhXezvM
zE4}fb^qwPi3*rUu?6p$-xK4NK^Oc^Zy2aDt1UN3<oO$-3k)L?@r*@C&?I)x<lcWF6
zU$F2~nB}y#`q*`n+4efk@e42Be*27xy-ZHQv*biMx0I#0*As7n8l_-<6XDDEYy)l1
zJ)F;zsJdatlYI=Uw1X6^%U{3Hu_{XJTjelkx6kVB9D7af+>dQFZHy_mdn$bI3%}Bj
zgsCwzG90u2Mrz9R-3<**SYcPoJ8{mrGFOf*Q>RwTngnd$`lCKIxj8RZ-hH8Wm8RP^
zWtZ&=bLML;4&5oC`FqV=wcRUf#U@<fQ@rC7=|8*aPNQh~ljk+N4em(piYw~m(rs3m
z^L&=?L&4rOwz;2f*1280cK6b?CAoiZzS{EN<yX=N_3HWZ@u!qn`>faQ*!KFa$Q{qG
zM^okQa!WJ+dj0D#x5d-M#r3n#%-G=YKI=qK*x6})!8S`W_?x!~t6gAR_o||AK9}Tj
zKEv&-N_;9m+K%O(u715w?CsYrd9!wj?su8(>-YFT=;yr;XQga-cjWl~r(8<cw0W{k
zU2@pJ{hzvJht*ND3nEAMZ#}7<cDG5|*m}{5zG)XbH(GuBTUBy1<w{1MP)CpG|N2#%
zfA62nC-E(~ZdUMY9_65wB3rk<o!1pRyMNd2!*X{X#s~3UF{<4>|KZvl#`%{oi#9Z5
zxSYCr{AN<99`nKa=Z`imF;S>_@_xcLe+ETCD-qX9fu$9T^b&fLEZnqRduCj+I}(4w
z|HM5flRa(Mw3t0sYrVL&<k6$R^1plQrBW~Ls^5N1_8$-borXA_3{n25cMCX@S592~
zfyZ#B^X1up4Lsr*Ud@wV-Z<CXEXg$3{eb0`x2}?ks{{?g9h;P%-#+z3%KNTI;mV8W
zoy$%*f0s*se{9=38@@?~Gh{!V^?#o-$Fg<C$>d|gf3lO5h5dS>HMg%(={Y54ZPneT
z7IUTjYTU*8lmk25I7GJVhjUF!h!byG^F~kOU~#L$Y4Nz4PmZ~=tlNs}8MQvOysve?
zZ}&oEZo7UrvwmQ=*6Xb&ujw8?bDM8fSWw=QkQ{r}oYcp2wDzWdKlgl1^0&`>uUA(;
zU2JQyrakbMH+O!Rr-!na$C)F7KestN4;1kE|D|t1;8q#_yY&(=A5N=D^?p>=yL&Ly
zQrmG~wp!+?|2q<kT7zYjCC_(oyfpVeR{2Tc^~6acGgoihckXS)gH^?rN!MPfJa|<3
zRm@>ez|>0_%I^$WJTe>33g7nP(Oyuz+O>7^?UlSjb2nzR$1Rgs`}f^$fp0GJ+V!Js
zO>@_^#<=Z&y{FMboYC+~{f;jk9?tg;hJIBJKg1WAs(a|bw`P&F*3{Q~@5;s8n_V6D
z>Z0pb2X`j*&xOD5eV!`2STH+y&hG=41I4sT{THomeIW2ayz7f<h{x?o@z+*0Z#&Rv
z@3H36ipd668IP}SV3R&#bcJ8D=lx9OP23M$LZ7e6+V?^9=&5r~cT=stDiuzvUwV6q
z=;}Lpi}e0jYq{6NeEsAxWqysr5&p&g`Hp;Ir}un5Zn0r*s=$S#?g>w-UQZBfP25>D
zTl41ZKF&XK@3&4;zHEH8;!4rSty7H!z4v#W>xkZBo%8d9`I!Zr6TfR;aN757>3y5O
zQy&>8Eolf|;wJ0+P$grL-}|j)y$72-I<?o<SGC1fY%+Wm+ZFKtpW>E^JzoL@)~MMY
zt(z@k=~<K#@5Q+HNsxZm6B(OdT%TV1*A@TM|FJmt>Gx`}mpe{&?rzmpX0Di--v2(h
ztgJcsh-ClTJn4-NUY;F+oUUDa1)j`bW@-2T6TjCtLlfDo#M6(`Q+H^7SZcU?-ruO$
zF!w@6|9YEkLGShoN^8g%JUOL*`Nogj-h`C!okoh+V#<E!*1eW1=yO^iamqf$zv@L!
zsl1Dvbr|miNw@787acZV>-P2iYhkn?&#?8GOovx#d4NUqwPLG1cVlk9H9hn6+=7I&
zW-D^vU8r0b`oZ*=(V~fuWNnKzzql*@(&x$x-W&AJ%2}=6!uaFqg{|jr>3(%uDw!s|
zI_#^sG`r^G-Kml)54Y_~e=Xmh^48SAFwiVVdbX*Gzo0;$*72izjSJ5l*?1=T`Of#Z
z>iW`-smv6zYs*d1JMb^rl;c^WTSlmm<&CPl_3O1CCp~WR>d$p&w0r1$jIre<=TgC-
z@b`D$pICLH)azA3TYbD);%Nt`pPWVyUaII%=`blwoy6l1TIuIL^?Klo$(?um&st@7
zJQD0`H;Os+L{zKsjI!9TLrh{fZeRWNV~W(VoZN%r&-NH!n-<#pJaVdL?~72Lk8k<~
zm-<aF|D<_lk(82Sl(^tClX+9(JD412EBP+paoNtIVA6@+w!KSVO-*}Se?Q{Hr+0A=
zL`#pc{VDC8dVbk&rW7OFHg_pirQJR=MWgDy7}<96e19<cTWL>1#_#<%tpki@lVTI|
z4@s*D@k*WiXaB_R?f=+UU7`Uj3}q~v+(Vyi(avf(`0??~zvsDE`CW|*nbTZhW0ZKM
zTQ(u!{8G*A85c8iE-Z}B`QyHG=kofp<eu0!B6)$w9$ruivi>`5-gbueN(NnD0}q~P
z?#^qct*uu??Y;1`XtVZwqriF>#~X18l4rxpzxXz>Gd=rlX=|}=tB3r|CmhSZ3ncMc
zEl{{zDro!K^GM?M0NrMLhp;s7quozLleBhB&Ak*`d17)*+L!yROV@gSnqg?H`aa*h
z{#)FlpI4&2R@Sfa@R?^Ov7u6Q$I17zVz&h4bscBpb~DP_Ec2Q@`d0iUB@3NnocljE
zpM2TclUKjPM_T4Y^UM#=*CuKlWuD5gI5{h8+t1^Vzw<BBaG8<vO6Po5Y2QEl?Ryqk
zzbaDj4D)h+d_y|DOzsJfdVqgy^|Q-=&KNzq8P8eIEq<EwM&S3Y_ue`lnEEc#jq$0(
z)YXZ)lIIrsZtgR_wOcN*PwUm=T&6P>N1i*&@Si*A%b)!5r1VE0!%NR9zIwFG>hrtS
z61?MN`tn>J)w6yl_87-o>n-N2mH2;U;+%i~f2i{D#;;zvZ{4CpZLE)%9COpC>(ctq
zlgah}6|blFs=E4*l5b;TXJ7nRRn+qO#;kA2nzJjXK962zHuvwXyk?X9o|*5Dar0ak
z)NVG)PkI!wf6A@@vnM(Cmu`4oaVqWObN)+T_DNMOH~M>3t8Mk)HOHQN2<>dRV3Jg|
zG&A>1Zs4}Vr;kps`gQ63vHD*N-;~~6`t<p+`c;2JopYKk%FW*YsXkJ_XoJ!MZ-s|T
zkI32G`zNwYL&7C}Lh?_$j8?n%n<MuyJUUsb_3!t3;aiHcbv8UMtn&FOD?HiZe4Wdi
ziF|#tOIFqF-YNOCFyNF~<H@4=aSn4D<rhEj+?{lB@q?n=;+6Am2u?Y%#=!T0L#OI)
zwjA|c=9OZb!w;O&eqFHo!>b4CcMsK1f3UXg_s4Eq-l?a|&qvRyygF}Q3>V}5mcN=8
zOFrfMZ`OOrYId3J$r|1?H-qoKHrK*$&$Z&%IPd*^v)Ro{z25FDT-@2WyTM>SgBstz
zC%eB~%#;1Mjz`l}X`Ohf?Tc$)&-A8TI`pTtATy6+WrgdZe5oYX-4|P1_cDi=co$k2
zt*U><F7Zb_B|+rgO6%&P2XX=>kALrpU^(3p{dCI*$@1G*`(=I$eEWQTQ|@MkSFcvS
zFpYMP;4y97r_vwN;Vbc^H|BF+Yxp^~Z;?N(or|wNJ752|!zS<k%%UwG2Kf(e-V(Ri
zbJpYMA34!26Pj0KPb`Vvado#w))wZuS=N6%<KD_<)<;E`oY0qbl0DP5c9Cq_t}C{m
z`dUKfZ17V1>F#L3|FSl8+rma6Qyb>H2ZJmb&pkYSAvS)J{GT321NEFWn`AY#ZH@-W
z-tk;2`61(e-j3gI7QQMo6ZPi&t7A5?`PJ2gh=4=Oy}n<XS=Ve;mD4tFV(vzfop;4d
zXKz3H=3~>59@naR<r(%e&sZgdubhpVWY?m;FI@8e>=*%;@LdP<9(_!|v+h>hrE@ba
z%>B3LPC9G<J+C8wnZEy<Rr~bC?QNw!gDQ1y^Uly>X|-?JGr6L~%R(tWmwQR<Jc|jT
zKie}iD`qB{J}Nw$D|-Co6#m5v`SvsZs^x3AEVRjK{k`6cI$aksf7e%b2}ir^oAz?A
za^JuBBZoxZ9<AqT@;Uyi{RWqOx8#~b-b@o@te%8%eRS}?tyZ1Ytt=L~F?sW)L!rJ;
z{9m4*{wY;CDfqe-4^ukN!DB4PBbn#TOwQnKe7yF_pVP_3Y7w*egx3abeEg(6|01t(
zoAe*<FEcnV7Fjw!O?X%<(B73@zqdzBUxxc-z_Hx9<&_REubxzlJ#oxo{d2?ZP0Yb3
zPVSO;knFwcXU<>KC;W$RPIrFJR`y*rKqVwON>f;xf8DCKe{KeseK@!2_J4llai{5l
z_ae=gnp3iNr=^65c%95}XXNBF%3t|vvEVyqVV(#xcgIR6HN73@8Rk#<{D$S;W!w5A
zt0y<DtUs3BHqH1~TMDy4b>g%>ebJYVN8LP@nG3PHE!<u^x#L@cV|<6&?9^f(;kf(k
zCk`s|7d(p+EemLh=u-P~y2I#N+-h?cjaz5<r|Q@<b0|B`xV0(oxlMWD8QTo0|5xwa
zPI%Cv7<BlIp1Anly+5>_Cak$F$tkqv(u2n@>MMG?jD(MDciWXvx59d2ze01JyTh*#
z#=MM+ijv&(dsVG94n3Xf{hoV$uGvGG<X_^yH-$cOJaMlq`BcpI`xY9B6TKanBp;lT
zTXXmm@3~X&{&=Oo*1nwZhMC3qT4N2v`MFJZm1bl(IBoo+z2`*06JOW*%L~%oU(B8+
zxzt_zb47i<<1y<wHBVgrNVzu_9q@c}oJqrYTdnHm&)0JtcoR=}q_+vFfB#-|zJ8nC
zbG<}|%9l#EN1xdmi_chEw^`RGhVS49mgk>B|K>FG9pkP$@*p?EK<e&~t;-%{OewlO
zfBDZXQP;mE7Cqh_&Y}}~J;m&GM`T;e+x-jn%wP1mLD#2zVqpF0bvv&Kg_YGMojAkQ
zeX7DWiNSS`A=}34Dfea;$kbTRQCV_cva?t%iTmk~<I9;N6KDRpz-{>Ed9!R=sn6=#
z;HYr<(qu-z;4KIJrFAll&m3vI>Gh*BR@*{eZt9_hlL{<TzdsK%SbFt^&AF1(-;H=J
z7QRV5To83>LhBEUJdbHB>XqErihT68STxJ^vcuj@Ddsn$BX_-9WA}H(cl}K+%cJ!^
zasM~|FSXY4{O^U)t6rrPH~p--D77RzQ#tP>W65@j35o_ca~Bzz1x^f6br%dbiPl^5
z&#(9M`d#mf=iaqRI#i>aq&Jyyb4%-obIXE%o@0s4o$RtDE2J=B_8X>`|3VJdf1Eed
zCP~0~V*S4Mq90~U-Bz5K_3_e)@48!;Z9e%zS^VP6J<MBPa;}}Q`T^I|9jo5@S=@D!
zQu=Xv%kwZk<=aaYmP{y^#Pp3n^PbQGp;I4hoUiLh<e7%(6t78q^|so02fw`5#e(Rz
zi0P4+g-kj>c-?g0@!zTaoy!vS&lXPK*4odjH?}o)=vku1EY{zvsGeu|d&AW?d&F&3
zCTn_W?BrOs{1V%<sC(;dm}N{i7pocX-t+U3#Vf0$YZ$ks?49DEFI``_uC(UN_iq<Y
zS=^ECN?rZuwxHy<uYL?4wOY4!nrv2{X7K6e#akzz?LPWQ$Krc`Me_lsqY?#7mpknD
z#p(K_{S2x12;*F>$ewfe?g6osg$qBX9KNJ;aU;W<cD9qZOcgneW7(#B3%W7ov(8F|
z^D87ibSysLRdp*(?Ul@&7d97C7=x!j)9Q6R{Oopdwce?!JN)S(IU60Ky{(^?N-z9(
zDzA<0-&xg9jq!7DuVc@VHaLE&nMbR7igmVq-!tJo^C#cWHmI+kb+!GZ(6iNF!dL1)
ze&~8$CRf7swEuq33ww`fPW;m1UE*E3NSWX9x=i}~gVn329y8EgzI@WTk8y^2?h+9%
zmldg0FZwR@-C}|1wc_}*3tBzPc$)t2cy#vT<k$(iPRmji<?ePd%x-u6^?hsT8(u#)
zL&Mwkw>S!NFP&Lbdr<3xX1%BK;Uj7smS-Ow)l%|!;D6Bnh2_S>=f$rYJSr~XxpL%!
z<mS`2j;!5rAz|m9H8O^>+zV%J{?C%J+-O~Tq(@SG<iVvgSO2PPSF7K3{oyn78F}j#
z)ZbDuW#GDSJh?U|Oyu|trKnj;d=ql=*?d#~8GfF#?!?^3PRb(dmJ}?uYnbq1L4DNH
zy4L#-7hAf{(qVu6_}j_~mHegCUrFc*tm5XdQuq9!l3~lok<fhdCCA+^iv<oH=YA(-
z<%J)wJC;y$ZgY+K;*AgVr=JWv{X^r)RH<|^)mca7<_Pby+bI+nerf%#UEX0|8oQJQ
z7OV3rssy}ku&jt-+gWul(LLWFmT7&Zrki>_yY)@0X~JyNq|^@|xtwODaB0cGxm>(l
zA$Mj(oj7yq-_%ueIHgVMw4764Hw9dh>wS18{@ssN&OBR`Ps~=6-n5E)PxjW?U!Cis
z*35jhY<a83kK;*Sc{mbwGH7)zKjE=({fYgF@1z5!SR9<LduGAY=Lv?JS>E2#ozXOF
z=Z$*ph?8;k=N@+cKJC9-cTWGo+19z+!sX4RRIMD!7i^7hp7Gg~DeGy;g40nvn^(*{
z*s;g-!8iTcY{7EVjd^|@{;P3ke%hSJPj-IcGgYs9Rm{E8sPtgh^~}U;_xPFFfAs0!
zw0I!!wASVLy+>*1gY}H8_2L)rdA{OsYH@YT%J`3y-skIDhTpDVUnp6bGFzzRE4#x%
zqdzRJ!k1dl{Sq#;=?Isdo1An+_HvWNLq#pO$0v3<JxlLS`6QILRp`t5164j1$~Uu@
z)bMX)7Ky3;=o^{vuVG93%2}^Mu0MFcR__3ZM9$UkQ#bs}VyJku=gZ?AHd%2A>bp<I
ziN&6{_0jO`joxj&PA?U<>DO;L`F(Ce`g0YruUmif+zxAd9&&u<l*>=1Z93hVUNHH6
z`YZ3N*XN&@yLMixx>{94pu_=z#R&`8wr*Rk-X^nbZjj3NtuM6ng)dktn{vl-&P&`J
z{UhU{EWhCC@8Pd%5+`Y&-?>GQJ!R#dx!=T9zjU)beRaKP4wsJ1fsbca=dD}rE>r)@
ztt&J1dt@|=iS6D?l1W#$$Xw;xzyErJ{LJ&;{P(aM?arUxbB6msxIpq0?REK@(ucQv
zne+baHBCL~v)&V(cCjD2z+)q=t-|w<W9eGIybnj2QUcPh@$&B~ox5?SSai!XvBSR@
zS_Mq!e&Q=Tn&RDAl%G6v+LX6*x-7e1%u<_HUVkIzPxvu@mdD(yE?bpYh8&%9a^9MZ
zt4{^Dv<I9BYWeoet?=F=QME{SV{KX8yv#i<ub0mew`||KM1Ifox0&bM?=4}{nEze#
zi&E$|u~_{Ve;to*ndKzb{Nl3Rffdgp*|gtnIQHr5s@^g)4~Bo-o3=dM_BK|v+~~yR
ztn>QIRyzHCUtj1FbjY-<_e03iJvMjG@43X0vnb7M^K0{S?LimS<SyPX2$c&+y6eyV
z<;LPatj;bgW1df%%xh3waR2h6`N8uNEca#doGGc3fBbTRS;y8$1I`xxrw*5750@O8
zP-FM&)$7z{OV!@Z3SkV+?Ram%&Aig=Dr@T(r&A}2vOmtr`?dK{ecoExOu_2r*LpvN
zgx?mZzEk<RVbYW5Wf?l*pXH^zkA_WLx5+c<gN$3qsf+v;hn+X??DJf<^6*WW-8FM=
zH|qO-ED#p@n{=pjzQ~$m`+Yul{r<XPb?2;e9H)26b%meJ`R-Y*$;d77FyMZnoAn8a
zUB=&nLuQ}R;5Pl9xIKoWEx@I|TF1yv{tUDE{;$R@+}a^4pC9NyUq1a&@+3b?@8dS*
zaw-qoFLwTQX5}uEepYeZf6f!32&Uak?Y51(**kffJ}-J`uc>rSQFHfhtHnQxkM`Hd
zzLRT6f8Y1d{(HXQb%{$QPsL@{H5>~0!~aA@dw!DA)EpO2p43~t_x9d;@J}Exr+!bJ
z+!QPG?52kqH4pcEFvt&?<+F6QzUm{%J!UqC*VMke-ZwRK&ct-H97Xp#bB)jOn(}Sm
z(l)($@7J&W`R>6YEO$=t>HD_T>SxNYOO}r{bD1J@mb*IVth1>9mo-I^dDAWj$@CqM
zj+BVYPYC*}C?7jV#l$4xz!CqtyD^*lrtCXkfA5#~#{Tmn7p5wCUkvE@>mjh@MXj^E
znkQq3cR@$JkdN?@t?n;QUVVQ^HK5g5Z+6m@hW(z?H6FX%ynOP;)jb(sIf_0!)z}`n
z`24io9mnj14}D{Po1wep%&pz86HhFSd+)8+YIj60wpPz}ro{bAmrIxml6S7r{(X1H
zG`DGQC*>ZmzdkAOPr^F;Dv=M>_rKfzyZtzW`Q|HWBhP1+vp+3qY>P|Z_D-^OaaBN`
zl<Fb{5$+<6PeF=*eY(0CeupKT+V=TGd)%Rz%?tEZ4=!WKHOY1A$j{gF-75U+QbphU
zUqLK#7p=XoH-ycdkSwz8;%s}7#q%`3N#3}BJI!u#!n@M{%cj<QA5u_~UL(2r+No_H
zE*bt`;h3>zrop0(8p~SlN8YN9xAttgHFwj&2ipT#79Ib`^S=E2$`heF4lh<u`*b2&
z(c5~{eU?ooPnd6C2~3eRYB_ncOY&yVEyq)LEN1E{|CoAWuH1oq*YL8XM_j(nxPQ5a
z^Jk5T(4>2PPgs8kym@@`UA9Pl*AeE<CkzY9Cl;+fFt=rO?4*U=>+CmbK3~b0_A>FL
zeno5NyrxR;DVJtwXJ1#F-(A{s-O<i5x5__Z`|YDqvdh+2)>rd6&Cn6QlpbHjQMz8v
z;Z0J<4vTB%XAT;&hB6(AuZhWUcp{zq(s+yROcyoDB`M66UpSA)mTwAcwtMx)q~7(r
zM`Px9rj4Oqzc~5XrgZ<1xvsr^k=ut~yE|U!A9-1|qfkaAtCOuO_RC|(UmGv>vO2A4
z&t;kw(vo!iNBNe;PaYoo=@HQV<O@SC@0?c-f{l@qcURo={gBoxx%vNtxQflKJ1ss)
zz5AKg9-3G&O@*g;>cUSKcu$)#@Ay)e`_=nZeboF8x9v=?vQD{lTnv0AWWjD7HtXo*
zy>rW?`95)Vd7VCW=JUU)%TxALFTHd)WnIXYi{CHx*gZ97`)cI3ht)spc9hMlm4^~|
zSOZilHo45<a<kaG`tkan2|24*aK|{-KR-C#OoLfKaN;bz^H=k8T0aR1d~Po_iLH+^
z;%R2<{yM4N#7*mWzNpUxAMHhsp(hpUM4#&Aw-uEhSh8mFNzLss24@%D@k~u^@KIRv
zyK7<0tqYgp?pQk-I9`$ToE`X9Eoh32GfVp_>yLX@A2=>Mp)9Ta8n+2weRaNz?Xeh-
z+-RngYs^lrc>Zn{_h#i!9G{cszIfs>yX9==nhoL`%bZ_ltgAQO#%BJP&DrO9agk}1
zDNEnviSwR4`mt$$i|N@jA?xjJcDM<L&ti6Xy!fN@%g6Q4cbIL~+O@P~+L7YvCmz~<
zYEu@PxHsm5eRiCBlcyl#R-H5RdH1t(xt`Yynl)W5u+8iGO0{3d{q3b+=O}wR`C7(k
z{QF?2GHJpBk?RktZ@h_ish^>(!d3Age$vrW(ZAb*(o6iO-VOBGaeKnbFPmO(>d%Xc
zxVc)fdPTC6)1wJqa`j~^`_c`3eMFhWg<qV!6)AeD^}`AaJ;VFOUpw1%p3dBNJm`m%
zY5KmC=h$Wlew^`o;^d##D$l!G#&Q-LZVlhL{NKSxEB_zamX=%JAYMPw_Rvz@dY<ih
zK2yW&uTP%!p1ZUz$lv$Sjp&!l&iG2+{%M;Ozwbk$N)v-iLQIat6o&AA5&vu42NWe|
zBosgGiRJn7A?0B0!xb5BuD3EpU;T1^lz*&m?|j973yogIeC4}XIeog-s?8cNZ`RFy
zy=%g`0Li^x0&&H26)ff{NxGIKU;SO^^mKoH`;Ln-A|3A+PoLk-bxHWkZHt*l-|m_x
zqm;`RH2K!@qF;F}S3J6EC#|^r`vaeL`5bxq#h-1jUT8Wmd~Jo1$Ufs;7pH7I_=~F`
zN3fw|RSnY{RTZ}QSoPW$&6A%U*C~7TbpKfe?+e}+pYlm7XnCyEezy6W5^LLJ*5vec
z{Y~HP!oJp9-YA@X#aHe8eD&*oc3WTaEAwyYshsz%xNWCQ50{(A%p(Cmc7z@&E|~7K
z@mS0hhfOoB+q5UW*RZpUetWB4rS{q5<ZDlSl_h7lUXN&zvv-NQvTzfZ!%72&#6Pj#
z&*HRa?vimf+Bo(6$3;K<<vw_NT<qE`C9tq!S&QF?1O4?gYwOEb$6a`<C3@@PRQHQH
zdPk-|k^H^#%LjIjMbd_g=LoD@U=ZN(VyWJmM>Bt<z5K|KW#+ca^@Fg|s+$LPe!pv&
za@c&sA$KPE(y)%&-n;EjZ-s8Ulq~VW`YP9VuQT&Eh-FIL@o-u%=e9I{;ooz+|0^41
zXP)>F^QU!2uoRo;Dmm};`ubisH+?A|i;R><{0r8Jt1_##gzc_ueGzcla(PI~lFUzg
z?x~w4DJ^21c7a=Zo&VG=48{BW3t9ORb=lsVO{irveyMv|aP{MPyd0-u{%Gbjh>6x;
zDYAC``B2#KM7`Hsw~uVcSGY4TdJ>Z)@!*Pr<F=xd%taZjpVod{Y5HMB$G67%?@yWv
zn8Kg@I=yK|j_sA*UIMozTp8@{{+<8(y|#Fz&s15LiwQoA`BFcR)l4irF(>W729y8H
zJ?2#`DlFR+Gp+A#W3WEz?%6VVcb9DK=l;i)r#v>SJhOr&Vg2^0E52M<m?Gn#xu0*+
zmF#Sfxpp_3#Xro?tTnvx?02`c;?$$(V-@N(uO1Rm(V6q~ji}j^l_i0H4_7#6`)%lq
zxVqoq+5~MY7Bls#g58}BB4r{qdUa>{uWQvcUfz7_ZCuoc2|rn+6HjRTNbhOvu*%!O
zufODvSjuDf4e|yzBNrAk#V0N`bI1+;qR_U4&1pw9x9AF0Pl5S+In!5p%kC-=at?5w
zme%vIUe3Yz&7VIXrs$mdRa3C_5i`e(sKNu2)Q?>4T@qvc=$Pw-fK*%Ey|#Yg%lv(B
zF=$y{ytg4Kbl1#Z3wd3%R;=_8SZ>K6uvqW=qUjwRb=$0@Uh5t-*?RQg+3cl`+T9b@
zv1mIyUe>Cz<(~1Qu1QagYgg}JzHvLG@+N!U(z&5lUtd?%d)D9DZ4;W+V`7rQ_9pA8
zhsOVDJ6>}f)7`J1o|*M#g6WUuq8U3&SA7uNzg;s#mf`eYvla14hM{_94)#9A3=VrF
zPF;D!wdva7%bbtvnjV}>OKUqg=eb{ZPmFS(@`p;EH{7wca*}@(lpW?pocMgW%0^(j
z$#I+6TwfpLo7Xv|C)Z2wjYt-o^?AY^!^Re$Z)e%$zOsKhoFnc$wa~6i*C2aax?_ub
zx!MGo9e4LFpYi3EU}J8?QI~B8^VQdsY~Qull1XIl3Y#egx>+d)ew(h`sdjMRY?bwC
zOkQhFupHr7?(64MlfjnQ!xHTE#zrr2Ui8D2pWak_*)F&?aJJFugQ~fC^#z%e&d$`_
z5r0T|iOX&OXH%nZ-FvCWu6y>|I%}8hMqTQb=YN+@EvT7#R(X}mrA?)OSt<`qGh6ua
z@}%n<ICz3yU*t=d^Ri_>C0y9CjxFJ2-J=#0Z-Y%?pJ#X*g)e1%W+DIJeaSk{%^AWA
zWOl@-&5wS(UHk|W!wL6E?E(6h%m?Sx%UCL9=iTp+*jC}a?7ze7rLruZ>wB4Z?zYyw
z!>qA^ZMxvfxQREH+)e-ct98ETst3nsKjH7Xk)}VDbxM6>`lQWuY_YF2f3nZmb=-1N
z?*BVey#)9Qj~?I%Qd@ms!FHuBT4^RrWM^F7d+}@O>nt~;_G9i#Ya*X{mF!@fw&45?
z_s>1`yY=@<tkQI7`uR5awKPNBmA%?3Cz47}&Ys?Jp|y%*!YPwkUGBX%isF*z%~~4r
zaG}(P`?Ea4N}7vAU2ZH~pS9UZr&i0P@`h|a&(qNKC2U=N&zhJg_AIPh^G)-`>`Cty
z73Y7t)3f7B<EEpsbuqb{9`b({e$16$`F`ig<g@zoZdBIK<!p+1B5kW*^z7eFw;gXc
z{F2?zkdR<s>Y$<e$3xrv^SS`;!@IBi?tK(^W$|CH%YXKq%9`5mlP@C5JK?_i%Q=y(
ze)k@xTwzQylI(I%TFNXW_2NzSBhh?~p0Z~W(;kVKEU5lGU-#+n_m^iS9<JKrQoX+7
z<l8k{Rz7*ZT)o5JRY})okLp*=E}NjYKQ^tB^3>%~JG9@h<95f7rXI2Mn;hk(7n(Y5
z_MJTPpMA|Y_h{(tnwHZQ=Cg}z7ktYW=+A6oVF==i378<R+B7t_w18f<X=q|@X$iS%
zb8T62$+FwiN^@?DhUeVg_SSsWjj*F;THCa@X>ZHD{cU=2-u->HdEeLn`*qy-*k<u(
zv$D_b{eC0Gh3nLoCbeyD42IFt>QQc1Y<f<is->*X+S<;-+|iOziqYD_hxCoLc_e3U
zU_Nl+<e_VBM=o$4a9zP?peVv9A#7wQXjD{Gbf|uUAlL0%JFO#T%(NB^s!0q83cmd3
z^rvu+g%f|<+s4oA6H7B|c@l50$Dkc;o!!uTS^UU<t3XKxg%Trnfmu-zj2x{`MNL$n
z9^uqH@-&3=D5DtzyR)_vYr3*Fce0ZtcXC6oa>JwxSFSZ)cqPy6lpHNB+`T`lc**ZW
zLM19DDkb$>m?ffXmNMSyVJxfPnZfavf$y4FUtj$H7O}pTG`==7zj)(<O{!Zq7;Y;v
z``LY9`rRwv@}0`~w#5rxi{Gbjz#8qY?w-ufZLNN2{VFb{r2h|IrsTc&5}xbct#7_?
z?aS~boohFKj@SMB_IK0IPgasqH!Os#81Kyaw<?uI!DM4W{g%x}CI46bWlejY@X?$%
z-JM%{bG_jL#S(@Yl2$V!7-eMlC+yqsf7ZGEzf}I{-<7^~Gjiwuxw*f~uhbW9C@5ly
zn0e`-fl=*Mld@l{a?=u-o&R4Co4Cbrt7=NhkM_GqZoZpuC*E-QKJ%g<+2;f5CK{M*
z+`6$y-Gp(*p$n&PTGdWvS6TAo{z{+k(|MBEW$F#nwY4psvk%<&Z27+@nIo0s|E`pO
z(Hj<SZJql2zsSG$6JIsd7yOwYpfZ<dKbvAk@;6mBX4%8`Jz{-HVtEY0tla9!#ZJM_
ztJiD(%?;mb$Y>D}d4pl!l|R)JTDJ7?@ce%kY`ERvU*hNMHzNN(WV$iqkM&pm#(!#l
z`nt<CHPoHz|K88Pvj4HjzA5EFh1-8G`X)d3#I0F>o<GtTQB;gJck+*N3sZB7N@F{=
zp85OH_Q^A^{;pr~!(8C;{%f1s{P@K3T5iSX)~Eiv`lr6;f7Hu=(mgABH?BPyU+sGH
z<b`8TvaA0tf2hBG<L2hW(^u8c|FM4A|DFG;7c(>DF(l7;${L+q|IXp`l`kgCv(CI}
zG!%Smf464=vt!xOQZ3fXy8XGkYl5A(Tb$;-x2oyIEA<_AQFosEzq$8)$%=37yA0Rt
zD_3RKEBd&{Q=|IRgzG17-&pyb`Nh|+hnM}XD%<KmPcb{V<%YzSZ`+THO#RYzPvL|5
ztr@Zl^yD@Fdc=JCbHPLYjX+ILeQ;Lth1(NfH3qEu?C*C{xKB=g-*;YqzAxpm&EMZV
z3`#%hFu71V>6gk}0adG=(iV5FO4c{*-?8D?RHxGqcRnoc3C!0x$^NeWv`llFeCDs8
z%@S!VKYtSb`^;MFsP4DiFE145-gr9WR(s)+9}hq3{XcnPy7;*&VL$8LuLYVEz9=Zx
z2k-}+Tx)12YcZ97-tOm4#-G+tWRcNX%1|h*Zk4-jjZot0V`|6!gZ$O|431Q|TJ-p5
zI(=Mo=;!Z)XUaO?o#^Pk`*QihxSU;IBXdGncs5-U2zvZ$rNBPUuK{&i+8f`w)=#@+
z$@Y6{|LHF)tPZl6u4!_Z_WSF#2|=f1MBg6VeX^;3`yDAC<2&qmulAnZmbHAvwQPBR
zbLCfSVy`R{)G~NdtD|~g?jrYgiB;R<u87Vl*#Ghx|ABRB{R^itn4RdpS<`;PzDDMt
z>x}j(pNuLF^BtZ#skQz<ugiwmJmrrkjgM*;&tF<$u+d1tWuLG>_|>3a?o#r(KW1Ox
zwyG)9FTU?ltWY1IKI7F@zsJQ+rQL3`Z+B{1&UC$Wp~7eOq8~dAucWAK5UX^U&l9cM
z^TgM*?bwEwQ#yjQ@0{kIzaUaArghWDOHWb_oG;&Hni<X}+4baE#wufn8WyLA|E11#
za`P26+{$znsh94!DWmdZS<STdaVKa0{x#*+kHw2m+)&G^VV=&oroKgXTD`22?Bk;k
z3XO{nhA;Ud@TO;hP4JOwwfp(gOj<Y$1+VgO&ExtWyLM6I5}!wXvmYsbJ>eT^)1H6y
z^&Q2qPpOA=CwNCo2inO$u-|j&xZuL}hhM7fHlA&?=$BgJy!)-y*XBc6Gy8&ba@y})
zkDs}Ag5#>giajnWI(4tlr!SpXFDNX(?vUV&6>oJ@^gLCUY;fp0!nrT9&taZomIl|n
zQd4Eg-1h#4OHB;D9`9$(aNExm*Jvnu>h<Bj`SOJlCvt;-ES)!Jn_1Khd8JL~&K4$Q
z2)at$kW`QMxpHk~dROG8_xGdwnhV~kzq@$k@oJrw0+EZvDnEFBXi0f=xH-FU!<zb6
zPY)&homjH)b@+b|<)hi(Q(kvESHGQgdPU)p6p;;{kF)>BNC%(eepKD9Z8LN4pR2kX
zyLw)%s^xq0BTpjb=gRX>^#jyBY_y$vCaygiAh{=9YKKt$g|Z*k*O%T+ydMAdcvFq{
zG6U_OJyYfRCu}kHU%vUdT&|VVJa?P7D|Sds(ytdg7#tkQw3TTR>$|6gB2Rzpy+64<
zwW~oaCzQWT<G6Qz%i^-{@(SnW0upqO-z*iFH~&vbPW_{^9G_1&MoEjaop*?f53Ju<
zFkxAeg2(FHaYjEAl`5Yea6TvUFQ<oVnS-S6ywiHG+7i+>DOYVZ=St4G^mxL1%g<$}
zqZf5F$^6Z$Kf-@DZ1Vw5<yZWExfVO3<LfI<Hniro8<?%wDKJ;iB=x&S+4>8t3-4`6
z<MK4r33)W3<%@QwM%V0>9dEDpIONH$T6F7}SM&@q?Yl>QewxL<^odRV>PP(ryegC9
zZ)!aK(V<l8&=GF>N=0j5w3TVvVx7s_89!Rn4(@E(YS!{Cm#O~ZkA`c0KZP_}uj`p6
z$Xq^AuW)zew?&QTcg~73UsPIs^WW?_4lkN+@HZIq&$K;%*Xf7Q9nX%P@$y9tUU_qV
zn7Gd>l)sm~aLFl)on9)Ls#{opy)~J+b&p_A_;OBB-&ysW=jbpm57Pf|Cwjun(gvfL
zsjnTX%!0CxJe=~-_IU({QN4!E%k%E8jqfYxU9t<~+191YFMXbOvw6U~*)KK~aQ#Sf
zcRAM)y0&7wfJeo>ESp2=T-^WIf~+EPibJZ4R=6p+)y%&m!#A<w)*1o5t+k09<)vFW
zweG5mhz0Fft={#Pc}GUQ#Q9sYzbBq86x+1)=)+4bwuYB03@Y!sSqON0geKJAy(pMc
z|2@=-T}R3J^a0lok6S0+$aN@6{I{{BC+yjxjr%uyI4m(Sp4xs~XDXA9g3h<(rdOrQ
z?)+)E>hVxJ_r@%@I6KLoe&N#(32|!LlpYqEAUBWkbmhD?2cBzK$Z6_!DZfb)-L|p#
zz)Fo^<ILvki>lU&)TVstoT=Z(ay0q%gnElVcPCu`XtAkC@M68@zPhxfyS84Pa$@Iv
zKS{}3xz_FLu4f$ZaaH)b{l~x0)8;E{daSPA=3K52-NDGc#6{7~&0j+}aN_U2R?aye
zYHf_4&U0|I_HyvP;d?^1=&<nq%O}%+&foBn`Koa&Z#L(>MI{~YBkn5o?YMT<Vcn$5
zy$`l));H}rKh5}KqulQ}$26<(OYbv0c+J|jJ=?o-hRpKtr}tNs2625C3y=vo)%jKP
ziujKYulx+GUaVQ#Y1H_*HA=yQ=Z7tqVy<ib5{>^KH^2H_T+?tbY-N6*Y2ycj=QE|!
zr!2||FL1o&>}5Hny}3X~f5+8Q&8>+`?^xQtI5g?=$404oljUaeY{8wkE7u9UWwvTR
z&CMtrKUsw1W&Fdf2TIMErml9o^q|A>+lM2cD;Ifr&$+kuz|zvP8T;P<k!+kcElcpx
z&Vzp>|J;Z#YrXd=WbSO|d2#Cd3tmoF%wIawVw=M1`!1pl220L76kBrUVb}Z%pD(`2
zdi$Eae7RuZb<T}D=C60H=URXIoB>~mp~(!Th-p##KV42W;=P+K75jM2^v?^wx$f7R
zS9q^-hhj(lt{=s``(jp<>twJ7`1{2z^Umw}=OR?9VO_9p>+eq8)yMW1zl{7pc>%ji
z<dg)-y_vo*=6*e4yUpbN;_$xp^X6`ec)8@9(oHtwS%wwc!#Lh<i`MyGrn$O4qtd=;
z(dP>aGVAR(Yj4;W@U!4Nr&De7u}=&~q}T5bdug2gFYDPB&!&kD^Sw9Anr?aY?`g?|
zDLi@UfxnIapM4+Dc$067u*tqx&%F{@%jagkSakZ1;&QhI(czD_=a+4)jZ2@%BqAub
zw0+}8!$#x3uiZpfS>{jTTbQ<-<+0ap;eh(Ro_{ibw#{p_;Z&X!XL;Y+yRfC}!M3Hk
zW)HQbB?FW%JDz{}yK=Ml{3ko4ZP@=g#QtbDR!P`x@r-?|*@-j$NAkIZY%MPA5Mx>{
zQNX_^=ghP8pP!$di7Hi(H0$Z--tlB&Smti`Evxvy?LVZ?tH7sQtGA-&`SayTQ|o8x
z_}ZWPS#SB!ICA-?7oo2E12uX&RWDr+$iMwmU|acAyORNPt#29EO&0M=wKZ72@o2;J
zhC61ACu48Ei<)03ap1If(wTclZ2e|TI=)cH=wbOo3A3WTm%>5>T!ZB5LteRVzHHYV
zxc+JPrjR|x-#@qIty#QyVTb0@TgMVL?1DK{6ypzVG+%bLUjCB8qO1zj9S7h2{m@`?
zD9!j;0$b$Kwl7(lEZ3a=x){%Pv?vI<?4Kl^+{pAQCn(OtVa0Rtgd9okBiBm)q&?y-
z?U&O(@4D~3$@iu$*O+d9WxZtb<$2@tJDz;&R`f4YXT90k$I2Bnaj{o-)cZ*7{#6Cn
zJo32?t!xxjU#YLX;Z6O6TPxrEO5dx<J4H}<uVhq7*!zjxi;N?f0;)23|LX)4x~#fV
z<uTDBn(<7#t8mAo9fukpr<H9kX%L7m3SYB#)8iYt_66^4#5n#J{5JMG5wR?^=*`^P
zi@wvUoE2+}gc|-nN}1Ak>0)xqzA#^7?F-9GrW{);c=i2*y8*E~Y*Y4I)pzwS_}Y<o
zQ7PzF>66LZS_2|-W3u(mSh;Mr_NqU1Q(#u==Rm#Hs~C4Y`>^DY_+D4PFY|ULi%UCB
zox3J=Likn#+vx$S7Y)>#A5LFZ@^;BpSEZ@73@x`~H><0j^?jk^E?<{XQzPKG!DP{Y
zwcu3-Cp5)ou<W~-f1z@!z?S(-%SDgX?+z0Qe8VpK;LMLBmix<(=P0OJ8EW22m#^CO
z%<=hF9owGRRVlt}k{3NcRB>DF@{`t3PoW<{A7&aJ6zQ^;2zycA!RAo9Pk)*IS6-O{
zFWDgXa}$5d&6jeX)p#w<?POV*&`P7(4;q6{JUugAW?z87#pAlNd)!u}WK6oTdG*V%
z*Z=BY2p_bO>QyV<p`!lx@b3k(9PDBHucnw8uiLXxf8UNKllODJ?rySbvKC02^m23d
z&y2HaKUIHUs}<0Tx+X9BC(tiuAFHspR|DgsO-%}=Mto}DI{&`<EZIJ1swSJ;`E6_V
zgl-Mdwbc<gbk*#kqO!;RgIu$(bOmhko|&wFU;Rqw_4;&i#=Yzfvf&|CeN2h(!g@B(
z*}hTcUEJhj`>iYbf2?L|T(5k)ohLnmJ(n%>!8e!1ef4Yx?$-^Ef2lEI6^-*e$9CwI
z@!iZH>o(3j{9?8@cfUx7nb#j(k(O57I)y#Y{I827EvVtWziR$YqvZPfs9o1)-v8Gy
zDW@yth2z-=oH48FH~h)><2!q4#=Bj@dOPlKknvb{PCP&_rp;Kd(VQunV?Ea)rh=J2
zCKY;?ng0&I#+R|+!Jif>_k~jJI=vRUZ9-@Hd@f&dS~h9BjLaIv#W&a!o@odlx_V`Q
z(vpChJwfUZ7dSO>a%_-Vli2ruwU5o$bqSHj!%7zivQ92^th>JEUPisd!p8dxl`j;n
z`F;0X!-dA)JDPVmmu-{!%vQWiN#wdv+r+A68zzR@{n_)W>h{X*x21|*`UE*HOyTtM
zIQ3C(_pN|TPq`&864DlyMEjXUTC1@w+nmuXevWsEU`*Jx-7Mh^lf>seVbzec*zrVJ
ze8JlMc9SU4`w>4r{p+x3o%fDoPJNUAq3M-si-iRDNvu{1xLsdeV!ixQ%szqLsb)sg
z{4a8RIC5@Y(du;>OT~|fI%d7t_H^3grlpl7p<aBSgj=0b%`@k*9=8>FpZM@gMW5pT
zzmIRo?9<$C(VgDk;>R`htJTe4ANc>RRoZg>#K9#69PZnG9IJ9%C(n8{!1<2v=GAt`
z>tAIBc+BYQW8gLYa;N4`<;;!C=gc{tdSsK^f<0YL2OCz(%ZXhrUKV2U{-mGu58pqp
zZfCX3`V^(EJIha6JDFvD9qX>mKj&5?^Kx5GkY2gl?fK;MJV94|%mtMt|EzxV;D&jy
zgz%jN6G2OX9c(Ihe->B8KiBZr_@W|I+kSAPo#DZH+e+cR^6opkE=>5lcgfMdw(m#o
zbZ*bPq;guEU7~n9@2&Oy+gLwWhHi9;TXaV!!f@ZRHhF)mjH_Jg4pWo)P2?1Vqq>gG
zUR-A_(p6e}Xd$0X52Mbn&<%^6`fr+4<hRV;%iPyn>~0r&fG_vcgJm(dl0BxM<~~x&
znJIek^1dRg#(K{;=l}g%y`NY6_cMW$l7C%WXU+SU(lX<z<HMk99{;i&cO76|cPr+n
zM)S<`yG_5EnuS`$d`eopqH?-yVv>~ltm7|sY}YxpY`3u2{5MN^1e4Z&TFiWK7t61z
zFHw7%*8Q7Qx!}jOr?-y!<{B2*O*fk9vHsA7zb0$n_e{ApXKBH#`ycC%g>LFRv0BhZ
zs?IQZt{SJ#SLyTB6aR_%Y<=l)M7sL8K>uf+e>>h>uWnaR%lol4a$~dF3FGTOUOne)
zpA@SxJtuqZ_m6^I$~PzQw_o^Txq<nve{+bi52yQz%W_fT|M(a*4E(fLvY*klIQUUG
z-db&{c5~U}zgj!R&m7o%pjF1pranw^?gp2`YFoWhE=+#5w<MD_i1~-`>>J4oKfSTY
z6Z**9wyMeQw^N?O(Pif5QD&^!tJRlV{yGw|ZvTx9l3$)ozBo~9s<T9!%E?RLr_|Wk
zWll5vZ0%xkbHb(_+cz}_pDL_u)r@&DcV1l8)KA?V^LgA-<{8}*DD-WU_t84uRhsg$
zzGV5Q-F=?tS6&PJ`@AfnP=+mJIY003&+dy(*2ykmjwrX_?cniFlD6Mmw?feMw-)oC
zn;a|kzMVR#cc^HCe{RzCua{(^+jnmII;s20UAg9oa$I{3Z=I3Rc)!&|jCXI2h-2}k
zznfaSM2do&FHZ0M_2j^o>Bsz;`lsA{tR`4z+<Ury-M@P~n*;7W+p=JN%6WsW54Ih6
zWUs>ZGc0ra99R3Y4^C55gO4BdT9@<K<#(^q;f=b9>RM;wq*7)~%`!YN!&=z0Fk+h9
zR`$=CPj6S~WG&a{==l&LEzmTJ-yn#cZ{1&2qpXder*i&YEV@*%c1^&4JCU1p^Vs~C
zwCi*%m)ifiQ={Jf;qBKiFKYg*Y2N(ALeS>)*{ZYl@~<QG8z=qte5ABu1J|w<JO3<*
zs9uzOeD&{}el?G$ocG$QZ~Zp%cQJFqmqyF5$Gh#HxF{ZLIvcukwb~!O>o#4xT9;go
z4vj33&l25ZJ|iP~<&-_w-mPs{?BTvP=e>APl*qcWyO%txR{nS=akzfd@kjTSMeIAi
zI7Liuy4X@;Vi_8k6?h;<_igF+e@7&)eYtMZC+~MBxH<dSETtJ@FSb373y56XDSO)c
zB+toN^%5(ZL%!Twop9)}kpGUvxyz=?I8L6k>yWOSHrJ~MdJ!jtKk?0re0xc#T4m#O
z(<xI9oA+(}&tqOF!SJt{@73f8!Fn|o)-##Q{!eRM@`BS}#M608+ljj|*SB2>Qh4Lh
zyy9{HxgFDP-def#snBNK&`U1!e|#>S{a@2ANQ?iXf$6*jZx?P@-)=j@-#bJh{&`qU
z>bVK_@4h#hd}0=T;jQyxir2#qt-`Ou(ur%=zFH(G!z-tLa$WhGSr>Qh3TI0Q<Xt}T
zO8pgmSz-4j25S$#x_A9>!se?#!U~;TV{RXK$t6^HUpo2EC##8Of23Ajzv{K}g6Nrt
zyFO0(p8k_Nc<%01VTDWAZnzuk)#QFSj_qvN)#RuH%BcyQEpu=5=}diQ>6EEGr~a4K
z_q!1nHm)h$z{j+d;mumL)z{M|q&1`)t6mGZsQ0^VW&QFKLceyL`MEt_{t@?GuXQ#e
zQ_e+wvEyf)S}Yb~doTQZ-*Nkd9UV9R#Ld{-ebKnb_x0wG2X`kX*p)S&$f*h{{TRLB
z+1fMnd{@u*@-*3Y;P+PFfYo6!E$>2Jc<Jr_@?zWBxlQtyZhD^Ux}%c4Pg*rAtKqeY
zi@fmCPpj@eoy)XIu%7dVtosV_3zh8OS4HyJ2$ZhMs|+j&Oj7@CY15zh%+{~Ji6i%7
z@P_2>H!iyUA~I9%CVRKl>}mKu@tNZJik?f)FO?KzN4YtzK5(oz?LphT<?VbC3zpAu
zRP^0*eDh<;;QG$_KYtwWGTxA8C2=8ujX77edb!xv%^5N!zZ+i8_;9%1aIyBSbJ^Xi
z!}OD{UT&HD_e%bQ?Ka{o7q|+4-)1)X&e4f_dv}P<{4ud>#n;L`T#`AgGh24nu6V=T
zE6^AoZ=&6HM0eVk(^5D3XZ~3t#Jl3Hg>3QPU#>^quK6J@n4LGxYDQl5bJ3?0ivO2f
z@cFs&<D*vrmo;^>oOvf5UvjjyFQBsiE~`wk+8@Im2hH|AzIOIo((!24^@+b$2V7k?
z|H`a45>B<5+k^inteJX9+55SW<;PmaVwWc#QBuoao5@Od9n}-fwzpp9@T)KVcwm5!
z)z0}JRW?Vve%|@L%=Xvw#?1~_Za-)YS86Eytavl2$ggyb&iaEl3}!g2TlKv9h1kPF
zzyI~CZ?hhfE^qOFvS<Te;=Vo7(<dme%sCflS+qTREB~IXBIbuDEW`^7HOibWt@(7m
z&^1lpgR5~?!BP7un=iZ&Uw_liw%fsfqEVV;`yKA<mv{e3)skMk#KD;DgWC5=m;0C&
zNN=gn={}pnHNAJW>B}=riEjG}3pP8hR20~J_4Fry+j{=BGje2O&t3lcsoSQnNBu+W
zqq{7zy&TVWy8mmOHQT<PLw)hzqvw_@9gIJj`Qx$C=R&)PyY3QGuQ;rZtXO1Pr}%HL
ztIy&kGvXG7l%J5US8|!2n-h7nH2d4c<(jV(y^Q@oR2c>bIseRH4(v}ku}1h&<yqD&
z_METAKbG(DI~68Te^4&bO!{WW^(DXdZvCu$o#A_oe$#<pvFH2NpE=<+{j_GNYpL?5
zniaFJuPLn4s@SpX%$y@#AJ0#J&MTkB`o@NL-xcX2Gh?ol8a+0zo^$W++?Z91j+q7@
z<On!=>gSrjesk_ywAt*|cws3mn(MhaG2vxr(!%Z+w%?yQmYyyyx+dygAFM2-RJHcm
z)wCx&H@KEf`0;w%t`kCmwv|hhp4iUHa}sfTrT9Wxi(|p{FO%{QOgXO**8Bah!UXSy
zA9p*qiF9dQFlF2yG-sQ_K_jllVDD)fe{1WWW~TkhJo=TfP$lqT3TIv=<K3^@_Q$F4
za%{Z+fa{m!uUUQ!v6E)2c5VDOPbjGV*0h+e;5#3;*>l)jJ9~BR)m5%s`7a`VZVuK}
zKDNK@V`cZpEjG+??u94K9(-n&IaK#M=4+|zBmUXD-I;YtbCt9VH!zz=ENjhQsru&U
z)Fp0nc^)^M$oZqTZ)eBMoxgHIEvu5>Y+yI3o~Fk+_2=Zy#jjX;1fq}i?cM)dwt`Xr
z$<2Bv59QYyM|@p;cBy~%`P`qpQtFoH^BskOi4RV{In?y-@x|3AX5C|9+O}!J&bTa@
zYYTtQGJNvg!uCbUi8!9Wg5C1|^IlwD-5!{ix$jzsOE3rfw$_iDe!II_zAb(FP3XMH
zYe~(ze|1-;udPZs`(Q!xwRfrSo4f4qbv%!mk=9YTTB`od6G^Gb3)|x_PrcA*bpD}Q
zZ<lpzY@Pik?_B*uA%%*2Qts(34DaSMKV>dqA*0S7SL8K2HDx|~;Es3ie@|C1yWi~}
zBe_6#+iD?|`QPVG(SESuFyFbem-2PwTMK!345k%7o1J>0<l!8ijI-_zAInb5B}fKD
zryh7=IOAsF;hELB^(F6Cbf$O&znipdNz2^NNe8p_ST0PxWc8EZP+0KH+Nqw5hn|>p
zOuo|ms;*S|7VGxw|2^BL6u25@3$A%%m3)Df{rjfFvk&{onmGFWR9X0?{&(n7NlB~1
z!!O;%9qwfOne;p1x3(S2!Iih1K0LW}xp-L~M`P!Vhmp@U*Dktt@8+Rf^<hDmmy0c!
zYq(>_e%p&yPf{J$?nzBP{WJKI%U2#-<HwBZKZHe{m{Tj(Omz@G$D0%*<J-8Lqx-K>
z+riwear>f{soQS6Fsp3e8Lj&wJ9y6dYX){R8+<=|htVRr*74rib-g{)rYZ!VRZ~Bw
zvB*`^&BQ6-nrofOv^^$kn=I55-^{NUKlZwHVn1KYC9YNX&Df6?l+1ZI>1kVGMosHA
zg-rpL_kAWvMKqLnbbsx-u;zwb#pXKUZwz(OJ!yWke%)iWlQ_Y0NK5#8dc8y6w+80x
zytP3VKUe08-12QGiw!YZ*Z8?IsMBdDL)3%JlrwwhuhKiVBVzsiwGW&)18bj5&}lr<
zQ$KN6)%h?P^Bw!rwk`47{LXl(%eKb9nt$}R-968!$+YU(M)`BARaUL*ty{1*qmlKw
z!R~f@*;E$Rt=nym&po<fS+yKb;dND`$E8KOYL1hIv|q}p^E!TaoxH(jdu{1b_s4S=
zy9h@$uKab5w=6L@gEeKn$G6M7xeQnEe)it(&egxPe&LmtpVrkEHrIbpo84BmlIdQL
zEt^nbMDdgTm1!OKj`siMd!u9KT>a9u=!w{j!o#<xd1eW0e7AYM*&}Aol7eq(uPk2G
zzfx`68WsQGUHHC*;s0B!FL2LGD2{n4nkW@quRmWZ=F+0bTgDRtwztlY+|{+?9z)2^
z|7NnS=ilF&-6>fw@m1-iMOW_jo%+U(4|F40wKQ%`^)0J5t7K2Py5m8x(wYCyJ@Y<q
z`&4^<_5LN==lR~4ZTqspR&MI9TY?_jtUXqmEjp*V+x~t{K!5N>-P7S4v!=yx_5Vq~
zf7X9-+eP)@iTAV0k7*`1owJa;JZFU+OJ>W@-P-%UYkzz{_5GD=J45Tg{Mh;~JpAB;
z51)fwPA~6h;}@D9Qm{?k!TZwV1$%q)E*!edoc3vn^soIaJB)=^U1_UkPS)!^)yr%d
zUcjMxd|7Tm|C)H&rN7$U=e03JCPmA*<Txj;-0<m6|E#ai8x``amgiM3b6T40!+%hB
zrl-RV@xUW`KisPKu#2V&cD95E)bj)^WqT(beK4nqOK?-bSG&i*9eGymtK1waI)9<v
z_3j+q>J7QdMILP~PPc8flHYtvQ4dkSE-}wxqKn~|6VHS#pB^px>cgOz#3idAcWd#2
zS8=<;mk0)#x+g4ko%!Rzu`RbY=X_jVkU2B)%7cAM5_(zu_glo?O<KG5)q@Y~3U=(M
zuX^Y#&Hu23(`#FWe9#3IML)5cXJsLmFUdDc_*w3^efR91+xf=_QkkOv=I@=nY3csi
zJO#r1AD2GuT^?-Be*1{hWY0OJk)AD*t!8r+H3OB_-O-=lHSzDOjCkd*OdK`4C!b%S
z_2JatE%tpUcy*SXYTK9a=iY_s(GTORXRkP~eW|zpMRb3d;#HS7ak9~qPY63b@V&*d
zt?9n}jidQqXWQHTrzNLM`f_N?;xgYbp8UBJxfV`(yK1WVpWF{;Y@2-_ZJCtuZ)V5l
z$5Q`&9HnO$?6*2Ljd|X~lXbVlI)%jSkDR_yze~(CvAfj8Huu>)wP&wlkNqn4UbjZv
z=$M1>l&QNe-*{8se`$L>Z?68#b$YA6m@(=I9{jEHFodnMdV;FT+^_H77EYRe=IFll
zzAJiv#BrIqi^;59Snqc=Uqt?X%)>(ApYxa3NKNh$eK@7$;P%Or9tzg&-=(D4u$w)l
zBEv!9XjX@~=ey3`R%W|d?C-Tq`)oVq!SC#?waGdse|_tnFWVY;e_s8)P8rt??%}by
zKA9@ncaIz_-e!C>>e3Edudfk{w@L4rd;F)~@1pP3JXe16eE(W<T>0N0naoo!H$Uyp
zoKrQKRob+`Q?*(8sz$VmLFd7l|K>U@F`b!~d%m@Uo$X9t4d0w6=6V+Av}M1|4xT!@
za{8wA*PZ!(+RSl(vFu-lk6TO2m-?`pSE)Ol_SxjU+wQo~#!I~Sp3aqZRkA7ka{E4(
zitXN~qNrivvOoXTlW$JhwG$)@qc$C=+n2qt=Ecsa(k$`cZXRMQ``7FD_uRS9b$HkH
zwX4=-UY=a(vBl)}#zN+3sn64Fn)CJ*#)&?BesJ?!nXevQoLk}pPu*82oK$||pUb5g
z^+L5DeQsS4(wE!m(-Lv;#M>W=_I0}6xfT*PB-8p@7AK@=etBIqXRhjkswW?u4P9Pr
zJ?C=v%=_D0T%1l6ZtR(svwO;WZ~e9vxeo<9x}QFa3pl*z@YfS|`xY$U-%z(n;lB6o
zN4HuY{mz@mRqrKqN_oFeKAYO9X;#Yr=1#6|oBYJPzGv5j(`}FRwrhO5yMt|;o0ht1
z&fR^R3ZBF*x@P$6z;QvLe8cVQq`#&wT`%q-cB-%9;p|!UKXnh(b#LH1ZF*5@%TC|r
zUNLrO|8Z0@-Fx!u%*o=E8|+_QV-}=;VYr{cRG4z*;D_nHhXmOT-@1HSq2+M;qn%g5
zt%m%>rwV~r^W|UG-^y=DU$ymM%I&bNvzt3o{btYUyZX>5AbstWwCF|U8C%Y8x#?0K
ze)x0APN9;&QtY-)H`X<aJ?}qx@71%~Gs}CX9lY^(*CUDdElF2+E@?TMm~P=*(X&oh
zuR`KWZ<+l3(_DX?=6(89b@$rFse3EF<vBjQG3ln=YIn9klfWY<zm;m%{|u;IBjsGh
z#$KZJY<b1v>7Or@t$Ta%^DFripC>0tRpn>;S5H}2`ltE%gV#3GzArx&9GWFBzr?6?
z{>@6?gcpgA55Gxz5VCw<iRyxU$5jV)y}jEzT^6PmAInUOu$}oL%B_1pv){M2ebQe%
z+B~@DFwI@*5oj&AcAb37&JwLNpE&CCKk*fn3#PB#BmdRz#MD);i`9)*etnZtdX`a9
zHo#u^Me^%1>5mB#R!{7Ts*RtwADU&H^z=C|-=<fuJNIdwkdE|{o&4Tii^Kfx<CHgI
zfnv7%Q_ntRyqvRV{+aViUjmPv)0yQdIk#tV-?qX99rruS&i$Nr%`V_|Ci^uBi#g$I
zIqFR;`J{ekNj|tBydk)ik8|=w<=Rd9S00};U_Y#>wMOpx&jm4(|3j=SwceVGY0q9G
zBH)x$C$N0V)&qRrQdeHzxcN(`v-*v7@2)O`mEoV4cKGX_Dy#Q6delv&d}`Q@Qts9-
zSHnNGE!q-kAY8+peecCHtq$jy1?E$?*KPgD)7fNLZ!W;<Q);>2Jx8#AWr0@LDfzIc
zscYiZ<h7?wHH*JuYyQ+{mEK|3KAzIhJ+ZQr@5IbvdBkUab(Z8-WrpJ&9BF%*8jYI_
zPM%(&^7vV)_q4C7FLxX<4Lr+Py2j_Y!I~uH6HJ^o`G@Q_ypf4^GTg0b*|leW;KE7s
zb}tO>&7JryY-atT>AW1Pwq9@iIp57uSZ)uGrB$4P7iX!Np0|XSp~x?0w&HoRdODHD
zC5~Tq<*^>$y@cbWjoPUQi#WEprqApKe{SC3o$lc68hq8Fa$EJQ!kxCZh77NI4a26H
z%-EI0{CZX4lru*J<~E-C<@GLC{ML_OZBMRquBqG-ameZ0skQnO>tl6WqzkufKQlXe
z7q?ZY;o%KgCs(~O*f5`AX(G=alT5SN|L@wY^|+qgJtGz>9dETK_eFW&=efD!Ar4b`
z)_0}f%{+AL!WVt9nmpE3_o@%}2pFjB;nc5>J8|o5zVwz7mZLf>eM(yeuQQ4N-MO7f
zx1ywY!s>E&o4Tw*^B~Es25t3x=f2MEvGI`Kljm-BwaTW|?9uVH*(EAdR;28_CwBY$
z*}Q8%*~{23-}zg?Soo%`d!nh@(n2qn{RQ9oo&|6el`QhsHM_ayXTSniBL$W-DpETi
zu9+(Bq|#a?dGVN5_Mr=ZY<9@0`G-b+_<8)YVpjd?`n?P8T_|W}JtDJ4=~J}k=6dPa
zO_R1>{PuxG%Jy;Msoe7grKz8nUrF$r@bdnGml`isCas!x&eLwf(WCyA>zb1_7CyI3
zdF-iY_w2<TQ@*Wbnct&3Q_kc~%aU&w-ucq-WTrH$+s2({k76dps69@!J^$jy0^QBo
zX1U3mgz^{vSjHjna((t9mJaXD2gIh-1gtdpS#LK<x4Pp=%ID;BW$}rh<~B3z71>&B
zAD1pP>6R*cc>1C+%RmXq`Bxks7|aSUHfnvkpI7@P=b0ue5o6<Z%XYfgup}j{%GpxL
zaQ5bQM&70xtF+4Phkk4om;ZHf<Gaq^Q{tXQz4W|Vy-x1z=P>=XZTC!k(<`~Q%&6X3
zSRa1Cc*4^95Mzbo>>K4gEgi~xKi>#+xHCn6r{nWP9=@lq5=)a`rfvy;w)(+|<Of@J
zDEH;$$9jIcAb6;);C$xP6-kC6HJZt38IPWcZ=SV$&XhCVsWU!y%YJ-ZI`!gV_Io+?
z++V*`dzrn6+obaDiipcuN0Ta@66tqd$Cs=w?z{E4x%0M1a$tSn<Df3J4OM;*9WOih
z{(l&sE|7m_gJ$vdh>)Z;&sR@t$&Hn6T-;NdVpn}r%v!$I@@@3;%IeBK!`0kc{lOM`
z*F6rN`u}z@^E-}`MgI>SDN0YjTz_15zm4POBWpeM`t(CC$9k2`_+=%bbZKAY#vh)y
zXY5p0w&QHt5~;rSgN2iOy@}cu9gk^pe>YyLU%_7fXr(p#0Yk&bfm`PW&3Yp$mSDO|
zcdy4$o?f?0*-Z*NXFc}zY>KO`?6^}s?S3AY*7C+H=S*BK_0*o4xw_fon&jIJj!C93
z{2Ss!=4d-y`(b=@$<9S_8O2VnN+u6o*3{3q9Lq5ynzc@?Z!Vj7i$MK9kBIsir5D+R
zHeFAv`+t6B|1xQRyNi8uzI<w5U@`Hwe)`(o$3EIiR886zzU^_)jML91bL`f+pZQQB
zK8txl#`%-!4_4hw`Lt6!xS_R9*_8KSW7{8xIh(Keyv}L!Gg~2>U*KP?u{~%0=DGF)
z@=d$g^jNxnuLzo^x#UKCR~^3*@8j^*N9&uyDks{x<lSj0b$|J@V|ffu`{6fl>Q(pJ
zHG8<bTn~<ZntN72FI=(3uzk_~nauMS3xq!SV(}q)?-O|m(O-LKPu&07dQG9cx?|YB
ztp7og>*cR7u_u`}F8%(yygy}I?_N&bh{_iQRx@WjIdk+y#Gb<A?^n1-PW^iPx@Gou
z%ddqw^;6Q-mZblWC~ebysN`~j`TPlyykKcvqsfb+x?en3&(ybBG2J%o?(ZL|;lB+Q
z?ET&JtW!)hLMiOWB<uaZXHVzlxFzOvUPmoX`Jw;mnTZbH!cNVYl{GnE^Okb%tj$@g
z%q~SRNk%1E%Q;>;_F%`3^=d0#rJS>x|NhvE$NQu{Cg!cLuf03-($3n)m76B~vyPHE
zKl%HY6}vYIf7h|u6!)dv{;nU>yawIYy*+L3^c*5|d5+D0%eh9;G5ZkP*-(y<(0Wy;
zsOsq~jO_`0cGr`OY@}y?>PudKIcJvU{H)315)ol8%4gU*b$BK%Q2hD8x#C^mUd|Qk
z{4O-DedxbjO;J{9O@F<JU(o-f?phg6D~nGFIjYTVJ6iUBrS-RLMaMTho+l!!Z1x|$
zH#=qdt!wKFuGGz69yYx|_HfH)i=PW7ZV&!{Qzo*lcVfT{6W8-r-_-ssKJ8^5B)4>@
z?k)z6&&Q*g74LqJ3KIXiZG)rg*N)<;D_RO)teAdq(b{jHWDU$?=FckX+){sHYIU`V
zR9DZ3e>*PCf57zkev6LI<uBZE*EDa7oT}KsCDz>#k^M=#FJggc(SFWmA(f`7m27Nw
zLQ1|yEd{L!erBQf_Ie(d(Jpe?VBJ{E&J*}deb%cTd$;v^307CP?rdv+{n|F@<|fzV
z<;<Kujg7zkIgEd#7Z(1qJ$&!!H72ck!GmH!#!E7e=^UA5d8zp0mXDh*H-@b(eQ)w=
z!a<W6GHdSegyk8pj!IwmkY%Cwa}oIk@@4xpH6(bhe|S=}Amj|kdA^@+#*_H-56ZGc
zidL`n)MEepsp75e$KrXyHL)|kXRKZ6{kDAdD>wd^cV>r)_g2O*tdu@K`Ck6S`e^Ok
z^w4_7p6wc!J0I|ieQFXo9<sgk!`%2E_OIMt%vtvJ;=w9&(G<?zN!wgLdZwl^OK#P=
zrhR5&<N*t*)Kkoi@$VkWe@c6^xXYJ$;gwF|<(wk2hc7j5u&aLV_bQH2ne$wHNz2uk
z{9E64Z8h|-4Zfl**c<6HMdOu-^^?M<PDj>=<UP)wSKk@%ocl%M_p%+?m(=fGkqJ2!
zaA2ub?&a<G@_+LMJv_3lqS&nQ=a-9|%|andPpubZd7W>#DljGe<m%L)yDnDE&Pp-O
z(Nqy}R%u<Zz@bC?k0$%yP3pVf->v0cbGSl%8;|1I`^!IVKH#mtc1QA(BX>=NcuRzX
zxc_fUJ^1`>TGi@?dXu2qwF$Sh3cBatP!#i-;r9O%&zV(^mOX3SsekmShSGDTEt`^#
zU*K345_@&d9R(kC`Aim3J<B&QHu;7f%4*oB^xEmI*L`8>hf%MOBwzF3-L^V-H801}
z>xNIyB~7<KCGyxbY<bYdXOgko1OrR6s}~)d@}X{Lk!p(K0sYjaiFy+C_fBq=+_^>i
zlE|UDH@kPXosKw=70xH07u){NT>C-i)tqmO?DMxBKF|EUig)dv4@$FGqFzZo;+R;~
z{qVHJ#C4Y^&k%ERjx1Uu-y}B6wPXE>X|~T3^fPTQ@85m--p+edruzEoeP{WT@+9rU
ziKoA9FZt$8x)>ZL^xVaSUBB+;apjPDscjb~&VP0zX0^JjnSsK#PX(RT+s~dC>5i)2
z{I;TJ?x8oE%Z+a@{c3vFz|eJl$NzH^<n6d-c=?E}{?o=cxzXmFUC7NZJL<kDSuOuH
z!MDvSN_kD(ZEv-MpZ{5A{bG@B<NT-P9DA8X>~N6fN=cCwVtZd4xvy6LnJH5t`tiDN
zCmial`_`u0S9dheIeUfEnem{`8F}A;Gg6hDFW;OtttdO<`s&uU=&2Q3C6cDyw)#G~
zGVFp%83VhxgsT+$IoVQm{+jq1FMYlhdk228elNRX*IVyd3)Lq5pS6H%W|YY92mL$a
z7((0TG`_T(d!pvdUN4>Hp(%S9AG5^s&0JC!mHi~GvtG{eSGoMw_;WI*dp>z|o;FOa
z-hb_U`-NxPDTdD<@buli@_)zMM^~3eOsr(`_cTAH^tLT{uG;g3Pnz<V=j0VQt?xRn
z@ZeeTf6E|4)+Vbp(n~++C~@p*Xss<^jV(^Pu773Sv@cV*k9W^8Ry?8WskxA&s#rT{
z_pjuNEebsQ&qYtER}2k#RR1DcbupX4-hEA9U0$dA{VTo6eM&a!c<cQ;$I8$AwKRHM
zC*|_n@pt>5(Bt!G^{x+VviY~d|IqW<>->J^d=n1%?#FRlf_-n@WzIMEW-VZCOTD}6
zieb6qp^Q~K#5^A;SN+#{7afz->!Y{WZKkbnuJLcnmD8(U8pkkI*1FaQPqd#_cKOzk
z2IIvRtogQAgXS2$DG#4*wfCmq7QR*fU)JP0G3q{I`u*|G!qe$1W=P2{;jc)lHQcd_
z^M{E4hVKubB~Dg3-E!pI!`m_QgHxteyv{$uv)w28AKNpl$IZdsYcsaIIw~6Q*=)LU
z+#9iTakU$FEiGNi+`D<zw_uBN5;N=P&%ae7E0k7iSg3j7$kmDs|16feHx;?u_N%Dl
z%1Gd!e75q$>z@~A{;a7~omIw{^w(QkK9b4PFXHDKXX{qaHE&h)r0suoKFD)S+_v4`
z$k<WQYmq4P2K%Wc6CH2$CYxGh1%!&O6#iN}N9X-bYom$BI~0_BQ*&fruH|%Fp)*mi
zKG>w+A#?51mXwzLm%Z2@ZQky>|H=8@SBXZJTg7kao(WEjxw>rruZ+}=*PqXceSKlD
z^PuWMyM>$X*l^B2H%a*R@#6Ifl|m)r9Mx%D+ry%Ns7uU9j=w0gBlt33`_A}1rgCfe
z^EFM*zrPgr-ABrAr?AwEr_NJvz5aXR=H?~06@D1h&&lxH?eo!h|B1UTv!31S-(<F@
zD<H3t>7c!s$jyaL{26h^C#LEP^5^zwRO*OusxvKC`g>uv&u;Jj*36a1CFD#lGyGf8
zJd0oP`U6F7#t^f}{Bxo+4N_uOE&ns^_$!ZQhN48ly*rO5dEH%ZUy^l>@!cC%VP-ym
z<+IU?FEVu}N!7DFsSS&NJWEf^{O;Tx;u%{OB{h7B^%34P&r$x+^R&fxj?T8>;#n^B
zbn?y9pX9$X>AC+nt}{pf_`$|Hmg)s3)jlrKE0CG+{MkxVSJj;_?yLV_$oRppw`%na
zeQQs~I{o!CR@6_@QSjDq&gEUzxiD7p+tn`ZrjlHr(qpk^^X^x_tiN;HEAIIm{gvPR
zPUY1{yya-|&HUD==l<MRgt>KR)bt`r{*;N0ckSlRt8{gg$}Y&X&(zAj^motawqlmT
z9)(MDqUJq0{qaa!EpP6N-#)p&^#W~+ZhhMQWa@DTS;>F8k3){9FF(58^K!`j5T`44
zKfF3_2*1(2dpqrpoc!W*mglPL_g_1$;ktEIU%ulZo+Z5Xdo2>#H@XQ+a2m${De8&1
zbd3GoZ_$rw)8`%j<`wb7Q~#KHta9?&|NCBxq%)b;#qOWBr=+XA%vk@~!-N_CrT<lL
zy8Yt_#}2t!)gQG(Gs^U?&(E%XzQ%02y^X)u-+!+g@2)@c_JX17&x(Hs3o^bwzqGo3
zonW=8ZRej)kw=bl$eSN!-x?}kcB=oWV$eTJ`#UQ)IJ>QF^Ux2R&DwU&R8OJ)M!Dvu
zyq((Hj&767@Gdi2w6g4q<E_FcsXQ7yUPpE`-DcZbDAJr77wGNfw&-K!mNN0xI)_6l
z=DN<G{_y#Ro@=t2UG7~kIfcB#WafNJ(O&CeQ7<<2q|58eC-23`);~9nk=VzcASrih
zH}~{=fm^2fFE6$8eZ5#{egEMgy~NF1N?Q*fyfCHeP&98={TDx$K=a$I^I5;VTlw?f
zgC}Ax4f0j&5pB<YJPPbe6FQg_Htk{K{Rf>#q84r2)3B}JQSh!!R}Dox%MQiN=eaX4
zuJruYVA<bJ^{gouckk1-KAO73?vL5mwgzGS14WJ>CtXxZSs?xYpZA1+Yc{A{-?xC_
zw#Bj4(U;VBo$ZY)*z!wR_|Jyh(k%DZb2L3DHoh90TNiHYvFW?=Iw9c?tAnPc_IvAl
ztyDWb@x`;`!-i+~B*!?+f8(Le8N_p?h(YWWmzFBy&HzUDqkO*gD|SD-qTh3BRl)<Q
z)&uV^SNxvY#+Uc_x^Z{Glyy(v+<OsoKE0cv>aWr4>@5qDLuYMxI7wj9BbWX&hQBW!
z{PgBH_X@Kck=l}S)>lKtSNHx6$Y4G=ZMRjgir!Y=hJ-ne4;>6Hr~0&aex7B%oWV|e
ziR{ac#N&^TH+^*T4wv};TXb4Iua~XRLaxacr=@bTwL9+i)L%Y*?MzYg)Uc@A5%C$%
zuU@X&GS%4eXoc7&ZQmFE^CRa)XNB(bpMEaMzqNSJ`G(A0pZ~o1TXy87YFWj4i%2z<
z{*6mBb~y=IUF|+qz1OwV_w6B}ZNDs5NO-?~{oDI>!u95#2_<a%a;Nb)H>E_~+gabd
zKt{ym%(m-63paB4E@W|tcqcXU4x^ui|BJUm^8)9bHnp(HXK|gk@bn7(K;z8H!tTBu
zcZ=#%L`1YVGh8vzy|~ZZK!Zg_C#n9$mKh$#YdX9G50yu=wdq~5dlh(gi}8-jUeS{?
z0*>4h&8_P&^@=Gm&E`M);-pa3G&>&6kTj0^UkW`%>l2<PXFFVf|H9*ufoXY1KV#3@
zCF`D^+VQkFd*>8}dWZD?66VKM?&q6M?LGB$_bEr#x&GFwS29Cv?E{r^O<1lZY?+^$
zBYDJq|2LjfUOl^_rd(4!?i9HGNYnY7H~XA!&0lr)go>NOF-^C#Og1_GulCJ8yMg)j
zxfO?bUe2li7FwIXf;oInaqXOShFabgDl>D+8hD>4@|?b9VE;jvL!)cE#4hppXbYCA
zB?sUB{BqEK_lL*X0*+n1?CyU<HyxT4E;}nc@@um5oMbPBGqc{t%*~eYTIUfxTkyS!
zSN}ohBfPH;#!h;5zTqXK)b8NJD=xDuo{uQhE|gjlBk+G|UwxSBWfle%g`e9wvgS*M
z2EF@zHlUD!<!M{ii@y(MEco&G>YJVUai@3p-9F#)^>a{J#HrUVZ*o>_E#k@FW00UR
zOJH)-zRH%RA*bhucusgIcrx#{p3cR2>QdJ?COlcK;QN!+x$%bb+vd3NIi1!&|2;f$
zVcMt7G1)(s@!c)_)m64VN$z530E=m8vg)Lj$(~hf?$@rZpTLoxp5*i2p3^S$31p+G
zg)wMnsS=a1>GTcZ>|(4&CdTGwkiDd9b|#mk#colR3D?^8@yNE^+hy}^Y|Fjvc63{A
z=+SMHy@Cq&Ro%b6J-`3<-_`s76&|ywUc2@AEYOBhi)tAoC09`^#o+4X1v~c6<(3t;
zRW^6<jdZ?v;@GhhS1!d(^SgQP8pnt0XV{$G)E=>z6m8tHUD&jUv548EVHrc<0?vk+
z^^ymU96ieF%qFn0{6onmlkEkJ0soFJShR5AU;WeeiVVr;|9|;2_hn9I9=pQ--;da~
zY%JfvdTZyO)*t)ltzcqdiqUCcF!q*KaBy)9^!AEla?n&<&o+VK7USHW9EPrS$IPaw
zF+_R`FPLjQfh!^HJ<Eol{fq~W+&g#W)BH<wUj9$2=d@(*VK~R<AbfiN<pw!5hxYoI
zEez}nCa+z(`SbnqhNZ>_?wmYv?rA=M%p1mOWol;Ymi-s_k!`;D|MUsXlmFi5xV?Yh
z{)Db?=k(60`Ay@~YuFzt>U#8l^YZT2iKp#%&ei?Di}71py|V9H-<bcJFXQjW&)6R)
zuIz1{-oSm~@YDJAF~=MlRxaJ#+&l64{X6vsW#;JoU;6M>PG<VQc%BSKKZjyv^<e1*
zn?J|T*ni`H$@BfMSpMi=mA16FQSs0E_P_fp{+~Q}>8NBzvK#;5BY(`7cb>j~=h?I}
z1D^jnqMFvm)eORq>u>nR%Kp3joUP>7cE>6I*GR6~uhQf5_HB+0<1&YOV+pp(>goG6
z8K?X&*Sh?FzwpohjYt0bv;3=9djH?P@c(YN|EJad{og(Rzx9?Kt9yI*Ow|2w-?QPr
zO)|r#hI&59-T!rOow#=C*ysNu|L-fCHvD(|^q)idY0{VNqE2Pc>YpYoN&myYc<JUH
zOW7}kT)cGj2vb5@%IEF=|8HG=<J0I@Z#J#$!2YU#x4jr-g_R%Ie_k0CF)QNs-^&%-
z{ueO5_4#l8eZSD(({mg>9pk*5CO)gT5B}d9{Acyv?p4bV$7lUtEMi%G`M>24cGrj-
z_n05}9zSx9Z$a|2l%Knw&X~y%vqop%|Ms5$Ooo52N1Qux^yDSx1)sO)xGk&i{x5&N
zzW2+&dg-1Sb36CGv|sId^yrCmU*0qQp5In~M{S*-Uw!G{^7H?7f7u`ZuUD#YfjNU|
z^S8_QTGWqdDO+D&Dra0@5*3oZVLoS#$(4nBJhv{<Sa5CMd3)ug>8o#j*sC{XU*)vl
zn-3R1z4P#Kz^q>xd*lzdEz;+$i0ydp?PMCzvd8t_QO9DD`XdYC`Q}$H6ntE}S!Xx%
z!n5aA)NL_eyJSuLH@;T;+eaU<)P8Q)YB;i1gQ54!NydZcRrVUn?Ui0B$+C3ck3UT|
zKfjz8KKkLvjTavGWuF{S)bow|Q*I=u?6dz$@gfm%f9K`xYLop>gqv?`Nq_9pme+f#
z&u9JX8*W0MW#x@O+%1?<ulXidbZXVa9eHA@|8gpKGjcWkWIA<pzwPX_j90#*ZgDy-
zNA;pMOfFm($)fMVtFwEh{r#Ws&S{?fq_gZ*>FyOXH9Di#OnhOzyL!)$-HvA-mR8mt
zxoNXg{Lm5QxFFXI#~q1b{W5lqQ6IbJXKQ!c6@`ULpR`@J++#oEt%)Vg2HEvxK}!qY
zSx4ySNiVsy;AcykY)AGqtG6{mg`zVZ582r?TL(tI65n;TFDvZB?2F#M-^H4~bS7MU
zQP;6(v7h{U(XAV9?u|~?-#T5liT`Hk$3^qDB$!C)a!v{6Jh^M?+*hJP`)@x>zP)Eo
zywhc07w_I}S9VG+;I-m;J1gPumnkp#r_|dpvS>fi*!{ibf^eb56$zIE&M_xznch!u
zeW%To{^xMkH?7dXWb>k9HCCS<6wYN|=DYi1s_xtw-VcQ5XcZn3zkRo=+itS>{U;^A
zl_%``cfmk(VM)^eGX=Yp-*PmHtxep2U(I8c@Vn0!A0AVDU9fMO%gZC4%$8wN@$tSt
z@43BotMB}~h}W6%!QK0tPOn=qrCsUPnaNsN?3WW)sMl+$T1LN#{pNRh<L~TgDeB*K
z6#9dHyce@g_u$G}%J*+y%KWYO-#?VNv9I)XZ+-IlEvG_c6@I!}7F2Z2;Jn#)QLJ!+
z!Srq1@l*Jxt}3p0QN}V`^4{g<^qE!7TU{>RuHesg)k*WHpJjDdtjpSF{z1*)u>4N@
zyghZfr4MUg*dO7Ta#uQJbK%smC4cJ@EVrha?eg9jm^#t^VBiGa+acbk_U*qddo)*U
z<;BCh8xQdLySqJIu-m%4i0jXmL$mkXH1fKCQB|*^`~M@QQ-=LA&Eiu!CTy*hElGRR
zXfi=;^Jh;L^-xKUv-$PabH!z@vu?L-UG?kNgIHd6>4LRa|2=qpQG3f#&JCAZ{O#_2
z-<q@f!tAg&w=()28ZU9*U24EnF|k!6w(|4anU^1}k9xMT;YYFf_YAJ80Q0^KzV7Zf
z@qryb#h&EnFV2q@<cmy@+#;`@cITpzX}r6`Mx`rnwplk-Eq%)I<!xTX(R${M-QMAM
z;=~R$q()y@-FE4U@vlN(^Xi)IwG5M%9yjVXUOS`K%DaE6*56)_w%&^~=FDGcf8oiV
z{b!UvAFqCvf6?Nbp16uMKWF)llSUH~{%lHUo4zvatKKus_fzl5C7zGini}h=QgJcy
z!gI6VUz($CJl4osxh(WJtI&o6e_x+5t6!3LJyxZ<dCELVw<7oD?=$iO+`_EID!S+2
zl0UC?OuExSQAX}+-NdR}UFX#~wYpBN+j8Sy#`QX@tmV%cXKj)wdgQllv1;Vx=bQZ!
z=67(^a2Gz_Jxgz=_08!PMpuGT7MxEO<c^)jKZ|A3!ml^D4{LC#7_7cHmow0IZv0By
zj0WcVQ;XD=y%RsN@l;lPCBHsn*!zf1^+yux7K$_<)cVXW%G1=okJV9xr^vsw@V-v_
z<^!P@-2ChtOZ+<X)xVxu|MyxT-=j08j9ojl)b&{w9^9EX*ZH??+and}i}y4A&U+~z
zZd`NMHigr1cS2XVt7oHt=Y>+IL%)~t$(wHF71ch`QNOu=>zv8*zb=|e>oV`=y_@oo
zZ}R@D_e7&NT`LRYE%|1&?Nmet+ohC?riu?2I~<$V_42B<f10S(q|0VszJ^Sl#BIMR
z=%ZGAqTh-suU`hNx&62Py+-Cm--^pw2U)Uje`4ZvUhv00-cO?GY!9!|vG2QV4t>vW
z@0-zGyf`ZEzV<5P`c01v)gK-zTvhp==i+y1n-cXj!_$SrH>>YQz5kPR{>`Kd2k&jj
zXXi|OQron^M()<$l^O4qr&+XrRGu`+iIYjF(|^vx6Q>{U+aFk`$+&m%q@rh;<@1*?
zZ+;%^^dez~*)-3|;^m82azp)R2xmw3Y%LGJ=eq9ShvKQ{1$Ex|HnI2CPo8D|yvinH
zhS#n4GVR(dwW2Di=c3N+?Ua@GYS>@>x96?Si8_mpxxGDt*8bCW_aABZp89jz-Wl&?
zE+tAQ@#QYuBslY<(N^t)30>b)*dCiXmZr>2Y@b+vIeyP9IsK=+%dXeBWjVDvo2|@K
z-t=f)Luf>ENaxeTd)o99Wtywx!t3WX6)|R=yzSY4VBH>3iEIZk%U4&X?~uQ&beQqV
z={uJ@kDZX+d*?!adhq$0+F4RPW+lozZ%Z$qE@-sgyXw?_?LJdq@n#P-)nkcq6XH14
zwBCK6^6S_%$(4a^;Zh<IN84xAA2sq0^%YHdFS|8dnswgIu6ZgC`#iNy_r9I`rS`O3
zJx8u=0bk7WrE?v$`1RKYWu0DmJBCqKV{V)2E@iuecQ!aHPR_{EH{TsRkGE)2*ndX0
zkIK)c?n~D{$goGJj%ky=#`F_OX&0=Itn0lha%gK8=gJdZ`mbF=Uw+#AM@cPIZ|#5U
z&uasBZ|~i_JVaZNtz-p{>Jf?0+wXp!toKRbrsbUacatl2UU#T<;!_Ae%UZ_HK8ej&
z%qZWBt3uc}nB!TyZr{_+(wi&l<~>fCYxeBaujsVOV(*)7n><W^YX_BYmQOj``-D%W
zA~XAA<@}<rrZEo-uFI}8tl}?Gz4Y;F8cT-p^AaPzeLU<l=ANw1km~R@kiETH<=Isw
z>s#qUS0YdDs*g(weizW^%=7D1(#N;AVnhzds773smg9VNVXwhlCnv!z&I|TvHZw6P
zNf^Ih=-RS#xuo`dtu;l`OKlhn8~qKmPO7}~V!Jto@5!8);uc9Yce81Vb1xL~usCw>
zxNo8*#J%KI#E+jr9LJ8jirpz(dt&3;54lV?r7femZq8kMhWTUt!f1yFj+wq^U$Aj6
zT(tH!%QUB)w>p-_anEfdrz-Bh^+ndTb+Y5$$t$jR{$C$=d)MCk-Iw1ljC6B5^SPmU
zN@%_Khow_*BnGWt@O<s|jm8qD0zE%JvYeIq|Gma~`Jzwp4)&U^f2G^iG+oxqeKJ#b
zwK|%AFFjOZ`Ms2NUw^;aWffj8uutjX<%e#)>)HJeujnW#_-Y$@lBecR^3x3oYmH3%
zK5u`fA(G&t?0ItIE!!U{!qPmmkJ@t2ZrLX?EqBHD_o<dL`)&s&ubg(zV3W|!OZL;|
z%`doP=rfypm4%3SF0++s?0doLo=d4MGh(EEUcJ_T@#3ESyKl%c-MaqfLCZA8<E-@+
zj%?g54zcTJu=?&({C~6J?uBWLnikoIryY=(=kcO{c3wkaMU|}D@5fhS&BZoy|1Duk
z{iHc{vEG~$bL`VfZ%Ix#`lRj7(Z?=kJBqjap52jEx%1-t^6ye|?tKs4jSsnARa<rG
z)z;<AlS&^6WiPWmaAeZchvu@AR?7FPniam=(O%zvC(?{#sj8(*8fSlHbIXp%-?kP!
z&(_cPW4k91*1TKx#=bW<q?TuBf7)kj(7_$H(JW-MU{pR=kZ|tVpATjmeh}G`s=EA*
z-xAR&VY+#tLYF#nJIfuu+5U6j-oz{{@ZZg(c(n-Uk&mzV!=$`d1g+!QbeiMlcP)|V
z6^#EgRlHN{|8HQ}sdWA7#pf4_FKxVj^0>j1qx?KVTIrs3YPY^J&Snyx@MTKj+^x4`
zW_lE!&s-?|?^=i$pJ4P8x1}LjPFGGX6Hwo#XT+}9T$q#o_to)t6~4B|6$SK6g8lxf
z%L`a@x0+_WbUg3=^1^Xn*~7_qcCP(>e!eeDSg>5SZTsYoKO5^;s$Hn<+3U-6=Et%X
z`;{{%&u7~px%-pSoiA-SYtO%MSE=gF%X$5wK<3Wx4<ZT`3eo;=Mb<9xJABQX)8u~B
zt?TF3ns?R-ddynrVzWd>WYb&S$dCGGbwg6WSvA$lJz1u(H~PZin%zFTuHBqaW|tJ@
z#**&+?dGSyL4xsD?WCJcFV{bPH;rA}+CG5I<I1`BwpH<t$)bV#JTEzaRi7XG#`wdN
z^(Jmx)rB9a#(ib|<0tmnZ^|VTL1BgY$y`oB)8|MpSv~!na$U+-TZT=(x+(nyT9*=I
zr+G}4GpO;eNsc?Q_V23zA?|ZQ)AvphDnEJij04vZ(WZruFZeaROc!T5`&CH4{@StI
zSDKedUk__(vyz?2Ud?8BhpV^z=CmnCS0$RJ^(MM6zhiwq=(fWX$Kr=mpU$22OLuAO
zk;J3xcOL)w=+3#8_lcz%>onr7)NaULu6cZx&WfTf2kwgQQ|&6UUODOV$y%Mm8C{Ye
z7~(D5ocFhOmDOHzSDt5Hz2?g@mG+9urQc7~^Ig^RG)N8*vr?Mx$~XJ!_P(aAscVXx
zA8mDSd)&O&cY&?!qe`7^m9NTJEP3ZmUt}Whn%*e9<`2UJdHZSWEc_<T)@`{bu6Kd?
z>bWd|iFF-M=bhI7F*VfgXSJQ>I^(YViZ{FGn?$V2S-kVohP(66u8v^Sx$V>`q>$rv
zci+R)7nAEb&ve9!=f`bJN<SQQ;mrc!9@SY#M1Ck(om{YF<Bn?Yi+ln+O`EKnrSH#N
zbUI2o{PMw751TYIbe;+~Ie7TRdu%f;zq@0L!J>ET-gRs!Oq4pE^xApRbiplOucs@n
zaDFGo*LLXju@iyZa#s~I%uQZ4c25)gl=x|J{X2JI@$eb*j@GAL++4FKID5srfRwo_
z^|J5ne0-z(UYE%GUXgIEy3(8dQ@J-do}5zhkhfIfY~Ai_Yb58H8BTpXXYJ0*7dzFz
ztzR&e|JB}a+KmGCP9IqQrglG`nRcvc)!TcgS|=&GEZwYj-PQ8N9_iM*4qTV#cUwNc
zbV;gOUZnWty^W=^W=DBgRO@$azb?K=J2=f`_uAR=o~DnI=cjCY^kQw|t@bG^nIu_E
zl{fP|pDq4sEyK3?ruz+)ckI)&*k2=Y@Ra(_d#x*s@BeRkef7Sb)!zS!bIwjpTE6%3
ztVP$Gcj)eX_`Hu>)7W0qrl7*NXuqFi#f#iH_C52%e0J!j>n}?YncC$R`iOaLKz+>p
zbq}?sHP`W9IQ#0{3V{U~-pOj;C*AqAC8q9IjCEh(jEeuY`@&^zPP=(FU75Fa4g0bx
z-^176huxd}#pQZ{<jX47%KmQxMwR*tmnQp9Yx!Nt5VI*rinGR9WtzyNW%Bt#5A5W$
zCoY;Lx6NU}8Qm4P%dIx;Vx8x{^g!D>ji&C$^>xqY$UOfyG4tJ=`ais9G@YL6tje)^
zk+ybTwPw{3(M`|%4!F%(8nSc8=Vg_5|J`DrZ}V?nW)}C{UwIq#)>O?Bv-p!Vt=4A$
z)Ae2Q1rE}0%?)PHQvSAJzww7<lf)(lC%HXcBA@?F_4~TbHfKzDr<)nhO4Rv$gJ<Q0
zqfE2?mY%fxUN5z)L2^m&JgvOlF)O?te_CB5$bRaUc#r%1#>0~mugDtwa5u|TEKv+|
z*!XSti^|m%UcSNJIxDa2dlvb4yV!e%6zPZAM-9(3?PKH&loY>FoGf<fxzNqJ<u^Cq
zD0EvJvLRltNNnDjnpC}S%Ql>EE?+V`vx)P!_s^SOByO2xZmj33U%qGWb#^7sdmm3Z
zq^DKXt=Mwqfa;G2r_*9jE{?nYk7a%Ft%BV*9&LQOgzpI7y_Y{kv(LTK{bk)4#Uhtg
z-7mS3`+)zF{wvKB??rtUIo8tP!*g_n<ad`30?VBCJ@Q+n@y7JQXZ5~ro>i~-e@uOQ
zbuBmRQxT4L^QSL2DS76-!Zc@FeM7KB%=M3}78sl=i*5hKaN!;6A@Q}J-u#xn8jw26
zb@K7j9z!nXU)B-~&wgs$X}$gKesrK;W`5t4ua-`83)aY4+jp*LdOP*C6vJ<eW1ptv
znOMA$`8aFu@^0%j4<{*V<!)VcbfV>|c@O>yOwD84<#qI1$^XyI%8Hq+m(!T`l^s&4
zPo4BAR6&4eDpN`!_g%3ged~nF)p{oQZ8~=`reCTmpw7|lmO^a0)e(_n(LaBQEt<6T
zb6@rUAL6!=UO%5j#+9sBTJ@uMX3D&@^EduJRO4Wm{9Wyl*rS_$zAj>JyT#-Qeoxm=
zod58po{_<_7fjpJ{NKizu(KEIICxpuf0@edIlDe|U)hy4GhayMSRHfyBe{5@nv7oY
zT!~E^;uqOY{QCQvy4j7lC*6Y*Ik*1ox5!&}?<@1dO=6{O?~*TG{df9P=f5@eF-+Ti
zx9n{d$Tf-E#BUI<WbS)vU$o=z^Vhn(PseceMlaEB%K3U^SKz$9PjkHwWqrRW?|(sS
zVleYn@2z2BI`s=?Z7{G(J*t+a(9M&!ddVz~0^tWLD`s8)(BXdK!O`z>^$r!Rjy7|8
z4s8mIQ&$%)3EWg5`6JnG-G-PiNpit^=4A*h<J#|BDl20V{^s|;jXXkf!Q0>ej_@f_
zKd-lOtzgKdoO8{c-DXek%qsl6AgbGlWB0G9{M|n<bFcL|)B7*B-fm6@lir;Ujr1g*
zLwBMVh0pMv^Js<HB;C5ADV?&6Q~VVf<iG7$bn8gZ<uA(XCrs6ix4N}RJ@e387JJUM
z;#PM!F7|I(bGPEA=0mg6*hx`axGJlE{jr*{?^O8lsHSz7{&_fV%6Kw`W1sw8-90?_
zn`Wo(k?->5(6?jCxya_P7PhUvRDRR4OUH9r8Mvo)D2GdD+UrSuRVr_H$?MFuTlmx|
zy}0Vz;qbr^JJY`*{#T>T+1#G<DQ>dscFCCRc78@z%ja~7x3k%jFJEkr$oY~b-}dbB
zs$9Do_qwYGclk)x9lN<CR;KEF-Rku|d;faMFMg!-B=p_;IR~w3GiF}&ciWb~qJFv5
zMss`K&&BrrQn$*N9aCIf_n4F0yw*GK!N15o@}8esXM`_TO_*%fy#IVf`O8PPmJi!w
z-)`QqY}0z%s(bxeb>6a--{<Z!F$#S0#lOFvP4{QW1G~$fdwn)dH;;_eUz~K{Wp&u8
zs}FCkZ+a_|xzAwLjBC?dj&iy@y0i2>bN{UH`Z>O?54Rkdw8%x=^M%~eGZ8lm^Gli=
zm2aM!q;DjYlJ)M*wvr2`DJ3fHJ@15H+Dn<-VVUjhU*Gk6;!69)+J93-*FC@bJ^8iY
z!@l*mewc7}cRZc@$iXZ`R`$~3naRPG!W)euqvKkbA07Yy!aCvm<5Lnl@}rtvg>A#8
z9y+B_9qM1d@}-G*pWW)r@*m3te)V3;+4{(ATgXg_2&u)ty}0c??`Z9K^?av>xA1vQ
zq1@#SZf>fd-UO>z|5*O8QES$gpLcg~y-JSysWPQgX|jvkwgkKHUXK=(#am8!yy~k_
z@hmZJ@tFPQfA2|!3I9<3QdrcbqQSM>Omeo4O1}~B6ZW^ir`5No7QD8Ss!iI@a&VQu
zwn?9@oR8H`_oI;pR!c&zY{_37)qE#vozu<Axuzk_TtzkuKR-Tt`oPc0pM37Orf->X
zJXGVYmR@H@tnJLQN7ud2R!B4H_Jr)edQ5u_%avyCJMFK7HO*%>Ut4H@CCW5aaEEy6
zj_|D~6mR{>nsW1en*Wlr`dGo3jdS_9_?C7Z{^e$r!uw>qvG>W&$NZl)TbP|v)@G%Z
zf9L;o?D)j{Y?XWYZ7ye<<t*k{EAYbJz`fl(fd7-ksqlI416QW%v+esU;X0?3r*!I^
zsq9aEwuvWdo2@^_y?@%ztM+?X|NeDyI+PbB&-vZpTAfzDu&Y#?(*N}5Twe8SZBt}k
zsKy6xGcca-aKPih`-y?K_HW<m_D%8Ll%r=hU3@X2n?+V^LV$knY~9zd^rTAkwmbb<
z>%bMA{^9zPm#$u_#;;v&csoVpK2jEMzAPPBvg2rL|E0M9$*zXGZ1Sd^4QiYwG<SQ}
z(wzsl<fIgb#EPHUnRv{9K10v4(_(Ixef3L&<JaXpD0jL0);di$+${WY=i4Idb|Z^(
z>K1Celfsy{|5WnbJSE9&<8PH|>&{1N@O3Zz^}?t#Z+3gzitQ_-%2+pRy|ca~eEcd`
z?k{<!*OvEAHELhja>s1xmZQ(M@8>?LHOE__u0-}*68AcrNB3&8ZtSwsF)QLfv)$#d
z<iA*f`hOR^LpbwIXKMUiSN8C2gH6KSm*=X!&g#h1KYTGSW<8g1+{ugCPi#$V<Q}j8
zS#mVU;91<q6J`9e$Fpwjv~}j0n=wJhcz>4c(pj5U|J?o1SAD~jTU+8E>~KANU_s;6
z7iag_eoaz*-kL2OC1NN0c0$_J%#8RoKhK-@uIIbqVdSP!&mp}m=|^);+{9aTeTlbD
zW{RKKrzoa#ySQQFq0?%e=@YlqmcCne^J3nD_LPN8>sKBYRw-XJZ`KSoo{LMa$6WHu
zRj*1~$(GZ<Q(9$CMb5N;s@Y6u%x>*jrF`h9U4O{wSu;0OU;1n8p7H(k9f29k4yYY#
zzus*Zdf<_u7SG;q7sONR|2com)m*$<L+sQ+K3)~a(4a+r@>&nK{jD~3NsScXeAM#1
zr2FGWmK~~|2j&G&@)j*Q-l==<sejYL3)+q68)P)tUtOQ|dLEO^X?yOCdgZw~pHwzV
zPU70X!QvKwdg0W_^_^$G#@4P<HP$dGUh^|;YLfUwvk%*EX7*X0RI7bvB3GXqD_<jC
zU-8M4Emq@<&XU-K?)!J$6#Api{}${&ckFI@MTEoLh3VX?E%l+Vz31r4eQWAIy8FWG
z$b!PquSXvBaOFPqD0DZOYs5FBYFis`|Igjtv+S&U_}53zf3)@Sp^5(=J!L-s<;M>>
z!IL+aE?(p`;lSE;YZ>oJ@{1j5PEx#gpq_uxi?>IQP7mAsTs0$yP3g6j=e_`$#ZD_X
zJ*(0Dp8IxkD2Lghq_vNBrcB;&aEq9Ys8r9Tm^~SxF-Ih_%@6*%z<f!&jVUNz#X~V-
zL%L!~*VNzUjSuCE^q!nk$%@Xqrn%7c{rs}a5|^7Knyd;Qez{h+pkBo>RXq3{hq3qp
zF_E41>Y@{-f0!li;huH&O@yN4BN6dPj~z(|uPRUbcV}i+TgO6o<(Q&Uue7`7r>A_%
zI^ve{<c$B%T}@$;H#cYm{)lUMcCuhezmr+6dV~M=-+wAY$_4JkNKW)jGUamQ;^5}p
za8E+9cH%A1<vx4Ej>hg_`L$N(Ylq0IZFBv#1I}|fmejA`sJ`ri`fIl17xhG!f4{UR
z<Y~qeop(+rvyJ9U?JKymsiL5Jl7Q+@&lB%@&0I?w_7#Yv+PySNPC9t{OGpJb@8OA2
za(aeK&#s!9&u%_7_t*8K3_gEaa%^J%D#^P%3YD~5TDj$&_<6xUA6CDq7d((qvi$T>
z=h^vB!*yLdt51h?)=ya0c2!bj!>&}t+kyJ8o+y7;d0M>I@syY8{`q!Kt}I_5;?#5K
zQ*DCB(+BI<Zgg9F>e`j|LZ<`4Dvw_4@#HbZUcLG0r0;Lv+~jY;xi+^NO%Dd0U~ZlF
z`){eK#o6bJ^DoI&zWwN<{avT-Di@#2j#b;*(l{;l2F#jyRexJ)gygx{deg+)mA)1e
zI9hm?R&3hv%Z=&e>2DwJyeX|ZV*6^}7SYC)OxIivzB<B|e*E#l#0k}kX^;N7u?Q^Q
z(lIU1xBr-lpQXi;M#H&3jy^M!OtySia_6&4NK<>@M!}!A_(~q0PY9g)er8aTxq*g2
z66ch#3HR6U_Y9HS-LSy5P=59Y&l|t$^;;@EC0$m$7P+9^eUbad>u)xCCmqfQNQlph
z-hS?;VBY0t96`2;iF5zvC^a6m`0)GX{@5NHfgk6}lAp0n*V)A5*fR0(+om8TLsO%P
zC$5~SE7-RruUXFZcb@0TisXkDZ~q5uR6S#L>5fJY)9NM5UOAL55!{)vCFOD)oBK{_
z6Qla5%KaOhq)dNKo^@eHdSi&|;zCy|!N{jOuYJthbT&4%`kWOzcf-#4Ma>buR=J@$
zQ@;t%Ua)RroxjcRj}LF%Td(M*?YetE=lqN&+fDVnuB)XxPu|P3IN%~Dcuyi!`0b|c
zw}tXz)X%tlnXbp*Chj%k1T*`;`TM_5uA17vYiaM6kor(Hj^uZ#nXh-;aXz2?-jnS|
z{FaO-w*!{S_lu_Z9$Pq3`GaG&x$676BXi3G7i&8Ime={oRi(DYHY{oTj$=Qp)7SLe
zvwA$&bn4UIDGT?VpLxchOh<Tg!^@w)OAZRX>sH8l!En9(#qLu}Of*mHEG*qTVPRG3
zV*g6#Pjjlnlv>J<)Mu<P+SOJ4b@{_h3#(p=%e<Q*(JpvN?eFeI$8Xx~-nVQvS7@iT
zV%J$SP1S1?1&rd0X7oKixcI)cO;S3S&*VKOr&sMQe9X(b#GawG^TUCn?0b7ODxalX
zv0}TpscG-~-~v1DeVV4xoEy$u7IvLFSwJHBnEHgt`Vv7^r#9buS+~Bqo<Hx`yw2+j
zj~D5D^xZDXxU0y}LODI+&YQeRL02;0Zix434UlQwp0#q)s>v^F%$Xh?WWRsKX7+6P
zh`taX;q{Btg*e{lZ9nr-$ns^x&io%n2_C6tM}j|cxc#u-5gNNUHfgt0s`fPxrX{|C
z%}bVhaEsX~1RH$}{&9-stKPFYVvp)e>t@%gE`D|6#slTv_}h=-Yo_c-i2S-x^pZ>I
zvf^9I=F0Duahs}g=>EsIFL+HNu3uh!W^eHQuM4ca6}gq_oS)T9-yP|ezr$~Bkjk2s
zH$x}Po+-Wc<5kmtiYt9NqS7UA-AHy*{Q6O}Q#Gr;R66g_gjSYK>*bHhx+-cZ_b6Vz
zd!Syab?RoR*5sdWrvJYpd5P`ZDi{0xYj~okCmo$^khIZ9B7{Hq<dOpl5)-ekYRupF
zW|q4Bsd?N<T&W)SPEPre#(TOgX401*7Yd@cO;+8nlc4;>xc2fxzC$W`8-3#W`IIL4
z%Jt5+UgCTI+|~@OC88XBYHOtU{uUKkn~MZLP1UwZsZX1za(iZgyU?juZrmpQAODp;
ze|kOemvG{?#zs$bn<GrWu6*;kHu?H#`S!K_M*2xsGK_7V4_Ua{<BcA;NXju5rt8Mu
zRhj!Ps7hnIi@@pGU$lRAw5|x;8!g;ava;#1WnGX#UXf~Oz-5WJLq0FtSKhASabNAA
zxNOH-sk0k0r!TA5?Y}%Z>aBU8%IhhArg*)+kd+=M=(u*{`Sri5w~2keKhr8DSmu7|
zbE#eD&1XwGPj|4G^C+8jZ(YoaQ>!f=R3@n3Y&sn`V`hqWPLs(^g^EvCV~ms3rrtmC
z&hf{B&u#q=&IhwD6c?K9>bKtH@2d4%4b#P>dv`>}U1NUyzWzO{7gv3)dZP-@^#fJ1
z8!YblGQ76-+v2YC-_v2WTwaIn;RZ|F7jtfg%xHSHRY1Kdui44k+bZVKrOv;*^ET~1
zsG_L)IUx5cYijkaGxpn#_UhPuSGW>AgCqQl)cKPq&!=y3s7MwNxxe8?`ICUtS0^=g
z%zu_}e)9VwH~qj1tck_bwj8V5S^wqJrHcIR52g3pu6g@&v+3#gFLwOuVOE=1a+&k4
z&Z!A=w9VvC?mNgaOKqyfm%f7?+iqoxEm)O&<h#)Y<)<whl4339Z0dfw-7$NcT|?i@
z#r1r1TN58_6WytP_22TYnI7v>JR6rSe0F|H(XW)BnmwPt*`B^+&Ac<|;Qges4ecfq
z<m+|r*H2KgzOti@+3(^h^-E_y9-C3wc4EDbUC)*?0^iRjURxf>T2XxX+pAAz!j|_d
z4j*FMH}}Pqb!wuHj{goen66Da=QU;92JybxXZ4cp9MldM2u$64)@fSS3*XlZ7Avt#
zYut3M{hEq!$)bCY)`aW|jPJ8&T96YZ|KUZZz5m(dp8AO{+cmDKzxnIT&MC`sv7>2*
zJ*(cKbt*US?(yF9@QA{UZ5`#VQ|C5wR=gKzmE689K`-LkQOmy{gd0{0rqAH$Ys=!&
ziVsU{JGg#Lx5>@R2G>9Hl^sk!eBgGB(9$n=9oZ^$dM*aFSihT-r&5^w`mpzznA53z
zAK3yoI(4K5J-WB5-ol)-xt!^qX4TRB^X%7VZLZ9j{LawI^xVBGB|q-yU8qyC_TXNW
zARZoH|6!uglU0pXpDSga-m~@&EDO_m&$<6m)<m8|<s1CEPiz%r=INees-Gp^ar#GR
z{G(OpPW8v;K7O~Rd%6F@NBT2P*4=RYAlu>cpl{Z1lkUugK}K&L7SF9OzMHY`>Y?nZ
zfuGsAR-Uf=(YrakS~w(U@<pz@#=R?d>MUNwzT||+f+LlY7Iwjp*IH;aZvUk;d3t8Z
zzi&TSuP(lI=;5Jhek?2UJLQyqZ7Hw2+^n3k#rJLf)t&ku56C|1SRi=rSY`50$-6by
z5pVRn9*Zvda4)~9;fKN2$y;u%U-Gs7&i(l|&0TrC%gXCpwx*tBKB2kv(@tLoPlZ&T
zo(GS4GKwF1^2U2Mavj+EM&uWpqI~Pch*h)iS<hW5_A~Kho8GHaY)`r8*iQ9Kcb97W
zqgK74_ekEID4{y_$+MR-cl0PqPl`_7m3=bfBG0mmk9nFlhpfraYS3M0AJDmax%N`8
z`1)t}yml?Jsi>SeKhAK5_BFSEalh`|+_!Oq*+S0K{_ks^ua@!I?EHSw6#j#+7cYKk
zIKMQLJ86l~#t$>TY&#&NsQCWvDv#NkrKR4Q(<kx>Ec?BZQJdAX?^uNJ%HEaJ4*hVj
zlX8^l-(WbY`p1{uO4A?il-sm-Q+2lbf79I-)yc2twA7zCAya<#VarBi*EI9fw)(2-
z3s20swsY=sW%mGwA0cl)x|_32-mx?NX!SR~IwzjZN^|lLZ<(>P@9v*s^CfTIx7Z#o
z7S0b#;wy`CUFrF(W?Rp!$7<XUrRTIctvl7Vx9$grwd&VDO9NIM_?CL{X2x633B{2a
ztB+{3xjpMX=@gawzdo5i`s}NXrnfZB=M=B9H>^7FMsA77fefBlH)*M=vukhU$*%vg
zPg+WH$Jq~$YUDr2@wZDa)3tssT^%TR<b*=iKL4gq<}>daA9`rzc<&x}qB&2UwgywN
z*vaEHCxvrtEcc%Kvqfs<gwI)9YurONsjAI$oPF9zfN%DlfT#QH>ik~Tw=u{*Rjn#o
zy6rHh>EZ7dh2h^hO)hL&Ixp&qo5A#F`u1&}|Bdxueb-sNquco+r&gh#hf&Px%a@{d
z2L3jb(7gY?>iWVt?<Pjn&Y1hk;p~%19M@)YJ@#=fG;~d~kY#zjY~IbHDXVWCQeg23
z+w#lL!=*fYz1QC>&)Sp@G0D12X(_4?tYDtVcPl@2>5|Omvdnuct7Xf4F0X88JL<ac
z%ys61+ne6MU$-nEt#Zv`)<iMJ!UCVA6F>Xi-^D4magp4i;&a_|r+QC)d0*$=oY}?4
zw%*<Itap-l&75~N-$m66e~H?C>XLd88M3XJ_5RD`MG+#ke}3Kfx;Fpoo71PYC+K`z
z|EIHFe9ytH>F+*Xo_TFj^^}*z>c`Y1SNu$m?2YP7?UethJw<}|>Yn>$Z8IX-Ya)K0
zT#$0#)3myAvfBb?f$g{A47gg)ceK9r*~(;ce9JwtU$fsQv>gjx&cpfie!YtoN1&1I
zweE}4AEj<><@xl>GUdZ*`~5tVvjrJz1zqlY|4*4^rc}SGqshA6WTr*xf!Ui*olxae
zDf#py=<VEZOp`q>%$>A7QRno&uf-OZ*DMKM=ih()%-L0Siyg}Yu54ZRw{9Enb5Ft0
z(p$B$%ezZnD&#&aGd*(FfN{mK6SDi1f23BJ`zG(tvt27-v|s6t8;9G|@~=9YK|-5X
zgr4$$GgsN*Ox}d^jrAv=I((`XY7H#--^sC0f9qMv>GiE4v58*mzq-u4cP8ht$lJHB
zDnW1DclPuY-wxJ&GI#a_?Jp*&Egr80Rv9`(UD_(uyW{NFZyW2l+LdQWP2Ak2v;E_e
z74Av(Cq7(!Abiz+!_y~|1>8TG-1}}J)1I~WKuG(-#78zaW@;B*xxe$^;ree6wf4>8
zv)XxKPD|AE`=3fSP13Yp>pn&KZo%@NJ02J3wjFW*&%V(_MzF5nUidwg6!o1xhu^KA
zG{skbX3O@s!KuQ|!HSQ!nKNWWc{)A5y>jk->lNXz*`K|e&%HVGW8|#V%=q%#)t7ud
z{1tZSSzSv1XccpK)_;))0eV(yol^_l>UX_-DD~{qZT8>YwU2jiU+`+`4XvMcd!89y
zj$YaI)bwP&TIKt9`F_urxo~H$7d^{)#bm+umQLL__oj+T&1U*k8J#IU-~05VE+baS
zGcD}5Cd3#2ef7Op)8v}pDs`8x&3bHQg-tqK{+q(>XEeUKl&NF>w~f`NPRQw>QQ&Mx
zeZ2+s&mVJ4ed-};Es$S!?$2-INuO-CRz6wx{>+V|@9O@gDq7ZTRofBgI_Z<?iM%Z~
zzeNIzS1(pxr?WFz!GiPhDyx-`_pFLKyG8AW0o$(^jQRPOW!;Krg$UoDeYEn7q`Lm@
zt@mdctu5{-c4~h3{cpGwON-=Or<Hql`HP;Kw)@Y`5<a*3sNN^6ynp{Mxccz;`t3d*
z4d3jp`E}fqSi3Vz#H#zK{>qP{QqwukO1*uV!}`}zy(Qs8-}wV;W)`VU`tWI&=gXO$
zm(;H<jtX1YxS)O4L8T44R*TgtKY4Q9vD&F6INSD!cR^kC=G+UmshXXKIX_KV85hSp
zC6Mzn`}_C*cfRd4;d89ta(TJ2m{dUB<C%KzoYkIh`ZPBpg_Vu@M#W*vzP>w>{~4^m
zB;KBW<@Jk$McJPI*SBy@H`3*akZzk9&~Wwt)KBXC8!ib4T(`@Mb5A$q5x@K=XUj9`
z+YVbED|jEw2%hASaa3LT02k*z??U~jo&JfF9zNhrjb5_1^P-2!@Al7j@%5cWH$$w_
z{TF6j;JmJV+<I&KsyNk*&>#!t6OLtFi-l7je+`b{$^Q6sQdFPs+08v#L80r5Gxnw=
zZ93+^x^Jh`|3wx*6ej1}22W9#%DB|L>+OX_J(m~v&B|4o>vzw7|IzcUUt5`Ot`uCs
z_i9IBpi5qu2>aHI13&M4ywGzpc~_ZLeRM*8b;TRb`ap@<X;x8!;?cqePaT31AAHZ9
zzg=;0#l7vK%5xd|mTB}V-e0_Gip064^QUS0{LS?U_H$;M))(z5wrBNo?SBVFt}oR;
zR5I&R_|;cC9m1zCkUz8K6Mz2Gf__(}dz*ao9>-Z--XCA{`Q(RxrxvT;+{-JwLdw9a
zSASc5&zJL^d#<g$&~t`&r`4UpeSG^x(|@Wgnp?Rwan~A&ePUN^|5?O$Nw9b>-}Xq9
z<M+)y<;I1RHU>&29!Pw=JCdtJdV12yQ+K4|rB0X}-+x-}WoW&L>-r8>H$4lxW5OxN
zZr_f&WV+nfC;x9(Oqb!)gEkIL@wd<A^*NWV@owv%xuf31+btmb)t6hvi%)NF{P?;n
zWx;Env_r3ive)pmi>YUGK3;i#`RbE%I`Y5O->ztltlYcRqP%dqnp*Ainfqo{pIv0L
z$u_3rW{R?>{Nzb8EK7FUr}X}~xA|lmSEsC(>;IN6p@+NHZ~CkCOYLXU236&A_Uksg
zT$x={J4yA}gYf@i_v^b;^<wfqd*5!?&*q8{4`E7~o;7>s9sT!}>;7y0Tv2u_=5pf7
zcfMYN87z-yU*$c?bZFbne{n*7t#)qL7K^QVntm{T_5IA<r(c+Kgk4x`w1we!h#aTn
zdHvk=XD8*%&JKBSX>U+um(vXU_(^N_#q>Y4NWK!vot^ra<LMqH@tr=m>hm03o=i=A
zo2)OaqxL$@@?s*lQ07uCy=BiLn?D;f^qhQuOfr<A#CAhKHN&+pt`D}S2K6MY;#Oa|
z^IPnRZmyTCbI+{0sqk~*qnTxSaWADVDPC*y(B2z#=^78~PLX&vC5ML-znDaFz2lwz
zqhx>dzq^)a(n8ob<!P;Ek!h^*I8ae<mf1H^o@FZQ=NmE1k<S+@T#)SUD!kci-C*05
z9s1RTWwmJUhs~BO-mx!?j_o^~xA2oYkKpToIK{>1qRiL2ecx$sCKYE;SGM5K%Mj-W
z7uV*9PmS>u-mz-_rB;jJ#$8uylU}VjmCfQ8n_m&ruyFMsmw%UaYPruiSBmUgV|Gl?
ztp4!5lP}Je&+z$~b^HYzSMvNc{s{r+Hu{|V+o3DXy(nthgLNnFpV)uj=!18s@u!HB
zCRO}xzDv%F-qbzQe|vJv>;7F&-z$D&t*k%av{O!AQ{J**;Z)Ajh1Kc7k`qqN_GV_*
z(bJwW#rD-~@c_>=*MnB;UiH|{E!^_-w0!y|wvUoe>fgxKJ^#6E-Sc^MT63jkUVU)h
zx`|bA;r&I6Z*_(3wi4szH9OP7CS#(izHa@!cVZ>4W1b7ME?CUQw!gkD_4~UuLNjkn
zcy?yn!9eRL9ru*hAJNituwQw^JtmijvrQnd<m&9>k9V4Fe&$y5_HdWjS2doSVv##k
zOmo`nMPDdQF?g?7zu1^*+WD1FpC016ykn;2F)t;HLIZxQT~$l96WMuqiX(qbJXo`!
z)Y@nw_xi;dl3F_T-hXy2Gn-`cr1x56{mNx2uYSIG&L=F_5I1S+-c8@%^6t1^?7Hop
z=KP1|?aeal6Bg)(rEG}HwDc}{EA>U#i0RwiA7_^Q5V}<}Pweuf<9&7YyS^vC@m9&P
zIN!#e8?)c*efI9|-yir7>$^DL-p9pee%)H{cV=vz(GlGu<&D>#cboY~B;GjgzA9Ye
z6Z?<-9j0EEF;Z1BqFd~OyjYbF`8xd<d8fTe?dQi^t5!>Su|JLxWj3nzTYmJV(5zIK
zMK(VyOuxMn`^ot8sr%Kdo~vtk<?4UUwq3Y<*^0W>=@I7w3+>L@SM={+J<HWNWW_h3
ze<dx?3!GFv91iBMo)BE=vGaPl+P`wiv}aw~3JawEhW_|>ujJbQs;gWks$be(3TVBQ
zVLoK3QL@KRI5pzG$+7f?`sbf_I9{sM*k}A<c4EohBW@AhhmW5$%-nKUYi0e7j%1x{
z^|w4L_Wvx+_>&P?Qnq19uySD8ex>c-o_c<p_&VGqDy=Pb$9J>YcH+6aBCf1YQdX@x
zVVcXwm-ADkQ`Y0;_s+J{Z!UM%wQ_fcH_vZ6SJ`qu+>QC@hOArB^X!|B=YL$ibM4%S
z{=nS&&4zY+y3HoKpTBrw?R2Z#791O;GG2Vx@A0gDU!zhd&xbYs<&!*HnOvf@Dh1qM
zE&QW8r8n_OaL|Y1@W;!awjR3n?u)u+im8MhdurEXu03yB1umF8V0f-<E_Llk`ogPO
zKLW0)=oa-m{F3d;sN0j0;kaMR?0fRp>lg2D3S2u&=Z4{fl`sF=w#YnNE%-pneL-Kc
zmf`l;Ex$_N8P{`OjLfrm+L<RdXX1{TLRHz}WosO#+?h1fnp0l!>h?uzm47^2u(#<{
zmDm1&<-XBo^Hz$o9v7K$Mo{I-;;3}l_iIWnAH1#iCg+!(uZGNqmK&mK1;-v6ubaGS
z$N2?ce=L!n!>py>5;5`g<+XgXe*_(#yX0-G$LCL9Z!bBrrr%jbNVtCLCwA5aM-6(7
zuat$q<}$k&p&Kd9e8B8)44b&v!|68n_nw&2bynHtuCc?%t#X0ueILB`E-Q*S;dQ;n
z@-U-Pf+^#hVAC1vrzojhyKVP#!*f%62Yp4+g`zCprz~~9E~(R<X#b?iq~>f#GpGBD
zrHfdWT2*;T_8ygClIUN_DbMw^UQ|rYI^ZP#k!`u6w^B8Zri)Ka3=MGc^gisUoLl#}
zcl-R47hT`4KfdQ?_XUTrchhwKbC`PMcCg&+2=$X<<Db*G#pqwn-g%wYF7p}~>&1m4
zZ2V^3?2BEwjY&yU!%H-+e4fJM54X4zLO2d5ryiZUX6xL~D(jXh{Jc4#=k**N-Z%B8
zJp6rbX_wALboJC*Jd|JH%QL}8SX$22a%s`B)cN<N!fTwQvcLB7-u%5HK(?=7tMw;#
ztqoqmL3Xt(CqKTmeQ#H!Qq+{wzrLM6FV1%Qw`ZZLd3yfqhlv*+e3N$;JGVSw;YxXB
z{wS`yS>+p_?aa$&6cC)Ww&H(9=VZlX)v`p(dg=XNXEDm<-`TXlw)3V+;+?GZ`PZ+!
z`{3MlgeS^H{M2*Lwv?M&K3zSrpioQk_veFFehS&K4$G%R&#HEGZoM9yKYxQk!vxLV
zz4PAue>{KLVO@q(x#lc=Z@aC0f6Wq5Vt&)Y(Y(6RfK7k%zt6tbnRE4a#+mF*%{-j5
z>t|KQ`6+$%XG|8(_grA#?x^)K>+R#kXSL*`PXCC^y0G5avZMdT3a#h^Gfx?nve_hi
z#ODg#ROhqkEpF-UNWQ;jokpoti@u)mcRi2Z6$Kegwb4lhVUv%PTr;{}(RawxBrzm%
za=qJ}51SWcE}d2quUg5vr7P;TQ1!Y8W!JrDNuDWTGP{_uuYR#8tMzHs?D$DG`>rc{
zN$B>RTy&=RXKCZtf}N))ZrJhr<N@~bzuI!^CG%cKoA3%>{cFDH&g;5AlP0MNEX|xQ
zzvHb!ukVKkMK1h*u2n?LnHL<Bx2t5G^yfkiyUQ{seV?RRgxqtz&+Qf7$bRJsgW>bw
zL)uKQy2?WZk9TrCv!2OXzxbNyd(Yp;ZEm)nVCG@T>z;VbdU8Pj>8_7~W__1Jd{q8U
z-Rbed@X~Z29vjW9lh>Af`W8H&iRJkl`%Albc-_i>w5@Dem3U_3HHXBh2`wMxC9GBB
z4j0Uo&d5&_dg5~8&Z@1#vpd6{%{h9W<+bj?*TSbQ1sYGP>36KX#<S(l8dHV(=Z+7j
zsb1W&?%U&O0aHS_&g@@y;d{B*{3rD<zv_x;7$3Q1@^$Nv<q7Y<)&_PgzQjK%sr}(a
zU+$iwUp!CJ7nlWke%xT2SZvR;^~Sbm{_X}VcNFef$8&+j|DKk@h8~$vhc2`1ES?QE
z8{WP+&7G~gVRPJ5?sHM~+n?>|f8@Mbc*WiNtp6($Pg&<5JKuD2{cOvxDp7CWeyore
zuIO17tTvhL^tDq;uUVJ*ENeb%U3M-g<ci6|emm2<^@lP|78mWYelKz@OIfnsu|~n?
z{!1RuG%KIbtCD7$^tU@Wbq9z!OP%}E9x~+xS8V)eQO?uLnBCRt9<MWtDycrrZkfSy
z=9N-kSG_^^tIc0FW;q0D_5A(EP*%B4Xiu8b-y+A^EdA;226am-PcLT8Te7A{YT{w$
z4eK6D)Xn>HcD`iQimdN?r3OB?ybBNOzP}o~p@@Cy%Dd@yE^)Gl7YFutN2ec^=S{q{
zIp(;8p6o?oj%6kbrv^0qUA*(-#N@*wJC$;8><+p=QG@qkz1)+1@!a8NHf49`e>fPK
zJF{TN%ne0s^;-{i=k~=-6Lu^-f7w1{@}E7;dmJXZ#YY_6>HYT2onZe50fC4ARZkXh
zXID~^uACv=ciz0ENYzoSM*oLsx)Y1u+1*~Us%5JG#lxQ5&S?I6Ftl>k!(itr7m{vY
zJo-rAw{O+O$E{wOZZ-Aq<PN8(8B{$pIJd$e>-xRao{3_+X8JaN{K|R6H+A;*rG|z2
zC2RVv&q|x0i(h+WkJ=^Gyo35;o4t>|cXEBE>67yG`kn{1cey7Yll%MpR!HEJi0>|K
zhi^H#XqG76(kk<9nm^n2!-o?)zcwbG^wrd0%sis>BQM}twa&KJU8O>&>gz+|B<I@C
z+4(Bt!~IQduhSOErWosaKHkuM)@s992VwUKao@^wm#zI{v!vn2io1aZtn0OVGu8(y
zn_Sw?aDruNm+dxAX*1P1?>2~}ZOrw*>1TV>>D9iOk@uB2cRjf>X^oi3ozt>j$35@z
zeT!&+C6@jF=g9?rwznVW)vA1}S#;Aqr9Oqr{PT;n2^-&@a=gklk2P-RL++IweKVC#
zc<3ZppJkkD&URU>(L^(<>W@ZqbcX3ehV-J3E!Oj8k8Ykn_l)GOZTF0SO=o{^*0XK5
znYD82rJv`8a#p_1^H7S^zwvnPf`i#ilUK5CPTsEkiGi=CAmzO99xVx%ysqEZ?#2Fo
zlU_ctUUK<k*}Dbj)}Az870&M#v^f6hR>m;Lqw|@zS8%-0eSM-bW%WS~%{^0t_IvzX
zT(UyiuWGuJ^~3a{*~=?fTsLK!_FVIKi-~?MX8PPq&-Co#&TE<ruT1g&(#|Bh-d%WG
z{oOFJt$i`ljuBTo8d<o$e|gulT+i+8ABJC@4U62CetJ=_7&t@N;rUeio2glqY4dvf
zuk>eB`g}ZBwS23#;NF>?mpx)K>R*d)`x3P}x@29+4cqdM9#7JYucW3kc>1(W6N(W|
zx+(Kx@zSta=5o9jCDU`hyb_uoI&tyS(A7d*`3CH#9e-IF-<lS)@$n>g&#us_u2UL6
z6ig;6J?%~0q?Ue&rT*MHk1r?HdDc7^@l=0NobgT9cfy3%F=cXx)enA~^s0B({i#ky
zr+FJDtoyoj(v-q)jY$v1FFss!#v-t@P0i`emcaAob~Bg*JBmt#{c;7)9egsC|Mcw?
z#@WZqpTwx^DTf{WwYRg%p-3qBnMn?#ZeedP<IVF&CdQd?y?FM&c_NEr{rAg0TLR0H
zZQ5rX(&%DcCw#=ft4-w5N3q4T+pDLjg&pxMH=Ea<sK<1+WoD?*bMcKw*UY%F{JX!;
zw||bNt5QxhE{^kAeBpxQldLDPM;XKB<u6Gv{qbocmwf#(i7$7HyP95HQ+mt4_2hm3
zpB~X+K?^zCKR!77J87|#$HeRBw8I+fB^BKxSGIm}IV-AcX3VX@p}fmklBeiFnt?<2
zOSXB39JW0;x+P`r_S^bj6w6%p_UwGz(x&TD8W6op>5Q50h7yfwmJ!Fxu3fNw>%HCb
zbiU}{u6>#}xi<&iFA$nKzcfuyJ5}?Pg!8;vsgq?gC;!p^n>gpSPd?XGHt|=JS=T+{
z@~(e<BZ+0-4Ij_U2W-*Ouhf#>p3C)~uvlDc*6ZVm3IP|Se{N;Fcz#E4b;**Q@>~nr
zr91e&I3_dik(P3B&C>g4qY|1dQ1tzir0`}5$A{VRcBx7S_5Gin|ICnZK6B1xT~RRy
z>yTWjl8T3iShou^=~jE`>%ZcEx4H1x|CBR7p3VMRUs28SrI7u<M)JmE-e+$8@Y}AW
zTk>50)2`EcrN@t5m74c`3#TC0)uq|fEWg`rJ-5rcU|O(7)z`wSw-?qr=bk&}``dKx
z_qE?$e^*V45MJ^@n&+zw_q}PCniuNUOyhB0QTi$8&yBFpYuj5IwF`50{FouuowFnE
zU}N>Z&qppXJnxOGw|nj>^WU@m_zm`xt3%w96YB4~q+GeUQu^k6o<|=ZPHZs#qcJ=1
ziRn|jbo-zT%Q|=c*>{WIMXh{kDDZ2-v)RoY8g<pCOW)s8_^Dv(zcq&SYk(|&v-tD&
zm>w~~Zv{e}rQg1+s4f3{;O9+?*-O_S*YLPmRDL6QMMda`vyTd2xZkPg50J^pSSBZ1
z;QnW;Ov{&ZWj3mx(wL-6i?(mxIg8`(a>wrX8xGw3VSeF@;5nHq8{<S=q%)sgKQ7)_
z&U@VRMEGslWqhst>#i=|sB)fj?WRi|J<F7{*Y|RK@O|0r@~C)GMBvN__ACvr{`Gm^
zqcSulqOMH0eigr8Wt*bJGU@46X7vlR4gUVSvbbmQlM5R!O<Vowjmi71y^n4LhuYlg
z2$0|SylrLIe7!X}MWqXv-KM_ZV9$AUepsVf&()qk-s^q8Iq__^Seo!n!0lDy=C2mI
zQ7dFjC*Dgml2JJNXPc+;w${C;-<Rt~Dqm5Ri(b>z{NYVyW!y{Q6Ek?9T;kiy*|g5W
zzdl4v<SB1qvf}J3`wSb?+E^B>omCx|XfKiS@j|fXiG&+GNzA1a-KCbASS?z5(@wmi
zWzpPE@(&~CJ<)UOlXG)z4k+&_f5XP;R?(m0<0-iJoNwsVM4_3T36EB`oG~%`+i4M&
z@#`on_XB;Cdka7C-$;!9lmAUD+RadSTh(p#^Z)DP8T92YJZ$~{aGy;LZ<fBN{Kt2O
zeC2Lj>^--RJNIlX-nzX1#S7_<V-{aC{g%kEF4w)t9p-TM^T$JzcYkaAvNFbM#U<7h
zZjItB_P_h5=cLW4`I#WWdce?p`l4eBd+bi{EEYOZuq6Lv@P|Kr`=+k!I(+c;2A0$Q
z5089bYONycey{$ViRt=`h2r}QmuRYAUg_m8{PK113GNWJg)jBf?wegWVfXdSI{g&=
zU2~@RJUrjmc5K3oqjjsB-!bQ{y3Err7|_koHKR3aV{`KTXET;bFVahpT&&wv?Iq`X
z{yxXCw5`(?Hhk{gnwB=Z<K{{4MbC3qb}W_Re`s4I&)CkoHD!)SZ2fAhom+3V^;}~3
z+n}4;zuf1(o7lux4KI6&3MMSk6?{Bj?da)rbD@3ey0`apzg#(8cJ`hn2EUDEKUEyb
z@>jdp@;Ain;G1nXVlrb@wuB#?;XQdN>!;68RKib9yS-bj?5YvN2FZTK6o#f(Coc&U
z{Md2j2djM4j9}l?s!KT`>lf7;)n9)8hG$oSfzFu^6QvuwS4EW=rU{&LdFr-^ze=}q
z<(ot^^JU>Rx4xb9srC=iyRcTrV{LE9@3y-RpI_J(&aL`-<!)j7ncImw*cQ%k2x;z*
z%6;%?YtyFpwKaF7{m(cpFFajXBGPnMw8V0D{v;^{v5bppi}i193w)p#W+JyQQ`5Ho
zMyEpUVa4+6jnP5MOAdZjeO9ij-@<+3mmSm1tsRR`-i%#mvvuPR>4KT3oR-@6TyWax
zyH9a@ROvJ=w#N-0W8Pm<)LWs{^K%v3B6cT7&2|mNi|(%*e=z<1z3=TBm(mAUx6IIH
ztG<_9d%l$Q(%0Na`>U9ih}nNm%=^Z7Eli1Z_Jn$tXHD!=(@$$Keq9v#a-Lb9gk7Ge
zwaMY%D&cA~xaM|L-8l5zFk$CLqjk%K)%S%TSKzMRec+>wQ2QrNuk}KCDd$$##jX8u
z`XqDSfjAeRONG40R*GfCet8xucgyv}(wK8U+1>datO7#18rId?K36|z@XqqaJpO&J
zVr8`MvL_ULsJF?qJ&-oRCW<*oG(&s#j&_v_<rP1tMVV&KYq@nvIcoD$L+!efqM*3%
z=MEmKzVv9*bz1>t9^IWw8x9z_AJS!-+c?QLIkqBK)Tcu)^-1-?Pl=0vsjfP6bibal
zQ$^^ZK9SoRDG!tiV^vsBaV^gmd91$H;^FiESDsC8KR;#l2^p{Y4^NN070Yp$Us$%v
zntj6T*;l7a>u85n^G{BS$v)6gzbmutjF`O!TgQ~XQ*U$2@^@%vC2I5cg$H)rm);Yy
zsdiyrrCOZHsk86atX=;ze0tbQWuuIzipu%6Z#cOfnY;e^S-Xb5Y;owXk<&Quwa;a@
zX?)Vw=)<SEd|&)GUp3Fly}mb=?e9{}X@=X==D&KkkSE2a;$NKV#%IBs>pA<M*htH`
zOvsoLbWYt#Pxj@fkN}2b)=ih%=lv8DT;!c;-uC+4g;Ofqj7pyDTyRo=@variW%+qd
zYm}!PILxTIarNx;pVq5|Uu|>TU&y+MPd*{aB4zpX1&3xn>pj%y*z!SSQs?iIdQn?B
z#;|y?Pah>BUmsJReEZ$s<J%@_K6)DY_Tg2b6G}l||6e31rPWGq+4@w|apUSrOPTdw
zt@A~@obLSEma{luSwN{!Ca>-R^-m>-Ry=)P89rCY@y+vtGbcFB2-qqrb2fkGn#kMB
zmpco|{ordi_`c5c_Ozn&Y~fN<zZG}It@*53pOG4@$NE6&bg@<7)`E>E7-uE?cM_3~
z32J-dE5?}5$1%O#G0E=^`?|!nAuHAxm5O%PpRikZHusDFbVIwO|79|d&$7y=xn4YR
zeAkr*iH%$9Hv8yVD%UURGYFdPEU~`vxA^4)y+<!y)mYZXeb*u&_-feJbxu>I7bZ!|
zZ?s=>@<Dy|xxLPH*-Yk_juz<p9$5PP*uVG>n)Z+CGJCxPt~~s+p*Dgm^6%o~zxF+x
zUbybA+QTJGOr@bOTDO%?+4A@1+gGOl&+ay!RT{zHepQb7iTey8x5ZyQ?rgo2y~<+C
zwDarFeYcaE!LdpH-uYiG4-@|!SakBm_9^wff0bV@F1mQ;L4j!f<_~FU{Y~?0{~t{)
z<tr`-+@Bt5x4Ty7eaZZ+sPN|*7NyPkfue~aTlx8xc5OCU#kwZ!?}=r94DVL+eCZYz
zw+Y>{@PMn^2j}x)Q>Fi<U5;J8a)<cQ@;eX9UdX4r{q~prCCtA0y?WVVzyFFg>^%>5
zn--_LosLX=vcd3;&+<bDw$*zY{bP~4HgDFBZ=PMg$M;{HZj!3jSU3Ia*|5_MXF4|C
zV!h@*xoD}AlA6ncs3&O$4z}s|+uyuby0CrkIxpp&x36<|`pqc6y7oXh*W3LITeMQT
z_|npTu!SFITA5QXuEDbNe82D9e#1Q((k{Hri@UaOaZ}<;d0QF0<eyg7O|^)_^;t_F
zZ8SR>{b^&X_GY0S-=1yX=%>*4+u$5SU22c<Jl5w%&lUadPSWzOu?*KbUUU3J^4h<`
zlGjDopSo`t#>;&0lKT8#J5+9;etVJSSGPPnOZ3O1MGJ1sOA6MT_37;AmMPmCzF(gB
zcG87F^OXFiId6}oB$VZgwl)9#xSOM?Si1CB{rWfmTN16FFJ5Azlk&AZ+s1IC<wWNP
z0(tAUF6Yhe3%R}dOGn?P_AV~X-%7`Q4T|Nn8o$l2lblh<H@%lzW!BDbUzh)hP~lys
z`$0R;Jtp(9=3Ccg{ySD$2p_ziboKtEnzddt8dlaF-n*OkLix*UGv1uOWV!8~q`-sg
zUTL3Cq`91{zqj_l`iT*qDsnTlo^X6Sd5cZX>Stj!Ki~A3so|&p$^X1PyJO;1o+TbU
zU;P_x5~E}`ocYcBz=%sX=fp?98M`lX8>nrH-dzx}X&$r1<gCgy0gpdEm{THmrGh>D
zpln6)t*eDUj&C`8BJP00<kv<|v%bHxN}KyvtZtJ?(VEJylG<(cW@lt|3-<rb$k4E6
zi;B0Bwcqt*#tHkX+-=Tp!|(k%F^9wG;pRzt6Kw=@E-W+EvCk3S{k`@&^X+df);~CZ
zE@^wnH0_+)l81Ly*FL@^y=GA!YepDnUF*tQeN1Z8k4B~KdeGS<F^O;a{3!(|`&XyL
zGE6^uX|Z=*bMK?_Kj)Tceu}Q2_-vt3dk^am=gW2`yID_pe814Bb8Pc*<DWbcJJ&dD
zv=a;caZPb+r1=Rm74B#4_Rr7FVLtidji)KUVnu2DcE8h%iS?&%6`81BsDA!NBrdpE
z<V|i{>w+WV_xzflY$<-xxuAH0)jg^Ib5=4%WgM_sWA@QFogw$L{d4KaOR<7KtLx7v
z37Ti+T6_;LoIa<Zo#jd0vc&Gc6RlSsa{kfbv$~?SA~yNrssHkyv>fNRi(FNS@s;&|
z<`lW5JlJgY6FIxZhlHml?mbsC;altWnVTD5{w&d{|KoW5%-;U>^%WQM=P=IPpc$j;
zm@?zglA1;zv3X%f+xE;6GV59{zvqK-ZrDVddXHnj-}3dUhcA3T$M|behT&}~#~s_#
zs=}hXPM>Mot;u5YUgwYgnp^92etPBpTfS)G8PO+<RbO2Tz4K1*UTN3+bmb)`wf1h~
zU1#}yOH!N;+4~iX%#SmRaBF|dU$e(ML6pJs?C;RO(c;zSHuwG==`GKRJ#r=ZpaFl>
zn>VL)KU}E)Bg+%*VW;G7xbM`NM?YkzbiQbg-^Y~eke>dji1*(k<#n?XUVNQ(zc=NC
zN?Ok`*&y!kWlyi@T-tJwU-7hx%x~}d;B&rFjGzBin_O;wE#CTrFZfcmy>TYHrKY|C
z>*}kMj=g`lJmZgJgYj0oXVJ?99`#m#v=<e5vinKa8%^09(|W_Z`&u+U@8Fv47<}RE
z`?c2-+y(!2i3iCrMn{Bxn5jQ?zTg_RF!`o{*Ft+I@2tt&yMGmPXhwu<drZXs2Nmu1
zYtBxTT9TO6n=O;?JFnottE(YgEz6(({?lAswVY2joWD}YkkdG2UDK&t&2p9lRs|Qd
zmd{kY`pk>7=dI2!Z}YwNl8a>|&z^YpTg7+V<+rID8?*M^;p~ku`_Mc8xw$~atCQQ9
zv=-)m{c+s7XH~PLdad21X<=I$%}?DD3hA34wcKg;TG!Nc$H||Uy*jUMyKdskDdvXn
zx5&v!m`}ZTPU1*`1?xp6!)=V5s(l@ckKB3pOWxp0!haKsH3mry3-mLknxyL=?N$8r
z^`XH=EwS&1>b;o7CcTe~cGHiDn7-%QkLjYv-`DQVyYZrD*1YPNO?SoLEH3wP-1p&U
z#gBgB7f(-qx_aJhap&EY@yz#YgC5uM**J=_MNO+Zv3Odi=_2_roaGA&xBN2?@LB5e
zF2^;}u=4GGuczIwF1iWzaxQDx|Nrg3%)t8o42u~SH(b8HR8W-<E0X$Q7n@YqRa4LG
z@~7qZw+sA?(;nPd^WvB-%Zcx^L(bfbsMeM``nK!&UuF|8$y4#pf07$rw`9EMa4R;v
z`MFZLfYo*r`_j$xf0?x#u`{s$6wWR7o~!p?W-ddevW7{wm8^APM$?g%vD3HZAN$bQ
z__S+l{id*$R!?-YWcxkNL@twVyDyvK$|)$|`QLF-)2EBp*Zvo7=X|4(qazSF>wC&6
zvwIROBE5ec&ggXCWBAO#+&}%mjC^OSr;=ssS4zxHd%oDb{l$fS-A)d+|EKH|j=dly
z{c@@Ks#)H3TW`Nw{!aMn+yvflAJV2jRg?W!zfxUjDhprzERBZWSHH)!r+>~=S$wF#
zBKjul`A|_l%hZ{6TUcd8UR7y2%5V0K+i^horPt1b8=Lu=pG!ZvJ>h!*x20XMT=`M=
zjgMPCecw_yQ#<$!C#UNIt$Ez~=MVRJq#kQ4tzGB8<Y6HfPr!$V2mUHZ%ALBXWFZlC
z>Q7|b7mjZerWee}*k9k~E!py8%9$|7c_-&?e)Id}&HS=CQ$5bUsTP0vJSFGO=gf5y
z$C_WC^$g8^5)`L5|Hi_H7hg~Eb(P47k8e10G;LDii8o^V-1Lvli#(GpXCd6c`&Lez
z^-ZGf{<&*&&-~t~ec<~$&-H6<-Y`j@|JJu{q6>>9Tj3%W>6Nd~2eow1QLcCIy_+Ui
z#FhUl&Z5y!F34|X)4vU+MXTa{eqNZRQQbNHtcFrvV2^ZaaGiJy+u^`s+lCe4UK0-O
z`O~5K*JfFz?d>xz`#Cz|OK&oL<J#LPTV8O(?DVS|y{l7{bs8Q{^?l@(vGT#n72Dn`
zZBlm3uzsYqXa1z?z8wNjPHw)U;r4BBeL-be#Dytd^ZeJH(>>RHG&=0(JEw!IT>Ua`
zvH8C%p8l%KuAcAX%>|EI%@U^Hnp0n;zv*jM@8TV==KnLO>ix=Gd1^YN^2zNYIaLen
z_GL`Ib7|M3#b2^*&MvB5>2h^Wde=ucy@eU6l|9o!ET^AdCG5<zq2^N9{6i@}M1}T0
zTFUmQzVGDG6T5hJIM-+$IJQnk;P?GWlN5h^G!;D+*Rp6w$A{LHExUQPFdnwpbd+^V
z=<(~uUtgRKnD-#g?%2-n{e~_a?cN8jyqjILT$GP#lH_k$*H!GXer5~ZB8~Iz_ZA;A
z=44V$D^25e$*-NnB0i6cv3OI?I?a$nts*z2Oa!LQS@gPI?^BS>{^b{*du_6NqHCMF
zRlvT-|L&>hw*-%!RdS42%yY2#9^;G1iKf5LXB34hSm&|!#h(rMe%p~P$Fy5X+3LZK
z9q)ecU$eVq@yB=Vliz&h;fnY9Xk`9^C8p7Lec=9o5ebhUOjBNDdTz~?#I+Nv7+y!;
z-_sk;9;W=@Y}_Y}wD0vz_hz5y|1I`KwQknAKV2t9x=#o?xNUfEH}ztp*GmSKgN;S;
z3uZU>3vRj}Z?@z8t?vR~#W~{rI?sGPW9_VL72$HNkm2=JW3}IJV{$wl%%+NU=PX@q
z;u7N)^2_U{9FtyFhP?K#j<oL1{u{NS>Wlx2Ro+?@mus=n`n_J9vo+_^`qjUVmD{hq
z=OC%HU0Z4n6K~(8c!$|hDLT)xdeyktR-ef|u;ixV!F7(Wq*oWtxYY6CfttK=p4qJ@
z$7k&Q<6AVD^_#c&`9JoJdxdsZRXIp>EHpj0;lPWR4_Iy~IfpE+JH{<^JFD%;DaJbA
z+TH%ClKnXzGHx-UOLz8eKb)m^?&6jDVi8eg8yl+!cW#;QDz%?6=NRj%bGu8H?#bX-
z*n6bw{-o31nnxa}on3S9SiHPvQ0o@v?K+0K?pwDlXvvV6d~>zotaD|-m!~8r@8sq3
z<c)rFmf?ij-DNI*=5_N^3#BA}o^pG(=fow`vrBla)*e{0aHUO6`C8^Jx9_Ow^q4LF
zYyGr-{l3iydN%SDgm`sZnRIAgkW0Io$JX+zIkZ{zX#vwtAKUMbnv=5LB~_L6{I5Dy
zA?r8AKjHT=ru{8XyO?VCH}HH5?|i}Y^3bU*y9-l_X0~2u@Ot@KSh4%?ky`}^X7Pw}
zX1RMh7cM+pxj{m^*Wyu}K<NE{x3|{y1Xy&$I=H77*K^$Po-6&Oob&W8PbQ_Br&0I+
zzG&00%02#V-6LIzN%8!PnD+U#c4u$9kZWbvP;4lFx_0)dt!W1jY<+)WN?T#p+j$BL
zOTTwB{*gPj?(IXqs%fQaQR*vhE2~7Me-t@=Xjw<h?$V7cW;f>4oQOUn^q`^itN$_0
zfPe#^=BOOv$hvv7Ud67;H&aRK#;qSyb2aVtwxml==$d|K?d+b6JE^ws&#1?6TZH|v
zXWX!C`Bj@wdm}6N7Hz-!A>oj#lA?$GwZo07-8p=v|C{Q|ofIb;o)y=KY1TjXP^vTK
z)YkW@y$M_1y?f18nmyU+W5>(8%mvaVb*he$arylhljW~`s#e}7bFF^ayv2V{pGkL9
ziBZp(Jx#Y_=A&cXYa$jgE`H%4yhCE$lk;-17RT(q|2}eXgM@6WQ2%@J41t)bZ)W^E
zmtqukFiY*{qz>JsDpqaf@rj+?zMn7IJlrg{;*vvz`>lh^O17?hWca_a<jmac+WA+f
zBuRL$ODQ$vSF4@9#PNi-UV%lFLH$c9@l_>DTMwjFZ_0hj5}JG_lt-&<wg3DNueffA
zNG|f%ap14`rm*<B)b86R1sq-W%=5Mx$+$hL(0t9izhlkT@ag<>onsQ!XUj~|dc0wC
z_?3yzI*(ssnRQvDw{BbR%z1)M0#n6=rWrRRi>0hvCeiVK|AXc=t%twLFvZjbhkEGM
zZ`gGD-JG(*Pt|>rjxpZ$+F>>8yA>ZU{vGI(J@36w1WU=G9hYoAf85jC;G4ej))^+(
z$3ih7tj`a9K0nPpMx!e{#&(8rUCiIcgo?+J@8168KGJ=p^0=Wx=^gL4Hx^!b|Kkbs
zaYuJA8Rwto7y6&B^|$6vJ!1TJ@|Kdqx3{WH>Tc9?A7I<}`=IUgUd3GpTc-9D_-TAG
zep1eA)%EuJ^tc&DTenq5ugm&6_w$-Pzu0cN*%=8nUC+O=ZAaU|6?I3qSJ*PIH-7&0
zZNN11b$aI8Qzomhd}gc@uG?g{=+56G{$kIR8or+@x0SjZ<ud2&{@3+SQ$?c9H#@{n
z<O}5de|47k>^=2MkE<NbN&IiNAxp-0ssj7hV|$!-?Oyr&){Sy+m#|qLiz=pz>8o<|
z?k)cD;lTX5<1gyj9>(18e)r+!Bg<CfFIJ1v4J@?1I1Fa7xw%SBxLKrn^r47Kis{$6
zQ_lqK(h6KXIY4xO&mE3as}=9eUbgYO@BzzDdrxcby&YfHAgh^u^FqB`<6jBaoosR2
zlAgJ?eAcQ7i<<gIRQOSxg0dR_m#4nB{vPD)n`mm)e19pc#`msov3J>59i6^cOVYT~
z!ThSj7S$#O)9r3rcTULJ?zq77p)~weJ*TCuz>d$;l>Qp7o8^{u;@F=jM~bE2Fh%d-
zi!{&QxNf^Hhxam1gX2!$JpY{gT%Tn4(0$t`qerK7bhn$tUKPn(`oT|(tJ}_ChWK%j
z|II=nfveUZTgUb0)g!43CAJp+_bi*tjW?&fkKB08#6I<OidvfDlWE?cxT+=WAAPNu
zyKbqVNaWj<^6ds2HY}ZHyq!Pld+Y9P%byjmaAvNQ-YH<d)S%Ji&i8BgWxC@ob{yGM
z|8be&6(2`Smq~jM=db1sI;s86igkO^t-og@{tEI(9WmEE<ZBfAP{?h0@Rb=QQy!%@
z9kX5X&vu?<=+On|mr8xQ;<T{&X}ZmfpZ_^qy}L84+@D7Axo<gh_4_^6Gj6}+pYMDU
zZL)6VuU{{A8Zr6Guq`@ec<Rg(gA2lU+7?x&tG`aK?^>qr5+#-39Cexdq|tkwH%<Fa
zuXR1~O045!(`RX+ZIPC*Uk6(|eSEWhK^vFqyWg*NEJ%o9sNC3BFvUY#MeD<zc(LqV
zGup*(9=Bd^bnf5PW5;iY{_dY-Bx9YhbL;0eCNbrC)=NYl$84PFyj-c`zQazx`_u3K
z61UqV?)8FEHK(qA>tPdFD_s@~ZMKI&RlL13-Z-DSrWPxu(y6AR)oI%{dGXZ4+-F<T
zPkfWQccRdB=i$Rg&z-V9xG2VqBgpDZ?KHLdRSAOIvTyeb_PHoMHeu1{5S9{|{?J~!
z{GIE*1n>1PzOyy#)3z1fnJsXj;G?>~XV=YhYco%!Z&Biq7miL1tG9{PGMN1IkAJSw
z?4}#S$CWgyKL(o2lkY#zv7%=44!uW#^KWjJ{gvv_s^j$Av+%<`sjj|H9FreUwCvjQ
zX3C$r9qx^Xg9=OE%RhN-ZT4dKg?x@LH!~7mWi#$Ac@UszEHP1c(T{68J}&>gTFK@H
z!^}5KsuAgt{%aK0&3NTvd|%F@{@;p*O~=xe;~dZQ9}43>`MIg<i}cRO`&|zur7t{)
zy1Bg}FURtv7gx#GecUq+J3Kqr_n_BpdC*^{kPAPx?BgOgT|c#;E>WzD`(+2~E{mmB
z&8^xe7d^VRV)0ylb=3#Am)B<BC{5TY6Ls%~&S8O>t#ScrOPoE=*4FG_Wq!KwlCM?$
z2iDb(-(OUnE~5MCyOPutkxfc67p#xCtQAVxtuguFRCbPI#ede9h;8%y;Z%0$?TZqX
zuX9bc&nPb6^)8^xHIe_<<uxL<HD{s~uTRsycvgn<%WuA^&z(-aTWB=x@~P?zjmnMD
z+e11<R`f2B+q|}y-#F=~HbYL2z!RIK#?!$criaz<klCqo|0K8ewZ)vO5e!XVJ$wDj
zo1GJr6DQn^+QonW<MZs2bE?<hE|>ph`}CHx!|qN-I~}vdJKlELZ~11Z=AHIh!Y)pg
z(|f1(BFh&#p9O4vmmUoGJp0k|Ehi$rw#^Z~wmmDGf9=z#^`0Fuc9ZlcXe~Xz)#ssv
z?l+}6PNrv7FX}JN5c?aj@UF6ruFw(tGxLs3^L`~NY$n$4m2UPk=1TsoJqf~(AF_Nh
zjgNmPdF8$8+8S-ScI8CHt#fTN-*{&oYhRX8c>SqE@3GIjWOpiWG&?)Tvtym?_Ig8x
z?rHKNGbVie_G|irV&DF4{iYAHybphvwDM`w_TEdoHP-PIZa?NBUjJp`o1`y4*mx`U
zES|G%$J@CX%bo1z?`Ki7jGsMMVO@{Vk}XBi|D_op`Lr<WL^u8YnD@%;+T?#+v7Y=4
zlRf5}nCE}m^}u0Sm%U}R+=n?k7RxSU*l23Cb<UFGi(<c?v)IgV-23K)x5`Z^^Lm7H
za{B6DUpzV`_@VCc$x6O{apz|ot!HM7*_2snE}g%-G3MfxP!Em=jm$fP-~W=7b^dsM
z<pDkShL8hozRN-nh`-qqP$$H>FInKw-btrjZ0DVSe6RD;g<_WEoicTHY>jJt?bR25
z?0&UGV@+l4$J?IbjS`_b6Su|xEdG2pb3#0`@{^EK-=?KIT-m;!pBM0Wa`2A%RXbzq
zi}r7iE!}Lx|L?-hKmUZYKECq%YVo$oFJbEDB`%w*b{id^#MjW=t<iWRm@_Ler*r$8
z)ZLla_XnF;o_wr+@J~YV&T9<Eox?kVr6t@iPCrxcsp4K&oapeg`&D4HYbdwC4gtft
zVytrf_2)B{_%>&@Dl%405!^q?_d)p4Wp^#7OsxN__*Jf@?fjDy)?Q5SU*8hmr<BWf
zxasuMR}s?x`(|*2nB2Rd-?QM7Py20^P3-lb<2J=`a`!JhJ&!SQjh^y(|Ds9FOSh-r
zDw-DmQLyBl>sPfU+TTnK=l-vel<nDkYc(I6e@>@&^vme=zvdkM@iSNFx1^@-p{L=j
zj+Q#<$G6{TtiN-_B=uh9k1KiWubrF3vF^KYn6Fx+W*DQ`3ZGein_u)lyL3n5wGUJA
zx{{3fHu6)wXR_xCzmHxty;gJC%<@HRrO&L~D)gYYo%dzU(I}7g1y4<#+fHh>Oe(uD
zO+VS;TCi_K>9yO>EjZk#?wV{r@y($}`QMqPC#pT15|Me|{Ef{1`kh}scS<$RUD>4I
zc)_|iGpylOo!#6kKMyioIG^9P;_LT!0qv8NTIyRP6QT{DeVxEzVZgcWk=WkD%!P*0
z*O{ki>^t?&v~B(M8iU_KOO=-$3Vv10u;F`>m1EWWJf8Yr{hPn7liBIt$^3Jw_kI($
z@G@hi4TWKk=iQrmx%$D*ndfHI+bv1DeJJq^_k;7d#Wx7Jad&hdH0xJc_;uZR-+7h}
z0gLTkrv3_RyD-nvu0ow#*XVEN#<J&6H`~vX=`db4FZRlXh4%}R3*MWkIF;<~XuQ_=
zphRJ#w2Y|a)Y>JXJ5Sn8uKxSvH21Tu=PaJI2ye-~@vOP7@ZCKNuGGAg;*z4&#N6qp
zS2A->zst)aynQDl#};>HV@u=d8<kkpm@N&Br@wl`Y*ruRS$x|~Y~Sbb2Qz%UvcB9~
z;kDFjlkV-0YTkX1bnF6zR0<F2#^l`GUw7|PglB-t+m&Y$PdP4TEZM(z|97bci;Sl(
z={)D7)Z4h(d&&6+Z-jlH>lj{AQS%jk{J<kL$;jsQ5v_`8w~koVyc2rvbAE|pp@sTc
zp?u~uQ#;R_%n23hsaJ|RSZ#4z<ul(oyNQ}SMn(?D4+u|nVsF=&>9MlpyaunV$}$HJ
z&Ph_NL0T#66Lwuw;E(Zmo0IgwNs4>Q)+WCLd_LP5k7dmEP~X_>wQN(miNRNc3mG%s
z$!;(Z`pSNaEsd3%<)D@kvtjSXPNjoA-cw2})KpGoy-Ddj#S^eC!K;3y)A<NaS&57_
zURy3MSa3B%RY0zD7ek4I*XoJ8zjjWRlW+XWG(*Vu?bO44Ox95qEXI4kXP!TBcS6%W
z2WFpHjc4pwXE!zWvMZ-&@Gh8|8E~|r)42WHcg2%NoGi?<rr(h|;INXJO|79Tv+W&o
zwP&VLh_sG2^DN#S%^L#~3KoRai!rfDy+~aU?ZCdoK{h>WYE!lDE|x!n2X;tpothDw
z+x#-M;&gMnZXch5?54JaNuCVV&H@dd2~Ca<x4QC2DR5qD(rr}lN@6-9Ai;H{M1%E3
za&UU}rA6~qk2IY5Ft2Iep&uJ0#JQG7DNK4Hay;^lWx=*m3DXsAU$1aW=w4xdRWEkN
zgOPvlgKD-K9og2E-$Z;8+$9+IHf&`7GKXoE8>8rQQ#V64*_+XgR_7`t)EhT#{vl$c
z<j4>sp)mFHr7!z_2UoMV|2Ou%tbT)M<H?PZQ}-I0ap(NHapn|z{W7(qpC5m^xyUjz
z?%rZg@0@>H?{#NiId=bh-5*22=baT+mFAxHM;<@f{qs}Nym(!<$sZS5O}Vdb|M!Z>
z&n0twisGkF-@L2hbkMxlzjB3s6!p&dyKKh)hE-XiSJPFKAC<J9UGSuCcU!`eW#O5!
zlihC32r?=A=C<;S6}yc2QH_jsZ6_*EzFH;nzsTP3n#6OC+1xpCNyQ&Ty~<|3&d!(>
zIxGE#&#52v78<!BGoJ?+AFcfvrJ3U%@KklaW@~u4#@dUIGmEeKc)#4<QM_4i(KS}D
ze+)BC1wSs~jF~^H`@^yr_sgH+M32UwI-Pm*wwLVQ=GtGXS$C%`3^=(_<9M%GQU97;
zc9XCWci(xdvx{$ue0i1V?sjk8;dasYu9v$?-Y0+lv@E6OyFq=B(c}8H#lJtRT@mj5
z&8y;bJnOvo#OK+M5+s^G@pDU-pMUK9zJJ0kXPphV)`r}ZZ+j%N#Ab>sx1=op^E(Uc
z7w{^|q(yHntXU%4&%YwJLCZsxkGpV9=R%n+0V^$5EYuA-b1HL}S%AN#&bfy<3oHDE
zpEHYYu1GBu3At=>_^_=-y<N@Jr~m5Th~_@&*5yn6S+L`5SG(f=${V5wmK{7O`RX)7
zwQLv5iuD`&+uJe@G#@)?%=vmrO^5l1p2-{iTM`uHOa$^p+K+J_*l962#X#V^g`}#|
zyMkVsK(0N<K3W+aF4lNtYPbBi#O580xtR`P8_sxpZ*wU0dpTdvZK-B=OicX)=4*<V
zmUsW!pOg~9Ci94Sl51+WS;iKwoZ|`A6aVr5-E11$bXCLJQTX0+xjPqGRPRjtF5G6Y
z;oQQ$zqyAe$i`iKFm2_bXP*O(PJ3U$5i!5bxl3=)YZInu4@SSl)6L3Fj1vwQZV+YG
z*ec}yA&0%2#ca*T%02GI%B61$+FT3z>c14uIjRt#TJ3$Wy>aRyEve({R|L#l@hbPS
z*`mDPnb87E)BfIdJF%TT{Q4T(?b+>G9=e4~*Pjm-$w^7et7KVuDlOb}`sUdkv(Fz=
zOmTgEVcsdn`_+{lmhEn*8bXYkYkC@&Pm4NUq99`sVkE(A{YQj-rHE(Bi_+<VNy}bv
z9D7`E;&sX6P~wvb0uqTEGS$;0UY{$}nZ<s&<ZcFom%^8<=tVxcy{6&9=ht8JIUpLo
zte{5sz=W<3Z3a;XQlgl2k^>mKEtYZfcI}*@@~WZ3z2iar^TvV>nXZph5{#zT_&P0`
zU{I$zU8JDzd#x{9P2YE8AJD~lH<T8NzHFR#Fh;7reT%$@dxrkw54p4Tg99fn>oPoQ
zA^KBk{UVD)J6$j7{1HC9cS+!~RZ{ieT;^W>Rnqe1hg0j;mn#hS&I#*yEVJIz&p$W)
z`Xx!b!v)+Df2KX0bj!iu^x8`zJD$#pTj=V~v({HQgY()o>sE2c@-XJQWh+zLx{qq}
z)yR3<<~z@<`d5EjvukODZ(z2Vt>@WWH_s%$F3_`o>ar}WB*x7kA!W_w<W<Vt?ooHl
zIovzuP7{*Y#uDjbu51v=D(@=h_<H3fv(mjc#KXewt^8ivb?1a!$@X`thXalZZQ|SX
z#qRrxt4n4sd!c#B`0Vn1i+|tgUu!neOZm;tb%)k=crz!*J(%Q^TK}W3#`c*gH(R`Q
z{vn&GY{!(2i0W&fF@6~~BV1={eo%{Y*u!%Ee62IZ5$UU0;#sp-ZI--j^mxUlBUP7|
zww>3zaP2^&FV~sdE7`XH=v2J+;Mny8+8RdNF11bO{lff?`{6!Q4F-<aACxC7&DW7?
zJ;HCpS2lOnqs6NZerK@#v!SJ{J~P1L^r2-!dk*b6ldi*4Cmpblt+F&NTcQ6?;DIE?
ztitmm-wSe9^2umTDGa=$Zn5cVVpip<+JHQ-%|+J1dD$o4Uv1nN_+xMFf|xDh*%#HW
zFMndyQk*R?>k-rOYr;N-t2y3@IP%qIWytm^oD?|mkX=Rm!>w#K=>qe!=MO~I^w+;M
zobw=DZ@!|&1rPri$+#7puB$L^w@?atkiNC>^^;dt6>duo-rBTAO=i~(D=%R^CjHRz
z2|p!Mbk)r!U*eEDu5ju@>*|}DO#WV-KF!?`UW|PXw%;;&rmyeo4*gT$UToB}T7ywF
zswurS{@#n*3*s&wyTEs1gUlQLcg=M>Vgeu4SG3=1OJBG`uZDSI>{-{<SD$69n92BG
z#;xbs%!%wv6`3mD9iOHhw_sA@p76Q@J0?d&zrSKv^7sF@`5E?K>i%q0zgIi&S*OL!
z9`XLqKd<H(#QLP!?y9>he{gcQxxc^uy}ut`T%G*gsFnTjzqdAqHjjQ(6wUur$nc<s
zp_=X2y}lFmE9|};x%fv*UY{YY`cYv0FCF<i_jHAJIH>)2aA0Y{*P4s+eCzs-Z9gm{
zKTrSDMb?%`|2_T2J<}W>th2X1FMhK8QPH*ir`ms>eN<6Ut-b7Tq}{RAr(Lg}f4}-)
z(y70am$cX}x*B%riCumlIe#+aiA0@gSJU^-ue){1?)m<?bL8Ud8*1Zh-*4hy@|W55
zy)w_<-W6w<mnPq}3-G?Gqw+EFt`qwu5wlOLF1u~tyl4N3^rRW*pY!gWbH{VN`SbVZ
z?lr}w$7VUEie6oGzv9i>u$L9nb4&ij|74mQ_2p!#(*Nq4@?mo8D?@$SPfug~qQ_QI
z^5xO@>-Noz=jvbc{L!&ouw#0?(0#X?r<fA@{>pT7FFVYZ?^16zyJpuunMuozvTA#W
z-`UIZ`AqxYpR!-lu1<O=$G`Iw`(egS`!s)FoO8H_#i;8~ok6@qI>WKOl74E&QeL)l
z5{rAz_AflP_hQ1HIo%hFc1ZZN&p&Fh|Lx=LGGggmchs+EFwdy){rB+W<(mmpx+ClV
zR~4|Dr2RZ=uzz`eIk%yF58L6oC!1yX?VfF}tiMsR`tH%S=i}zv?XUQDIP?GMC!zI)
z+ZDGgG~f%lxbxKd*n(@VsWaE!nQ1o1lIe0sdHK&p`fQJ9AFSB$<Ia^+?-yPDc>D48
z<^A4k`66a~JyjWU?r@)RYpvBjNsWV6EA+O6-P>C4WTqXSJH6}g!!PUf)mCH#Z=U<%
z>yz#A_v|cxJ$$<Q^S=tc%gvkrlyNd%d}z+P>!nD&YK#5BiPuV+h2ruUz3i@tEio)*
z?LV@yLPf4y{gI1}==meXA2(Mh#&v~1GS#^j{4s1!XYohBKT3K>);}u0C_ep>SB!7l
zWWz0s1LI@5U)M9PY5kd?S5&B+_h3Kc8lyt(cSr6%e;I2h#{4n=<Mf89s>hO))E>w9
z?0)F?NB3WxpIBw1;8E888J#;LI*u;yjOglrG<k>k{G-#`vj6yLKDv1H;`#UYU9a1m
zb8mK^{PC-^-XVDrIgNJvLyP8rmfX9xd(Qg;!2|hc-DgP6wp&&GqF(jq6Qy5^66<Hh
zS3Feyk-TY+sqMx`>`W$`Ue^@#Z`(WjY31QVy1(B|X}q_;{@bfJGH-ro8O_@h(~#P)
ze)x6YiS|?6O7iyY62D^O&#qcEvpXa?@wDFRq*Jd>xR@t!Z#m?nGwapcmLuZ%e*SUu
z+`h`i+ze}~n~_$SxO`LFNwd?h>VI8KT{=H#cewPPHHHZVhM$A<#ERm-xCi?<J<jG>
zxb^1N%@LXU|7@n|8(!)<m7DrDx$Z6#gN2kN`?Q}j!ug#HGD|kNMK)Fb6MT_;p(ra(
zd=~@XBX7IeCb4^hqpJSByZ&9@k4t<tdrXc&%g4JjkLU+(k~?H%;v}KJy>R2(lEV7^
zC2YGMu8X;I)>SrlGn+>FsYLy_|7Bl(edOOi=Wo?5dA@~bX70JOVG5%}q2}@PB{SDe
zpPG4@ucLIT?3~w39-;B4_a$<$9D6SEc&ev@-tp@ze(^rMul1qOAdzD&+qqc_IIWjX
z-JTz3Ute`=%e9*+SKe=!RvfeXWXQwUSE8&MEwbvx9`Zimjtvy{IUCU-^gHd(cf;r9
zj}AT+y7VO}*muHpGs~ZUuWqmxict<|S~Wp=elNoWz4p&vTMt(-<lUCDk<(Jz$Jp00
z*XZHR$(P;J*G_P_U)s{LTx)^@i`ayTTPFmpicEZQjA>G=Yu;imo~&Y@8du&K{f~B4
zFW|cq!+dSy>iX4JxU-ACPX2iHiPX2Igvkfb@^YB&JN5jeeAiOXEq#U@yRU5h!<Z7u
za!toe&bgcQki!CtBODJS7D_B@SZ1-P<I#@g8+4g;+hiK-*Rwl(kG-y(Q+a@O>r;*w
zw<0EbK0AHNK>y<U%pd!cWn+zXa?JlMGZnsG$rAdlP$^c!cD}~a`t0r>hr{wFZn|Tj
za?2$0-Q$HvQfAvsj!;i(6?G{&+9#**TYYBMjja6H+VQvYt(&j*OnDJ-weY^(9O3L$
z33_is5BsiqA#tsH)q0JaLeFn3o3Q`FlFsss^GDKi0yNHWcdO0(b1LH)?~PTtt2c@L
zKeIgSR$T;Zj>CzkPn+~UswupvFRY*Uc=FZq<GeM?_vbos2&p&UtZ8iU%HJRN?J?`S
z?{%^<`tP27Ihvch>&B72f77;|jorF)H(PmV;r5qucV@r$zkTMc+f_r|sb`+PJ9GQJ
z-t9ZFv#aOsoKkxA>bpDP@f)}PY&ZL_@R}*%Zd{e!?bwEM+Y@yy|9CN^?Mv)fqt<@6
zKDLjywBCEt2B99cE2;;tpIoYPv5NK7#rZGZ>fCPA+O2!rYt5=z8D3YDuhw#3Gz+QD
zy?96MqQc>8E|>2+ZF#qS;@b;Rg)4GecC2cgy*2mZ8@Yn-A8zm1){(|8_;<U&#?P%`
z(VIlKA9}WKqd{!0<r=Fp{xh%YB(F}(W!=3cGh%IDeeApFj%$B~mhP1b`@Ax{BkcIs
z4ZRu5|K6_Qn?3iWQ2e1U52}vIb0t~qk%&o-b*&Lj<2U7;ud(9e>~tI9!~DN59ABU9
z;{39LujbmvS+2+JdGF0<e_rvY`9a0GA8#IQ?LYsM^+uh|52J~ZQ_Pe1hMc<YwQ21X
zukX(mhAdf_YID1yKCM<nU)<vT`u0r|xAlJ7T_Kyhv}VuwnaR;|3lAzE<Ij8iQYP8q
zxWom+7bdT_iu30x<%(y1GB^MAS7E-ge_j37&h~Z2CtvyG^n`{U3Gcb7)4T86#cBMv
zxK3~SYV$$=W@IBf>(Nb3>aNSh+%kQuHplQJez)z<XtF<(+Q*^J`LF(`b*$mVfOE1s
zAMQ3ioD?c^@xOoLuGR;Ub1JM(+h4kW?z&-n`s;wRWzy-#S-x5AU+<E2ag(U--ig!J
zT#nM8zA9ts?2MCZ98a%VxOCH`X`g(fj^->|`exV7b+dBK&V`kFN|@c=QsU~pZn<ds
z`l%|q>8CfGRLi`)Z_~7uT85U}7R^vK+{RbZz4VKy_wAHOgU-AQ*(}qR&01@A&hIso
z@h^q7{~3J33pP!EXv!kYXtX^!hQo$Y+rZS&#Mr>dMBBhf-M~OylS|(>KgA`nBvnDf
z#mdOQ$k4zXreyl5SdJ;oCYFYvQ6Fh36JsuYx6GpA5(Q&(V=jH4)V%bP3<X0oBlF3L
zEE@H#Gj8YIF%xKe|5s$!8L<MLNyauJju#XhFD}ZAGI<+1vD<f%RQIjjjpcU_-!8A~
zy2Pitt~$}%TIO8MpGvWr`(9hWau(lXv%)y%X{J^7iek;Ob83~F{>=R2{>Dl?`M6!#
zl$_^tL;TluFWbM!C6?>Q*|~<-PIkZV;Z@OJXq*xmSHEZp$BNlj!b^<4*QO_xd{T<6
zKK?05)wbx%y3KvRw8ad%b?y|W*B<D8pVJc-=k&ZP{|V~`r?Yzntn~|*<o5L*F+B9H
zc9OXEhp;TkOjoXNT}zo}<_KCytM&;hcCeml>Dx0oMyP4g=TDPbqW^7V-F_sYn~UkF
zWy_XHx@%6xY!s~*QP<jNGMlp{%qd_?xPDyB-9Njm@A6K%)$wP4%-uag7cc+#_4!-k
zjrm3DJ^SU`_80L#jep-(zr-i#@%7Wwt)_7p9RK8hY>`&j{jQ_WBi6}guZi6uw)O4K
zviR$MdzB70TvBmu%rECZep&MKTe1B<nU`K4UVLQdGpnWEnO>TIqn6gsnLK669=5WR
z^Rt6@m$@D3$+)uZ`7M7l^J89Ci)ULm_MV+9<a>5&_mq!!?nvCy<lb=c!250A4{!Ya
z_vY-w%U^$A{`PRDa<T~D-Oca+S;+YPKAc&RXJ%A=_EJ{jR`1o#rJ{`qzTVp1SJM{S
zduW$`-+h^B>8HONQtZU5I9>iq{QF&hxnO?h-0N*|Iu|pzYZhG<+oEBW>zJ*i%enf<
z=I34cIu4hWUoXfg^SY&!m=phzJz`aq;IvhqoYOY6%-(!1F4w^18ms8}Zyn-Wj~-a$
zx%SE?x5-iL-D1~-bhe#LHBVp89no`3RQ!sesQ8tSQ(0gA=n{Fw;@h>aWMl8q**91A
zKCM^qyKuHdK>fwX#|nNI9v^p{<8X_qu!*fSqu|Z#m=jjju?)>tR}Yj0ESI{$_sV7M
z%4VxT?T*A(rK(Qd$3s)kn)X+J%qkXq;u%%nWaBwm=!s`&(22=fdMAR<icNa5E}y$?
z&F1T@8ya4Ty0t7l<gp=x=S<}K-P5XfWav%1b1vpVJ=g5b;j_DSS7qy!ZOG75i_qd}
zbL}^1vsuRE+?^}k^ITFhPW*sE|Jnlz{a3RE#U5lmsXmeXb;9Qf$3yKhHZC>`zcXj=
ztr)pa7JJ>QP6X@zmirX4dQQ8|64$R2+O-U}%(&&vy6GIq2>zFH924BjgIXLHtG^LS
z-Bxq!<he`r^`F1LJAe0j{`TMJZy$gC{r|msn>)O-^`>noKYsb{yNX+H^XJDqN92|3
z2Z-&{PSd<+f3IFfZpoL*zSL(j&zZhlEiqcbb%EQbm#KuUcriomp?!f3>mFWh+x8^-
zTIDXs7cqUkDKC=!dYQh=(~td_T0OhpKId!x9Mxrw=1~RH6sjiG%V-~Xvd2k|dxL85
zmBNkbS9fmoE50yokBMaN!JIEs{pA`~>sFovMZ@XCrY{>R_hfaubV`XV=bY>jtq^qS
z?CIs5^KL~H7Jti1?sey1&z$sogDBfJ{^*|xhv!^dc(IB1a^~Jog-t%fJdx?^xf5>0
zdh!dboLq9MW{$$zcssv>`lrmL5wEBA3qRJ|a?ES?=5T54`L?SHC!UvE=ryrlIBI>(
z9FNeod*Z{y&PWQ+PB>vzz4hRc#a<4TpD+9hyk}E#{E^8+5B};oYBHgP8(1pylFo*>
zOkc6Vukx<@&nJQ<@=p)Ds3zF?xV&xtc{AJ9(DwTC7R%>Pt}Hv`V`ioJENyAM=(1(n
zudf&WD7hv3E&i#gj!w>^2V2<Bnq^4bG8W>V@hSS@*;J+658XR17+pHVVVUeZ!7(^j
z$S;07`;6C>3mB(7R}I+l(^c!>oL}WeoKLot%FElI^I@19cJ~xt)b35Y-}sA9aDQ~G
zx_9mAiLKI+3O)HZE?&E^!Mk~R_moY-8O!TW2d5sN5xKV8dsFJv<+Gd|;_`jH`<Ev2
z{XG0`^N--2t^tv$E8p0d)H$ELFMB+_;#KkCSF222`<H&Rh}m)H>dqMD9Win{%KsO~
zUP?b^Xx9Hb{@(;kyV}aOPd!g(>dpTUb~~^$Ht$u;I?)(C;h1#-F?xJIu2dHKXZkGB
ztWwn7o?050&mi7rzO_j-GuKg1oKJ7J<-SFB7YnC1?U(F()UCh%m-5~H@on#(ef_p&
zul1cr#y8jUc+Ij~@b`<x@~5^spUXGfWZnGqCGu_AkB=WJcl>;7;d3tN?dc8mQ#n(%
z&)M{s{hIx8HE3NneM<(1V!f%6Wh|F|aAsAif~k=umwvcHw4s8rf?+I|eo%gXiGrz-
znSy~r5SPAZURu6_sgXI9=b{j8W9a5=Y~W~Y;%Mn=Ze(h1VC-aJZf5LkYHn%a>gZx>
zVy8e*3BO$|q82nZumsnFs?*{#riDrzIA474ef9Ha&z8-fea?6L%Js8@_wTg-cXL^u
zpZW6O=gTgi-S2(!Ku3#$<}QsD-NAw(OX4chPYOE*B$UUwJnVH55K#>g7j$gzdUcB9
z+VARJKR?c~e_wh2yUqUMd*>~~H$Rx0^86sHf&RIxR_|k8x#-<5tNg5;-DOc<d0a{V
z-1*2U7SE^YJXyh7x?qcfUS#s();%{JKC5SoeNIchr?bNJ@}8S>%)9*~H!J1uVqN6A
zKq#c~=mM!L4XO*ot~4%9kkn{=x<JmPK{P=%gJrdYa0c7jN0;QPe`ak^`~UMHhXo7Y
zh3ifwQ#6=o9}L^TKZj*`u|{=R*fqNi()BV->L*?%U0{i@oXs#fp^x=iQ)vQohH$uP
z?(V4br}>)-H}Ll~>`k!eo|Agd?SkIAe}&a+m~$BCKC-Jn_si_#5eW;Q&Egv_mq@>0
zOD&AANuIp>0K*Hx@40)w=CWHK@VmfY)~INp@ou_)uH1f`yNA2gI=?jq8tA+WobD^h
z`1@eJg@mxDd+q@vziXG0A1v^A*~ja{aQlZ~!IY=Dfz`(g4OA}`omTU24t~($@zeD6
zY{v8hYfik&dObT?wEALYL0HNoUTF(<y+&@O&Cl27%h|B$1%>i|`uy=re$T3o`s`-c
zjMbedxZg)^X6RC26=jIr>h<L7{9LXoZ78e<GwiZGpZwbW?MRWCooma@TMCQH^h9r$
z@@9zaOgGXvrM*qNPkU8H_X+0HJGM2MHMDfK?2=2^y=d_^<|&tqUWoiW*mJ?RfqCJM
zWfn_fmG;MP4dm-on*Ob0dit96(|d#ET=isGZY;Td^!k(>uC|wQ7xedK9{hE|N6@qV
zNO}F8?fViNoUN4h{oeJpP(`%8B;?P9|F<QWUo3w7Xn9z~{J9!S0{OPdiP_)JW-j}d
zn|k`)k{{aMxeVS@7B9Q}X#L#{cF_#$r$jpl`lU0bN4*Vluy9qeRsZ)i`<ukNm#hsz
zT|re7C-32~_-KCKLWxmMWdS%KCVlyv`FUEC*T?$p@1r(zg)~cTV7by{RX01<?QFu#
zAN>9|gjE}YB5gAmv=4Y);0SBnny~eU|G$mLcjy@B9bY55rLk;--=F3Bw?x*h*I|}+
zFn_@$`)L2Zq+qiqzXPmObJ?ODBy*UfkN*EL(f1vr#gwm%yZ;vz%hl#D2B!(O0}A%H
z@@~f_nAbnZJJoi;;DOfJ9U;cM<I+3$8Uj7JzUQW{JNw2!V)~MoqOT7x%;A!mxa4o;
z>&H>2`WR1t-lFm}KKFrz1?Ra&NzYyLw=_l;NX=nf?vU4VgiGo2BO%``xj9SBf9QD}
z=<VQPbYyCBVc}$BQ>r~Em%K9Lvw=>?rIf}7tw#OeEv^&m)f9XmOl2%)dd9L%&__Oo
z`;ER1^9<o<jdwj>2>;*~EYNrm@F3sSVM&8W<9zuInjZ{#(iyGVt~SW9{N}hFK79|%
z6Rr^Lgb0U28~AQ)pV-94!!059LBE7y4_Afgo8Xjq`zKr{L{ClP`Il<H%X`x0`H@>f
zC#AoSxT1UV_W!6W%JnDrMs`=JR(_b|T06<6Cgq};<`>&78M{UDVz*|ri~OrQv}kV7
zo;?>A)oI?Vy}XD~^WVq0uFaGD_GJksvEAVau}^TBG5HJgyY$W}I#DNAgl)+RT;Z`$
z$+YW=M$kNuN~NitA!<QWJOY)zc3e>o>hjQ33hf9{3~KOTRNC49#BP%6H;-e=lKm+*
zlRkQEQa;(IVm;}N$EM`vOWyZC@2ZP={*O8PVEDD^uM0S2cukBgEDQ{|R8?L5-M9eu
CwgZ{~

diff --git a/algo/algo.tex b/algo/algo.tex
index b97f80e..7cec7ab 100644
--- a/algo/algo.tex
+++ b/algo/algo.tex
@@ -1,289 +1,171 @@
-\documentclass[german]{../spicker}
-
-\usepackage{amsmath}
-
-\usepackage{graphicx}
-\usepackage{tabularx, multirow}
-\usepackage{forest}
-\usepackage{color, colortbl}
-
-\usetikzlibrary{tikzmark,calc,arrows.meta,chains,decorations.pathreplacing,scopes,shapes.misc,shapes.multipart}
-
-\definecolor{javared}{rgb}{0.6,0,0} % for strings
-\definecolor{javagreen}{rgb}{0.25,0.5,0.35} % comments
-\definecolor{javapurple}{rgb}{0.5,0,0.35} % keywords
-\definecolor{javadocblue}{rgb}{0.25,0.35,0.75} % javadoc
- 
-\lstset{language=Java,
-basicstyle=\ttfamily,
-keywordstyle=\color{javapurple}\bfseries,
-stringstyle=\color{javared},
-commentstyle=\color{javagreen},
-morecomment=[s][\color{javadocblue}]{/**}{*/},
-tabsize=4,
-showspaces=false,
-showstringspaces=false}
-
-\tikzset{
-    weight/.style = {
-        scale=0.7,
-        },
-    prim node/.style = {
-        fill = blue!50,
-        text = white,
-        },
-    prim edge/.style = {
-        draw=blue,
-        very thick,
-        },
-    current/.style = {
-        fill = teal!50,
-        },
-    visited/.style = {
-        fill = teal!30,
-        %text=white,
-        opacity = 0.5,
-    },
-}
-
-\forestset{%
-empty node/.style = {
-    dashed,
-    opacity = .2, 
-    fill opacity = 0.2,
-    edge = {opacity=.2},
-    },
-r/.style = {
-    fill = red!50,
-    text=white,
-    draw=red,
-    calign angle=30,
-    calign=fixed edge angles,
-    %fill opacity = 0.5,
-},
-b/.style = {
-    fill = black!50,
-    text=white,
-    draw=black,
-    calign angle=30,
-    calign=fixed edge angles,
-    %fill opacity = 0.5,
-},
-rbn/.style = { %red black not defined
-    fill = blue!50,
-    text=white,
-    draw=black,
-    calign angle=30,
-    calign=fixed edge angles,
-    %fill opacity = 0.5,
-},
-nil/.style = {
-    fill = black!50,
-    minimum size=1em,
-    calign angle=30,
-    calign=fixed edge angles,
-    %fill opacity = 0.5,
-},
-mpn/.style args = {#1/#2/#3/#4}{draw,
-rectangle split, rectangle split horizontal,
-rectangle split parts=4,
-on chain=A,
-draw=black!50,
-node contents={ \nodepart{one}    $#1$
-                \nodepart{two}    $#2$
-                \nodepart{three}  $#3$
-                \nodepart{four}   $#4$}
-                            },
-}
-
-\newcommand\mpnc[4]{\nodepart{one}      $#1$
-                    \nodepart{two}      $#2$                    
-                    \nodepart{three}    $#3$
-                    \nodepart{four}     $#4$
-                    }
-
-\addbibresource{algo.bib}
-
-\title{Algorithmen}
-\author{Patrick Gustav Blaneck}
-\makeindex[intoc]
-\makeindex[intoc, name=Beispiele,title=Beispiele]
-
-\newenvironment{allintypewriter}{\ttfamily}{\par}
-
-\newcommand{\BF}{\operatorname{BF}} 
-\newcommand{\vektor}[1]{\begin{pmatrix*}[c] #1 \end{pmatrix*}}
-
-\pgfmathsetmacro\twopi{2*pi}
-
-\pgfmathdeclarefunction{lngamma}{1}{%
-  \pgfmathsetmacro\lngammatmp{#1*#1*#1}%
-  \pgfmathparse{%
-    #1*ln(#1) - #1 - .5*ln(#1/\twopi)
-    + 1/12/#1 - 1/360/\lngammatmp + 1/1260/\lngammatmp/#1/#1
-  }%
-}  
-
-\pgfmathdeclarefunction{facreal}{1}{%
-  \pgfmathparse{exp(lngamma(#1+1))}% 
-}
-
-\begin{document}
-\maketitle
-\tableofcontents
-\newpage
-
-\include{grundbegriffe.tex}
-
-\include{datenstrukturen.tex}
-
-\include{baeume.tex}
-
-\include{graphen.tex}
-
-\section{Formale Sprachen}
-% Textsuche
-
-% Reguläre Ausdrücke
-
-% PCRE
-
-% Kleene
-
-\section{Sortierverfahren}
-
-\begin{defi}{Heapsort}
-    Der Heap ist Grundlage für das Sortierverfahren \emph{Heapsort}.
-
-    \begin{itemize}
-        \item Zu Beginn: Unsortiertes Feld
-        \item Phase 1:
-              \begin{itemize}
-                  \item Alle Elemente werden nacheinander in einen Heap eingefügt
-                  \item Resultat ist ein Heap, der in ein Feld eingebettet ist
-              \end{itemize}
-        \item Phase 2:
-              \begin{itemize}
-                  \item Die Elemente werden in absteigender Reihenfolge entfernt (Wurzel!)
-                  \item Heap schrumpft immer weiter
-              \end{itemize}
-    \end{itemize}
-
-    \begin{center}
-        \begin{tikzpicture}
-            [
-                start chain,
-                node distance = 0pt,
-                HeapBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain, fill=teal!30},
-                SortedBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain, fill=blue!30},
-            ]
-
-            { start chain = going right
-                \node [HeapBlock, label=above:\texttt{root}] (1) {$0$};
-                \node [HeapBlock] (2) {$1$};
-                \node [HeapBlock] (3) {$2$};
-                \node [HeapBlock] (dots) {$\ldots$};
-                \node [HeapBlock] (n2) {$n-2$};
-                \node [HeapBlock] (n1) {$n-1$};
-                \node [HeapBlock] (n) {$n$};
-
-                \draw[->, blue] ([yshift=1em] 1.north east) to[bend left=30] ([yshift=.5em] n.north);
-
-                \draw [decorate,decoration={brace,amplitude=5pt,mirror,raise=.5em}]
-                (1.south west) -- (n.south east) node[midway,yshift=-2em]{Heap};
-                %\draw[->] (val.south) [out=-30, in=-150] to (4.south);
-            }
-        \end{tikzpicture}
-        \hspace{4em}
-        \begin{tikzpicture}
-            [
-                start chain,
-                node distance = 0pt,
-                HeapBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain, fill=teal!30},
-                SortedBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain, fill=blue!30},
-            ]
-
-            { start chain = going right
-                \node [HeapBlock, label=above:\texttt{root}] (1) {$0$};
-                \node [HeapBlock] (2) {$1$};
-                \node [HeapBlock] (3) {$2$};
-                \node [HeapBlock] (dots) {$\ldots$};
-                \node [HeapBlock] (n2) {$n-2$};
-                \node [HeapBlock] (n1) {$n-1$};
-                \node [SortedBlock] (n) {$n$};
-
-                \draw[->, blue] ([yshift=1em] 1.north east) to[bend left=30] ([yshift=.5em] n1.north);
-
-                \draw [decorate,decoration={brace,amplitude=5pt,mirror,raise=.5em}]
-                (1.south west) -- (n1.south east) node[midway,yshift=-2em]{Heap};
-
-                \draw [decorate,decoration={brace,amplitude=5pt,mirror,raise=.5em}]
-                (n.south west) -- (n.south east) node[midway,yshift=-2em]{sortiertes Array};
-                %\draw[->] (val.south) [out=-30, in=-150] to (4.south);
-            }
-        \end{tikzpicture}
-
-        \begin{tikzpicture}
-            [
-                start chain,
-                node distance = 0pt,
-                HeapBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain, fill=teal!30},
-                SortedBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain, fill=blue!30},
-            ]
-
-            { start chain = going right
-                \node [HeapBlock, label=above:\texttt{root}] (1) {$0$};
-                \node [HeapBlock] (2) {$1$};
-                \node [HeapBlock] (3) {$2$};
-                \node [HeapBlock] (dots) {$\ldots$};
-                \node [HeapBlock] (n2) {$n-2$};
-                \node [SortedBlock] (n1) {$n-1$};
-                \node [SortedBlock] (n) {$n$};
-                \node [xshift=2em, on chain] (dots2) {$\ldots$};
-
-                \draw[->, blue] ([yshift=1em] 1.north east) to[bend left=30] ([yshift=.5em] n2.north);
-
-                \draw [decorate,decoration={brace,amplitude=5pt,mirror,raise=.5em}]
-                (1.south west) -- (n2.south east) node[midway,yshift=-2em]{Heap};
-
-                \draw [decorate,decoration={brace,amplitude=5pt,mirror,raise=.5em}]
-                (n1.south west) -- (n.south east) node[midway,yshift=-2em]{sortiertes Array};
-                %\draw[->] (val.south) [out=-30, in=-150] to (4.south);
-            }
-        \end{tikzpicture}
-        \hspace{1em}
-        \begin{tikzpicture}
-            [
-                start chain,
-                node distance = 0pt,
-                HeapBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain, fill=teal!30},
-                SortedBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain, fill=blue!30},
-            ]
-
-            { start chain = going right
-                \node [SortedBlock] (1) {$0$};
-                \node [SortedBlock] (2) {$1$};
-                \node [SortedBlock] (3) {$2$};
-                \node [SortedBlock] (dots) {$\ldots$};
-                \node [SortedBlock] (n2) {$n-2$};
-                \node [SortedBlock] (n1) {$n-1$};
-                \node [SortedBlock] (n) {$n$};
-
-                %\draw[->, blue] ([yshift=1em] 1.north) to[bend left=30] ([yshift=.5em] n2.north);
-
-                %\draw [decorate,decoration={brace,amplitude=5pt,mirror,raise=.5em}]
-                %(1.south west) -- (n2.south east) node[midway,yshift=-2em]{Heap};
-
-                \draw [decorate,decoration={brace,amplitude=5pt,mirror,raise=.5em}]
-                (1.south west) -- (n.south east) node[midway,yshift=-2em]{sortiertes Array};
-                %\draw[->] (val.south) [out=-30, in=-150] to (4.south);
-            }
-        \end{tikzpicture}
-    \end{center}
-\end{defi}
-
-\printindex
-\printindex[Beispiele]
-
-\printbibliography
-\end{document}
+\documentclass[german]{../spicker}
+
+\usepackage{amsmath}
+
+\usepackage{graphicx}
+\usepackage{tabularx, multirow}
+\usepackage{forest}
+\usepackage{color, colortbl}
+
+\usetikzlibrary{tikzmark,bbox,calc,automata,arrows.meta,chains,decorations.pathreplacing,scopes,shapes.misc,shapes.multipart}
+
+\definecolor{javared}{rgb}{0.6,0,0} % for strings
+\definecolor{javagreen}{rgb}{0.25,0.5,0.35} % comments
+\definecolor{javapurple}{rgb}{0.5,0,0.35} % keywords
+\definecolor{javadocblue}{rgb}{0.25,0.35,0.75} % javadoc
+ 
+\lstset{language=Java,
+basicstyle=\ttfamily,
+keywordstyle=\color{javapurple}\bfseries,
+stringstyle=\color{javared},
+commentstyle=\color{javagreen},
+morecomment=[s][\color{javadocblue}]{/**}{*/},
+tabsize=4,
+showspaces=false,
+showstringspaces=false}
+
+\tikzset{
+    weight/.style = {
+        scale=0.7,
+        },
+    prim node/.style = {
+        fill = blue!50,
+        text = white,
+        },
+    prim edge/.style = {
+        draw=blue,
+        very thick,
+        },
+    current/.style = {
+        fill = teal!50,
+        },
+    marked/.style = {
+        fill = teal!25,
+        },
+    visited/.style = {
+        fill = teal!30,
+        %text=white,
+        opacity = 0.5,
+    },
+    new/.style = {
+        red,
+    },
+    index small/.style = {
+        minimum width=1.5em,
+        minimum height=0.5em,
+        fill = gray!25,
+    },
+    index/.style = {
+        minimum width=2em,
+        minimum height=0.5em,
+        fill = gray!25,
+    },
+    every state/.style = {
+        minimum size=2em
+    }
+}
+
+\forestset{%
+empty node/.style = {
+    dashed,
+    opacity = .2, 
+    fill opacity = 0.2,
+    edge = {opacity=.2},
+    },
+r/.style = {
+    fill = red!50,
+    text=white,
+    draw=red,
+    calign angle=30,
+    calign=fixed edge angles,
+    %fill opacity = 0.5,
+},
+b/.style = {
+    fill = black!50,
+    text=white,
+    draw=black,
+    calign angle=30,
+    calign=fixed edge angles,
+    %fill opacity = 0.5,
+},
+rbn/.style = { %red black not defined
+    fill = blue!50,
+    text=white,
+    draw=black,
+    calign angle=30,
+    calign=fixed edge angles,
+    %fill opacity = 0.5,
+},
+nil/.style = {
+    fill = black!50,
+    minimum size=1em,
+    calign angle=30,
+    calign=fixed edge angles,
+    %fill opacity = 0.5,
+},
+mpn/.style args = {#1/#2/#3/#4}{draw,
+rectangle split, rectangle split horizontal,
+rectangle split parts=4,
+on chain=A,
+draw=black!50,
+node contents={ \nodepart{one}    $#1$
+                \nodepart{two}    $#2$
+                \nodepart{three}  $#3$
+                \nodepart{four}   $#4$}
+                            },
+}
+
+\newcommand\mpnc[4]{\nodepart{one}      $#1$
+                    \nodepart{two}      $#2$                    
+                    \nodepart{three}    $#3$
+                    \nodepart{four}     $#4$
+                    }
+
+\addbibresource{algo.bib}
+
+\title{Algorithmen}
+\author{Patrick Gustav Blaneck}
+\makeindex[intoc]
+\makeindex[intoc, name=Beispiele,title=Beispiele]
+
+\newenvironment{allintypewriter}{\ttfamily}{\par}
+
+\newcommand{\BF}{\operatorname{BF}} 
+\newcommand{\vektor}[1]{\begin{pmatrix*}[c] #1 \end{pmatrix*}}
+
+\pgfmathsetmacro\twopi{2*pi}
+
+\pgfmathdeclarefunction{lngamma}{1}{%
+  \pgfmathsetmacro\lngammatmp{#1*#1*#1}%
+  \pgfmathparse{%
+    #1*ln(#1) - #1 - .5*ln(#1/\twopi)
+    + 1/12/#1 - 1/360/\lngammatmp + 1/1260/\lngammatmp/#1/#1
+  }%
+}  
+
+\pgfmathdeclarefunction{facreal}{1}{%
+  \pgfmathparse{exp(lngamma(#1+1))}% 
+}
+
+\begin{document}
+\maketitle
+\tableofcontents
+\newpage
+
+\include{grundbegriffe.tex}
+
+\include{datenstrukturen.tex}
+
+\include{baeume.tex}
+
+\include{graphen.tex}
+
+\include{formale_sprachen.tex}
+
+\include{sortierverfahren.tex}
+
+\printindex
+\printindex[Beispiele]
+
+\printbibliography
+\end{document}
diff --git a/algo/baeume.tex b/algo/baeume.tex
index cfb52a0..9773757 100644
--- a/algo/baeume.tex
+++ b/algo/baeume.tex
@@ -1,2259 +1,2326 @@
-\section{Bäume}
-
-\begin{defi}{Baum}
-    Ein \emph{Baum} ist eine hierarchische (rekursive) Datenstruktur.
-    Es gilt:
-    \begin{itemize}
-        \item alle Wege gehen von einer \emph{Wurzel} aus
-        \item $A$ heißt \emph{Vorgänger} von $B$ bzw. $B$ \emph{Nachfolger} von $A$, wenn $A$ auf einem Weg von der Wurzel zu $B$ liegt
-        \item $A$ heißt \emph{Elterknoten} von $B$, bzw. $B$ heißt \emph{Kind} von $A$, wenn $(A, B) \in E$
-        \item Knoten ohne Kinder heißen \emph{Blätter}
-        \item Knoten mit Kindern heißen \emph{innere Knoten}
-        \item ein Knoten $S$ mit allen Nachfolgern wird \emph{Teilbaum} eines Baumes $T$ genannt, falls $S$ nicht Wurzel von $T$ ist
-        \item der \emph{Verzweigungsgrad} eines Knotens ist die Anzahl seiner Kinder
-    \end{itemize}
-
-    \vspace{1em}
-
-    \begin{center}
-        \begin{forest}
-            for tree={s sep=5mm, fit=band}
-            [Wurzel, name=root
-            [Blatt, name=blatt1]
-            [Innerer Knoten, name=inner1 [Blatt, name=blatt2]
-            [Innerer Knoten, name=inner2
-            [Blatt, name=blatt3]
-            [Innerer Knoten, name=inner3 [Blatt, name=blatt4]
-            [Blatt, name=blatt5]]]]]
-            \node [draw, label=left:Level 0, dashed, fit={(root) (blatt1.west |- root.center) (inner3.east |- root.center)}] {};
-            \node [draw, label=left:Level 1, dashed, fit={(blatt1) (inner3.east |- blatt1.center)}] {};
-            \node [draw, label=left:Level 2, dashed, fit={(blatt2) (blatt1.west |- blatt2.center) (inner3.east |- blatt2.center)}] {};
-            \node [draw, label=left:Level 3, dashed, fit={(blatt3) (blatt1.west |- blatt3.center) (inner3)}] {};
-            \node [draw, label=left:Level 4, dashed, fit={(blatt4) (blatt1.west |- blatt5.center) (blatt5) (inner3.east |- blatt5.center)}] {};
-            \node [draw, red, fit={(inner2) (inner3) (blatt5) (blatt3)},label=right:{\color{red}Teilbaum}] {};
-        \end{forest}
-    \end{center}
-\end{defi}
-
-% Binärbäume
-
-\begin{defi}{Binärbaum}
-    Die Knoten eines \emph{Binärbaums (binary tree)} haben höchstens den Verzweigungsgrad $2$.
-
-    Bei einem \emph{geordneten Binärbaum} ist die Reihenfolge der Kinder durch die Indizes eindeutig festgelegt:
-    \begin{itemize}
-        \item $T_l$: linkes Kind, linker Teilbaum
-        \item $T_r$: rechtes Kind, rechter Teilbaum
-    \end{itemize}
-
-    Ein Binärbaum heißt \emph{minimal} (bezogen auf die Höhe), wenn kein Binärbaum mit gleicher Knotenzahl aber kleinerer Höhe existiert.
-
-    Ein \emph{links-vollständiger Binärbaum} ist ein minimaler Binärbaum, in dem die Knoten auf dem untersten Level so weit wie möglich links stehen.
-
-    Alle Blätter eines \emph{vollständigen Binärbaums} haben den gleichen Level.
-
-    Ein vollständiger Binärbaum der Höhe $H$ hat
-    $$
-        n = 1 + 2 + 4 + \ldots + 2^H = \frac{2^{H+1}-1}{2-1} = 2^{H+1}-1 \ \text{Knoten}
-    $$
-\end{defi}
-
-\begin{halfboxl}
-    \begin{example}{Linksvollständiger Binärbaum}
-        \centering
-        \begin{forest}
-            for tree={circle, draw,
-            minimum size=1.75em, % <-- added
-            inner sep=1pt}
-            [
-            [
-                    [
-                            []
-                                []
-                        ]
-                        [
-                            []
-                                []
-                        ]
-                ]
-                [
-                    []
-                        []
-                ]
-            ]
-        \end{forest}
-    \end{example}
-\end{halfboxl}
-\begin{halfboxr}
-    \begin{example}{Vollständiger Binärbaum}
-        \centering
-        \begin{forest}
-            for tree={circle, draw,
-            minimum size=1.75em, % <-- added
-            inner sep=1pt}
-            [
-            [
-                    [
-                            []
-                                []
-                        ]
-                        [
-                            []
-                                []
-                        ]
-                ]
-                [
-                    [
-                            []
-                                []
-                        ]
-                        [
-                            []
-                                []
-                        ]
-                ]
-            ]
-        \end{forest}
-    \end{example}
-\end{halfboxr}
-
-\subsection{Binäre Suchbäume}
-% Binäre Suchbäume
-
-\begin{defi}{Binärer Suchbaum}
-    Ein \emph{binärer Suchbaum} ist ein Binärbaum, bei dem für jeden Knoten des Baumes gilt:
-
-    Alle Schlüssel im linken Teilbaum sind kleiner, alle im rechten Teilbaum sind größer oder gleich dem Schlüssel in diesem Knoten.
-\end{defi}
-
-\begin{algo}{Suchen im binären Suchbaum}
-    Suchen ist ohne Probleme durch einfaches Vergleichen ($<$ bzw. $\geq$) möglich.
-
-    Suchen der $50$ in \textcolor{red}{rot} bzw. (erfolgloses) Suchen der $80$ in \textcolor{blue}{blau}.
-
-    \vspace{1em}
-
-    \centering
-    \forestset{%
-        empty node/.style={dashed}
-    }
-    \begin{forest}
-        for tree={circle, draw,
-        minimum size=2em, % <-- added
-        inner sep=1pt}
-        [60
-        [
-        20,edge={->,dashed,red,thick}
-        [10 [,empty node][,empty node]]
-        [30,edge={->,dashed,red,thick}
-        [,empty node]
-        [50,edge={->,dashed,red,thick}, draw=red [,empty node][,empty node]]
-        ]
-        ]
-        [
-        70,edge={->,dashed,blue,thick}
-            [,empty node]
-            [110,edge={->,dashed,blue,thick}
-                    [90,edge={->,dashed,blue,thick}
-                            [,empty node,edge={->,dashed,blue,thick},draw=blue][,empty node]
-                    ]
-                    [,empty node]
-            ]
-        ]
-        ]
-    \end{forest}
-\end{algo}
-
-\begin{algo}{Einfügen im binären Suchbaum}
-    Ein Knoten kann ohne Probleme hinzugefügt werden, indem man solange sucht, bis man auf einen leeren Kindknoten trifft und dort einfügt.
-
-    Einfügen der $40$ in \textcolor{red}{rot}.
-
-    \vspace{1em}
-
-    \centering
-    \begin{forest}
-        for tree={circle, draw,
-        minimum size=2em, % <-- added
-        inner sep=1pt}
-        [60
-            [
-                20,edge={->,dashed,red,thick}
-                    [10 [,empty node][,empty node]]
-                    [30,edge={->,dashed,red,thick}
-                            [,empty node]
-                            [50,edge={->,dashed,red,thick} [
-                                        40,edge={->,dashed,red,thick},draw=red
-                                    ][,empty node]]
-                    ]
-            ]
-            [
-                70
-                    [,empty node]
-                    [110
-                            [90
-                                    [,empty node][,empty node]
-                            ]
-                            [,empty node]
-                    ]
-            ]
-        ]
-    \end{forest}
-\end{algo}
-
-\begin{algo}{Löschen im binären Suchbaum (Blatt)}
-    Ein Blatt kann problemlos gelöscht werden.
-
-    Löschen der $50$ in \textcolor{red}{rot}.
-
-    \vspace{1em}
-
-    \centering
-    \begin{forest}
-        baseline,anchor=north,
-        for tree={circle, draw,
-        minimum size=2em, % <-- added
-        inner sep=1pt}
-        [20,edge={->,dashed,red,thick}
-        [10
-            [,empty node]
-            [,empty node]
-        ]
-        [30,edge={->,dashed,red,thick}
-        [,empty node]
-        [50,edge={->,dashed,red,thick}, draw=red
-        [,empty node]
-        [,empty node]
-        ]
-        ]
-        ]
-    \end{forest}
-    \hspace{5em}
-    \begin{forest}
-        baseline,anchor=north,
-        for tree={circle, draw,
-                minimum size=2em, % <-- added
-                inner sep=1pt}
-            [20
-                    [10
-                            [,empty node]
-                            [,empty node]
-                    ]
-                    [30
-                            [,empty node]
-                            [,empty node,draw=red]
-                    ]
-            ]
-    \end{forest}
-\end{algo}
-
-\begin{algo}{Löschen im binären Suchbaum (Innerer Knoten mit einem Kind)}
-    Soll ein innerer Knoten mit einem Kind gelöscht werden, rückt das Kind an die Stelle des Elterknotens.
-
-    Löschen der $30$ in \textcolor{red}{rot}.
-
-    \vspace{1em}
-
-    \centering
-    \begin{forest}
-        baseline,anchor=north,
-        for tree={circle, draw,
-        minimum size=2em, % <-- added
-        inner sep=1pt}
-        [20,edge={->,dashed,red,thick}
-        [10
-            [,empty node]
-            [,empty node]
-        ]
-        [30,edge={->,dashed,red,thick}, draw=red
-        [,empty node]
-        [50,draw=blue
-        [,empty node]
-        [,empty node]
-        ]
-        {\draw[->,blue] () to[bend right=45] node[midway,above right,font=\small]{Vorrücken} (!u.east);}
-        ]
-        ]
-    \end{forest}
-    \hspace{5em}
-    \begin{forest}
-        baseline,anchor=north,
-        for tree={circle, draw,
-        minimum size=2em, % <-- added
-        inner sep=1pt}
-        [20
-        [10
-            [,empty node]
-            [,empty node]
-        ]
-        [50,draw=blue
-        [,empty node]
-        [,empty node]
-        ]
-        ]
-    \end{forest}
-\end{algo}
-
-\begin{algo}{Löschen im binären Suchbaum (Innerer Knoten mit zwei Kindern)}
-    Soll ein innerer Knoten mit zwei Kindern gelöscht werden, nimmt der nächstgrößere Knoten seinen Platz ein.
-
-    Dieser wird wie folgt ermittelt (in \textcolor{purple}{lila}):
-    \begin{enumerate}
-        \item Gehe einen Schritt nach rechts.
-        \item Gehe solange nach links, bis es kein linkes Kind mehr gibt.
-    \end{enumerate}
-
-    Löschen der $20$ in \textcolor{red}{rot}.
-
-    \vspace{1em}
-
-    \centering
-    \begin{forest}
-        baseline,anchor=north,
-        for tree={circle, draw,
-        minimum size=2em, % <-- added
-        inner sep=1pt}
-        [20,draw=red
-        [10
-            [,empty node]
-            [,empty node]
-        ]
-        [30,edge={->,dashed,purple,thick},draw=purple
-        [,empty node,edge={->,dashed,purple,thick}]
-        [50
-            [,empty node]
-            [,empty node]
-        ]
-        ]{\draw[->,blue] () to[bend right=45] node[midway,above right,font=\small]{Platz einnehmen} (!u.east);}
-        ]
-    \end{forest}
-    %\hspace{1em}
-    \begin{forest}
-        baseline,anchor=north,
-        for tree={circle, draw,
-        minimum size=2em, % <-- added
-        inner sep=1pt}
-        [30,draw=purple
-        [10
-            [,empty node]
-            [,empty node]
-        ]
-        [,empty node
-        %[,empty node]
-        [50,draw=blue
-        [,empty node]
-        [,empty node]
-        ]
-        {\draw[->,blue] () to[bend right=45] node[midway,above right,font=\small]{Vorrücken} (!u.east);}
-        ]
-        ]
-    \end{forest}
-    %\hspace{1em}
-    \begin{forest}
-        baseline,anchor=north,
-        for tree={circle, draw,
-        minimum size=2em, % <-- added
-        inner sep=1pt}
-        [30,draw=purple
-        [10
-            [,empty node]
-            [,empty node]
-        ]
-        [50,draw=blue
-        [,empty node]
-        [,empty node]
-        ]
-        ]
-    \end{forest}
-\end{algo}
-
-\begin{bonus}{Komplexität beim Suchen, Löschen und Einfügen in Binärbäumen}
-    Die Komplexität der Funktionen Suchen, Löschen und Einfügen werden durch die Komplexität des Suchens eines Elements bestimmt.
-
-    Im schlechtesten Fall ist die Anzahl der zu durchsuchenden Elemente gleich der Höhe des Baumes $+1$.
-    Dabei hängt die Höhe stark von der Reihenfolge der Einfügeoperationen ab.
-
-    \vspace{1em}
-
-    \centering
-    \begin{forest}
-        baseline,anchor=north,
-        for tree={circle, draw,
-                minimum size=2em, % <-- added
-                inner sep=1pt}
-            [10
-                    [,empty node]
-                    [
-                        20
-                            [,empty node]
-                            [
-                                30
-                                    [,empty node]
-                                    [
-                                        40
-                                            [,empty node]
-                                            [
-                                                50
-                                                    [,empty node]
-                                                    [
-                                                        60
-                                                            [,empty node]
-                                                            [,empty node]
-                                                    ]
-                                            ]
-                                    ]
-                            ]
-                    ]
-            ]
-    \end{forest}
-    \hspace{5em}
-    \begin{forest}
-        baseline,anchor=north,
-        for tree={circle, draw,
-                minimum size=2em, % <-- added
-                inner sep=1pt}
-            [
-                40
-                    [
-                        20
-                            [
-                                10
-                                    [,empty node]
-                                    [,empty node]
-                            ]
-                            [
-                                30
-                                    [,empty node]
-                                    [,empty node]
-                            ]
-                    ]
-                    [
-                        50
-                            [,empty node]
-                            [
-                                60
-                                    [,empty node]
-                                    [,empty node]
-                            ]
-                    ]
-            ]
-    \end{forest}
-\end{bonus}
-
-% Balancierte Bäume
-
-\begin{defi}{Balanciertheit}
-
-    Ein Binärbaum mit $n$ Knoten hat im besten Fall (\emph{optimal balanciert}) die Höhe
-    $$
-        H = \lceil \log_2(n+1) \rceil - 1 = \lfloor \log_2(n) \rfloor
-    $$
-    Dabei ist Suchen in $\bigo(\log n)$.
-
-    Ein Binärbaum mit $n$ Knoten hat im schlechtesten Fall (\emph{entartet/degeneriert}) die Höhe
-    $$
-        H = n-1
-    $$
-    Dabei ist Suchen in $\bigo(n)$.
-\end{defi}
-
-\begin{defi}{Balance-Kriterien}
-    \begin{enumerate}
-        \item Abgeschwächtes Kriterium für ausgeglichene Höhe
-              \begin{itemize}
-                  \item lokale Umordnungsoperationen reichen aus
-                  \item z.B. \emph{AVL-Bäume} und Rot-Schwarz-Bäume
-              \end{itemize}
-        \item Jeder neue Knoten wandert an die Wurzel des Baumes
-              \begin{itemize}
-                  \item Vorteil: Zuletzt eingefügte Elemente lassen sich schneller finden
-                  \item durch spezielles Einfügeverfahren wird Baum zusätzlich (teilweise) ausgeglichen
-                  \item z.B. Splay-Bäume
-              \end{itemize}
-        \item Unausgeglichener Verzweigungsgrad ermöglicht ausgeglichene Höhe
-              \begin{itemize}
-                  \item z.B. \emph{B-Bäume}
-              \end{itemize}
-    \end{enumerate}
-\end{defi}
-
-\subsection{AVL-Bäume}
-
-% AVL-Bäume
-
-\begin{defi}{AVL-Baum}
-    Bei einem \emph{AVL-Baum} unterscheiden sich die Höhen zweier Teilbäume des gleichen Knotens maximal um $1$.
-
-    Der sogenannte \emph{Balance-Index} (oder Balance-Faktor) $\BF$ eines Knotens $T$ ist die Differenz
-    $$
-        \BF(T) := H(T_r) - H(T_l)
-    $$
-    Dabei gilt:
-    \begin{itemize}
-        \item Jeder Knoten hat einen Balance-Index.
-        \item Er darf nur die Werte $-1$, $0$ oder $1$ annehmen.
-    \end{itemize}
-
-    %\vspace{2em}
-
-    \centering
-    \begin{forest}
-        baseline,anchor=north,
-        for tree={circle, draw,
-        minimum size=2em, % <-- added
-        inner sep=1pt}
-        [
-        J, label=right:{\small\textcolor{blue}{+1}}
-        [
-        F, label=right:{\small\textcolor{blue}{-1}}
-        [
-        D, label=right:{\small\textcolor{blue}{-1}}
-        [
-        C, label=left:{\small\textcolor{blue}{0}}
-        [,empty node]
-        [,empty node]
-        ]
-        [,empty node]
-        ]
-        [
-        G, label=right:{\small\textcolor{blue}{0}}
-        [,empty node]
-        [,empty node]
-        ]
-        ]
-        [
-        P, label=right:{\small\textcolor{blue}{+1}}
-        [
-        L, label=right:{\small\textcolor{blue}{+1}}
-        [,empty node]
-        [
-        N, label=right:{\small\textcolor{blue}{0}}
-        [,empty node]
-        [,empty node]
-        ]
-        ]
-        [
-        V, label=right:{\small\textcolor{blue}{-1}}
-        [
-        S, label=right:{\small\textcolor{blue}{0}}
-        [
-        Q, label=right:{\small\textcolor{blue}{0}}
-        [,empty node]
-        [,empty node]
-        ]
-        [
-        U, label=left:{\small\textcolor{blue}{0}}
-        [,empty node]
-        [,empty node]
-        ]
-        ]
-        [
-        X, label=right:{\small\textcolor{blue}{0}}
-        [,empty node]
-        [,empty node]
-        ]
-        ]
-        ]
-        ]
-    \end{forest}
-\end{defi}
-
-\begin{algo}{Einfügen in einem AVL-Baum}
-    Beim Einfügen in einen AVL-Baum wird zu Beginn analog zu einem regulären Binärbaum eingefügt.
-
-    Anschließend wird sich der unmittelbare Elterknoten $E$ angeschaut und es gibt für den dortigen Balance-Index $\BF(E)$ drei Fälle:
-    \begin{enumerate}
-        \item $\BF(E)$ wird $0$:
-              \begin{itemize}[-]
-                  \item $\BF(E)$ war vorher $-1$
-                  \item man kommt von einem Kindbaum, der vorher niedriger war
-                  \item Höhe des Knotens ändert sich nicht
-                  \item oberhalb bleiben alle Balance-Indizes gleich
-                  \item $\implies$ AVL-Kriterium ist für den ganzen Baum erfüllt
-              \end{itemize}
-        \item $\BF(E)$ wird $\pm 1$:
-              \begin{itemize}[-]
-                  \item $\BF(E)$ war vorher $0$
-                  \item Höhe des Teilbaums erhöht sich um $1$
-                  \item $\implies$ Überprüfung der Balance-Indizes muss beim Elternknoten von $E$ fortgesetzt werden
-              \end{itemize}
-        \item $\BF(E)$ wird $\pm 2$:
-              \begin{itemize}[-]
-                  \item $\BF(E)$ war vorher $\pm 1$
-                  \item $\implies$ Teilbaum muss \emph{rebalanciert} werden
-              \end{itemize}
-    \end{enumerate}
-\end{algo}
-
-\begin{algo}{Löschen in einem AVL-Baum}
-    Beim Löschen in einen AVL-Baum wird zu Beginn analog zu einem regulären Binärbaum gelöscht.
-
-    Anschließend wird sich der unmittelbare Elterknoten $E$ angeschaut und es gibt für den dortigen Balance-Index $\BF(E)$ drei Fälle:
-    \begin{enumerate}
-        \item $\BF(E)$ wird $\pm 1$:
-              \begin{itemize}[-]
-                  \item $\BF(E)$ war vorher $0$
-                  \item Höhe des Knotens ändert sich nicht
-                  \item oberhalb bleiben alle Balance-Indizes gleich
-                  \item $\implies$ AVL-Kriterium ist für den ganzen Baum erfüllt
-              \end{itemize}
-        \item $\BF(E)$ wird $0$:
-              \begin{itemize}[-]
-                  \item $\BF(E)$ war vorher $0$
-                  \item Höhe des Teilbaums verringert sich um $1$
-                  \item $\implies$ Überprüfung der Balance-Indizes muss beim Elternknoten von $E$ fortgesetzt werden
-              \end{itemize}
-        \item $\BF(E)$ wird $\pm 2$:
-              \begin{itemize}[-]
-                  \item $\BF(E)$ war vorher $\pm 1$
-                  \item $\implies$ Teilbaum muss \emph{rebalanciert} werden
-              \end{itemize}
-    \end{enumerate}
-\end{algo}
-
-\begin{algo}{Rebalancierung}
-    Wenn bei einer Opeation ein Höhenunterschied von mehr als $1$ zwischen zwei Geschwister-Teilbäumen entsteht, ist beim Elterknoten das AVL-Kriterium verletzt.
-    Eine entsprechende Korrektur heißt \emph{Rebalancierung}.
-    Als Werkzeuge eignen sich hierfür die sogenannten \emph{Rotationen}.
-\end{algo}
-
-\begin{algo}{Einfachrotation}
-    Wird ein AVL-Baum unbalanciert, wenn ein Knoten in den \emph{rechten Teilbaum des rechten Teilbaums} eingefügt wird (Rechts-Rechts-Situation), dann wird das durch eine \emph{Einfachrotation nach links} gelöst.
-
-    Zuletzt wurde $9$ eingefügt. Linksrotation in \textcolor{purple}{lila}.
-
-    \vspace{1em}
-
-    \begin{center}
-        \begin{forest}
-            baseline,anchor=north,
-            for tree={circle, draw,
-            minimum size=2em, % <-- added
-            inner sep=1pt}
-            [3%, label=right:{\small\textcolor{red}{+2}}
-            [1%, label=below right:{\small\textcolor{blue}{0}}
-                [,empty node]
-                [,empty node]
-            ]
-            [7, label=above:{\small\textcolor{red}{+2}}, draw=teal, name=7
-            [,empty node]
-            [8, label=right:{\small\textcolor{blue}{+1}}, draw=purple, edge={teal,thick}
-            [,empty node, name=8c]
-            [9, label=right:{\small\textcolor{blue}{0}}, edge={purple,thick},draw=purple
-            ]
-            ]
-            {\draw[->,purple] () to[bend right=45] node[midway,above right,font=\small]{Linksrotation} (!u.east);}
-            ]
-            ]
-            \draw[->,teal] (7) to[bend right=45] (8c);
-        \end{forest}
-        \hspace{5em}
-        \begin{forest}
-            baseline,anchor=north,
-            for tree={circle, draw,
-            minimum size=2em, % <-- added
-            inner sep=1pt}
-            [3, label=right:{\small\textcolor{blue}{+1}}
-            [1, label=right:{\small\textcolor{blue}{0}}
-            [,empty node]
-            [,empty node]
-            ]
-            [8, label=right:{\small\textcolor{blue}{0}}, draw=purple
-            [7, label=right:{\small\textcolor{blue}{0}}, draw=teal, edge={teal,thick}
-                [,empty node]
-                [,empty node]
-            ]
-            [9, label=right:{\small\textcolor{blue}{0}}, edge={purple,thick},draw=purple
-            [,empty node]
-            [,empty node]
-            ]
-            ]
-            ]
-        \end{forest}
-    \end{center}
-
-    \vspace{1em}
-
-    Wird ein AVL-Baum unbalanciert, wenn ein Knoten in den \emph{linken Teilbaum des linken Teilbaums} eingefügt wird (Links-Links-Situation), dann wird das durch eine \emph{Einfachrotation nach rechts} gelöst.
-
-    Zuletzt wurde $1$ eingefügt. Rechtsrotation in \textcolor{purple}{lila}.
-
-    \vspace{1em}
-
-    \begin{center}
-        \begin{forest}
-            baseline,anchor=north,
-            for tree={circle, draw,
-            minimum size=2em, % <-- added
-            inner sep=1pt}
-            [
-            7
-            [
-            3, label=above:{\small\textcolor{red}{-2}}, draw=teal, name=3
-            [
-            2, label=left:{\small\textcolor{blue}{-1}}, draw=purple, edge={teal,thick},draw=purple
-            [
-            1, label=left:{\small\textcolor{blue}{0}}, draw=purple, edge={purple,thick},draw=purple
-            ]
-            [,empty node, name=2c]
-            ]
-            {\draw[->,purple] () to[bend left=45] node[midway,above left,font=\small]{Rechtsrotation} (!u.west);}
-            [,empty node]
-            ]
-            [
-            8
-                [,empty node]
-                [,empty node]
-            ]
-            ]
-            \draw[->,teal] (3) to[bend left=45] (2c);
-        \end{forest}
-        \hspace{5em}
-        \begin{forest}
-            baseline,anchor=north,
-            for tree={circle, draw,
-            minimum size=2em, % <-- added
-            inner sep=1pt}
-            [
-            7, label=left:{\small\textcolor{blue}{-1}}
-            [
-            2, label=left:{\small\textcolor{blue}{0}}, draw=purple,draw=purple
-            [
-            1, label=left:{\small\textcolor{blue}{0}}, draw=purple, edge={purple,thick},draw=purple
-            [,empty node]
-            [,empty node]
-            ]
-            [3, label=left:{\small\textcolor{blue}{0}}, draw=teal, name=3, edge={teal,thick}
-                [,empty node]
-                [,empty node]
-            ]
-            ]
-            [
-            8, label=left:{\small\textcolor{blue}{0}}
-            [,empty node]
-            [,empty node]
-            ]
-            ]
-        \end{forest}
-    \end{center}
-\end{algo}
-
-\begin{algo}{Doppelrotation}
-    Wird ein AVL-Baum unbalanciert, wenn ein Knoten in den \emph{rechten Teilbaum des linken Teilbaums} eingefügt wird, dann wird das durch eine \emph{Doppelrotation} (Linksrotation, gefolgt von Rechtsrotation) gelöst.
-
-    Zuletzt wurde $4$ eingefügt. Rotationen in \textcolor{purple}{lila}.
-
-    \vspace{1em}
-
-    \begin{center}
-        \begin{forest}
-            baseline,anchor=north,
-            for tree={circle, draw,
-            minimum size=2em, % <-- added
-            inner sep=1pt}
-            [
-            7, label=left:{\small\textcolor{red}{-2}}
-            [
-            3, label=left:{\small\textcolor{blue}{+1}}, draw=teal, name=3
-            [,empty node]
-            [4, draw=purple, label=right:{\small\textcolor{blue}{0}}, edge={teal,thick},draw=purple
-            [,empty node, draw=none, edge={draw=none}, name=4c]
-            [,empty node, draw=none, edge={draw=none}]
-            ]
-            {\draw[->,purple] () to[bend right=45] node[midway,above right,font=\small]{Linksrotation} (!u.east);}
-            ]
-            [,empty node]
-            ]
-            \draw[->,teal] (3) to[bend right=45] (4c);
-        \end{forest}
-        \hspace{-2em}
-        \begin{forest}
-            baseline,anchor=north,
-            for tree={circle, draw,
-            minimum size=2em, % <-- added
-            inner sep=1pt}
-            [
-            7, draw=teal, name=7, label=right:{\small\textcolor{red}{-2}}
-            [
-            4, draw=purple, edge={teal,thick}, label=left:{\small\textcolor{blue}{-1}}
-            [
-            3, draw=purple, edge={purple,thick}, label=left:{\small\textcolor{blue}{0}}
-            [,empty node]
-            [,empty node]
-            ]
-            [,empty node, name=4c]
-            ]
-            {\draw[->,purple] () to[bend left=45] node[midway,above left,font=\small]{Rechtsrotation} (!u.west);}
-            [,empty node]
-            ]
-            \draw[->,teal] (7) to[bend left=45] (4c);
-        \end{forest}
-        \hspace{3em}
-        \begin{forest}
-            baseline,anchor=north,
-            for tree={circle, draw,
-            minimum size=2em, % <-- added
-            inner sep=1pt}
-            [
-            4, draw=purple, label=right:{\small\textcolor{blue}{0}}
-            [
-            3, draw=purple, edge={purple,thick}, label=right:{\small\textcolor{blue}{0}}
-            [,empty node]
-            [,empty node]
-            ]
-            [
-            7, draw=teal, edge={teal,thick}, label=right:{\small\textcolor{blue}{0}}
-            [,empty node]
-            [,empty node]
-            ]
-            ]
-        \end{forest}
-    \end{center}
-
-    \vspace{1em}
-
-    Wird ein AVL-Baum unbalanciert, wenn ein Knoten in den \emph{linken Teilbaum des rechten Teilbaums} eingefügt wird, dann wird das durch eine \emph{Doppelrotation} (Rechtsrotation, gefolgt von Linksrotation) gelöst.
-
-    Zuletzt wurde $3$ eingefügt. Rotationen in \textcolor{purple}{lila}.
-
-    \vspace{1em}
-
-    \begin{center}
-        \begin{forest}
-            baseline,anchor=north,
-            for tree={circle, draw,
-            minimum size=2em, % <-- added
-            inner sep=1pt}
-            [
-            2, label=right:{\small\textcolor{red}{+2}}
-            [,empty node]
-            [
-            5, label=right:{\small\textcolor{blue}{-1}}, draw=teal, name=5
-            [3, draw=purple, label=left:{\small\textcolor{blue}{0}}, edge={teal,thick},draw=purple
-            [,empty node, draw=none, edge={draw=none}]
-            [,empty node, draw=none, edge={draw=none}, name=3c]
-            ]
-            {\draw[->,purple] () to[bend left=45] node[midway,above left,font=\small]{Rechtsrotation} (!u.west);}
-            [,empty node]
-            ]
-            ]
-            \draw[->,teal] (5) to[bend left=45] (3c);
-        \end{forest}
-        \hspace{5em}
-        \begin{forest}
-            baseline,anchor=north,
-            for tree={circle, draw,
-            minimum size=2em, % <-- added
-            inner sep=1pt}
-            [
-            2, label=left:{\small\textcolor{red}{+2}}, draw=teal, name=2
-            [,empty node]
-            [
-            3, label=right:{\small\textcolor{blue}{+1}}, draw=purple, edge={teal,thick}
-            [,empty node, name=3c]
-            [5, draw=purple, label=right:{\small\textcolor{blue}{0}}, edge={purple,thick},draw=purple
-            [,empty node]
-            [,empty node]
-            ]
-            ]
-            {\draw[->,purple] () to[bend right=45] node[midway,above right,font=\small]{Linksrotation} (!u.east);}
-            ]
-            \draw[->,teal] (2) to[bend right=45] (3c);
-        \end{forest}
-        \hspace{1em}
-        \begin{forest}
-            baseline,anchor=north,
-            for tree={circle, draw,
-            minimum size=2em, % <-- added
-            inner sep=1pt}
-            [
-            3, label=right:{\small\textcolor{blue}{0}},draw=purple
-            [
-            2, label=right:{\small\textcolor{blue}{0}}, edge={teal,thick},draw=teal
-            [,empty node]
-            [,empty node]
-            ]
-            [
-            5, label=right:{\small\textcolor{blue}{0}}, edge={purple,thick},draw=purple
-            [,empty node]
-            [,empty node]
-            ]
-            ]
-        \end{forest}
-    \end{center}
-\end{algo}
-
-
-\begin{defi}{Komplexität von AVL-Bäumen}
-    \begin{itemize}
-        \item Einfügen
-              \begin{itemize}
-                  \item Element muss gesucht werden: $\bigo(\log n)$
-                  \item Element muss angehängt werden: $\bigo(1)$
-                  \item Baum muss ausgeglichen werden: $\bigo(\log n)$
-              \end{itemize}
-        \item Löschen
-              \begin{itemize}
-                  \item Element muss gesucht werden: $\bigo(\log n)$
-                  \item nächstgrößeres Element muss gesucht werden: $\bigo(\log n)$
-                  \item Elemente müssen verschoben werden: $\bigo(1)$
-                  \item Baum muss ausgeglichen werden: $\bigo(\log n)$
-              \end{itemize}
-        \item Prüfen/Auslesen
-              \begin{itemize}
-                  \item Element muss gesucht werden: $\bigo(\log n)$
-              \end{itemize}
-    \end{itemize}
-\end{defi}
-
-\subsection{B-Bäume}
-% B-Bäume
-
-\begin{defi}{B-Baum}
-    Jeder Knoten in einem \emph{B-Baum der Ordnung d} enthält $d$ bis $2d$ Elemente.
-
-    Die Wurzel bildet die einzige Ausnahme, sie kann $1$ bis $2d$ Elemente enthalten.
-
-    Die Elemente in einem Knoten sind aufsteigend sortiert.
-
-    Die Anzahl der Kinder in einem B-Baum ist entweder $0$ (Blatt) oder um eins größer als die Anzahl der Elemente, die der Knoten enthält.
-
-    Alle Blätter liegen auf demselben Level.
-    \begin{itemize}[-]
-        \item garantierte Zugriffszeiten
-        \item bei realistischen Parametern (z.B. Ordnung $1000$) sind sehr wenige ($<5$) Zugriffe auf das externe Medium nötig
-    \end{itemize}
-
-    B-Bäume besitzen ausgeglichene Höhe, lassen aber unausgeglichenen Verzweigungsgrad und Knotenfüllgrad zu.
-
-    Der längste Weg in einem B-Baum der Ordnung $d$ ist in $\bigo(\log_{d+1} n)$.
-
-    B-Baum der Ordnung $2$:
-    \vspace{1em}
-
-    \centering
-    \begin{forest}
-        for tree = {
-        draw,
-        rectangle split, rectangle split horizontal,
-        rectangle split parts=4,
-        %on chain=A,
-        parent anchor=south,
-        child anchor=north,
-        text width=1em,
-        text centered,
-        %edge = {->},
-        l sep=12mm,
-        s sep=2em,
-        }
-        [{\mpnc{\textcolor{red}{30}}{\textcolor{violet}{38}}{\textcolor{blue}{42}}{\times}}
-            [{\mpnc{10}{20}{25}{\times}}, name=c1, edge path={
-                        \noexpand\path [draw, \forestoption{edge}] ([xshift=-3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-                    }]
-            [{\mpnc{32}{34}{35}{\times}}, name=c2, edge path={
-                        \noexpand\path [draw, \forestoption{edge}] ([xshift=-1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-                    }]
-            [{\mpnc{40}{41}{\times}{\times}}, name=c3, edge path={
-                        \noexpand\path [draw, \forestoption{edge}] (!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-                    }]
-            [{\mpnc{44}{50}{56}{58}}, name=c4, edge path={
-                        \noexpand\path [draw, \forestoption{edge}] ([xshift=1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-                    }]
-        ]
-        \node[fit=(c1), label=below:{$\in [-\infty, \text{\textcolor{red}{30}}]$}] {};
-        \node[fit=(c2), label=below:{$\in [\text{\textcolor{red}{30}}, \text{\textcolor{purple}{38}}]$}] {};
-        \node[fit=(c3), label=below:{$\in [\text{\textcolor{purple}{38}}, \text{\textcolor{blue}{42}}]$}] {};
-        \node[fit=(c4), label=below:{$\in [\text{\textcolor{blue}{42}}, \infty]$}] {};
-    \end{forest}
-\end{defi}
-
-\begin{algo}{Suchen in einem B-Baum}
-    Ausgehend von der Wurzel:
-    \begin{enumerate}
-        \item Prüfe, ob der gerade betrachtete Knoten den gesuchten Schlüssel $m$ enthält.
-              \subitem (Suche innerhalb eines Knotens entweder linear oder binär.)
-        \item Falls nicht, bestimme den kleinsten Schlüssel $k_i$, der größer als $m$ ist.
-              \begin{itemize}
-                  \item $k_i$ gefunden: Weiter bei Schritt 1 mit linkem Kind von $k_i$ ($p_{i-1}$)
-                  \item $k_i$ nicht gefunden: Weiter mit letztem Kind ($p_{n}$)
-              \end{itemize}
-    \end{enumerate}
-\end{algo}
-
-\begin{algo}{Einfügen in einem B-Baum der Ordnung $d$}
-    \begin{enumerate}
-        \item Suche nach Schlüssel endet in einem Blatt \texttt{node} (in \textcolor{purple}{lila})
-        \item Schlüssel wird in Sortierreihenfolge eingefügt (und neuer leerer Verweis eingefügt)
-        \item Falls \texttt{node} überfüllt ist: \texttt{node} aufteilen
-              \subitem $k$ sei mittlerer Eintrag von \texttt{node}
-              \begin{enumerate}
-                  \item Neuen Knoten \texttt{current} anlegen und mit den $d$ größeren Schlüsseln (rechts von $k$) belegen.
-                  \item Die $d$ kleineren Schlüssel (links von $k$) bleiben in \texttt{node}.
-                  \item $k$ in Elterknoten \texttt{parent} von \texttt{node} verschieben.
-                  \item Verweis rechts von $k$ in \texttt{parent} mit \texttt{current} verbinden.
-              \end{enumerate}
-        \item Falls \texttt{parent} nun überfüllt ist: \texttt{parent} aufteilen (Siehe Schritt 3)
-    \end{enumerate}
-
-    Einfügen der 60 in \textcolor{red}{rot}.
-
-    \vspace{1em}
-
-    \centering
-    \begin{forest}
-        for tree = {
-        draw,
-        rectangle split, rectangle split horizontal,
-        rectangle split parts=4,
-        %on chain=A,
-        parent anchor=south,
-        child anchor=north,
-        text width=1em,
-        text centered,
-        %edge = {->},
-        l sep=12mm,
-        s sep=1em,
-        }
-        [{\mpnc{30}{38}{42}{\times}}
-            [{\mpnc{10}{20}{25}{\times}}, name=c1, edge path={
-                        \noexpand\path [draw, \forestoption{edge}] ([xshift=-3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-                    }]
-            [{\mpnc{32}{34}{35}{\times}}, name=c2, edge path={
-                        \noexpand\path [draw, \forestoption{edge}] ([xshift=-1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-                    }]
-            [{\mpnc{40}{41}{\times}{\times}}, name=c3, edge path={
-                        \noexpand\path [draw, \forestoption{edge}] (!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-                    }]
-            [{\mpnc{44}{50}{56}{58}}, name=c4, edge={dashed,purple,thick}, draw=purple, edge path={
-                        \noexpand\path [draw, \forestoption{edge}] ([xshift=1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-                    }]
-        ]
-        \node[draw, above of=c4, rectangle, red, node distance=5em] (60) {60};
-        \draw[->, red] (60) to (c4);
-    \end{forest}
-
-    \vspace{1em}
-
-    \begin{forest}
-        for tree = {
-        draw,
-        rectangle split, rectangle split horizontal,
-        rectangle split parts=4,
-        %on chain=A,
-        parent anchor=south,
-        child anchor=north,
-        text width=1em,
-        text centered,
-        %edge = {->},
-        l sep=12mm,
-        s sep=1em,
-        }
-        [{\mpnc{30}{38}{42}{\times}}, name=r
-        [{\mpnc{10}{20}{25}{\times}}, name=c1, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=-3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        [{\mpnc{32}{34}{35}{\times}}, name=c2, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=-1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        [{\mpnc{40}{41}{\times}{\times}}, name=c3]
-        [{\mpnc{44}{50}{\times}{\times}}, name=c4, draw=red, edge={draw=none}]
-        [{\mpnc{58}{\textcolor{red}{60}}{\times}{\times}}, name=c5, draw=red, edge={draw=none}]
-        ]
-        \node[draw, above right of=c4, rectangle, blue, node distance=sqrt(2)*4em] (56) {56};
-        \draw[->, blue, bend right=15] (56) to (r);
-    \end{forest}
-
-    \vspace{1em}
-
-    \begin{forest}
-        for tree = {
-        draw,
-        rectangle split, rectangle split horizontal,
-        rectangle split parts=4,
-        %on chain=A,
-        parent anchor=south,
-        child anchor=north,
-        text width=1em,
-        text centered,
-        %edge = {->},
-        l sep=12mm,
-        s sep=1em,
-        }
-        [{\mpnc{30}{38}{42}{\textcolor{blue}{56}}}, name=r
-        [{\mpnc{10}{20}{25}{\times}}, name=c1, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=-3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        [{\mpnc{32}{34}{35}{\times}}, name=c2, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=-1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        [{\mpnc{40}{41}{\times}{\times}}, name=c3]
-        [{\mpnc{44}{50}{\times}{\times}}, name=c4, draw=red, edge={red}, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        [{\mpnc{58}{\textcolor{red}{60}}{\times}{\times}}, name=c5, draw=red, edge={red}, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        ]
-    \end{forest}
-\end{algo}
-
-\begin{algo}{Löschen in einem B-Baum der Ordnung $d$ (Blatt)}
-    In einem Blatt mit Struktur
-    \begin{center}
-        \texttt{(null, $k_1$, null, $\ldots$, $k_i$, null, $\ldots$, $k_n$, null)}
-    \end{center}
-    (\texttt{null} sind hier die Kinder an der jeweiligen Stelle)
-    wird der Wert $x = k_i$ zusammen mit der darauf folgenden \texttt{null}-Referenz gelöscht.
-
-    Ein \emph{Underflow} tritt auf, falls $n=d$ war.
-\end{algo}
-
-\begin{algo}{Löschen in einem B-Baum der Ordnung $d$ (Innerer Knoten)}
-    In einem inneren Knoten mit Struktur
-
-    \begin{center}
-        \texttt{($p_0$, $k_1$, $p_1$, $\ldots$, $k_i$, $p_i$, $\ldots$, $k_n$, $p_n$)}
-    \end{center}
-
-    ($p_j$ sind hier die Kinder an der jeweiligen Stelle)
-    haben alle Referenzen einen Wert ungleich \texttt{null}.
-
-    Das Löschen eines Wertes $x = k_i$ funktioniert analog zum Löschen aus einem binären Suchbaum:
-    \begin{enumerate}
-        \item Finde kleinsten Schlüssel $s$ im durch $p_i$ referenzierten Teilbaum (in einem Blatt)
-        \item Ersetze $k_i$ durch $s$ und lösche $s$ aus dem Blatt
-    \end{enumerate}
-
-    Löschen der 38 in \textcolor{red}{rot}.
-
-    \centering
-    \vspace{1em}
-
-    \begin{forest}
-        for tree = {
-        draw,
-        rectangle split, rectangle split horizontal,
-        rectangle split parts=4,
-        %on chain=A,
-        parent anchor=south,
-        child anchor=north,
-        text width=1em,
-        text centered,
-        %edge = {->},
-        l sep=12mm,
-        s sep=1em,
-        }
-        [{\mpnc{30}{\textcolor{red}{38}}{42}{56}}, name=r
-        [{\mpnc{10}{20}{25}{\times}}, name=c1, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=-3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        [{\mpnc{32}{34}{35}{\times}}, name=c2, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=-1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        [{\mpnc{40}{41}{\times}{\times}}, name=c3]
-        [{\mpnc{44}{50}{\times}{\times}}, name=c4, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        [{\mpnc{58}{60}{\times}{\times}}, name=c5, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        ]
-    \end{forest}
-
-    \vspace{1em}
-
-    \begin{forest}
-        for tree = {
-        draw,
-        rectangle split, rectangle split horizontal,
-        rectangle split parts=4,
-        %on chain=A,
-        parent anchor=south,
-        child anchor=north,
-        text width=1em,
-        text centered,
-        %edge = {->},
-        l sep=12mm,
-        s sep=1em,
-        }
-        [{\mpnc{30}{\phantom{38}}{42}{56}}, name=r
-        [{\mpnc{10}{20}{25}{\times}}, name=c1, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=-3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        [{\mpnc{32}{34}{35}{\times}}, name=c2, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=-1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        [{\mpnc{\textcolor{blue}{40}}{41}{\times}{\times}}, name=c3]
-        [{\mpnc{44}{50}{\times}{\times}}, name=c4, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        [{\mpnc{58}{60}{\times}{\times}}, name=c5, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        ]
-        \draw[->, blue] ([xshift=-2.55em] c3.north) to[bend left=15] ([xshift=-0.75em]r.south);
-    \end{forest}
-
-    \vspace{1em}
-
-    \begin{forest}
-        for tree = {
-        draw,
-        rectangle split, rectangle split horizontal,
-        rectangle split parts=4,
-        %on chain=A,
-        parent anchor=south,
-        child anchor=north,
-        text width=1em,
-        text centered,
-        %edge = {->},
-        l sep=12mm,
-        s sep=1em,
-        }
-        [{\mpnc{30}{\textcolor{blue}{40}}{42}{56}}, name=r
-        [{\mpnc{10}{20}{25}{\times}}, name=c1, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=-3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        [{\mpnc{32}{34}{35}{\times}}, name=c2, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=-1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        [{\mpnc{41}{\times}{\times}{\times}}, name=c3, draw=purple, label=below:\textcolor{purple}{Underflow!}]
-        [{\mpnc{44}{50}{\times}{\times}}, name=c4, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        [{\mpnc{58}{60}{\times}{\times}}, name=c5, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        ]
-    \end{forest}
-\end{algo}
-
-\begin{defi}{Underflow}
-    Ein \emph{Underflow} tritt in einem B-Baum genau dann auf, wenn zu wenig ($<d$) Schlüssel im Knoten sind.
-\end{defi}
-
-\begin{algo}{Ausgleich zwischen Geschwisterknoten}
-    Voraussetzung: Knoten $q$ mit Underflow hat einen Geschwisterknoten $p$ mit $>d$ Schlüsseln.
-
-    Annahme:
-    \begin{itemize}
-        \item $p$ ist linker Geschwisterknoten von $q$ (analog mit rechtem Geschwisterknoten)
-        \item im Elterknoten \texttt{parent} (von $p$ und $q$) trennt der Schlüssel $t$ die Verweise auf $p$ und $q$
-    \end{itemize}
-
-    Idee: $p$ schenkt $q$ ein Element (\glqq Umweg\grqq über Elterknoten)
-
-    \begin{forest}
-        for tree = {
-        draw,
-        rectangle split, rectangle split horizontal,
-        rectangle split parts=4,
-        %on chain=A,
-        parent anchor=south,
-        child anchor=north,
-        text width=1em,
-        text centered,
-        %edge = {->},
-        l sep=12mm,
-        s sep=1em,
-        }
-        [{\mpnc{30}{\textcolor{blue}{40}}{42}{56}}, name=r
-        [{\mpnc{10}{20}{25}{\times}}, name=c1, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=-3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        [{\mpnc{32}{34}{\textcolor{blue}{35}}{\times}}, name=c2, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=-1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        [{\mpnc{41}{\times}{\times}{\times}}, name=c3, draw=purple]
-        [{\mpnc{44}{50}{\times}{\times}}, name=c4, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        [{\mpnc{58}{60}{\times}{\times}}, name=c5, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        ]
-        \draw[->, blue] ([xshift=0.75em] c2.north) to[bend left=90] ([xshift=2.25em] r.north west);
-        \draw[<-, blue] ([xshift=-3.4em] c3.north) to[bend right=10] ([xshift=-0.75em] r.south);
-    \end{forest}
-
-    \vspace{1em}
-
-    \begin{forest}
-        for tree = {
-        draw,
-        rectangle split, rectangle split horizontal,
-        rectangle split parts=4,
-        %on chain=A,
-        parent anchor=south,
-        child anchor=north,
-        text width=1em,
-        text centered,
-        %edge = {->},
-        l sep=12mm,
-        s sep=1em,
-        }
-        [{\mpnc{30}{\textcolor{blue}{35}}{42}{56}}, name=r
-        [{\mpnc{10}{20}{25}{\times}}, name=c1, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=-3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        [{\mpnc{32}{34}{\times}{\times}}, name=c2, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=-1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        [{\mpnc{\textcolor{blue}{40}}{41}{\times}{\times}}, name=c3]
-        [{\mpnc{44}{50}{\times}{\times}}, name=c4, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        [{\mpnc{58}{60}{\times}{\times}}, name=c5, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        ]
-    \end{forest}
-\end{algo}
-
-\begin{algo}{Verschmelzen von Geschwisterknoten}
-    Voraussetzung: Knoten $q$ hat Geschwisterknoten mit $d$ Schlüsseln
-
-    Annahme:
-    \begin{itemize}
-        \item $p$ ist linker Geschwisterknoten von $q$ (analog mit rechtem Geschwisterknoten)
-        \item im Elterknoten \texttt{parent} (von $p$ und $q$) trennt der Schlüssel $t$ die Verweise auf $p$ und $q$
-    \end{itemize}
-
-    Idee: $p$ und $q$ mit dem trennenden Element aus \texttt{parent} verschmelzen.
-
-    Beachte:
-    \begin{itemize}
-        \item Eventueller Underflow in \texttt{parent} muss behandelt werden (rekursiv)
-        \item Falls letzter Schlüssel der Wurzel gelöscht wird, wird der einzige Nachfolger der Wurzel die neue Wurzel (Höhe des B-Baums wird um 1 verringert).
-    \end{itemize}
-
-    \vspace{1em}
-
-    \centering
-    \begin{forest}
-        for tree = {
-        draw,
-        rectangle split, rectangle split horizontal,
-        rectangle split parts=4,
-        %on chain=A,
-        parent anchor=south,
-        child anchor=north,
-        text width=1em,
-        text centered,
-        %edge = {->},
-        l sep=12mm,
-        s sep=1em,
-        }
-        [{\mpnc{30}{40}{\textcolor{blue}{42}}{56}}, name=r
-        [{\mpnc{10}{20}{25}{\times}}, name=c1, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=-3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        [{\mpnc{32}{34}{35}{\times}}, name=c2, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=-1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        [{\mpnc{41}{\times}{\times}{\times}}, name=c3, draw=purple]
-        [{\mpnc{44}{50}{\times}{\times}}, name=c4, draw=blue, edge={blue}, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        [{\mpnc{58}{60}{\times}{\times}}, name=c5, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        ]
-        \draw[<-, blue] ([xshift=-0.75em] c3.north) to[bend left=10] ([xshift=0.75em] r.south);
-        \draw[<-, blue] ([xshift=0.75em] c3.north) to[bend left=45] ([xshift=-3.4em] c4.north);
-    \end{forest}
-
-    \vspace{1em}
-
-    \begin{forest}
-        for tree = {
-        draw,
-        rectangle split, rectangle split horizontal,
-        rectangle split parts=4,
-        %on chain=A,
-        parent anchor=south,
-        child anchor=north,
-        text width=1em,
-        text centered,
-        %edge = {->},
-        l sep=12mm,
-        s sep=1em,
-        }
-        [{\mpnc{30}{40}{56}{\times}}, name=r
-        [{\mpnc{10}{20}{25}{\times}}, name=c1, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=-3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        [{\mpnc{32}{34}{35}{\times}}, name=c2, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=-1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        [{\mpnc{41}{\textcolor{blue}{42}}{\textcolor{blue}{44}}{\textcolor{blue}{50}}}, name=c3]
-        [{\mpnc{58}{60}{\times}{\times}}, name=c5, edge path={
-                \noexpand\path [draw, \forestoption{edge}] ([xshift=1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
-            }]
-        ]
-    \end{forest}
-\end{algo}
-
-\begin{defi}{B+-Baum}
-    Im Unterschied zu B-Bäumen speichern \emph{B+-Bäume} ihre Datensätze ausschließlich in den Blättern.
-
-    Dies ist bei der Anwendung für Datenbanken naheliegend und sinnvoll.
-\end{defi}
-
-\subsection{Rot-Schwarz-Bäume}
-
-\begin{defi}{Rot-Schwarz-Baum}
-    Ein \emph{Rot-Schwarz-Baum} ist ein balancierter binärer Suchbaum, in dem jeder innere Knoten zwei Kinder hat.
-
-    Jeder innere Knoten hat eine Farbe, so dass gilt:
-    \begin{itemize}
-        \item Die Wurzel ist schwarz.
-        \item Alle Blätter (\text{null}-Knoten) sind schwarz.
-        \item Für jeden Knoten gilt, dass jeder Pfad zu den Blättern die gleiche Anzahl an schwarzen Knoten hat. (Schwarz-Tiefe)
-        \item Beide Kinder eines roten Knotens sind schwarz.
-    \end{itemize}
-\end{defi}
-
-\begin{algo}{Einfügen in einen Rot-Schwarz-Baum}
-    Zuerst wird wie in einem normalen Binärbaum eingefügt, danach werden die Rot-Schwarz-Bedingungen repariert.
-
-    Annahmen:
-    \begin{itemize}
-        \item eingefügter Knoten $v$ ist rot
-        \item Elterknoten $u$ von $v$ ist rot (sonst fertig)
-        \item $v$ ist linkes Kind von $u$ (anderer Fall symmetrisch)
-        \item Geschwisterknoten $w$ (rechtes Kind von $u$) ist schwarz
-        \item Alle roten Knoten außer $u$ haben 2 schwarze Kinder
-    \end{itemize}
-
-
-    \begin{center}
-
-        \begin{forest}
-            baseline,anchor=north,
-            for tree={circle, draw,
-                    minimum size=2em, % <-- added
-                    inner sep=1pt}
-                [
-                    p, b
-                        [
-                            u, r
-                                [
-                                    v, r
-                                ]
-                                [
-                                    w, b, name=w
-                                ]
-                        ]
-                        [
-                            q, rbn
-                        ]
-                ]
-        \end{forest}
-        \hspace{7em}
-        \begin{forest}
-            baseline,anchor=north,
-            for tree={circle, draw,
-                    minimum size=2em, % <-- added
-                    inner sep=1pt}
-                [
-                    p, b
-                        [
-                            q, rbn
-                        ]
-                        [
-                            u, r
-                                [
-                                    v, r
-                                ]
-                                [
-                                    w, b, name=w
-                                ]
-                        ]
-                ]
-        \end{forest}
-    \end{center}
-\end{algo}
-
-\begin{algo}{Einfügen in einen Rot-Schwarz-Baum (Fall 1)}
-
-    \textbf{Fall 1: Onkelknoten $q$ von $v$ ist schwarz}\\
-    Fall 1a: $u$ ist linkes Kind von $p$ ($v$-$u$-$p$ bilden eine Linie)
-    \vspace{1em}
-
-    \begin{center}
-        \begin{forest}
-            baseline,anchor=north,
-            for tree={circle, draw,
-                    minimum size=2em, % <-- added
-                    inner sep=1pt}
-                [
-                    p, b
-                        [
-                            u, r
-                                [
-                                    v, r
-                                ]
-                                [
-                                    w, b, name=w
-                                ]
-                            %{\draw[->,blue, dashed] () to[bend left=30] (!u.south);}
-                        ]
-                        {\draw[->,blue] () to[bend left=45] node[midway,above left,font=\small]{Rechtsrotation} (!u.west);}
-                        [
-                            q, b
-                        ]
-                ]
-            %{\draw[->,blue, dashed] () to[bend left=45] (w.north east);}
-        \end{forest}
-        \hspace{3em}
-        \begin{forest}
-            baseline,anchor=north,
-            for tree={circle, draw,
-                    minimum size=2em, % <-- added
-                    inner sep=1pt}
-                [
-                    u, r
-                        [
-                            v, r
-                        ]
-                        [
-                            p, b
-                                [
-                                    w, b
-                                ]
-                                [
-                                    q, b
-                                ]
-                        ]
-                        {\draw[<->,blue] () to[bend right=45] node[midway,above right,font=\small]{Umfärben} (!u.east);}
-                ]
-            %{\draw[->,blue, dashed] () to[bend left=45] (w.north east);}
-        \end{forest}
-        \hspace{1em}
-        \begin{forest}
-            baseline,anchor=north,
-            for tree={circle, draw,
-                    minimum size=2em, % <-- added
-                    inner sep=1pt}
-                [
-                    u, b
-                        [
-                            v, r
-                        ]
-                        [
-                            p, r
-                                [
-                                    w, b
-                                ]
-                                [
-                                    q, b
-                                ]
-                        ]
-                    %{\draw[<->,blue] () to[bend right=45] node[midway,above right,font=\small]{Umfärben} (!u.east);}
-                ]
-            %{\draw[->,blue, dashed] () to[bend left=45] (w.north east);}
-        \end{forest}
-    \end{center}
-
-    \vspace{1em}
-    Fall 1b: $u$ ist rechtes Kind von $p$ ($v$-$u$-$p$ bilden ein Dreieck)
-
-    \begin{center}
-        \begin{forest}
-            baseline,anchor=north,
-            for tree={circle, draw,
-                    minimum size=2em, % <-- added
-                    inner sep=1pt}
-                [
-                    p, b
-                        [
-                            q, b
-                        ]
-                        [
-                            u, r
-                                [
-                                    v, r
-                                ]
-                                {\draw[->,blue] () to[bend left=45] node[midway,below left=1em,font=\small]{Rechtsrotation} (!u.west);}
-                                [
-                                    w, b, name=w
-                                ]
-                            %{\draw[->,blue, dashed] () to[bend left=30] (!u.south);}
-                        ]
-                ]
-            %{\draw[->,blue, dashed] () to[bend left=45] (w.north east);}
-        \end{forest}
-        \hspace{5em}
-        \begin{forest}
-            baseline,anchor=north,
-            for tree={circle, draw,
-                    minimum size=2em, % <-- added
-                    inner sep=1pt}
-                [
-                    p, b
-                        [
-                            q, b
-                        ]
-                        [
-                            v, r
-                                [,nil]
-                                [
-                                    u, r
-                                        [,nil]
-                                        [
-                                            w, b
-                                        ]
-                                ]
-                        ]
-                        {\draw[->,blue] () to[bend right=45] node[midway,above right,font=\small]{Linksrotation} (!u.east);}
-                ]
-        \end{forest}
-
-        \vspace{1em}
-
-        \begin{forest}
-            baseline,anchor=north,
-            for tree={circle, draw,
-                    minimum size=2em, % <-- added
-                    inner sep=1pt}
-                [
-                    v, r
-                        [
-                            p, b
-                                [
-                                    q, b
-                                ]
-                                [, nil]
-                        ]
-                        {\draw[<->,blue] () to[bend left=45] node[midway,above left,font=\small]{Umfärben} (!u.west);}
-                        [
-                            u, r
-                                [, nil]
-                                [
-                                    w, b
-                                ]
-                        ]
-                ]
-        \end{forest}
-        \hspace{2em}
-        \begin{forest}
-            baseline,anchor=north,
-            for tree={circle, draw,
-                    minimum size=2em, % <-- added
-                    inner sep=1pt}
-                [
-                    v, b
-                        [
-                            p, r
-                                [
-                                    q, b
-                                ]
-                                [, nil]
-                        ]
-                        [
-                            u, r
-                                [, nil]
-                                [
-                                    w, b
-                                ]
-                        ]
-                ]
-        \end{forest}
-    \end{center}
-\end{algo}
-
-\begin{algo}{Einfügen in einen Rot-Schwarz-Baum (Fall 2)}
-    \textbf{Fall 2: Geschwisterknoten $q$ von $u$ ist rot}
-
-    \begin{center}
-        \begin{forest}
-            baseline,anchor=north,
-            for tree={circle, draw,
-            minimum size=2em, % <-- added
-            inner sep=1pt}
-            [
-            p, b, name=p
-            [
-            u, r, name=u
-            [
-            v, r
-            ]
-            [
-            w, b, name=w
-            ]
-            ]
-            [
-            q, r, name=q
-            ]
-            ]
-            \node [draw, fit={(p)(u)(q)}, blue, label=above:\textcolor{blue}{Umfärben}] () {};
-        \end{forest}
-        \hspace{7em}
-        \begin{forest}
-            baseline,anchor=north,
-            for tree={circle, draw,
-                    minimum size=2em, % <-- added
-                    inner sep=1pt}
-                [
-                    p, r
-                        [
-                            u, b
-                                [
-                                    v, r
-                                ]
-                                [
-                                    w, b, name=w
-                                ]
-                        ]
-                        [
-                            q, b
-                        ]
-                ]
-        \end{forest}
-    \end{center}
-
-    \vspace{1em}
-
-    beziehungsweise
-
-    \vspace{1em}
-
-    \begin{center}
-        \begin{forest}
-            baseline,anchor=north,
-            for tree={circle, draw,
-            minimum size=2em, % <-- added
-            inner sep=1pt}
-            [
-            p, b, name=p
-            [
-            q, r, name=q
-            ]
-            [
-            u, r, name=u
-            [
-            v, r
-            ]
-            [
-            w, b, name=w
-            ]
-            ]
-            ]
-            \node [draw, fit={(p)(u)(q)}, blue, label=above:\textcolor{blue}{Umfärben}] () {};
-        \end{forest}
-        \hspace{7em}
-        \begin{forest}
-            baseline,anchor=north,
-            for tree={circle, draw,
-                    minimum size=2em, % <-- added
-                    inner sep=1pt}
-                [
-                    p, r
-                        [
-                            q, b
-                        ]
-                        [
-                            u, b
-                                [
-                                    v, r
-                                ]
-                                [
-                                    w, b, name=w
-                                ]
-                        ]
-                ]
-        \end{forest}
-    \end{center}
-
-    \vspace{1em}
-
-    \begin{itemize}
-        \item Falls der Elterknoten von $p$ schwarz ist, sind wir fertig
-        \item Falls $p$ die Wurzel ist, färbe $p$ schwarz
-        \item Sonst behandle $p$ wie $v$ und wiederhole
-    \end{itemize}
-\end{algo}
-
-\begin{algo}{Löschen in einem Rot-Schwarz-Baum}
-    Das Löschen in einem Rot-Schwarz-Baum kann schnell sehr schwierig zu visualisieren werden.
-
-    Ich will hier gern einmal folgende Videos empfehlen:
-    \begin{itemize}
-        \item \url{https://youtu.be/eO3GzpCCUSg} (ausführliche Beispiele, englisch)
-        \item \url{https://youtu.be/bDT1woMULVw} (ausführliche Erklärung, Pseudocode, deutsch)
-    \end{itemize}
-\end{algo}
-
-\subsection{Heaps}
-
-\begin{bonus}{Heap (Wortbedeutungen)}
-    Das Wort \emph{Heap} hat zwei Bedeutungen:
-    \begin{itemize}
-        \item Besonderer Speicherbereich, in dem Objekte und Klassen gespeichert werden.
-        \item Datenstruktur zur effizienten Implementierung einer Prioritätswarteschlange.
-    \end{itemize}
-\end{bonus}
-
-\begin{defi}{Heap}
-    Ein \emph{Heap} ist ein Binärbaum mit folgenden Eigenschaften:
-    \begin{itemize}
-        \item linksvollständig
-        \item Kinder eines Knotens höchstens so groß wie der Knoten selbst (Max-Heap)
-        \item größtes Element befindet sich an der Wurzel (Max-Heap)
-        \item entlang jedes Pfades von einem Knoten zur Wurzel sind Knoteninhalte aufsteigend sortiert
-    \end{itemize}
-\end{defi}
-
-\begin{algo}{Einfügen in einem Heap}
-    Das Einfügen eines Elements in den Heap erfolgt, indem das neue Element an das Ende des Heaps gesetzt wird.
-
-    Weil das neu eingesetzte Element  die Eigenschaften des Heaps verzerren kann, wird die Operation \emph{Up-Heapify} durchgeführt, um die Eigenschaften des Heaps in einem Bottom-up-Ansatz zu erhalten.
-\end{algo}
-
-\begin{algo}{Löschen in einem Heap}
-    Das Entfernen eines Elements erfolgt, indem das gelöscht Element durch das letzte Element im Heap ersetzt wird. Dann wird das letzte Element aus dem Heap gelöscht. Nun wird das letzte Element an einer Stelle im Heap platziert.
-
-    Es kann die Heap-Bedingung nicht erfüllen, sodass die Operation \emph{Down-Heapify} durchgeführt wird, um die Eigenschaften des Heaps aufrechtzuerhalten.
-\end{algo}
-
-\begin{defi}{Heapify}
-    Heapify ist eine Operation, um die Elemente des Heaps neu anzuordnen, um die Heap-Bedingung aufrechtzuerhalten.
-
-    Die Heapify kann in zwei Methoden erfolgen:
-    \begin{itemize}
-        \item Up-Heapify (erfolgt beim Einfügen)
-        \item Down-Heapify (erfolgt beim Löschen)
-    \end{itemize}
-
-\end{defi}
-
-\begin{algo}{Up-Heapify (Einfügen)}
-    Einfügen der $90$ in \textcolor{red}{rot}.
-
-    \vspace{1em}
-    \begin{center}
-        \scalebox{0.9}{
-            \begin{forest}
-                baseline,anchor=north,
-                for tree={circle, draw,
-                minimum size=2em, % <-- added
-                inner sep=1pt}
-                [
-                90
-                [
-                36
-                [
-                25
-                    [
-                        2
-                        %[,empty node]
-                        %[,empty node]
-                    ]
-                    [
-                        3
-                        %[,empty node]
-                        %[,empty node]
-                    ]
-                ]
-                [
-                26,draw=blue
-                [
-                19
-                %[,empty node]
-                %[,empty node]
-                ]
-                [45 ,edge={red,thick}, draw=red]
-                {\draw[<->,blue] () to[bend right=45] node[midway,below right,font=\small]{Vertauschen} (!u.east);}
-                ]
-                ]
-                [
-                17
-                    [
-                        7
-                            [,empty node]
-                            [,empty node]
-                    ]
-                    [
-                        1
-                            [,empty node]
-                            [,empty node]
-                    ]
-                ]
-                ]
-            \end{forest}
-        }
-        \hspace{1em}
-        \scalebox{0.9}{
-            \begin{forest}
-                baseline,anchor=north,
-                for tree={circle, draw,
-                minimum size=2em, % <-- added
-                inner sep=1pt}
-                [
-                90
-                [
-                36,draw=blue
-                [
-                25
-                    [
-                        2
-                        %[,empty node]
-                        %[,empty node]
-                    ]
-                    [
-                        3
-                        %[,empty node]
-                        %[,empty node]
-                    ]
-                ]
-                [
-                45,edge={red,thick}, draw=red
-                [
-                19
-                %[,empty node]
-                %[,empty node]
-                ]
-                [26,edge={teal,thick}, draw=teal]
-                ]
-                {\draw[<->,blue] () to[bend right=45] node[midway,above right,font=\small]{Vertauschen} (!u.east);}
-                ]
-                [
-                17
-                    [
-                        7
-                            [,empty node]
-                            [,empty node]
-                    ]
-                    [
-                        1
-                            [,empty node]
-                            [,empty node]
-                    ]
-                ]
-                ]
-            \end{forest}
-        }
-
-        \vspace{1em}
-
-        \scalebox{0.9}{
-            \begin{forest}
-                baseline,anchor=north,
-                for tree={circle, draw,
-                minimum size=2em, % <-- added
-                inner sep=1pt}
-                [
-                90,draw=teal
-                [
-                45,edge={teal,thick}, draw=teal
-                [
-                25
-                    [
-                        2
-                        %[,empty node]
-                        %[,empty node]
-                    ]
-                    [
-                        3
-                        %[,empty node]
-                        %[,empty node]
-                    ]
-                ]
-                [
-                36,edge={teal,thick}, draw=teal
-                [
-                19
-                %[,empty node]
-                %[,empty node]
-                ]
-                [26,edge={teal,thick}, draw=teal]
-                ]
-                ]
-                [
-                17
-                    [
-                        7
-                            [,empty node]
-                            [,empty node]
-                    ]
-                    [
-                        1
-                            [,empty node]
-                            [,empty node]
-                    ]
-                ]
-                ]
-            \end{forest}
-        }
-    \end{center}
-\end{algo}
-
-\begin{algo}{Down-Heapify (Löschen)}
-    Löschen der $90$ in \textcolor{red}{rot}.
-
-    \vspace{1em}
-    \begin{center}
-
-        \scalebox{0.9}{
-            \begin{forest}
-                baseline,anchor=north,
-                for tree={circle, draw,
-                minimum size=2em, % <-- added
-                inner sep=1pt}
-                [
-                90,draw=red
-                [
-                45
-                    [
-                        25
-                            [
-                                2
-                                %[,empty node]
-                                %[,empty node]
-                            ]
-                            [
-                                3
-                                %[,empty node]
-                                %[,empty node]
-                            ]
-                    ]
-                    [
-                        36
-                            [
-                                19
-                                %[,empty node]
-                                %[,empty node]
-                            ]
-                            [26
-                            ]
-                    ]
-                ]
-                [
-                17
-                    [
-                        7
-                            [,empty node]
-                            [,empty node]
-                    ]
-                    [
-                        1
-                            [,empty node]
-                            [,empty node]
-                    ]
-                ]
-                ]
-            \end{forest}
-        }
-        \hspace{1em}
-        \scalebox{0.9}{
-            \begin{forest}
-                baseline,anchor=north,
-                for tree={circle, draw,
-                        minimum size=2em, % <-- added
-                        inner sep=1pt}
-                    [
-                        ,empty node, name=90
-                            [
-                                45
-                                    [
-                                        25
-                                            [
-                                                2
-                                                %[,empty node]
-                                                %[,empty node]
-                                            ]
-                                            [
-                                                3
-                                                %[,empty node]
-                                                %[,empty node]
-                                            ]
-                                    ]
-                                    [
-                                        36
-                                            [
-                                                19
-                                                %[,empty node]
-                                                %[,empty node]
-                                            ]
-                                            [26, draw=blue, name=26
-                                            ]
-                                    ]
-                            ]
-                            [
-                                17
-                                    [
-                                        7
-                                            [,empty node]
-                                            [,empty node]
-                                    ]
-                                    [
-                                        1
-                                            [,empty node]
-                                            [,empty node]
-                                    ]
-                            ]
-                    ]
-                \draw[->, blue] (26) to[bend right=45] node[midway,above left,font=\small]{Nachrücken} (90);
-            \end{forest}
-        }
-
-        \vspace{1em}
-
-        \scalebox{0.9}{
-            \begin{forest}
-                baseline,anchor=north,
-                for tree={circle, draw,
-                minimum size=2em, % <-- added
-                inner sep=1pt}
-                [
-                26, draw=red
-                [
-                45, edge={draw=red},draw=blue
-                [
-                25
-                    [
-                        2
-                        %[,empty node]
-                        %[,empty node]
-                    ]
-                    [
-                        3
-                        %[,empty node]
-                        %[,empty node]
-                    ]
-                ]
-                [
-                36
-                    [
-                        19
-                        %[,empty node]
-                        %[,empty node]
-                    ]
-                    [,empty node]
-                ]
-                ]
-                {\draw[<->,blue] () to[bend left=45] node[midway,above left,font=\small]{Vertauschen} (!u.west);}
-                [
-                17
-                    [
-                        7
-                            [,empty node]
-                            [,empty node]
-                    ]
-                    [
-                        1
-                            [,empty node]
-                            [,empty node]
-                    ]
-                ]
-                ]
-            \end{forest}
-        }
-        \hspace{1em}
-        \scalebox{0.9}{
-            \begin{forest}
-                baseline,anchor=north,
-                for tree={circle, draw,
-                minimum size=2em, % <-- added
-                inner sep=1pt}
-                [
-                45,draw=teal
-                [
-                26, draw=red, edge={draw=teal}
-                [
-                25
-                    [
-                        2
-                        %[,empty node]
-                        %[,empty node]
-                    ]
-                    [
-                        3
-                        %[,empty node]
-                        %[,empty node]
-                    ]
-                ]
-                [
-                36, edge={draw=red},draw=blue
-                [
-                19
-                %[,empty node]
-                %[,empty node]
-                ]
-                [,empty node]
-                ]
-                {\draw[<->,blue] () to[bend right=45] node[midway,above right,font=\small]{Vertauschen} (!u.east);}
-                ]
-                [
-                17
-                    [
-                        7
-                            [,empty node]
-                            [,empty node]
-                    ]
-                    [
-                        1
-                            [,empty node]
-                            [,empty node]
-                    ]
-                ]
-                ]
-            \end{forest}
-        }
-
-        \vspace{1em}
-
-        \scalebox{0.9}{
-            \begin{forest}
-                baseline,anchor=north,
-                for tree={circle, draw,
-                minimum size=2em, % <-- added
-                inner sep=1pt}
-                [
-                45,draw=teal
-                [
-                36, draw=teal, edge={draw=teal}
-                [
-                25
-                    [
-                        2
-                        %[,empty node]
-                        %[,empty node]
-                    ]
-                    [
-                        3
-                        %[,empty node]
-                        %[,empty node]
-                    ]
-                ]
-                [
-                26, edge={draw=teal},draw=teal
-                [
-                19, edge={draw=teal},draw=teal
-                %[,empty node]
-                %[,empty node]
-                ]
-                [,empty node]
-                ]
-                ]
-                [
-                17
-                    [
-                        7
-                            [,empty node]
-                            [,empty node]
-                    ]
-                    [
-                        1
-                            [,empty node]
-                            [,empty node]
-                    ]
-                ]
-                ]
-            \end{forest}
-        }
-    \end{center}
-\end{algo}
-
-% Baumdurchlauf
+\section{Bäume}
+
+\begin{defi}{Baum}
+    Ein \emph{Baum} ist eine hierarchische (rekursive) Datenstruktur.
+    Es gilt:
+    \begin{itemize}
+        \item alle Wege gehen von einer \emph{Wurzel} aus
+        \item $A$ heißt \emph{Vorgänger} von $B$ bzw. $B$ \emph{Nachfolger} von $A$, wenn $A$ auf einem Weg von der Wurzel zu $B$ liegt
+        \item $A$ heißt \emph{Elterknoten} von $B$, bzw. $B$ heißt \emph{Kind} von $A$, wenn $(A, B) \in E$
+        \item Knoten ohne Kinder heißen \emph{Blätter}
+        \item Knoten mit Kindern heißen \emph{innere Knoten}
+        \item ein Knoten $S$ mit allen Nachfolgern wird \emph{Teilbaum} eines Baumes $T$ genannt, falls $S$ nicht Wurzel von $T$ ist
+        \item der \emph{Verzweigungsgrad} eines Knotens ist die Anzahl seiner Kinder
+    \end{itemize}
+
+    \vspace{1em}
+
+    \begin{center}
+        \begin{forest}
+            for tree={s sep=5mm, fit=band}
+            [Wurzel, name=root
+            [Blatt, name=blatt1]
+            [Innerer Knoten, name=inner1 [Blatt, name=blatt2]
+            [Innerer Knoten, name=inner2
+            [Blatt, name=blatt3]
+            [Innerer Knoten, name=inner3 [Blatt, name=blatt4]
+            [Blatt, name=blatt5]]]]]
+            \node [draw, label=left:Level 0, dashed, fit={(root) (blatt1.west |- root.center) (inner3.east |- root.center)}] {};
+            \node [draw, label=left:Level 1, dashed, fit={(blatt1) (inner3.east |- blatt1.center)}] {};
+            \node [draw, label=left:Level 2, dashed, fit={(blatt2) (blatt1.west |- blatt2.center) (inner3.east |- blatt2.center)}] {};
+            \node [draw, label=left:Level 3, dashed, fit={(blatt3) (blatt1.west |- blatt3.center) (inner3)}] {};
+            \node [draw, label=left:Level 4, dashed, fit={(blatt4) (blatt1.west |- blatt5.center) (blatt5) (inner3.east |- blatt5.center)}] {};
+            \node [draw, red, fit={(inner2) (inner3) (blatt5) (blatt3)},label=right:{\color{red}Teilbaum}] {};
+        \end{forest}
+    \end{center}
+\end{defi}
+
+% Binärbäume
+
+\begin{defi}{Binärbaum}
+    Die Knoten eines \emph{Binärbaums (binary tree)} haben höchstens den Verzweigungsgrad $2$.
+
+    Bei einem \emph{geordneten Binärbaum} ist die Reihenfolge der Kinder durch die Indizes eindeutig festgelegt:
+    \begin{itemize}
+        \item $T_l$: linkes Kind, linker Teilbaum
+        \item $T_r$: rechtes Kind, rechter Teilbaum
+    \end{itemize}
+
+    Ein Binärbaum heißt \emph{minimal} (bezogen auf die Höhe), wenn kein Binärbaum mit gleicher Knotenzahl aber kleinerer Höhe existiert.
+
+    Ein \emph{links-vollständiger Binärbaum} ist ein minimaler Binärbaum, in dem die Knoten auf dem untersten Level so weit wie möglich links stehen.
+
+    Alle Blätter eines \emph{vollständigen Binärbaums} haben den gleichen Level und dieser ist vollbesetzt.
+
+    Ein vollständiger Binärbaum der Höhe $H$ hat
+    $$
+        n = 1 + 2 + 4 + \ldots + 2^H = \frac{2^{H+1}-1}{2-1} = 2^{H+1}-1 \ \text{Knoten}
+    $$
+\end{defi}
+
+\begin{halfboxl}
+    \begin{example}{Linksvollständiger Binärbaum}
+        \centering
+        \begin{forest}
+            for tree={circle, draw,
+            minimum size=1.75em, % <-- added
+            inner sep=1pt}
+            [
+            [
+                    [
+                            []
+                                []
+                        ]
+                        [
+                            []
+                                []
+                        ]
+                ]
+                [
+                    []
+                        []
+                ]
+            ]
+        \end{forest}
+    \end{example}
+\end{halfboxl}
+\begin{halfboxr}
+    \begin{example}{Vollständiger Binärbaum}
+        \centering
+        \begin{forest}
+            for tree={circle, draw,
+            minimum size=1.75em, % <-- added
+            inner sep=1pt}
+            [
+            [
+                    [
+                            []
+                                []
+                        ]
+                        [
+                            []
+                                []
+                        ]
+                ]
+                [
+                    [
+                            []
+                                []
+                        ]
+                        [
+                            []
+                                []
+                        ]
+                ]
+            ]
+        \end{forest}
+    \end{example}
+\end{halfboxr}
+
+\subsection{Binäre Suchbäume}
+% Binäre Suchbäume
+
+\begin{defi}{Binärer Suchbaum}
+    Ein \emph{binärer Suchbaum} ist ein Binärbaum, bei dem für jeden Knoten des Baumes gilt:
+
+    Alle Schlüssel im linken Teilbaum sind kleiner, alle im rechten Teilbaum sind größer oder gleich dem Schlüssel in diesem Knoten.
+\end{defi}
+
+\begin{algo}{Suchen im binären Suchbaum}
+    Suchen ist ohne Probleme durch einfaches Vergleichen ($<$ bzw. $\geq$) möglich.
+
+    Suchen der $50$ in \textcolor{red}{rot} bzw. (erfolgloses) Suchen der $80$ in \textcolor{blue}{blau}.
+
+    \vspace{1em}
+
+    \centering
+    \forestset{%
+        empty node/.style={dashed}
+    }
+    \begin{forest}
+        for tree={circle, draw,
+        minimum size=2em, % <-- added
+        inner sep=1pt}
+        [60
+        [
+        20,edge={->,dashed,red,thick}
+        [10 [,empty node][,empty node]]
+        [30,edge={->,dashed,red,thick}
+        [,empty node]
+        [50,edge={->,dashed,red,thick}, draw=red [,empty node][,empty node]]
+        ]
+        ]
+        [
+        70,edge={->,dashed,blue,thick}
+            [,empty node]
+            [110,edge={->,dashed,blue,thick}
+                    [90,edge={->,dashed,blue,thick}
+                            [,empty node,edge={->,dashed,blue,thick},draw=blue][,empty node]
+                    ]
+                    [,empty node]
+            ]
+        ]
+        ]
+    \end{forest}
+\end{algo}
+
+\begin{algo}{Einfügen im binären Suchbaum}
+    Ein Knoten kann ohne Probleme hinzugefügt werden, indem man solange sucht, bis man auf einen leeren Kindknoten trifft und dort einfügt.
+
+    Einfügen der $40$ in \textcolor{red}{rot}.
+
+    \vspace{1em}
+
+    \centering
+    \begin{forest}
+        for tree={circle, draw,
+        minimum size=2em, % <-- added
+        inner sep=1pt}
+        [60
+            [
+                20,edge={->,dashed,red,thick}
+                    [10 [,empty node][,empty node]]
+                    [30,edge={->,dashed,red,thick}
+                            [,empty node]
+                            [50,edge={->,dashed,red,thick} [
+                                        40,edge={->,dashed,red,thick},draw=red
+                                    ][,empty node]]
+                    ]
+            ]
+            [
+                70
+                    [,empty node]
+                    [110
+                            [90
+                                    [,empty node][,empty node]
+                            ]
+                            [,empty node]
+                    ]
+            ]
+        ]
+    \end{forest}
+\end{algo}
+
+\begin{algo}{Löschen im binären Suchbaum (Blatt)}
+    Ein Blatt kann problemlos gelöscht werden.
+
+    Löschen der $50$ in \textcolor{red}{rot}.
+
+    \vspace{1em}
+
+    \centering
+    \begin{forest}
+        baseline,anchor=north,
+        for tree={circle, draw,
+        minimum size=2em, % <-- added
+        inner sep=1pt}
+        [20,edge={->,dashed,red,thick}
+        [10
+            [,empty node]
+            [,empty node]
+        ]
+        [30,edge={->,dashed,red,thick}
+        [,empty node]
+        [50,edge={->,dashed,red,thick}, draw=red
+        [,empty node]
+        [,empty node]
+        ]
+        ]
+        ]
+    \end{forest}
+    \hspace{5em}
+    \begin{forest}
+        baseline,anchor=north,
+        for tree={circle, draw,
+                minimum size=2em, % <-- added
+                inner sep=1pt}
+            [20
+                    [10
+                            [,empty node]
+                            [,empty node]
+                    ]
+                    [30
+                            [,empty node]
+                            [,empty node,draw=red]
+                    ]
+            ]
+    \end{forest}
+\end{algo}
+
+\begin{algo}{Löschen im binären Suchbaum (Innerer Knoten mit einem Kind)}
+    Soll ein innerer Knoten mit einem Kind gelöscht werden, rückt das Kind an die Stelle des Elterknotens.
+
+    Löschen der $30$ in \textcolor{red}{rot}.
+
+    \vspace{1em}
+
+    \centering
+    \begin{forest}
+        baseline,anchor=north,
+        for tree={circle, draw,
+        minimum size=2em, % <-- added
+        inner sep=1pt}
+        [20,edge={->,dashed,red,thick}
+        [10
+            [,empty node]
+            [,empty node]
+        ]
+        [30,edge={->,dashed,red,thick}, draw=red
+        [,empty node]
+        [50,draw=blue
+        [,empty node]
+        [,empty node]
+        ]
+        {\draw[->,blue] () to[bend right=45] node[midway,above right,font=\small]{Vorrücken} (!u.east);}
+        ]
+        ]
+    \end{forest}
+    \hspace{5em}
+    \begin{forest}
+        baseline,anchor=north,
+        for tree={circle, draw,
+        minimum size=2em, % <-- added
+        inner sep=1pt}
+        [20
+        [10
+            [,empty node]
+            [,empty node]
+        ]
+        [50,draw=blue
+        [,empty node]
+        [,empty node]
+        ]
+        ]
+    \end{forest}
+\end{algo}
+
+\begin{algo}{Löschen im binären Suchbaum (Innerer Knoten mit zwei Kindern)}
+    Soll ein innerer Knoten mit zwei Kindern gelöscht werden, nimmt der nächstgrößere Knoten seinen Platz ein.
+
+    Dieser wird wie folgt ermittelt (in \textcolor{purple}{lila}):
+    \begin{enumerate}
+        \item Gehe einen Schritt nach rechts.
+        \item Gehe solange nach links, bis es kein linkes Kind mehr gibt.
+    \end{enumerate}
+
+    Löschen der $20$ in \textcolor{red}{rot}.
+
+    \vspace{1em}
+
+    \centering
+    \begin{forest}
+        baseline,anchor=north,
+        for tree={circle, draw,
+        minimum size=2em, % <-- added
+        inner sep=1pt}
+        [20,draw=red
+        [10
+            [,empty node]
+            [,empty node]
+        ]
+        [30,edge={->,dashed,purple,thick},draw=purple
+        [,empty node,edge={->,dashed,purple,thick}]
+        [50
+            [,empty node]
+            [,empty node]
+        ]
+        ]{\draw[->,blue] () to[bend right=45] node[midway,above right,font=\small]{Platz einnehmen} (!u.east);}
+        ]
+    \end{forest}
+    %\hspace{1em}
+    \begin{forest}
+        baseline,anchor=north,
+        for tree={circle, draw,
+        minimum size=2em, % <-- added
+        inner sep=1pt}
+        [30,draw=purple
+        [10
+            [,empty node]
+            [,empty node]
+        ]
+        [,empty node
+        %[,empty node]
+        [50,draw=blue
+        [,empty node]
+        [,empty node]
+        ]
+        {\draw[->,blue] () to[bend right=45] node[midway,above right,font=\small]{Vorrücken} (!u.east);}
+        ]
+        ]
+    \end{forest}
+    %\hspace{1em}
+    \begin{forest}
+        baseline,anchor=north,
+        for tree={circle, draw,
+        minimum size=2em, % <-- added
+        inner sep=1pt}
+        [30,draw=purple
+        [10
+            [,empty node]
+            [,empty node]
+        ]
+        [50,draw=blue
+        [,empty node]
+        [,empty node]
+        ]
+        ]
+    \end{forest}
+\end{algo}
+
+\begin{bonus}{Komplexität beim Suchen, Löschen und Einfügen in Binärbäumen}
+    Die Komplexität der Funktionen Suchen, Löschen und Einfügen werden durch die Komplexität des Suchens eines Elements bestimmt.
+
+    Im schlechtesten Fall ist die Anzahl der zu durchsuchenden Elemente gleich der Höhe des Baumes $+1$.
+    Dabei hängt die Höhe stark von der Reihenfolge der Einfügeoperationen ab.
+
+    \vspace{1em}
+
+    \centering
+    \begin{forest}
+        baseline,anchor=north,
+        for tree={circle, draw,
+                minimum size=2em, % <-- added
+                inner sep=1pt}
+            [10
+                    [,empty node]
+                    [
+                        20
+                            [,empty node]
+                            [
+                                30
+                                    [,empty node]
+                                    [
+                                        40
+                                            [,empty node]
+                                            [
+                                                50
+                                                    [,empty node]
+                                                    [
+                                                        60
+                                                            [,empty node]
+                                                            [,empty node]
+                                                    ]
+                                            ]
+                                    ]
+                            ]
+                    ]
+            ]
+    \end{forest}
+    \hspace{5em}
+    \begin{forest}
+        baseline,anchor=north,
+        for tree={circle, draw,
+                minimum size=2em, % <-- added
+                inner sep=1pt}
+            [
+                40
+                    [
+                        20
+                            [
+                                10
+                                    [,empty node]
+                                    [,empty node]
+                            ]
+                            [
+                                30
+                                    [,empty node]
+                                    [,empty node]
+                            ]
+                    ]
+                    [
+                        50
+                            [,empty node]
+                            [
+                                60
+                                    [,empty node]
+                                    [,empty node]
+                            ]
+                    ]
+            ]
+    \end{forest}
+\end{bonus}
+
+% Balancierte Bäume
+
+\begin{defi}{Balanciertheit}
+
+    Ein Binärbaum mit $n$ Knoten hat im besten Fall (\emph{optimal balanciert}) die Höhe
+    $$
+        H = \lceil \log_2(n+1) \rceil - 1 = \lfloor \log_2(n) \rfloor
+    $$
+    Dabei ist Suchen in $\bigo(\log n)$.
+
+    Ein Binärbaum mit $n$ Knoten hat im schlechtesten Fall (\emph{entartet/degeneriert}) die Höhe
+    $$
+        H = n-1
+    $$
+    Dabei ist Suchen in $\bigo(n)$.
+\end{defi}
+
+\begin{defi}{Balance-Kriterien}
+    \begin{enumerate}
+        \item Abgeschwächtes Kriterium für ausgeglichene Höhe
+              \begin{itemize}
+                  \item lokale Umordnungsoperationen reichen aus
+                  \item z.B. \emph{AVL-Bäume} und Rot-Schwarz-Bäume
+              \end{itemize}
+        \item Jeder neue Knoten wandert an die Wurzel des Baumes
+              \begin{itemize}
+                  \item Vorteil: Zuletzt eingefügte Elemente lassen sich schneller finden
+                  \item durch spezielles Einfügeverfahren wird Baum zusätzlich (teilweise) ausgeglichen
+                  \item z.B. Splay-Bäume
+              \end{itemize}
+        \item Unausgeglichener Verzweigungsgrad ermöglicht ausgeglichene Höhe
+              \begin{itemize}
+                  \item z.B. \emph{B-Bäume}
+              \end{itemize}
+    \end{enumerate}
+\end{defi}
+
+\subsection{AVL-Bäume}
+
+% AVL-Bäume
+
+\begin{defi}{AVL-Baum}
+    Bei einem \emph{AVL-Baum} unterscheiden sich die Höhen zweier Teilbäume des gleichen Knotens maximal um $1$.
+
+    Der sogenannte \emph{Balance-Index} (oder Balance-Faktor) $\BF$ eines Knotens $T$ ist die Differenz
+    $$
+        \BF(T) := H(T_r) - H(T_l)
+    $$
+    Dabei gilt:
+    \begin{itemize}
+        \item Jeder Knoten hat einen Balance-Index.
+        \item Er darf nur die Werte $-1$, $0$ oder $1$ annehmen.
+    \end{itemize}
+
+    %\vspace{2em}
+
+    \centering
+    \begin{forest}
+        baseline,anchor=north,
+        for tree={circle, draw,
+        minimum size=2em, % <-- added
+        inner sep=1pt}
+        [
+        J, label=right:{\small\textcolor{blue}{+1}}
+        [
+        F, label=right:{\small\textcolor{blue}{-1}}
+        [
+        D, label=right:{\small\textcolor{blue}{-1}}
+        [
+        C, label=left:{\small\textcolor{blue}{0}}
+        [,empty node]
+        [,empty node]
+        ]
+        [,empty node]
+        ]
+        [
+        G, label=right:{\small\textcolor{blue}{0}}
+        [,empty node]
+        [,empty node]
+        ]
+        ]
+        [
+        P, label=right:{\small\textcolor{blue}{+1}}
+        [
+        L, label=right:{\small\textcolor{blue}{+1}}
+        [,empty node]
+        [
+        N, label=right:{\small\textcolor{blue}{0}}
+        [,empty node]
+        [,empty node]
+        ]
+        ]
+        [
+        V, label=right:{\small\textcolor{blue}{-1}}
+        [
+        S, label=right:{\small\textcolor{blue}{0}}
+        [
+        Q, label=right:{\small\textcolor{blue}{0}}
+        [,empty node]
+        [,empty node]
+        ]
+        [
+        U, label=left:{\small\textcolor{blue}{0}}
+        [,empty node]
+        [,empty node]
+        ]
+        ]
+        [
+        X, label=right:{\small\textcolor{blue}{0}}
+        [,empty node]
+        [,empty node]
+        ]
+        ]
+        ]
+        ]
+    \end{forest}
+\end{defi}
+
+\begin{algo}{Einfügen in einem AVL-Baum}
+    Beim Einfügen in einen AVL-Baum wird zu Beginn analog zu einem regulären Binärbaum eingefügt.
+
+    Anschließend wird sich der unmittelbare Elterknoten $E$ angeschaut und es gibt für den dortigen Balance-Index $\BF(E)$ drei Fälle:
+    \begin{enumerate}
+        \item $\BF(E)$ wird $0$:
+              \begin{itemize}[-]
+                  \item $\BF(E)$ war vorher $-1$
+                  \item man kommt von einem Kindbaum, der vorher niedriger war
+                  \item Höhe des Knotens ändert sich nicht
+                  \item oberhalb bleiben alle Balance-Indizes gleich
+                  \item $\implies$ AVL-Kriterium ist für den ganzen Baum erfüllt
+              \end{itemize}
+        \item $\BF(E)$ wird $\pm 1$:
+              \begin{itemize}[-]
+                  \item $\BF(E)$ war vorher $0$
+                  \item Höhe des Teilbaums erhöht sich um $1$
+                  \item $\implies$ Überprüfung der Balance-Indizes muss beim Elternknoten von $E$ fortgesetzt werden
+              \end{itemize}
+        \item $\BF(E)$ wird $\pm 2$:
+              \begin{itemize}[-]
+                  \item $\BF(E)$ war vorher $\pm 1$
+                  \item $\implies$ Teilbaum muss \emph{rebalanciert} werden
+              \end{itemize}
+    \end{enumerate}
+\end{algo}
+
+\begin{algo}{Löschen in einem AVL-Baum}
+    Beim Löschen in einen AVL-Baum wird zu Beginn analog zu einem regulären Binärbaum gelöscht.
+
+    Anschließend wird sich der unmittelbare Elterknoten $E$ angeschaut und es gibt für den dortigen Balance-Index $\BF(E)$ drei Fälle:
+    \begin{enumerate}
+        \item $\BF(E)$ wird $\pm 1$:
+              \begin{itemize}[-]
+                  \item $\BF(E)$ war vorher $0$
+                  \item Höhe des Knotens ändert sich nicht
+                  \item oberhalb bleiben alle Balance-Indizes gleich
+                  \item $\implies$ AVL-Kriterium ist für den ganzen Baum erfüllt
+              \end{itemize}
+        \item $\BF(E)$ wird $0$:
+              \begin{itemize}[-]
+                  \item $\BF(E)$ war vorher $0$
+                  \item Höhe des Teilbaums verringert sich um $1$
+                  \item $\implies$ Überprüfung der Balance-Indizes muss beim Elternknoten von $E$ fortgesetzt werden
+              \end{itemize}
+        \item $\BF(E)$ wird $\pm 2$:
+              \begin{itemize}[-]
+                  \item $\BF(E)$ war vorher $\pm 1$
+                  \item $\implies$ Teilbaum muss \emph{rebalanciert} werden
+              \end{itemize}
+    \end{enumerate}
+\end{algo}
+
+\begin{algo}{Rebalancierung}
+    Wenn bei einer Opeation ein Höhenunterschied von mehr als $1$ zwischen zwei Geschwister-Teilbäumen entsteht, ist beim Elterknoten das AVL-Kriterium verletzt.
+    Eine entsprechende Korrektur heißt \emph{Rebalancierung}.
+    Als Werkzeuge eignen sich hierfür die sogenannten \emph{Rotationen}.
+\end{algo}
+
+\begin{algo}{Einfachrotation}
+    Wird ein AVL-Baum unbalanciert, wenn ein Knoten in den \emph{rechten Teilbaum des rechten Teilbaums} eingefügt wird (Rechts-Rechts-Situation), dann wird das durch eine \emph{Einfachrotation nach links} gelöst.
+
+    Zuletzt wurde $9$ eingefügt. Linksrotation in \textcolor{purple}{lila}.
+
+    \vspace{1em}
+
+    \begin{center}
+        \begin{forest}
+            baseline,anchor=north,
+            for tree={circle, draw,
+            minimum size=2em, % <-- added
+            inner sep=1pt}
+            [3%, label=right:{\small\textcolor{red}{+2}}
+            [1%, label=below right:{\small\textcolor{blue}{0}}
+                [,empty node]
+                [,empty node]
+            ]
+            [7, label=above:{\small\textcolor{red}{+2}}, draw=teal, name=7
+            [,empty node]
+            [8, label=right:{\small\textcolor{blue}{+1}}, draw=purple, edge={teal,thick}
+            [,empty node, name=8c]
+            [9, label=right:{\small\textcolor{blue}{0}}, edge={purple,thick},draw=purple
+            ]
+            ]
+            {\draw[->,purple] () to[bend right=45] node[midway,above right,font=\small]{Linksrotation} (!u.east);}
+            ]
+            ]
+            \draw[->,teal] (7) to[bend right=45] (8c);
+        \end{forest}
+        \hspace{5em}
+        \begin{forest}
+            baseline,anchor=north,
+            for tree={circle, draw,
+            minimum size=2em, % <-- added
+            inner sep=1pt}
+            [3, label=right:{\small\textcolor{blue}{+1}}
+            [1, label=right:{\small\textcolor{blue}{0}}
+            [,empty node]
+            [,empty node]
+            ]
+            [8, label=right:{\small\textcolor{blue}{0}}, draw=purple
+            [7, label=right:{\small\textcolor{blue}{0}}, draw=teal, edge={teal,thick}
+                [,empty node]
+                [,empty node]
+            ]
+            [9, label=right:{\small\textcolor{blue}{0}}, edge={purple,thick},draw=purple
+            [,empty node]
+            [,empty node]
+            ]
+            ]
+            ]
+        \end{forest}
+    \end{center}
+
+    \vspace{1em}
+
+    Wird ein AVL-Baum unbalanciert, wenn ein Knoten in den \emph{linken Teilbaum des linken Teilbaums} eingefügt wird (Links-Links-Situation), dann wird das durch eine \emph{Einfachrotation nach rechts} gelöst.
+
+    Zuletzt wurde $1$ eingefügt. Rechtsrotation in \textcolor{purple}{lila}.
+
+    \vspace{1em}
+
+    \begin{center}
+        \begin{forest}
+            baseline,anchor=north,
+            for tree={circle, draw,
+            minimum size=2em, % <-- added
+            inner sep=1pt}
+            [
+            7
+            [
+            3, label=above:{\small\textcolor{red}{-2}}, draw=teal, name=3
+            [
+            2, label=left:{\small\textcolor{blue}{-1}}, draw=purple, edge={teal,thick},draw=purple
+            [
+            1, label=left:{\small\textcolor{blue}{0}}, draw=purple, edge={purple,thick},draw=purple
+            ]
+            [,empty node, name=2c]
+            ]
+            {\draw[->,purple] () to[bend left=45] node[midway,above left,font=\small]{Rechtsrotation} (!u.west);}
+            [,empty node]
+            ]
+            [
+            8
+                [,empty node]
+                [,empty node]
+            ]
+            ]
+            \draw[->,teal] (3) to[bend left=45] (2c);
+        \end{forest}
+        \hspace{5em}
+        \begin{forest}
+            baseline,anchor=north,
+            for tree={circle, draw,
+            minimum size=2em, % <-- added
+            inner sep=1pt}
+            [
+            7, label=left:{\small\textcolor{blue}{-1}}
+            [
+            2, label=left:{\small\textcolor{blue}{0}}, draw=purple,draw=purple
+            [
+            1, label=left:{\small\textcolor{blue}{0}}, draw=purple, edge={purple,thick},draw=purple
+            [,empty node]
+            [,empty node]
+            ]
+            [3, label=left:{\small\textcolor{blue}{0}}, draw=teal, name=3, edge={teal,thick}
+                [,empty node]
+                [,empty node]
+            ]
+            ]
+            [
+            8, label=left:{\small\textcolor{blue}{0}}
+            [,empty node]
+            [,empty node]
+            ]
+            ]
+        \end{forest}
+    \end{center}
+\end{algo}
+
+\begin{algo}{Doppelrotation}
+    Wird ein AVL-Baum unbalanciert, wenn ein Knoten in den \emph{rechten Teilbaum des linken Teilbaums} eingefügt wird, dann wird das durch eine \emph{Doppelrotation} (Linksrotation, gefolgt von Rechtsrotation) gelöst.
+
+    Zuletzt wurde $4$ eingefügt. Rotationen in \textcolor{purple}{lila}.
+
+    \vspace{1em}
+
+    \begin{center}
+        \begin{forest}
+            baseline,anchor=north,
+            for tree={circle, draw,
+            minimum size=2em, % <-- added
+            inner sep=1pt}
+            [
+            7, label=left:{\small\textcolor{red}{-2}}
+            [
+            3, label=left:{\small\textcolor{blue}{+1}}, draw=teal, name=3
+            [,empty node]
+            [4, draw=purple, label=right:{\small\textcolor{blue}{0}}, edge={teal,thick},draw=purple
+            [,empty node, draw=none, edge={draw=none}, name=4c]
+            [,empty node, draw=none, edge={draw=none}]
+            ]
+            {\draw[->,purple] () to[bend right=45] node[midway,above right,font=\small]{Linksrotation} (!u.east);}
+            ]
+            [,empty node]
+            ]
+            \draw[->,teal] (3) to[bend right=45] (4c);
+        \end{forest}
+        \hspace{-2em}
+        \begin{forest}
+            baseline,anchor=north,
+            for tree={circle, draw,
+            minimum size=2em, % <-- added
+            inner sep=1pt}
+            [
+            7, draw=teal, name=7, label=right:{\small\textcolor{red}{-2}}
+            [
+            4, draw=purple, edge={teal,thick}, label=left:{\small\textcolor{blue}{-1}}
+            [
+            3, draw=purple, edge={purple,thick}, label=left:{\small\textcolor{blue}{0}}
+            [,empty node]
+            [,empty node]
+            ]
+            [,empty node, name=4c]
+            ]
+            {\draw[->,purple] () to[bend left=45] node[midway,above left,font=\small]{Rechtsrotation} (!u.west);}
+            [,empty node]
+            ]
+            \draw[->,teal] (7) to[bend left=45] (4c);
+        \end{forest}
+        \hspace{3em}
+        \begin{forest}
+            baseline,anchor=north,
+            for tree={circle, draw,
+            minimum size=2em, % <-- added
+            inner sep=1pt}
+            [
+            4, draw=purple, label=right:{\small\textcolor{blue}{0}}
+            [
+            3, draw=purple, edge={purple,thick}, label=right:{\small\textcolor{blue}{0}}
+            [,empty node]
+            [,empty node]
+            ]
+            [
+            7, draw=teal, edge={teal,thick}, label=right:{\small\textcolor{blue}{0}}
+            [,empty node]
+            [,empty node]
+            ]
+            ]
+        \end{forest}
+    \end{center}
+
+    \vspace{1em}
+
+    Wird ein AVL-Baum unbalanciert, wenn ein Knoten in den \emph{linken Teilbaum des rechten Teilbaums} eingefügt wird, dann wird das durch eine \emph{Doppelrotation} (Rechtsrotation, gefolgt von Linksrotation) gelöst.
+
+    Zuletzt wurde $3$ eingefügt. Rotationen in \textcolor{purple}{lila}.
+
+    \vspace{1em}
+
+    \begin{center}
+        \begin{forest}
+            baseline,anchor=north,
+            for tree={circle, draw,
+            minimum size=2em, % <-- added
+            inner sep=1pt}
+            [
+            2, label=right:{\small\textcolor{red}{+2}}
+            [,empty node]
+            [
+            5, label=right:{\small\textcolor{blue}{-1}}, draw=teal, name=5
+            [3, draw=purple, label=left:{\small\textcolor{blue}{0}}, edge={teal,thick},draw=purple
+            [,empty node, draw=none, edge={draw=none}]
+            [,empty node, draw=none, edge={draw=none}, name=3c]
+            ]
+            {\draw[->,purple] () to[bend left=45] node[midway,above left,font=\small]{Rechtsrotation} (!u.west);}
+            [,empty node]
+            ]
+            ]
+            \draw[->,teal] (5) to[bend left=45] (3c);
+        \end{forest}
+        \hspace{5em}
+        \begin{forest}
+            baseline,anchor=north,
+            for tree={circle, draw,
+            minimum size=2em, % <-- added
+            inner sep=1pt}
+            [
+            2, label=left:{\small\textcolor{red}{+2}}, draw=teal, name=2
+            [,empty node]
+            [
+            3, label=right:{\small\textcolor{blue}{+1}}, draw=purple, edge={teal,thick}
+            [,empty node, name=3c]
+            [5, draw=purple, label=right:{\small\textcolor{blue}{0}}, edge={purple,thick},draw=purple
+            [,empty node]
+            [,empty node]
+            ]
+            ]
+            {\draw[->,purple] () to[bend right=45] node[midway,above right,font=\small]{Linksrotation} (!u.east);}
+            ]
+            \draw[->,teal] (2) to[bend right=45] (3c);
+        \end{forest}
+        \hspace{1em}
+        \begin{forest}
+            baseline,anchor=north,
+            for tree={circle, draw,
+            minimum size=2em, % <-- added
+            inner sep=1pt}
+            [
+            3, label=right:{\small\textcolor{blue}{0}},draw=purple
+            [
+            2, label=right:{\small\textcolor{blue}{0}}, edge={teal,thick},draw=teal
+            [,empty node]
+            [,empty node]
+            ]
+            [
+            5, label=right:{\small\textcolor{blue}{0}}, edge={purple,thick},draw=purple
+            [,empty node]
+            [,empty node]
+            ]
+            ]
+        \end{forest}
+    \end{center}
+\end{algo}
+
+
+\begin{defi}{Komplexität von AVL-Bäumen}
+    \begin{itemize}
+        \item Einfügen
+              \begin{itemize}
+                  \item Element muss gesucht werden: $\bigo(\log n)$
+                  \item Element muss angehängt werden: $\bigo(1)$
+                  \item Baum muss ausgeglichen werden: $\bigo(\log n)$
+              \end{itemize}
+        \item Löschen
+              \begin{itemize}
+                  \item Element muss gesucht werden: $\bigo(\log n)$
+                  \item nächstgrößeres Element muss gesucht werden: $\bigo(\log n)$
+                  \item Elemente müssen verschoben werden: $\bigo(1)$
+                  \item Baum muss ausgeglichen werden: $\bigo(\log n)$\footnote{Im Worst-Case muss für jede Ebene eine Doppelrotation durchgeführt werden $\implies \bigo(\log n)$}
+              \end{itemize}
+        \item Prüfen/Auslesen
+              \begin{itemize}
+                  \item Element muss gesucht werden: $\bigo(\log n)$
+              \end{itemize}
+    \end{itemize}
+\end{defi}
+
+\subsection{B-Bäume}
+% B-Bäume
+
+\begin{defi}{B-Baum}
+    Jeder Knoten in einem \emph{B-Baum der Ordnung d} enthält $d$ bis $2d$ Elemente.
+
+    Die Wurzel bildet die einzige Ausnahme, sie kann $1$ bis $2d$ Elemente enthalten.
+
+    Die Elemente in einem Knoten sind aufsteigend sortiert.
+
+    Die Anzahl der Kinder in einem B-Baum ist entweder $0$ (Blatt) oder um eins größer als die Anzahl der Elemente, die der Knoten enthält.
+
+    Alle Blätter liegen auf demselben Level.
+    \begin{itemize}[-]
+        \item garantierte Zugriffszeiten
+        \item bei realistischen Parametern (z.B. Ordnung $1000$) sind sehr wenige ($<5$) Zugriffe auf das externe Medium nötig
+    \end{itemize}
+
+    B-Bäume besitzen ausgeglichene Höhe, lassen aber unausgeglichenen Verzweigungsgrad und Knotenfüllgrad zu.
+
+    Der längste Weg in einem B-Baum der Ordnung $d$ ist in $\bigo(\log_{d+1} n)$.
+
+    B-Baum der Ordnung $2$:
+    \vspace{1em}
+
+    \centering
+    \begin{forest}
+        for tree = {
+        draw,
+        rectangle split, rectangle split horizontal,
+        rectangle split parts=4,
+        %on chain=A,
+        parent anchor=south,
+        child anchor=north,
+        text width=1em,
+        text centered,
+        %edge = {->},
+        l sep=12mm,
+        s sep=2em,
+        }
+        [{\mpnc{\textcolor{red}{30}}{\textcolor{violet}{38}}{\textcolor{blue}{42}}{\times}}
+            [{\mpnc{10}{20}{25}{\times}}, name=c1, edge path={
+                        \noexpand\path [draw, \forestoption{edge}] ([xshift=-3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+                    }]
+            [{\mpnc{32}{34}{35}{\times}}, name=c2, edge path={
+                        \noexpand\path [draw, \forestoption{edge}] ([xshift=-1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+                    }]
+            [{\mpnc{40}{41}{\times}{\times}}, name=c3, edge path={
+                        \noexpand\path [draw, \forestoption{edge}] (!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+                    }]
+            [{\mpnc{44}{50}{56}{58}}, name=c4, edge path={
+                        \noexpand\path [draw, \forestoption{edge}] ([xshift=1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+                    }]
+        ]
+        \node[fit=(c1), label=below:{$\in [-\infty, \text{\textcolor{red}{30}}]$}] {};
+        \node[fit=(c2), label=below:{$\in [\text{\textcolor{red}{30}}, \text{\textcolor{purple}{38}}]$}] {};
+        \node[fit=(c3), label=below:{$\in [\text{\textcolor{purple}{38}}, \text{\textcolor{blue}{42}}]$}] {};
+        \node[fit=(c4), label=below:{$\in [\text{\textcolor{blue}{42}}, \infty]$}] {};
+    \end{forest}
+\end{defi}
+
+\begin{algo}{Suchen in einem B-Baum}
+    Ausgehend von der Wurzel:
+    \begin{enumerate}
+        \item Prüfe, ob der gerade betrachtete Knoten den gesuchten Schlüssel $m$ enthält.
+              \subitem (Suche innerhalb eines Knotens entweder linear oder binär.)
+        \item Falls nicht, bestimme den kleinsten Schlüssel $k_i$, der größer als $m$ ist.
+              \begin{itemize}
+                  \item $k_i$ gefunden: Weiter bei Schritt 1 mit linkem Kind von $k_i$ ($p_{i-1}$)
+                  \item $k_i$ nicht gefunden: Weiter mit letztem Kind ($p_{n}$)
+              \end{itemize}
+    \end{enumerate}
+\end{algo}
+
+\begin{algo}{Einfügen in einem B-Baum der Ordnung $d$}
+    \begin{enumerate}
+        \item Suche nach Schlüssel endet in einem Blatt \texttt{node} (in \textcolor{purple}{lila})
+        \item Schlüssel wird in Sortierreihenfolge eingefügt (und neuer leerer Verweis eingefügt)
+        \item Falls \texttt{node} überfüllt ist: \texttt{node} aufteilen
+              \subitem $k$ sei mittlerer Eintrag von \texttt{node}
+              \begin{enumerate}
+                  \item Neuen Knoten \texttt{current} anlegen und mit den $d$ größeren Schlüsseln (rechts von $k$) belegen.
+                  \item Die $d$ kleineren Schlüssel (links von $k$) bleiben in \texttt{node}.
+                  \item $k$ in Elterknoten \texttt{parent} von \texttt{node} verschieben.
+                  \item Verweis rechts von $k$ in \texttt{parent} mit \texttt{current} verbinden.
+              \end{enumerate}
+        \item Falls \texttt{parent} nun überfüllt ist: \texttt{parent} aufteilen (Siehe Schritt 3)
+    \end{enumerate}
+
+    Einfügen der 60 in \textcolor{red}{rot}.
+
+    \vspace{1em}
+
+    \centering
+    \begin{forest}
+        for tree = {
+        draw,
+        rectangle split, rectangle split horizontal,
+        rectangle split parts=4,
+        %on chain=A,
+        parent anchor=south,
+        child anchor=north,
+        text width=1em,
+        text centered,
+        %edge = {->},
+        l sep=12mm,
+        s sep=1em,
+        }
+        [{\mpnc{30}{38}{42}{\times}}
+            [{\mpnc{10}{20}{25}{\times}}, name=c1, edge path={
+                        \noexpand\path [draw, \forestoption{edge}] ([xshift=-3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+                    }]
+            [{\mpnc{32}{34}{35}{\times}}, name=c2, edge path={
+                        \noexpand\path [draw, \forestoption{edge}] ([xshift=-1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+                    }]
+            [{\mpnc{40}{41}{\times}{\times}}, name=c3, edge path={
+                        \noexpand\path [draw, \forestoption{edge}] (!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+                    }]
+            [{\mpnc{44}{50}{56}{58}}, name=c4, edge={dashed,purple,thick}, draw=purple, edge path={
+                        \noexpand\path [draw, \forestoption{edge}] ([xshift=1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+                    }]
+        ]
+        \node[draw, above of=c4, rectangle, red, node distance=5em] (60) {60};
+        \draw[->, red] (60) to (c4);
+    \end{forest}
+
+    \vspace{1em}
+
+    \begin{forest}
+        for tree = {
+        draw,
+        rectangle split, rectangle split horizontal,
+        rectangle split parts=4,
+        %on chain=A,
+        parent anchor=south,
+        child anchor=north,
+        text width=1em,
+        text centered,
+        %edge = {->},
+        l sep=12mm,
+        s sep=1em,
+        }
+        [{\mpnc{30}{38}{42}{\times}}, name=r
+        [{\mpnc{10}{20}{25}{\times}}, name=c1, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=-3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        [{\mpnc{32}{34}{35}{\times}}, name=c2, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=-1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        [{\mpnc{40}{41}{\times}{\times}}, name=c3]
+        [{\mpnc{44}{50}{\times}{\times}}, name=c4, draw=red, edge={draw=none}]
+        [{\mpnc{58}{\textcolor{red}{60}}{\times}{\times}}, name=c5, draw=red, edge={draw=none}]
+        ]
+        \node[draw, above right of=c4, rectangle, blue, node distance=sqrt(2)*4em] (56) {56};
+        \draw[->, blue, bend right=15] (56) to (r);
+    \end{forest}
+
+    \vspace{1em}
+
+    \begin{forest}
+        for tree = {
+        draw,
+        rectangle split, rectangle split horizontal,
+        rectangle split parts=4,
+        %on chain=A,
+        parent anchor=south,
+        child anchor=north,
+        text width=1em,
+        text centered,
+        %edge = {->},
+        l sep=12mm,
+        s sep=1em,
+        }
+        [{\mpnc{30}{38}{42}{\textcolor{blue}{56}}}, name=r
+        [{\mpnc{10}{20}{25}{\times}}, name=c1, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=-3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        [{\mpnc{32}{34}{35}{\times}}, name=c2, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=-1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        [{\mpnc{40}{41}{\times}{\times}}, name=c3]
+        [{\mpnc{44}{50}{\times}{\times}}, name=c4, draw=red, edge={red}, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        [{\mpnc{58}{\textcolor{red}{60}}{\times}{\times}}, name=c5, draw=red, edge={red}, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        ]
+    \end{forest}
+\end{algo}
+
+\begin{algo}{Löschen in einem B-Baum der Ordnung $d$ (Blatt)}
+    In einem Blatt mit Struktur
+    \begin{center}
+        \texttt{(null, $k_1$, null, $\ldots$, $k_i$, null, $\ldots$, $k_n$, null)}
+    \end{center}
+    (\texttt{null} sind hier die Kinder an der jeweiligen Stelle)
+    wird der Wert $x = k_i$ zusammen mit der darauf folgenden \texttt{null}-Referenz gelöscht.
+
+    Ein \emph{Underflow} tritt auf, falls $n=d$ war.
+\end{algo}
+
+\begin{algo}{Löschen in einem B-Baum der Ordnung $d$ (Innerer Knoten)}
+    In einem inneren Knoten mit Struktur
+
+    \begin{center}
+        \texttt{($p_0$, $k_1$, $p_1$, $\ldots$, $k_i$, $p_i$, $\ldots$, $k_n$, $p_n$)}
+    \end{center}
+
+    ($p_j$ sind hier die Kinder an der jeweiligen Stelle)
+    haben alle Referenzen einen Wert ungleich \texttt{null}.
+
+    Das Löschen eines Wertes $x = k_i$ funktioniert analog zum Löschen aus einem binären Suchbaum:
+    \begin{enumerate}
+        \item Finde kleinsten Schlüssel $s$ im durch $p_i$ referenzierten Teilbaum (in einem Blatt)
+        \item Ersetze $k_i$ durch $s$ und lösche $s$ aus dem Blatt
+    \end{enumerate}
+
+    Löschen der 38 in \textcolor{red}{rot}.
+
+    \centering
+    \vspace{1em}
+
+    \begin{forest}
+        for tree = {
+        draw,
+        rectangle split, rectangle split horizontal,
+        rectangle split parts=4,
+        %on chain=A,
+        parent anchor=south,
+        child anchor=north,
+        text width=1em,
+        text centered,
+        %edge = {->},
+        l sep=12mm,
+        s sep=1em,
+        }
+        [{\mpnc{30}{\textcolor{red}{38}}{42}{56}}, name=r
+        [{\mpnc{10}{20}{25}{\times}}, name=c1, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=-3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        [{\mpnc{32}{34}{35}{\times}}, name=c2, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=-1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        [{\mpnc{40}{41}{\times}{\times}}, name=c3]
+        [{\mpnc{44}{50}{\times}{\times}}, name=c4, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        [{\mpnc{58}{60}{\times}{\times}}, name=c5, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        ]
+    \end{forest}
+
+    \vspace{1em}
+
+    \begin{forest}
+        for tree = {
+        draw,
+        rectangle split, rectangle split horizontal,
+        rectangle split parts=4,
+        %on chain=A,
+        parent anchor=south,
+        child anchor=north,
+        text width=1em,
+        text centered,
+        %edge = {->},
+        l sep=12mm,
+        s sep=1em,
+        }
+        [{\mpnc{30}{\phantom{38}}{42}{56}}, name=r
+        [{\mpnc{10}{20}{25}{\times}}, name=c1, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=-3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        [{\mpnc{32}{34}{35}{\times}}, name=c2, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=-1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        [{\mpnc{\textcolor{blue}{40}}{41}{\times}{\times}}, name=c3]
+        [{\mpnc{44}{50}{\times}{\times}}, name=c4, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        [{\mpnc{58}{60}{\times}{\times}}, name=c5, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        ]
+        \draw[->, blue] ([xshift=-2.55em] c3.north) to[bend left=15] ([xshift=-0.75em]r.south);
+    \end{forest}
+
+    \vspace{1em}
+
+    \begin{forest}
+        for tree = {
+        draw,
+        rectangle split, rectangle split horizontal,
+        rectangle split parts=4,
+        %on chain=A,
+        parent anchor=south,
+        child anchor=north,
+        text width=1em,
+        text centered,
+        %edge = {->},
+        l sep=12mm,
+        s sep=1em,
+        }
+        [{\mpnc{30}{\textcolor{blue}{40}}{42}{56}}, name=r
+        [{\mpnc{10}{20}{25}{\times}}, name=c1, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=-3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        [{\mpnc{32}{34}{35}{\times}}, name=c2, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=-1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        [{\mpnc{41}{\times}{\times}{\times}}, name=c3, draw=purple, label=below:\textcolor{purple}{Underflow!}]
+        [{\mpnc{44}{50}{\times}{\times}}, name=c4, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        [{\mpnc{58}{60}{\times}{\times}}, name=c5, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        ]
+    \end{forest}
+\end{algo}
+
+\begin{defi}{Underflow}
+    Ein \emph{Underflow} tritt in einem B-Baum genau dann auf, wenn zu wenig ($<d$) Schlüssel im Knoten sind.
+\end{defi}
+
+\begin{algo}{Ausgleich zwischen Geschwisterknoten}
+    Voraussetzung:
+    Knoten $q$ mit Underflow hat \emph{benachbarten} Geschwisterknoten $p$ mit $>d$ Schlüsseln.
+
+    Annahme:
+    \begin{itemize}
+        \item $p$ ist linker Geschwisterknoten von $q$ (analog mit rechtem Geschwisterknoten)
+        \item im Elterknoten \texttt{parent} (von $p$ und $q$) trennt der Schlüssel $t$ die Verweise auf $p$ und $q$
+    \end{itemize}
+
+    Idee: $p$ schenkt $q$ ein Element (\glqq Umweg\grqq über Elterknoten)
+
+    \begin{forest}
+        for tree = {
+        draw,
+        rectangle split, rectangle split horizontal,
+        rectangle split parts=4,
+        %on chain=A,
+        parent anchor=south,
+        child anchor=north,
+        text width=1em,
+        text centered,
+        %edge = {->},
+        l sep=12mm,
+        s sep=1em,
+        }
+        [{\mpnc{30}{\textcolor{blue}{40}}{42}{56}}, name=r
+        [{\mpnc{10}{20}{25}{\times}}, name=c1, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=-3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        [{\mpnc{32}{34}{\textcolor{blue}{35}}{\times}}, name=c2, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=-1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        [{\mpnc{41}{\times}{\times}{\times}}, name=c3, draw=purple]
+        [{\mpnc{44}{50}{\times}{\times}}, name=c4, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        [{\mpnc{58}{60}{\times}{\times}}, name=c5, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        ]
+        \draw[->, blue] ([xshift=0.75em] c2.north) to[bend left=90] ([xshift=2.25em] r.north west);
+        \draw[<-, blue] ([xshift=-3.4em] c3.north) to[bend right=10] ([xshift=-0.75em] r.south);
+    \end{forest}
+
+    \vspace{1em}
+
+    \begin{forest}
+        for tree = {
+        draw,
+        rectangle split, rectangle split horizontal,
+        rectangle split parts=4,
+        %on chain=A,
+        parent anchor=south,
+        child anchor=north,
+        text width=1em,
+        text centered,
+        %edge = {->},
+        l sep=12mm,
+        s sep=1em,
+        }
+        [{\mpnc{30}{\textcolor{blue}{35}}{42}{56}}, name=r
+        [{\mpnc{10}{20}{25}{\times}}, name=c1, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=-3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        [{\mpnc{32}{34}{\times}{\times}}, name=c2, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=-1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        [{\mpnc{\textcolor{blue}{40}}{41}{\times}{\times}}, name=c3]
+        [{\mpnc{44}{50}{\times}{\times}}, name=c4, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        [{\mpnc{58}{60}{\times}{\times}}, name=c5, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        ]
+    \end{forest}
+\end{algo}
+
+\begin{algo}{Verschmelzen von Geschwisterknoten}
+    Voraussetzung:
+    Knoten $q$ hat \emph{benachbarten} Geschwisterknoten mit $d$ Schlüsseln.
+
+    Annahme:
+    \begin{itemize}
+        \item $p$ ist linker Geschwisterknoten von $q$ (analog mit rechtem Geschwisterknoten)
+        \item im Elterknoten \texttt{parent} (von $p$ und $q$) trennt der Schlüssel $t$ die Verweise auf $p$ und $q$
+    \end{itemize}
+
+    Idee: $p$ und $q$ mit dem trennenden Element aus \texttt{parent} verschmelzen.
+
+    Beachte:
+    \begin{itemize}
+        \item Eventueller Underflow in \texttt{parent} muss behandelt werden (rekursiv)
+        \item Falls letzter Schlüssel der Wurzel gelöscht wird, wird der einzige Nachfolger der Wurzel die neue Wurzel (Höhe des B-Baums wird um 1 verringert).
+    \end{itemize}
+
+    \vspace{1em}
+
+    \centering
+    \begin{forest}
+        for tree = {
+        draw,
+        rectangle split, rectangle split horizontal,
+        rectangle split parts=4,
+        %on chain=A,
+        parent anchor=south,
+        child anchor=north,
+        text width=1em,
+        text centered,
+        %edge = {->},
+        l sep=12mm,
+        s sep=1em,
+        }
+        [{\mpnc{30}{40}{\textcolor{blue}{42}}{56}}, name=r
+        [{\mpnc{10}{20}{25}{\times}}, name=c1, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=-3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        [{\mpnc{32}{34}{35}{\times}}, name=c2, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=-1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        [{\mpnc{41}{\times}{\times}{\times}}, name=c3, draw=purple]
+        [{\mpnc{44}{50}{\times}{\times}}, name=c4, draw=blue, edge={blue}, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        [{\mpnc{58}{60}{\times}{\times}}, name=c5, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        ]
+        \draw[<-, blue] ([xshift=-0.75em] c3.north) to[bend left=10] ([xshift=0.75em] r.south);
+        \draw[<-, blue] ([xshift=0.75em] c3.north) to[bend left=45] ([xshift=-3.4em] c4.north);
+    \end{forest}
+
+    \vspace{1em}
+
+    \begin{forest}
+        for tree = {
+        draw,
+        rectangle split, rectangle split horizontal,
+        rectangle split parts=4,
+        %on chain=A,
+        parent anchor=south,
+        child anchor=north,
+        text width=1em,
+        text centered,
+        %edge = {->},
+        l sep=12mm,
+        s sep=1em,
+        }
+        [{\mpnc{30}{40}{56}{\times}}, name=r
+        [{\mpnc{10}{20}{25}{\times}}, name=c1, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=-3.4em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        [{\mpnc{32}{34}{35}{\times}}, name=c2, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=-1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        [{\mpnc{41}{\textcolor{blue}{42}}{\textcolor{blue}{44}}{\textcolor{blue}{50}}}, name=c3]
+        [{\mpnc{58}{60}{\times}{\times}}, name=c5, edge path={
+                \noexpand\path [draw, \forestoption{edge}] ([xshift=1.7em]!u.parent anchor) -- (.child anchor)\forestoption{edge label};
+            }]
+        ]
+    \end{forest}
+\end{algo}
+
+\begin{defi}{B+-Baum}
+    Im Unterschied zu B-Bäumen speichern \emph{B+-Bäume} ihre Datensätze ausschließlich in den Blättern.
+
+    Dies ist bei der Anwendung für Datenbanken naheliegend und sinnvoll.
+\end{defi}
+
+\subsection{Rot-Schwarz-Bäume}
+
+\begin{defi}{Rot-Schwarz-Baum}
+    Ein \emph{Rot-Schwarz-Baum} ist ein balancierter binärer Suchbaum, in dem jeder innere Knoten zwei Kinder hat.
+
+    Jeder innere Knoten hat eine Farbe, so dass gilt:
+    \begin{itemize}
+        \item Die Wurzel ist schwarz.
+        \item Alle Blätter (\text{null}-Knoten) sind schwarz.
+        \item Für jeden Knoten gilt, dass jeder Pfad zu den Blättern die gleiche Anzahl an schwarzen Knoten hat. (Schwarz-Tiefe)
+        \item Beide Kinder eines roten Knotens sind schwarz.
+    \end{itemize}
+
+    Rot-Schwarz-Bäume sind eine gängige Alternative zu AVL-Bäumen.
+\end{defi}
+
+\begin{algo}{Einfügen in einen Rot-Schwarz-Baum}
+    Zuerst wird wie in einem normalen Binärbaum eingefügt, danach werden die Rot-Schwarz-Bedingungen repariert.
+
+    Annahmen:
+    \begin{itemize}
+        \item eingefügter Knoten $v$ ist rot
+        \item Elterknoten $u$ von $v$ ist rot (sonst fertig)
+        \item $v$ ist linkes Kind von $u$ (anderer Fall symmetrisch)
+        \item Geschwisterknoten $w$ (rechtes Kind von $u$) ist schwarz
+        \item Alle roten Knoten außer $u$ haben 2 schwarze Kinder
+    \end{itemize}
+
+
+    \begin{center}
+
+        \begin{forest}
+            baseline,anchor=north,
+            for tree={circle, draw,
+                    minimum size=2em, % <-- added
+                    inner sep=1pt}
+                [
+                    p, b
+                        [
+                            u, r
+                                [
+                                    v, r
+                                ]
+                                [
+                                    w, b, name=w
+                                ]
+                        ]
+                        [
+                            q, rbn
+                        ]
+                ]
+        \end{forest}
+        \hspace{7em}
+        \begin{forest}
+            baseline,anchor=north,
+            for tree={circle, draw,
+                    minimum size=2em, % <-- added
+                    inner sep=1pt}
+                [
+                    p, b
+                        [
+                            q, rbn
+                        ]
+                        [
+                            u, r
+                                [
+                                    v, r
+                                ]
+                                [
+                                    w, b, name=w
+                                ]
+                        ]
+                ]
+        \end{forest}
+    \end{center}
+\end{algo}
+
+\begin{algo}{Einfügen in einen Rot-Schwarz-Baum (Fall 1)}
+
+    \textbf{Fall 1: Onkelknoten $q$ von $v$ ist schwarz}\\
+    Fall 1a: $u$ ist linkes Kind von $p$ ($v$-$u$-$p$ bilden eine Linie)
+    \vspace{1em}
+
+    \begin{center}
+        \begin{forest}
+            baseline,anchor=north,
+            for tree={circle, draw,
+                    minimum size=2em, % <-- added
+                    inner sep=1pt}
+                [
+                    p, b
+                        [
+                            u, r
+                                [
+                                    v, r
+                                ]
+                                [
+                                    w, b, name=w
+                                ]
+                            %{\draw[->,blue, dashed] () to[bend left=30] (!u.south);}
+                        ]
+                        {\draw[->,blue] () to[bend left=45] node[midway,above left,font=\small]{Rechtsrotation} (!u.west);}
+                        [
+                            q, b
+                        ]
+                ]
+            %{\draw[->,blue, dashed] () to[bend left=45] (w.north east);}
+        \end{forest}
+        \hspace{3em}
+        \begin{forest}
+            baseline,anchor=north,
+            for tree={circle, draw,
+                    minimum size=2em, % <-- added
+                    inner sep=1pt}
+                [
+                    u, r
+                        [
+                            v, r
+                        ]
+                        [
+                            p, b
+                                [
+                                    w, b
+                                ]
+                                [
+                                    q, b
+                                ]
+                        ]
+                        {\draw[<->,blue] () to[bend right=45] node[midway,above right,font=\small]{Umfärben} (!u.east);}
+                ]
+            %{\draw[->,blue, dashed] () to[bend left=45] (w.north east);}
+        \end{forest}
+        \hspace{1em}
+        \begin{forest}
+            baseline,anchor=north,
+            for tree={circle, draw,
+                    minimum size=2em, % <-- added
+                    inner sep=1pt}
+                [
+                    u, b
+                        [
+                            v, r
+                        ]
+                        [
+                            p, r
+                                [
+                                    w, b
+                                ]
+                                [
+                                    q, b
+                                ]
+                        ]
+                    %{\draw[<->,blue] () to[bend right=45] node[midway,above right,font=\small]{Umfärben} (!u.east);}
+                ]
+            %{\draw[->,blue, dashed] () to[bend left=45] (w.north east);}
+        \end{forest}
+    \end{center}
+
+    \vspace{1em}
+    Fall 1b: $u$ ist rechtes Kind von $p$ ($v$-$u$-$p$ bilden ein Dreieck)
+
+    \begin{center}
+        \begin{forest}
+            baseline,anchor=north,
+            for tree={circle, draw,
+                    minimum size=2em, % <-- added
+                    inner sep=1pt}
+                [
+                    p, b
+                        [
+                            q, b
+                        ]
+                        [
+                            u, r
+                                [
+                                    v, r
+                                ]
+                                {\draw[->,blue] () to[bend left=45] node[midway,below left=1em,font=\small]{Rechtsrotation} (!u.west);}
+                                [
+                                    w, b, name=w
+                                ]
+                            %{\draw[->,blue, dashed] () to[bend left=30] (!u.south);}
+                        ]
+                ]
+            %{\draw[->,blue, dashed] () to[bend left=45] (w.north east);}
+        \end{forest}
+        \hspace{5em}
+        \begin{forest}
+            baseline,anchor=north,
+            for tree={circle, draw,
+                    minimum size=2em, % <-- added
+                    inner sep=1pt}
+                [
+                    p, b
+                        [
+                            q, b
+                        ]
+                        [
+                            v, r
+                                [,nil]
+                                [
+                                    u, r
+                                        [,nil]
+                                        [
+                                            w, b
+                                        ]
+                                ]
+                        ]
+                        {\draw[->,blue] () to[bend right=45] node[midway,above right,font=\small]{Linksrotation} (!u.east);}
+                ]
+        \end{forest}
+
+        \vspace{1em}
+
+        \begin{forest}
+            baseline,anchor=north,
+            for tree={circle, draw,
+                    minimum size=2em, % <-- added
+                    inner sep=1pt}
+                [
+                    v, r
+                        [
+                            p, b
+                                [
+                                    q, b
+                                ]
+                                [, nil]
+                        ]
+                        {\draw[<->,blue] () to[bend left=45] node[midway,above left,font=\small]{Umfärben} (!u.west);}
+                        [
+                            u, r
+                                [, nil]
+                                [
+                                    w, b
+                                ]
+                        ]
+                ]
+        \end{forest}
+        \hspace{2em}
+        \begin{forest}
+            baseline,anchor=north,
+            for tree={circle, draw,
+                    minimum size=2em, % <-- added
+                    inner sep=1pt}
+                [
+                    v, b
+                        [
+                            p, r
+                                [
+                                    q, b
+                                ]
+                                [, nil]
+                        ]
+                        [
+                            u, r
+                                [, nil]
+                                [
+                                    w, b
+                                ]
+                        ]
+                ]
+        \end{forest}
+    \end{center}
+\end{algo}
+
+\begin{algo}{Einfügen in einen Rot-Schwarz-Baum (Fall 2)}
+    \textbf{Fall 2: Geschwisterknoten $q$ von $u$ ist rot}
+
+    \begin{center}
+        \begin{forest}
+            baseline,anchor=north,
+            for tree={circle, draw,
+            minimum size=2em, % <-- added
+            inner sep=1pt}
+            [
+            p, b, name=p
+            [
+            u, r, name=u
+            [
+            v, r
+            ]
+            [
+            w, b, name=w
+            ]
+            ]
+            [
+            q, r, name=q
+            ]
+            ]
+            \node [draw, fit={(p)(u)(q)}, blue, label=above:\textcolor{blue}{Umfärben}] () {};
+        \end{forest}
+        \hspace{7em}
+        \begin{forest}
+            baseline,anchor=north,
+            for tree={circle, draw,
+                    minimum size=2em, % <-- added
+                    inner sep=1pt}
+                [
+                    p, r
+                        [
+                            u, b
+                                [
+                                    v, r
+                                ]
+                                [
+                                    w, b, name=w
+                                ]
+                        ]
+                        [
+                            q, b
+                        ]
+                ]
+        \end{forest}
+    \end{center}
+
+    \vspace{1em}
+
+    beziehungsweise
+
+    \vspace{1em}
+
+    \begin{center}
+        \begin{forest}
+            baseline,anchor=north,
+            for tree={circle, draw,
+            minimum size=2em, % <-- added
+            inner sep=1pt}
+            [
+            p, b, name=p
+            [
+            q, r, name=q
+            ]
+            [
+            u, r, name=u
+            [
+            v, r
+            ]
+            [
+            w, b, name=w
+            ]
+            ]
+            ]
+            \node [draw, fit={(p)(u)(q)}, blue, label=above:\textcolor{blue}{Umfärben}] () {};
+        \end{forest}
+        \hspace{7em}
+        \begin{forest}
+            baseline,anchor=north,
+            for tree={circle, draw,
+                    minimum size=2em, % <-- added
+                    inner sep=1pt}
+                [
+                    p, r
+                        [
+                            q, b
+                        ]
+                        [
+                            u, b
+                                [
+                                    v, r
+                                ]
+                                [
+                                    w, b, name=w
+                                ]
+                        ]
+                ]
+        \end{forest}
+    \end{center}
+
+    \vspace{1em}
+
+    \begin{itemize}
+        \item Falls der Elterknoten von $p$ schwarz ist, sind wir fertig
+        \item Falls $p$ die Wurzel ist, färbe $p$ schwarz
+        \item Sonst behandle $p$ wie $v$ und wiederhole
+    \end{itemize}
+\end{algo}
+
+\begin{algo}{Löschen in einem Rot-Schwarz-Baum}
+    Das Löschen in einem Rot-Schwarz-Baum kann schnell sehr schwierig zu visualisieren werden.
+
+    Ich will hier gern einmal folgende Videos empfehlen:
+    \begin{itemize}
+        \item \url{https://youtu.be/eO3GzpCCUSg} (ausführliche Beispiele, englisch)
+        \item \url{https://youtu.be/bDT1woMULVw} (ausführliche Erklärung, Pseudocode, deutsch)
+    \end{itemize}
+\end{algo}
+
+\subsection{Heaps}
+
+\begin{bonus}{Heap (Wortbedeutungen)}
+    Das Wort \emph{Heap} hat zwei Bedeutungen:
+    \begin{itemize}
+        \item Besonderer Speicherbereich, in dem Objekte und Klassen gespeichert werden.
+        \item Datenstruktur zur effizienten Implementierung einer Prioritätswarteschlange.
+    \end{itemize}
+\end{bonus}
+
+\begin{defi}{Heap}
+    Ein \emph{Heap} ist ein Binärbaum mit folgenden Eigenschaften:
+    \begin{itemize}
+        \item linksvollständig
+        \item Kinder eines Knotens höchstens so groß wie der Knoten selbst (Max-Heap)
+        \item größtes Element befindet sich an der Wurzel (Max-Heap)
+        \item entlang jedes Pfades von einem Knoten zur Wurzel sind Knoteninhalte aufsteigend sortiert
+    \end{itemize}
+
+    Ein Heap lässt sich insbesondere als Array sehr leicht speichern.
+    Dabei gilt:
+    \begin{itemize}
+        \item \texttt{heap[0]} ist die Wurzel
+        \item \texttt{heap[(i-1)/2]} ist der Elterknoten des Knoten $i$
+        \item \texttt{heap[(2*i)+1]} ist das linke Kind des Knoten $i$
+        \item \texttt{heap[(2*i)+2]} ist das rechte Kind des Knoten $i$
+    \end{itemize}
+
+    Das enstpricht einem Level-Order-Baumdurchlauf.
+\end{defi}
+
+\begin{example}{Heap als Array}
+    \begin{center}
+        \begin{forest}
+            baseline,anchor=north,
+            for tree={circle, draw,
+                    minimum size=2em, % <-- added
+                    inner sep=1pt}
+                [
+                    90
+                        [
+                            45
+                                [
+                                    27
+                                        [
+                                            2
+                                        ]
+                                        [
+                                            3
+                                        ]
+                                ]
+                                [
+                                    36
+                                        [
+                                            19
+                                        ]
+                                        [26]
+                                ]
+                        ]
+                        [
+                            17
+                                [
+                                    7
+                                        [,empty node]
+                                        [,empty node]
+                                ]
+                                [
+                                    1
+                                        [,empty node]
+                                        [,empty node]
+                                ]
+                        ]
+                ]
+        \end{forest}
+    \end{center}
+
+    \vspace{1em}
+
+    Für den Heap oben gilt die Array-Darstellung:
+    \begin{center}
+        \texttt{[90,45,17,27,36,7,1,2,3,19,26]}
+    \end{center}
+\end{example}
+
+\begin{algo}{Einfügen in einem Heap}
+    Das Einfügen eines Elements in den Heap erfolgt, indem das neue Element an das Ende des Heaps gesetzt wird.
+
+    Weil das neu eingesetzte Element  die Eigenschaften des Heaps verzerren kann, wird die Operation \emph{Up-Heapify} durchgeführt, um die Eigenschaften des Heaps in einem Bottom-up-Ansatz zu erhalten.
+\end{algo}
+
+\begin{algo}{Löschen in einem Heap}
+    Das Entfernen eines Elements erfolgt, indem das gelöscht Element durch das letzte Element im Heap ersetzt wird. Dann wird das letzte Element aus dem Heap gelöscht. Nun wird das letzte Element an einer Stelle im Heap platziert.
+
+    Es kann die Heap-Bedingung nicht erfüllen, sodass die Operation \emph{Down-Heapify} durchgeführt wird, um die Eigenschaften des Heaps aufrechtzuerhalten.
+\end{algo}
+
+\begin{defi}{Heapify}
+    Heapify ist eine Operation, um die Elemente des Heaps neu anzuordnen, um die Heap-Bedingung aufrechtzuerhalten.
+
+    Die Heapify kann in zwei Methoden erfolgen:
+    \begin{itemize}
+        \item Up-Heapify (erfolgt beim Einfügen)
+        \item Down-Heapify (erfolgt beim Löschen)
+    \end{itemize}
+\end{defi}
+
+\begin{algo}{Up-Heapify (Einfügen)}
+    Einfügen der $45$ in \textcolor{red}{rot}.
+
+    \vspace{1em}
+    \begin{center}
+        \scalebox{0.9}{
+            \begin{forest}
+                baseline,anchor=north,
+                for tree={circle, draw,
+                minimum size=2em, % <-- added
+                inner sep=1pt}
+                [
+                90
+                [
+                36
+                [
+                27
+                    [
+                        2
+                        %[,empty node]
+                        %[,empty node]
+                    ]
+                    [
+                        3
+                        %[,empty node]
+                        %[,empty node]
+                    ]
+                ]
+                [
+                26,draw=blue
+                [
+                19
+                %[,empty node]
+                %[,empty node]
+                ]
+                [45 ,edge={red,thick}, draw=red]
+                {\draw[<->,blue] () to[bend right=45] node[midway,below right,font=\small]{Vertauschen} (!u.east);}
+                ]
+                ]
+                [
+                17
+                    [
+                        7
+                            [,empty node]
+                            [,empty node]
+                    ]
+                    [
+                        1
+                            [,empty node]
+                            [,empty node]
+                    ]
+                ]
+                ]
+            \end{forest}
+        }
+        \hspace{1em}
+        \scalebox{0.9}{
+            \begin{forest}
+                baseline,anchor=north,
+                for tree={circle, draw,
+                minimum size=2em, % <-- added
+                inner sep=1pt}
+                [
+                90
+                [
+                36,draw=blue
+                [
+                27
+                    [
+                        2
+                        %[,empty node]
+                        %[,empty node]
+                    ]
+                    [
+                        3
+                        %[,empty node]
+                        %[,empty node]
+                    ]
+                ]
+                [
+                45,edge={red,thick}, draw=red
+                [
+                19
+                %[,empty node]
+                %[,empty node]
+                ]
+                [26,edge={teal,thick}, draw=teal]
+                ]
+                {\draw[<->,blue] () to[bend right=45] node[midway,above right,font=\small]{Vertauschen} (!u.east);}
+                ]
+                [
+                17
+                    [
+                        7
+                            [,empty node]
+                            [,empty node]
+                    ]
+                    [
+                        1
+                            [,empty node]
+                            [,empty node]
+                    ]
+                ]
+                ]
+            \end{forest}
+        }
+
+        \vspace{1em}
+
+        \scalebox{0.9}{
+            \begin{forest}
+                baseline,anchor=north,
+                for tree={circle, draw,
+                minimum size=2em, % <-- added
+                inner sep=1pt}
+                [
+                90,draw=teal
+                [
+                45,edge={teal,thick}, draw=teal
+                [
+                27
+                    [
+                        2
+                        %[,empty node]
+                        %[,empty node]
+                    ]
+                    [
+                        3
+                        %[,empty node]
+                        %[,empty node]
+                    ]
+                ]
+                [
+                36,edge={teal,thick}, draw=teal
+                [
+                19
+                %[,empty node]
+                %[,empty node]
+                ]
+                [26,edge={teal,thick}, draw=teal]
+                ]
+                ]
+                [
+                17
+                    [
+                        7
+                            [,empty node]
+                            [,empty node]
+                    ]
+                    [
+                        1
+                            [,empty node]
+                            [,empty node]
+                    ]
+                ]
+                ]
+            \end{forest}
+        }
+    \end{center}
+\end{algo}
+
+\begin{algo}{Down-Heapify (Löschen)}
+    Löschen der $90$ in \textcolor{red}{rot}.
+
+    \vspace{1em}
+    \begin{center}
+
+        \scalebox{0.9}{
+            \begin{forest}
+                baseline,anchor=north,
+                for tree={circle, draw,
+                minimum size=2em, % <-- added
+                inner sep=1pt}
+                [
+                90,draw=red
+                [
+                45
+                    [
+                        27
+                            [
+                                2
+                                %[,empty node]
+                                %[,empty node]
+                            ]
+                            [
+                                3
+                                %[,empty node]
+                                %[,empty node]
+                            ]
+                    ]
+                    [
+                        36
+                            [
+                                19
+                                %[,empty node]
+                                %[,empty node]
+                            ]
+                            [26
+                            ]
+                    ]
+                ]
+                [
+                17
+                    [
+                        7
+                            [,empty node]
+                            [,empty node]
+                    ]
+                    [
+                        1
+                            [,empty node]
+                            [,empty node]
+                    ]
+                ]
+                ]
+            \end{forest}
+        }
+        \hspace{1em}
+        \scalebox{0.9}{
+            \begin{forest}
+                baseline,anchor=north,
+                for tree={circle, draw,
+                        minimum size=2em, % <-- added
+                        inner sep=1pt}
+                    [
+                        ,empty node, name=90
+                            [
+                                45
+                                    [
+                                        27
+                                            [
+                                                2
+                                                %[,empty node]
+                                                %[,empty node]
+                                            ]
+                                            [
+                                                3
+                                                %[,empty node]
+                                                %[,empty node]
+                                            ]
+                                    ]
+                                    [
+                                        36
+                                            [
+                                                19
+                                                %[,empty node]
+                                                %[,empty node]
+                                            ]
+                                            [26, draw=blue, name=26
+                                            ]
+                                    ]
+                            ]
+                            [
+                                17
+                                    [
+                                        7
+                                            [,empty node]
+                                            [,empty node]
+                                    ]
+                                    [
+                                        1
+                                            [,empty node]
+                                            [,empty node]
+                                    ]
+                            ]
+                    ]
+                \draw[->, blue] (26) to[bend right=45] node[midway,above left,font=\small]{Nachrücken} (90);
+            \end{forest}
+        }
+
+        \vspace{1em}
+
+        \scalebox{0.9}{
+            \begin{forest}
+                baseline,anchor=north,
+                for tree={circle, draw,
+                minimum size=2em, % <-- added
+                inner sep=1pt}
+                [
+                26, draw=red
+                [
+                45, edge={draw=red},draw=blue
+                [
+                27
+                    [
+                        2
+                        %[,empty node]
+                        %[,empty node]
+                    ]
+                    [
+                        3
+                        %[,empty node]
+                        %[,empty node]
+                    ]
+                ]
+                [
+                36
+                    [
+                        19
+                        %[,empty node]
+                        %[,empty node]
+                    ]
+                    [,empty node]
+                ]
+                ]
+                {\draw[<->,blue] () to[bend left=45] node[midway,above left,font=\small]{Vertauschen} (!u.west);}
+                [
+                17
+                    [
+                        7
+                            [,empty node]
+                            [,empty node]
+                    ]
+                    [
+                        1
+                            [,empty node]
+                            [,empty node]
+                    ]
+                ]
+                ]
+            \end{forest}
+        }
+        \hspace{1em}
+        \scalebox{0.9}{
+            \begin{forest}
+                baseline,anchor=north,
+                for tree={circle, draw,
+                minimum size=2em, % <-- added
+                inner sep=1pt}
+                [
+                45,draw=teal
+                [
+                26, draw=red, edge={draw=teal}
+                [
+                27
+                    [
+                        2
+                        %[,empty node]
+                        %[,empty node]
+                    ]
+                    [
+                        3
+                        %[,empty node]
+                        %[,empty node]
+                    ]
+                ]
+                [
+                36, edge={draw=red},draw=blue
+                [
+                19
+                %[,empty node]
+                %[,empty node]
+                ]
+                [,empty node]
+                ]
+                {\draw[<->,blue] () to[bend right=45] node[midway,above right,font=\small]{Vertauschen} (!u.east);}
+                ]
+                [
+                17
+                    [
+                        7
+                            [,empty node]
+                            [,empty node]
+                    ]
+                    [
+                        1
+                            [,empty node]
+                            [,empty node]
+                    ]
+                ]
+                ]
+            \end{forest}
+        }
+
+        \vspace{1em}
+
+        \scalebox{0.9}{
+            \begin{forest}
+                baseline,anchor=north,
+                for tree={circle, draw,
+                minimum size=2em, % <-- added
+                inner sep=1pt}
+                [
+                45,draw=teal
+                [
+                36, draw=teal, edge={draw=teal}
+                [
+                27
+                    [
+                        2
+                        %[,empty node]
+                        %[,empty node]
+                    ]
+                    [
+                        3
+                        %[,empty node]
+                        %[,empty node]
+                    ]
+                ]
+                [
+                26, edge={draw=teal},draw=teal
+                [
+                19, edge={draw=teal},draw=teal
+                %[,empty node]
+                %[,empty node]
+                ]
+                [,empty node]
+                ]
+                ]
+                [
+                17
+                    [
+                        7
+                            [,empty node]
+                            [,empty node]
+                    ]
+                    [
+                        1
+                            [,empty node]
+                            [,empty node]
+                    ]
+                ]
+                ]
+            \end{forest}
+        }
+    \end{center}
+\end{algo}
+
+% Baumdurchlauf
diff --git a/algo/btreevis.sty b/algo/btreevis.sty
index 5dc1b7b..c7a7273 100644
--- a/algo/btreevis.sty
+++ b/algo/btreevis.sty
@@ -1,408 +1,408 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Author:       Daniel Kocher
-% Email:        Daniel.Kocher@stud.sbg.ac.at
-% Github:       www.github.com/danielkocher
-% Institute:    University of Salzburg
-%               Department of Computer Sciences
-%               Database Research Group (dbresearch.uni-salzburg.at)
-%
-% Project:      www.github.com/danielkocher/btreevis
-% License:      MIT license
-% Description:  Drawing B+ trees is a usual task when teaching and/or working on
-%               database index structures (and other algorithms and data
-%               structure stuff). The default TikZ features do not provide a
-%               good and uncomplicated way to draw such a B+ tree. Furthermore
-%               they do not look 'good'. 'Good' in the sense that they do not
-%               look like real B+ tree. This package tackles this problem.
-%
-%               It provides macros to simplify and beautify the drawing of a B+
-%               tree in LaTeX using TikZ. To keep drawing the trees simple, the
-%               standard tree environment of TikZ is used. So, all the nodes
-%               are placed by this environment in a tree-like way. The content
-%               of the nodes is a matrix of nodes, generated by a macro, which
-%               generates key and pointer nodes alternating (starting with a
-%               pointer node) - see \CreateBTreeNode[4] for further details.
-%               The TikZ tree environment connects the nodes of tree by default.
-%               This feature is disabled by a default style (BTreeDefault)
-%               because these connections do not correspond to the connections
-%               we want for a realistic B+ tree visualization. To accomplish
-%               such a realistic B+ tree visualization, this package provides
-%               two macros: one to draw connections between inner nodes
-%               (vertically) and one to draw connections between leaf nodes
-%               (horizontally). See \ConnectBTreeNodes[5] and
-%               \ConnectBTreeLeaves[2] for further information. To simplify the
-%               macros, a global number of pointers per node is used. This is
-%               necessary because the \Connect* macros need to know how many
-%               keys can be stored in a B+ tree node at most in order to allow
-%               proper arrow drawing (the source of every arrow has to be an
-%               an arrow field of the B+ tree node and the destination of every
-%               arrow has to be in the middle of the .north of a B+ tree node.
-%               The package also provides two default tikzstyles, one for the
-%               B+ tree node and one for the whole tikzpicture of the B+ tree.
-%               Those styles also contain useful information when creating own
-%               tikzstyles (see tikzstyles BTreeDefault and BTreeNodeDefault for
-%               further information).
-%
-%               There are two macros for internal usage which may be used
-%               outside this package but at your own risk.
-%
-%               Please contact me using the email at the top of this header for
-%               bugs, criticism and comments.
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{btreevis}[2015/06/24 B+ Tree Visualization Package]
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% PACKAGES
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\RequirePackage{tikz}
-\RequirePackage{ifthen}
-\RequirePackage{etoolbox}
-%\RequirePackage{calc}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% LIBRARIES
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% TikZ
-\usetikzlibrary{arrows, matrix, calc}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% COUNTERS (GLOBAL)
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% The number of pointers per node (often referred to as m in B+ tree context)
-\newcount\noOfPointersPerNode%
-
-% Used to number pointers and keys consecutively inside a B+ tree node
-\newcount\pointerCounter%
-
-% Used in the connect macros to know where the arrows have to start
-\newcount\pointerNumber%
-
-% Used in the connect macros to hold the number of the current (source) node to
-% connect to
-\newcount\nodeNumber%
-
-% Used in the connect macros to hold the number of the next (destination) node
-% to connect to
-\newcount\nextNodeNumber%
-
-% Used temporarily in the connect macros
-\newcount\tempCounter%
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% DEFAULT STYLES (GLOBAL)
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% Default style of a B+ tree node. Provides all important properties a B+ tree
-% node should have such that the resulting B^+ tree looks beautiful.
-% May be overridden by an own style.
-\tikzstyle{BTreeNodeDefault} = [
-  draw,
-  matrix,
-  matrix of nodes,
-  % must be used; otherwise the matrix content generation does not work
-  ampersand replacement=\&,
-  % if inner sep != 0, there is a border around the matrix of nodes
-  inner sep = 0,
-  nodes = {
-    draw,
-    rectangle,
-    % better readability; otherwise node border and content do overlay
-    inner sep = 1mm,
-    % workaround to make nodes look better;
-    % better in the sense that all nodes in the matrix of nodes have the same
-    % height and depth independent of their content
-    text height = height("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmopqrstuvwxyz0123456789"),
-    text depth = depth("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmopqrstuvwxyz0123456789"),
-    % scaling factor of nodes; nodes have to be scaled independently from the
-    % whole tikzpicture (at least in some cases)
-    scale = 1
-  }
-]
-
-% Default style of a B+ tree.
-% May be overriden by own styles but has all important properties.
-\tikzstyle{BTreeDefault} = [
-  % scaling factor of the whole picture
-  scale = 1,
-  % must be used; otherwise the tree environment draws its own connecting arrows
-  edge from parent/.style = {}
-]
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% MACROS (PACKAGE INTERNAL)
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%%
-% Helper macro (only for package internal usage).
-% Creates the content for two nodes (to be used in a matrix of nodes).
-% One with a given content (a key node) and one corresponding pointer node
-% (left of the key node). The naming of both key and pointer nodes is done
-% automatically. This macro is used to generate the content of the matrix of
-% nodes for a B+ tree node in the macro \CreateBTreeNode[4].
-%
-% Be careful when modifying this macros: Because the content just generates a
-% part of a matrix no blank lines should be inserted in this macros (this may
-% causes strange errors when compiling).
-%
-% Naming schema: l#3-n#4-k#2 for search keys and l#3-n#4-p#2 for pointers.
-%
-% Arguments:
-%   #1 ...  The value to be inserted into the node. If empty an empty node is
-%           generated.
-%   #2 ...	The pointer/key number, e.g. if #2 is 2, the pointer nodes third
-%           part of the name is '-p2' and the value nodes third part of the name
-%           is '-k2'
-%   #3 ...	The level number, e.g. if #3 is 3, the nodes first part of the name
-%           is 'l3'
-%   #4 ...	The node number, e.g. if #4 is 4, the nodes second part of the name
-%           is '-n4'
-%
-% Example of the usage:
-%   \@create@key@matrix@node{3}{1}{2}{1}
-%
-%   (Never needed because it is more of an internal macro to draw the B+ tree).
-%   Generates two nodes: the left (pointer) node named 'l2-n1-p1' containing no
-%   value and a node right of it named 'l2-n1-k1' containing the value '3'. So
-%   if the initial matrix was an empty matrix of nodes [], the subsequent matrix
-%   contains two nodes [| 3].
-%%
-\newcommand{\@create@key@matrix@node}[4] {%
-  % empty pointer node (left)
-  |(l#3-n#4-p#2) [fill=blue!20]| {\vphantom{1}} \&%
-  % check presence of argument #1
-  \ifx&#1&%
-    % empty key node (right)
-    |(l#3-n#4-k#2)| {\hphantom{1}} \&%
-  \else%
-    % key node with value (right)
-    |(l#3-n#4-k#2)| {#1} \&%
-  \fi%
-}%
-
-%%
-% Helper macro (only for package internal usage).
-% Creates the content for an empty node (to be used in a matrix of nodes).
-% The naming of this node is done automatically. This macro is used to generate
-% the content of the matrix of nodes for a B+ tree node in the macro
-% \CreateBTreeNode[4].
-%
-% Naming schema: l#2-n#3-p#1
-%
-% Arguments:
-%   #1 ...  The pointer number, e.g. if #1 is 2, the pointer nodes third part of
-%           the name is '-p2'
-%   #2 ...  The level number, e.g. if #2 is 3, the nodes first part of the name
-%           is 'l3'
-%   #3 ...  The node number, e.g. if #3 is 4, the nodes second part of the name
-%           is '-n4'
-%
-% Example of the usage:
-%   \@create@key@matrix@node{5}{2}{1}
-%
-%   (Never needed because it is more of an internal macro to draw the B+ tree).
-%   Generates a single empty node named 'l2-n1-p5' (which is in most cases is
-%   the rightmost part of a B+ tree node). So if the initial matrix is
-%   [| 3 | 5], the subsequent matrix is [| 3 | 5 |].
-%%
-\newcommand{\@create@pointer@matrix@node}[3] {%
-  % empty pointer node
-  |(l#2-n#3-p#1) [fill=blue!20]| {\vphantom{1}} \&%
-}%
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% MACROS (GLOBAL)
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%%
-% Just a setter to set the \noOfPointersPerNode variable.
-%
-% Arguments:
-%   #1 ...  The value to be assigned to \noOfPointersPerNode
-%
-% Example of the usage:
-%   \setNoOfPoinersPerNode{4}
-%
-%   Sets \noOfPointersPerNode to 4.
-%%
-\newcommand{\SetNoOfPoinersPerNode}[1]{%
-  \noOfPointersPerNode = #1%
-}%
-
-%%
-% Generates the content of a complete B+ tree node (matrix of nodes) for given
-% values supplied as comma-separated list. This generated content is stored into
-% a variable supplied as argument. If the comma-separated list contains less
-% than (\noOfPointersPerNode - 1) elements, the remaining nodes are left empty
-% but are generated to be visualized. Hence, if \noOfPointersPerNode is set to 4
-% and only a list of 2 elements is supplied as key list, the node contains of
-% the two keys and two empty nodes ([| key1 | key2 |  |  |]).
-% The other way round, if the comma-separated list contains more than
-% \noOfPointersPerNode elements, the oversupplied elements are simply ignored
-% and thus are not contained in the matrix of nodes.
-% The generated matrix of nodes is not named because this is not needed to
-% connect the nodes. However, the nodes inside this matrix of nodes are named
-% (see macros \@create@key@matrix@node and \@create@key@matrix@node).
-%
-% Todo: Encapsulate the part inside the \whiledo and \ifthenelse, respectively,
-%       into an own macros (if possible; may not be possible because of the
-%       expanding of the arguments/counters). By now this is more or less
-%       duplicated code.
-%
-% Arguments:
-%   #1 ...  The level of the node (used for naming in called macros)
-%   #2 ...  Number of the node of level #1
-%   #3 ...  Values as comma-separated list
-%   #4 ...  Name of the variable the B+ tree node content is stored to
-%
-% Example of the usage:
-%   \SetNoOfPoinersPerNode{4}
-%   \CreateBTreeNode{0}{1}{{5}}{\levelZeroNodeOne}
-%   \node[BTreeNodeDefault] {\levelZeroNodeOne};
-%
-%   The first line set the number of pointers per node to a maximum of 4. The
-%   second line generates the content of the matrix of nodes, stored in
-%   \levelZeroNodeOne. \levelZeroNodeOne afterwards contains of a matrix of
-%   nodes [| 5 | | |]. So \levelZeroNodeOne can be used as content for the
-%   subsequent call of node, which then has to be a matrix of nodes
-%   (\levelZeroNodeOne is a matrix content separated by & and \\).
-%%
-\newcommand{\CreateBTreeNode}[4] {%
-  % initialize pointer counter (is then incremented for each pointer generated)
-  \pointerCounter = 1%
-
-  % initialize variable the node content is stored into (set it empty)
-  \let#4\empty%
-
-  % for each value of the comma-separated list
-  \foreach \x in #3 {%
-    % only insert until the maximum number of pointers per node is reached
-    \ifthenelse{\not{\the\pointerCounter < \noOfPointersPerNode}}{\breakforeach}{%
-      % expand first two arguments upfront (necessary)
-      \edef\tmpexpand{{\x}{\the\pointerCounter}}%
-      % the \@create@key@matrix@node macros generates a part of the whole node
-      % matrix and this content is then appended here
-      % also the arguments are expanded accordingly
-      \expandafter\gappto\expandafter#4\expandafter{%
-        \expandafter\@create@key@matrix@node\tmpexpand{#1}{#2}%
-      }%
-      % increment pointer counter
-      \global\advance\pointerCounter by 1%
-    }%
-  }%
-
-  % here the remaining empty key nodes of the matrix are produced (if there are
-  % less keys than (number of pointers per node - 1) supplied)
-  \whiledo{\the\pointerCounter < \noOfPointersPerNode}{%
-    % expand first two arguments upfront (necessary)
-    \edef\tmpexpand{{}{\the\pointerCounter}}%
-    % the \@create@key@matrix@node macros generates a part of the whole node
-    % matrix and this content is then appended here (in essence, here the empty
-    % nodes are generated and appended).
-    % also the arguments are expanded accordingly
-    \expandafter\gappto\expandafter#4\expandafter{%
-      \expandafter\@create@key@matrix@node\tmpexpand{#1}{#2}%
-    }%
-    % increment pointer counter
-    \global\advance\pointerCounter by 1%
-  }%
-
-  % here the last pointer node is appended to the matrix
-  \expandafter\gappto\expandafter#4\expandafter{%
-    \expandafter\@create@pointer@matrix@node%
-    \expandafter{\the\pointerCounter}{#1}{#2}%
-  }%
-
-  % append the line of the matrix of nodes is finished (with \\)
-  \gappto#4{\\}%
-}%
-
-%%
-% Connects all pointers of a given node on a given (source) level to all its
-% children of a given (destination level) with an arrow (solid). This only works
-% if the nodes of the B+ tree are named like mentioned in the
-% \@create@key@matrix@node and \@create@pointer@matrix@node, respectively.
-%
-% Arguments:
-%   #1 ...  Number of source (tree) level
-%   #2 ...  Number of source node (parent node)
-%   #3 ...  Number of destination (tree) level
-%   #4 ...  Number of (child) nodes to be connected with parent
-%   #5 ...  Number of the first (child) node to be connected with parent
-%
-% Example of the usage:
-%   \ConnectBTreeNodes{0}{1}{1}{2}{1}
-%
-%		Generates arrows from node 1 of the top level (0) to 2 child nodes of the
-%   subsequent level (1) of the tree. We have 2 children on the subsequent level
-%   and the first node to be connect (on the subsequent level) is node 1. A node
-%   contains 3 search keys, hence it has 4 pointers. The incoming arrows on any
-%   node on the subsequent level arrives at the north center of the node.
-%%
-\newcommand{\ConnectBTreeNodes}[5] {%
-  % initialize temporary counter (just used to iterate)
-  \tempCounter = 0%
-
-  % draw a vertical arrow (connect) from the source node to each child node
-  \whiledo{\the\tempCounter < #4} {%
-    % compute current node number:
-    % temporary counter + the number of the node to start with
-    \nodeNumber = \the\tempCounter%
-    \advance\nodeNumber by #5%
-
-    % compute current pointer number: temporary counter + 1
-    \pointerNumber = \the\tempCounter%
-    \advance\pointerNumber by 1%
-
-    % draw an arrow from south of the computed pointer number to middle of the
-    % north of the node with the previously computed number
-    \draw[->, >=stealth] (l#1-n#2-p\the\pointerNumber.south) --
-      ($(l#3-n\the\nodeNumber-p1.north)!0.5!(l#3-n\the\nodeNumber-p\the\noOfPointersPerNode.north)$);%
-
-    % increment temporary counter
-    \global\advance\tempCounter by 1%
-  }%
-}%
-
-%%
-%	Connects all leaf nodes of a given (leaf) level with a dotted arrow. The arrow
-% starts at .east of the rightmost node inside the leaf and ends at .west
-% of the leftmost node inside the next leaf. This only works if the nodes of the
-% B+ tree are named	like mentioned in in the \@create@key@matrix@node and
-% \@create@pointer@matrix@node, respectively.
-%
-% Arguments:
-%   #1 ... Number of the (tree) level of the leaves
-%   #2 ... Number of leaf nodes to be connected
-%
-% Example of the usage:
-%   \ConnectBTreeLeaves{2}{5}
-%
-%   Generates arrows between 5 nodes of the leaf level (here 2).
-%%
-\newcommand{\ConnectBTreeLeaves}[2] {%
-  % initialize node number (used to iterate)
-  \nodeNumber = 1%
-
-  % draw horizontal, dotted arrows (connect) between all leaf nodes
-  % arrows are drawn from left to right
-  \whiledo{\the\nodeNumber < #2} {%
-    % compute next node number: current node number + 1
-    \nextNodeNumber = \nodeNumber%
-    \advance\nextNodeNumber by 1%
-
-    % draw a dotted arrow between two leaf nodes (from left to right)
-    \draw[->, >=stealth, dotted]
-      (l#1-n\the\nodeNumber-p\the\noOfPointersPerNode.east) --
-      (l#1-n\the\nextNodeNumber-p1.west);%
-
-    % increment node number
-    \global\advance\nodeNumber by 1%
-  }%
-}%
-
-\endinput
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Author:       Daniel Kocher
+% Email:        Daniel.Kocher@stud.sbg.ac.at
+% Github:       www.github.com/danielkocher
+% Institute:    University of Salzburg
+%               Department of Computer Sciences
+%               Database Research Group (dbresearch.uni-salzburg.at)
+%
+% Project:      www.github.com/danielkocher/btreevis
+% License:      MIT license
+% Description:  Drawing B+ trees is a usual task when teaching and/or working on
+%               database index structures (and other algorithms and data
+%               structure stuff). The default TikZ features do not provide a
+%               good and uncomplicated way to draw such a B+ tree. Furthermore
+%               they do not look 'good'. 'Good' in the sense that they do not
+%               look like real B+ tree. This package tackles this problem.
+%
+%               It provides macros to simplify and beautify the drawing of a B+
+%               tree in LaTeX using TikZ. To keep drawing the trees simple, the
+%               standard tree environment of TikZ is used. So, all the nodes
+%               are placed by this environment in a tree-like way. The content
+%               of the nodes is a matrix of nodes, generated by a macro, which
+%               generates key and pointer nodes alternating (starting with a
+%               pointer node) - see \CreateBTreeNode[4] for further details.
+%               The TikZ tree environment connects the nodes of tree by default.
+%               This feature is disabled by a default style (BTreeDefault)
+%               because these connections do not correspond to the connections
+%               we want for a realistic B+ tree visualization. To accomplish
+%               such a realistic B+ tree visualization, this package provides
+%               two macros: one to draw connections between inner nodes
+%               (vertically) and one to draw connections between leaf nodes
+%               (horizontally). See \ConnectBTreeNodes[5] and
+%               \ConnectBTreeLeaves[2] for further information. To simplify the
+%               macros, a global number of pointers per node is used. This is
+%               necessary because the \Connect* macros need to know how many
+%               keys can be stored in a B+ tree node at most in order to allow
+%               proper arrow drawing (the source of every arrow has to be an
+%               an arrow field of the B+ tree node and the destination of every
+%               arrow has to be in the middle of the .north of a B+ tree node.
+%               The package also provides two default tikzstyles, one for the
+%               B+ tree node and one for the whole tikzpicture of the B+ tree.
+%               Those styles also contain useful information when creating own
+%               tikzstyles (see tikzstyles BTreeDefault and BTreeNodeDefault for
+%               further information).
+%
+%               There are two macros for internal usage which may be used
+%               outside this package but at your own risk.
+%
+%               Please contact me using the email at the top of this header for
+%               bugs, criticism and comments.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{btreevis}[2015/06/24 B+ Tree Visualization Package]
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% PACKAGES
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\RequirePackage{tikz}
+\RequirePackage{ifthen}
+\RequirePackage{etoolbox}
+%\RequirePackage{calc}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% LIBRARIES
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% TikZ
+\usetikzlibrary{arrows, matrix, calc}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% COUNTERS (GLOBAL)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% The number of pointers per node (often referred to as m in B+ tree context)
+\newcount\noOfPointersPerNode%
+
+% Used to number pointers and keys consecutively inside a B+ tree node
+\newcount\pointerCounter%
+
+% Used in the connect macros to know where the arrows have to start
+\newcount\pointerNumber%
+
+% Used in the connect macros to hold the number of the current (source) node to
+% connect to
+\newcount\nodeNumber%
+
+% Used in the connect macros to hold the number of the next (destination) node
+% to connect to
+\newcount\nextNodeNumber%
+
+% Used temporarily in the connect macros
+\newcount\tempCounter%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% DEFAULT STYLES (GLOBAL)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Default style of a B+ tree node. Provides all important properties a B+ tree
+% node should have such that the resulting B^+ tree looks beautiful.
+% May be overridden by an own style.
+\tikzstyle{BTreeNodeDefault} = [
+  draw,
+  matrix,
+  matrix of nodes,
+  % must be used; otherwise the matrix content generation does not work
+  ampersand replacement=\&,
+  % if inner sep != 0, there is a border around the matrix of nodes
+  inner sep = 0,
+  nodes = {
+    draw,
+    rectangle,
+    % better readability; otherwise node border and content do overlay
+    inner sep = 1mm,
+    % workaround to make nodes look better;
+    % better in the sense that all nodes in the matrix of nodes have the same
+    % height and depth independent of their content
+    text height = height("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmopqrstuvwxyz0123456789"),
+    text depth = depth("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmopqrstuvwxyz0123456789"),
+    % scaling factor of nodes; nodes have to be scaled independently from the
+    % whole tikzpicture (at least in some cases)
+    scale = 1
+  }
+]
+
+% Default style of a B+ tree.
+% May be overriden by own styles but has all important properties.
+\tikzstyle{BTreeDefault} = [
+  % scaling factor of the whole picture
+  scale = 1,
+  % must be used; otherwise the tree environment draws its own connecting arrows
+  edge from parent/.style = {}
+]
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% MACROS (PACKAGE INTERNAL)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%
+% Helper macro (only for package internal usage).
+% Creates the content for two nodes (to be used in a matrix of nodes).
+% One with a given content (a key node) and one corresponding pointer node
+% (left of the key node). The naming of both key and pointer nodes is done
+% automatically. This macro is used to generate the content of the matrix of
+% nodes for a B+ tree node in the macro \CreateBTreeNode[4].
+%
+% Be careful when modifying this macros: Because the content just generates a
+% part of a matrix no blank lines should be inserted in this macros (this may
+% causes strange errors when compiling).
+%
+% Naming schema: l#3-n#4-k#2 for search keys and l#3-n#4-p#2 for pointers.
+%
+% Arguments:
+%   #1 ...  The value to be inserted into the node. If empty an empty node is
+%           generated.
+%   #2 ...	The pointer/key number, e.g. if #2 is 2, the pointer nodes third
+%           part of the name is '-p2' and the value nodes third part of the name
+%           is '-k2'
+%   #3 ...	The level number, e.g. if #3 is 3, the nodes first part of the name
+%           is 'l3'
+%   #4 ...	The node number, e.g. if #4 is 4, the nodes second part of the name
+%           is '-n4'
+%
+% Example of the usage:
+%   \@create@key@matrix@node{3}{1}{2}{1}
+%
+%   (Never needed because it is more of an internal macro to draw the B+ tree).
+%   Generates two nodes: the left (pointer) node named 'l2-n1-p1' containing no
+%   value and a node right of it named 'l2-n1-k1' containing the value '3'. So
+%   if the initial matrix was an empty matrix of nodes [], the subsequent matrix
+%   contains two nodes [| 3].
+%%
+\newcommand{\@create@key@matrix@node}[4] {%
+  % empty pointer node (left)
+  |(l#3-n#4-p#2) [fill=blue!20]| {\vphantom{1}} \&%
+  % check presence of argument #1
+  \ifx&#1&%
+    % empty key node (right)
+    |(l#3-n#4-k#2)| {\hphantom{1}} \&%
+  \else%
+    % key node with value (right)
+    |(l#3-n#4-k#2)| {#1} \&%
+  \fi%
+}%
+
+%%
+% Helper macro (only for package internal usage).
+% Creates the content for an empty node (to be used in a matrix of nodes).
+% The naming of this node is done automatically. This macro is used to generate
+% the content of the matrix of nodes for a B+ tree node in the macro
+% \CreateBTreeNode[4].
+%
+% Naming schema: l#2-n#3-p#1
+%
+% Arguments:
+%   #1 ...  The pointer number, e.g. if #1 is 2, the pointer nodes third part of
+%           the name is '-p2'
+%   #2 ...  The level number, e.g. if #2 is 3, the nodes first part of the name
+%           is 'l3'
+%   #3 ...  The node number, e.g. if #3 is 4, the nodes second part of the name
+%           is '-n4'
+%
+% Example of the usage:
+%   \@create@key@matrix@node{5}{2}{1}
+%
+%   (Never needed because it is more of an internal macro to draw the B+ tree).
+%   Generates a single empty node named 'l2-n1-p5' (which is in most cases is
+%   the rightmost part of a B+ tree node). So if the initial matrix is
+%   [| 3 | 5], the subsequent matrix is [| 3 | 5 |].
+%%
+\newcommand{\@create@pointer@matrix@node}[3] {%
+  % empty pointer node
+  |(l#2-n#3-p#1) [fill=blue!20]| {\vphantom{1}} \&%
+}%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% MACROS (GLOBAL)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%
+% Just a setter to set the \noOfPointersPerNode variable.
+%
+% Arguments:
+%   #1 ...  The value to be assigned to \noOfPointersPerNode
+%
+% Example of the usage:
+%   \setNoOfPoinersPerNode{4}
+%
+%   Sets \noOfPointersPerNode to 4.
+%%
+\newcommand{\SetNoOfPoinersPerNode}[1]{%
+  \noOfPointersPerNode = #1%
+}%
+
+%%
+% Generates the content of a complete B+ tree node (matrix of nodes) for given
+% values supplied as comma-separated list. This generated content is stored into
+% a variable supplied as argument. If the comma-separated list contains less
+% than (\noOfPointersPerNode - 1) elements, the remaining nodes are left empty
+% but are generated to be visualized. Hence, if \noOfPointersPerNode is set to 4
+% and only a list of 2 elements is supplied as key list, the node contains of
+% the two keys and two empty nodes ([| key1 | key2 |  |  |]).
+% The other way round, if the comma-separated list contains more than
+% \noOfPointersPerNode elements, the oversupplied elements are simply ignored
+% and thus are not contained in the matrix of nodes.
+% The generated matrix of nodes is not named because this is not needed to
+% connect the nodes. However, the nodes inside this matrix of nodes are named
+% (see macros \@create@key@matrix@node and \@create@key@matrix@node).
+%
+% Todo: Encapsulate the part inside the \whiledo and \ifthenelse, respectively,
+%       into an own macros (if possible; may not be possible because of the
+%       expanding of the arguments/counters). By now this is more or less
+%       duplicated code.
+%
+% Arguments:
+%   #1 ...  The level of the node (used for naming in called macros)
+%   #2 ...  Number of the node of level #1
+%   #3 ...  Values as comma-separated list
+%   #4 ...  Name of the variable the B+ tree node content is stored to
+%
+% Example of the usage:
+%   \SetNoOfPoinersPerNode{4}
+%   \CreateBTreeNode{0}{1}{{5}}{\levelZeroNodeOne}
+%   \node[BTreeNodeDefault] {\levelZeroNodeOne};
+%
+%   The first line set the number of pointers per node to a maximum of 4. The
+%   second line generates the content of the matrix of nodes, stored in
+%   \levelZeroNodeOne. \levelZeroNodeOne afterwards contains of a matrix of
+%   nodes [| 5 | | |]. So \levelZeroNodeOne can be used as content for the
+%   subsequent call of node, which then has to be a matrix of nodes
+%   (\levelZeroNodeOne is a matrix content separated by & and \\).
+%%
+\newcommand{\CreateBTreeNode}[4] {%
+  % initialize pointer counter (is then incremented for each pointer generated)
+  \pointerCounter = 1%
+
+  % initialize variable the node content is stored into (set it empty)
+  \let#4\empty%
+
+  % for each value of the comma-separated list
+  \foreach \x in #3 {%
+    % only insert until the maximum number of pointers per node is reached
+    \ifthenelse{\not{\the\pointerCounter < \noOfPointersPerNode}}{\breakforeach}{%
+      % expand first two arguments upfront (necessary)
+      \edef\tmpexpand{{\x}{\the\pointerCounter}}%
+      % the \@create@key@matrix@node macros generates a part of the whole node
+      % matrix and this content is then appended here
+      % also the arguments are expanded accordingly
+      \expandafter\gappto\expandafter#4\expandafter{%
+        \expandafter\@create@key@matrix@node\tmpexpand{#1}{#2}%
+      }%
+      % increment pointer counter
+      \global\advance\pointerCounter by 1%
+    }%
+  }%
+
+  % here the remaining empty key nodes of the matrix are produced (if there are
+  % less keys than (number of pointers per node - 1) supplied)
+  \whiledo{\the\pointerCounter < \noOfPointersPerNode}{%
+    % expand first two arguments upfront (necessary)
+    \edef\tmpexpand{{}{\the\pointerCounter}}%
+    % the \@create@key@matrix@node macros generates a part of the whole node
+    % matrix and this content is then appended here (in essence, here the empty
+    % nodes are generated and appended).
+    % also the arguments are expanded accordingly
+    \expandafter\gappto\expandafter#4\expandafter{%
+      \expandafter\@create@key@matrix@node\tmpexpand{#1}{#2}%
+    }%
+    % increment pointer counter
+    \global\advance\pointerCounter by 1%
+  }%
+
+  % here the last pointer node is appended to the matrix
+  \expandafter\gappto\expandafter#4\expandafter{%
+    \expandafter\@create@pointer@matrix@node%
+    \expandafter{\the\pointerCounter}{#1}{#2}%
+  }%
+
+  % append the line of the matrix of nodes is finished (with \\)
+  \gappto#4{\\}%
+}%
+
+%%
+% Connects all pointers of a given node on a given (source) level to all its
+% children of a given (destination level) with an arrow (solid). This only works
+% if the nodes of the B+ tree are named like mentioned in the
+% \@create@key@matrix@node and \@create@pointer@matrix@node, respectively.
+%
+% Arguments:
+%   #1 ...  Number of source (tree) level
+%   #2 ...  Number of source node (parent node)
+%   #3 ...  Number of destination (tree) level
+%   #4 ...  Number of (child) nodes to be connected with parent
+%   #5 ...  Number of the first (child) node to be connected with parent
+%
+% Example of the usage:
+%   \ConnectBTreeNodes{0}{1}{1}{2}{1}
+%
+%		Generates arrows from node 1 of the top level (0) to 2 child nodes of the
+%   subsequent level (1) of the tree. We have 2 children on the subsequent level
+%   and the first node to be connect (on the subsequent level) is node 1. A node
+%   contains 3 search keys, hence it has 4 pointers. The incoming arrows on any
+%   node on the subsequent level arrives at the north center of the node.
+%%
+\newcommand{\ConnectBTreeNodes}[5] {%
+  % initialize temporary counter (just used to iterate)
+  \tempCounter = 0%
+
+  % draw a vertical arrow (connect) from the source node to each child node
+  \whiledo{\the\tempCounter < #4} {%
+    % compute current node number:
+    % temporary counter + the number of the node to start with
+    \nodeNumber = \the\tempCounter%
+    \advance\nodeNumber by #5%
+
+    % compute current pointer number: temporary counter + 1
+    \pointerNumber = \the\tempCounter%
+    \advance\pointerNumber by 1%
+
+    % draw an arrow from south of the computed pointer number to middle of the
+    % north of the node with the previously computed number
+    \draw[->, >=stealth] (l#1-n#2-p\the\pointerNumber.south) --
+      ($(l#3-n\the\nodeNumber-p1.north)!0.5!(l#3-n\the\nodeNumber-p\the\noOfPointersPerNode.north)$);%
+
+    % increment temporary counter
+    \global\advance\tempCounter by 1%
+  }%
+}%
+
+%%
+%	Connects all leaf nodes of a given (leaf) level with a dotted arrow. The arrow
+% starts at .east of the rightmost node inside the leaf and ends at .west
+% of the leftmost node inside the next leaf. This only works if the nodes of the
+% B+ tree are named	like mentioned in in the \@create@key@matrix@node and
+% \@create@pointer@matrix@node, respectively.
+%
+% Arguments:
+%   #1 ... Number of the (tree) level of the leaves
+%   #2 ... Number of leaf nodes to be connected
+%
+% Example of the usage:
+%   \ConnectBTreeLeaves{2}{5}
+%
+%   Generates arrows between 5 nodes of the leaf level (here 2).
+%%
+\newcommand{\ConnectBTreeLeaves}[2] {%
+  % initialize node number (used to iterate)
+  \nodeNumber = 1%
+
+  % draw horizontal, dotted arrows (connect) between all leaf nodes
+  % arrows are drawn from left to right
+  \whiledo{\the\nodeNumber < #2} {%
+    % compute next node number: current node number + 1
+    \nextNodeNumber = \nodeNumber%
+    \advance\nextNodeNumber by 1%
+
+    % draw a dotted arrow between two leaf nodes (from left to right)
+    \draw[->, >=stealth, dotted]
+      (l#1-n\the\nodeNumber-p\the\noOfPointersPerNode.east) --
+      (l#1-n\the\nextNodeNumber-p1.west);%
+
+    % increment node number
+    \global\advance\nodeNumber by 1%
+  }%
+}%
+
+\endinput
diff --git a/algo/datenstrukturen.tex b/algo/datenstrukturen.tex
index 7a23120..a9ac654 100644
--- a/algo/datenstrukturen.tex
+++ b/algo/datenstrukturen.tex
@@ -1,799 +1,806 @@
-\section{Elementare Datenstrukturen}
-
-\begin{defi}{Homogene Datenstruktur}
-    In einer \emph{homogenen Datenstruktur} haben alle Komponenten den \emph{gleichen} Datentyp.
-\end{defi}
-
-\begin{defi}{Heterogene Datenstruktur}
-    In einer \emph{heterogenen Datenstruktur} haben die Komponenten \emph{unterschiedliche} Datentypen.
-\end{defi}
-
-% ADTs
-\begin{defi}{Abstrakte Datentypen (ADTs)}
-    Anforderungen an die Definition eines Datentyps:
-    \begin{itemize}
-        \item \emph{Spezifikation} eines Datentyps unabhängig von der Implementierung
-        \item Reduzierung der von außen sichtbaren Aspekte auf die \emph{Schnittstelle} des Datentyps
-    \end{itemize}
-
-    Daraus entstehen \textbf{zwei Prinzipien}:
-    \begin{itemize}
-        \item \emph{Kapselung:}
-              \subitem Zu einem ADT gehört eine Schnittstelle.
-              \subitem Zugriffe auf den ADT erfolgen ausschließlich über die Schnittstelle.
-        \item \emph{Geheimnisprinzip:}
-              \subitem Interne Realisierung eines ADT-Moduls bleibt verborgen.
-    \end{itemize}
-\end{defi}
-
-\begin{bonus}{ADTs in Java}
-    Viele wichtige abstrakte Datentypen werden in Java durch \emph{Interfaces} beschrieben.
-
-    Es gibt ein oder mehrere Implementierungen dieser Interfaces mit unterschiedlichen dahinter stehenden Konzepten.
-
-    In Java: Package \texttt{java.util}
-
-    Wichtig in der Vorlesung:
-
-    \begin{tabular}{l|l|l}
-        ADT                     & Grund-ADT/Interface & Java-Klassen                      \\
-        \hline
-        Feld                    &                     & (Felder), HashMap                 \\
-        Liste                   & List                & ArrayList, LinkedList             \\
-        Menge                   & Set                 & HashSet, TreeSet                  \\
-        Prioritätswarteschlange &                     & PriorityQueue                     \\
-        Stack                   & List                &                                   \\
-        Queue                   & List                &                                   \\
-        Deque                   & List                & Deque (Interface), ArrayDeque     \\
-        Map                     & Set                 & Map (Interface), HashMap, TreeMap \\
-        BidiMap                 & Map                 & BidiMap, BiMap (Interface)        \\
-        MultiSet, Bag           & Map                 & Bag, Multiset (Interface)
-    \end{tabular}
-\end{bonus}
-
-\subsection{Felder und abstrakte Datenstrukturen}
-
-\begin{defi}{Array}
-    Ein \emph{Array} hat folgende spezielle Eigenschaften:
-    \begin{itemize}
-        \item Feste Anzahl an Datenobjekten
-        \item Auf jedes Objekt kann direkt lesend oder schreibend zugegriffen werden
-    \end{itemize}
-
-    \begin{center}
-        \begin{tikzpicture}[
-                %  -{Stealth[length = 2.5pt]},
-                start chain,
-                node distance = 0pt,
-                StackBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
-            ]
-            { start chain = going right
-                \node [StackBlock, label=$0$] (0) {};
-                \node [StackBlock, label=$1$] (1) {};
-                \node [StackBlock, label=$2$] (2) {};
-                \node [StackBlock, label=$3$] (3) {};
-                \node [StackBlock, label=$\ldots$] (d1) {};
-                \node [StackBlock, label=$k$] (k) {};
-                \node [StackBlock, label=$\ldots$] (d2) {};
-                \node [StackBlock, label=$n-1$] (n1) {};
-                \node [StackBlock, label=$n$] (n) {};
-            }
-        \end{tikzpicture}
-    \end{center}
-
-    \textbf{Performance:}
-
-    \begin{center}
-        \begin{tabular}{c|c|c|c|c}
-            Zugriff     & Suche       & Einf./Lösch. (Anfang) & Einf./Lösch. (Ende) & Einf./Lösch. (Mitte) \\
-            \hline
-            $\Theta(1)$ & $\Theta(n)$ & -                     & -                   & -                    \\
-        \end{tabular}
-    \end{center}
-\end{defi}
-
-
-\begin{defi}{Stack}
-    \begin{itemize}
-        \item Daten können an einem Ende hinzugefügt oder entnommen werden.
-    \end{itemize}
-
-    \begin{center}
-        \begin{tikzpicture}[
-                %  -{Stealth[length = 2.5pt]},
-                start chain,
-                node distance = 0pt,
-                StackBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
-            ]
-            { start chain = going right
-                \node [StackBlock,draw=none] (0) {};
-
-                \node [StackBlock,xshift=4em] (1) {};
-                \node [StackBlock] (2) {};
-                \node [StackBlock] (3) {};
-                \node [StackBlock] (4) {};
-                \node [StackBlock] (5) {};
-
-                \node [StackBlock,xshift=4em,draw=none] (6) {};
-
-                \draw[->] ([yshift=0.5em, xshift=0.25em] 5.east) [out=0, in=180] to ([yshift=0.5em, xshift=-0.25em] 6.west);
-                \draw[->] ([yshift=-0.5em, xshift=-0.25em] 6.west) [out=180, in=0] to ([yshift=-0.5em, xshift=0.25em] 5.east);
-            }
-        \end{tikzpicture}
-    \end{center}
-\end{defi}
-
-\begin{defi}{Queue}
-    \begin{itemize}
-        \item Daten können an einem Ende hinzugefügt und am anderen Ende entnommen werden.
-    \end{itemize}
-
-    \begin{center}
-        \begin{tikzpicture}[
-                %  -{Stealth[length = 2.5pt]},
-                start chain,
-                node distance = 0pt,
-                StackBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
-            ]
-            { start chain = going right
-                \node [StackBlock,draw=none] (0) {};
-
-                \node [StackBlock,xshift=4em] (1) {};
-                \node [StackBlock] (2) {};
-                \node [StackBlock] (3) {};
-                \node [StackBlock] (4) {};
-                \node [StackBlock] (5) {};
-
-                \node [StackBlock,xshift=4em,draw=none] (6) {};
-
-                \draw[<-] ([xshift=0.25em] 0.east) [out=0, in=180] to ([xshift=-0.25em] 1.west);
-                \draw[->] ([xshift=-0.25em] 6.west) [out=180, in=0] to ([xshift=0.25em] 5.east);
-            }
-        \end{tikzpicture}
-    \end{center}
-\end{defi}
-
-\begin{defi}{Deque (\glqq Double ended queue\grqq)}
-    \begin{itemize}
-        \item Daten können an beiden Enden hinzugefügt und entnommen werden.
-    \end{itemize}
-
-    \begin{center}
-        \begin{tikzpicture}[
-                %  -{Stealth[length = 2.5pt]},
-                start chain,
-                node distance = 0pt,
-                StackBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
-            ]
-            { start chain = going right
-                \node [StackBlock,draw=none] (0) {};
-
-                \node [StackBlock,xshift=4em] (1) {};
-                \node [StackBlock] (2) {};
-                \node [StackBlock] (3) {};
-                \node [StackBlock] (4) {};
-                \node [StackBlock] (5) {};
-
-                \node [StackBlock,xshift=4em,draw=none] (6) {};
-
-                \draw[->] ([yshift=0.5em, xshift=0.25em] 5.east) [out=0, in=180] to ([yshift=0.5em, xshift=-0.25em] 6.west);
-                \draw[->] ([yshift=-0.5em, xshift=-0.25em] 6.west) [out=180, in=0] to ([yshift=-0.5em, xshift=0.25em] 5.east);
-
-                \draw[<-] ([yshift=0.5em, xshift=0.25em] 0.east) [out=0, in=180] to ([yshift=0.5em, xshift=-0.25em] 1.west);
-                \draw[<-] ([yshift=-0.5em, xshift=-0.25em] 1.west) [out=180, in=0] to ([yshift=-0.5em, xshift=0.25em] 0.east);
-            }
-        \end{tikzpicture}
-    \end{center}
-\end{defi}
-
-% Dynamische Felder
-\begin{defi}{Dynamisches Feld}
-    Ein \emph{dynamisches Feld} besteht aus:
-    \begin{itemize}
-        \item Einem normalen Feld, das nicht vollständig gefüllt ist.
-        \item Einem Zeiger, der anzeigt, welches das erste unbesetzte Element ist.
-    \end{itemize}
-
-    \begin{center}
-        \begin{tikzpicture}[
-            %  -{Stealth[length = 2.5pt]},
-            start chain,
-            node distance = 0pt,
-            StackBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
-            ]
-            { start chain = going right
-            \node [StackBlock, fill=red!50, label=$0$] (0) {};
-            \node [StackBlock, fill=red!50, label=$1$] (1) {};
-            \node [StackBlock, fill=red!50, label=$2$] (2) {};
-            \node [StackBlock, fill=red!50, label=$3$] (3) {};
-            \node [StackBlock, fill=red!50, label=$\ldots$] (d1) {};
-            \node [StackBlock, label=$k$] (k) {};
-            \node [StackBlock, label=$\ldots$] (d2) {};
-            \node [StackBlock, label=$n-1$] (n1) {};
-            \node [StackBlock, label=$n$] (n) {};
-
-            { [continue chain = going below]
-            \chainin (k);
-            \node[StackBlock,yshift=-1em] (pointer) {$k$};
-            \draw[->] (pointer.north) [out=90, in=-90] to (k.south);
-            }
-
-            }
-            %\begin{scope}[-{Stealth[length = 2.5pt]}]
-            %\draw (1.north) [out=25, in=155] to (2.north);
-            %\draw (1.north) [out=30, in=155] to (3.north);
-            %\draw (1.north) [out=35, in=155] to (4.north);
-            %\draw (6.north) [out=40, in=155] to (6.north);
-            %\end{scope}
-            %\draw[decorate,decoration={brace, amplitude=10pt, raise=5pt, mirror}]
-            %(2.south west) to node[black,midway,below= 15pt] {$k$-elements} (7.south east);%
-
-        \end{tikzpicture}
-    \end{center}
-
-    \textbf{Performance:}
-
-    \begin{center}
-        \begin{tabular}{c|c|c|c|c}
-            Zugriff     & Suche       & Einf./Lösch. (Anfang) & Einf./Lösch. (Ende)                                                                                     & Einf./Lösch. (Mitte) \\
-            \hline
-            $\Theta(1)$ & $\Theta(n)$ & $\Theta(n)$           & $\Theta(1)/\Theta(n)$\footnote{Wenn das Feld schon voll ist, muss der komplette Inhalt kopiert werden.} & $\Theta(n)$          \\
-        \end{tabular}
-    \end{center}
-
-    Damit ist ein dynamisches Feld gut für einen \emph{Stack} geeignet!
-\end{defi}
-
-% Zirkuläre dynamische Felder
-\begin{defi}{Zirkuläres (dynamisches) Feld}
-    Ein \emph{zirkuläres Feld} besitzt einen Speicher fester Größe.
-    Dabei speichern zwei Zeiger jeweils den Anfang (\texttt{head}) des Speichers, bzw. auf die nächste freie Speicheradresse (\texttt{tail}) im Speicher.
-
-    Wird ein Element am Anfang \glqq abgearbeitet\grqq, bewegt sich \texttt{head} eine Position weiter.
-    Wird ein Element am Ende eingefügt, bewegt sich \texttt{tail} eine Position weiter.
-    \begin{center}
-        \begin{tikzpicture}[
-            %  -{Stealth[length = 2.5pt]},
-            start chain,
-            node distance = 0pt,
-            StackBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
-            ]
-            { start chain = going right
-            \node [StackBlock,label=above:$15$] (15) {};
-            \node [StackBlock,label=above:$0$, fill=red!50] (0) {};
-            \node [StackBlock,label=above:$1$, fill=red!50] (1) {};
-            \node [StackBlock,label=above:$2$, fill=red!50] (2) {};
-            \node [StackBlock,label=above:$3$, fill=red!50] (3) {};
-
-            { [continue chain = going below]
-            \chainin (3);
-            \node [StackBlock,label=right:$4$, fill=red!50] (4) {};
-            \node [StackBlock,label=right:$5$] (5) {};
-            \node [StackBlock,label=below:$6$] (6) {};
-            }
-
-            { [continue chain = going left]
-            \chainin (6);
-            \node [StackBlock,label=below:$7$] (7) {};
-            \node [StackBlock,label=below:$8$] (8) {};
-            \node [StackBlock,label=below:$9$] (9) {};
-            \node [StackBlock,label=below:$10$] (10) {};
-            \node [StackBlock,label=below:$11$] (11) {};
-            }
-
-            { [continue chain = going above]
-            \chainin (11);
-            \node [StackBlock,label=left:$12$] (12) {};
-            \node [StackBlock,label=left:$13$] (13) {};
-            \node [StackBlock,label=above:$14$] (14) {};
-            }
-
-
-            { [continue chain = going above]
-            \chainin (0);
-            \node[StackBlock,yshift=2em,xshift=-0.5em,label=\texttt{head}] (head) {$0$};
-            \draw[->] (head.south) [out=-90, in=90] to (0.north west);
-            }
-
-            { [continue chain = going right]
-            \chainin (5);
-            \node[StackBlock,yshift=0.5em,xshift=2em,label=above:\texttt{tail}] (tail) {$9$};
-            \draw[->] (tail.west) [out=180, in=0] to (5.north east);
-            }
-            }
-            %\begin{scope}[-{Stealth[length = 2.5pt]}]
-            %\draw (1.north) [out=25, in=155] to (2.north);
-            %\draw (1.north) [out=30, in=155] to (3.north);
-            %\draw (1.north) [out=35, in=155] to (4.north);
-            %\draw (6.north) [out=40, in=155] to (6.north);
-            %\end{scope}
-            %\draw[decorate,decoration={brace, amplitude=10pt, raise=5pt, mirror}]
-            %(2.south west) to node[black,midway,below= 15pt] {$k$-elements} (7.south east);%
-
-        \end{tikzpicture}
-    \end{center}
-
-    \textbf{Performance:} (dynamisch, bei unterliegender Datenstruktur Array)
-
-    \begin{center}
-        \begin{tabular}{c|c|c|c|c}
-            Zugriff     & Suche       & Einf./Lösch. (Anfang)                                                                                   & Einf./Lösch. (Ende)                              & Einf./Lösch. (Mitte) \\
-            \hline
-            $\Theta(1)$ & $\Theta(n)$ & $\Theta(1)/\Theta(n)$\footnote{Wenn das Feld schon voll ist, muss der komplette Inhalt kopiert werden.} & $\Theta(1)/\Theta(n)$\footnote{Siehe Fußnote a.} & $\Theta(n)$          \\
-        \end{tabular}
-    \end{center}
-
-    Damit ist ein zirkuläres (dynamisches) Feld gut für eine \emph{Queue/Deque} geeignet!
-\end{defi}
-
-\begin{bonus}{Prioritätswarteschlange}
-    Eine \emph{Prioritätswarteschlange} ist eine Warteschlange, deren Elemente einen Schlüssel (\emph{Priorität}) besitzen.
-
-    \textbf{Implementierung:}
-
-    In Java dient zur Implementierung die Klasse \texttt{PriorityQueue}, alternativ auch \texttt{TreeSet}.
-\end{bonus}
-
-% Mengen
-\begin{defi}{Menge}
-    Eine \emph{Menge (Set)} ist eine Sammlung von Elementen des gleichen Datentyps.
-    Innerhalb der Menge sind die Elemente ungeordnet.
-    Jedes Element kann nur einmal in der Menge vorkommen.
-
-    \textbf{Implementierung:}
-
-    In Java ist \emph{Set} ein Interface, das unter anderem folgende Klassen implementiert:
-    \begin{itemize}
-        \item \texttt{TreeSet}: Basiert auf der Datenstruktur Rot-Schwarz-Baum, implementiert Erweiterung \texttt{SortedMap}.
-        \item \texttt{HashSet}: Basiert auf der Datenstruktur Hashtabelle.
-    \end{itemize}
-\end{defi}
-
-% Listen
-\begin{defi}{Liste}
-    Im Vergleich zu einem Array kann eine \emph{Liste} schrumpfen und wachsen.
-
-    \begin{center}
-        \begin{tikzpicture}[
-                %  -{Stealth[length = 2.5pt]},
-                start chain,
-                node distance = 0pt,
-                StackBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
-            ]
-            { start chain = going right
-                \node [StackBlock, label=$0$] (0) {};
-                \node [StackBlock, label=\texttt{next}] (0p) {};
-                \node [StackBlock, label=$1$,xshift=2em] (1) {};
-                \node [StackBlock, label=\texttt{next}] (1p) {};
-                \node [StackBlock, label=$2$,xshift=2em] (2) {};
-                \node [StackBlock, label=\texttt{next}] (2p) {};
-                \node [StackBlock, label=$\ldots$,xshift=2em] (dots) {};
-                \node [StackBlock] (dotsp) {};
-                \node [StackBlock, label=$n$,xshift=2em] (n) {};
-                \node [StackBlock, label=\texttt{next}] (np) {};
-                \node [StackBlock, label=\texttt{null}, xshift=2em] (null) {};
-
-
-                \draw[->] (0p.center) [out=0, in=180] to (1.west);
-                \draw[->] (1p.center) [out=0, in=180] to (2.west);
-                \draw[->] (2p.center) [out=0, in=180] to (dots.west);
-                \draw[->] (dotsp.center) [out=0, in=180] to (n.west);
-                \draw[->] (np.center) [out=0, in=180] to (null.west);
-            }
-        \end{tikzpicture}
-    \end{center}
-
-    \textbf{Performance:}
-
-    \begin{center}
-        \begin{tabular}{c|c|c|c|c}
-            Zugriff     & Suche       & Einf./Lösch. (Anfang) & Einf./Lösch. (Ende)                                                                                 & Einf./Lösch. (Mitte)   \\
-            \hline
-            $\Theta(n)$ & $\Theta(n)$ & $\Theta(1)$           & $\Theta(1)/\Theta(n)$\footnote{$\Theta(1)$, wenn das letzte Element bekannt ist, $\Theta(n)$ sonst} & Suchzeit + $\Theta(1)$ \\
-        \end{tabular}
-    \end{center}
-\end{defi}
-
-
-\begin{defi}{Doppelt verkettete Liste}
-    Im Vergleich zu einer einfach verketteten Liste besitzt die \emph{doppelt verkettete Liste} zusätzlich einen Verweis auf den Vorgänger.
-
-    \begin{center}
-        \begin{tikzpicture}[
-                %  -{Stealth[length = 2.5pt]},
-                start chain,
-                node distance = 0pt,
-                StackBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
-            ]
-            { start chain = going right
-                \node [StackBlock,label=\texttt{null}] (nulll) {};
-
-                \node [StackBlock,label={[label distance=-.35ex]above:\texttt{prev}}, xshift=2em] (0p) {};
-                \node [StackBlock,label=$0$] (0) {};
-                \node [StackBlock,label=\texttt{next}] (0n) {};
-                \node [StackBlock,label={[label distance=-.35ex]above:\texttt{prev}},xshift=2em] (1p) {};
-                \node [StackBlock,label=$1$] (1) {};
-                \node [StackBlock,label=\texttt{next}] (1n) {};
-                \node [StackBlock,xshift=2em] (dotsp) {};
-                \node [StackBlock,label=$\ldots$] (dots) {};
-                \node [StackBlock] (dotsn) {};
-                \node [StackBlock,label={[label distance=-.35ex]above:\texttt{prev}},xshift=2em] (np) {};
-                \node [StackBlock,label=$n$] (n) {};
-                \node [StackBlock,label=\texttt{next}] (nn) {};
-
-                \node [StackBlock,label=\texttt{null}, xshift=2em] (nullr) {};
-
-                %\draw[->] ([yshift=0.5em, xshift=0.25em] 5.east) [out=0, in=180] to ([yshift=0.5em, xshift=-0.25em] 6.west);
-
-                % next arrows
-                \draw[->] ([yshift=0.5em] 0n.center) [out=0, in=180] to ([yshift=0.5em] 1p.west);
-                \draw[->] ([yshift=0.5em] 1n.center) [out=0, in=180] to ([yshift=0.5em] dotsp.west);
-                \draw[->] ([yshift=0.5em] dotsn.center) [out=0, in=180] to ([yshift=0.5em] np.west);
-
-                \draw[->] (nn.center) [out=0, in=180] to (nullr.west);
-
-                % prev arrows
-                \draw[<-] ([yshift=-0.5em] 0n.east) [out=0, in=180] to ([yshift=-0.5em] 1p.center);
-                \draw[<-] ([yshift=-0.5em] 1n.east) [out=0, in=180] to ([yshift=-0.5em] dotsp.center);
-                \draw[<-] ([yshift=-0.5em] dotsn.east) [out=0, in=180] to ([yshift=-0.5em] np.center);
-
-                \draw[->] (0p.center) [out=180, in=0] to (nulll.east);
-            }
-        \end{tikzpicture}
-    \end{center}
-
-    \textbf{Performance:}
-
-    \begin{center}
-        \begin{tabular}{c|c|c|c|c}
-            Zugriff     & Suche       & Einf./Lösch. (Anfang) & Einf./Lösch. (Ende) & Einf./Lösch. (Mitte)   \\
-            \hline
-            $\Theta(n)$ & $\Theta(n)$ & $\Theta(1)$           & $\Theta(1)$         & Suchzeit + $\Theta(1)$ \\
-        \end{tabular}
-    \end{center}
-\end{defi}
-
-% Assoziative Felder
-\begin{defi}{Assoziatives Feld}
-    Ein \emph{assoziatives Feld} ist eine Sonderform des Feldes:
-    \begin{itemize}
-        \item Verwendet keinen numerischen Index zur Adressierung eines Elements.
-        \item Verwendet zur Adressierung einen Schlüssel (z.B. \texttt{a["Meier"]}).
-    \end{itemize}
-
-    Assoziative Felder eignen sich dazu, Datenelemente in einer großen Datenmenge aufzufinden.
-    Jedes Datenelement wird durch einen \emph{eindeutigen Schlüssel} identifiziert.
-
-    \textbf{Implementierung:}
-
-    In Java entspricht ein \emph{assoziatives Feld} dem Interface \texttt{java.util.Map}, das folgende Klassen implementiert:
-    \begin{itemize}
-        \item \texttt{TreeMap}: Basiert auf der Datenstruktur Rot-Schwarz-Baum, implementiert Erweiterung \texttt{SortedMap}.
-        \item \texttt{HashMap}: Basiert auf der Datenstruktur Hashtabelle.
-    \end{itemize}
-\end{defi}
-
-% Verkettete Listen
-
-\subsection{Hashing}
-
-% Hashtabellen
-
-\begin{defi}{Hashfunktion}
-    Eine Hashfunktion oder Streuwertfunktion ist eine Abbildung $h : S \to I$, die eine große Eingabemenge, die Schlüssel $S$, auf eine kleinere Zielmenge, die Hashwerte $I$, abbildet.\footnote{Eine Hashfunktion ist daher im Allgemeinen nicht injektiv, aber surjektiv.}
-
-    Die Bildmenge $h(S) \subseteq I$ bezeichnet die Menge der \emph{Hash-Indizes}.
-
-
-    \begin{center}
-        \begin{tikzpicture}[
-            %  -{Stealth[length = 2.5pt]},
-            start chain = going {right=of \tikzchainprevious.north east},
-            KeyBlock/.style={minimum width=4em, minimum height=2em, outer sep=0pt, on chain},
-            HashBlock/.style={minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
-            FunctionBlock/.style={minimum width=10em, minimum height=26em, outer sep=0pt, on chain, very thick,fill=blue!20},
-            every node/.style={draw, label distance=0.5em},
-            every on chain/.style={anchor=north west},
-            node distance=4em
-            ]
-            {
-            \node [KeyBlock, label=above:Schlüssel] (k0) {Jürgen};
-            \node [FunctionBlock, label=above:Hashfunktion] (fun) {};
-            \node [HashBlock, label=above:Hashwerte] (h00) {00};
-
-            { [continue chain = going {below=of \tikzchainprevious.south west}, node distance=2em]
-            \chainin (k0);
-            \node [KeyBlock] (k1) {Felix};
-            \node [KeyBlock] (k2) {Finn};
-            \node [KeyBlock] (k3) {Tim};
-            \node [KeyBlock] (k4) {Benno};
-            \node [KeyBlock] (k5) {Lukas};
-            \node [KeyBlock] (k6) {Julia};
-            }
-
-            { [continue chain = going {below=of \tikzchainprevious.south west}, node distance=0pt]
-            \chainin (h00);
-            \node [HashBlock] (h01) {01};
-            \node [HashBlock] (h02) {02};
-            \node [HashBlock] (h03) {03};
-            \node [HashBlock] (h04) {04};
-            \node [HashBlock] (h05) {05};
-            \node [HashBlock] (h06) {06};
-            \node [HashBlock] (h07) {07};
-            \node [HashBlock] (h08) {08};
-            \node [HashBlock] (h09) {09};
-            \node [HashBlock] (h10) {10};
-            \node [HashBlock] (hdots) {$\ldots$};
-            \node [HashBlock] (h15) {15};
-            }
-
-            \draw[->] (k0.east) -- ++(2, 0) -- ($(h05.west)-(2,0)$) -- (h05.west);
-            \draw[->] (k1.east) -- ++(2, 0) -- ($(h09.west)-(2,0)$) -- (h09.west);
-            \draw[->] (k2.east) -- ++(2, 0) -- ($(h00.west)-(2,0)$) -- (h00.west);
-            \draw[->] (k3.east) -- ++(2, 0) -- ($(h15.west)-(2,0)$) -- (h15.west);
-            \draw[->] (k4.east) -- ++(2, 0) -- ($(h02.west)-(2,0)$) -- (h02.west);
-            \draw[->] (k5.east) -- ++(2, 0) -- ($(h10.west)-(2,0)$) -- (h10.west);
-            \draw[->] (k6.east) -- ++(2, 0) -- ($(h03.west)-(2,0)$) -- (h03.west);
-            }
-        \end{tikzpicture}
-    \end{center}
-\end{defi}
-
-\begin{example}{Divisions-Hash}
-    Die \emph{Divisionsrest-Methode (Divisions-Hash)} um Integer zu hashen wird definiert durch:
-    $$
-        h(x) = x \operatorname{mod} N
-    $$
-
-    Sie wird bevorzugt, wenn die Schlüsselverteilung nicht bekannt ist.
-    Etwaige Regelmäßigkeiten in der Schlüsselverteilung sollte sich nicht in der Adressverteilung auswirken. Daher sollte $N$ eine Primzahl sein.
-\end{example}
-
-\begin{example}{Hashfunktionen für verschiedene Datentypen}
-    \begin{itemize}
-        \item Alle Datenypen: Verwenden der Speicheradresse
-        \item Strings: ASCII/Unicode-Werte addieren (evtl. von einigen Buchstaben, evtl. gewichtet)
-    \end{itemize}
-\end{example}
-
-\begin{defi}{Kollision}
-    Sei $S$ eine Schlüsselmenge und $h$ eine Hashfunktion.
-    Ist
-    $$
-        s_1, s_2 \in S, \ s_1 \neq s_2 : h(s_1) = h(s_2)
-    $$
-    so spricht man von einer \emph{Kollision}.
-
-    Die Wahrscheinlichkeit von Kollisionen ist abhängig von der gewählten Hashfunktion.
-    Hashfunktionen sollten also möglichst gut \emph{streuen}, aber dennoch effizient berechenbar sein.
-
-    \begin{center}
-        \begin{tikzpicture}[
-            %  -{Stealth[length = 2.5pt]},
-            start chain = going {right=of \tikzchainprevious.north east},
-            KeyBlock/.style={minimum width=4em, minimum height=2em, outer sep=0pt, on chain},
-            HashBlock/.style={minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
-            FunctionBlock/.style={minimum width=10em, minimum height=26em, outer sep=0pt, on chain,fill=blue!20},
-            every node/.style={draw, label distance=0.5em},
-            every on chain/.style={anchor=north west},
-            node distance=4em
-            ]
-            {
-            \node [KeyBlock, label=above:Schlüssel, very thick] (k0) {Jürgen};
-            \node [FunctionBlock, label=above:Hashfunktion] (fun) {};
-            \node [HashBlock, label=above:Hashwerte] (h00) {00};
-
-            { [continue chain = going {below=of \tikzchainprevious.south west}, node distance=2em]
-            \chainin (k0);
-            \node [KeyBlock] (k1) {Felix};
-            \node [KeyBlock] (k2) {Finn};
-            \node [KeyBlock] (k3) {Tim};
-            \node [KeyBlock] (k4) {Benno};
-            \node [KeyBlock] (k5) {Lukas};
-            \node [KeyBlock, very thick] (k6) {Julia};
-            }
-
-            { [continue chain = going {below=of \tikzchainprevious.south west}, node distance=0pt]
-            \chainin (h00);
-            \node [HashBlock] (h01) {01};
-            \node [HashBlock] (h02) {02};
-            \node [HashBlock] (h03) {03};
-            \node [HashBlock] (h04) {04};
-            \node [HashBlock, very thick] (h05) {05};
-            \node [HashBlock] (h06) {06};
-            \node [HashBlock] (h07) {07};
-            \node [HashBlock] (h08) {08};
-            \node [HashBlock] (h09) {09};
-            \node [HashBlock] (h10) {10};
-            \node [HashBlock] (hdots) {$\ldots$};
-            \node [HashBlock] (h15) {15};
-            }
-
-            \draw[->, very thick, color=red] (k0.east) -- ++(2, 0) -- ($(h05.west)-(2,0)$) -- (h05.west);
-            \draw[->] (k1.east) -- ++(2, 0) -- ($(h09.west)-(2,0)$) -- (h09.west);
-            \draw[->] (k2.east) -- ++(2, 0) -- ($(h00.west)-(2,0)$) -- (h00.west);
-            \draw[->] (k3.east) -- ++(2, 0) -- ($(h15.west)-(2,0)$) -- (h15.west);
-            \draw[->] (k4.east) -- ++(2, 0) -- ($(h02.west)-(2,0)$) -- (h02.west);
-            \draw[->] (k5.east) -- ++(2, 0) -- ($(h10.west)-(2,0)$) -- (h10.west);
-            \draw[->, very thick, color=red] (k6.east) -- ++(2, 0) -- ($(h05.west)-(2,0)$) -- (h05.west);
-            }
-        \end{tikzpicture}
-    \end{center}
-
-\end{defi}
-
-\begin{defi}{Kollisionsbehandlung}
-    Um Kollisionen zu handhaben, existieren verschiedene Strategien:
-    \begin{itemize}
-        \item \emph{Hashing mit Verkettung}
-              \begin{itemize}
-                  \item Hashtabelle besteht aus $N$ linearen Listen
-                  \item $h(s)$ gibt dann an, in welche Teilliste der Datensatz gehört
-                  \item Daten werden innerhalb der Teillisten sequentiell gespeichert
-              \end{itemize}
-        \item \emph{Hashing mit offener Adressierung}
-              \begin{itemize}
-                  \item Suchen einer alternativen Position innerhalb des Feldes
-                        \begin{enumerate}
-                            \item Lineares Sondieren (Verschiebung um konstantes Intervall)
-                            \item Doppeltes Hashing (Intervall wird quadriert)
-                            \item Quadratisches Sondieren (Nutzen einer weiteren Hashfunktion)
-                        \end{enumerate}
-              \end{itemize}
-    \end{itemize}
-\end{defi}
-
-\begin{defi}{Schrittzahl}
-    Die \emph{Schrittzahl} $S(s)$, die nötig ist, um den Datensatz mit Schlüssel $s$ zu speichern bzw. wiederzufinden, setzt sich z.B. beim Hashing mit Verkettung zusammen aus:
-    \begin{itemize}
-        \item der Berechnung der Hash-Funktion und
-        \item dem Aufwand für die Suche bzw. Speicherung innerhalb der Teilliste.
-    \end{itemize}
-\end{defi}
-
-\begin{defi}{Füllgrad}
-    Der \emph{Füllgrad} einer Hashtabelle ist der Quotient
-    $$
-        \alpha = \frac{n}{N}
-    $$
-    mit
-    \begin{itemize}
-        \item $N$ als Größe der Hashtabelle
-        \item $n$ als Anzahl der gespeicherten Datensätze
-    \end{itemize}
-\end{defi}
-
-\begin{example}{Schrittzahl beim Suchen in Teillisten}
-    Bei idealer Speicherung entfallen $\alpha$ Elemente auf jede Teilliste.
-    Dabei gilt:
-    \begin{itemize}
-        \item erfolgreiche Suche: $c_1 + c_2 \cdot \frac{\alpha}{2}$
-        \item erfolglose Suche: $c_1 + c_2 \cdot \alpha$
-    \end{itemize}
-    Damit ist der Suchaufwand in $\bigo(\alpha) = \bigo(\frac{n}{N})$.
-
-    Wird der Füllgrad $\alpha$ zu groß, sollte die Hashtabelle vergrößert werden.
-\end{example}
-
-\begin{defi}{Dynamisches Hashing}
-    Um viele Kollisionen zu vermeiden, muss die Hashtabelle ab einem gewissen Füllgrad vergrößert werden.\footnote{nach Sedgewick sollte stets $\alpha < 0.5$ gelten}
-
-    Als Folge muss die gesamte Hashtabelle aber auch neu aufgebaut werden.
-\end{defi}
-
-\begin{defi}{Offene Adressierung (Sondieren)}
-    Beim Speichern wird bei \emph{Hashing mit offener Adressieren (Sondierung)} so lang ein neuer Hashindex berechnet, bis dort ein freier Speicherplatz vorhanden ist.
-
-    Das Suchen funktioniert analog, allerdings ist das Löschen sehr aufwändig.
-
-    \begin{itemize}
-        \item Lineares Sondieren
-              \begin{itemize}
-                  \item Wird die Ersatzadresse bei jeder Kollision durch Erhöhen der alten Adresse um 1 berechnet, so spricht man von \emph{linearem Sondieren (linear probing)}.
-                  \item Die $i$-te Ersatzadresse für einen Schlüssel $s$ mit Hashindex $h(s)$ wird also wie folgt berechnet:
-                        $$
-                            h_i(s) = (h(s) + i) \operatorname{mod} N
-                        $$
-              \end{itemize}
-        \item Doppeltes Hashing
-              \begin{itemize}
-                  \item Schlüssel wird nicht um $1$ erhöht, sondern der Inkrement wird mit einer zweiten Hashfunktion berechnet.
-                  \item Beseitigt praktisch die Probleme der primären und sekundären Häufung.
-                  \item Nicht alle Felder werden durchprobiert. Im ungünstigsten Fall kann eine neues Element nicht eingefügt werden, auch wenn noch Felder frei sind.
-              \end{itemize}
-    \end{itemize}
-\end{defi}
-
-\begin{defi}{Primäre und sekundäre Häufung}
-    Bei der \emph{primären Häufung (primary clustering)} ist die Wahrscheinlichkeit, dass Plätze in einem dichtbelegten Bereich eher besetzt werden, deutlich höher.
-    Es kommt also zu Kettenbildung.
-
-    Besonders häufig tritt primäre Häufung z.B. beim linearen Sondieren auf.
-
-    \begin{center}
-        \begin{tikzpicture}
-            [
-                %  -{Stealth[length = 2.5pt]},
-                start chain,
-                node distance = 0pt,
-                StackBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
-            ]
-
-            \node [draw, minimum width=2em, minimum height=2em] (val) {$s$};
-
-            { start chain = going right
-            \node [StackBlock,right=2cm of val,fill=red!30] (0) {};
-            \node [StackBlock] (1) {};
-            \node [StackBlock] (2) {};
-            \node [StackBlock,fill=red!30] (3) {};
-            \node [StackBlock,fill=red!30] (4) {};
-            \node [StackBlock,fill=red!30] (5) {};
-            \node [StackBlock,fill=red!30] (6) {};
-            \node [StackBlock,fill=red!30] (7) {};
-            \node [StackBlock] (8) {$s$};
-            \node [StackBlock] (9) {};
-
-            \draw[->] (val.south) [out=-30, in=-150] to (4.south);
-            \draw[->] (4.south) [out=-45, in=-135] to (5.south);
-            \draw[->] (5.south) [out=-45, in=-135] to (6.south);
-            \draw[->] (6.south) [out=-45, in=-135] to (7.south);
-            \draw[->] (7.south) [out=-45, in=-135] to (8.south);
-            }
-        \end{tikzpicture}
-    \end{center}
-
-
-    Die \emph{sekundäre Häufung (secondary clustering)} hängt von der Hashfunktion ab.
-    Dabei durchlaufen zwei Schlüssel $h(s)$ und $h(s')$ stets dieselbe Sondierungsfolge.
-    Sie behindern sich also auf den Ausweichplätzen.
-
-    Besonders häufig tritt sekundäre Häufung z.B. beim quadratischen Sondieren auf.
-
-
-    \begin{center}
-        \begin{tikzpicture}
-            [
-                %  -{Stealth[length = 2.5pt]},
-                start chain,
-                node distance = 0pt,
-                StackBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
-            ]
-
-            \node [minimum width=2em, minimum height=2em] (val) {};
-
-            { start chain = going right
-            \node [StackBlock,right=2cm of val] (0) {};
-            \node [StackBlock,fill=red!30] (1) {};
-            \node [StackBlock,fill=red!30] (2) {};
-            \node [StackBlock,fill=red!30] (3) {};
-            \node [StackBlock] (4) {};
-            \node [StackBlock,fill=red!30] (5) {};
-            \node [StackBlock] (6) {};
-            \node [StackBlock] (7) {};
-            \node [StackBlock] (8) {$s$};
-            \node [StackBlock] (9) {$s'$};
-
-            { [continue chain = going above]
-            \chainin (val);
-            \node [StackBlock] (val1) {$s$};
-            }
-
-            { [continue chain = going below]
-            \chainin (val);
-            \node [StackBlock] (val2) {$s'$};
-            }
-
-            \draw[->] (val1.east) [out=0, in=150] to (2.north);
-            \draw[->] (2.north) [out=45, in=135] to (3.north);
-            \draw[->] (3.north) [out=45, in=135] to (5.north);
-            \draw[->] (5.north) [out=45, in=135] to (8.north);
-
-            \draw[->] (val2.east) [out=0, in=-150] to (2.south);
-            \draw[->] (2.south) [out=-45, in=-135] to (3.south);
-            \draw[->] (3.south) [out=-45, in=-135] to (5.south);
-            \draw[->] (5.south) [out=-45, in=-135] to (8.south);
-            \draw[->] (8.south) [out=-45, in=-135] to (9.south);
-            }
-        \end{tikzpicture}
-    \end{center}
-\end{defi}
+\section{Elementare Datenstrukturen}
+
+% ADTs
+\begin{defi}{Abstrakte Datentypen (ADTs)}
+    Anforderungen an die Definition eines Datentyps:
+    \begin{itemize}
+        \item \emph{Spezifikation} eines Datentyps unabhängig von der Implementierung
+        \item Reduzierung der von außen sichtbaren Aspekte auf die \emph{Schnittstelle} des Datentyps
+    \end{itemize}
+
+    Daraus entstehen \textbf{zwei Prinzipien}:
+    \begin{itemize}
+        \item \emph{Kapselung:}
+              \subitem Zu einem ADT gehört eine Schnittstelle.
+              \subitem Zugriffe auf den ADT erfolgen ausschließlich über die Schnittstelle.
+        \item \emph{Geheimnisprinzip:}
+              \subitem Interne Realisierung eines ADT-Moduls bleibt verborgen.
+    \end{itemize}
+\end{defi}
+
+\begin{defi}{Homogene Datenstruktur}
+    In einer \emph{homogenen Datenstruktur} haben alle Komponenten den \emph{gleichen} Datentyp.
+\end{defi}
+
+\begin{defi}{Heterogene Datenstruktur}
+    In einer \emph{heterogenen Datenstruktur} haben die Komponenten \emph{unterschiedliche} Datentypen.
+\end{defi}
+
+\begin{bonus}{ADTs in Java}
+    Viele wichtige abstrakte Datentypen werden in Java durch \emph{Interfaces} beschrieben.
+
+    Es gibt ein oder mehrere Implementierungen dieser Interfaces mit unterschiedlichen dahinter stehenden Konzepten.
+
+    In Java: Package \texttt{java.util}
+
+    Wichtig in der Vorlesung:
+
+    \begin{tabular}{l|l|l}
+        ADT                     & Grund-ADT/Interface & Java-Klassen                      \\
+        \hline
+        Feld                    &                     & (Felder), HashMap                 \\
+        Liste                   & List                & ArrayList, LinkedList             \\
+        Menge                   & Set                 & HashSet, TreeSet                  \\
+        Prioritätswarteschlange &                     & PriorityQueue                     \\
+        Stack                   & List                &                                   \\
+        Queue                   & List                &                                   \\
+        Deque                   & List                & Deque (Interface), ArrayDeque     \\
+        Map                     & Set                 & Map (Interface), HashMap, TreeMap \\
+        BidiMap                 & Map                 & BidiMap, BiMap (Interface)        \\
+        MultiSet, Bag           & Map                 & Bag, Multiset (Interface)
+    \end{tabular}
+\end{bonus}
+
+\subsection{Abstrakte Datentypen}
+
+\begin{defi}{Array}
+    Ein \emph{Array} hat folgende spezielle Eigenschaften:
+    \begin{itemize}
+        \item Feste Anzahl an Datenobjekten
+        \item Auf jedes Objekt kann direkt lesend oder schreibend zugegriffen werden
+    \end{itemize}
+
+    \begin{center}
+        \begin{tikzpicture}[
+                %  -{Stealth[length = 2.5pt]},
+                start chain,
+                node distance = 0pt,
+                StackBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            ]
+            { start chain = going right
+                \node [StackBlock, label=$0$] (0) {};
+                \node [StackBlock, label=$1$] (1) {};
+                \node [StackBlock, label=$2$] (2) {};
+                \node [StackBlock, label=$3$] (3) {};
+                \node [StackBlock, label=$\ldots$] (d1) {};
+                \node [StackBlock, label=$k$] (k) {};
+                \node [StackBlock, label=$\ldots$] (d2) {};
+                \node [StackBlock, label=$n-1$] (n1) {};
+                \node [StackBlock, label=$n$] (n) {};
+            }
+        \end{tikzpicture}
+    \end{center}
+
+    \textbf{Performance:}
+
+    \begin{center}
+        \begin{tabular}{c|c|c|c|c}
+            Zugriff     & Suche       & Einf./Lösch. (Anfang) & Einf./Lösch. (Ende) & Einf./Lösch. (Mitte) \\
+            \hline
+            $\Theta(1)$ & $\Theta(n)$ & -                     & -                   & -                    \\
+        \end{tabular}
+    \end{center}
+\end{defi}
+
+\begin{defi}{Liste}
+    Eine Liste besteht aus Elementen, die wie in einem Array linear angeordnet sind.
+    Auf die Elemente einer Liste muss nicht wahlfrei zugegriffen werden können\footnote{Eine Ausnahme stellt der Listenanfang dar.}.
+
+    Die Größe einer Liste ist nicht von Anfang an bekannt und sie kann beliebig verlängert bzw. verkürzt werden.
+\end{defi}
+
+\begin{defi}{Stack}
+    \begin{itemize}
+        \item Daten können an einem Ende hinzugefügt oder entnommen werden.
+    \end{itemize}
+
+    \begin{center}
+        \begin{tikzpicture}[
+                %  -{Stealth[length = 2.5pt]},
+                start chain,
+                node distance = 0pt,
+                StackBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            ]
+            { start chain = going right
+                \node [StackBlock,draw=none] (0) {};
+
+                \node [StackBlock,xshift=4em] (1) {};
+                \node [StackBlock] (2) {};
+                \node [StackBlock] (3) {};
+                \node [StackBlock] (4) {};
+                \node [StackBlock] (5) {};
+
+                \node [StackBlock,xshift=4em,draw=none] (6) {};
+
+                \draw[->] ([yshift=0.5em, xshift=0.25em] 5.east) [out=0, in=180] to ([yshift=0.5em, xshift=-0.25em] 6.west);
+                \draw[->] ([yshift=-0.5em, xshift=-0.25em] 6.west) [out=180, in=0] to ([yshift=-0.5em, xshift=0.25em] 5.east);
+            }
+        \end{tikzpicture}
+    \end{center}
+\end{defi}
+
+\begin{defi}{Queue}
+    \begin{itemize}
+        \item Daten können an einem Ende hinzugefügt und am anderen Ende entnommen werden.
+    \end{itemize}
+
+    \begin{center}
+        \begin{tikzpicture}[
+                %  -{Stealth[length = 2.5pt]},
+                start chain,
+                node distance = 0pt,
+                StackBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            ]
+            { start chain = going right
+                \node [StackBlock,draw=none] (0) {};
+
+                \node [StackBlock,xshift=4em] (1) {};
+                \node [StackBlock] (2) {};
+                \node [StackBlock] (3) {};
+                \node [StackBlock] (4) {};
+                \node [StackBlock] (5) {};
+
+                \node [StackBlock,xshift=4em,draw=none] (6) {};
+
+                \draw[<-] ([xshift=0.25em] 0.east) [out=0, in=180] to ([xshift=-0.25em] 1.west);
+                \draw[->] ([xshift=-0.25em] 6.west) [out=180, in=0] to ([xshift=0.25em] 5.east);
+            }
+        \end{tikzpicture}
+    \end{center}
+\end{defi}
+
+\begin{defi}{Deque (\glqq Double ended queue\grqq)}
+    \begin{itemize}
+        \item Daten können an beiden Enden hinzugefügt und entnommen werden.
+    \end{itemize}
+
+    \begin{center}
+        \begin{tikzpicture}[
+                %  -{Stealth[length = 2.5pt]},
+                start chain,
+                node distance = 0pt,
+                StackBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            ]
+            { start chain = going right
+                \node [StackBlock,draw=none] (0) {};
+
+                \node [StackBlock,xshift=4em] (1) {};
+                \node [StackBlock] (2) {};
+                \node [StackBlock] (3) {};
+                \node [StackBlock] (4) {};
+                \node [StackBlock] (5) {};
+
+                \node [StackBlock,xshift=4em,draw=none] (6) {};
+
+                \draw[->] ([yshift=0.5em, xshift=0.25em] 5.east) [out=0, in=180] to ([yshift=0.5em, xshift=-0.25em] 6.west);
+                \draw[->] ([yshift=-0.5em, xshift=-0.25em] 6.west) [out=180, in=0] to ([yshift=-0.5em, xshift=0.25em] 5.east);
+
+                \draw[<-] ([yshift=0.5em, xshift=0.25em] 0.east) [out=0, in=180] to ([yshift=0.5em, xshift=-0.25em] 1.west);
+                \draw[<-] ([yshift=-0.5em, xshift=-0.25em] 1.west) [out=180, in=0] to ([yshift=-0.5em, xshift=0.25em] 0.east);
+            }
+        \end{tikzpicture}
+    \end{center}
+\end{defi}
+
+\begin{bonus}{Prioritätswarteschlange}
+    Eine \emph{Prioritätswarteschlange} ist eine Warteschlange, deren Elemente einen Schlüssel (\emph{Priorität}) besitzen.
+
+    \textbf{Implementierung:}
+
+    In Java dient zur Implementierung die Klasse \texttt{PriorityQueue}, alternativ auch \texttt{TreeSet}.
+\end{bonus}
+
+% Mengen
+\begin{defi}{Menge}
+    Eine \emph{Menge (Set)} ist eine Sammlung von Elementen des gleichen Datentyps.
+    Innerhalb der Menge sind die Elemente ungeordnet.
+    Jedes Element kann nur einmal in der Menge vorkommen.
+
+    \textbf{Implementierung:}
+
+    In Java ist \emph{Set} ein Interface, das unter anderem folgende Klassen implementiert:
+    \begin{itemize}
+        \item \texttt{TreeSet}: Basiert auf der Datenstruktur Rot-Schwarz-Baum, implementiert Erweiterung \texttt{SortedMap}.
+        \item \texttt{HashSet}: Basiert auf der Datenstruktur Hashtabelle.
+    \end{itemize}
+\end{defi}
+
+% Assoziative Felder
+\begin{defi}{Assoziatives Feld}
+    Ein \emph{assoziatives Feld} ist eine Sonderform des Feldes:
+    \begin{itemize}
+        \item Verwendet keinen numerischen Index zur Adressierung eines Elements.
+        \item Verwendet zur Adressierung einen Schlüssel (z.B. \texttt{a["Meier"]}).
+    \end{itemize}
+
+    Assoziative Felder eignen sich dazu, Datenelemente in einer großen Datenmenge aufzufinden.
+    Jedes Datenelement wird durch einen \emph{eindeutigen Schlüssel} identifiziert.
+
+    \textbf{Implementierung:}
+
+    In Java entspricht ein \emph{assoziatives Feld} dem Interface \texttt{java.util.Map}, das folgende Klassen implementiert:
+    \begin{itemize}
+        \item \texttt{TreeMap}: Basiert auf der Datenstruktur Rot-Schwarz-Baum, implementiert Erweiterung \texttt{SortedMap}.
+        \item \texttt{HashMap}: Basiert auf der Datenstruktur Hashtabelle.
+    \end{itemize}
+\end{defi}
+
+\subsection{Datenstrukturen}
+% Listen
+\begin{defi}{Einfach verkettete Liste}
+    Im Vergleich zu einem Array kann eine \emph{Liste} schrumpfen und wachsen.
+
+    \begin{center}
+        \begin{tikzpicture}[
+                %  -{Stealth[length = 2.5pt]},
+                start chain,
+                node distance = 0pt,
+                StackBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            ]
+            { start chain = going right
+                \node [StackBlock, label=$0$] (0) {};
+                \node [StackBlock, label=\texttt{next}] (0p) {};
+                \node [StackBlock, label=$1$,xshift=2em] (1) {};
+                \node [StackBlock, label=\texttt{next}] (1p) {};
+                \node [StackBlock, label=$2$,xshift=2em] (2) {};
+                \node [StackBlock, label=\texttt{next}] (2p) {};
+                \node [StackBlock, label=$\ldots$,xshift=2em] (dots) {};
+                \node [StackBlock] (dotsp) {};
+                \node [StackBlock, label=$n$,xshift=2em] (n) {};
+                \node [StackBlock, label=\texttt{next}] (np) {};
+                \node [StackBlock, label=\texttt{null}, xshift=2em] (null) {};
+
+
+                \draw[->] (0p.center) [out=0, in=180] to (1.west);
+                \draw[->] (1p.center) [out=0, in=180] to (2.west);
+                \draw[->] (2p.center) [out=0, in=180] to (dots.west);
+                \draw[->] (dotsp.center) [out=0, in=180] to (n.west);
+                \draw[->] (np.center) [out=0, in=180] to (null.west);
+            }
+        \end{tikzpicture}
+    \end{center}
+
+    \textbf{Performance:}
+
+    \begin{center}
+        \begin{tabular}{c|c|c|c|c}
+            Zugriff     & Suche       & Einf./Lösch. (Anfang) & Einf./Lösch. (Ende)                                                                                 & Einf./Lösch. (Mitte)   \\
+            \hline
+            $\Theta(n)$ & $\Theta(n)$ & $\Theta(1)$           & $\Theta(1)/\Theta(n)$\footnote{$\Theta(1)$, wenn das letzte Element bekannt ist, $\Theta(n)$ sonst} & Suchzeit + $\Theta(1)$ \\
+        \end{tabular}
+    \end{center}
+\end{defi}
+
+
+\begin{defi}{Doppelt verkettete Liste}
+    Im Vergleich zu einer einfach verketteten Liste besitzt die \emph{doppelt verkettete Liste} zusätzlich einen Verweis auf den Vorgänger.
+
+    \begin{center}
+        \begin{tikzpicture}[
+                %  -{Stealth[length = 2.5pt]},
+                start chain,
+                node distance = 0pt,
+                StackBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            ]
+            { start chain = going right
+                \node [StackBlock,label=\texttt{null}] (nulll) {};
+
+                \node [StackBlock,label={[label distance=-.35ex]above:\texttt{prev}}, xshift=2em] (0p) {};
+                \node [StackBlock,label=$0$] (0) {};
+                \node [StackBlock,label=\texttt{next}] (0n) {};
+                \node [StackBlock,label={[label distance=-.35ex]above:\texttt{prev}},xshift=2em] (1p) {};
+                \node [StackBlock,label=$1$] (1) {};
+                \node [StackBlock,label=\texttt{next}] (1n) {};
+                \node [StackBlock,xshift=2em] (dotsp) {};
+                \node [StackBlock,label=$\ldots$] (dots) {};
+                \node [StackBlock] (dotsn) {};
+                \node [StackBlock,label={[label distance=-.35ex]above:\texttt{prev}},xshift=2em] (np) {};
+                \node [StackBlock,label=$n$] (n) {};
+                \node [StackBlock,label=\texttt{next}] (nn) {};
+
+                \node [StackBlock,label=\texttt{null}, xshift=2em] (nullr) {};
+
+                %\draw[->] ([yshift=0.5em, xshift=0.25em] 5.east) [out=0, in=180] to ([yshift=0.5em, xshift=-0.25em] 6.west);
+
+                % next arrows
+                \draw[->] ([yshift=0.5em] 0n.center) [out=0, in=180] to ([yshift=0.5em] 1p.west);
+                \draw[->] ([yshift=0.5em] 1n.center) [out=0, in=180] to ([yshift=0.5em] dotsp.west);
+                \draw[->] ([yshift=0.5em] dotsn.center) [out=0, in=180] to ([yshift=0.5em] np.west);
+
+                \draw[->] (nn.center) [out=0, in=180] to (nullr.west);
+
+                % prev arrows
+                \draw[<-] ([yshift=-0.5em] 0n.east) [out=0, in=180] to ([yshift=-0.5em] 1p.center);
+                \draw[<-] ([yshift=-0.5em] 1n.east) [out=0, in=180] to ([yshift=-0.5em] dotsp.center);
+                \draw[<-] ([yshift=-0.5em] dotsn.east) [out=0, in=180] to ([yshift=-0.5em] np.center);
+
+                \draw[->] (0p.center) [out=180, in=0] to (nulll.east);
+            }
+        \end{tikzpicture}
+    \end{center}
+
+    \textbf{Performance:}
+
+    \begin{center}
+        \begin{tabular}{c|c|c|c|c}
+            Zugriff     & Suche       & Einf./Lösch. (Anfang) & Einf./Lösch. (Ende) & Einf./Lösch. (Mitte)   \\
+            \hline
+            $\Theta(n)$ & $\Theta(n)$ & $\Theta(1)$           & $\Theta(1)$         & Suchzeit + $\Theta(1)$ \\
+        \end{tabular}
+    \end{center}
+\end{defi}
+
+% Dynamische Felder
+\begin{defi}{Dynamisches Feld}
+    Ein \emph{dynamisches Feld} besteht aus:
+    \begin{itemize}
+        \item Einem normalen Feld, das nicht vollständig gefüllt ist.
+        \item Einem Zeiger, der anzeigt, welches das erste unbesetzte Element ist.
+    \end{itemize}
+
+    \begin{center}
+        \begin{tikzpicture}[
+            %  -{Stealth[length = 2.5pt]},
+            start chain,
+            node distance = 0pt,
+            StackBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            ]
+            { start chain = going right
+            \node [StackBlock, fill=red!50, label=$0$] (0) {};
+            \node [StackBlock, fill=red!50, label=$1$] (1) {};
+            \node [StackBlock, fill=red!50, label=$2$] (2) {};
+            \node [StackBlock, fill=red!50, label=$3$] (3) {};
+            \node [StackBlock, fill=red!50, label=$\ldots$] (d1) {};
+            \node [StackBlock, label=$k$] (k) {};
+            \node [StackBlock, label=$\ldots$] (d2) {};
+            \node [StackBlock, label=$n-1$] (n1) {};
+            \node [StackBlock, label=$n$] (n) {};
+
+            { [continue chain = going below]
+            \chainin (k);
+            \node[StackBlock,yshift=-1em] (pointer) {$k$};
+            \draw[->] (pointer.north) [out=90, in=-90] to (k.south);
+            }
+
+            }
+            %\begin{scope}[-{Stealth[length = 2.5pt]}]
+            %\draw (1.north) [out=25, in=155] to (2.north);
+            %\draw (1.north) [out=30, in=155] to (3.north);
+            %\draw (1.north) [out=35, in=155] to (4.north);
+            %\draw (6.north) [out=40, in=155] to (6.north);
+            %\end{scope}
+            %\draw[decorate,decoration={brace, amplitude=10pt, raise=5pt, mirror}]
+            %(2.south west) to node[black,midway,below= 15pt] {$k$-elements} (7.south east);%
+
+        \end{tikzpicture}
+    \end{center}
+
+    \textbf{Performance:}
+
+    \begin{center}
+        \begin{tabular}{c|c|c|c|c}
+            Zugriff     & Suche       & Einf./Lösch. (Anfang) & Einf./Lösch. (Ende)                                                                                     & Einf./Lösch. (Mitte) \\
+            \hline
+            $\Theta(1)$ & $\Theta(n)$ & $\Theta(n)$           & $\Theta(1)/\Theta(n)$\footnote{Wenn das Feld schon voll ist, muss der komplette Inhalt kopiert werden.} & $\Theta(n)$          \\
+        \end{tabular}
+    \end{center}
+
+    Damit ist ein dynamisches Feld gut für einen \emph{Stack} geeignet!
+\end{defi}
+
+% Zirkuläre dynamische Felder
+\begin{defi}{Zirkuläres (dynamisches) Feld}
+    Ein \emph{zirkuläres Feld} besitzt einen Speicher fester Größe.
+    Dabei speichern zwei Zeiger jeweils den Anfang (\texttt{head}) des Speichers, bzw. auf die nächste freie Speicheradresse (\texttt{tail}) im Speicher.
+
+    Wird ein Element am Anfang \glqq abgearbeitet\grqq, bewegt sich \texttt{head} eine Position weiter.
+    Wird ein Element am Ende eingefügt, bewegt sich \texttt{tail} eine Position weiter.
+    \begin{center}
+        \begin{tikzpicture}[
+            %  -{Stealth[length = 2.5pt]},
+            start chain,
+            node distance = 0pt,
+            StackBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            ]
+            { start chain = going right
+            \node [StackBlock,label=above:$15$] (15) {};
+            \node [StackBlock,label=above:$0$, fill=red!50] (0) {};
+            \node [StackBlock,label=above:$1$, fill=red!50] (1) {};
+            \node [StackBlock,label=above:$2$, fill=red!50] (2) {};
+            \node [StackBlock,label=above:$3$, fill=red!50] (3) {};
+
+            { [continue chain = going below]
+            \chainin (3);
+            \node [StackBlock,label=right:$4$, fill=red!50] (4) {};
+            \node [StackBlock,label=right:$5$] (5) {};
+            \node [StackBlock,label=below:$6$] (6) {};
+            }
+
+            { [continue chain = going left]
+            \chainin (6);
+            \node [StackBlock,label=below:$7$] (7) {};
+            \node [StackBlock,label=below:$8$] (8) {};
+            \node [StackBlock,label=below:$9$] (9) {};
+            \node [StackBlock,label=below:$10$] (10) {};
+            \node [StackBlock,label=below:$11$] (11) {};
+            }
+
+            { [continue chain = going above]
+            \chainin (11);
+            \node [StackBlock,label=left:$12$] (12) {};
+            \node [StackBlock,label=left:$13$] (13) {};
+            \node [StackBlock,label=above:$14$] (14) {};
+            }
+
+
+            { [continue chain = going above]
+            \chainin (0);
+            \node[StackBlock,yshift=2em,xshift=-0.5em,label=\texttt{head}] (head) {$0$};
+            \draw[->] (head.south) [out=-90, in=90] to (0.north west);
+            }
+
+            { [continue chain = going right]
+            \chainin (5);
+            \node[StackBlock,yshift=0.5em,xshift=2em,label=above:\texttt{tail}] (tail) {$9$};
+            \draw[->] (tail.west) [out=180, in=0] to (5.north east);
+            }
+            }
+            %\begin{scope}[-{Stealth[length = 2.5pt]}]
+            %\draw (1.north) [out=25, in=155] to (2.north);
+            %\draw (1.north) [out=30, in=155] to (3.north);
+            %\draw (1.north) [out=35, in=155] to (4.north);
+            %\draw (6.north) [out=40, in=155] to (6.north);
+            %\end{scope}
+            %\draw[decorate,decoration={brace, amplitude=10pt, raise=5pt, mirror}]
+            %(2.south west) to node[black,midway,below= 15pt] {$k$-elements} (7.south east);%
+
+        \end{tikzpicture}
+    \end{center}
+
+    \textbf{Performance:} (dynamisch, bei unterliegender Datenstruktur Array)
+
+    \begin{center}
+        \begin{tabular}{c|c|c|c|c}
+            Zugriff     & Suche       & Einf./Lösch. (Anfang)                                                                                   & Einf./Lösch. (Ende)                              & Einf./Lösch. (Mitte) \\
+            \hline
+            $\Theta(1)$ & $\Theta(n)$ & $\Theta(1)/\Theta(n)$\footnote{Wenn das Feld schon voll ist, muss der komplette Inhalt kopiert werden.} & $\Theta(1)/\Theta(n)$\footnote{Siehe Fußnote a.} & $\Theta(n)$          \\
+        \end{tabular}
+    \end{center}
+
+    Damit ist ein zirkuläres (dynamisches) Feld gut für eine \emph{Queue/Deque} geeignet!
+\end{defi}
+
+% Verkettete Listen
+
+\subsection{Hashing}
+
+% Hashtabellen
+
+\begin{defi}{Hashfunktion}
+    Eine Hashfunktion oder Streuwertfunktion ist eine Abbildung $h : S \to I$, die eine große Eingabemenge, die Schlüssel $S$, auf eine kleinere Zielmenge, die Hashwerte $I$, abbildet.\footnote{Eine Hashfunktion ist daher im Allgemeinen nicht injektiv, aber surjektiv.}
+
+    Die Bildmenge $h(S) \subseteq I$ bezeichnet die Menge der \emph{Hash-Indizes}.
+
+
+    \begin{center}
+        \begin{tikzpicture}[
+            %  -{Stealth[length = 2.5pt]},
+            start chain = going {right=of \tikzchainprevious.north east},
+            KeyBlock/.style={minimum width=4em, minimum height=2em, outer sep=0pt, on chain},
+            HashBlock/.style={minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            FunctionBlock/.style={minimum width=10em, minimum height=26em, outer sep=0pt, on chain, very thick,fill=blue!20},
+            every node/.style={draw, label distance=0.5em},
+            every on chain/.style={anchor=north west},
+            node distance=4em
+            ]
+            {
+            \node [KeyBlock, label=above:Schlüssel] (k0) {Jürgen};
+            \node [FunctionBlock, label=above:Hashfunktion] (fun) {};
+            \node [HashBlock, label=above:Hashwerte] (h00) {00};
+
+            { [continue chain = going {below=of \tikzchainprevious.south west}, node distance=2em]
+            \chainin (k0);
+            \node [KeyBlock] (k1) {Felix};
+            \node [KeyBlock] (k2) {Finn};
+            \node [KeyBlock] (k3) {Tim};
+            \node [KeyBlock] (k4) {Benno};
+            \node [KeyBlock] (k5) {Lukas};
+            \node [KeyBlock] (k6) {Julia};
+            }
+
+            { [continue chain = going {below=of \tikzchainprevious.south west}, node distance=0pt]
+            \chainin (h00);
+            \node [HashBlock] (h01) {01};
+            \node [HashBlock] (h02) {02};
+            \node [HashBlock] (h03) {03};
+            \node [HashBlock] (h04) {04};
+            \node [HashBlock] (h05) {05};
+            \node [HashBlock] (h06) {06};
+            \node [HashBlock] (h07) {07};
+            \node [HashBlock] (h08) {08};
+            \node [HashBlock] (h09) {09};
+            \node [HashBlock] (h10) {10};
+            \node [HashBlock] (hdots) {$\ldots$};
+            \node [HashBlock] (h15) {15};
+            }
+
+            \draw[->] (k0.east) -- ++(2, 0) -- ($(h05.west)-(2,0)$) -- (h05.west);
+            \draw[->] (k1.east) -- ++(2, 0) -- ($(h09.west)-(2,0)$) -- (h09.west);
+            \draw[->] (k2.east) -- ++(2, 0) -- ($(h00.west)-(2,0)$) -- (h00.west);
+            \draw[->] (k3.east) -- ++(2, 0) -- ($(h15.west)-(2,0)$) -- (h15.west);
+            \draw[->] (k4.east) -- ++(2, 0) -- ($(h02.west)-(2,0)$) -- (h02.west);
+            \draw[->] (k5.east) -- ++(2, 0) -- ($(h10.west)-(2,0)$) -- (h10.west);
+            \draw[->] (k6.east) -- ++(2, 0) -- ($(h03.west)-(2,0)$) -- (h03.west);
+            }
+        \end{tikzpicture}
+    \end{center}
+\end{defi}
+
+\begin{example}{Divisions-Hash}
+    Die \emph{Divisionsrest-Methode (Divisions-Hash)} um Integer zu hashen wird definiert durch:
+    $$
+        h(x) = x \operatorname{mod} N
+    $$
+
+    Sie wird bevorzugt, wenn die Schlüsselverteilung nicht bekannt ist.
+    Etwaige Regelmäßigkeiten in der Schlüsselverteilung sollte sich nicht in der Adressverteilung auswirken. Daher sollte $N$ eine Primzahl sein.
+\end{example}
+
+\begin{example}{Hashfunktionen für verschiedene Datentypen}
+    \begin{itemize}
+        \item Alle Datenypen: Verwenden der Speicheradresse
+        \item Strings: ASCII/Unicode-Werte addieren (evtl. von einigen Buchstaben, evtl. gewichtet)
+    \end{itemize}
+\end{example}
+
+\begin{defi}{Kollision}
+    Sei $S$ eine Schlüsselmenge und $h$ eine Hashfunktion.
+    Ist
+    $$
+        s_1, s_2 \in S, \ s_1 \neq s_2 : h(s_1) = h(s_2)
+    $$
+    so spricht man von einer \emph{Kollision}.
+
+    Die Wahrscheinlichkeit von Kollisionen ist abhängig von der gewählten Hashfunktion.
+    Hashfunktionen sollten also möglichst gut \emph{streuen}, aber dennoch effizient berechenbar sein.
+
+    \begin{center}
+        \begin{tikzpicture}[
+            %  -{Stealth[length = 2.5pt]},
+            start chain = going {right=of \tikzchainprevious.north east},
+            KeyBlock/.style={minimum width=4em, minimum height=2em, outer sep=0pt, on chain},
+            HashBlock/.style={minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            FunctionBlock/.style={minimum width=10em, minimum height=26em, outer sep=0pt, on chain,fill=blue!20},
+            every node/.style={draw, label distance=0.5em},
+            every on chain/.style={anchor=north west},
+            node distance=4em
+            ]
+            {
+            \node [KeyBlock, label=above:Schlüssel, very thick] (k0) {Jürgen};
+            \node [FunctionBlock, label=above:Hashfunktion] (fun) {};
+            \node [HashBlock, label=above:Hashwerte] (h00) {00};
+
+            { [continue chain = going {below=of \tikzchainprevious.south west}, node distance=2em]
+            \chainin (k0);
+            \node [KeyBlock] (k1) {Felix};
+            \node [KeyBlock] (k2) {Finn};
+            \node [KeyBlock] (k3) {Tim};
+            \node [KeyBlock] (k4) {Benno};
+            \node [KeyBlock] (k5) {Lukas};
+            \node [KeyBlock, very thick] (k6) {Julia};
+            }
+
+            { [continue chain = going {below=of \tikzchainprevious.south west}, node distance=0pt]
+            \chainin (h00);
+            \node [HashBlock] (h01) {01};
+            \node [HashBlock] (h02) {02};
+            \node [HashBlock] (h03) {03};
+            \node [HashBlock] (h04) {04};
+            \node [HashBlock, very thick] (h05) {05};
+            \node [HashBlock] (h06) {06};
+            \node [HashBlock] (h07) {07};
+            \node [HashBlock] (h08) {08};
+            \node [HashBlock] (h09) {09};
+            \node [HashBlock] (h10) {10};
+            \node [HashBlock] (hdots) {$\ldots$};
+            \node [HashBlock] (h15) {15};
+            }
+
+            \draw[->, very thick, color=red] (k0.east) -- ++(2, 0) -- ($(h05.west)-(2,0)$) -- (h05.west);
+            \draw[->] (k1.east) -- ++(2, 0) -- ($(h09.west)-(2,0)$) -- (h09.west);
+            \draw[->] (k2.east) -- ++(2, 0) -- ($(h00.west)-(2,0)$) -- (h00.west);
+            \draw[->] (k3.east) -- ++(2, 0) -- ($(h15.west)-(2,0)$) -- (h15.west);
+            \draw[->] (k4.east) -- ++(2, 0) -- ($(h02.west)-(2,0)$) -- (h02.west);
+            \draw[->] (k5.east) -- ++(2, 0) -- ($(h10.west)-(2,0)$) -- (h10.west);
+            \draw[->, very thick, color=red] (k6.east) -- ++(2, 0) -- ($(h05.west)-(2,0)$) -- (h05.west);
+            }
+        \end{tikzpicture}
+    \end{center}
+
+\end{defi}
+
+\begin{defi}{Kollisionsbehandlung}
+    Um Kollisionen zu handhaben, existieren verschiedene Strategien:
+    \begin{itemize}
+        \item \emph{Hashing mit Verkettung}
+              \begin{itemize}
+                  \item Hashtabelle besteht aus $N$ linearen Listen
+                  \item $h(s)$ gibt dann an, in welche Teilliste der Datensatz gehört
+                  \item Daten werden innerhalb der Teillisten sequentiell gespeichert
+              \end{itemize}
+        \item \emph{Hashing mit offener Adressierung}
+              \begin{itemize}
+                  \item Suchen einer alternativen Position innerhalb des Feldes
+                        \begin{enumerate}
+                            \item Lineares Sondieren (Verschiebung um konstantes Intervall)
+                            \item Doppeltes Hashing (Nutzen einer weiteren Hashfunktion)
+                            \item Quadratisches Sondieren (Intervall wird quadriert)
+                        \end{enumerate}
+              \end{itemize}
+    \end{itemize}
+\end{defi}
+
+\begin{defi}{Schrittzahl}
+    Die \emph{Schrittzahl} $S(s)$, die nötig ist, um den Datensatz mit Schlüssel $s$ zu speichern bzw. wiederzufinden, setzt sich z.B. beim Hashing mit Verkettung zusammen aus:
+    \begin{itemize}
+        \item der Berechnung der Hash-Funktion und
+        \item dem Aufwand für die Suche bzw. Speicherung innerhalb der Teilliste.
+    \end{itemize}
+\end{defi}
+
+\begin{defi}{Füllgrad}
+    Der \emph{Füllgrad} einer Hashtabelle ist der Quotient
+    $$
+        \alpha = \frac{n}{N}
+    $$
+    mit
+    \begin{itemize}
+        \item $N$ als Größe der Hashtabelle
+        \item $n$ als Anzahl der gespeicherten Datensätze
+    \end{itemize}
+\end{defi}
+
+\begin{example}{Schrittzahl beim Suchen in Teillisten}
+    Bei idealer Speicherung entfallen $\alpha$ Elemente auf jede Teilliste.
+    Dabei gilt:
+    \begin{itemize}
+        \item erfolgreiche Suche: $c_1 + c_2 \cdot \frac{\alpha}{2}$
+        \item erfolglose Suche: $c_1 + c_2 \cdot \alpha$
+    \end{itemize}
+    Damit ist der Suchaufwand in $\bigo(\alpha) = \bigo(\frac{n}{N})$.
+
+    Wird der Füllgrad $\alpha$ zu groß, sollte die Hashtabelle vergrößert werden.
+\end{example}
+
+\begin{defi}{Dynamisches Hashing}
+    Um viele Kollisionen zu vermeiden, muss die Hashtabelle ab einem gewissen Füllgrad vergrößert werden.\footnote{nach Sedgewick sollte stets $\alpha < 0.5$ gelten}
+
+    Als Folge muss die gesamte Hashtabelle aber auch neu aufgebaut werden.
+\end{defi}
+
+\begin{defi}{Offene Adressierung (Sondieren)}
+    Beim Speichern wird bei \emph{Hashing mit offener Adressieren (Sondierung)} so lang ein neuer Hashindex berechnet, bis dort ein freier Speicherplatz vorhanden ist.
+
+    Das Suchen funktioniert analog, allerdings ist das Löschen sehr aufwändig.
+
+    \begin{itemize}
+        \item Lineares Sondieren
+              \begin{itemize}
+                  \item Wird die Ersatzadresse bei jeder Kollision durch Erhöhen der alten Adresse um 1 berechnet, so spricht man von \emph{linearem Sondieren (linear probing)}.
+                  \item Die $i$-te Ersatzadresse für einen Schlüssel $s$ mit Hashindex $h(s)$ wird also wie folgt berechnet:
+                        $$
+                            h_i(s) = (h(s) + i) \operatorname{mod} N
+                        $$
+              \end{itemize}
+        \item Doppeltes Hashing
+              \begin{itemize}
+                  \item Schlüssel wird nicht um $1$ erhöht, sondern der Inkrement wird mit einer zweiten Hashfunktion berechnet.
+                  \item Beseitigt praktisch die Probleme der primären und sekundären Häufung.
+                  \item Nicht alle Felder werden durchprobiert. Im ungünstigsten Fall kann eine neues Element nicht eingefügt werden, auch wenn noch Felder frei sind.
+              \end{itemize}
+    \end{itemize}
+\end{defi}
+
+\begin{defi}{Primäre und sekundäre Häufung}
+    Bei der \emph{primären Häufung (primary clustering)} ist die Wahrscheinlichkeit, dass Plätze in einem dichtbelegten Bereich eher besetzt werden, deutlich höher.
+    Es kommt also zu Kettenbildung.
+
+    Besonders häufig tritt primäre Häufung z.B. beim linearen Sondieren auf.
+
+    \begin{center}
+        \begin{tikzpicture}
+            [
+                %  -{Stealth[length = 2.5pt]},
+                start chain,
+                node distance = 0pt,
+                StackBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            ]
+
+            \node [draw, minimum width=2em, minimum height=2em] (val) {$s$};
+
+            { start chain = going right
+            \node [StackBlock,right=2cm of val,fill=red!30] (0) {};
+            \node [StackBlock] (1) {};
+            \node [StackBlock] (2) {};
+            \node [StackBlock,fill=red!30] (3) {};
+            \node [StackBlock,fill=red!30] (4) {};
+            \node [StackBlock,fill=red!30] (5) {};
+            \node [StackBlock,fill=red!30] (6) {};
+            \node [StackBlock,fill=red!30] (7) {};
+            \node [StackBlock] (8) {$s$};
+            \node [StackBlock] (9) {};
+
+            \draw[->] (val.south) [out=-30, in=-150] to (4.south);
+            \draw[->] (4.south) [out=-45, in=-135] to (5.south);
+            \draw[->] (5.south) [out=-45, in=-135] to (6.south);
+            \draw[->] (6.south) [out=-45, in=-135] to (7.south);
+            \draw[->] (7.south) [out=-45, in=-135] to (8.south);
+            }
+        \end{tikzpicture}
+    \end{center}
+
+
+    Die \emph{sekundäre Häufung (secondary clustering)} hängt von der Hashfunktion ab.
+    Dabei durchlaufen zwei Schlüssel $h(s)$ und $h(s')$ stets dieselbe Sondierungsfolge.
+    Sie behindern sich also auf den Ausweichplätzen.
+
+    Besonders häufig tritt sekundäre Häufung z.B. beim quadratischen Sondieren auf.
+
+
+    \begin{center}
+        \begin{tikzpicture}
+            [
+                %  -{Stealth[length = 2.5pt]},
+                start chain,
+                node distance = 0pt,
+                StackBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            ]
+
+            \node [minimum width=2em, minimum height=2em] (val) {};
+
+            { start chain = going right
+            \node [StackBlock,right=2cm of val] (0) {};
+            \node [StackBlock,fill=red!30] (1) {};
+            \node [StackBlock,fill=red!30] (2) {};
+            \node [StackBlock,fill=red!30] (3) {};
+            \node [StackBlock] (4) {};
+            \node [StackBlock,fill=red!30] (5) {};
+            \node [StackBlock] (6) {};
+            \node [StackBlock] (7) {};
+            \node [StackBlock] (8) {$s$};
+            \node [StackBlock] (9) {$s'$};
+
+            { [continue chain = going above]
+            \chainin (val);
+            \node [StackBlock] (val1) {$s$};
+            }
+
+            { [continue chain = going below]
+            \chainin (val);
+            \node [StackBlock] (val2) {$s'$};
+            }
+
+            \draw[->] (val1.east) [out=0, in=150] to (2.north);
+            \draw[->] (2.north) [out=45, in=135] to (3.north);
+            \draw[->] (3.north) [out=45, in=135] to (5.north);
+            \draw[->] (5.north) [out=45, in=135] to (8.north);
+
+            \draw[->] (val2.east) [out=0, in=-150] to (2.south);
+            \draw[->] (2.south) [out=-45, in=-135] to (3.south);
+            \draw[->] (3.south) [out=-45, in=-135] to (5.south);
+            \draw[->] (5.south) [out=-45, in=-135] to (8.south);
+            \draw[->] (8.south) [out=-45, in=-135] to (9.south);
+            }
+        \end{tikzpicture}
+    \end{center}
+\end{defi}
diff --git a/algo/floyd.java b/algo/floyd.java
index 94f55c9..65cf43e 100644
--- a/algo/floyd.java
+++ b/algo/floyd.java
@@ -1,9 +1,9 @@
-for(int i = 0; i < a.length; i++) {
-    for(int j = 0; j < a.length; j++) {
-        for(int k = 0; k < a.length; k++) {
-            if(a[j][k] > a[j][i] + a[i][k]) {
-                a[j][k] = a[j][i] + a[i][k];
-            }
-        }
-    }
+for(int i = 0; i < a.length; i++) {
+    for(int j = 0; j < a.length; j++) {
+        for(int k = 0; k < a.length; k++) {
+            if(a[j][k] > a[j][i] + a[i][k]) {
+                a[j][k] = a[j][i] + a[i][k];
+            }
+        }
+    }
 }
\ No newline at end of file
diff --git a/algo/formale_sprachen.tex b/algo/formale_sprachen.tex
new file mode 100644
index 0000000..d1026b1
--- /dev/null
+++ b/algo/formale_sprachen.tex
@@ -0,0 +1,1313 @@
+\section{Formale Sprachen}
+% Textsuche
+\subsection{Textsuche}
+
+\begin{bonus}{Textsucheverfahren}
+    \begin{itemize}
+        \item Naiver, grober, oder brute-force-Algorithmus $\in \bigo(n \cdot m)$
+              \begin{itemize}
+                  \item für kleine Texte am schnellsten
+              \end{itemize}
+        \item Knuth-Morris-Pratt, Rabin-Karp $\in \Theta(n + m)$
+        \item Boyer-Moore, (Boyer-Moore)-Sunday, (Boyer-Moore)-Horsepool $\in \bigo(n + m)$
+              \begin{itemize}
+                  \item für große Texte am schnellsten
+              \end{itemize}
+    \end{itemize}
+\end{bonus}
+
+\begin{algo}{Naive Textsuche}
+    Bei der \emph{naiven Textsuche} wird an allen Positionen $i$ des Textes nach dem Muster geprüft.
+
+    Die möglichen Positionen reichen von $i=0$ (Muster linksbündig mit dem Text) bis $i = n-m$ (Muster rechtsbündig mit dem Text).
+
+    Das Muster wird an der jeweiligen Position zeichenweise von links nach rechts mit dem Text verglichen.
+
+    Bei einem \emph{Mismatch} oder bei vollständiger Übereinstimmung (\emph{Match}) wird das Muster um eine Position weitergeschoben und an dieser Position verglichen.
+\end{algo}
+
+\begin{example}{Naive Textsuche}
+    \textbf{Aufgabe:} Finde das Muster \texttt{SINN} im Text \texttt{DASISTSINNLOSERTEXT} mithilfe naiver Textsuche.
+
+    \centering
+
+    \vspace{1em}
+
+    \begin{tikzpicture}[
+        start chain,
+        node distance = 0pt,
+        TextBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+        ]
+        { start chain = going right
+        %\node [TextBlock, fill=red!50, label=$0$] (0) {};
+        \node [TextBlock] (00) {D};
+        \node [TextBlock] (01) {A};
+        \node [TextBlock] (02) {S};
+        \node [TextBlock] (03) {I};
+        \node [TextBlock] (04) {S};
+        \node [TextBlock] (05) {T};
+        \node [TextBlock] (06) {S};
+        \node [TextBlock] (07) {I};
+        \node [TextBlock] (08) {N};
+        \node [TextBlock] (09) {N};
+        \node [TextBlock] (10) {L};
+        \node [TextBlock] (11) {O};
+        \node [TextBlock] (12) {S};
+        \node [TextBlock] (13) {E};
+        \node [TextBlock] (14) {R};
+        \node [TextBlock] (15) {T};
+        \node [TextBlock] (16) {E};
+        \node [TextBlock] (17) {X};
+        \node [TextBlock] (18) {T};
+
+
+        { [continue chain = going right]
+        \chainin (00);
+
+        \node[TextBlock, xshift=-2em, yshift=2em, index] () {\tiny 0};
+        \node [TextBlock, index] () {\tiny 1};
+        \node [TextBlock, index] () {\tiny 2};
+        \node [TextBlock, index] () {\tiny 3};
+        \node [TextBlock, index] () {\tiny 4};
+        \node [TextBlock, index] () {\tiny 5};
+        \node [TextBlock, index] () {\tiny 6};
+        \node [TextBlock, index] () {\tiny 7};
+        \node [TextBlock, index] () {\tiny 8};
+        \node [TextBlock, index] () {\tiny 9};
+        \node [TextBlock, index] () {\tiny 10};
+        \node [TextBlock, index] () {\tiny 11};
+        \node [TextBlock, index] () {\tiny 12};
+        \node [TextBlock, index] () {\tiny 13};
+        \node [TextBlock, index] () {\tiny 14};
+        \node [TextBlock, index] () {\tiny 15};
+        \node [TextBlock, index] () {\tiny 16};
+        \node [TextBlock, index] () {\tiny 17};
+        \node [TextBlock, index] () {\tiny 18};
+        }
+
+        { [continue chain = going right]
+        \chainin (00);
+        \node[TextBlock, xshift=-2em, yshift=-2em, fill=red!50] (1_0) {S};
+        \node[TextBlock] (1_1) {I};
+        \node[TextBlock] (1_2) {N};
+        \node[TextBlock] (1_3) {N};
+        %
+        \node[on chain, xshift=2em] (1_info) {\texttt{i=0; j=0} $\implies$ Mismatch!};
+        }
+
+        { [continue chain = going right]
+        \chainin (01);
+        \node[TextBlock, xshift=-2em, yshift=-4em, fill=red!50] (1_0) {S};
+        \node[TextBlock] (2_1) {I};
+        \node[TextBlock] (2_2) {N};
+        \node[TextBlock] (2_3) {N};
+        %
+        \node[on chain, xshift=2em] (1_info) {\texttt{i=1; j=0} $\implies$ Mismatch!};
+        }
+
+        { [continue chain = going right]
+        \chainin (02);
+        \node[TextBlock, xshift=-2em, yshift=-6em, fill=teal!50] (1_0) {S};
+        \node[TextBlock, fill=teal!50] (3_1) {I};
+        \node[TextBlock, fill=red!50] (3_2) {N};
+        \node[TextBlock] (3_3) {N};
+        %
+        \node[on chain, xshift=2em] (1_info) {\texttt{i=2; j=2} $\implies$ Mismatch!};
+        }
+
+        { [continue chain = going right]
+        \chainin (03);
+        \node[TextBlock, xshift=-2em, yshift=-8em, fill=red!50] (1_0) {S};
+        \node[TextBlock] (4_1) {I};
+        \node[TextBlock] (4_2) {N};
+        \node[TextBlock] (4_3) {N};
+        %
+        \node[on chain, xshift=2em] (1_info) {\texttt{i=3; j=0} $\implies$ Mismatch!};
+        }
+
+        { [continue chain = going right]
+        \chainin (04);
+        \node[TextBlock, xshift=-2em, yshift=-10em, fill=teal!50] (1_0) {S};
+        \node[TextBlock, fill=red!50] (5_1) {I};
+        \node[TextBlock] (5_2) {N};
+        \node[TextBlock] (5_3) {N};
+        %
+        \node[on chain, xshift=2em] (1_info) {\texttt{i=4; j=1} $\implies$ Mismatch!};
+        }
+
+        { [continue chain = going right]
+        \chainin (05);
+        \node[TextBlock, xshift=-2em, yshift=-12em, fill=red!50] (1_0) {S};
+        \node[TextBlock] (5_1) {I};
+        \node[TextBlock] (5_2) {N};
+        \node[TextBlock] (5_3) {N};
+        %
+        \node[on chain, xshift=2em] (1_info) {\texttt{i=5; j=0} $\implies$ Mismatch!};
+        }
+
+        { [continue chain = going right]
+        \chainin (06);
+        \node[TextBlock, xshift=-2em, yshift=-14em, fill=teal!50] (1_0) {S};
+        \node[TextBlock, fill=teal!50] (5_1) {I};
+        \node[TextBlock, fill=teal!50] (5_2) {N};
+        \node[TextBlock, fill=teal!50] (5_3) {N};
+        %
+        \node[on chain, xshift=2em] (1_info) {\textcolor{teal}{\texttt{i=6; j=4} $\implies$ Match!}};
+        }
+        }
+    \end{tikzpicture}
+\end{example}
+
+\begin{algo}{Knuth-Morris-Pratt-Algorithmus}
+    Der \emph{Knuth-Morris-Pratt-Algorithmus} baut auf der naiven Textsuche auf.
+
+    Der Unterschied liegt darin, dass bei einem Mismatch das Muster nicht nur um eine Position verschoben werden kann, sondern um mehrere gleichzeitig.
+    Dabei gilt:
+    \begin{itemize}
+        \item \textbf{Fall 1:} Wenn die letzten überprüften Buchstaben gleich dem Anfang des Patterns sind, verschiebt man das Muster entsprechend und macht beim anschließenden Zeichen weiter.
+        \item \textbf{Fall 2:} Wenn die letzten überprüften Buchstaben nicht gleich dem Anfang des Musters sind, verschiebt man das Muster so, dass das erste Zeichen auf dem Mismatch zu liegen kommt.
+    \end{itemize}
+\end{algo}
+
+\begin{example}{Knuth-Morris-Pratt-Algorithmus}
+    \textbf{Aufgabe:} Finde das Muster \texttt{UNGLEICHUNGEN} im Text \texttt{UNGLEICHUNGSTEIL...} mithilfe des Knuth-Morris-Pratt-Algorithmus.
+
+    \vspace{1em}
+
+    \begin{center}
+        \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            TextBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            ]
+            { start chain = going right
+            \node [TextBlock] (00) {U};
+            \node [TextBlock] (01) {N};
+            \node [TextBlock] (02) {G};
+            \node [TextBlock] (03) {L};
+            \node [TextBlock] (04) {E};
+            \node [TextBlock] (05) {I};
+            \node [TextBlock] (06) {C};
+            \node [TextBlock] (07) {H};
+            \node [TextBlock] (08) {U};
+            \node [TextBlock] (09) {N};
+            \node [TextBlock] (10) {G};
+            \node [TextBlock] (11) {S};
+            \node [TextBlock] (12) {T};
+            \node [TextBlock] (13) {E};
+            \node [TextBlock] (14) {I};
+            \node [TextBlock] (15) {L};
+            \node [TextBlock] (16) {$\ldots$};
+
+            { [continue chain = going right]
+            \chainin (00);
+
+            \node[TextBlock, xshift=-2em, yshift=2em, index] () {\tiny 0};
+            \node [TextBlock, index] () {\tiny 1};
+            \node [TextBlock, index] () {\tiny 2};
+            \node [TextBlock, index] () {\tiny 3};
+            \node [TextBlock, index] () {\tiny 4};
+            \node [TextBlock, index] () {\tiny 5};
+            \node [TextBlock, index] () {\tiny 6};
+            \node [TextBlock, index] () {\tiny 7};
+            \node [TextBlock, index] () {\tiny 8};
+            \node [TextBlock, index] () {\tiny 9};
+            \node [TextBlock, index] () {\tiny 10};
+            \node [TextBlock, index] () {\tiny 11};
+            \node [TextBlock, index] () {\tiny 12};
+            \node [TextBlock, index] () {\tiny 13};
+            \node [TextBlock, index] () {\tiny 14};
+            \node [TextBlock, index] () {\tiny 15};
+            \node [TextBlock, index] () {\tiny 16};
+            }
+
+
+            { [continue chain = going right]
+            \chainin (00);
+            \node[TextBlock, xshift=-2em, yshift=-2em, fill=teal!50] (1_00)  {U};
+            \node [TextBlock, fill=teal!50] (1_01) {N};
+            \node [TextBlock, fill=teal!50] (1_02) {G};
+            \node [TextBlock, fill=teal!50] (1_03) {L};
+            \node [TextBlock, fill=teal!50] (1_04) {E};
+            \node [TextBlock, fill=teal!50] (1_05) {I};
+            \node [TextBlock, fill=teal!50] (1_06) {C};
+            \node [TextBlock, fill=teal!50] (1_07) {H};
+            \node [TextBlock, fill=teal!50] (1_08) {U};
+            \node [TextBlock, fill=teal!50] (1_09) {N};
+            \node [TextBlock, fill=teal!50] (1_10) {G};
+            \node [TextBlock, fill=red!50] (1_11) {E};
+            \node [TextBlock] (1_12) {N};
+            %
+            \node[on chain, xshift=2em] (1_info) {$\implies$ Fall 1};
+            }
+
+            { [continue chain = going right]
+            \chainin (08);
+            \node[TextBlock, xshift=-2em, yshift=-4em, fill=teal!50] (2_00)  {U};
+            \node [TextBlock, fill=teal!50] (2_01) {N};
+            \node [TextBlock, fill=teal!50] (2_02) {G};
+            \node [TextBlock, fill=red!50] (2_03) {L};
+            \node [TextBlock] (2_04) {E};
+            \node [TextBlock] (2_05) {I};
+            \node [TextBlock] (2_06) {C};
+            \node [TextBlock] (2_07) {H};
+            \node [TextBlock] (2_08) {$\ldots$};
+            }
+
+            { [continue chain = going below]
+            \chainin (2_00);
+            \node [on chain, minimum width=2em, minimum height=2em] (usw) {usw.};
+            }
+            }
+            \node [draw, dashed, fit={(00) (01) (02) (1_00) (1_01) (1_02)}] {};
+            \node [draw, dashed, fit={(08) (09) (10) (1_08) (1_09) (1_10)}] {};
+        \end{tikzpicture}
+    \end{center}
+
+    \textbf{Aufgabe:} Finde das Muster \texttt{UNGLEICHER} im Text \texttt{UNGLEICHUNGSTEIL...} mithilfe des Knuth-Morris-Pratt-Algorithmus.
+
+    \vspace{1em}
+
+    \begin{center}
+        \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            TextBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            ]
+            { start chain = going right
+            \node [TextBlock] (00) {U};
+            \node [TextBlock] (01) {N};
+            \node [TextBlock] (02) {G};
+            \node [TextBlock] (03) {L};
+            \node [TextBlock] (04) {E};
+            \node [TextBlock] (05) {I};
+            \node [TextBlock] (06) {C};
+            \node [TextBlock] (07) {H};
+            \node [TextBlock] (08) {U};
+            \node [TextBlock] (09) {N};
+            \node [TextBlock] (10) {G};
+            \node [TextBlock] (11) {S};
+            \node [TextBlock] (12) {T};
+            \node [TextBlock] (13) {E};
+            \node [TextBlock] (14) {I};
+            \node [TextBlock] (15) {L};
+            \node [TextBlock] (16) {$\ldots$};
+
+            { [continue chain = going right]
+            \chainin (00);
+
+            \node[TextBlock, xshift=-2em, yshift=2em, index] () {\tiny 0};
+            \node [TextBlock, index] () {\tiny 1};
+            \node [TextBlock, index] () {\tiny 2};
+            \node [TextBlock, index] () {\tiny 3};
+            \node [TextBlock, index] () {\tiny 4};
+            \node [TextBlock, index] () {\tiny 5};
+            \node [TextBlock, index] () {\tiny 6};
+            \node [TextBlock, index] () {\tiny 7};
+            \node [TextBlock, index] () {\tiny 8};
+            \node [TextBlock, index] () {\tiny 9};
+            \node [TextBlock, index] () {\tiny 10};
+            \node [TextBlock, index] () {\tiny 11};
+            \node [TextBlock, index] () {\tiny 12};
+            \node [TextBlock, index] () {\tiny 13};
+            \node [TextBlock, index] () {\tiny 14};
+            \node [TextBlock, index] () {\tiny 15};
+            \node [TextBlock, index] () {\tiny 16};
+            }
+
+            { [continue chain = going right]
+            \chainin (00);
+            \node[TextBlock, xshift=-2em, yshift=-2em, fill=teal!50] (1_00)  {U};
+            \node [TextBlock, fill=teal!50] (1_01) {N};
+            \node [TextBlock, fill=teal!50] (1_02) {G};
+            \node [TextBlock, fill=teal!50] (1_03) {L};
+            \node [TextBlock, fill=teal!50] (1_04) {E};
+            \node [TextBlock, fill=teal!50] (1_05) {I};
+            \node [TextBlock, fill=teal!50] (1_06) {C};
+            \node [TextBlock, fill=teal!50] (1_07) {H};
+            \node [TextBlock, fill=red!50] (1_08) {E};
+            \node [TextBlock] (1_09) {R};
+            %
+            \node[on chain, xshift=2em] (1_info) {$\implies$ Fall 2};
+            }
+
+            { [continue chain = going right]
+            \chainin (08);
+            \node[TextBlock, xshift=-2em, yshift=-4em, fill=teal!50] (2_00)  {U};
+            \node [TextBlock, fill=teal!50] (2_01) {N};
+            \node [TextBlock, fill=teal!50] (2_02) {G};
+            \node [TextBlock, fill=red!50] (2_03) {L};
+            \node [TextBlock] (2_04) {E};
+            \node [TextBlock] (2_05) {I};
+            \node [TextBlock] (2_06) {C};
+            \node [TextBlock] (2_07) {H};
+            \node [TextBlock] (2_08) {$\ldots$};
+            }
+
+            { [continue chain = going below]
+            \chainin (2_00);
+            \node [on chain, minimum width=2em, minimum height=2em] (usw) {usw.};
+            }
+            }
+        \end{tikzpicture}
+    \end{center}
+\end{example}
+
+\begin{algo}{Boyer-Moore-Sunday-Algorithmus}
+    Beim \emph{Boyer-Moore-Sunday-Algorithmus} wird nach einem Mismatch das Zeichen betrachtet, das hinter dem Muster liegt.
+
+    Dabei kann das Muster so weit nach vorne geschoben werden, bis ein Buchstabe des Musters mit diesem Buchstaben übereinstimmt.\footnote{Taucht der Buchstabe mehrfach im Wort auf, wird um die geringste Distanz nach vorne geschoben - also an den Buchstaben, der im Muster am weitesten hinten liegt.}
+
+    Kommt der folgende Buchstabe im Muster nicht vor, wird das Muster über den Buchstaben hinweggeschoben, da alle Positionen vorher sowieso zwecklos sind.
+\end{algo}
+
+\begin{example}{Boyer-Moore-Sunday-Algorithmus}
+    \textbf{Aufgabe:} Finde das Muster \texttt{ACBABCBA} im Text \texttt{AABBACCBACDACBABCBA} mithilfe des Boyer-Moore-Sunday-Algorithmus.
+
+    \centering
+
+    \vspace{1em}
+
+    \begin{tikzpicture}[
+        start chain,
+        node distance = 0pt,
+        TextBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+        hit/.style={fill=teal!50},
+        miss/.style={fill=red!50},
+        next/.style={fill=blue!25},
+        ]
+        { start chain = going right
+        %\node [TextBlock, fill=red!50, label=$0$] (0) {};
+        \node [TextBlock] (00) {A};
+        \node [TextBlock] (01) {A};
+        \node [TextBlock] (02) {B};
+        \node [TextBlock] (03) {B};
+        \node [TextBlock] (04) {A};
+        \node [TextBlock] (05) {C};
+        \node [TextBlock] (06) {C};
+        \node [TextBlock] (07) {B};
+        \node [TextBlock] (08) {A};
+        \node [TextBlock] (09) {C};
+        \node [TextBlock] (10) {D};
+        \node [TextBlock] (11) {A};
+        \node [TextBlock] (12) {C};
+        \node [TextBlock] (13) {B};
+        \node [TextBlock] (14) {A};
+        \node [TextBlock] (15) {B};
+        \node [TextBlock] (16) {C};
+        \node [TextBlock] (17) {B};
+        \node [TextBlock] (18) {A};
+
+        { [continue chain = going right]
+        \chainin (00);
+
+        \node[TextBlock, xshift=-2em, yshift=2em, index] () {\tiny 0};
+        \node [TextBlock, index] () {\tiny 1};
+        \node [TextBlock, index] () {\tiny 2};
+        \node [TextBlock, index] () {\tiny 3};
+        \node [TextBlock, index] () {\tiny 4};
+        \node [TextBlock, index] () {\tiny 5};
+        \node [TextBlock, index] () {\tiny 6};
+        \node [TextBlock, index] () {\tiny 7};
+        \node [TextBlock, index] () {\tiny 8};
+        \node [TextBlock, index] () {\tiny 9};
+        \node [TextBlock, index] () {\tiny 10};
+        \node [TextBlock, index] () {\tiny 11};
+        \node [TextBlock, index] () {\tiny 12};
+        \node [TextBlock, index] () {\tiny 13};
+        \node [TextBlock, index] () {\tiny 14};
+        \node [TextBlock, index] () {\tiny 15};
+        \node [TextBlock, index] () {\tiny 16};
+        \node [TextBlock, index] () {\tiny 17};
+        \node [TextBlock, index] () {\tiny 18};
+        }
+
+        { [continue chain = going right]
+        \chainin (00);
+
+        \node[TextBlock, xshift=-2em, yshift=-2em, hit] (1_00) {A};
+        \node [TextBlock, miss] (1_01) {C};
+        \node [TextBlock] (1_02) {B};
+        \node [TextBlock] (1_03) {A};
+        \node [TextBlock] (1_04) {B};
+        \node [TextBlock] (1_05) {C};
+        \node [TextBlock] (1_06) {B};
+        \node [TextBlock] (1_07) {A};
+        }
+
+        { [continue chain = going right]
+        \chainin (01);
+
+        \node[TextBlock, xshift=-2em, yshift=-4em, hit] (2_00) {A};
+        \node [TextBlock, miss] (2_01) {C};
+        \node [TextBlock] (2_02) {B};
+        \node [TextBlock] (2_03) {A};
+        \node [TextBlock] (2_04) {B};
+        \node [TextBlock] (2_05) {C};
+        \node [TextBlock] (2_06) {B};
+        \node [TextBlock, next] (2_07) {A};
+        }
+
+        { [continue chain = going right]
+        \chainin (04);
+
+        \node[TextBlock, xshift=-2em, yshift=-6em, hit] (3_00) {A};
+        \node [TextBlock, hit] (3_01) {C};
+        \node [TextBlock, miss] (3_02) {B};
+        \node [TextBlock] (3_03) {A};
+        \node [TextBlock] (3_04) {B};
+        \node [TextBlock, next] (3_05) {C};
+        \node [TextBlock] (3_06) {B};
+        \node [TextBlock] (3_07) {A};
+        }
+
+        { [continue chain = going right]
+        \chainin (07);
+
+        \node[TextBlock, xshift=-2em, yshift=-8em, miss] (4_00) {A};
+        \node [TextBlock] (4_01) {C};
+        \node [TextBlock] (4_02) {B};
+        \node [TextBlock] (4_03) {A};
+        \node [TextBlock] (4_04) {B};
+        \node [TextBlock, next] (4_05) {C};
+        \node [TextBlock] (4_06) {B};
+        \node [TextBlock] (4_07) {A};
+        }
+
+        { [continue chain = going right]
+        \chainin (09);
+
+        \node[TextBlock, xshift=-2em, yshift=-10em, miss] (5_00) {A};
+        \node [TextBlock] (5_01) {C};
+        \node [TextBlock] (5_02) {B};
+        \node [TextBlock] (5_03) {A};
+        \node [TextBlock] (5_04) {B};
+        \node [TextBlock] (5_05) {C};
+        \node [TextBlock, next] (5_06) {B};
+        \node [TextBlock] (5_07) {A};
+        }
+
+        { [continue chain = going right]
+        \chainin (11);
+
+        \node[TextBlock, xshift=-2em, yshift=-12em, hit] (6_00) {A};
+        \node [TextBlock, hit] (6_01) {C};
+        \node [TextBlock, hit] (6_02) {B};
+        \node [TextBlock, hit] (6_03) {A};
+        \node [TextBlock, hit] (6_04) {B};
+        \node [TextBlock, hit] (6_05) {C};
+        \node [TextBlock, next] (6_06) {B};
+        \node [TextBlock, hit] (6_07) {A};
+        }
+        }
+        \draw[->] (08) to (2_07);
+        \draw[->] (09) to (3_05);
+        \draw[->] (12) to (4_05);
+        \draw[->] (15) to (5_06);
+        \draw[->] (17) to (6_06);
+    \end{tikzpicture}
+\end{example}
+
+\begin{defi}{\texttt{last}-Tabelle}
+    Die \texttt{last}\emph{-Tabelle} enthält zu jedem Zeichen des Zeichensatzes die Position des letzten Vorkommens im Muster (oder $-1$, falls es nicht vorkommt).
+
+    Die Implementierung erfolgt z.B. als Array indiziert mit (Unicode-)Zeichensatz:
+    \begin{itemize}
+        \item \texttt{A} auf Index $65$
+        \item \texttt{B} auf Index $66$
+        \item $\ldots$
+        \item \texttt{a} auf Index $97$
+        \item \texttt{b} auf Index $98$
+        \item $\ldots$
+    \end{itemize}
+
+    Dabei gilt:
+    \begin{itemize}
+        \item Alte Position des Patterns: \texttt{i} (das Pattern reicht bis \texttt{i + m - 1})
+        \item Verschiebedistanz: \texttt{v = m - last[text[i+m]]}
+        \item Neue Position des Patterns: \texttt{i + v} (das Pattern reicht bis \texttt{i + v +  m - 1})
+    \end{itemize}
+\end{defi}
+
+\begin{example}{Boyer-Moore-Sunday-Algorithmus mit \texttt{last}-Tabelle}
+    \textbf{Aufgabe:} Finde das Muster \texttt{BANANAS} im Text \texttt{ORANGES, ANANANAS AND BANANANAS} mithilfe des Boyer-Moore-Sunday-Algorithmus und einer \texttt{last}-Tabelle.
+
+    \centering
+
+    \vspace{1em}
+
+    \begin{tabular}{|l||cccc|c|}
+        \hline
+        Pattern            & B & A & N & S & sonst \\
+        \hline
+        \texttt{last}-Wert & 0 & 5 & 4 & 6 & -1    \\
+        \hline
+    \end{tabular}
+
+    \vspace{1em}
+
+    \begin{tikzpicture}[
+        start chain,
+        node distance = 0pt,
+        TextBlock/.style={draw, minimum width=1.5em, minimum height=1.5em, outer sep=0pt, on chain},
+        hit/.style={fill=teal!50},
+        miss/.style={fill=red!50},
+        next/.style={fill=blue!25},
+        ]
+        { start chain = going right
+        %\node [TextBlock, fill=red!50, label=$0$] (0) {};
+        \node [TextBlock] (00) {O};
+        \node [TextBlock] (01) {R};
+        \node [TextBlock] (02) {A};
+        \node [TextBlock] (03) {N};
+        \node [TextBlock] (04) {G};
+        \node [TextBlock] (05) {E};
+        \node [TextBlock] (06) {S};
+        \node [TextBlock] (07) {,};
+        \node [TextBlock] (08) {};
+        \node [TextBlock] (09) {A};
+        \node [TextBlock] (10) {N};
+        \node [TextBlock] (11) {A};
+        \node [TextBlock] (12) {N};
+        \node [TextBlock] (13) {A};
+        \node [TextBlock] (14) {S};
+        \node [TextBlock] (15) {};
+        \node [TextBlock] (16) {A};
+        \node [TextBlock] (17) {N};
+        \node [TextBlock] (18) {D};
+        \node [TextBlock] (19) {};
+        \node [TextBlock] (20) {B};
+        \node [TextBlock] (21) {A};
+        \node [TextBlock] (22) {N};
+        \node [TextBlock] (23) {A};
+        \node [TextBlock] (24) {N};
+        \node [TextBlock] (25) {A};
+        \node [TextBlock] (26) {S};
+
+        { [continue chain = going right]
+        \chainin (00);
+
+        \node[TextBlock, xshift=-1.5em, yshift=1.5em, index small] () {\tiny 0};
+        \node [TextBlock, index small] () {\tiny 1};
+        \node [TextBlock, index small] () {\tiny 2};
+        \node [TextBlock, index small] () {\tiny 3};
+        \node [TextBlock, index small] () {\tiny 4};
+        \node [TextBlock, index small] () {\tiny 5};
+        \node [TextBlock, index small] () {\tiny 6};
+        \node [TextBlock, index small] () {\tiny 7};
+        \node [TextBlock, index small] () {\tiny 8};
+        \node [TextBlock, index small] () {\tiny 9};
+        \node [TextBlock, index small] () {\tiny 10};
+        \node [TextBlock, index small] () {\tiny 11};
+        \node [TextBlock, index small] () {\tiny 12};
+        \node [TextBlock, index small] () {\tiny 13};
+        \node [TextBlock, index small] () {\tiny 14};
+        \node [TextBlock, index small] () {\tiny 15};
+        \node [TextBlock, index small] () {\tiny 16};
+        \node [TextBlock, index small] () {\tiny 17};
+        \node [TextBlock, index small] () {\tiny 18};
+        \node [TextBlock, index small] () {\tiny 19};
+        \node [TextBlock, index small] () {\tiny 20};
+        \node [TextBlock, index small] () {\tiny 21};
+        \node [TextBlock, index small] () {\tiny 22};
+        \node [TextBlock, index small] () {\tiny 23};
+        \node [TextBlock, index small] () {\tiny 24};
+        \node [TextBlock, index small] () {\tiny 25};
+        \node [TextBlock, index small] () {\tiny 26};
+        }
+
+        { [continue chain = going right]
+        \chainin (00);
+
+        \node[TextBlock, xshift=-1.5em, yshift=-1.5em, miss] (1_00) {B};
+        \node [TextBlock] (1_01) {A};
+        \node [TextBlock] (1_02) {N};
+        \node [TextBlock] (1_03) {A};
+        \node [TextBlock] (1_04) {N};
+        \node [TextBlock] (1_05) {A};
+        \node [TextBlock] (1_06) {S};
+        }
+
+        { [continue chain = going right]
+        \chainin (08);
+
+        \node [TextBlock, xshift=-3em, yshift=-3em, dashed, blue] (2_left) {};
+        \node [TextBlock, miss] (2_00) {B};
+        \node [TextBlock] (2_01) {A};
+        \node [TextBlock] (2_02) {N};
+        \node [TextBlock] (2_03) {A};
+        \node [TextBlock] (2_04) {N};
+        \node [TextBlock] (2_05) {A};
+        \node [TextBlock] (2_06) {S};
+        }
+
+        { [continue chain = going right]
+        \chainin (16);
+
+        \node [TextBlock, xshift=-3em, yshift=-4.5em, dashed, blue] (3_left) {};
+        \node [TextBlock, miss] (3_00) {B};
+        \node [TextBlock] (3_01) {A};
+        \node [TextBlock] (3_02) {N};
+        \node [TextBlock] (3_03) {A};
+        \node [TextBlock] (3_04) {N};
+        \node [TextBlock] (3_05) {A};
+        \node [TextBlock] (3_06) {S};
+        }
+
+        { [continue chain = going right]
+        \chainin (18);
+
+        \node [TextBlock, xshift=-1.5em, yshift=-6em, miss] (4_00) {B};
+        \node [TextBlock] (4_01) {A};
+        \node [TextBlock] (4_02) {N};
+        \node [TextBlock] (4_03) {A};
+        \node [TextBlock] (4_04) {N};
+        \node [TextBlock, next] (4_05) {A};
+        \node [TextBlock] (4_06) {S};
+        }
+
+        { [continue chain = going right]
+        \chainin (20);
+
+        \node [TextBlock, xshift=-1.5em, yshift=-7.5em, hit] (5_00) {B};
+        \node [TextBlock, hit] (5_01) {A};
+        \node [TextBlock, hit] (5_02) {N};
+        \node [TextBlock, hit] (5_03) {A};
+        \node [TextBlock, hit] (5_04) {N};
+        \node [TextBlock, next] (5_05) {A};
+        \node [TextBlock, hit] (5_06) {S};
+        }
+        }
+        \draw[->] (07) to node [midway, right] () {\small \color{blue} \texttt{v = 8}} (2_left);
+        \draw[->] (15) to node [midway, right] () {\small \color{blue} \texttt{v = 8}} (3_left);
+        \draw[->] (23) to node [midway, right] () {\small \color{blue} \texttt{v = 2}} (4_05);
+        \draw[->] (25) to node [midway, right] () {\small \color{blue} \texttt{v = 2}} (5_05);
+    \end{tikzpicture}
+\end{example}
+
+\begin{algo}{Rabin-Karp-Algorithmus}
+    Der \emph{Rabin-Karp-Algorithmus} funktioniert sehr ähnlich zur naiver Textsuche.
+    Im Gegensatz wird hier aber der Hashwert des jeweiligen Textfensters mit dem Hashwert des Musters verglichen.
+
+    Nur wenn beide Hashwerte gleich sind, werden die beiden zeichenweise verglichen.
+
+    Sind die Hashwerte verschieden, rückt das Textfenster einen Schritt weiter nach rechts.
+\end{algo}
+
+\begin{example}{Rabin-Karp-Algorithmus}
+    \textbf{Aufgabe:} Finde das Muster \texttt{ANE} im Text \texttt{BENANE} mithilfe des Rabin-Karp-Algorithmus.
+
+    Die Hashfunktion $h(x)$ sei gegeben durch die jeweile Position des Buchstaben $x$ im Alphabet.
+
+    \vspace{1em}
+
+    \centering
+
+    \begin{tabular}{|c|cccccc|c|c|c|}
+        \hline
+        \rowcolor{gray!25} \texttt{i} & \multicolumn{6}{c|}{Textfenster} & Hashwerte  & Überprüfung? & Ergebnis                                                                                                         \\
+        \hline
+        \multirow{2}{*}{0}            & \textbf{B}                       & \textbf{E} & \textbf{N}   & A          & N          & E          & $h(BEN) = 21$ & \multirow{2}{*}{$\lightning$} & \multirow{2}{*}{}         \\
+                                      & \textbf{A}                       & \textbf{N} & \textbf{E}   &            &            &            & $h(ANE) = 20$ &                               &                           \\
+        \hline
+        \multirow{2}{*}{1}            & B                                & \textbf{E} & \textbf{N}   & \textbf{A} & N          & E          & $h(ENA) = 20$ & \multirow{2}{*}{$\checkmark$} & \multirow{2}{*}{Mismatch} \\
+                                      &                                  & \textbf{A} & \textbf{N}   & \textbf{E} &            &            & $h(ANE) = 20$ &                               &                           \\
+        \hline
+        \multirow{2}{*}{2}            & B                                & E          & \textbf{N}   & \textbf{A} & \textbf{N} & E          & $h(NAN) = 29$ & \multirow{2}{*}{$\lightning$} & \multirow{2}{*}{}         \\
+                                      &                                  &            & \textbf{A}   & \textbf{N} & \textbf{E} &            & $h(ANE) = 20$ &                               &                           \\
+        \hline
+        \multirow{2}{*}{3}            & B                                & E          & N            & \textbf{A} & \textbf{N} & \textbf{E} & $h(ANE) = 20$ & \multirow{2}{*}{$\checkmark$} & \multirow{2}{*}{Match}    \\
+                                      &                                  &            &              & \textbf{A} & \textbf{N} & \textbf{E} & $h(ANE) = 20$ &                               &                           \\
+        \hline
+    \end{tabular}
+\end{example}
+
+% Reguläre Ausdrücke
+
+\subsection{Reguläre Ausdrücke}
+
+\begin{bonus}{Regulärer Ausdruck (Begriffe)}
+    \begin{itemize}
+        \item Zeichen
+              \begin{itemize}
+                  \item z.B. Buchstabe, Ziffer
+              \end{itemize}
+        \item Alphabet
+              \begin{itemize}
+                  \item endliche Menge von Zeichen
+                  \item z.B. $\Sigma = \{a, b, c\}$
+              \end{itemize}
+        \item Wort über Alphabet $\Sigma$
+              \begin{itemize}
+                  \item endliche Folge von Zeichen aus $\Sigma$
+                  \item z.B. $abcb$
+                  \item Spezialfall: leeres Wort $\varepsilon$
+              \end{itemize}
+        \item $\Sigma^*$
+              \begin{itemize}
+                  \item Menge aller Wörter über $\Sigma^*$
+                  \item z.B. $\Sigma = \{a, b\} \implies \Sigma^* = \{\varepsilon, a, b, aa, ab, ba, bb, aaa, \ldots\}$
+              \end{itemize}
+        \item Sprache $L$ über Alphabet $\Sigma$
+              \begin{itemize}
+                  \item Teilmenge $L \subseteq \Sigma^*$
+              \end{itemize}
+    \end{itemize}
+\end{bonus}
+
+\begin{defi}{Regulärer Ausdruck}
+    Ein \emph{regulärer Ausdruck} ist eine Formel, die eine Sprache beschreibt, d.h. eine Teilmenge aller möglichen Worte definiert.
+\end{defi}
+
+\begin{defi}{Verkettung}
+    Bei der \emph{Verkettung} (Concatenation) werden zwei oder mehrere Buchstaben durch diese Operation aneinandergehängt, z.B. $ab$.
+
+    Der Operator wird nicht mitgeschrieben.
+\end{defi}
+
+\begin{defi}{Alternative}
+    Die \emph{Alternative} erlaubt die Angabe alternativer Zeichen im Muster.
+
+    Schreibweise:
+    \begin{itemize}
+        \item $L((A \mid B)(A \mid B)) = \{AA, AB, BA, BB\}$
+        \item $L((A \mid C)((B \mid C)D)) = \{ABD, CBD, ACD, CCD\}$
+        \item $L(C(AC\mid B)D) = \{CACD, CBD\}$
+    \end{itemize}
+\end{defi}
+
+\begin{defi}{Hüllenbildung}
+    Die \emph{Hüllenbildung} (Closure) erlaubt es, Teile des Musters beliebig oft zu wiederholen.
+
+    Schreibweise: Hinter den zu wiederholenden Buchstaben wird ein Stern $^*$ gesetzt.
+    Sind mehrere Buchstaben zu wiederholen, müssen sie in Klammern gesetzt werden.
+    \begin{itemize}
+        \item $L(A^*) = \{\varepsilon, A, AA, AAA, \ldots\}$
+        \item $L((ABC)^*) = \{\varepsilon, ABC, ABCABC, ABCABCABC, \ldots\}$
+        \item $L(DA^*B) = \{DB, DAB, DAAB, DAAAB, \ldots\}$
+    \end{itemize}
+\end{defi}
+
+\begin{defi}{Perl Compatible Regular Expressions}
+    \emph{Perl Compatible Regular Expressions} (PCRE) ist eine Bibliothek zur Auswertung und Anwendung von regulären Ausdrücken.
+
+    Sie beinhaltet standardisierte Regeln zur Erzeugung regulärer Ausdrückt für die Textsuche.
+
+    Wichtige Regeln in PCRE sind:
+
+    \centering
+
+    \begin{tabular}{|>{\ttfamily}c|l|}
+        \hline
+        \rowcolor{gray!25} \multicolumn{2}{|c|}{Verknüpfungen}                                      \\
+        \hline
+        AB                               & Zeichenfolge $AB$                                        \\
+        A|B                              & $A$ oder $B$                                             \\
+        {[}AB{]}                         & Zeichenklasse $A$ oder $B$                               \\
+        \hline
+        \rowcolor{gray!25} \multicolumn{2}{|c|}{Quantoren}                                          \\
+        \hline
+        A\{n\}                           & $A$ kommt genau $n$-mal vor                              \\
+        A\{min,\}                        & $A$ kommt mindestent $\min$-mal vor                      \\
+        A\{min,max\}                     & $A$ kommt mindestens $\min$ und höchstens $\max$-mal vor \\
+        \hline
+        \rowcolor{gray!25} \multicolumn{2}{|c|}{Abkürzungen für Quantoren}                          \\
+        \hline
+        A?                               & entspricht \texttt{A\{0,1\}}                             \\
+        A*                               & entspricht \texttt{A\{0,\}}                              \\
+        A+                               & entspricht \texttt{A\{1,\}}                              \\
+        A                                & entspricht \texttt{A\{1\}}                               \\
+        \hline
+        \rowcolor{gray!25} \multicolumn{2}{|c|}{Zeichenklassen}                                     \\
+        \hline
+        \textbackslash w                 & Buchstaben (word)                                        \\
+        \textbackslash d                 & Zahlen (digit)                                           \\
+        .                                & Alles außer Zeilenvorschub                               \\
+        \hline
+        \rowcolor{gray!25} \multicolumn{2}{|c|}{Referenzen}                                         \\
+        \hline
+        ()                               & Gruppierung                                              \\
+        \textbackslash x \text{oder} \$x & $x$-te Rückwärtsreferenz                                 \\
+        \hline
+        \rowcolor{gray!25} \multicolumn{2}{|c|}{Greedy}                                             \\
+        \hline
+        (default)                        & Greedy                                                   \\
+        ?                                & Reluctant, non-greedy                                    \\
+        \hline
+    \end{tabular}
+\end{defi}
+
+\begin{defi}{Endlicher Automat}
+    Ein \emph{endlicher Automat} ist ein abstraktes Maschinenmodell.
+
+    Seine Aufgabe ist zu entscheiden, ob ein Wort zu einer Sprache gehört, die durch einen regulären Ausdruck beschrieben ist (Akzeptoren).
+
+    Am Anfang ist der Automat im \emph{Anfangszustand}.
+
+    In jedem Schritt wird eine \emph{Eingabesymbol} $\sigma$ gelesen und abhängig von $\sigma$ geht die Maschine von einem \emph{Zustand} in einen bestimmten anderen über.
+
+    Wenn nach Leses des letzten Zeichens ein \emph{Endzustand} erreicht ist, ist das Muster \emph{erkannt} und gehört damit zur Sprache.
+\end{defi}
+
+\begin{defi}{Konstruktionsverfahren nach Kleene}
+    Das \emph{Konstruktionsverfahren nach Kleene} erzeugt aus einer gegeben regulären Sprache einen \emph{nichtdeterministischen endlichen Automaten} (NEA).\footnote{Es existiert zu jedem NEA ein DEA.}
+
+    Die Grundlage ist das Zustands-Übergangs-Diagramm mit folgenden Elementen:
+
+    \begin{center}
+        \begin{tikzpicture}[node distance=4em, auto, label distance=1em]
+            \node[initial,state,label=right:Anfangszustand] (start) {};
+            \node[state,label=right:(Zwischen-)Zustand] (middle) [below of=start] {};
+            \node[state,accepting,label=right:Endzustand] (end) [below of=middle] {};
+
+            \node[state, draw=none,label=right:{Zustandsübergang bei einem gegebenen Symbol}] (transition_right) [below of=end] {};
+            \node[state, draw=none] (transition_left) [left of=transition_right] {};
+
+            \node[state, draw=none,label=right:{$\varepsilon$-Übergang}] (eps_right) [below of=transition_right] {};
+            \node[state, draw=none] (eps_left) [left of=eps_right] {};
+
+            \path[->]
+            (transition_left) edge node {$a$} (transition_right)
+            (eps_left) edge node {$\varepsilon$} (eps_right) ;
+        \end{tikzpicture}
+    \end{center}
+\end{defi}
+
+\begin{algo}{Konstruktion eines Automaten nach Kleene}
+    Einzelnes Symbol: Regulärer Ausdruck \texttt{a}
+
+    \begin{center}
+        \begin{tikzpicture}[node distance=4em, auto]
+            \node[initial, state] (start) {};
+            \node[state, accepting] (end) [right of=start] {};
+
+            \path[->]
+            (start) edge node {$a$} (end) ;
+        \end{tikzpicture}
+    \end{center}
+
+    Verkettung: Regulärer Ausdruck \texttt{ab}
+
+    \begin{center}
+        \begin{tikzpicture}[node distance=4em, auto]
+            \node[initial, state] (start) {};
+            \node[state] (q1) [right of=start] {};
+            \node[state, accepting] (end) [right of=q1] {};
+
+            \path[->]
+            (start) edge node {$a$} (q1)
+            (q1) edge node {$b$} (end) ;
+        \end{tikzpicture}
+    \end{center}
+
+    Alternative: Regulärer Ausdruck \texttt{a|b}
+
+    \begin{center}
+        \begin{tikzpicture}[node distance=4em, auto]
+            \node[initial, state] (start) {};
+            \node[state] (q1) [above right of=start] {};
+            \node[state] (q2) [below right of=start] {};
+            \node[state] (q3) [right of=q1] {};
+            \node[state] (q4) [right of=q2] {};
+            \node[state, accepting] (end) [below right of=q3] {};
+
+            \path[->]
+            (start) edge node {$\varepsilon$} (q1)
+            (start) edge node {$\varepsilon$} (q2)
+            (q1) edge node {$a$} (q3)
+            (q2) edge node {$b$} (q4)
+            (q3) edge node {$\varepsilon$} (end)
+            (q4) edge node {$\varepsilon$} (end) ;
+        \end{tikzpicture}
+    \end{center}
+
+    Hüllenbildung: Regulärer Ausdruck \texttt{a*}
+
+    \begin{center}
+        \begin{tikzpicture}[node distance=4em, auto]
+            \node[initial, state] (start) {};
+            \node[state] (q1) [right of=start] {};
+            \node[state] (q2) [right of=q1] {};
+            \node[state, accepting] (end) [right of=q2] {};
+
+            \path[->]
+            (start) edge node {$\varepsilon$} (q1)
+            (q1) edge node {$a$} (q2)
+            (q2) edge [bend right=90] node[above] {$\varepsilon$} (q1)
+            (q2) edge node {$\varepsilon$} (end)
+            (start) edge [bend right=45] node {$\varepsilon$} (end) ;
+        \end{tikzpicture}
+    \end{center}
+\end{algo}
+
+\begin{example}{Konstruktion eines Automaten nach Kleene}
+    Aufbau des Automaten für den regulären Ausdruck \texttt{a|a(a|b)*a}
+
+    1. Schritt: \texttt{\textcolor{red}{a|b}}
+
+    \begin{center}
+        \begin{tikzpicture}[node distance=4em, auto, red]
+            \node[state] (start) {};
+            \node[state] (q1) [above right of=start] {};
+            \node[state] (q2) [below right of=start] {};
+            \node[state] (q3) [right of=q1] {};
+            \node[state] (q4) [right of=q2] {};
+            \node[state, accepting] (end) [below right of=q3] {};
+
+            \path[->]
+            (start) edge node {$\varepsilon$} (q1)
+            (start) edge node {$\varepsilon$} (q2)
+            (q1) edge node {$a$} (q3)
+            (q2) edge node {$b$} (q4)
+            (q3) edge node {$\varepsilon$} (end)
+            (q4) edge node {$\varepsilon$} (end) ;
+        \end{tikzpicture}
+    \end{center}
+
+    2. Schritt: \texttt{\textcolor{red}{(}a|b\textcolor{red}{)*}}
+
+    \begin{center}
+        \begin{tikzpicture}[node distance=2em,auto]
+
+            \node[state, new] (q3) {};
+            \node[state] (q4) [right=of q3] {};
+            \node[state] (q5) [above right=of q4] {};
+            \node[state] (q6) [below right=of q4] {};
+            \node[state] (q7) [right=of q5] {};
+            \node[state] (q8) [right=of q6] {};
+            \node[state] (q9) [below right=of q7] {};
+            \node[state, new] (q10) [right=of q9] {};
+
+            \path[->]
+            (q3) edge [new] node [new] {$\varepsilon$} (q4)
+            (q4) edge node {$\varepsilon$} (q5)
+            (q4) edge node {$\varepsilon$} (q6)
+            (q5) edge node {$a$} (q7)
+            (q6) edge node {$b$} (q8)
+            (q7) edge node {$\varepsilon$} (q9)
+            (q8) edge node {$\varepsilon$} (q9)
+            (q9) edge [new] node [new] {$\varepsilon$} (q10)
+
+            (q9) edge [new, bend left=90,min distance=6em] node [new, above] {$\varepsilon$} (q4)
+            (q3) edge [new, bend right=90,min distance=8em] node [new] {$\varepsilon$} (q10)
+            ;
+        \end{tikzpicture}
+    \end{center}
+
+    3. Schritt: \texttt{\textcolor{red}{a}(a|b)*\textcolor{red}{a}}
+
+    \begin{center}
+        \begin{tikzpicture}[node distance=2em, auto]
+            \node[state, new] (q2) [below right=of start] {};
+
+            \node[state] (q3) [right=of q2] {};
+            \node[state] (q4) [right=of q3] {};
+            \node[state] (q5) [above right=of q4] {};
+            \node[state] (q6) [below right=of q4] {};
+            \node[state] (q7) [right=of q5] {};
+            \node[state] (q8) [right=of q6] {};
+            \node[state] (q9) [below right=of q7] {};
+            \node[state] (q10) [right=of q9] {};
+            \node[state, new] (q11) [right=of q10] {};
+
+            \path[->]
+            (q2) edge [new] node [new] {$a$} (q3)
+            (q3) edge node {$\varepsilon$} (q4)
+            (q4) edge node {$\varepsilon$} (q5)
+            (q4) edge node {$\varepsilon$} (q6)
+            (q5) edge node {$a$} (q7)
+            (q6) edge node {$b$} (q8)
+            (q7) edge node {$\varepsilon$} (q9)
+            (q8) edge node {$\varepsilon$} (q9)
+            (q9) edge node {$\varepsilon$} (q10)
+            (q10) edge [new] node [new] {$a$} (q11)
+
+            (q9) edge [bend left=90,min distance=6em] node [above] {$\varepsilon$} (q4)
+            (q3) edge [bend right=90,min distance=8em] node {$\varepsilon$} (q10)
+            ;
+        \end{tikzpicture}
+    \end{center}
+
+    4. Schritt: \texttt{\textcolor{red}{a|}(a|b)*a}
+
+    \begin{center}
+        \begin{tikzpicture}[node distance=2em, auto, every initial by arrow/.style={red}]
+            \node[initial, state, new] (start) {};
+            \node[state, new] (q1) [above right=of start] {};
+            \node[state] (q2) [below right=of start] {};
+
+            \node[state] (q3) [right=of q2] {};
+            \node[state] (q4) [right=of q3] {};
+            \node[state] (q5) [above right=of q4] {};
+            \node[state] (q6) [below right=of q4] {};
+            \node[state] (q7) [right=of q5] {};
+            \node[state] (q8) [right=of q6] {};
+            \node[state] (q9) [below right=of q7] {};
+            \node[state] (q10) [right=of q9] {};
+            \node[state] (q11) [right=of q10] {};
+            \node[state, accepting, new] (end) [above right=of q11] {};
+            \node[state, new] (q12) [above left=of end] {};
+
+            \path[->]
+            (start) edge [new] node [new] {$\varepsilon$} (q1)
+            (start) edge [new] node [new] {$\varepsilon$} (q2)
+            (q2) edge node {$a$} (q3)
+            (q3) edge node {$\varepsilon$} (q4)
+            (q4) edge node {$\varepsilon$} (q5)
+            (q4) edge node {$\varepsilon$} (q6)
+            (q5) edge node {$a$} (q7)
+            (q6) edge node {$b$} (q8)
+            (q7) edge node {$\varepsilon$} (q9)
+            (q8) edge node {$\varepsilon$} (q9)
+            (q9) edge node {$\varepsilon$} (q10)
+            (q10) edge node {$a$} (q11)
+            (q11) edge [new] node [new] {$\varepsilon$} (end)
+            (q12) edge [new] node [new] {$\varepsilon$} (end)
+            (q1) edge [new] node [new] {$a$} (q12)
+
+            (q9) edge [bend left=90,min distance=6em] node [above] {$\varepsilon$} (q4)
+            (q3) edge [bend right=90,min distance=8em] node {$\varepsilon$} (q10)
+            ;
+        \end{tikzpicture}
+    \end{center}
+\end{example}
+
+\begin{algo}{Ablaufregeln der Simulation nach Kleene}
+    \begin{enumerate}
+        \item Initialisierung
+              \begin{enumerate}
+                  \item Markiere den Anfangszustand
+                  \item Markiere alle Zustande, die durch $\varepsilon$-Übergänge erreichbar sind.
+              \end{enumerate}
+        \item Für jedes gelesene Eingabesymbol
+              \begin{enumerate}
+                  \item Markiere alle Zustände, die durch dieses Eingabeymbol erreichbar sind.
+                  \item Lösche alle anderen Zustände.
+                  \item Markiere alle Zustände, die jetzt durch $\varepsilon$-Übergänge erreichbar sind.
+              \end{enumerate}
+    \end{enumerate}
+\end{algo}
+
+\begin{example}{Ablauf der Simulation nach Kleene}
+    \textbf{Aufgabe:} Prüfen Sie, ob das Wort \texttt{abba} von dem Automaten der regulären Sprache \texttt{a|a(a|b)*a} akzeptiert wird.
+
+    Anfangszustand:
+
+    \begin{center}
+        \begin{tikzpicture}[node distance=2em, auto, every initial by arrow/.style={teal}]
+            \node[initial, state, current] (start) {};
+            \node[state, marked] (q1) [above right=of start] {};
+            \node[state, marked] (q2) [below right=of start] {};
+
+            \node[state] (q3) [right=of q2] {};
+            \node[state] (q4) [right=of q3] {};
+            \node[state] (q5) [above right=of q4] {};
+            \node[state] (q6) [below right=of q4] {};
+            \node[state] (q7) [right=of q5] {};
+            \node[state] (q8) [right=of q6] {};
+            \node[state] (q9) [below right=of q7] {};
+            \node[state] (q10) [right=of q9] {};
+            \node[state] (q11) [right=of q10] {};
+            \node[state, accepting] (end) [above right=of q11] {};
+            \node[state] (q12) [above left=of end] {};
+
+            \path[->]
+            (start) edge [teal] node [teal] {$\varepsilon$} (q1)
+            (start) edge [teal] node [teal] {$\varepsilon$} (q2)
+            (q2) edge node {$a$} (q3)
+            (q3) edge node {$\varepsilon$} (q4)
+            (q4) edge node {$\varepsilon$} (q5)
+            (q4) edge node {$\varepsilon$} (q6)
+            (q5) edge node {$a$} (q7)
+            (q6) edge node {$b$} (q8)
+            (q7) edge node {$\varepsilon$} (q9)
+            (q8) edge node {$\varepsilon$} (q9)
+            (q9) edge node {$\varepsilon$} (q10)
+            (q10) edge node {$a$} (q11)
+            (q11) edge node {$\varepsilon$} (end)
+            (q12) edge node {$\varepsilon$} (end)
+            (q1) edge node {$a$} (q12)
+
+            (q9) edge [bend left=90,min distance=6em] node [above] {$\varepsilon$} (q4)
+            (q3) edge [bend right=90,min distance=8em] node {$\varepsilon$} (q10)
+            ;
+        \end{tikzpicture}
+    \end{center}
+
+    1. Buchstabe: \texttt{a}
+
+    \begin{center}
+        \begin{tikzpicture}[node distance=2em, auto]
+            \node[initial, state] (start) {};
+            \node[state] (q1) [above right=of start] {};
+            \node[state] (q2) [below right=of start] {};
+
+            \node[state, current] (q3) [right=of q2] {};
+            \node[state, marked] (q4) [right=of q3] {};
+            \node[state, marked] (q5) [above right=of q4] {};
+            \node[state, marked] (q6) [below right=of q4] {};
+            \node[state] (q7) [right=of q5] {};
+            \node[state] (q8) [right=of q6] {};
+            \node[state] (q9) [below right=of q7] {};
+            \node[state, marked] (q10) [right=of q9] {};
+            \node[state] (q11) [right=of q10] {};
+            \node[state, accepting, marked] (end) [above right=of q11] {};
+            \node[state, current] (q12) [above left=of end] {};
+
+            \path[->]
+            (start) edge node {$\varepsilon$} (q1)
+            (start) edge node {$\varepsilon$} (q2)
+            (q2) edge [blue] node [blue] {$a$} (q3)
+            (q3) edge [teal] node [teal] {$\varepsilon$} (q4)
+            (q4) edge [teal] node [teal] {$\varepsilon$} (q5)
+            (q4) edge [teal] node [teal] {$\varepsilon$} (q6)
+            (q5) edge node {$a$} (q7)
+            (q6) edge node {$b$} (q8)
+            (q7) edge node {$\varepsilon$} (q9)
+            (q8) edge node {$\varepsilon$} (q9)
+            (q9) edge node {$\varepsilon$} (q10)
+            (q10) edge node {$a$} (q11)
+            (q11) edge node {$\varepsilon$} (end)
+            (q12) edge node {$\varepsilon$} (end)
+            (q1) edge [blue] node [blue] {$a$} (q12)
+
+            (q9) edge [bend left=90,min distance=6em] node [above] {$\varepsilon$} (q4)
+            (q3) edge [teal] [bend right=90,min distance=8em] node [teal] {$\varepsilon$} (q10)
+            ;
+        \end{tikzpicture}
+    \end{center}
+\end{example}
+
+\begin{example}{Ablauf der Simulation nach Kleene (Fortsetzung)}
+
+    2. Buchstabe: \texttt{b}
+
+    \begin{center}
+        \begin{tikzpicture}[node distance=2em, auto]
+            \node[initial, state] (start) {};
+            \node[state] (q1) [above right=of start] {};
+            \node[state] (q2) [below right=of start] {};
+
+            \node[state] (q3) [right=of q2] {};
+            \node[state, marked] (q4) [right=of q3] {};
+            \node[state, marked] (q5) [above right=of q4] {};
+            \node[state, marked] (q6) [below right=of q4] {};
+            \node[state] (q7) [right=of q5] {};
+            \node[state, current] (q8) [right=of q6] {};
+            \node[state, marked] (q9) [below right=of q7] {};
+            \node[state, marked] (q10) [right=of q9] {};
+            \node[state] (q11) [right=of q10] {};
+            \node[state, accepting] (end) [above right=of q11] {};
+            \node[state] (q12) [above left=of end] {};
+
+            \path[->]
+            (start) edge node {$\varepsilon$} (q1)
+            (start) edge node {$\varepsilon$} (q2)
+            (q2) edge node {$a$} (q3)
+            (q3) edge node {$\varepsilon$} (q4)
+            (q4) edge [teal] node [teal] {$\varepsilon$} (q5)
+            (q4) edge [teal] node [teal] {$\varepsilon$} (q6)
+            (q5) edge node {$a$} (q7)
+            (q6) edge [blue] node [blue] {$b$} (q8)
+            (q7) edge node {$\varepsilon$} (q9)
+            (q8) edge [teal] node [teal] {$\varepsilon$} (q9)
+            (q9) edge [teal] node [teal] {$\varepsilon$} (q10)
+            (q10) edge node {$a$} (q11)
+            (q11) edge node {$\varepsilon$} (end)
+            (q12) edge node {$\varepsilon$} (end)
+            (q1) edge node {$a$} (q12)
+
+            (q9) edge [teal] [bend left=90,min distance=6em] node [teal] [above] {$\varepsilon$} (q4)
+            (q3) edge [bend right=90,min distance=8em] node {$\varepsilon$} (q10)
+            ;
+        \end{tikzpicture}
+    \end{center}
+
+    3. Buchstabe: \texttt{b}
+
+    \begin{center}
+        \begin{tikzpicture}[node distance=2em, auto]
+            \node[initial, state] (start) {};
+            \node[state] (q1) [above right=of start] {};
+            \node[state] (q2) [below right=of start] {};
+
+            \node[state] (q3) [right=of q2] {};
+            \node[state, marked] (q4) [right=of q3] {};
+            \node[state, marked] (q5) [above right=of q4] {};
+            \node[state, marked] (q6) [below right=of q4] {};
+            \node[state] (q7) [right=of q5] {};
+            \node[state, current] (q8) [right=of q6] {};
+            \node[state, marked] (q9) [below right=of q7] {};
+            \node[state, marked] (q10) [right=of q9] {};
+            \node[state] (q11) [right=of q10] {};
+            \node[state, accepting] (end) [above right=of q11] {};
+            \node[state] (q12) [above left=of end] {};
+
+            \path[->]
+            (start) edge node {$\varepsilon$} (q1)
+            (start) edge node {$\varepsilon$} (q2)
+            (q2) edge node {$a$} (q3)
+            (q3) edge node {$\varepsilon$} (q4)
+            (q4) edge [teal] node [teal] {$\varepsilon$} (q5)
+            (q4) edge [teal] node [teal] {$\varepsilon$} (q6)
+            (q5) edge node {$a$} (q7)
+            (q6) edge [blue] node [blue] {$b$} (q8)
+            (q7) edge node {$\varepsilon$} (q9)
+            (q8) edge [teal] node [teal] {$\varepsilon$} (q9)
+            (q9) edge [teal] node [teal] {$\varepsilon$} (q10)
+            (q10) edge node {$a$} (q11)
+            (q11) edge node {$\varepsilon$} (end)
+            (q12) edge node {$\varepsilon$} (end)
+            (q1) edge node {$a$} (q12)
+
+            (q9) edge [teal] [bend left=90,min distance=6em] node [teal] [above] {$\varepsilon$} (q4)
+            (q3) edge [bend right=90,min distance=8em] node {$\varepsilon$} (q10)
+            ;
+        \end{tikzpicture}
+    \end{center}
+
+    4. Buchstabe: \texttt{a}
+
+    \begin{center}
+        \begin{tikzpicture}[node distance=2em, auto]
+            \node[initial, state] (start) {};
+            \node[state] (q1) [above right=of start] {};
+            \node[state] (q2) [below right=of start] {};
+
+            \node[state] (q3) [right=of q2] {};
+            \node[state, marked] (q4) [right=of q3] {};
+            \node[state, marked] (q5) [above right=of q4] {};
+            \node[state, marked] (q6) [below right=of q4] {};
+            \node[state, current] (q7) [right=of q5] {};
+            \node[state] (q8) [right=of q6] {};
+            \node[state, marked] (q9) [below right=of q7] {};
+            \node[state, marked] (q10) [right=of q9] {};
+            \node[state, current] (q11) [right=of q10] {};
+            \node[state, accepting, marked] (end) [above right=of q11] {};
+            \node[state] (q12) [above left=of end] {};
+
+            \path[->]
+            (start) edge node {$\varepsilon$} (q1)
+            (start) edge node {$\varepsilon$} (q2)
+            (q2) edge node {$a$} (q3)
+            (q3) edge node {$\varepsilon$} (q4)
+            (q4) edge [teal] node [teal] {$\varepsilon$} (q5)
+            (q4) edge [teal] node [teal] {$\varepsilon$} (q6)
+            (q5) edge [blue] node [blue] {$a$} (q7)
+            (q6) edge node {$b$} (q8)
+            (q7) edge [teal] node [teal] {$\varepsilon$} (q9)
+            (q8) edge node {$\varepsilon$} (q9)
+            (q9) edge [teal] node [teal] {$\varepsilon$} (q10)
+            (q10) edge [blue] node [blue] {$a$} (q11)
+            (q11) edge [teal] node [teal] {$\varepsilon$} (end)
+            (q12) edge node {$\varepsilon$} (end)
+            (q1) edge node {$a$} (q12)
+
+            (q9) edge [teal] [bend left=90,min distance=6em] node [teal] [above] {$\varepsilon$} (q4)
+            (q3) edge [bend right=90,min distance=8em] node {$\varepsilon$} (q10)
+            ;
+        \end{tikzpicture}
+    \end{center}
+
+    Damit wird \texttt{abba} durch den regulären Ausdruck \texttt{a|a(a|b)*a} beschrieben.
+\end{example}
\ No newline at end of file
diff --git a/algo/graphen.tex b/algo/graphen.tex
index 5296087..5728867 100644
--- a/algo/graphen.tex
+++ b/algo/graphen.tex
@@ -1,1525 +1,1640 @@
-\section{Graphen}
-
-\begin{defi}{Gerichteter Graph}
-    Ein \emph{gerichteter Graph} $G = (V, E)$ besteht aus
-    \begin{itemize}
-        \item einer endlichen, nicht leeren Menge $V = \{v_1, \ldots, v_n\}$ von \emph{Knoten (vertices)} und
-        \item einer Relation $E \subseteq V \times V$ von geordneten Paaren $e = (u, v)$ den \emph{Kanten (edges)}.
-    \end{itemize}
-
-    Jede Kante $(u,v) \in E$ hat einen Anfangsknoten $u$ und einen Enknoten $v$ und damit eine Richtung von $u$ nach $v$ ($u=v$ ist möglich).
-
-    \begin{center}
-        \begin{tikzpicture}[->]
-            \node[draw, circle] (1) {1};
-            \node[draw, circle, below=of 1] (2) {2};
-            \node[draw, circle, right=of 2] (3) {3};
-            \node[draw, circle, above=of 3] (4) {4};
-            \node[draw, circle, right=of 4] (5) {5};
-
-            %\draw[->] (1) to[bend left=15] (4);
-            %\draw[->] (4) to[bend left=15] (1);
-            %\draw[->] (1) to (2);
-            %\draw[->] (2) to (3);
-            %\draw[->] (3) to (4);
-            %\draw[->] (4) to (5);
-
-            \path (1) edge[bend left=15] (4);
-            \path (4) edge[bend left=15] (1);
-            \path (1) edge (2);
-            \path (2) edge (3);
-            \path (3) edge (4);
-            \path (4) edge (5);
-            \path (5) edge[loop above] (5);
-        \end{tikzpicture}
-    \end{center}
-\end{defi}
-
-\begin{defi}{Ungerichteter Graph}
-    Ein \emph{ungerichteter Graph} $G = (V, E)$ besteht aus
-    \begin{itemize}
-        \item einer endlichen, nicht leeren Menge $V = \{v_1, \ldots, v_n\}$ von \emph{Knoten (vertices)} und
-        \item einer symmetrischen Relation $E \subseteq V \times V$ von geordneten Paaren $e = (u, v) \iff (v, u)$ den \emph{Kanten (edges)}.
-    \end{itemize}
-
-    Jede Kante $(u,v) \in E$ hat einen Anfangsknoten $u$ und einen Enknoten $v$ und damit eine Richtung von $u$ nach $v$ ($u=v$ ist möglich).
-
-    \vspace{1em}
-    \begin{center}
-        \begin{tikzpicture}
-            \node[draw, circle] (1) {1};
-            \node[draw, circle, below=of 1] (2) {2};
-            \node[draw, circle, right=of 2] (3) {3};
-            \node[draw, circle, above=of 3] (4) {4};
-            \node[draw, circle, right=of 4] (5) {5};
-
-            %\draw[->] (1) to[bend left=15] (4);
-            %\draw[->] (4) to[bend left=15] (1);
-            %\draw[->] (1) to (2);
-            %\draw[->] (2) to (3);
-            %\draw[->] (3) to (4);
-            %\draw[->] (4) to (5);
-
-            \path (1) edge (4);
-            \path (1) edge (2);
-            \path (2) edge (3);
-            \path (3) edge (4);
-            \path (4) edge (5);
-        \end{tikzpicture}
-    \end{center}
-\end{defi}
-
-\begin{defi}{Gewichteter Graph}
-    Ein Graph heißt \emph{gewichtet}, wenn jeder Kante ein Wert als \emph{Gewicht} zugeordnet ist (z.B. Transportkosten, Entfernung).
-
-    \begin{center}
-        \begin{tikzpicture}[->]
-            \node[draw, circle] (1) {1};
-            \node[draw, circle, below=of 1] (2) {2};
-            \node[draw, circle, right=of 2] (3) {3};
-            \node[draw, circle, above=of 3] (4) {4};
-            \node[draw, circle, right=of 4] (5) {5};
-
-            %\draw[->] (1) to[bend left=15] (4);
-            %\draw[->] (4) to[bend left=15] (1);
-            %\draw[->] (1) to (2);
-            %\draw[->] (2) to (3);
-            %\draw[->] (3) to (4);
-            %\draw[->] (4) to (5);
-
-            \path (1) edge[bend left=15] node[above,scale=0.7] {2} (4);
-            \path (4) edge[bend left=15] node[below,scale=0.7] {1} (1);
-            \path (1) edge node[left,scale=0.7] {2} (2);
-            \path (2) edge node[above,scale=0.7] {1} (3);
-            \path (3) edge node[right,scale=0.7] {8} (4);
-            \path (4) edge node[above,scale=0.7] {1} (5);
-            \path (5) edge[loop above] node[above,scale=0.7] {2} (5);
-        \end{tikzpicture}
-    \end{center}
-\end{defi}
-
-\begin{defi}{Teilgraph}
-    $G' = (V', E')$ heißt \emph{Teilgraph} von $G=(V, E)$, wenn gilt:
-    $$
-        V' \subseteq V \quad \text{und} \quad E' \subseteq E
-    $$
-\end{defi}
-
-\begin{defi}{Weg}
-    Sei $G = (V, E)$ ein Graph.
-
-    Eine Folge von Knoten
-    $$
-        W := (v_1, v_2, \ldots, v_n)
-    $$
-    heißt \emph{Weg} oder \emph{Pfad} in $G$, falls gilt:
-    $$
-        \forall 1 \leq i \leq n-1 : (v_i, v_{i+1}) \in E
-    $$
-    (also eine Folge von zusammenhängenden Kanten)
-
-    $\alpha(W) := v_1$ heißt \emph{Anfangsknoten} des Weges $W$.
-
-    $\omega(W) := v_n$ heißt \emph{Endknoten} des Weges $W$.
-
-    $\forall v_i \in V : (v_i)$ heißt \emph{trivialer Weg} und ist stets ein Weg in $G$.
-
-    Die \emph{Länge eines Weges} ist $l(W) := n-1$, falls $n$ Knoten auf diesem Weg besucht werden.
-
-    Ein Weg heißt \emph{einfacher Weg}, wenn kein Knoten (ausgenommen Start- und Endknoten) mehr als einmal vorkommt.
-
-    Ein \emph{Zykel} oder \emph{Kreis} ist ein nicht-trivialer einfacher Weg mit der Bedingung $\alpha(W) = \omega(W)$.
-\end{defi}
-
-\begin{defi}{Adjazenz}
-    Zwei Knoten heißen \emph{adjazent (benachbart)}, wenn sie eine Kante verbindet.
-\end{defi}
-
-\begin{bonus}{Speicherung von Graphen}
-    \begin{itemize}
-        \item Kantenorientiert
-              \begin{itemize}
-                  \item Index für Kanten
-                  \item für jede Kante speichern: Vorgänger-, Nachfolgerknoten (Markierung, Gewicht)
-                  \item meist statische Darstellung, z.B. Kantenliste
-              \end{itemize}
-        \item Knotenorientiert
-              \begin{itemize}
-                  \item gebräuchlicher als kantenorientiert
-                  \item in vielen Ausprägungen, z.B. Knotenliste, Adjazenzmatrix, Adjazenzliste
-                  \item für Adjazenzmatrix gilt:
-                        $$
-                            A_{ij} = \begin{cases}
-                                1 & \text{, falls} \ (i, j) \in E \\
-                                0 & \text{, sonst}
-                            \end{cases}
-                        $$
-              \end{itemize}
-    \end{itemize}
-\end{bonus}
-
-\begin{example}{Adjazenzmatrix}
-    \begin{center}
-        \begin{tikzpicture}[->]
-            \node[draw, circle] (1) {1};
-            \node[draw, circle, below left=of 1] (3) {3};
-            \node[draw, circle, below right=of 1] (4) {4};
-            \node[draw, circle, above right=of 4] (2) {2};
-            \node[draw, circle, below=of 3] (5) {5};
-            \node[draw, circle, below=of 4] (6) {6};
-
-            \path (5) edge[loop below] (5);
-            \path (1) edge[bend left=15] (3);
-            \path (3) edge[bend left=15] (1);
-            \path (4) edge (1);
-            \path (1) edge (2);
-            \path (3) edge (4);
-            \path (5) edge (3);
-            \path (3) edge (6);
-            \path (6) edge (4);
-            \path (6) edge (5);
-            \path (6) edge (2);
-        \end{tikzpicture}
-    \end{center}
-
-    Für den Graphen $G$ oben gilt die Adjazenzmatrix:
-    $$
-        A(G) = \vektor{
-            0 & 1 & 1 & 0 & 0 & 0 \\
-            0 & 0 & 0 & 0 & 0 & 0 \\
-            1 & 0 & 0 & 1 & 0 & 1 \\
-            1 & 0 & 0 & 0 & 0 & 0 \\
-            0 & 0 & 1 & 0 & 1 & 0 \\
-            0 & 1 & 0 & 1 & 1 & 0
-        }
-    $$
-\end{example}
-
-\begin{example}{Adjazenzliste}
-    \begin{center}
-        \begin{tikzpicture}[->]
-            \node[draw, circle] (1) {1};
-            \node[draw, circle, below left=of 1] (3) {3};
-            \node[draw, circle, below right=of 1] (4) {4};
-            \node[draw, circle, above right=of 4] (2) {2};
-            \node[draw, circle, below=of 3] (5) {5};
-            \node[draw, circle, below=of 4] (6) {6};
-
-            \path (5) edge[loop below] (5);
-            \path (1) edge[bend left=15] (3);
-            \path (3) edge[bend left=15] (1);
-            \path (4) edge (1);
-            \path (1) edge (2);
-            \path (3) edge (4);
-            \path (5) edge (3);
-            \path (3) edge (6);
-            \path (6) edge (4);
-            \path (6) edge (5);
-            \path (6) edge (2);
-        \end{tikzpicture}
-    \end{center}
-
-    Für den Graphen $G$ oben gilt die Adjazenzliste:
-
-    \vspace{1em}
-
-    \begin{center}
-        \begin{tikzpicture}[
-            start chain = going below,
-            StackBlock/.style={minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
-            every node/.style={draw, label distance=0.5em},
-            node distance=0em
-            ]
-            {
-            \node [StackBlock] (k1) {$1$};
-            \node [StackBlock,yshift=-0.5em] (k2) {$2$};
-            \node [StackBlock,yshift=-0.5em] (k3) {$3$};
-            \node [StackBlock,yshift=-0.5em] (k4) {$4$};
-            \node [StackBlock,yshift=-0.5em] (k5) {$5$};
-            \node [StackBlock,yshift=-0.5em] (k6) {$6$};
-
-            % Chain 1
-            { [continue chain = going right]
-            \chainin (k1);
-
-            \node [StackBlock, xshift=2em] (12) {$2$};
-            \node [StackBlock] (12p) {};
-            \node [StackBlock, xshift=2em] (13) {$3$};
-            \node [StackBlock] (13p) {};
-            }
-
-            % Chain 3
-            { [continue chain = going right]
-            \chainin (k3);
-
-            \node [StackBlock, xshift=2em] (31) {$1$};
-            \node [StackBlock] (31p) {};
-            \node [StackBlock, xshift=2em] (34) {$4$};
-            \node [StackBlock] (34p) {};
-            \node [StackBlock, xshift=2em] (36) {$6$};
-            \node [StackBlock] (36p) {};
-            }
-
-            % Chain 4
-            { [continue chain = going right]
-            \chainin (k4);
-
-            \node [StackBlock, xshift=2em] (41) {$1$};
-            \node [StackBlock] (41p) {};
-            }
-
-            % Chain 5
-            { [continue chain = going right]
-            \chainin (k5);
-
-            \node [StackBlock, xshift=2em] (53) {$3$};
-            \node [StackBlock] (53p) {};
-            \node [StackBlock, xshift=2em] (55) {$5$};
-            \node [StackBlock] (55p) {};
-            }
-
-            % Chain 6
-            { [continue chain = going right]
-            \chainin (k6);
-
-            \node [StackBlock, xshift=2em] (62) {$2$};
-            \node [StackBlock] (62p) {};
-            \node [StackBlock, xshift=2em] (64) {$4$};
-            \node [StackBlock] (64p) {};
-            \node [StackBlock, xshift=2em] (65) {$5$};
-            \node [StackBlock] (65p) {};
-            }
-
-            \draw[->] (k1.east) [out=0, in=180] to (12.west);
-            \draw[->] (k3.east) [out=0, in=180] to (31.west);
-            \draw[->] (k4.east) [out=0, in=180] to (41.west);
-            \draw[->] (k5.east) [out=0, in=180] to (53.west);
-            \draw[->] (k6.east) [out=0, in=180] to (62.west);
-
-            \draw[->] (12p.center) [out=0, in=180] to (13.west);
-
-            \draw[->] (31p.center) [out=0, in=180] to (34.west);
-            \draw[->] (34p.center) [out=0, in=180] to (36.west);
-
-            \draw[->] (53p.center) [out=0, in=180] to (55.west);
-
-            \draw[->] (62p.center) [out=0, in=180] to (64.west);
-            \draw[->] (64p.center) [out=0, in=180] to (65.west);
-            }
-        \end{tikzpicture}
-    \end{center}
-\end{example}
-
-\subsection{Suche}
-
-\begin{algo}{Breitensuche}
-    \begin{enumerate}
-        \item Zunächst werden alle Knoten als \glqq noch nicht besucht\grqq markiert.
-        \item Startpunkt $v$ wählen und als \glqq besucht\grqq markieren.
-        \item Jetzt:
-              \begin{enumerate}
-                  \item alle von $v$ aus direkt erreichbaren (nicht besuchten) Knoten \glqq besuchen\grqq
-                  \item alle von $v$ über zwei Kanten erreichbaren (nicht besuchten) Knoten \glqq besuchen\grqq
-                  \item $\ldots$
-              \end{enumerate}
-        \item Wenn noch nicht alle Knoten besucht worden sind, wähle einen neuen unbesuchten Startpunkt $v$ und beginne bei Schritt 3
-    \end{enumerate}
-
-    Start bei Knoten 1.
-
-    \begin{center}
-        \begin{tikzpicture}[->]
-            \node[draw, circle, current] (1) {1};
-            \node[draw, circle, below left=of 1] (3) {3};
-            \node[draw, circle, below right=of 1] (4) {4};
-            \node[draw, circle, above right=of 4] (2) {2};
-            \node[draw, circle, below=of 3] (5) {5};
-            \node[draw, circle, below=of 4] (6) {6};
-
-            \path (5) edge[loop below] (5);
-            \path (1) edge[bend left=15] (3);
-            \path (3) edge[bend left=15] (1);
-            \path (4) edge (1);
-            \path (1) edge (2);
-            \path (3) edge (4);
-            \path (5) edge (3);
-            \path (3) edge (6);
-            \path (6) edge (4);
-            \path (6) edge (5);
-            \path (6) edge (2);
-        \end{tikzpicture}
-        %
-        \hspace{5em}
-        %
-        \begin{tikzpicture}[->]
-            \node[draw, circle, visited] (1) {1};
-            \node[draw, circle, below left=of 1, current] (3) {3};
-            \node[draw, circle, below right=of 1] (4) {4};
-            \node[draw, circle, above right=of 4, current] (2) {2};
-            \node[draw, circle, below=of 3] (5) {5};
-            \node[draw, circle, below=of 4] (6) {6};
-
-            \path (5) edge[loop below] (5);
-            \path (1) edge[bend left=15] (3);
-            \path (3) edge[bend left=15] (1);
-            \path (4) edge (1);
-            \path (1) edge (2);
-            \path (3) edge (4);
-            \path (5) edge (3);
-            \path (3) edge (6);
-            \path (6) edge (4);
-            \path (6) edge (5);
-            \path (6) edge (2);
-        \end{tikzpicture}
-        %
-        %\hspace{5em}
-        %
-        \begin{tikzpicture}[->]
-            \node[draw, circle, visited] (1) {1};
-            \node[draw, circle, below left=of 1, visited] (3) {3};
-            \node[draw, circle, below right=of 1, current] (4) {4};
-            \node[draw, circle, above right=of 4, visited] (2) {2};
-            \node[draw, circle, below=of 3] (5) {5};
-            \node[draw, circle, below=of 4, current] (6) {6};
-
-            \path (5) edge[loop below] (5);
-            \path (1) edge[bend left=15] (3);
-            \path (3) edge[bend left=15] (1);
-            \path (4) edge (1);
-            \path (1) edge (2);
-            \path (3) edge (4);
-            \path (5) edge (3);
-            \path (3) edge (6);
-            \path (6) edge (4);
-            \path (6) edge (5);
-            \path (6) edge (2);
-        \end{tikzpicture}
-        %
-        \hspace{5em}
-        %
-        \begin{tikzpicture}[->]
-            \node[draw, circle, visited] (1) {1};
-            \node[draw, circle, below left=of 1, visited] (3) {3};
-            \node[draw, circle, below right=of 1, visited] (4) {4};
-            \node[draw, circle, above right=of 4, visited] (2) {2};
-            \node[draw, circle, below=of 3, current] (5) {5};
-            \node[draw, circle, below=of 4, visited] (6) {6};
-
-            \path (5) edge[loop below] (5);
-            \path (1) edge[bend left=15] (3);
-            \path (3) edge[bend left=15] (1);
-            \path (4) edge (1);
-            \path (1) edge (2);
-            \path (3) edge (4);
-            \path (5) edge (3);
-            \path (3) edge (6);
-            \path (6) edge (4);
-            \path (6) edge (5);
-            \path (6) edge (2);
-        \end{tikzpicture}
-        %
-        %\hspace{5em}
-        %
-        \begin{tikzpicture}[->]
-            \node[draw, circle, visited] (1) {1};
-            \node[draw, circle, below left=of 1, visited] (3) {3};
-            \node[draw, circle, below right=of 1, visited] (4) {4};
-            \node[draw, circle, above right=of 4, visited] (2) {2};
-            \node[draw, circle, below=of 3, visited] (5) {5};
-            \node[draw, circle, below=of 4, visited] (6) {6};
-
-            \path (5) edge[loop below] (5);
-            \path (1) edge[bend left=15] (3);
-            \path (3) edge[bend left=15] (1);
-            \path (4) edge (1);
-            \path (1) edge (2);
-            \path (3) edge (4);
-            \path (5) edge (3);
-            \path (3) edge (6);
-            \path (6) edge (4);
-            \path (6) edge (5);
-            \path (6) edge (2);
-        \end{tikzpicture}
-    \end{center}
-\end{algo}
-
-\begin{algo}{Tiefensuche}
-    \begin{enumerate}
-        \item Zunächst alle Knoten als \glqq noch nicht besucht\grqq markieren.
-        \item Startpunkt $v$ wählen und als \glqq besucht\grqq markieren.
-        \item Von dort aus möglichst langen Pfad entlang gehen; dabei nur bisher nicht besuchte Knoten \glqq besuchen\grqq
-        \item Wenn dann noch nicht alle Knoten besucht worden sind, wähle einen neuen unbesuchten Startpunkt $v$ und beginne bei Schritt 3
-    \end{enumerate}
-
-    Start bei Knoten 1.
-
-    \begin{center}
-        \begin{tikzpicture}[->]
-            \node[draw, circle, current] (1) {1};
-            \node[draw, circle, below left=of 1] (3) {3};
-            \node[draw, circle, below right=of 1] (4) {4};
-            \node[draw, circle, above right=of 4] (2) {2};
-            \node[draw, circle, below=of 3] (5) {5};
-            \node[draw, circle, below=of 4] (6) {6};
-
-            \path (5) edge[loop below] (5);
-            \path (1) edge[bend left=15] (3);
-            \path (3) edge[bend left=15] (1);
-            \path (4) edge (1);
-            \path (1) edge (2);
-            \path (3) edge (4);
-            \path (5) edge (3);
-            \path (3) edge (6);
-            \path (6) edge (4);
-            \path (6) edge (5);
-            \path (6) edge (2);
-        \end{tikzpicture}
-        %
-        \hspace{5em}
-        %
-        \begin{tikzpicture}[->]
-            \node[draw, circle, visited] (1) {1};
-            \node[draw, circle, below left=of 1] (3) {3};
-            \node[draw, circle, below right=of 1] (4) {4};
-            \node[draw, circle, above right=of 4, current] (2) {2};
-            \node[draw, circle, below=of 3] (5) {5};
-            \node[draw, circle, below=of 4] (6) {6};
-
-            \path (5) edge[loop below] (5);
-            \path (1) edge[bend left=15] (3);
-            \path (3) edge[bend left=15] (1);
-            \path (4) edge (1);
-            \path (1) edge (2);
-            \path (3) edge (4);
-            \path (5) edge (3);
-            \path (3) edge (6);
-            \path (6) edge (4);
-            \path (6) edge (5);
-            \path (6) edge (2);
-        \end{tikzpicture}
-        %
-        %\hspace{5em}
-        %
-        \begin{tikzpicture}[->]
-            \node[draw, circle, visited] (1) {1};
-            \node[draw, circle, below left=of 1, current] (3) {3};
-            \node[draw, circle, below right=of 1] (4) {4};
-            \node[draw, circle, above right=of 4, visited] (2) {2};
-            \node[draw, circle, below=of 3] (5) {5};
-            \node[draw, circle, below=of 4] (6) {6};
-
-            \path (5) edge[loop below] (5);
-            \path (1) edge[bend left=15] (3);
-            \path (3) edge[bend left=15] (1);
-            \path (4) edge (1);
-            \path (1) edge (2);
-            \path (3) edge (4);
-            \path (5) edge (3);
-            \path (3) edge (6);
-            \path (6) edge (4);
-            \path (6) edge (5);
-            \path (6) edge (2);
-        \end{tikzpicture}
-        %
-        \hspace{5em}
-        %
-        \begin{tikzpicture}[->]
-            \node[draw, circle, visited] (1) {1};
-            \node[draw, circle, below left=of 1, visited] (3) {3};
-            \node[draw, circle, below right=of 1, current] (4) {4};
-            \node[draw, circle, above right=of 4, visited] (2) {2};
-            \node[draw, circle, below=of 3] (5) {5};
-            \node[draw, circle, below=of 4] (6) {6};
-
-            \path (5) edge[loop below] (5);
-            \path (1) edge[bend left=15] (3);
-            \path (3) edge[bend left=15] (1);
-            \path (4) edge (1);
-            \path (1) edge (2);
-            \path (3) edge (4);
-            \path (5) edge (3);
-            \path (3) edge (6);
-            \path (6) edge (4);
-            \path (6) edge (5);
-            \path (6) edge (2);
-        \end{tikzpicture}
-        %
-        %\hspace{5em}
-        %
-        \begin{tikzpicture}[->]
-            \node[draw, circle, visited] (1) {1};
-            \node[draw, circle, below left=of 1, visited] (3) {3};
-            \node[draw, circle, below right=of 1, visited] (4) {4};
-            \node[draw, circle, above right=of 4, visited] (2) {2};
-            \node[draw, circle, below=of 3] (5) {5};
-            \node[draw, circle, below=of 4, current] (6) {6};
-
-            \path (5) edge[loop below] (5);
-            \path (1) edge[bend left=15] (3);
-            \path (3) edge[bend left=15] (1);
-            \path (4) edge (1);
-            \path (1) edge (2);
-            \path (3) edge (4);
-            \path (5) edge (3);
-            \path (3) edge (6);
-            \path (6) edge (4);
-            \path (6) edge (5);
-            \path (6) edge (2);
-        \end{tikzpicture}
-        %
-        \hspace{5em}
-        %
-        \begin{tikzpicture}[->]
-            \node[draw, circle, visited] (1) {1};
-            \node[draw, circle, below left=of 1, visited] (3) {3};
-            \node[draw, circle, below right=of 1, visited] (4) {4};
-            \node[draw, circle, above right=of 4, visited] (2) {2};
-            \node[draw, circle, below=of 3, current] (5) {5};
-            \node[draw, circle, below=of 4, visited] (6) {6};
-
-            \path (5) edge[loop below] (5);
-            \path (1) edge[bend left=15] (3);
-            \path (3) edge[bend left=15] (1);
-            \path (4) edge (1);
-            \path (1) edge (2);
-            \path (3) edge (4);
-            \path (5) edge (3);
-            \path (3) edge (6);
-            \path (6) edge (4);
-            \path (6) edge (5);
-            \path (6) edge (2);
-        \end{tikzpicture}
-        %
-        %\hspace{5em}
-        %
-        \begin{tikzpicture}[->]
-            \node[draw, circle, visited] (1) {1};
-            \node[draw, circle, below left=of 1, visited] (3) {3};
-            \node[draw, circle, below right=of 1, visited] (4) {4};
-            \node[draw, circle, above right=of 4, visited] (2) {2};
-            \node[draw, circle, below=of 3, visited] (5) {5};
-            \node[draw, circle, below=of 4, visited] (6) {6};
-
-            \path (5) edge[loop below] (5);
-            \path (1) edge[bend left=15] (3);
-            \path (3) edge[bend left=15] (1);
-            \path (4) edge (1);
-            \path (1) edge (2);
-            \path (3) edge (4);
-            \path (5) edge (3);
-            \path (3) edge (6);
-            \path (6) edge (4);
-            \path (6) edge (5);
-            \path (6) edge (2);
-        \end{tikzpicture}
-    \end{center}
-\end{algo}
-
-\begin{defi}{Level-Order-Baumdurchlauf}
-    Führt man eine Breitensuche bei Bäumen aus, stellt man fest:
-    \begin{itemize}
-        \item Es ist nicht nötig, die Knoten zu markieren.
-        \item Der Baum wird Ebene für Ebene durchlaufen,
-    \end{itemize}
-
-    Diesen Durchlauf nennt man \emph{Level-Order-Durchlauf}.
-\end{defi}
-
-\begin{defi}{Pre-Order-Baumdurchlauf}
-    Führt man eine Tiefensuche bei Bäumen aus, nennt man diesen Durchlauf \emph{Pre-Order-Durchlauf}.
-
-    Dabei wird stets der linke Teilbaum zuerst durchlaufen.
-\end{defi}
-
-\begin{defi}{Post-Order-Baumdurchlauf}
-    \begin{enumerate}
-        \item Durchlaufe linken Teilbaum
-        \item Durchlaufe rechten Teilbaum
-        \item Betrachte die Wurzel
-    \end{enumerate}
-\end{defi}
-
-\begin{defi}{In-Order-Baumdurchlauf}
-    \begin{enumerate}
-        \item Durchlaufe linken Teilbaum
-        \item Betrachte die Wurzel
-        \item Durchlaufe rechten Teilbaum
-    \end{enumerate}
-\end{defi}
-
-\begin{example}{Baumdurchläufe}
-    \begin{center}
-        \begin{forest}
-            baseline,anchor=north,
-            for tree={circle, draw,
-                    minimum size=2em, % <-- added
-                    inner sep=1pt}
-                [
-                    45
-                        [
-                            36
-                                [
-                                    25
-                                        [
-                                            2
-                                        ]
-                                        [
-                                            3
-                                        ]
-                                ]
-                                [
-                                    26
-                                        [
-                                            19
-                                        ]
-                                ]
-                        ]
-                        [
-                            17
-                                [
-                                    7
-                                ]
-                                [
-                                    1
-                                ]
-                        ]
-                ]
-        \end{forest}
-    \end{center}
-
-    Für den gegebenen Baum gelten folgende Baumdurchläufe:
-
-    \centering
-    \begin{tabular}{|l|cccccccccc|}
-        \hline
-        Pre-Order   & 45 & 36 & 25 & 2  & 3  & 26 & 19 & 17 & 7  & 1  \\
-        \hline
-        In-Order    & 2  & 25 & 3  & 19 & 26 & 36 & 45 & 7  & 17 & 1  \\
-        \hline
-        Post-Order  & 2  & 3  & 25 & 19 & 26 & 36 & 7  & 1  & 17 & 45 \\
-        \hline
-        Level-Order & 45 & 36 & 17 & 25 & 26 & 7  & 1  & 2  & 3  & 19 \\
-        \hline
-    \end{tabular}
-\end{example}
-
-
-\subsection{Entwurfsprinzipien}
-
-\begin{defi}{Traveling-Salesman-Problem}
-    Das \emph{Traveling-Salesman-Problem} ist ein Optimierungsproblem.
-    Die Aufgabe besteht darin, eine Reihenfolge für den Besuch mehrerer Orte so zu wählen, dass:
-    \begin{itemize}
-        \item kein Ort doppelt besucht wird und
-        \item die Reisestrecke minimal ist.
-    \end{itemize}
-\end{defi}
-
-\begin{defi}{Greedy}
-    Wähle immer den Schritt, desse unmittelbarer Folgezustand das beste Ergebnis liefert.
-    Denke nicht an die weiteren Schritte (greedy = gierig).
-
-    Ob ein Greedy-Algorithmus die optimale Lösung liefert oder nicht, ist vom konkreten Problem abhängig.
-
-    Für das Traveling-Salesman-Problem ist eine Greedy-Lösung z.B. die \emph{Nearest-Neighbour-Lösung}:
-    \begin{itemize}
-        \item Gehe in jedem Schritt zur nächstliegenden Stadt, die noch nicht besucht ist.
-        \item $\bigo(n^2)$
-        \item liefert nicht die optimale Lösung (kann sogar beliebig schlecht werden)
-        \item arbeitet meistens einigermaßen gut
-    \end{itemize}
-\end{defi}
-
-\begin{bonus}{Random Insertion}
-    Wähle immer einen zufälligen Knoten.
-
-    \begin{itemize}
-        \item $\bigo(n^2)$
-        \item keine Garantie, dass die Lösung irgendeinem Gütekriterium genügt
-        \item im Allgmeinen ist Lösung ziemlich gut
-        \item Vorteil: Durch den Zufallsfaktor kann man das Verfahren beliebig oft wiederholen und sich die beste Lösung heraussuchen.
-    \end{itemize}
-\end{bonus}
-
-\begin{bonus}{Lösung mit minimalem Spannbaum}
-    \begin{enumerate}
-        \item Konstruktion eines minimalen Spannbaums nach Prim
-        \item Durchlaufen mit Tiefensuche
-        \item jede Kante wird zweimal durchlaufen
-        \item summierte Gewichte des minimalen Spannbaums müssen kleiner sein als das optimale TSP-Ergebnis
-        \item Optimierung:
-              \begin{itemize}
-                  \item Knoten schon einmal besucht: beim nächsten Mal überspringen
-                  \item bei einem Schritt mehrere Möglichkeiten: zuerst kürzeren Weg wählen (greedy)
-              \end{itemize}
-    \end{enumerate}
-\end{bonus}
-
-\begin{defi}{Backtracking}
-    Durchlauf eines Lösungsbaum in Pre-Order-Reihenfolge.
-
-    Situation: Mehrere Alternativen sind in bestimmten Schritten des Algorithmus möglich.
-
-    Lösung mit \emph{Backtracking}:
-    \begin{enumerate}
-        \item Wähle eine Alternative und verfolge dieses Weg weiter.
-        \item Falls man so eine Lösung des Problems findet, ist man fertig.
-        \item Ansonsten gehe einen Schritt zurück und verfolge rekursiv eine andere (nicht versuchte) Alternative in diesem Schritt.
-        \item Falls alle Alternativen erfolglos probiert wurden, einen Schritt zurückgehen $\ldots$
-    \end{enumerate}
-
-    Backtracking-Algorithmen können exponentiellen Aufwand haben.
-
-    Tipps:
-    \begin{itemize}
-        \item Durch Einführung von Zusatzbedingungen möglichst viele Sackgassen ausschließen.
-        \item Symmetriebedingungen ausnutzen.
-    \end{itemize}
-\end{defi}
-
-\begin{defi}{Branch and Bound}
-    \begin{enumerate}
-        \item Ermitteln einer oberen Schranke (greedy)
-        \item Falls dieser Wert überschritten wird, kann man die Suche auf diesem Pfad abbrechen.
-        \item Bessere Lösungen nutzen, um die Schranke zu verbessern.
-    \end{enumerate}
-\end{defi}
-
-
-\subsection{Graphalgorithmen}
-
-\begin{defi}{Bipartiter Graph}
-    Ein Graph $G=(V, E)$ heißt \emph{bipartit}, wenn man $V$ in disjunkte Mengen $U$ und $W$ zerlegen kann, so dass alle Kanten zwischen $U$ und $W$ verlaufen.
-
-    Die Knoten eines bipartiten Graphen lassen sich mit zwei Farben so einfärben, dass zwei Nachbarknoten immer unterschiedlich eingefärbt sind.
-\end{defi}
-
-\begin{algo}{Prüfung ob ein Graph bipartit ist}
-    \begin{enumerate}
-        \item Einfärben des 1. Knotens
-        \item Durchlauf mit Breitensuche
-        \item Abwechselndes Färben
-    \end{enumerate}
-
-    Start bei Knoten 1.
-
-    \vspace{1em}
-
-    \begin{center}
-        \begin{tikzpicture}
-            \node[draw, circle, text=white, fill = blue!50] (1) {1};
-            \node[draw, circle, right=of 1] (2) {2};
-            \node[draw, circle, right=of 2] (3) {3};
-            \node[draw, circle, below=of 1] (4) {4};
-            \node[draw, circle, right=of 4] (5) {5};
-            \node[draw, circle, below=of 4] (6) {6};
-            \node[draw, circle, right=of 6] (7) {7};
-
-            \path (1) edge (2);
-            \path (2) edge (3);
-            \path (1) edge (4);
-            \path (4) edge (5);
-            \path (2) edge (5);
-            \path (4) edge (6);
-            \path (6) edge (7);
-            \path (3) edge[bend left=30] (7);
-        \end{tikzpicture}
-        %
-        \hspace{5em}
-        %
-        \begin{tikzpicture}
-            \node[draw, circle, text=white, fill = blue!50] (1) {1};
-            \node[draw, circle, text=white, right=of 1, fill = red!50] (2) {2};
-            \node[draw, circle, right=of 2] (3) {3};
-            \node[draw, circle, text=white, below=of 1, fill = red!50] (4) {4};
-            \node[draw, circle, right=of 4] (5) {5};
-            \node[draw, circle, below=of 4] (6) {6};
-            \node[draw, circle, right=of 6] (7) {7};
-
-            \path (1) edge (2);
-            \path (2) edge (3);
-            \path (1) edge (4);
-            \path (4) edge (5);
-            \path (2) edge (5);
-            \path (4) edge (6);
-            \path (6) edge (7);
-            \path (3) edge[bend left=30] (7);
-        \end{tikzpicture}
-
-        \vspace{1em}
-
-        \begin{tikzpicture}
-            \node[draw, circle, text=white, fill = blue!50] (1) {1};
-            \node[draw, circle, text=white, right=of 1, fill = red!50] (2) {2};
-            \node[draw, circle, text=white, right=of 2, fill = blue!50] (3) {3};
-            \node[draw, circle, text=white, below=of 1, fill = red!50] (4) {4};
-            \node[draw, circle, text=white, right=of 4, fill = blue!50] (5) {5};
-            \node[draw, circle, text=white, below=of 4, fill = blue!50] (6) {6};
-            \node[draw, circle, right=of 6] (7) {7};
-
-            \path (1) edge (2);
-            \path (2) edge (3);
-            \path (1) edge (4);
-            \path (4) edge (5);
-            \path (2) edge (5);
-            \path (4) edge (6);
-            \path (6) edge (7);
-            \path (3) edge[bend left=30] (7);
-        \end{tikzpicture}
-        %
-        \hspace{5em}
-        %
-        \begin{tikzpicture}
-            \node[draw, circle, text=white, fill = blue!50] (1) {1};
-            \node[draw, circle, text=white, right=of 1, fill = red!50] (2) {2};
-            \node[draw, circle, text=white, right=of 2, fill = blue!50] (3) {3};
-            \node[draw, circle, text=white, below=of 1, fill = red!50] (4) {4};
-            \node[draw, circle, text=white, right=of 4, fill = blue!50] (5) {5};
-            \node[draw, circle, text=white, below=of 4, fill = blue!50] (6) {6};
-            \node[draw, circle, text=white, right=of 6, fill = red!50] (7) {7};
-
-            \path (1) edge (2);
-            \path (2) edge (3);
-            \path (1) edge (4);
-            \path (4) edge (5);
-            \path (2) edge (5);
-            \path (4) edge (6);
-            \path (6) edge (7);
-            \path (3) edge[bend left=30] (7);
-        \end{tikzpicture}
-    \end{center}
-\end{algo}
-
-\begin{defi}{Spannbaum}
-    Ein \emph{Spannbaum} verbindet alle Knoten eines ungerichteten Graphen miteinander, hat jedoch keine Kreise.
-
-    Der \emph{minimale Spannbaum} ist der Spannbaum, dessen Kanten das kleinste summierte Gewicht haben.
-\end{defi}
-
-\begin{algo}{Prim-Algorithmus}
-    \begin{enumerate}
-        \item Wähle einen beliebigen Startknoten für den minimalen Spannbaum $T$
-        \item Solange $T$ noch nicht alle Knoten enthält:
-              \begin{itemize}
-                  \item Wähle eine Kante $e$ mit minimalem Gewicht aus, die einen noch nicht in $T$ enthaltenen Knoten $v$ mit $T$ verbindet.
-                  \item Füge $e$ und $v$ dem Graphen $T$ hinzu.
-              \end{itemize}
-    \end{enumerate}
-
-    Start bei Knoten $A$.
-
-    \vspace{1em}
-    \begin{center}
-        \begin{tikzpicture}
-            \node[draw, circle, prim node] (A) {$A$};
-            \node[draw, circle, below right=of A] (B) {$B$};
-            \node[draw, circle, above right=of B] (C) {$C$};
-            \node[draw, circle, below left=of B] (D) {$D$};
-            \node[draw, circle, below right=of B] (E) {$E$};
-            \node[draw, circle, below=of D] (F) {$F$};
-            \node[draw, circle, below=of E] (G) {$G$};
-
-            \path (A) edge node[weight,above right] {7} (B);
-            \path (B) edge node[weight,above left] {8} (C);
-            \path (D) edge node[weight,right] {5} (A);
-            \path (D) edge node[weight,above left] {9} (B);
-            \path (E) edge node[weight,above right] {7} (B);
-            \path (C) edge node[weight,right] {5} (E);
-            \path (D) edge node[weight,above] {15} (E);
-            \path (D) edge node[weight,right] {6} (F);
-            \path (E) edge node[weight,above left] {8} (F);
-            \path (E) edge node[weight,right] {11} (G);
-            \path (F) edge node[weight,above] {9} (G);
-        \end{tikzpicture}
-        %
-        \hspace{3em}
-        %
-        \begin{tikzpicture}
-            \node[draw, circle, prim node] (A) {$A$};
-            \node[draw, circle, below right=of A] (B) {$B$};
-            \node[draw, circle, above right=of B] (C) {$C$};
-            \node[draw, circle, below left=of B, prim node] (D) {$D$};
-            \node[draw, circle, below right=of B] (E) {$E$};
-            \node[draw, circle, below=of D] (F) {$F$};
-            \node[draw, circle, below=of E] (G) {$G$};
-
-            \path (A) edge node[weight,above right] {7} (B);
-            \path (B) edge node[weight,above left] {8} (C);
-            \path (D) edge[prim edge] node[weight,right] {5} (A);
-            \path (D) edge node[weight,above left] {9} (B);
-            \path (E) edge node[weight,above right] {7} (B);
-            \path (C) edge node[weight,right] {5} (E);
-            \path (D) edge node[weight,above] {15} (E);
-            \path (D) edge node[weight,right] {6} (F);
-            \path (E) edge node[weight,above left] {8} (F);
-            \path (E) edge node[weight,right] {11} (G);
-            \path (F) edge node[weight,above] {9} (G);
-        \end{tikzpicture}
-        %
-        \hspace{3em}
-        %
-        \begin{tikzpicture}
-            \node[draw, circle, prim node] (A) {$A$};
-            \node[draw, circle, below right=of A] (B) {$B$};
-            \node[draw, circle, above right=of B] (C) {$C$};
-            \node[draw, circle, below left=of B, prim node] (D) {$D$};
-            \node[draw, circle, below right=of B] (E) {$E$};
-            \node[draw, circle, below=of D, prim node] (F) {$F$};
-            \node[draw, circle, below=of E] (G) {$G$};
-
-            \path (A) edge node[weight,above right] {7} (B);
-            \path (B) edge node[weight,above left] {8} (C);
-            \path (D) edge[prim edge] node[weight,right] {5} (A);
-            \path (D) edge node[weight,above left] {9} (B);
-            \path (E) edge node[weight,above right] {7} (B);
-            \path (C) edge node[weight,right] {5} (E);
-            \path (D) edge node[weight,above] {15} (E);
-            \path (D) edge[prim edge] node[weight,right] {6} (F);
-            \path (E) edge node[weight,above left] {8} (F);
-            \path (E) edge node[weight,right] {11} (G);
-            \path (F) edge node[weight,above] {9} (G);
-        \end{tikzpicture}
-        %
-        \vspace{1em}
-        %
-
-        \begin{tikzpicture}
-            \node[draw, circle, prim node] (A) {$A$};
-            \node[draw, circle, below right=of A, prim node] (B) {$B$};
-            \node[draw, circle, above right=of B] (C) {$C$};
-            \node[draw, circle, below left=of B, prim node] (D) {$D$};
-            \node[draw, circle, below right=of B] (E) {$E$};
-            \node[draw, circle, below=of D, prim node] (F) {$F$};
-            \node[draw, circle, below=of E] (G) {$G$};
-
-            \path (A) edge[prim edge] node[weight,above right] {7} (B);
-            \path (B) edge node[weight,above left] {8} (C);
-            \path (D) edge[prim edge] node[weight,right] {5} (A);
-            \path (D) edge node[weight,above left] {9} (B);
-            \path (E) edge node[weight,above right] {7} (B);
-            \path (C) edge node[weight,right] {5} (E);
-            \path (D) edge node[weight,above] {15} (E);
-            \path (D) edge[prim edge] node[weight,right] {6} (F);
-            \path (E) edge node[weight,above left] {8} (F);
-            \path (E) edge node[weight,right] {11} (G);
-            \path (F) edge node[weight,above] {9} (G);
-        \end{tikzpicture}
-        %
-        \hspace{3em}
-        %
-        \begin{tikzpicture}
-            \node[draw, circle, prim node] (A) {$A$};
-            \node[draw, circle, below right=of A, prim node] (B) {$B$};
-            \node[draw, circle, above right=of B] (C) {$C$};
-            \node[draw, circle, below left=of B, prim node] (D) {$D$};
-            \node[draw, circle, below right=of B, prim node] (E) {$E$};
-            \node[draw, circle, below=of D, prim node] (F) {$F$};
-            \node[draw, circle, below=of E] (G) {$G$};
-
-            \path (A) edge[prim edge] node[weight,above right] {7} (B);
-            \path (B) edge node[weight,above left] {8} (C);
-            \path (D) edge[prim edge] node[weight,right] {5} (A);
-            \path (D) edge node[weight,above left] {9} (B);
-            \path (E) edge[prim edge] node[weight,above right] {7} (B);
-            \path (C) edge node[weight,right] {5} (E);
-            \path (D) edge node[weight,above] {15} (E);
-            \path (D) edge[prim edge] node[weight,right] {6} (F);
-            \path (E) edge node[weight,above left] {8} (F);
-            \path (E) edge node[weight,right] {11} (G);
-            \path (F) edge node[weight,above] {9} (G);
-        \end{tikzpicture}
-        %
-        \hspace{3em}
-        %
-        \begin{tikzpicture}
-            \node[draw, circle, prim node] (A) {$A$};
-            \node[draw, circle, below right=of A, prim node] (B) {$B$};
-            \node[draw, circle, above right=of B, prim node] (C) {$C$};
-            \node[draw, circle, below left=of B, prim node] (D) {$D$};
-            \node[draw, circle, below right=of B, prim node] (E) {$E$};
-            \node[draw, circle, below=of D, prim node] (F) {$F$};
-            \node[draw, circle, below=of E] (G) {$G$};
-
-            \path (A) edge[prim edge] node[weight,above right] {7} (B);
-            \path (B) edge node[weight,above left] {8} (C);
-            \path (D) edge[prim edge] node[weight,right] {5} (A);
-            \path (D) edge node[weight,above left] {9} (B);
-            \path (E) edge[prim edge] node[weight,above right] {7} (B);
-            \path (C) edge[prim edge] node[weight,right] {5} (E);
-            \path (D) edge node[weight,above] {15} (E);
-            \path (D) edge[prim edge] node[weight,right] {6} (F);
-            \path (E) edge node[weight,above left] {8} (F);
-            \path (E) edge node[weight,right] {11} (G);
-            \path (F) edge node[weight,above] {9} (G);
-        \end{tikzpicture}
-        %
-        \vspace{1em}
-        %
-
-        \begin{tikzpicture}
-            \node[draw, circle, prim node] (A) {$A$};
-            \node[draw, circle, below right=of A, prim node] (B) {$B$};
-            \node[draw, circle, above right=of B, prim node] (C) {$C$};
-            \node[draw, circle, below left=of B, prim node] (D) {$D$};
-            \node[draw, circle, below right=of B, prim node] (E) {$E$};
-            \node[draw, circle, below=of D, prim node] (F) {$F$};
-            \node[draw, circle, below=of E, prim node] (G) {$G$};
-
-            \path (A) edge[prim edge] node[weight,above right] {7} (B);
-            \path (B) edge node[weight,above left] {8} (C);
-            \path (D) edge[prim edge] node[weight,right] {5} (A);
-            \path (D) edge node[weight,above left] {9} (B);
-            \path (E) edge[prim edge] node[weight,above right] {7} (B);
-            \path (C) edge[prim edge] node[weight,right] {5} (E);
-            \path (D) edge node[weight,above] {15} (E);
-            \path (D) edge[prim edge] node[weight,right] {6} (F);
-            \path (E) edge node[weight,above left] {8} (F);
-            \path (E) edge node[weight,right] {11} (G);
-            \path (F) edge[prim edge] node[weight,above] {9} (G);
-        \end{tikzpicture}
-    \end{center}
-\end{algo}
-
-\begin{defi}{Shortest-Path-Probleme}
-    Eigentlich: Suche nach \emph{günstigsten Wegen} in gewichteten Graphen: Gewichte $\simeq$ Kosten
-
-    Bei Anwendung auf ungewichtete Graphen ergibt sich: \emph{kürzeste Wege}.
-
-    Beispiele:
-    \begin{itemize}
-        \item Single-Source-Shortest-Path
-              \begin{itemize}
-                  \item Dijkstra-Algorithmus (nicht-negative Kantengewichte)
-                  \item Bellman-Ford-Algorithmus (keine negativen Zykel)
-              \end{itemize}
-        \item All-Pairs-Shortest-Path
-              \begin{itemize}
-                  \item Floyd-Warshall-Algorithmus
-              \end{itemize}
-    \end{itemize}
-\end{defi}
-
-\begin{algo}{Dijkstra-Algorithmus}
-    Gegeben: Graph $G = (V, E)$, dessen Bewertungsfunktion die Eigenschaften hat:
-    \begin{itemize}
-        \item Jede Kante von $v_i$ nach $v_j$ hat nicht-negative Kosten: $C(i, j) \geq 0$
-        \item Falls keine Kante zwischen $v_i$ und $v_j$: $C(i, j) = \infty$
-        \item Diagonalelemente: $C(i, i) = 0$
-    \end{itemize}
-
-    Menge $S$: die Knoten, deren günstigste Wegekosten von der vorgegebenen Quelle (Startknoten) bereits bekannt sind.
-
-    \begin{enumerate}
-        \item Initialisierung: $S = \{ \text{Startknoten} \}$
-        \item Beginnend mit Quelle alle ausgehenden Kanten betrachten (analog Breitensuche). Nachfolgerknoten $v$ mit günstigster Kante zu $S$ hinzunehmen.
-        \item Jetzt: Berechnen, ob die Knoten in $V \setminus S$ günstiger über $v$ als Zwischenweg erreichbar sind, als ohne Umweg über $v$.
-        \item Danach: Denjenigen Knoten $v'$ zu $S$ hinzunehmen, der nun am günstigsten zu erreichen ist. Bei zwei gleich günstigen Knoten wird ein beliebiger davon ausgewählt.
-        \item Ab Schritt 3 wiederholen, bis alle Knoten in $S$ sind.
-    \end{enumerate}
-
-    Zeitkomplexität (bei Speicherung des Graphen mit Adjazenzmatrix): $\bigo(\abs{V}^2)$
-\end{algo}
-
-\begin{example}{Dijkstra-Algorithmus}
-    \begin{center}
-        \begin{tikzpicture}[->]
-            \node[draw, circle] (A) {$A$};
-            \node[draw, circle, below right=of A] (D) {$D$};
-            \node[draw, circle, right=of D] (E) {$E$};
-            \node[draw, circle, above right=of E] (B) {$B$};
-            \node[draw, circle, below right=of B] (H) {$H$};
-            \node[draw, circle, below left=of H] (G) {$G$};
-            \node[draw, circle, below left=of A] (F) {$F$};
-            \node[draw, circle, below right=of F] (C) {$C$};
-
-            \path (A) edge node[weight, below left] {4} (D);
-            \path (A) edge node[weight, above right] {2} (E);
-            \path (A) edge node[weight, above right] {12} (B);
-            \path (A) edge node[weight, above left] {30} (F);
-            \path (E) edge node[weight, above] {1} (D);
-            \path (E) edge node[weight, below right] {8} (C);
-            \path (E) edge node[weight, above left] {8} (B);
-            \path (C) edge node[weight, above right] {3} (F);
-            \path (C) edge node[weight, above right] {3} (F);
-            \path (C) edge node[weight, above] {12} (G);
-            \path (G) edge node[weight, right] {4} (B);
-            \path (G) edge node[weight, below right] {5} (H);
-            \path (H) edge node[weight, above right] {2} (B);
-        \end{tikzpicture}
-
-        \vspace{1em}
-
-        \begin{tabular}{|c|ccccccc|ccccccc|}
-            \hline
-            \multirow{2}{*}{$v_i$} & $d[2]$      & $d[3]$      & $d[4]$     & $d[5]$     & $d[6]$      & $d[7]$      & $d[8]$      & $p[2]$ & $p[3]$ & $p[4]$ & $p[5]$ & $p[6]$ & $p[7]$ & $p[8]$ \\ \cline{2-15}
-                                   & B           & C           & D          & E          & F           & G           & H           & B      & C      & D      & E      & F      & G      & H      \\
-            \hline
-            A                      & 12          &             & 4          & \textbf{2} & 30          &             &             & A      &        & A      & A      & A      &        &        \\
-            E                      & 10          & 10          & \textbf{3} & \textbf{2} & 30          &             &             & A      & E      & E      & A      & A      &        &        \\
-            D                      & \textbf{10} & 10          & \textbf{3} & \textbf{2} & 30          &             &             & A      & E      & E      & A      & A      &        &        \\
-            B                      & \textbf{10} & \textbf{10} & \textbf{3} & \textbf{2} & 30          &             &             & A      & E      & E      & A      & A      &        &        \\
-            C                      & \textbf{10} & \textbf{10} & \textbf{3} & \textbf{2} & \textbf{13} & 22          &             & A      & E      & E      & A      & C      & C      &        \\
-            F                      & \textbf{10} & \textbf{10} & \textbf{3} & \textbf{2} & \textbf{13} & \textbf{22} &             & A      & E      & E      & A      & C      & C      &        \\
-            G                      & \textbf{10} & \textbf{10} & \textbf{3} & \textbf{2} & \textbf{13} & \textbf{22} & \textbf{27} & A      & E      & E      & A      & C      & C      & G      \\
-            H                      & \textbf{10} & \textbf{10} & \textbf{3} & \textbf{2} & \textbf{13} & \textbf{22} & \textbf{27} & A      & E      & E      & A      & C      & C      & G      \\
-            \hline
-        \end{tabular}
-    \end{center}
-
-    \vspace{1em}
-
-    \url{https://youtu.be/4pBP2hbnGso} (Herleitung und Erklärung)
-\end{example}
-
-\begin{algo}{Bellman-Ford-Algorithmus}
-    Gegeben: Graph $G = (V, E)$, dessen Bewertungsfunktion die Eigenschaften hat:
-    \begin{itemize}
-        \item Falls keine Kante zwischen $v_i$ und $v_j$: $C(i, j) = \infty$
-        \item Diagonalelemente: $C(i, i) = 0$
-    \end{itemize}
-
-    \begin{enumerate}
-        \item Initialisierung: Startknoten $s$, Distanz zu $V \setminus \{s\}$ auf $\infty$ setzen
-        \item Für jede Kante $(i, j)$:
-              \begin{itemize}
-                  \item Falls Distanz zu $v_i$ bekannt:
-                        \subitem Falls $d(v_i) + C(i, j) < d(v_j)$, setze $d(v_j)$ auf $d(v_i) + C(i, j)$
-              \end{itemize}
-    \end{enumerate}
-
-    Zeitkomplexität: $\bigo(\abs{V} \cdot \abs{E})$
-\end{algo}
-
-\begin{example}{Bellman-Ford-Algorithmus}
-    \begin{center}
-        \begin{tikzpicture}[->,baseline,anchor=north]
-            \node[draw, circle] (S) {$S$};
-            \node[draw, circle, above right=of S] (A) {$A$};
-            \node[draw, circle, right=of A] (B) {$B$};
-            \node[draw, circle, below right=of S] (C) {$C$};
-            \node[draw, circle, right=of C] (D) {$D$};
-
-            \path (S) edge node[weight, above left] {2} (A);
-            \path (S) edge node[weight, below left] {5} (C);
-            \path (A) edge node[weight, above] {4} (B);
-            \path (C) edge node[weight, above] {2} (D);
-            \path (C) edge node[weight, left] {-4} (A);
-            \path (D) edge node[weight, right] {8} (B);
-            \path (B) edge[bend left=10] node[weight, below right] {1} (C);
-            \path (C) edge[bend left=10] node[weight, above left] {6} (B);
-        \end{tikzpicture}
-        %
-        \hspace{5em}
-        %
-        \begin{tabular}{|c||c|c|c|c|c|}
-            \hline
-              & S & A        & B        & C        & D        \\
-            \hline
-            0 & 0 & $\infty$ & $\infty$ & $\infty$ & $\infty$ \\
-            1 & 0 & 2        & $\infty$ & 5        & $\infty$ \\
-            2 & 0 & 1        & 6        & 5        & 7        \\
-            3 & 0 & 1        & 5        & 5        & 7        \\
-            4 & 0 & 1        & 5        & 5        & 7        \\
-            \hline
-        \end{tabular}
-
-        Keine Änderungen nach Schritt 3 $\implies$ Fertig!
-    \end{center}
-\end{example}
-
-\begin{algo}{Floyd-Algorithmus}
-    Gegeben: Graph $G = (V, E)$, dessen Bewertungsfunktion die Eigenschaften hat:
-    \begin{itemize}
-        \item Jede Kante von $v_i$ nach $v_j$ hat nicht-negative Kosten: $C(i, j) \geq 0$
-        \item Falls keine Kante zwischen $v_i$ und $v_j$: $C(i, j) = \infty$
-        \item Diagonalelemente: $C(i, i) = 0$
-    \end{itemize}
-
-    Im Kontrast zum Dijkstra-Algorithmus bestimmt der \emph{Floyd-Algorithmus} für alle geordneten Paare $(v, w)$ den kürzesten Weg von $v$ nach $w$.
-
-    $\abs{V}$ Iterationen:
-    \begin{enumerate}
-        \item Vergleiche Kosten von
-              \begin{itemize}
-                  \item direkter Verbindung von Knoten $i$ zu Knoten $j$
-                  \item Umweg über Knoten $1$ (also: von $i$ nach $1$ + von $1$ nach $j$)
-                  \item Falls Umweg günstiger: alten Weg durch Umweg ersetzen
-              \end{itemize}
-        \item Umwege über Knoten $2$ betrachten.
-        \item[$k$.] Umwege über Knoten $k$ betrachten.
-    \end{enumerate}
-
-    Der Floyd-Algorithmus nutzt eine $\abs{V} \times \abs{V}$-Matrix, um die Kosten der günstigsten Wege zu speichern:
-    \begin{center}
-        $A_k[i][j] :=$ minimale Kosten, um in Schritt $k$ über irgendwelche der Knoten in $V$ vom Knoten $i$ zum Knoten $j$ zu gelangen
-    \end{center}
-
-    \begin{itemize}
-        \item Initialisierung: $A_0[i][j]= C(i, j)$
-        \item $\abs{V}$ Iterationen mit \glqq dynamischer Programmierung\grqq:
-              \subitem Iterationsformel zur Aktualisierung von $A[i][j]$:
-              $$
-                  A_k[i][j] = \min \{ A_{k-1}[i][j] , A_{k-1}[i][k] + A_{k-1}[k][j] \}
-              $$
-    \end{itemize}
-\end{algo}
-
-\begin{code}{Floyd-Algorithmus}
-    \lstinputlisting{floyd.java}
-\end{code}
-
-\begin{example}{Floyd-Algorithmus}
-    \newcolumntype{g}{>{\columncolor{gray!25}}c}
-
-    $A_0$ (direkter Weg):
-    \begin{center}
-        \begin{tikzpicture}[baseline,anchor=north]
-            \node[draw, circle] (1) {$1$};
-            \node[draw, circle, right=of 1] (2) {$2$};
-            \node[draw, circle, below=of 1] (3) {$3$};
-            \node[draw, circle, right=of 3] (4) {$4$};
-
-            \path (1) edge node[weight, above] {2} (2);
-            \path (1) edge node[weight, left] {3} (3);
-            \path (3) edge node[weight, below] {7} (4);
-            \path (2) edge node[weight, right] {1} (4);
-        \end{tikzpicture}
-        %
-        \hspace{5em}
-        %
-        \begin{tabular}[t]{|c|cccc|}
-            \hline
-              & 1                   & 2                   & 3                   & 4                   \\
-            \hline
-            1 & \textcolor{gray}{0} & 2                   & 3                   & $\infty$            \\
-            2 & 2                   & \textcolor{gray}{0} & $\infty$            & 1                   \\
-            3 & 3                   & $\infty$            & \textcolor{gray}{0} & 7                   \\
-            4 & $\infty$            & 1                   & 7                   & \textcolor{gray}{0} \\
-            \hline
-        \end{tabular}
-        %
-        \hspace{5em}
-        %
-        \begin{tabular}[t]{|c|cccc|}
-            \hline
-              & 1                   & 2                   & 3                   & 4 \\
-            \hline
-            1 & \textcolor{gray}{-} & -                   & -                   & - \\
-            2 & -                   & \textcolor{gray}{-} & -                   & - \\
-            3 & -                   & -                   & \textcolor{gray}{-} & - \\
-            4 & -                   & -                   & -                   & - \\
-            \hline
-        \end{tabular}
-    \end{center}
-
-    $A_1$ (Umweg über 1):
-    \begin{center}
-        \begin{tikzpicture}[baseline,anchor=north]
-            \node[draw, circle] (1) {$1$};
-            \node[draw, circle, right=of 1] (2) {$2$};
-            \node[draw, circle, below=of 1] (3) {$3$};
-            \node[draw, circle, right=of 3] (4) {$4$};
-
-            \path (1) edge node[weight, above] {2} (2);
-            \path (1) edge node[weight, left] {3} (3);
-            \path (3) edge node[weight, below] {7} (4);
-            \path (2) edge node[weight, right] {1} (4);
-            %\path (1) edge[blue, bend left=45] node[weight, above, blue] {2} (2);
-            %\path (1) edge[blue, bend right=45] node[weight, left, blue] {3} (3);
-            \path (2) edge[dashed, red, bend right] node[weight, above left, pos=1] {5} (1.north west);
-            \path (1.north west) edge[dashed, red, bend right] (3);
-        \end{tikzpicture}
-        %
-        \hspace{5em}
-        %
-        \begin{tabular}[t]{|c|gccc|}
-            \hline
-              & 1                   & 2                   & 3                   & 4                   \\
-            \hline
-            \rowcolor{gray!25}
-            1 & \textcolor{gray}{0} & 2                   & 3                   & $\infty$            \\
-            2 & 2                   & \textcolor{gray}{0} & \textcolor{red}{5}  & 1                   \\
-            3 & 3                   & \textcolor{red}{5}  & \textcolor{gray}{0} & 7                   \\
-            4 & $\infty$            & 1                   & 7                   & \textcolor{gray}{0} \\
-            \hline
-        \end{tabular}
-        %
-        \hspace{5em}
-        %
-        \begin{tabular}[t]{|c|cccc|}
-            \hline
-              & 1                   & 2                   & 3                   & 4 \\
-            \hline
-            1 & \textcolor{gray}{-} & -                   & -                   & - \\
-            2 & -                   & \textcolor{gray}{-} & 1                   & - \\
-            3 & -                   & 1                   & \textcolor{gray}{-} & - \\
-            4 & -                   & -                   & -                   & - \\
-            \hline
-        \end{tabular}
-    \end{center}
-
-    $$A_0[2][3] > A_0[3][1] + A_0[1][2] \implies A_1[2][3] = A_0[3][1] + A_0[1][2] = 3 + 2 = 5$$
-    $$A_0[3][2] > A_0[2][1] + A_0[1][3] \implies A_1[3][2] = A_0[2][1] + A_0[1][3] = 2 + 3 = 5$$
-
-
-    $A_2$ (Umweg über 2):
-    \begin{center}
-        \begin{tikzpicture}[baseline,anchor=north]
-            \node[draw, circle] (1) {$1$};
-            \node[draw, circle, right=of 1] (2) {$2$};
-            \node[draw, circle, below=of 1] (3) {$3$};
-            \node[draw, circle, right=of 3] (4) {$4$};
-
-            \path (1) edge node[weight, above] {2} (2);
-            \path (1) edge node[weight, left] {3} (3);
-            \path (3) edge node[weight, below] {7} (4);
-            \path (2) edge node[weight, right] {1} (4);
-
-            % old edge 2-1-3
-            \path (2) edge[dashed, blue, bend right] node[weight, above left, pos=1] {5} (1.north west);
-            \path (1.north west) edge[dashed, blue, bend right] (3);
-            % new edge 1-2-4
-            \path (1) edge[dashed, red, bend left] node[weight, above right, pos=1] {3} (2.north east);
-            \path (2.north east) edge[dashed, red, bend left] (4);
-            % old edge 3-2-4
-            \path (3) edge[dashed, red, bend left] node[weight, below right, pos=0.5] {6} (2.south west);
-            \path (2.south west) edge[dashed, red, bend right] (4);
-        \end{tikzpicture}
-        %
-        \hspace{5em}
-        %
-        \begin{tabular}[t]{|c|cgcc|}
-            \hline
-              & 1                   & 2                   & 3                   & 4                   \\
-            \hline
-            1 & \textcolor{gray}{0} & 2                   & 3                   & \textcolor{red}{3}  \\
-            \rowcolor{gray!25}
-            2 & 2                   & \textcolor{gray}{0} & 5                   & 1                   \\
-            3 & 3                   & 5                   & \textcolor{gray}{0} & \textcolor{red}{6}  \\
-            4 & \textcolor{red}{3}  & 1                   & \textcolor{red}{6}  & \textcolor{gray}{0} \\
-            \hline
-        \end{tabular}
-        %
-        \hspace{5em}
-        %
-        \begin{tabular}[t]{|c|cccc|}
-            \hline
-              & 1                   & 2                   & 3                   & 4 \\
-            \hline
-            1 & \textcolor{gray}{-} & -                   & -                   & 2 \\
-            2 & -                   & \textcolor{gray}{-} & 1                   & - \\
-            3 & -                   & 1                   & \textcolor{gray}{-} & 2 \\
-            4 & 2                   & -                   & 2                   & - \\
-            \hline
-        \end{tabular}
-    \end{center}
-
-    $$A_1[1][4] > A_1[1][2] + A_1[2][4] \implies A_2[2][3] = A_1[1][2] + A_1[2][4] = 2 + 1 = 3$$
-    $$A_1[4][1] > A_1[4][2] + A_1[2][1] \implies A_2[3][2] = A_1[4][2] + A_1[2][1] = 1 + 2 = 3$$
-    $$A_1[3][4] > A_1[3][2] + A_1[2][4] \implies A_2[3][4] = A_1[3][2] + A_1[2][4] = 5 + 1 = 6$$
-    $$A_1[4][3] > A_1[4][2] + A_1[2][3] \implies A_2[4][3] = A_1[4][2] + A_1[2][3] = 1 + 5 = 6$$
-
-    $A_3$ (Umweg über 3):
-    \begin{center}
-        \begin{tikzpicture}[baseline,anchor=north]
-            \node[draw, circle] (1) {$1$};
-            \node[draw, circle, right=of 1] (2) {$2$};
-            \node[draw, circle, below=of 1] (3) {$3$};
-            \node[draw, circle, right=of 3] (4) {$4$};
-
-            \path (1) edge node[weight, above] {2} (2);
-            \path (1) edge node[weight, left] {3} (3);
-            \path (3) edge node[weight, below] {7} (4);
-            \path (2) edge node[weight, right] {1} (4);
-
-            % old edge 2-1-3
-            \path (2) edge[dashed, blue, bend right] node[weight, above left, pos=1] {5} (1.north west);
-            \path (1.north west) edge[dashed, blue, bend right] (3);
-            % old edge 1-2-4
-            \path (1) edge[dashed, blue, bend left] node[weight, above right, pos=1] {3} (2.north east);
-            \path (2.north east) edge[dashed, blue, bend left] (4);
-            % old edge 3-2-4
-            \path (3) edge[dashed, blue, bend left] node[weight, below right, pos=0.5] {6} (2.south west);
-            \path (2.south west) edge[dashed, blue, bend right] (4);
-        \end{tikzpicture}
-        %
-        \hspace{5em}
-        %
-        \begin{tabular}[t]{|c|ccgc|}
-            \hline
-              & 1                   & 2                   & 3                   & 4                   \\
-            \hline
-            1 & \textcolor{gray}{0} & 2                   & 3                   & 3                   \\
-            2 & 2                   & \textcolor{gray}{0} & 5                   & 1                   \\
-            \rowcolor{gray!25}
-            3 & 3                   & 5                   & \textcolor{gray}{0} & 6                   \\
-            4 & 3                   & 1                   & 6                   & \textcolor{gray}{0} \\
-            \hline
-        \end{tabular}
-        %
-        \hspace{5em}
-        %
-        \begin{tabular}[t]{|c|cccc|}
-            \hline
-              & 1                   & 2                   & 3                   & 4 \\
-            \hline
-            1 & \textcolor{gray}{-} & -                   & -                   & 2 \\
-            2 & -                   & \textcolor{gray}{-} & 1                   & - \\
-            3 & -                   & 1                   & \textcolor{gray}{-} & 2 \\
-            4 & 2                   & -                   & 2                   & - \\
-            \hline
-        \end{tabular}
-    \end{center}
-
-    $A_4$ (Umweg über 4):
-    \begin{center}
-        \begin{tikzpicture}[baseline,anchor=north]
-            \node[draw, circle] (1) {$1$};
-            \node[draw, circle, right=of 1] (2) {$2$};
-            \node[draw, circle, below=of 1] (3) {$3$};
-            \node[draw, circle, right=of 3] (4) {$4$};
-
-            \path (1) edge node[weight, above] {2} (2);
-            \path (1) edge node[weight, left] {3} (3);
-            \path (3) edge node[weight, below] {7} (4);
-            \path (2) edge node[weight, right] {1} (4);
-
-            % old edge 2-1-3
-            \path (2) edge[dashed, blue, bend right] node[weight, above left, pos=1] {5} (1.north west);
-            \path (1.north west) edge[dashed, blue, bend right] (3);
-            % old edge 1-2-4
-            \path (1) edge[dashed, blue, bend left] node[weight, above right, pos=1] {3} (2.north east);
-            \path (2.north east) edge[dashed, blue, bend left] (4);
-            % old edge 3-2-4
-            \path (3) edge[dashed, blue, bend left] node[weight, below right, pos=0.5] {6} (2.south west);
-            \path (2.south west) edge[dashed, blue, bend right] (4);
-        \end{tikzpicture}
-        %
-        \hspace{5em}
-        %
-        \begin{tabular}[t]{|c|cccg|}
-            \hline
-              & 1                   & 2                   & 3                   & 4                   \\
-            \hline
-            1 & \textcolor{gray}{0} & 2                   & 3                   & 3                   \\
-            2 & 2                   & \textcolor{gray}{0} & 5                   & 1                   \\
-            3 & 3                   & 5                   & \textcolor{gray}{0} & 6                   \\
-            \rowcolor{gray!25}
-            4 & 3                   & 1                   & 6                   & \textcolor{gray}{0} \\
-            \hline
-        \end{tabular}
-        %
-        \hspace{5em}
-        %
-        \begin{tabular}[t]{|c|cccc|}
-            \hline
-              & 1                   & 2                   & 3                   & 4 \\
-            \hline
-            1 & \textcolor{gray}{-} & -                   & -                   & 2 \\
-            2 & -                   & \textcolor{gray}{-} & 1                   & - \\
-            3 & -                   & 1                   & \textcolor{gray}{-} & 2 \\
-            4 & 2                   & -                   & 2                   & - \\
-            \hline
-        \end{tabular}
-    \end{center}
-\end{example}
\ No newline at end of file
+\section{Graphen}
+
+\begin{defi}{Gerichteter Graph}
+    Ein \emph{gerichteter Graph} $G = (V, E)$ besteht aus
+    \begin{itemize}
+        \item einer endlichen, nicht leeren Menge $V = \{v_1, \ldots, v_n\}$ von \emph{Knoten (vertices)} und
+        \item einer Relation $E \subseteq V \times V$ von geordneten Paaren $e = (u, v)$ den \emph{Kanten (edges)}.
+    \end{itemize}
+
+    Jede Kante $(u,v) \in E$ hat einen Anfangsknoten $u$ und einen Enknoten $v$ und damit eine Richtung von $u$ nach $v$ ($u=v$ ist möglich).
+
+    \begin{center}
+        \begin{tikzpicture}[->]
+            \node[draw, circle] (1) {1};
+            \node[draw, circle, below=of 1] (2) {2};
+            \node[draw, circle, right=of 2] (3) {3};
+            \node[draw, circle, above=of 3] (4) {4};
+            \node[draw, circle, right=of 4] (5) {5};
+
+            %\draw[->] (1) to[bend left=15] (4);
+            %\draw[->] (4) to[bend left=15] (1);
+            %\draw[->] (1) to (2);
+            %\draw[->] (2) to (3);
+            %\draw[->] (3) to (4);
+            %\draw[->] (4) to (5);
+
+            \path (1) edge[bend left=15] (4);
+            \path (4) edge[bend left=15] (1);
+            \path (1) edge (2);
+            \path (2) edge (3);
+            \path (3) edge (4);
+            \path (4) edge (5);
+            \path (5) edge[loop above] (5);
+        \end{tikzpicture}
+    \end{center}
+\end{defi}
+
+\begin{defi}{Ungerichteter Graph}
+    Ein \emph{ungerichteter Graph} $G = (V, E)$ besteht aus
+    \begin{itemize}
+        \item einer endlichen, nicht leeren Menge $V = \{v_1, \ldots, v_n\}$ von \emph{Knoten (vertices)} und
+        \item einer symmetrischen Relation $E \subseteq V \times V$ von geordneten Paaren $e = (u, v) \iff (v, u)$ den \emph{Kanten (edges)}.
+    \end{itemize}
+
+    Jede Kante $(u,v) \in E$ hat einen Anfangsknoten $u$ und einen Enknoten $v$ und damit eine Richtung von $u$ nach $v$ ($u=v$ ist möglich).
+
+    \vspace{1em}
+    \begin{center}
+        \begin{tikzpicture}
+            \node[draw, circle] (1) {1};
+            \node[draw, circle, below=of 1] (2) {2};
+            \node[draw, circle, right=of 2] (3) {3};
+            \node[draw, circle, above=of 3] (4) {4};
+            \node[draw, circle, right=of 4] (5) {5};
+
+            %\draw[->] (1) to[bend left=15] (4);
+            %\draw[->] (4) to[bend left=15] (1);
+            %\draw[->] (1) to (2);
+            %\draw[->] (2) to (3);
+            %\draw[->] (3) to (4);
+            %\draw[->] (4) to (5);
+
+            \path (1) edge (4);
+            \path (1) edge (2);
+            \path (2) edge (3);
+            \path (3) edge (4);
+            \path (4) edge (5);
+        \end{tikzpicture}
+    \end{center}
+\end{defi}
+
+\begin{defi}{Gewichteter Graph}
+    Ein Graph heißt \emph{gewichtet}, wenn jeder Kante ein Wert als \emph{Gewicht} zugeordnet ist (z.B. Transportkosten, Entfernung).
+
+    \begin{center}
+        \begin{tikzpicture}[->]
+            \node[draw, circle] (1) {1};
+            \node[draw, circle, below=of 1] (2) {2};
+            \node[draw, circle, right=of 2] (3) {3};
+            \node[draw, circle, above=of 3] (4) {4};
+            \node[draw, circle, right=of 4] (5) {5};
+
+            %\draw[->] (1) to[bend left=15] (4);
+            %\draw[->] (4) to[bend left=15] (1);
+            %\draw[->] (1) to (2);
+            %\draw[->] (2) to (3);
+            %\draw[->] (3) to (4);
+            %\draw[->] (4) to (5);
+
+            \path (1) edge[bend left=15] node[above,scale=0.7] {2} (4);
+            \path (4) edge[bend left=15] node[below,scale=0.7] {1} (1);
+            \path (1) edge node[left,scale=0.7] {2} (2);
+            \path (2) edge node[above,scale=0.7] {1} (3);
+            \path (3) edge node[right,scale=0.7] {8} (4);
+            \path (4) edge node[above,scale=0.7] {1} (5);
+            \path (5) edge[loop above] node[above,scale=0.7] {2} (5);
+        \end{tikzpicture}
+    \end{center}
+\end{defi}
+
+\begin{defi}{Teilgraph}
+    $G' = (V', E')$ heißt \emph{Teilgraph} von $G=(V, E)$, wenn gilt:
+    $$
+        V' \subseteq V \quad \text{und} \quad E' \subseteq E
+    $$
+\end{defi}
+
+\begin{defi}{Weg}
+    Sei $G = (V, E)$ ein Graph.
+
+    Eine Folge von Knoten
+    $$
+        W := (v_1, v_2, \ldots, v_n)
+    $$
+    heißt \emph{Weg} oder \emph{Pfad} in $G$, falls gilt:
+    $$
+        \forall 1 \leq i \leq n-1 : (v_i, v_{i+1}) \in E
+    $$
+    (also eine Folge von zusammenhängenden Kanten)
+
+    $\alpha(W) := v_1$ heißt \emph{Anfangsknoten} des Weges $W$.
+
+    $\omega(W) := v_n$ heißt \emph{Endknoten} des Weges $W$.
+
+    $\forall v_i \in V : (v_i)$ heißt \emph{trivialer Weg} und ist stets ein Weg in $G$.
+
+    Die \emph{Länge eines Weges} ist $l(W) := n-1$, falls $n$ Knoten auf diesem Weg besucht werden.
+
+    Ein Weg heißt \emph{einfacher Weg}, wenn kein Knoten (ausgenommen Start- und Endknoten) mehr als einmal vorkommt.
+
+    Ein \emph{Zykel} oder \emph{Kreis} ist ein nicht-trivialer einfacher Weg mit der Bedingung $\alpha(W) = \omega(W)$.
+\end{defi}
+
+\begin{defi}{Adjazenz}
+    Zwei Knoten heißen \emph{adjazent (benachbart)}, wenn sie eine Kante verbindet.
+\end{defi}
+
+\begin{defi}{Speicherung von Graphen}
+    \begin{itemize}
+        \item Kantenorientiert
+              \begin{itemize}
+                  \item Index für Kanten
+                  \item für jede Kante speichern: Vorgänger-, Nachfolgerknoten (Markierung, Gewicht)
+                  \item meist statische Darstellung, z.B. Kantenliste
+              \end{itemize}
+        \item Knotenorientiert
+              \begin{itemize}
+                  \item gebräuchlicher als kantenorientiert
+                  \item in vielen Ausprägungen, z.B. Knotenliste, Adjazenzmatrix, Adjazenzliste
+                  \item für Adjazenzmatrix gilt:
+                        $$
+                            A_{ij} = \begin{cases}
+                                1 & \text{, falls} \ (i, j) \in E \\
+                                0 & \text{, sonst}
+                            \end{cases}
+                        $$
+              \end{itemize}
+    \end{itemize}
+\end{defi}
+
+\begin{example}{Kantenliste}
+    \begin{center}
+        \begin{tikzpicture}[->]
+            \node[draw, circle] (1) {1};
+            \node[draw, circle, below left=of 1] (3) {3};
+            \node[draw, circle, below right=of 1] (4) {4};
+            \node[draw, circle, above right=of 4] (2) {2};
+            \node[draw, circle, below=of 3] (5) {5};
+            \node[draw, circle, below=of 4] (6) {6};
+
+            \path (5) edge[loop below] (5);
+            \path (1) edge[bend left=15] (3);
+            \path (3) edge[bend left=15] (1);
+            \path (4) edge (1);
+            \path (1) edge (2);
+            \path (3) edge (4);
+            \path (5) edge (3);
+            \path (3) edge (6);
+            \path (6) edge (4);
+            \path (6) edge (5);
+            \path (6) edge (2);
+        \end{tikzpicture}
+    \end{center}
+
+    Für eine Kantenliste gilt:
+    \begin{itemize}
+        \item Position \texttt{0}: Anzahl der Knoten
+        \item Position \texttt{1}: Anzahl der Kanten
+        \item Danach für jede Kante \texttt{c = (i, j)}:
+              \begin{itemize}
+                  \item Startknoten \texttt{i}
+                  \item Endknoten \texttt{j}
+              \end{itemize}
+    \end{itemize}
+
+    Für den Graphen $G$ oben gilt die Kantenliste:
+
+    \centering
+
+    \texttt{[6,11,1,2,1,3,3,1,4,1,3,4,3,6,5,3,5,5,6,5,6,2,6,4]}
+
+\end{example}
+
+\begin{example}{Knotenliste}
+    \begin{center}
+        \begin{tikzpicture}[->]
+            \node[draw, circle] (1) {1};
+            \node[draw, circle, below left=of 1] (3) {3};
+            \node[draw, circle, below right=of 1] (4) {4};
+            \node[draw, circle, above right=of 4] (2) {2};
+            \node[draw, circle, below=of 3] (5) {5};
+            \node[draw, circle, below=of 4] (6) {6};
+
+            \path (5) edge[loop below] (5);
+            \path (1) edge[bend left=15] (3);
+            \path (3) edge[bend left=15] (1);
+            \path (4) edge (1);
+            \path (1) edge (2);
+            \path (3) edge (4);
+            \path (5) edge (3);
+            \path (3) edge (6);
+            \path (6) edge (4);
+            \path (6) edge (5);
+            \path (6) edge (2);
+        \end{tikzpicture}
+    \end{center}
+
+    Für eine Knoten gilt:
+    \begin{itemize}
+        \item Position \texttt{0}: Anzahl der Knoten
+        \item Position \texttt{1}: Anzahl der Kanten
+        \item Danach für jeden Knoten \texttt{i}:
+              \begin{itemize}
+                  \item Ausgangsgrad des Knotens \texttt{i} (Anzahl der ausgehenden Kanten)
+                  \item Alle Knoten \texttt{j} für die gilt $(i, j) \in E$
+              \end{itemize}
+    \end{itemize}
+
+    Für den Graphen $G$ oben gilt die Knotenliste:
+
+    \centering
+
+    \texttt{[6,11,2,2,3,0,3,1,4,6,1,1,2,3,5,3,2,4,5]}
+
+\end{example}
+
+\begin{example}{Adjazenzmatrix}
+    \begin{center}
+        \begin{tikzpicture}[->]
+            \node[draw, circle] (1) {1};
+            \node[draw, circle, below left=of 1] (3) {3};
+            \node[draw, circle, below right=of 1] (4) {4};
+            \node[draw, circle, above right=of 4] (2) {2};
+            \node[draw, circle, below=of 3] (5) {5};
+            \node[draw, circle, below=of 4] (6) {6};
+
+            \path (5) edge[loop below] (5);
+            \path (1) edge[bend left=15] (3);
+            \path (3) edge[bend left=15] (1);
+            \path (4) edge (1);
+            \path (1) edge (2);
+            \path (3) edge (4);
+            \path (5) edge (3);
+            \path (3) edge (6);
+            \path (6) edge (4);
+            \path (6) edge (5);
+            \path (6) edge (2);
+        \end{tikzpicture}
+    \end{center}
+
+    Für den Graphen $G$ oben gilt die Adjazenzmatrix:
+    $$
+        A(G) = \vektor{
+            0 & 1 & 1 & 0 & 0 & 0 \\
+            0 & 0 & 0 & 0 & 0 & 0 \\
+            1 & 0 & 0 & 1 & 0 & 1 \\
+            1 & 0 & 0 & 0 & 0 & 0 \\
+            0 & 0 & 1 & 0 & 1 & 0 \\
+            0 & 1 & 0 & 1 & 1 & 0
+        }
+    $$
+\end{example}
+
+\begin{example}{Adjazenzliste}
+    \begin{center}
+        \begin{tikzpicture}[->]
+            \node[draw, circle] (1) {1};
+            \node[draw, circle, below left=of 1] (3) {3};
+            \node[draw, circle, below right=of 1] (4) {4};
+            \node[draw, circle, above right=of 4] (2) {2};
+            \node[draw, circle, below=of 3] (5) {5};
+            \node[draw, circle, below=of 4] (6) {6};
+
+            \path (5) edge[loop below] (5);
+            \path (1) edge[bend left=15] (3);
+            \path (3) edge[bend left=15] (1);
+            \path (4) edge (1);
+            \path (1) edge (2);
+            \path (3) edge (4);
+            \path (5) edge (3);
+            \path (3) edge (6);
+            \path (6) edge (4);
+            \path (6) edge (5);
+            \path (6) edge (2);
+        \end{tikzpicture}
+    \end{center}
+
+    Für den Graphen $G$ oben gilt die Adjazenzliste:
+
+    \vspace{1em}
+
+    \begin{center}
+        \begin{tikzpicture}[
+            start chain = going below,
+            StackBlock/.style={minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            every node/.style={draw, label distance=0.5em},
+            node distance=0em
+            ]
+            {
+            \node [StackBlock] (k1) {$1$};
+            \node [StackBlock,yshift=-0.5em] (k2) {$2$};
+            \node [StackBlock,yshift=-0.5em] (k3) {$3$};
+            \node [StackBlock,yshift=-0.5em] (k4) {$4$};
+            \node [StackBlock,yshift=-0.5em] (k5) {$5$};
+            \node [StackBlock,yshift=-0.5em] (k6) {$6$};
+
+            % Chain 1
+            { [continue chain = going right]
+            \chainin (k1);
+
+            \node [StackBlock, xshift=2em] (12) {$2$};
+            \node [StackBlock] (12p) {};
+            \node [StackBlock, xshift=2em] (13) {$3$};
+            \node [StackBlock] (13p) {};
+            }
+
+            % Chain 3
+            { [continue chain = going right]
+            \chainin (k3);
+
+            \node [StackBlock, xshift=2em] (31) {$1$};
+            \node [StackBlock] (31p) {};
+            \node [StackBlock, xshift=2em] (34) {$4$};
+            \node [StackBlock] (34p) {};
+            \node [StackBlock, xshift=2em] (36) {$6$};
+            \node [StackBlock] (36p) {};
+            }
+
+            % Chain 4
+            { [continue chain = going right]
+            \chainin (k4);
+
+            \node [StackBlock, xshift=2em] (41) {$1$};
+            \node [StackBlock] (41p) {};
+            }
+
+            % Chain 5
+            { [continue chain = going right]
+            \chainin (k5);
+
+            \node [StackBlock, xshift=2em] (53) {$3$};
+            \node [StackBlock] (53p) {};
+            \node [StackBlock, xshift=2em] (55) {$5$};
+            \node [StackBlock] (55p) {};
+            }
+
+            % Chain 6
+            { [continue chain = going right]
+            \chainin (k6);
+
+            \node [StackBlock, xshift=2em] (62) {$2$};
+            \node [StackBlock] (62p) {};
+            \node [StackBlock, xshift=2em] (64) {$4$};
+            \node [StackBlock] (64p) {};
+            \node [StackBlock, xshift=2em] (65) {$5$};
+            \node [StackBlock] (65p) {};
+            }
+
+            \draw[->] (k1.east) [out=0, in=180] to (12.west);
+            \draw[->] (k3.east) [out=0, in=180] to (31.west);
+            \draw[->] (k4.east) [out=0, in=180] to (41.west);
+            \draw[->] (k5.east) [out=0, in=180] to (53.west);
+            \draw[->] (k6.east) [out=0, in=180] to (62.west);
+
+            \draw[->] (12p.center) [out=0, in=180] to (13.west);
+
+            \draw[->] (31p.center) [out=0, in=180] to (34.west);
+            \draw[->] (34p.center) [out=0, in=180] to (36.west);
+
+            \draw[->] (53p.center) [out=0, in=180] to (55.west);
+
+            \draw[->] (62p.center) [out=0, in=180] to (64.west);
+            \draw[->] (64p.center) [out=0, in=180] to (65.west);
+            }
+        \end{tikzpicture}
+    \end{center}
+\end{example}
+
+\subsection{Suche}
+
+\begin{algo}{Breitensuche}
+    \begin{enumerate}
+        \item Zunächst werden alle Knoten als \glqq noch nicht besucht\grqq markiert.
+        \item Startpunkt $v$ wählen und als \glqq besucht\grqq markieren.
+        \item Jetzt:
+              \begin{enumerate}
+                  \item alle von $v$ aus direkt erreichbaren (nicht besuchten) Knoten \glqq besuchen\grqq
+                  \item alle von $v$ über zwei Kanten erreichbaren (nicht besuchten) Knoten \glqq besuchen\grqq
+                  \item $\ldots$
+              \end{enumerate}
+        \item Wenn noch nicht alle Knoten besucht worden sind, wähle einen neuen unbesuchten Startpunkt $v$ und beginne bei Schritt 3
+    \end{enumerate}
+
+    Start bei Knoten 1.
+
+    \begin{center}
+        \begin{tikzpicture}[->]
+            \node[draw, circle, current] (1) {1};
+            \node[draw, circle, below left=of 1] (3) {3};
+            \node[draw, circle, below right=of 1] (4) {4};
+            \node[draw, circle, above right=of 4] (2) {2};
+            \node[draw, circle, below=of 3] (5) {5};
+            \node[draw, circle, below=of 4] (6) {6};
+
+            \path (5) edge[loop below] (5);
+            \path (1) edge[bend left=15] (3);
+            \path (3) edge[bend left=15] (1);
+            \path (4) edge (1);
+            \path (1) edge (2);
+            \path (3) edge (4);
+            \path (5) edge (3);
+            \path (3) edge (6);
+            \path (6) edge (4);
+            \path (6) edge (5);
+            \path (6) edge (2);
+        \end{tikzpicture}
+        %
+        \hspace{5em}
+        %
+        \begin{tikzpicture}[->]
+            \node[draw, circle, visited] (1) {1};
+            \node[draw, circle, below left=of 1, current] (3) {3};
+            \node[draw, circle, below right=of 1] (4) {4};
+            \node[draw, circle, above right=of 4, current] (2) {2};
+            \node[draw, circle, below=of 3] (5) {5};
+            \node[draw, circle, below=of 4] (6) {6};
+
+            \path (5) edge[loop below] (5);
+            \path (1) edge[bend left=15] (3);
+            \path (3) edge[bend left=15] (1);
+            \path (4) edge (1);
+            \path (1) edge (2);
+            \path (3) edge (4);
+            \path (5) edge (3);
+            \path (3) edge (6);
+            \path (6) edge (4);
+            \path (6) edge (5);
+            \path (6) edge (2);
+        \end{tikzpicture}
+        %
+        %\hspace{5em}
+        %
+        \begin{tikzpicture}[->]
+            \node[draw, circle, visited] (1) {1};
+            \node[draw, circle, below left=of 1, visited] (3) {3};
+            \node[draw, circle, below right=of 1, current] (4) {4};
+            \node[draw, circle, above right=of 4, visited] (2) {2};
+            \node[draw, circle, below=of 3] (5) {5};
+            \node[draw, circle, below=of 4, current] (6) {6};
+
+            \path (5) edge[loop below] (5);
+            \path (1) edge[bend left=15] (3);
+            \path (3) edge[bend left=15] (1);
+            \path (4) edge (1);
+            \path (1) edge (2);
+            \path (3) edge (4);
+            \path (5) edge (3);
+            \path (3) edge (6);
+            \path (6) edge (4);
+            \path (6) edge (5);
+            \path (6) edge (2);
+        \end{tikzpicture}
+        %
+        \hspace{5em}
+        %
+        \begin{tikzpicture}[->]
+            \node[draw, circle, visited] (1) {1};
+            \node[draw, circle, below left=of 1, visited] (3) {3};
+            \node[draw, circle, below right=of 1, visited] (4) {4};
+            \node[draw, circle, above right=of 4, visited] (2) {2};
+            \node[draw, circle, below=of 3, current] (5) {5};
+            \node[draw, circle, below=of 4, visited] (6) {6};
+
+            \path (5) edge[loop below] (5);
+            \path (1) edge[bend left=15] (3);
+            \path (3) edge[bend left=15] (1);
+            \path (4) edge (1);
+            \path (1) edge (2);
+            \path (3) edge (4);
+            \path (5) edge (3);
+            \path (3) edge (6);
+            \path (6) edge (4);
+            \path (6) edge (5);
+            \path (6) edge (2);
+        \end{tikzpicture}
+        %
+        %\hspace{5em}
+        %
+        \begin{tikzpicture}[->]
+            \node[draw, circle, visited] (1) {1};
+            \node[draw, circle, below left=of 1, visited] (3) {3};
+            \node[draw, circle, below right=of 1, visited] (4) {4};
+            \node[draw, circle, above right=of 4, visited] (2) {2};
+            \node[draw, circle, below=of 3, visited] (5) {5};
+            \node[draw, circle, below=of 4, visited] (6) {6};
+
+            \path (5) edge[loop below] (5);
+            \path (1) edge[bend left=15] (3);
+            \path (3) edge[bend left=15] (1);
+            \path (4) edge (1);
+            \path (1) edge (2);
+            \path (3) edge (4);
+            \path (5) edge (3);
+            \path (3) edge (6);
+            \path (6) edge (4);
+            \path (6) edge (5);
+            \path (6) edge (2);
+        \end{tikzpicture}
+    \end{center}
+\end{algo}
+
+\begin{algo}{Tiefensuche}
+    \begin{enumerate}
+        \item Zunächst alle Knoten als \glqq noch nicht besucht\grqq markieren.
+        \item Startpunkt $v$ wählen und als \glqq besucht\grqq markieren.
+        \item Von dort aus möglichst langen Pfad entlang gehen; dabei nur bisher nicht besuchte Knoten \glqq besuchen\grqq
+        \item Wenn dann noch nicht alle Knoten besucht worden sind, wähle einen neuen unbesuchten Startpunkt $v$ und beginne bei Schritt 3
+    \end{enumerate}
+
+    Start bei Knoten 1.
+
+    \begin{center}
+        \begin{tikzpicture}[->]
+            \node[draw, circle, current] (1) {1};
+            \node[draw, circle, below left=of 1] (3) {3};
+            \node[draw, circle, below right=of 1] (4) {4};
+            \node[draw, circle, above right=of 4] (2) {2};
+            \node[draw, circle, below=of 3] (5) {5};
+            \node[draw, circle, below=of 4] (6) {6};
+
+            \path (5) edge[loop below] (5);
+            \path (1) edge[bend left=15] (3);
+            \path (3) edge[bend left=15] (1);
+            \path (4) edge (1);
+            \path (1) edge (2);
+            \path (3) edge (4);
+            \path (5) edge (3);
+            \path (3) edge (6);
+            \path (6) edge (4);
+            \path (6) edge (5);
+            \path (6) edge (2);
+        \end{tikzpicture}
+        %
+        \hspace{5em}
+        %
+        \begin{tikzpicture}[->]
+            \node[draw, circle, visited] (1) {1};
+            \node[draw, circle, below left=of 1] (3) {3};
+            \node[draw, circle, below right=of 1] (4) {4};
+            \node[draw, circle, above right=of 4, current] (2) {2};
+            \node[draw, circle, below=of 3] (5) {5};
+            \node[draw, circle, below=of 4] (6) {6};
+
+            \path (5) edge[loop below] (5);
+            \path (1) edge[bend left=15] (3);
+            \path (3) edge[bend left=15] (1);
+            \path (4) edge (1);
+            \path (1) edge (2);
+            \path (3) edge (4);
+            \path (5) edge (3);
+            \path (3) edge (6);
+            \path (6) edge (4);
+            \path (6) edge (5);
+            \path (6) edge (2);
+        \end{tikzpicture}
+        %
+        %\hspace{5em}
+        %
+        \begin{tikzpicture}[->]
+            \node[draw, circle, visited] (1) {1};
+            \node[draw, circle, below left=of 1, current] (3) {3};
+            \node[draw, circle, below right=of 1] (4) {4};
+            \node[draw, circle, above right=of 4, visited] (2) {2};
+            \node[draw, circle, below=of 3] (5) {5};
+            \node[draw, circle, below=of 4] (6) {6};
+
+            \path (5) edge[loop below] (5);
+            \path (1) edge[bend left=15] (3);
+            \path (3) edge[bend left=15] (1);
+            \path (4) edge (1);
+            \path (1) edge (2);
+            \path (3) edge (4);
+            \path (5) edge (3);
+            \path (3) edge (6);
+            \path (6) edge (4);
+            \path (6) edge (5);
+            \path (6) edge (2);
+        \end{tikzpicture}
+        %
+        \hspace{5em}
+        %
+        \begin{tikzpicture}[->]
+            \node[draw, circle, visited] (1) {1};
+            \node[draw, circle, below left=of 1, visited] (3) {3};
+            \node[draw, circle, below right=of 1, current] (4) {4};
+            \node[draw, circle, above right=of 4, visited] (2) {2};
+            \node[draw, circle, below=of 3] (5) {5};
+            \node[draw, circle, below=of 4] (6) {6};
+
+            \path (5) edge[loop below] (5);
+            \path (1) edge[bend left=15] (3);
+            \path (3) edge[bend left=15] (1);
+            \path (4) edge (1);
+            \path (1) edge (2);
+            \path (3) edge (4);
+            \path (5) edge (3);
+            \path (3) edge (6);
+            \path (6) edge (4);
+            \path (6) edge (5);
+            \path (6) edge (2);
+        \end{tikzpicture}
+        %
+        %\hspace{5em}
+        %
+        \begin{tikzpicture}[->]
+            \node[draw, circle, visited] (1) {1};
+            \node[draw, circle, below left=of 1, visited] (3) {3};
+            \node[draw, circle, below right=of 1, visited] (4) {4};
+            \node[draw, circle, above right=of 4, visited] (2) {2};
+            \node[draw, circle, below=of 3] (5) {5};
+            \node[draw, circle, below=of 4, current] (6) {6};
+
+            \path (5) edge[loop below] (5);
+            \path (1) edge[bend left=15] (3);
+            \path (3) edge[bend left=15] (1);
+            \path (4) edge (1);
+            \path (1) edge (2);
+            \path (3) edge (4);
+            \path (5) edge (3);
+            \path (3) edge (6);
+            \path (6) edge (4);
+            \path (6) edge (5);
+            \path (6) edge (2);
+        \end{tikzpicture}
+        %
+        \hspace{5em}
+        %
+        \begin{tikzpicture}[->]
+            \node[draw, circle, visited] (1) {1};
+            \node[draw, circle, below left=of 1, visited] (3) {3};
+            \node[draw, circle, below right=of 1, visited] (4) {4};
+            \node[draw, circle, above right=of 4, visited] (2) {2};
+            \node[draw, circle, below=of 3, current] (5) {5};
+            \node[draw, circle, below=of 4, visited] (6) {6};
+
+            \path (5) edge[loop below] (5);
+            \path (1) edge[bend left=15] (3);
+            \path (3) edge[bend left=15] (1);
+            \path (4) edge (1);
+            \path (1) edge (2);
+            \path (3) edge (4);
+            \path (5) edge (3);
+            \path (3) edge (6);
+            \path (6) edge (4);
+            \path (6) edge (5);
+            \path (6) edge (2);
+        \end{tikzpicture}
+        %
+        %\hspace{5em}
+        %
+        \begin{tikzpicture}[->]
+            \node[draw, circle, visited] (1) {1};
+            \node[draw, circle, below left=of 1, visited] (3) {3};
+            \node[draw, circle, below right=of 1, visited] (4) {4};
+            \node[draw, circle, above right=of 4, visited] (2) {2};
+            \node[draw, circle, below=of 3, visited] (5) {5};
+            \node[draw, circle, below=of 4, visited] (6) {6};
+
+            \path (5) edge[loop below] (5);
+            \path (1) edge[bend left=15] (3);
+            \path (3) edge[bend left=15] (1);
+            \path (4) edge (1);
+            \path (1) edge (2);
+            \path (3) edge (4);
+            \path (5) edge (3);
+            \path (3) edge (6);
+            \path (6) edge (4);
+            \path (6) edge (5);
+            \path (6) edge (2);
+        \end{tikzpicture}
+    \end{center}
+\end{algo}
+
+\begin{defi}{Level-Order-Baumdurchlauf}
+    Führt man eine Breitensuche bei Bäumen aus, stellt man fest:
+    \begin{itemize}
+        \item Es ist nicht nötig, die Knoten zu markieren.
+        \item Der Baum wird Ebene für Ebene durchlaufen,
+    \end{itemize}
+
+    Diesen Durchlauf nennt man \emph{Level-Order-Durchlauf}.
+\end{defi}
+
+\begin{defi}{Pre-Order-Baumdurchlauf}
+    Führt man eine Tiefensuche bei Bäumen aus, nennt man diesen Durchlauf \emph{Pre-Order-Durchlauf}.
+
+    Dabei wird stets der linke Teilbaum zuerst durchlaufen.
+\end{defi}
+
+\begin{defi}{Post-Order-Baumdurchlauf}
+    \begin{enumerate}
+        \item Durchlaufe linken Teilbaum
+        \item Durchlaufe rechten Teilbaum
+        \item Betrachte die Wurzel
+    \end{enumerate}
+\end{defi}
+
+\begin{defi}{In-Order-Baumdurchlauf}
+    \begin{enumerate}
+        \item Durchlaufe linken Teilbaum
+        \item Betrachte die Wurzel
+        \item Durchlaufe rechten Teilbaum
+    \end{enumerate}
+\end{defi}
+
+\begin{example}{Baumdurchläufe}
+    \begin{center}
+        \begin{forest}
+            baseline,anchor=north,
+            for tree={circle, draw,
+                    minimum size=2em, % <-- added
+                    inner sep=1pt}
+                [
+                    45
+                        [
+                            36
+                                [
+                                    25
+                                        [
+                                            2
+                                        ]
+                                        [
+                                            3
+                                        ]
+                                ]
+                                [
+                                    26
+                                        [
+                                            19
+                                        ]
+                                        [, draw=none, edge={draw=none}]
+                                ]
+                        ]
+                        [
+                            17
+                                [
+                                    7
+                                ]
+                                [
+                                    1
+                                ]
+                        ]
+                ]
+        \end{forest}
+    \end{center}
+
+    Für den gegebenen Baum gelten folgende Baumdurchläufe:
+
+    \centering
+    \begin{tabular}{|l|cccccccccc|}
+        \hline
+        Pre-Order   & 45 & 36 & 25 & 2  & 3  & 26 & 19 & 17 & 7  & 1  \\
+        \hline
+        In-Order    & 2  & 25 & 3  & 19 & 26 & 36 & 45 & 7  & 17 & 1  \\
+        \hline
+        Post-Order  & 2  & 3  & 25 & 19 & 26 & 36 & 7  & 1  & 17 & 45 \\
+        \hline
+        Level-Order & 45 & 36 & 17 & 25 & 26 & 7  & 1  & 2  & 3  & 19 \\
+        \hline
+    \end{tabular}
+\end{example}
+
+
+\subsection{Entwurfsprinzipien}
+
+\begin{defi}{Traveling-Salesman-Problem}
+    Das \emph{Traveling-Salesman-Problem} ist ein Optimierungsproblem.
+    Die Aufgabe besteht darin, eine Reihenfolge für den Besuch mehrerer Orte so zu wählen, dass:
+    \begin{itemize}
+        \item kein Ort doppelt besucht wird und
+        \item die Reisestrecke minimal ist.
+    \end{itemize}
+\end{defi}
+
+\begin{defi}{Greedy}
+    Wähle immer den Schritt, desse unmittelbarer Folgezustand das beste Ergebnis liefert.
+    Denke nicht an die weiteren Schritte (greedy = gierig).
+
+    Ob ein Greedy-Algorithmus die optimale Lösung liefert oder nicht, ist vom konkreten Problem abhängig.
+
+    Für das Traveling-Salesman-Problem ist eine Greedy-Lösung z.B. die \emph{Nearest-Neighbour-Lösung}:
+    \begin{itemize}
+        \item Gehe in jedem Schritt zur nächstliegenden Stadt, die noch nicht besucht ist.
+        \item $\bigo(n^2)$
+        \item liefert nicht die optimale Lösung (kann sogar beliebig schlecht werden)
+        \item arbeitet meistens einigermaßen gut
+    \end{itemize}
+\end{defi}
+
+\begin{bonus}{Random Insertion}
+    Wähle immer einen zufälligen Knoten.
+
+    \begin{itemize}
+        \item $\bigo(n^2)$
+        \item keine Garantie, dass die Lösung irgendeinem Gütekriterium genügt
+        \item im Allgmeinen ist Lösung ziemlich gut
+        \item Vorteil: Durch den Zufallsfaktor kann man das Verfahren beliebig oft wiederholen und sich die beste Lösung heraussuchen.
+    \end{itemize}
+\end{bonus}
+
+\begin{bonus}{Lösung mit minimalem Spannbaum}
+    \begin{enumerate}
+        \item Konstruktion eines minimalen Spannbaums nach Prim
+        \item Durchlaufen mit Tiefensuche
+        \item jede Kante wird zweimal durchlaufen
+        \item summierte Gewichte des minimalen Spannbaums müssen kleiner sein als das optimale TSP-Ergebnis
+        \item Optimierung:
+              \begin{itemize}
+                  \item Knoten schon einmal besucht: beim nächsten Mal überspringen
+                  \item bei einem Schritt mehrere Möglichkeiten: zuerst kürzeren Weg wählen (greedy)
+              \end{itemize}
+    \end{enumerate}
+\end{bonus}
+
+\begin{defi}{Backtracking}
+    Durchlauf eines Lösungsbaum in Pre-Order-Reihenfolge.
+
+    Situation: Mehrere Alternativen sind in bestimmten Schritten des Algorithmus möglich.
+
+    Lösung mit \emph{Backtracking}:
+    \begin{enumerate}
+        \item Wähle eine Alternative und verfolge dieses Weg weiter.
+        \item Falls man so eine Lösung des Problems findet, ist man fertig.
+        \item Ansonsten gehe einen Schritt zurück und verfolge rekursiv eine andere (nicht versuchte) Alternative in diesem Schritt.
+        \item Falls alle Alternativen erfolglos probiert wurden, einen Schritt zurückgehen $\ldots$
+    \end{enumerate}
+
+    Backtracking-Algorithmen können exponentiellen Aufwand haben.
+
+    Tipps:
+    \begin{itemize}
+        \item Durch Einführung von Zusatzbedingungen möglichst viele Sackgassen ausschließen.
+        \item Symmetriebedingungen ausnutzen.
+    \end{itemize}
+\end{defi}
+
+\begin{defi}{Branch and Bound}
+    \begin{enumerate}
+        \item Ermitteln einer oberen Schranke (greedy)
+        \item Falls dieser Wert überschritten wird, kann man die Suche auf diesem Pfad abbrechen.
+        \item Bessere Lösungen nutzen, um die Schranke zu verbessern.
+    \end{enumerate}
+\end{defi}
+
+
+\subsection{Graphalgorithmen}
+
+\begin{defi}{Bipartiter Graph}
+    Ein Graph $G=(V, E)$ heißt \emph{bipartit}, wenn man $V$ in disjunkte Mengen $U$ und $W$ zerlegen kann, so dass alle Kanten zwischen $U$ und $W$ verlaufen.
+
+    Die Knoten eines bipartiten Graphen lassen sich mit zwei Farben so einfärben, dass zwei Nachbarknoten immer unterschiedlich eingefärbt sind.
+\end{defi}
+
+\begin{algo}{Prüfung ob ein Graph bipartit ist}
+    \begin{enumerate}
+        \item Einfärben des 1. Knotens
+        \item Durchlauf mit Breitensuche
+        \item Abwechselndes Färben
+    \end{enumerate}
+
+    Start bei Knoten 1.
+
+    \vspace{1em}
+
+    \begin{center}
+        \begin{tikzpicture}
+            \node[draw, circle, text=white, fill = blue!50] (1) {1};
+            \node[draw, circle, right=of 1] (2) {2};
+            \node[draw, circle, right=of 2] (3) {3};
+            \node[draw, circle, below=of 1] (4) {4};
+            \node[draw, circle, right=of 4] (5) {5};
+            \node[draw, circle, below=of 4] (6) {6};
+            \node[draw, circle, right=of 6] (7) {7};
+
+            \path (1) edge (2);
+            \path (2) edge (3);
+            \path (1) edge (4);
+            \path (4) edge (5);
+            \path (2) edge (5);
+            \path (4) edge (6);
+            \path (6) edge (7);
+            \path (3) edge[bend left=30] (7);
+        \end{tikzpicture}
+        %
+        \hspace{5em}
+        %
+        \begin{tikzpicture}
+            \node[draw, circle, text=white, fill = blue!50] (1) {1};
+            \node[draw, circle, text=white, right=of 1, fill = red!50] (2) {2};
+            \node[draw, circle, right=of 2] (3) {3};
+            \node[draw, circle, text=white, below=of 1, fill = red!50] (4) {4};
+            \node[draw, circle, right=of 4] (5) {5};
+            \node[draw, circle, below=of 4] (6) {6};
+            \node[draw, circle, right=of 6] (7) {7};
+
+            \path (1) edge (2);
+            \path (2) edge (3);
+            \path (1) edge (4);
+            \path (4) edge (5);
+            \path (2) edge (5);
+            \path (4) edge (6);
+            \path (6) edge (7);
+            \path (3) edge[bend left=30] (7);
+        \end{tikzpicture}
+
+        \vspace{1em}
+
+        \begin{tikzpicture}
+            \node[draw, circle, text=white, fill = blue!50] (1) {1};
+            \node[draw, circle, text=white, right=of 1, fill = red!50] (2) {2};
+            \node[draw, circle, text=white, right=of 2, fill = blue!50] (3) {3};
+            \node[draw, circle, text=white, below=of 1, fill = red!50] (4) {4};
+            \node[draw, circle, text=white, right=of 4, fill = blue!50] (5) {5};
+            \node[draw, circle, text=white, below=of 4, fill = blue!50] (6) {6};
+            \node[draw, circle, right=of 6] (7) {7};
+
+            \path (1) edge (2);
+            \path (2) edge (3);
+            \path (1) edge (4);
+            \path (4) edge (5);
+            \path (2) edge (5);
+            \path (4) edge (6);
+            \path (6) edge (7);
+            \path (3) edge[bend left=30] (7);
+        \end{tikzpicture}
+        %
+        \hspace{5em}
+        %
+        \begin{tikzpicture}
+            \node[draw, circle, text=white, fill = blue!50] (1) {1};
+            \node[draw, circle, text=white, right=of 1, fill = red!50] (2) {2};
+            \node[draw, circle, text=white, right=of 2, fill = blue!50] (3) {3};
+            \node[draw, circle, text=white, below=of 1, fill = red!50] (4) {4};
+            \node[draw, circle, text=white, right=of 4, fill = blue!50] (5) {5};
+            \node[draw, circle, text=white, below=of 4, fill = blue!50] (6) {6};
+            \node[draw, circle, text=white, right=of 6, fill = red!50] (7) {7};
+
+            \path (1) edge (2);
+            \path (2) edge (3);
+            \path (1) edge (4);
+            \path (4) edge (5);
+            \path (2) edge (5);
+            \path (4) edge (6);
+            \path (6) edge (7);
+            \path (3) edge[bend left=30] (7);
+        \end{tikzpicture}
+    \end{center}
+\end{algo}
+
+\begin{defi}{Spannbaum}
+    Ein \emph{Spannbaum} verbindet alle Knoten eines ungerichteten Graphen miteinander, hat jedoch keine Kreise.
+
+    Der \emph{minimale Spannbaum} ist der Spannbaum, dessen Kanten das kleinste summierte Gewicht haben.
+\end{defi}
+
+\begin{algo}{Prim-Algorithmus}
+    \begin{enumerate}
+        \item Wähle einen beliebigen Startknoten für den minimalen Spannbaum $T$
+        \item Solange $T$ noch nicht alle Knoten enthält:
+              \begin{itemize}
+                  \item Wähle eine Kante $e$ mit minimalem Gewicht aus, die einen noch nicht in $T$ enthaltenen Knoten $v$ mit $T$ verbindet.
+                  \item Füge $e$ und $v$ dem Graphen $T$ hinzu.
+              \end{itemize}
+    \end{enumerate}
+
+    Start bei Knoten $A$.
+
+    \vspace{1em}
+    \begin{center}
+        \begin{tikzpicture}
+            \node[draw, circle, prim node] (A) {$A$};
+            \node[draw, circle, below right=of A] (B) {$B$};
+            \node[draw, circle, above right=of B] (C) {$C$};
+            \node[draw, circle, below left=of B] (D) {$D$};
+            \node[draw, circle, below right=of B] (E) {$E$};
+            \node[draw, circle, below=of D] (F) {$F$};
+            \node[draw, circle, below=of E] (G) {$G$};
+
+            \path (A) edge node[weight,above right] {7} (B);
+            \path (B) edge node[weight,above left] {8} (C);
+            \path (D) edge node[weight,right] {5} (A);
+            \path (D) edge node[weight,above left] {9} (B);
+            \path (E) edge node[weight,above right] {7} (B);
+            \path (C) edge node[weight,right] {5} (E);
+            \path (D) edge node[weight,above] {15} (E);
+            \path (D) edge node[weight,right] {6} (F);
+            \path (E) edge node[weight,above left] {8} (F);
+            \path (E) edge node[weight,right] {11} (G);
+            \path (F) edge node[weight,above] {9} (G);
+        \end{tikzpicture}
+        %
+        \hspace{3em}
+        %
+        \begin{tikzpicture}
+            \node[draw, circle, prim node] (A) {$A$};
+            \node[draw, circle, below right=of A] (B) {$B$};
+            \node[draw, circle, above right=of B] (C) {$C$};
+            \node[draw, circle, below left=of B, prim node] (D) {$D$};
+            \node[draw, circle, below right=of B] (E) {$E$};
+            \node[draw, circle, below=of D] (F) {$F$};
+            \node[draw, circle, below=of E] (G) {$G$};
+
+            \path (A) edge node[weight,above right] {7} (B);
+            \path (B) edge node[weight,above left] {8} (C);
+            \path (D) edge[prim edge] node[weight,right] {5} (A);
+            \path (D) edge node[weight,above left] {9} (B);
+            \path (E) edge node[weight,above right] {7} (B);
+            \path (C) edge node[weight,right] {5} (E);
+            \path (D) edge node[weight,above] {15} (E);
+            \path (D) edge node[weight,right] {6} (F);
+            \path (E) edge node[weight,above left] {8} (F);
+            \path (E) edge node[weight,right] {11} (G);
+            \path (F) edge node[weight,above] {9} (G);
+        \end{tikzpicture}
+        %
+        \hspace{3em}
+        %
+        \begin{tikzpicture}
+            \node[draw, circle, prim node] (A) {$A$};
+            \node[draw, circle, below right=of A] (B) {$B$};
+            \node[draw, circle, above right=of B] (C) {$C$};
+            \node[draw, circle, below left=of B, prim node] (D) {$D$};
+            \node[draw, circle, below right=of B] (E) {$E$};
+            \node[draw, circle, below=of D, prim node] (F) {$F$};
+            \node[draw, circle, below=of E] (G) {$G$};
+
+            \path (A) edge node[weight,above right] {7} (B);
+            \path (B) edge node[weight,above left] {8} (C);
+            \path (D) edge[prim edge] node[weight,right] {5} (A);
+            \path (D) edge node[weight,above left] {9} (B);
+            \path (E) edge node[weight,above right] {7} (B);
+            \path (C) edge node[weight,right] {5} (E);
+            \path (D) edge node[weight,above] {15} (E);
+            \path (D) edge[prim edge] node[weight,right] {6} (F);
+            \path (E) edge node[weight,above left] {8} (F);
+            \path (E) edge node[weight,right] {11} (G);
+            \path (F) edge node[weight,above] {9} (G);
+        \end{tikzpicture}
+        %
+        \vspace{1em}
+        %
+
+        \begin{tikzpicture}
+            \node[draw, circle, prim node] (A) {$A$};
+            \node[draw, circle, below right=of A, prim node] (B) {$B$};
+            \node[draw, circle, above right=of B] (C) {$C$};
+            \node[draw, circle, below left=of B, prim node] (D) {$D$};
+            \node[draw, circle, below right=of B] (E) {$E$};
+            \node[draw, circle, below=of D, prim node] (F) {$F$};
+            \node[draw, circle, below=of E] (G) {$G$};
+
+            \path (A) edge[prim edge] node[weight,above right] {7} (B);
+            \path (B) edge node[weight,above left] {8} (C);
+            \path (D) edge[prim edge] node[weight,right] {5} (A);
+            \path (D) edge node[weight,above left] {9} (B);
+            \path (E) edge node[weight,above right] {7} (B);
+            \path (C) edge node[weight,right] {5} (E);
+            \path (D) edge node[weight,above] {15} (E);
+            \path (D) edge[prim edge] node[weight,right] {6} (F);
+            \path (E) edge node[weight,above left] {8} (F);
+            \path (E) edge node[weight,right] {11} (G);
+            \path (F) edge node[weight,above] {9} (G);
+        \end{tikzpicture}
+        %
+        \hspace{3em}
+        %
+        \begin{tikzpicture}
+            \node[draw, circle, prim node] (A) {$A$};
+            \node[draw, circle, below right=of A, prim node] (B) {$B$};
+            \node[draw, circle, above right=of B] (C) {$C$};
+            \node[draw, circle, below left=of B, prim node] (D) {$D$};
+            \node[draw, circle, below right=of B, prim node] (E) {$E$};
+            \node[draw, circle, below=of D, prim node] (F) {$F$};
+            \node[draw, circle, below=of E] (G) {$G$};
+
+            \path (A) edge[prim edge] node[weight,above right] {7} (B);
+            \path (B) edge node[weight,above left] {8} (C);
+            \path (D) edge[prim edge] node[weight,right] {5} (A);
+            \path (D) edge node[weight,above left] {9} (B);
+            \path (E) edge[prim edge] node[weight,above right] {7} (B);
+            \path (C) edge node[weight,right] {5} (E);
+            \path (D) edge node[weight,above] {15} (E);
+            \path (D) edge[prim edge] node[weight,right] {6} (F);
+            \path (E) edge node[weight,above left] {8} (F);
+            \path (E) edge node[weight,right] {11} (G);
+            \path (F) edge node[weight,above] {9} (G);
+        \end{tikzpicture}
+        %
+        \hspace{3em}
+        %
+        \begin{tikzpicture}
+            \node[draw, circle, prim node] (A) {$A$};
+            \node[draw, circle, below right=of A, prim node] (B) {$B$};
+            \node[draw, circle, above right=of B, prim node] (C) {$C$};
+            \node[draw, circle, below left=of B, prim node] (D) {$D$};
+            \node[draw, circle, below right=of B, prim node] (E) {$E$};
+            \node[draw, circle, below=of D, prim node] (F) {$F$};
+            \node[draw, circle, below=of E] (G) {$G$};
+
+            \path (A) edge[prim edge] node[weight,above right] {7} (B);
+            \path (B) edge node[weight,above left] {8} (C);
+            \path (D) edge[prim edge] node[weight,right] {5} (A);
+            \path (D) edge node[weight,above left] {9} (B);
+            \path (E) edge[prim edge] node[weight,above right] {7} (B);
+            \path (C) edge[prim edge] node[weight,right] {5} (E);
+            \path (D) edge node[weight,above] {15} (E);
+            \path (D) edge[prim edge] node[weight,right] {6} (F);
+            \path (E) edge node[weight,above left] {8} (F);
+            \path (E) edge node[weight,right] {11} (G);
+            \path (F) edge node[weight,above] {9} (G);
+        \end{tikzpicture}
+        %
+        \vspace{1em}
+        %
+
+        \begin{tikzpicture}
+            \node[draw, circle, prim node] (A) {$A$};
+            \node[draw, circle, below right=of A, prim node] (B) {$B$};
+            \node[draw, circle, above right=of B, prim node] (C) {$C$};
+            \node[draw, circle, below left=of B, prim node] (D) {$D$};
+            \node[draw, circle, below right=of B, prim node] (E) {$E$};
+            \node[draw, circle, below=of D, prim node] (F) {$F$};
+            \node[draw, circle, below=of E, prim node] (G) {$G$};
+
+            \path (A) edge[prim edge] node[weight,above right] {7} (B);
+            \path (B) edge node[weight,above left] {8} (C);
+            \path (D) edge[prim edge] node[weight,right] {5} (A);
+            \path (D) edge node[weight,above left] {9} (B);
+            \path (E) edge[prim edge] node[weight,above right] {7} (B);
+            \path (C) edge[prim edge] node[weight,right] {5} (E);
+            \path (D) edge node[weight,above] {15} (E);
+            \path (D) edge[prim edge] node[weight,right] {6} (F);
+            \path (E) edge node[weight,above left] {8} (F);
+            \path (E) edge node[weight,right] {11} (G);
+            \path (F) edge[prim edge] node[weight,above] {9} (G);
+        \end{tikzpicture}
+    \end{center}
+\end{algo}
+
+\begin{defi}{Shortest-Path-Probleme}
+    Eigentlich: Suche nach \emph{günstigsten Wegen} in gewichteten Graphen: Gewichte $\simeq$ Kosten
+
+    Bei Anwendung auf ungewichtete Graphen ergibt sich: \emph{kürzeste Wege}.
+
+    Beispiele:
+    \begin{itemize}
+        \item Single-Source-Shortest-Path
+              \begin{itemize}
+                  \item Dijkstra-Algorithmus (nicht-negative Kantengewichte)
+                  \item Bellman-Ford-Algorithmus (keine negativen Zykel)
+              \end{itemize}
+        \item All-Pairs-Shortest-Path
+              \begin{itemize}
+                  \item Floyd-Warshall-Algorithmus
+              \end{itemize}
+        \item One-Pair
+              \begin{itemize}
+                  \item A*-Algorithmus
+              \end{itemize}
+    \end{itemize}
+\end{defi}
+
+\begin{algo}{Dijkstra-Algorithmus}
+    Gegeben: Graph $G = (V, E)$, dessen Bewertungsfunktion die Eigenschaften hat:
+    \begin{itemize}
+        \item Jede Kante von $v_i$ nach $v_j$ hat nicht-negative Kosten: $C(i, j) \geq 0$
+        \item Falls keine Kante zwischen $v_i$ und $v_j$: $C(i, j) = \infty$
+        \item Diagonalelemente: $C(i, i) = 0$
+    \end{itemize}
+
+    Menge $S$: die Knoten, deren günstigste Wegekosten von der vorgegebenen Quelle (Startknoten) bereits bekannt sind.
+
+    \begin{enumerate}
+        \item Initialisierung: $S = \{ \text{Startknoten} \}$
+        \item Beginnend mit Quelle alle ausgehenden Kanten betrachten (analog Breitensuche). Nachfolgerknoten $v$ mit günstigster Kante zu $S$ hinzunehmen.
+        \item Jetzt: Berechnen, ob die Knoten in $V \setminus S$ günstiger über $v$ als Zwischenweg erreichbar sind, als ohne Umweg über $v$.
+        \item Danach: Denjenigen Knoten $v'$ zu $S$ hinzunehmen, der nun am günstigsten zu erreichen ist. Bei zwei gleich günstigen Knoten wird ein beliebiger davon ausgewählt.
+        \item Ab Schritt 3 wiederholen, bis alle Knoten in $S$ sind.
+    \end{enumerate}
+
+    Zeitkomplexität (bei Speicherung des Graphen mit Adjazenzmatrix): $\bigo(\abs{V}^2)$
+\end{algo}
+
+\begin{example}{Dijkstra-Algorithmus}
+    \begin{center}
+        \begin{tikzpicture}[->]
+            \node[draw, circle] (A) {$A$};
+            \node[draw, circle, below right=of A] (D) {$D$};
+            \node[draw, circle, right=of D] (E) {$E$};
+            \node[draw, circle, above right=of E] (B) {$B$};
+            \node[draw, circle, below right=of B] (H) {$H$};
+            \node[draw, circle, below left=of H] (G) {$G$};
+            \node[draw, circle, below left=of A] (F) {$F$};
+            \node[draw, circle, below right=of F] (C) {$C$};
+
+            \path (A) edge node[weight, below left] {4} (D);
+            \path (A) edge node[weight, above right] {2} (E);
+            \path (A) edge node[weight, above right] {12} (B);
+            \path (A) edge node[weight, above left] {30} (F);
+            \path (E) edge node[weight, above] {1} (D);
+            \path (E) edge node[weight, below right] {8} (C);
+            \path (E) edge node[weight, above left] {8} (B);
+            \path (C) edge node[weight, above right] {3} (F);
+            \path (C) edge node[weight, above right] {3} (F);
+            \path (C) edge node[weight, above] {12} (G);
+            \path (G) edge node[weight, right] {4} (B);
+            \path (G) edge node[weight, below right] {5} (H);
+            \path (H) edge node[weight, above right] {2} (B);
+        \end{tikzpicture}
+
+        \vspace{1em}
+
+        \begin{tabular}{|c|ccccccc|ccccccc|}
+            \hline
+            \multirow{2}{*}{$v_i$} & $d[2]$      & $d[3]$      & $d[4]$     & $d[5]$     & $d[6]$      & $d[7]$      & $d[8]$      & $p[2]$ & $p[3]$ & $p[4]$ & $p[5]$ & $p[6]$ & $p[7]$ & $p[8]$ \\ \cline{2-15}
+                                   & B           & C           & D          & E          & F           & G           & H           & B      & C      & D      & E      & F      & G      & H      \\
+            \hline
+            A                      & 12          &             & 4          & \textbf{2} & 30          &             &             & A      &        & A      & A      & A      &        &        \\
+            E                      & 10          & 10          & \textbf{3} & \textbf{2} & 30          &             &             & E      & E      & E      & A      & A      &        &        \\
+            D                      & \textbf{10} & 10          & \textbf{3} & \textbf{2} & 30          &             &             & E      & E      & E      & A      & A      &        &        \\
+            B                      & \textbf{10} & \textbf{10} & \textbf{3} & \textbf{2} & 30          &             &             & E      & E      & E      & A      & A      &        &        \\
+            C                      & \textbf{10} & \textbf{10} & \textbf{3} & \textbf{2} & \textbf{13} & 22          &             & E      & E      & E      & A      & C      & C      &        \\
+            F                      & \textbf{10} & \textbf{10} & \textbf{3} & \textbf{2} & \textbf{13} & \textbf{22} &             & E      & E      & E      & A      & C      & C      &        \\
+            G                      & \textbf{10} & \textbf{10} & \textbf{3} & \textbf{2} & \textbf{13} & \textbf{22} & \textbf{27} & E      & E      & E      & A      & C      & C      & G      \\
+            H                      & \textbf{10} & \textbf{10} & \textbf{3} & \textbf{2} & \textbf{13} & \textbf{22} & \textbf{27} & E      & E      & E      & A      & C      & C      & G      \\
+            \hline
+        \end{tabular}
+    \end{center}
+
+    \vspace{1em}
+
+    \url{https://youtu.be/4pBP2hbnGso} (Herleitung und Erklärung)
+\end{example}
+
+\begin{algo}{Bellman-Ford-Algorithmus}
+    Gegeben: Graph $G = (V, E)$, dessen Bewertungsfunktion die Eigenschaften hat:
+    \begin{itemize}
+        \item Falls keine Kante zwischen $v_i$ und $v_j$: $C(i, j) = \infty$
+        \item Diagonalelemente: $C(i, i) = 0$
+    \end{itemize}
+
+    \begin{enumerate}
+        \item Initialisierung: Startknoten $s$, Distanz zu $V \setminus \{s\}$ auf $\infty$ setzen
+        \item Für jede Kante $(i, j)$:
+              \begin{itemize}
+                  \item Falls Distanz zu $v_i$ bekannt:
+                        \subitem Falls $d(v_i) + C(i, j) < d(v_j)$, setze $d(v_j)$ auf $d(v_i) + C(i, j)$
+              \end{itemize}
+    \end{enumerate}
+
+    Zeitkomplexität: $\bigo(\abs{V} \cdot \abs{E})$
+\end{algo}
+
+\begin{example}{Bellman-Ford-Algorithmus}
+    \begin{center}
+        \begin{tikzpicture}[->,baseline,anchor=north]
+            \node[draw, circle] (S) {$S$};
+            \node[draw, circle, above right=of S] (A) {$A$};
+            \node[draw, circle, right=of A] (B) {$B$};
+            \node[draw, circle, below right=of S] (C) {$C$};
+            \node[draw, circle, right=of C] (D) {$D$};
+
+            \path (S) edge node[weight, above left] {2} (A);
+            \path (S) edge node[weight, below left] {5} (C);
+            \path (A) edge node[weight, above] {4} (B);
+            \path (C) edge node[weight, above] {2} (D);
+            \path (C) edge node[weight, left] {-4} (A);
+            \path (D) edge node[weight, right] {8} (B);
+            \path (B) edge[bend left=10] node[weight, below right] {1} (C);
+            \path (C) edge[bend left=10] node[weight, above left] {6} (B);
+        \end{tikzpicture}
+        %
+        \hspace{5em}
+        %
+        \begin{tabular}{|c||c|c|c|c|c|}
+            \hline
+              & S & A        & B        & C        & D        \\
+            \hline
+            0 & 0 & $\infty$ & $\infty$ & $\infty$ & $\infty$ \\
+            1 & 0 & 2        & $\infty$ & 5        & $\infty$ \\
+            2 & 0 & 1        & 6        & 5        & 7        \\
+            3 & 0 & 1        & 5        & 5        & 7        \\
+            4 & 0 & 1        & 5        & 5        & 7        \\
+            \hline
+        \end{tabular}
+
+        Keine Änderungen nach Schritt 3 $\implies$ Fertig!
+    \end{center}
+\end{example}
+
+\begin{algo}{Floyd-Algorithmus}
+    Gegeben: Graph $G = (V, E)$, dessen Bewertungsfunktion die Eigenschaften hat:
+    \begin{itemize}
+        \item Jede Kante von $v_i$ nach $v_j$ hat nicht-negative Kosten: $C(i, j) \geq 0$
+        \item Falls keine Kante zwischen $v_i$ und $v_j$: $C(i, j) = \infty$
+        \item Diagonalelemente: $C(i, i) = 0$
+    \end{itemize}
+
+    Im Kontrast zum Dijkstra-Algorithmus bestimmt der \emph{Floyd-Algorithmus} für alle geordneten Paare $(v, w)$ den kürzesten Weg von $v$ nach $w$.
+
+    $\abs{V}$ Iterationen:
+    \begin{enumerate}
+        \item Vergleiche Kosten von
+              \begin{itemize}
+                  \item direkter Verbindung von Knoten $i$ zu Knoten $j$
+                  \item Umweg über Knoten $1$ (also: von $i$ nach $1$ + von $1$ nach $j$)
+                  \item Falls Umweg günstiger: alten Weg durch Umweg ersetzen
+              \end{itemize}
+        \item Umwege über Knoten $2$ betrachten.
+        \item[$k$.] Umwege über Knoten $k$ betrachten.
+    \end{enumerate}
+
+    Der Floyd-Algorithmus nutzt eine $\abs{V} \times \abs{V}$-Matrix, um die Kosten der günstigsten Wege zu speichern:
+    \begin{center}
+        $A_k[i][j] :=$ minimale Kosten, um in Schritt $k$ über irgendwelche der Knoten in $V$ vom Knoten $i$ zum Knoten $j$ zu gelangen
+    \end{center}
+
+    \begin{itemize}
+        \item Initialisierung: $A_0[i][j]= C(i, j)$
+        \item $\abs{V}$ Iterationen mit \glqq dynamischer Programmierung\grqq:
+              \subitem Iterationsformel zur Aktualisierung von $A[i][j]$:
+              $$
+                  A_k[i][j] = \min \{ A_{k-1}[i][j] , A_{k-1}[i][k] + A_{k-1}[k][j] \}
+              $$
+    \end{itemize}
+
+    Der Floyd-Algorithmus ist ein wichtiges Beispiel für dynamische Programmierung.
+\end{algo}
+
+\begin{code}{Floyd-Algorithmus}
+    \lstinputlisting{floyd.java}
+\end{code}
+
+\begin{example}{Floyd-Algorithmus}
+    \newcolumntype{g}{>{\columncolor{gray!25}}c}
+
+    $A_0$ (direkter Weg):
+    \begin{center}
+        \begin{tikzpicture}[baseline,anchor=north]
+            \node[draw, circle] (1) {$1$};
+            \node[draw, circle, right=of 1] (2) {$2$};
+            \node[draw, circle, below=of 1] (3) {$3$};
+            \node[draw, circle, right=of 3] (4) {$4$};
+
+            \path (1) edge node[weight, above] {2} (2);
+            \path (1) edge node[weight, left] {3} (3);
+            \path (3) edge node[weight, below] {7} (4);
+            \path (2) edge node[weight, right] {1} (4);
+        \end{tikzpicture}
+        %
+        \hspace{5em}
+        %
+        \begin{tabular}[t]{|c|cccc|}
+            \hline
+              & 1                   & 2                   & 3                   & 4                   \\
+            \hline
+            1 & \textcolor{gray}{0} & 2                   & 3                   & $\infty$            \\
+            2 & 2                   & \textcolor{gray}{0} & $\infty$            & 1                   \\
+            3 & 3                   & $\infty$            & \textcolor{gray}{0} & 7                   \\
+            4 & $\infty$            & 1                   & 7                   & \textcolor{gray}{0} \\
+            \hline
+        \end{tabular}
+        %
+        \hspace{5em}
+        %
+        \begin{tabular}[t]{|c|cccc|}
+            \hline
+              & 1                   & 2                   & 3                   & 4 \\
+            \hline
+            1 & \textcolor{gray}{-} & -                   & -                   & - \\
+            2 & -                   & \textcolor{gray}{-} & -                   & - \\
+            3 & -                   & -                   & \textcolor{gray}{-} & - \\
+            4 & -                   & -                   & -                   & - \\
+            \hline
+        \end{tabular}
+    \end{center}
+
+    $A_1$ (Umweg über 1):
+    \begin{center}
+        \begin{tikzpicture}[baseline,anchor=north]
+            \node[draw, circle] (1) {$1$};
+            \node[draw, circle, right=of 1] (2) {$2$};
+            \node[draw, circle, below=of 1] (3) {$3$};
+            \node[draw, circle, right=of 3] (4) {$4$};
+
+            \path (1) edge node[weight, above] {2} (2);
+            \path (1) edge node[weight, left] {3} (3);
+            \path (3) edge node[weight, below] {7} (4);
+            \path (2) edge node[weight, right] {1} (4);
+            %\path (1) edge[blue, bend left=45] node[weight, above, blue] {2} (2);
+            %\path (1) edge[blue, bend right=45] node[weight, left, blue] {3} (3);
+            \path (2) edge[dashed, red, bend right] node[weight, above left, pos=1] {5} (1.north west);
+            \path (1.north west) edge[dashed, red, bend right] (3);
+        \end{tikzpicture}
+        %
+        \hspace{5em}
+        %
+        \begin{tabular}[t]{|c|gccc|}
+            \hline
+              & 1                   & 2                   & 3                   & 4                   \\
+            \hline
+            \rowcolor{gray!25}
+            1 & \textcolor{gray}{0} & 2                   & 3                   & $\infty$            \\
+            2 & 2                   & \textcolor{gray}{0} & \textcolor{red}{5}  & 1                   \\
+            3 & 3                   & \textcolor{red}{5}  & \textcolor{gray}{0} & 7                   \\
+            4 & $\infty$            & 1                   & 7                   & \textcolor{gray}{0} \\
+            \hline
+        \end{tabular}
+        %
+        \hspace{5em}
+        %
+        \begin{tabular}[t]{|c|cccc|}
+            \hline
+              & 1                   & 2                   & 3                   & 4 \\
+            \hline
+            1 & \textcolor{gray}{-} & -                   & -                   & - \\
+            2 & -                   & \textcolor{gray}{-} & 1                   & - \\
+            3 & -                   & 1                   & \textcolor{gray}{-} & - \\
+            4 & -                   & -                   & -                   & - \\
+            \hline
+        \end{tabular}
+    \end{center}
+
+    $$A_0[2][3] > A_0[3][1] + A_0[1][2] \implies A_1[2][3] = A_0[3][1] + A_0[1][2] = 3 + 2 = 5$$
+    $$A_0[3][2] > A_0[2][1] + A_0[1][3] \implies A_1[3][2] = A_0[2][1] + A_0[1][3] = 2 + 3 = 5$$
+
+
+    $A_2$ (Umweg über 2):
+    \begin{center}
+        \begin{tikzpicture}[baseline,anchor=north]
+            \node[draw, circle] (1) {$1$};
+            \node[draw, circle, right=of 1] (2) {$2$};
+            \node[draw, circle, below=of 1] (3) {$3$};
+            \node[draw, circle, right=of 3] (4) {$4$};
+
+            \path (1) edge node[weight, above] {2} (2);
+            \path (1) edge node[weight, left] {3} (3);
+            \path (3) edge node[weight, below] {7} (4);
+            \path (2) edge node[weight, right] {1} (4);
+
+            % old edge 2-1-3
+            \path (2) edge[dashed, blue, bend right] node[weight, above left, pos=1] {5} (1.north west);
+            \path (1.north west) edge[dashed, blue, bend right] (3);
+            % new edge 1-2-4
+            \path (1) edge[dashed, red, bend left] node[weight, above right, pos=1] {3} (2.north east);
+            \path (2.north east) edge[dashed, red, bend left] (4);
+            % old edge 3-2-4
+            \path (3) edge[dashed, red, bend left] node[weight, below right, pos=0.5] {6} (2.south west);
+            \path (2.south west) edge[dashed, red, bend right] (4);
+        \end{tikzpicture}
+        %
+        \hspace{5em}
+        %
+        \begin{tabular}[t]{|c|cgcc|}
+            \hline
+              & 1                   & 2                   & 3                   & 4                   \\
+            \hline
+            1 & \textcolor{gray}{0} & 2                   & 3                   & \textcolor{red}{3}  \\
+            \rowcolor{gray!25}
+            2 & 2                   & \textcolor{gray}{0} & 5                   & 1                   \\
+            3 & 3                   & 5                   & \textcolor{gray}{0} & \textcolor{red}{6}  \\
+            4 & \textcolor{red}{3}  & 1                   & \textcolor{red}{6}  & \textcolor{gray}{0} \\
+            \hline
+        \end{tabular}
+        %
+        \hspace{5em}
+        %
+        \begin{tabular}[t]{|c|cccc|}
+            \hline
+              & 1                   & 2                   & 3                   & 4 \\
+            \hline
+            1 & \textcolor{gray}{-} & -                   & -                   & 2 \\
+            2 & -                   & \textcolor{gray}{-} & 1                   & - \\
+            3 & -                   & 1                   & \textcolor{gray}{-} & 2 \\
+            4 & 2                   & -                   & 2                   & - \\
+            \hline
+        \end{tabular}
+    \end{center}
+
+    $$A_1[1][4] > A_1[1][2] + A_1[2][4] \implies A_2[2][3] = A_1[1][2] + A_1[2][4] = 2 + 1 = 3$$
+    $$A_1[4][1] > A_1[4][2] + A_1[2][1] \implies A_2[3][2] = A_1[4][2] + A_1[2][1] = 1 + 2 = 3$$
+    $$A_1[3][4] > A_1[3][2] + A_1[2][4] \implies A_2[3][4] = A_1[3][2] + A_1[2][4] = 5 + 1 = 6$$
+    $$A_1[4][3] > A_1[4][2] + A_1[2][3] \implies A_2[4][3] = A_1[4][2] + A_1[2][3] = 1 + 5 = 6$$
+
+    $A_3$ (Umweg über 3):
+    \begin{center}
+        \begin{tikzpicture}[baseline,anchor=north]
+            \node[draw, circle] (1) {$1$};
+            \node[draw, circle, right=of 1] (2) {$2$};
+            \node[draw, circle, below=of 1] (3) {$3$};
+            \node[draw, circle, right=of 3] (4) {$4$};
+
+            \path (1) edge node[weight, above] {2} (2);
+            \path (1) edge node[weight, left] {3} (3);
+            \path (3) edge node[weight, below] {7} (4);
+            \path (2) edge node[weight, right] {1} (4);
+
+            % old edge 2-1-3
+            \path (2) edge[dashed, blue, bend right] node[weight, above left, pos=1] {5} (1.north west);
+            \path (1.north west) edge[dashed, blue, bend right] (3);
+            % old edge 1-2-4
+            \path (1) edge[dashed, blue, bend left] node[weight, above right, pos=1] {3} (2.north east);
+            \path (2.north east) edge[dashed, blue, bend left] (4);
+            % old edge 3-2-4
+            \path (3) edge[dashed, blue, bend left] node[weight, below right, pos=0.5] {6} (2.south west);
+            \path (2.south west) edge[dashed, blue, bend right] (4);
+        \end{tikzpicture}
+        %
+        \hspace{5em}
+        %
+        \begin{tabular}[t]{|c|ccgc|}
+            \hline
+              & 1                   & 2                   & 3                   & 4                   \\
+            \hline
+            1 & \textcolor{gray}{0} & 2                   & 3                   & 3                   \\
+            2 & 2                   & \textcolor{gray}{0} & 5                   & 1                   \\
+            \rowcolor{gray!25}
+            3 & 3                   & 5                   & \textcolor{gray}{0} & 6                   \\
+            4 & 3                   & 1                   & 6                   & \textcolor{gray}{0} \\
+            \hline
+        \end{tabular}
+        %
+        \hspace{5em}
+        %
+        \begin{tabular}[t]{|c|cccc|}
+            \hline
+              & 1                   & 2                   & 3                   & 4 \\
+            \hline
+            1 & \textcolor{gray}{-} & -                   & -                   & 2 \\
+            2 & -                   & \textcolor{gray}{-} & 1                   & - \\
+            3 & -                   & 1                   & \textcolor{gray}{-} & 2 \\
+            4 & 2                   & -                   & 2                   & - \\
+            \hline
+        \end{tabular}
+    \end{center}
+
+    $A_4$ (Umweg über 4):
+    \begin{center}
+        \begin{tikzpicture}[baseline,anchor=north]
+            \node[draw, circle] (1) {$1$};
+            \node[draw, circle, right=of 1] (2) {$2$};
+            \node[draw, circle, below=of 1] (3) {$3$};
+            \node[draw, circle, right=of 3] (4) {$4$};
+
+            \path (1) edge node[weight, above] {2} (2);
+            \path (1) edge node[weight, left] {3} (3);
+            \path (3) edge node[weight, below] {7} (4);
+            \path (2) edge node[weight, right] {1} (4);
+
+            % old edge 2-1-3
+            \path (2) edge[dashed, blue, bend right] node[weight, above left, pos=1] {5} (1.north west);
+            \path (1.north west) edge[dashed, blue, bend right] (3);
+            % old edge 1-2-4
+            \path (1) edge[dashed, blue, bend left] node[weight, above right, pos=1] {3} (2.north east);
+            \path (2.north east) edge[dashed, blue, bend left] (4);
+            % old edge 3-2-4
+            \path (3) edge[dashed, blue, bend left] node[weight, below right, pos=0.5] {6} (2.south west);
+            \path (2.south west) edge[dashed, blue, bend right] (4);
+        \end{tikzpicture}
+        %
+        \hspace{5em}
+        %
+        \begin{tabular}[t]{|c|cccg|}
+            \hline
+              & 1                   & 2                   & 3                   & 4                   \\
+            \hline
+            1 & \textcolor{gray}{0} & 2                   & 3                   & 3                   \\
+            2 & 2                   & \textcolor{gray}{0} & 5                   & 1                   \\
+            3 & 3                   & 5                   & \textcolor{gray}{0} & 6                   \\
+            \rowcolor{gray!25}
+            4 & 3                   & 1                   & 6                   & \textcolor{gray}{0} \\
+            \hline
+        \end{tabular}
+        %
+        \hspace{5em}
+        %
+        \begin{tabular}[t]{|c|cccc|}
+            \hline
+              & 1                   & 2                   & 3                   & 4 \\
+            \hline
+            1 & \textcolor{gray}{-} & -                   & -                   & 2 \\
+            2 & -                   & \textcolor{gray}{-} & 1                   & - \\
+            3 & -                   & 1                   & \textcolor{gray}{-} & 2 \\
+            4 & 2                   & -                   & 2                   & - \\
+            \hline
+        \end{tabular}
+    \end{center}
+\end{example}
+
+\begin{algo}{Warshall-Algorithmus}
+    Gegeben: Graph $G = (V, E)$, egal ob gerichtet oder nicht.
+
+    Aufgabenstellung: Prüfe für alle geordneten Paare $(v_i, v_j)$, ob ein Weg von $v_i$ nach $v_j$ existiert.
+
+    Ziel: Berechne Adjazenzmatrix $A$ zu \emph{transitivem Abschluss} von $G$:
+    \begin{center}
+        $A[i][j] = $ \texttt{true} $\iff$ es existiert ein nicht-trivialer Weg (Länge $>0$) von $v_i$ nach $v_j$
+    \end{center}
+
+    Iterationsformel zur Aktualisierung von $A[i][j]$:
+    $$
+        A_k[i][j] = A_{k-1}[i][j] \lor (A_{k-1}[i][k] \land A_{k-1}[k][j])
+    $$
+
+    Der Algorithmus funktioniert also analog zum Floyd-Algorithmus.
+\end{algo}
+
+\begin{code}{Warshall-Algorithmus}
+    \lstinputlisting{warshall.java}
+\end{code}
\ No newline at end of file
diff --git a/algo/grundbegriffe.tex b/algo/grundbegriffe.tex
index d54ea78..6f1ce69 100644
--- a/algo/grundbegriffe.tex
+++ b/algo/grundbegriffe.tex
@@ -1,101 +1,101 @@
-\section{Grundbegriffe}
-\begin{defi}{Eigenschaften eines Algorithmus}
-    \begin{itemize}
-        \item \emph{Terminierung:} Der Algorithmus bricht nach \emph{endlichen vielen} Schritten ab.
-        \item \emph{Determiniertheit:} Bei vorgegebener Eingabe wird ein eindeutiges \emph{Ergebnis} geliefert.
-        \item \emph{Determinismus:} Eindeutige Vorgabe der \emph{Abfolge} der auszuführenden Schritte
-    \end{itemize}
-\end{defi}
-
-\begin{defi}{Landau-Notation}
-    Seien $f, g$ reellwertige Funktionen der reellen Zahlen.
-    Dann gilt: \cite{wiki:Landau-Symbole}
-
-    \begin{tabular}{l|l|l}
-        Notation          & Definition       & Mathematische Definition                                                                                                  \\
-        \hline
-        $f \in \bigo(g)$  & obere Schranke   & $\exists C > 0 \exists x_0 > 0 \forall x > x_0 : \abs{f(x)} \leq C \cdot \abs{g(x)}$                                      \\
-        $f \in \Omega(g)$ & untere Schranke  & $\exists c > 0 \exists x_0 > 0 \forall x > x_0 : c\cdot \abs{g(x)} \leq \abs{f(x)}$                                       \\
-        $f \in \Theta(g)$ & scharfe Schranke & $\exists c > 0 \exists C > 0 \exists x_0 > 0 \forall x > x_0 : c\cdot \abs{g(x)} \leq \abs{f(x)} \leq C \cdot \abs{g(x)}$ \\
-    \end{tabular}
-
-    Anschaulicher gilt:
-
-    \begin{tabular}{l|l}
-        Notation          & Anschauliche Bedeutung                        \\
-        \hline
-        $f \in \bigo(g)$  & $f$ wächst nicht wesentlich schneller als $g$ \\
-        $f \in \Omega(g)$ & $f$ wächst nicht wesentlich langsamer als $g$ \\
-        $f \in \Theta(g)$ & $f$ wächst genauso schnell wie $g$
-    \end{tabular}
-\end{defi}
-
-\begin{example}{Landau-Notation}
-    Aus \cite{wiki:Landau-Symbole} :
-
-    \begin{tabular}{l|l}
-        Notation                & Beispiel                                          \\
-        \hline
-        $f \in \bigo(1)$        & Feststellen, ob eine Binärzahl gerade ist         \\
-        $f \in \bigo(\log n)$   & Binäre Suche im sortierten Feld mit $n$ Einträgen \\
-        $f \in \bigo(\sqrt{n})$ & Anzahl der Divisionen des naiven Primzahltests    \\
-        $f \in \bigo(n)$        & Suche im unsortierten Feld mit $n$ Einträgen      \\
-        $f \in \bigo(n\log n)$  & Mergesort, Heapsort                               \\
-        $f \in \bigo(n^2)$      & Selectionsort                                     \\
-        $f \in \bigo(n^m)$      &                                                   \\
-        $f \in \bigo(2^{cn})$   & (Backtracking)                                    \\
-        $f \in \bigo(n!)$       & Traveling Salesman Problem
-    \end{tabular}
-\end{example}
-
-\begin{bonus}{Visualisierung Komplexitätsklassen}
-    \begin{center}
-        \begin{tikzpicture}[scale=1]
-            \begin{axis}[
-                    %view={45}{15},
-                    width=15cm,
-                    unit vector ratio*=1 1,
-                    axis lines = middle,
-                    grid=major,
-                    ymin=0,
-                    ymax=50,
-                    xmin=0,
-                    xmax=50,
-                    %zmin=-1,
-                    %zmax=10,
-                    xlabel = $n$,
-                    ylabel = $N$,
-                    %zlabel = $z$,
-                    %xtick style={draw=none},
-                    %ytick style={draw=none},
-                    %ztick style={draw=none},
-                    xtick distance={5},
-                    ytick distance={5},
-                    %ztick distance={1},
-                    %xticklabels=\empty,
-                    %yticklabels=\empty,
-                    %zticklabels=\empty,
-                    disabledatascaling,
-                    %stack dir=minus,
-                    cycle list name=color list,
-                    samples=250,
-                    solid,
-                    smooth,
-                    line width=1.0pt,
-                    no markers,
-                    legend cell align={left},
-                    reverse legend,
-                ]
-
-                \addplot +[domain=0:50]{0};         \addlegendentry{$\bigo(1)$};
-                \addplot +[domain=0:50]{ln(x)};     \addlegendentry{$\bigo(\log(n))$};
-                \addplot +[domain=0:50]{sqrt(x)};   \addlegendentry{$\bigo(\sqrt{n})$};
-                \addplot +[domain=0:50]{x};         \addlegendentry{$\bigo(n)$};
-                \addplot +[domain=0:50]{x * ln(x)}; \addlegendentry{$\bigo(n \log(n))$};
-                \addplot +[domain=0:50]{x^2};       \addlegendentry{$\bigo(n^2)$};
-                \addplot +[domain=0:10]{2^x};        \addlegendentry{$\bigo(2^n)$};
-                \addplot +[domain=0:5]{facreal(x)}; \addlegendentry{$\bigo(n!)$};
-            \end{axis}
-        \end{tikzpicture}
-    \end{center}
-\end{bonus}
+\section{Grundbegriffe}
+\begin{defi}{Eigenschaften eines Algorithmus}
+    \begin{itemize}
+        \item \emph{Terminierung:} Der Algorithmus bricht nach \emph{endlichen vielen} Schritten ab.
+        \item \emph{Determiniertheit:} Bei vorgegebener Eingabe wird ein eindeutiges \emph{Ergebnis} geliefert.
+        \item \emph{Determinismus:} Eindeutige Vorgabe der \emph{Abfolge} der auszuführenden Schritte
+    \end{itemize}
+\end{defi}
+
+\begin{defi}{Landau-Notation}
+    Seien $f, g$ reellwertige Funktionen der reellen Zahlen.
+    Dann gilt: \cite{wiki:Landau-Symbole}
+
+    \begin{tabular}{l|l|l}
+        Notation          & Definition       & Mathematische Definition                                                                                                  \\
+        \hline
+        $f \in \bigo(g)$  & obere Schranke   & $\exists C > 0 \exists x_0 > 0 \forall x > x_0 : \abs{f(x)} \leq C \cdot \abs{g(x)}$                                      \\
+        $f \in \Omega(g)$ & untere Schranke  & $\exists c > 0 \exists x_0 > 0 \forall x > x_0 : c\cdot \abs{g(x)} \leq \abs{f(x)}$                                       \\
+        $f \in \Theta(g)$ & scharfe Schranke & $\exists c > 0 \exists C > 0 \exists x_0 > 0 \forall x > x_0 : c\cdot \abs{g(x)} \leq \abs{f(x)} \leq C \cdot \abs{g(x)}$ \\
+    \end{tabular}
+
+    Anschaulicher gilt:
+
+    \begin{tabular}{l|l}
+        Notation          & Anschauliche Bedeutung                        \\
+        \hline
+        $f \in \bigo(g)$  & $f$ wächst nicht wesentlich schneller als $g$ \\
+        $f \in \Omega(g)$ & $f$ wächst nicht wesentlich langsamer als $g$ \\
+        $f \in \Theta(g)$ & $f$ wächst genauso schnell wie $g$
+    \end{tabular}
+\end{defi}
+
+\begin{example}{Landau-Notation}
+    Aus \cite{wiki:Landau-Symbole} :
+
+    \begin{tabular}{l|l}
+        Notation                & Beispiel                                          \\
+        \hline
+        $f \in \bigo(1)$        & Feststellen, ob eine Binärzahl gerade ist         \\
+        $f \in \bigo(\log n)$   & Binäre Suche im sortierten Feld mit $n$ Einträgen \\
+        $f \in \bigo(\sqrt{n})$ & Anzahl der Divisionen des naiven Primzahltests    \\
+        $f \in \bigo(n)$        & Suche im unsortierten Feld mit $n$ Einträgen      \\
+        $f \in \bigo(n\log n)$  & Mergesort, Heapsort                               \\
+        $f \in \bigo(n^2)$      & Selectionsort                                     \\
+        $f \in \bigo(n^m)$      &                                                   \\
+        $f \in \bigo(2^{cn})$   & (Backtracking)                                    \\
+        $f \in \bigo(n!)$       & Traveling Salesman Problem
+    \end{tabular}
+\end{example}
+
+\begin{bonus}{Visualisierung Komplexitätsklassen}
+    \begin{center}
+        \begin{tikzpicture}[scale=1]
+            \begin{axis}[
+                    %view={45}{15},
+                    width=15cm,
+                    unit vector ratio*=1 1,
+                    axis lines = middle,
+                    grid=major,
+                    ymin=0,
+                    ymax=50,
+                    xmin=0,
+                    xmax=50,
+                    %zmin=-1,
+                    %zmax=10,
+                    xlabel = $n$,
+                    ylabel = $N$,
+                    %zlabel = $z$,
+                    %xtick style={draw=none},
+                    %ytick style={draw=none},
+                    %ztick style={draw=none},
+                    xtick distance={5},
+                    ytick distance={5},
+                    %ztick distance={1},
+                    %xticklabels=\empty,
+                    %yticklabels=\empty,
+                    %zticklabels=\empty,
+                    disabledatascaling,
+                    %stack dir=minus,
+                    cycle list name=color list,
+                    samples=250,
+                    solid,
+                    smooth,
+                    line width=1.0pt,
+                    no markers,
+                    legend cell align={left},
+                    reverse legend,
+                ]
+
+                \addplot +[domain=0:50]{0};         \addlegendentry{$\bigo(1)$};
+                \addplot +[domain=0:50]{ln(x)};     \addlegendentry{$\bigo(\log(n))$};
+                \addplot +[domain=0:50]{sqrt(x)};   \addlegendentry{$\bigo(\sqrt{n})$};
+                \addplot +[domain=0:50]{x};         \addlegendentry{$\bigo(n)$};
+                \addplot +[domain=0:50]{x * ln(x)}; \addlegendentry{$\bigo(n \log(n))$};
+                \addplot +[domain=0:50]{x^2};       \addlegendentry{$\bigo(n^2)$};
+                \addplot +[domain=0:10]{2^x};        \addlegendentry{$\bigo(2^n)$};
+                \addplot +[domain=0:5]{facreal(x)}; \addlegendentry{$\bigo(n!)$};
+            \end{axis}
+        \end{tikzpicture}
+    \end{center}
+\end{bonus}
diff --git a/algo/insertionsort.java b/algo/insertionsort.java
new file mode 100644
index 0000000..fc3f233
--- /dev/null
+++ b/algo/insertionsort.java
@@ -0,0 +1,18 @@
+public void insertionSort(int[] a) {
+    for (int i = 0; i < a.length; i++) {
+        int m = a[i];
+
+        // fuer alle Elemente links vom aktuellen Element
+        for(int j = i; j > 0; j--) {
+            if (a[j-1] <= m) {
+                break;
+            }
+
+            // groessere Elemente nach hinten schieben 
+            a[j] = a[j-1];
+        }
+
+        // m an freiem Platz einfuegen
+        a[j] = m;
+    }
+}
\ No newline at end of file
diff --git a/algo/selectionsort.java b/algo/selectionsort.java
new file mode 100644
index 0000000..17c40a3
--- /dev/null
+++ b/algo/selectionsort.java
@@ -0,0 +1,11 @@
+public void selectionSort (int[] a) {
+    for(int i = 0; i < a.length; i++) {
+        int small = i;
+        for(int j = i+1; j < a.length; j++) {
+            if(a[small] > a[j]) {
+                small = j;
+            }
+        }
+        swap(a, i, small);
+    }
+}
\ No newline at end of file
diff --git a/algo/simplesort.java b/algo/simplesort.java
new file mode 100644
index 0000000..6b01bdb
--- /dev/null
+++ b/algo/simplesort.java
@@ -0,0 +1,9 @@
+public void simpleSort (int[] a) {
+    for(int i = 0; i < a.length; i++) {
+        for(int j = i+1; j < a.length; j++) {
+            if (a[i] > a[j]) {
+                swap(a, i, j);
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/algo/sortierverfahren.tex b/algo/sortierverfahren.tex
new file mode 100644
index 0000000..8445bc1
--- /dev/null
+++ b/algo/sortierverfahren.tex
@@ -0,0 +1,1454 @@
+\section{Sortierverfahren}
+
+\begin{defi}{Klassifikationskriterien für Sortieralgorithmen}
+    \begin{itemize}
+        \item Effizienz
+              \begin{itemize}
+                  \item Schlechter als $\bigo(n^2)$: nicht ganz ernst gemeinte Verfahren
+                  \item $\bigo(n^2)$: Elementare Sortierverfahren
+                        \begin{itemize}
+                            \item Bubble-Sort
+                            \item Insertion-Sort
+                            \item Selection-Sort
+                        \end{itemize}
+                  \item Zwischen $\bigo(n^2)$ und $\bigo(n \log n)$
+                        \begin{itemize}
+                            \item Shell-Sort
+                        \end{itemize}
+                  \item $\bigo(n \log n)$: Höhere Sortierverfahren
+                        \begin{itemize}
+                            \item Heap-Sort
+                            \item Merge-Sort
+                            \item Quick-Sort
+                        \end{itemize}
+                  \item Besser als $\bigo(n \log n)$: Spezialisierte Sortierverfahren
+                        \begin{itemize}
+                            \item Radix-Sort
+                        \end{itemize}
+              \end{itemize}
+        \item Speicherverbrauch
+        \item Intern vs. Extern
+        \item Stabil vs. Instabil
+        \item allgemein vs. spezialisiert
+    \end{itemize}
+\end{defi}
+
+\begin{bonus}{Beste Sortierverfahren}
+    \begin{itemize}
+        \item normalerweise Quick-Sort
+        \item Merge-Sort, falls:
+              \begin{itemize}
+                  \item die Datenmenge zu groß für den Hauptspeicher ist.
+                  \item die Daten als verkettete Liste vorliegen.
+                  \item ein stabiles Verfahren nötig ist.
+              \end{itemize}
+        \item Insertion-Sort, falls:
+              \begin{itemize}
+                  \item wenige Elemente u sortieren sind.
+                  \item die Daten schon vorsortiert sind.
+              \end{itemize}
+        \item Radix-Sort, falls:
+              \begin{itemize}
+                  \item sich ein hoher Programmieraufwand für ein sehr schnelles Verfahren lohnt.
+              \end{itemize}
+    \end{itemize}
+\end{bonus}
+
+\subsection{Elementare Sortierverfahren}
+
+\begin{algo}{Simple-Sort}
+    Das Suchen und Vertauschen wir bei \emph{Simple-Sort} wie folgt realisiert:
+    \begin{enumerate}
+        \item Gehe vom Element \texttt{i} aus nach rechts
+        \item Jedes Mal, wenn ein kleineres Element als das auf Position \texttt{i} auftaucht, vertausche es mit dem Element \texttt{i}
+        \item Wiederholen bis das Array sortiert ist
+    \end{enumerate}
+
+    Simple-Sort ergibt einen besonders einfachen Code, ist aber langsamer als z.B. Selection-Sort.
+    Dann zu nutzen, wenn:
+    \begin{itemize}
+        \item Sie keine Zeit oder Lust zum Nachdenken haben.
+        \item die Felder so klein sind, dass der Algorithmus nicht effektiv sein muss.
+        \item niemand sonst Ihren Code zu sehen bekommt.
+    \end{itemize}
+\end{algo}
+
+\begin{code}{Simple-Sort}
+    \lstinputlisting{simplesort.java}
+\end{code}
+
+\begin{algo}{Selection-Sort}
+    \emph{Selection-Sort} funktioniert ähnlich wie Simple-Sort:
+    \begin{enumerate}
+        \item Suchen des kleinsten Elements im unsortierten Bereich
+        \item Vertauschen mit Position \texttt{i}
+        \item Wiederholen bis das Array sortiert ist
+    \end{enumerate}
+
+    Selection-Sort ist eines der wichtigeren elementaren Verfahren, ist aber meistens etwas langsamer als Insertion-Sort.
+
+    Selection-Sort ist instabil und bietet keine Vorteile, wenn das Feld schon vorsortiert ist.
+\end{algo}
+
+\begin{code}{Selection-Sort}
+    \lstinputlisting{selectionsort.java}
+\end{code}
+
+\begin{example}{Selection-Sort}
+    \centering
+
+    \begin{tikzpicture}[
+        start chain,
+        node distance = 0em,
+        ArrayBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+        sorted/.style={fill=blue!25},
+        i/.style={fill=teal!25, label=above:\texttt{i}},
+        min/.style={fill=red!25, label=above:\texttt{min}},
+        i min/.style={fill=teal!25, label=above:\texttt{i,min}},
+        ]
+        { start chain = going right
+
+        \node [ArrayBlock, i] (0_3) {$3$};
+        \node [ArrayBlock] (0_8a) {$8_a$};
+        \node [ArrayBlock] (0_8b) {$8_b$};
+        \node [ArrayBlock] (0_6) {$6$};
+        \node [ArrayBlock] (0_4) {$4$};
+        \node [ArrayBlock, min] (0_2) {$2$};
+
+        { [continue chain = going right]
+        \chainin (0_3);
+
+        \node [ArrayBlock, xshift=-2em, yshift=-4em, sorted] (1_2) {$2$};
+        \node [ArrayBlock, i] (1_8a) {$8_a$};
+        \node [ArrayBlock] (1_8b) {$8_b$};
+        \node [ArrayBlock] (1_6) {$6$};
+        \node [ArrayBlock] (1_4) {$4$};
+        \node [ArrayBlock, min] (1_3) {$3$};
+        }
+
+        { [continue chain = going right]
+        \chainin (0_3);
+
+        \node [ArrayBlock, xshift=-2em, yshift=-8em, sorted] (2_2) {$2$};
+        \node [ArrayBlock, sorted] (2_3) {$3$};
+        \node [ArrayBlock, i] (2_8b) {$8_b$};
+        \node [ArrayBlock] (2_6) {$6$};
+        \node [ArrayBlock, min] (2_4) {$4$};
+        \node [ArrayBlock] (2_8a) {$8_a$};
+        }
+
+        { [continue chain = going right]
+        \chainin (0_3);
+
+        \node [ArrayBlock, xshift=-2em, yshift=-12em, sorted] (3_2) {$2$};
+        \node [ArrayBlock, sorted] (3_3) {$3$};
+        \node [ArrayBlock, sorted] (3_4) {$4$};
+        \node [ArrayBlock, i min] (3_6) {$6$};
+        \node [ArrayBlock] (3_8b) {$8_b$};
+        \node [ArrayBlock] (3_8a) {$8_a$};
+        }
+
+        { [continue chain = going right]
+        \chainin (0_3);
+
+        \node [ArrayBlock, xshift=-2em, yshift=-16em, sorted] (4_2) {$2$};
+        \node [ArrayBlock, sorted] (4_3) {$3$};
+        \node [ArrayBlock, sorted] (4_4) {$4$};
+        \node [ArrayBlock, sorted] (4_6) {$6$};
+        \node [ArrayBlock, i min] (4_8b) {$8_b$};
+        \node [ArrayBlock] (4_8a) {$8_a$};
+        }
+
+        { [continue chain = going right]
+        \chainin (0_3);
+
+        \node [ArrayBlock, xshift=-2em, yshift=-20em, sorted] (5_2) {$2$};
+        \node [ArrayBlock, sorted] (5_3) {$3$};
+        \node [ArrayBlock, sorted] (5_4) {$4$};
+        \node [ArrayBlock, sorted] (5_6) {$6$};
+        \node [ArrayBlock, sorted] (5_8b) {$8_b$};
+        \node [ArrayBlock, i min] (5_8a) {$8_a$};
+        }
+
+        { [continue chain = going right]
+        \chainin (0_3);
+
+        \node [ArrayBlock, xshift=-2em, yshift=-24em, sorted] (6_2) {$2$};
+        \node [ArrayBlock, sorted] (6_3) {$3$};
+        \node [ArrayBlock, sorted] (6_4) {$4$};
+        \node [ArrayBlock, sorted] (6_6) {$6$};
+        \node [ArrayBlock, sorted] (6_8b) {$8_b$};
+        \node [ArrayBlock, sorted] (6_8a) {$8_a$};
+        }
+        }
+
+        \draw[<->] (0_3) -- ++(0,-1.5em) -| (0_2);
+        \draw[<->] (1_3) -- ++(0,-1.5em) -| (1_8a);
+        \draw[<->] (2_4) -- ++(0,-1.5em) -| (2_8b);
+        \draw[<->] (3_6) -- ++(0,-1.5em) -| (3_6);
+        \draw[<->] (4_8b) -- ++(0,-1.5em) -| (4_8b);
+        \draw[<->] (5_8a) -- ++(0,-1.5em) -| (5_8a);
+    \end{tikzpicture}
+\end{example}
+
+\begin{algo}{Insertion-Sort}
+    Die Grundidee ist:
+    \begin{enumerate}
+        \item Starte mit einem Wert im Array (meist Position \texttt{0})
+        \item Nimm jeweils den nächsten Eintrag im Array und füge ihn an der richtigen Stelle im sortierten Bereich ein
+        \item Wiederholen bis das Array sortiert ist
+    \end{enumerate}
+
+    Insertion-Sort ist in den meisten Fällen der schnellste elementare Suchalgorithmus - auch, weil er potentielle Vorsortierung ausnutzt.
+
+    Insertion-Sort ist stabil.
+\end{algo}
+
+\begin{code}{Insertion-Sort}
+    \lstinputlisting{insertionsort.java}
+\end{code}
+
+\begin{example}{Insertion-Sort}
+    \centering
+
+    \begin{tikzpicture}[
+        start chain,
+        node distance = 0em,
+        ArrayBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+        sorted/.style={fill=blue!25},
+        i/.style={fill=teal!25, label=above:\texttt{i}},
+        ]
+        { start chain = going right
+
+        \node [ArrayBlock, i] (0_3) {$3$};
+        \node [ArrayBlock] (0_8a) {$8_a$};
+        \node [ArrayBlock] (0_8b) {$8_b$};
+        \node [ArrayBlock] (0_6) {$6$};
+        \node [ArrayBlock] (0_4) {$4$};
+        \node [ArrayBlock] (0_2) {$2$};
+
+        { [continue chain = going right]
+        \chainin (0_3);
+
+        \node [ArrayBlock, xshift=-2em, yshift=-4em, sorted] (1_3) {$3$};
+        \node [ArrayBlock, i] (1_8a) {$8_a$};
+        \node [ArrayBlock] (1_8b) {$8_b$};
+        \node [ArrayBlock] (1_6) {$6$};
+        \node [ArrayBlock] (1_4) {$4$};
+        \node [ArrayBlock] (1_2) {$2$};
+        }
+
+        { [continue chain = going right]
+        \chainin (0_3);
+
+        \node [ArrayBlock, xshift=-2em, yshift=-8em, sorted] (2_3) {$3$};
+        \node [ArrayBlock, sorted] (2_8a) {$8_a$};
+        \node [ArrayBlock, i] (2_8b) {$8_b$};
+        \node [ArrayBlock] (2_6) {$6$};
+        \node [ArrayBlock] (2_4) {$4$};
+        \node [ArrayBlock] (2_2) {$2$};
+        }
+
+        { [continue chain = going right]
+        \chainin (0_3);
+
+        \node [ArrayBlock, xshift=-2em, yshift=-12em, sorted] (3_3) {$3$};
+        \node [ArrayBlock, sorted] (3_8a) {$8_a$};
+        \node [ArrayBlock, sorted] (3_8b) {$8_b$};
+        \node [ArrayBlock, i] (3_6) {$6$};
+        \node [ArrayBlock] (3_4) {$4$};
+        \node [ArrayBlock] (3_2) {$2$};
+        }
+
+        { [continue chain = going right]
+        \chainin (0_3);
+
+        \node [ArrayBlock, xshift=-2em, yshift=-16em, sorted] (4_3) {$3$};
+        \node [ArrayBlock, sorted] (4_6) {$6$};
+        \node [ArrayBlock, sorted] (4_8a) {$8_a$};
+        \node [ArrayBlock, sorted] (4_8b) {$8_b$};
+        \node [ArrayBlock, i] (4_4) {$4$};
+        \node [ArrayBlock] (4_2) {$2$};
+        }
+
+        { [continue chain = going right]
+        \chainin (0_3);
+
+        \node [ArrayBlock, xshift=-2em, yshift=-20em, sorted] (5_3) {$3$};
+        \node [ArrayBlock, sorted] (5_4) {$4$};
+        \node [ArrayBlock, sorted] (5_6) {$6$};
+        \node [ArrayBlock, sorted] (5_8a) {$8_a$};
+        \node [ArrayBlock, sorted] (5_8b) {$8_b$};
+        \node [ArrayBlock, i] (5_2) {$2$};
+        }
+
+        { [continue chain = going right]
+        \chainin (0_3);
+
+        \node [ArrayBlock, xshift=-2em, yshift=-24em, sorted] (6_2) {$2$};
+        \node [ArrayBlock, sorted] (6_3) {$3$};
+        \node [ArrayBlock, sorted] (6_4) {$4$};
+        \node [ArrayBlock, sorted] (6_6) {$6$};
+        \node [ArrayBlock, sorted] (6_8a) {$8_a$};
+        \node [ArrayBlock, sorted] (6_8b) {$8_b$};
+        }
+
+        \draw[<->] (0_3) -- ++(0,-1.5em) -| (0_3.south west);
+        \draw[<->] (1_8a) -- ++(0,-1.5em) -| (1_8a.south west);
+        \draw[<->] (2_8b) -- ++(0,-1.5em) -| (2_8b.south west);
+        \draw[<->] (3_6) -- ++(0,-1.5em) -| (3_8a.south west);
+        \draw[<->] (4_4) -- ++(0,-1.5em) -| (4_6.south west);
+        \draw[<->] (5_2) -- ++(0,-1.5em) -| (5_3.south west);
+        }
+    \end{tikzpicture}
+\end{example}
+
+\begin{bonus}{Bewertung elementarer Sortierverfahren}
+    \begin{itemize}
+        \item Simple-Sort
+              \begin{itemize}
+                  \item Einfach zu implementieren
+                  \item Langsam
+              \end{itemize}
+        \item Selection-Sort
+              \begin{itemize}
+                  \item Aufwand unabhängig von Vorsortierung
+                  \item nie mehr als $\bigo(n)$ Vertauschungen nötig
+              \end{itemize}
+        \item Bubble-Sort
+              \begin{itemize}
+                  \item Stabil
+                  \item Vorsortierung wird ausgenutzt
+              \end{itemize}
+        \item Insertion-Sort
+              \begin{itemize}
+                  \item Stabil
+                  \item Vorsortierung wird ausgenutzt
+                  \item schnell für eine elementares Suchverfahren ($\bigo(n^2)$)
+              \end{itemize}
+    \end{itemize}
+\end{bonus}
+
+\subsection{Höhere Sortierverfahren}
+
+\begin{algo}{Heap-Sort}
+    Der Heap ist Grundlage für das Sortierverfahren \emph{Heap-Sort}.
+
+    \begin{itemize}
+        \item Zu Beginn: Unsortiertes Feld
+        \item Phase 1:
+              \begin{itemize}
+                  \item Alle Elemente werden nacheinander in einen Heap eingefügt
+                  \item Resultat ist ein Heap, der in ein Feld eingebettet ist
+              \end{itemize}
+        \item Phase 2:
+              \begin{itemize}
+                  \item Die Elemente werden in absteigender Reihenfolge entfernt (Wurzel!)
+                  \item Heap schrumpft immer weiter
+              \end{itemize}
+    \end{itemize}
+
+    \begin{center}
+        \begin{tikzpicture}
+            [
+                start chain,
+                node distance = 0pt,
+                HeapBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain, fill=teal!30},
+                SortedBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain, fill=blue!30},
+            ]
+
+            { start chain = going right
+                \node [HeapBlock, label=above:\texttt{root}] (1) {$0$};
+                \node [HeapBlock] (2) {$1$};
+                \node [HeapBlock] (3) {$2$};
+                \node [HeapBlock] (dots) {$\ldots$};
+                \node [HeapBlock] (n2) {$n-2$};
+                \node [HeapBlock] (n1) {$n-1$};
+                \node [HeapBlock] (n) {$n$};
+
+                \draw[->, blue] ([yshift=1em] 1.north east) to[bend left=30] ([yshift=.5em] n.north);
+
+                \draw [decorate,decoration={brace,amplitude=5pt,mirror,raise=.5em}]
+                (1.south west) -- (n.south east) node[midway,yshift=-2em]{Heap};
+                %\draw[->] (val.south) [out=-30, in=-150] to (4.south);
+            }
+        \end{tikzpicture}
+        \hspace{4em}
+        \begin{tikzpicture}
+            [
+                start chain,
+                node distance = 0pt,
+                HeapBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain, fill=teal!30},
+                SortedBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain, fill=blue!30},
+            ]
+
+            { start chain = going right
+                \node [HeapBlock, label=above:\texttt{root}] (1) {$0$};
+                \node [HeapBlock] (2) {$1$};
+                \node [HeapBlock] (3) {$2$};
+                \node [HeapBlock] (dots) {$\ldots$};
+                \node [HeapBlock] (n2) {$n-2$};
+                \node [HeapBlock] (n1) {$n-1$};
+                \node [SortedBlock] (n) {$n$};
+
+                \draw[->, blue] ([yshift=1em] 1.north east) to[bend left=30] ([yshift=.5em] n1.north);
+
+                \draw [decorate,decoration={brace,amplitude=5pt,mirror,raise=.5em}]
+                (1.south west) -- (n1.south east) node[midway,yshift=-2em]{Heap};
+
+                \draw [decorate,decoration={brace,amplitude=5pt,mirror,raise=.5em}]
+                (n.south west) -- (n.south east) node[midway,yshift=-2em]{sortiertes Array};
+                %\draw[->] (val.south) [out=-30, in=-150] to (4.south);
+            }
+        \end{tikzpicture}
+
+        \begin{tikzpicture}
+            [
+                start chain,
+                node distance = 0pt,
+                HeapBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain, fill=teal!30},
+                SortedBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain, fill=blue!30},
+            ]
+
+            { start chain = going right
+                \node [HeapBlock, label=above:\texttt{root}] (1) {$0$};
+                \node [HeapBlock] (2) {$1$};
+                \node [HeapBlock] (3) {$2$};
+                \node [HeapBlock] (dots) {$\ldots$};
+                \node [HeapBlock] (n2) {$n-2$};
+                \node [SortedBlock] (n1) {$n-1$};
+                \node [SortedBlock] (n) {$n$};
+                \node [xshift=2em, on chain] (dots2) {$\ldots$};
+
+                \draw[->, blue] ([yshift=1em] 1.north east) to[bend left=30] ([yshift=.5em] n2.north);
+
+                \draw [decorate,decoration={brace,amplitude=5pt,mirror,raise=.5em}]
+                (1.south west) -- (n2.south east) node[midway,yshift=-2em]{Heap};
+
+                \draw [decorate,decoration={brace,amplitude=5pt,mirror,raise=.5em}]
+                (n1.south west) -- (n.south east) node[midway,yshift=-2em]{sortiertes Array};
+                %\draw[->] (val.south) [out=-30, in=-150] to (4.south);
+            }
+        \end{tikzpicture}
+        \hspace{1em}
+        \begin{tikzpicture}
+            [
+                start chain,
+                node distance = 0pt,
+                HeapBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain, fill=teal!30},
+                SortedBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain, fill=blue!30},
+            ]
+
+            { start chain = going right
+                \node [SortedBlock] (1) {$0$};
+                \node [SortedBlock] (2) {$1$};
+                \node [SortedBlock] (3) {$2$};
+                \node [SortedBlock] (dots) {$\ldots$};
+                \node [SortedBlock] (n2) {$n-2$};
+                \node [SortedBlock] (n1) {$n-1$};
+                \node [SortedBlock] (n) {$n$};
+
+                %\draw[->, blue] ([yshift=1em] 1.north) to[bend left=30] ([yshift=.5em] n2.north);
+
+                %\draw [decorate,decoration={brace,amplitude=5pt,mirror,raise=.5em}]
+                %(1.south west) -- (n2.south east) node[midway,yshift=-2em]{Heap};
+
+                \draw [decorate,decoration={brace,amplitude=5pt,mirror,raise=.5em}]
+                (1.south west) -- (n.south east) node[midway,yshift=-2em]{sortiertes Array};
+                %\draw[->] (val.south) [out=-30, in=-150] to (4.south);
+            }
+        \end{tikzpicture}
+    \end{center}
+\end{algo}
+
+\begin{algo}{Quick-Sort}
+    \emph{Quick-Sort} ist ein rekursiver Algorithmus, der nach dem Prinzip von \glqq divide-and-conquer\grqq (\glqq teile und herrsche\grqq) arbeitet:
+    \begin{enumerate}
+        \item Müssen 0 oder 1 Elemente sortiert werden: Rekursionsabbruch
+        \item Wähle ein Element als \emph{Pivot-Element} aus
+        \item Teile das Feld in zwei Teile Teile:\footnote{Beachte: Die Elemente werden \emph{in-place} getauscht. Siehe Beispiel.}
+              \begin{itemize}
+                  \item Ein Teil mit den Elementen größer als das Pivot.
+                  \item Ein Teil mit den Elementen kleiner als das Pivot.
+              \end{itemize}
+        \item Wiederhole rekursiv für beide Teilfelder.
+    \end{enumerate}
+
+
+    Die überwiegende Mehrheit der Programmbibliotheken benutzt Quick-Sort.
+    In fast allen Fällen sind zwei Optimierungen eingebaut:
+    \begin{itemize}
+        \item \glqq Median of three\grqq
+        \item \glqq Behandlung kleiner Teilfelder\grqq
+    \end{itemize}
+\end{algo}
+
+\begin{example}{Quick-Sort}
+    \textcolor{red}{ACHTUNG: Das Beispiel muss in Rücksprache mit Herrn Pflug noch angepasst werden.
+        Der in der Vorlesung benutzte - und damit klausurrelevante - Quick-Sort nutzt ein \emph{in-place}-Verfahren zum Aufteilen der Elemente.
+        Das Beispiel unten (noch) nicht.}
+
+    \centering
+
+    \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            pivot/.style = {draw, red, on chain, label=above:\texttt{pivot}, xshift=1em},
+            array/.style = {draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            sorted/.style = {array, fill=blue!25},
+        ]
+        { start chain = going right
+            \node [array] (23) {$23$};
+            \node [array] (01) {$1$};
+            \node [array] (05) {$5$};
+            \node [array] (20) {$20$};
+            \node [array] (10) {$10$};
+            \node [array] (18) {$18$};
+            \node [array] (08) {$8$};
+            \node [array] (46) {$46$};
+            \node [array] (11) {$11$};
+            \node [array] (03) {$3$};
+            \node [array] (36) {$36$};
+            \node [array] (07) {$7$};
+            \node [array] (30) {$30$};
+            \node [array] (09) {$9$};
+        }
+    \end{tikzpicture}
+
+    \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            pivot/.style = {draw, red, on chain, label=above:\texttt{pivot}, xshift=1em},
+            array/.style = {draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            sorted/.style = {array, fill=blue!25},
+        ]
+        { start chain = going right
+            \node [array] (23) {$23$};
+            \node [array] (01) {$1$};
+            \node [array] (05) {$5$};
+            \node [array] (20) {$20$};
+            \node [array] (10) {$10$};
+            \node [array] (18) {$18$};
+            \node [array] (08) {$8$};
+            \node [array] (46) {$46$};
+            \node [array] (11) {$11$};
+            \node [array] (03) {$3$};
+            \node [array] (36) {$36$};
+            \node [array] (07) {$7$};
+            \node [array] (30) {$30$};
+            \node [array, pivot] (09) {$9$};
+        }
+    \end{tikzpicture}
+
+    \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            shifted/.style = {xshift=1em},
+            pivot/.style = {draw, red, on chain, label=above:\texttt{pivot}},
+            array/.style = {draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            sorted/.style = {array, fill=blue!25},
+        ]
+        { start chain = going right
+            \node [array] (01) {$1$};
+            \node [array] (05) {$5$};
+            \node [array] (08) {$8$};
+            \node [array] (03) {$3$};
+            \node [array] (07) {$7$};
+            %
+            \node [array, pivot, shifted] (09) {$9$};
+            %
+            \node [array, shifted] (23) {$23$};
+            \node [array] (20) {$20$};
+            \node [array] (10) {$10$};
+            \node [array] (18) {$18$};
+            \node [array] (46) {$46$};
+            \node [array] (11) {$11$};
+            \node [array] (36) {$36$};
+            \node [array] (30) {$30$};
+        }
+
+        \draw [decorate,decoration={brace,amplitude=5pt,raise=.5em}]
+        (01.north west) -- (07.north east) node[midway,yshift=1.5em] {\texttt{<= 9}};
+        \draw [decorate,decoration={brace,amplitude=5pt,raise=.5em}]
+        (23.north west) -- (30.north east) node[midway,yshift=1.5em] {\texttt{> 9}};
+    \end{tikzpicture}
+
+
+
+    \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            shifted/.style = {xshift=1em},
+            pivot/.style = {draw, red, on chain, label=above:\texttt{pivot}},
+            array/.style = {draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            sorted/.style = {array, fill=blue!25},
+        ]
+        { start chain = going right
+            \node [array] (01) {$1$};
+            \node [array] (05) {$5$};
+            \node [array] (08) {$8$};
+            \node [array] (03) {$3$};
+            \node [array] (07) {$7$};
+            %
+            \node [array, sorted, shifted] (09) {$9$};
+            %
+            \node [array, shifted] (23) {$23$};
+            \node [array] (20) {$20$};
+            \node [array] (10) {$10$};
+            \node [array] (18) {$18$};
+            \node [array] (46) {$46$};
+            \node [array] (11) {$11$};
+            \node [array] (36) {$36$};
+            \node [array] (30) {$30$};
+        }
+    \end{tikzpicture}
+
+    \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            shifted/.style = {xshift=1em},
+            pivot/.style = {draw, red, on chain, label=above:\texttt{pivot}},
+            array/.style = {draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            sorted/.style = {array, fill=blue!25},
+        ]
+        { start chain = going right
+            \node [array] (01) {$1$};
+            \node [array] (05) {$5$};
+            \node [array] (08) {$8$};
+            \node [array] (03) {$3$};
+            %
+            \node [array, pivot, shifted] (07) {$7$};
+            %
+            \node [array, shifted, sorted] (09) {$9$};
+            %
+            \node [array, shifted] (23) {$23$};
+            \node [array] (20) {$20$};
+            \node [array] (10) {$10$};
+            \node [array] (18) {$18$};
+            \node [array] (46) {$46$};
+            \node [array] (11) {$11$};
+            \node [array] (36) {$36$};
+            \node [array, pivot, shifted] (30) {$30$};
+        }
+    \end{tikzpicture}
+
+    \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            shifted/.style = {xshift=1em},
+            pivot/.style = {draw, red, on chain, label=above:\texttt{pivot}},
+            array/.style = {draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            sorted/.style = {array, fill=blue!25},
+        ]
+        { start chain = going right
+            \node [array] (01) {$1$};
+            \node [array] (05) {$5$};
+            \node [array] (03) {$3$};
+            %
+            \node [array, pivot, shifted] (07) {$7$};
+            %
+            \node [array, shifted] (08) {$8$};
+            %
+            \node [array, shifted, sorted] (09) {$9$};
+            %
+            \node [array, shifted] (23) {$23$};
+            \node [array] (20) {$20$};
+            \node [array] (10) {$10$};
+            \node [array] (18) {$18$};
+            \node [array] (11) {$11$};
+            %
+            \node [array, pivot, shifted] (30) {$30$};
+            %
+            \node [array, shifted] (46) {$46$};
+            \node [array] (36) {$36$};
+        }
+
+        \draw [decorate,decoration={brace,amplitude=5pt,raise=.5em}]
+        (01.north west) -- (03.north east) node[midway,yshift=1.5em] {\texttt{<= 7}};
+        \draw [decorate,decoration={brace,amplitude=5pt,raise=.5em}]
+        (08.north west) -- (08.north east) node[midway,yshift=1.5em] {\texttt{> 7}};
+
+        \draw [decorate,decoration={brace,amplitude=5pt,raise=.5em}]
+        (23.north west) -- (11.north east) node[midway,yshift=1.5em] {\texttt{<= 30}};
+        \draw [decorate,decoration={brace,amplitude=5pt,raise=.5em}]
+        (46.north west) -- (36.north east) node[midway,yshift=1.5em] {\texttt{> 30}};
+    \end{tikzpicture}
+
+    \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            shifted/.style = {xshift=1em},
+            pivot/.style = {draw, red, on chain, label=above:\texttt{pivot}},
+            array/.style = {draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            sorted pivot/.style = {array, fill=blue!25},
+            sorted end/.style = {array, fill=blue!10},
+        ]
+        { start chain = going right
+            \node [array] (01) {$1$};
+            \node [array] (05) {$5$};
+            \node [array] (03) {$3$};
+            %
+            \node [array, sorted pivot, shifted] (07) {$7$};
+            %
+            \node [array, shifted, sorted end] (08) {$8$};
+            %
+            \node [array, shifted, sorted pivot] (09) {$9$};
+            %
+            \node [array, shifted] (23) {$23$};
+            \node [array] (20) {$20$};
+            \node [array] (10) {$10$};
+            \node [array] (18) {$18$};
+            \node [array] (11) {$11$};
+            %
+            \node [array, sorted pivot, shifted] (30) {$30$};
+            %
+            \node [array, shifted] (46) {$46$};
+            \node [array] (36) {$36$};
+        }
+    \end{tikzpicture}
+
+    \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            shifted/.style = {xshift=1em},
+            pivot/.style = {draw, red, on chain, label=above:\texttt{pivot}},
+            array/.style = {draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            sorted pivot/.style = {array, fill=blue!25},
+            sorted end/.style = {array, fill=blue!10},
+        ]
+        { start chain = going right
+            \node [array] (01) {$1$};
+            \node [array] (05) {$5$};
+            %
+            \node [array, pivot, shifted] (03) {$3$};
+            %
+            \node [array, sorted pivot, shifted] (07) {$7$};
+            %
+            \node [array, shifted, sorted end] (08) {$8$};
+            %
+            \node [array, shifted, sorted pivot] (09) {$9$};
+            %
+            \node [array, shifted] (23) {$23$};
+            \node [array] (20) {$20$};
+            \node [array] (10) {$10$};
+            \node [array] (18) {$18$};
+            %
+            \node [array, pivot, shifted] (11) {$11$};
+            %
+            \node [array, sorted pivot, shifted] (30) {$30$};
+            %
+            \node [array, shifted] (46) {$46$};
+            %
+            \node [array, pivot, shifted] (36) {$36$};
+        }
+    \end{tikzpicture}
+
+    \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            shifted/.style = {xshift=1em},
+            pivot/.style = {draw, red, on chain, label=above:\texttt{pivot}},
+            array/.style = {draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            sorted pivot/.style = {array, fill=blue!25},
+            sorted end/.style = {array, fill=blue!10},
+        ]
+        { start chain = going right
+            \node [array] (01) {$1$};
+            %
+            \node [array, pivot, shifted] (03) {$3$};
+            %
+            \node [array, shifted] (05) {$5$};
+            %
+            \node [array, sorted pivot, shifted] (07) {$7$};
+            %
+            \node [array, shifted, sorted end] (08) {$8$};
+            %
+            \node [array, shifted, sorted pivot] (09) {$9$};
+            %
+            \node [array, shifted] (10) {$10$};
+            %
+            \node [array, pivot, shifted] (11) {$11$};
+            %
+            \node [array, shifted] (23) {$23$};
+            \node [array] (20) {$20$};
+            \node [array] (18) {$18$};
+            %
+            %
+            \node [array, sorted pivot, shifted] (30) {$30$};
+            %
+            \node [array, pivot, shifted] (36) {$36$};
+            %
+            \node [array, shifted] (46) {$46$};
+        }
+
+        \draw [decorate,decoration={brace,amplitude=5pt,raise=.5em}]
+        (01.north west) -- (01.north east) node[midway,yshift=1.5em] {\texttt{<= 3}};
+        \draw [decorate,decoration={brace,amplitude=5pt,raise=.5em}]
+        (05.north west) -- (05.north east) node[midway,yshift=1.5em] {\texttt{> 3}};
+
+        \draw [decorate,decoration={brace,amplitude=5pt,raise=.5em}]
+        (10.north west) -- (10.north east) node[midway,yshift=1.5em] {\texttt{<= 11}};
+        \draw [decorate,decoration={brace,amplitude=5pt,raise=.5em}]
+        (23.north west) -- (18.north east) node[midway,yshift=1.5em] {\texttt{> 11}};
+
+        \draw [decorate,decoration={brace,amplitude=5pt,raise=.5em}]
+        (46.north west) -- (46.north east) node[midway,yshift=1.5em] {\texttt{> 36}};
+    \end{tikzpicture}
+
+    \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            shifted/.style = {xshift=1em},
+            pivot/.style = {draw, red, on chain, label=above:\texttt{pivot}},
+            array/.style = {draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            sorted pivot/.style = {array, fill=blue!25},
+            sorted end/.style = {array, fill=blue!10},
+        ]
+        { start chain = going right
+            \node [array, sorted end] (01) {$1$};
+            %
+            \node [array, sorted pivot, shifted] (03) {$3$};
+            %
+            \node [array, shifted, sorted end] (05) {$5$};
+            %
+            \node [array, sorted pivot, shifted] (07) {$7$};
+            %
+            \node [array, shifted, sorted end] (08) {$8$};
+            %
+            \node [array, shifted, sorted pivot] (09) {$9$};
+            %
+            \node [array, shifted, sorted end] (10) {$10$};
+            %
+            \node [array, sorted pivot, shifted] (11) {$11$};
+            %
+            \node [array, shifted] (23) {$23$};
+            \node [array] (20) {$20$};
+            \node [array] (18) {$18$};
+            %
+            %
+            \node [array, sorted pivot, shifted] (30) {$30$};
+            %
+            \node [array, sorted pivot, shifted] (36) {$36$};
+            %
+            \node [array, shifted, sorted end] (46) {$46$};
+        }
+    \end{tikzpicture}
+
+    \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            shifted/.style = {xshift=1em},
+            pivot/.style = {draw, red, on chain, label=above:\texttt{pivot}},
+            array/.style = {draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            sorted pivot/.style = {array, fill=blue!25},
+            sorted end/.style = {array, fill=blue!10},
+        ]
+        { start chain = going right
+            \node [array, sorted end] (01) {$1$};
+            %
+            \node [array, sorted pivot, shifted] (03) {$3$};
+            %
+            \node [array, shifted, sorted end] (05) {$5$};
+            %
+            \node [array, sorted pivot, shifted] (07) {$7$};
+            %
+            \node [array, shifted, sorted end] (08) {$8$};
+            %
+            \node [array, shifted, sorted pivot] (09) {$9$};
+            %
+            \node [array, shifted, sorted end] (10) {$10$};
+            %
+            \node [array, sorted pivot, shifted] (11) {$11$};
+            %
+            \node [array, shifted] (23) {$23$};
+            \node [array] (20) {$20$};
+            %
+            \node [array, pivot, shifted] (18) {$18$};
+            %
+            %
+            \node [array, sorted pivot, shifted] (30) {$30$};
+            %
+            \node [array, sorted pivot, shifted] (36) {$36$};
+            %
+            \node [array, shifted, sorted end] (46) {$46$};
+        }
+    \end{tikzpicture}
+
+    \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            shifted/.style = {xshift=1em},
+            pivot/.style = {draw, red, on chain, label=above:\texttt{pivot}},
+            array/.style = {draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            sorted pivot/.style = {array, fill=blue!25},
+            sorted end/.style = {array, fill=blue!10},
+        ]
+        { start chain = going right
+            \node [array, sorted end] (01) {$1$};
+            %
+            \node [array, sorted pivot, shifted] (03) {$3$};
+            %
+            \node [array, shifted, sorted end] (05) {$5$};
+            %
+            \node [array, sorted pivot, shifted] (07) {$7$};
+            %
+            \node [array, shifted, sorted end] (08) {$8$};
+            %
+            \node [array, shifted, sorted pivot] (09) {$9$};
+            %
+            \node [array, shifted, sorted end] (10) {$10$};
+            %
+            \node [array, sorted pivot, shifted] (11) {$11$};
+            %
+            \node [array, pivot, shifted] (18) {$18$};
+            %
+            \node [array, shifted] (23) {$23$};
+            \node [array] (20) {$20$};
+            %
+            %
+            \node [array, sorted pivot, shifted] (30) {$30$};
+            %
+            \node [array, sorted pivot, shifted] (36) {$36$};
+            %
+            \node [array, shifted, sorted end] (46) {$46$};
+        }
+
+        \draw [decorate,decoration={brace,amplitude=5pt,raise=.5em}]
+        (23.north west) -- (20.north east) node[midway,yshift=1.5em] {\texttt{> 18}};
+    \end{tikzpicture}
+
+    \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            shifted/.style = {xshift=1em},
+            pivot/.style = {draw, red, on chain, label=above:\texttt{pivot}},
+            array/.style = {draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            sorted pivot/.style = {array, fill=blue!25},
+            sorted end/.style = {array, fill=blue!10},
+        ]
+        { start chain = going right
+            \node [array, sorted end] (01) {$1$};
+            %
+            \node [array, sorted pivot, shifted] (03) {$3$};
+            %
+            \node [array, shifted, sorted end] (05) {$5$};
+            %
+            \node [array, sorted pivot, shifted] (07) {$7$};
+            %
+            \node [array, shifted, sorted end] (08) {$8$};
+            %
+            \node [array, shifted, sorted pivot] (09) {$9$};
+            %
+            \node [array, shifted, sorted end] (10) {$10$};
+            %
+            \node [array, sorted pivot, shifted] (11) {$11$};
+            %
+            \node [array, sorted pivot, shifted] (18) {$18$};
+            %
+            \node [array, shifted] (23) {$23$};
+            \node [array] (20) {$20$};
+            %
+            %
+            \node [array, sorted pivot, shifted] (30) {$30$};
+            %
+            \node [array, sorted pivot, shifted] (36) {$36$};
+            %
+            \node [array, shifted, sorted end] (46) {$46$};
+        }
+    \end{tikzpicture}
+
+    \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            shifted/.style = {xshift=1em},
+            pivot/.style = {draw, red, on chain, label=above:\texttt{pivot}},
+            array/.style = {draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            sorted pivot/.style = {array, fill=blue!25},
+            sorted end/.style = {array, fill=blue!10},
+        ]
+        { start chain = going right
+            \node [array, sorted end] (01) {$1$};
+            %
+            \node [array, sorted pivot, shifted] (03) {$3$};
+            %
+            \node [array, shifted, sorted end] (05) {$5$};
+            %
+            \node [array, sorted pivot, shifted] (07) {$7$};
+            %
+            \node [array, shifted, sorted end] (08) {$8$};
+            %
+            \node [array, shifted, sorted pivot] (09) {$9$};
+            %
+            \node [array, shifted, sorted end] (10) {$10$};
+            %
+            \node [array, sorted pivot, shifted] (11) {$11$};
+            %
+            \node [array, sorted pivot, shifted] (18) {$18$};
+            %
+            \node [array, shifted] (23) {$23$};
+            %
+            \node [array, pivot, shifted] (20) {$20$};
+            %
+            \node [array, sorted pivot, shifted] (30) {$30$};
+            %
+            \node [array, sorted pivot, shifted] (36) {$36$};
+            %
+            \node [array, shifted, sorted end] (46) {$46$};
+        }
+    \end{tikzpicture}
+
+    \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            shifted/.style = {xshift=1em},
+            pivot/.style = {draw, red, on chain, label=above:\texttt{pivot}},
+            array/.style = {draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            sorted pivot/.style = {array, fill=blue!25},
+            sorted end/.style = {array, fill=blue!10},
+        ]
+        { start chain = going right
+            \node [array, sorted end] (01) {$1$};
+            %
+            \node [array, sorted pivot, shifted] (03) {$3$};
+            %
+            \node [array, shifted, sorted end] (05) {$5$};
+            %
+            \node [array, sorted pivot, shifted] (07) {$7$};
+            %
+            \node [array, shifted, sorted end] (08) {$8$};
+            %
+            \node [array, shifted, sorted pivot] (09) {$9$};
+            %
+            \node [array, shifted, sorted end] (10) {$10$};
+            %
+            \node [array, sorted pivot, shifted] (11) {$11$};
+            %
+            \node [array, sorted pivot, shifted] (18) {$18$};
+            %
+            \node [array, pivot, shifted] (20) {$20$};
+            %
+            \node [array, shifted] (23) {$23$};
+            %
+            \node [array, sorted pivot, shifted] (30) {$30$};
+            %
+            \node [array, sorted pivot, shifted] (36) {$36$};
+            %
+            \node [array, shifted, sorted end] (46) {$46$};
+        }
+
+        \draw [decorate,decoration={brace,amplitude=5pt,raise=.5em}]
+        (23.north west) -- (23.north east) node[midway,yshift=1.5em] {\texttt{> 20}};
+    \end{tikzpicture}
+
+    \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            shifted/.style = {xshift=1em},
+            pivot/.style = {draw, red, on chain, label=above:\texttt{pivot}},
+            array/.style = {draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            sorted pivot/.style = {array, fill=blue!25},
+            sorted end/.style = {array, fill=blue!10},
+        ]
+        { start chain = going right
+            \node [array, sorted end] (01) {$1$};
+            %
+            \node [array, sorted pivot, shifted] (03) {$3$};
+            %
+            \node [array, shifted, sorted end] (05) {$5$};
+            %
+            \node [array, sorted pivot, shifted] (07) {$7$};
+            %
+            \node [array, shifted, sorted end] (08) {$8$};
+            %
+            \node [array, shifted, sorted pivot] (09) {$9$};
+            %
+            \node [array, shifted, sorted end] (10) {$10$};
+            %
+            \node [array, sorted pivot, shifted] (11) {$11$};
+            %
+            \node [array, sorted pivot, shifted] (18) {$18$};
+            %
+            \node [array, sorted pivot, shifted] (20) {$20$};
+            %
+            \node [array, shifted, sorted end] (23) {$23$};
+            %
+            \node [array, sorted pivot, shifted] (30) {$30$};
+            %
+            \node [array, sorted pivot, shifted] (36) {$36$};
+            %
+            \node [array, shifted, sorted end] (46) {$46$};
+        }
+    \end{tikzpicture}
+\end{example}
+
+\begin{defi}{Zeitkomplexität von Quick-Sort}
+    \begin{itemize}
+        \item Best-Case:
+              \begin{itemize}
+                  \item Pivot-Wert ist immer Median der Teilliste $\implies$ Teillisten werden stets halbiert
+                  \item $\log n$ Stufen nötig mit $n$ Elementen
+                  \item $\bigo(n \log n)$
+              \end{itemize}
+        \item Worst-Case:
+              \begin{itemize}
+                  \item Pivot-Wert ist immer größtes oder kleinstes Element der Teilliste
+                  \item $n-1$ Stufen nötig mit $n-i$ Elementen pro Stufe
+                  \item $\bigo(n^2)$
+              \end{itemize}
+        \item Average-Case:
+              \begin{itemize}
+                  \item Berechnung ziemlich aufwändig
+                  \item $\bigo(n \log n)$
+              \end{itemize}
+    \end{itemize}
+\end{defi}
+
+\begin{bonus}{Standard-Optimierung von Pivot-Elementen}
+    Wählt man z.B. bei einem vorsortierten Array stets das letzte Element, hat man genau den Worst-Case.
+
+    \emph{Median-of-three-Methode} zum Auswählen des Pivots:
+    \begin{itemize}
+        \item Es werden drei Elemente als Referenz-Elemente (Anfang, Mitte, Ende) gewählt, von denen dann der Median als Pivot verwendet wird.
+        \item Kann auf mehr als drei Elemente ausgebaut werden.
+    \end{itemize}
+\end{bonus}
+
+\begin{bonus}{Standard-Optimierung des Rekursionsabbruchs}
+    Beim \glqq einfachen\grqq  Rekursionsabbruch (Teilliste enthält 0 oder 1 Elemente) sind die letzten Rekursionsdurchgänge nicht mehr effektiv.
+
+    Daher kann die Rekursion z.B. schon früher abgebrochen werden und die dann vorhandene Teilliste mit Insertion-Sort sortiert werden.
+    Die Grenze dafür ist nicht klar festgelegt (Empfehlung von Knuth und Sedgewick liegt bei 9, im Internet aber oft zwischen 3 und 32).
+\end{bonus}
+
+\begin{defi}{Dual-Pivot Quick-Sort}
+    Der \emph{Dual-Pivot Quick-Sort} funktioniert analog zum normalen Quick-Sort.
+
+    Hier werden jedoch zwei Pivot-Elemente verwendet, die dann die entsprechende Teilliste in drei Bereiche aufteilen.
+\end{defi}
+
+\begin{defi}{Internes und externes Sortieren}
+    Bis jetzt wurde vorausgesetzt, dass schneller Zugriff auf einen beliebigen Datensatz (\emph{wahlfreier Zugriff}) möglich ist.
+    Das ist zumeist möglich, wenn der Datensatz im Hauptspeicher liegt.
+    Ist dies der Fall, spricht man von \emph{internem Sortieren}.
+
+    Bei sehr großen Datenbeständen ist das aber oft nicht mehr möglich, da sie z.B. auf Hintergrundspeicher ausgelagert werden müssen.
+    Hier hat man dann lediglich \emph{sequentiellen Zugriff}\footnote{das Gleiche gilt auch für verkettete Listen} und man spricht von \emph{externem Sortieren}.
+\end{defi}
+
+\begin{algo}{Merge-Sort}
+    \emph{Merge-Sort} kann sowohl iterativ als auch rekursiv implementiert werden, wobei die rekursive Variante etwas schneller ist.
+
+    Der rekursive Ablauf ist:
+    \begin{enumerate}
+        \item Teile die Daten in zwei Hälften
+        \item Unterteilung wird fortgesetzt, bis nur noch ein Element in einer Menge vorhanden ist
+        \item Teilstücke werden für sich sortiert
+        \item sortierte Teilstücke werden zusammengeführt
+    \end{enumerate}
+
+    Merge-Sort ist stabil.
+
+    Die Komplexität von Merge-Sort liegt in $\bigo(n \log n)$.
+\end{algo}
+
+\begin{example}{Merge-Sort (rekursiv)}
+    \centering
+
+    \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            shifted/.style = {xshift=1em},
+            array/.style = {draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            sorted/.style = {array, fill=blue!25},
+        ]
+        { start chain = going right
+            \node [array] (38) {$38$};
+            \node [array] (27) {$27$};
+            \node [array] (43) {$43$};
+            \node [array] (03) {$3$};
+            \node [array] (09) {$9$};
+            \node [array] (82) {$82$};
+            \node [array] (10) {$10$};
+        }
+
+        %\draw [decorate,decoration={brace,mirror,amplitude=5pt,raise=.5em}]
+        %(38.south west) -- (03.south east) node[midway,yshift=-1.5em] {};
+        %\draw [decorate,decoration={brace,mirror,amplitude=5pt,raise=.5em}]
+        %(09.south west) -- (10.south east) node[midway,yshift=-1.5em] {};
+    \end{tikzpicture}
+
+    \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            shifted/.style = {xshift=1em},
+            array/.style = {draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            sorted/.style = {array, fill=blue!25},
+        ]
+        { start chain = going right
+            \node [array] (38) {$38$};
+            \node [array] (27) {$27$};
+            \node [array] (43) {$43$};
+            \node [array] (03) {$3$};
+            %
+            \node [array, shifted] (09) {$9$};
+            \node [array] (82) {$82$};
+            \node [array] (10) {$10$};
+        }
+
+        %\draw [decorate,decoration={brace,mirror,amplitude=5pt,raise=.5em}]
+        %(38.south west) -- (27.south east) node[midway,yshift=-1.5em] {};
+        %\draw [decorate,decoration={brace,mirror,amplitude=5pt,raise=.5em}]
+        %(43.south west) -- (03.south east) node[midway,yshift=-1.5em] {};
+        %
+        %\draw [decorate,decoration={brace,mirror,amplitude=5pt,raise=.5em}]
+        %(09.south west) -- (82.south east) node[midway,yshift=-1.5em] {};
+        %\draw [decorate,decoration={brace,mirror,amplitude=5pt,raise=.5em}]
+        %(10.south west) -- (10.south east) node[midway,yshift=-1.5em] {};
+    \end{tikzpicture}
+
+    \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            shifted/.style = {xshift=1em},
+            array/.style = {draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            sorted/.style = {array, fill=blue!25},
+        ]
+        { start chain = going right
+            \node [array] (38) {$38$};
+            \node [array] (27) {$27$};
+            %
+            \node [array, shifted] (43) {$43$};
+            \node [array] (03) {$3$};
+            %
+            \node [array, shifted] (09) {$9$};
+            \node [array] (82) {$82$};
+            %
+            \node [array, shifted] (10) {$10$};
+        }
+
+        %\draw [decorate,decoration={brace,mirror,amplitude=5pt,raise=.5em}]
+        %(38.south west) -- (38.south east) node[midway,yshift=-1.5em] {};
+        %\draw [decorate,decoration={brace,mirror,amplitude=5pt,raise=.5em}]
+        %(27.south west) -- (27.south east) node[midway,yshift=-1.5em] {};
+        %
+        %\draw [decorate,decoration={brace,mirror,amplitude=5pt,raise=.5em}]
+        %(43.south west) -- (43.south east) node[midway,yshift=-1.5em] {};
+        %\draw [decorate,decoration={brace,mirror,amplitude=5pt,raise=.5em}]
+        %(03.south west) -- (03.south east) node[midway,yshift=-1.5em] {};
+        %
+        %\draw [decorate,decoration={brace,mirror,amplitude=5pt,raise=.5em}]
+        %(09.south west) -- (09.south east) node[midway,yshift=-1.5em] {};
+        %\draw [decorate,decoration={brace,mirror,amplitude=5pt,raise=.5em}]
+        %(82.south west) -- (82.south east) node[midway,yshift=-1.5em] {};
+    \end{tikzpicture}
+
+    \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            shifted/.style = {xshift=1em},
+            array/.style = {draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            sorted/.style = {array, fill=blue!25},
+            framed/.style = {draw, red, densely dashed, label=below:\texttt{sort}},
+        ]
+        { start chain = going right
+            \node [array] (38) {$38$};
+            %
+            \node [array, shifted] (27) {$27$};
+            %
+            \node [array, shifted] (43) {$43$};
+            %
+            \node [array, shifted] (03) {$3$};
+            %
+            \node [array, shifted] (09) {$9$};
+            %
+            \node [array, shifted] (82) {$82$};
+            %
+            \node [array, shifted] (10) {$10$};
+        }
+
+        \node [framed, fit={(38) (27)}] {};
+        \node [framed, fit={(43) (03)}] {};
+        \node [framed, fit={(09) (82)}] {};
+    \end{tikzpicture}
+
+    \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            shifted/.style = {xshift=1em},
+            array/.style = {draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            sorted/.style = {array, fill=blue!25},
+            framed/.style = {draw, red, densely dashed, label=below:\texttt{sort}},
+        ]
+        { start chain = going right
+            \node [array] (27) {$27$};
+            \node [array] (38) {$38$};
+            %
+            \node [array, shifted] (03) {$3$};
+            \node [array] (43) {$43$};
+            %
+            \node [array, shifted] (09) {$9$};
+            \node [array] (82) {$82$};
+            %
+            \node [array, shifted] (10) {$10$};
+        }
+    \end{tikzpicture}
+
+    \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            shifted/.style = {xshift=1em},
+            array/.style = {draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            sorted/.style = {array, fill=blue!25},
+            framed/.style = {draw, red, densely dashed, label=below:\texttt{sort}},
+        ]
+        { start chain = going right
+            \node [array] (27) {$27$};
+            \node [array] (38) {$38$};
+            %
+            \node [array, shifted] (03) {$3$};
+            \node [array] (43) {$43$};
+            %
+            \node [array, shifted] (09) {$9$};
+            \node [array] (82) {$82$};
+            %
+            \node [array, shifted] (10) {$10$};
+        }
+
+        \node [framed, fit={(27) (43)}] {};
+        \node [framed, fit={(09) (10)}] {};
+    \end{tikzpicture}
+
+    \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            shifted/.style = {xshift=1em},
+            array/.style = {draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            sorted/.style = {array, fill=blue!25},
+            framed/.style = {draw, red, densely dashed, label=below:\texttt{sort}},
+        ]
+        { start chain = going right
+            \node [array] (03) {$3$};
+            \node [array] (27) {$27$};
+            \node [array] (38) {$38$};
+            \node [array] (43) {$43$};
+            %
+            \node [array, shifted] (09) {$9$};
+            \node [array] (10) {$10$};
+            \node [array] (82) {$82$};
+        }
+    \end{tikzpicture}
+
+    \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            shifted/.style = {xshift=1em},
+            array/.style = {draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            sorted/.style = {array, fill=blue!25},
+            framed/.style = {draw, red, densely dashed, label=below:\texttt{sort}},
+        ]
+        { start chain = going right
+            \node [array] (03) {$3$};
+            \node [array] (27) {$27$};
+            \node [array] (38) {$38$};
+            \node [array] (43) {$43$};
+            %
+            \node [array, shifted] (09) {$9$};
+            \node [array] (10) {$10$};
+            \node [array] (82) {$82$};
+        }
+
+        \node [framed, fit={(03) (82)}] {};
+    \end{tikzpicture}
+
+    \begin{tikzpicture}[
+            start chain,
+            node distance = 0pt,
+            shifted/.style = {xshift=1em},
+            array/.style = {draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+            sorted/.style = {array, fill=blue!25},
+            framed/.style = {draw, red, densely dashed, label=below:\texttt{sort}},
+        ]
+        { start chain = going right
+            \node [array, sorted] (03) {$3$};
+            \node [array, sorted] (09) {$9$};
+            \node [array, sorted] (10) {$10$};
+            \node [array, sorted] (27) {$27$};
+            \node [array, sorted] (38) {$38$};
+            \node [array, sorted] (43) {$43$};
+            \node [array, sorted] (82) {$82$};
+        }
+    \end{tikzpicture}
+\end{example}
+
+\begin{defi}{Optimierung von Merge-Sort}
+    \begin{itemize}
+        \item Felduntergrenze
+              \begin{itemize}
+                  \item Feld wird nicht in Einzelelemente geteilt, sondern in Gruppen zu $n$ Elementen, die dann mit Insertion-Sort sortiert werden
+                  \item gcj-Java nimmt 6 Elemente als Grenze
+                  \item Python nimmt 64 Elemente als Grenze
+              \end{itemize}
+        \item Trivialfall
+              \begin{itemize}
+                  \item ist das kleinste Element der einen Teilfolge größer als das größte Element der anderen Teilfolge $\implies$ Zusammenfügen beschränkt sich auf Hintereinandersetzen der beiden Teilfolgen
+                  \item genutzt von z.B. Java
+                  \item Vorsortierung wird ausgenutzt
+              \end{itemize}
+        \item Natürlicher Merge-Sort
+              \begin{itemize}
+                  \item weitergehende Ausnutzung der Vorsortierung
+                  \item jede Zahlenfolge besteht aus Teilstücken, die abwechselnd monoton steigend und monoton fallend sind
+                  \item Idee ist, diese bereits sortierten Teilstücke als Ausgangsbasis des Merge-Sorts zu nehmen
+                  \item bei nahezu sortierten Feldern werden die Teilstücke sehr groß und as Verfahren sehr schnell
+                  \item Best-Case in $\bigo(n)$
+              \end{itemize}
+    \end{itemize}
+\end{defi}
+
+\subsection{Spezialisierte Sortierverfahren}
+
+\begin{defi}{Radix-Sort}
+    \emph{Radix-Sort} heißt eine Gruppe von Sortierverfahren mit folgenden Eigenschaften:
+    \begin{itemize}
+        \item Sortiervorgang erfolgt mehrstufig
+        \item zunächst wird Grobsortierung vorgenommen, zu der nur ein Teil des Schlüssels (z.B. erstes Zeichen) herangezogen wird
+        \item grob sortierte Bereiche dann feinsortiert, wobei schrittweise der restliche Teil des Schlüssels verwendet wird
+    \end{itemize}
+\end{defi}
+
+\begin{bonus}{MSD-Radix-Sort}
+    \begin{itemize}
+        \item MSD = most significant digits
+        \item In der 1. Stufe wird die erste Ziffer betrachtet.
+        \item Benutzt Bucket-Sort mit Teillisten.
+        \item Bucket-Sort wird für die einzelnen Buckets weiter genutzt, bis alle Werte sortiert sind
+    \end{itemize}
+\end{bonus}
+
+\begin{bonus}{LSD-Radix-Sort}
+    \begin{itemize}
+        \item LSD = least significant digits
+        \item In der 1. Stufe wird die letzte Ziffer betrachtet.
+        \item Benutzt Bucket-Sort mit schlüsselindiziertem Zählen.
+    \end{itemize}
+\end{bonus}
+
+\begin{algo}{Bucket-Sort}
+    \emph{Bucket-Sort} sortiert für bestimmte Werte-Verteilungen einen Datensatz in linearer Zeit.
+
+    Der Algorithmus ist in drei Phasen eingeteilt:
+    \begin{enumerate}
+        \item Verteilung der Elemente auf die Buckets
+        \item Jeder Bucket wird mit einem weiteren Sortiertverfahren sortiert .
+        \item Der Inhalt der sortierten Buckets wird konkateniert.
+    \end{enumerate}
+
+    Zu viele oder zu wenige Eimer können zu großen Laufzeitproblemen führen.
+    Empfohlen werden:
+    \begin{itemize}
+        \item Sedgewick: Für 64-bit Schlüssel (\texttt{long}) $2^{16}$ Eimer
+        \item Linux-related: Für 32-bit Schlüssel (\texttt{int}) $2^{11}$ Eimer
+    \end{itemize}
+
+    Der Einsatz von Bucket-Sort lohnt sich nur, wenn die Anzahl der zu sortierenden Werte deutlich größer ist, als die Anzahl der Eimer.
+\end{algo}
\ No newline at end of file
diff --git a/algo/warshall.java b/algo/warshall.java
new file mode 100644
index 0000000..2f29f81
--- /dev/null
+++ b/algo/warshall.java
@@ -0,0 +1,7 @@
+for(int i = 0; i < a.length; i++) {
+    for(int j = 0; j < a.length; j++) {
+        for(int k = 0; k < a.length; k++) {
+            a[j][k] = a[j][k] || (a[j][i] && a[i][k]);
+        }
+    }
+}
\ No newline at end of file
diff --git a/ana1/ana1.tex b/ana1/ana1.tex
index d3c8547..ff98701 100644
--- a/ana1/ana1.tex
+++ b/ana1/ana1.tex
@@ -1,1563 +1,1563 @@
-\documentclass[german]{../spicker}
-
-\usepackage{amsmath}
-\usepackage{polynom}
-\usepackage{array}   % for \newcolumntype macro
-\usepackage{tikz}
-\usepackage{pgfplots}
-\usepgfplotslibrary{fillbetween}
-\pgfplotsset{compat=1.17}
-\title{Analysis 1}
-\author{Patrick Gustav Blaneck, Felix Racz}
-\makeindex[intoc]
-\makeindex[intoc, name=Beispiele,title=Beispiele]
-
-\newcommand{\scalarprod}[1]{\left\langle #1 \right\rangle}
-\newcommand{\vektor}[1]{\begin{pmatrix*}[r] #1 \end{pmatrix*}}
-\renewcommand{\span}[1]{\operatorname{span}\left(#1\right)}
-
-\renewcommand{\abs}[1]{\left| #1 \right|}
-\newcommand{\cis}[1]{\left( \cos\left( #1 \right) + i \sin\left( #1 \right) \right)}
-\newcommand{\sgn}{\text{sgn}}
-\newcommand{\diff}{\mathrm{d}}
-\newcommand{\dx}{~\mathrm{d}x}
-\newcommand{\du}{~\mathrm{d}u}
-\newcommand{\dv}{~\mathrm{d}v}
-\newcommand{\dw}{~\mathrm{d}w}
-\newcommand{\dt}{~\mathrm{d}t}
-\newcommand{\dn}{~\mathrm{d}n}
-\newcommand{\dudx}{~\frac{\mathrm{d}u}{\mathrm{d}x}}
-\newcommand{\dudn}{~\frac{\mathrm{d}u}{\mathrm{d}n}}
-\newcommand{\dvdx}{~\frac{\mathrm{d}v}{\mathrm{d}x}}
-\newcommand{\dwdx}{~\frac{\mathrm{d}w}{\mathrm{d}x}}
-\newcommand{\dtdx}{~\frac{\mathrm{d}t}{\mathrm{d}x}}
-\newcommand{\ddx}{\frac{\mathrm{d}}{\mathrm{d}x}}
-\newcommand{\dFdx}{\frac{\mathrm{d}F}{\mathrm{d}x}}
-\newcommand{\dfdx}{\frac{\mathrm{d}f}{\mathrm{d}x}}
-\newcommand{\interval}[1]{\left[ #1 \right]}
-
-\newcolumntype{L}{>{$}l<{$}} % math-mode version of "l" column type
-\newcolumntype{R}{>{$}r<{$}} % math-mode version of "r" column type
-\newcolumntype{C}{>{$}c<{$}} % math-mode version of "c" column type
-\newcolumntype{P}{>{$}p<{$}} % math-mode version of "l" column type
-
-\begin{document}
-\maketitle
-\tableofcontents
-\newpage
-
-%\setcounter{section}{1}
-
-\section{Grundlagen}
-
-\subsection{Funktionen}
-
-\begin{thirdboxl}
-    \begin{defi}{Injektivität}
-        $f(x) = f(x')\implies x = x'$
-    \end{defi}
-\end{thirdboxl}%
-\begin{thirdboxm}
-    \begin{defi}{Surjektivität}
-        $\forall y, \exists x: y = f(x)$
-    \end{defi}
-\end{thirdboxm}%
-\begin{thirdboxr}
-    \begin{defi}{Bijektivität}
-        $\forall y, \exists! x: y = f(x)$
-    \end{defi}
-\end{thirdboxr}%
-
-\begin{algo}{Beweisen der Injektivität}
-    \begin{enumerate}
-        \item Behauptung: $f(x) = f(x')$
-        \item Umformen auf eine Aussage der Form $x = x'$
-    \end{enumerate}
-\end{algo}
-
-\begin{algo}{Beweisen der Surjektivität}
-    \begin{enumerate}
-        \item Aufstellen der Umkehrfunktion
-        \item Zeigen, dass diese Umkehrfunktion auf dem gesamten Definitionsbereich definiert ist
-    \end{enumerate}
-\end{algo}
-
-\begin{algo}{Beweisen der Bijektivität}
-    \begin{enumerate}
-        \item Injektivität beweisen
-        \item Surjektivität beweisen
-    \end{enumerate}
-\end{algo}
-
-\subsection{Polynome}
-
-\begin{defi}{Polynom}
-    Eine Funktion $p(x) = \sum^n_{i=0} a_i x^i$ mit $a_i, x \in \R ~ (\C), a_n \neq 0$ heißt \emph{Polynom vom Grad} $n$.
-\end{defi}
-
-\begin{halfboxl}
-    \vspace{-\baselineskip}
-    \begin{bonus}{Abspalten von Linearfaktoren}
-        Sei $x_0$ eine Nullstelle eines Polynoms $p(x)$, dann ist
-        $$ p(x) = q(x) \cdot (x-x_0).$$
-        Dabei ist $(x-x_0)$ ein abgespaltener Linearfaktor und $q(n)$ das entsprechend reduzierte Polynom mit $q(n) = \frac{p(x)}{x-x_0}$.
-    \end{bonus}
-\end{halfboxl}%
-\begin{halfboxr}
-    \vspace{-\baselineskip}
-    \begin{bonus}{Faktorisierung}
-        Sind $x_1, \ldots, x_n$ Nullstellen eines Polynoms $p(x)$, so ist
-        $$ p(x) = a_n \cdot (x-x_1) \cdot \ldots \cdot (x-x_n)$$
-        die Faktorisierung von $p(x)$.
-    \end{bonus}
-\end{halfboxr}%
-
-\subsubsection*{Polynome vom Grad 2}
-\begin{halfboxl}
-    \vspace{-\baselineskip}
-    \begin{algo}{$pq$-Formel}
-        \begin{enumerate}
-            \item Polynom der Form $x^2 + px + q = 0$
-            \item $x_{1,2} = -\frac{p}{2} \pm \sqrt{\left(\frac{p}{2}\right)^2 - q}$
-        \end{enumerate}
-    \end{algo}
-\end{halfboxl}%
-\begin{halfboxr}
-    \vspace{-\baselineskip}
-    \begin{algo}{Mitternachtsformel}
-        \begin{enumerate}
-            \item Polynom der Form $ax^2 + bx + c = 0$
-            \item $x_{1,2} = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$
-        \end{enumerate}
-    \end{algo}
-\end{halfboxr}
-
-\begin{bonus}{Besonderheiten bei $x \in \C$}
-    \begin{itemize}
-        \item Ist $x_i$ eine Nullstelle des Polynoms $p(x)$ mit \emph{reellen Koeffizienten}, dann ist auch $\overline{x_i}$ eine Nullstelle von $p(x)$.
-    \end{itemize}
-\end{bonus}
-
-\subsection{Gebrochen rationale Funktionen}
-
-\begin{defi}{Gebrochen rationale Funktionen}
-    Seien $p_m(x)$ und $p_n(x)$ Polynome vom Grad $m$ bzw. $n$, dann heißt
-    $$
-        f(x) = \frac{p_m(x)}{p_n(x)}
-    $$
-    \emph{gebrochen rationale Funktion}.\\
-    Im Fall $m<n$ heißt die Funktion \emph{echt gebrochen rational}, sonst \emph{unecht gebrochen rational}.
-\end{defi}
-
-\begin{algo}{Polynomdivision}
-    Gegeben ist \emph{unecht gebrochen rationale Funktion} $f(x) = \frac{p_m(x)}{p_n(x)}$
-    \begin{enumerate}
-        \item \emph{Dividiere} die größten Exponenten aus beiden Polynomen
-        \item \emph{Mutipliziere} Ergebnis mit Divisor zurück
-        \item \emph{Subtrahiere} Ergebnis vom Dividenden
-        \item Wiederhole, bis:
-              \subitem Ergebnis 0 ist, oder
-              \subitem Grad des Ergebnisses kleiner ist als Grad des Divisors (ergibt \emph{Rest})
-    \end{enumerate}
-\end{algo}
-
-%\begin{bonus}{Polynomdivision Beispiel}
-%    \polylongdiv[style=C]{x^3+x^2-1}{x-1}
-%\end{bonus}
-
-\begin{algo}{Hornerschema}
-    Gegeben ist \emph{Polynom} $p_m(x)$ und ein \emph{Wert} $x_0$
-
-    Vorbereitung:
-    \begin{itemize}
-        \item Erstelle eine Tabelle mit $m + 2$ Spalten und 3 Zeilen
-        \item Erste Zelle frei lassen und dann Koeffizienten $a_m, a_{m-1}, \ldots, a_0$ in die erste Zeile schreiben
-        \item In die erste Zelle der zweiten Zeile kommt $x_0$
-    \end{itemize}
-
-    Anwendung (beginnend in zweiter Zelle der dritten Zeile):
-    \begin{enumerate}
-        \item Erster Koeffizient der ersten Zeile in die dritte Zeile
-        \item \emph{Multipliziere} Zahl der ersten Spalte mit diesem Koeffizienten
-        \item Schreibe Ergebnis in zweite Zeile, unterhalb des nächsten Koeffizienten
-        \item \emph{Addiere} Ergebnis mit diesem Koeffizienten
-        \item Wiederhole 2-4 bis zum Schluss
-    \end{enumerate}
-
-    Ergebnis:
-    \begin{itemize}
-        \item Wert des Polynoms $p_m(x_0)$ in letzter Zelle der letzten Zeile
-        \item Bei Wert $p_m(x_0) = 0$ steht in der letzten Zeile das Polynom nach Abspalten des Linearfaktors $(x-x_0)$
-    \end{itemize}
-\end{algo}
-
-%\begin{bonus}{Hornerschema Beispiel}
-%    Gegeben: $p_4(x) = 2x^4-3x^3+4x^2-5x+2$ an der Stelle $x_0 = 1$
-%    \polyhornerscheme[x=1]{2x^4-3x^3+4x^2-5x+2}
-%    Ergebnis: $p_4(1) = 0 \implies (x-1) \text{ ist Linearfaktor von } p_4(x) \text{ und } \frac{p_4(x)}{x-1} = 2x^3 = x^2 + 3x -2$
-%\end{bonus}
-
-\begin{bonus}{Tipps und Tricks}
-    \begin{itemize}
-        \item Polynomdivision und Hornerschema funktionieren auch sehr gut mit komplexen Zahlen
-        \item Bei mehreren abzuspaltenden Linearfaktoren bietet sich das Hornerschema sehr gut an
-    \end{itemize}
-\end{bonus}
-
-\begin{algo}{Partialbruchzerlegung}
-    Gegeben: \emph{Echt gebrochen rationale Funktion}  $f(x) = \frac{p_m(x)}{p_n(x)}$
-    \begin{enumerate}
-        \item Berechne Nullstellen des \emph{Nennerpolynoms} $x_0, \ldots, x_k \in \R$
-        \item Verschiedene Fälle:
-              \subitem Relle Nullstellen:
-              \subsubitem $x_i$ ist einfache Nullstelle $\implies \frac{A}{x-x_1}$
-              \subsubitem $x_i$ ist $r$-fache Nullstelle $\implies  \frac{A_1}{x-x_1} +  \frac{A_2}{(x-x_1)^2} + \ldots + \frac{A_r}{(x-x_1)^r}$
-              \subitem Nichtrelle Nullstellen:
-              \subsubitem Einfacher quadratischer Term $\implies \frac{Ax + B}{x^2+px+q}$
-              \subsubitem $r$-facher quadratischer Term $\implies \frac{A_1x + B_1}{x^2+px+q} + \frac{A_2x + B_2}{(x^2+px+q)^2} + \ldots + \frac{A_rx + B_r}{(x^2+px+q)^r}$
-        \item Koeffizientenvergleich:
-              \begin{enumerate}
-                  \item Brüche gleichnamig machen (Multipliziere beide Seiten mit Nennerpolynom)
-                  \item Potenzen von $x$ zusammenfassen
-                  \item Gleichungssystem lösen
-                  \item Lösungen in Ansatz einsetzen
-              \end{enumerate}
-    \end{enumerate}
-\end{algo}
-
-\begin{bonus}{Besonderheiten in $\C$}
-    \begin{itemize}
-        \item Für Partialbrüche ohne relle Nullstellen können wir in $\C$ stets Nullstellen finden. Das Verfahren erfolgt dann analog mit komplexen Nullstellen.
-    \end{itemize}
-\end{bonus}
-
-\begin{bonus}{Tipps und Tricks}
-    \begin{itemize}
-        \item Partialbruchzerlegung ist erst bei einer \emph{echt gebrochen rationale Funktion} sinnvoll
-        \item Ist die Funktion unecht gebrochen rational, führe zuerst eine Polynomdivision durch und zerlege dann den Rest in die Partialbrüche
-    \end{itemize}
-\end{bonus}
-
-
-\subsection{Gleichungen und Ungleichungen}
-
-\begin{algo}{Berechnen einer Lösungsmenge bei Ungleichungen}
-    Gegeben: Ungleichung mit Bezug auf Variable $x$
-    \begin{enumerate}
-        \item Für jeden Betrag $\left| a(x) \right|$, eine Fallunterscheidung machen für
-              \subitem $a(x) \geq 0 \implies \left| a(x) \right| = a(x)$
-              \subitem $a(x) < 0 \implies \left| a(x) \right| = -a(x)$
-              \subitem \emph{Hier haben wir bereits eine Einschränkung für die Lösungsmenge des jeweiligen Falles gegeben!}
-        \item Ungleichungen nach $x$ auflösen
-        \item Jeder Fall $i$ erzeugt eine Lösungsmenge $L_i$ bestehend aus\emph{ umgestellter Ungleichung} und Fallbedingungen
-        \item Lösungsmenge $L = \bigcup^n_{i = 1} L_i$, wobei $n$ die Anzahl der betrachteten Fälle ist
-    \end{enumerate}
-\end{algo}
-
-\begin{bonus}{Tipps und Tricks}
-    \begin{itemize}
-        \item $n$ Beträge in der Gleichung können zu $2^n$ Fällen führen.
-        \item Es kann vorkommen, dass ein Fall einer Fallunterscheidung unerreichbar ist, z.B. für $x > 5 \land x < 1$. Die Lösungsmenge $L$ ist dann leer ($L = \emptyset$).
-        \item Radizieren (Wurzelziehen) ist in Ungleichungen nur erlaubt, wenn danach der \emph{Betrag} der Wurzel betrachtet wird
-        \item Quadrieren einer Ungleichung `erzeugt' potentiell ein falsches Ergebnis. Nach dem Quadrieren sollte man also jedes Ergebnis prüfen.
-        \item Multiplikation mit negativen Zahlen sollte vermieden werden, da das Umdrehen des Ungleichheitszeichens schnell für Flüchtigkeitsfehler sorgen kann.
-    \end{itemize}
-\end{bonus}
-
-\subsection{Komplexe Analysis}
-\begin{bonus}{Rechenregeln für komplexe Zahlen in kartesischen Koordinaten}
-    \textbf{Darstellung:} $z = a + i \cdot b$ und $w = c + i \cdot d$
-
-    \textbf{Addition und Subtraktion:} $z \pm w = (a\pm c) + i \cdot (b \pm d)$
-
-    \textbf{Multiplikation:} $z \cdot w = (ac -bd) + i \cdot (ad + bc)$
-
-    \textbf{Division:} $\frac{z}{w} = \frac{z \cdot \overline{w}}{w \cdot \overline{w}}$
-
-    \textbf{Komplex konjugiert:} Vorzeichen von $\Im$ wechseln: $\overline{z} = a- i \cdot b$
-
-    \textbf{Betrag:} Abstand vom Ursprung: $\abs{z} = \sqrt{z \cdot \overline{z}} = \sqrt{a^2 + b^2}$
-\end{bonus}
-
-\begin{bonus}{Rechenregeln für komplexe Zahlen in Polarkoordinaten}
-    \textbf{Darstellung:} $z = r \cdot (\cos\theta + i \cdot \sin \theta) = r \cdot e^{i \cdot \theta}$
-
-    \textbf{Multiplikation:} $z \cdot w = r_z \cdot r_w \cdot e^{i \cdot (\theta_z + \theta_w)}$
-
-    \textbf{Division:} $\frac{z}{w} = \frac{r_z}{r_w} \cdot e^{i \cdot (\theta_z - \theta_w)}$
-
-    \textbf{Komplex konjugiert:} $\overline{z} = (r, -\theta) = (r, 2\pi - \theta)$
-
-    \textbf{Betrag:} $\abs{z} = r$
-\end{bonus}
-
-\begin{algo}{Kartesische Koordinaten $\to$ Polarkoordinaten}
-    \begin{enumerate}
-        \item $r = \abs{z} = \sqrt{x^2 + y^2}$
-        \item
-              \subitem $y \geq 0 : \theta = \arctan \frac{x}{r}$
-              \subitem $y < 0 : \theta = -\arctan \frac{x}{r}$
-    \end{enumerate}
-\end{algo}
-
-\begin{algo}{Polarkoordinaten $\to$ Kartesische Koordinaten}
-    \begin{enumerate}
-        \item $x = r \cdot \cos \theta$
-        \item $y = r \cdot \sin \theta$
-    \end{enumerate}
-\end{algo}
-
-\begin{algo}{Radizieren von komplexen Zahlen}
-    Gesucht: Lösung von $z^n = r \cdot e^{i\cdot \theta}$
-    \begin{enumerate}
-        \item Ist $z^n$ nicht in Polarkoordinaten gegeben, so ist zunächst die Polarform zu bilden.
-        \item Bertechne $r_k = \sqrt[n]{r}$. Dieser Radius ist die Länge aller Lösungen.
-        \item Berechne für alle $k \in [0, n-1]$
-              $$
-                  \theta_k = \frac{\theta + k\cdot 2\pi}{n} = \frac{\theta}{n} + \frac{k}{n} \cdot 2\pi
-              $$
-        \item Die Lösungen sind dann die $n$ Zahlen $z_k = (r_k, \theta_k)$ für $k \in [0, n-1]$.
-    \end{enumerate}
-    \qed
-\end{algo}
-
-\section{Folgen und Reihen}
-
-\subsection{Grundlagen}
-\begin{bonus}{Rechenregeln für Summen}
-    $$
-        \begin{aligned}
-            \sum_{k=m}^n a_k                    & = \sum_{k=m-l}^{n-l} a_{k+l}          \\
-            \sum_{k=m}^n a_k                    & = \sum_{k=m}^c a_k + \sum_{k=c}^n a_k \\
-            \sum_{k=m}^n a_k + \sum_{k=m}^n b_k & = \sum_{k=m}^n a_k + b_k              \\
-            \sum_{k=m}^n c\cdot a_k             & = c\cdot\sum_{k=m}^n a_k
-        \end{aligned}
-    $$
-    Die Regeln gelten auch für unendliche Reihen.
-\end{bonus}
-
-\begin{bonus}{Wichtige Summen}
-    \begin{itemize}
-        \item Arithmetische Summe: $$\sum^n_{k=1} k = \frac{n(n+1)}{2}$$
-        \item Geometrische Summe: $$\sum^n_{k=1} x^k = \frac{1-x^{n+1}}{1-x} = \frac{x^{n+1} - 1}{x-1}$$
-        \item Summe der Quadratzahlen: $$\sum^n_{k=1} k^2 = \frac{n(n+1)(2n+1)}{6}$$
-        \item Summe der Kubikzahlen: $$\sum^n_{k=1} k^3 = \left(\frac{n(n+1)}{2}\right)^2$$
-    \end{itemize}
-\end{bonus}
-
-\subsection{Binomialkoeffizienten und der binomische Lehrsatz}
-
-\begin{defi}{Binomialkoeffizient}
-    Die Anzahl der $k$-elementigen Teilmengen einer $n$-elementigen Menge bezeichnen wir mit $\binom{n}{k}$.
-    Diese Zahlen heißen \emph{Binomialkoeffizienten} oder Binomialzahlen.
-\end{defi}
-
-\begin{defi}{Rekursionsformel für Binomialkoeffizient}
-    Für $k, n \in \N$ mit $k \leq n$ gilt:
-    $$
-        \binom{n}{k} = \binom{n-1}{k} + \binom{n-1}{k-1}
-    $$
-\end{defi}
-
-\begin{defi}{Kombinatorische Formel für Binomialkoeffizient}
-    $$
-        \binom{n}{k} = \begin{cases}
-            0                          & , \text{ für } k > n    \\
-            \frac{n!}{(n-k)! \cdot k!} & , \text{ für } k \leq n
-        \end{cases}
-    $$
-\end{defi}
-
-\begin{defi}{Der binomische Lehrsatz}
-    Für beliebige $a, b \in \R$ und $n \in \N$ gilt:
-    $$
-        (a+b)^n = \sum^n_{k=0} \binom{n}{k} a^k \cdot b^{n-k}
-    $$
-\end{defi}
-
-\section{Konvergenz von Folgen, Reihen und Funktionen}
-
-\subsection{Grundlagen}
-\begin{defi}{Schranken}
-    Gilt $$\forall x\in A : \abs{x} < K,$$ so heißt die Menge $A$ \emph{beschränkt} und $K$ \emph{Schranke}.
-
-    Gilt nur $x \leq K$, so heißt die Menge \emph{nach oben beschränkt} und $K$ \emph{obere Schranke}.
-
-    Im Falle $x \geq K$ heißt $A$ \emph{nach unten beschränkt} und $K$ \emph{untere Schranke}.
-\end{defi}
-
-\begin{defi}{Beschränktheit}
-    Eine Menge $M$ heißt genau dann \emph{beschränkt}, wenn sie nach oiben und nach unten beschränkt ist.
-\end{defi}
-
-\begin{defi}{Supremum, Maximum}
-    Der Wert
-    $$
-        K= \min_{K^* \in \R} \{K \text{ ist obere Schranke}\}
-    $$
-    heißt \emph{kleinste obere Schranke} oder \emph{Supremum von A}.
-    Notation: $\sup A$
-
-    Gilt $K \in A$, so heißt $K$ \emph{Maximum von A}. Notation: $\max A$.
-\end{defi}
-
-\begin{defi}{Infimum, Minimum}
-    Der Wert
-    $$
-        K= \max_{K^* \in \R} \{K \text{ ist untere Schranke}\}
-    $$
-    heißt \emph{größte untere Schranke} oder \emph{Infimum von A}.
-    Notation: $\inf A$
-
-    Gilt $K \in A$, so heißt $K$ \emph{Minimum von A}. Notation: $\min A$.
-\end{defi}
-
-\begin{bonus}{Vollständigkeitsaxiom}
-    Jede nicht-leere nach oben beschränkte Menge $A$ hat ein \emph{Supremum}, jede nicht-leere nach unten beschränkte Menge $A$ hat ein \emph{Infimum}.
-\end{bonus}
-
-\begin{defi}{$\epsilon$-Umgebung von $K$ in $\R$}
-    $$
-        U_\epsilon(K) := \{ x \in \R \mid \abs{x - K} < \epsilon \}
-    $$
-    heißt $\epsilon$\emph{-Umgebung von} $K$ \emph{in} $\R$.
-\end{defi}
-
-\begin{defi}{Innerer Punkt}
-    $x_0 \in A$ heißt \emph{innerer Punkt von A}, falls eine $\epsilon$-Umgebung existiert, so dass $U_\epsilon (x_0) \in A$, also vollständig in $A$ enthalten ist.
-    $A$ heißt \emph{offen}, falls jeder Punkt der Menge innerer Punkt ist.
-\end{defi}
-
-\begin{defi}{Häufungspunkt (Mengen)}
-    $a$ heißt \emph{Häufungspunkt einer Menge A}, wenn $\forall \epsilon > 0$ in der Umgebung $U_\epsilon (a)$ ein Punkt $x \in A$ mit $x \neq a$ existiert.
-
-    Sei $x$ größter Häufungspunkt von $A$, dann heißt
-    $$
-        x = \lim\sup A \text{ (Limes Superior).}
-    $$
-
-    Sei $x$ kleinster Häufungspunkt von $A$, dann heißt
-    $$
-        x = \lim\inf A \text{ (Limes Inferior).}
-    $$
-\end{defi}
-
-\begin{defi}{Abgeschlossenheit}
-    $A$ heißt \emph{abgeschlossen}, wenn jeder Häufungspunkt von $A$ in $A$ liegt.
-\end{defi}
-
-\begin{defi}{Bolzano-Weierstrass für Mengen}
-    Jede unendliche beschränkte Menge $A$ reeller Zahlen besitzt mindestens einen Häufungspunkt.
-\end{defi}
-
-\subsection{Konvergenz von Folgen}
-
-\begin{defi}{Monotonie}
-    Eine Folge $a_n$ heißt \emph{monoton wachsend}, falls $\forall n \in \N : a_n \leq a_{n+1}$.
-    Gilt sogar $a_n < a_{n+1}$, so heißt die Folge \emph{streng monoton wachsend}.
-
-    Eine Folge $a_n$ heißt \emph{monoton fallend}, falls $\forall n \in \N : a_n \geq a_{n+1}$.
-    Gilt sogar $a_n > a_{n+1}$, so heißt die Folge \emph{streng monoton fallend}.
-\end{defi}
-
-\begin{defi}{Häufungspunkt (Folgen)}
-
-    $a$ heißt \emph{Häufungspunkt einer Folge}, wenn zu jeder $\epsilon$-Umgebung $U_\epsilon (a)$ unendlich viele Folgenglieder $a_n$ in $U_\epsilon (a)$ liegen, also
-    $$
-        \forall \epsilon > 0 , \exists \infty\text{-viele } a_n : \abs{a_n - a} < \epsilon
-    $$
-\end{defi}
-
-\begin{defi}{Grenzwert / Limes}
-    Eine Zahl $a\in \R \text{ oder } \C$ heißt \emph{Grenzwert} oder \emph{Limes} einer Zahlenfolge $a_n$, wenn $\forall \epsilon >0, \exists n_0 (\epsilon)$, so dass für alle $n \geq n_0 (\epsilon)$ (fast immer) gilt
-    $$
-        \abs{a_n - a} < \epsilon
-    $$
-
-    Jeder Grenzwert ist auch ein Häufungspunkt.
-\end{defi}
-
-\begin{defi}{Konvergenz / Divergenz}
-    Eine Folge $a_n$ heißt \emph{konvergent}, falls ein Grenzwert existiert.
-
-    Existiert dieser nicht, so heißt die Folge \emph{divergent}.
-
-    Eine konvergente Folge mit $a=0$ heißt \emph{Nullfolge}.
-
-    Ist $\lim_{n\to\infty}a_n = a$, so ist $\lim_{n\to\infty}(a_n-a) = 0$, d.h. $b_n=\lim_{n\to\infty}(a_n-a)$ ist \emph{Nullfolge}.
-\end{defi}
-
-\begin{defi}{Bolzano-Weierstrass für Folgen}
-    1. Jede beschränkte Folge $a_n$ besitzt mindestens eine konvergente Teilfolge.
-
-    2. Jede beschränkte Folge $a_n$ besitzt einen kleinsten und größten Häufungspunkt mit $b \geq a$
-    $$
-        \begin{aligned}
-            a & = \lim\inf a_n, \\
-            b & = \lim\sup a_n.
-        \end{aligned}
-    $$
-    3. Eine Folge konvergiert genau dann, wenn sie beschränkt ist und nur einen Häufungspunkt besitzt. Dann ist
-    $$
-        a = \lim_{n\to\infty} a_n = \lim\inf a_n = \lim\sup a_n.
-    $$
-\end{defi}
-
-\begin{defi}{Sandwich-Lemma oder Einschnürungssatz}
-    Gilt fast immer, also bis auf endliche viele $n$ (oder auch für $n \geq n_0$)
-    $$
-        a_n \leq c_n \leq b_n
-    $$
-    und $\lim_{n\to\infty}a_n = a = \lim_{n\to\infty}b_n$, so ist
-    $$
-        \lim_{n\to\infty}c_n = a.
-    $$
-\end{defi}
-
-\begin{bonus}{Rechenregeln für Grenzwerte}
-    $$
-        \begin{aligned}
-            \lim_{n\to\infty} (a_n + b_n)     & = a+b                                          \\
-            \lim_{n\to\infty} c\cdot a_n      & = c \cdot a                                    \\
-            \lim_{n\to\infty} a_nb_n          & = a \cdot b                                    \\
-            \lim_{n\to\infty} \frac{a_n}{b_n} & = \frac{a}{b} \text{ für } b_n \neq 0, b\neq 0 \\
-            \lim_{n\to\infty} \frac{1}{a_n}   & = \frac{1}{a} \text{ für } a_n \neq 0, a\neq 0
-        \end{aligned}
-    $$
-\end{bonus}
-
-\begin{bonus}{Wichtige Grenzwerte}
-    $$
-        \begin{aligned}
-            \lim_{n\to\infty} \frac{1}{n^\alpha} & = 0 \text{ für } \alpha >0             \\
-            \lim_{n\to\infty} \sqrt[n]{a}        & = 1 \text{ für } a > 0                 \\
-            \lim_{n\to\infty} q^n                & = 0 \text{ für } \abs{q} < 1           \\
-            \lim_{n\to\infty} n^kq^n             & = 0 \text{ für } \abs{q} < 1, k \in \N \\
-            \lim_{n\to\infty} \sqrt[n]{n}        & = 1                                    \\
-            \lim_{n\to\infty} \frac{n!}{n^n}     & = 0
-        \end{aligned}
-    $$
-\end{bonus}
-
-\begin{defi}{Konvergenz monotoner Folgen}
-    Jede beschränkte monotone Folge ist konvergent.
-
-    Der Grenzwert ist bei monoton fallenden Folgen $\inf a_n$, bei wachsenden Folgen $\sup a_n$.
-\end{defi}
-
-\begin{defi}{Eulersche Zahl}
-    Der Grenzert $\lim_{n\to\infty} \left(1 + \frac{1}{n}\right)^n = e$ existiert und heißt \emph{eulersche Zahl}.
-\end{defi}
-
-\begin{defi}{Cauchy-Konvergenz}
-    Eine Folge $a_n$ heißt \emph{Cauchy-konvergent}, falls
-    $$
-        \forall\epsilon > 0, \exists n_0 (\epsilon) \text{ mit } \abs{a_n-a_m} < \epsilon, \forall n > m \geq n_0.
-    $$
-\end{defi}
-
-\subsection{Unendliche Reihen}
-\begin{defi}{Unendliche Reihe}
-    \[
-        \sum_{k=m}^{\infty} a_k = \lim_{n\to\infty} \sum_{k=m}^{n} a_k
-    \]
-\end{defi}
-
-\begin{defi}{Cauchy-Reihe}
-    \[
-        \forall\varepsilon>0 , \exists n_0(\varepsilon) : \left| \sum_{k=m+1}^n a_k \right| < \varepsilon , \forall n>m\geq n_0
-    \]
-    Eine Reihe \emph{konvergiert} genau dann, wenn die zugehörige Cauchy-Reihe konvergiert.
-\end{defi}
-
-\begin{bonus}{Konvergenz durch Nullfolge}
-    Sei $\sum^n_{k=1}a_k$ konvergent, dann ist $a_k$ Nullfolge.
-\end{bonus}
-
-\begin{defi}{Absolute Konvergenz}
-    Eine Reihe heißt \emph{absolut konvergent} wenn $\sum_{k=0}^{\infty} |a_k|$ konvergiert.
-
-    Analog heißt eine Folge \emph{absolut konvergent} wenn $|a_n|$ konvergiert.
-\end{defi}
-
-\begin{algo}{Teleskopsumme}
-    Eine Teleskopsumme hat man dann, wenn sich die Terme einer Summe gegenseitig auflösen.
-\end{algo}
-
-\begin{example}{Teleskopsumme}
-    \[
-        \sum_{k=1}^n \frac{1}{k} - \frac{1}{k+1} = \sum_{k=1}^n \frac{1}{k} - \sum_{k=2}^{n+1} \frac{1}{k} = \frac{1}{1} +\left( \sum_{k=2}^n \frac{1}{k} - \sum_{k=2}^n \frac{1}{k} \right) - \frac{1}{n+1} = 1-\frac{1}{n+1}
-    \]
-\end{example}
-
-\begin{algo}{Majorantenkriterium}
-    Man sucht eine zweite Folge $b_k$, sodass diese fast immer größer ist als die vorgegebene Folge ist.
-
-    Konvergiert $\sum_{k=1}^{\infty} b_k$ dann konvergiert auch die ursprüngliche Reihe.
-\end{algo}
-
-\begin{example}{Majorantenkriterium}
-    Konvergiert $\sum_{k=1}^{\infty} \frac{1}{k^2+1}$?
-
-    Ja, da $\frac{1}{k^2+1} < \frac{1}{k^2}$ und wir wissen, dass $\sum_{k=1}^{\infty} \frac{1}{k^2}$ konvergiert.\\
-    Wir haben also eine konvergente Majorante.
-\end{example}
-
-\begin{algo}{Minorantenkriterium}
-    Man sucht eine zweite Folge $b_k$, sodass diese fast immer kleiner ist als die vorgegebene Folge ist.
-    Divergiert $\sum_{k=1}^{\infty} b_k$ dann divergiert auch die ursprüngliche Reihe.
-\end{algo}
-
-\begin{example}{Majorantenkriterium}
-    Konvergiert $\sum_{k=1}^{\infty} \frac{1}{\ln(k)}$?
-
-    Nein, da $\frac{1}{k} < \frac{1}{\ln(k)}$ ($k\geq3$) und wir wissen, dass $\sum_{k=1}^{\infty} \frac{1}{k}$ divergiert.\\
-    Wir haben also eine divergente Minorante.
-\end{example}
-
-\begin{algo}{Cauchy-Kondensatioskriterium}
-    Die Konvergenz von folgenden Reihen ist äquivalent.
-    $$
-        \sum_{k=1}^{\infty} a_k \quad \text{ und } \quad
-        \sum_{k=1}^{\infty} 2^k \cdot a_{2^k}
-    $$
-\end{algo}
-
-\begin{example}{Cauchy-Kondensatioskriterium}
-    Konvergiert $\sum_{k=1}^{\infty} \frac{1}{k}$?
-
-    Die Frage ist äquivalent dazu, ob
-    \[
-        \sum_{k=1}^{\infty} 2^k \cdot \frac{1}{2^k} = \sum_{k=1}^{\infty} 1
-    \]
-    konvergiert. Das tut sie offensichtlich nicht, also konvergiert auch $\sum_{k=1}^{\infty} \frac{1}{k}$ nicht.
-\end{example}
-
-\begin{algo}{Wurzelkriterium}
-    Sei $r = \lim_{n\to\infty} \sqrt[n]{|a_n|}$.
-    Dann konvergiert $\sum_{k=1}^{\infty} a_k$ für $r<1$.
-    Für $r>1$ divergiert die Reihe.
-    Für $r=1$ liefert das Kriterium keine Aussage.
-\end{algo}
-
-\begin{example}{Wurzelkriterium}
-    Konvergiert die Reihe $\sum_{k=1}^{\infty} \frac{1}{7^k}$?
-
-    Es gilt
-    \[
-        r = \lim_{k\to\infty} \sqrt[k]{\frac{1}{7^k}} = \frac{1}{7} < 1
-    \]
-    Also konvergiert die Reihe.
-\end{example}
-
-\begin{algo}{Quotientenkriterium}
-    Sei $r = \lim_{n\to\infty} \left| \frac{a_{n+1}}{a_n} \right|$.
-
-    Dann konvergiert $\sum_{k=1}^{\infty} a_k$ für $r<1$.
-
-    Für $r>1$ divergiert die Reihe.
-
-    Für $r=1$ liefert das Kriterium keine Aussage.
-\end{algo}
-
-\begin{example}{Quotientenkriterium}
-    Konvergert die Reihe $\sum_{k=1}^{\infty} \frac{x^k}{k!}$?
-
-    Wir berechnen dann
-    \[
-        r = \lim_{n\to\infty} \left| \frac{\frac{x^{n+1}}{(n+1)!}}{\frac{x^n}{n!}} \right|
-        = \lim_{n\to\infty} \left| \frac{x}{n+1} \right| = 0
-    \]
-    Die Reihe konvergiert also für alle $x$.
-\end{example}
-
-\begin{algo}{Leibnizkriterium}
-    Das Leibnizkriterium wird für alternierende Reihen genutzt.
-
-    Sei $\sum_{k=1}^{\infty} (-1)^n \cdot a_n$ und $a_n$ eine beliebige Folge.
-
-    Jetzt muss man nur drei Eigenschaften für $a_n$ zeigen:
-    \begin{enumerate}
-        \item $a_n$ muss monoton fallend sein,
-        \item $a_n$ muss immer größer als Null sein und
-        \item $\lim_{n\to\infty} a_n =0$.
-    \end{enumerate}
-
-    Dann konvergiert die Reihe.
-\end{algo}
-
-\begin{example}{Leibnizkriterium}
-    Konvergiert die Reihe $\sum_{k=2}^{\infty} (-1)^n \cdot \frac{1}{\ln(k)}$.
-    Wir wissen, dass $\ln(k) > 0$ für $k>1$.
-    Außerdem wissen wir, dass der natürliche Logarithmus monoton steigend ist, also ist $\frac{1}{\ln(k)}$ monoton fallend.
-    Es gilt auch $\lim_{n\to\infty} = 0$. Also konvergiert die Reihe.
-\end{example}
-
-
-\subsection{Potenzreihen}
-
-\begin{defi}{Potenzreihe}
-    Sei $x \in \R, a_n \in \R$, so heißt
-    $$
-        p(x) := \sum_{n=0}^{\infty} a_nx^n
-    $$
-    \emph{reelle Potenzreihe von x}.
-
-    Jede Potenzreihe konvergiert für $x=0$.
-\end{defi}
-
-\begin{defi}{Konvergenz von Potenzreihen (Entwicklungspunkt $x_0 = 0$)}
-    Jede Potenzreihe konvergiert für $x=0$.
-
-    Jede Potenzreihe konvergiert für
-    $$
-        \abs{x} < R = \lim_{n\to\infty} \abs{\frac{a_n}{a_{n+1}}} \quad \text{ bzw. } \quad \abs{x} < R = \frac{1}{\lim_{n\to\infty} \sqrt[n]{\abs{a_n}}}
-    $$
-    und divergiert für $\abs{x} > R$.
-
-    Der Rand muss oft gesondert betrachtet werden!
-\end{defi}
-
-\begin{defi}{Konvergenz von Potenzreihen (Entwicklungspunkt $x_0 \neq 0$)}
-    Jede Potenzreihe $p(x) = \sum^\infty_{n=0} a_n (x-x_0)^n$ konvergiert für
-    $$
-        \abs{x-x_0} < R = \lim_{n\to\infty} \abs{\frac{a_n}{a_{n+1}}}\quad  \text{ bzw. } \quad \abs{x} < R = \frac{1}{\lim_{n\to\infty} \sqrt[n]{\abs{a_n}}}
-    $$
-    und divergiert für $\abs{x-x_0} > R$.
-
-    Der Rand muss oft gesondert betrachtet werden!
-\end{defi}
-
-\begin{defi}{Konvergenzradius}
-    $$
-        R = \lim_{n\to\infty} \abs{\frac{a_n}{a_{n+1}}}\quad  \text{ bzw. } R = \frac{1}{\lim_{n\to\infty} \sqrt[n]{\abs{a_n}}}
-    $$
-    \emph{heißt der Konvergenzradius der Potenzreihe}.
-\end{defi}
-
-\begin{bonus}{Spezielle Potenzreihen}
-    $$
-        \begin{aligned}
-            f(x) = \frac{1}{1-c(x-x_0)} & \iff \sum^\infty_{n=0} c^n \cdot (x-x_0)^n \text{ für } \abs{x-x_0} < \frac{1}{\abs{c}}
-        \end{aligned}
-    $$
-\end{bonus}
-
-\begin{example}{Potenzreihe um Entwicklungspunkt bestimmen}
-    Wir wollen die Potenzreihe um $x_0 = 1$ der Reihe $$f(x) = \frac{3}{5+2x}$$ bestimmen.
-    Zunächst ist:
-    $$
-        \begin{aligned}
-            f(x) & ={} \frac{3}{5+2x}                                                                                                       \\
-                 & ={} 3\cdot \frac{1}{5+2(x-1) + 2}                                                                                        \\
-                 & ={} 3\cdot \frac{1}{7- (-2) \cdot (x-1)}                                                                                 \\
-                 & ={} \frac{3}{7}\cdot \frac{1}{1- (-\frac{2}{7}) \cdot (x-1)}                                                             \\
-                 & ={} \frac{3}{7}\cdot \sum^\infty_{n=0} \left(\frac{-2}{7} \cdot (x-1)\right)^n \text{ für } \abs{\frac{-2}{7} (x-1)} < 1 \\
-                 & ={} \frac{3}{7}\cdot \sum^\infty_{n=0} \left(\frac{-2}{7}\right)^n \cdot (x-1)^n \text{ für } \abs{x-1} < \frac{7}{2}
-        \end{aligned}
-    $$
-\end{example}
-
-\begin{defi}{Exponentialfunktion}
-    Die Funktion
-    $$
-        \exp(x) = \sum^\infty_{n=0} \frac{x^n}{n!}
-    $$
-    heißt \emph{Exponentialfunktion} oder \emph{exponentielle Funktion}.
-    Sie konvergiert für jedes $x\in \R$ und ist damit wohldefiniert.
-\end{defi}
-
-\subsection{Grenzwerte von Funktionen}
-
-\begin{defi}{Konvergenz von Funktionen}
-    Gilt $\forall x_n$, dass (falls $\lim_{n\to\infty} x_n=x_0$ gilt):
-    $$
-        \lim_{n\to\infty} f(x_n) = L
-    $$
-    so heißt die Funktion \emph{konvergent für} $x \to x_0$ und wir schreiben
-    $$
-        \lim_{n\to\infty} =: \lim_{x\to x_0} f(x).
-    $$
-\end{defi}
-
-\begin{defi}{Stetigkeit von Funktionen}
-    Gilt $\forall x_n$, dass (falls $\lim_{n\to\infty} x_n=x_0$ gilt):
-    $$
-        \lim_{n\to\infty} f(x_n) = f(x_0)
-    $$
-    so heißt die Funktion \emph{stetig in} $x_0$.
-
-    Jede Potenzreihe ist im Inneren ihres Konvergenzradius (also nicht zwingend für die Randpunkte) stetig.
-\end{defi}
-
-\begin{defi}{Rechtsseitiger und linksseitiger Grenzwert}
-    Existiert für Folgen $x_n$ mit $x_n > x_0$ ein Grenzwert $L$, also existiert
-    $$
-        \lim_{x \to x_0 \land x > x_0} f(x) = L =:  \lim_{x \downarrow x_0} f(x)
-    $$
-    so heißt der Grenzwert \emph{rechtsseitiger Grenzwert}.
-    Gilt $L=f(x_0)$, so heißt die Funktion \emph{rechtsseitig stetig.}
-
-    Entsprechend für $x < x_0$:
-    $$
-        \lim_{x \to x_0 \land x < x_0} f(x) = L =:  \lim_{x \uparrow x_0} f(x).
-    $$
-\end{defi}
-
-\begin{defi}{Stetigkeit}
-    Eine Funktion $f(x)$ ist genau dann \emph{stetig in} $x_0$, wenn
-    $$
-        \lim_{x \downarrow x_0} f(x_0) = \lim_{x \uparrow  x_0} f(x_0) = f(x_0).
-    $$
-
-    Sei $f : D \to \R$ heißt \emph{stetig auf} $D = [a, b]$, falls $f$ für jedes $x_0 \in D$ stetig ist.
-\end{defi}
-
-\begin{defi}{$\epsilon$-$\delta$-Kriterium}
-    Eine Funktion $f(x)$ heißt \emph{stetig in} $x_0$, falls
-    $$
-        \forall \epsilon > 0, \exists \delta(x_0, \epsilon) > 0, \forall \abs{x-x_0} < \delta : \abs{f(x)-f(x_0)} < \epsilon
-    $$
-\end{defi}
-
-\begin{example}{$\epsilon$-$\delta$-Kriterium}
-    Untersuche die Stetigkeit von $f(x) = \frac{1}{\sqrt{x}}, \quad x > 0$.
-
-    $f(x)$ ist stetig in $x_0$, wenn
-    $$\forall \epsilon > 0, \exists \delta (x_0, \epsilon) > 0: \forall \abs{x-x_0} < \delta \Rightarrow \abs{f(x)-f(x_0)} < \epsilon$$
-    $$
-        \begin{aligned}
-                       & \abs{f(x)-f(x_0)}                                                                                                                                        \\
-            = \quad    & \abs{\frac{1}{\sqrt{x}}-\frac{1}{\sqrt{x_0}}}                                                                                                            \\
-            = \quad    & \abs{\left(\frac{1}{\sqrt{x}}-\frac{1}{\sqrt{x_0}}\right) \cdot \frac{\frac{1}{\sqrt{x}}+\frac{1}{\sqrt{x_0}}}{\frac{1}{\sqrt{x}}+\frac{1}{\sqrt{x_0}}}} \\
-            = \quad    & \abs{\frac{\frac{1}{x}-\frac{1}{x_0}}{\frac{1}{\sqrt{x}}+\frac{1}{\sqrt{x_0}}}}                                                                          \\
-            = \quad    & \abs{\frac{\frac{x_0-x}{x x_0}}{\frac{\sqrt{x_0} + \sqrt{x}}{ \sqrt{x  x_0}}}}                                                                           \\
-            = \quad    & \abs{ \frac{(x_0 - x)  \sqrt{x x_0} }{ x x_0  \left( \sqrt{x_0} + \sqrt{x} \right) } }                                                                   \\
-            = \quad    & \abs{ \frac{x_0 - x }{ \sqrt{x x_0 } \left( \sqrt{x_0} + \sqrt{x} \right) } }                                                                            \\
-            = \quad    & \abs{ \frac{x-x_0 }{ \sqrt{x x_0 } \left( \sqrt{x_0} + \sqrt{x} \right) } }                                                                              \\
-            = \quad    & \abs{x-x_0} \cdot \frac{1 }{ \sqrt{x x_0 } \left( \sqrt{x_0} + \sqrt{x} \right) }                                                                        \\
-            < \quad    & \delta \cdot \frac{1 }{ \sqrt{x x_0 } \left( \sqrt{x_0} + \sqrt{x} \right) }                                                                             \\
-            \leq \quad & \delta \cdot \frac{1 }{ \sqrt{x x_0 } \sqrt{x_0} + \sqrt{x x_0 } \sqrt{x} }                                                                              \\
-            \leq \quad & \delta \cdot \frac{1 }{ \sqrt{x x_0 } \sqrt{x} }                                                                                                         \\
-            \leq \quad & \delta \cdot \frac{1 }{ x\sqrt{x_0} }                                                                                                                    \\
-        \end{aligned}
-    $$
-    Sei $\abs{x-x_0} < \frac{x_0}{2}$:
-
-    $$\abs{x-x_0} < \frac{x_0}{2} \implies x_0 -\frac{x_0}{2}  < x < x_0 + \frac{x_0}{2}  \iff \frac{x_0}{2} < x$$
-
-    Daraus folgt weiterhin:
-    $$
-        \begin{aligned}
-                       & \delta \cdot \frac{1 }{ x\sqrt{x_0} }       \\
-            < \quad    & \frac{2\delta }{ x_0\sqrt{x_0} } < \epsilon \\
-            \iff \quad & \delta < \frac{x_0\sqrt{x_0}}{2} \epsilon
-        \end{aligned}
-    $$
-
-    Mit $\delta = \min\{\frac{x_0}{2}, \frac{x_0\sqrt{x_0}}{2}\epsilon\}$ ist $f(x)$ stetig.\qed
-\end{example}
-
-\begin{defi}{Sandwich-Lemma für Funktionen}
-    Gilt
-    $$
-        \forall \abs{x-x_0} < K, x\neq x_0 : f(x) \leq g(x) \leq h(x)
-    $$
-    und
-    $$
-        \lim_{x\to x_0} f(x) = \lim_{x\to x_0} h(x) = c
-    $$
-    so ist auch
-    $$
-        \lim_{x\to x_0} g(x) = c.
-    $$
-\end{defi}
-
-\begin{defi}{Unstetigkeit}
-    Es gibt verschiedene Typen der Unstetigkeit:
-    \begin{enumerate}
-        \item Sprungstellen:
-              $$
-                  \lim_{x\uparrow x_0} f(x) \neq\lim_{x\downarrow x_0} f(x)
-              $$
-        \item Unendlichkeitsstellen: $f$ ist in der Umgebung von $x_0$ nicht beschränkt, d.h.
-              $$
-                  \lim_{x\to x_0} f(x) > R
-              $$
-        \item Oszillationsstellen: z.B.
-              $$
-                  \lim_{x\to 0} \sin \frac{1}{x} \text{ in } x_0 = 0
-              $$
-        \item Singuläre Definitionen:
-              $$
-                  f(x) = \begin{cases}
-                      g(x) & , \text{ für } x \in M    \\
-                      h(x) & , \text{ für } x \notin M
-                  \end{cases}
-              $$
-        \item Definitionslücken: z.B.
-              $$
-                  f(x) = \frac{x}{x} \text{ für } x \neq 0
-              $$
-        \item Kombinationen aus den oben genannten
-    \end{enumerate}
-\end{defi}
-
-\begin{defi}{Hebbare Lücke}
-    Sei $f(x)$ stetig für $x\neq x_0, x_0 \notin D$.
-    Dann erhält man mit $f(x) := \lim_{x\to x_0} f(x)$ eine stetige Funktion, wenn der Grenzwert existiert.
-    $x_0$ heißt \emph{hebbare Lücke}.
-\end{defi}
-
-\begin{bonus}{Stetigkeit auf Intervallen}
-    Sei $f : [a, b] \to \R$ stetig, dann:
-    \begin{itemize}
-        \item ist $f(x)$ beschränkt.
-        \item existieren $x_1, x_2 \in [a, b]: f(x_1) \leq f(x) \leq f(x_2), \forall x \in [a, b]$
-    \end{itemize}
-\end{bonus}
-
-\begin{defi}{Gleichmäßige Stetigkeit}
-    Eine Funktion $f : D \to \R$ heißt \emph{gleichmäßig stetig auf D}, falls es ein $\delta > 0$ unabhängig von $x_0$ gibt, so dass
-    $$
-        \abs{f(x) - f(x_0)} < \epsilon, \forall \abs{x-x_0} < \delta.
-    $$
-
-    Jede gleichmäßig stetige Funktion ist stetig.
-
-    Eine stetige Funktion $f : [a, b] \to \R$ ist gleichmäßig stetig.
-\end{defi}
-
-\begin{defi}{Lipschitz-Stetigkeit}
-    Eine Funktion $f$ heißt \emph{lokal Lipschitz-stetig in} $x_0$, wenn es ein $L \geq 0$ und ein $\delta > 0$ gibt, so dass
-    $$
-        \abs{f(x) - f(x_0)} \leq L \cdot \abs{x-x_0}, \forall \abs{x-x_0} < \delta.
-    $$
-
-    Eine Funktion $f$ heißt \emph{Lipschitz-stetig}, wenn es ein $L \geq 0$, so dass
-    $$
-        \abs{f(x) - f(y)} \leq L \cdot \abs{x-y}, \forall x, y \in [a, b].
-    $$
-    $L$ heißt \emph{Lipschitz-Konstante}.
-
-    Ist eine Funktion Lipschitz-stetig, so ist sie auch gleichmäßig stetig.
-\end{defi}
-
-\begin{example}{Lipschitz-Stetigkeit}\
-    $$f(x) = \sqrt{2+3x}$$
-
-    Ist die Funktion lokal Lipschitz-stetig im Punkt $x_0 = 1$?
-    Berechnen Sie gegebenenfalls die Lipschitz-Konstante $L$ in Abhängigkeit von $\delta$.
-    Lipschitz-Stetigkeit: $\exists L \geq 0, \forall x,x_0\in D: \abs{f(x)-f(x_0)} \leq L \cdot \abs{x-x_0}$
-
-    $$
-        \begin{aligned}
-                                                             & \abs{f(x)-f(y)}                                                                                     \\
-            = \quad                                          & \abs{\sqrt{2+3x} - \sqrt{2+3y}}                                                                     \\
-            = \quad                                          & \abs{(\sqrt{2+3x} - \sqrt{2+3y}) \cdot \frac{\sqrt{2+3x} + \sqrt{2+3y}}{\sqrt{2+3x} + \sqrt{2+3y}}} \\
-            = \quad                                          & \abs{\frac{2+3x-(2+3y)}{\sqrt{2+3x} + \sqrt{2+3y}}}                                                 \\
-            = \quad                                          & \abs{\frac{3(x-y)}{\sqrt{2+3x} + \sqrt{2+3y}}}                                                      \\
-            = \quad                                          & \frac{3}{\sqrt{2+3x} + \sqrt{2+3y}} \cdot \abs{x-y}                                                 \\
-            \overset{x,y\in (x_0-\delta, x_0+\delta)}< \quad & \frac{3}{\sqrt{2+3(x_0-\delta)} + \sqrt{2+3(x_0-\delta)}} \cdot \abs{x-y}                           \\
-            = \quad                                          & \frac{3}{\sqrt{2+3(1-\delta)} + \sqrt{2+3(1-\delta)}} \cdot \abs{x-y}                               \\
-            = \quad                                          & \frac{3}{\sqrt{2+3-3\delta} + \sqrt{2+3-3\delta}} \cdot \abs{x-y}                                   \\
-            = \quad                                          & \frac{3}{2\cdot \sqrt{5-3\delta}} \cdot \abs{x-y}                                                   \\
-        \end{aligned}
-    $$
-    Damit ist $f$ lokal Lipschitz-stetig im Punkt $x_0 = 1$ mit $L = \frac{3}{2\cdot \sqrt{5-3\delta}}$.\qed
-\end{example}
-
-\begin{defi}{Zwischenwertsatz}
-    Sei $f : [a, b] \to \R$ stetig mit $f(a) = c$ und $f(b) = d$, dann gilt
-    $$
-        \forall y \in [\min(c, d) , \max(c, d)], \exists x \in [a, b] : f(x) = y.
-    $$
-\end{defi}
-
-\begin{defi}{Fixpunktsatz}
-    Ein Wert $x^* \in \R$ heißt \emph{Fixpunkt} einer Funktion $f(x)$, falls $x^* = f(x^*)$.
-
-    Sei $f : [a, b] \to [c, d]$ stetig mit $[c, d] \subset [a, b]$ (\emph{selbstkontrahierend}), dann existiert ein \emph{Fixpunkt} $u = f(u)$.
-\end{defi}
-
-\begin{example}{Fixpunktberechnung (Teil 1)}
-    Gegeben ist die Funktion
-    $$f: [0,\infty) \to [0, \infty), \quad f(x) = \frac{x+\frac{1}{2}}{x+1}$$
-
-    (a) Zeigen Sie, dass die Funktion die Voraussetzungen des Fixpunktsatzes erfüllt.
-
-    \textbf{Stetigkeit:}
-    $f$ ist offensichtlich stetig, da $f$ aus stetigen Funktionen zusammengesetzt ist (und insbesondere, da $\forall x\in [0,\infty]: x\neq -1$).
-
-    \textbf{Monotonieverhalten:}
-    Wir vermuten, dass die Funktion monoton steigend ist:
-    $$
-        \begin{aligned}
-                         & x \geq y \implies f(x) \geq f(y)                                                           \\
-            \equiv \quad & x \geq y \implies \frac{x+\frac{1}{2}}{x+1} \geq \frac{y+\frac{1}{2}}{y+1}                 \\
-            \equiv \quad & x \geq y \implies \left(x+\frac{1}{2}\right)(y+1) \geq \left(y+\frac{1}{2}\right)(x+1)     \\
-            \equiv \quad & x \geq y \implies xy+ x + \frac{y}{2}+ \frac{1}{2} \geq xy + y + \frac{x}{2} + \frac{1}{2} \\
-            \equiv \quad & x \geq y \implies x + \frac{y}{2}\geq y + \frac{x}{2}                                      \\
-            \equiv \quad & x \geq y \implies x - \frac{x}{2}\geq y - \frac{y}{2}                                      \\
-            \equiv \quad & x \geq y \implies \frac{x}{2}\geq \frac{y}{2}                                              \\
-            \equiv \quad & x \geq y \implies x\geq y \quad \checkmark
-        \end{aligned}
-    $$
-    Damit ist $f$ monoton steigend.
-
-    \textbf{Kontraktion:} Zu zeigen: $\forall x\in [0,\infty)]: f(x) \in [0,\infty)]$:
-
-    $$f(0) = \frac{0+\frac{1}{2}}{0+1} = \frac{1}{2}\in [0,\infty), \text{ und } \lim_{n\to\infty} f(n) = \lim_{n\to\infty} \frac{n+\frac{1}{2}}{n+1} = 1\in [0,\infty)$$
-
-    Da beide Werte im gegebenen Definitionsbereich sind und $f$ monoton steigend ist, ist $f$ insgesamt selbstkontrahierend.
-
-    Insgesamt sind also alle Bedingungen für den Fixpunktsatz erfüllt.\qed
-
-\end{example}
-
-\begin{example}{Fixpunktberechnung (Teil 2)}
-    (b) Berechnen Sie den Fixpunkt von $f$.
-    $$
-        \begin{aligned}
-                           & f(x^*) = x^*                                            \\
-            \equiv \quad   & \frac{x^*+\frac{1}{2}}{x^*+1} = x^*                     \\
-            \equiv \quad   & x^*+\frac{1}{2} = x^*(x^*+1)                            \\
-            \equiv \quad   & x^*+\frac{1}{2} = (x^*)^2+x^*                           \\
-            \equiv \quad   & 0 = (x^*)^2-\frac{1}{2}                                 \\
-            \implies \quad & x^* = \sqrt{\frac{1}{2}} \lor x^* = -\sqrt{\frac{1}{2}}
-        \end{aligned}
-    $$
-
-    $x^* \in [0,\infty] \implies x^* = \sqrt{\frac{1}{2}}$\qed
-\end{example}
-
-\section{Differentialrechnung}
-\subsection{Tangentengleichung}
-
-\begin{algo}{Tangentengleichung}
-    Wollen wir die Gleichung der Tangente einer Funktion $f(x)$ in einem Punkt $x_0$ bestimmen, so verwenden wir den Ansatz
-    $$
-        T(x) = f_1(x) = m \cdot (x-x_0) + b.
-    $$
-    Die Tangente im Punkt $x_0$ hat die Eigenschaften
-    \begin{itemize}
-        \item Die Steigung ist $m = f'(x)$,
-        \item Sie geht durch den Punkt $(x_0, f(x_0))$.
-    \end{itemize}
-
-    Einsetzen der zweiten Bedingung liefert
-    $$
-        f(x_0) = f_1(x_0) = b
-    $$
-    und damit ist die Tangentengleichung bekannt mit
-    $$
-        f_1(x) = f'(x_0) \cdot (x-x_0) + f(x_0).
-    $$
-\end{algo}
-
-\newpage
-\subsection{Ableitungsregeln}
-
-\begin{defi}{Faktorregel}
-    $$
-        f(x) = c \cdot g(x) \implies f'(x) = c \cdot g'(x)
-    $$
-\end{defi}
-
-\begin{defi}{Summenregel}
-    $$
-        f(x) = g(x) + h(x) \implies f'(x) = g'(x) + h'(x)
-    $$
-\end{defi}
-
-\begin{defi}{Produktregel}
-    $$
-        f(x) = g(x) \cdot h(x) \implies f'(x) = g'(x)\cdot h(x) + g(x) \cdot h'(x)
-    $$
-\end{defi}
-
-\begin{defi}{Quotientenregel}
-    $$
-        f(x) = \frac{g(x)}{h(x)} \implies f'(x) = \frac{g'(x)\cdot h(x) - g(x)\cdot h'(x)}{[h(x)]^2}
-    $$
-\end{defi}
-
-\begin{defi}{Kettenregel}
-    $$
-        f(x) = g(h(x)) \implies f'(x) = g'(h(x)) \cdot h'(x)
-    $$
-\end{defi}
-
-\begin{bonus}{Ableitung der Umkehrfunktion}
-    $$
-        (f^{-1})(y) = \frac{1}{f'(x)} = \frac{1}{f'(f^{-1}(y))}
-    $$
-\end{bonus}
-
-\begin{bonus}{Elementare Ableitungsfunktionen}
-    \begin{center}
-        \begin{tabular}{C | C}
-            f(x)   & f'(x)                             \\
-            \hline
-            x^n    & n \cdot x^{n-1}                   \\
-            \sin x & \cos x                            \\
-            \cos x & -\sin x                           \\
-            \tan x & \frac{1}{\cos^2 x} = \tan^2 x + 1 \\
-            \cot x & \frac{-1}{\sin^2 x}               \\
-            e^x    & e^x                               \\
-            a^x    & a^x \cdot \ln a                   \\
-            \ln x  & \frac{1}{x}
-        \end{tabular}
-    \end{center}
-\end{bonus}
-
-\subsection{Lokale Extrema}
-
-\begin{defi}{Lokale Extrema}
-    Existiert eine Stelle $x_0$ einer Funktion $f(x)$ und eine $\epsilon$-Umgebung $U_\epsilon (x_0)$ von $x_0$, so dass $\forall x \in U_\epsilon (x_0)$ gilt:
-    \begin{itemize}
-        \item $f(x) \geq f(x_0)$, so heißt $x_0$ \emph{lokales Minimum},
-        \item $f(x) \leq f(x_0)$, so heißt $x_0$ \emph{lokales Maximum}.
-    \end{itemize}
-
-    Ist $f$ differenzierbar in $x_0$ und $x_0$ lokales Extremum, sei gilt
-    $$
-        f'(x_0) = 0.
-    $$
-\end{defi}
-
-\subsection{Mittelwertsatz}
-
-\begin{bonus}{Satz von Rolle}
-    Ist $f$ auf $[a, b]$ stetig mit $f(a) = f(b)$ und auf $(a, b)$ differenzierbar, so existiert ein $x^* \in (a, b) : f'(x^*) = 0$.
-\end{bonus}
-
-\begin{defi}{Mittelwertsatz}
-    Sei $f \in C[a, b]$ und in $(a, b)$ differenzierbar.
-    Dann existiert ein $x^* \in (a, b)$ mit
-    $$
-        f'(x^*) = \frac{f(b)  -f(a)}{b-a}.
-    $$
-\end{defi}
-
-\subsection{Stetigkeit und Differenzierbarkeit von Potenzreihen}
-
-\begin{defi}{Stetigkeit / Differenzierbarkeit von Potenzreihen}
-    Jede Potenzreihe ist stetig im Inneren des Konvergenzbereiches.
-    Die Potenzreihe $p(x) = \sum^\infty_{n=0} a_n(x-x_0)^n$ ist differenzierbar im Inneren des Konvergenzbereiches und die Ableitung $p'(x)$ kann summandenweise berechnet werden mit:
-    $$
-        \begin{aligned}
-            p'(x) & = \sum^\infty_{n=1} a_n \cdot n \cdot (x-x_0)^{n-1}       \\
-                  & = \sum^\infty_{n=0} a_{n+1} \cdot (n+1) \cdot (x-x_0)^{n}
-        \end{aligned}
-    $$
-\end{defi}
-
-\subsection{Monotonie}
-
-\begin{defi}{Monotonie für Funktionen}
-    Eine Funktion heißt \emph{monoton wachsend auf} $[a, b]$, falls
-    $$
-        \forall x_1, x_2 \in (a, b), x_1 < x_2 : f(x_1) \leq f(x_2) \iff \forall x \in (a, b): f'(x) \geq 0.
-    $$
-    Eine Funktion heißt \emph{streng monoton wachsend auf} $[a, b]$, falls
-    $$
-        \forall x_1, x_2 \in (a, b), x_1 < x_2 : f(x_1) < f(x_2) \iff \forall x \in (a, b): f'(x) > 0.
-    $$
-    Eine Funktion heißt \emph{monoton fallend auf} $[a, b]$, falls
-    $$
-        \forall x_1, x_2 \in (a, b), x_1 < x_2 : f(x_1) \geq f(x_2) \iff \forall x \in (a, b): f'(x) \leq 0.
-    $$
-    Eine Funktion heißt \emph{streng monoton fallend auf} $[a, b]$, falls
-    $$
-        \forall x_1, x_2 \in (a, b), x_1 < x_2 : f(x_1) > f(x_2) \iff \forall x \in (a, b): f'(x) < 0.
-    $$
-\end{defi}
-
-\subsection{Die Grenzwerte von de L'Hospital}
-
-\begin{defi}{Regeln von de L'Hospital}
-    Seien $f, g \in C[a, b]$ und in $(a, b)$ differenzierbar mit $f(a) = g(a) = 0$.
-
-    Weiterhin gelte $\forall x \in (a, b): g'(x) \neq 0$ und es existiert
-    $$
-        \lim_{x\to a} \frac{f'(x)}{g'(x)}
-    $$
-    dann existiert auch
-    $$
-        \lim_{x\to a } \frac{f(x)}{g(x)}
-    $$
-    und es ist
-    $$
-        \lim_{x\to a } \frac{f(x)}{g(x)} = \lim_{x\to a} \frac{f'(x)}{g'(x)}.
-    $$
-\end{defi}
-
-\subsection{Krümmungseigenschaften}
-
-\begin{defi}{Krümmung}
-    Sei $f\in C^2(a, b)$ und ist $\forall x \in (a, b) : f''(x) > 0$, so heißt $f(x)$ \emph{konvex} oder \emph{linksgekrümmt}.
-
-    Ist $\forall x \in (a, b) : f''(x) < 0$ so heißt $f(x)$ \emph{konkav} oder \emph{rechtsgekrümmt}
-\end{defi}
-
-\begin{defi}{Wendepunkt}
-    Sei $f \in C^2(a, b)$ und wechselt die Funktion für $x^* \in (a, b)$ von einer links- zu einer rechtsgekrümmten Funktion (oder umgekehrt), so heißt $x^*$ \emph{Wendepunkt der Funktion}.
-
-    Ist $x^*$ Wendepunkt und $f \in C^2(a, b)$, so ist $f''(x) = 0$.
-\end{defi}
-
-\subsection{Die Taylorreihe}
-
-\begin{defi}{Taylorreihe}
-    $$
-        \begin{aligned}
-            f(x) & = \sum^\infty_{n=0} \frac{f^{(n)}(x_0)}{n!} (x-x_0)^n                                           \\
-                 & = f(x_0) + f'(x_0)(x-x_0) + \frac{f''(x_0)}{2}(x-x_0)^2 + \frac{f'''(x_0)}{6}(x-x_0)^3 + \ldots
-        \end{aligned}
-    $$
-    Dabei heißt $x_0$ Entwicklungspunkt der Potenzreihe und die Reihe konvergiert für $\abs{x-x_0} < r$ mit $r = \lim_{n\to\infty}\abs{\frac{a_n}{a_{n+1}}}$.
-\end{defi}
-
-\begin{example}{Taylorreihe}
-    \textbf{Bestimmen Sie das Taylorpolynom dritten Grades für die Funktion $g(x) = \ln(x\cdot e^{-2x})$ an der Stelle $x_0 = 1$.}
-
-    Taylorpolynom $k$-ten Grades einer Funktion $f$:
-    $$T_k(x) := \sum_{n=0}^k \frac{\mathrm{d}^n f}{\mathrm{d}x^n} (x_0)\cdot\frac{(x-x_0)^n}{n!} $$
-
-    Das Taylorpolynom dritten Grades von $g(x) = \ln(x\cdot e^{-2x})$ an der Stelle $x_0 = 1$ ist dann gegeben durch:
-    $$
-        \begin{aligned}
-            T_3(x) ={}      & \sum_{n=0}^3 \frac{\mathrm{d}^n g}{\mathrm{d}x^n} (1)\cdot\frac{(x-1)^n}{n!}                                                                                                                       \\
-            ={}             & g(1) + \frac{\mathrm{d} g}{\mathrm{d} x}(1)\cdot\frac{x-1}{1!} + \frac{\mathrm{d^2} g}{\mathrm{d} x^2}(1)\cdot\frac{(x-1)^2}{2!} + \frac{\mathrm{d^3} g}{\mathrm{d} x^3}(1)\cdot\frac{(x-1)^3}{3!} \\
-            \stackrel{*}={} & \ln(e^{-2}) + \left( \frac{1}{1}- 2 \right)\cdot(x-1) + \frac{-1}{1}\cdot\frac{(x-1)^2}{2} + \frac{2}{1}\cdot\frac{(x-1)^3}{6}                                                                     \\
-            ={}             & -2 -(x-1) - \frac{1}{2}\cdot (x-1)^2 +\frac{1}{3}\cdot (x-1)^3                                                                                                                                     \\
-            ={}             & -2 -x+1 - \frac{1}{2}\cdot (x^2-2x+1) +\frac{1}{3}\cdot (x^3 -3x^2+3x-1)                                                                                                                           \\
-            ={}             & -1 -x - \frac{x^2}{2} + x -\frac{1}{2} +\frac{x^3}{3} - x^2 + x -\frac{1}{3}                                                                                                                       \\
-            ={}             & \frac{x^3}{3}- \frac{3x^2}{2} + x - \frac{11}{6}
-        \end{aligned}
-    $$
-    \qed
-
-    \vspace{2em}
-
-    \textbf{Nebenrechnungen:}
-    $$
-        \frac{\mathrm{d} g}{\mathrm{d} x} = \frac{1}{x} - 2, \quad
-        \frac{\mathrm{d}^2 g}{\mathrm{d} x^2} = \frac{-1}{x^2}, \quad
-        \frac{\mathrm{d}^3 g}{\mathrm{d} x^3} = \frac{2}{x^3}
-    $$
-\end{example}
-
-\newpage
-\section{Integration}
-\subsection{Flächenberechnung}
-
-\begin{defi}{Stammfunktion}
-    Sei $f\in C[a, b]$. Eine differenzierbare Funktion $F(x)$ mit $\forall x\in [a, b] : F'(x) = f(x)$ heißt eine \emph{Stammfunktion von f}.
-\end{defi}
-
-\begin{defi}{Unbestimmtes Integral}
-    $F(x) = \int f(x) \dx$ heißt das \emph{unbestimmte Integral von f}.
-\end{defi}
-
-\begin{defi}{Hauptsatz der Differential- und Integralrechnung}
-    Sei $f\in C[a, b]$, dann ist
-    $$
-        F_a(x) = \int^x_a f(t)\dt \text{ differenzierbar}
-    $$
-    und es gilt
-    $$
-        F'_a(x) = f(x).
-    $$
-    Damit ist also:
-    $$
-        \left(\int^x_a f(t)\dt\right)' = F'_a(x) = f(x).
-    $$
-\end{defi}
-
-\begin{defi}{Fläche einer Funktion}
-    Sei $f \in C[a, b]$, dann ist die Fläche der Funktion im Intervall $[a, b]$ gegeben mit
-    $$
-        \int_a^b f(x) \dx = F(b) - F(a) =: \left.F(x)\right|^b_{x=1}
-    $$
-\end{defi}
-
-\begin{bonus}{Potenzregel}
-    $$
-        \int x^n \dx = \frac{1}{n+1}x^{n+1} + C
-    $$
-\end{bonus}
-
-\begin{bonus}{Faktorregel}
-    $$
-        \int c\cdot f(x) \dx = c\cdot \int f(x) \dx
-    $$
-\end{bonus}
-
-\begin{bonus}{Summenregel}
-    $$
-        \int (f(x) + g(x))\dx = \int f(x) \dx + \int g(x) \dx
-    $$
-\end{bonus}
-
-\begin{bonus}{Partielle Integration}
-    $$
-        \int f'(x)g(x) \dx = f(x)g(x) - \int f(x) g'(x) \dx
-    $$
-
-    Entscheidend bei partieller Integration ist die Wahl von $f(x)$ und $g'(x)$.
-    Eine falsche Wahl kann unter Umständen dazu führen, dass das Integral noch komplizierter wird.
-
-    \textbf{Faustregel:}
-    \begin{enumerate}
-        \item L - logarithmische Funktionen ($\ln$, $\log_a$, $\ldots$)
-        \item I - inverse Winkelfunktionen ($\arcsin$, $\arccos$, $\arctan$, $\ldots$)
-        \item A - algebraische Funktionen ($x^2$, $5x^3$, $\ldots$)
-        \item T - trigonometrische Funktionen ($\sin$, $\cos$, $\tan$, $\csc$, $\ldots$)
-        \item E - Exponentialfunktionen ($e^x$, $5a^x$, $\ldots$)
-    \end{enumerate}
-    Entsprechend des Rangs wird $f(x)$ ausgewählt. Will man beispielsweise $x^2\cos x$ integrieren, so würde man $x^2$ für $f(x)$ wählen und $\cos x$ für $g'(x)$, da algebraische Funktionen höher in der Liste stehen als trigonometrische Funktionen.
-\end{bonus}
-
-\begin{bonus}{Integration durch Substitution}
-    $$
-        \int f(x)\dx = \int f(\phi(u)) \cdot \phi'(u) \du
-    $$
-\end{bonus}
-
-\subsection{Integration zur Berechnung von Flächen zwischen mehreren Funktionen}
-
-\begin{algo}{Berechnung der Fläche zwischen zwei Funktionen}
-    Wir betrachten die Fläche zwischen zwei Funktionen $f(x)$ und $g(x)$.
-
-    \begin{enumerate}
-        \item Schnittpunkte $a, b$ von $f(x)$ und $g(x)$ berechnen.
-        \item Integriere $\abs{f(x) - g(x)}$ zwischen den Schnittpunkten:
-              $$
-                  \abs{\int^b_a\abs{f(x) -g(x)} \dx}
-              $$
-    \end{enumerate}
-
-    Beachte: Bei mehr als zwei Schnittpunkten müssen mehrere Integrale mit den jeweiligen Grenzen addiert werden.
-
-    Das Verfahren lässt sich sehr einfach auf mehrere Funktionen erweitern.
-\end{algo}
-
-\begin{bonus}{Beispiel: Fläche zwischen drei Funktionen}
-    Wie groß ist der Flächeninhalt, der von den Funktionen
-    $$
-        f(x) = -0.25x^4 + 4, \quad g(x) = -2x-4, \quad h(x) = 2x-4
-    $$
-    eingeschlossen wird?
-    \begin{center}
-        \begin{tikzpicture}
-            \begin{axis}[
-                    axis lines=middle,
-                    xmin=-4.5,xmax=4.5,ymin=-4.5,ymax=4.5
-                ]
-                \addplot[blue, samples=1000, domain=-2.4:2.4, name path=A] {-0.25*x*x*x*x + 4} node[right] {$f$}; % f(x)
-                \addplot[yellow!70!red, samples=300, domain=-4:4, name path=B] {-2*x - 4} node[pos=0, left] {$g$}; % g(x)
-                \addplot[red!90!teal, samples=300, domain=-4:4, name path=C] {2*x-4} node[right] {$h$}; % h(x)
-                \addplot[gray!30, opacity=0.5] fill between[of=A and C,soft clip={domain=0:2}];
-                \addplot[gray!30, opacity=0.5] fill between[of=A and B,soft clip={domain=-2:0}];
-            \end{axis}
-        \end{tikzpicture}
-    \end{center}
-
-    Wir sehen in der Zeichnung, dass für die Fläche $A$ zwischen den Graphen gilt:
-    $$
-        \begin{aligned}
-            A ={} & \abs{  \int_{-2}^{0} \left(f(x) - g(x)\right) \dx} + \abs{ \int_{0}^{2} \left(f(x) - h(x)\right) \dx}                           \\
-            ={}   & \abs{ \int_{-2}^{0} \left(-\frac{1}{4}x^4 + 2x + 8\right) \dx} + \abs{ \int_{0}^{2} \left(-\frac{1}{4}x^4 - 2x + 8\right) \dx}  \\
-            ={}   & \abs{ \left[ -\frac{1}{20}x^5 + x^2 + 8x \right]_{-2}^{0} } + \abs{ \left[ -\frac{1}{20}x^5 - x^2 + 8x \right]_0^2 }            \\
-            ={}   & \abs{ 0 - \left( -\frac{1}{20}\cdot(-2)^5 + (-2)^2 + 8\cdot(-2) \right) } + \abs{ -\frac{1}{20}\cdot 2^5 + 2^2 + 8\cdot 2 - 0 } \\
-            ={}   & \abs{-\frac{8}{5} - 4 + 16 } + \abs{-\frac{8}{5} - 4 + 16}                                                                      \\
-            ={}   & \frac{52}{5} + \frac{52}{5}                                                                                                     \\
-            ={}   & \frac{104}{5}
-        \end{aligned}
-    $$
-    Damit beträgt der Flächeninhalt $\frac{104}{5}$ Flächeneinheiten. \qed
-\end{bonus}
-
-\newpage
-\subsection{Längenberechnung}
-
-\begin{algo}{Längenberechnung eines Graphen}
-    Gegeben sind eine Funktion $f\in C[a, b]$ und die Punkte $a, b$.
-
-    Die Länge $L_a^b$ des Graphen der Funktion $f$ ist dann gegeben mit
-    $$
-        L^b_a(f) = \int_a^b \sqrt{1+(f'(x))^2} \dx
-    $$
-\end{algo}
-
-\subsection{Mantelflächenberechnung}
-
-\begin{algo}{Mantelflächenberechnung}
-    Gegeben sind eine Funktion $f\in C[a, b]$ und die Punkte $a, b$.
-
-    Die Mantelfläche $M_a^b$ des Rotationskörpers der Funktion $f$ ist dann gegeben mit
-    $$
-        M^b_a(f) = \int_a^b 2\pi \cdot f(x) \cdot \sqrt{1+(f'(x))^2} \dx
-    $$
-\end{algo}
-
-\subsection{Rotationsvolumenberechnung}
-
-\begin{algo}{Rotationsvolumenberechnung}
-    Gegeben sind eine Funktion $f\in C[a, b]$ und die Punkte $a, b$.
-
-    Das Volumen $M_a^b$ des Rotationskörpers der Funktion $f$ ist dann gegeben mit
-    $$
-        V^b_a(f) = \int_a^b \pi \cdot f(x)^2 \dx
-    $$
-\end{algo}
-
-\subsection{Differentiation von Integralen mit variablen Grenzen}
-
-\begin{algo}{Differentiation von Integralen mit variablen Grenzen}
-    Gegeben sei das Integral
-    $$
-        \int^{h(x)}_{g(x)} f(t)\dt.
-    $$
-    Dann gilt:
-    $$
-        \left(\int^{h(x)}_{g(x)} f(t)\dt\right)' = f(h(x)) \cdot h'(x) - f(g(x))\cdot g'(x).
-    $$
-\end{algo}
-
-\subsection{Parameterintegrale}
-
-\begin{defi}{Parameterintegral}
-    Sei $f(x, t)$ eine von zwei rellen Parametern abhängige Funktion.
-    Die Funktionen $g_1(x)$ und $g_2(x)$ seien stetig auf $[a, b]$ und differenzierbar auf $(a, b)$ sowie $f(x, t)$ integrierbar bez. $t$.
-
-    Dann heißt
-    $$
-        F(x) = \int^{g_2(x)}_{g_1(x)} f(x, t) \dt
-    $$
-    das \emph{Parameterintegral}.
-\end{defi}
-
-\begin{example}{Parameterintegral}
-    $$
-        \begin{aligned}
-            \lim_{x\to\infty} \left( \frac{1}{x} \cdot \int_0^x \frac{t+1}{t^2 + 2} \dt\right)
-             & \overset{\text{de L'Hospital}}={} \lim_{x\to\infty} \left( \frac{1}{1} \cdot \left( \frac{x+1}{x^2 + 2} \cdot 1 - \frac{0+1}{0+2} \cdot 0 \right)\right) \\
-             & ={} \lim_{x\to\infty} \left( \frac{x+1}{x^2 + 2} \right)                                                                                                 \\
-             & ={} 0
-        \end{aligned}
-    $$\qed
-\end{example}
-
-\begin{defi}{Leibniz-Regel}
-    Das Parameterintegral $F(x) = \int^{g_2(x)}_{g_1(x)} f(x, t) \dt$ ist differenzierbar und es ist
-    $$
-        F'(x) = f(x, g_2(x)) \cdot g'_2(x) - f(x, g_1(x)) \cdot g'_1(x) + \int^{g_2(x)}_{g_1(x)} \frac{\mathrm{d} f(x, t)}{\dx}\dt
-    $$
-\end{defi}
-
-\begin{example}{Leibniz-Regel}
-    $$F(x) = \int_{t=x}^{x^2} \frac{1}{t} \cdot \ln (1 + x\cdot t) \dt \quad (x>0)$$
-    $$
-        \begin{aligned}
-            \dFdx
-             & ={} \int_{t=x}^{x^2} \frac{1}{t} \cdot \ln (1 + x\cdot t) \dt                                                                                                                                \\
-             & ={} \frac{1}{x^2} \cdot \ln (1 + x\cdot x^2) \cdot 2x - \left( \frac{1}{x} \cdot \ln (1 + x\cdot x) \cdot 1 \right) + \int^{x^2}_{t=x} \frac{1}{t} \cdot t \cdot \frac{1}{1 + x \cdot t} \dt \\
-             & ={} \frac{2\ln (1 + x^3)}{x} - \frac{\ln(1+x^2)}{x} + \left[ \frac{\ln(1+x\cdot t)}{x} \right]^{x^2}_{t=x}                                                                                   \\
-             & ={} \frac{2\ln (1 + x^3)}{x} - \frac{\ln(1+x^2)}{x} + \frac{\ln(1+x\cdot x^2)}{x} - \frac{\ln(1+x\cdot x)}{x}                                                                                \\
-             & ={} \frac{3\ln (1 + x^3) - 2\ln(1+x^2)}{x}                                                                                                                                                   \\
-        \end{aligned}
-    $$\qed
-\end{example}
-
-\subsection{Uneigentliche Integrale}
-
-\begin{defi}{Uneigentliche Integrale}
-    Sei $f(x)$ beschränkt auf $\R$, dann definieren wir
-    $$
-        \begin{aligned}
-            \int^\infty_a f(x) \dx         & := \lim_{R\to\infty} \int^R_a f(x)\dx                                          \\
-            \int^b_{-\infty} f(x) \dx      & := \lim_{R\to\infty} \int^b_{-R} f(x)\dx                                       \\
-            \int^\infty_{-\infty} f(x) \dx & := \lim_{R\to\infty} \int^R_{c} f(x)\dx + \lim_{R\to\infty} \int^c_{R} f(x)\dx
-        \end{aligned}
-    $$
-\end{defi}
-
-\begin{defi}{Konvergenz von Integralen}
-    Die Integrale heißen \emph{konvergent}, wenn die Grenzwerte existieren, sonst heißen sie \emph{divergent}.
-\end{defi}
-
-\subsection{Absolute Konvergenz}
-
-\begin{defi}{Absolute Konvergenz von Integralen}
-    Sei $\int^b_a f(x) \dx$ ein eigentliches oder uneigentliches Integral.
-
-    Konvergiert
-    $$
-        \int^b_a \abs{f(x)} \dx,
-    $$
-    so heißt $\int^b_a f(x) \dx$ \emph{absolut konvergent}.
-\end{defi}
-
-\subsection{Weitere Konvergenzkriterien}
-
-\begin{defi}{Majoranten- und Minorantenkriterium für unbeschränkte Integrationsintervalle}
-    Sei $\forall x \in [a, \infty) : 0 \leq \abs{f(x)} \leq g(x)$ und konvergiert $\int^\infty_a g(x)$, dann konvergiert $\int^\infty_a f(x) \dx$ und es gilt
-    $$
-        \abs{\int^\infty_a f(x) \dx} \leq \int^\infty_a \abs{f(x)} \dx \leq \int^\infty_a g(x) \dx.
-    $$
-
-    Ist $\forall x\in [a, \infty) : 0\leq g(x) \leq f(x)$ und divergiert $\int^\infty_a g(x) \dx$, so divergiert auch $\int^\infty_a f(x) \dx$.
-\end{defi}
-
-\begin{defi}{Majoranten- und Minorantenkriterium für unbeschränkte Integranden}
-    Sei $\forall x \in [a, b] : 0 \leq \abs{f(x)} \leq g(x)$ und konvergiert $\int^b_a g(x)$, dann konvergiert $\int^b_a f(x) \dx$ und es gilt
-    $$
-        \abs{\int^\infty_a f(x) \dx} \leq \int^b_a \abs{f(x)} \dx \leq \int^b_a g(x) \dx.
-    $$
-
-    Ist $\forall x\in [a, b] : 0\leq g(x) \leq f(x)$ und divergiert $\int^b_a g(x) \dx$, so divergiert auch $\int^b_a f(x) \dx$.
-\end{defi}
-
-\subsection{Das Integralkriterium zur Konvergenz von Reihen}
-
-\begin{defi}{Integralkriterium}
-    Sei $f$ eine auf $[m-1, \infty]$ monoton fallende Funktion mit $\forall x \in [m, \infty) : f(x) \geq 0$, dann ist die Reihe
-    $$
-        \sum^\infty_{n=m} f(n)
-    $$
-    genau dann \emph{konvergent}, wenn
-    $$
-        \int^\infty_m f(x) \dx
-    $$
-    existiert. Es gilt bei Konvergenz
-    $$
-        \sum^\infty_{n=m+1} f(n) \leq \int^\infty_m f(x) \dx \leq \sum^\infty_{n=m} f(n) \leq \int^\infty_{m-1} f(x) \dx.
-    $$
-\end{defi}
-
-\begin{example}{Integralkriterium}
-    \[
-        \sum^\infty_{n=1} \frac{1}{\sqrt[3]{n}} = \sum^\infty_{n=1} f(n)
-    \]
-    $f(n)$ ist offensichtlich auf dem Intervall $[1, \infty )$ streng monoton fallend.
-
-    Damit muss nur geprüft werden, dass das Integral $\int^\infty_{n=1} f(n) \dn$ existiert bzw. konvergiert:
-
-    $$
-        \begin{aligned}
-            \int^\infty_{n=1} f(n) \dn
-             & ={} \int^\infty_{n=1} \frac{1}{\sqrt[3]{n}} \dn                              \\
-             & ={} \lim_{b\to\infty} \left[ \frac{3n^{\frac{2}{3}}}{2} \right]^b_{n=1}      \\
-             & ={} \lim_{b\to\infty} \left( \frac{3b^{\frac{2}{3}}}{2} - \frac{3}{2}\right) \\
-             & ={} \infty
-        \end{aligned}
-    $$
-    Damit divergiert das Integral und die gegebene Summe divergiert ebenfalls.\qed
-\end{example}
-
-\printindex
-\printindex[Beispiele]
-\end{document}
+\documentclass[german]{../spicker}
+
+\usepackage{amsmath}
+\usepackage{polynom}
+\usepackage{array}   % for \newcolumntype macro
+\usepackage{tikz}
+\usepackage{pgfplots}
+\usepgfplotslibrary{fillbetween}
+\pgfplotsset{compat=1.17}
+\title{Analysis 1}
+\author{Patrick Gustav Blaneck, Felix Racz}
+\makeindex[intoc]
+\makeindex[intoc, name=Beispiele,title=Beispiele]
+
+\newcommand{\scalarprod}[1]{\left\langle #1 \right\rangle}
+\newcommand{\vektor}[1]{\begin{pmatrix*}[r] #1 \end{pmatrix*}}
+\renewcommand{\span}[1]{\operatorname{span}\left(#1\right)}
+
+\renewcommand{\abs}[1]{\left| #1 \right|}
+\newcommand{\cis}[1]{\left( \cos\left( #1 \right) + i \sin\left( #1 \right) \right)}
+\newcommand{\sgn}{\text{sgn}}
+\newcommand{\diff}{\mathrm{d}}
+\newcommand{\dx}{~\mathrm{d}x}
+\newcommand{\du}{~\mathrm{d}u}
+\newcommand{\dv}{~\mathrm{d}v}
+\newcommand{\dw}{~\mathrm{d}w}
+\newcommand{\dt}{~\mathrm{d}t}
+\newcommand{\dn}{~\mathrm{d}n}
+\newcommand{\dudx}{~\frac{\mathrm{d}u}{\mathrm{d}x}}
+\newcommand{\dudn}{~\frac{\mathrm{d}u}{\mathrm{d}n}}
+\newcommand{\dvdx}{~\frac{\mathrm{d}v}{\mathrm{d}x}}
+\newcommand{\dwdx}{~\frac{\mathrm{d}w}{\mathrm{d}x}}
+\newcommand{\dtdx}{~\frac{\mathrm{d}t}{\mathrm{d}x}}
+\newcommand{\ddx}{\frac{\mathrm{d}}{\mathrm{d}x}}
+\newcommand{\dFdx}{\frac{\mathrm{d}F}{\mathrm{d}x}}
+\newcommand{\dfdx}{\frac{\mathrm{d}f}{\mathrm{d}x}}
+\newcommand{\interval}[1]{\left[ #1 \right]}
+
+\newcolumntype{L}{>{$}l<{$}} % math-mode version of "l" column type
+\newcolumntype{R}{>{$}r<{$}} % math-mode version of "r" column type
+\newcolumntype{C}{>{$}c<{$}} % math-mode version of "c" column type
+\newcolumntype{P}{>{$}p<{$}} % math-mode version of "l" column type
+
+\begin{document}
+\maketitle
+\tableofcontents
+\newpage
+
+%\setcounter{section}{1}
+
+\section{Grundlagen}
+
+\subsection{Funktionen}
+
+\begin{thirdboxl}
+    \begin{defi}{Injektivität}
+        $f(x) = f(x')\implies x = x'$
+    \end{defi}
+\end{thirdboxl}%
+\begin{thirdboxm}
+    \begin{defi}{Surjektivität}
+        $\forall y, \exists x: y = f(x)$
+    \end{defi}
+\end{thirdboxm}%
+\begin{thirdboxr}
+    \begin{defi}{Bijektivität}
+        $\forall y, \exists! x: y = f(x)$
+    \end{defi}
+\end{thirdboxr}%
+
+\begin{algo}{Beweisen der Injektivität}
+    \begin{enumerate}
+        \item Behauptung: $f(x) = f(x')$
+        \item Umformen auf eine Aussage der Form $x = x'$
+    \end{enumerate}
+\end{algo}
+
+\begin{algo}{Beweisen der Surjektivität}
+    \begin{enumerate}
+        \item Aufstellen der Umkehrfunktion
+        \item Zeigen, dass diese Umkehrfunktion auf dem gesamten Definitionsbereich definiert ist
+    \end{enumerate}
+\end{algo}
+
+\begin{algo}{Beweisen der Bijektivität}
+    \begin{enumerate}
+        \item Injektivität beweisen
+        \item Surjektivität beweisen
+    \end{enumerate}
+\end{algo}
+
+\subsection{Polynome}
+
+\begin{defi}{Polynom}
+    Eine Funktion $p(x) = \sum^n_{i=0} a_i x^i$ mit $a_i, x \in \R ~ (\C), a_n \neq 0$ heißt \emph{Polynom vom Grad} $n$.
+\end{defi}
+
+\begin{halfboxl}
+    \vspace{-\baselineskip}
+    \begin{bonus}{Abspalten von Linearfaktoren}
+        Sei $x_0$ eine Nullstelle eines Polynoms $p(x)$, dann ist
+        $$ p(x) = q(x) \cdot (x-x_0).$$
+        Dabei ist $(x-x_0)$ ein abgespaltener Linearfaktor und $q(n)$ das entsprechend reduzierte Polynom mit $q(n) = \frac{p(x)}{x-x_0}$.
+    \end{bonus}
+\end{halfboxl}%
+\begin{halfboxr}
+    \vspace{-\baselineskip}
+    \begin{bonus}{Faktorisierung}
+        Sind $x_1, \ldots, x_n$ Nullstellen eines Polynoms $p(x)$, so ist
+        $$ p(x) = a_n \cdot (x-x_1) \cdot \ldots \cdot (x-x_n)$$
+        die Faktorisierung von $p(x)$.
+    \end{bonus}
+\end{halfboxr}%
+
+\subsubsection*{Polynome vom Grad 2}
+\begin{halfboxl}
+    \vspace{-\baselineskip}
+    \begin{algo}{$pq$-Formel}
+        \begin{enumerate}
+            \item Polynom der Form $x^2 + px + q = 0$
+            \item $x_{1,2} = -\frac{p}{2} \pm \sqrt{\left(\frac{p}{2}\right)^2 - q}$
+        \end{enumerate}
+    \end{algo}
+\end{halfboxl}%
+\begin{halfboxr}
+    \vspace{-\baselineskip}
+    \begin{algo}{Mitternachtsformel}
+        \begin{enumerate}
+            \item Polynom der Form $ax^2 + bx + c = 0$
+            \item $x_{1,2} = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$
+        \end{enumerate}
+    \end{algo}
+\end{halfboxr}
+
+\begin{bonus}{Besonderheiten bei $x \in \C$}
+    \begin{itemize}
+        \item Ist $x_i$ eine Nullstelle des Polynoms $p(x)$ mit \emph{reellen Koeffizienten}, dann ist auch $\overline{x_i}$ eine Nullstelle von $p(x)$.
+    \end{itemize}
+\end{bonus}
+
+\subsection{Gebrochen rationale Funktionen}
+
+\begin{defi}{Gebrochen rationale Funktionen}
+    Seien $p_m(x)$ und $p_n(x)$ Polynome vom Grad $m$ bzw. $n$, dann heißt
+    $$
+        f(x) = \frac{p_m(x)}{p_n(x)}
+    $$
+    \emph{gebrochen rationale Funktion}.\\
+    Im Fall $m<n$ heißt die Funktion \emph{echt gebrochen rational}, sonst \emph{unecht gebrochen rational}.
+\end{defi}
+
+\begin{algo}{Polynomdivision}
+    Gegeben ist \emph{unecht gebrochen rationale Funktion} $f(x) = \frac{p_m(x)}{p_n(x)}$
+    \begin{enumerate}
+        \item \emph{Dividiere} die größten Exponenten aus beiden Polynomen
+        \item \emph{Mutipliziere} Ergebnis mit Divisor zurück
+        \item \emph{Subtrahiere} Ergebnis vom Dividenden
+        \item Wiederhole, bis:
+              \subitem Ergebnis 0 ist, oder
+              \subitem Grad des Ergebnisses kleiner ist als Grad des Divisors (ergibt \emph{Rest})
+    \end{enumerate}
+\end{algo}
+
+%\begin{bonus}{Polynomdivision Beispiel}
+%    \polylongdiv[style=C]{x^3+x^2-1}{x-1}
+%\end{bonus}
+
+\begin{algo}{Hornerschema}
+    Gegeben ist \emph{Polynom} $p_m(x)$ und ein \emph{Wert} $x_0$
+
+    Vorbereitung:
+    \begin{itemize}
+        \item Erstelle eine Tabelle mit $m + 2$ Spalten und 3 Zeilen
+        \item Erste Zelle frei lassen und dann Koeffizienten $a_m, a_{m-1}, \ldots, a_0$ in die erste Zeile schreiben
+        \item In die erste Zelle der zweiten Zeile kommt $x_0$
+    \end{itemize}
+
+    Anwendung (beginnend in zweiter Zelle der dritten Zeile):
+    \begin{enumerate}
+        \item Erster Koeffizient der ersten Zeile in die dritte Zeile
+        \item \emph{Multipliziere} Zahl der ersten Spalte mit diesem Koeffizienten
+        \item Schreibe Ergebnis in zweite Zeile, unterhalb des nächsten Koeffizienten
+        \item \emph{Addiere} Ergebnis mit diesem Koeffizienten
+        \item Wiederhole 2-4 bis zum Schluss
+    \end{enumerate}
+
+    Ergebnis:
+    \begin{itemize}
+        \item Wert des Polynoms $p_m(x_0)$ in letzter Zelle der letzten Zeile
+        \item Bei Wert $p_m(x_0) = 0$ steht in der letzten Zeile das Polynom nach Abspalten des Linearfaktors $(x-x_0)$
+    \end{itemize}
+\end{algo}
+
+%\begin{bonus}{Hornerschema Beispiel}
+%    Gegeben: $p_4(x) = 2x^4-3x^3+4x^2-5x+2$ an der Stelle $x_0 = 1$
+%    \polyhornerscheme[x=1]{2x^4-3x^3+4x^2-5x+2}
+%    Ergebnis: $p_4(1) = 0 \implies (x-1) \text{ ist Linearfaktor von } p_4(x) \text{ und } \frac{p_4(x)}{x-1} = 2x^3 = x^2 + 3x -2$
+%\end{bonus}
+
+\begin{bonus}{Tipps und Tricks}
+    \begin{itemize}
+        \item Polynomdivision und Hornerschema funktionieren auch sehr gut mit komplexen Zahlen
+        \item Bei mehreren abzuspaltenden Linearfaktoren bietet sich das Hornerschema sehr gut an
+    \end{itemize}
+\end{bonus}
+
+\begin{algo}{Partialbruchzerlegung}
+    Gegeben: \emph{Echt gebrochen rationale Funktion}  $f(x) = \frac{p_m(x)}{p_n(x)}$
+    \begin{enumerate}
+        \item Berechne Nullstellen des \emph{Nennerpolynoms} $x_0, \ldots, x_k \in \R$
+        \item Verschiedene Fälle:
+              \subitem Relle Nullstellen:
+              \subsubitem $x_i$ ist einfache Nullstelle $\implies \frac{A}{x-x_1}$
+              \subsubitem $x_i$ ist $r$-fache Nullstelle $\implies  \frac{A_1}{x-x_1} +  \frac{A_2}{(x-x_1)^2} + \ldots + \frac{A_r}{(x-x_1)^r}$
+              \subitem Nichtrelle Nullstellen:
+              \subsubitem Einfacher quadratischer Term $\implies \frac{Ax + B}{x^2+px+q}$
+              \subsubitem $r$-facher quadratischer Term $\implies \frac{A_1x + B_1}{x^2+px+q} + \frac{A_2x + B_2}{(x^2+px+q)^2} + \ldots + \frac{A_rx + B_r}{(x^2+px+q)^r}$
+        \item Koeffizientenvergleich:
+              \begin{enumerate}
+                  \item Brüche gleichnamig machen (Multipliziere beide Seiten mit Nennerpolynom)
+                  \item Potenzen von $x$ zusammenfassen
+                  \item Gleichungssystem lösen
+                  \item Lösungen in Ansatz einsetzen
+              \end{enumerate}
+    \end{enumerate}
+\end{algo}
+
+\begin{bonus}{Besonderheiten in $\C$}
+    \begin{itemize}
+        \item Für Partialbrüche ohne relle Nullstellen können wir in $\C$ stets Nullstellen finden. Das Verfahren erfolgt dann analog mit komplexen Nullstellen.
+    \end{itemize}
+\end{bonus}
+
+\begin{bonus}{Tipps und Tricks}
+    \begin{itemize}
+        \item Partialbruchzerlegung ist erst bei einer \emph{echt gebrochen rationale Funktion} sinnvoll
+        \item Ist die Funktion unecht gebrochen rational, führe zuerst eine Polynomdivision durch und zerlege dann den Rest in die Partialbrüche
+    \end{itemize}
+\end{bonus}
+
+
+\subsection{Gleichungen und Ungleichungen}
+
+\begin{algo}{Berechnen einer Lösungsmenge bei Ungleichungen}
+    Gegeben: Ungleichung mit Bezug auf Variable $x$
+    \begin{enumerate}
+        \item Für jeden Betrag $\left| a(x) \right|$, eine Fallunterscheidung machen für
+              \subitem $a(x) \geq 0 \implies \left| a(x) \right| = a(x)$
+              \subitem $a(x) < 0 \implies \left| a(x) \right| = -a(x)$
+              \subitem \emph{Hier haben wir bereits eine Einschränkung für die Lösungsmenge des jeweiligen Falles gegeben!}
+        \item Ungleichungen nach $x$ auflösen
+        \item Jeder Fall $i$ erzeugt eine Lösungsmenge $L_i$ bestehend aus\emph{ umgestellter Ungleichung} und Fallbedingungen
+        \item Lösungsmenge $L = \bigcup^n_{i = 1} L_i$, wobei $n$ die Anzahl der betrachteten Fälle ist
+    \end{enumerate}
+\end{algo}
+
+\begin{bonus}{Tipps und Tricks}
+    \begin{itemize}
+        \item $n$ Beträge in der Gleichung können zu $2^n$ Fällen führen.
+        \item Es kann vorkommen, dass ein Fall einer Fallunterscheidung unerreichbar ist, z.B. für $x > 5 \land x < 1$. Die Lösungsmenge $L$ ist dann leer ($L = \emptyset$).
+        \item Radizieren (Wurzelziehen) ist in Ungleichungen nur erlaubt, wenn danach der \emph{Betrag} der Wurzel betrachtet wird
+        \item Quadrieren einer Ungleichung `erzeugt' potentiell ein falsches Ergebnis. Nach dem Quadrieren sollte man also jedes Ergebnis prüfen.
+        \item Multiplikation mit negativen Zahlen sollte vermieden werden, da das Umdrehen des Ungleichheitszeichens schnell für Flüchtigkeitsfehler sorgen kann.
+    \end{itemize}
+\end{bonus}
+
+\subsection{Komplexe Analysis}
+\begin{bonus}{Rechenregeln für komplexe Zahlen in kartesischen Koordinaten}
+    \textbf{Darstellung:} $z = a + i \cdot b$ und $w = c + i \cdot d$
+
+    \textbf{Addition und Subtraktion:} $z \pm w = (a\pm c) + i \cdot (b \pm d)$
+
+    \textbf{Multiplikation:} $z \cdot w = (ac -bd) + i \cdot (ad + bc)$
+
+    \textbf{Division:} $\frac{z}{w} = \frac{z \cdot \overline{w}}{w \cdot \overline{w}}$
+
+    \textbf{Komplex konjugiert:} Vorzeichen von $\Im$ wechseln: $\overline{z} = a- i \cdot b$
+
+    \textbf{Betrag:} Abstand vom Ursprung: $\abs{z} = \sqrt{z \cdot \overline{z}} = \sqrt{a^2 + b^2}$
+\end{bonus}
+
+\begin{bonus}{Rechenregeln für komplexe Zahlen in Polarkoordinaten}
+    \textbf{Darstellung:} $z = r \cdot (\cos\theta + i \cdot \sin \theta) = r \cdot e^{i \cdot \theta}$
+
+    \textbf{Multiplikation:} $z \cdot w = r_z \cdot r_w \cdot e^{i \cdot (\theta_z + \theta_w)}$
+
+    \textbf{Division:} $\frac{z}{w} = \frac{r_z}{r_w} \cdot e^{i \cdot (\theta_z - \theta_w)}$
+
+    \textbf{Komplex konjugiert:} $\overline{z} = (r, -\theta) = (r, 2\pi - \theta)$
+
+    \textbf{Betrag:} $\abs{z} = r$
+\end{bonus}
+
+\begin{algo}{Kartesische Koordinaten $\to$ Polarkoordinaten}
+    \begin{enumerate}
+        \item $r = \abs{z} = \sqrt{x^2 + y^2}$
+        \item
+              \subitem $y \geq 0 : \theta = \arctan \frac{x}{r}$
+              \subitem $y < 0 : \theta = -\arctan \frac{x}{r}$
+    \end{enumerate}
+\end{algo}
+
+\begin{algo}{Polarkoordinaten $\to$ Kartesische Koordinaten}
+    \begin{enumerate}
+        \item $x = r \cdot \cos \theta$
+        \item $y = r \cdot \sin \theta$
+    \end{enumerate}
+\end{algo}
+
+\begin{algo}{Radizieren von komplexen Zahlen}
+    Gesucht: Lösung von $z^n = r \cdot e^{i\cdot \theta}$
+    \begin{enumerate}
+        \item Ist $z^n$ nicht in Polarkoordinaten gegeben, so ist zunächst die Polarform zu bilden.
+        \item Bertechne $r_k = \sqrt[n]{r}$. Dieser Radius ist die Länge aller Lösungen.
+        \item Berechne für alle $k \in [0, n-1]$
+              $$
+                  \theta_k = \frac{\theta + k\cdot 2\pi}{n} = \frac{\theta}{n} + \frac{k}{n} \cdot 2\pi
+              $$
+        \item Die Lösungen sind dann die $n$ Zahlen $z_k = (r_k, \theta_k)$ für $k \in [0, n-1]$.
+    \end{enumerate}
+    \qed
+\end{algo}
+
+\section{Folgen und Reihen}
+
+\subsection{Grundlagen}
+\begin{bonus}{Rechenregeln für Summen}
+    $$
+        \begin{aligned}
+            \sum_{k=m}^n a_k                    & = \sum_{k=m-l}^{n-l} a_{k+l}          \\
+            \sum_{k=m}^n a_k                    & = \sum_{k=m}^c a_k + \sum_{k=c}^n a_k \\
+            \sum_{k=m}^n a_k + \sum_{k=m}^n b_k & = \sum_{k=m}^n a_k + b_k              \\
+            \sum_{k=m}^n c\cdot a_k             & = c\cdot\sum_{k=m}^n a_k
+        \end{aligned}
+    $$
+    Die Regeln gelten auch für unendliche Reihen.
+\end{bonus}
+
+\begin{bonus}{Wichtige Summen}
+    \begin{itemize}
+        \item Arithmetische Summe: $$\sum^n_{k=1} k = \frac{n(n+1)}{2}$$
+        \item Geometrische Summe: $$\sum^n_{k=1} x^k = \frac{1-x^{n+1}}{1-x} = \frac{x^{n+1} - 1}{x-1}$$
+        \item Summe der Quadratzahlen: $$\sum^n_{k=1} k^2 = \frac{n(n+1)(2n+1)}{6}$$
+        \item Summe der Kubikzahlen: $$\sum^n_{k=1} k^3 = \left(\frac{n(n+1)}{2}\right)^2$$
+    \end{itemize}
+\end{bonus}
+
+\subsection{Binomialkoeffizienten und der binomische Lehrsatz}
+
+\begin{defi}{Binomialkoeffizient}
+    Die Anzahl der $k$-elementigen Teilmengen einer $n$-elementigen Menge bezeichnen wir mit $\binom{n}{k}$.
+    Diese Zahlen heißen \emph{Binomialkoeffizienten} oder Binomialzahlen.
+\end{defi}
+
+\begin{defi}{Rekursionsformel für Binomialkoeffizient}
+    Für $k, n \in \N$ mit $k \leq n$ gilt:
+    $$
+        \binom{n}{k} = \binom{n-1}{k} + \binom{n-1}{k-1}
+    $$
+\end{defi}
+
+\begin{defi}{Kombinatorische Formel für Binomialkoeffizient}
+    $$
+        \binom{n}{k} = \begin{cases}
+            0                          & , \text{ für } k > n    \\
+            \frac{n!}{(n-k)! \cdot k!} & , \text{ für } k \leq n
+        \end{cases}
+    $$
+\end{defi}
+
+\begin{defi}{Der binomische Lehrsatz}
+    Für beliebige $a, b \in \R$ und $n \in \N$ gilt:
+    $$
+        (a+b)^n = \sum^n_{k=0} \binom{n}{k} a^k \cdot b^{n-k}
+    $$
+\end{defi}
+
+\section{Konvergenz von Folgen, Reihen und Funktionen}
+
+\subsection{Grundlagen}
+\begin{defi}{Schranken}
+    Gilt $$\forall x\in A : \abs{x} < K,$$ so heißt die Menge $A$ \emph{beschränkt} und $K$ \emph{Schranke}.
+
+    Gilt nur $x \leq K$, so heißt die Menge \emph{nach oben beschränkt} und $K$ \emph{obere Schranke}.
+
+    Im Falle $x \geq K$ heißt $A$ \emph{nach unten beschränkt} und $K$ \emph{untere Schranke}.
+\end{defi}
+
+\begin{defi}{Beschränktheit}
+    Eine Menge $M$ heißt genau dann \emph{beschränkt}, wenn sie nach oiben und nach unten beschränkt ist.
+\end{defi}
+
+\begin{defi}{Supremum, Maximum}
+    Der Wert
+    $$
+        K= \min_{K^* \in \R} \{K \text{ ist obere Schranke}\}
+    $$
+    heißt \emph{kleinste obere Schranke} oder \emph{Supremum von A}.
+    Notation: $\sup A$
+
+    Gilt $K \in A$, so heißt $K$ \emph{Maximum von A}. Notation: $\max A$.
+\end{defi}
+
+\begin{defi}{Infimum, Minimum}
+    Der Wert
+    $$
+        K= \max_{K^* \in \R} \{K \text{ ist untere Schranke}\}
+    $$
+    heißt \emph{größte untere Schranke} oder \emph{Infimum von A}.
+    Notation: $\inf A$
+
+    Gilt $K \in A$, so heißt $K$ \emph{Minimum von A}. Notation: $\min A$.
+\end{defi}
+
+\begin{bonus}{Vollständigkeitsaxiom}
+    Jede nicht-leere nach oben beschränkte Menge $A$ hat ein \emph{Supremum}, jede nicht-leere nach unten beschränkte Menge $A$ hat ein \emph{Infimum}.
+\end{bonus}
+
+\begin{defi}{$\epsilon$-Umgebung von $K$ in $\R$}
+    $$
+        U_\epsilon(K) := \{ x \in \R \mid \abs{x - K} < \epsilon \}
+    $$
+    heißt $\epsilon$\emph{-Umgebung von} $K$ \emph{in} $\R$.
+\end{defi}
+
+\begin{defi}{Innerer Punkt}
+    $x_0 \in A$ heißt \emph{innerer Punkt von A}, falls eine $\epsilon$-Umgebung existiert, so dass $U_\epsilon (x_0) \in A$, also vollständig in $A$ enthalten ist.
+    $A$ heißt \emph{offen}, falls jeder Punkt der Menge innerer Punkt ist.
+\end{defi}
+
+\begin{defi}{Häufungspunkt (Mengen)}
+    $a$ heißt \emph{Häufungspunkt einer Menge A}, wenn $\forall \epsilon > 0$ in der Umgebung $U_\epsilon (a)$ ein Punkt $x \in A$ mit $x \neq a$ existiert.
+
+    Sei $x$ größter Häufungspunkt von $A$, dann heißt
+    $$
+        x = \lim\sup A \text{ (Limes Superior).}
+    $$
+
+    Sei $x$ kleinster Häufungspunkt von $A$, dann heißt
+    $$
+        x = \lim\inf A \text{ (Limes Inferior).}
+    $$
+\end{defi}
+
+\begin{defi}{Abgeschlossenheit}
+    $A$ heißt \emph{abgeschlossen}, wenn jeder Häufungspunkt von $A$ in $A$ liegt.
+\end{defi}
+
+\begin{defi}{Bolzano-Weierstrass für Mengen}
+    Jede unendliche beschränkte Menge $A$ reeller Zahlen besitzt mindestens einen Häufungspunkt.
+\end{defi}
+
+\subsection{Konvergenz von Folgen}
+
+\begin{defi}{Monotonie}
+    Eine Folge $a_n$ heißt \emph{monoton wachsend}, falls $\forall n \in \N : a_n \leq a_{n+1}$.
+    Gilt sogar $a_n < a_{n+1}$, so heißt die Folge \emph{streng monoton wachsend}.
+
+    Eine Folge $a_n$ heißt \emph{monoton fallend}, falls $\forall n \in \N : a_n \geq a_{n+1}$.
+    Gilt sogar $a_n > a_{n+1}$, so heißt die Folge \emph{streng monoton fallend}.
+\end{defi}
+
+\begin{defi}{Häufungspunkt (Folgen)}
+
+    $a$ heißt \emph{Häufungspunkt einer Folge}, wenn zu jeder $\epsilon$-Umgebung $U_\epsilon (a)$ unendlich viele Folgenglieder $a_n$ in $U_\epsilon (a)$ liegen, also
+    $$
+        \forall \epsilon > 0 , \exists \infty\text{-viele } a_n : \abs{a_n - a} < \epsilon
+    $$
+\end{defi}
+
+\begin{defi}{Grenzwert / Limes}
+    Eine Zahl $a\in \R \text{ oder } \C$ heißt \emph{Grenzwert} oder \emph{Limes} einer Zahlenfolge $a_n$, wenn $\forall \epsilon >0, \exists n_0 (\epsilon)$, so dass für alle $n \geq n_0 (\epsilon)$ (fast immer) gilt
+    $$
+        \abs{a_n - a} < \epsilon
+    $$
+
+    Jeder Grenzwert ist auch ein Häufungspunkt.
+\end{defi}
+
+\begin{defi}{Konvergenz / Divergenz}
+    Eine Folge $a_n$ heißt \emph{konvergent}, falls ein Grenzwert existiert.
+
+    Existiert dieser nicht, so heißt die Folge \emph{divergent}.
+
+    Eine konvergente Folge mit $a=0$ heißt \emph{Nullfolge}.
+
+    Ist $\lim_{n\to\infty}a_n = a$, so ist $\lim_{n\to\infty}(a_n-a) = 0$, d.h. $b_n=\lim_{n\to\infty}(a_n-a)$ ist \emph{Nullfolge}.
+\end{defi}
+
+\begin{defi}{Bolzano-Weierstrass für Folgen}
+    1. Jede beschränkte Folge $a_n$ besitzt mindestens eine konvergente Teilfolge.
+
+    2. Jede beschränkte Folge $a_n$ besitzt einen kleinsten und größten Häufungspunkt mit $b \geq a$
+    $$
+        \begin{aligned}
+            a & = \lim\inf a_n, \\
+            b & = \lim\sup a_n.
+        \end{aligned}
+    $$
+    3. Eine Folge konvergiert genau dann, wenn sie beschränkt ist und nur einen Häufungspunkt besitzt. Dann ist
+    $$
+        a = \lim_{n\to\infty} a_n = \lim\inf a_n = \lim\sup a_n.
+    $$
+\end{defi}
+
+\begin{defi}{Sandwich-Lemma oder Einschnürungssatz}
+    Gilt fast immer, also bis auf endliche viele $n$ (oder auch für $n \geq n_0$)
+    $$
+        a_n \leq c_n \leq b_n
+    $$
+    und $\lim_{n\to\infty}a_n = a = \lim_{n\to\infty}b_n$, so ist
+    $$
+        \lim_{n\to\infty}c_n = a.
+    $$
+\end{defi}
+
+\begin{bonus}{Rechenregeln für Grenzwerte}
+    $$
+        \begin{aligned}
+            \lim_{n\to\infty} (a_n + b_n)     & = a+b                                          \\
+            \lim_{n\to\infty} c\cdot a_n      & = c \cdot a                                    \\
+            \lim_{n\to\infty} a_nb_n          & = a \cdot b                                    \\
+            \lim_{n\to\infty} \frac{a_n}{b_n} & = \frac{a}{b} \text{ für } b_n \neq 0, b\neq 0 \\
+            \lim_{n\to\infty} \frac{1}{a_n}   & = \frac{1}{a} \text{ für } a_n \neq 0, a\neq 0
+        \end{aligned}
+    $$
+\end{bonus}
+
+\begin{bonus}{Wichtige Grenzwerte}
+    $$
+        \begin{aligned}
+            \lim_{n\to\infty} \frac{1}{n^\alpha} & = 0 \text{ für } \alpha >0             \\
+            \lim_{n\to\infty} \sqrt[n]{a}        & = 1 \text{ für } a > 0                 \\
+            \lim_{n\to\infty} q^n                & = 0 \text{ für } \abs{q} < 1           \\
+            \lim_{n\to\infty} n^kq^n             & = 0 \text{ für } \abs{q} < 1, k \in \N \\
+            \lim_{n\to\infty} \sqrt[n]{n}        & = 1                                    \\
+            \lim_{n\to\infty} \frac{n!}{n^n}     & = 0
+        \end{aligned}
+    $$
+\end{bonus}
+
+\begin{defi}{Konvergenz monotoner Folgen}
+    Jede beschränkte monotone Folge ist konvergent.
+
+    Der Grenzwert ist bei monoton fallenden Folgen $\inf a_n$, bei wachsenden Folgen $\sup a_n$.
+\end{defi}
+
+\begin{defi}{Eulersche Zahl}
+    Der Grenzert $\lim_{n\to\infty} \left(1 + \frac{1}{n}\right)^n = e$ existiert und heißt \emph{eulersche Zahl}.
+\end{defi}
+
+\begin{defi}{Cauchy-Konvergenz}
+    Eine Folge $a_n$ heißt \emph{Cauchy-konvergent}, falls
+    $$
+        \forall\epsilon > 0, \exists n_0 (\epsilon) \text{ mit } \abs{a_n-a_m} < \epsilon, \forall n > m \geq n_0.
+    $$
+\end{defi}
+
+\subsection{Unendliche Reihen}
+\begin{defi}{Unendliche Reihe}
+    \[
+        \sum_{k=m}^{\infty} a_k = \lim_{n\to\infty} \sum_{k=m}^{n} a_k
+    \]
+\end{defi}
+
+\begin{defi}{Cauchy-Reihe}
+    \[
+        \forall\varepsilon>0 , \exists n_0(\varepsilon) : \left| \sum_{k=m+1}^n a_k \right| < \varepsilon , \forall n>m\geq n_0
+    \]
+    Eine Reihe \emph{konvergiert} genau dann, wenn die zugehörige Cauchy-Reihe konvergiert.
+\end{defi}
+
+\begin{bonus}{Konvergenz durch Nullfolge}
+    Sei $\sum^n_{k=1}a_k$ konvergent, dann ist $a_k$ Nullfolge.
+\end{bonus}
+
+\begin{defi}{Absolute Konvergenz}
+    Eine Reihe heißt \emph{absolut konvergent} wenn $\sum_{k=0}^{\infty} |a_k|$ konvergiert.
+
+    Analog heißt eine Folge \emph{absolut konvergent} wenn $|a_n|$ konvergiert.
+\end{defi}
+
+\begin{algo}{Teleskopsumme}
+    Eine Teleskopsumme hat man dann, wenn sich die Terme einer Summe gegenseitig auflösen.
+\end{algo}
+
+\begin{example}{Teleskopsumme}
+    \[
+        \sum_{k=1}^n \frac{1}{k} - \frac{1}{k+1} = \sum_{k=1}^n \frac{1}{k} - \sum_{k=2}^{n+1} \frac{1}{k} = \frac{1}{1} +\left( \sum_{k=2}^n \frac{1}{k} - \sum_{k=2}^n \frac{1}{k} \right) - \frac{1}{n+1} = 1-\frac{1}{n+1}
+    \]
+\end{example}
+
+\begin{algo}{Majorantenkriterium}
+    Man sucht eine zweite Folge $b_k$, sodass diese fast immer größer ist als die vorgegebene Folge ist.
+
+    Konvergiert $\sum_{k=1}^{\infty} b_k$ dann konvergiert auch die ursprüngliche Reihe.
+\end{algo}
+
+\begin{example}{Majorantenkriterium}
+    Konvergiert $\sum_{k=1}^{\infty} \frac{1}{k^2+1}$?
+
+    Ja, da $\frac{1}{k^2+1} < \frac{1}{k^2}$ und wir wissen, dass $\sum_{k=1}^{\infty} \frac{1}{k^2}$ konvergiert.\\
+    Wir haben also eine konvergente Majorante.
+\end{example}
+
+\begin{algo}{Minorantenkriterium}
+    Man sucht eine zweite Folge $b_k$, sodass diese fast immer kleiner ist als die vorgegebene Folge ist.
+    Divergiert $\sum_{k=1}^{\infty} b_k$ dann divergiert auch die ursprüngliche Reihe.
+\end{algo}
+
+\begin{example}{Majorantenkriterium}
+    Konvergiert $\sum_{k=1}^{\infty} \frac{1}{\ln(k)}$?
+
+    Nein, da $\frac{1}{k} < \frac{1}{\ln(k)}$ ($k\geq3$) und wir wissen, dass $\sum_{k=1}^{\infty} \frac{1}{k}$ divergiert.\\
+    Wir haben also eine divergente Minorante.
+\end{example}
+
+\begin{algo}{Cauchy-Kondensatioskriterium}
+    Die Konvergenz von folgenden Reihen ist äquivalent.
+    $$
+        \sum_{k=1}^{\infty} a_k \quad \text{ und } \quad
+        \sum_{k=1}^{\infty} 2^k \cdot a_{2^k}
+    $$
+\end{algo}
+
+\begin{example}{Cauchy-Kondensatioskriterium}
+    Konvergiert $\sum_{k=1}^{\infty} \frac{1}{k}$?
+
+    Die Frage ist äquivalent dazu, ob
+    \[
+        \sum_{k=1}^{\infty} 2^k \cdot \frac{1}{2^k} = \sum_{k=1}^{\infty} 1
+    \]
+    konvergiert. Das tut sie offensichtlich nicht, also konvergiert auch $\sum_{k=1}^{\infty} \frac{1}{k}$ nicht.
+\end{example}
+
+\begin{algo}{Wurzelkriterium}
+    Sei $r = \lim_{n\to\infty} \sqrt[n]{|a_n|}$.
+    Dann konvergiert $\sum_{k=1}^{\infty} a_k$ für $r<1$.
+    Für $r>1$ divergiert die Reihe.
+    Für $r=1$ liefert das Kriterium keine Aussage.
+\end{algo}
+
+\begin{example}{Wurzelkriterium}
+    Konvergiert die Reihe $\sum_{k=1}^{\infty} \frac{1}{7^k}$?
+
+    Es gilt
+    \[
+        r = \lim_{k\to\infty} \sqrt[k]{\frac{1}{7^k}} = \frac{1}{7} < 1
+    \]
+    Also konvergiert die Reihe.
+\end{example}
+
+\begin{algo}{Quotientenkriterium}
+    Sei $r = \lim_{n\to\infty} \left| \frac{a_{n+1}}{a_n} \right|$.
+
+    Dann konvergiert $\sum_{k=1}^{\infty} a_k$ für $r<1$.
+
+    Für $r>1$ divergiert die Reihe.
+
+    Für $r=1$ liefert das Kriterium keine Aussage.
+\end{algo}
+
+\begin{example}{Quotientenkriterium}
+    Konvergert die Reihe $\sum_{k=1}^{\infty} \frac{x^k}{k!}$?
+
+    Wir berechnen dann
+    \[
+        r = \lim_{n\to\infty} \left| \frac{\frac{x^{n+1}}{(n+1)!}}{\frac{x^n}{n!}} \right|
+        = \lim_{n\to\infty} \left| \frac{x}{n+1} \right| = 0
+    \]
+    Die Reihe konvergiert also für alle $x$.
+\end{example}
+
+\begin{algo}{Leibnizkriterium}
+    Das Leibnizkriterium wird für alternierende Reihen genutzt.
+
+    Sei $\sum_{k=1}^{\infty} (-1)^n \cdot a_n$ und $a_n$ eine beliebige Folge.
+
+    Jetzt muss man nur drei Eigenschaften für $a_n$ zeigen:
+    \begin{enumerate}
+        \item $a_n$ muss monoton fallend sein,
+        \item $a_n$ muss immer größer als Null sein und
+        \item $\lim_{n\to\infty} a_n =0$.
+    \end{enumerate}
+
+    Dann konvergiert die Reihe.
+\end{algo}
+
+\begin{example}{Leibnizkriterium}
+    Konvergiert die Reihe $\sum_{k=2}^{\infty} (-1)^n \cdot \frac{1}{\ln(k)}$.
+    Wir wissen, dass $\ln(k) > 0$ für $k>1$.
+    Außerdem wissen wir, dass der natürliche Logarithmus monoton steigend ist, also ist $\frac{1}{\ln(k)}$ monoton fallend.
+    Es gilt auch $\lim_{n\to\infty} = 0$. Also konvergiert die Reihe.
+\end{example}
+
+
+\subsection{Potenzreihen}
+
+\begin{defi}{Potenzreihe}
+    Sei $x \in \R, a_n \in \R$, so heißt
+    $$
+        p(x) := \sum_{n=0}^{\infty} a_nx^n
+    $$
+    \emph{reelle Potenzreihe von x}.
+
+    Jede Potenzreihe konvergiert für $x=0$.
+\end{defi}
+
+\begin{defi}{Konvergenz von Potenzreihen (Entwicklungspunkt $x_0 = 0$)}
+    Jede Potenzreihe konvergiert für $x=0$.
+
+    Jede Potenzreihe konvergiert für
+    $$
+        \abs{x} < R = \lim_{n\to\infty} \abs{\frac{a_n}{a_{n+1}}} \quad \text{ bzw. } \quad \abs{x} < R = \frac{1}{\lim_{n\to\infty} \sqrt[n]{\abs{a_n}}}
+    $$
+    und divergiert für $\abs{x} > R$.
+
+    Der Rand muss oft gesondert betrachtet werden!
+\end{defi}
+
+\begin{defi}{Konvergenz von Potenzreihen (Entwicklungspunkt $x_0 \neq 0$)}
+    Jede Potenzreihe $p(x) = \sum^\infty_{n=0} a_n (x-x_0)^n$ konvergiert für
+    $$
+        \abs{x-x_0} < R = \lim_{n\to\infty} \abs{\frac{a_n}{a_{n+1}}}\quad  \text{ bzw. } \quad \abs{x} < R = \frac{1}{\lim_{n\to\infty} \sqrt[n]{\abs{a_n}}}
+    $$
+    und divergiert für $\abs{x-x_0} > R$.
+
+    Der Rand muss oft gesondert betrachtet werden!
+\end{defi}
+
+\begin{defi}{Konvergenzradius}
+    $$
+        R = \lim_{n\to\infty} \abs{\frac{a_n}{a_{n+1}}}\quad  \text{ bzw. } R = \frac{1}{\lim_{n\to\infty} \sqrt[n]{\abs{a_n}}}
+    $$
+    \emph{heißt der Konvergenzradius der Potenzreihe}.
+\end{defi}
+
+\begin{bonus}{Spezielle Potenzreihen}
+    $$
+        \begin{aligned}
+            f(x) = \frac{1}{1-c(x-x_0)} & \iff \sum^\infty_{n=0} c^n \cdot (x-x_0)^n \text{ für } \abs{x-x_0} < \frac{1}{\abs{c}}
+        \end{aligned}
+    $$
+\end{bonus}
+
+\begin{example}{Potenzreihe um Entwicklungspunkt bestimmen}
+    Wir wollen die Potenzreihe um $x_0 = 1$ der Reihe $$f(x) = \frac{3}{5+2x}$$ bestimmen.
+    Zunächst ist:
+    $$
+        \begin{aligned}
+            f(x) & ={} \frac{3}{5+2x}                                                                                                       \\
+                 & ={} 3\cdot \frac{1}{5+2(x-1) + 2}                                                                                        \\
+                 & ={} 3\cdot \frac{1}{7- (-2) \cdot (x-1)}                                                                                 \\
+                 & ={} \frac{3}{7}\cdot \frac{1}{1- (-\frac{2}{7}) \cdot (x-1)}                                                             \\
+                 & ={} \frac{3}{7}\cdot \sum^\infty_{n=0} \left(\frac{-2}{7} \cdot (x-1)\right)^n \text{ für } \abs{\frac{-2}{7} (x-1)} < 1 \\
+                 & ={} \frac{3}{7}\cdot \sum^\infty_{n=0} \left(\frac{-2}{7}\right)^n \cdot (x-1)^n \text{ für } \abs{x-1} < \frac{7}{2}
+        \end{aligned}
+    $$
+\end{example}
+
+\begin{defi}{Exponentialfunktion}
+    Die Funktion
+    $$
+        \exp(x) = \sum^\infty_{n=0} \frac{x^n}{n!}
+    $$
+    heißt \emph{Exponentialfunktion} oder \emph{exponentielle Funktion}.
+    Sie konvergiert für jedes $x\in \R$ und ist damit wohldefiniert.
+\end{defi}
+
+\subsection{Grenzwerte von Funktionen}
+
+\begin{defi}{Konvergenz von Funktionen}
+    Gilt $\forall x_n$, dass (falls $\lim_{n\to\infty} x_n=x_0$ gilt):
+    $$
+        \lim_{n\to\infty} f(x_n) = L
+    $$
+    so heißt die Funktion \emph{konvergent für} $x \to x_0$ und wir schreiben
+    $$
+        \lim_{n\to\infty} =: \lim_{x\to x_0} f(x).
+    $$
+\end{defi}
+
+\begin{defi}{Stetigkeit von Funktionen}
+    Gilt $\forall x_n$, dass (falls $\lim_{n\to\infty} x_n=x_0$ gilt):
+    $$
+        \lim_{n\to\infty} f(x_n) = f(x_0)
+    $$
+    so heißt die Funktion \emph{stetig in} $x_0$.
+
+    Jede Potenzreihe ist im Inneren ihres Konvergenzradius (also nicht zwingend für die Randpunkte) stetig.
+\end{defi}
+
+\begin{defi}{Rechtsseitiger und linksseitiger Grenzwert}
+    Existiert für Folgen $x_n$ mit $x_n > x_0$ ein Grenzwert $L$, also existiert
+    $$
+        \lim_{x \to x_0 \land x > x_0} f(x) = L =:  \lim_{x \downarrow x_0} f(x)
+    $$
+    so heißt der Grenzwert \emph{rechtsseitiger Grenzwert}.
+    Gilt $L=f(x_0)$, so heißt die Funktion \emph{rechtsseitig stetig.}
+
+    Entsprechend für $x < x_0$:
+    $$
+        \lim_{x \to x_0 \land x < x_0} f(x) = L =:  \lim_{x \uparrow x_0} f(x).
+    $$
+\end{defi}
+
+\begin{defi}{Stetigkeit}
+    Eine Funktion $f(x)$ ist genau dann \emph{stetig in} $x_0$, wenn
+    $$
+        \lim_{x \downarrow x_0} f(x_0) = \lim_{x \uparrow  x_0} f(x_0) = f(x_0).
+    $$
+
+    Sei $f : D \to \R$ heißt \emph{stetig auf} $D = [a, b]$, falls $f$ für jedes $x_0 \in D$ stetig ist.
+\end{defi}
+
+\begin{defi}{$\epsilon$-$\delta$-Kriterium}
+    Eine Funktion $f(x)$ heißt \emph{stetig in} $x_0$, falls
+    $$
+        \forall \epsilon > 0, \exists \delta(x_0, \epsilon) > 0, \forall \abs{x-x_0} < \delta : \abs{f(x)-f(x_0)} < \epsilon
+    $$
+\end{defi}
+
+\begin{example}{$\epsilon$-$\delta$-Kriterium}
+    Untersuche die Stetigkeit von $f(x) = \frac{1}{\sqrt{x}}, \quad x > 0$.
+
+    $f(x)$ ist stetig in $x_0$, wenn
+    $$\forall \epsilon > 0, \exists \delta (x_0, \epsilon) > 0: \forall \abs{x-x_0} < \delta \Rightarrow \abs{f(x)-f(x_0)} < \epsilon$$
+    $$
+        \begin{aligned}
+                       & \abs{f(x)-f(x_0)}                                                                                                                                        \\
+            = \quad    & \abs{\frac{1}{\sqrt{x}}-\frac{1}{\sqrt{x_0}}}                                                                                                            \\
+            = \quad    & \abs{\left(\frac{1}{\sqrt{x}}-\frac{1}{\sqrt{x_0}}\right) \cdot \frac{\frac{1}{\sqrt{x}}+\frac{1}{\sqrt{x_0}}}{\frac{1}{\sqrt{x}}+\frac{1}{\sqrt{x_0}}}} \\
+            = \quad    & \abs{\frac{\frac{1}{x}-\frac{1}{x_0}}{\frac{1}{\sqrt{x}}+\frac{1}{\sqrt{x_0}}}}                                                                          \\
+            = \quad    & \abs{\frac{\frac{x_0-x}{x x_0}}{\frac{\sqrt{x_0} + \sqrt{x}}{ \sqrt{x  x_0}}}}                                                                           \\
+            = \quad    & \abs{ \frac{(x_0 - x)  \sqrt{x x_0} }{ x x_0  \left( \sqrt{x_0} + \sqrt{x} \right) } }                                                                   \\
+            = \quad    & \abs{ \frac{x_0 - x }{ \sqrt{x x_0 } \left( \sqrt{x_0} + \sqrt{x} \right) } }                                                                            \\
+            = \quad    & \abs{ \frac{x-x_0 }{ \sqrt{x x_0 } \left( \sqrt{x_0} + \sqrt{x} \right) } }                                                                              \\
+            = \quad    & \abs{x-x_0} \cdot \frac{1 }{ \sqrt{x x_0 } \left( \sqrt{x_0} + \sqrt{x} \right) }                                                                        \\
+            < \quad    & \delta \cdot \frac{1 }{ \sqrt{x x_0 } \left( \sqrt{x_0} + \sqrt{x} \right) }                                                                             \\
+            \leq \quad & \delta \cdot \frac{1 }{ \sqrt{x x_0 } \sqrt{x_0} + \sqrt{x x_0 } \sqrt{x} }                                                                              \\
+            \leq \quad & \delta \cdot \frac{1 }{ \sqrt{x x_0 } \sqrt{x} }                                                                                                         \\
+            \leq \quad & \delta \cdot \frac{1 }{ x\sqrt{x_0} }                                                                                                                    \\
+        \end{aligned}
+    $$
+    Sei $\abs{x-x_0} < \frac{x_0}{2}$:
+
+    $$\abs{x-x_0} < \frac{x_0}{2} \implies x_0 -\frac{x_0}{2}  < x < x_0 + \frac{x_0}{2}  \iff \frac{x_0}{2} < x$$
+
+    Daraus folgt weiterhin:
+    $$
+        \begin{aligned}
+                       & \delta \cdot \frac{1 }{ x\sqrt{x_0} }       \\
+            < \quad    & \frac{2\delta }{ x_0\sqrt{x_0} } < \epsilon \\
+            \iff \quad & \delta < \frac{x_0\sqrt{x_0}}{2} \epsilon
+        \end{aligned}
+    $$
+
+    Mit $\delta = \min\{\frac{x_0}{2}, \frac{x_0\sqrt{x_0}}{2}\epsilon\}$ ist $f(x)$ stetig.\qed
+\end{example}
+
+\begin{defi}{Sandwich-Lemma für Funktionen}
+    Gilt
+    $$
+        \forall \abs{x-x_0} < K, x\neq x_0 : f(x) \leq g(x) \leq h(x)
+    $$
+    und
+    $$
+        \lim_{x\to x_0} f(x) = \lim_{x\to x_0} h(x) = c
+    $$
+    so ist auch
+    $$
+        \lim_{x\to x_0} g(x) = c.
+    $$
+\end{defi}
+
+\begin{defi}{Unstetigkeit}
+    Es gibt verschiedene Typen der Unstetigkeit:
+    \begin{enumerate}
+        \item Sprungstellen:
+              $$
+                  \lim_{x\uparrow x_0} f(x) \neq\lim_{x\downarrow x_0} f(x)
+              $$
+        \item Unendlichkeitsstellen: $f$ ist in der Umgebung von $x_0$ nicht beschränkt, d.h.
+              $$
+                  \lim_{x\to x_0} f(x) > R
+              $$
+        \item Oszillationsstellen: z.B.
+              $$
+                  \lim_{x\to 0} \sin \frac{1}{x} \text{ in } x_0 = 0
+              $$
+        \item Singuläre Definitionen:
+              $$
+                  f(x) = \begin{cases}
+                      g(x) & , \text{ für } x \in M    \\
+                      h(x) & , \text{ für } x \notin M
+                  \end{cases}
+              $$
+        \item Definitionslücken: z.B.
+              $$
+                  f(x) = \frac{x}{x} \text{ für } x \neq 0
+              $$
+        \item Kombinationen aus den oben genannten
+    \end{enumerate}
+\end{defi}
+
+\begin{defi}{Hebbare Lücke}
+    Sei $f(x)$ stetig für $x\neq x_0, x_0 \notin D$.
+    Dann erhält man mit $f(x) := \lim_{x\to x_0} f(x)$ eine stetige Funktion, wenn der Grenzwert existiert.
+    $x_0$ heißt \emph{hebbare Lücke}.
+\end{defi}
+
+\begin{bonus}{Stetigkeit auf Intervallen}
+    Sei $f : [a, b] \to \R$ stetig, dann:
+    \begin{itemize}
+        \item ist $f(x)$ beschränkt.
+        \item existieren $x_1, x_2 \in [a, b]: f(x_1) \leq f(x) \leq f(x_2), \forall x \in [a, b]$
+    \end{itemize}
+\end{bonus}
+
+\begin{defi}{Gleichmäßige Stetigkeit}
+    Eine Funktion $f : D \to \R$ heißt \emph{gleichmäßig stetig auf D}, falls es ein $\delta > 0$ unabhängig von $x_0$ gibt, so dass
+    $$
+        \abs{f(x) - f(x_0)} < \epsilon, \forall \abs{x-x_0} < \delta.
+    $$
+
+    Jede gleichmäßig stetige Funktion ist stetig.
+
+    Eine stetige Funktion $f : [a, b] \to \R$ ist gleichmäßig stetig.
+\end{defi}
+
+\begin{defi}{Lipschitz-Stetigkeit}
+    Eine Funktion $f$ heißt \emph{lokal Lipschitz-stetig in} $x_0$, wenn es ein $L \geq 0$ und ein $\delta > 0$ gibt, so dass
+    $$
+        \abs{f(x) - f(x_0)} \leq L \cdot \abs{x-x_0}, \forall \abs{x-x_0} < \delta.
+    $$
+
+    Eine Funktion $f$ heißt \emph{Lipschitz-stetig}, wenn es ein $L \geq 0$, so dass
+    $$
+        \abs{f(x) - f(y)} \leq L \cdot \abs{x-y}, \forall x, y \in [a, b].
+    $$
+    $L$ heißt \emph{Lipschitz-Konstante}.
+
+    Ist eine Funktion Lipschitz-stetig, so ist sie auch gleichmäßig stetig.
+\end{defi}
+
+\begin{example}{Lipschitz-Stetigkeit}\
+    $$f(x) = \sqrt{2+3x}$$
+
+    Ist die Funktion lokal Lipschitz-stetig im Punkt $x_0 = 1$?
+    Berechnen Sie gegebenenfalls die Lipschitz-Konstante $L$ in Abhängigkeit von $\delta$.
+    Lipschitz-Stetigkeit: $\exists L \geq 0, \forall x,x_0\in D: \abs{f(x)-f(x_0)} \leq L \cdot \abs{x-x_0}$
+
+    $$
+        \begin{aligned}
+                                                             & \abs{f(x)-f(y)}                                                                                     \\
+            = \quad                                          & \abs{\sqrt{2+3x} - \sqrt{2+3y}}                                                                     \\
+            = \quad                                          & \abs{(\sqrt{2+3x} - \sqrt{2+3y}) \cdot \frac{\sqrt{2+3x} + \sqrt{2+3y}}{\sqrt{2+3x} + \sqrt{2+3y}}} \\
+            = \quad                                          & \abs{\frac{2+3x-(2+3y)}{\sqrt{2+3x} + \sqrt{2+3y}}}                                                 \\
+            = \quad                                          & \abs{\frac{3(x-y)}{\sqrt{2+3x} + \sqrt{2+3y}}}                                                      \\
+            = \quad                                          & \frac{3}{\sqrt{2+3x} + \sqrt{2+3y}} \cdot \abs{x-y}                                                 \\
+            \overset{x,y\in (x_0-\delta, x_0+\delta)}< \quad & \frac{3}{\sqrt{2+3(x_0-\delta)} + \sqrt{2+3(x_0-\delta)}} \cdot \abs{x-y}                           \\
+            = \quad                                          & \frac{3}{\sqrt{2+3(1-\delta)} + \sqrt{2+3(1-\delta)}} \cdot \abs{x-y}                               \\
+            = \quad                                          & \frac{3}{\sqrt{2+3-3\delta} + \sqrt{2+3-3\delta}} \cdot \abs{x-y}                                   \\
+            = \quad                                          & \frac{3}{2\cdot \sqrt{5-3\delta}} \cdot \abs{x-y}                                                   \\
+        \end{aligned}
+    $$
+    Damit ist $f$ lokal Lipschitz-stetig im Punkt $x_0 = 1$ mit $L = \frac{3}{2\cdot \sqrt{5-3\delta}}$.\qed
+\end{example}
+
+\begin{defi}{Zwischenwertsatz}
+    Sei $f : [a, b] \to \R$ stetig mit $f(a) = c$ und $f(b) = d$, dann gilt
+    $$
+        \forall y \in [\min(c, d) , \max(c, d)], \exists x \in [a, b] : f(x) = y.
+    $$
+\end{defi}
+
+\begin{defi}{Fixpunktsatz}
+    Ein Wert $x^* \in \R$ heißt \emph{Fixpunkt} einer Funktion $f(x)$, falls $x^* = f(x^*)$.
+
+    Sei $f : [a, b] \to [c, d]$ stetig mit $[c, d] \subset [a, b]$ (\emph{selbstkontrahierend}), dann existiert ein \emph{Fixpunkt} $u = f(u)$.
+\end{defi}
+
+\begin{example}{Fixpunktberechnung (Teil 1)}
+    Gegeben ist die Funktion
+    $$f: [0,\infty) \to [0, \infty), \quad f(x) = \frac{x+\frac{1}{2}}{x+1}$$
+
+    (a) Zeigen Sie, dass die Funktion die Voraussetzungen des Fixpunktsatzes erfüllt.
+
+    \textbf{Stetigkeit:}
+    $f$ ist offensichtlich stetig, da $f$ aus stetigen Funktionen zusammengesetzt ist (und insbesondere, da $\forall x\in [0,\infty]: x\neq -1$).
+
+    \textbf{Monotonieverhalten:}
+    Wir vermuten, dass die Funktion monoton steigend ist:
+    $$
+        \begin{aligned}
+                         & x \geq y \implies f(x) \geq f(y)                                                           \\
+            \equiv \quad & x \geq y \implies \frac{x+\frac{1}{2}}{x+1} \geq \frac{y+\frac{1}{2}}{y+1}                 \\
+            \equiv \quad & x \geq y \implies \left(x+\frac{1}{2}\right)(y+1) \geq \left(y+\frac{1}{2}\right)(x+1)     \\
+            \equiv \quad & x \geq y \implies xy+ x + \frac{y}{2}+ \frac{1}{2} \geq xy + y + \frac{x}{2} + \frac{1}{2} \\
+            \equiv \quad & x \geq y \implies x + \frac{y}{2}\geq y + \frac{x}{2}                                      \\
+            \equiv \quad & x \geq y \implies x - \frac{x}{2}\geq y - \frac{y}{2}                                      \\
+            \equiv \quad & x \geq y \implies \frac{x}{2}\geq \frac{y}{2}                                              \\
+            \equiv \quad & x \geq y \implies x\geq y \quad \checkmark
+        \end{aligned}
+    $$
+    Damit ist $f$ monoton steigend.
+
+    \textbf{Kontraktion:} Zu zeigen: $\forall x\in [0,\infty)]: f(x) \in [0,\infty)]$:
+
+    $$f(0) = \frac{0+\frac{1}{2}}{0+1} = \frac{1}{2}\in [0,\infty), \text{ und } \lim_{n\to\infty} f(n) = \lim_{n\to\infty} \frac{n+\frac{1}{2}}{n+1} = 1\in [0,\infty)$$
+
+    Da beide Werte im gegebenen Definitionsbereich sind und $f$ monoton steigend ist, ist $f$ insgesamt selbstkontrahierend.
+
+    Insgesamt sind also alle Bedingungen für den Fixpunktsatz erfüllt.\qed
+
+\end{example}
+
+\begin{example}{Fixpunktberechnung (Teil 2)}
+    (b) Berechnen Sie den Fixpunkt von $f$.
+    $$
+        \begin{aligned}
+                           & f(x^*) = x^*                                            \\
+            \equiv \quad   & \frac{x^*+\frac{1}{2}}{x^*+1} = x^*                     \\
+            \equiv \quad   & x^*+\frac{1}{2} = x^*(x^*+1)                            \\
+            \equiv \quad   & x^*+\frac{1}{2} = (x^*)^2+x^*                           \\
+            \equiv \quad   & 0 = (x^*)^2-\frac{1}{2}                                 \\
+            \implies \quad & x^* = \sqrt{\frac{1}{2}} \lor x^* = -\sqrt{\frac{1}{2}}
+        \end{aligned}
+    $$
+
+    $x^* \in [0,\infty] \implies x^* = \sqrt{\frac{1}{2}}$\qed
+\end{example}
+
+\section{Differentialrechnung}
+\subsection{Tangentengleichung}
+
+\begin{algo}{Tangentengleichung}
+    Wollen wir die Gleichung der Tangente einer Funktion $f(x)$ in einem Punkt $x_0$ bestimmen, so verwenden wir den Ansatz
+    $$
+        T(x) = f_1(x) = m \cdot (x-x_0) + b.
+    $$
+    Die Tangente im Punkt $x_0$ hat die Eigenschaften
+    \begin{itemize}
+        \item Die Steigung ist $m = f'(x)$,
+        \item Sie geht durch den Punkt $(x_0, f(x_0))$.
+    \end{itemize}
+
+    Einsetzen der zweiten Bedingung liefert
+    $$
+        f(x_0) = f_1(x_0) = b
+    $$
+    und damit ist die Tangentengleichung bekannt mit
+    $$
+        f_1(x) = f'(x_0) \cdot (x-x_0) + f(x_0).
+    $$
+\end{algo}
+
+\newpage
+\subsection{Ableitungsregeln}
+
+\begin{defi}{Faktorregel}
+    $$
+        f(x) = c \cdot g(x) \implies f'(x) = c \cdot g'(x)
+    $$
+\end{defi}
+
+\begin{defi}{Summenregel}
+    $$
+        f(x) = g(x) + h(x) \implies f'(x) = g'(x) + h'(x)
+    $$
+\end{defi}
+
+\begin{defi}{Produktregel}
+    $$
+        f(x) = g(x) \cdot h(x) \implies f'(x) = g'(x)\cdot h(x) + g(x) \cdot h'(x)
+    $$
+\end{defi}
+
+\begin{defi}{Quotientenregel}
+    $$
+        f(x) = \frac{g(x)}{h(x)} \implies f'(x) = \frac{g'(x)\cdot h(x) - g(x)\cdot h'(x)}{[h(x)]^2}
+    $$
+\end{defi}
+
+\begin{defi}{Kettenregel}
+    $$
+        f(x) = g(h(x)) \implies f'(x) = g'(h(x)) \cdot h'(x)
+    $$
+\end{defi}
+
+\begin{bonus}{Ableitung der Umkehrfunktion}
+    $$
+        (f^{-1})(y) = \frac{1}{f'(x)} = \frac{1}{f'(f^{-1}(y))}
+    $$
+\end{bonus}
+
+\begin{bonus}{Elementare Ableitungsfunktionen}
+    \begin{center}
+        \begin{tabular}{C | C}
+            f(x)   & f'(x)                             \\
+            \hline
+            x^n    & n \cdot x^{n-1}                   \\
+            \sin x & \cos x                            \\
+            \cos x & -\sin x                           \\
+            \tan x & \frac{1}{\cos^2 x} = \tan^2 x + 1 \\
+            \cot x & \frac{-1}{\sin^2 x}               \\
+            e^x    & e^x                               \\
+            a^x    & a^x \cdot \ln a                   \\
+            \ln x  & \frac{1}{x}
+        \end{tabular}
+    \end{center}
+\end{bonus}
+
+\subsection{Lokale Extrema}
+
+\begin{defi}{Lokale Extrema}
+    Existiert eine Stelle $x_0$ einer Funktion $f(x)$ und eine $\epsilon$-Umgebung $U_\epsilon (x_0)$ von $x_0$, so dass $\forall x \in U_\epsilon (x_0)$ gilt:
+    \begin{itemize}
+        \item $f(x) \geq f(x_0)$, so heißt $x_0$ \emph{lokales Minimum},
+        \item $f(x) \leq f(x_0)$, so heißt $x_0$ \emph{lokales Maximum}.
+    \end{itemize}
+
+    Ist $f$ differenzierbar in $x_0$ und $x_0$ lokales Extremum, sei gilt
+    $$
+        f'(x_0) = 0.
+    $$
+\end{defi}
+
+\subsection{Mittelwertsatz}
+
+\begin{bonus}{Satz von Rolle}
+    Ist $f$ auf $[a, b]$ stetig mit $f(a) = f(b)$ und auf $(a, b)$ differenzierbar, so existiert ein $x^* \in (a, b) : f'(x^*) = 0$.
+\end{bonus}
+
+\begin{defi}{Mittelwertsatz}
+    Sei $f \in C[a, b]$ und in $(a, b)$ differenzierbar.
+    Dann existiert ein $x^* \in (a, b)$ mit
+    $$
+        f'(x^*) = \frac{f(b)  -f(a)}{b-a}.
+    $$
+\end{defi}
+
+\subsection{Stetigkeit und Differenzierbarkeit von Potenzreihen}
+
+\begin{defi}{Stetigkeit / Differenzierbarkeit von Potenzreihen}
+    Jede Potenzreihe ist stetig im Inneren des Konvergenzbereiches.
+    Die Potenzreihe $p(x) = \sum^\infty_{n=0} a_n(x-x_0)^n$ ist differenzierbar im Inneren des Konvergenzbereiches und die Ableitung $p'(x)$ kann summandenweise berechnet werden mit:
+    $$
+        \begin{aligned}
+            p'(x) & = \sum^\infty_{n=1} a_n \cdot n \cdot (x-x_0)^{n-1}       \\
+                  & = \sum^\infty_{n=0} a_{n+1} \cdot (n+1) \cdot (x-x_0)^{n}
+        \end{aligned}
+    $$
+\end{defi}
+
+\subsection{Monotonie}
+
+\begin{defi}{Monotonie für Funktionen}
+    Eine Funktion heißt \emph{monoton wachsend auf} $[a, b]$, falls
+    $$
+        \forall x_1, x_2 \in (a, b), x_1 < x_2 : f(x_1) \leq f(x_2) \iff \forall x \in (a, b): f'(x) \geq 0.
+    $$
+    Eine Funktion heißt \emph{streng monoton wachsend auf} $[a, b]$, falls
+    $$
+        \forall x_1, x_2 \in (a, b), x_1 < x_2 : f(x_1) < f(x_2) \iff \forall x \in (a, b): f'(x) > 0.
+    $$
+    Eine Funktion heißt \emph{monoton fallend auf} $[a, b]$, falls
+    $$
+        \forall x_1, x_2 \in (a, b), x_1 < x_2 : f(x_1) \geq f(x_2) \iff \forall x \in (a, b): f'(x) \leq 0.
+    $$
+    Eine Funktion heißt \emph{streng monoton fallend auf} $[a, b]$, falls
+    $$
+        \forall x_1, x_2 \in (a, b), x_1 < x_2 : f(x_1) > f(x_2) \iff \forall x \in (a, b): f'(x) < 0.
+    $$
+\end{defi}
+
+\subsection{Die Grenzwerte von de L'Hospital}
+
+\begin{defi}{Regeln von de L'Hospital}
+    Seien $f, g \in C[a, b]$ und in $(a, b)$ differenzierbar mit $f(a) = g(a) = 0$.
+
+    Weiterhin gelte $\forall x \in (a, b): g'(x) \neq 0$ und es existiert
+    $$
+        \lim_{x\to a} \frac{f'(x)}{g'(x)}
+    $$
+    dann existiert auch
+    $$
+        \lim_{x\to a } \frac{f(x)}{g(x)}
+    $$
+    und es ist
+    $$
+        \lim_{x\to a } \frac{f(x)}{g(x)} = \lim_{x\to a} \frac{f'(x)}{g'(x)}.
+    $$
+\end{defi}
+
+\subsection{Krümmungseigenschaften}
+
+\begin{defi}{Krümmung}
+    Sei $f\in C^2(a, b)$ und ist $\forall x \in (a, b) : f''(x) > 0$, so heißt $f(x)$ \emph{konvex} oder \emph{linksgekrümmt}.
+
+    Ist $\forall x \in (a, b) : f''(x) < 0$ so heißt $f(x)$ \emph{konkav} oder \emph{rechtsgekrümmt}
+\end{defi}
+
+\begin{defi}{Wendepunkt}
+    Sei $f \in C^2(a, b)$ und wechselt die Funktion für $x^* \in (a, b)$ von einer links- zu einer rechtsgekrümmten Funktion (oder umgekehrt), so heißt $x^*$ \emph{Wendepunkt der Funktion}.
+
+    Ist $x^*$ Wendepunkt und $f \in C^2(a, b)$, so ist $f''(x) = 0$.
+\end{defi}
+
+\subsection{Die Taylorreihe}
+
+\begin{defi}{Taylorreihe}
+    $$
+        \begin{aligned}
+            f(x) & = \sum^\infty_{n=0} \frac{f^{(n)}(x_0)}{n!} (x-x_0)^n                                           \\
+                 & = f(x_0) + f'(x_0)(x-x_0) + \frac{f''(x_0)}{2}(x-x_0)^2 + \frac{f'''(x_0)}{6}(x-x_0)^3 + \ldots
+        \end{aligned}
+    $$
+    Dabei heißt $x_0$ Entwicklungspunkt der Potenzreihe und die Reihe konvergiert für $\abs{x-x_0} < r$ mit $r = \lim_{n\to\infty}\abs{\frac{a_n}{a_{n+1}}}$.
+\end{defi}
+
+\begin{example}{Taylorreihe}
+    \textbf{Bestimmen Sie das Taylorpolynom dritten Grades für die Funktion $g(x) = \ln(x\cdot e^{-2x})$ an der Stelle $x_0 = 1$.}
+
+    Taylorpolynom $k$-ten Grades einer Funktion $f$:
+    $$T_k(x) := \sum_{n=0}^k \frac{\mathrm{d}^n f}{\mathrm{d}x^n} (x_0)\cdot\frac{(x-x_0)^n}{n!} $$
+
+    Das Taylorpolynom dritten Grades von $g(x) = \ln(x\cdot e^{-2x})$ an der Stelle $x_0 = 1$ ist dann gegeben durch:
+    $$
+        \begin{aligned}
+            T_3(x) ={}      & \sum_{n=0}^3 \frac{\mathrm{d}^n g}{\mathrm{d}x^n} (1)\cdot\frac{(x-1)^n}{n!}                                                                                                                       \\
+            ={}             & g(1) + \frac{\mathrm{d} g}{\mathrm{d} x}(1)\cdot\frac{x-1}{1!} + \frac{\mathrm{d^2} g}{\mathrm{d} x^2}(1)\cdot\frac{(x-1)^2}{2!} + \frac{\mathrm{d^3} g}{\mathrm{d} x^3}(1)\cdot\frac{(x-1)^3}{3!} \\
+            \stackrel{*}={} & \ln(e^{-2}) + \left( \frac{1}{1}- 2 \right)\cdot(x-1) + \frac{-1}{1}\cdot\frac{(x-1)^2}{2} + \frac{2}{1}\cdot\frac{(x-1)^3}{6}                                                                     \\
+            ={}             & -2 -(x-1) - \frac{1}{2}\cdot (x-1)^2 +\frac{1}{3}\cdot (x-1)^3                                                                                                                                     \\
+            ={}             & -2 -x+1 - \frac{1}{2}\cdot (x^2-2x+1) +\frac{1}{3}\cdot (x^3 -3x^2+3x-1)                                                                                                                           \\
+            ={}             & -1 -x - \frac{x^2}{2} + x -\frac{1}{2} +\frac{x^3}{3} - x^2 + x -\frac{1}{3}                                                                                                                       \\
+            ={}             & \frac{x^3}{3}- \frac{3x^2}{2} + x - \frac{11}{6}
+        \end{aligned}
+    $$
+    \qed
+
+    \vspace{2em}
+
+    \textbf{Nebenrechnungen:}
+    $$
+        \frac{\mathrm{d} g}{\mathrm{d} x} = \frac{1}{x} - 2, \quad
+        \frac{\mathrm{d}^2 g}{\mathrm{d} x^2} = \frac{-1}{x^2}, \quad
+        \frac{\mathrm{d}^3 g}{\mathrm{d} x^3} = \frac{2}{x^3}
+    $$
+\end{example}
+
+\newpage
+\section{Integration}
+\subsection{Flächenberechnung}
+
+\begin{defi}{Stammfunktion}
+    Sei $f\in C[a, b]$. Eine differenzierbare Funktion $F(x)$ mit $\forall x\in [a, b] : F'(x) = f(x)$ heißt eine \emph{Stammfunktion von f}.
+\end{defi}
+
+\begin{defi}{Unbestimmtes Integral}
+    $F(x) = \int f(x) \dx$ heißt das \emph{unbestimmte Integral von f}.
+\end{defi}
+
+\begin{defi}{Hauptsatz der Differential- und Integralrechnung}
+    Sei $f\in C[a, b]$, dann ist
+    $$
+        F_a(x) = \int^x_a f(t)\dt \text{ differenzierbar}
+    $$
+    und es gilt
+    $$
+        F'_a(x) = f(x).
+    $$
+    Damit ist also:
+    $$
+        \left(\int^x_a f(t)\dt\right)' = F'_a(x) = f(x).
+    $$
+\end{defi}
+
+\begin{defi}{Fläche einer Funktion}
+    Sei $f \in C[a, b]$, dann ist die Fläche der Funktion im Intervall $[a, b]$ gegeben mit
+    $$
+        \int_a^b f(x) \dx = F(b) - F(a) =: \left.F(x)\right|^b_{x=1}
+    $$
+\end{defi}
+
+\begin{bonus}{Potenzregel}
+    $$
+        \int x^n \dx = \frac{1}{n+1}x^{n+1} + C
+    $$
+\end{bonus}
+
+\begin{bonus}{Faktorregel}
+    $$
+        \int c\cdot f(x) \dx = c\cdot \int f(x) \dx
+    $$
+\end{bonus}
+
+\begin{bonus}{Summenregel}
+    $$
+        \int (f(x) + g(x))\dx = \int f(x) \dx + \int g(x) \dx
+    $$
+\end{bonus}
+
+\begin{bonus}{Partielle Integration}
+    $$
+        \int f'(x)g(x) \dx = f(x)g(x) - \int f(x) g'(x) \dx
+    $$
+
+    Entscheidend bei partieller Integration ist die Wahl von $f(x)$ und $g'(x)$.
+    Eine falsche Wahl kann unter Umständen dazu führen, dass das Integral noch komplizierter wird.
+
+    \textbf{Faustregel:}
+    \begin{enumerate}
+        \item L - logarithmische Funktionen ($\ln$, $\log_a$, $\ldots$)
+        \item I - inverse Winkelfunktionen ($\arcsin$, $\arccos$, $\arctan$, $\ldots$)
+        \item A - algebraische Funktionen ($x^2$, $5x^3$, $\ldots$)
+        \item T - trigonometrische Funktionen ($\sin$, $\cos$, $\tan$, $\csc$, $\ldots$)
+        \item E - Exponentialfunktionen ($e^x$, $5a^x$, $\ldots$)
+    \end{enumerate}
+    Entsprechend des Rangs wird $f(x)$ ausgewählt. Will man beispielsweise $x^2\cos x$ integrieren, so würde man $x^2$ für $f(x)$ wählen und $\cos x$ für $g'(x)$, da algebraische Funktionen höher in der Liste stehen als trigonometrische Funktionen.
+\end{bonus}
+
+\begin{bonus}{Integration durch Substitution}
+    $$
+        \int f(x)\dx = \int f(\phi(u)) \cdot \phi'(u) \du
+    $$
+\end{bonus}
+
+\subsection{Integration zur Berechnung von Flächen zwischen mehreren Funktionen}
+
+\begin{algo}{Berechnung der Fläche zwischen zwei Funktionen}
+    Wir betrachten die Fläche zwischen zwei Funktionen $f(x)$ und $g(x)$.
+
+    \begin{enumerate}
+        \item Schnittpunkte $a, b$ von $f(x)$ und $g(x)$ berechnen.
+        \item Integriere $\abs{f(x) - g(x)}$ zwischen den Schnittpunkten:
+              $$
+                  \abs{\int^b_a\abs{f(x) -g(x)} \dx}
+              $$
+    \end{enumerate}
+
+    Beachte: Bei mehr als zwei Schnittpunkten müssen mehrere Integrale mit den jeweiligen Grenzen addiert werden.
+
+    Das Verfahren lässt sich sehr einfach auf mehrere Funktionen erweitern.
+\end{algo}
+
+\begin{bonus}{Beispiel: Fläche zwischen drei Funktionen}
+    Wie groß ist der Flächeninhalt, der von den Funktionen
+    $$
+        f(x) = -0.25x^4 + 4, \quad g(x) = -2x-4, \quad h(x) = 2x-4
+    $$
+    eingeschlossen wird?
+    \begin{center}
+        \begin{tikzpicture}
+            \begin{axis}[
+                    axis lines=middle,
+                    xmin=-4.5,xmax=4.5,ymin=-4.5,ymax=4.5
+                ]
+                \addplot[blue, samples=1000, domain=-2.4:2.4, name path=A] {-0.25*x*x*x*x + 4} node[right] {$f$}; % f(x)
+                \addplot[yellow!70!red, samples=300, domain=-4:4, name path=B] {-2*x - 4} node[pos=0, left] {$g$}; % g(x)
+                \addplot[red!90!teal, samples=300, domain=-4:4, name path=C] {2*x-4} node[right] {$h$}; % h(x)
+                \addplot[gray!30, opacity=0.5] fill between[of=A and C,soft clip={domain=0:2}];
+                \addplot[gray!30, opacity=0.5] fill between[of=A and B,soft clip={domain=-2:0}];
+            \end{axis}
+        \end{tikzpicture}
+    \end{center}
+
+    Wir sehen in der Zeichnung, dass für die Fläche $A$ zwischen den Graphen gilt:
+    $$
+        \begin{aligned}
+            A ={} & \abs{  \int_{-2}^{0} \left(f(x) - g(x)\right) \dx} + \abs{ \int_{0}^{2} \left(f(x) - h(x)\right) \dx}                           \\
+            ={}   & \abs{ \int_{-2}^{0} \left(-\frac{1}{4}x^4 + 2x + 8\right) \dx} + \abs{ \int_{0}^{2} \left(-\frac{1}{4}x^4 - 2x + 8\right) \dx}  \\
+            ={}   & \abs{ \left[ -\frac{1}{20}x^5 + x^2 + 8x \right]_{-2}^{0} } + \abs{ \left[ -\frac{1}{20}x^5 - x^2 + 8x \right]_0^2 }            \\
+            ={}   & \abs{ 0 - \left( -\frac{1}{20}\cdot(-2)^5 + (-2)^2 + 8\cdot(-2) \right) } + \abs{ -\frac{1}{20}\cdot 2^5 + 2^2 + 8\cdot 2 - 0 } \\
+            ={}   & \abs{-\frac{8}{5} - 4 + 16 } + \abs{-\frac{8}{5} - 4 + 16}                                                                      \\
+            ={}   & \frac{52}{5} + \frac{52}{5}                                                                                                     \\
+            ={}   & \frac{104}{5}
+        \end{aligned}
+    $$
+    Damit beträgt der Flächeninhalt $\frac{104}{5}$ Flächeneinheiten. \qed
+\end{bonus}
+
+\newpage
+\subsection{Längenberechnung}
+
+\begin{algo}{Längenberechnung eines Graphen}
+    Gegeben sind eine Funktion $f\in C[a, b]$ und die Punkte $a, b$.
+
+    Die Länge $L_a^b$ des Graphen der Funktion $f$ ist dann gegeben mit
+    $$
+        L^b_a(f) = \int_a^b \sqrt{1+(f'(x))^2} \dx
+    $$
+\end{algo}
+
+\subsection{Mantelflächenberechnung}
+
+\begin{algo}{Mantelflächenberechnung}
+    Gegeben sind eine Funktion $f\in C[a, b]$ und die Punkte $a, b$.
+
+    Die Mantelfläche $M_a^b$ des Rotationskörpers der Funktion $f$ ist dann gegeben mit
+    $$
+        M^b_a(f) = \int_a^b 2\pi \cdot f(x) \cdot \sqrt{1+(f'(x))^2} \dx
+    $$
+\end{algo}
+
+\subsection{Rotationsvolumenberechnung}
+
+\begin{algo}{Rotationsvolumenberechnung}
+    Gegeben sind eine Funktion $f\in C[a, b]$ und die Punkte $a, b$.
+
+    Das Volumen $M_a^b$ des Rotationskörpers der Funktion $f$ ist dann gegeben mit
+    $$
+        V^b_a(f) = \int_a^b \pi \cdot f(x)^2 \dx
+    $$
+\end{algo}
+
+\subsection{Differentiation von Integralen mit variablen Grenzen}
+
+\begin{algo}{Differentiation von Integralen mit variablen Grenzen}
+    Gegeben sei das Integral
+    $$
+        \int^{h(x)}_{g(x)} f(t)\dt.
+    $$
+    Dann gilt:
+    $$
+        \left(\int^{h(x)}_{g(x)} f(t)\dt\right)' = f(h(x)) \cdot h'(x) - f(g(x))\cdot g'(x).
+    $$
+\end{algo}
+
+\subsection{Parameterintegrale}
+
+\begin{defi}{Parameterintegral}
+    Sei $f(x, t)$ eine von zwei rellen Parametern abhängige Funktion.
+    Die Funktionen $g_1(x)$ und $g_2(x)$ seien stetig auf $[a, b]$ und differenzierbar auf $(a, b)$ sowie $f(x, t)$ integrierbar bez. $t$.
+
+    Dann heißt
+    $$
+        F(x) = \int^{g_2(x)}_{g_1(x)} f(x, t) \dt
+    $$
+    das \emph{Parameterintegral}.
+\end{defi}
+
+\begin{example}{Parameterintegral}
+    $$
+        \begin{aligned}
+            \lim_{x\to\infty} \left( \frac{1}{x} \cdot \int_0^x \frac{t+1}{t^2 + 2} \dt\right)
+             & \overset{\text{de L'Hospital}}={} \lim_{x\to\infty} \left( \frac{1}{1} \cdot \left( \frac{x+1}{x^2 + 2} \cdot 1 - \frac{0+1}{0+2} \cdot 0 \right)\right) \\
+             & ={} \lim_{x\to\infty} \left( \frac{x+1}{x^2 + 2} \right)                                                                                                 \\
+             & ={} 0
+        \end{aligned}
+    $$\qed
+\end{example}
+
+\begin{defi}{Leibniz-Regel}
+    Das Parameterintegral $F(x) = \int^{g_2(x)}_{g_1(x)} f(x, t) \dt$ ist differenzierbar und es ist
+    $$
+        F'(x) = f(x, g_2(x)) \cdot g'_2(x) - f(x, g_1(x)) \cdot g'_1(x) + \int^{g_2(x)}_{g_1(x)} \frac{\mathrm{d} f(x, t)}{\dx}\dt
+    $$
+\end{defi}
+
+\begin{example}{Leibniz-Regel}
+    $$F(x) = \int_{t=x}^{x^2} \frac{1}{t} \cdot \ln (1 + x\cdot t) \dt \quad (x>0)$$
+    $$
+        \begin{aligned}
+            \dFdx
+             & ={} \int_{t=x}^{x^2} \frac{1}{t} \cdot \ln (1 + x\cdot t) \dt                                                                                                                                \\
+             & ={} \frac{1}{x^2} \cdot \ln (1 + x\cdot x^2) \cdot 2x - \left( \frac{1}{x} \cdot \ln (1 + x\cdot x) \cdot 1 \right) + \int^{x^2}_{t=x} \frac{1}{t} \cdot t \cdot \frac{1}{1 + x \cdot t} \dt \\
+             & ={} \frac{2\ln (1 + x^3)}{x} - \frac{\ln(1+x^2)}{x} + \left[ \frac{\ln(1+x\cdot t)}{x} \right]^{x^2}_{t=x}                                                                                   \\
+             & ={} \frac{2\ln (1 + x^3)}{x} - \frac{\ln(1+x^2)}{x} + \frac{\ln(1+x\cdot x^2)}{x} - \frac{\ln(1+x\cdot x)}{x}                                                                                \\
+             & ={} \frac{3\ln (1 + x^3) - 2\ln(1+x^2)}{x}                                                                                                                                                   \\
+        \end{aligned}
+    $$\qed
+\end{example}
+
+\subsection{Uneigentliche Integrale}
+
+\begin{defi}{Uneigentliche Integrale}
+    Sei $f(x)$ beschränkt auf $\R$, dann definieren wir
+    $$
+        \begin{aligned}
+            \int^\infty_a f(x) \dx         & := \lim_{R\to\infty} \int^R_a f(x)\dx                                          \\
+            \int^b_{-\infty} f(x) \dx      & := \lim_{R\to\infty} \int^b_{-R} f(x)\dx                                       \\
+            \int^\infty_{-\infty} f(x) \dx & := \lim_{R\to\infty} \int^R_{c} f(x)\dx + \lim_{R\to\infty} \int^c_{R} f(x)\dx
+        \end{aligned}
+    $$
+\end{defi}
+
+\begin{defi}{Konvergenz von Integralen}
+    Die Integrale heißen \emph{konvergent}, wenn die Grenzwerte existieren, sonst heißen sie \emph{divergent}.
+\end{defi}
+
+\subsection{Absolute Konvergenz}
+
+\begin{defi}{Absolute Konvergenz von Integralen}
+    Sei $\int^b_a f(x) \dx$ ein eigentliches oder uneigentliches Integral.
+
+    Konvergiert
+    $$
+        \int^b_a \abs{f(x)} \dx,
+    $$
+    so heißt $\int^b_a f(x) \dx$ \emph{absolut konvergent}.
+\end{defi}
+
+\subsection{Weitere Konvergenzkriterien}
+
+\begin{defi}{Majoranten- und Minorantenkriterium für unbeschränkte Integrationsintervalle}
+    Sei $\forall x \in [a, \infty) : 0 \leq \abs{f(x)} \leq g(x)$ und konvergiert $\int^\infty_a g(x)$, dann konvergiert $\int^\infty_a f(x) \dx$ und es gilt
+    $$
+        \abs{\int^\infty_a f(x) \dx} \leq \int^\infty_a \abs{f(x)} \dx \leq \int^\infty_a g(x) \dx.
+    $$
+
+    Ist $\forall x\in [a, \infty) : 0\leq g(x) \leq f(x)$ und divergiert $\int^\infty_a g(x) \dx$, so divergiert auch $\int^\infty_a f(x) \dx$.
+\end{defi}
+
+\begin{defi}{Majoranten- und Minorantenkriterium für unbeschränkte Integranden}
+    Sei $\forall x \in [a, b] : 0 \leq \abs{f(x)} \leq g(x)$ und konvergiert $\int^b_a g(x)$, dann konvergiert $\int^b_a f(x) \dx$ und es gilt
+    $$
+        \abs{\int^\infty_a f(x) \dx} \leq \int^b_a \abs{f(x)} \dx \leq \int^b_a g(x) \dx.
+    $$
+
+    Ist $\forall x\in [a, b] : 0\leq g(x) \leq f(x)$ und divergiert $\int^b_a g(x) \dx$, so divergiert auch $\int^b_a f(x) \dx$.
+\end{defi}
+
+\subsection{Das Integralkriterium zur Konvergenz von Reihen}
+
+\begin{defi}{Integralkriterium}
+    Sei $f$ eine auf $[m-1, \infty]$ monoton fallende Funktion mit $\forall x \in [m, \infty) : f(x) \geq 0$, dann ist die Reihe
+    $$
+        \sum^\infty_{n=m} f(n)
+    $$
+    genau dann \emph{konvergent}, wenn
+    $$
+        \int^\infty_m f(x) \dx
+    $$
+    existiert. Es gilt bei Konvergenz
+    $$
+        \sum^\infty_{n=m+1} f(n) \leq \int^\infty_m f(x) \dx \leq \sum^\infty_{n=m} f(n) \leq \int^\infty_{m-1} f(x) \dx.
+    $$
+\end{defi}
+
+\begin{example}{Integralkriterium}
+    \[
+        \sum^\infty_{n=1} \frac{1}{\sqrt[3]{n}} = \sum^\infty_{n=1} f(n)
+    \]
+    $f(n)$ ist offensichtlich auf dem Intervall $[1, \infty )$ streng monoton fallend.
+
+    Damit muss nur geprüft werden, dass das Integral $\int^\infty_{n=1} f(n) \dn$ existiert bzw. konvergiert:
+
+    $$
+        \begin{aligned}
+            \int^\infty_{n=1} f(n) \dn
+             & ={} \int^\infty_{n=1} \frac{1}{\sqrt[3]{n}} \dn                              \\
+             & ={} \lim_{b\to\infty} \left[ \frac{3n^{\frac{2}{3}}}{2} \right]^b_{n=1}      \\
+             & ={} \lim_{b\to\infty} \left( \frac{3b^{\frac{2}{3}}}{2} - \frac{3}{2}\right) \\
+             & ={} \infty
+        \end{aligned}
+    $$
+    Damit divergiert das Integral und die gegebene Summe divergiert ebenfalls.\qed
+\end{example}
+
+\printindex
+\printindex[Beispiele]
+\end{document}
diff --git a/ana2/ana2.pdf b/ana2/ana2.pdf
index 68d018ea2853b4c6a32a4a86fb6b954f4370915b..8c444a85b250f5aafc555eafe3323c0d8d062289 100644
GIT binary patch
delta 22091
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
ZwBi81_F($$$t=R0h8A3^s;>TSTmZORnF;^^

delta 22102
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
F3jnhJ<J<rM

diff --git a/ana2/ana2.tex b/ana2/ana2.tex
index 838d5e5..d0396b9 100644
--- a/ana2/ana2.tex
+++ b/ana2/ana2.tex
@@ -1,1742 +1,1742 @@
-\documentclass[german]{../spicker}
-
-\usepackage{amsmath}
-\usepackage{polynom}
-\usepackage{array}   % for \newcolumntype macro
-\usepackage{tikz}
-\usepackage{pgfplots}
-\usepackage{multirow,bigdelim}
-\usepgfplotslibrary{fillbetween}
-
-\title{Analysis 2}
-\author{Patrick Gustav Blaneck}
-\makeindex[intoc]
-\makeindex[intoc, name=Beispiele,title=Beispiele]
-
-\newcommand{\scalarprod}[1]{\left\langle #1 \right\rangle}
-\newcommand{\vektor}[1]{\begin{pmatrix*}[c] #1 \end{pmatrix*}}
-\renewcommand{\span}[1]{\operatorname{span}\left(#1\right)}
-
-\renewcommand{\d}{\,\mathrm{d}}
-
-\renewcommand{\abs}[1]{\left| #1 \right|}
-\newcommand{\cis}[1]{\left( \cos\left( #1 \right) + i \sin\left( #1 \right) \right)}
-\newcommand{\sgn}{\text{sgn}}
-\newcommand{\diff}{\mathrm{d}}
-\newcommand{\dx}{~\mathrm{d}x}
-\newcommand{\du}{~\mathrm{d}u}
-\newcommand{\dv}{~\mathrm{d}v}
-\newcommand{\dw}{~\mathrm{d}w}
-\newcommand{\dt}{~\mathrm{d}t}
-\newcommand{\dn}{~\mathrm{d}n}
-\newcommand{\dudx}{~\frac{\mathrm{d}u}{\mathrm{d}x}}
-\newcommand{\dudn}{~\frac{\mathrm{d}u}{\mathrm{d}n}}
-\newcommand{\dvdx}{~\frac{\mathrm{d}v}{\mathrm{d}x}}
-\newcommand{\dwdx}{~\frac{\mathrm{d}w}{\mathrm{d}x}}
-\newcommand{\dtdx}{~\frac{\mathrm{d}t}{\mathrm{d}x}}
-\newcommand{\ddx}{\frac{\mathrm{d}}{\mathrm{d}x}}
-\newcommand{\dFdx}{\frac{\mathrm{d}F}{\mathrm{d}x}}
-\newcommand{\dfdx}{\frac{\mathrm{d}f}{\mathrm{d}x}}
-\newcommand{\interval}[1]{\left[ #1 \right]}
-
-\newcolumntype{L}{>{$}l<{$}} % math-mode version of "l" column type
-\newcolumntype{R}{>{$}r<{$}} % math-mode version of "r" column type
-\newcolumntype{C}{>{$}c<{$}} % math-mode version of "c" column type
-\newcolumntype{P}{>{$}p<{$}} % math-mode version of "l" column type
-
-\begin{document}
-\maketitle
-\tableofcontents
-\newpage
-
-%\setcounter{section}{1}
-
-\section{Funktionen mehrerer Veränderlicher}
-
-\begin{defi}{Metrik}
-    Metriken definieren Abstände im $\R^n$.
-
-    Eine Funktion $d$ auf einem Vektorraum $V$ mit
-    $$
-        d :  V \times V \to \R, d(\vec{x}, \vec{y})
-    $$
-    heißt \emph{Metrik}, falls gilt
-    \begin{itemize}
-        \item $d(\vec{x}, \vec{y}) = 0 \iff \vec{x} = \vec{y}$
-        \item $d(\vec{x}, \vec{y}) \leq d(\vec{x}, \vec{z}) + d(\vec{y}, \vec{z}), \forall \vec{x}, \vec{y}, \vec{z} \in V$
-              (Dreiecksungleichung)
-    \end{itemize}
-\end{defi}
-
-\begin{example}{Metriken}
-    \begin{itemize}
-        \item Summen-Metrik: $$\sum_{k=1}^n \abs{x_k - y_k}$$
-        \item euklid. Metrik: $$\sqrt{\sum_{k=1}^n \left( x_k - y_k \right)^2}$$
-        \item Maximum-Metrik: $$\max_{k \in \interval{1,n}} \abs{x_k - y_k}$$
-    \end{itemize}
-\end{example}
-
-\begin{defi}{Metrischer Raum}
-    Ein Vektorraum und eine Metrik heißen zusammen \emph{metrischer Raum}.
-\end{defi}
-
-\begin{bonus}{Zusammenhang Metrik \& Norm}
-    Jeder Vektorraum mit einer Metrik $d$ ist normierbar (d.h. dort gibt es eine Norm), falls
-    $$
-        d(a\vec{x}, 0) = \abs{a} d(\vec{x}, 0) \quad \text{und} \quad d(\vec{x}, \vec{y}) = d(\vec{x} -\vec{y}, 0)
-    $$
-
-    Eine Norm wird dann definiert gemäß
-    $$
-        \norm{\vec{x}} := d(\vec{x}, 0)
-    $$
-\end{bonus}
-
-\subsection{Mengen im $\R^n$}
-
-\begin{defi}{$\varepsilon$-Umgebung im $\R^n$}
-    Sei $\norm{\cdot}$ eine Norm im $\R^n$, dann heißt
-    $$
-        U_\varepsilon(\vec{x_0}) := \left\{ \vec{x} \mid \norm{\vec{x} - \vec{x_0}} < \varepsilon \right\}
-    $$
-    die $\varepsilon$-Umgebung von $\vec{x_0}$ bzgl. der Norm $\norm{\cdot}$.
-
-    Sei $D$ eine Menge und $\norm{\cdot}$ eine Norm.
-    Dann
-    \begin{itemize}
-        \item \ldots heißt $\vec{x_0}$ \emph{innerer Punkt} von $D$, falls $\forall \varepsilon > 0 : U_\varepsilon(\vec{x_0}) \in D$.
-        \item \ldots heißt $D$ \emph{offene Menge}, falls alle Punkte von $D$ innere Punkte sind.
-    \end{itemize}
-\end{defi}
-
-\begin{defi}{Abgeschlossene Mengen}
-    Sei $D$ eine Menge und $\norm{\cdot}$ eine Norm.
-    Dann
-    \begin{itemize}
-        \item \ldots heißt $\vec{x_0}$ \emph{Häufungspunkt} von $D$, falls $\forall \varepsilon > 0$ $U_\varepsilon(\vec{x_0})$ einen Punkt $\vec{x} \neq \vec{x_0}$ enthält.
-        \item \ldots heißt $D$ \emph{abgeschlossene Menge}, falls sie alle Häufungspunkte von $D$ enthält.
-    \end{itemize}
-\end{defi}
-
-\begin{defi}{Beschränktheit von Mengen}
-    Eine Menge $D \subset \R^n$ heißt \emph{beschränkt}, falls es ein $M \in \R$ gibt mit
-    $$
-        \norm{\vec{x}} < M \quad \forall\vec{x} \in D
-    $$
-
-    Existiert eine solche Schranke nicht, so heißt die Menge \emph{unbeschränkt}.
-\end{defi}
-
-\subsection{Folgen im $\R^n$}
-
-\begin{defi}{Folge}
-    Seien $\vec{x_1}, \vec{x_2}, \ldots, \vec{x_m} \in \R^n$, dann heißt $(\vec{x_n})$ \emph{Folge} im $\R^n$.
-\end{defi}
-
-\begin{defi}{Konvergenz}
-    $(\vec{x_n})$ heißt \emph{konvergent} gegen den \emph{Grenzwert} $\vec{x}$, falls $\forall \varepsilon >0, \exists n_0(\varepsilon)$, so dass $\forall n > n_0(\varepsilon)$ gilt:
-    $$
-        \norm{\vec{x_n} - \vec{x}} < \varepsilon
-    $$
-\end{defi}
-
-\begin{defi}{Cauchy-Folge}
-    $(\vec{x_n})$ heißt \emph{Cauchy-Folge} gegen $\vec{x}$, falls $\forall \varepsilon >0, \exists n_0(\varepsilon)$, so dass $\forall n,m > n_0(\varepsilon)$ gilt:
-    $$
-        \norm{\vec{x_m} - \vec{x_n}} < \varepsilon
-    $$
-
-    Jede Cauchy-Folge ist konvergent.
-\end{defi}
-
-\begin{defi}{Beschränktheit von Folgen}
-    Eine Folge heißt \emph{beschränkt}, wenn die Menge aller Folgenglieder in jeder Komponente beschränkt ist.
-\end{defi}
-
-\begin{defi}{Häufungspunkt}
-    $\vec{x} \in \R^n$ heißt \emph{Häufungspunkt} von $(\vec{x_n})$, falls $\forall \varepsilon > 0$ unendlich viele $\vec{x_i}$ in der $\varepsilon$-Umgebung von $\vec{x}$ liegen.
-
-    Jede unendliche beschränkte Folge ist genau dann konvergent, wenn sie genau einen Häufungs\- punkt besitzt.
-\end{defi}
-
-\begin{defi}{Bolzano-Weierstrass für Folgen}
-    Jede unendliche beschränkte Folge besitzt mindestens einen Häufungspunkt.
-
-    Jede unendliche beschränkte Folge besitzt mindestens eine konvergente Teilfolge.
-\end{defi}
-
-\subsection{Differenzierbarkeit im $\R^n$}
-
-\begin{defi}{Grenzwert im $\R^n$}
-    Wir bezeichnen mit dem Grenzwert
-    $$
-        g = \lim_{\vec{x} \to \vec{x_n}} f(\vec{x})
-    $$
-    den \emph{Grenzwert} jeder gegen $\vec{x_0}$ konvergenten Folge $(\vec{x_n})$, falls dieser existiert und damit insbesondere eindeutig ist.
-\end{defi}
-
-\begin{defi}{Stetigkeit}
-    Sei $U \subset \R^n$ offene Menge, $f : U \to \R, \ \vec{x_0} = \vektor{x_1 & \ldots & x_n}^T \in U$,
-    $f$ heißt in $\vec{x_0}$ \emph{stetig}, wenn
-    $$
-        \lim_{\vec{x} \to \vec{x_0}} f(\vec{x}) = f(\vec{x_0}) = f\left(\lim_{\vec{x} \to \vec{x_0}} \vec{x}\right),
-    $$
-    wobei $\lim_{\vec{x} \to \vec{x_0}} f(\vec{x_0})$ Grenzwert jeder gegen $\vec{x_0}$ konvergenten Folge $(\vec{x_n})$ ist.
-
-    Formal:
-    $$
-        \lim_{\vec{x} \to \vec{x_0}} f(\vec{x}) := \lim_{n \to \infty} f(\vec{x_n})
-    $$
-
-    $f$ heißt \emph{stetig in U}, wenn die Funktion für jedes $\vec{x_0} = \vektor{x_1 & \ldots & x_n}^T \in U$ stetig ist.
-
-    Stetigkeit bedeutet somit insbesondere Stetigkeit in allen Komponenten.
-\end{defi}
-
-\begin{example}{Stetigkeit}
-    Lassen sich folgende Funktionen im Nullpunkt stetig ergänzen und, wenn ja, wie?
-    \begin{enumerate}[a)]
-        \item $f(x,y) = \frac{xy^2}{x^2 + y^8}$
-        \item $f(x,y) = \frac{x^3 + x^2 - y^4 + y^2}{x^2 + y^2}$
-    \end{enumerate}
-
-    \exampleseparator
-
-    \begin{enumerate}[a)]
-        \item
-              Sei die Kurve $x = y^4$ gegeben.
-              Dann gilt:
-              $$
-                  \lim_{y\to 0} f(y) = \lim_{y\to 0} \frac{y^4y^2}{y^8+y^8} = \lim_{y\to 0} \frac{1}{2y^2} = \infty
-              $$
-              Damit ist $f$ im Nullpunkt nicht stetig.\qed
-        \item
-              $f$ ist genau dann \emph{stetig ergänzbar} im Nullpunkt, wenn $\lim_{(x,y) \to (0,0)} f(x,y)$ existiert.
-              $$
-                  \begin{aligned}
-                      \lim_{(x,y) \to (0,0)} f(x,y) & = \lim_{(x,y) \to (0,0)} \frac{x^3 + x^2 - y^4 + y^2}{x^2 + y^2}                                                                                    \\                                                                        \\
-                                                    & =  \lim_{r \to 0} \frac{r^3\cos^3(\varphi) + r^2\cos^2(\varphi) - r^4\sin^4(\varphi) + r^2\sin^2(\varphi)}{r^2\cos^2(\varphi) + r^2\sin^2(\varphi)} \\
-                                                    & =  \lim_{r \to 0} \frac{r\cos^3(\varphi) + \cos^2(\varphi) - r^2\sin^4(\varphi) + \sin^2(\varphi)}{\cos^2(\varphi) + \sin^2(\varphi)}               \\
-                                                    & =  \lim_{r \to 0} r\cos^3(\varphi) + \cos^2(\varphi) - r^2\sin^4(\varphi) + \sin^2(\varphi)                                                         \\
-                                                    & =  0 + 1 - 0 + 0 = 1
-                  \end{aligned}
-              $$
-
-              Damit ist $f$ im Nullpunkt stetig ergänzbar mit $f(0, 0) = 1$.\qed
-    \end{enumerate}
-\end{example}
-
-\begin{defi}{Gleichmäßige Stetigkeit}
-    Eine Funktion $f: D \subset \R^n \to \R$ heißt \emph{gleichmäßig stetig}, wenn es zu jedem $\varepsilon > 0$ ein $\delta = \delta(\varepsilon)$ (unabhängig von $\vec{x_0}$) gibt, so dass
-    $$
-        \abs{f(\vec{x}) - f(\vec{x_0})} < \epsilon, \ \forall \norm{\vec{x} - \vec{x_0}} < \delta
-    $$
-
-    Gleichmäßige Stetigkeit ist wegen der Unabhängigkeit von $\vec{x_0}$ insbesondere Stetigkeit im gesamten Definitionsbereich $D$.
-
-    Ist $f$ beschränkt und abgeschlossen, so ist $f$ gleichmäßig stetig.
-\end{defi}
-
-\begin{defi}{Lipschitz-Stetigkeit}
-    Eine Funktion $f : D \subset \R^n \to \R$ heißt \emph{Lipschitz-stetig}, wenn es eine Konstante $L$ gibt (unabhängig von $\vec{x_0}$), so dass
-    $$
-        \abs{f(\vec{x}) - f(\vec{x_0})} \leq L \norm{\vec{x} - \vec{x_0}}
-    $$
-
-    Ist in einer Norm $L < 1$, so heißt die Abbildung \emph{Kontraktion}.
-
-    Ist eine Funktion $f$ Lipschitz-stetige, so ist $f$ auf ihrem Definitionsbereich $D$ gleichmäßig stetig und in jedem Punkt stetig.
-\end{defi}
-
-\begin{bonus}{Nullstelle}
-    Ein Punkt $\vec{x_0} \in D$ heißt \emph{Nullstelle} einer Funktion $f$, falls $f(\vec{x_0}) = \vec{0}$.
-\end{bonus}
-
-\begin{defi}{Fixpunkt}
-    Ein Punkt $\vec{x^*}\in D$ heißt \emph{Fixpunkt} einer Funktion $\varphi$, falls $\varphi(\vec{x^*}) = \vec{x^*}$.
-\end{defi}
-
-\begin{defi}{Fixpunktsatz von Banach}
-    Sei $\varphi : D \subset \R^n \to \R^n$ mit
-    $$
-        \abs{\varphi(\vec{x}) - \varphi(\vec{y})} \leq L \norm{\vec{x} - \vec{y}} \quad \text{und} \quad L < 1,
-    $$
-    dann hat $\varphi$ \emph{genau einen Fixpunkt}.
-\end{defi}
-
-\subsubsection{Partielle Ableitungen}
-
-\begin{defi}{Partielle Ableitung}
-    Sei $U \subset \R^n$ offene Menge, $f : U \to \R, \ \vec{x_0} = \vektor{x_1 & \ldots & x_n}^T \in U$,
-    $f$ heißt in $\vec{x_0}$ \emph{partiell differenzierbar} nach $x_i$, wenn
-    $$
-        \frac{\partial f}{\partial x_i} = \lim_{h \to 0} \frac{f(x_1, \ldots, x_i + h, \ldots, x_n) - f(x_1, \ldots, x_n)}{h}
-    $$
-    existiert.
-    Der Wert $\frac{\partial f}{\partial x}$ heißt dann die \emph{partielle Ableitung} von $f$ nach $x_i$.
-
-    Eine Funktion heißt \emph{(partiell) differenzierbar}, wenn alle partiellen Ableitungen existieren.
-\end{defi}
-
-\begin{bonus}{Zusammenhang Differenzierbarkeit und Stetigkeit}
-    $f$ heißt \emph{stetig partiell differenzierbar}, wenn alle partiellen Ableitungen in $\vec{x_i}$ stetige Funktionen (und insbesondere beschränkt) sind.
-
-    Ist $f$ in $U$ partiell differenzierbar und in $\vec{x_0} \in U$ \emph{stetig partiell differenzierbar}, so ist $f$ in $\vec{x_0}$ stetig.
-\end{bonus}
-
-\begin{defi}{Gradient}
-    Sei $U \subset \R^n$ offene Menge, $F : U \to \R$ partiell differenzierbar, $\vec{x_0} = \vektor{x_1 & \ldots & x_n}^T \in U$, dann heißt
-    $$
-        \nabla f(x_1, \ldots, x_n) = \vektor{\frac{\partial f}{\partial x_1}(x_1, \ldots, x_n) \\ \vdots \\ \frac{\partial f}{\partial x_n}(x_1, \ldots, x_n)}
-    $$
-    der \emph{Gradient von f in} $\vec{x_0}$.
-\end{defi}
-
-\begin{bonus}{Rechenregeln für Gradienten}
-    Sei $U \subset \R^n$ offene Menge, $f, g : U \to \R$ differenzierbar.
-    Dann gilt:
-    $$
-        \begin{aligned}
-             & \nabla (f + g)    &  & = \nabla (f) + \nabla (g)                 \\
-             & \nabla (\alpha f) &  & = \alpha \cdot \nabla (f)                 \\
-             & \nabla (fg)       &  & = g \cdot \nabla (f) + f \cdot \nabla (g)
-        \end{aligned}
-    $$
-\end{bonus}
-
-\begin{example}{Gradient}
-    Berechnen Sie den Gradienten für $f(x, y, z) = x^3 + y^2 + z$ an der Stelle $(1, 2, 3)$.
-
-    \exampleseparator
-
-    Zuerst berechnen wie die partiellen Ableitungen $f_x$, $f_y$ und $f_z$:
-    $$
-        \begin{aligned}
-            f_x & = 3x^2 \\
-            f_y & = 2y   \\
-            f_z & = 1
-        \end{aligned}
-    $$
-
-    Damit erhalten wir dann den Gradienten $\nabla f$ an der Stelle $(1, 2, 3)$ mit:
-    $$
-        \nabla f(1, 2, 3) = \vektor{f_x(1, 2, 3) \\ f_y(1, 2, 3) \\ f_z(1, 2, 3)}
-        = \vektor{3 \\ 4 \\ 1}
-    $$\qed
-\end{example}
-
-\begin{defi}{Tangentialebene im $\R^3$}
-    Sei $z = f(x, y)$ eine stetig partiell differenzierbare Funktion in zwei Unbekannten und $z_0 = f(x_0, y_0)$ ein fester Punkt.
-
-    Dann ist die Tangentialebene im Punkt $(x_0, y_0, z_0)$ gegeben mit:
-    $$
-        T = \vektor{x_0 \\ y_0 \\ z_0} + \lambda \cdot \vec{v_1} + \mu \cdot \vec{v_2},
-    $$
-    wobei $\vec{v_1}$ und $\vec{v_2}$ verschiedene Tangentenvektoren sind.
-\end{defi}
-
-\begin{algo}{Tangentialebene im $\R^3$}
-    Betrachten wir die Tangenten entlang der Koordinatenachsen, so erhalten wir
-    $$
-        T = \vektor{x_0 \\ y_0 \\ z_0} + \lambda \vektor{1 \\ 0 \\ f_x(x_0, y_0)} + \mu \vektor{0 \\ 1 \\ f_y(x_0, y_0)}
-    $$
-    oder äquivalent
-    $$
-        T(x, y) = f(x_0, y_0) + f_x(x_0, y_0) (x-x_0) + f_y(x_0, y_0) (y-y_0)
-    $$
-\end{algo}
-
-\begin{bonus}{Tangentialebene im $\R^n$}
-    Die Tangentialebene im $\R^n$ einer Funktion $f$ in $\vec{x} \in \R^n$ an der Stelle $\vec{x_0} = \vektor{x_1 & \ldots & x_n}^T$ analog definiert durch
-    $$
-        T(\vec{x}) = f(\vec{x_0}) + \nabla f (\vec{x} - \vec{x_0})
-    $$
-\end{bonus}
-
-\begin{example}{Tangentialebene}
-    Gegeben sei die Funktion
-    $$
-        f(x, y) = (x^2 + y^2 -2)^2
-    $$
-    Geben Sie die Tangentialebene im Punkt $(x_0, y_0) = (0,2)$ an.
-
-    \exampleseparator
-
-    Zuerst berechnen wie die partiellen Ableitungen $f_x$ und $f_y$:
-    $$
-        \begin{aligned}
-            f_x & = 4x(x^2 + y^2 -2) \\
-            f_y & = 4y(x^2 + y^2 -2)
-        \end{aligned}
-    $$
-    $$
-        z_0 = f(x_0, y_0) = f(0, 2) = 4
-    $$
-    Damit ergibt sich dann die Tangentialebene von $f$ am Punkt $(0, 2)$ mit:
-    $$
-        \begin{aligned}
-            E     & = \vektor{x_0 \\ y_0 \\ z_0} + \lambda \vektor{1 \\ 0 \\ f_x(x_0, y_0)} + \mu \vektor{0 \\ 1 \\ f_y(x_0, y_0)} \\
-            \quad & = \vektor{0   \\ 2 \\ 4} + \lambda \vektor{1 \\ 0 \\ 0} + \mu \vektor{0 \\ 1 \\ 16}  \quad \lambda, \mu \in \R
-        \end{aligned}
-    $$\qed
-\end{example}
-
-\begin{defi}{Richtungsableitung}
-    Die Ableitung in Richtung des Vektors $\vec{v} = \vektor{v_1, \ldots, v_n}^T$ mit $\norm{\vec{v}} = 1$ heißt \emph{Richtungsableitung} $D_{\vec{v}}(f)$ von $f$ in Richtung von $\vec{v}$.
-    Es ist
-    $$
-        \begin{aligned}
-            \frac{\partial f}{\partial v} := D_{\vec{v}}(f) = & \lim_{h\to 0} \frac{f(\vec{x} + h\vec{v}) - f(\vec{x})}{h}                      \\
-            =                                                 & \lim_{h\to 0} \frac{f(x_1 + hv_1, \ldots, x_n + hv_n) - f(x_1, \ldots, x_n)}{h}
-        \end{aligned}
-    $$
-\end{defi}
-
-\begin{algo}{Richtungsableitung}
-    Sei $\vec{v} \in \R^n$ mit $\norm{\vec{v}} = 1$. Dann ist die Richtungsableitung von $f$ im Punkt $\vec{x_0}$ in Richtung $\vec{v}$ gegeben mit
-    $$
-        \frac{\partial f}{\partial v} = D_{\vec{v}}(f) = \scalarprod{\nabla (f(\vec{x_0})) , \vec{v}}
-    $$
-\end{algo}
-
-\begin{example}{Richtungsableitung}
-    Berechnen Sie die Richtungsableitung der Funktion
-    $$
-        f(x, y) = x^2y - y^3x + 1
-    $$
-    im Punkt $(x_0, y_0) = (1, 2)$
-    in Richtung des Vektors $\vec{w} = \vektor{3 \\ 2}$.
-
-    \exampleseparator
-
-    Die Richtungsableitung von $f$ im Punkt $(x_0, y_0)$ in Richtung $\vec{v}$ ($\norm{\vec{v}} = 1$) ist gegeben mit
-    $$
-        \begin{aligned}
-            D_{\vec{v}}(f) & = \scalarprod{\nabla f(x_0, y_0), \vec{v}}
-        \end{aligned}
-    $$
-
-    Zuerst berechnen wir die partiellen Ableitungen $f_x$ und $f_y$:
-    $$
-        \begin{aligned}
-            f_x = 2xy - y^3   & \implies f_x(x_0, y_0) = f_x(1, 2) = -4  \\
-            f_y = x^2 - 3y^2x & \implies f_y(x_0, y_0) = f_y(1, 2) = -11
-        \end{aligned}
-    $$
-
-    Sei nun $\vec{v} = \frac{\vec{w}}{\norm{\vec{w}}}$:
-    $$
-        \vec{v} = \frac{\vec{w}}{\norm{\vec{w}}} = \frac{1}{\sqrt{13}} \vektor{3  \\ 2}
-    $$
-    Damit können wir nun die Richtungsableitung wie folgt bilden:
-    $$
-        D_{\vec{v}}(f) = \scalarprod{\nabla f(x_0, y_0), \vec{v}} = \scalarprod{\vektor{-4                   \\ -11},  \frac{1}{\sqrt{13}} \vektor{3  \\ 2}}=  -\frac{34}{\sqrt{13}}
-    $$\qed
-\end{example}
-
-\begin{algo}{Extremster Anstieg}
-    Insgesamt gilt, falls wir nur die Richtung (ohne Normierung) betrachten:
-    $$
-        \vec{v} = \frac{\nabla f}{\norm{ \nabla f }} \quad \text{ist die Richtung des steilsten Anstiegs von} \ f
-    $$
-    $$
-        \vec{v} = -\frac{\nabla f}{\norm{ \nabla f }} \quad \text{ist die Richtung des steilsten Abstiegs von} \ f
-    $$
-\end{algo}
-
-
-\subsubsection{Das vollständige Differential}
-
-\begin{defi}{Vollständiges Differential}
-    Unter dem \emph{vollständigen Differential} der Funktion $z = f(x, y)$ im Punkt $(x_0, y_0)$ versteht man den Ausdruck
-    $$
-        \d z = f_x(x_0, y_0) \d x + f_y(x_0, y_0) \d y
-    $$
-\end{defi}
-
-\begin{algo}{Absoluter Fehler}
-    Es gilt für $z = f(x_1, \ldots, x_n)$ der \emph{absolute Fehler}:
-    $$
-        \Delta z_{\max} \leq \sum_{i=1}^n \abs{f_{x_i}} \cdot \abs{\Delta x_i}
-    $$
-\end{algo}
-
-\begin{algo}{Relativer Fehler}
-    Es gilt für $z = f(x, y) = c \cdot x^a \cdot y^b$ anhand der möglichen relativen Eingabefehler $\frac{\Delta x}{x}$ und $\frac{\Delta y}{y}$ der \emph{relative Fehler}:
-    $$
-        \frac{\Delta z}{z} \leq a \cdot \abs{\frac{\Delta x}{x}} + b \cdot \abs{\frac{\Delta y}{y}}
-    $$
-\end{algo}
-
-\begin{example}{Relativer Fehler}
-    Bei der Berechnung einer Fläche $f(x, y) = 5x^2 \cdot y$ werde ein relativer Messfehler von $10\%$ in $x$ und $3\%$ in $y$ gemacht.
-    Wie ist der relative Fehler des Ergebnisses?
-
-    \exampleseparator
-
-    $z := f(x, y) = 5x^2 \cdot y \qquad \left( c \cdot x^a \cdot y^b\right)$
-
-    Es ist der relative Fehler gegeben mit
-    $$
-        \frac{\Delta z}{z} \leq a \cdot \abs{\frac{\Delta x}{x}} + b \cdot \abs{\frac{\Delta y}{y}} = 2 \cdot 10\% + 1\cdot 3\% = 23\%
-    $$\qed
-\end{example}
-
-\begin{defi}{Kurve}
-    Seien $x(t)$ und $y(t)$ in $t$ stetige Funktionen.
-    Die Menge
-    $$
-        \left\{ (x, y) \mid x = x(t), \ y=y(t), \ t\in \R \right\}
-    $$
-    heißt \emph{Kurve}.
-    Die Darstellung $t\to \R^2$
-    $$
-        \vec{x}(t) = \vektor{x(t) \\ y(t)}
-    $$
-    heißt \emph{Parameterdarstellung der Kurve}.
-\end{defi}
-
-\begin{defi}{Kettenregel für Funktionen mit einem Parameter}
-    Sei $z = f(\vec{x}) = f(\vec{x}(t))$ und $\vec{x}(t)$ stetig in jeder Komponente $x_i$. Dann gilt:
-    $$
-        \frac{\d z}{\d t} = \sum_{i=1}^n \frac{\partial z}{\partial x_i} \cdot \frac{\d x_i}{\d t}
-    $$
-\end{defi}
-
-\begin{defi}{Kettenregel für Funktionen mit zwei Parametern}
-    Sei $z = f(\vec{x}) = f(\vec{x}(u,v))$ und $\vec{x}(u,v)$ stetig in jeder Komponente $x_i$. Dann gilt:
-    $$
-        \frac{\partial z}{\partial u} = \sum_{i=1}^n \frac{\partial z}{\partial x_i} \cdot \frac{\d x_i}{\d u}
-    $$
-    $$
-        \frac{\partial z}{\partial v} = \sum_{i=1}^n \frac{\partial z}{\partial x_i} \cdot \frac{\d x_i}{\d v}
-    $$
-\end{defi}
-
-\begin{defi}{Implizite Differentiation}
-    Seien $F(x, f(x)) = F(x, y)$ und $f(x) = y$ differenzierbar.
-    Gilt $F(x_0, y_0) = 0$, dann wird $y$ \emph{implizit differenziert} mit
-    $$
-        y' = -\frac{F_x(x_0, y_0)}{F_y(x_0, y_0)}
-    $$
-
-    Es gilt:
-    \begin{itemize}
-        \item Die implizite Differentiation kann insbesondere angewendet werden, wenn sich eine Funktion $F(x, y)=0$ nicht oder nicht einfach nach $y$ umstellen lässt.
-        \item Die Funktion muss ggf. auf die Form $F(x, y) = 0$ gebracht werden.
-        \item Es ist immer zu testen, ob der vorgegebene Punkt die Bedingung $F(x_0, y_0) = 0$ erfüllt.
-        \item Die Rechnung kann an einem beliebigen Punkt $(x_0, y_0)$ durchgeführt werden und somit auch eine Ableitungsfunktion berechnen.
-    \end{itemize}
-\end{defi}
-
-\subsubsection{Partielle Ableitungen höherer Ordnung}
-
-\begin{defi}{Satz von Schwarz}
-    Sind die partiellen Ableitungen $k$-ter Ordnung einer Funktion stetige Funktionen, so darf die Reihenfolge der Differentiation beliebig vertauscht werden.
-\end{defi}
-
-\begin{defi}{Divergenz}
-    Wir bezeichnen die \emph{Divergenz} einer Funktion $f$ mit
-    $$
-        \operatorname{div} f := \nabla \cdot f = \vektor{\frac{\partial}{\partial x_1} \\ \vdots \\ \frac{\partial}{\partial x_n}} \vektor{f_1(x_1, \ldots, x_n) \\ \vdots \\ f_n(x_1, \ldots, x_n)} = \sum_{i=1}^n \frac{\partial f_i(x_1, \ldots, x_n)}{\partial x_i}
-    $$
-\end{defi}
-
-\begin{defi}{Rotation}
-    Wir bezeichnen die \emph{Rotation} einer Funktion $f$ mit
-    $$
-        \operatorname{rot} f := \nabla \times f = \vektor{\frac{\partial}{\partial x_1} \\ \vdots \\ \frac{\partial}{\partial x_n}} \times \vektor{f_1(x_1, \ldots, x_n) \\ \vdots \\ f_n(x_1, \ldots, x_n)}
-    $$
-\end{defi}
-
-\begin{bonus}{Quellen und Senken}
-    Die Punkte mit $\operatorname{div} f > 0$ heißen \emph{Quellen} des Vektorfeldes, die mit $\operatorname{div} f < 0$ heißen \emph{Senken}.
-
-    Gilt stets $\operatorname{div} f = 0$, so heißt die Funktion \emph{quellenfrei}.
-
-    Gilt $\operatorname{rot} f = 0$, so heißt die Funktion \emph{wirbelfrei}.
-\end{bonus}
-
-\begin{defi}{Jacobi-Matrix}
-    Die Matrix
-    $$
-        J = \vektor{\frac{\partial f_1}{x_1} & \ldots & \frac{\partial f_1}{x_n} \\ \vdots & \ddots & \vdots \\ \frac{\partial f_n}{x_1} & \ldots & \frac{\partial f_n}{x_n}}
-    $$
-    heißt \emph{Jacobi-Matrix} von $f$.
-\end{defi}
-
-\subsubsection{Taylorentwicklung für $f(x, y)$}
-
-\begin{defi}{Quadratische Approximation}
-    Für $f(x, y)$ ist die \emph{quadratische Approximation} gegeben mit
-    $$
-        \begin{aligned}
-            f(x, y) \quad = \quad & f(x_0, y_0) + f_x(x_0, y_0) (x-x_0) + f_y(x_0, y_0) (y-y_0)                                                    \\
-            + \quad               & \frac{f_{xx}(x_0, y_0) (x-x_0)^2}{2} + f_{xy}(x_0, y_0) (x-x_0) (y-y_0) + \frac{f_{yy}(x_0, y_0) (y-y_0)^2}{2}
-        \end{aligned}
-    $$
-\end{defi}
-
-\subsubsection{Extremwerte ohne Nebenbedingungen}
-
-\begin{algo}{Lokale Extrema ohne Nebenbedingungen im $\R^2$}
-    \begin{enumerate}
-        \item Berechne $f_x(x,y)$ und $f_y(x, y)$ und suche diejenigen Stellen $(x_0, y_0)$ mit
-              $$
-                  f_x(x_0, y_0) = f_y(x_0, y_0) = 0
-              $$
-              Diese Stellen sind die \emph{Kandidaten} für lokale Extrema.
-        \item Berechne für jeden Kandidaten $(x_0, y_0)$ die Werte $f_{xx}(x_0, y_0)$, $f_{xy}(x_0, y_0)$ und $f_{yy}(x_0, y_0)$ und daraus den Wert
-              $$
-                  d := f_{xx}(x_0, y_0) \cdot f_{yy}(x_0, y_0) - \left(f_{xy}(x_0, y_0)\right)^2
-              $$
-        \item Dann gilt:
-              \subitem $f_{xx}(x_0, y_0) > 0 \ \land \ d > 0 \implies$ \emph{lokales Minimum}
-              \subitem $f_{xx}(x_0, y_0) < 0 \ \land \ d > 0 \implies$ \emph{lokales Maximum}
-              \subitem $d < 0 \implies$ \emph{Sattelpunkt}
-              \subitem $d = 0 \implies$ höhere Ableitung entscheidet
-    \end{enumerate}
-\end{algo}
-
-\begin{defi}{Hesse-Matrix im $\R^2$}
-    Die \emph{Hesse-Matrix} im $\R^2$ ist definiert mit
-    $$
-        H = \vektor{f_{xx}(x_0, y_0) & f_{xy}(x_0, y_0) \\ f_{xy}(x_0, y_0) & f_{yy}(x_0, y_0)}
-    $$
-
-    Ist $H$ \emph{positiv definit}, so liegt ein Minimum vor, ist $H$ \emph{negativ definit} ein Maximum und bei \emph{indefinitem} $H$ ein Sattelpunkt.
-
-    Es gilt:
-    \begin{itemize}
-        \item $H$ ist positiv definit $\iff f_{xx}(x_0, y_0) < 0 \ \land \det H > 0$
-        \item $H$ ist negativ definit $\iff f_{xx}(x_0, y_0) > 0 \ \land \det H > 0$
-        \item $H$ indefinit $\iff \det H < 0$
-    \end{itemize}
-\end{defi}
-
-\begin{defi}{Hesse-Matrix im $\R^n$}
-    Die \emph{Hesse-Matrix} im $\R^n$ ist definiert mit
-    $$
-        H = \vektor{\frac{\partial^2 f}{\partial x_1^2} & \ldots & \frac{\partial^2 f}{\partial x_1 \partial x_n} \\ \vdots & \ddots & \vdots \\ \frac{\partial^2 f}{\partial x_n \partial x_1} & \ldots & \frac{\partial^2 f}{\partial x_n^2}}
-    $$
-
-    Ist $H$ \emph{positiv definit}, so liegt ein Minimum vor, ist $H$ \emph{negativ definit} ein Maximum und bei \emph{indefinitem} $H$ ein Sattelpunkt.
-
-    Es gilt:
-    \begin{itemize}
-        \item $H$ ist positiv definit $\iff$ alle \emph{Unterdeterminanten} (links oben beginnend) sind positiv
-        \item $H$ ist negativ definit $\iff$ alle \emph{Unterdeterminanten} (links oben beginnend) haben wechselndes Vorzeichen (beginnend mit negativem Vorzeichen)
-        \item $H$ indefinit $\iff$ sonst
-    \end{itemize}
-\end{defi}
-
-\begin{example}{Lokale Extrema ohne Nebenbedingungen}
-    Untersuchen Sie die Funktion
-    $$
-        v(x, y, z) = xy - z^4 -2(x^2 + y^2 -z^2)
-    $$ auf lokale Extrema und Sattelpunkte.
-
-    \exampleseparator
-
-    $v(x, y, z) = xy - z^4 -2(x^2 + y^2 -z^2) = xy - z^4 -2x^2 -2y^2 + 2z^2$
-
-    Wir berechnen zuerst die potentiellen Kandidaten.
-    Für diese muss gelten
-    $$
-        \nabla v(x, y, z) = \vektor{v_x(x, y, z)      \\ v_y(x, y, z)\\ v_z(x, y, z)} = \vec{0}
-    $$
-    $$
-        \iff \vektor{ y -4x \\ x -4y \\ -4z^3 +4z} = \vektor{0 \\ 0 \\ 0} \iff \vektor{y \\ x \\ -z(z^2 +1)} = \vektor{4x \\ 4y \\ 0}
-    $$
-    Wir haben offensichtlich drei Gleichungen gegeben.
-
-    Wir erkennen aus \Rnum{3} direkt, dass $z \in \{-1, 0, 1\}$ gelten muss und aus \Rnum{2} und \Rnum{1}, dass $x = y = 0$.
-
-    Damit erhalten wir die drei Kandidatentupel:
-    \begin{itemize}
-        \item $(x_1, y_1, z_1) = (0, 0, -1)$,
-        \item $(x_2, y_2, z_2) = (0, 0, 0)$,
-        \item $(x_3, y_3, z_3) = (0, 0, 1)$.
-    \end{itemize}
-
-    Wir bilden nun die Hesse-Matrix:
-    $$
-        \begin{aligned}
-            f_{xx} = -4 \qquad         & f_{xy} = 1          &  & f_{xz} = 0         \\
-            f_{yx} = f_{xy} = 1 \qquad & f_{yy} = -4         &  & f_{yz} = 0         \\
-            f_{zx} = f_{xz} = 0 \qquad & f_{zy} = f_{yz} = 0 &  & f_{zz} = 12z^2 + 4
-        \end{aligned}
-    $$
-
-    $$
-        H = \vektor{f_{xx} & f_{xy} & f_{xz} \\ f_{yx} & f_{yy} & f_{yz} \\ f_{zx} & f_{zy} & f_{zz}} = \vektor{-4 & 1 & 0 \\ 1 & -4 & 0 \\ 0 & 0 & -12z^2 + 4}
-    $$
-
-    Es gilt für die Unterdeterminanten:
-    $$
-        \begin{aligned}
-            \det H_1 & = -4                                                                 \\
-            \det H_2 & = 15                                                                 \\
-            \det H   & = (-12z^2 + 4) \cdot \det H_2 = (-12z^2 + 4) \cdot 15 = -180z^2 + 60
-        \end{aligned}
-    $$
-
-    Es gilt weiterhin
-    $$
-        \det H \leq 0 \iff -180z^2 + 60 \leq 0 \iff z^2 \leq \frac{1}{3}
-    $$
-
-    Damit ist die Hesse-Matrix für alle $\abs{z} \leq \frac{1}{9}$ indefinit und sonst negativ definit.
-
-    Damit sind die Kandidatentupel $(x_1, y_1, z_1) = (0, 0, -1)$ und $(x_3, y_3, z_3) = (0, 0, 1)$ Maxima und $(x_2, y_2, z_2) = (0, 0, 0)$ ein Sattelpunkt. \qed
-\end{example}
-
-\subsubsection{Extremwerte mit Nebenbedingungen}
-
-\begin{defi}{Lagrange-Funktion}
-    Gegeben seien eine Funktion $f(x, y)$ und eine Nebenbedingung $g(x, y) = 0$.
-    Dann ist  die \emph{Lagrange-Funktion} gegeben mit
-    $$
-        L(x, y, \lambda) = f(x, y) + \lambda g(x, y)
-    $$
-
-    Es gilt damit:
-    $$
-        L_\lambda = g(x, y) \quad \land \quad g(x, y) = 0 \implies L(x,y,\lambda) = f(x, y)
-    $$
-\end{defi}
-
-\begin{algo}{Lokale Extrema mit Nebenbedingung im $\R^2$}
-    \begin{enumerate}
-        \item Berechne die Kandidaten wie in freien Optimierungen mit
-              $$
-                  \nabla (L) = \vec{0}
-              $$
-        \item Aufstellen der geränderten Hesse-Matrix für die drei Unbekannten mit
-              $$
-                  H = \vektor{L_{xx} & L_{xy} & g_x \\ L_{xy} & L_{yy} & g_y \\ g_x & g_y & 0}
-              $$
-        \item Dann gilt:
-              \subitem $\det H > 0 \implies$ \emph{Maximum}
-              \subitem $\det H < 0 \implies$ \emph{Minimum}
-              \subitem $\det H = 0 \implies$ keine Entscheidung möglich
-    \end{enumerate}
-\end{algo}
-
-\subsubsection{Parametrische Funktionen und Kurvenintegrale}
-
-\begin{defi}{Tangentenvektor}
-    Der \emph{Tangentenvektor} einer Kurve $\vec{x}(t)$ ist gegeben mit
-    $$
-        \vec{x'}(t) = \vektor{x_1'(t) \\ \vdots \\ x_n'(t)}
-    $$
-\end{defi}
-
-\begin{defi}{Tangente}
-    Die \emph{Tangente} einer Kurve $\vec{x}(t)$ ist gegeben mit
-    $$
-        T(t) = \vec{x}(t) + \lambda\vec{x'}(t)
-    $$
-\end{defi}
-
-\begin{defi}{Arbeitsintegral}
-    Seien die Kraft $F(\vec{x}(t))$ und ein Zeitintervall $t \in \interval{a,b}$, oder analog Start- und Endpunkte $\vec{A} = \vec{x}a)$ bzw. $\vec{B} = \vec{x}(b)$, gegeben.
-
-    Dann ist die \emph{Arbeit} gegeben mit
-    $$
-        W = \int^b_a F(\vec{x}(t)) \cdot \vec{x'}(t) \d t
-    $$
-\end{defi}
-
-\begin{example}{Arbeitsintegral}
-    Gegeben sei die Kurve $\vec{X}(t) = \vektor{t \\ t^2 \\ t^3}$.
-    Berechnen Sie die Arbeit im Vektorfeld
-    $$
-        \vec{F}(x, y, z) = \vektor{x+yz \\ y + xz \\ z + xy}
-    $$
-    entlang der Kurve.
-
-    \exampleseparator
-
-    Die Arbeit von Zeitpunkt $t=a$ bis Zeitpunkt $t=b$ ist gegeben mit
-    $$
-        W = \int^b_a \vec{F} (\vec{X}(t)) \cdot \vec{X}'(t) \dt
-    $$
-    Wir berechnen:
-    $$
-        \begin{aligned}
-            W =\quad & \int^b_a \vec{F} (\vec{X}(t)) \cdot \vec{X}'(t) \dt                                                                    \\
-            =\quad   & \int^b_a \vektor{t + t^5                                                                                               \\ t^2 + t^4 \\ 2t^3} \cdot \vektor{1 \\ 2t \\ 3t^2} \dt \\
-            =\quad   & \int^b_a \left( t + t^5 + 2t(t^4 + t^2) + 3t^2 \cdot 2t^3\right)  \dt                                                  \\
-            =\quad   & \int^b_a \left(9t^5 + 2t^3 + t\right) \dt                                                                              \\
-            =\quad   & \left[ \frac{3t^6}{2} + \frac{t^4}{2} + \frac{t^2}{2} \right]^b_a     = \frac{3(b^6 - a^6) + b^4 + b^2 - a^4 - a^2}{2}
-        \end{aligned}
-    $$\qed
-\end{example}
-
-\begin{defi}{Potentialfunktion}
-    Sei $f : \R^n \to \R^n$ stetig differenzierbar.
-    $f$ heißt \emph{Gradientenfeld}, wenn es eine skalare Funktion $V$ gibt, mit
-    $$
-        \nabla (V) = f
-    $$
-
-    Die Funktion $V$ heißt dann \emph{Potentialfunktion} von $f$ mit
-    $$
-        V = \int f
-    $$
-
-    Es gilt:
-    \begin{itemize}
-        \item Im $\R^2$:
-              $$
-                  \frac{\partial f_1}{\partial y} = \frac{\partial f_2}{x}
-              $$
-        \item Im $\R^3$:
-              $$
-                  \operatorname{rot} f = 0
-              $$
-        \item Im $\R^n$ für die Jacobimatrix $J$
-              $$
-                  J = J^T
-              $$
-    \end{itemize}
-\end{defi}
-
-\section{Mehrdimensionale Integration}
-
-\subsection{Doppelintegrale}
-
-\begin{defi}{Integral im $\R^2$}
-    Bezeichnet $A$ das Rechteck $\interval{x_0, x_1} \times \interval{y_0, y_1}$, so ist das \emph{Integral} von $f$ über das Gebiet $A$ gegeben mit
-    $$
-        \int^{x_1}_{x_0}\int^{y_1}_{y_0} f(x, y) \d y\d x = \int_A f \d A = \int\int_A f \d A
-    $$
-\end{defi}
-
-\begin{algo}{Integration über kartesische krummlinige Bereiche}
-    Seien eine \emph{obere} und eine \emph{untere Funktion} $f_u(x)$ und $f_v(x)$ gegeben und in der zweiten Dimension das Intervall $\interval{a,b}$, dann gilt für das Integral im entsprechenden Integrationsbereich
-    $$
-        \int_{x = a}^{b}\int_{y = f_u(x)}^{f_o(x)} f(x, y) \d y\d x
-    $$
-\end{algo}
-
-\begin{algo}{Flächeninhalt einer Grundfläche eines kartesischen krummlinigen Bereiches}
-    Der Flächeninhalt $F$ einer Grundfläche $A$ ergibt sich durch Integration mit $f(x, y) = 1$, also
-    $$
-        F = \int_A 1 \d A
-    $$
-\end{algo}
-
-\begin{example}{Integration über kartesische krummlinige Bereiche}
-    Berechnen Sie das Volumen der Funktion $f(x, y) = x+y$ über die Fläche
-    $$
-        A = \{(x, y) \in \R^2 \mid 1 \leq x^2 + 4y^2, x^2 + y^2 \leq 1, x \geq 0, y\geq 0\}
-    $$
-    Skizzieren Sie zunächst die Fläche.
-
-    \exampleseparator
-
-    \begin{center}
-        \begin{tikzpicture}[scale=1]
-            \begin{axis}[
-                    width=15cm,
-                    xmin=-1.5,xmax=1.5,
-                    xtick distance=1,
-                    xlabel = $x$,
-                    ymin=-1.5,ymax=1.5,
-                    ytick distance=1,
-                    ylabel = $y$,
-                    axis equal,
-                    grid=both,
-                    axis lines = middle,
-                    disabledatascaling
-                ]
-                %\draw [name path=A] (axis cs:0,-2) arc[start angle=-90, end angle=90, radius={transformdirectionx(2)}];
-                %\draw [name path=B] (axis cs:0,-3) arc[start angle=-90, end angle=90, radius={transformdirectionx(3)}];
-
-                \draw [name path=A1] (axis cs:1,0) arc[start angle=0, end angle=180, radius={transformdirectionx(1)}];
-                \draw [name path=A2] (axis cs:-1,0) arc[start angle=180, end angle=360, radius={transformdirectionx(1)}];
-                %\draw [name path=B] (axis cs:0,0) circle [x radius=1, y radius=1/4];
-
-                \draw [name path=B1] (axis cs:1,0) arc(0:180:1 and 1/2);
-                \draw [name path=B2] (axis cs:-1,0) arc(180:360:1 and 1/2);
-
-                \tikzfillbetween[of=A1 and B1, soft clip={domain=0:1}]{red, opacity=0.75};
-                %\tikzfillbetween[of=A2 and B2]{red, opacity=0.5};
-            \end{axis}
-        \end{tikzpicture}
-    \end{center}
-
-    Wir sehen, dass die Ellipsengleichung die untere und die Kreisgleichung die obere Schranke bilden.
-    Damit formen wir unser Integrationsgebiet wie folgt um:
-    $$
-        A = \left\{(x, y) \in \R^2 \mid 0 \leq x \leq 1, \frac{\sqrt{1-x^2}}{2} \leq y \leq \sqrt{1-x^2} \right\}
-    $$
-\end{example}
-
-\begin{example}{Integration über kartesische krummlinige Bereiche (Fortsetzung)}
-    Dann können wir wie folgt die Fläche berechnen:
-    $$
-        \begin{aligned}
-            \int\int_A (x+y) \d x \d y & = \int^1_0\int^{\sqrt{1-x^2}}_{\frac{\sqrt{1-x^2}}{2}} (x+y) \d y \d x                                                                                                       \\
-                                       & = \int^1_0 \left[xy + \frac{y^2}{2}\right]^{\sqrt{1-x^2}}_{\frac{\sqrt{1-x^2}}{2}}  \d x                                                                                     \\
-                                       & = \int^1_0 \left(x\sqrt{1-x^2} + \frac{1-x^2}{2} - \left( \frac{x\sqrt{1-x^2}}{2} - \frac{1-x^2}{8}\right)\right)  \d x                                                      \\
-                                       & = \int^1_0 \left(\frac{x\sqrt{1-x^2}}{2} + \frac{3(1-x^2)}{8}\right)  \d x                                                                                                   \\
-                                       & = \frac{1}{2}\int^1_0 x\sqrt{1-x^2} \d x + \frac{3}{8} \int^1_0 (1-x^2) \d x                                                                                                 \\
-                                       & \overset{\footnote{$u = 1-x^2 \implies \frac{\d u}{\d x} = -2x \iff \d x = -\frac{\d u}{2x}$}}{=} -\frac{1}{4}\int^1_{x=0} \sqrt{u} \d u + \frac{3}{8} \int^1_0 (1-x^2) \d x \\
-                                       & = -\frac{1}{4} \left[ \frac{2\sqrt{1-x^2}}{3} \right]^1_{0} + \frac{3}{8} \int^1_0 (1-x^2) \d x                                                                              \\
-                                       & = \frac{1}{6} + \frac{3}{8} \int^1_0 (1-x^2) \d x                                                                                                                            \\
-                                       & = \frac{1}{6} + \frac{3}{8} \left[ x-\frac{x^3}{3} \right]^1_0                                                                                                               \\
-                                       & = \frac{1}{6} + \frac{3}{8} \left( 1-\frac{1}{3} \right)                                                                                                                     \\
-                                       & = \frac{5}{12}                                                                                                                                                               \\
-        \end{aligned}
-    $$\qed
-\end{example}
-
-\begin{algo}{Schwerpunkt einer Grundfläche eines homogenen Gebietes}
-    Der Schwerpunkt mit den Schwerpunktskoordinaten $(x_s, y_s)$ einer Fläche mit homogener Dichte ergibt sich mit der Flächenmaßzahl $F$ aus
-    $$
-        x_s = \frac{1}{F}\int_A x \d A \quad \land \quad y_s = \frac{1}{F}\int_A y \d A
-    $$
-\end{algo}
-
-\begin{algo}{Masse einer Grundfläche eines inhomogenen Gebietes}
-    Wird die spezifische Dichte eines Stoffes in der Koordinate $(x, y)$ gegeben durch $\rho(x, y)$, so lässt sich die Masse einer Fläche $A$ berechnen mit
-    $$
-        M = \int_A  \rho(x, y) \d A
-    $$
-\end{algo}
-
-\begin{algo}{Integration in Polarkoordinaten}
-    Bei der Umwandlung der kartesischen Koordinaten $(x, y)$ in \emph{Polarkoordinaten} umwandeln, gilt
-    $$
-        f(x, y) = f(r\cos\phi, r\sin\phi)\quad \land \quad \d y \d x = r \d r \d \phi
-    $$
-
-    Und dann insgesamt für die Integration:
-    $$
-        \int_A f(x, y) \d y \d x = \int_A f(r \cos\phi, r\sin\phi)r\d r\d\phi
-    $$
-\end{algo}
-
-\begin{algo}{Uneigentliche Integrale mithilfe von Polarkoordinaten}
-    Der Übergang zu Polarkoordinaten kann bei der Berechnung von uneigentlichen zweidimensionalen Integralen behilflich sein.
-    Dabei gilt:
-    $$
-        \int_{x=-\infty}^\infty\int_{y=-\infty}^\infty f(x, y) \d y \d x = \int_{\phi = 0}^{2\pi} \int_{r = 0}^\infty f(r\cos\phi, r\sin\phi)r\d r\d\phi
-    $$
-\end{algo}
-
-\begin{example}{Uneigentliche Integrale mithilfe von Polarkoordinaten}
-    Berechnen Sie das folgende Integral
-    $$
-        \int_A x\cdot y \d A
-    $$
-    über dem Integrationsgebiet $A$ gegeben durch die Ungleichungen
-    $$
-        -2 \leq y \leq 2, \quad x \geq 0, \quad x^2 + y^2 \leq 4
-    $$
-    \begin{enumerate}[a)]
-        \item in kartesischen Koordinaten,
-        \item in Polarkoordinaten.
-    \end{enumerate}
-
-    \exampleseparator
-
-    \begin{enumerate}[a)]
-        \item
-              Es gilt:
-              $$
-                  \begin{aligned}
-                      \int_A x\cdot y \d A & = \int_{-2}^2 \int^{\sqrt{4-y^2}}_0 x\cdot y \d x \d y             \\
-                                           & = \int_{-2}^2 y \left[ \frac{x^2}{2} \right]^{\sqrt{4-y^2}}_0 \d y \\
-                                           & = \int_{-2}^2 \frac{y(4-y^2)}{2} \d y                              \\
-                                           & = \frac{1}{2}\int_{-2}^2 (4y-y^3) \d y                             \\
-                                           & = \frac{1}{2}\int_{-2}^2 (4y-y^3) \d y                             \\
-                                           & = \frac{1}{2}\left[2y^2-\frac{y^4}{4}\right]_{0}^2                 \\
-                                           & = 0
-                  \end{aligned}
-              $$\qed
-    \end{enumerate}
-\end{example}
-
-
-\begin{example}{Uneigentliche Integrale mithilfe von Polarkoordinaten (Fortsetzung)}
-    \begin{enumerate}[a)]
-        \setcounter{enumi}{1}
-        \item
-              Es gilt:
-              $$
-                  \begin{aligned}
-                      \int_A x\cdot y \d A & = \int^\frac{\pi}{2}_{-\frac{\pi}{2}} \int^2_0 r^3\cos\phi\sin\phi \d r \d \phi                                                                                             \\
-                                           & = \int^\frac{\pi}{2}_{-\frac{\pi}{2}} \cos\phi\sin\phi \int^2_0 r^3 \d r \d \phi                                                                                            \\
-                                           & = \int^\frac{\pi}{2}_{-\frac{\pi}{2}} \cos\phi\sin\phi \left[\frac{r^4}{4}\right]^2_0 \d \phi                                                                               \\
-                                           & = 4\int^\frac{\pi}{2}_{-\frac{\pi}{2}} \cos\phi\sin\phi \d \phi                                                                                                             \\
-                                           & \overset{\footnote{$u = \cos\phi \implies \frac{\d u}{\d \phi} = -\sin\phi \iff \d \phi = -\frac{\d u}{\sin \phi}$}}{=} -4\int^\frac{\pi}{2}_{\phi = -\frac{\pi}{2}} u \d u \\
-                                           & = -4 \left[ \frac{\cos^2\phi}{2} \right]^\frac{\pi}{2}_{-\frac{\pi}{2}}                                                                                                     \\
-                                           & = 0
-                  \end{aligned}
-              $$\qed
-    \end{enumerate}
-\end{example}
-\subsection{Dreifachintegrale}
-
-\begin{defi}{Dreifachintegral}
-    Bezeichnet $V$ den Quader $\interval{x_0, x_1} \times \interval{y_0, y_1} \times \interval{z_0, z_1}$, so ist das \emph{Dreifachintegral} von $f$ über das Gebiet $V$ gegeben mit
-    $$
-        \int^{x_1}_{x_0}\int^{y_1}_{y_0}\int^{z_1}_{z_0} f(x, y, z) \d z\d y\d x = \int_A f \d A = \int\int\int_A f \d A
-    $$
-\end{defi}
-
-\begin{bonus}{Volumenberechnung im $\R^3$}
-    Die Berechnung eines Volumen $V$ über den Bereich $V'$ im $\R^3$ geschieht völlig analog zum $\R^2$:
-    $$
-        V = \int_{V'} 1 \d V'
-    $$
-\end{bonus}
-
-\begin{bonus}{Schwerpunktberechnung im $\R^3$}
-    Die Berechnung des Schwerpunktes $(x_s, y_s, z_s)$ mit Volumen $V$ über den Bereich $V'$ im $\R^3$ geschieht völlig analog zum $\R^2$:
-    $$
-        x_s = \frac{1}{V}\int_{V'} x \d V' \quad \land \quad y_s = \frac{1}{V}\int_{V'} y \d V' \quad \land \quad z_s = \frac{1}{V}\int_{V'} z \d V'
-    $$
-\end{bonus}
-
-\begin{bonus}{Rechnen mit Kugelkoordinaten}
-    Der Übergang zu Kugelkoordinaten kann bei der Berechnung von dreidimensionalen Integralen behilflich sein.
-    Dabei gilt:
-    $$
-        \int\int\int f(x,y,z) \d z\d y\d x = \int\int\int f(r\cos\phi\sin\theta, r\sin\phi\sin\theta, r\cos\theta) \abs{r^2\sin\theta} \d\theta\d\phi\d r
-    $$
-\end{bonus}
-
-\section{(*) Wachstums- und Zerfallsprozesse}
-
-\subsection{Ungebremstes Wachstum}
-
-\begin{defi}{Diskretes ungebremstes Wachstum}
-    Gegeben sei ein Wachstum $k$ innerhalb einer (beliebigen) Zeiteinheit $\Delta t_0$, eine Startpopulation $y_0$ und eine Änderungsrate
-    $$
-        \Delta y = k\cdot y
-    $$
-    dann ist die Lösungsfunktion
-    $$
-        \boxed{y_n = y_0\cdot (1+k)^n}
-    $$
-    wobei $y_n = y(n\cdot \Delta t_0)$ den Zustand nach $n$ Zeitschritten der Länge $\Delta t_0$ angibt.
-\end{defi}
-
-\begin{bonus}{Diskretes ungebremstes Wachstum für Zeitteile}s
-    Gegeben sei ein Wachstum $k$ innerhalb einer (beliebigen) Zeiteinheit $\Delta t_0 = 1$, eine Startpopulation $y_0$ und eine Änderungsrate
-    $$
-        \Delta y = k_{\Delta t_0}\cdot y
-    $$
-
-    Betrachten wir nun einen \emph{Zeitteil} $\Delta t$, dann ist das modifizierte Modell
-    $$
-        \Delta y = y_n - y_{n-1} = k_{\Delta t}\cdot  y_{n-1}\cdot  \Delta t
-    $$
-    mit der Lösung
-    $$
-        \boxed{y_n = y_0\cdot (1 + k_{\Delta t} \cdot \Delta t)^n}
-    $$
-    wobei $y_n = y(n\cdot \Delta t)$ den Zustand nach $n$ Zeitschritten der Länge $\Delta t$ angibt.
-
-    Die Lösung dieses Modells wird auch als \emph{diskrete Evolutionsgleichung des ungebremsten Wachstums} bezeichnet.
-\end{bonus}
-
-\begin{defi}{Kontinuierliches Modell der Evolutionsgleichung}
-    Zur Lösung der Modellgleichung
-    $$
-        \lim_{\Delta t \to 0} \frac{\Delta y}{\Delta t} = k\cdot y
-    $$
-    mit $y(0) = y_0$ und $k$ (kontinuierliches) Wachstum, so ist die \emph{kontinuierliche} Lösungsfunktion
-    $$
-        \boxed{y(t) = y_o \cdot e^{kt}}
-    $$
-    und wegen $\Delta t \to 0$ ist dies gleichbedeutend zu
-    $$
-        y'(t) = k \cdot y(t) \ \text{mit} \ y(0) = 0
-    $$
-
-    Ein solches Problem heißt \emph{Differentialgleichung mit Anfangswert} oder \emph{Anfangswertproblem}.
-\end{defi}
-
-\subsection{Gebremstes Wachstum - Störung erster Ordnung}
-
-\begin{defi}{Diskretes Modell des Wachstums mit Störung erster Ordnung}
-    Gegeben sei ein Wachstum $k$ innerhalb einer (beliebigen) Zeiteinheit $\Delta t_0$, eine Startpopulation $y(0) = y_0$, $\Delta t$ ein Zeitteil, $a$ die \emph{Abnahme pro Zeiteinheit} und eine Änderungsrate
-    $$
-        \Delta y = (k\cdot y - a) \cdot \Delta t
-    $$
-    dann ist die Lösungsfunktion
-    $$
-        \boxed{y_n = \left( y(0) - \frac{a}{k} \right) \cdot \left( 1 + k \cdot \Delta t \right)^n + \frac{a}{k}}
-    $$
-\end{defi}
-
-\begin{defi}{Kontinuierliches Modell des Wachstums mit Störung erster Ordnung}
-    Zur Lösung der Modellgleichung
-    $$
-        \lim_{\Delta t \to 0} \frac{\Delta y}{\Delta t} = k\cdot y - a
-    $$
-    mit $y(0) = y_0$, $k$ (kontinuierliches) Wachstum und $a$ \emph{kontinuierliche Abnahme} pro Zeiteinheit, ist die \emph{kontinuierliche} Lösungsfunktion
-    $$
-        \boxed{y(t) = \left( y(0) - \frac{a}{k} \right) \cdot e^{kt} + \frac{a}{k}}
-    $$
-    und wegen $\Delta t \to 0$ ist dies gleichbedeutend zu
-    $$
-        y'(t) = k \cdot y(t) - a
-    $$
-\end{defi}
-
-\begin{defi}{Stationäre Lösung}
-    Die konstanten Werte, ermittelt durch $\Delta y = 0$, heißen \emph{stationäre Lösungen} $y_s$.
-
-    Für Wachstumsmodelle mit Störung erster Ordnung gilt:
-    $$
-        y_s = \frac{a}{k}
-    $$
-\end{defi}
-
-\subsection{Logistisches Wachstum - Störung zweiter Ordnung}
-
-\begin{defi}{Diskretes Modell des Wachstums mit Störung zweiter Ordnung}
-    Gegeben sei ein Wachstum $k$ innerhalb einer (beliebigen) Zeiteinheit $\Delta t_0$, eine Startpopulation $y(0) = y_0$, $\Delta t$ ein Zeitteil, $R$ \emph{Oberschranke der verfügbaren Ressourcen} und eine Änderungsrate
-    $$
-        \Delta y = (k\cdot y \cdot (R-y)) \cdot \Delta t
-    $$
-    dann ist die Lösungsfunktion
-    $$
-        \boxed{y_n = \frac{R}{\frac{R-y_0}{y_0} \cdot (1 + R \cdot k \cdot \Delta t)^{-n} + 1}}
-    $$
-\end{defi}
-
-\begin{defi}{Kontinuierliches Modell des Wachstums mit Störung zweiter Ordnung}
-    Zur Lösung der Modellgleichung
-    $$
-        \lim_{\Delta t \to 0} \frac{\Delta y}{\Delta t} = k\cdot y \cdot (R-y)
-    $$
-    mit $y(0) = y_0$, $k$ (kontinuierliches) Wachstum und $R$ \emph{Oberschranke der verfügbaren Ressourcen}, ist die \emph{kontinuierliche} Lösungsfunktion
-    $$
-        \boxed{y(t) = \frac{R}{\frac{R-y_0}{y_0} \cdot e^{-Rkt} + 1}}
-    $$
-    und wegen $\Delta t \to 0$ ist dies gleichbedeutend zu
-    $$
-        y'(t) = k \cdot y(t) \cdot (R-y(t))
-    $$
-\end{defi}
-
-\section{Gewöhnliche Differentialgleichungen}
-
-\begin{defi}{Gewöhnliche Differentialgleichung $n$-ter Ordnung}
-    Eine Gleichung der Form
-    $$
-        y^{(n)} = f(x, y, y', y'', \ldots, y^{(n-1)})
-    $$
-    heißt \emph{(explizite) gewöhnliche Differentialgleichung n-ter Ordnung}.
-
-    Ist die Gleichung in der Form
-    $$
-        f(x, y, y', y'', \ldots, y^{(n)}) = 0
-    $$
-    gegeben, so heißt die Differentialgleichung \emph{implizit}.
-
-    Erfüllt $y(x)$ die Differentialgleichung, so heißt $y$ \emph{allgemeine Lösung der Differentialgleichung}.
-\end{defi}
-
-\begin{defi}{Anfangswertproblem}
-    Die Vorgabe einer expliziten Differentialgleichung und der Werte
-    $$
-        x_0, \quad y(x_0) = y_0, \quad y'(x_0) = y_1, \quad \ldots, \quad y^{(n-1)}(x_0) = y_{n-1}
-    $$
-    heißt \emph{Anfangswertproblem}.
-
-    Erfüllt $y(x)$ das Anfangswertproblem, so heißt $y$ \emph{spezielle Lösung des Anfangswertproblems}.
-\end{defi}
-
-\subsection{Lösungsverfahren für Differentialgleichungen erster Ordnung}
-
-\begin{algo}{Trennung der Variablen}
-    Gegeben: Differentialgleichung der Form
-    $$
-        \boxed{y' = f(x) \cdot g(y)} \quad \iff \quad \frac{\d y}{\d x} = f(x) \cdot g(y)
-    $$
-    \begin{enumerate}
-        \item $x$ und $y$ wie folgt trennen:
-              $$
-                  \frac{1}{g(y)} \d y = f(x) \d x
-              $$
-        \item Integration liefert:
-              $$
-                  \int \frac{1}{g(y)} \d y = \int f(x) \d x
-              $$
-        \item Umstellen nach $y$ liefert die Lösung der Differentialgleichung
-    \end{enumerate}
-\end{algo}
-
-\begin{example}{Trennung der Variablen}
-    Berechnen Sie die allgemeine Lösung der Differentialgleichung
-    $$
-        y' + (1+x)\cdot y = 0\quad \iff \quad y' = -y\cdot (1+x)
-    $$
-    \exampleseparator
-
-    $$
-        \begin{aligned}
-                       & \frac{\d y}{\d x}      &  & = -y \cdot (1+x)                        \\
-            \iff \quad & -\frac{1}{y} \d y      &  & = (1+x) \d x                            \\
-            \iff \quad & \int -\frac{1}{y} \d y &  & = \int (1+x) \d                         \\
-            \iff \quad & - \ln\abs{y} - c_2     &  & = x + \frac{x^2}{2} + c_1               \\
-            \iff \quad & y                      &  & = e^{-(c_1 + c_2)}e^{-\frac{x}{2}(x+2)} \\
-            \iff \quad & y                      &  & = ce^{-\frac{x}{2}(x+2)}                \\
-        \end{aligned}
-    $$\qed
-\end{example}
-
-\begin{algo}{Substitution}
-    \begin{itemize}
-        \item Differentialgleichung vom Typ
-              $$
-                  \boxed{y' = f(ax + by + c)}
-              $$
-              \begin{enumerate}
-                  \item Substituiere $z = ax + by + c$
-                  \item Es ergibt sich
-                        $$
-                            y = \frac{z -ax - c}{b} \quad \implies \quad y' = \frac{z' - a}{b}
-                        $$
-                        bzw.
-                        $$
-                            z' = a + bf(z)
-                        $$
-                  \item Lösen mithile von \emph{Trennung der Variablen} (\emph{Tipp:} Dividieren durch rechte Seite)
-                  \item Rücksubstitution in $y = \frac{z -ax - c}{b}$ ergibt die Lösung
-              \end{enumerate}
-        \item Differentialgleichung vom Typ
-              $$
-                  \boxed{y' = f\left(\frac{x}{y}\right)}
-              $$
-              \begin{enumerate}
-                  \item Substituiere $z = \frac{x}{y}$
-                  \item Es ergibt sich (Produktregel!)
-                        $$
-                            y = z \cdot x \quad \implies \quad y' = z + z' \cdot x
-                        $$
-                        bzw.
-                        $$
-                            z' = \frac{f(z) - z}{x} \quad \iff \quad z + z' \cdot x = f(z)
-                        $$
-                  \item Lösen mithile von \emph{Trennung der Variablen}
-                  \item Rücksubstitution in $y = z \cdot x$ ergibt die allgemeine Lösung
-              \end{enumerate}
-    \end{itemize}
-\end{algo}
-
-\begin{example}{Substitution}
-    Lösen Sie die folgende Differentialgleichung mit Hilfe einer geeigneten Substitution ($x \neq 0$):
-    $$
-        y' = \frac{1}{\sin\left(\frac{y}{x}\right)} + \frac{y}{x}
-    $$
-    \exampleseparator
-
-    Sei $u = \frac{y}{x}$ ($\implies u' = \frac{xy' - y}{x^2} \iff y' = u + xu'$). Dann gilt:
-
-    $$
-        \begin{aligned}
-                       & y'                  &  & = \frac{1}{\sin\left(\frac{y}{x}\right)} + \frac{y}{x} \\
-            \iff \quad & u + xu'             &  & = \frac{1}{\sin u} + u                                 \\
-            \iff \quad & xu'                 &  & = \frac{1}{\sin u}                                     \\
-            \iff \quad & \frac{x \d u}{\d x} &  & = \frac{1}{\sin u}                                     \\
-            \iff \quad & \sin u \d u         &  & = \frac{1}{x} \d x                                     \\
-            \iff \quad & \int \sin u \d u    &  & = \int \frac{1}{x} \d x                                \\
-            \iff \quad & -\cos (u) + c_2     &  & = \ln\abs{x} + c_1                                     \\
-            \iff \quad & \cos (u)            &  & = -\ln\abs{x} - c_1 + c_2                              \\
-            \iff \quad & u                   &  & = \arccos(-\ln\abs{x} - c_1 + c_2)                     \\
-            \iff \quad & \frac{y}{x}         &  & = \arccos(-\ln\abs{x} - c_1 + c_2)                     \\
-            \iff \quad & y                   &  & = x\arccos(c - \ln\abs{x})                             \\
-        \end{aligned}
-    $$\qed
-\end{example}
-
-\begin{defi}{Lineare Differentialgleichung}
-    Die Gleichung
-    $$
-        y' + f(x) \cdot y = 0
-    $$
-    heißt \emph{linear homogene Differentialgleichung} 1. Ordung.
-
-    Die Gleichung
-    $$
-        y' + f(x) \cdot y = g(x)
-    $$
-    heißt \emph{linear inhomogene Differentialgleichung} 1. Ordung und
-    $g(x)$ heißt \emph{Störfunktion}.
-
-    Das zugehörige Anfangswertproblem heißt \emph{lineares Anfangswertproblem}.
-\end{defi}
-
-\begin{algo}{Lösen von linearen homogenen Differentialgleichungen 1. Ordnung}
-    Für eine Gleichung
-    $$
-        \boxed{y' + f(x)\cdot y = 0}
-    $$
-    ist die allgemeine Lösung
-    $$
-        y = ce^{\int -f(x) \d x}
-    $$
-
-    $c$ wird dann durch Einsetzen eines Anfangswertes berechnet.
-\end{algo}
-
-\begin{algo}{Variation der Konstanten}
-    Gegeben: Differentialgleichung der Form
-    $$
-        \boxed{y' + f(x)\cdot y = g(x)}
-    $$
-    \begin{enumerate}
-        \item Löse homogene Differentialgleichung mit
-              $$
-                  y = ce^{\int - f(x) \d x}
-              $$
-        \item Ersetze $c$ durch $c(x)$
-        \item Berechne $y'$
-        \item Vergleiche $y'$ mit ursprünglicher Störfunktion
-        \item Bestimme aus der Differentialgleichung die Lösung für $c(x)$ (enthält neue Konstante!)
-        \item Einsetzen in
-              $$
-                  y = c(x) \cdot e^{\int - f(x) \d x}
-              $$
-              ergibt die allgemeine Lösung
-    \end{enumerate}
-\end{algo}
-
-\begin{example}{Variation der Konstanten}
-    Berechnen Sie die allgemeine Lösung der Differentialgleichung
-    $$
-        (x-2) \cdot y' = y + 2(x-2)^3
-    $$
-    \exampleseparator
-
-    Umwandeln in allgemeine Darstellung:
-    $$
-        (x-2) \cdot y' = y + 2(x-2)^3 \quad \iff \quad y' = \frac{y}{x-2} + 2(x-2)^2 \quad \iff \quad y' - \frac{1}{x-2}\cdot y = 2(x-2)^2
-    $$
-    Lösen der homogenen Gleichung:
-    $$
-        \begin{aligned}
-                       & y'_h - \frac{1}{x-2}\cdot y_h &  & = 0                         \\
-            \iff \quad & y'_h                          &  & = \frac{1}{x-2}\cdot y_h    \\
-            \iff \quad & \frac{1}{y_h} \d y_h          &  & = \frac{1}{x-2}\d x         \\
-            \iff \quad & \int \frac{1}{y_h} \d y_h     &  & = \int \frac{1}{x-2}\d x    \\
-            \iff \quad & \ln(y_h) + c_2                &  & = \ln (x-2) + c_1           \\
-            \iff \quad & (y_h)                         &  & = e^{\ln (x-2) + c_1 - c_2} \\
-            \iff \quad & y_h                           &  & = c(x-2)                    \\
-        \end{aligned}
-    $$
-
-    Lösen der Störfunktion:
-    $$
-        \begin{aligned}
-                           & y  &  & = c(x) \cdot (x-2)  \\
-            \implies \quad & y' &  & = c'(x)(x-2) + c(x)
-        \end{aligned}
-    $$
-    $$
-        \begin{aligned}
-                       & y' - \frac{1}{x-2}\cdot y                                                                  &  & = 2(x-2)^2                   \\
-            \iff \quad & \underbrace{c'(x)(x-2) + c(x)}_{y'} - \frac{1}{x-2}\cdot \underbrace{c(x) \cdot (x-2)}_{y} &  & = 2(x-2)^2                   \\
-            \iff \quad & c'(x)(x-2)                                                                                 &  & = 2(x-2)^2                   \\
-            \iff \quad & c'(x)                                                                                      &  & = 2(x-2)                     \\
-            \iff \quad & \int 1 \d c                                                                                &  & = 2\int x\d x - 4\int 1 \d x \\
-            \iff \quad & c(x)                                                                                       &  & = x^2 - 4x + c_1
-        \end{aligned}
-    $$
-
-    Damit erhalten wir insgesamt:
-    $$
-        y = (x^2 - 4x + c)(x-2) = c(x-2) + (x-4)(x-2)x
-    $$\qed
-\end{example}
-
-\begin{defi}{Superpositionsprinzip (inhomogene lineare Differentialgleichungen)}
-    Die Lösung einer \emph{inhomogenen linearen Differentialgleichung} setzt sich zusammen aus der allgemeinen Lösung der homogenen Differentialgleichung $y_h$ und einer partikulären Lösung der \emph{inhomogenen Differentialgleichung} $y_p$
-    $$
-        y = y_h + y_p
-    $$
-\end{defi}
-
-\begin{algo}{Ansatz vom Typ der rechten Seite}
-    Man rät eine Lösung, indem man einen Ansatz für $y_p$ vom Typ der Störfunktion $g(x)$ wählt:
-
-    \begin{center}
-        \begin{tabular}{c | c l}
-            Störfunktion $g(x)$            & Ansatz für $y_p$                                                                        \\
-            \hline
-            $c_0$                          & $\lambda_0$                                        & \rdelim\}{3}{3mm}[polynomiell]     \\
-            $c_0 + c_1x$                   & $\lambda_0 + \lambda_1 x$                                                               \\
-            $c_0 + c_1x + \ldots + c_nx^n$ & $\lambda_0 + \lambda_1 x + \ldots + \lambda_nx^n$                                       \\
-            \hline
-            $c_0e^{ax}$                    & $\lambda_0 e^{ax}$                                 & \rdelim\}{4}{3mm}[exponentiell]    \\
-            $c_0e^{ax}$                    & $\lambda_0 xe^{ax}$                                                                     \\
-            $c_0e^{ax}$                    & $\ldots$                                                                                \\
-            $c_0e^{ax}$                    & $\lambda_0 x^ne^{ax}$                                                                   \\
-            \hline
-            $c_0\sin(ax) + c_1\cos(ax)$    & $\lambda_0\sin(ax) + \lambda_1\cos(ax)$            & \rdelim\}{3}{3mm}[trigonometrisch] \\
-            $c_0e^{ax}\cdot \sin(bx)$      & $x\cdot (\lambda_1 \sin(bx) + \lambda_2 \cos(bx))$                                      \\
-            $c_0e^{ax}\cdot \cos(bx)$      & $x\cdot (\lambda_1 \sin(bx) + \lambda_2 \cos(bx))$                                      \\
-        \end{tabular}
-    \end{center}
-
-    \emph{Bemerkungen:}
-    \begin{itemize}
-        \item Bei einer Summe von mehreren Funktionstypen sollten entsprechend viele partikuläre Teillösungen berechnet werden. Die Summe dieser Teillösungen entspricht dann insgesamt der partikulären Lösung $y_p$.
-        \item Existiert für eine Störfunktion $g(x) = cx^ne^{ax}$ ein Term $\mu x^ne^{ax}$ bereits in der homogenen Lösung, wählt man als Ansatz für $y_p = \lambda x^{n+1}e^{ax}$ (siehe Beispiel).
-    \end{itemize}
-\end{algo}
-
-\begin{example}{Ansatz vom Typ der rechten Seite}
-    Berechnen Sie die allgemeine Lösung der linearen Differentialgleichung
-    $$
-        y'- y = 9e^x
-    $$
-    \exampleseparator
-
-    Lösen der homogenen Gleichung:
-    $$
-        y_h'- y_h = 0 \implies y_h = ce^{x}
-    $$
-
-    Mit der partikulären Lösung ($y_p = c_0xe^{x}$)
-    $$
-        y_p = c_0xe^x \implies y'_p = c_0(e^x + xe^x)
-    $$
-    gilt dann:
-    $$
-        \begin{aligned}
-                           & y'- y                     &  & = 9e^x \\
-            \iff \quad     & c_0(e^x + xe^x) - c_0xe^x &  & = 9e^x \\
-            \iff \quad     & c_0e^x(1 + x - x)         &  & = 9e^x \\
-            \implies \quad & c_0                       &  & = 9
-        \end{aligned}
-    $$
-
-    Und schlussendlich:
-    $$
-        y = y_h + y_p \implies y = ce^x + 9e^xx
-    $$\qed
-\end{example}
-
-\begin{algo}{Bernoulli-Differentialgleichung}
-    Gegeben: Differentialgleichung der Form
-    $$
-        \boxed{y' + f(x) \cdot y = g(x)\cdot y^\alpha}
-    $$
-    \begin{enumerate}
-        \item Substituiere
-              $$
-                  z = y^{1-\alpha} \quad \iff \quad y = z^{\frac{1}{1-\alpha}}
-              $$
-        \item Einsetzen in die Differentialgleichung ergibt
-              $$
-                  z' + (1-\alpha) \cdot f(x)\cdot z = g(x) \cdot (1-\alpha)
-              $$
-        \item Lösen der linearen Differentialgleichung
-        \item Rücksubstitution in
-              $$
-                  y = z^{\frac{1}{1-\alpha}}
-              $$
-              ergibt die allgemeine Lösung
-    \end{enumerate}
-\end{algo}
-
-\begin{defi}{Exakte Differentialgleichung}
-    Eine Differentialgleichung der Form
-    $$
-        p(x, y) + q(x, y) \cdot y' = 0 \quad \iff \quad p(x, y) \d x + q(x, y) \d y = 0
-    $$
-    mit
-    $$
-        p_x = q_y \ \text{\emph{(Integrabilitätsbedingung)}}
-    $$
-    heißt \emph{exakte Differentialgleichung}.
-\end{defi}
-
-\begin{algo}{Lösen von exakten Differentialgleichungen}
-    Gegeben: Differentialgleichung der Form
-    $$
-        \boxed{p(x, y) + q(x, y) \cdot y' = 0 \quad \iff \quad p(x, y) \d x + q(x, y) \d y = 0}
-    $$
-    \begin{enumerate}
-        \item Prüfen der Integrabilitätsbedingung
-              $$
-                  p_x = q_y
-              $$
-        \item Stammfunktion berechnen mit
-              $$
-                  \underbrace{F(x, y) = \int p \d x}_{(*)} \quad \text{oder} \quad \underbrace{F(x, y) = \int q \d y}_{(**)}
-              $$
-              \subitem Konstante $c$ ersetzen mit $c(y)$ $(*)$ bzw. $c(x)$ $(**)$
-        \item Differentiation von $F(x, y)$ nach $y$ $(*)$ bzw. nach $x$ $(**)$
-        \item Es ergibt sich
-              $$
-                  c(y)' = f(y) \quad \implies c(y) = \int f(y) \d y \quad (*)
-              $$
-              bzw.
-              $$
-                  c(x)' = f(x) \quad \implies c(x) = \int f(x) \d x \quad (**)
-              $$
-        \item Einsetzen ergibt die allgemeine Lösung
-    \end{enumerate}
-\end{algo}
-
-\begin{defi}{Integrierender Faktor (Euler-Multiplikator)}
-    $\mu(x, y)$ ist genau dann ein \emph{integrierender Faktor} oder \emph{Euler-Multiplikator} für eine Funktion
-    $$
-        p(x, y) + q(x, y) \cdot y' = 0 \quad \iff \quad p(x, y) \d x + q(x, y) \d y = 0
-    $$
-    wenn die Integrabilitätsbedingung
-    $$
-        \frac{\partial \mu p}{\partial y} = \frac{\partial \mu q}{\partial x}
-    $$
-    erfüllt wird.
-\end{defi}
-
-\begin{algo}{Lösen von Differentialgleichungen mithilfe eines integrierenden Faktors}
-    Gegeben: Differentialgleichung der Form
-    $$
-        \boxed{p(x, y) + q(x, y) \cdot y' = 0 \quad \iff \quad p(x, y) \d x + q(x, y) \d y = 0}
-    $$
-    bei der die \emph{Integrabilitätsbedingung nicht erfüllt} wird.
-
-    Wir betrachten hier nur integrierende Faktoren, die nur von $x$ bzw. nur von $y$ abhängig sind.
-
-    \begin{enumerate}
-        \item Integrierender Faktor ist gegeben mit
-              $$
-                  \underbrace{\mu(x) = e^{\int m(x) \d x}}_{(*)} \quad \text{oder} \quad \underbrace{\mu(y) = e^{\int m(y) \d y}}_{(**)}
-              $$
-              \subitem $(*)$ Untersuchen, ob $\mu$ nur von $x$ abhängt:
-              $$
-                  m(x) = \frac{p_y - q_x}{q}
-              $$
-              \subitem $(**)$ Untersuchen, ob $\mu$ nur von $y$ abhängt:
-              $$
-                  m(y) = \frac{q_x - p_y}{p}
-              $$
-        \item $m$ in entsprechende Formel für $\mu$ einsetzen
-        \item Einsetzen in die Differentialgleichung liefert
-              $$
-                  \mu p(x, y) + \mu q(x, y) \cdot y' = 0 \quad \iff \quad \mu p(x, y) \d x + \mu q(x, y) \d y = 0
-              $$
-        \item Prüfen der Integrabilitätsbedingung
-        \item Lösen der exakten Differentialgleichung
-    \end{enumerate}
-\end{algo}
-
-\begin{example}{Lösen von Differentialgleichungen mithilfe eines integrierenden Faktors}
-    Lösen Sie die Differentialgleichung
-    $$
-        (3xy + 2y^2) + (x^2 + 2xy) y' = 0
-    $$
-
-    \exampleseparator
-
-    Es gilt:
-    $$
-        (3xy + 2y^2) + (x^2 + 2xy) y' = 0 \quad \iff \quad \underbrace{(3xy + 2y^2)}_{p(x, y)}\d x + \underbrace{(x^2 + 2xy)}_{q(x, y)}\d y = 0
-    $$
-    Integrabilitätsbedingung:
-    $$
-        p_y = 3x + 4y \quad \neq \quad 2x + 2y = q_x \quad \lightning
-    $$
-
-    Integrierenden Faktor (Euler-Multiplikator) $\mu(x) = e^{\int m(x) \d x}$ bzw. $\mu(y) = e^{\int m(y) \d y}$ bestimmen:
-    \begin{itemize}
-        \item Untersuchung, ob $\mu$ nur von $y$ abhängt:
-              $$
-                  m = \frac{q_x - p_y}{p} = \frac{2x + 2y - \left(3x + 4y\right)}{3xy + 2y^2} = \frac{-x - 2y}{3xy + 2y^2} \quad \lightning
-              $$
-        \item Untersuchung, ob $\mu$ nur von $x$ abhängt:
-              $$
-                  m = \frac{p_y - q_x}{q} = \frac{3x + 4y - (2x + 2y)}{x^2 + 2xy} = \frac{x + 2y}{x^2 + 2xy} = \frac{x+2y}{x(x+2y)} = \frac{1}{x} \quad \checkmark
-              $$
-    \end{itemize}
-
-    Damit erhalten wir den integrierenden Faktor mit:
-    $$
-        \mu(x) = e^{\int \frac{1}{x} \d x} = cx \qquad (\text{sei} \ c = 1)
-    $$
-    Einsetzen in die DGL:
-    $$
-        \underbrace{\left(3x^2y + 2xy^2\right)}_{p(x, y)}\d x + \underbrace{\left(x^3 + 2x^2y\right)}_{q(x, y)}\d y = 0
-    $$
-    Integrabilitätsbedingung:
-    $$
-        p_y = 3x^2 + 4xy \quad = \quad 3x^2 + 4xy = q_x \quad \checkmark
-    $$
-    Wir wissen:
-    $$
-        \underbrace{F = \int q \d y = x^3y + x^2y^2 + c(x)}_{F_y = q} \implies \underbrace{3x^2y + 2xy^2 + c'(x) = 3x^2y + 2xy^2}_{F_x = p}  \implies  c(x) = c
-    $$
-
-    Und insgesamt gilt damit:
-    $$
-        F = x^3y + x^2y^2 + c
-    $$\qed
-\end{example}
-
-\subsection{Lösungsverfahren für Differentialgleichungen zweiter Ordnung}
-
-\begin{defi}{Charakteristische Gleichung}
-    Die Gleichung
-    $$
-        \alpha^2 + a\alpha + b = 0
-    $$
-    heißt die zur Differentialgleichung
-    $$
-        y'' + ay' + b = 0
-    $$
-    gehörende \emph{charakteristische Gleichung}.
-\end{defi}
-
-\begin{bonus}{Superpositionsprinzip (homogene lineare Differentialgleichungen)}
-    Sind $y_1(x)$ und $y_2(x)$ Lösungen einer \emph{homogenen linearen Differentialgleichung}, so ist auch jede \emph{Linearkombination}
-    $$
-        \lambda\cdot  y_1(x) + \mu\cdot  y_2(x)
-    $$
-    eine allgemeine Lösung der Differentialgleichung.
-\end{bonus}
-
-\begin{algo}{Lösen von linearen homogenen Differentialgleichungen 2. Ordnung}
-    Für eine Gleichung
-    $$
-        \boxed{y'' + ay' + by = 0}
-    $$
-    stelle man die charakteristische Gleichung auf, mit
-    $$
-        \alpha^2 + a\alpha + b = 0 \quad \implies \quad \alpha = -\frac{a}{2} \pm \sqrt{\left(\frac{a}{2}\right)^2 - b}
-    $$
-
-    Dann gilt mit $D = \left(\frac{a}{2}\right)^2 - b$ (Diskriminante):
-    \begin{itemize}
-        \item $D > 0$:
-              $$
-                  y_h = \lambda_1 e^{\alpha_1 x} + \lambda_2 e^{\alpha_2 x}
-              $$
-        \item $D = 0$:
-              $$
-                  y_h = (\lambda_1 + \lambda_2x)\cdot  e^{\alpha x}
-              $$
-        \item $D < 0$:
-              $$
-                  y_h = e^{\Re(\alpha)} \cdot \left( \lambda_1 \cos(\Im(\alpha)) + \lambda_2 \sin(\Im(\alpha)) \right) = e^{-\frac{a}{2}} \cdot \left( \lambda_1 \cos(\sqrt{-D}) + \lambda_2 \sin(\sqrt{-D}) \right)
-              $$
-    \end{itemize}
-
-    \emph{Bemerkung:}
-    \begin{itemize}
-        \item $\Re(\alpha)$ ist der Realteil der Nullstelle
-        \item $\Im(\alpha)$ ist der Imaginärteil der Nullstelle
-    \end{itemize}
-\end{algo}
-
-\begin{algo}{Lösen von linearen Differentialgleichungssystemen}
-    Gegeben: Differentialgleichungssystem der Form
-    \begin{equation}
-        y'  = ay + bz
-    \end{equation}
-    \begin{equation}
-        z'  = dy + cz
-    \end{equation}
-
-    \begin{enumerate}
-        \item Umstellen von (1) nach $z$ ergibt
-              $$
-                  z = \frac{y' - ay}{b}
-              $$
-        \item Differentiation von (1) und anschließendes Einsetzen von $z$ ergibt
-              $$
-                  y'' - (a + c) \cdot y' + (ac -bd) \cdot y = 0
-              $$
-        \item Lösen der homogenen Differentialgleichung mit der charakteristischen Gleichung
-              $$
-                  \alpha^2 - (a+c)\alpha + (ac-bd) = 0
-              $$
-              ergibt dann die allgemeine Lösung für $y$
-        \item Einsetzen von $y$ (und $y'$) in
-              $$
-                  z =  \frac{y' - ay}{b}
-              $$
-              ergibt die allgemeine Lösung für $z$
-    \end{enumerate}
-\end{algo}
-
-\begin{example}{Lösen von linearen Differentialgleichungssystemen}
-    Lösen Sie folgendes Differentialgleichungssystem:
-    $$
-        \begin{aligned}
-            y' & = y + 2z          \\
-            z' & = 2y + z - 2e^{x}
-        \end{aligned}
-    $$
-
-    \exampleseparator
-
-    Wir leiten $y'$ ab:
-    $$
-        \begin{aligned}
-                       & y' = y + 2z \quad \iff \quad z = \frac{y'- y}{2} \\
-            \iff \quad & y'' - y'  - 2z' = 0
-        \end{aligned}
-    $$
-    Einsetzen von $z'$:
-    $$
-        y'' - y'  - 2z' = 0 \quad \iff \quad  y'' - y'  - 4y -2z + 4e^{x} = 0
-    $$
-    Einsetzen von $z$:
-    $$
-        \begin{aligned}
-                       & y'' - y'  - 4y -2z + 4e^{x} = 0 \\
-            \iff \quad & y'' - 2y'  - 3y  = -4e^{x}
-        \end{aligned}
-    $$
-
-    Lösung der homogenen Gleichung:
-    $$
-        \begin{aligned}
-                           & y'' - 2y'  - 3y  = 0                          \\
-            \implies \quad & \alpha^2 - 2\alpha - 3 = 0                    \\
-            \implies \quad & \alpha = 1 \pm \sqrt{\left( -1 \right)^2 + 3} \\
-            \iff \quad     & \alpha = 1 \pm 2                              \\
-            \implies \quad & y_h = \lambda_1e^{-x} + \lambda_2e^{3x}
-        \end{aligned}
-    $$
-
-    Berechnen der partikulären Lösung:
-    $$
-        y_p = ce^x \quad \implies \quad y'_p = ce^x \quad \implies \quad y''_p = ce^x
-    $$
-    $$
-        \begin{aligned}
-                           & y''_p - 2y'_p  - 3y_p &  & = -4e^{x} \\
-            \iff \quad     & ce^x - 2ce^x  - 3ce^x &  & = -4e^{x} \\
-            \iff \quad     & -4ce^x                &  & = -4e^{x} \\
-            \implies \quad & c = 1
-        \end{aligned}
-    $$
-    Dann gilt insgesamt:
-    $$
-        y = y_h + y_p = \lambda_1e^{-x} + \lambda_2e^{3x} + e^x
-    $$
-    und
-    $$
-        z = \frac{y'- y}{2} = \frac{\left( -\lambda_1e^{-x} + 3\lambda_2e^{3x} + e^x \right) - \left( \lambda_1e^{-x} + \lambda_2e^{3x} + e^x \right)}{2} = \lambda_2e^{3x} - \lambda_1e^{-x}
-    $$\qed
-\end{example}
-
-\printindex
-\printindex[Beispiele]
-
-\end{document}
+\documentclass[german]{../spicker}
+
+\usepackage{amsmath}
+\usepackage{polynom}
+\usepackage{array}   % for \newcolumntype macro
+\usepackage{tikz}
+\usepackage{pgfplots}
+\usepackage{multirow,bigdelim}
+\usepgfplotslibrary{fillbetween}
+
+\title{Analysis 2}
+\author{Patrick Gustav Blaneck}
+\makeindex[intoc]
+\makeindex[intoc, name=Beispiele,title=Beispiele]
+
+\newcommand{\scalarprod}[1]{\left\langle #1 \right\rangle}
+\newcommand{\vektor}[1]{\begin{pmatrix*}[c] #1 \end{pmatrix*}}
+\renewcommand{\span}[1]{\operatorname{span}\left(#1\right)}
+
+\renewcommand{\d}{\,\mathrm{d}}
+
+\renewcommand{\abs}[1]{\left| #1 \right|}
+\newcommand{\cis}[1]{\left( \cos\left( #1 \right) + i \sin\left( #1 \right) \right)}
+\newcommand{\sgn}{\text{sgn}}
+\newcommand{\diff}{\mathrm{d}}
+\newcommand{\dx}{~\mathrm{d}x}
+\newcommand{\du}{~\mathrm{d}u}
+\newcommand{\dv}{~\mathrm{d}v}
+\newcommand{\dw}{~\mathrm{d}w}
+\newcommand{\dt}{~\mathrm{d}t}
+\newcommand{\dn}{~\mathrm{d}n}
+\newcommand{\dudx}{~\frac{\mathrm{d}u}{\mathrm{d}x}}
+\newcommand{\dudn}{~\frac{\mathrm{d}u}{\mathrm{d}n}}
+\newcommand{\dvdx}{~\frac{\mathrm{d}v}{\mathrm{d}x}}
+\newcommand{\dwdx}{~\frac{\mathrm{d}w}{\mathrm{d}x}}
+\newcommand{\dtdx}{~\frac{\mathrm{d}t}{\mathrm{d}x}}
+\newcommand{\ddx}{\frac{\mathrm{d}}{\mathrm{d}x}}
+\newcommand{\dFdx}{\frac{\mathrm{d}F}{\mathrm{d}x}}
+\newcommand{\dfdx}{\frac{\mathrm{d}f}{\mathrm{d}x}}
+\newcommand{\interval}[1]{\left[ #1 \right]}
+
+\newcolumntype{L}{>{$}l<{$}} % math-mode version of "l" column type
+\newcolumntype{R}{>{$}r<{$}} % math-mode version of "r" column type
+\newcolumntype{C}{>{$}c<{$}} % math-mode version of "c" column type
+\newcolumntype{P}{>{$}p<{$}} % math-mode version of "l" column type
+
+\begin{document}
+\maketitle
+\tableofcontents
+\newpage
+
+%\setcounter{section}{1}
+
+\section{Funktionen mehrerer Veränderlicher}
+
+\begin{defi}{Metrik}
+    Metriken definieren Abstände im $\R^n$.
+
+    Eine Funktion $d$ auf einem Vektorraum $V$ mit
+    $$
+        d :  V \times V \to \R, d(\vec{x}, \vec{y})
+    $$
+    heißt \emph{Metrik}, falls gilt
+    \begin{itemize}
+        \item $d(\vec{x}, \vec{y}) = 0 \iff \vec{x} = \vec{y}$
+        \item $d(\vec{x}, \vec{y}) \leq d(\vec{x}, \vec{z}) + d(\vec{y}, \vec{z}), \forall \vec{x}, \vec{y}, \vec{z} \in V$
+              (Dreiecksungleichung)
+    \end{itemize}
+\end{defi}
+
+\begin{example}{Metriken}
+    \begin{itemize}
+        \item Summen-Metrik: $$\sum_{k=1}^n \abs{x_k - y_k}$$
+        \item euklid. Metrik: $$\sqrt{\sum_{k=1}^n \left( x_k - y_k \right)^2}$$
+        \item Maximum-Metrik: $$\max_{k \in \interval{1,n}} \abs{x_k - y_k}$$
+    \end{itemize}
+\end{example}
+
+\begin{defi}{Metrischer Raum}
+    Ein Vektorraum und eine Metrik heißen zusammen \emph{metrischer Raum}.
+\end{defi}
+
+\begin{bonus}{Zusammenhang Metrik \& Norm}
+    Jeder Vektorraum mit einer Metrik $d$ ist normierbar (d.h. dort gibt es eine Norm), falls
+    $$
+        d(a\vec{x}, 0) = \abs{a} d(\vec{x}, 0) \quad \text{und} \quad d(\vec{x}, \vec{y}) = d(\vec{x} -\vec{y}, 0)
+    $$
+
+    Eine Norm wird dann definiert gemäß
+    $$
+        \norm{\vec{x}} := d(\vec{x}, 0)
+    $$
+\end{bonus}
+
+\subsection{Mengen im $\R^n$}
+
+\begin{defi}{$\varepsilon$-Umgebung im $\R^n$}
+    Sei $\norm{\cdot}$ eine Norm im $\R^n$, dann heißt
+    $$
+        U_\varepsilon(\vec{x_0}) := \left\{ \vec{x} \mid \norm{\vec{x} - \vec{x_0}} < \varepsilon \right\}
+    $$
+    die $\varepsilon$-Umgebung von $\vec{x_0}$ bzgl. der Norm $\norm{\cdot}$.
+
+    Sei $D$ eine Menge und $\norm{\cdot}$ eine Norm.
+    Dann
+    \begin{itemize}
+        \item \ldots heißt $\vec{x_0}$ \emph{innerer Punkt} von $D$, falls $\forall \varepsilon > 0 : U_\varepsilon(\vec{x_0}) \in D$.
+        \item \ldots heißt $D$ \emph{offene Menge}, falls alle Punkte von $D$ innere Punkte sind.
+    \end{itemize}
+\end{defi}
+
+\begin{defi}{Abgeschlossene Mengen}
+    Sei $D$ eine Menge und $\norm{\cdot}$ eine Norm.
+    Dann
+    \begin{itemize}
+        \item \ldots heißt $\vec{x_0}$ \emph{Häufungspunkt} von $D$, falls $\forall \varepsilon > 0$ $U_\varepsilon(\vec{x_0})$ einen Punkt $\vec{x} \neq \vec{x_0}$ enthält.
+        \item \ldots heißt $D$ \emph{abgeschlossene Menge}, falls sie alle Häufungspunkte von $D$ enthält.
+    \end{itemize}
+\end{defi}
+
+\begin{defi}{Beschränktheit von Mengen}
+    Eine Menge $D \subset \R^n$ heißt \emph{beschränkt}, falls es ein $M \in \R$ gibt mit
+    $$
+        \norm{\vec{x}} < M \quad \forall\vec{x} \in D
+    $$
+
+    Existiert eine solche Schranke nicht, so heißt die Menge \emph{unbeschränkt}.
+\end{defi}
+
+\subsection{Folgen im $\R^n$}
+
+\begin{defi}{Folge}
+    Seien $\vec{x_1}, \vec{x_2}, \ldots, \vec{x_m} \in \R^n$, dann heißt $(\vec{x_n})$ \emph{Folge} im $\R^n$.
+\end{defi}
+
+\begin{defi}{Konvergenz}
+    $(\vec{x_n})$ heißt \emph{konvergent} gegen den \emph{Grenzwert} $\vec{x}$, falls $\forall \varepsilon >0, \exists n_0(\varepsilon)$, so dass $\forall n > n_0(\varepsilon)$ gilt:
+    $$
+        \norm{\vec{x_n} - \vec{x}} < \varepsilon
+    $$
+\end{defi}
+
+\begin{defi}{Cauchy-Folge}
+    $(\vec{x_n})$ heißt \emph{Cauchy-Folge} gegen $\vec{x}$, falls $\forall \varepsilon >0, \exists n_0(\varepsilon)$, so dass $\forall n,m > n_0(\varepsilon)$ gilt:
+    $$
+        \norm{\vec{x_m} - \vec{x_n}} < \varepsilon
+    $$
+
+    Jede Cauchy-Folge ist konvergent.
+\end{defi}
+
+\begin{defi}{Beschränktheit von Folgen}
+    Eine Folge heißt \emph{beschränkt}, wenn die Menge aller Folgenglieder in jeder Komponente beschränkt ist.
+\end{defi}
+
+\begin{defi}{Häufungspunkt}
+    $\vec{x} \in \R^n$ heißt \emph{Häufungspunkt} von $(\vec{x_n})$, falls $\forall \varepsilon > 0$ unendlich viele $\vec{x_i}$ in der $\varepsilon$-Umgebung von $\vec{x}$ liegen.
+
+    Jede unendliche beschränkte Folge ist genau dann konvergent, wenn sie genau einen Häufungs\- punkt besitzt.
+\end{defi}
+
+\begin{defi}{Bolzano-Weierstrass für Folgen}
+    Jede unendliche beschränkte Folge besitzt mindestens einen Häufungspunkt.
+
+    Jede unendliche beschränkte Folge besitzt mindestens eine konvergente Teilfolge.
+\end{defi}
+
+\subsection{Differenzierbarkeit im $\R^n$}
+
+\begin{defi}{Grenzwert im $\R^n$}
+    Wir bezeichnen mit dem Grenzwert
+    $$
+        g = \lim_{\vec{x} \to \vec{x_n}} f(\vec{x})
+    $$
+    den \emph{Grenzwert} jeder gegen $\vec{x_0}$ konvergenten Folge $(\vec{x_n})$, falls dieser existiert und damit insbesondere eindeutig ist.
+\end{defi}
+
+\begin{defi}{Stetigkeit}
+    Sei $U \subset \R^n$ offene Menge, $f : U \to \R, \ \vec{x_0} = \vektor{x_1 & \ldots & x_n}^T \in U$,
+    $f$ heißt in $\vec{x_0}$ \emph{stetig}, wenn
+    $$
+        \lim_{\vec{x} \to \vec{x_0}} f(\vec{x}) = f(\vec{x_0}) = f\left(\lim_{\vec{x} \to \vec{x_0}} \vec{x}\right),
+    $$
+    wobei $\lim_{\vec{x} \to \vec{x_0}} f(\vec{x_0})$ Grenzwert jeder gegen $\vec{x_0}$ konvergenten Folge $(\vec{x_n})$ ist.
+
+    Formal:
+    $$
+        \lim_{\vec{x} \to \vec{x_0}} f(\vec{x}) := \lim_{n \to \infty} f(\vec{x_n})
+    $$
+
+    $f$ heißt \emph{stetig in U}, wenn die Funktion für jedes $\vec{x_0} = \vektor{x_1 & \ldots & x_n}^T \in U$ stetig ist.
+
+    Stetigkeit bedeutet somit insbesondere Stetigkeit in allen Komponenten.
+\end{defi}
+
+\begin{example}{Stetigkeit}
+    Lassen sich folgende Funktionen im Nullpunkt stetig ergänzen und, wenn ja, wie?
+    \begin{enumerate}[a)]
+        \item $f(x,y) = \frac{xy^2}{x^2 + y^8}$
+        \item $f(x,y) = \frac{x^3 + x^2 - y^4 + y^2}{x^2 + y^2}$
+    \end{enumerate}
+
+    \exampleseparator
+
+    \begin{enumerate}[a)]
+        \item
+              Sei die Kurve $x = y^4$ gegeben.
+              Dann gilt:
+              $$
+                  \lim_{y\to 0} f(y) = \lim_{y\to 0} \frac{y^4y^2}{y^8+y^8} = \lim_{y\to 0} \frac{1}{2y^2} = \infty
+              $$
+              Damit ist $f$ im Nullpunkt nicht stetig.\qed
+        \item
+              $f$ ist genau dann \emph{stetig ergänzbar} im Nullpunkt, wenn $\lim_{(x,y) \to (0,0)} f(x,y)$ existiert.
+              $$
+                  \begin{aligned}
+                      \lim_{(x,y) \to (0,0)} f(x,y) & = \lim_{(x,y) \to (0,0)} \frac{x^3 + x^2 - y^4 + y^2}{x^2 + y^2}                                                                                    \\                                                                        \\
+                                                    & =  \lim_{r \to 0} \frac{r^3\cos^3(\varphi) + r^2\cos^2(\varphi) - r^4\sin^4(\varphi) + r^2\sin^2(\varphi)}{r^2\cos^2(\varphi) + r^2\sin^2(\varphi)} \\
+                                                    & =  \lim_{r \to 0} \frac{r\cos^3(\varphi) + \cos^2(\varphi) - r^2\sin^4(\varphi) + \sin^2(\varphi)}{\cos^2(\varphi) + \sin^2(\varphi)}               \\
+                                                    & =  \lim_{r \to 0} r\cos^3(\varphi) + \cos^2(\varphi) - r^2\sin^4(\varphi) + \sin^2(\varphi)                                                         \\
+                                                    & =  0 + 1 - 0 + 0 = 1
+                  \end{aligned}
+              $$
+
+              Damit ist $f$ im Nullpunkt stetig ergänzbar mit $f(0, 0) = 1$.\qed
+    \end{enumerate}
+\end{example}
+
+\begin{defi}{Gleichmäßige Stetigkeit}
+    Eine Funktion $f: D \subset \R^n \to \R$ heißt \emph{gleichmäßig stetig}, wenn es zu jedem $\varepsilon > 0$ ein $\delta = \delta(\varepsilon)$ (unabhängig von $\vec{x_0}$) gibt, so dass
+    $$
+        \abs{f(\vec{x}) - f(\vec{x_0})} < \epsilon, \ \forall \norm{\vec{x} - \vec{x_0}} < \delta
+    $$
+
+    Gleichmäßige Stetigkeit ist wegen der Unabhängigkeit von $\vec{x_0}$ insbesondere Stetigkeit im gesamten Definitionsbereich $D$.
+
+    Ist $f$ beschränkt und abgeschlossen, so ist $f$ gleichmäßig stetig.
+\end{defi}
+
+\begin{defi}{Lipschitz-Stetigkeit}
+    Eine Funktion $f : D \subset \R^n \to \R$ heißt \emph{Lipschitz-stetig}, wenn es eine Konstante $L$ gibt (unabhängig von $\vec{x_0}$), so dass
+    $$
+        \abs{f(\vec{x}) - f(\vec{x_0})} \leq L \norm{\vec{x} - \vec{x_0}}
+    $$
+
+    Ist in einer Norm $L < 1$, so heißt die Abbildung \emph{Kontraktion}.
+
+    Ist eine Funktion $f$ Lipschitz-stetige, so ist $f$ auf ihrem Definitionsbereich $D$ gleichmäßig stetig und in jedem Punkt stetig.
+\end{defi}
+
+\begin{bonus}{Nullstelle}
+    Ein Punkt $\vec{x_0} \in D$ heißt \emph{Nullstelle} einer Funktion $f$, falls $f(\vec{x_0}) = \vec{0}$.
+\end{bonus}
+
+\begin{defi}{Fixpunkt}
+    Ein Punkt $\vec{x^*}\in D$ heißt \emph{Fixpunkt} einer Funktion $\varphi$, falls $\varphi(\vec{x^*}) = \vec{x^*}$.
+\end{defi}
+
+\begin{defi}{Fixpunktsatz von Banach}
+    Sei $\varphi : D \subset \R^n \to \R^n$ mit
+    $$
+        \abs{\varphi(\vec{x}) - \varphi(\vec{y})} \leq L \norm{\vec{x} - \vec{y}} \quad \text{und} \quad L < 1,
+    $$
+    dann hat $\varphi$ \emph{genau einen Fixpunkt}.
+\end{defi}
+
+\subsubsection{Partielle Ableitungen}
+
+\begin{defi}{Partielle Ableitung}
+    Sei $U \subset \R^n$ offene Menge, $f : U \to \R, \ \vec{x_0} = \vektor{x_1 & \ldots & x_n}^T \in U$,
+    $f$ heißt in $\vec{x_0}$ \emph{partiell differenzierbar} nach $x_i$, wenn
+    $$
+        \frac{\partial f}{\partial x_i} = \lim_{h \to 0} \frac{f(x_1, \ldots, x_i + h, \ldots, x_n) - f(x_1, \ldots, x_n)}{h}
+    $$
+    existiert.
+    Der Wert $\frac{\partial f}{\partial x}$ heißt dann die \emph{partielle Ableitung} von $f$ nach $x_i$.
+
+    Eine Funktion heißt \emph{(partiell) differenzierbar}, wenn alle partiellen Ableitungen existieren.
+\end{defi}
+
+\begin{bonus}{Zusammenhang Differenzierbarkeit und Stetigkeit}
+    $f$ heißt \emph{stetig partiell differenzierbar}, wenn alle partiellen Ableitungen in $\vec{x_i}$ stetige Funktionen (und insbesondere beschränkt) sind.
+
+    Ist $f$ in $U$ partiell differenzierbar und in $\vec{x_0} \in U$ \emph{stetig partiell differenzierbar}, so ist $f$ in $\vec{x_0}$ stetig.
+\end{bonus}
+
+\begin{defi}{Gradient}
+    Sei $U \subset \R^n$ offene Menge, $F : U \to \R$ partiell differenzierbar, $\vec{x_0} = \vektor{x_1 & \ldots & x_n}^T \in U$, dann heißt
+    $$
+        \nabla f(x_1, \ldots, x_n) = \vektor{\frac{\partial f}{\partial x_1}(x_1, \ldots, x_n) \\ \vdots \\ \frac{\partial f}{\partial x_n}(x_1, \ldots, x_n)}
+    $$
+    der \emph{Gradient von f in} $\vec{x_0}$.
+\end{defi}
+
+\begin{bonus}{Rechenregeln für Gradienten}
+    Sei $U \subset \R^n$ offene Menge, $f, g : U \to \R$ differenzierbar.
+    Dann gilt:
+    $$
+        \begin{aligned}
+             & \nabla (f + g)    &  & = \nabla (f) + \nabla (g)                 \\
+             & \nabla (\alpha f) &  & = \alpha \cdot \nabla (f)                 \\
+             & \nabla (fg)       &  & = g \cdot \nabla (f) + f \cdot \nabla (g)
+        \end{aligned}
+    $$
+\end{bonus}
+
+\begin{example}{Gradient}
+    Berechnen Sie den Gradienten für $f(x, y, z) = x^3 + y^2 + z$ an der Stelle $(1, 2, 3)$.
+
+    \exampleseparator
+
+    Zuerst berechnen wie die partiellen Ableitungen $f_x$, $f_y$ und $f_z$:
+    $$
+        \begin{aligned}
+            f_x & = 3x^2 \\
+            f_y & = 2y   \\
+            f_z & = 1
+        \end{aligned}
+    $$
+
+    Damit erhalten wir dann den Gradienten $\nabla f$ an der Stelle $(1, 2, 3)$ mit:
+    $$
+        \nabla f(1, 2, 3) = \vektor{f_x(1, 2, 3) \\ f_y(1, 2, 3) \\ f_z(1, 2, 3)}
+        = \vektor{3 \\ 4 \\ 1}
+    $$\qed
+\end{example}
+
+\begin{defi}{Tangentialebene im $\R^3$}
+    Sei $z = f(x, y)$ eine stetig partiell differenzierbare Funktion in zwei Unbekannten und $z_0 = f(x_0, y_0)$ ein fester Punkt.
+
+    Dann ist die Tangentialebene im Punkt $(x_0, y_0, z_0)$ gegeben mit:
+    $$
+        T = \vektor{x_0 \\ y_0 \\ z_0} + \lambda \cdot \vec{v_1} + \mu \cdot \vec{v_2},
+    $$
+    wobei $\vec{v_1}$ und $\vec{v_2}$ verschiedene Tangentenvektoren sind.
+\end{defi}
+
+\begin{algo}{Tangentialebene im $\R^3$}
+    Betrachten wir die Tangenten entlang der Koordinatenachsen, so erhalten wir
+    $$
+        T = \vektor{x_0 \\ y_0 \\ z_0} + \lambda \vektor{1 \\ 0 \\ f_x(x_0, y_0)} + \mu \vektor{0 \\ 1 \\ f_y(x_0, y_0)}
+    $$
+    oder äquivalent
+    $$
+        T(x, y) = f(x_0, y_0) + f_x(x_0, y_0) (x-x_0) + f_y(x_0, y_0) (y-y_0)
+    $$
+\end{algo}
+
+\begin{bonus}{Tangentialebene im $\R^n$}
+    Die Tangentialebene im $\R^n$ einer Funktion $f$ in $\vec{x} \in \R^n$ an der Stelle $\vec{x_0} = \vektor{x_1 & \ldots & x_n}^T$ analog definiert durch
+    $$
+        T(\vec{x}) = f(\vec{x_0}) + \nabla f (\vec{x} - \vec{x_0})
+    $$
+\end{bonus}
+
+\begin{example}{Tangentialebene}
+    Gegeben sei die Funktion
+    $$
+        f(x, y) = (x^2 + y^2 -2)^2
+    $$
+    Geben Sie die Tangentialebene im Punkt $(x_0, y_0) = (0,2)$ an.
+
+    \exampleseparator
+
+    Zuerst berechnen wie die partiellen Ableitungen $f_x$ und $f_y$:
+    $$
+        \begin{aligned}
+            f_x & = 4x(x^2 + y^2 -2) \\
+            f_y & = 4y(x^2 + y^2 -2)
+        \end{aligned}
+    $$
+    $$
+        z_0 = f(x_0, y_0) = f(0, 2) = 4
+    $$
+    Damit ergibt sich dann die Tangentialebene von $f$ am Punkt $(0, 2)$ mit:
+    $$
+        \begin{aligned}
+            E     & = \vektor{x_0 \\ y_0 \\ z_0} + \lambda \vektor{1 \\ 0 \\ f_x(x_0, y_0)} + \mu \vektor{0 \\ 1 \\ f_y(x_0, y_0)} \\
+            \quad & = \vektor{0   \\ 2 \\ 4} + \lambda \vektor{1 \\ 0 \\ 0} + \mu \vektor{0 \\ 1 \\ 16}  \quad \lambda, \mu \in \R
+        \end{aligned}
+    $$\qed
+\end{example}
+
+\begin{defi}{Richtungsableitung}
+    Die Ableitung in Richtung des Vektors $\vec{v} = \vektor{v_1, \ldots, v_n}^T$ mit $\norm{\vec{v}} = 1$ heißt \emph{Richtungsableitung} $D_{\vec{v}}(f)$ von $f$ in Richtung von $\vec{v}$.
+    Es ist
+    $$
+        \begin{aligned}
+            \frac{\partial f}{\partial v} := D_{\vec{v}}(f) = & \lim_{h\to 0} \frac{f(\vec{x} + h\vec{v}) - f(\vec{x})}{h}                      \\
+            =                                                 & \lim_{h\to 0} \frac{f(x_1 + hv_1, \ldots, x_n + hv_n) - f(x_1, \ldots, x_n)}{h}
+        \end{aligned}
+    $$
+\end{defi}
+
+\begin{algo}{Richtungsableitung}
+    Sei $\vec{v} \in \R^n$ mit $\norm{\vec{v}} = 1$. Dann ist die Richtungsableitung von $f$ im Punkt $\vec{x_0}$ in Richtung $\vec{v}$ gegeben mit
+    $$
+        \frac{\partial f}{\partial v} = D_{\vec{v}}(f) = \scalarprod{\nabla (f(\vec{x_0})) , \vec{v}}
+    $$
+\end{algo}
+
+\begin{example}{Richtungsableitung}
+    Berechnen Sie die Richtungsableitung der Funktion
+    $$
+        f(x, y) = x^2y - y^3x + 1
+    $$
+    im Punkt $(x_0, y_0) = (1, 2)$
+    in Richtung des Vektors $\vec{w} = \vektor{3 \\ 2}$.
+
+    \exampleseparator
+
+    Die Richtungsableitung von $f$ im Punkt $(x_0, y_0)$ in Richtung $\vec{v}$ ($\norm{\vec{v}} = 1$) ist gegeben mit
+    $$
+        \begin{aligned}
+            D_{\vec{v}}(f) & = \scalarprod{\nabla f(x_0, y_0), \vec{v}}
+        \end{aligned}
+    $$
+
+    Zuerst berechnen wir die partiellen Ableitungen $f_x$ und $f_y$:
+    $$
+        \begin{aligned}
+            f_x = 2xy - y^3   & \implies f_x(x_0, y_0) = f_x(1, 2) = -4  \\
+            f_y = x^2 - 3y^2x & \implies f_y(x_0, y_0) = f_y(1, 2) = -11
+        \end{aligned}
+    $$
+
+    Sei nun $\vec{v} = \frac{\vec{w}}{\norm{\vec{w}}}$:
+    $$
+        \vec{v} = \frac{\vec{w}}{\norm{\vec{w}}} = \frac{1}{\sqrt{13}} \vektor{3  \\ 2}
+    $$
+    Damit können wir nun die Richtungsableitung wie folgt bilden:
+    $$
+        D_{\vec{v}}(f) = \scalarprod{\nabla f(x_0, y_0), \vec{v}} = \scalarprod{\vektor{-4                   \\ -11},  \frac{1}{\sqrt{13}} \vektor{3  \\ 2}}=  -\frac{34}{\sqrt{13}}
+    $$\qed
+\end{example}
+
+\begin{algo}{Extremster Anstieg}
+    Insgesamt gilt, falls wir nur die Richtung (ohne Normierung) betrachten:
+    $$
+        \vec{v} = \frac{\nabla f}{\norm{ \nabla f }} \quad \text{ist die Richtung des steilsten Anstiegs von} \ f
+    $$
+    $$
+        \vec{v} = -\frac{\nabla f}{\norm{ \nabla f }} \quad \text{ist die Richtung des steilsten Abstiegs von} \ f
+    $$
+\end{algo}
+
+
+\subsubsection{Das vollständige Differential}
+
+\begin{defi}{Vollständiges Differential}
+    Unter dem \emph{vollständigen Differential} der Funktion $z = f(x, y)$ im Punkt $(x_0, y_0)$ versteht man den Ausdruck
+    $$
+        \d z = f_x(x_0, y_0) \d x + f_y(x_0, y_0) \d y
+    $$
+\end{defi}
+
+\begin{algo}{Absoluter Fehler}
+    Es gilt für $z = f(x_1, \ldots, x_n)$ der \emph{absolute Fehler}:
+    $$
+        \Delta z_{\max} \leq \sum_{i=1}^n \abs{f_{x_i}} \cdot \abs{\Delta x_i}
+    $$
+\end{algo}
+
+\begin{algo}{Relativer Fehler}
+    Es gilt für $z = f(x, y) = c \cdot x^a \cdot y^b$ anhand der möglichen relativen Eingabefehler $\frac{\Delta x}{x}$ und $\frac{\Delta y}{y}$ der \emph{relative Fehler}:
+    $$
+        \frac{\Delta z}{z} \leq a \cdot \abs{\frac{\Delta x}{x}} + b \cdot \abs{\frac{\Delta y}{y}}
+    $$
+\end{algo}
+
+\begin{example}{Relativer Fehler}
+    Bei der Berechnung einer Fläche $f(x, y) = 5x^2 \cdot y$ werde ein relativer Messfehler von $10\%$ in $x$ und $3\%$ in $y$ gemacht.
+    Wie ist der relative Fehler des Ergebnisses?
+
+    \exampleseparator
+
+    $z := f(x, y) = 5x^2 \cdot y \qquad \left( c \cdot x^a \cdot y^b\right)$
+
+    Es ist der relative Fehler gegeben mit
+    $$
+        \frac{\Delta z}{z} \leq a \cdot \abs{\frac{\Delta x}{x}} + b \cdot \abs{\frac{\Delta y}{y}} = 2 \cdot 10\% + 1\cdot 3\% = 23\%
+    $$\qed
+\end{example}
+
+\begin{defi}{Kurve}
+    Seien $x(t)$ und $y(t)$ in $t$ stetige Funktionen.
+    Die Menge
+    $$
+        \left\{ (x, y) \mid x = x(t), \ y=y(t), \ t\in \R \right\}
+    $$
+    heißt \emph{Kurve}.
+    Die Darstellung $t\to \R^2$
+    $$
+        \vec{x}(t) = \vektor{x(t) \\ y(t)}
+    $$
+    heißt \emph{Parameterdarstellung der Kurve}.
+\end{defi}
+
+\begin{defi}{Kettenregel für Funktionen mit einem Parameter}
+    Sei $z = f(\vec{x}) = f(\vec{x}(t))$ und $\vec{x}(t)$ stetig in jeder Komponente $x_i$. Dann gilt:
+    $$
+        \frac{\d z}{\d t} = \sum_{i=1}^n \frac{\partial z}{\partial x_i} \cdot \frac{\d x_i}{\d t}
+    $$
+\end{defi}
+
+\begin{defi}{Kettenregel für Funktionen mit zwei Parametern}
+    Sei $z = f(\vec{x}) = f(\vec{x}(u,v))$ und $\vec{x}(u,v)$ stetig in jeder Komponente $x_i$. Dann gilt:
+    $$
+        \frac{\partial z}{\partial u} = \sum_{i=1}^n \frac{\partial z}{\partial x_i} \cdot \frac{\partial x_i}{\partial u}
+    $$
+    $$
+        \frac{\partial z}{\partial v} = \sum_{i=1}^n \frac{\partial z}{\partial x_i} \cdot \frac{\partial x_i}{\partial v}
+    $$
+\end{defi}
+
+\begin{defi}{Implizite Differentiation}
+    Seien $F(x, f(x)) = F(x, y)$ und $f(x) = y$ differenzierbar.
+    Gilt $F(x_0, y_0) = 0$, dann wird $y$ \emph{implizit differenziert} mit
+    $$
+        y' = -\frac{F_x(x_0, y_0)}{F_y(x_0, y_0)}
+    $$
+
+    Es gilt:
+    \begin{itemize}
+        \item Die implizite Differentiation kann insbesondere angewendet werden, wenn sich eine Funktion $F(x, y)=0$ nicht oder nicht einfach nach $y$ umstellen lässt.
+        \item Die Funktion muss ggf. auf die Form $F(x, y) = 0$ gebracht werden.
+        \item Es ist immer zu testen, ob der vorgegebene Punkt die Bedingung $F(x_0, y_0) = 0$ erfüllt.
+        \item Die Rechnung kann an einem beliebigen Punkt $(x_0, y_0)$ durchgeführt werden und somit auch eine Ableitungsfunktion berechnen.
+    \end{itemize}
+\end{defi}
+
+\subsubsection{Partielle Ableitungen höherer Ordnung}
+
+\begin{defi}{Satz von Schwarz}
+    Sind die partiellen Ableitungen $k$-ter Ordnung einer Funktion stetige Funktionen, so darf die Reihenfolge der Differentiation beliebig vertauscht werden.
+\end{defi}
+
+\begin{defi}{Divergenz}
+    Wir bezeichnen die \emph{Divergenz} einer Funktion $f$ mit
+    $$
+        \operatorname{div} f := \nabla \cdot f = \vektor{\frac{\partial}{\partial x_1} \\ \vdots \\ \frac{\partial}{\partial x_n}} \vektor{f_1(x_1, \ldots, x_n) \\ \vdots \\ f_n(x_1, \ldots, x_n)} = \sum_{i=1}^n \frac{\partial f_i(x_1, \ldots, x_n)}{\partial x_i}
+    $$
+\end{defi}
+
+\begin{defi}{Rotation}
+    Wir bezeichnen die \emph{Rotation} einer Funktion $f$ mit
+    $$
+        \operatorname{rot} f := \nabla \times f = \vektor{\frac{\partial}{\partial x_1} \\ \vdots \\ \frac{\partial}{\partial x_n}} \times \vektor{f_1(x_1, \ldots, x_n) \\ \vdots \\ f_n(x_1, \ldots, x_n)}
+    $$
+\end{defi}
+
+\begin{bonus}{Quellen und Senken}
+    Die Punkte mit $\operatorname{div} f > 0$ heißen \emph{Quellen} des Vektorfeldes, die mit $\operatorname{div} f < 0$ heißen \emph{Senken}.
+
+    Gilt stets $\operatorname{div} f = 0$, so heißt die Funktion \emph{quellenfrei}.
+
+    Gilt $\operatorname{rot} f = 0$, so heißt die Funktion \emph{wirbelfrei}.
+\end{bonus}
+
+\begin{defi}{Jacobi-Matrix}
+    Die Matrix
+    $$
+        J = \vektor{\frac{\partial f_1}{\partial x_1} & \ldots & \frac{\partial f_1}{\partial x_n} \\ \vdots & \ddots & \vdots \\ \frac{\partial f_n}{\partial x_1} & \ldots & \frac{\partial f_n}{\partial x_n}}
+    $$
+    heißt \emph{Jacobi-Matrix} von $f$.
+\end{defi}
+
+\subsubsection{Taylorentwicklung für $f(x, y)$}
+
+\begin{defi}{Quadratische Approximation}
+    Für $f(x, y)$ ist die \emph{quadratische Approximation} gegeben mit
+    $$
+        \begin{aligned}
+            f(x, y) \quad = \quad & f(x_0, y_0) + f_x(x_0, y_0) (x-x_0) + f_y(x_0, y_0) (y-y_0)                                                    \\
+            + \quad               & \frac{f_{xx}(x_0, y_0) (x-x_0)^2}{2} + f_{xy}(x_0, y_0) (x-x_0) (y-y_0) + \frac{f_{yy}(x_0, y_0) (y-y_0)^2}{2}
+        \end{aligned}
+    $$
+\end{defi}
+
+\subsubsection{Extremwerte ohne Nebenbedingungen}
+
+\begin{algo}{Lokale Extrema ohne Nebenbedingungen im $\R^2$}
+    \begin{enumerate}
+        \item Berechne $f_x(x,y)$ und $f_y(x, y)$ und suche diejenigen Stellen $(x_0, y_0)$ mit
+              $$
+                  f_x(x_0, y_0) = f_y(x_0, y_0) = 0
+              $$
+              Diese Stellen sind die \emph{Kandidaten} für lokale Extrema.
+        \item Berechne für jeden Kandidaten $(x_0, y_0)$ die Werte $f_{xx}(x_0, y_0)$, $f_{xy}(x_0, y_0)$ und $f_{yy}(x_0, y_0)$ und daraus den Wert
+              $$
+                  d := f_{xx}(x_0, y_0) \cdot f_{yy}(x_0, y_0) - \left(f_{xy}(x_0, y_0)\right)^2
+              $$
+        \item Dann gilt:
+              \subitem $f_{xx}(x_0, y_0) > 0 \ \land \ d > 0 \implies$ \emph{lokales Minimum}
+              \subitem $f_{xx}(x_0, y_0) < 0 \ \land \ d > 0 \implies$ \emph{lokales Maximum}
+              \subitem $d < 0 \implies$ \emph{Sattelpunkt}
+              \subitem $d = 0 \implies$ höhere Ableitung entscheidet
+    \end{enumerate}
+\end{algo}
+
+\begin{defi}{Hesse-Matrix im $\R^2$}
+    Die \emph{Hesse-Matrix} im $\R^2$ ist definiert mit
+    $$
+        H = \vektor{f_{xx}(x_0, y_0) & f_{xy}(x_0, y_0) \\ f_{xy}(x_0, y_0) & f_{yy}(x_0, y_0)}
+    $$
+
+    Ist $H$ \emph{positiv definit}, so liegt ein Minimum vor, ist $H$ \emph{negativ definit} ein Maximum und bei \emph{indefinitem} $H$ ein Sattelpunkt.
+
+    Es gilt:
+    \begin{itemize}
+        \item $H$ ist positiv definit $\iff f_{xx}(x_0, y_0) > 0 \ \land \det H > 0$
+        \item $H$ ist negativ definit $\iff f_{xx}(x_0, y_0) < 0 \ \land \det H > 0$
+        \item $H$ indefinit $\iff \det H < 0$
+    \end{itemize}
+\end{defi}
+
+\begin{defi}{Hesse-Matrix im $\R^n$}
+    Die \emph{Hesse-Matrix} im $\R^n$ ist definiert mit
+    $$
+        H = \vektor{\frac{\partial^2 f}{\partial x_1^2} & \ldots & \frac{\partial^2 f}{\partial x_1 \partial x_n} \\ \vdots & \ddots & \vdots \\ \frac{\partial^2 f}{\partial x_n \partial x_1} & \ldots & \frac{\partial^2 f}{\partial x_n^2}}
+    $$
+
+    Ist $H$ \emph{positiv definit}, so liegt ein Minimum vor, ist $H$ \emph{negativ definit} ein Maximum und bei \emph{indefinitem} $H$ ein Sattelpunkt.
+
+    Es gilt:
+    \begin{itemize}
+        \item $H$ ist positiv definit $\iff$ alle \emph{Unterdeterminanten} (links oben beginnend) sind positiv
+        \item $H$ ist negativ definit $\iff$ alle \emph{Unterdeterminanten} (links oben beginnend) haben wechselndes Vorzeichen (beginnend mit negativem Vorzeichen)
+        \item $H$ indefinit $\iff$ sonst
+    \end{itemize}
+\end{defi}
+
+\begin{example}{Lokale Extrema ohne Nebenbedingungen}
+    Untersuchen Sie die Funktion
+    $$
+        v(x, y, z) = xy - z^4 -2(x^2 + y^2 -z^2)
+    $$ auf lokale Extrema und Sattelpunkte.
+
+    \exampleseparator
+
+    $v(x, y, z) = xy - z^4 -2(x^2 + y^2 -z^2) = xy - z^4 -2x^2 -2y^2 + 2z^2$
+
+    Wir berechnen zuerst die potentiellen Kandidaten.
+    Für diese muss gelten
+    $$
+        \nabla v(x, y, z) = \vektor{v_x(x, y, z)      \\ v_y(x, y, z)\\ v_z(x, y, z)} = \vec{0}
+    $$
+    $$
+        \iff \vektor{ y -4x \\ x -4y \\ -4z^3 +4z} = \vektor{0 \\ 0 \\ 0} \iff \vektor{y \\ x \\ -z(z^2 +1)} = \vektor{4x \\ 4y \\ 0}
+    $$
+    Wir haben offensichtlich drei Gleichungen gegeben.
+
+    Wir erkennen aus \Rnum{3} direkt, dass $z \in \{-1, 0, 1\}$ gelten muss und aus \Rnum{2} und \Rnum{1}, dass $x = y = 0$.
+
+    Damit erhalten wir die drei Kandidatentupel:
+    \begin{itemize}
+        \item $(x_1, y_1, z_1) = (0, 0, -1)$,
+        \item $(x_2, y_2, z_2) = (0, 0, 0)$,
+        \item $(x_3, y_3, z_3) = (0, 0, 1)$.
+    \end{itemize}
+
+    Wir bilden nun die Hesse-Matrix:
+    $$
+        \begin{aligned}
+            f_{xx} = -4 \qquad         & f_{xy} = 1          &  & f_{xz} = 0         \\
+            f_{yx} = f_{xy} = 1 \qquad & f_{yy} = -4         &  & f_{yz} = 0         \\
+            f_{zx} = f_{xz} = 0 \qquad & f_{zy} = f_{yz} = 0 &  & f_{zz} = 12z^2 + 4
+        \end{aligned}
+    $$
+
+    $$
+        H = \vektor{f_{xx} & f_{xy} & f_{xz} \\ f_{yx} & f_{yy} & f_{yz} \\ f_{zx} & f_{zy} & f_{zz}} = \vektor{-4 & 1 & 0 \\ 1 & -4 & 0 \\ 0 & 0 & -12z^2 + 4}
+    $$
+
+    Es gilt für die Unterdeterminanten:
+    $$
+        \begin{aligned}
+            \det H_1 & = -4                                                                 \\
+            \det H_2 & = 15                                                                 \\
+            \det H   & = (-12z^2 + 4) \cdot \det H_2 = (-12z^2 + 4) \cdot 15 = -180z^2 + 60
+        \end{aligned}
+    $$
+
+    Es gilt weiterhin
+    $$
+        \det H \leq 0 \iff -180z^2 + 60 \leq 0 \iff z^2 \leq \frac{1}{3}
+    $$
+
+    Damit ist die Hesse-Matrix für alle $\abs{z} \leq \frac{1}{9}$ indefinit und sonst negativ definit.
+
+    Damit sind die Kandidatentupel $(x_1, y_1, z_1) = (0, 0, -1)$ und $(x_3, y_3, z_3) = (0, 0, 1)$ Maxima und $(x_2, y_2, z_2) = (0, 0, 0)$ ein Sattelpunkt. \qed
+\end{example}
+
+\subsubsection{Extremwerte mit Nebenbedingungen}
+
+\begin{defi}{Lagrange-Funktion}
+    Gegeben seien eine Funktion $f(x, y)$ und eine Nebenbedingung $g(x, y) = 0$.
+    Dann ist  die \emph{Lagrange-Funktion} gegeben mit
+    $$
+        L(x, y, \lambda) = f(x, y) + \lambda g(x, y)
+    $$
+
+    Es gilt damit:
+    $$
+        L_\lambda = g(x, y) \quad \land \quad g(x, y) = 0 \implies L(x,y,\lambda) = f(x, y)
+    $$
+\end{defi}
+
+\begin{algo}{Lokale Extrema mit Nebenbedingung im $\R^2$}
+    \begin{enumerate}
+        \item Berechne die Kandidaten wie in freien Optimierungen mit
+              $$
+                  \nabla (L) = \vec{0}
+              $$
+        \item Aufstellen der geränderten Hesse-Matrix für die drei Unbekannten mit
+              $$
+                  H = \vektor{L_{xx} & L_{xy} & g_x \\ L_{xy} & L_{yy} & g_y \\ g_x & g_y & 0}
+              $$
+        \item Dann gilt:
+              \subitem $\det H > 0 \implies$ \emph{Maximum}
+              \subitem $\det H < 0 \implies$ \emph{Minimum}
+              \subitem $\det H = 0 \implies$ keine Entscheidung möglich
+    \end{enumerate}
+\end{algo}
+
+\subsubsection{Parametrische Funktionen und Kurvenintegrale}
+
+\begin{defi}{Tangentenvektor}
+    Der \emph{Tangentenvektor} einer Kurve $\vec{x}(t)$ ist gegeben mit
+    $$
+        \vec{x'}(t) = \vektor{x_1'(t) \\ \vdots \\ x_n'(t)}
+    $$
+\end{defi}
+
+\begin{defi}{Tangente}
+    Die \emph{Tangente} einer Kurve $\vec{x}(t)$ ist gegeben mit
+    $$
+        T(t) = \vec{x}(t) + \lambda\vec{x'}(t)
+    $$
+\end{defi}
+
+\begin{defi}{Arbeitsintegral}
+    Seien die Kraft $F(\vec{x}(t))$ und ein Zeitintervall $t \in \interval{a,b}$, oder analog Start- und Endpunkte $\vec{A} = \vec{x}a)$ bzw. $\vec{B} = \vec{x}(b)$, gegeben.
+
+    Dann ist die \emph{Arbeit} gegeben mit
+    $$
+        W = \int^b_a F(\vec{x}(t)) \cdot \vec{x'}(t) \d t
+    $$
+\end{defi}
+
+\begin{example}{Arbeitsintegral}
+    Gegeben sei die Kurve $\vec{X}(t) = \vektor{t \\ t^2 \\ t^3}$.
+    Berechnen Sie die Arbeit im Vektorfeld
+    $$
+        \vec{F}(x, y, z) = \vektor{x+yz \\ y + xz \\ z + xy}
+    $$
+    entlang der Kurve.
+
+    \exampleseparator
+
+    Die Arbeit von Zeitpunkt $t=a$ bis Zeitpunkt $t=b$ ist gegeben mit
+    $$
+        W = \int^b_a \vec{F} (\vec{X}(t)) \cdot \vec{X}'(t) \dt
+    $$
+    Wir berechnen:
+    $$
+        \begin{aligned}
+            W =\quad & \int^b_a \vec{F} (\vec{X}(t)) \cdot \vec{X}'(t) \dt                                                                    \\
+            =\quad   & \int^b_a \vektor{t + t^5                                                                                               \\ t^2 + t^4 \\ 2t^3} \cdot \vektor{1 \\ 2t \\ 3t^2} \dt \\
+            =\quad   & \int^b_a \left( t + t^5 + 2t(t^4 + t^2) + 3t^2 \cdot 2t^3\right)  \dt                                                  \\
+            =\quad   & \int^b_a \left(9t^5 + 2t^3 + t\right) \dt                                                                              \\
+            =\quad   & \left[ \frac{3t^6}{2} + \frac{t^4}{2} + \frac{t^2}{2} \right]^b_a     = \frac{3(b^6 - a^6) + b^4 + b^2 - a^4 - a^2}{2}
+        \end{aligned}
+    $$\qed
+\end{example}
+
+\begin{defi}{Potentialfunktion}
+    Sei $f : \R^n \to \R^n$ stetig differenzierbar.
+    $f$ heißt \emph{Gradientenfeld}, wenn es eine skalare Funktion $V$ gibt, mit
+    $$
+        \nabla (V) = f
+    $$
+
+    Die Funktion $V$ heißt dann \emph{Potentialfunktion} von $f$ mit
+    $$
+        V = \int f
+    $$
+
+    Es gilt:
+    \begin{itemize}
+        \item Im $\R^2$:
+              $$
+                  \frac{\partial f_1}{\partial y} = \frac{\partial f_2}{\partial x}
+              $$
+        \item Im $\R^3$:
+              $$
+                  \operatorname{rot} f = 0
+              $$
+        \item Im $\R^n$ für die Jacobimatrix $J$
+              $$
+                  J = J^T
+              $$
+    \end{itemize}
+\end{defi}
+
+\section{Mehrdimensionale Integration}
+
+\subsection{Doppelintegrale}
+
+\begin{defi}{Integral im $\R^2$}
+    Bezeichnet $A$ das Rechteck $\interval{x_0, x_1} \times \interval{y_0, y_1}$, so ist das \emph{Integral} von $f$ über das Gebiet $A$ gegeben mit
+    $$
+        \int^{x_1}_{x_0}\int^{y_1}_{y_0} f(x, y) \d y\d x = \int_A f \d A = \int\int_A f \d A
+    $$
+\end{defi}
+
+\begin{algo}{Integration über kartesische krummlinige Bereiche}
+    Seien eine \emph{obere} und eine \emph{untere Funktion} $f_u(x)$ und $f_v(x)$ gegeben und in der zweiten Dimension das Intervall $\interval{a,b}$, dann gilt für das Integral im entsprechenden Integrationsbereich
+    $$
+        \int_{x = a}^{b}\int_{y = f_u(x)}^{f_o(x)} f(x, y) \d y\d x
+    $$
+\end{algo}
+
+\begin{algo}{Flächeninhalt einer Grundfläche eines kartesischen krummlinigen Bereiches}
+    Der Flächeninhalt $F$ einer Grundfläche $A$ ergibt sich durch Integration mit $f(x, y) = 1$, also
+    $$
+        F = \int_A 1 \d A
+    $$
+\end{algo}
+
+\begin{example}{Integration über kartesische krummlinige Bereiche}
+    Berechnen Sie das Volumen der Funktion $f(x, y) = x+y$ über die Fläche
+    $$
+        A = \{(x, y) \in \R^2 \mid 1 \leq x^2 + 4y^2, x^2 + y^2 \leq 1, x \geq 0, y\geq 0\}
+    $$
+    Skizzieren Sie zunächst die Fläche.
+
+    \exampleseparator
+
+    \begin{center}
+        \begin{tikzpicture}[scale=1]
+            \begin{axis}[
+                    width=15cm,
+                    xmin=-1.5,xmax=1.5,
+                    xtick distance=1,
+                    xlabel = $x$,
+                    ymin=-1.5,ymax=1.5,
+                    ytick distance=1,
+                    ylabel = $y$,
+                    axis equal,
+                    grid=both,
+                    axis lines = middle,
+                    disabledatascaling
+                ]
+                %\draw [name path=A] (axis cs:0,-2) arc[start angle=-90, end angle=90, radius={transformdirectionx(2)}];
+                %\draw [name path=B] (axis cs:0,-3) arc[start angle=-90, end angle=90, radius={transformdirectionx(3)}];
+
+                \draw [name path=A1] (axis cs:1,0) arc[start angle=0, end angle=180, radius={transformdirectionx(1)}];
+                \draw [name path=A2] (axis cs:-1,0) arc[start angle=180, end angle=360, radius={transformdirectionx(1)}];
+                %\draw [name path=B] (axis cs:0,0) circle [x radius=1, y radius=1/4];
+
+                \draw [name path=B1] (axis cs:1,0) arc(0:180:1 and 1/2);
+                \draw [name path=B2] (axis cs:-1,0) arc(180:360:1 and 1/2);
+
+                \tikzfillbetween[of=A1 and B1, soft clip={domain=0:1}]{red, opacity=0.75};
+                %\tikzfillbetween[of=A2 and B2]{red, opacity=0.5};
+            \end{axis}
+        \end{tikzpicture}
+    \end{center}
+
+    Wir sehen, dass die Ellipsengleichung die untere und die Kreisgleichung die obere Schranke bilden.
+    Damit formen wir unser Integrationsgebiet wie folgt um:
+    $$
+        A = \left\{(x, y) \in \R^2 \mid 0 \leq x \leq 1, \frac{\sqrt{1-x^2}}{2} \leq y \leq \sqrt{1-x^2} \right\}
+    $$
+\end{example}
+
+\begin{example}{Integration über kartesische krummlinige Bereiche (Fortsetzung)}
+    Dann können wir wie folgt die Fläche berechnen:
+    $$
+        \begin{aligned}
+            \int\int_A (x+y) \d x \d y & = \int^1_0\int^{\sqrt{1-x^2}}_{\frac{\sqrt{1-x^2}}{2}} (x+y) \d y \d x                                                                                                       \\
+                                       & = \int^1_0 \left[xy + \frac{y^2}{2}\right]^{\sqrt{1-x^2}}_{\frac{\sqrt{1-x^2}}{2}}  \d x                                                                                     \\
+                                       & = \int^1_0 \left(x\sqrt{1-x^2} + \frac{1-x^2}{2} - \left( \frac{x\sqrt{1-x^2}}{2} - \frac{1-x^2}{8}\right)\right)  \d x                                                      \\
+                                       & = \int^1_0 \left(\frac{x\sqrt{1-x^2}}{2} + \frac{3(1-x^2)}{8}\right)  \d x                                                                                                   \\
+                                       & = \frac{1}{2}\int^1_0 x\sqrt{1-x^2} \d x + \frac{3}{8} \int^1_0 (1-x^2) \d x                                                                                                 \\
+                                       & \overset{\footnote{$u = 1-x^2 \implies \frac{\d u}{\d x} = -2x \iff \d x = -\frac{\d u}{2x}$}}{=} -\frac{1}{4}\int^1_{x=0} \sqrt{u} \d u + \frac{3}{8} \int^1_0 (1-x^2) \d x \\
+                                       & = -\frac{1}{4} \left[ \frac{2\sqrt{1-x^2}}{3} \right]^1_{0} + \frac{3}{8} \int^1_0 (1-x^2) \d x                                                                              \\
+                                       & = \frac{1}{6} + \frac{3}{8} \int^1_0 (1-x^2) \d x                                                                                                                            \\
+                                       & = \frac{1}{6} + \frac{3}{8} \left[ x-\frac{x^3}{3} \right]^1_0                                                                                                               \\
+                                       & = \frac{1}{6} + \frac{3}{8} \left( 1-\frac{1}{3} \right)                                                                                                                     \\
+                                       & = \frac{5}{12}                                                                                                                                                               \\
+        \end{aligned}
+    $$\qed
+\end{example}
+
+\begin{algo}{Schwerpunkt einer Grundfläche eines homogenen Gebietes}
+    Der Schwerpunkt mit den Schwerpunktskoordinaten $(x_s, y_s)$ einer Fläche mit homogener Dichte ergibt sich mit der Flächenmaßzahl $F$ aus
+    $$
+        x_s = \frac{1}{F}\int_A x \d A \quad \land \quad y_s = \frac{1}{F}\int_A y \d A
+    $$
+\end{algo}
+
+\begin{algo}{Masse einer Grundfläche eines inhomogenen Gebietes}
+    Wird die spezifische Dichte eines Stoffes in der Koordinate $(x, y)$ gegeben durch $\rho(x, y)$, so lässt sich die Masse einer Fläche $A$ berechnen mit
+    $$
+        M = \int_A  \rho(x, y) \d A
+    $$
+\end{algo}
+
+\begin{algo}{Integration in Polarkoordinaten}
+    Bei der Umwandlung der kartesischen Koordinaten $(x, y)$ in \emph{Polarkoordinaten} umwandeln, gilt
+    $$
+        f(x, y) = f(r\cos\phi, r\sin\phi)\quad \land \quad \d y \d x = r \d r \d \phi
+    $$
+
+    Und dann insgesamt für die Integration:
+    $$
+        \int_A f(x, y) \d y \d x = \int_A f(r \cos\phi, r\sin\phi)r\d r\d\phi
+    $$
+\end{algo}
+
+\begin{algo}{Uneigentliche Integrale mithilfe von Polarkoordinaten}
+    Der Übergang zu Polarkoordinaten kann bei der Berechnung von uneigentlichen zweidimensionalen Integralen behilflich sein.
+    Dabei gilt:
+    $$
+        \int_{x=-\infty}^\infty\int_{y=-\infty}^\infty f(x, y) \d y \d x = \int_{\phi = 0}^{2\pi} \int_{r = 0}^\infty f(r\cos\phi, r\sin\phi)r\d r\d\phi
+    $$
+\end{algo}
+
+\begin{example}{Uneigentliche Integrale mithilfe von Polarkoordinaten}
+    Berechnen Sie das folgende Integral
+    $$
+        \int_A x\cdot y \d A
+    $$
+    über dem Integrationsgebiet $A$ gegeben durch die Ungleichungen
+    $$
+        -2 \leq y \leq 2, \quad x \geq 0, \quad x^2 + y^2 \leq 4
+    $$
+    \begin{enumerate}[a)]
+        \item in kartesischen Koordinaten,
+        \item in Polarkoordinaten.
+    \end{enumerate}
+
+    \exampleseparator
+
+    \begin{enumerate}[a)]
+        \item
+              Es gilt:
+              $$
+                  \begin{aligned}
+                      \int_A x\cdot y \d A & = \int_{-2}^2 \int^{\sqrt{4-y^2}}_0 x\cdot y \d x \d y             \\
+                                           & = \int_{-2}^2 y \left[ \frac{x^2}{2} \right]^{\sqrt{4-y^2}}_0 \d y \\
+                                           & = \int_{-2}^2 \frac{y(4-y^2)}{2} \d y                              \\
+                                           & = \frac{1}{2}\int_{-2}^2 (4y-y^3) \d y                             \\
+                                           & = \frac{1}{2}\int_{-2}^2 (4y-y^3) \d y                             \\
+                                           & = \frac{1}{2}\left[2y^2-\frac{y^4}{4}\right]_{0}^2                 \\
+                                           & = 0
+                  \end{aligned}
+              $$\qed
+    \end{enumerate}
+\end{example}
+
+
+\begin{example}{Uneigentliche Integrale mithilfe von Polarkoordinaten (Fortsetzung)}
+    \begin{enumerate}[a)]
+        \setcounter{enumi}{1}
+        \item
+              Es gilt:
+              $$
+                  \begin{aligned}
+                      \int_A x\cdot y \d A & = \int^\frac{\pi}{2}_{-\frac{\pi}{2}} \int^2_0 r^3\cos\phi\sin\phi \d r \d \phi                                                                                             \\
+                                           & = \int^\frac{\pi}{2}_{-\frac{\pi}{2}} \cos\phi\sin\phi \int^2_0 r^3 \d r \d \phi                                                                                            \\
+                                           & = \int^\frac{\pi}{2}_{-\frac{\pi}{2}} \cos\phi\sin\phi \left[\frac{r^4}{4}\right]^2_0 \d \phi                                                                               \\
+                                           & = 4\int^\frac{\pi}{2}_{-\frac{\pi}{2}} \cos\phi\sin\phi \d \phi                                                                                                             \\
+                                           & \overset{\footnote{$u = \cos\phi \implies \frac{\d u}{\d \phi} = -\sin\phi \iff \d \phi = -\frac{\d u}{\sin \phi}$}}{=} -4\int^\frac{\pi}{2}_{\phi = -\frac{\pi}{2}} u \d u \\
+                                           & = -4 \left[ \frac{\cos^2\phi}{2} \right]^\frac{\pi}{2}_{-\frac{\pi}{2}}                                                                                                     \\
+                                           & = 0
+                  \end{aligned}
+              $$\qed
+    \end{enumerate}
+\end{example}
+\subsection{Dreifachintegrale}
+
+\begin{defi}{Dreifachintegral}
+    Bezeichnet $V$ den Quader $\interval{x_0, x_1} \times \interval{y_0, y_1} \times \interval{z_0, z_1}$, so ist das \emph{Dreifachintegral} von $f$ über das Gebiet $V$ gegeben mit
+    $$
+        \int^{x_1}_{x_0}\int^{y_1}_{y_0}\int^{z_1}_{z_0} f(x, y, z) \d z\d y\d x = \int_A f \d A = \int\int\int_A f \d A
+    $$
+\end{defi}
+
+\begin{bonus}{Volumenberechnung im $\R^3$}
+    Die Berechnung eines Volumen $V$ über den Bereich $V'$ im $\R^3$ geschieht völlig analog zum $\R^2$:
+    $$
+        V = \int_{V'} 1 \d V'
+    $$
+\end{bonus}
+
+\begin{bonus}{Schwerpunktberechnung im $\R^3$}
+    Die Berechnung des Schwerpunktes $(x_s, y_s, z_s)$ mit Volumen $V$ über den Bereich $V'$ im $\R^3$ geschieht völlig analog zum $\R^2$:
+    $$
+        x_s = \frac{1}{V}\int_{V'} x \d V' \quad \land \quad y_s = \frac{1}{V}\int_{V'} y \d V' \quad \land \quad z_s = \frac{1}{V}\int_{V'} z \d V'
+    $$
+\end{bonus}
+
+\begin{bonus}{Rechnen mit Kugelkoordinaten}
+    Der Übergang zu Kugelkoordinaten kann bei der Berechnung von dreidimensionalen Integralen behilflich sein.
+    Dabei gilt:
+    $$
+        \int\int\int f(x,y,z) \d z\d y\d x = \int\int\int f(r\cos\phi\sin\theta, r\sin\phi\sin\theta, r\cos\theta) \abs{r^2\sin\theta} \d\theta\d\phi\d r
+    $$
+\end{bonus}
+
+\section{(*) Wachstums- und Zerfallsprozesse}
+
+\subsection{Ungebremstes Wachstum}
+
+\begin{defi}{Diskretes ungebremstes Wachstum}
+    Gegeben sei ein Wachstum $k$ innerhalb einer (beliebigen) Zeiteinheit $\Delta t_0$, eine Startpopulation $y_0$ und eine Änderungsrate
+    $$
+        \Delta y = k\cdot y
+    $$
+    dann ist die Lösungsfunktion
+    $$
+        \boxed{y_n = y_0\cdot (1+k)^n}
+    $$
+    wobei $y_n = y(n\cdot \Delta t_0)$ den Zustand nach $n$ Zeitschritten der Länge $\Delta t_0$ angibt.
+\end{defi}
+
+\begin{bonus}{Diskretes ungebremstes Wachstum für Zeitteile}s
+    Gegeben sei ein Wachstum $k$ innerhalb einer (beliebigen) Zeiteinheit $\Delta t_0 = 1$, eine Startpopulation $y_0$ und eine Änderungsrate
+    $$
+        \Delta y = k_{\Delta t_0}\cdot y
+    $$
+
+    Betrachten wir nun einen \emph{Zeitteil} $\Delta t$, dann ist das modifizierte Modell
+    $$
+        \Delta y = y_n - y_{n-1} = k_{\Delta t}\cdot  y_{n-1}\cdot  \Delta t
+    $$
+    mit der Lösung
+    $$
+        \boxed{y_n = y_0\cdot (1 + k_{\Delta t} \cdot \Delta t)^n}
+    $$
+    wobei $y_n = y(n\cdot \Delta t)$ den Zustand nach $n$ Zeitschritten der Länge $\Delta t$ angibt.
+
+    Die Lösung dieses Modells wird auch als \emph{diskrete Evolutionsgleichung des ungebremsten Wachstums} bezeichnet.
+\end{bonus}
+
+\begin{defi}{Kontinuierliches Modell der Evolutionsgleichung}
+    Zur Lösung der Modellgleichung
+    $$
+        \lim_{\Delta t \to 0} \frac{\Delta y}{\Delta t} = k\cdot y
+    $$
+    mit $y(0) = y_0$ und $k$ (kontinuierliches) Wachstum, so ist die \emph{kontinuierliche} Lösungsfunktion
+    $$
+        \boxed{y(t) = y_o \cdot e^{kt}}
+    $$
+    und wegen $\Delta t \to 0$ ist dies gleichbedeutend zu
+    $$
+        y'(t) = k \cdot y(t) \ \text{mit} \ y(0) = 0
+    $$
+
+    Ein solches Problem heißt \emph{Differentialgleichung mit Anfangswert} oder \emph{Anfangswertproblem}.
+\end{defi}
+
+\subsection{Gebremstes Wachstum - Störung erster Ordnung}
+
+\begin{defi}{Diskretes Modell des Wachstums mit Störung erster Ordnung}
+    Gegeben sei ein Wachstum $k$ innerhalb einer (beliebigen) Zeiteinheit $\Delta t_0$, eine Startpopulation $y(0) = y_0$, $\Delta t$ ein Zeitteil, $a$ die \emph{Abnahme pro Zeiteinheit} und eine Änderungsrate
+    $$
+        \Delta y = (k\cdot y - a) \cdot \Delta t
+    $$
+    dann ist die Lösungsfunktion
+    $$
+        \boxed{y_n = \left( y(0) - \frac{a}{k} \right) \cdot \left( 1 + k \cdot \Delta t \right)^n + \frac{a}{k}}
+    $$
+\end{defi}
+
+\begin{defi}{Kontinuierliches Modell des Wachstums mit Störung erster Ordnung}
+    Zur Lösung der Modellgleichung
+    $$
+        \lim_{\Delta t \to 0} \frac{\Delta y}{\Delta t} = k\cdot y - a
+    $$
+    mit $y(0) = y_0$, $k$ (kontinuierliches) Wachstum und $a$ \emph{kontinuierliche Abnahme} pro Zeiteinheit, ist die \emph{kontinuierliche} Lösungsfunktion
+    $$
+        \boxed{y(t) = \left( y(0) - \frac{a}{k} \right) \cdot e^{kt} + \frac{a}{k}}
+    $$
+    und wegen $\Delta t \to 0$ ist dies gleichbedeutend zu
+    $$
+        y'(t) = k \cdot y(t) - a
+    $$
+\end{defi}
+
+\begin{defi}{Stationäre Lösung}
+    Die konstanten Werte, ermittelt durch $\Delta y = 0$, heißen \emph{stationäre Lösungen} $y_s$.
+
+    Für Wachstumsmodelle mit Störung erster Ordnung gilt:
+    $$
+        y_s = \frac{a}{k}
+    $$
+\end{defi}
+
+\subsection{Logistisches Wachstum - Störung zweiter Ordnung}
+
+\begin{defi}{Diskretes Modell des Wachstums mit Störung zweiter Ordnung}
+    Gegeben sei ein Wachstum $k$ innerhalb einer (beliebigen) Zeiteinheit $\Delta t_0$, eine Startpopulation $y(0) = y_0$, $\Delta t$ ein Zeitteil, $R$ \emph{Oberschranke der verfügbaren Ressourcen} und eine Änderungsrate
+    $$
+        \Delta y = (k\cdot y \cdot (R-y)) \cdot \Delta t
+    $$
+    dann ist die Lösungsfunktion
+    $$
+        \boxed{y_n = \frac{R}{\frac{R-y_0}{y_0} \cdot (1 + R \cdot k \cdot \Delta t)^{-n} + 1}}
+    $$
+\end{defi}
+
+\begin{defi}{Kontinuierliches Modell des Wachstums mit Störung zweiter Ordnung}
+    Zur Lösung der Modellgleichung
+    $$
+        \lim_{\Delta t \to 0} \frac{\Delta y}{\Delta t} = k\cdot y \cdot (R-y)
+    $$
+    mit $y(0) = y_0$, $k$ (kontinuierliches) Wachstum und $R$ \emph{Oberschranke der verfügbaren Ressourcen}, ist die \emph{kontinuierliche} Lösungsfunktion
+    $$
+        \boxed{y(t) = \frac{R}{\frac{R-y_0}{y_0} \cdot e^{-Rkt} + 1}}
+    $$
+    und wegen $\Delta t \to 0$ ist dies gleichbedeutend zu
+    $$
+        y'(t) = k \cdot y(t) \cdot (R-y(t))
+    $$
+\end{defi}
+
+\section{Gewöhnliche Differentialgleichungen}
+
+\begin{defi}{Gewöhnliche Differentialgleichung $n$-ter Ordnung}
+    Eine Gleichung der Form
+    $$
+        y^{(n)} = f(x, y, y', y'', \ldots, y^{(n-1)})
+    $$
+    heißt \emph{(explizite) gewöhnliche Differentialgleichung n-ter Ordnung}.
+
+    Ist die Gleichung in der Form
+    $$
+        f(x, y, y', y'', \ldots, y^{(n)}) = 0
+    $$
+    gegeben, so heißt die Differentialgleichung \emph{implizit}.
+
+    Erfüllt $y(x)$ die Differentialgleichung, so heißt $y$ \emph{allgemeine Lösung der Differentialgleichung}.
+\end{defi}
+
+\begin{defi}{Anfangswertproblem}
+    Die Vorgabe einer expliziten Differentialgleichung und der Werte
+    $$
+        x_0, \quad y(x_0) = y_0, \quad y'(x_0) = y_1, \quad \ldots, \quad y^{(n-1)}(x_0) = y_{n-1}
+    $$
+    heißt \emph{Anfangswertproblem}.
+
+    Erfüllt $y(x)$ das Anfangswertproblem, so heißt $y$ \emph{spezielle Lösung des Anfangswertproblems}.
+\end{defi}
+
+\subsection{Lösungsverfahren für Differentialgleichungen erster Ordnung}
+
+\begin{algo}{Trennung der Variablen}
+    Gegeben: Differentialgleichung der Form
+    $$
+        \boxed{y' = f(x) \cdot g(y)} \quad \iff \quad \frac{\d y}{\d x} = f(x) \cdot g(y)
+    $$
+    \begin{enumerate}
+        \item $x$ und $y$ wie folgt trennen:
+              $$
+                  \frac{1}{g(y)} \d y = f(x) \d x
+              $$
+        \item Integration liefert:
+              $$
+                  \int \frac{1}{g(y)} \d y = \int f(x) \d x
+              $$
+        \item Umstellen nach $y$ liefert die Lösung der Differentialgleichung
+    \end{enumerate}
+\end{algo}
+
+\begin{example}{Trennung der Variablen}
+    Berechnen Sie die allgemeine Lösung der Differentialgleichung
+    $$
+        y' + (1+x)\cdot y = 0\quad \iff \quad y' = -y\cdot (1+x)
+    $$
+    \exampleseparator
+
+    $$
+        \begin{aligned}
+                       & \frac{\d y}{\d x}      &  & = -y \cdot (1+x)                        \\
+            \iff \quad & -\frac{1}{y} \d y      &  & = (1+x) \d x                            \\
+            \iff \quad & \int -\frac{1}{y} \d y &  & = \int (1+x) \d                         \\
+            \iff \quad & - \ln\abs{y} - c_2     &  & = x + \frac{x^2}{2} + c_1               \\
+            \iff \quad & y                      &  & = e^{-(c_1 + c_2)}e^{-\frac{x}{2}(x+2)} \\
+            \iff \quad & y                      &  & = ce^{-\frac{x}{2}(x+2)}                \\
+        \end{aligned}
+    $$\qed
+\end{example}
+
+\begin{algo}{Substitution}
+    \begin{itemize}
+        \item Differentialgleichung vom Typ
+              $$
+                  \boxed{y' = f(ax + by + c)}
+              $$
+              \begin{enumerate}
+                  \item Substituiere $z = ax + by + c$
+                  \item Es ergibt sich
+                        $$
+                            y = \frac{z -ax - c}{b} \quad \implies \quad y' = \frac{z' - a}{b}
+                        $$
+                        bzw.
+                        $$
+                            z' = a + bf(z)
+                        $$
+                  \item Lösen mithile von \emph{Trennung der Variablen} (\emph{Tipp:} Dividieren durch rechte Seite)
+                  \item Rücksubstitution in $y = \frac{z -ax - c}{b}$ ergibt die Lösung
+              \end{enumerate}
+        \item Differentialgleichung vom Typ
+              $$
+                  \boxed{y' = f\left(\frac{y}{x}\right)}
+              $$
+              \begin{enumerate}
+                  \item Substituiere $z = \frac{y}{x}$
+                  \item Es ergibt sich (Produktregel!)
+                        $$
+                            y = z \cdot x \quad \implies \quad y' = z + z' \cdot x
+                        $$
+                        bzw.
+                        $$
+                            z' = \frac{f(z) - z}{x} \quad \iff \quad z + z' \cdot x = f(z)
+                        $$
+                  \item Lösen mithile von \emph{Trennung der Variablen}
+                  \item Rücksubstitution in $y = z \cdot x$ ergibt die allgemeine Lösung
+              \end{enumerate}
+    \end{itemize}
+\end{algo}
+
+\begin{example}{Substitution}
+    Lösen Sie die folgende Differentialgleichung mit Hilfe einer geeigneten Substitution ($x \neq 0$):
+    $$
+        y' = \frac{1}{\sin\left(\frac{y}{x}\right)} + \frac{y}{x}
+    $$
+    \exampleseparator
+
+    Sei $u = \frac{y}{x}$ ($\implies u' = \frac{xy' - y}{x^2} \iff y' = u + xu'$). Dann gilt:
+
+    $$
+        \begin{aligned}
+                       & y'                  &  & = \frac{1}{\sin\left(\frac{y}{x}\right)} + \frac{y}{x} \\
+            \iff \quad & u + xu'             &  & = \frac{1}{\sin u} + u                                 \\
+            \iff \quad & xu'                 &  & = \frac{1}{\sin u}                                     \\
+            \iff \quad & \frac{x \d u}{\d x} &  & = \frac{1}{\sin u}                                     \\
+            \iff \quad & \sin u \d u         &  & = \frac{1}{x} \d x                                     \\
+            \iff \quad & \int \sin u \d u    &  & = \int \frac{1}{x} \d x                                \\
+            \iff \quad & -\cos (u) + c_2     &  & = \ln\abs{x} + c_1                                     \\
+            \iff \quad & \cos (u)            &  & = -\ln\abs{x} - c_1 + c_2                              \\
+            \iff \quad & u                   &  & = \arccos(-\ln\abs{x} - c_1 + c_2)                     \\
+            \iff \quad & \frac{y}{x}         &  & = \arccos(-\ln\abs{x} - c_1 + c_2)                     \\
+            \iff \quad & y                   &  & = x\arccos(c - \ln\abs{x})                             \\
+        \end{aligned}
+    $$\qed
+\end{example}
+
+\begin{defi}{Lineare Differentialgleichung}
+    Die Gleichung
+    $$
+        y' + f(x) \cdot y = 0
+    $$
+    heißt \emph{linear homogene Differentialgleichung} 1. Ordung.
+
+    Die Gleichung
+    $$
+        y' + f(x) \cdot y = g(x)
+    $$
+    heißt \emph{linear inhomogene Differentialgleichung} 1. Ordung und
+    $g(x)$ heißt \emph{Störfunktion}.
+
+    Das zugehörige Anfangswertproblem heißt \emph{lineares Anfangswertproblem}.
+\end{defi}
+
+\begin{algo}{Lösen von linearen homogenen Differentialgleichungen 1. Ordnung}
+    Für eine Gleichung
+    $$
+        \boxed{y' + f(x)\cdot y = 0}
+    $$
+    ist die allgemeine Lösung
+    $$
+        y = ce^{\int -f(x) \d x}
+    $$
+
+    $c$ wird dann durch Einsetzen eines Anfangswertes berechnet.
+\end{algo}
+
+\begin{algo}{Variation der Konstanten}
+    Gegeben: Differentialgleichung der Form
+    $$
+        \boxed{y' + f(x)\cdot y = g(x)}
+    $$
+    \begin{enumerate}
+        \item Löse homogene Differentialgleichung mit
+              $$
+                  y = ce^{\int - f(x) \d x}
+              $$
+        \item Ersetze $c$ durch $c(x)$
+        \item Berechne $y'$
+        \item Vergleiche $y'$ mit ursprünglicher Störfunktion
+        \item Bestimme aus der Differentialgleichung die Lösung für $c(x)$ (enthält neue Konstante!)
+        \item Einsetzen in
+              $$
+                  y = c(x) \cdot e^{\int - f(x) \d x}
+              $$
+              ergibt die allgemeine Lösung
+    \end{enumerate}
+\end{algo}
+
+\begin{example}{Variation der Konstanten}
+    Berechnen Sie die allgemeine Lösung der Differentialgleichung
+    $$
+        (x-2) \cdot y' = y + 2(x-2)^3
+    $$
+    \exampleseparator
+
+    Umwandeln in allgemeine Darstellung:
+    $$
+        (x-2) \cdot y' = y + 2(x-2)^3 \quad \iff \quad y' = \frac{y}{x-2} + 2(x-2)^2 \quad \iff \quad y' - \frac{1}{x-2}\cdot y = 2(x-2)^2
+    $$
+    Lösen der homogenen Gleichung:
+    $$
+        \begin{aligned}
+                       & y'_h - \frac{1}{x-2}\cdot y_h &  & = 0                         \\
+            \iff \quad & y'_h                          &  & = \frac{1}{x-2}\cdot y_h    \\
+            \iff \quad & \frac{1}{y_h} \d y_h          &  & = \frac{1}{x-2}\d x         \\
+            \iff \quad & \int \frac{1}{y_h} \d y_h     &  & = \int \frac{1}{x-2}\d x    \\
+            \iff \quad & \ln(y_h) + c_2                &  & = \ln (x-2) + c_1           \\
+            \iff \quad & (y_h)                         &  & = e^{\ln (x-2) + c_1 - c_2} \\
+            \iff \quad & y_h                           &  & = c(x-2)                    \\
+        \end{aligned}
+    $$
+
+    Lösen der Störfunktion:
+    $$
+        \begin{aligned}
+                           & y  &  & = c(x) \cdot (x-2)  \\
+            \implies \quad & y' &  & = c'(x)(x-2) + c(x)
+        \end{aligned}
+    $$
+    $$
+        \begin{aligned}
+                       & y' - \frac{1}{x-2}\cdot y                                                                  &  & = 2(x-2)^2                   \\
+            \iff \quad & \underbrace{c'(x)(x-2) + c(x)}_{y'} - \frac{1}{x-2}\cdot \underbrace{c(x) \cdot (x-2)}_{y} &  & = 2(x-2)^2                   \\
+            \iff \quad & c'(x)(x-2)                                                                                 &  & = 2(x-2)^2                   \\
+            \iff \quad & c'(x)                                                                                      &  & = 2(x-2)                     \\
+            \iff \quad & \int 1 \d c                                                                                &  & = 2\int x\d x - 4\int 1 \d x \\
+            \iff \quad & c(x)                                                                                       &  & = x^2 - 4x + c_1
+        \end{aligned}
+    $$
+
+    Damit erhalten wir insgesamt:
+    $$
+        y = (x^2 - 4x + c)(x-2) = c(x-2) + (x-4)(x-2)x
+    $$\qed
+\end{example}
+
+\begin{defi}{Superpositionsprinzip (inhomogene lineare Differentialgleichungen)}
+    Die Lösung einer \emph{inhomogenen linearen Differentialgleichung} setzt sich zusammen aus der allgemeinen Lösung der homogenen Differentialgleichung $y_h$ und einer partikulären Lösung der \emph{inhomogenen Differentialgleichung} $y_p$
+    $$
+        y = y_h + y_p
+    $$
+\end{defi}
+
+\begin{algo}{Ansatz vom Typ der rechten Seite}
+    Man rät eine Lösung, indem man einen Ansatz für $y_p$ vom Typ der Störfunktion $g(x)$ wählt:
+
+    \begin{center}
+        \begin{tabular}{c | c l}
+            Störfunktion $g(x)$            & Ansatz für $y_p$                                                                        \\
+            \hline
+            $c_0$                          & $\lambda_0$                                        & \rdelim\}{3}{3mm}[polynomiell]     \\
+            $c_0 + c_1x$                   & $\lambda_0 + \lambda_1 x$                                                               \\
+            $c_0 + c_1x + \ldots + c_nx^n$ & $\lambda_0 + \lambda_1 x + \ldots + \lambda_nx^n$                                       \\
+            \hline
+            $c_0e^{ax}$                    & $\lambda_0 e^{ax}$                                 & \rdelim\}{4}{3mm}[exponentiell]    \\
+            $c_0e^{ax}$                    & $\lambda_0 xe^{ax}$                                                                     \\
+            $c_0e^{ax}$                    & $\ldots$                                                                                \\
+            $c_0e^{ax}$                    & $\lambda_0 x^ne^{ax}$                                                                   \\
+            \hline
+            $c_0\sin(ax) + c_1\cos(ax)$    & $\lambda_0\sin(ax) + \lambda_1\cos(ax)$            & \rdelim\}{3}{3mm}[trigonometrisch] \\
+            $c_0e^{ax}\cdot \sin(bx)$      & $x\cdot (\lambda_1 \sin(bx) + \lambda_2 \cos(bx))$                                      \\
+            $c_0e^{ax}\cdot \cos(bx)$      & $x\cdot (\lambda_1 \sin(bx) + \lambda_2 \cos(bx))$                                      \\
+        \end{tabular}
+    \end{center}
+
+    \emph{Bemerkungen:}
+    \begin{itemize}
+        \item Bei einer Summe von mehreren Funktionstypen sollten entsprechend viele partikuläre Teillösungen berechnet werden. Die Summe dieser Teillösungen entspricht dann insgesamt der partikulären Lösung $y_p$.
+        \item Existiert für eine Störfunktion $g(x) = cx^ne^{ax}$ ein Term $\mu x^ne^{ax}$ bereits in der homogenen Lösung, wählt man als Ansatz für $y_p = \lambda x^{n+1}e^{ax}$ (siehe Beispiel).
+    \end{itemize}
+\end{algo}
+
+\begin{example}{Ansatz vom Typ der rechten Seite}
+    Berechnen Sie die allgemeine Lösung der linearen Differentialgleichung
+    $$
+        y'- y = 9e^x
+    $$
+    \exampleseparator
+
+    Lösen der homogenen Gleichung:
+    $$
+        y_h'- y_h = 0 \implies y_h = ce^{x}
+    $$
+
+    Mit der partikulären Lösung ($y_p = c_0xe^{x}$)
+    $$
+        y_p = c_0xe^x \implies y'_p = c_0(e^x + xe^x)
+    $$
+    gilt dann:
+    $$
+        \begin{aligned}
+                           & y'- y                     &  & = 9e^x \\
+            \iff \quad     & c_0(e^x + xe^x) - c_0xe^x &  & = 9e^x \\
+            \iff \quad     & c_0e^x(1 + x - x)         &  & = 9e^x \\
+            \implies \quad & c_0                       &  & = 9
+        \end{aligned}
+    $$
+
+    Und schlussendlich:
+    $$
+        y = y_h + y_p \implies y = ce^x + 9e^xx
+    $$\qed
+\end{example}
+
+\begin{algo}{Bernoulli-Differentialgleichung}
+    Gegeben: Differentialgleichung der Form
+    $$
+        \boxed{y' + f(x) \cdot y = g(x)\cdot y^\alpha}
+    $$
+    \begin{enumerate}
+        \item Substituiere
+              $$
+                  z = y^{1-\alpha} \quad \iff \quad y = z^{\frac{1}{1-\alpha}}
+              $$
+        \item Einsetzen in die Differentialgleichung ergibt
+              $$
+                  z' + (1-\alpha) \cdot f(x)\cdot z = g(x) \cdot (1-\alpha)
+              $$
+        \item Lösen der linearen Differentialgleichung
+        \item Rücksubstitution in
+              $$
+                  y = z^{\frac{1}{1-\alpha}}
+              $$
+              ergibt die allgemeine Lösung
+    \end{enumerate}
+\end{algo}
+
+\begin{defi}{Exakte Differentialgleichung}
+    Eine Differentialgleichung der Form
+    $$
+        p(x, y) + q(x, y) \cdot y' = 0 \quad \iff \quad p(x, y) \d x + q(x, y) \d y = 0
+    $$
+    mit
+    $$
+        p_y = q_x \ \text{\emph{(Integrabilitätsbedingung)}}
+    $$
+    heißt \emph{exakte Differentialgleichung}.
+\end{defi}
+
+\begin{algo}{Lösen von exakten Differentialgleichungen}
+    Gegeben: Differentialgleichung der Form
+    $$
+        \boxed{p(x, y) + q(x, y) \cdot y' = 0 \quad \iff \quad p(x, y) \d x + q(x, y) \d y = 0}
+    $$
+    \begin{enumerate}
+        \item Prüfen der Integrabilitätsbedingung
+              $$
+                  p_x = q_y
+              $$
+        \item Stammfunktion berechnen mit
+              $$
+                  \underbrace{F(x, y) = \int p \d x}_{(*)} \quad \text{oder} \quad \underbrace{F(x, y) = \int q \d y}_{(**)}
+              $$
+              \subitem Konstante $c$ ersetzen mit $c(y)$ $(*)$ bzw. $c(x)$ $(**)$
+        \item Differentiation von $F(x, y)$ nach $y$ $(*)$ bzw. nach $x$ $(**)$
+        \item Es ergibt sich
+              $$
+                  c(y)' = f(y) \quad \implies c(y) = \int f(y) \d y \quad (*)
+              $$
+              bzw.
+              $$
+                  c(x)' = f(x) \quad \implies c(x) = \int f(x) \d x \quad (**)
+              $$
+        \item Einsetzen ergibt die allgemeine Lösung
+    \end{enumerate}
+\end{algo}
+
+\begin{defi}{Integrierender Faktor (Euler-Multiplikator)}
+    $\mu(x, y)$ ist genau dann ein \emph{integrierender Faktor} oder \emph{Euler-Multiplikator} für eine Funktion
+    $$
+        p(x, y) + q(x, y) \cdot y' = 0 \quad \iff \quad p(x, y) \d x + q(x, y) \d y = 0
+    $$
+    wenn die Integrabilitätsbedingung
+    $$
+        \frac{\partial \mu p}{\partial y} = \frac{\partial \mu q}{\partial x}
+    $$
+    erfüllt wird.
+\end{defi}
+
+\begin{algo}{Lösen von Differentialgleichungen mithilfe eines integrierenden Faktors}
+    Gegeben: Differentialgleichung der Form
+    $$
+        \boxed{p(x, y) + q(x, y) \cdot y' = 0 \quad \iff \quad p(x, y) \d x + q(x, y) \d y = 0}
+    $$
+    bei der die \emph{Integrabilitätsbedingung nicht erfüllt} wird.
+
+    Wir betrachten hier nur integrierende Faktoren, die nur von $x$ bzw. nur von $y$ abhängig sind.
+
+    \begin{enumerate}
+        \item Integrierender Faktor ist gegeben mit
+              $$
+                  \underbrace{\mu(x) = e^{\int m(x) \d x}}_{(*)} \quad \text{oder} \quad \underbrace{\mu(y) = e^{\int m(y) \d y}}_{(**)}
+              $$
+              \subitem $(*)$ Untersuchen, ob $\mu$ nur von $x$ abhängt:
+              $$
+                  m(x) = \frac{p_y - q_x}{q}
+              $$
+              \subitem $(**)$ Untersuchen, ob $\mu$ nur von $y$ abhängt:
+              $$
+                  m(y) = \frac{q_x - p_y}{p}
+              $$
+        \item $m$ in entsprechende Formel für $\mu$ einsetzen
+        \item Einsetzen in die Differentialgleichung liefert
+              $$
+                  \mu p(x, y) + \mu q(x, y) \cdot y' = 0 \quad \iff \quad \mu p(x, y) \d x + \mu q(x, y) \d y = 0
+              $$
+        \item Prüfen der Integrabilitätsbedingung
+        \item Lösen der exakten Differentialgleichung
+    \end{enumerate}
+\end{algo}
+
+\begin{example}{Lösen von Differentialgleichungen mithilfe eines integrierenden Faktors}
+    Lösen Sie die Differentialgleichung
+    $$
+        (3xy + 2y^2) + (x^2 + 2xy) y' = 0
+    $$
+
+    \exampleseparator
+
+    Es gilt:
+    $$
+        (3xy + 2y^2) + (x^2 + 2xy) y' = 0 \quad \iff \quad \underbrace{(3xy + 2y^2)}_{p(x, y)}\d x + \underbrace{(x^2 + 2xy)}_{q(x, y)}\d y = 0
+    $$
+    Integrabilitätsbedingung:
+    $$
+        p_y = 3x + 4y \quad \neq \quad 2x + 2y = q_x \quad \lightning
+    $$
+
+    Integrierenden Faktor (Euler-Multiplikator) $\mu(x) = e^{\int m(x) \d x}$ bzw. $\mu(y) = e^{\int m(y) \d y}$ bestimmen:
+    \begin{itemize}
+        \item Untersuchung, ob $\mu$ nur von $y$ abhängt:
+              $$
+                  m = \frac{q_x - p_y}{p} = \frac{2x + 2y - \left(3x + 4y\right)}{3xy + 2y^2} = \frac{-x - 2y}{3xy + 2y^2} \quad \lightning
+              $$
+        \item Untersuchung, ob $\mu$ nur von $x$ abhängt:
+              $$
+                  m = \frac{p_y - q_x}{q} = \frac{3x + 4y - (2x + 2y)}{x^2 + 2xy} = \frac{x + 2y}{x^2 + 2xy} = \frac{x+2y}{x(x+2y)} = \frac{1}{x} \quad \checkmark
+              $$
+    \end{itemize}
+
+    Damit erhalten wir den integrierenden Faktor mit:
+    $$
+        \mu(x) = e^{\int \frac{1}{x} \d x} = cx \qquad (\text{sei} \ c = 1)
+    $$
+    Einsetzen in die DGL:
+    $$
+        \underbrace{\left(3x^2y + 2xy^2\right)}_{p(x, y)}\d x + \underbrace{\left(x^3 + 2x^2y\right)}_{q(x, y)}\d y = 0
+    $$
+    Integrabilitätsbedingung:
+    $$
+        p_y = 3x^2 + 4xy \quad = \quad 3x^2 + 4xy = q_x \quad \checkmark
+    $$
+    Wir wissen:
+    $$
+        \underbrace{F = \int q \d y = x^3y + x^2y^2 + c(x)}_{F_y = q} \implies \underbrace{3x^2y + 2xy^2 + c'(x) = 3x^2y + 2xy^2}_{F_x = p}  \implies  c(x) = c
+    $$
+
+    Und insgesamt gilt damit:
+    $$
+        F = x^3y + x^2y^2 + c
+    $$\qed
+\end{example}
+
+\subsection{Lösungsverfahren für Differentialgleichungen zweiter Ordnung}
+
+\begin{defi}{Charakteristische Gleichung}
+    Die Gleichung
+    $$
+        \alpha^2 + a\alpha + b = 0
+    $$
+    heißt die zur Differentialgleichung
+    $$
+        y'' + ay' + b = 0
+    $$
+    gehörende \emph{charakteristische Gleichung}.
+\end{defi}
+
+\begin{bonus}{Superpositionsprinzip (homogene lineare Differentialgleichungen)}
+    Sind $y_1(x)$ und $y_2(x)$ Lösungen einer \emph{homogenen linearen Differentialgleichung}, so ist auch jede \emph{Linearkombination}
+    $$
+        \lambda\cdot  y_1(x) + \mu\cdot  y_2(x)
+    $$
+    eine allgemeine Lösung der Differentialgleichung.
+\end{bonus}
+
+\begin{algo}{Lösen von linearen homogenen Differentialgleichungen 2. Ordnung}
+    Für eine Gleichung
+    $$
+        \boxed{y'' + ay' + by = 0}
+    $$
+    stelle man die charakteristische Gleichung auf, mit
+    $$
+        \alpha^2 + a\alpha + b = 0 \quad \implies \quad \alpha = -\frac{a}{2} \pm \sqrt{\left(\frac{a}{2}\right)^2 - b}
+    $$
+
+    Dann gilt mit $D = \left(\frac{a}{2}\right)^2 - b$ (Diskriminante):
+    \begin{itemize}
+        \item $D > 0$:
+              $$
+                  y_h = \lambda_1 e^{\alpha_1 x} + \lambda_2 e^{\alpha_2 x}
+              $$
+        \item $D = 0$:
+              $$
+                  y_h = (\lambda_1 + \lambda_2x)\cdot  e^{\alpha x}
+              $$
+        \item $D < 0$:
+              $$
+                  y_h = e^{\Re(\alpha)} \cdot \left( \lambda_1 \cos(\Im(\alpha)) + \lambda_2 \sin(\Im(\alpha)) \right) = e^{-\frac{a}{2}} \cdot \left( \lambda_1 \cos(\sqrt{-D}) + \lambda_2 \sin(\sqrt{-D}) \right)
+              $$
+    \end{itemize}
+
+    \emph{Bemerkung:}
+    \begin{itemize}
+        \item $\Re(\alpha)$ ist der Realteil der Nullstelle
+        \item $\Im(\alpha)$ ist der Imaginärteil der Nullstelle
+    \end{itemize}
+\end{algo}
+
+\begin{algo}{Lösen von linearen Differentialgleichungssystemen}
+    Gegeben: Differentialgleichungssystem der Form
+    \begin{equation}
+        y'  = ay + bz
+    \end{equation}
+    \begin{equation}
+        z'  = dy + cz
+    \end{equation}
+
+    \begin{enumerate}
+        \item Umstellen von (1) nach $z$ ergibt
+              $$
+                  z = \frac{y' - ay}{b}
+              $$
+        \item Differentiation von (1) und anschließendes Einsetzen von $z$ ergibt
+              $$
+                  y'' - (a + c) \cdot y' + (ac -bd) \cdot y = 0
+              $$
+        \item Lösen der homogenen Differentialgleichung mit der charakteristischen Gleichung
+              $$
+                  \alpha^2 - (a+c)\alpha + (ac-bd) = 0
+              $$
+              ergibt dann die allgemeine Lösung für $y$
+        \item Einsetzen von $y$ (und $y'$) in
+              $$
+                  z =  \frac{y' - ay}{b}
+              $$
+              ergibt die allgemeine Lösung für $z$
+    \end{enumerate}
+\end{algo}
+
+\begin{example}{Lösen von linearen Differentialgleichungssystemen}
+    Lösen Sie folgendes Differentialgleichungssystem:
+    $$
+        \begin{aligned}
+            y' & = y + 2z          \\
+            z' & = 2y + z - 2e^{x}
+        \end{aligned}
+    $$
+
+    \exampleseparator
+
+    Wir leiten $y'$ ab:
+    $$
+        \begin{aligned}
+                       & y' = y + 2z \quad \iff \quad z = \frac{y'- y}{2} \\
+            \iff \quad & y'' - y'  - 2z' = 0
+        \end{aligned}
+    $$
+    Einsetzen von $z'$:
+    $$
+        y'' - y'  - 2z' = 0 \quad \iff \quad  y'' - y'  - 4y -2z + 4e^{x} = 0
+    $$
+    Einsetzen von $z$:
+    $$
+        \begin{aligned}
+                       & y'' - y'  - 4y -2z + 4e^{x} = 0 \\
+            \iff \quad & y'' - 2y'  - 3y  = -4e^{x}
+        \end{aligned}
+    $$
+
+    Lösung der homogenen Gleichung:
+    $$
+        \begin{aligned}
+                           & y'' - 2y'  - 3y  = 0                          \\
+            \implies \quad & \alpha^2 - 2\alpha - 3 = 0                    \\
+            \implies \quad & \alpha = 1 \pm \sqrt{\left( -1 \right)^2 + 3} \\
+            \iff \quad     & \alpha = 1 \pm 2                              \\
+            \implies \quad & y_h = \lambda_1e^{-x} + \lambda_2e^{3x}
+        \end{aligned}
+    $$
+
+    Berechnen der partikulären Lösung:
+    $$
+        y_p = ce^x \quad \implies \quad y'_p = ce^x \quad \implies \quad y''_p = ce^x
+    $$
+    $$
+        \begin{aligned}
+                           & y''_p - 2y'_p  - 3y_p &  & = -4e^{x} \\
+            \iff \quad     & ce^x - 2ce^x  - 3ce^x &  & = -4e^{x} \\
+            \iff \quad     & -4ce^x                &  & = -4e^{x} \\
+            \implies \quad & c = 1
+        \end{aligned}
+    $$
+    Dann gilt insgesamt:
+    $$
+        y = y_h + y_p = \lambda_1e^{-x} + \lambda_2e^{3x} + e^x
+    $$
+    und
+    $$
+        z = \frac{y'- y}{2} = \frac{\left( -\lambda_1e^{-x} + 3\lambda_2e^{3x} + e^x \right) - \left( \lambda_1e^{-x} + \lambda_2e^{3x} + e^x \right)}{2} = \lambda_2e^{3x} - \lambda_1e^{-x}
+    $$\qed
+\end{example}
+
+\printindex
+\printindex[Beispiele]
+
+\end{document}
diff --git a/itg/itg.tex b/itg/itg.tex
index 6a77b98..9553190 100644
--- a/itg/itg.tex
+++ b/itg/itg.tex
@@ -1,1544 +1,1544 @@
-\documentclass[german]{../spicker}
-
-\usepackage{amsmath}
-
-\usepackage{graphicx}
-\usepackage{tabularx, multirow}
-
-\title{IT-Grundlagen}
-\author{Patrick Gustav Blaneck}
-\makeindex[intoc]
-\makeindex[intoc, name=Beispiele,title=Beispiele]
-
-\newcommand{\scalarprod}[1]{\left\langle #1 \right\rangle}
-\newcommand{\vektor}[1]{\begin{pmatrix*}[r] #1 \end{pmatrix*}}
-\renewcommand{\span}[1]{\operatorname{span}\left(#1\right)}
-\newcommand{\dx}{~\mathrm{d}x}
-
-\newenvironment{allintypewriter}{\ttfamily}{\par}
-\newcommand*{\ditto}{\texttt{\char`\"}}
-
-\begin{document}
-\maketitle
-In dieser Zusammenfassung werden Inhalte aus dem ITG-Skript von Bastian Küppers verwendet.
-\tableofcontents
-\newpage
-
-%\setcounter{section}{1}
-
-\section{Codierung}
-\subsection{Stellenwertsysteme}
-
-\begin{defi}{Stellenwertsystem}
-    Allgemein lässt sich der Wert einer Zahl in einem Stellenwertsystem zur Basis $B$ wie folgt ausdrücken ($d_i$ ist der Wert der $i$-ten Stelle, $r$ der Exponent der höchtswertigen Stelle):
-    $$
-        n_b = \sum^r_{i=0} B^i \cdot d_i
-    $$
-\end{defi}
-
-\begin{algo}{Dezimal $\to$ Binär, Hexadezimal, $\ldots$}
-    Sei $B = 2$ für Umrechnung ins Binärsystem, bzw. $B =16$ für das Hexadezimalsystem.
-
-    Es gilt für eine umzurechnende Zahl $z$:
-
-    $$
-        \begin{aligned}
-            z : B       & = z_0 \quad     &  & \text{Rest } r_0     \\
-            z_0 : B     & = z_1 \quad     &  & \text{Rest } r_1     \\
-            z_1 : B     & = z_2 \quad     &  & \text{Rest } r_2     \\
-                        & \ldots          &  &                      \\
-            z_{n-2} : B & = z_{n-1} \quad &  & \text{Rest } r_{n-1} \\
-            z_{n-1} : B & = 0 \quad       &  & \text{Rest } r_n
-        \end{aligned}
-    $$
-
-    Damit gilt dann: $(z)_{10} = (r_nr_{n-1}\ldots r_2r_1r_0)_B$ (also gelesen von \emph{unten nach oben}).\qed
-\end{algo}
-
-\begin{algo}{Binär $\to$ Hexadezimal}
-    Sei eine Binärzahl $b$ gegeben mit $n \in 4\N$ Bits.
-
-    Dann kann $b$ wie folgt in eine Hexadezimalzahl $h$ mit $m = \frac{n}{4}$ Zeichen umgeformt werden:
-
-    $$
-        \underbrace{b_{n-1}b_{n-2}b_{n-3}b_{n-4}}_{h_{m-1}} ~ \ldots ~ \underbrace{b_7b_6b_5b_4}_{h_1} ~ \underbrace{b_3b_2b_1b_0}_{h_0}
-    $$
-
-    Erinnerung: 4 Bits können binär nur 16 mögliche Werte annehmen!
-\end{algo}
-
-\newpage
-\subsection{Zahlendarstellungen}
-
-\begin{defi}{Einerkomplement}
-    Das \emph{Einerkomplement} einer Binärzahl wird gebildet, indem man alle Bits negiert.
-
-    Das erste Bit gibt dabei das Vorzeichen an.
-
-    Nachteile: Doppelte Darstellung der Null, Subtraktion lässt sich nicht auf Addition mit einer negativen Zahl zurückführen
-\end{defi}
-
-\begin{defi}{Zweierkomplement}
-    Das \emph{Zweierkomplement} einer Binärzahl wird gebildet, indem man das Einerkomplement bildet und zusätzlich $1$ addiert.
-
-    Das erste Bit gibt dabei das Vorzeichen an.
-
-    Vorteile: Subtraktion entspricht Addition mit einer negativen Zahl, keine doppelte Null
-\end{defi}
-
-\begin{defi}{Binäre Festkommazahlen}
-    Die Umwandlung des ganzzahligen Anteils einer (dezimalen) Festkommazahl erfolgt analog zu ganzen Zahlen.
-
-    Zusätzlich werden aber die Nachkommastellen mit entsprechend negativen Exponenten weiter \glqq verrechnet\grqq.
-\end{defi}
-
-\begin{defi}{Gleitkommazahlen nach \emph{IEEE 754}}
-    Die Darstellung einer Gleitkommazahl
-    $$
-        x = s \cdot m \cdot b^e
-    $$
-    besteht aus
-    \begin{itemize}
-        \item Vorzeichen $s$ (1 Bit)
-        \item Mantisse $m$ ($p$ Bits, $p_{\text{float}} = 23$, $p_{\text{double}} = 52$)
-        \item Basis $b$ (bei normalisierten Gleitkommazahlen nach IEEE ist $b = 2$)
-        \item Exponent $e$ ($r$ Bits, $r_{\text{float}} = 8$, $r_{\text{double}} = 11$)
-    \end{itemize}
-\end{defi}
-
-\begin{algo}{Umrechnung in \emph{IEEE 754}}
-    \begin{itemize}
-        \item Umwandeln einer Dezimalzahl in eine \emph{binäre Festkommazahl} ohne Vorzeichen.
-        \item Normalisieren der \emph{Mantisse}:\\
-              Das Komma wird $n$ Stellen nach links verschoben, so dass dort nur noch eine 1 als ganzzahliger Anteil vorhanden ist. ($n$ ist bei Verschieben nach rechts negativ!)\\
-              $M$ ist dann der \emph{Nachkommateil}.
-        \item Bestimmen des \emph{Exponenten}: $E = (\text{bias } + n)_2$ (bias ist meist $127$, wenn nicht anders gegeben)
-        \item Bestimmen des \emph{Vorzeichenbits} $s$
-        \item Zusammensetzen der Gleitkommazahl
-              $$
-                  s \mid E \mid M
-              $$
-    \end{itemize}
-\end{algo}
-
-\subsection{Zeichendarstellungen}
-
-\begin{defi}{UTF-8 Codierung}
-    \begin{tabular}{| c | r | c |}
-        \hline
-        Unicode-Bereich       & \multicolumn{1}{|c|}{UTF-8-Codierung}   & Möglichkeiten        \\
-        \hline
-        0000 0000 - 0000 007F & 0xxx xxxx                               & 128 (7 Bits)         \\
-        0000 0080 - 0000 07FF & 110x xxxx 10xx xxxx                     & 2.048 (11 Bits)      \\
-        0000 0800 - 0000 FFFF & 1110 xxxx 10xx xxxx 10xx xxxx           & 65.536  (16 Bits)    \\
-        0001 0000 - 0010 FFFF & 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx & 2.097.152  (21 Bits) \\
-        \hline
-    \end{tabular}
-\end{defi}
-
-\subsection{Spezielle Codierungen}
-
-\begin{algo}{Huffman-Codierung}
-    \begin{enumerate}
-        \item Schreibe Buchstaben mit Auftrittshäufigkeiten als \glqq Wald\grqq.
-        \item Fasse die beiden Bäume mit der geringsten Auftrittshäufigkeiten zu einem neuen Baum zusammen, dabei werden die Auftrittshäufigkeiten addiert.
-        \item Wiederhole, bis nur noch ein Baum existiert.
-        \item Codierung eines Buchstaben entspricht dann dem \emph{Pfad} zum entsprechenden Blatt mit \glqq links\grqq $\to$ 0, \glqq rechts\grqq $\to$ 1
-    \end{enumerate}
-
-    Mittlere Codelänge:
-    $$
-        L(C) = \frac{\#\text{Bits der verschlüsselten Nachricht}}{\#{\text{Zeichen der verschlüsselten Nachricht}}}
-    $$
-\end{algo}
-
-\begin{defi}{Hamming-Codierung}
-    Bei der Hamming-Codierung werden Paritätsinformationen zu Daten hinzugefügt, um so mögliche Übertragungsfehler zu erkennen.
-
-    Hamming-Codewörter haben die Länge $N = 2^k-1$, wobei $k$ Paritätsbits enthalten sind.
-    Die Bits werden der Einfachheit halber bei Eins beginnend durchnummeriert.
-    Die Paritätsbits stehen an den Stellen, deren Index eine 2er-Potenz ist.
-
-    Sind $p_1, p_2, \ldots, p_k$ Paritätsbits, $d_1, d_2, \ldots, d_{N-k}$ Bits des Datenwortes und $c_1, c_2, \ldots, c_N$ die Bits des zu bildenden Codewortes, hat ein Codewort des so konstruierten Hamming-Codes die folgende Form:
-
-    \begin{tabular}{| c | c | c || c | c | c | c || c | c | c | c | c | c | c | c || c | c | c |}
-        \hline
-        $c_1$ & $c_2$ & $c_3$ & $c_4$ & $c_5$ & $c_6$ & $c_7$ & $c_8$ & $c_9$ & $c_{10}$ & $c_{11}$ & $c_{12}$ & $c_{13}$ & $c_{14}$ & $c_{15}$ & $c_{16}$ & $c_{17}$ & \ldots \\
-        \hline
-        $p_0$ & $p_1$ & $d_1$ & $p_2$ & $d_2$ & $d_3$ & $d_4$ & $p_3$ & $d_5$ & $d_6$    & $d_7$    & $d_8$    & $d_9$    & $d_{10}$ & $d_{11}$ & $p_4$    & $d_{12}$ & \ldots \\
-        \hline
-    \end{tabular}\\
-
-    Dabei wird jedem Paritätsbit eine spezielle Bitmaske zugewiesen:
-
-    \begin{tabular}{| c || c | c | c || c | c | c | c || c | c | c | c | c | c | c | c || c |}
-        \hline
-                       & $c_1$ & $c_2$ & $c_3$ & $c_4$ & $c_5$ & $c_6$ & $c_7$ & $c_8$ & $c_9$ & $c_{10}$ & $c_{11}$ & $c_{12}$ & $c_{13}$ & $c_{14}$ & $c_{15}$ & \ldots \\
-        \hline
-        Bitmaske $p_0$ & $p_0$ & $p_1$ & 1     & $p_2$ & 1     & 0     & 1     & $p_3$ & 1     & 0        & 1        & 0        & 1        & 0        & 1        & \ldots \\
-        Bitmaske $p_1$ & $p_0$ & $p_1$ & 1     & $p_2$ & 0     & 1     & 1     & $p_3$ & 0     & 1        & 1        & 0        & 0        & 1        & 1        & \ldots \\
-        Bitmaske $p_2$ & $p_0$ & $p_1$ & 0     & $p_2$ & 1     & 1     & 1     & $p_3$ & 0     & 0        & 0        & 1        & 1        & 1        & 1        & \ldots \\
-        Bitmaske $p_3$ & $p_0$ & $p_1$ & 0     & $p_2$ & 0     & 0     & 0     & $p_3$ & 1     & 1        & 1        & 1        & 1        & 1        & 1        & \ldots \\
-        \hline
-    \end{tabular}\\
-
-    Damit gilt:
-    $$
-        \begin{aligned}
-            c_1 = p_0 & = c_3 \oplus c_5 \oplus c_7 \oplus c_9 \oplus c_{11} \oplus c_{13} \oplus c_{15} \oplus \ldots    \\
-                      & \iff \text{jedes ungerade Datenbit}                                                               \\
-            c_2 = p_1 & = c_3 \oplus c_6 \oplus c_7 \oplus c_{10} \oplus c_{11} \oplus c_{14} \oplus c_{15} \oplus \ldots \\
-                      & \iff \text{ein Datenbit rechts von $p_1$, zwei überspringen, zwei einberechnen, $\ldots$}         \\
-            c_4 = p_2 & = c_5 \oplus c_6 \oplus c_7 \oplus c_{12} \oplus c_{13} \oplus c_{14} \oplus c_{15} \oplus \ldots \\
-                      & \iff \text{drei Datenbit rechts von $p_2$, vier überspringen, vier einberechnen, $\ldots$}
-        \end{aligned}
-    $$
-\end{defi}
-
-\begin{algo}{Fehlererkennung beim Hamming-Code}
-    Situation: Empfangen eines Hamming-codierten Datensatzes
-
-    \begin{enumerate}
-        \item Erneutes Berechnen der \emph{Paritätsbits}
-        \item Erkennen, welche neu berechneten Paritätsbits $p'_i$ \emph{verschieden} sind zu den empfangenen Paritätsbits $p_i$
-        \item Bitfehler ist in dem Datenbit passiert, in dem gilt:
-              \subitem $p_i = p'_i \implies$ Bitmaske für $p_i$ ist $0$
-              \subitem $p_i \neq p'_i \implies$ Bitmaske für $p_i$ ist $1$
-    \end{enumerate}
-
-    Es wird angenommen, dass nur ein Bitfehler in den Datenbits passiert ist.
-
-    Anmerkung: Ist lediglich ein Paritätsbit verschieden, dann ist ein Übertragungsfehler in dem betreffenden Paritätsbit selbst aufgetreten, da alle Datenbits zur Berechnung von mindestens zwei Paritätsbits verwendet werden.
-\end{algo}
-
-\section{Formale Sprachen}
-\subsection{Backus-Naur-Form}
-
-\begin{defi}{(kontextfreie) Grammatik}
-    Eine (kontextfreie) Grammatik $G$ ist ein 4-Tupel $\{N, T, \Sigma, P\}$ mit folgenden Eigenschaften:
-    \begin{itemize}
-        \item $N$ ist eine endliche Menge von \emph{Nichtterminalsymbolen},
-        \item $T$ ist eine endliche Menge von \emph{Terminalsymbolen},
-        \item ein \emph{Startsymbol} $\Sigma \in N$,
-        \item eine endliche Menge an Produktionsregeln $P \subset N \times T^*$.
-    \end{itemize}
-    Es gilt $N \cap M = \emptyset$. $^*$ bezeichnet die Kleensche Hülle.
-
-    Anmerkung: Die Notation verhält sich in der Vorlesung sehr anders als in den meisten Quellen.
-\end{defi}
-
-\begin{defi}{Backus-Naur-Form}
-    In der \emph{Backus-Naur-Form} werden Symbole durch eine Zuweisung definiert.\\
-    Diese wird durch den Operator \texttt{:=} dargestellt.
-
-    \begin{itemize}
-        \item Dabei gilt weiterhin, dass in der Zuweisung eines \emph{Nichtterminalsymbols} mindestens ein weiteres Symbol auftauchen muss und
-        \item bei der Zuweisung eines \emph{Terminalsymbols} nur Zeichen des Alphabets.
-        \item Bei einer Zuweisung können mehrere Symbole oder Zeichen(-ketten) des Alphabets verbunden werden.
-        \item Durch ein Leerzeichen (\glqq ~~~\grqq, \texttt{space}) wird eine \texttt{und}-Verknüpfung definiert,
-        \item durch einen senkrechten Stricht (\glqq ~$\mid$~\grqq, \texttt{pipe}) wird eine \texttt{oder}-Zuweisung definiert.
-        \item Zur logischen Gliederung der Verknüpfungen können Klammern verwendet werden.
-        \item Es ist ebenfalls möglich Kardinalitäten für Symbole zu definieren:
-              \subitem Geschweifte Klammern \texttt{\{\}} definieren dabei eine \emph{beliebige Wiederholung} und
-              \subitem eckige Klammern \texttt{[]} definieren ein \emph{einmaliges Auftreten}.
-              \subitem In beiden Fällen ist das Weglassen des Symbols ebenfalls möglich.
-    \end{itemize}
-\end{defi}
-
-\begin{example}{Backus-Naur-Form}
-    \begin{allintypewriter}
-        \begin{tabular}{rl}
-            Satz        & := Subjekt Verb Präposition Nomen Ende                       \\
-            Subjekt     & := Nomen                                                     \\
-            Nomen       & := Artikel Substantiv                                        \\
-            Artikel     & := \ditto der\ditto | \ditto die\ditto | \ditto das\ditto    \\
-            Substantiv  & := \ditto Mann\ditto | \ditto Frau\ditto | \ditto Haus\ditto \\
-            Verb        & := \ditto geht\ditto                                         \\
-            Präposition & := \ditto in\ditto                                           \\
-            Ende        & := \ditto .\ditto
-        \end{tabular}
-    \end{allintypewriter}
-\end{example}
-
-\subsection{Programmiersprachen}
-
-\begin{defi}{Compiler}
-    Das Programm, welches den
-    menschenlesbaren \emph{Quellcode} anhand der Regeln der zugrundeliegenden Grammatik
-    interpretiert und in maschinenlesbare Anweisungen überführt, wird \emph{Compiler} genannt.
-
-    Die maschinenlesbaren Anweisungen können dabei entweder direkt in eine
-    maschinenspezifische Binärfolge umgewandelt werden, oder in einen sogenannten
-    \emph{Bytecode}.
-
-    Im zweiten Fall kann der Bytecode,
-    auch Zwischencode genannt, noch an beliebigen Prozessortypen angepasst werden,
-    muss dafür aber vor der Ausführung erneut bearbeitet werden.
-
-    Bei der Kompilierung eines Programms werden zwei Phasen durchlaufen:
-    \begin{enumerate}
-        \item \textbf{Analysephase}, in der der Quellcode analysiert und auf Fehler geprüft wird:
-              \subitem \underline{\emph{Lexer} (lexikalischer Scanner)}: \\
-              Quellcode wird in einzelne Teile (\emph{Tokens}) zerlegt und klassifiziert (z.B. als \emph{Schlüsselwörter} oder \emph{Bezeichner}).\\
-              Der Lexer erkennt hier z.B. falsch benannte Variablen.
-              \subitem \underline{\emph{Parser} (syntaktische Analyse)}: \\
-              Vom Lexer erzeugte \emph{Tokens} werden dem \emph{Parser} übergeben.
-              Der Parser überprüft den Quellcode auf Fehler und setzt ihn bei Fehlerfreiheit in einen \emph{Syntaxbaum} (AST) um.\\
-              Hier werden Fehler wie fehlende Semikolons oder falsche genutzte Operatoren erkannt.
-              \subitem \underline{\emph{Semantische Analyse}}: \\
-              Hier wird z.B. kontrolliert, ob eine verwendete Variable auch vorher deklariert wurde, oder ob Quell- und Zieltyp einer Anweisung übereinstimmen. Dabei erzeugte Metadaten werden in den AST integriert.
-              In diesem Schritt werden generell semantische Fehler erkannt, d.h. Anweisungen, die korrekt aussehen, aber fehlerhaft sind.
-              \\
-        \item \textbf{Synthesephase}, in der Binär- bzw. Bytecode erzeugt wird:
-              \subitem \underline{\emph{Zwischencodeerzeugung}}: \\
-              Hier wird plattformunabhängiger Bytecode erzeugt, der als Grundlage für den nächsten Schritt dient.
-              \subitem \underline{\emph{Optimierung}}: \\
-              Während der Optimierung wird versucht die Performanz des erzeugten Programms zu steigern.
-              \subitem \underline{\emph{Codegenerierung}}: \\
-              Hier wird aus dem optimierten Zwischencode der \emph{Binärcode} erzeugt.
-    \end{enumerate}
-\end{defi}
-
-\begin{bonus}{Ahead-of-Time Compiler}
-    Bei dieser Variante wird der gesamte Quellcode \emph{in einem Rutsch}
-    in Binär- oder Bytecode übersetzt. Das kann mitunter dazu führen, dass die Kompilierung
-    sehr lange dauert.
-\end{bonus}
-
-\begin{bonus}{Just-in-Time Compiler}
-    Daher haben sich mit der Zeit auch sogenannte \emph{Just-in-
-        Time Compiler} etablieren können, die nur einen kleinen Teil des Quellcodes direkt
-    übersetzen und weitere Teile des Quellcodes erst dann übersetzen, \emph{wenn sie bei der
-        Programmausführung benötigt werden}.
-\end{bonus}
-
-\begin{defi}{Linker}
-    Nachdem der Compiler den Binärcode erzeugt hat, muss der \emph{Linker} daraus noch
-    ein lauffähiges Programm erstellen. Das ist insbesondere der Fall, wenn es mehrere
-    Dateien mit Quellcode gibt.
-
-    Dies geschieht indem der Binärcode zu den verschiedenen
-    Quellcodedateien, der nun in sogenannten \emph{Objektdateien} vorliegt, zusammengefügt wird. Dabei werden beispielsweise symbolische Adressen aus mehreren
-    Quellcodemodulen und externen Bibliotheken so angepasst, dass sie zusammen
-    passen.
-
-    Dabei wird zwischen \emph{statischem Linken} und \emph{dynamischen Linken} unterschieden:
-
-    Beim \textbf{statischen Linken} werden alle verfügbaren Objektdateien zu \emph{einer
-        einzigen, ausführbaren Programmdatei} gelinkt.
-    \begin{itemize}
-        \item Vorteil: keine externen Abhängigkeiten, Programm auf jedem geeigneten System ohne Weiteres lauffähig
-        \item Nachteil: nicht mehr möglich, einzelne Programmteile auszutauschen ohne den Linkvorgang vollständig zu wiederholen,
-    \end{itemize}
-    Beim \textbf{dynamischen Linken} werden Funktions- und Variablenadressen erst zur Laufzeit aufgelöst, sodass externe Bibliotheken
-    einfach in Form von \emph{Dynamically Linked Libraries} (DLLs) bzw. \emph{Shared Objects} (SOs) angesprochen werden können. Da DLLs bzw. SOs als existierend
-    vorausgesetzt werden, wird das fertige Programm bei dynamischem Linken kleiner.
-    \begin{itemize}
-        \item Vorteil: mehrere Programme können dieselbe externe Bibliothek verwenden, ohne dass der benötigte Code mehrfach in einzelne Programme integriert werden muss.
-    \end{itemize}
-\end{defi}
-
-\begin{defi}{Interpreter}
-    \emph{Interpreter} zeichnen sich dadurch aus, dass der Quellcode nicht einmalig in Binärcode übersetzt wird, sondern bei jeder Programmausführung schrittweise abgearbeitet wird.
-    \begin{itemize}
-        \item Vorteile: einfache Portabilität, dynamischere Quellcodeverwaltung
-        \item Nachteile: deutlich langsamere Ausführungsgeschwindigkeit, keine Optimierungen an Programmstruktur möglich
-    \end{itemize}
-\end{defi}
-
-\section{Rechnerarchitekturen}
-\subsection{Von-Neumann-Architektur}
-
-\begin{defi}{Von-Neumann-Architektur}
-    Im Grundsatz besteht die Architektur aus drei Komponenten: \emph{CPU}, \emph{Speicher} und \emph{I/O Einheit}.
-
-    Die einzelnen Komponenten sind über Datenleitungen, sogenannte \emph{Busse}, verbunden.
-    \begin{center}
-        \includegraphics[]{images/von_neumann.pdf}
-    \end{center}
-\end{defi}
-
-\begin{defi}{CPU}
-    Die \emph{CPU} (\emph{Central Processing Unit}, Prozessor) ist sozusagen das Gehirn des Computers.
-    Die CPU besteht im Wesentlichen aus drei Teilen, dem \emph{Leitwerk} und
-    dem \emph{Rechenwerk} und den \emph{Registern}, welche direkt zur Abarbeitung von Befehlen
-    benötigte Daten und berechnete Ergebnisse aufnehmen können.
-
-    Das \emph{Leitwerk} steuert die Ausführung des Binärcodes, das \emph{Rechenwerk} führt anfallende Rechenoperationen aus.
-\end{defi}
-
-\begin{bonus}{Aufbau Rechenoperationen}
-    \begin{itemize}
-        \item \emph{Operationsteil}: codiert konkreten Befehl
-        \item \emph{Operanden}: stellen z.B. Summanden einer Operation, oder Adresse einer Variablen dar
-    \end{itemize}
-\end{bonus}
-
-\begin{bonus}{Abarbeitung von Befehlen}
-    Jeder Befehl durchläuft bei der Abarbeitung in der CPU folgende Schritte:
-    \begin{itemize}
-        \item \emph{Instruction Fetch (IF)} : Befehl lesen
-        \item \emph{Instruction Decode (ID)} : Befehl decodieren
-        \item \emph{Fetch Operands (FO)} : Operanden laden
-        \item \emph{Execute (EX)} : Befehl ausführen
-        \item \emph{Writeback (WB)} : Ergebnis schreiben
-    \end{itemize}
-
-    \begin{center}
-        \includegraphics[]{images/befehlsabarbeitung.pdf}
-    \end{center}
-\end{bonus}
-
-\begin{defi}{Prozessorarchitekturen}
-    \textbf{CISC} (\emph{Complex Instruction Set Computer}):\\
-    Eine CISC CPU zeichnet sich durch einen \emph{komplexen Befehlssatz} in Form von \emph{Microcode} und dem Vorhandensein nur \emph{weniger Register} aus.
-
-    \textbf{RISC} (\emph{Reduced Instruction Set Computer}):\\
-    eine RISC CPU nur über \emph{wenige, in Hardware realisierte Befehle} und \emph{viele Prozessorregister}.
-\end{defi}
-
-\begin{defi}{Pipelining}
-    In einer \emph{RISC CPU}, die nur wenige und elementare Befehle verwendet, kann dafür
-    gesorgt werden, dass alle Teilschritte, deren \emph{parallele Verarbeitung} das Pipelining
-    ermöglicht, gleich lange dauern. Nur deswegen kann das Konzept des Pipelinings
-    erfolgreich umgesetzt werden.
-
-    Das ist bei einer \emph{CISC CPU} aufgrund der vielen
-    und teils sehr komplexen Befehle \emph{nicht} möglich.
-\end{defi}
-
-\begin{example}{Pipelining}
-    5-Stage-Pipeline:
-    \begin{itemize}
-        \item Instruction Fetch (\textbf{IF}): Befehl lesen
-        \item Instruction Decode (\textbf{ID}) : Befehl decodieren
-        \item Execute (\textbf{EX}) : Ausführen
-        \item Memory Access (\textbf{MEM}) : Ausführen
-        \item Writeback (\textbf{WB}) : Ergebnis schreiben
-    \end{itemize}
-
-    \begin{center}
-        \begin{tabular}{| c || m{0.05\textwidth} | m{0.05\textwidth} | m{0.05\textwidth} | m{0.05\textwidth} | m{0.05\textwidth} | m{0.05\textwidth} |}
-            \hline
-            Instr. 1    & \texttt{IF}            & \texttt{ID}            & \texttt{EX}            & \texttt{MEM}           & \texttt{WB}            &                        \\
-            \hline
-            Instr. 2    &                        & \texttt{IF}            & \texttt{ID}            & \texttt{EX}            & \texttt{MEM}           & \texttt{WB}            \\
-            \hline
-            Instr. 3    &                        &                        & \texttt{IF}            & \texttt{ID}            & \texttt{EX}            & \texttt{MEM}           \\
-            \hline
-            Instr. 4    &                        &                        &                        & \texttt{IF}            & \texttt{ID}            & \texttt{EX}            \\
-            \hline
-            Instr. 5    &                        &                        &                        &                        & \texttt{IF}            & \texttt{ID}            \\
-            \hline
-            \hline
-            Clock Cycle & \multicolumn{1}{c|}{1} & \multicolumn{1}{c|}{2} & \multicolumn{1}{c|}{3} & \multicolumn{1}{c|}{4} & \multicolumn{1}{c|}{5} & \multicolumn{1}{c|}{6} \\
-            \hline
-        \end{tabular}
-    \end{center}
-\end{example}
-
-\begin{defi}{ROM}
-    Der \emph{ROM} ist ein Festwertspeicher, der - prinzipiell - \emph{nur gelesen} werden kann und die Firmware des Computers gespeichert hat.
-
-    Im ROM liegt das sogenannte \emph{BIOS} (\emph{basic input output system}) bzw. moderner \emph{UEFI}
-    (\emph{unified extensible firmware interface}).
-    Die im ROM abgelegten Informationen stellen die Firmware des
-    Rechners dar. Diese Firmware sorgt dafür, dass der Computer nach dem Einschalten
-    in die Lage versetzt wird, grundlegende Hardwarekomponenten zu verwalten.
-\end{defi}
-
-\begin{defi}{RAM}
-    Der \emph{RAM},
-    auch \emph{Hauptspeicher} genannt, ist ein Speicher mit \emph{wahlfreiem Zugriff}, der seinen
-    Inhalt jedoch bei Verlust der Betriebsspannung \emph{verliert}. Im RAM werden Informationen
-    abgelegt, die ein \emph{Programm zur Laufzeit} benötigt.
-
-    Sollen Daten
-    über das Ende des Programms hinaus gespeichert werden, müssen sie über die
-    \emph{I/O-Einheit} auf einen anderen Speicher geschrieben werden.
-\end{defi}
-
-\begin{defi}{Cache}
-    \emph{Cache} ist \emph{schneller} als RAM, kann aber nur \emph{weniger Speicherkapazität} zur Verfügung stellen.
-
-    Das bedeutet, dass der Cache nur kleine Datenmengen, sogenannte \emph{Cacheblocks}, aus dem Hauptspeicher vorhalten kann.
-    Diese haben eine definierte Größe und können dann schneller in die CPU geldaden werden, als das aus dem RAM möglich wäre.
-\end{defi}
-
-\begin{defi}{Lokalität}
-    \textbf{Zeitliche Lokalität}:\\
-    Es ist, bei entsprechender Programmierung, sehr wahrscheinlich, dass
-    auf eine Speicherzelle nicht nur einmal, sondern in kurzer Zeit \emph{mehrmals zugegriffen}
-    wird.
-
-    \textbf{Örtliche Lokalität}:\\
-    Es ist, bei entsprechender Programmierung, sehr wahrscheinlich, dass nach
-    dem Zugriff auf eine bestimmte Speicherzelle auch ein \emph{Zugriff in deren unmittelbarer
-        \glqq Nachbarschaft\grqq} stattfindet.
-\end{defi}
-
-\begin{bonus}{Aufbau eines Caches}
-    \begin{center}
-        \includegraphics[]{images/cache_aufbau.pdf}
-    \end{center}
-
-    Aus der Abbildung ist ersichtlich, dass der Cache selbst ebenenweise organisiert ist.
-
-    Im Regelfall sind mindestens die Ebenen L1 und L2 vorhanden, oftmals sogar noch
-    eine dritte Ebene L3. Dabei ist in jedem Fall der L1-Cache in die CPU integriert,
-    häufig auch noch der L2-Cache.
-
-    Beginnend beim
-    L3-Cache werden die Cachelevel mit größerer Nähe zur CPU jeweils kleiner und
-    schneller. Dieser Aufbau soll die Frage nach der Auswahl der Daten, die im Cache
-    vorgehalten werden, vereinfachen. Es ist also möglich einen relativ großen Datenbestand
-    im L3-Cache vorzuhalten, der schneller ist als der Hauptspeicher. Von dort
-    aus kann dann wiederum eine Teilmenge der Daten im noch schnelleren L2-Cache
-    vorgehalten werden, usw.
-
-    Liegen benötigte Daten nicht im L1-Cache, welcher Daten bzw. Befehle schlussendlich an die CPU liefert, ist aufgrund der Lokalität und
-    des Aufbaus des Caches die Wahrscheinlichkeit hoch, dass die benötigten Daten
-    nicht aus dem langsamen Hauptspeicher geladen werden müssen, sondern sich in
-    einem der niedrigeren Cache-Level finden und damit immer noch vergleichsweise
-    schnell zur Verfügung gestellt werden können.
-\end{bonus}
-
-\begin{bonus}{Interner Aufbau eines Cachelevels}
-    \begin{center}
-        \includegraphics[]{images/cache_level.pdf}
-    \end{center}
-
-    Zu jedem Cacheblock wird die Startadresse des Blocks im RAM gespeichert, diese
-    Information wird \emph{Tag} genannt.
-
-    Wird von der CPU eine Anfrage an den Speicher
-    gestellt, wird zunächst anhand des Tags unter Zuhilfenahme des Komparators geprüft, ob der angefragte Datensatz im Cache liegt. Dabei wird auch geprüft, ob eine
-    angefragte Speicheradresse innerhalb eines Cacheblocks liegt. Das ist möglich, da
-    der Tag sowie die Größe des Cacheblocks bekannt sind.
-
-    Ist dies nicht der Fall, wird
-    die Anfrage an ein niedrigeres Cachelevel bzw. den RAM weitergereicht.
-
-    Außerdem
-    werden zu jedem Cacheblock Statusbits gespeichert, die beispielsweise angeben ob
-    sich der Cacheblock verändert hat (\emph{dirty bit}), seit er in den Cache geladen wurden,
-    oder ob ein Platz im Cache mit einem gültigen Cacheblock belegt ist (\emph{invalid bit}).
-\end{bonus}
-
-\begin{defi}{Organisation der Tags}
-    Die \emph{Blöcke} (Cache-Lines) eines Caches können in so genannte \emph{Sätze} zusammengefasst werden.
-    Für eine bestimmte Adresse ist dann immer nur einer der Sätze zuständig.
-    Innerhalb eines \emph{Satzes} bedienen alle Blöcke also nur einen \emph{Teil} aller vorhandenen Adressen.
-
-    Im Folgenden stehe die Variable $m$ für die \emph{Gesamtanzahl der Cacheblöcke} und $n$ für die \emph{Anzahl der Blöcke pro Satz}, die so genannte \emph{Assoziativität}.
-    Dann besteht der Cache also aus $\frac {m}{n}$ Sätzen.
-
-    \textbf{Direkt abgebildet} (\emph{DM}, \emph{direct mapped}, $n=1$):\\
-    Es gibt pro Cacheblock nur eine einzige Möglichkeit, wo dieser
-    platziert werden kann.
-
-    Daher kann es allerdings vorkommen, dass ein Cacheblock
-    nicht platziert werden kann, obwohl noch Platz im Cache wäre.
-
-    \textbf{Vollassoziativ} (\emph{FA}, \emph{fully associative}, $n=m$):\\
-    Ein Cacheblock kann beliebige auf freie Plätze im Cache zugeordnet
-    werden.
-
-    Bei einer Speicheranfrage müssen allerdings alle gespeicherten
-    Tags durchsucht werden.
-
-    \textbf{Satzassoziativ} (\emph{SA}, \emph{set associative}, $2\leq n \leq \frac{m}{2}$):\\
-    Der verfügbare Platz wird in Gruppen unterteilt. Wie bei einem
-    DA Cache gibt es nur eine Gruppe, in der ein Cacheblock platziert werden kann;
-    wie bei einem VA Cache kann der Cacheblock innerhalb dieser Gruppe frei platziert
-    werden.
-\end{defi}
-
-\begin{defi}{Cache-Lesezugriffe}
-    Findet ein Lesezugriff auf Speicherzelle $A$ statt, wird geprüft, ob Speicherzelle $A$ bereits im Cache liegt.
-    \begin{itemize}
-        \item \textbf{$A$ liegt im Cache} (\emph{cache hit}):\\
-              Datensatz kann direkt aus dem Cache gelesen werden.
-        \item \textbf{$A$ liegt nicht im Cache} (\emph{cache miss}):\\
-              Datensatz muss aus dem Hauptspeicher in den Cache geladen werden, danach wird der Datensatz gelesen.
-    \end{itemize}
-\end{defi}
-
-\begin{defi}{Schreibmodi eines Cache}
-    \begin{itemize}
-        \item \textbf{write-through} (\emph{WT}):\\
-              Datensatz wird im Cache und direkt im Hauptspeicher aktualisiert.
-
-              \emph{Vorteile}: keine Probleme mit Datenkonsistenz im Hauptspeicher\\
-              \emph{Nachteile}: hoher Aufwand für Schreiboperationen
-        \item \textbf{write-back} (\emph{WB}):\\
-              Datensatz wird im Cache aktualisiert und erst dann in den Hauptspeicher geschrieben, wenn der entsprechende Cacheblock aus dem Cache verdrängt wird.
-
-              \emph{Vorteile}: niedrige Belastund der Systembusse, keine Wartezyklen\\
-              \emph{Nachteile}: fehlende Datenkonsistenz
-    \end{itemize}
-\end{defi}
-
-\begin{defi}{Cache-Schreibzugriffe}
-    Findet ein Schreibzugriff auf Speicherzelle $A$ statt, wird geprüft, ob Speicherzelle $A$ bereits im Cache liegt.
-    \begin{itemize}
-        \item \textbf{$A$ liegt im Cache} (\emph{cache hit}):\\
-              Datensatz wird im Cache (und im Hauptspeicher) aktualisiert.
-        \item \textbf{$A$ liegt nicht im Cache} (\emph{cache miss}):\\
-              Datensatz wird im Hauptspeicher geschrieben, Inhalt des Caches wird nicht verändert.
-    \end{itemize}
-\end{defi}
-
-\begin{defi}{Cache Misses}
-    \begin{itemize}
-        \item \textbf{Capacity Miss}:
-              \subitem - tritt auf, wenn Datensatz bereits im Cache war, aber \emph{bereits verdrängt} wurde
-              \subitem (aufgrund mangelnder Kapazität)
-              \subitem - hauptsächlich bei VA Caches
-        \item \textbf{Compulsory Miss}:
-              \subitem - tritt auf, wenn ein Datensatz das \emph{erste Mal} verwendet wird
-              \subitem - unabhängig vom Typ des Caches
-        \item \textbf{Conflict Miss}:
-              \subitem - tritt auf, wenn Datensatz bereits im Cache war, aber \emph{bereits verdrängt} wurde
-              \subitem (weil ein anderer Cacheblock an entsprechende Stelle gelagert werden sollte)
-              \subitem - vor allem bei DA Caches
-    \end{itemize}
-\end{defi}
-
-\begin{defi}{RAID}
-    \textbf{RAID}: \textbf{R}edundant \textbf{A}rray of \textbf{I}ndependent \textbf{D}isks
-
-    Ein \emph{RAID} besteht aus mindestens zwei Festplatten und zielt auf die \emph{Verbesserung einer Eigenschaft ab}:
-    \begin{itemize}
-        \item Erhöhung der Ausfallsicherheit
-        \item Steigerung der Datentransferrate
-        \item Erweiterung der Speicherkapazität
-        \item Möglichkeit des Austauschs von Festplatten im laufenden Betrieb
-        \item Kostenreduktion durch Einsatz mehrerer kostengünstiger Festplatten
-    \end{itemize}
-\end{defi}
-
-\begin{defi}{RAID-Level}
-    Die genaue Funktionsweise des RAID wird durch das sogenannte \emph{RAID-Level} angegeben.
-
-    \begin{itemize}
-        \item \textbf{RAID 0}:
-              \subitem - höhere Transferraten durch \emph{Striping}
-              \subitem - Daten werden auf mehrere Festplatten verteilt
-              \subitem - beim Lesen und Schreiben können mehrere Festplatten parallel verwendet werden
-              \subitem \emph{Nachteil}: fällt eine Festplatte aus, sind meist alle Daten verloren
-        \item \textbf{RAID 1}:
-              \subitem - erhöhte Ausfallsicherheit durch \emph{Mirroring}
-              \subitem - Daten in gleicher Weise auf mehrere Festplatten gleichzeitig abgelegt
-              \subitem - einzelne Daten \emph{können} auch parallel von mehreren Festplatten gelesen werden
-              \subitem \emph{Nachteil}: wird eine Datei gelöscht, wird sie auf allen Platten gelöscht (kein Backup!)
-        \item \textbf{RAID 5}:
-              \subitem - versucht Vorteile von RAID 0 und RAID 1 zu vereinen
-              \subitem - höhere Ausfallsicherheit bei höherer Datentransferrate
-              \subitem - besteht aus mindestens drei Festplatten
-              \subitem - Verwendet Variante von \emph{Striping}:
-              \subsubitem - nicht auf alle $n$ Festplatten verteilt
-              \subsubitem - auf allen Festplatten Paritätsinformationen zu Daten auf anderen $n-1$ Platten
-              \subsubitem - kann Ausfall einer Festplatte kompensieren
-    \end{itemize}
-
-
-    \begin{center}
-        \includegraphics[]{images/raid0.pdf}
-
-        \includegraphics[]{images/raid1.pdf}
-
-        \includegraphics[]{images/raid5.pdf}
-    \end{center}
-
-    Merhere RAID-Systeme eines Typs können auch zu einem RAID-System zusammengefasst werden (z.B. \emph{RAID 100}, \emph{RAID 01}, \emph{RAID 10}, \ldots).
-\end{defi}
-
-\begin{bonus}{HDD, SSD}
-    \textbf{HDD} (Hard Disk Drive, \emph{Festplatte}):
-    \begin{itemize}
-        \item Gehäuse der Festplatte beinhaltet mehrere, auf einer Achse übereinander montierten, runden Platten, welche mit einer magnetisierbaren Schicht überzogen sind
-        \item Schreib-/Leseköpfe werden durch einen zentralen Kamm über die Platten bewegt
-        \item \glqq Landing Zone\grqq zum Parken der Köpfe (Berührung $\to$ Datenverlust)
-        \item Platten rotieren mit konstanter Umdrehungszahl (5400-15000 rpm)
-        \item Kenngrößen:
-              \subitem - kontinuierliche Übertragungsrate (\emph{sustained data rate})
-              \subitem - mittlere Zugriffszeit (\emph{(data) access time}), bestehend aus:
-              \subsubitem - Spurwechselzeit (\emph{seek time})
-              \subsubitem - Latenzzeit (\emph{latency})
-              \subsubitem - Kommando-Latenz (\emph{controller overhead})
-    \end{itemize}
-
-
-    \textbf{SSD} (Solid State Drive):
-    \begin{itemize}
-        \item keine mechanischen Bauteile
-        \item niedriger Energieverbrauch
-        \item hoher Datendurchsatz
-        \item hoher Preis pro Speichereinheit
-    \end{itemize}
-\end{bonus}
-
-\begin{bonus}{Daten- und Adressbus}
-    Einzelne Komponenten sind über Leitungen, sogenannte \emph{Busse} verbunden.
-    \begin{itemize}
-        \item \emph{Datenbus} (bi-direktional)
-        \item \emph{Adressbus} (uni-direktional, leitet Adressanfragen der CPU an RAM oder Cache weiter)
-    \end{itemize}
-\end{bonus}
-
-\subsection{Parallele Rechnerarchitekturen}
-
-\begin{defi}{Flynn'sche Klassifikation (Flynn'sche Taxonomie)}
-    \begin{center}
-        \includegraphics[]{images/flynn.pdf}
-    \end{center}
-
-    \begin{itemize}
-        \item \emph{SISD} entspricht der Von-Neumann-Architektur
-        \item \emph{MIMD} entspricht dem heutigen Mehrprozessorsystem
-        \item \emph{SIMD} entspricht dem Aufbau einer Grafikkarte (genutzt in HPC)
-        \item \emph{MISD} eher ungebräuchlich.
-    \end{itemize}
-\end{defi}
-
-\begin{defi}{Shared-Memory Systeme}
-    Ein \emph{Shared-Memory System} teilt den vorhandenen RAM unter den verfügbaren Prozessorenkernen auf.
-    Das bedeutet, dass Daten zwischen den einzelnen Prozessorkernen \emph{implizit über den RAM} verteilt werden können, da
-    jeder Kern Zugriff auf den RAM hat.
-
-    \textbf{SMP} (\emph{symmetric multi processing}) skaliert vergleichweise schlecht.
-    Das liegt daran, dass an die vorhandene Basis der Von-Neumann-Architektur einfach
-    weitere Prozessorkerne angeschlossen werden. Da sich diese Prozessorkerne
-    nun aber das vorhandene Bus-System teilen müssen, entsteht an dieser Stelle ein
-    \emph{Flaschenhals}.
-
-    \textbf{ccNUMA} (\emph{cache-coherent non-uniform memory architecture}) soll dieses Problem, speziell im Bereich HPC, beheben.
-    Dabei wird der vorhandene Hauptspeicher auf mehrere Memory-Controller aufgeteilt.
-    Jeder Prozessor ist dann an einen eigenen Memory-Controller angeschlossen.
-    Dabei kann grundsätzlich weiterhin jeder Kern auf den gesamten RAM zugreifen.
-    Es kann nur sein, dass der Zugriff länger dauert, wenn der betreffende Teil des RAMs von einem anderen Memory-Controller verwaltet wird.
-\end{defi}
-
-\begin{defi}{Distributed-Memory System}
-    Ein \emph{Distributed-Memory System} verbindet mehrere
-    \emph{unabhängige Recheneinheiten}, sodass Daten \emph{explizit} über eine Netzwerkverbindung
-    zwischen dieses Recheneinheiten verteilt werden müssen.
-
-    Dieser Ansatz skaliert sehr gut, d.h. es ist
-    ohne Weiteres möglich weitere Recheneinheiten anzuschließen, ohne die Gesamtperformance
-    des Systems zu beeinträchtigen
-\end{defi}
-
-\begin{bonus}{Speedup und Effizienz}
-    \emph{Speed Up} und \emph{Effizienz} beurteilen die Güte paralleler Programmausführung, indem sie \emph{Zeitersparnis} und die \emph{Anzahl der verwendeten Prozessorkerne} in Relation setzen.
-
-    Sei $T(p)$ die Zeit zur Programmausführung bei Verwendung von $p$ CPUs. Dann sind der \emph{Speed Up} $S(p)$ und die Effizienz $E(p)$ definiert wie folgt:
-    $$
-        S(p) = \frac{T(1)}{T(p)} \qquad  \qquad E(p) = \frac{S(p)}{p}
-    $$
-    Der \emph{Speed Up} gibt an, wieviel schneller die Programmausführung ist.
-    Die Effizienz gibt an, wie gut die verwendeten Prozessorkerne genutzt worden sind.
-
-    Im Idealfall ist $S(p) = p$ und $E(p) = 1$.
-\end{bonus}
-
-\begin{bonus}{Amdahl's Law}
-    Nach Amdahl wird der Geschwindigkeitszuwachs vor allem durch den sequentiellen Anteil des Problems beschränkt, da sich dessen Ausführungszeit durch Parallelisierung nicht verringern lässt.
-
-    Der \emph{Speed Up} nach Amdahl ist wie folgt definiert ($f \in (0, 1]$: serieller Teil des Programms):
-    $$
-        S(p) = \frac{T(1)}{f \cdot T(1) + (1-f) \cdot \frac{T(1)}{p}} = \frac{1}{f + \frac{1-f}{p}}
-    $$
-\end{bonus}
-
-\section{Betriebssysteme}
-
-\begin{defi}{Betriebssystem}
-    Das \emph{Betriebssystem} liegt als Softwareschicht zwischen dem Rechner bzw. der \\ \emph{Software-Hardwareschnittstelle}, die das BIOS zur Verfügung stellt, und den Anwenderprogrammen.
-    Das heißt, dass ein Endnutzer nur mit dem Betriebssystem, den vom Betriebssystem bereitgestellten Dienstprogrammen und den Anwenderprogrammen in Kontakt kommt.
-
-    \begin{center}
-        \includegraphics[]{images/betriebssysteme.pdf}
-    \end{center}
-\end{defi}
-
-\begin{bonus}{Anforderungen an ein Betriebssystem}
-    \begin{itemize}
-        \item Hohe Zuverlässigkeit und Leistung
-        \item Einfache Bedienbarkeit und Wartbarkeit
-        \item Niedrige Kosten
-    \end{itemize}
-\end{bonus}
-
-\begin{bonus}{Batchsysteme}
-    \emph{Batchsysteme} sind dazu gedacht, Rechenaufgaben ohne Nutzereingabe abzuarbeiten.
-    Dazu gibt es eine \emph{Job Queue}, in welche Aufgaben eingestellt werden.
-    Diese Aufgaben werden dann bearbeitet und die Ergebnisse an den Nutzer ausgegeben.
-\end{bonus}
-
-\begin{bonus}{Dialogsysteme}
-    \emph{Dialogsysteme} sind auf eine Interaktion mit dem Benutzer ausgelegt.
-    Sie sind die wohl geläufigste Form von Betriebssystemen, da diese Form auf z.B. Desktop-Computern eingesetzt wird.
-
-    Dialogsysteme werden noch einmal unterteilt in \emph{Single User}- und \emph{Multi-User-Systeme}.
-\end{bonus}
-
-\begin{bonus}{Echtzeitsysteme}
-    \emph{Echtzeitsysteme} sind reaktive Systeme, die mit Hilfe von Sensoren Ereignisse registrieren und anhand von Aktoren darauf reagieren.
-    Dabei ist die zeitliche Abfolge bzw. die Dauer der Ausführung von Interesse.
-\end{bonus}
-
-\subsection{Prozess}
-
-\begin{defi}{Prozess}
-    Ein \emph{Prozess} ist die Abstraktion eines in Ausführung befindelichen Programms.
-
-    Er besteht aus den \emph{Programmbefehlen} und dem \emph{Prozesskontext}.
-
-    Der \emph{Prozesskontext} besteht aus dem privaten Adressraum des Prozessors, geöffneten Streams und abhängigen Prozessen.
-\end{defi}
-
-\begin{defi}{Prozesszustände}
-    \begin{center}
-        \includegraphics[]{images/prozesszustaende.pdf}
-    \end{center}
-    \begin{enumerate}
-        \item Der Prozess muss auf ein externes Ereignis warten.
-        \item Die Zeitscheibe des Prozesses ist abgelaufen, oder ein höher priorisierter Prozess muss ausgeführt werden.
-        \item Der Prozess bekommt eine neue Zeitscheibe zugeteilt.
-        \item Das externe Ereignis, auf das der Prozess gewartet hat, ist eingetreten.
-    \end{enumerate}
-\end{defi}
-
-\begin{bonus}{Multitasking}
-    \textbf{Preemptives Multitasking}:
-    \begin{itemize}
-        \item Betriebssystem entscheidet, wann welcher Prozess zur Ausführung kommt
-        \item Benutzer erhält Eindruck von Parallelität
-    \end{itemize}
-
-    \textbf{Kooperatives Multitasking}:
-    \begin{itemize}
-        \item Prozess bestimmt selbst, wann er den Prozessor abgibt
-        \item \emph{Nachteile}
-              \subitem - z.B. Endlosschleifen können das gesamte System zum Absturz bringen
-              \subitem - das Betriebssystem kann nicht berechnen, wann der Prozessor wieder frei ist
-    \end{itemize}
-\end{bonus}
-
-\begin{defi}{Scheduling}
-    Die Zuteilung von Zeitscheiben wird \emph{Scheduling} genannt und ist der Kern der Prozessverwaltung.
-    Das Scheduling sollte dabei jederzeit die folgenden Eigenschaften erfüllen:
-    \begin{itemize}
-        \item \emph{Fairness}: Jeder Prozess erhält einen gerechten Anteil der CPU-Zeit.
-        \item \emph{Effizienz}: Die CPU und andere Ressourcen sind möglichst vollständig ausgelastet.
-    \end{itemize}
-\end{defi}
-
-\begin{bonus}{Priorität}
-    \textbf{Statische Priorität}:
-    \begin{itemize}
-        \item Jeder Prozess erhält beim Start eine \emph{feste Priorität}
-        \item Prozess mit \emph{höchster Priorität} bekommt als nächstes eine Zeitscheibe zugeteilt
-        \item Oft in Echtzeitsystemen verwendet
-    \end{itemize}
-
-    \textbf{Dynamische Priorität}:
-    \begin{itemize}
-        \item Jeder Prozess erhält beim Start eine \emph{Anfangspriorität}
-        \item Prozess mit \emph{höchster Priorität} bekommt als nächstes eine Zeitscheibe zugeteilt
-        \item Prioritäten der Prozesse werden \emph{dynamisch geändert}
-    \end{itemize}
-\end{bonus}
-
-\begin{algo}{Scheduling: FIFO (First In First Out)}
-    Prozesse werden nach \emph{Reihenfolge} ihres Einfügens in die \emph{Job-Queue} bearbeitet.
-    \begin{itemize}
-        \item Zuteilung der CPU findet nur statt, wenn laufender Prozess wartet oder sich beendet
-        \item Jeder Prozess kommt garantiert an die Reihe
-        \item Kurze Prozesse müssen unter Umständen sehr lange warten, bis sie ausgeführt werden
-    \end{itemize}
-\end{algo}
-
-\begin{algo}{Scheduling: SJF (Shortest Job First)}
-    Prozesse werden aufsteigend nach ihrer \emph{geschätzten Ausführungszeit} bearbeitet.
-    \begin{itemize}
-        \item Große Prozesse kommen möglicherweise nie an die Reihe, wenn stets kleinere dazukommen
-        \item Wartezeit auf das Ergebnis eines Prozesses sich in etwa proportional zur Ausführungszeit
-    \end{itemize}
-\end{algo}
-
-\begin{algo}{Scheduling: MLFQ (Multilevel Feedback Queue)}
-    Bei diesem Ansatz gibt \emph{mehrere FIFO-Queues}, denen jeweils
-    eine \emph{Priorität} zugeordnet ist.
-
-    Ein neuer Prozess wird immer in der Queue mit
-    \emph{höchster Priorität} eingeordnet.
-
-    Wird der Prozess während der ersten Zeitscheibe fertig,
-    so verlässt er das System.
-
-    Gibt er die CPU freiwillig ab, beispielsweise weil er
-    durch das Warten auf ein externes Ereignis blockiert wird, wird er, sobald er wieder
-    bereit ist, in \emph{dieselbe Queue wieder einsortiert} und dort weiter ausgeführt.
-
-    Verbraucht der Prozess seine Zeitscheibe vollständig, so wird er in die \emph{nächst-niedriger priorisierte FIFO-Queue} eingereiht. Dort gelten wieder dieselben Regeln wie vorher.
-
-    Verbraucht der Prozess immer weiter seine Zeitscheiben vollständig, kommt er
-    schließich in der \emph{am niedrigsten priorisierten Queue} an.
-    Dort verweilt er, bis er abgearbeitet wurde, d.h. es gibt \emph{keine Möglichkeit} wieder in höher priorisierte Queues
-    eingestuft zu werden.
-
-    Wieviele FIFO-Queues es gibt, ist vom konkreten Einsatzszenario abhängig.
-\end{algo}
-
-\subsection{Speicherverwaltung}
-
-\begin{defi}{Reale Speicherverwaltung}
-    Jedem Prozess wird ein zusammenhängener Block im Hauptspeicher zugeteilt.
-    Wird in diesem Kontext der Arbeitsspeicher direkt aus den Prozessen heraus adressiert, spricht man von \emph{realer Speicherverwaltung}.
-
-    Das bedeutet auch, dass die Größe des physikalisch vorhandenen Hauptspeichers die Anzahl der gleichzeitig ausführbaren Prozesse begrenzt.
-
-    \emph{Nachteile}:
-    \begin{itemize}
-        \item Es muss Platz für das \emph{gesamte Programm und die Daten} gefunden werden.
-        \item Es kannt nicht mehr Speicher genutzt werden, als \emph{physikalisch vorhanden}.
-        \item Anforderung, zusammenhängender Speicherblöcke zu finden, verschärft Problem der \emph{Fragmentierung}.
-    \end{itemize}
-\end{defi}
-
-\begin{bonus}{Fragmentierung}
-    \emph{Fragmentierung} passiert dann, wenn mehrere, kleine Blöcke im Hauptspeicher frei sind und unter der Prämisse, dass einem
-    Prozess ein zusammenhängender Block im Hauptspeicher zugeordnet werden
-    muss, dies eventuell zu einer Situation führt, in der kein neuer Prozess gestartet
-    werden kann, obwohl in Summe genügend Hauptspeicher frei wäre.
-\end{bonus}
-
-\begin{defi}{Swapping}
-    Beim \emph{Swapping} wird der
-    Hauptspeicherinhalt eines Prozesses auf den \emph{Hintergrundspeicher}, beispielsweise
-    eine Festplatte (HDD), \emph{ausgelagert}, um Platz für andere Prozesse zu schaffen.
-
-    Bekommt dann der Prozess, dessen Daten gerade auf dem Hintergrundspeicher liegen,
-    die CPU zugeteilt, müssen seine Daten \emph{erneut in den Hauptspeicher geladen werden},
-    wahrscheinlich nachdem die Daten eines anderen Prozesses ausgelagert wurden.
-\end{defi}
-
-\begin{defi}{Virtuelle Speicherverwaltung}
-    Jedem Prozess wird ein \emph{scheinbar zusammenhängender Speicherbereich} zur Verfügung gestellt.
-    Tatsächlich besteht der Speicher des Prozesses aus nicht zwangsläufig zusammenhängenden \emph{virtuelle Pages}.
-
-    Der Prozess kann seinen Speicher mit \emph{virtuellen Adressen} beginnend bei 0 adressieren.
-
-    Die Gesamtheit aller virtuellen Adressen wird als \emph{virtueller Adressraum} bezeichnet.
-\end{defi}
-
-\begin{defi}{Virtuelle Pages}
-    \emph{Virtuelle Pages} werden auf Blöcke im Hauptspeicher gleicher Größe abgebildet.
-
-    Hier kann auch \emph{Swapping} genutzt werden. In diesem Fall aber für einzelne Pages, nicht für den gesamten Hauptspeicherinhalt des Prozessors.
-\end{defi}
-
-\begin{defi}{Pagetable}
-    Beim Zugriff auf eine virtuelle Speicheradresse durch einen Prozess muss diese
-    Adresse in eine physikalische Adresse umgewandelt werden. Das geschieht anhand
-    der \emph{Pagetable}, die das Betriebssystem \emph{für jeden Prozess} erstellt und aktualisiert.
-
-    Da
-    die Pagetable virtuelle Pages auf physikalische Pages gleicher Größe abbildet, gibt es einen Teil der Adresse, der sogenannte \emph{Offset}, der die Position der Daten innerhalb
-    der Page angibt.
-
-    Abhängig von
-    der Größe der Pages besteht das Offset aus $m$ Bits.
-    Für eine Pagegröße von 1MB
-    werden beispielsweise 20 Bits als Offset benötigt.
-
-    Der Rest der Adresse, die Seitennummer,
-    muss dann anhand der Pagetable in die Basisadresse umgesetzt werden,
-    um die Adresse im physikalischen Speicher zu erhalten. Da die Seitennummer aus
-    $n$ Bits besteht, kann die Pagetable maximal $2^n$ Einträge enthalten.
-\end{defi}
-
-\begin{example}{Pagetable}
-    Die Länge einer Adresse sei 16 Bit, aufgeteilt in je 8 Bit für Offset und Seitennummer.
-
-    Es sei außerdem folgende Seitentabelle gegeben:
-
-    \begin{center}
-        \begin{tabular}{|c|c|c|}
-            \hline
-            \textbf{Eintrag} & \textbf{Gültig} & \textbf{Basisadresse} \\
-            \hline
-            00               & Nein            & -                     \\
-            01               & Ja              & 0x17                  \\
-            02               & Ja              & 0x20                  \\
-            03               & Ja              & 0x08                  \\
-            04               & Nein            & -                     \\
-            05               & Ja              & 0x10                  \\
-            \hline
-        \end{tabular}
-    \end{center}
-
-    Dann können virtuelle Adressen anhand dieser Pagetable wie folgt umgesetzt werden:
-
-    \begin{center}
-        \begin{tabular}{|c|c|}
-            \hline
-            \textbf{virtuelle Adresse} & \textbf{physikalische Adresse}      \\
-            \hline
-            0x083A                     & ungültig (Seite 8 existiert nicht)  \\
-            0x01FF                     & 0x17FF (Seite 1, Basisadresse 0x17) \\
-            0x0505                     & 0x1005 (Seite 5, Basisadresse 0x10) \\
-            0x043A                     & ungültig (Seite 4 ungültig)         \\
-            \hline
-        \end{tabular}
-    \end{center}
-
-    \emph{Hinweis}: Ist eine Adresse ungültig, wurde die dazugehörige Page in den Hintergrundspeicher ausgelagert. In diesem Fall muss die physikalische Page in den RAM geladen und die Pagetable aktualisiert werden.
-\end{example}
-
-\begin{bonus}{Paging on Demand}
-    Das Vorgehen, aktuell
-    unbenutzte Pages aus dem Hauptspeicher auf den Hintergrundspeicher auszulagern
-    wird auch als \emph{Paging on Demand} bezeichnet.
-    Das Ziel dabei ist, Arbeitsspeicher
-    für andere Prozesse freizugeben.
-
-    Dabei kann ein Prozess entweder Platz für eine
-    bestimmte Anzahl von physikalischen Pages zugewiesen bekommen, die sich im
-    Laufe der Prozessabarbeitung nicht ändert, oder es wird dynamisch anhand der aktuellen
-    Speicherauslastung entschieden, wieviel Platz ein Prozess belegen darf.
-\end{bonus}
-
-\begin{algo}{Speicherverwaltung: FIFO (First In First Out)}
-    Beim \emph{FIFO}-Verfahren wird
-    diejenige Page ausgelagert, welche sich schon am längsten im Hauptspeicher
-    befindet. Dazu muss in der Pagetable festgehalten werden, wann welche
-    Page in den Hauptspeicher geladen wurde.
-\end{algo}
-
-\begin{algo}{Speicherverwaltung: LRU/LFU (Least Recently / Frequently Used)}
-    Bei \emph{LRU}
-    wird mitgehalten, wieviele Ladevorgänge seit der letzten Benutzung einer
-    Page vorgenommen wurden. Das heißt, dass im Gegensatz zu FIFO, der
-    Kontrollzustand bei der Verwendung einer Page wieder auf \glqq 0\grqq gesetzt wird.
-\end{algo}
-
-\begin{example}{Speicherverwaltung}
-    Seitenanforderungen: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
-
-    \textbf{FIFO-Strategie:}
-
-    \begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}
-        \hline
-        \multicolumn{1}{|c}{\textbf{Referenzfolge}} & \multicolumn{1}{c|}{} & 1                  & 2                  & 3                  & 4                  & 1                  & 2                  & 5                  & 1 & 2 & 3                  & 4                  & 5 \\
-        \hline
-        \hline
-        \multirow{3}{*}{\textbf{Arbeitsspeicher}}   & Page 1                & \textcolor{red}{1} & 1                  & 1                  & \textcolor{red}{4} & 4                  & 4                  & \textcolor{red}{5} & 5 & 5 & 5                  & 5                  & 5 \\
-                                                    & Page 2                &                    & \textcolor{red}{2} & 2                  & 2                  & \textcolor{red}{1} & 1                  & 1                  & 1 & 1 & \textcolor{red}{3} & 3                  & 3 \\
-                                                    & Page 3                &                    &                    & \textcolor{red}{3} & 3                  & 3                  & \textcolor{red}{2} & 2                  & 2 & 2 & 2                  & \textcolor{red}{4} & 4 \\
-        \hline
-        \hline
-        \multirow{3}{*}{\textbf{Kontrollzustand}}   & Page 1                & 0                  & 1                  & 2                  & 0                  & 1                  & 2                  & 0                  & 1 & 2 & 3                  & 4                  & 5 \\
-                                                    & Page 2                & -                  & 0                  & 1                  & 2                  & 0                  & 1                  & 2                  & 3 & 4 & 0                  & 1                  & 2 \\
-                                                    & Page 3                & -                  & -                  & 0                  & 1                  & 2                  & 0                  & 1                  & 2 & 3 & 4                  & 0                  & 1 \\
-        \hline
-    \end{tabular}
-
-    9 Einlagerungen
-
-    \textbf{LRU-Strategie:}
-
-    \begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}
-        \hline
-        \multicolumn{1}{|c}{\textbf{Referenzfolge}} & \multicolumn{1}{c|}{} & 1                  & 2                  & 3                  & 4                  & 1                  & 2                  & 5                  & 1 & 2 & 3                  & 4                  & 5                  \\
-        \hline
-        \hline
-        \multirow{3}{*}{\textbf{Arbeitsspeicher}}   & Page 1                & \textcolor{red}{1} & 1                  & 1                  & \textcolor{red}{4} & 4                  & 4                  & \textcolor{red}{5} & 5 & 5 & \textcolor{red}{3} & 3                  & 3                  \\
-                                                    & Page 2                &                    & \textcolor{red}{2} & 2                  & 2                  & \textcolor{red}{1} & 1                  & 1                  & 1 & 1 & 1                  & \textcolor{red}{4} & 4                  \\
-                                                    & Page 3                &                    &                    & \textcolor{red}{3} & 3                  & 3                  & \textcolor{red}{2} & 2                  & 2 & 2 & 2                  & 2                  & \textcolor{red}{5} \\
-        \hline
-        \hline
-        \multirow{3}{*}{\textbf{Kontrollzustand}}   & Page 1                & 0                  & 1                  & 2                  & 0                  & 1                  & 2                  & 0                  & 1 & 2 & 0                  & 1                  & 2                  \\
-                                                    & Page 2                & -                  & 0                  & 1                  & 2                  & 0                  & 1                  & 2                  & 0 & 1 & 2                  & 0                  & 1                  \\
-                                                    & Page 3                & -                  & -                  & 0                  & 1                  & 2                  & 0                  & 1                  & 2 & 0 & 1                  & 2                  & 0                  \\
-        \hline
-    \end{tabular}
-
-    10 Einlagerungen
-\end{example}
-
-\newpage
-\subsection{Dateisystemverwaltung}
-
-\begin{defi}{BIOS (Basic Input/Output System)}
-    Das \emph{BIOS}:
-    \begin{itemize}
-        \item ist die \emph{Firmware} bei x86-PCs
-        \item liegt im \emph{nichtflüchtigen Speicher} auf der Hauptplatine des PCs
-        \item leitet den \emph{Start} des \emph{Betriebssystems} ein
-    \end{itemize}
-\end{defi}
-
-\begin{defi}{UEFI (Unified Extensible Firmware Interface)}
-    \emph{UEFI} ist die zentrale Schnittstelle zwischen:
-    \begin{itemize}
-        \item der \emph{Firmware}
-        \item den \emph{einzelnen Komponenten} eines Rechners
-        \item und dem \emph{Betriebssystem}
-    \end{itemize}
-\end{defi}
-
-\begin{bonus}{MBR (Master Boot Record)}
-    Der \emph{MBR} besteht aus insgesamt 512 Byte, die sich auf 446 Byte
-    für einen (optionalen) Bootloader, 64 Byte für die \emph{Partitionstabelle} und 2 Byte
-    für eine \emph{} (0xAA55) aufteilen. Die Magic Number dient dazu, einen
-    gültigen MBR zu identifizieren.
-
-    In der Partitionstabelle können maximal 4 Partitionen
-    definiert werden, d.h. die Festplatte kann in maximal 4 logische Einheiten aufgeteilt
-    werden.
-\end{bonus}
-
-\begin{bonus}{GPT (GUID Partition Table)}
-    Mit der Einführung von UEFI wurden auch die Limitierungen des
-    MBR aufgehoben und die GPT als Nachfolger definiert.
-
-    Die \emph{GPT} beinhaltet zu Beginn
-    aus Kompatibilitätsgründen einen MBR, sodass ein hybrider Betrieb möglich
-    ist. In der GPT können bis zu 128 Partitionen abgelegt werden.
-
-    Zur Absicherung der
-    GPT wird eine exakte Kopie der GPT am Ende des Datenträgers abgelegt.
-\end{bonus}
-
-\begin{defi}{Dateisystem}
-    Ein Dateisystem ist im Prinzip eine Ablageorganisation für Daten auf einem Datenträger des Computers.
-    Das Dateisystem muss sicherstellen,
-    dass Dateien \emph{lesend und schreibend geöffnet} und auch wieder \emph{geschlossen} werden
-    können. Das bedeutet, dass Dateinamen auf physikalische Adressen auf dem
-    Datenträger abgebildet werden müssen.
-
-    Spezielle Eigenschaften des Datenträgers
-    (Festplatte, USB-Stick, ...) müssen berücksichtigt werden.
-
-    Generell bieten
-    alle (modernen) Dateisysteme folgende Attribute:
-    \begin{itemize}
-        \item Dateiname
-        \item Ablageort (Ordner bzw. Verzeichnis)
-        \item Dateigröße
-        \item Zugriffsrecht
-    \end{itemize}
-\end{defi}
-
-\begin{defi}{Lineare Dateisysteme}
-    Bei linearen Dateisystemen werden Daten direkt hintereinander auf den Datenträger
-    geschrieben. Das bedeutet, dass wahlfreier Zugriff nicht möglich ist. Daher finden
-    diese Dateiysteme heutzutage nur noch Anwendung in Bereichen, in denen es nicht
-    primär auf Geschwindigkeit ankommt.
-\end{defi}
-
-\begin{defi}{Hierarchische Dateisysteme}
-    Daten werden auf hierarchischen Dateisystemen in einer Verzeichnisstruktur
-    abgelegt.
-
-    Diese Art von Dateisystem ist die wohl verbreiteste auf
-    modernen Computern und kann auf Festplatten, SSDs, USB-Sticks, SD-Karten und
-    sonstigen herkömmlichen Datenträgern verwendet werden.
-\end{defi}
-
-\begin{defi}{Netzwerkdateisysteme}
-    In Netzwerkdateisystemen wird entfernter
-    Speicher auf einem Server wie ein lokales Medium behandelt. Das Betriebssystem
-    muss dann die Zugriffe auf Dateien in Netzwerkkommunikation umwandeln.
-    Für den Nutzer
-    eines Betriebsystems stellt sich Netzwerkspeicher allerdings in der Regel wie ein
-    hierarchisches Dateisystem dar.
-\end{defi}
-
-\begin{bonus}{Sicherheitsaspekte}
-    \textbf{Paralleler Zugriff im Multitasking}:
-    \begin{itemize}
-        \item Bereitstellung von Locks für den Dateizugriff
-    \end{itemize}
-
-    \textbf{Stromausfall während einer Schreiboperation}:
-    \begin{itemize}
-        \item Es muss Datenkonsistenz gewährleistet werden
-        \item Atomare Operationen, welche entweder abgeschlossen oder ausstehend sind
-              \subitem $\to$ Journalingdateisysteme
-    \end{itemize}
-\end{bonus}
-
-\begin{defi}{Journalingdateisysteme}
-    Bei einem Journalingdateisystem werden alle Aktionen auf der Festplatte protokolliert
-    und erst als gültig aufgefasst, nachdem das Beenden der Aktion auf dem Dateisystem
-    im \emph{Journal} (Protokoll) vermerkt wurde.
-
-    \begin{itemize}
-        \item \emph{Metadatenjournaling}:
-              \subitem - Konsistenz des Dateisystems
-        \item \emph{Fulljournaling}:
-              \subitem - Konsistenz des Dateisystems
-              \subitem - Konsistenz der Dateiinhalte
-    \end{itemize}
-
-\end{defi}
-
-\section{Virtualisierung}
-
-\begin{defi}{Virtualisierung}
-    \emph{Virtualisierung} bezeichnet Methoden, die es erlauben, Ressourcen
-    eines Computers \emph{zusammenzufassen oder aufzuteilen}.
-
-    Dies wird erreicht, indem real existierende Hardware unter
-    Zuhilfenahme einer Softwareschicht zu virtueller Hardware \emph{abstrahiert} wird.
-
-    Dabei können mehrere Szenarien unterschieden werden:
-    \begin{itemize}
-        \item Partitionierung
-        \item Aggregation
-        \item Emulation
-        \item Isolation
-    \end{itemize}
-    \vspace{1em}
-    \begin{center}
-        \includegraphics[]{images/virtualisierung.pdf}
-    \end{center}
-\end{defi}
-
-\begin{defi}{Hypervisor / Virtual Machine Monitor (VMM)}
-    Der \emph{Hypervisor} ist ein Stück Soft- oder Hardware, das  die Umsetzung
-    zwischen der \emph{virtuellen Maschine} und der \emph{physikalischen Hardware} vornimmt.
-
-    \textbf{Typ-1-Hypervisor}:
-    \begin{itemize}
-        \item läuft direkt auf physikalischer Hardware
-    \end{itemize}
-
-    \textbf{Typ-2-Hypervisor}:
-    \begin{itemize}
-        \item läuft als Anwendung auf dem Hostsystem
-    \end{itemize}
-\end{defi}
-
-\subsection{Virtualisierungskonzepte}
-
-\begin{defi}{Paravirtualisierung}
-    \begin{itemize}
-        \item Funktionalitäten des Gast BS werden gezielt verändert (Kernel Anpassungen)
-        \item Gast-BS \glqq weiß\grqq, dass es sich in einer virtuellen Umgebung befindet
-        \item Gast-BS kann direkt mit dem Hypervisor interagieren, benötigt keine Hardware-Emulation
-    \end{itemize}
-
-    \emph{Vorteile}: gute Performance
-
-    \emph{Nachteile}: Gastsysteme nicht beliebig wählbar, hoher Aufwand für Kernel-Entwickler
-\end{defi}
-
-\begin{defi}{Hardware-unterstützte Virtualisierung}
-    \begin{itemize}
-        \item Neue Prozessortechnologien: CPUs besitzen Befehlssatz, der Virtualisierung unterstützt
-        \item Modifikation des Gast-BS soll vermieden werden, direkt durch Hardware gelöst
-        \item Hypervisor soll durch hardwarebasierte Speicherverwaltung entlastet werden
-    \end{itemize}
-
-    \emph{Vorteile}: Gast-BS muss nicht modifiziert werden, Gastsysteme frei wählbar
-
-    \emph{Nachteile}: kein gemeinsamer Standard, Virtualisierungsplattform muss Technologie unterstützen
-\end{defi}
-
-\begin{defi}{Hardware-Emulation}
-    \begin{itemize}
-        \item Innerhalb einer VM wird Standardhardware eines Rechners komplett oder teilweise simuliert
-        \item Emulator erzeugt Softwareschnittstellen, die vom Gast-BS angesprochen werden können
-        \item Emulator sorgt dafür, dass Befehle, die an simulierte Hardware gerichtet sind, für die physische Hardware des Hostsystems umgewandelt werden
-    \end{itemize}
-
-    \emph{Vorteile}: flexible Wahl der Gast-BS
-
-    \emph{Nachteile}: Performanceverlust durch hohen Virtualisierungsaufwand
-\end{defi}
-
-\begin{defi}{Betriebssystemvirtualisierung}
-    \begin{itemize}
-        \item Innerhalb des Host-BS werden Virtual Environments (VE) / Container erzeugt
-        \item In VE ist kein eigenständiges Betriebssystem installiert
-        \item Kernel-Bibliotheken und Geräte-Treiber des Hostsystems genutzt
-        \item Einige Individualdaten müssen für Container definiert werden \\ (z.B. Dateisystem, IP Adresse, Hostname)
-    \end{itemize}
-
-    \emph{Vorteile}: gute Performance, wenig Speicherbedarf
-
-    \emph{Nachteile}: keine freie Wahl des Gast-BS (gebunden an Hostsystem)
-\end{defi}
-
-\subsection{Cloud Computing}
-
-\begin{defi}{Cloud Computing}
-    \emph{Cloud Computing} ist im Wesentlichen ein Model um einen allgegenwärtigen,
-    bequemen, bedarfsgesteuerten Netzwerkzugang zu einem gemeinsamen Pool konfigurierbarer
-    Computer-Ressourcen zur Verfügung zu stellen. Zudem soll das Ganze
-    schnell und mit minimalem Verwaltungsaufwand und Interaktion mit dem Provider
-    funktionieren.
-\end{defi}
-
-\begin{defi}{Servicemodelle}
-    \textbf{Infrastructure as a Service} (IaaS):
-    \begin{itemize}
-        \item vom Anbieter verwaltete Infrastruktur
-        \item Nutzer muss verwendetes Betriebssystem und Software vollständig selbst verwalten
-    \end{itemize}
-
-    \textbf{Platform as a Service} (PaaS):
-    \begin{itemize}
-        \item virtuelle Plattform zur Verfügung gestellt (Betriebssystem, Entwicklungsplattform)
-        \item alles \glqq unterhalb\grqq der Plattform ist aber \emph{nicht} unter der Kontrolle des Nutzers
-    \end{itemize}
-
-    \textbf{Software as a Service} (SaaS):
-    \begin{itemize}
-        \item nur eine einzelne Anwendung zur Verfügung gestellt
-        \item alles \glqq unterhalb\grqq der Anwendung ist aber \emph{nicht} unter der Kontrolle des Nutzers
-    \end{itemize}
-\end{defi}
-
-\begin{bonus}{Charakterisken von Cloud Computing}
-    \begin{itemize}
-        \item Selbstverwaltung (On-demand self-service)
-        \item Breitband Internetzugang
-        \item Ressourcenbündelung
-        \item Elastizität
-        \item Leistungsmessung
-    \end{itemize}
-\end{bonus}
-
-\begin{defi}{Bereitstellungsmodelle}
-    \textbf{Private Cloud}:
-    \begin{itemize}
-        \item für eine ganz spezielle Nutzergruppe betrieben
-        \item kann auch von der Firma selbst verwaltet werden
-    \end{itemize}
-
-    \textbf{Community Cloud}:
-    \begin{itemize}
-        \item wird für verschiedene Nutzergruppen in einem bestimmten Kontext betrieben
-        \item in der Regel von einer der teilnehmenden Gruppen oder von externem Dienstleister bereitgestellt
-    \end{itemize}
-
-    \textbf{Public Cloud}:
-    \begin{itemize}
-        \item für beliebige Nutzer zur Verfügung steht
-        \item von beliebigem Anbieter betrieben
-    \end{itemize}
-
-    \textbf{Hybrid Cloud}:
-    \begin{itemize}
-        \item kombiniert mehrere der vorhergehenden Bereitstellungsmodelle
-        \item einzelnen Teile unabhängig voneinander, aber durch standardisierte Schnittstellen verbunden
-    \end{itemize}
-\end{defi}
-
-\section{Datenschutz und Sicherheit}
-\subsection{Datensicherheit}
-
-\begin{defi}{Kryptographie}
-    Kryptographie ist die Wissenschaft der Verschlüsselung von Informationen. Sie wird genutzt
-    um Informationen auf eine Art und Weise zu verändern, sodass ein Unbefugter
-    die Informationen nicht mehr lesen kann. Es soll nur dem tatsächlichen Adressaten
-    einer Nachricht möglich sein, diese auch zu lesen. Es geht also explizit nicht darum,
-    den Diebstahl von Informationen zu verhindern, sondern es geht darum, dass
-    entwendete Informationen nicht gelesen werden können.
-\end{defi}
-
-\begin{defi}{Transpositionschiffren}
-    Die Verschlüsselung wird durch Umordnung der Zeichen
-    im Klartext umgesetzt.
-\end{defi}
-
-\begin{defi}{Substitutionschiffren}
-    Die Verschlüsselung wird durch Ersetzung der Zeichen
-    im Klartext realisiert.
-
-    \textbf{Monoalphabetische Substitution}:
-    \begin{itemize}
-        \item Jedes Zeichen des Klartexts wird durch genau
-              ein eindeutiges Zeichen aus dem Geheimtextalphabet ersetzt, das für einen
-              gewählten Schlüssel immer gleich ist.
-    \end{itemize}
-
-    \textbf{Homophone Substitution}:
-    \begin{itemize}
-        \item Jedes Zeichen des Klartexts wird durch genau ein
-              anderes Zeichen aus einer eindeutigen Menge von Zeichen ersetzt, die für einen
-              gewählten Schlüssel immer gleich ist.
-    \end{itemize}
-
-    \textbf{Polyalphabetische Substitution}:
-    \begin{itemize}
-        \item Jedes Zeichen wird durch ein eindeutiges Zeichen
-              aus einem von mehreren geheimen Alphabeten ersetzt, die für einen gewählten
-              Schlüssel immer gleich sind. Die Alphabete werden dabei immer der Reihe nach
-              verwendet.
-    \end{itemize}
-\end{defi}
-
-\begin{example}{Cäsar Chiffre}
-    Im einfachsten Fall beinhalten $\mathfrak{P}$ und $\mathfrak{S}$ dieselben Zeichen und sind nur gegeneinander
-    um $k$ Zeichen verschoben. Diese Variante einer \emph{monoalphabetischen Substitutionschiffre} wird \emph{Cäsar Chiffre} genannt.
-
-    Alice wählt für die Verschlüsselung $k = 10$ und erhält damit die folgenden Alphabete:
-
-    \begin{center}
-        $\mathfrak{P}$: \texttt{A B C D E F G H I J K L M N O P Q R S T U V W X Y Z}\\
-        $\mathfrak{S}$: \texttt{J K L M N O P Q R S T U V W X Y Z A B C D E F G H I}\\
-    \end{center}
-
-    Da Alice $k = 10$ gewählt hat, beginnt das Geheimtextalphabet mit \texttt{J}, dem
-    zehnten Buchstaben des Alphabets. Die Verschlüsselung führt Alice durch,
-    indem sie jeden Buchstaben ihres Klartexts durch den entsprechenden Buchstaben
-    aus dem Geheimtextalphabet ersetzt.Werden die beiden Alphabete wie
-    weiter oben aufgeschrieben, ist das einfach der Buchstabe im Geheimtextalphabet
-    der direkt unter dem Buchstaben im Klartextalphabet steht. Damit ergibt
-    sich für die Nachricht \texttt{HALLO} der Geheimtext \texttt{QJUUX}. Bob kann den
-    Geheimtext dann entschlüsseln, indem er wiederum beide Alphabete untereinander
-    schreibt und jedem Buchstaben aus dem Geheimtext den zugehörigen
-    Buchstaben aus dem Klartextalphabet zuorndet, der dann genau darüber steht.
-\end{example}
-
-\begin{example}{Vigenère Chiffre}
-    Eine bekannte \emph{polyalphabetische Substitutionschiffre} ist die \emph{Vigenère Chiffre}.
-    Sie funktioniert im Prinzip wie die Cäsar-Chiffre, verwendet also verschobene
-    lateinische Alphabete zur Verschlüsselung. Wie viele Alphabete und wie
-    jedes von ihnen verschoben, wird durch den Schlüssel $k$ bestimmt, der in diesem
-    Fall ein Wort ist. Es gibt also soviele geheime Alphabete, wie es Zeichen
-    in $k$ gibt und jedes dieser Alphabete ist verschoben, so dass das $i$-te Alphabet
-    mit dem $i$-ten Zeichen von $k$ beginnt.
-    Alice wählt das Schlüsselwort $k = EDV$. Damit ergeben sich Klartext- und
-    Geheimalphabete wie folgt:
-
-    \begin{center}
-        $\mathfrak{P}$: \texttt{A B C D E F G H I J K L M N O P Q R S T U V W X Y Z}\\
-        $\mathfrak{S}_1$: \texttt{E F G H I J K L M N O P Q R S T U V W X Y Z A B C D}\\
-        $\mathfrak{S}_2$: \texttt{D E F G H I J K L M N O P Q R S T U V W X Y Z A B C}\\
-        $\mathfrak{S}_3$: \texttt{V W X Y Z A B C D E F G H I J K L M N O P Q R S T U}\\
-    \end{center}
-
-    Damit kann Alice den Klartext $M =$ \texttt{HALLOHALLO} verschlüsseln, indem Sie
-    die Buchstaben des Klartexts wie bei der Cäsar Chiffre zuordnet und dabei die
-    drei Geheimtextalphabete reihum verwendet. Da der Klartext mehr Zeichen
-    enthält, als es Geheimtextalphabete gibt, fängt sie nach jeweils drei Zeichen
-    wieder beim ersten Geheimtextalphabet an. Somit ergibt sich der Geheimtext
-    $C =$ \texttt{LDGPRCEOGS}.
-\end{example}
-
-\begin{defi}{Moderne Verschlüsselungsverfahren}
-    Moderne Verschlüsselungsverfahren werden, im Gegensatz zu klassischen Verfahren,
-    nicht mehr auf Zeichen einer natürlichen Sprache angewandt. Stattdessen werden
-    Zahlen bzw. Bits als Grundlage der Operationen verwendet. Damit können
-    beliebige Daten verschlüsselt werden, nicht mehr nur Text. Damit sind moderne
-    Verschlüsselungsverfahren den Anforderungen der heutigen digitalen Gesellschaft
-    gewachsen.
-
-    \textbf{Symmetrische Verfahren}:
-    \begin{itemize}
-        \item denselben Schlüssel zur Ver- und Entschlüsselung
-        \item Problem des Schlüsselaustauschs
-        \item Vertraulichkeit, aber keine zur Sicherstellung von Authentifizierung und Integrität
-        \item[$\to$] Blockchiffren
-            \subitem -  zu verschlüsselnde Daten in $m$ Blöcke derselben Größe aufgeteilt
-            \subitem -  einfachster Fall: jeder der zuvor erzeugten Blöcke $m_i$ mit Schlüssel $k$
-            \subitem zu verschlüsseltem Block $c_i$ derselben Größe übersetzt
-        \item[$\to$] Stromchiffren
-            \subitem -  Klartext wird bitweise anhand eines Schlüsselstroms verschlüsselt
-            \subitem - Schlüsselstrom und Geheimtext haben dieselbe Länge wie der Klartext
-    \end{itemize}
-
-    \textbf{Asymmetrische Verfahren}:
-    \begin{itemize}
-        \item Die meisten asymmetrischen Verfahren basieren auf mathematischen Problemen, die nicht effizient zu lösen sind.
-        \item
-    \end{itemize}
-\end{defi}
-
-\begin{algo}{RSA Verschlüsselung}
-    RSA basiert auf der Faktorisierung ganzes Zahlen, für die es keinen bekannten
-    effizienten Algorithmus gibt. Dabei geht es darum, eine Zahl in ihre Primfaktoren
-    zu zerlegen.
-
-    Da beide Schlüssel des Schlüsselpaars zusammen funktionieren sollen, müssen sie
-    nach einer festen Vorschrift erzeugt werden:
-    \begin{enumerate}
-        \item Wähle zwei Primzahlen $p, q$ mit $p \neq q$
-        \item Berechne $N = p \cdot q$
-        \item Berechne $\varphi(N) = (p-1)\cdot (q-1)$
-        \item Wähle ein $e$, das teilerfremd zu $\varphi(N)$ ist mit $1 < e < \varphi(N)$
-        \item Berechne $d$, sodass $e \cdot d \equiv 1 \mod \varphi(N)$
-    \end{enumerate}
-
-    Nach dieser Prozedur ist $(e,N)$ der \emph{public key} und $(d,N)$ der \emph{private Key}. Damit
-    kann nun jeder Nachricht $M \in \N, 1 < M < N$ anhand folgender Formel verschlüsselt
-    werden:
-    $$
-        C = M^e \mod N
-    $$
-
-    Die Entschlüsselung der verschlüsselten Nachricht $C$ kann dann anhand einer ähnlichen Formel durchgeführt werden:
-    $$
-        M = C^d \mod N
-    $$
-\end{algo}
-
-\begin{example}{RSA Verschlüsselung}
-    Damit Alice Bob eine Nachricht schreiben kann, muss Bob zunächst seinen \emph{public Key} zur Vefügung stellen.
-
-    Zur Erzeugung seines Schlüsselpaars wählt Bob die Primzahlen $p=13$ und $q=17$.
-    Damit ergibt sich $N = 221$ und $\varphi(N) = 192$.
-    Anschließend wählt Bob $e=5$ und berechnet damit $d=77$.
-    Damit kann Bob $(5, 221)$ als seinen \emph{public Key} an Alice geben und $(77, 221)$ behält er als \emph{private Key} für sich.
-
-    Alice hat nun Bobs \emph{public Key} und möchte damit die Nachricht $M = 42$ verschlüsseln.
-    Dazu berechnet Sie $C = 42^5 \mod 221 = 9$ und schickt die verschlüsselte Nachricht anschließend an Bob.
-
-    Bob kann nun mit seinem \emph{private Key} die erhaltene Nachricht entschlüsseln und erhält $M = 9^77 \mod 221 = 42$.
-\end{example}
-
-\begin{defi}{Digitale Signatur}
-    Um auch \emph{Authentifizierung}
-    und \emph{Integritat} herstellen zu können, muss eine digitale Signatur verwendet
-    werden. Dazu braucht es zunachst eine \emph{Hashfunktion}, die eine Art Fingerabdruck
-    der Nachricht erzeugt.
-
-    Nachdem mit der Hashfunktion der Hashwert der Nachricht berechnet wurde, wird
-    dieser mit dem \emph{private Key} des Senders verschlüsselt.
-
-    Danach berechnet
-    der Empfänger selbst den Hashwert der empfangen Nachricht. Stimmen der
-    selbst berechnete Hashwert und der entschlüsselte Hashwert überein ist die \emph{Integrität} der Nachricht sichergestellt. Da zudem das Entschlüsseln des Hashwertes mit
-    dem öffentlichen Schlüssel des Senders funktioniert hat, ist der Sender authentifiziert,
-    da dessen privater Schlüssel zur Erstellung der digitalen Signatur verwendet
-    wurde.
-
-    Es ist also notwendig, dass sich Sender und Empfanger vorab auf eine
-    Hashfunktion einigen. Zusatzlich ist wichtig zu beachten, dass eine Digitale Signatur
-    \emph{keine Vertraulichkeit} herstellt, dazu muss die Nachricht zusatzlich verschlüsselt
-    werden.
-\end{defi}
-
-\begin{defi}{Hybride Chiffren}
-    Die Kombination von symmetrischen und asymmetrischen
-    Chiffren nennt man \emph{hybride Chiffren}.
-
-    \begin{itemize}
-        \item verhältnismäßig kurzer Schlüssel einer Blockchiffre wird asymmetrisch verschlüsselt und zum Empfänger einer Nachricht transportiert
-        \item Kommunikation selbst läuft symmetrisch verschlüsselt ab
-        \item Kombination erzielt guten Kompromiss zwischen Sicherheit und Rechenaufwand
-    \end{itemize}
-\end{defi}
-
-\printindex
-\printindex[Beispiele]
-\end{document}
+\documentclass[german]{../spicker}
+
+\usepackage{amsmath}
+
+\usepackage{graphicx}
+\usepackage{tabularx, multirow}
+
+\title{IT-Grundlagen}
+\author{Patrick Gustav Blaneck}
+\makeindex[intoc]
+\makeindex[intoc, name=Beispiele,title=Beispiele]
+
+\newcommand{\scalarprod}[1]{\left\langle #1 \right\rangle}
+\newcommand{\vektor}[1]{\begin{pmatrix*}[r] #1 \end{pmatrix*}}
+\renewcommand{\span}[1]{\operatorname{span}\left(#1\right)}
+\newcommand{\dx}{~\mathrm{d}x}
+
+\newenvironment{allintypewriter}{\ttfamily}{\par}
+\newcommand*{\ditto}{\texttt{\char`\"}}
+
+\begin{document}
+\maketitle
+In dieser Zusammenfassung werden Inhalte aus dem ITG-Skript von Bastian Küppers verwendet.
+\tableofcontents
+\newpage
+
+%\setcounter{section}{1}
+
+\section{Codierung}
+\subsection{Stellenwertsysteme}
+
+\begin{defi}{Stellenwertsystem}
+    Allgemein lässt sich der Wert einer Zahl in einem Stellenwertsystem zur Basis $B$ wie folgt ausdrücken ($d_i$ ist der Wert der $i$-ten Stelle, $r$ der Exponent der höchtswertigen Stelle):
+    $$
+        n_b = \sum^r_{i=0} B^i \cdot d_i
+    $$
+\end{defi}
+
+\begin{algo}{Dezimal $\to$ Binär, Hexadezimal, $\ldots$}
+    Sei $B = 2$ für Umrechnung ins Binärsystem, bzw. $B =16$ für das Hexadezimalsystem.
+
+    Es gilt für eine umzurechnende Zahl $z$:
+
+    $$
+        \begin{aligned}
+            z : B       & = z_0 \quad     &  & \text{Rest } r_0     \\
+            z_0 : B     & = z_1 \quad     &  & \text{Rest } r_1     \\
+            z_1 : B     & = z_2 \quad     &  & \text{Rest } r_2     \\
+                        & \ldots          &  &                      \\
+            z_{n-2} : B & = z_{n-1} \quad &  & \text{Rest } r_{n-1} \\
+            z_{n-1} : B & = 0 \quad       &  & \text{Rest } r_n
+        \end{aligned}
+    $$
+
+    Damit gilt dann: $(z)_{10} = (r_nr_{n-1}\ldots r_2r_1r_0)_B$ (also gelesen von \emph{unten nach oben}).\qed
+\end{algo}
+
+\begin{algo}{Binär $\to$ Hexadezimal}
+    Sei eine Binärzahl $b$ gegeben mit $n \in 4\N$ Bits.
+
+    Dann kann $b$ wie folgt in eine Hexadezimalzahl $h$ mit $m = \frac{n}{4}$ Zeichen umgeformt werden:
+
+    $$
+        \underbrace{b_{n-1}b_{n-2}b_{n-3}b_{n-4}}_{h_{m-1}} ~ \ldots ~ \underbrace{b_7b_6b_5b_4}_{h_1} ~ \underbrace{b_3b_2b_1b_0}_{h_0}
+    $$
+
+    Erinnerung: 4 Bits können binär nur 16 mögliche Werte annehmen!
+\end{algo}
+
+\newpage
+\subsection{Zahlendarstellungen}
+
+\begin{defi}{Einerkomplement}
+    Das \emph{Einerkomplement} einer Binärzahl wird gebildet, indem man alle Bits negiert.
+
+    Das erste Bit gibt dabei das Vorzeichen an.
+
+    Nachteile: Doppelte Darstellung der Null, Subtraktion lässt sich nicht auf Addition mit einer negativen Zahl zurückführen
+\end{defi}
+
+\begin{defi}{Zweierkomplement}
+    Das \emph{Zweierkomplement} einer Binärzahl wird gebildet, indem man das Einerkomplement bildet und zusätzlich $1$ addiert.
+
+    Das erste Bit gibt dabei das Vorzeichen an.
+
+    Vorteile: Subtraktion entspricht Addition mit einer negativen Zahl, keine doppelte Null
+\end{defi}
+
+\begin{defi}{Binäre Festkommazahlen}
+    Die Umwandlung des ganzzahligen Anteils einer (dezimalen) Festkommazahl erfolgt analog zu ganzen Zahlen.
+
+    Zusätzlich werden aber die Nachkommastellen mit entsprechend negativen Exponenten weiter \glqq verrechnet\grqq.
+\end{defi}
+
+\begin{defi}{Gleitkommazahlen nach \emph{IEEE 754}}
+    Die Darstellung einer Gleitkommazahl
+    $$
+        x = s \cdot m \cdot b^e
+    $$
+    besteht aus
+    \begin{itemize}
+        \item Vorzeichen $s$ (1 Bit)
+        \item Mantisse $m$ ($p$ Bits, $p_{\text{float}} = 23$, $p_{\text{double}} = 52$)
+        \item Basis $b$ (bei normalisierten Gleitkommazahlen nach IEEE ist $b = 2$)
+        \item Exponent $e$ ($r$ Bits, $r_{\text{float}} = 8$, $r_{\text{double}} = 11$)
+    \end{itemize}
+\end{defi}
+
+\begin{algo}{Umrechnung in \emph{IEEE 754}}
+    \begin{itemize}
+        \item Umwandeln einer Dezimalzahl in eine \emph{binäre Festkommazahl} ohne Vorzeichen.
+        \item Normalisieren der \emph{Mantisse}:\\
+              Das Komma wird $n$ Stellen nach links verschoben, so dass dort nur noch eine 1 als ganzzahliger Anteil vorhanden ist. ($n$ ist bei Verschieben nach rechts negativ!)\\
+              $M$ ist dann der \emph{Nachkommateil}.
+        \item Bestimmen des \emph{Exponenten}: $E = (\text{bias } + n)_2$ (bias ist meist $127$, wenn nicht anders gegeben)
+        \item Bestimmen des \emph{Vorzeichenbits} $s$
+        \item Zusammensetzen der Gleitkommazahl
+              $$
+                  s \mid E \mid M
+              $$
+    \end{itemize}
+\end{algo}
+
+\subsection{Zeichendarstellungen}
+
+\begin{defi}{UTF-8 Codierung}
+    \begin{tabular}{| c | r | c |}
+        \hline
+        Unicode-Bereich       & \multicolumn{1}{|c|}{UTF-8-Codierung}   & Möglichkeiten        \\
+        \hline
+        0000 0000 - 0000 007F & 0xxx xxxx                               & 128 (7 Bits)         \\
+        0000 0080 - 0000 07FF & 110x xxxx 10xx xxxx                     & 2.048 (11 Bits)      \\
+        0000 0800 - 0000 FFFF & 1110 xxxx 10xx xxxx 10xx xxxx           & 65.536  (16 Bits)    \\
+        0001 0000 - 0010 FFFF & 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx & 2.097.152  (21 Bits) \\
+        \hline
+    \end{tabular}
+\end{defi}
+
+\subsection{Spezielle Codierungen}
+
+\begin{algo}{Huffman-Codierung}
+    \begin{enumerate}
+        \item Schreibe Buchstaben mit Auftrittshäufigkeiten als \glqq Wald\grqq.
+        \item Fasse die beiden Bäume mit der geringsten Auftrittshäufigkeiten zu einem neuen Baum zusammen, dabei werden die Auftrittshäufigkeiten addiert.
+        \item Wiederhole, bis nur noch ein Baum existiert.
+        \item Codierung eines Buchstaben entspricht dann dem \emph{Pfad} zum entsprechenden Blatt mit \glqq links\grqq $\to$ 0, \glqq rechts\grqq $\to$ 1
+    \end{enumerate}
+
+    Mittlere Codelänge:
+    $$
+        L(C) = \frac{\#\text{Bits der verschlüsselten Nachricht}}{\#{\text{Zeichen der verschlüsselten Nachricht}}}
+    $$
+\end{algo}
+
+\begin{defi}{Hamming-Codierung}
+    Bei der Hamming-Codierung werden Paritätsinformationen zu Daten hinzugefügt, um so mögliche Übertragungsfehler zu erkennen.
+
+    Hamming-Codewörter haben die Länge $N = 2^k-1$, wobei $k$ Paritätsbits enthalten sind.
+    Die Bits werden der Einfachheit halber bei Eins beginnend durchnummeriert.
+    Die Paritätsbits stehen an den Stellen, deren Index eine 2er-Potenz ist.
+
+    Sind $p_1, p_2, \ldots, p_k$ Paritätsbits, $d_1, d_2, \ldots, d_{N-k}$ Bits des Datenwortes und $c_1, c_2, \ldots, c_N$ die Bits des zu bildenden Codewortes, hat ein Codewort des so konstruierten Hamming-Codes die folgende Form:
+
+    \begin{tabular}{| c | c | c || c | c | c | c || c | c | c | c | c | c | c | c || c | c | c |}
+        \hline
+        $c_1$ & $c_2$ & $c_3$ & $c_4$ & $c_5$ & $c_6$ & $c_7$ & $c_8$ & $c_9$ & $c_{10}$ & $c_{11}$ & $c_{12}$ & $c_{13}$ & $c_{14}$ & $c_{15}$ & $c_{16}$ & $c_{17}$ & \ldots \\
+        \hline
+        $p_0$ & $p_1$ & $d_1$ & $p_2$ & $d_2$ & $d_3$ & $d_4$ & $p_3$ & $d_5$ & $d_6$    & $d_7$    & $d_8$    & $d_9$    & $d_{10}$ & $d_{11}$ & $p_4$    & $d_{12}$ & \ldots \\
+        \hline
+    \end{tabular}\\
+
+    Dabei wird jedem Paritätsbit eine spezielle Bitmaske zugewiesen:
+
+    \begin{tabular}{| c || c | c | c || c | c | c | c || c | c | c | c | c | c | c | c || c |}
+        \hline
+                       & $c_1$ & $c_2$ & $c_3$ & $c_4$ & $c_5$ & $c_6$ & $c_7$ & $c_8$ & $c_9$ & $c_{10}$ & $c_{11}$ & $c_{12}$ & $c_{13}$ & $c_{14}$ & $c_{15}$ & \ldots \\
+        \hline
+        Bitmaske $p_0$ & $p_0$ & $p_1$ & 1     & $p_2$ & 1     & 0     & 1     & $p_3$ & 1     & 0        & 1        & 0        & 1        & 0        & 1        & \ldots \\
+        Bitmaske $p_1$ & $p_0$ & $p_1$ & 1     & $p_2$ & 0     & 1     & 1     & $p_3$ & 0     & 1        & 1        & 0        & 0        & 1        & 1        & \ldots \\
+        Bitmaske $p_2$ & $p_0$ & $p_1$ & 0     & $p_2$ & 1     & 1     & 1     & $p_3$ & 0     & 0        & 0        & 1        & 1        & 1        & 1        & \ldots \\
+        Bitmaske $p_3$ & $p_0$ & $p_1$ & 0     & $p_2$ & 0     & 0     & 0     & $p_3$ & 1     & 1        & 1        & 1        & 1        & 1        & 1        & \ldots \\
+        \hline
+    \end{tabular}\\
+
+    Damit gilt:
+    $$
+        \begin{aligned}
+            c_1 = p_0 & = c_3 \oplus c_5 \oplus c_7 \oplus c_9 \oplus c_{11} \oplus c_{13} \oplus c_{15} \oplus \ldots    \\
+                      & \iff \text{jedes ungerade Datenbit}                                                               \\
+            c_2 = p_1 & = c_3 \oplus c_6 \oplus c_7 \oplus c_{10} \oplus c_{11} \oplus c_{14} \oplus c_{15} \oplus \ldots \\
+                      & \iff \text{ein Datenbit rechts von $p_1$, zwei überspringen, zwei einberechnen, $\ldots$}         \\
+            c_4 = p_2 & = c_5 \oplus c_6 \oplus c_7 \oplus c_{12} \oplus c_{13} \oplus c_{14} \oplus c_{15} \oplus \ldots \\
+                      & \iff \text{drei Datenbit rechts von $p_2$, vier überspringen, vier einberechnen, $\ldots$}
+        \end{aligned}
+    $$
+\end{defi}
+
+\begin{algo}{Fehlererkennung beim Hamming-Code}
+    Situation: Empfangen eines Hamming-codierten Datensatzes
+
+    \begin{enumerate}
+        \item Erneutes Berechnen der \emph{Paritätsbits}
+        \item Erkennen, welche neu berechneten Paritätsbits $p'_i$ \emph{verschieden} sind zu den empfangenen Paritätsbits $p_i$
+        \item Bitfehler ist in dem Datenbit passiert, in dem gilt:
+              \subitem $p_i = p'_i \implies$ Bitmaske für $p_i$ ist $0$
+              \subitem $p_i \neq p'_i \implies$ Bitmaske für $p_i$ ist $1$
+    \end{enumerate}
+
+    Es wird angenommen, dass nur ein Bitfehler in den Datenbits passiert ist.
+
+    Anmerkung: Ist lediglich ein Paritätsbit verschieden, dann ist ein Übertragungsfehler in dem betreffenden Paritätsbit selbst aufgetreten, da alle Datenbits zur Berechnung von mindestens zwei Paritätsbits verwendet werden.
+\end{algo}
+
+\section{Formale Sprachen}
+\subsection{Backus-Naur-Form}
+
+\begin{defi}{(kontextfreie) Grammatik}
+    Eine (kontextfreie) Grammatik $G$ ist ein 4-Tupel $\{N, T, \Sigma, P\}$ mit folgenden Eigenschaften:
+    \begin{itemize}
+        \item $N$ ist eine endliche Menge von \emph{Nichtterminalsymbolen},
+        \item $T$ ist eine endliche Menge von \emph{Terminalsymbolen},
+        \item ein \emph{Startsymbol} $\Sigma \in N$,
+        \item eine endliche Menge an Produktionsregeln $P \subset N \times T^*$.
+    \end{itemize}
+    Es gilt $N \cap M = \emptyset$. $^*$ bezeichnet die Kleensche Hülle.
+
+    Anmerkung: Die Notation verhält sich in der Vorlesung sehr anders als in den meisten Quellen.
+\end{defi}
+
+\begin{defi}{Backus-Naur-Form}
+    In der \emph{Backus-Naur-Form} werden Symbole durch eine Zuweisung definiert.\\
+    Diese wird durch den Operator \texttt{:=} dargestellt.
+
+    \begin{itemize}
+        \item Dabei gilt weiterhin, dass in der Zuweisung eines \emph{Nichtterminalsymbols} mindestens ein weiteres Symbol auftauchen muss und
+        \item bei der Zuweisung eines \emph{Terminalsymbols} nur Zeichen des Alphabets.
+        \item Bei einer Zuweisung können mehrere Symbole oder Zeichen(-ketten) des Alphabets verbunden werden.
+        \item Durch ein Leerzeichen (\glqq ~~~\grqq, \texttt{space}) wird eine \texttt{und}-Verknüpfung definiert,
+        \item durch einen senkrechten Stricht (\glqq ~$\mid$~\grqq, \texttt{pipe}) wird eine \texttt{oder}-Zuweisung definiert.
+        \item Zur logischen Gliederung der Verknüpfungen können Klammern verwendet werden.
+        \item Es ist ebenfalls möglich Kardinalitäten für Symbole zu definieren:
+              \subitem Geschweifte Klammern \texttt{\{\}} definieren dabei eine \emph{beliebige Wiederholung} und
+              \subitem eckige Klammern \texttt{[]} definieren ein \emph{einmaliges Auftreten}.
+              \subitem In beiden Fällen ist das Weglassen des Symbols ebenfalls möglich.
+    \end{itemize}
+\end{defi}
+
+\begin{example}{Backus-Naur-Form}
+    \begin{allintypewriter}
+        \begin{tabular}{rl}
+            Satz        & := Subjekt Verb Präposition Nomen Ende                       \\
+            Subjekt     & := Nomen                                                     \\
+            Nomen       & := Artikel Substantiv                                        \\
+            Artikel     & := \ditto der\ditto | \ditto die\ditto | \ditto das\ditto    \\
+            Substantiv  & := \ditto Mann\ditto | \ditto Frau\ditto | \ditto Haus\ditto \\
+            Verb        & := \ditto geht\ditto                                         \\
+            Präposition & := \ditto in\ditto                                           \\
+            Ende        & := \ditto .\ditto
+        \end{tabular}
+    \end{allintypewriter}
+\end{example}
+
+\subsection{Programmiersprachen}
+
+\begin{defi}{Compiler}
+    Das Programm, welches den
+    menschenlesbaren \emph{Quellcode} anhand der Regeln der zugrundeliegenden Grammatik
+    interpretiert und in maschinenlesbare Anweisungen überführt, wird \emph{Compiler} genannt.
+
+    Die maschinenlesbaren Anweisungen können dabei entweder direkt in eine
+    maschinenspezifische Binärfolge umgewandelt werden, oder in einen sogenannten
+    \emph{Bytecode}.
+
+    Im zweiten Fall kann der Bytecode,
+    auch Zwischencode genannt, noch an beliebigen Prozessortypen angepasst werden,
+    muss dafür aber vor der Ausführung erneut bearbeitet werden.
+
+    Bei der Kompilierung eines Programms werden zwei Phasen durchlaufen:
+    \begin{enumerate}
+        \item \textbf{Analysephase}, in der der Quellcode analysiert und auf Fehler geprüft wird:
+              \subitem \underline{\emph{Lexer} (lexikalischer Scanner)}: \\
+              Quellcode wird in einzelne Teile (\emph{Tokens}) zerlegt und klassifiziert (z.B. als \emph{Schlüsselwörter} oder \emph{Bezeichner}).\\
+              Der Lexer erkennt hier z.B. falsch benannte Variablen.
+              \subitem \underline{\emph{Parser} (syntaktische Analyse)}: \\
+              Vom Lexer erzeugte \emph{Tokens} werden dem \emph{Parser} übergeben.
+              Der Parser überprüft den Quellcode auf Fehler und setzt ihn bei Fehlerfreiheit in einen \emph{Syntaxbaum} (AST) um.\\
+              Hier werden Fehler wie fehlende Semikolons oder falsche genutzte Operatoren erkannt.
+              \subitem \underline{\emph{Semantische Analyse}}: \\
+              Hier wird z.B. kontrolliert, ob eine verwendete Variable auch vorher deklariert wurde, oder ob Quell- und Zieltyp einer Anweisung übereinstimmen. Dabei erzeugte Metadaten werden in den AST integriert.
+              In diesem Schritt werden generell semantische Fehler erkannt, d.h. Anweisungen, die korrekt aussehen, aber fehlerhaft sind.
+              \\
+        \item \textbf{Synthesephase}, in der Binär- bzw. Bytecode erzeugt wird:
+              \subitem \underline{\emph{Zwischencodeerzeugung}}: \\
+              Hier wird plattformunabhängiger Bytecode erzeugt, der als Grundlage für den nächsten Schritt dient.
+              \subitem \underline{\emph{Optimierung}}: \\
+              Während der Optimierung wird versucht die Performanz des erzeugten Programms zu steigern.
+              \subitem \underline{\emph{Codegenerierung}}: \\
+              Hier wird aus dem optimierten Zwischencode der \emph{Binärcode} erzeugt.
+    \end{enumerate}
+\end{defi}
+
+\begin{bonus}{Ahead-of-Time Compiler}
+    Bei dieser Variante wird der gesamte Quellcode \emph{in einem Rutsch}
+    in Binär- oder Bytecode übersetzt. Das kann mitunter dazu führen, dass die Kompilierung
+    sehr lange dauert.
+\end{bonus}
+
+\begin{bonus}{Just-in-Time Compiler}
+    Daher haben sich mit der Zeit auch sogenannte \emph{Just-in-
+        Time Compiler} etablieren können, die nur einen kleinen Teil des Quellcodes direkt
+    übersetzen und weitere Teile des Quellcodes erst dann übersetzen, \emph{wenn sie bei der
+        Programmausführung benötigt werden}.
+\end{bonus}
+
+\begin{defi}{Linker}
+    Nachdem der Compiler den Binärcode erzeugt hat, muss der \emph{Linker} daraus noch
+    ein lauffähiges Programm erstellen. Das ist insbesondere der Fall, wenn es mehrere
+    Dateien mit Quellcode gibt.
+
+    Dies geschieht indem der Binärcode zu den verschiedenen
+    Quellcodedateien, der nun in sogenannten \emph{Objektdateien} vorliegt, zusammengefügt wird. Dabei werden beispielsweise symbolische Adressen aus mehreren
+    Quellcodemodulen und externen Bibliotheken so angepasst, dass sie zusammen
+    passen.
+
+    Dabei wird zwischen \emph{statischem Linken} und \emph{dynamischen Linken} unterschieden:
+
+    Beim \textbf{statischen Linken} werden alle verfügbaren Objektdateien zu \emph{einer
+        einzigen, ausführbaren Programmdatei} gelinkt.
+    \begin{itemize}
+        \item Vorteil: keine externen Abhängigkeiten, Programm auf jedem geeigneten System ohne Weiteres lauffähig
+        \item Nachteil: nicht mehr möglich, einzelne Programmteile auszutauschen ohne den Linkvorgang vollständig zu wiederholen,
+    \end{itemize}
+    Beim \textbf{dynamischen Linken} werden Funktions- und Variablenadressen erst zur Laufzeit aufgelöst, sodass externe Bibliotheken
+    einfach in Form von \emph{Dynamically Linked Libraries} (DLLs) bzw. \emph{Shared Objects} (SOs) angesprochen werden können. Da DLLs bzw. SOs als existierend
+    vorausgesetzt werden, wird das fertige Programm bei dynamischem Linken kleiner.
+    \begin{itemize}
+        \item Vorteil: mehrere Programme können dieselbe externe Bibliothek verwenden, ohne dass der benötigte Code mehrfach in einzelne Programme integriert werden muss.
+    \end{itemize}
+\end{defi}
+
+\begin{defi}{Interpreter}
+    \emph{Interpreter} zeichnen sich dadurch aus, dass der Quellcode nicht einmalig in Binärcode übersetzt wird, sondern bei jeder Programmausführung schrittweise abgearbeitet wird.
+    \begin{itemize}
+        \item Vorteile: einfache Portabilität, dynamischere Quellcodeverwaltung
+        \item Nachteile: deutlich langsamere Ausführungsgeschwindigkeit, keine Optimierungen an Programmstruktur möglich
+    \end{itemize}
+\end{defi}
+
+\section{Rechnerarchitekturen}
+\subsection{Von-Neumann-Architektur}
+
+\begin{defi}{Von-Neumann-Architektur}
+    Im Grundsatz besteht die Architektur aus drei Komponenten: \emph{CPU}, \emph{Speicher} und \emph{I/O Einheit}.
+
+    Die einzelnen Komponenten sind über Datenleitungen, sogenannte \emph{Busse}, verbunden.
+    \begin{center}
+        \includegraphics[]{images/von_neumann.pdf}
+    \end{center}
+\end{defi}
+
+\begin{defi}{CPU}
+    Die \emph{CPU} (\emph{Central Processing Unit}, Prozessor) ist sozusagen das Gehirn des Computers.
+    Die CPU besteht im Wesentlichen aus drei Teilen, dem \emph{Leitwerk} und
+    dem \emph{Rechenwerk} und den \emph{Registern}, welche direkt zur Abarbeitung von Befehlen
+    benötigte Daten und berechnete Ergebnisse aufnehmen können.
+
+    Das \emph{Leitwerk} steuert die Ausführung des Binärcodes, das \emph{Rechenwerk} führt anfallende Rechenoperationen aus.
+\end{defi}
+
+\begin{bonus}{Aufbau Rechenoperationen}
+    \begin{itemize}
+        \item \emph{Operationsteil}: codiert konkreten Befehl
+        \item \emph{Operanden}: stellen z.B. Summanden einer Operation, oder Adresse einer Variablen dar
+    \end{itemize}
+\end{bonus}
+
+\begin{bonus}{Abarbeitung von Befehlen}
+    Jeder Befehl durchläuft bei der Abarbeitung in der CPU folgende Schritte:
+    \begin{itemize}
+        \item \emph{Instruction Fetch (IF)} : Befehl lesen
+        \item \emph{Instruction Decode (ID)} : Befehl decodieren
+        \item \emph{Fetch Operands (FO)} : Operanden laden
+        \item \emph{Execute (EX)} : Befehl ausführen
+        \item \emph{Writeback (WB)} : Ergebnis schreiben
+    \end{itemize}
+
+    \begin{center}
+        \includegraphics[]{images/befehlsabarbeitung.pdf}
+    \end{center}
+\end{bonus}
+
+\begin{defi}{Prozessorarchitekturen}
+    \textbf{CISC} (\emph{Complex Instruction Set Computer}):\\
+    Eine CISC CPU zeichnet sich durch einen \emph{komplexen Befehlssatz} in Form von \emph{Microcode} und dem Vorhandensein nur \emph{weniger Register} aus.
+
+    \textbf{RISC} (\emph{Reduced Instruction Set Computer}):\\
+    eine RISC CPU nur über \emph{wenige, in Hardware realisierte Befehle} und \emph{viele Prozessorregister}.
+\end{defi}
+
+\begin{defi}{Pipelining}
+    In einer \emph{RISC CPU}, die nur wenige und elementare Befehle verwendet, kann dafür
+    gesorgt werden, dass alle Teilschritte, deren \emph{parallele Verarbeitung} das Pipelining
+    ermöglicht, gleich lange dauern. Nur deswegen kann das Konzept des Pipelinings
+    erfolgreich umgesetzt werden.
+
+    Das ist bei einer \emph{CISC CPU} aufgrund der vielen
+    und teils sehr komplexen Befehle \emph{nicht} möglich.
+\end{defi}
+
+\begin{example}{Pipelining}
+    5-Stage-Pipeline:
+    \begin{itemize}
+        \item Instruction Fetch (\textbf{IF}): Befehl lesen
+        \item Instruction Decode (\textbf{ID}) : Befehl decodieren
+        \item Execute (\textbf{EX}) : Ausführen
+        \item Memory Access (\textbf{MEM}) : Ausführen
+        \item Writeback (\textbf{WB}) : Ergebnis schreiben
+    \end{itemize}
+
+    \begin{center}
+        \begin{tabular}{| c || m{0.05\textwidth} | m{0.05\textwidth} | m{0.05\textwidth} | m{0.05\textwidth} | m{0.05\textwidth} | m{0.05\textwidth} |}
+            \hline
+            Instr. 1    & \texttt{IF}            & \texttt{ID}            & \texttt{EX}            & \texttt{MEM}           & \texttt{WB}            &                        \\
+            \hline
+            Instr. 2    &                        & \texttt{IF}            & \texttt{ID}            & \texttt{EX}            & \texttt{MEM}           & \texttt{WB}            \\
+            \hline
+            Instr. 3    &                        &                        & \texttt{IF}            & \texttt{ID}            & \texttt{EX}            & \texttt{MEM}           \\
+            \hline
+            Instr. 4    &                        &                        &                        & \texttt{IF}            & \texttt{ID}            & \texttt{EX}            \\
+            \hline
+            Instr. 5    &                        &                        &                        &                        & \texttt{IF}            & \texttt{ID}            \\
+            \hline
+            \hline
+            Clock Cycle & \multicolumn{1}{c|}{1} & \multicolumn{1}{c|}{2} & \multicolumn{1}{c|}{3} & \multicolumn{1}{c|}{4} & \multicolumn{1}{c|}{5} & \multicolumn{1}{c|}{6} \\
+            \hline
+        \end{tabular}
+    \end{center}
+\end{example}
+
+\begin{defi}{ROM}
+    Der \emph{ROM} ist ein Festwertspeicher, der - prinzipiell - \emph{nur gelesen} werden kann und die Firmware des Computers gespeichert hat.
+
+    Im ROM liegt das sogenannte \emph{BIOS} (\emph{basic input output system}) bzw. moderner \emph{UEFI}
+    (\emph{unified extensible firmware interface}).
+    Die im ROM abgelegten Informationen stellen die Firmware des
+    Rechners dar. Diese Firmware sorgt dafür, dass der Computer nach dem Einschalten
+    in die Lage versetzt wird, grundlegende Hardwarekomponenten zu verwalten.
+\end{defi}
+
+\begin{defi}{RAM}
+    Der \emph{RAM},
+    auch \emph{Hauptspeicher} genannt, ist ein Speicher mit \emph{wahlfreiem Zugriff}, der seinen
+    Inhalt jedoch bei Verlust der Betriebsspannung \emph{verliert}. Im RAM werden Informationen
+    abgelegt, die ein \emph{Programm zur Laufzeit} benötigt.
+
+    Sollen Daten
+    über das Ende des Programms hinaus gespeichert werden, müssen sie über die
+    \emph{I/O-Einheit} auf einen anderen Speicher geschrieben werden.
+\end{defi}
+
+\begin{defi}{Cache}
+    \emph{Cache} ist \emph{schneller} als RAM, kann aber nur \emph{weniger Speicherkapazität} zur Verfügung stellen.
+
+    Das bedeutet, dass der Cache nur kleine Datenmengen, sogenannte \emph{Cacheblocks}, aus dem Hauptspeicher vorhalten kann.
+    Diese haben eine definierte Größe und können dann schneller in die CPU geldaden werden, als das aus dem RAM möglich wäre.
+\end{defi}
+
+\begin{defi}{Lokalität}
+    \textbf{Zeitliche Lokalität}:\\
+    Es ist, bei entsprechender Programmierung, sehr wahrscheinlich, dass
+    auf eine Speicherzelle nicht nur einmal, sondern in kurzer Zeit \emph{mehrmals zugegriffen}
+    wird.
+
+    \textbf{Örtliche Lokalität}:\\
+    Es ist, bei entsprechender Programmierung, sehr wahrscheinlich, dass nach
+    dem Zugriff auf eine bestimmte Speicherzelle auch ein \emph{Zugriff in deren unmittelbarer
+        \glqq Nachbarschaft\grqq} stattfindet.
+\end{defi}
+
+\begin{bonus}{Aufbau eines Caches}
+    \begin{center}
+        \includegraphics[]{images/cache_aufbau.pdf}
+    \end{center}
+
+    Aus der Abbildung ist ersichtlich, dass der Cache selbst ebenenweise organisiert ist.
+
+    Im Regelfall sind mindestens die Ebenen L1 und L2 vorhanden, oftmals sogar noch
+    eine dritte Ebene L3. Dabei ist in jedem Fall der L1-Cache in die CPU integriert,
+    häufig auch noch der L2-Cache.
+
+    Beginnend beim
+    L3-Cache werden die Cachelevel mit größerer Nähe zur CPU jeweils kleiner und
+    schneller. Dieser Aufbau soll die Frage nach der Auswahl der Daten, die im Cache
+    vorgehalten werden, vereinfachen. Es ist also möglich einen relativ großen Datenbestand
+    im L3-Cache vorzuhalten, der schneller ist als der Hauptspeicher. Von dort
+    aus kann dann wiederum eine Teilmenge der Daten im noch schnelleren L2-Cache
+    vorgehalten werden, usw.
+
+    Liegen benötigte Daten nicht im L1-Cache, welcher Daten bzw. Befehle schlussendlich an die CPU liefert, ist aufgrund der Lokalität und
+    des Aufbaus des Caches die Wahrscheinlichkeit hoch, dass die benötigten Daten
+    nicht aus dem langsamen Hauptspeicher geladen werden müssen, sondern sich in
+    einem der niedrigeren Cache-Level finden und damit immer noch vergleichsweise
+    schnell zur Verfügung gestellt werden können.
+\end{bonus}
+
+\begin{bonus}{Interner Aufbau eines Cachelevels}
+    \begin{center}
+        \includegraphics[]{images/cache_level.pdf}
+    \end{center}
+
+    Zu jedem Cacheblock wird die Startadresse des Blocks im RAM gespeichert, diese
+    Information wird \emph{Tag} genannt.
+
+    Wird von der CPU eine Anfrage an den Speicher
+    gestellt, wird zunächst anhand des Tags unter Zuhilfenahme des Komparators geprüft, ob der angefragte Datensatz im Cache liegt. Dabei wird auch geprüft, ob eine
+    angefragte Speicheradresse innerhalb eines Cacheblocks liegt. Das ist möglich, da
+    der Tag sowie die Größe des Cacheblocks bekannt sind.
+
+    Ist dies nicht der Fall, wird
+    die Anfrage an ein niedrigeres Cachelevel bzw. den RAM weitergereicht.
+
+    Außerdem
+    werden zu jedem Cacheblock Statusbits gespeichert, die beispielsweise angeben ob
+    sich der Cacheblock verändert hat (\emph{dirty bit}), seit er in den Cache geladen wurden,
+    oder ob ein Platz im Cache mit einem gültigen Cacheblock belegt ist (\emph{invalid bit}).
+\end{bonus}
+
+\begin{defi}{Organisation der Tags}
+    Die \emph{Blöcke} (Cache-Lines) eines Caches können in so genannte \emph{Sätze} zusammengefasst werden.
+    Für eine bestimmte Adresse ist dann immer nur einer der Sätze zuständig.
+    Innerhalb eines \emph{Satzes} bedienen alle Blöcke also nur einen \emph{Teil} aller vorhandenen Adressen.
+
+    Im Folgenden stehe die Variable $m$ für die \emph{Gesamtanzahl der Cacheblöcke} und $n$ für die \emph{Anzahl der Blöcke pro Satz}, die so genannte \emph{Assoziativität}.
+    Dann besteht der Cache also aus $\frac {m}{n}$ Sätzen.
+
+    \textbf{Direkt abgebildet} (\emph{DM}, \emph{direct mapped}, $n=1$):\\
+    Es gibt pro Cacheblock nur eine einzige Möglichkeit, wo dieser
+    platziert werden kann.
+
+    Daher kann es allerdings vorkommen, dass ein Cacheblock
+    nicht platziert werden kann, obwohl noch Platz im Cache wäre.
+
+    \textbf{Vollassoziativ} (\emph{FA}, \emph{fully associative}, $n=m$):\\
+    Ein Cacheblock kann beliebige auf freie Plätze im Cache zugeordnet
+    werden.
+
+    Bei einer Speicheranfrage müssen allerdings alle gespeicherten
+    Tags durchsucht werden.
+
+    \textbf{Satzassoziativ} (\emph{SA}, \emph{set associative}, $2\leq n \leq \frac{m}{2}$):\\
+    Der verfügbare Platz wird in Gruppen unterteilt. Wie bei einem
+    DA Cache gibt es nur eine Gruppe, in der ein Cacheblock platziert werden kann;
+    wie bei einem VA Cache kann der Cacheblock innerhalb dieser Gruppe frei platziert
+    werden.
+\end{defi}
+
+\begin{defi}{Cache-Lesezugriffe}
+    Findet ein Lesezugriff auf Speicherzelle $A$ statt, wird geprüft, ob Speicherzelle $A$ bereits im Cache liegt.
+    \begin{itemize}
+        \item \textbf{$A$ liegt im Cache} (\emph{cache hit}):\\
+              Datensatz kann direkt aus dem Cache gelesen werden.
+        \item \textbf{$A$ liegt nicht im Cache} (\emph{cache miss}):\\
+              Datensatz muss aus dem Hauptspeicher in den Cache geladen werden, danach wird der Datensatz gelesen.
+    \end{itemize}
+\end{defi}
+
+\begin{defi}{Schreibmodi eines Cache}
+    \begin{itemize}
+        \item \textbf{write-through} (\emph{WT}):\\
+              Datensatz wird im Cache und direkt im Hauptspeicher aktualisiert.
+
+              \emph{Vorteile}: keine Probleme mit Datenkonsistenz im Hauptspeicher\\
+              \emph{Nachteile}: hoher Aufwand für Schreiboperationen
+        \item \textbf{write-back} (\emph{WB}):\\
+              Datensatz wird im Cache aktualisiert und erst dann in den Hauptspeicher geschrieben, wenn der entsprechende Cacheblock aus dem Cache verdrängt wird.
+
+              \emph{Vorteile}: niedrige Belastund der Systembusse, keine Wartezyklen\\
+              \emph{Nachteile}: fehlende Datenkonsistenz
+    \end{itemize}
+\end{defi}
+
+\begin{defi}{Cache-Schreibzugriffe}
+    Findet ein Schreibzugriff auf Speicherzelle $A$ statt, wird geprüft, ob Speicherzelle $A$ bereits im Cache liegt.
+    \begin{itemize}
+        \item \textbf{$A$ liegt im Cache} (\emph{cache hit}):\\
+              Datensatz wird im Cache (und im Hauptspeicher) aktualisiert.
+        \item \textbf{$A$ liegt nicht im Cache} (\emph{cache miss}):\\
+              Datensatz wird im Hauptspeicher geschrieben, Inhalt des Caches wird nicht verändert.
+    \end{itemize}
+\end{defi}
+
+\begin{defi}{Cache Misses}
+    \begin{itemize}
+        \item \textbf{Capacity Miss}:
+              \subitem - tritt auf, wenn Datensatz bereits im Cache war, aber \emph{bereits verdrängt} wurde
+              \subitem (aufgrund mangelnder Kapazität)
+              \subitem - hauptsächlich bei VA Caches
+        \item \textbf{Compulsory Miss}:
+              \subitem - tritt auf, wenn ein Datensatz das \emph{erste Mal} verwendet wird
+              \subitem - unabhängig vom Typ des Caches
+        \item \textbf{Conflict Miss}:
+              \subitem - tritt auf, wenn Datensatz bereits im Cache war, aber \emph{bereits verdrängt} wurde
+              \subitem (weil ein anderer Cacheblock an entsprechende Stelle gelagert werden sollte)
+              \subitem - vor allem bei DA Caches
+    \end{itemize}
+\end{defi}
+
+\begin{defi}{RAID}
+    \textbf{RAID}: \textbf{R}edundant \textbf{A}rray of \textbf{I}ndependent \textbf{D}isks
+
+    Ein \emph{RAID} besteht aus mindestens zwei Festplatten und zielt auf die \emph{Verbesserung einer Eigenschaft ab}:
+    \begin{itemize}
+        \item Erhöhung der Ausfallsicherheit
+        \item Steigerung der Datentransferrate
+        \item Erweiterung der Speicherkapazität
+        \item Möglichkeit des Austauschs von Festplatten im laufenden Betrieb
+        \item Kostenreduktion durch Einsatz mehrerer kostengünstiger Festplatten
+    \end{itemize}
+\end{defi}
+
+\begin{defi}{RAID-Level}
+    Die genaue Funktionsweise des RAID wird durch das sogenannte \emph{RAID-Level} angegeben.
+
+    \begin{itemize}
+        \item \textbf{RAID 0}:
+              \subitem - höhere Transferraten durch \emph{Striping}
+              \subitem - Daten werden auf mehrere Festplatten verteilt
+              \subitem - beim Lesen und Schreiben können mehrere Festplatten parallel verwendet werden
+              \subitem \emph{Nachteil}: fällt eine Festplatte aus, sind meist alle Daten verloren
+        \item \textbf{RAID 1}:
+              \subitem - erhöhte Ausfallsicherheit durch \emph{Mirroring}
+              \subitem - Daten in gleicher Weise auf mehrere Festplatten gleichzeitig abgelegt
+              \subitem - einzelne Daten \emph{können} auch parallel von mehreren Festplatten gelesen werden
+              \subitem \emph{Nachteil}: wird eine Datei gelöscht, wird sie auf allen Platten gelöscht (kein Backup!)
+        \item \textbf{RAID 5}:
+              \subitem - versucht Vorteile von RAID 0 und RAID 1 zu vereinen
+              \subitem - höhere Ausfallsicherheit bei höherer Datentransferrate
+              \subitem - besteht aus mindestens drei Festplatten
+              \subitem - Verwendet Variante von \emph{Striping}:
+              \subsubitem - nicht auf alle $n$ Festplatten verteilt
+              \subsubitem - auf allen Festplatten Paritätsinformationen zu Daten auf anderen $n-1$ Platten
+              \subsubitem - kann Ausfall einer Festplatte kompensieren
+    \end{itemize}
+
+
+    \begin{center}
+        \includegraphics[]{images/raid0.pdf}
+
+        \includegraphics[]{images/raid1.pdf}
+
+        \includegraphics[]{images/raid5.pdf}
+    \end{center}
+
+    Merhere RAID-Systeme eines Typs können auch zu einem RAID-System zusammengefasst werden (z.B. \emph{RAID 100}, \emph{RAID 01}, \emph{RAID 10}, \ldots).
+\end{defi}
+
+\begin{bonus}{HDD, SSD}
+    \textbf{HDD} (Hard Disk Drive, \emph{Festplatte}):
+    \begin{itemize}
+        \item Gehäuse der Festplatte beinhaltet mehrere, auf einer Achse übereinander montierten, runden Platten, welche mit einer magnetisierbaren Schicht überzogen sind
+        \item Schreib-/Leseköpfe werden durch einen zentralen Kamm über die Platten bewegt
+        \item \glqq Landing Zone\grqq zum Parken der Köpfe (Berührung $\to$ Datenverlust)
+        \item Platten rotieren mit konstanter Umdrehungszahl (5400-15000 rpm)
+        \item Kenngrößen:
+              \subitem - kontinuierliche Übertragungsrate (\emph{sustained data rate})
+              \subitem - mittlere Zugriffszeit (\emph{(data) access time}), bestehend aus:
+              \subsubitem - Spurwechselzeit (\emph{seek time})
+              \subsubitem - Latenzzeit (\emph{latency})
+              \subsubitem - Kommando-Latenz (\emph{controller overhead})
+    \end{itemize}
+
+
+    \textbf{SSD} (Solid State Drive):
+    \begin{itemize}
+        \item keine mechanischen Bauteile
+        \item niedriger Energieverbrauch
+        \item hoher Datendurchsatz
+        \item hoher Preis pro Speichereinheit
+    \end{itemize}
+\end{bonus}
+
+\begin{bonus}{Daten- und Adressbus}
+    Einzelne Komponenten sind über Leitungen, sogenannte \emph{Busse} verbunden.
+    \begin{itemize}
+        \item \emph{Datenbus} (bi-direktional)
+        \item \emph{Adressbus} (uni-direktional, leitet Adressanfragen der CPU an RAM oder Cache weiter)
+    \end{itemize}
+\end{bonus}
+
+\subsection{Parallele Rechnerarchitekturen}
+
+\begin{defi}{Flynn'sche Klassifikation (Flynn'sche Taxonomie)}
+    \begin{center}
+        \includegraphics[]{images/flynn.pdf}
+    \end{center}
+
+    \begin{itemize}
+        \item \emph{SISD} entspricht der Von-Neumann-Architektur
+        \item \emph{MIMD} entspricht dem heutigen Mehrprozessorsystem
+        \item \emph{SIMD} entspricht dem Aufbau einer Grafikkarte (genutzt in HPC)
+        \item \emph{MISD} eher ungebräuchlich.
+    \end{itemize}
+\end{defi}
+
+\begin{defi}{Shared-Memory Systeme}
+    Ein \emph{Shared-Memory System} teilt den vorhandenen RAM unter den verfügbaren Prozessorenkernen auf.
+    Das bedeutet, dass Daten zwischen den einzelnen Prozessorkernen \emph{implizit über den RAM} verteilt werden können, da
+    jeder Kern Zugriff auf den RAM hat.
+
+    \textbf{SMP} (\emph{symmetric multi processing}) skaliert vergleichweise schlecht.
+    Das liegt daran, dass an die vorhandene Basis der Von-Neumann-Architektur einfach
+    weitere Prozessorkerne angeschlossen werden. Da sich diese Prozessorkerne
+    nun aber das vorhandene Bus-System teilen müssen, entsteht an dieser Stelle ein
+    \emph{Flaschenhals}.
+
+    \textbf{ccNUMA} (\emph{cache-coherent non-uniform memory architecture}) soll dieses Problem, speziell im Bereich HPC, beheben.
+    Dabei wird der vorhandene Hauptspeicher auf mehrere Memory-Controller aufgeteilt.
+    Jeder Prozessor ist dann an einen eigenen Memory-Controller angeschlossen.
+    Dabei kann grundsätzlich weiterhin jeder Kern auf den gesamten RAM zugreifen.
+    Es kann nur sein, dass der Zugriff länger dauert, wenn der betreffende Teil des RAMs von einem anderen Memory-Controller verwaltet wird.
+\end{defi}
+
+\begin{defi}{Distributed-Memory System}
+    Ein \emph{Distributed-Memory System} verbindet mehrere
+    \emph{unabhängige Recheneinheiten}, sodass Daten \emph{explizit} über eine Netzwerkverbindung
+    zwischen dieses Recheneinheiten verteilt werden müssen.
+
+    Dieser Ansatz skaliert sehr gut, d.h. es ist
+    ohne Weiteres möglich weitere Recheneinheiten anzuschließen, ohne die Gesamtperformance
+    des Systems zu beeinträchtigen
+\end{defi}
+
+\begin{bonus}{Speedup und Effizienz}
+    \emph{Speed Up} und \emph{Effizienz} beurteilen die Güte paralleler Programmausführung, indem sie \emph{Zeitersparnis} und die \emph{Anzahl der verwendeten Prozessorkerne} in Relation setzen.
+
+    Sei $T(p)$ die Zeit zur Programmausführung bei Verwendung von $p$ CPUs. Dann sind der \emph{Speed Up} $S(p)$ und die Effizienz $E(p)$ definiert wie folgt:
+    $$
+        S(p) = \frac{T(1)}{T(p)} \qquad  \qquad E(p) = \frac{S(p)}{p}
+    $$
+    Der \emph{Speed Up} gibt an, wieviel schneller die Programmausführung ist.
+    Die Effizienz gibt an, wie gut die verwendeten Prozessorkerne genutzt worden sind.
+
+    Im Idealfall ist $S(p) = p$ und $E(p) = 1$.
+\end{bonus}
+
+\begin{bonus}{Amdahl's Law}
+    Nach Amdahl wird der Geschwindigkeitszuwachs vor allem durch den sequentiellen Anteil des Problems beschränkt, da sich dessen Ausführungszeit durch Parallelisierung nicht verringern lässt.
+
+    Der \emph{Speed Up} nach Amdahl ist wie folgt definiert ($f \in (0, 1]$: serieller Teil des Programms):
+    $$
+        S(p) = \frac{T(1)}{f \cdot T(1) + (1-f) \cdot \frac{T(1)}{p}} = \frac{1}{f + \frac{1-f}{p}}
+    $$
+\end{bonus}
+
+\section{Betriebssysteme}
+
+\begin{defi}{Betriebssystem}
+    Das \emph{Betriebssystem} liegt als Softwareschicht zwischen dem Rechner bzw. der \\ \emph{Software-Hardwareschnittstelle}, die das BIOS zur Verfügung stellt, und den Anwenderprogrammen.
+    Das heißt, dass ein Endnutzer nur mit dem Betriebssystem, den vom Betriebssystem bereitgestellten Dienstprogrammen und den Anwenderprogrammen in Kontakt kommt.
+
+    \begin{center}
+        \includegraphics[]{images/betriebssysteme.pdf}
+    \end{center}
+\end{defi}
+
+\begin{bonus}{Anforderungen an ein Betriebssystem}
+    \begin{itemize}
+        \item Hohe Zuverlässigkeit und Leistung
+        \item Einfache Bedienbarkeit und Wartbarkeit
+        \item Niedrige Kosten
+    \end{itemize}
+\end{bonus}
+
+\begin{bonus}{Batchsysteme}
+    \emph{Batchsysteme} sind dazu gedacht, Rechenaufgaben ohne Nutzereingabe abzuarbeiten.
+    Dazu gibt es eine \emph{Job Queue}, in welche Aufgaben eingestellt werden.
+    Diese Aufgaben werden dann bearbeitet und die Ergebnisse an den Nutzer ausgegeben.
+\end{bonus}
+
+\begin{bonus}{Dialogsysteme}
+    \emph{Dialogsysteme} sind auf eine Interaktion mit dem Benutzer ausgelegt.
+    Sie sind die wohl geläufigste Form von Betriebssystemen, da diese Form auf z.B. Desktop-Computern eingesetzt wird.
+
+    Dialogsysteme werden noch einmal unterteilt in \emph{Single User}- und \emph{Multi-User-Systeme}.
+\end{bonus}
+
+\begin{bonus}{Echtzeitsysteme}
+    \emph{Echtzeitsysteme} sind reaktive Systeme, die mit Hilfe von Sensoren Ereignisse registrieren und anhand von Aktoren darauf reagieren.
+    Dabei ist die zeitliche Abfolge bzw. die Dauer der Ausführung von Interesse.
+\end{bonus}
+
+\subsection{Prozess}
+
+\begin{defi}{Prozess}
+    Ein \emph{Prozess} ist die Abstraktion eines in Ausführung befindelichen Programms.
+
+    Er besteht aus den \emph{Programmbefehlen} und dem \emph{Prozesskontext}.
+
+    Der \emph{Prozesskontext} besteht aus dem privaten Adressraum des Prozessors, geöffneten Streams und abhängigen Prozessen.
+\end{defi}
+
+\begin{defi}{Prozesszustände}
+    \begin{center}
+        \includegraphics[]{images/prozesszustaende.pdf}
+    \end{center}
+    \begin{enumerate}
+        \item Der Prozess muss auf ein externes Ereignis warten.
+        \item Die Zeitscheibe des Prozesses ist abgelaufen, oder ein höher priorisierter Prozess muss ausgeführt werden.
+        \item Der Prozess bekommt eine neue Zeitscheibe zugeteilt.
+        \item Das externe Ereignis, auf das der Prozess gewartet hat, ist eingetreten.
+    \end{enumerate}
+\end{defi}
+
+\begin{bonus}{Multitasking}
+    \textbf{Preemptives Multitasking}:
+    \begin{itemize}
+        \item Betriebssystem entscheidet, wann welcher Prozess zur Ausführung kommt
+        \item Benutzer erhält Eindruck von Parallelität
+    \end{itemize}
+
+    \textbf{Kooperatives Multitasking}:
+    \begin{itemize}
+        \item Prozess bestimmt selbst, wann er den Prozessor abgibt
+        \item \emph{Nachteile}
+              \subitem - z.B. Endlosschleifen können das gesamte System zum Absturz bringen
+              \subitem - das Betriebssystem kann nicht berechnen, wann der Prozessor wieder frei ist
+    \end{itemize}
+\end{bonus}
+
+\begin{defi}{Scheduling}
+    Die Zuteilung von Zeitscheiben wird \emph{Scheduling} genannt und ist der Kern der Prozessverwaltung.
+    Das Scheduling sollte dabei jederzeit die folgenden Eigenschaften erfüllen:
+    \begin{itemize}
+        \item \emph{Fairness}: Jeder Prozess erhält einen gerechten Anteil der CPU-Zeit.
+        \item \emph{Effizienz}: Die CPU und andere Ressourcen sind möglichst vollständig ausgelastet.
+    \end{itemize}
+\end{defi}
+
+\begin{bonus}{Priorität}
+    \textbf{Statische Priorität}:
+    \begin{itemize}
+        \item Jeder Prozess erhält beim Start eine \emph{feste Priorität}
+        \item Prozess mit \emph{höchster Priorität} bekommt als nächstes eine Zeitscheibe zugeteilt
+        \item Oft in Echtzeitsystemen verwendet
+    \end{itemize}
+
+    \textbf{Dynamische Priorität}:
+    \begin{itemize}
+        \item Jeder Prozess erhält beim Start eine \emph{Anfangspriorität}
+        \item Prozess mit \emph{höchster Priorität} bekommt als nächstes eine Zeitscheibe zugeteilt
+        \item Prioritäten der Prozesse werden \emph{dynamisch geändert}
+    \end{itemize}
+\end{bonus}
+
+\begin{algo}{Scheduling: FIFO (First In First Out)}
+    Prozesse werden nach \emph{Reihenfolge} ihres Einfügens in die \emph{Job-Queue} bearbeitet.
+    \begin{itemize}
+        \item Zuteilung der CPU findet nur statt, wenn laufender Prozess wartet oder sich beendet
+        \item Jeder Prozess kommt garantiert an die Reihe
+        \item Kurze Prozesse müssen unter Umständen sehr lange warten, bis sie ausgeführt werden
+    \end{itemize}
+\end{algo}
+
+\begin{algo}{Scheduling: SJF (Shortest Job First)}
+    Prozesse werden aufsteigend nach ihrer \emph{geschätzten Ausführungszeit} bearbeitet.
+    \begin{itemize}
+        \item Große Prozesse kommen möglicherweise nie an die Reihe, wenn stets kleinere dazukommen
+        \item Wartezeit auf das Ergebnis eines Prozesses sich in etwa proportional zur Ausführungszeit
+    \end{itemize}
+\end{algo}
+
+\begin{algo}{Scheduling: MLFQ (Multilevel Feedback Queue)}
+    Bei diesem Ansatz gibt \emph{mehrere FIFO-Queues}, denen jeweils
+    eine \emph{Priorität} zugeordnet ist.
+
+    Ein neuer Prozess wird immer in der Queue mit
+    \emph{höchster Priorität} eingeordnet.
+
+    Wird der Prozess während der ersten Zeitscheibe fertig,
+    so verlässt er das System.
+
+    Gibt er die CPU freiwillig ab, beispielsweise weil er
+    durch das Warten auf ein externes Ereignis blockiert wird, wird er, sobald er wieder
+    bereit ist, in \emph{dieselbe Queue wieder einsortiert} und dort weiter ausgeführt.
+
+    Verbraucht der Prozess seine Zeitscheibe vollständig, so wird er in die \emph{nächst-niedriger priorisierte FIFO-Queue} eingereiht. Dort gelten wieder dieselben Regeln wie vorher.
+
+    Verbraucht der Prozess immer weiter seine Zeitscheiben vollständig, kommt er
+    schließich in der \emph{am niedrigsten priorisierten Queue} an.
+    Dort verweilt er, bis er abgearbeitet wurde, d.h. es gibt \emph{keine Möglichkeit} wieder in höher priorisierte Queues
+    eingestuft zu werden.
+
+    Wieviele FIFO-Queues es gibt, ist vom konkreten Einsatzszenario abhängig.
+\end{algo}
+
+\subsection{Speicherverwaltung}
+
+\begin{defi}{Reale Speicherverwaltung}
+    Jedem Prozess wird ein zusammenhängener Block im Hauptspeicher zugeteilt.
+    Wird in diesem Kontext der Arbeitsspeicher direkt aus den Prozessen heraus adressiert, spricht man von \emph{realer Speicherverwaltung}.
+
+    Das bedeutet auch, dass die Größe des physikalisch vorhandenen Hauptspeichers die Anzahl der gleichzeitig ausführbaren Prozesse begrenzt.
+
+    \emph{Nachteile}:
+    \begin{itemize}
+        \item Es muss Platz für das \emph{gesamte Programm und die Daten} gefunden werden.
+        \item Es kannt nicht mehr Speicher genutzt werden, als \emph{physikalisch vorhanden}.
+        \item Anforderung, zusammenhängender Speicherblöcke zu finden, verschärft Problem der \emph{Fragmentierung}.
+    \end{itemize}
+\end{defi}
+
+\begin{bonus}{Fragmentierung}
+    \emph{Fragmentierung} passiert dann, wenn mehrere, kleine Blöcke im Hauptspeicher frei sind und unter der Prämisse, dass einem
+    Prozess ein zusammenhängender Block im Hauptspeicher zugeordnet werden
+    muss, dies eventuell zu einer Situation führt, in der kein neuer Prozess gestartet
+    werden kann, obwohl in Summe genügend Hauptspeicher frei wäre.
+\end{bonus}
+
+\begin{defi}{Swapping}
+    Beim \emph{Swapping} wird der
+    Hauptspeicherinhalt eines Prozesses auf den \emph{Hintergrundspeicher}, beispielsweise
+    eine Festplatte (HDD), \emph{ausgelagert}, um Platz für andere Prozesse zu schaffen.
+
+    Bekommt dann der Prozess, dessen Daten gerade auf dem Hintergrundspeicher liegen,
+    die CPU zugeteilt, müssen seine Daten \emph{erneut in den Hauptspeicher geladen werden},
+    wahrscheinlich nachdem die Daten eines anderen Prozesses ausgelagert wurden.
+\end{defi}
+
+\begin{defi}{Virtuelle Speicherverwaltung}
+    Jedem Prozess wird ein \emph{scheinbar zusammenhängender Speicherbereich} zur Verfügung gestellt.
+    Tatsächlich besteht der Speicher des Prozesses aus nicht zwangsläufig zusammenhängenden \emph{virtuelle Pages}.
+
+    Der Prozess kann seinen Speicher mit \emph{virtuellen Adressen} beginnend bei 0 adressieren.
+
+    Die Gesamtheit aller virtuellen Adressen wird als \emph{virtueller Adressraum} bezeichnet.
+\end{defi}
+
+\begin{defi}{Virtuelle Pages}
+    \emph{Virtuelle Pages} werden auf Blöcke im Hauptspeicher gleicher Größe abgebildet.
+
+    Hier kann auch \emph{Swapping} genutzt werden. In diesem Fall aber für einzelne Pages, nicht für den gesamten Hauptspeicherinhalt des Prozessors.
+\end{defi}
+
+\begin{defi}{Pagetable}
+    Beim Zugriff auf eine virtuelle Speicheradresse durch einen Prozess muss diese
+    Adresse in eine physikalische Adresse umgewandelt werden. Das geschieht anhand
+    der \emph{Pagetable}, die das Betriebssystem \emph{für jeden Prozess} erstellt und aktualisiert.
+
+    Da
+    die Pagetable virtuelle Pages auf physikalische Pages gleicher Größe abbildet, gibt es einen Teil der Adresse, der sogenannte \emph{Offset}, der die Position der Daten innerhalb
+    der Page angibt.
+
+    Abhängig von
+    der Größe der Pages besteht das Offset aus $m$ Bits.
+    Für eine Pagegröße von 1MB
+    werden beispielsweise 20 Bits als Offset benötigt.
+
+    Der Rest der Adresse, die Seitennummer,
+    muss dann anhand der Pagetable in die Basisadresse umgesetzt werden,
+    um die Adresse im physikalischen Speicher zu erhalten. Da die Seitennummer aus
+    $n$ Bits besteht, kann die Pagetable maximal $2^n$ Einträge enthalten.
+\end{defi}
+
+\begin{example}{Pagetable}
+    Die Länge einer Adresse sei 16 Bit, aufgeteilt in je 8 Bit für Offset und Seitennummer.
+
+    Es sei außerdem folgende Seitentabelle gegeben:
+
+    \begin{center}
+        \begin{tabular}{|c|c|c|}
+            \hline
+            \textbf{Eintrag} & \textbf{Gültig} & \textbf{Basisadresse} \\
+            \hline
+            00               & Nein            & -                     \\
+            01               & Ja              & 0x17                  \\
+            02               & Ja              & 0x20                  \\
+            03               & Ja              & 0x08                  \\
+            04               & Nein            & -                     \\
+            05               & Ja              & 0x10                  \\
+            \hline
+        \end{tabular}
+    \end{center}
+
+    Dann können virtuelle Adressen anhand dieser Pagetable wie folgt umgesetzt werden:
+
+    \begin{center}
+        \begin{tabular}{|c|c|}
+            \hline
+            \textbf{virtuelle Adresse} & \textbf{physikalische Adresse}      \\
+            \hline
+            0x083A                     & ungültig (Seite 8 existiert nicht)  \\
+            0x01FF                     & 0x17FF (Seite 1, Basisadresse 0x17) \\
+            0x0505                     & 0x1005 (Seite 5, Basisadresse 0x10) \\
+            0x043A                     & ungültig (Seite 4 ungültig)         \\
+            \hline
+        \end{tabular}
+    \end{center}
+
+    \emph{Hinweis}: Ist eine Adresse ungültig, wurde die dazugehörige Page in den Hintergrundspeicher ausgelagert. In diesem Fall muss die physikalische Page in den RAM geladen und die Pagetable aktualisiert werden.
+\end{example}
+
+\begin{bonus}{Paging on Demand}
+    Das Vorgehen, aktuell
+    unbenutzte Pages aus dem Hauptspeicher auf den Hintergrundspeicher auszulagern
+    wird auch als \emph{Paging on Demand} bezeichnet.
+    Das Ziel dabei ist, Arbeitsspeicher
+    für andere Prozesse freizugeben.
+
+    Dabei kann ein Prozess entweder Platz für eine
+    bestimmte Anzahl von physikalischen Pages zugewiesen bekommen, die sich im
+    Laufe der Prozessabarbeitung nicht ändert, oder es wird dynamisch anhand der aktuellen
+    Speicherauslastung entschieden, wieviel Platz ein Prozess belegen darf.
+\end{bonus}
+
+\begin{algo}{Speicherverwaltung: FIFO (First In First Out)}
+    Beim \emph{FIFO}-Verfahren wird
+    diejenige Page ausgelagert, welche sich schon am längsten im Hauptspeicher
+    befindet. Dazu muss in der Pagetable festgehalten werden, wann welche
+    Page in den Hauptspeicher geladen wurde.
+\end{algo}
+
+\begin{algo}{Speicherverwaltung: LRU/LFU (Least Recently / Frequently Used)}
+    Bei \emph{LRU}
+    wird mitgehalten, wieviele Ladevorgänge seit der letzten Benutzung einer
+    Page vorgenommen wurden. Das heißt, dass im Gegensatz zu FIFO, der
+    Kontrollzustand bei der Verwendung einer Page wieder auf \glqq 0\grqq gesetzt wird.
+\end{algo}
+
+\begin{example}{Speicherverwaltung}
+    Seitenanforderungen: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
+
+    \textbf{FIFO-Strategie:}
+
+    \begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}
+        \hline
+        \multicolumn{1}{|c}{\textbf{Referenzfolge}} & \multicolumn{1}{c|}{} & 1                  & 2                  & 3                  & 4                  & 1                  & 2                  & 5                  & 1 & 2 & 3                  & 4                  & 5 \\
+        \hline
+        \hline
+        \multirow{3}{*}{\textbf{Arbeitsspeicher}}   & Page 1                & \textcolor{red}{1} & 1                  & 1                  & \textcolor{red}{4} & 4                  & 4                  & \textcolor{red}{5} & 5 & 5 & 5                  & 5                  & 5 \\
+                                                    & Page 2                &                    & \textcolor{red}{2} & 2                  & 2                  & \textcolor{red}{1} & 1                  & 1                  & 1 & 1 & \textcolor{red}{3} & 3                  & 3 \\
+                                                    & Page 3                &                    &                    & \textcolor{red}{3} & 3                  & 3                  & \textcolor{red}{2} & 2                  & 2 & 2 & 2                  & \textcolor{red}{4} & 4 \\
+        \hline
+        \hline
+        \multirow{3}{*}{\textbf{Kontrollzustand}}   & Page 1                & 0                  & 1                  & 2                  & 0                  & 1                  & 2                  & 0                  & 1 & 2 & 3                  & 4                  & 5 \\
+                                                    & Page 2                & -                  & 0                  & 1                  & 2                  & 0                  & 1                  & 2                  & 3 & 4 & 0                  & 1                  & 2 \\
+                                                    & Page 3                & -                  & -                  & 0                  & 1                  & 2                  & 0                  & 1                  & 2 & 3 & 4                  & 0                  & 1 \\
+        \hline
+    \end{tabular}
+
+    9 Einlagerungen
+
+    \textbf{LRU-Strategie:}
+
+    \begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}
+        \hline
+        \multicolumn{1}{|c}{\textbf{Referenzfolge}} & \multicolumn{1}{c|}{} & 1                  & 2                  & 3                  & 4                  & 1                  & 2                  & 5                  & 1 & 2 & 3                  & 4                  & 5                  \\
+        \hline
+        \hline
+        \multirow{3}{*}{\textbf{Arbeitsspeicher}}   & Page 1                & \textcolor{red}{1} & 1                  & 1                  & \textcolor{red}{4} & 4                  & 4                  & \textcolor{red}{5} & 5 & 5 & \textcolor{red}{3} & 3                  & 3                  \\
+                                                    & Page 2                &                    & \textcolor{red}{2} & 2                  & 2                  & \textcolor{red}{1} & 1                  & 1                  & 1 & 1 & 1                  & \textcolor{red}{4} & 4                  \\
+                                                    & Page 3                &                    &                    & \textcolor{red}{3} & 3                  & 3                  & \textcolor{red}{2} & 2                  & 2 & 2 & 2                  & 2                  & \textcolor{red}{5} \\
+        \hline
+        \hline
+        \multirow{3}{*}{\textbf{Kontrollzustand}}   & Page 1                & 0                  & 1                  & 2                  & 0                  & 1                  & 2                  & 0                  & 1 & 2 & 0                  & 1                  & 2                  \\
+                                                    & Page 2                & -                  & 0                  & 1                  & 2                  & 0                  & 1                  & 2                  & 0 & 1 & 2                  & 0                  & 1                  \\
+                                                    & Page 3                & -                  & -                  & 0                  & 1                  & 2                  & 0                  & 1                  & 2 & 0 & 1                  & 2                  & 0                  \\
+        \hline
+    \end{tabular}
+
+    10 Einlagerungen
+\end{example}
+
+\newpage
+\subsection{Dateisystemverwaltung}
+
+\begin{defi}{BIOS (Basic Input/Output System)}
+    Das \emph{BIOS}:
+    \begin{itemize}
+        \item ist die \emph{Firmware} bei x86-PCs
+        \item liegt im \emph{nichtflüchtigen Speicher} auf der Hauptplatine des PCs
+        \item leitet den \emph{Start} des \emph{Betriebssystems} ein
+    \end{itemize}
+\end{defi}
+
+\begin{defi}{UEFI (Unified Extensible Firmware Interface)}
+    \emph{UEFI} ist die zentrale Schnittstelle zwischen:
+    \begin{itemize}
+        \item der \emph{Firmware}
+        \item den \emph{einzelnen Komponenten} eines Rechners
+        \item und dem \emph{Betriebssystem}
+    \end{itemize}
+\end{defi}
+
+\begin{bonus}{MBR (Master Boot Record)}
+    Der \emph{MBR} besteht aus insgesamt 512 Byte, die sich auf 446 Byte
+    für einen (optionalen) Bootloader, 64 Byte für die \emph{Partitionstabelle} und 2 Byte
+    für eine \emph{} (0xAA55) aufteilen. Die Magic Number dient dazu, einen
+    gültigen MBR zu identifizieren.
+
+    In der Partitionstabelle können maximal 4 Partitionen
+    definiert werden, d.h. die Festplatte kann in maximal 4 logische Einheiten aufgeteilt
+    werden.
+\end{bonus}
+
+\begin{bonus}{GPT (GUID Partition Table)}
+    Mit der Einführung von UEFI wurden auch die Limitierungen des
+    MBR aufgehoben und die GPT als Nachfolger definiert.
+
+    Die \emph{GPT} beinhaltet zu Beginn
+    aus Kompatibilitätsgründen einen MBR, sodass ein hybrider Betrieb möglich
+    ist. In der GPT können bis zu 128 Partitionen abgelegt werden.
+
+    Zur Absicherung der
+    GPT wird eine exakte Kopie der GPT am Ende des Datenträgers abgelegt.
+\end{bonus}
+
+\begin{defi}{Dateisystem}
+    Ein Dateisystem ist im Prinzip eine Ablageorganisation für Daten auf einem Datenträger des Computers.
+    Das Dateisystem muss sicherstellen,
+    dass Dateien \emph{lesend und schreibend geöffnet} und auch wieder \emph{geschlossen} werden
+    können. Das bedeutet, dass Dateinamen auf physikalische Adressen auf dem
+    Datenträger abgebildet werden müssen.
+
+    Spezielle Eigenschaften des Datenträgers
+    (Festplatte, USB-Stick, ...) müssen berücksichtigt werden.
+
+    Generell bieten
+    alle (modernen) Dateisysteme folgende Attribute:
+    \begin{itemize}
+        \item Dateiname
+        \item Ablageort (Ordner bzw. Verzeichnis)
+        \item Dateigröße
+        \item Zugriffsrecht
+    \end{itemize}
+\end{defi}
+
+\begin{defi}{Lineare Dateisysteme}
+    Bei linearen Dateisystemen werden Daten direkt hintereinander auf den Datenträger
+    geschrieben. Das bedeutet, dass wahlfreier Zugriff nicht möglich ist. Daher finden
+    diese Dateiysteme heutzutage nur noch Anwendung in Bereichen, in denen es nicht
+    primär auf Geschwindigkeit ankommt.
+\end{defi}
+
+\begin{defi}{Hierarchische Dateisysteme}
+    Daten werden auf hierarchischen Dateisystemen in einer Verzeichnisstruktur
+    abgelegt.
+
+    Diese Art von Dateisystem ist die wohl verbreiteste auf
+    modernen Computern und kann auf Festplatten, SSDs, USB-Sticks, SD-Karten und
+    sonstigen herkömmlichen Datenträgern verwendet werden.
+\end{defi}
+
+\begin{defi}{Netzwerkdateisysteme}
+    In Netzwerkdateisystemen wird entfernter
+    Speicher auf einem Server wie ein lokales Medium behandelt. Das Betriebssystem
+    muss dann die Zugriffe auf Dateien in Netzwerkkommunikation umwandeln.
+    Für den Nutzer
+    eines Betriebsystems stellt sich Netzwerkspeicher allerdings in der Regel wie ein
+    hierarchisches Dateisystem dar.
+\end{defi}
+
+\begin{bonus}{Sicherheitsaspekte}
+    \textbf{Paralleler Zugriff im Multitasking}:
+    \begin{itemize}
+        \item Bereitstellung von Locks für den Dateizugriff
+    \end{itemize}
+
+    \textbf{Stromausfall während einer Schreiboperation}:
+    \begin{itemize}
+        \item Es muss Datenkonsistenz gewährleistet werden
+        \item Atomare Operationen, welche entweder abgeschlossen oder ausstehend sind
+              \subitem $\to$ Journalingdateisysteme
+    \end{itemize}
+\end{bonus}
+
+\begin{defi}{Journalingdateisysteme}
+    Bei einem Journalingdateisystem werden alle Aktionen auf der Festplatte protokolliert
+    und erst als gültig aufgefasst, nachdem das Beenden der Aktion auf dem Dateisystem
+    im \emph{Journal} (Protokoll) vermerkt wurde.
+
+    \begin{itemize}
+        \item \emph{Metadatenjournaling}:
+              \subitem - Konsistenz des Dateisystems
+        \item \emph{Fulljournaling}:
+              \subitem - Konsistenz des Dateisystems
+              \subitem - Konsistenz der Dateiinhalte
+    \end{itemize}
+
+\end{defi}
+
+\section{Virtualisierung}
+
+\begin{defi}{Virtualisierung}
+    \emph{Virtualisierung} bezeichnet Methoden, die es erlauben, Ressourcen
+    eines Computers \emph{zusammenzufassen oder aufzuteilen}.
+
+    Dies wird erreicht, indem real existierende Hardware unter
+    Zuhilfenahme einer Softwareschicht zu virtueller Hardware \emph{abstrahiert} wird.
+
+    Dabei können mehrere Szenarien unterschieden werden:
+    \begin{itemize}
+        \item Partitionierung
+        \item Aggregation
+        \item Emulation
+        \item Isolation
+    \end{itemize}
+    \vspace{1em}
+    \begin{center}
+        \includegraphics[]{images/virtualisierung.pdf}
+    \end{center}
+\end{defi}
+
+\begin{defi}{Hypervisor / Virtual Machine Monitor (VMM)}
+    Der \emph{Hypervisor} ist ein Stück Soft- oder Hardware, das  die Umsetzung
+    zwischen der \emph{virtuellen Maschine} und der \emph{physikalischen Hardware} vornimmt.
+
+    \textbf{Typ-1-Hypervisor}:
+    \begin{itemize}
+        \item läuft direkt auf physikalischer Hardware
+    \end{itemize}
+
+    \textbf{Typ-2-Hypervisor}:
+    \begin{itemize}
+        \item läuft als Anwendung auf dem Hostsystem
+    \end{itemize}
+\end{defi}
+
+\subsection{Virtualisierungskonzepte}
+
+\begin{defi}{Paravirtualisierung}
+    \begin{itemize}
+        \item Funktionalitäten des Gast BS werden gezielt verändert (Kernel Anpassungen)
+        \item Gast-BS \glqq weiß\grqq, dass es sich in einer virtuellen Umgebung befindet
+        \item Gast-BS kann direkt mit dem Hypervisor interagieren, benötigt keine Hardware-Emulation
+    \end{itemize}
+
+    \emph{Vorteile}: gute Performance
+
+    \emph{Nachteile}: Gastsysteme nicht beliebig wählbar, hoher Aufwand für Kernel-Entwickler
+\end{defi}
+
+\begin{defi}{Hardware-unterstützte Virtualisierung}
+    \begin{itemize}
+        \item Neue Prozessortechnologien: CPUs besitzen Befehlssatz, der Virtualisierung unterstützt
+        \item Modifikation des Gast-BS soll vermieden werden, direkt durch Hardware gelöst
+        \item Hypervisor soll durch hardwarebasierte Speicherverwaltung entlastet werden
+    \end{itemize}
+
+    \emph{Vorteile}: Gast-BS muss nicht modifiziert werden, Gastsysteme frei wählbar
+
+    \emph{Nachteile}: kein gemeinsamer Standard, Virtualisierungsplattform muss Technologie unterstützen
+\end{defi}
+
+\begin{defi}{Hardware-Emulation}
+    \begin{itemize}
+        \item Innerhalb einer VM wird Standardhardware eines Rechners komplett oder teilweise simuliert
+        \item Emulator erzeugt Softwareschnittstellen, die vom Gast-BS angesprochen werden können
+        \item Emulator sorgt dafür, dass Befehle, die an simulierte Hardware gerichtet sind, für die physische Hardware des Hostsystems umgewandelt werden
+    \end{itemize}
+
+    \emph{Vorteile}: flexible Wahl der Gast-BS
+
+    \emph{Nachteile}: Performanceverlust durch hohen Virtualisierungsaufwand
+\end{defi}
+
+\begin{defi}{Betriebssystemvirtualisierung}
+    \begin{itemize}
+        \item Innerhalb des Host-BS werden Virtual Environments (VE) / Container erzeugt
+        \item In VE ist kein eigenständiges Betriebssystem installiert
+        \item Kernel-Bibliotheken und Geräte-Treiber des Hostsystems genutzt
+        \item Einige Individualdaten müssen für Container definiert werden \\ (z.B. Dateisystem, IP Adresse, Hostname)
+    \end{itemize}
+
+    \emph{Vorteile}: gute Performance, wenig Speicherbedarf
+
+    \emph{Nachteile}: keine freie Wahl des Gast-BS (gebunden an Hostsystem)
+\end{defi}
+
+\subsection{Cloud Computing}
+
+\begin{defi}{Cloud Computing}
+    \emph{Cloud Computing} ist im Wesentlichen ein Model um einen allgegenwärtigen,
+    bequemen, bedarfsgesteuerten Netzwerkzugang zu einem gemeinsamen Pool konfigurierbarer
+    Computer-Ressourcen zur Verfügung zu stellen. Zudem soll das Ganze
+    schnell und mit minimalem Verwaltungsaufwand und Interaktion mit dem Provider
+    funktionieren.
+\end{defi}
+
+\begin{defi}{Servicemodelle}
+    \textbf{Infrastructure as a Service} (IaaS):
+    \begin{itemize}
+        \item vom Anbieter verwaltete Infrastruktur
+        \item Nutzer muss verwendetes Betriebssystem und Software vollständig selbst verwalten
+    \end{itemize}
+
+    \textbf{Platform as a Service} (PaaS):
+    \begin{itemize}
+        \item virtuelle Plattform zur Verfügung gestellt (Betriebssystem, Entwicklungsplattform)
+        \item alles \glqq unterhalb\grqq der Plattform ist aber \emph{nicht} unter der Kontrolle des Nutzers
+    \end{itemize}
+
+    \textbf{Software as a Service} (SaaS):
+    \begin{itemize}
+        \item nur eine einzelne Anwendung zur Verfügung gestellt
+        \item alles \glqq unterhalb\grqq der Anwendung ist aber \emph{nicht} unter der Kontrolle des Nutzers
+    \end{itemize}
+\end{defi}
+
+\begin{bonus}{Charakterisken von Cloud Computing}
+    \begin{itemize}
+        \item Selbstverwaltung (On-demand self-service)
+        \item Breitband Internetzugang
+        \item Ressourcenbündelung
+        \item Elastizität
+        \item Leistungsmessung
+    \end{itemize}
+\end{bonus}
+
+\begin{defi}{Bereitstellungsmodelle}
+    \textbf{Private Cloud}:
+    \begin{itemize}
+        \item für eine ganz spezielle Nutzergruppe betrieben
+        \item kann auch von der Firma selbst verwaltet werden
+    \end{itemize}
+
+    \textbf{Community Cloud}:
+    \begin{itemize}
+        \item wird für verschiedene Nutzergruppen in einem bestimmten Kontext betrieben
+        \item in der Regel von einer der teilnehmenden Gruppen oder von externem Dienstleister bereitgestellt
+    \end{itemize}
+
+    \textbf{Public Cloud}:
+    \begin{itemize}
+        \item für beliebige Nutzer zur Verfügung steht
+        \item von beliebigem Anbieter betrieben
+    \end{itemize}
+
+    \textbf{Hybrid Cloud}:
+    \begin{itemize}
+        \item kombiniert mehrere der vorhergehenden Bereitstellungsmodelle
+        \item einzelnen Teile unabhängig voneinander, aber durch standardisierte Schnittstellen verbunden
+    \end{itemize}
+\end{defi}
+
+\section{Datenschutz und Sicherheit}
+\subsection{Datensicherheit}
+
+\begin{defi}{Kryptographie}
+    Kryptographie ist die Wissenschaft der Verschlüsselung von Informationen. Sie wird genutzt
+    um Informationen auf eine Art und Weise zu verändern, sodass ein Unbefugter
+    die Informationen nicht mehr lesen kann. Es soll nur dem tatsächlichen Adressaten
+    einer Nachricht möglich sein, diese auch zu lesen. Es geht also explizit nicht darum,
+    den Diebstahl von Informationen zu verhindern, sondern es geht darum, dass
+    entwendete Informationen nicht gelesen werden können.
+\end{defi}
+
+\begin{defi}{Transpositionschiffren}
+    Die Verschlüsselung wird durch Umordnung der Zeichen
+    im Klartext umgesetzt.
+\end{defi}
+
+\begin{defi}{Substitutionschiffren}
+    Die Verschlüsselung wird durch Ersetzung der Zeichen
+    im Klartext realisiert.
+
+    \textbf{Monoalphabetische Substitution}:
+    \begin{itemize}
+        \item Jedes Zeichen des Klartexts wird durch genau
+              ein eindeutiges Zeichen aus dem Geheimtextalphabet ersetzt, das für einen
+              gewählten Schlüssel immer gleich ist.
+    \end{itemize}
+
+    \textbf{Homophone Substitution}:
+    \begin{itemize}
+        \item Jedes Zeichen des Klartexts wird durch genau ein
+              anderes Zeichen aus einer eindeutigen Menge von Zeichen ersetzt, die für einen
+              gewählten Schlüssel immer gleich ist.
+    \end{itemize}
+
+    \textbf{Polyalphabetische Substitution}:
+    \begin{itemize}
+        \item Jedes Zeichen wird durch ein eindeutiges Zeichen
+              aus einem von mehreren geheimen Alphabeten ersetzt, die für einen gewählten
+              Schlüssel immer gleich sind. Die Alphabete werden dabei immer der Reihe nach
+              verwendet.
+    \end{itemize}
+\end{defi}
+
+\begin{example}{Cäsar Chiffre}
+    Im einfachsten Fall beinhalten $\mathfrak{P}$ und $\mathfrak{S}$ dieselben Zeichen und sind nur gegeneinander
+    um $k$ Zeichen verschoben. Diese Variante einer \emph{monoalphabetischen Substitutionschiffre} wird \emph{Cäsar Chiffre} genannt.
+
+    Alice wählt für die Verschlüsselung $k = 10$ und erhält damit die folgenden Alphabete:
+
+    \begin{center}
+        $\mathfrak{P}$: \texttt{A B C D E F G H I J K L M N O P Q R S T U V W X Y Z}\\
+        $\mathfrak{S}$: \texttt{J K L M N O P Q R S T U V W X Y Z A B C D E F G H I}\\
+    \end{center}
+
+    Da Alice $k = 10$ gewählt hat, beginnt das Geheimtextalphabet mit \texttt{J}, dem
+    zehnten Buchstaben des Alphabets. Die Verschlüsselung führt Alice durch,
+    indem sie jeden Buchstaben ihres Klartexts durch den entsprechenden Buchstaben
+    aus dem Geheimtextalphabet ersetzt.Werden die beiden Alphabete wie
+    weiter oben aufgeschrieben, ist das einfach der Buchstabe im Geheimtextalphabet
+    der direkt unter dem Buchstaben im Klartextalphabet steht. Damit ergibt
+    sich für die Nachricht \texttt{HALLO} der Geheimtext \texttt{QJUUX}. Bob kann den
+    Geheimtext dann entschlüsseln, indem er wiederum beide Alphabete untereinander
+    schreibt und jedem Buchstaben aus dem Geheimtext den zugehörigen
+    Buchstaben aus dem Klartextalphabet zuorndet, der dann genau darüber steht.
+\end{example}
+
+\begin{example}{Vigenère Chiffre}
+    Eine bekannte \emph{polyalphabetische Substitutionschiffre} ist die \emph{Vigenère Chiffre}.
+    Sie funktioniert im Prinzip wie die Cäsar-Chiffre, verwendet also verschobene
+    lateinische Alphabete zur Verschlüsselung. Wie viele Alphabete und wie
+    jedes von ihnen verschoben, wird durch den Schlüssel $k$ bestimmt, der in diesem
+    Fall ein Wort ist. Es gibt also soviele geheime Alphabete, wie es Zeichen
+    in $k$ gibt und jedes dieser Alphabete ist verschoben, so dass das $i$-te Alphabet
+    mit dem $i$-ten Zeichen von $k$ beginnt.
+    Alice wählt das Schlüsselwort $k = EDV$. Damit ergeben sich Klartext- und
+    Geheimalphabete wie folgt:
+
+    \begin{center}
+        $\mathfrak{P}$: \texttt{A B C D E F G H I J K L M N O P Q R S T U V W X Y Z}\\
+        $\mathfrak{S}_1$: \texttt{E F G H I J K L M N O P Q R S T U V W X Y Z A B C D}\\
+        $\mathfrak{S}_2$: \texttt{D E F G H I J K L M N O P Q R S T U V W X Y Z A B C}\\
+        $\mathfrak{S}_3$: \texttt{V W X Y Z A B C D E F G H I J K L M N O P Q R S T U}\\
+    \end{center}
+
+    Damit kann Alice den Klartext $M =$ \texttt{HALLOHALLO} verschlüsseln, indem Sie
+    die Buchstaben des Klartexts wie bei der Cäsar Chiffre zuordnet und dabei die
+    drei Geheimtextalphabete reihum verwendet. Da der Klartext mehr Zeichen
+    enthält, als es Geheimtextalphabete gibt, fängt sie nach jeweils drei Zeichen
+    wieder beim ersten Geheimtextalphabet an. Somit ergibt sich der Geheimtext
+    $C =$ \texttt{LDGPRCEOGS}.
+\end{example}
+
+\begin{defi}{Moderne Verschlüsselungsverfahren}
+    Moderne Verschlüsselungsverfahren werden, im Gegensatz zu klassischen Verfahren,
+    nicht mehr auf Zeichen einer natürlichen Sprache angewandt. Stattdessen werden
+    Zahlen bzw. Bits als Grundlage der Operationen verwendet. Damit können
+    beliebige Daten verschlüsselt werden, nicht mehr nur Text. Damit sind moderne
+    Verschlüsselungsverfahren den Anforderungen der heutigen digitalen Gesellschaft
+    gewachsen.
+
+    \textbf{Symmetrische Verfahren}:
+    \begin{itemize}
+        \item denselben Schlüssel zur Ver- und Entschlüsselung
+        \item Problem des Schlüsselaustauschs
+        \item Vertraulichkeit, aber keine zur Sicherstellung von Authentifizierung und Integrität
+        \item[$\to$] Blockchiffren
+            \subitem -  zu verschlüsselnde Daten in $m$ Blöcke derselben Größe aufgeteilt
+            \subitem -  einfachster Fall: jeder der zuvor erzeugten Blöcke $m_i$ mit Schlüssel $k$
+            \subitem zu verschlüsseltem Block $c_i$ derselben Größe übersetzt
+        \item[$\to$] Stromchiffren
+            \subitem -  Klartext wird bitweise anhand eines Schlüsselstroms verschlüsselt
+            \subitem - Schlüsselstrom und Geheimtext haben dieselbe Länge wie der Klartext
+    \end{itemize}
+
+    \textbf{Asymmetrische Verfahren}:
+    \begin{itemize}
+        \item Die meisten asymmetrischen Verfahren basieren auf mathematischen Problemen, die nicht effizient zu lösen sind.
+        \item
+    \end{itemize}
+\end{defi}
+
+\begin{algo}{RSA Verschlüsselung}
+    RSA basiert auf der Faktorisierung ganzes Zahlen, für die es keinen bekannten
+    effizienten Algorithmus gibt. Dabei geht es darum, eine Zahl in ihre Primfaktoren
+    zu zerlegen.
+
+    Da beide Schlüssel des Schlüsselpaars zusammen funktionieren sollen, müssen sie
+    nach einer festen Vorschrift erzeugt werden:
+    \begin{enumerate}
+        \item Wähle zwei Primzahlen $p, q$ mit $p \neq q$
+        \item Berechne $N = p \cdot q$
+        \item Berechne $\varphi(N) = (p-1)\cdot (q-1)$
+        \item Wähle ein $e$, das teilerfremd zu $\varphi(N)$ ist mit $1 < e < \varphi(N)$
+        \item Berechne $d$, sodass $e \cdot d \equiv 1 \mod \varphi(N)$
+    \end{enumerate}
+
+    Nach dieser Prozedur ist $(e,N)$ der \emph{public key} und $(d,N)$ der \emph{private Key}. Damit
+    kann nun jeder Nachricht $M \in \N, 1 < M < N$ anhand folgender Formel verschlüsselt
+    werden:
+    $$
+        C = M^e \mod N
+    $$
+
+    Die Entschlüsselung der verschlüsselten Nachricht $C$ kann dann anhand einer ähnlichen Formel durchgeführt werden:
+    $$
+        M = C^d \mod N
+    $$
+\end{algo}
+
+\begin{example}{RSA Verschlüsselung}
+    Damit Alice Bob eine Nachricht schreiben kann, muss Bob zunächst seinen \emph{public Key} zur Vefügung stellen.
+
+    Zur Erzeugung seines Schlüsselpaars wählt Bob die Primzahlen $p=13$ und $q=17$.
+    Damit ergibt sich $N = 221$ und $\varphi(N) = 192$.
+    Anschließend wählt Bob $e=5$ und berechnet damit $d=77$.
+    Damit kann Bob $(5, 221)$ als seinen \emph{public Key} an Alice geben und $(77, 221)$ behält er als \emph{private Key} für sich.
+
+    Alice hat nun Bobs \emph{public Key} und möchte damit die Nachricht $M = 42$ verschlüsseln.
+    Dazu berechnet Sie $C = 42^5 \mod 221 = 9$ und schickt die verschlüsselte Nachricht anschließend an Bob.
+
+    Bob kann nun mit seinem \emph{private Key} die erhaltene Nachricht entschlüsseln und erhält $M = 9^77 \mod 221 = 42$.
+\end{example}
+
+\begin{defi}{Digitale Signatur}
+    Um auch \emph{Authentifizierung}
+    und \emph{Integritat} herstellen zu können, muss eine digitale Signatur verwendet
+    werden. Dazu braucht es zunachst eine \emph{Hashfunktion}, die eine Art Fingerabdruck
+    der Nachricht erzeugt.
+
+    Nachdem mit der Hashfunktion der Hashwert der Nachricht berechnet wurde, wird
+    dieser mit dem \emph{private Key} des Senders verschlüsselt.
+
+    Danach berechnet
+    der Empfänger selbst den Hashwert der empfangen Nachricht. Stimmen der
+    selbst berechnete Hashwert und der entschlüsselte Hashwert überein ist die \emph{Integrität} der Nachricht sichergestellt. Da zudem das Entschlüsseln des Hashwertes mit
+    dem öffentlichen Schlüssel des Senders funktioniert hat, ist der Sender authentifiziert,
+    da dessen privater Schlüssel zur Erstellung der digitalen Signatur verwendet
+    wurde.
+
+    Es ist also notwendig, dass sich Sender und Empfanger vorab auf eine
+    Hashfunktion einigen. Zusatzlich ist wichtig zu beachten, dass eine Digitale Signatur
+    \emph{keine Vertraulichkeit} herstellt, dazu muss die Nachricht zusatzlich verschlüsselt
+    werden.
+\end{defi}
+
+\begin{defi}{Hybride Chiffren}
+    Die Kombination von symmetrischen und asymmetrischen
+    Chiffren nennt man \emph{hybride Chiffren}.
+
+    \begin{itemize}
+        \item verhältnismäßig kurzer Schlüssel einer Blockchiffre wird asymmetrisch verschlüsselt und zum Empfänger einer Nachricht transportiert
+        \item Kommunikation selbst läuft symmetrisch verschlüsselt ab
+        \item Kombination erzielt guten Kompromiss zwischen Sicherheit und Rechenaufwand
+    \end{itemize}
+\end{defi}
+
+\printindex
+\printindex[Beispiele]
+\end{document}
diff --git a/la1/la1.tex b/la1/la1.tex
index 5ba913e..ede3b91 100644
--- a/la1/la1.tex
+++ b/la1/la1.tex
@@ -1,669 +1,669 @@
-\documentclass[german]{../spicker}
-
-\usepackage{amsmath}
-\usepackage{polynom}
-
-\title{Lineare Algebra 1}
-\author{Patrick Gustav Blaneck}
-\makeindex[intoc]
-\makeindex[intoc, name=Beispiele,title=Beispiele]
-
-\newcommand{\scalarprod}[1]{\left\langle #1 \right\rangle}
-\newcommand{\vektor}[1]{\begin{pmatrix*}[r] #1 \end{pmatrix*}}
-\renewcommand{\span}[1]{\operatorname{span}\left(#1\right)}
-\newcommand{\dx}{~\mathrm{d}x}
-
-\begin{document}
-\maketitle
-\tableofcontents
-\newpage
-
-%\setcounter{section}{1}
-
-\section{Analytische Geometrie}
-
-\subsection{Skalarprodukt und Norm}
-
-\begin{defi}{Skalarprodukt}
-    Eine Abbildung $\scalarprod{\cdot, \cdot}$ heißt Skalarprodukt, wenn folgende Bedingungen erfüllt sind:
-    \begin{itemize}
-        \item[\textbf{SP1}] Symmetrie: $\forall a, b \in \R^n: \scalarprod{a, b} = \scalarprod{b, a}$
-        \item[\textbf{SP2}] $\forall a, b, c \in \R^n: \scalarprod{a, b+c} = \scalarprod{a, b} + \scalarprod{a, c}$
-        \item[\textbf{SP3}] $\forall a \in \R^n: \scalarprod{\alpha a, b} = \alpha \scalarprod{a, b} = \scalarprod{a, \alpha b}$
-        \item[\textbf{SP4}] positive Definitheit: $\forall a \in \R^n \setminus \{0\}: \scalarprod{a, a} > 0 \land \scalarprod{0, 0} = 0$
-    \end{itemize}
-\end{defi}
-
-\begin{defi}{Euklidisches Skalarprodukt}
-    Für $a, b$ sei ihr \emph{euklidisches Skalarprodukt} $\scalarprod{a, b}$ definiert als
-    $$
-        \scalarprod{a, b} := \sum_{i=1}^n a_ib_i
-    $$
-\end{defi}
-
-\begin{defi}{Norm}
-    Eine Norm $\norm{a}$ hat folgende Eigenschaften:
-    \begin{itemize}
-        \item[\textbf{N0}] $\norm{a} \in \R$
-        \item[\textbf{N1}] $\norm{a} \geq 0$
-        \item[\textbf{N2}] $\norm{a} = 0 \iff a = 0$
-        \item[\textbf{N3}] $\forall \lambda \in \R : \norm{\lambda a} = \abs{\lambda} \norm{a}$
-        \item[\textbf{N4}] Dreiecksungleichung $\norm{a+b} \leq \norm{a} + \norm{b}$
-    \end{itemize}
-\end{defi}
-
-\begin{defi}{Euklidische Norm}
-    Einem Vektor $a$ wird die \emph{euklidische Norm} oder \emph{Standardnorm} $\norm{a}$ zugeordnet durch
-    $$
-        \norm{a} := \left(\sum_{i=1}^n a_i^2\right)^{\frac{1}{2}}
-    $$
-\end{defi}
-
-\begin{bonus}{Diskrete Minkowskische Ungleichung}
-    Für $p \geq 1$ definiert man die $\ell_p$-Norm durch
-    $$
-        \norm{a}_p := \left(\sum^n_{i=1} \abs{a_i}^p\right)^\frac{1}{p}
-    $$
-    \begin{itemize}
-        \item $p=1$: \emph{Betragssummennorm} oder \emph{Einsernorm}
-        \item $p=2$: euklidische Norm
-        \item $p=\infty$: \emph{Maximumnorm} pder $\ell_\infty$\emph{-Norm} ($\norm{a}_\infty = \max\{\abs{a_i}, \ldots, \abs{a_n}\}$)
-    \end{itemize}
-\end{bonus}
-
-\begin{defi}{Orthogonalität}
-    Seien $a,b \in \R^n$ und $\scalarprod{\cdot, \cdot}$ ein beliebiges Skalarprodukt.
-    Die Vektoren $a$ und $b$ stehen \emph{orthogonal} zueinander bzgl. $\scalarprod{\cdot, \cdot}$, Schreibweise $a \perp b$, wenn $\scalarprod{a, b} = 0$.
-\end{defi}
-
-\begin{algo}{Orthogonalen Vektor finden}
-    Wir betrachten den Vektor $a= (a_1, a_2)^T$.
-    Für den senkrechten Vektor $a'$ gilt: $(-a_2, a_1)^T$.
-\end{algo}
-
-\begin{bonus}{Satz des Pythagoras}
-    Seien $a,b \in \R^n$ mit $a \perp b$ und $\scalarprod{\cdot, \cdot}$ ein beliebiges Skalarprodukt.
-    Dann gilt:
-    $$
-        \norm{a + b}^2 = \norm{a}^2 + \norm{b}^2
-    $$
-\end{bonus}
-
-\begin{defi}{Orthogonale Projektion}
-    Seien $a, b$ zwei Vektoren und $b \neq 0$. Dann gilt für die orthogonale Projektion $p$ von $a$ in Richtung $b$:
-    $$
-        p_b(a) = \frac{\scalarprod{a, b}}{\scalarprod{b, b}} b
-    $$
-\end{defi}
-
-\begin{bonus}{Cauchy-Schwarzsche Ungleichung}
-    Für $a, b \in \R^n$ gilt:
-    $$
-        \abs{\scalarprod{a, b}} \leq \norm{a} \norm{b}
-    $$
-\end{bonus}
-
-\begin{defi}{Winkel zwischen Vektoren}
-    Seien $a, b\in \R^n\setminus \{0\}$.
-    Der Winkel zwischen $a$ und $b$, geschrieben $\angle (a, b)$, wird definiert als
-    $$
-        \angle (a, b) := \arccos \frac{\scalarprod{a, b}}{\norm{a} \norm{b}}
-    $$
-\end{defi}
-
-\begin{defi}{Vektorprodukt (Kreuzprodukt)}
-    Seien $a, b \in \R^n$. Dann heißt
-    $$
-        a \times b := \vektor{a_2b_3-a_3b_2 \\ a_3b_1-a_1b_3 \\ a_1b_2 - a_2b_1}
-    $$
-    das \emph{Vektorprodukt} oder \emph{Kreuzprodukt} von $a$ und $b$.
-\end{defi}
-
-\newpage
-\subsection{Geraden und Ebenen}
-
-\begin{defi}{Gerade (Punkt-Richtungsgleichung)}
-    Für einen \emph{Ortsvektor} oder \emph{Aufpunkt} $p$ und einen \emph{Richtungsvektor} $v \neq 0$ heißt
-    $$
-        x = p + \alpha v
-    $$
-    \emph{Punkt-Richtungsgleichung} einer \emph{Geraden} $G$.
-\end{defi}
-
-\begin{defi}{Gerade (Normalform in der Ebene)}
-    Sei $G$ eine Gerade in der Ebene, $p$ der Aufpunkt und $v$ der Richtungsvektor von $G$.\\
-    Gilt $n \perp v$, dann heißt
-    $$
-        \scalarprod{x,n} = \scalarprod{p, n} \iff n_1x_1 + n_2x_2 = c
-    $$
-    \emph{Normalform} von $G$.
-\end{defi}
-
-\begin{defi}{Ebene (Punkt-Richtungsgleichung)}
-    Seien $p, v, w \in \R^3, v\neq 0$ und $w \neq 0$, und seien $v$ und $w$ nicht parallel.
-    Dann heißt
-    $$
-        x = p + \alpha v + \beta w
-    $$
-    \emph{Punkt-Richtungsgleichung} einer \emph{Ebene} $E$.
-\end{defi}
-
-\begin{defi}{Ebene (Normalform)}
-    Sei $E$ eine Ebene im Raum, $p$ der Aufpunkt und $v, w$ Richtungsvektoren von $E$. \\
-    Gilt $n \perp v \land n \perp w$, dann heißt
-    $$
-        \scalarprod{x, n} = \scalarprod{p, n} \iff n_1x_1 + n_2x_2 + n_3x_3 = d
-    $$
-    \emph{Normalform} von $E$.
-\end{defi}
-
-
-\begin{defi}{Hessesche Normalform}
-    Sei $n$ ein Normalenvektor einer Gerade $G$ in der Ebene oder einer Ebene $E$ im Raum.
-    Gilt $\norm{n} = 1$, so heißt die damit gebildete Normalform \emph{Hessesche Normalform}.
-\end{defi}
-
-\begin{algo}{Normalform $\to$ Hessesche Normalform (Geraden und Ebenen)}
-    Man erhält die Hessesche Normalform aus einer beliebigen Normalform, indem man die Normalform durch $\norm{n}$ teilt:
-    $$
-        \frac{\scalarprod{x, n}}{\norm{n}} = \frac{\scalarprod{p, n}}{\norm{n}}
-    $$
-    Damit liegt der Normalvektor bis auf das Vorzeichen eindeutig fest.
-\end{algo}
-
-\begin{algo}{Punkt-Richtungsform $\to$ Normalform (Geraden)}
-    Sei eine Gerade $G$ gegeben durch $x = p + \alpha v$ mit $v = (v_1, v_2)^T$.
-    Einene Normalenvektor $n$ findet man durch
-    $$
-        n := \vektor{v_2 \\ -v_1}.
-    $$
-    Durch Ausrechnen von $\scalarprod{p, n}$ erhält man die rechte Seite der Normalform.
-\end{algo}
-
-\begin{algo}{Normalform $\to$ Punkt-Richtungsform (Geraden)}
-    Liegt die Gerade in der Normalform $ax_1 + bx_2 = c$ vor, wird ein Richtungsvektor $v \perp n \iff v \perp (a, b)^T$ benötigt.
-
-    Man kann hier $v = (b, -a)^T$ wählen. Einen Aufpunkt $p$ erhält man, indem man z.B. $x_1 = 0$ oder $x_2 = 0$ setzt und aus der parameterlosen Form die andere Komponente errechnet.
-\end{algo}
-
-\begin{algo}{Punkt-Richtungsform $\to$ Normalform (Ebenen)}
-    Um einen Normalenvektor $n$ für die Richtungsvektoren $v, w$ zu erhalten, kann man das Kreuzprodukt der beiden Richtungsvektoren berechnen.
-
-    Als Aufpunkt lässt sich jeder Punkt der Ebene verwenden, insbesondere der Vektor $p$ aus der Punkt-Richtungsform.
-\end{algo}
-
-\begin{algo}{Normalform $\to$ Punkt-Richtungsform (Ebenen)}
-    Aus der Normalgleichung $ax_1 + bx_2 + cx_3 = d$ liest man den Normalenvektor $n = (a, b, c)^T$ ab.
-    Mindestens eine Komponente $n_i$ von $n$ ist ungleich $0$.
-    Wir vertauschen $n_i$ mit einer anderen Komponente $n_j$ und verändern das Vorzeichen von $n_j$ im so erzeugten Vektor.
-
-    Weil es zwei Möglichkeiten gibt $i \neq j$ zu wählen, erhalten wir zwei Vektoren $v$ und $w$, mit $v \perp n$, $w\perp n$ und $v \neq 0 \neq w$ und $v \not \parallel w$.
-
-    Ein Aufpunkt lässt sich errechnen, indem man zwei der drei Koordinaten von $x = (x_1, x_2, x_3)^T$ z.B. den Wert 0 zuweist und dann aus der Normalform den Wert der fehlenden Koordinate errechnet.
-
-    Sollte dies nicht möglich sein, wähle man ein anderes Koordinatenpaar. Es gibt immer zwei Koordinaten in $x$, mit denen obige Rechnung möglich ist.
-
-\end{algo}
-
-\begin{defi}{Lagebeziehungen von Geraden und Ebenen}
-    Geraden:
-    \begin{itemize}
-        \item Zwei Geraden in $\R^2$ oder $\R^3$ heißen \emph{parallel}, wenn ihre Richtungsvektoren parallel sind.
-        \item Zwei sich schneidende Geraden heißen \emph{orthogonal}, wenn ihre Richtungsvektoren orthogonal sind.
-        \item Seien $G$ und $G'$ zwei sich schneidende Geraden mit Richtungsvektoren $v$ bzw. $v'$. Der Winkel zwischen den Geraden wird definiert durch
-              $$
-                  \angle (G, G') := \min \{\angle (v, v'), \angle (v', v)\} = \arccos \left(\frac{\abs{\scalarprod{v, v'}}}{\norm{v} \norm{v'}}\right)
-              $$
-    \end{itemize}
-
-    Ebenen:
-    \begin{itemize}
-        \item Zwei Ebenen heißen \emph{parallel}, wenn ihre Normalenvektoren parallel sind. Sie heißen \emph{orthogonal}, wenn ihre Normalenvektoren orthogonal sind.
-        \item Sei $E$ eine Ebene mit Normalenvektor $n$. Eine Gerade mit Richtungsvektoren $v$ heißt \emph{parallel} zur Ebene $E$, falls $v \perp n$.
-        \item Seien $n$ und $n'$ Normalenvektoren der beiden Ebenen $E$ und $E'$. Dann wird der Winkel $\angle (E, E')$ zwischen den beiden Ebenen erklärt durch
-              $$
-                  \angle (E, E') := \min \{\angle (n, n'), \angle (n', n)\} = \arccos \left(\frac{\abs{\scalarprod{n, n'}}}{\norm{n} \norm{n'}}\right)
-              $$
-    \end{itemize}
-\end{defi}
-
-\begin{algo}{Schnittmengen zwischen Geraden und Ebenen in $\R^2$ und $\R^3$}
-    \begin{enumerate}
-        \item Man sorgt eventuell durch Umrechnung dafür, dass das eine Objekt durch eine parameterlose (\emph{Normalgleichung}) und das andere durch eine parameterbehaftete Gleichung (\emph{Punkt-Richtungsgleichung}) beschrieben wird.
-        \item Man setzt die Parametergleichung in die parameterlose Gleichung ein und erhält Ausdrücke für den oder die Parameter.
-        \item Diese setzt man in die Parametergleichung ein und erhält eine Parametrisierung der Schnittmenge.
-    \end{enumerate}
-\end{algo}
-
-\begin{example}{Schnittmenge zwischen einer Gerade und einer Ebene}
-    Gegeben seien $p = (1, -1, 2)^T$, $q = (1, 1, 1)^T$ und $n = (1, 2, 3)^T$.
-    Gesucht wird der Schnittpunkt der Geraden $G$ durch $p$ in Richtung von $n$ mit der Ebene $E$ durch $q$ senkrecht zu $n$.
-    Man verwendet bei der Gleichsetzung für $E$ eine Normal- und für $G$ eine Parameterform, z.B.
-    $$
-        x = \vektor{x_1, x_2, x_3} = \vektor{1 \\ -1 \\ 2} + \alpha \cdot \vektor{1 \\ 2\\ 3}.
-    $$
-    Komponentenweise liest man daraus die Gleichungen
-    $$
-        x_1 = 1 + \alpha \qquad x_2 = -1+2\alpha \qquad x_3 = 2+3\alpha
-    $$
-    ab. Eine Normalform von $E$ lautet
-    $$
-        \scalarprod{x, n} = \scalarprod{q, n} \iff x_1 + 2x_2 + 3x_3 = 6.
-    $$
-    Einsetzen in die Normalgleichung liefert dann $\alpha = \frac{1}{14}$.
-    Den Schnittpunkt $s$ erhält man durch Ensetzen von $\alpha$ in die Parametergleichung:
-    $$
-        s = p + \alpha n = \left(\frac{15}{14}, -\frac{12}{14}, \frac{31}{14}\right)^T.
-    $$\qed
-\end{example}
-
-\begin{bonus}{Lotfußpunkt}
-    Sei $G$ eine Gerade mit Richtungsvektor $v$ und $q \notin G$.
-    Ein Punkt $q'\in G$ heißt \emph{Lotfußpunkt}, wenn $l := q=q' \perp G$ gilt, $l$ heißt \emph{Lot}, und der Abstand $d$ zwischen einem Punkt und einer Geraden in $\R^3$ wird definiert durch $d := \norm{l}$.
-\end{bonus}
-
-\begin{algo}{Abstandsberechnung (Punkte, Geraden und Hyperebenen)}
-    Abstandsberechnungen zwischen Punkten, Geraden und Hyperebenen lassen sich auf die Berechnung des Lotfußpunktes zurückführen:
-
-    \begin{enumerate}
-        \item Bestimme die Richtung $r$ des Lots.
-        \item Bestimme jeweils einen Punkt auf den beiden Objekten und (durch Differenzbildung) den Abstandsvektor $a$ zwischen den beiden Punkten (Aufpunkte!).
-        \item Das Lot $l$ ist die Projektion von $a$ auf $r$. Der gesuchte Abstand ist $d = \norm{l}$.
-    \end{enumerate}
-    $$
-        l = \frac{\scalarprod{a, r}}{\scalarprod{r, r}} r \qquad d = \frac{\abs{\scalarprod{a, r}}}{\scalarprod{r, r}} \norm{r} = \frac{\abs{\scalarprod{a, r}}}{\norm{r}}
-    $$
-
-    Tipps:
-    \begin{itemize}
-        \item Ist eine Hyperebene beteiligt, dann wählt man $r$ als Normalenvektor $n$ der Hyperebene.
-        \item Bei zwei Geraden in $\R^3$ muss $r$ senkrecht auf beiden Geraden stehen.
-        \item Bei nicht parallelen Geraden wählt man $r$ als Vektorprodukt der beiden Richtungsvektoren.
-        \item Der Abstand zweier paralleler Geraden lässt sich auf den Abstand eines Punkts zu einer Geraden zurückführen.
-    \end{itemize}
-\end{algo}
-
-\begin{algo}{Abstand Punkt-Gerade im $\R^3$}
-    \begin{enumerate}
-        \item $a = l + r$, also $l = a-r$
-        \item $r$ ist die Projektion von $a$ auf den Richtungsvektor der Geraden $v$, also
-              $$
-                  r = \frac{\scalarprod{a, v}}{\scalarprod{v, v}}v
-              $$
-        \item Zusammen ergibt sich
-              $$
-                  l = a - \frac{\scalarprod{a, v}}{\scalarprod{v, v}}v \qquad d = \norm{l}
-              $$
-    \end{enumerate}
-\end{algo}
-
-\newpage
-\subsection{Die Determinante im $\R^2$ und $\R^3$}
-\begin{defi}{Determinante}
-    Sei $A \in \R^{n\times n}$.
-    \begin{itemize}
-        \item[\textbf{n=1:}] $A = (a_1)$. Dann gilt
-            $$
-                \det(A) := a_1
-            $$
-        \item[\textbf{n=2:}] Sei $A = (a, b)$ mit den Spaltenvektoren $a, b \in \R^2$. Dann gilt
-            $$
-                \det A = \det(a, b) := a_1b_2 - b_1a_2
-            $$
-            Der Betrag der Determinanten entspricht genau der Fläche des von $a$ und $b$ aufgespannten Parallelogramms.
-        \item[\textbf{n=3:}]
-            $$
-                \det(a, b, c) = \det \vektor{a_1 & b_1 & c_1 \\ a_2 & b_2 & c_2 \\ a_3 & b_3 & c_3} = a_1b_2c_3 + b_1c_2a_3 + c_1a_2b_3 - a_1c_2b_3 - b_1a_2c_3-c_1b_2a_3
-            $$
-    \end{itemize}
-
-\end{defi}
-
-\begin{defi}{Spatprodukt}
-    Für drei Vektoren $a, b, c \in \R^3$ nennt man
-    $$
-        \scalarprod{a, b \times c} \in \R
-    $$
-    das \emph{Spatprodukt} der drei Vektoren $a, b, c$.
-
-    Die Vektoren $a, b, c$ bilden die Kanten eines Körpers im dreidimensionalen Raum, eines \emph{Parallelipeds} oder \emph{Spats}.
-
-    Es entspricht also der Betrag der Determinante dem Volumen des durch die drei Spaltenvektoren aufgespannten Spats.
-\end{defi}
-
-\begin{bonus}{Determinante (Alternative)}
-    Seien $a, b, c \in \R^3$, $\phi$ der Winkel zwischen $a$ und $b$ sowie $\psi$ der Winkel zwischen den Vektoren $a\times b$ und $c$. Dann gilt:
-    $$
-        \det (a, b, c) = \norm{a} \norm{b} \norm{c} \sin \phi \cos \psi
-    $$
-\end{bonus}
-
-\begin{defi}{Eigenschaften der Determinante}
-    Die Determinante hat folgende Eigenschaften.
-    \begin{itemize}
-        \item[\textbf{D1}] $\det(a, b, c) = \det(c, a, b) = \det(b, c, a)$
-        \item[\textbf{D2}] $\det(a, b, c) = - \det(b, a, c)$
-        \item[\textbf{D3}] $\det(a, a, c) = 0$
-        \item[\textbf{D4}] Für $\alpha \in R$ gilt $\det(\alpha a, b, c) = \alpha \det(a, b, c)$
-        \item[\textbf{D5}] $\det(a,b, c + d) = \det(a, b, c) + \det(a, b, d)$
-        \item[\textbf{D6}] $\det A = \det A^T$
-    \end{itemize}
-\end{defi}
-
-\begin{bonus}{Lösbarkeit linearer Gleichungssysteme}
-    Notwendig und hinreichend dafür, dass das lineare Gleichungssystem $LG$ eine eindeutige Lösung besitzt, ist die Bedingung
-    $$
-        \det(a, b, c) \neq 0
-    $$
-\end{bonus}
-
-\newpage
-\section{Algebraische Strukturen}
-\subsection{Gruppen}
-
-\begin{defi}{Gruppe}
-    Sei $M$ eine Menge, und $\circ: M \times M \to M$ eine \emph{Verknüpfung}.
-    $(M, \circ)$ heißt Gruppe, wenn gilt:
-    \begin{itemize}
-        \item[\textbf{G1}] (Assoziativität): Die Verknüpfung ist assoziativ, d.h. es gilt:
-            $$
-                \forall x, y, z \in M : (x \circ y) \circ z = x \circ (y \circ z)
-            $$
-        \item[\textbf{G2}] (Neutralelement:) Es existiert ein neutrales Element $e \in M$ so dass
-            $$
-                \forall x \in M : x \circ e = x
-            $$
-        \item[\textbf{G3}] (Inverses Element:) $\forall x \in M \exists x'$ mit
-            $$
-                x \circ x' = e
-            $$
-        \item Gilt für eine Gruppe $G = (M, \circ)$, dass $x \circ y = y\circ x, \forall x, y \in M$, dann heißt $G$ \emph{abelsche Gruppe} oder \emph{kommutative Gruppe}.
-    \end{itemize}
-
-    Auch muss implizit gelten:
-    \begin{itemize}
-        \item $x \circ y$ existiert $\forall x, y \in M$ und ist eindeutig festgelegt
-        \item $x \circ y \in M$
-    \end{itemize}
-    Ist dies der Fall, ist die Abbildung $\circ: M \times M \to M$ \emph{wohldefiniert}.
-\end{defi}
-
-\begin{defi}{Untergruppe}
-    Sei $G = (M, \circ)$ eine Gruppe und $M' \subseteq M$. Bildet $U = (M', \circ)$ eine Gruppe, so heißt $U$ \emph{Untergruppe} von $G$, Schreibweise $U \leq G$.
-
-    Für $G$ und $U$ wie oben gilt $U \leq G$ genau dann, wenn gilt:
-    \begin{enumerate}
-        \item $M'\neq \emptyset$
-        \item $\forall a, b \in M' : a\circ b \in M'$
-        \item $\forall a \in M': a^{-1} \in M$
-    \end{enumerate}
-\end{defi}
-
-\newpage
-\subsection{Körper}
-\begin{defi}{Körper}
-    Das Tripel $(\R, +, \cdot)$ hat folgende Eigenschaften:
-    \begin{enumerate}
-        \item $(\R, +)$ bildet eine abelsche Gruppe.
-        \item $(\R \setminus \{0\}, \cdot)$ bildet eine abelsche Gruppe.
-        \item Es gelten die \emph{Distributivgesetze}
-              $$
-                  \forall x, y, z \in \R : (x+y) \cdot z = (x\cdot z) + (x \cdot y) \text{ und } x \cdot (y + z) = (x \cdot y) + (x \cdot z)
-              $$
-              \emph{Jedes} Tripel $(M, \oplus, \odot)$, das die obigen drei Bedingungen erfüllt, wird \emph{Körper} genannt.
-    \end{enumerate}
-\end{defi}
-
-\newpage
-\subsection{Vektorräume}
-\begin{defi}{Vektorraum}
-    Sei $K$ ein beliebiger Körper.
-    Eine nicht-leere Menge $V$ zusammen mit den beiden Abbildungen
-    $$
-        \begin{aligned}
-                         & \oplus : V \times V \to V, \quad (x, y) \to x \oplus y \in V
-            \text{ und } & \odot : K \times V \to V, \quad (\lambda, x) \to \lambda \odot x \in V
-        \end{aligned}
-    $$
-    heißt \emph{Vektorraum über K} oder \emph{K-Vektorraum}, wenn folgende Axiome gelten:
-    \begin{itemize}
-        \item $(V, \oplus)$ ist eine kommutative Gruppe.
-        \item $\forall \lambda, \mu \in K$ und $x \in V$ gilt $\lambda \odot (\mu \odot x) = (\lambda\mu) \odot x$, wobei mit $\lambda\mu$ die Multiplikation aus $K$ gemeint ist.
-        \item $\forall x \in V$ gilt $1 \odot x = x$ ($1$ ist das neutrale Element der Multiplikation aus $K$)
-        \item $\forall \lambda \in K, x, y \in V$ gilt: $\lambda \odot (x \oplus y) = (\lambda x) \oplus (\lambda \odot y)$.
-        \item $\forall \lambda, \mu \in K, x \in V$ gilt $(\lambda + \mu) \odot x = (\lambda \odot x) \oplus (\lambda \odot x)$
-    \end{itemize}
-\end{defi}
-
-\begin{defi}{Untervektorraum}
-    Eine Teilmenge $U \subseteq V$ heißt \emph{Untervektorraum} oder \emph{Unterraum} von $V$, wenn $U \neq \emptyset$ und $\forall x, y \in U$ und alle $\lambda \in K$ gilt:
-    $$
-        \begin{aligned}
-             & x \oplus y \in U,      \\
-             & \lambda \odot x \in U.
-        \end{aligned}
-    $$
-\end{defi}
-
-\newpage
-\subsection{Lineare Unabhängigkeit, Basis, Dimension}
-
-Seien $v_1, \ldots, v_r \in V$ Vektoren eines $K$-Vektorraums $V$.
-
-\begin{defi}{Linearkombination}
-    Lässt sich $v\in V$ als Summe dieser Vektoren mit Vorfaktoren darstellen,
-    $$
-        v = \sum^r_{k=1} \lambda_kv_k
-    $$
-    heißt $v$ $Linearkombination$ von $v_1, \ldots, v_r$.
-\end{defi}
-
-\begin{defi}{Lineare Hülle}
-    Die Menge
-    $$
-        L(v_1, \ldots, v_r) := \left\{ \sum^r_{k=1} \lambda_kv_k \mid \lambda_i \in K \right\} \subseteq V
-    $$
-    aller Linearkombinationen heißt \emph{Lineare Hülle} von $v_1, \ldots, v_r$.
-\end{defi}
-
-\begin{defi}{Erzeugendensystem}
-    Sei $V$ ein $K$-Vektorraum und $(v_1, \ldots, v_n)$ ein $n$-Tupel von Vektoren in $V$.
-    Gilt $L(v_1, \ldots, v_n) = V$, nennt man $(v_1, \ldots, v_n)$ ein \emph{Erzeugendensystem} von $V$.
-
-    $V$ heißt \emph{endlich erzeugt}, wenn es endlich viele Vektoren $v_1, \ldots, v_r$ gibt, so dass  $L(v_1, \ldots, v_r) = V$, ansonsten \emph{nicht endlich erzeugt}.
-\end{defi}
-
-\begin{defi}{Lineare Unabhängigkeit}
-    Sei $V$ ein $K$-Vektorraum. Ein $r$-Tupel $(v_1, \ldots, v_r)$ von Vektoren in $V$ heißt \emph{linear unabhängig}, wenn aus $\lambda_1v_1 +\lambda_2v_2 + \ldots + \lambda_rv_r = 0$ stets folgt, dass $\lambda_1 = \lambda_2 = \ldots = \lambda_r = 0$ gilt.
-
-    Außerdem gilt:
-    \begin{itemize}
-        \item Keiner der Vektoren ist eine Linearkombination der übrigen.
-        \item Keiner der Vektoren ist der Nullvektor.
-    \end{itemize}
-
-    Tipp: Ein $r$-Tupel $(v_1, \ldots, v_r)$ von Vektoren in $V$ ist \emph{linear unabhängig} genau dann, wenn $\det(v_1, \ldots, v_r) \neq 0$.
-\end{defi}
-
-\begin{bonus}{Lineare Unabhängigkeit von Funktionen}
-    Wir bilden zu den Funktionen $f_1, \ldots, f_n$ für paarweise verschiedene $x_1, \ldots, x_n$ die $n$ Vektoren
-    $$
-        (f_1(x_1), \ldots, f_1(x_n))^T, \ldots, (f_n(x_1), \ldots, f_n(x_n))^T \in \mathbb{K}^n.
-    $$
-    Sind diese Vektoren linear unabhängig, dann sind die Funktionen $f_1, \ldots, f_n$ selbst linear unabhängig.
-
-    Hinweis: Die Rückrichtung gilt \textbf{nicht}!
-\end{bonus}
-
-\begin{defi}{Basis}
-    Sei $v \neq \{0\}$ ein endlich erzeugter $K$-Vektorraum und $v_1, \ldots, v_n \in V$. Das $n$-Tupel $B = (v_1, \ldots, v_n)$ heißt \emph{Basis} oder \emph{minimales Erzeugendensystem} von $V$, wenn $B$ linear unabhängig ist und wenn gilt $L(B) = V$.
-    Weiter sei $\emptyset$ die Basis des Nullvektorraums $\{0\}$.
-\end{defi}
-
-\begin{bonus}{Koordinaten eines Vektors}
-    Sei $(v_1, \ldots, v_n)$ eine Basis von $V$ und $v \in V$ mit
-    $$
-        v = \lambda_1v_1 + \ldots + \ldots_nv_n, \lambda_i, \ldots, \lambda_n \in K
-    $$
-    Das $n$-Tupel der obigen Vorfaktoren $(\lambda_1, \ldots, \lambda_n) \in K^n$ nennt man \emph{Koordinaten} des Vektors $v$ bzgl. der Basis $(v_1, \ldots, v_n)$.
-\end{bonus}
-
-\begin{defi}{Basisergänzungssatz}
-    Sei $V$ ein $K$-Vektorraum und seien
-    $$
-        v_1, \ldots, v_r, \quad w_1, \ldots w_s \in V
-    $$
-    Ist $(v_1, \ldots, v_r)$ linear unabhängig und ist
-    $$
-        L(v_1, \ldots, v_r, w_1, \ldots w_s) = V,
-    $$
-    dann kann man $(v_1, \ldots, v_r)$ durch evtl. Hinzunahme geeigneter Vektoren aus $\{w_1, \ldots w_s\}$ zu einer Basis von $V$ ergänzen.
-\end{defi}
-
-\begin{defi}{Austauschlemma}
-    Sind $(v_1, \ldots, v_n)$, $(w_1, \ldots w_n)$ Basen eines $K$-Vektorraums $V$, dann gibt es zu jedem $v_i$ ein $w_j$, so dass aus $(v_1, \ldots, v_n)$ wieder eine Basis entsteht, wenn man in ihr $v_i$ durch $w_j$ ersetzt.
-\end{defi}
-
-\begin{defi}{Dimension}
-    Besitzt ein Vektorraum $v \neq \{0\}$ eine Basis $(v_1, \ldots, v_n)$, so definieren wir die \emph{Dimension} von $V$ als $\dim(V) := n$.
-    Besitzt $V$ keine endliche Basis, dann setzt man $\dim(V) := \infty$. Weiter sei $\dim(\{0\}) := 0$.
-\end{defi}
-
-\newpage
-\subsection{Polynome}
-\begin{defi}{Polynom}
-    Ein \emph{Polynom} oder ganzrationale Funktion $p : \mathbb{K} \to \mathbb{K}$ ist eine Funktion der Gestalt
-    $$
-        p(x) = a_0 + a_1x + a_2x^x + \ldots + a_nx_n = \sum^n_{k=0} a_kx^k
-    $$.
-\end{defi}
-
-\begin{bonus}{Polynome als $\mathbb{K}$-Vektorraum}
-    Sei $+$ die Addition von Funktionen und $\cdot$ die Multiplikation einer Funktion mit einem Skalar. Dann bildet $(P_n, +, \cdot)$ einen $\mathbb{K}$-Vektorraum.
-\end{bonus}
-
-\begin{bonus}{Basis des Vektorraums $P_n$}
-    Die Funktionen $1, x, x^2, \ldots, x^n$ bilden eine Basis des Vektorraums $P_n$ und es gilt
-    $$
-        \dim(P_n) = n + 1.
-    $$
-    Diese Basis wird auch \emph{Monombasis} genannt.
-\end{bonus}
-
-\begin{defi}{Interpolationspolynom}
-    Gegeben seien die $n+1$-Punkte $(x_k, y_k), 0 \leq k \leq n$ mit \emph{paarweise verschiedenen} $x_k$.
-    Dann existiert genau ein $p_n \in P_n$ mit $y_k = p_n(x_k) \forall 0 \leq k \leq n$.
-    Dies ist das sogenannte \emph{Interpolationspolynom}.
-\end{defi}
-
-\begin{example}{Interpolationspolynom}
-    Wir betrachten die drei Punkte $(-2, 1)$, $(-1, -1)$ und $(1, 1)$.
-
-    Eine interpolierende Parabel $p_2$ wird durch diese Punkte festgelegt.
-
-    Die allgemeine Form des Polynoms ist $p_2(x) = ax^2 + bx + c$.
-    Einsetzen der drei Punkte ergibt die Gleichungen
-    $$
-        \begin{aligned}
-            (1, 1): \quad   & 1 = a + b + c   \\
-            (-1, -1): \quad & -1 = a - b + c  \\
-            (-2, 1): \quad  & 1 = 4a - 2b + c \\
-        \end{aligned}
-    $$
-    und führt damit zu einem linearen Gleichungssystem.
-
-    Man errechnet als Lösung $a = 1$, $b = 1$, $c = -1$ und erhält
-    $$
-        p_2(x) = x^2 + x -1.
-    $$\qed
-\end{example}
-
-\begin{example}{Lineare Unabhängigkeit von Polynomen}
-    Die Polynome
-    $$
-        p_1(x) = (1-x)^2 \qquad p_2(x) = (1-x)x \qquad p_3(x) = x^2
-    $$
-    sollen auf lineare Unabhängigkeit geprüft werden.
-    Wir berechnen zunächst die Koeffizientenvektoren.
-    $$
-        \begin{aligned}
-             & p_1(x) = (1-x)^2 &  & =1-2x+1x^2  &  & \implies a_{0_1} = 1, ~a_{1_1} = -2, ~a_{2_1} = 1 \\
-             & p_2(x) = (1-x)x  &  & =0+ 1x -x^2 &  & \implies a_{0_2} = 0, ~a_{1_2} = 1, ~a_{2_2} = -1 \\
-             & p_3(x) = x^2     &  &             &  & \implies a_{0_3} = 0, ~a_{1_3} = 0, ~a_{2_3} = 1
-        \end{aligned}
-    $$
-
-    $\det(a_0, a_1, a_2) \neq 0$ und damit sind die Polynome linear unabhängig.\qed
-\end{example}
-
-\subsection{Skalarprodukte, euklidische und unitäre Räume}
-\begin{defi}{Euklidische und unitäre Vektorräume}
-    Ein reeller Vektorraum gemeinsam mit einem Skalarprodukt heißt \emph{euklidischer Vektorraum}, ein komplexer Vektorraum mit einem Skalarprodukt heißt \emph{unitärer Vektorraum}.
-\end{defi}
-
-\begin{defi}{Orthogonale Projektion}
-    Sei $U$ ein endlich erzeugter Untervektorraum von $V$ und $a \in V$.
-    Ein Vektor $p_u(a) \in U$ heißt \emph{orthogonale Projektion} von $a$ auf $U$, wenn gilt:
-    $$
-        a - p_U(a) \perp u \quad \forall u \in U.
-    $$
-\end{defi}
-
-\begin{defi}{Orthogonales Komplement}
-    Für $M \subseteq V$ heißt
-    $$
-        M^\perp := \{v\in V \mid v \perp u \quad \forall u \in M\}
-    $$
-    das \emph{orthogonale Komplement} von $M$.
-\end{defi}
-
-\begin{defi}{Orthogonalsystem, Orthonormalsystem, Orthogonalbasis, Orthonormalbasis}
-    Sei $B = (v_1, \ldots, v_m)$ ein $m$-Tupel mit Vektoren in $V\setminus \{0\}$.
-    \begin{enumerate}
-        \item $B$ heißt \emph{Orthogonalsystem} in $V$, falls alle $v_i$ paarweise orthogonal sind.
-        \item Ein Orthogonalsystem, für das zusätzlich $\forall v_i \in B: \norm{v_i} = 1$ gilt, heißt \emph{Orthonormalsystem}.
-        \item Ein Orthogonalsystem, das eine Basis von $V$ bildet, heißt \emph{Orthogonalbasis} von $V$.
-        \item Ein Orthonormalsystem, das eine Basis von $V$ bildet, heißt \emph{Orthonormalbasis} von $V$.
-    \end{enumerate}
-\end{defi}
-
-\subsection{Das Verfahren von Gram-Schmidt}
-\begin{defi}{Gram-Schmidt-Verfahren}
-    Sei $V$ ein unitärer Vektorraum und $v_1, \ldots, v_m$ linear unabhängig.
-    Seien
-    $$
-        \begin{aligned}
-            w_1     & :={} \frac{v_1}{\norm{v_1}}                              \\
-            r_{k+1} & :={} v_{k+1} - \sum^k_{i=1} \scalarprod{v_{i+1}, w_i}w_i \\
-            w_{k+1} & :={} \frac{r_{k+1}}{\norm{r_{k+1}}}
-        \end{aligned}
-    $$
-    Dann bilden $(w_1, \ldots, w_m)$ eine Orthonormalbasis von $L(v_1, \ldots, v_m)$.
-\end{defi}
-
-\begin{example}{Gram-Schmidt-Verfahren (allgemein)}
-    Wir betrachten eine beliebige Basis $(v_1, v_2, v_3)$ von $\R^3$.
-    Wir gehen so vor:
-    \begin{enumerate}
-        \item Man wählt einfach $w_1 = \frac{1}{\norm{v_1}}v_1$, weil dann offenbar $\norm{w_1} = 1$ gilt.
-        \item Wir konstruieren einen Vektor $r_2$, der senkrecht auf $w_1$ steht.
-              Dazu projizieren wir $v_2$ auf den von $w_1$ erzeugen Unterraum $L(w_1)$ und setzen $r_2 := v_2 - p_{L(v_1)}(v_2)$.
-              Dann gilt nach Definition der orthogonalen Projektion $v_1 \perp r_2$.
-              Man erhält
-              $$
-                  r_2 = v_2 - \scalarprod{v_2, w_1}w_1.
-              $$
-              Normierung von $r_2$ liefert $w_2$.
-        \item Der Vektor $r_3 := v_3 - p_{L(v_1, v_2)}(v_3)$ steht nach Konstruktion senkrecht auf $L(v_1, v_2)$ und daher gilt insbesonere $r_3 \perp v_1$ und $r_3 \perp v_2$.
-              Weil $(w_1, w_2)$ eine Orthonormalbasis von $L(v_1, v_2)$ bilden, gilt:
-              $$
-                  r_3 = v_3 - \scalarprod{v_3, w_1}w_1 - \scalarprod{v_3, w_2}w_2
-              $$
-              Normierung von $r_3$ ergibt $w_3$.
-    \end{enumerate}
-\end{example}
-
-
-\printindex
-\printindex[Beispiele]
-\end{document}
+\documentclass[german]{../spicker}
+
+\usepackage{amsmath}
+\usepackage{polynom}
+
+\title{Lineare Algebra 1}
+\author{Patrick Gustav Blaneck}
+\makeindex[intoc]
+\makeindex[intoc, name=Beispiele,title=Beispiele]
+
+\newcommand{\scalarprod}[1]{\left\langle #1 \right\rangle}
+\newcommand{\vektor}[1]{\begin{pmatrix*}[r] #1 \end{pmatrix*}}
+\renewcommand{\span}[1]{\operatorname{span}\left(#1\right)}
+\newcommand{\dx}{~\mathrm{d}x}
+
+\begin{document}
+\maketitle
+\tableofcontents
+\newpage
+
+%\setcounter{section}{1}
+
+\section{Analytische Geometrie}
+
+\subsection{Skalarprodukt und Norm}
+
+\begin{defi}{Skalarprodukt}
+    Eine Abbildung $\scalarprod{\cdot, \cdot}$ heißt Skalarprodukt, wenn folgende Bedingungen erfüllt sind:
+    \begin{itemize}
+        \item[\textbf{SP1}] Symmetrie: $\forall a, b \in \R^n: \scalarprod{a, b} = \scalarprod{b, a}$
+        \item[\textbf{SP2}] $\forall a, b, c \in \R^n: \scalarprod{a, b+c} = \scalarprod{a, b} + \scalarprod{a, c}$
+        \item[\textbf{SP3}] $\forall a \in \R^n: \scalarprod{\alpha a, b} = \alpha \scalarprod{a, b} = \scalarprod{a, \alpha b}$
+        \item[\textbf{SP4}] positive Definitheit: $\forall a \in \R^n \setminus \{0\}: \scalarprod{a, a} > 0 \land \scalarprod{0, 0} = 0$
+    \end{itemize}
+\end{defi}
+
+\begin{defi}{Euklidisches Skalarprodukt}
+    Für $a, b$ sei ihr \emph{euklidisches Skalarprodukt} $\scalarprod{a, b}$ definiert als
+    $$
+        \scalarprod{a, b} := \sum_{i=1}^n a_ib_i
+    $$
+\end{defi}
+
+\begin{defi}{Norm}
+    Eine Norm $\norm{a}$ hat folgende Eigenschaften:
+    \begin{itemize}
+        \item[\textbf{N0}] $\norm{a} \in \R$
+        \item[\textbf{N1}] $\norm{a} \geq 0$
+        \item[\textbf{N2}] $\norm{a} = 0 \iff a = 0$
+        \item[\textbf{N3}] $\forall \lambda \in \R : \norm{\lambda a} = \abs{\lambda} \norm{a}$
+        \item[\textbf{N4}] Dreiecksungleichung $\norm{a+b} \leq \norm{a} + \norm{b}$
+    \end{itemize}
+\end{defi}
+
+\begin{defi}{Euklidische Norm}
+    Einem Vektor $a$ wird die \emph{euklidische Norm} oder \emph{Standardnorm} $\norm{a}$ zugeordnet durch
+    $$
+        \norm{a} := \left(\sum_{i=1}^n a_i^2\right)^{\frac{1}{2}}
+    $$
+\end{defi}
+
+\begin{bonus}{Diskrete Minkowskische Ungleichung}
+    Für $p \geq 1$ definiert man die $\ell_p$-Norm durch
+    $$
+        \norm{a}_p := \left(\sum^n_{i=1} \abs{a_i}^p\right)^\frac{1}{p}
+    $$
+    \begin{itemize}
+        \item $p=1$: \emph{Betragssummennorm} oder \emph{Einsernorm}
+        \item $p=2$: euklidische Norm
+        \item $p=\infty$: \emph{Maximumnorm} pder $\ell_\infty$\emph{-Norm} ($\norm{a}_\infty = \max\{\abs{a_i}, \ldots, \abs{a_n}\}$)
+    \end{itemize}
+\end{bonus}
+
+\begin{defi}{Orthogonalität}
+    Seien $a,b \in \R^n$ und $\scalarprod{\cdot, \cdot}$ ein beliebiges Skalarprodukt.
+    Die Vektoren $a$ und $b$ stehen \emph{orthogonal} zueinander bzgl. $\scalarprod{\cdot, \cdot}$, Schreibweise $a \perp b$, wenn $\scalarprod{a, b} = 0$.
+\end{defi}
+
+\begin{algo}{Orthogonalen Vektor finden}
+    Wir betrachten den Vektor $a= (a_1, a_2)^T$.
+    Für den senkrechten Vektor $a'$ gilt: $(-a_2, a_1)^T$.
+\end{algo}
+
+\begin{bonus}{Satz des Pythagoras}
+    Seien $a,b \in \R^n$ mit $a \perp b$ und $\scalarprod{\cdot, \cdot}$ ein beliebiges Skalarprodukt.
+    Dann gilt:
+    $$
+        \norm{a + b}^2 = \norm{a}^2 + \norm{b}^2
+    $$
+\end{bonus}
+
+\begin{defi}{Orthogonale Projektion}
+    Seien $a, b$ zwei Vektoren und $b \neq 0$. Dann gilt für die orthogonale Projektion $p$ von $a$ in Richtung $b$:
+    $$
+        p_b(a) = \frac{\scalarprod{a, b}}{\scalarprod{b, b}} b
+    $$
+\end{defi}
+
+\begin{bonus}{Cauchy-Schwarzsche Ungleichung}
+    Für $a, b \in \R^n$ gilt:
+    $$
+        \abs{\scalarprod{a, b}} \leq \norm{a} \norm{b}
+    $$
+\end{bonus}
+
+\begin{defi}{Winkel zwischen Vektoren}
+    Seien $a, b\in \R^n\setminus \{0\}$.
+    Der Winkel zwischen $a$ und $b$, geschrieben $\angle (a, b)$, wird definiert als
+    $$
+        \angle (a, b) := \arccos \frac{\scalarprod{a, b}}{\norm{a} \norm{b}}
+    $$
+\end{defi}
+
+\begin{defi}{Vektorprodukt (Kreuzprodukt)}
+    Seien $a, b \in \R^n$. Dann heißt
+    $$
+        a \times b := \vektor{a_2b_3-a_3b_2 \\ a_3b_1-a_1b_3 \\ a_1b_2 - a_2b_1}
+    $$
+    das \emph{Vektorprodukt} oder \emph{Kreuzprodukt} von $a$ und $b$.
+\end{defi}
+
+\newpage
+\subsection{Geraden und Ebenen}
+
+\begin{defi}{Gerade (Punkt-Richtungsgleichung)}
+    Für einen \emph{Ortsvektor} oder \emph{Aufpunkt} $p$ und einen \emph{Richtungsvektor} $v \neq 0$ heißt
+    $$
+        x = p + \alpha v
+    $$
+    \emph{Punkt-Richtungsgleichung} einer \emph{Geraden} $G$.
+\end{defi}
+
+\begin{defi}{Gerade (Normalform in der Ebene)}
+    Sei $G$ eine Gerade in der Ebene, $p$ der Aufpunkt und $v$ der Richtungsvektor von $G$.\\
+    Gilt $n \perp v$, dann heißt
+    $$
+        \scalarprod{x,n} = \scalarprod{p, n} \iff n_1x_1 + n_2x_2 = c
+    $$
+    \emph{Normalform} von $G$.
+\end{defi}
+
+\begin{defi}{Ebene (Punkt-Richtungsgleichung)}
+    Seien $p, v, w \in \R^3, v\neq 0$ und $w \neq 0$, und seien $v$ und $w$ nicht parallel.
+    Dann heißt
+    $$
+        x = p + \alpha v + \beta w
+    $$
+    \emph{Punkt-Richtungsgleichung} einer \emph{Ebene} $E$.
+\end{defi}
+
+\begin{defi}{Ebene (Normalform)}
+    Sei $E$ eine Ebene im Raum, $p$ der Aufpunkt und $v, w$ Richtungsvektoren von $E$. \\
+    Gilt $n \perp v \land n \perp w$, dann heißt
+    $$
+        \scalarprod{x, n} = \scalarprod{p, n} \iff n_1x_1 + n_2x_2 + n_3x_3 = d
+    $$
+    \emph{Normalform} von $E$.
+\end{defi}
+
+
+\begin{defi}{Hessesche Normalform}
+    Sei $n$ ein Normalenvektor einer Gerade $G$ in der Ebene oder einer Ebene $E$ im Raum.
+    Gilt $\norm{n} = 1$, so heißt die damit gebildete Normalform \emph{Hessesche Normalform}.
+\end{defi}
+
+\begin{algo}{Normalform $\to$ Hessesche Normalform (Geraden und Ebenen)}
+    Man erhält die Hessesche Normalform aus einer beliebigen Normalform, indem man die Normalform durch $\norm{n}$ teilt:
+    $$
+        \frac{\scalarprod{x, n}}{\norm{n}} = \frac{\scalarprod{p, n}}{\norm{n}}
+    $$
+    Damit liegt der Normalvektor bis auf das Vorzeichen eindeutig fest.
+\end{algo}
+
+\begin{algo}{Punkt-Richtungsform $\to$ Normalform (Geraden)}
+    Sei eine Gerade $G$ gegeben durch $x = p + \alpha v$ mit $v = (v_1, v_2)^T$.
+    Einene Normalenvektor $n$ findet man durch
+    $$
+        n := \vektor{v_2 \\ -v_1}.
+    $$
+    Durch Ausrechnen von $\scalarprod{p, n}$ erhält man die rechte Seite der Normalform.
+\end{algo}
+
+\begin{algo}{Normalform $\to$ Punkt-Richtungsform (Geraden)}
+    Liegt die Gerade in der Normalform $ax_1 + bx_2 = c$ vor, wird ein Richtungsvektor $v \perp n \iff v \perp (a, b)^T$ benötigt.
+
+    Man kann hier $v = (b, -a)^T$ wählen. Einen Aufpunkt $p$ erhält man, indem man z.B. $x_1 = 0$ oder $x_2 = 0$ setzt und aus der parameterlosen Form die andere Komponente errechnet.
+\end{algo}
+
+\begin{algo}{Punkt-Richtungsform $\to$ Normalform (Ebenen)}
+    Um einen Normalenvektor $n$ für die Richtungsvektoren $v, w$ zu erhalten, kann man das Kreuzprodukt der beiden Richtungsvektoren berechnen.
+
+    Als Aufpunkt lässt sich jeder Punkt der Ebene verwenden, insbesondere der Vektor $p$ aus der Punkt-Richtungsform.
+\end{algo}
+
+\begin{algo}{Normalform $\to$ Punkt-Richtungsform (Ebenen)}
+    Aus der Normalgleichung $ax_1 + bx_2 + cx_3 = d$ liest man den Normalenvektor $n = (a, b, c)^T$ ab.
+    Mindestens eine Komponente $n_i$ von $n$ ist ungleich $0$.
+    Wir vertauschen $n_i$ mit einer anderen Komponente $n_j$ und verändern das Vorzeichen von $n_j$ im so erzeugten Vektor.
+
+    Weil es zwei Möglichkeiten gibt $i \neq j$ zu wählen, erhalten wir zwei Vektoren $v$ und $w$, mit $v \perp n$, $w\perp n$ und $v \neq 0 \neq w$ und $v \not \parallel w$.
+
+    Ein Aufpunkt lässt sich errechnen, indem man zwei der drei Koordinaten von $x = (x_1, x_2, x_3)^T$ z.B. den Wert 0 zuweist und dann aus der Normalform den Wert der fehlenden Koordinate errechnet.
+
+    Sollte dies nicht möglich sein, wähle man ein anderes Koordinatenpaar. Es gibt immer zwei Koordinaten in $x$, mit denen obige Rechnung möglich ist.
+
+\end{algo}
+
+\begin{defi}{Lagebeziehungen von Geraden und Ebenen}
+    Geraden:
+    \begin{itemize}
+        \item Zwei Geraden in $\R^2$ oder $\R^3$ heißen \emph{parallel}, wenn ihre Richtungsvektoren parallel sind.
+        \item Zwei sich schneidende Geraden heißen \emph{orthogonal}, wenn ihre Richtungsvektoren orthogonal sind.
+        \item Seien $G$ und $G'$ zwei sich schneidende Geraden mit Richtungsvektoren $v$ bzw. $v'$. Der Winkel zwischen den Geraden wird definiert durch
+              $$
+                  \angle (G, G') := \min \{\angle (v, v'), \angle (v', v)\} = \arccos \left(\frac{\abs{\scalarprod{v, v'}}}{\norm{v} \norm{v'}}\right)
+              $$
+    \end{itemize}
+
+    Ebenen:
+    \begin{itemize}
+        \item Zwei Ebenen heißen \emph{parallel}, wenn ihre Normalenvektoren parallel sind. Sie heißen \emph{orthogonal}, wenn ihre Normalenvektoren orthogonal sind.
+        \item Sei $E$ eine Ebene mit Normalenvektor $n$. Eine Gerade mit Richtungsvektoren $v$ heißt \emph{parallel} zur Ebene $E$, falls $v \perp n$.
+        \item Seien $n$ und $n'$ Normalenvektoren der beiden Ebenen $E$ und $E'$. Dann wird der Winkel $\angle (E, E')$ zwischen den beiden Ebenen erklärt durch
+              $$
+                  \angle (E, E') := \min \{\angle (n, n'), \angle (n', n)\} = \arccos \left(\frac{\abs{\scalarprod{n, n'}}}{\norm{n} \norm{n'}}\right)
+              $$
+    \end{itemize}
+\end{defi}
+
+\begin{algo}{Schnittmengen zwischen Geraden und Ebenen in $\R^2$ und $\R^3$}
+    \begin{enumerate}
+        \item Man sorgt eventuell durch Umrechnung dafür, dass das eine Objekt durch eine parameterlose (\emph{Normalgleichung}) und das andere durch eine parameterbehaftete Gleichung (\emph{Punkt-Richtungsgleichung}) beschrieben wird.
+        \item Man setzt die Parametergleichung in die parameterlose Gleichung ein und erhält Ausdrücke für den oder die Parameter.
+        \item Diese setzt man in die Parametergleichung ein und erhält eine Parametrisierung der Schnittmenge.
+    \end{enumerate}
+\end{algo}
+
+\begin{example}{Schnittmenge zwischen einer Gerade und einer Ebene}
+    Gegeben seien $p = (1, -1, 2)^T$, $q = (1, 1, 1)^T$ und $n = (1, 2, 3)^T$.
+    Gesucht wird der Schnittpunkt der Geraden $G$ durch $p$ in Richtung von $n$ mit der Ebene $E$ durch $q$ senkrecht zu $n$.
+    Man verwendet bei der Gleichsetzung für $E$ eine Normal- und für $G$ eine Parameterform, z.B.
+    $$
+        x = \vektor{x_1, x_2, x_3} = \vektor{1 \\ -1 \\ 2} + \alpha \cdot \vektor{1 \\ 2\\ 3}.
+    $$
+    Komponentenweise liest man daraus die Gleichungen
+    $$
+        x_1 = 1 + \alpha \qquad x_2 = -1+2\alpha \qquad x_3 = 2+3\alpha
+    $$
+    ab. Eine Normalform von $E$ lautet
+    $$
+        \scalarprod{x, n} = \scalarprod{q, n} \iff x_1 + 2x_2 + 3x_3 = 6.
+    $$
+    Einsetzen in die Normalgleichung liefert dann $\alpha = \frac{1}{14}$.
+    Den Schnittpunkt $s$ erhält man durch Ensetzen von $\alpha$ in die Parametergleichung:
+    $$
+        s = p + \alpha n = \left(\frac{15}{14}, -\frac{12}{14}, \frac{31}{14}\right)^T.
+    $$\qed
+\end{example}
+
+\begin{bonus}{Lotfußpunkt}
+    Sei $G$ eine Gerade mit Richtungsvektor $v$ und $q \notin G$.
+    Ein Punkt $q'\in G$ heißt \emph{Lotfußpunkt}, wenn $l := q=q' \perp G$ gilt, $l$ heißt \emph{Lot}, und der Abstand $d$ zwischen einem Punkt und einer Geraden in $\R^3$ wird definiert durch $d := \norm{l}$.
+\end{bonus}
+
+\begin{algo}{Abstandsberechnung (Punkte, Geraden und Hyperebenen)}
+    Abstandsberechnungen zwischen Punkten, Geraden und Hyperebenen lassen sich auf die Berechnung des Lotfußpunktes zurückführen:
+
+    \begin{enumerate}
+        \item Bestimme die Richtung $r$ des Lots.
+        \item Bestimme jeweils einen Punkt auf den beiden Objekten und (durch Differenzbildung) den Abstandsvektor $a$ zwischen den beiden Punkten (Aufpunkte!).
+        \item Das Lot $l$ ist die Projektion von $a$ auf $r$. Der gesuchte Abstand ist $d = \norm{l}$.
+    \end{enumerate}
+    $$
+        l = \frac{\scalarprod{a, r}}{\scalarprod{r, r}} r \qquad d = \frac{\abs{\scalarprod{a, r}}}{\scalarprod{r, r}} \norm{r} = \frac{\abs{\scalarprod{a, r}}}{\norm{r}}
+    $$
+
+    Tipps:
+    \begin{itemize}
+        \item Ist eine Hyperebene beteiligt, dann wählt man $r$ als Normalenvektor $n$ der Hyperebene.
+        \item Bei zwei Geraden in $\R^3$ muss $r$ senkrecht auf beiden Geraden stehen.
+        \item Bei nicht parallelen Geraden wählt man $r$ als Vektorprodukt der beiden Richtungsvektoren.
+        \item Der Abstand zweier paralleler Geraden lässt sich auf den Abstand eines Punkts zu einer Geraden zurückführen.
+    \end{itemize}
+\end{algo}
+
+\begin{algo}{Abstand Punkt-Gerade im $\R^3$}
+    \begin{enumerate}
+        \item $a = l + r$, also $l = a-r$
+        \item $r$ ist die Projektion von $a$ auf den Richtungsvektor der Geraden $v$, also
+              $$
+                  r = \frac{\scalarprod{a, v}}{\scalarprod{v, v}}v
+              $$
+        \item Zusammen ergibt sich
+              $$
+                  l = a - \frac{\scalarprod{a, v}}{\scalarprod{v, v}}v \qquad d = \norm{l}
+              $$
+    \end{enumerate}
+\end{algo}
+
+\newpage
+\subsection{Die Determinante im $\R^2$ und $\R^3$}
+\begin{defi}{Determinante}
+    Sei $A \in \R^{n\times n}$.
+    \begin{itemize}
+        \item[\textbf{n=1:}] $A = (a_1)$. Dann gilt
+            $$
+                \det(A) := a_1
+            $$
+        \item[\textbf{n=2:}] Sei $A = (a, b)$ mit den Spaltenvektoren $a, b \in \R^2$. Dann gilt
+            $$
+                \det A = \det(a, b) := a_1b_2 - b_1a_2
+            $$
+            Der Betrag der Determinanten entspricht genau der Fläche des von $a$ und $b$ aufgespannten Parallelogramms.
+        \item[\textbf{n=3:}]
+            $$
+                \det(a, b, c) = \det \vektor{a_1 & b_1 & c_1 \\ a_2 & b_2 & c_2 \\ a_3 & b_3 & c_3} = a_1b_2c_3 + b_1c_2a_3 + c_1a_2b_3 - a_1c_2b_3 - b_1a_2c_3-c_1b_2a_3
+            $$
+    \end{itemize}
+
+\end{defi}
+
+\begin{defi}{Spatprodukt}
+    Für drei Vektoren $a, b, c \in \R^3$ nennt man
+    $$
+        \scalarprod{a, b \times c} \in \R
+    $$
+    das \emph{Spatprodukt} der drei Vektoren $a, b, c$.
+
+    Die Vektoren $a, b, c$ bilden die Kanten eines Körpers im dreidimensionalen Raum, eines \emph{Parallelipeds} oder \emph{Spats}.
+
+    Es entspricht also der Betrag der Determinante dem Volumen des durch die drei Spaltenvektoren aufgespannten Spats.
+\end{defi}
+
+\begin{bonus}{Determinante (Alternative)}
+    Seien $a, b, c \in \R^3$, $\phi$ der Winkel zwischen $a$ und $b$ sowie $\psi$ der Winkel zwischen den Vektoren $a\times b$ und $c$. Dann gilt:
+    $$
+        \det (a, b, c) = \norm{a} \norm{b} \norm{c} \sin \phi \cos \psi
+    $$
+\end{bonus}
+
+\begin{defi}{Eigenschaften der Determinante}
+    Die Determinante hat folgende Eigenschaften.
+    \begin{itemize}
+        \item[\textbf{D1}] $\det(a, b, c) = \det(c, a, b) = \det(b, c, a)$
+        \item[\textbf{D2}] $\det(a, b, c) = - \det(b, a, c)$
+        \item[\textbf{D3}] $\det(a, a, c) = 0$
+        \item[\textbf{D4}] Für $\alpha \in R$ gilt $\det(\alpha a, b, c) = \alpha \det(a, b, c)$
+        \item[\textbf{D5}] $\det(a,b, c + d) = \det(a, b, c) + \det(a, b, d)$
+        \item[\textbf{D6}] $\det A = \det A^T$
+    \end{itemize}
+\end{defi}
+
+\begin{bonus}{Lösbarkeit linearer Gleichungssysteme}
+    Notwendig und hinreichend dafür, dass das lineare Gleichungssystem $LG$ eine eindeutige Lösung besitzt, ist die Bedingung
+    $$
+        \det(a, b, c) \neq 0
+    $$
+\end{bonus}
+
+\newpage
+\section{Algebraische Strukturen}
+\subsection{Gruppen}
+
+\begin{defi}{Gruppe}
+    Sei $M$ eine Menge, und $\circ: M \times M \to M$ eine \emph{Verknüpfung}.
+    $(M, \circ)$ heißt Gruppe, wenn gilt:
+    \begin{itemize}
+        \item[\textbf{G1}] (Assoziativität): Die Verknüpfung ist assoziativ, d.h. es gilt:
+            $$
+                \forall x, y, z \in M : (x \circ y) \circ z = x \circ (y \circ z)
+            $$
+        \item[\textbf{G2}] (Neutralelement:) Es existiert ein neutrales Element $e \in M$ so dass
+            $$
+                \forall x \in M : x \circ e = x
+            $$
+        \item[\textbf{G3}] (Inverses Element:) $\forall x \in M \exists x'$ mit
+            $$
+                x \circ x' = e
+            $$
+        \item Gilt für eine Gruppe $G = (M, \circ)$, dass $x \circ y = y\circ x, \forall x, y \in M$, dann heißt $G$ \emph{abelsche Gruppe} oder \emph{kommutative Gruppe}.
+    \end{itemize}
+
+    Auch muss implizit gelten:
+    \begin{itemize}
+        \item $x \circ y$ existiert $\forall x, y \in M$ und ist eindeutig festgelegt
+        \item $x \circ y \in M$
+    \end{itemize}
+    Ist dies der Fall, ist die Abbildung $\circ: M \times M \to M$ \emph{wohldefiniert}.
+\end{defi}
+
+\begin{defi}{Untergruppe}
+    Sei $G = (M, \circ)$ eine Gruppe und $M' \subseteq M$. Bildet $U = (M', \circ)$ eine Gruppe, so heißt $U$ \emph{Untergruppe} von $G$, Schreibweise $U \leq G$.
+
+    Für $G$ und $U$ wie oben gilt $U \leq G$ genau dann, wenn gilt:
+    \begin{enumerate}
+        \item $M'\neq \emptyset$
+        \item $\forall a, b \in M' : a\circ b \in M'$
+        \item $\forall a \in M': a^{-1} \in M$
+    \end{enumerate}
+\end{defi}
+
+\newpage
+\subsection{Körper}
+\begin{defi}{Körper}
+    Das Tripel $(\R, +, \cdot)$ hat folgende Eigenschaften:
+    \begin{enumerate}
+        \item $(\R, +)$ bildet eine abelsche Gruppe.
+        \item $(\R \setminus \{0\}, \cdot)$ bildet eine abelsche Gruppe.
+        \item Es gelten die \emph{Distributivgesetze}
+              $$
+                  \forall x, y, z \in \R : (x+y) \cdot z = (x\cdot z) + (x \cdot y) \text{ und } x \cdot (y + z) = (x \cdot y) + (x \cdot z)
+              $$
+              \emph{Jedes} Tripel $(M, \oplus, \odot)$, das die obigen drei Bedingungen erfüllt, wird \emph{Körper} genannt.
+    \end{enumerate}
+\end{defi}
+
+\newpage
+\subsection{Vektorräume}
+\begin{defi}{Vektorraum}
+    Sei $K$ ein beliebiger Körper.
+    Eine nicht-leere Menge $V$ zusammen mit den beiden Abbildungen
+    $$
+        \begin{aligned}
+                         & \oplus : V \times V \to V, \quad (x, y) \to x \oplus y \in V
+            \text{ und } & \odot : K \times V \to V, \quad (\lambda, x) \to \lambda \odot x \in V
+        \end{aligned}
+    $$
+    heißt \emph{Vektorraum über K} oder \emph{K-Vektorraum}, wenn folgende Axiome gelten:
+    \begin{itemize}
+        \item $(V, \oplus)$ ist eine kommutative Gruppe.
+        \item $\forall \lambda, \mu \in K$ und $x \in V$ gilt $\lambda \odot (\mu \odot x) = (\lambda\mu) \odot x$, wobei mit $\lambda\mu$ die Multiplikation aus $K$ gemeint ist.
+        \item $\forall x \in V$ gilt $1 \odot x = x$ ($1$ ist das neutrale Element der Multiplikation aus $K$)
+        \item $\forall \lambda \in K, x, y \in V$ gilt: $\lambda \odot (x \oplus y) = (\lambda x) \oplus (\lambda \odot y)$.
+        \item $\forall \lambda, \mu \in K, x \in V$ gilt $(\lambda + \mu) \odot x = (\lambda \odot x) \oplus (\lambda \odot x)$
+    \end{itemize}
+\end{defi}
+
+\begin{defi}{Untervektorraum}
+    Eine Teilmenge $U \subseteq V$ heißt \emph{Untervektorraum} oder \emph{Unterraum} von $V$, wenn $U \neq \emptyset$ und $\forall x, y \in U$ und alle $\lambda \in K$ gilt:
+    $$
+        \begin{aligned}
+             & x \oplus y \in U,      \\
+             & \lambda \odot x \in U.
+        \end{aligned}
+    $$
+\end{defi}
+
+\newpage
+\subsection{Lineare Unabhängigkeit, Basis, Dimension}
+
+Seien $v_1, \ldots, v_r \in V$ Vektoren eines $K$-Vektorraums $V$.
+
+\begin{defi}{Linearkombination}
+    Lässt sich $v\in V$ als Summe dieser Vektoren mit Vorfaktoren darstellen,
+    $$
+        v = \sum^r_{k=1} \lambda_kv_k
+    $$
+    heißt $v$ $Linearkombination$ von $v_1, \ldots, v_r$.
+\end{defi}
+
+\begin{defi}{Lineare Hülle}
+    Die Menge
+    $$
+        L(v_1, \ldots, v_r) := \left\{ \sum^r_{k=1} \lambda_kv_k \mid \lambda_i \in K \right\} \subseteq V
+    $$
+    aller Linearkombinationen heißt \emph{Lineare Hülle} von $v_1, \ldots, v_r$.
+\end{defi}
+
+\begin{defi}{Erzeugendensystem}
+    Sei $V$ ein $K$-Vektorraum und $(v_1, \ldots, v_n)$ ein $n$-Tupel von Vektoren in $V$.
+    Gilt $L(v_1, \ldots, v_n) = V$, nennt man $(v_1, \ldots, v_n)$ ein \emph{Erzeugendensystem} von $V$.
+
+    $V$ heißt \emph{endlich erzeugt}, wenn es endlich viele Vektoren $v_1, \ldots, v_r$ gibt, so dass  $L(v_1, \ldots, v_r) = V$, ansonsten \emph{nicht endlich erzeugt}.
+\end{defi}
+
+\begin{defi}{Lineare Unabhängigkeit}
+    Sei $V$ ein $K$-Vektorraum. Ein $r$-Tupel $(v_1, \ldots, v_r)$ von Vektoren in $V$ heißt \emph{linear unabhängig}, wenn aus $\lambda_1v_1 +\lambda_2v_2 + \ldots + \lambda_rv_r = 0$ stets folgt, dass $\lambda_1 = \lambda_2 = \ldots = \lambda_r = 0$ gilt.
+
+    Außerdem gilt:
+    \begin{itemize}
+        \item Keiner der Vektoren ist eine Linearkombination der übrigen.
+        \item Keiner der Vektoren ist der Nullvektor.
+    \end{itemize}
+
+    Tipp: Ein $r$-Tupel $(v_1, \ldots, v_r)$ von Vektoren in $V$ ist \emph{linear unabhängig} genau dann, wenn $\det(v_1, \ldots, v_r) \neq 0$.
+\end{defi}
+
+\begin{bonus}{Lineare Unabhängigkeit von Funktionen}
+    Wir bilden zu den Funktionen $f_1, \ldots, f_n$ für paarweise verschiedene $x_1, \ldots, x_n$ die $n$ Vektoren
+    $$
+        (f_1(x_1), \ldots, f_1(x_n))^T, \ldots, (f_n(x_1), \ldots, f_n(x_n))^T \in \mathbb{K}^n.
+    $$
+    Sind diese Vektoren linear unabhängig, dann sind die Funktionen $f_1, \ldots, f_n$ selbst linear unabhängig.
+
+    Hinweis: Die Rückrichtung gilt \textbf{nicht}!
+\end{bonus}
+
+\begin{defi}{Basis}
+    Sei $v \neq \{0\}$ ein endlich erzeugter $K$-Vektorraum und $v_1, \ldots, v_n \in V$. Das $n$-Tupel $B = (v_1, \ldots, v_n)$ heißt \emph{Basis} oder \emph{minimales Erzeugendensystem} von $V$, wenn $B$ linear unabhängig ist und wenn gilt $L(B) = V$.
+    Weiter sei $\emptyset$ die Basis des Nullvektorraums $\{0\}$.
+\end{defi}
+
+\begin{bonus}{Koordinaten eines Vektors}
+    Sei $(v_1, \ldots, v_n)$ eine Basis von $V$ und $v \in V$ mit
+    $$
+        v = \lambda_1v_1 + \ldots + \ldots_nv_n, \lambda_i, \ldots, \lambda_n \in K
+    $$
+    Das $n$-Tupel der obigen Vorfaktoren $(\lambda_1, \ldots, \lambda_n) \in K^n$ nennt man \emph{Koordinaten} des Vektors $v$ bzgl. der Basis $(v_1, \ldots, v_n)$.
+\end{bonus}
+
+\begin{defi}{Basisergänzungssatz}
+    Sei $V$ ein $K$-Vektorraum und seien
+    $$
+        v_1, \ldots, v_r, \quad w_1, \ldots w_s \in V
+    $$
+    Ist $(v_1, \ldots, v_r)$ linear unabhängig und ist
+    $$
+        L(v_1, \ldots, v_r, w_1, \ldots w_s) = V,
+    $$
+    dann kann man $(v_1, \ldots, v_r)$ durch evtl. Hinzunahme geeigneter Vektoren aus $\{w_1, \ldots w_s\}$ zu einer Basis von $V$ ergänzen.
+\end{defi}
+
+\begin{defi}{Austauschlemma}
+    Sind $(v_1, \ldots, v_n)$, $(w_1, \ldots w_n)$ Basen eines $K$-Vektorraums $V$, dann gibt es zu jedem $v_i$ ein $w_j$, so dass aus $(v_1, \ldots, v_n)$ wieder eine Basis entsteht, wenn man in ihr $v_i$ durch $w_j$ ersetzt.
+\end{defi}
+
+\begin{defi}{Dimension}
+    Besitzt ein Vektorraum $v \neq \{0\}$ eine Basis $(v_1, \ldots, v_n)$, so definieren wir die \emph{Dimension} von $V$ als $\dim(V) := n$.
+    Besitzt $V$ keine endliche Basis, dann setzt man $\dim(V) := \infty$. Weiter sei $\dim(\{0\}) := 0$.
+\end{defi}
+
+\newpage
+\subsection{Polynome}
+\begin{defi}{Polynom}
+    Ein \emph{Polynom} oder ganzrationale Funktion $p : \mathbb{K} \to \mathbb{K}$ ist eine Funktion der Gestalt
+    $$
+        p(x) = a_0 + a_1x + a_2x^x + \ldots + a_nx_n = \sum^n_{k=0} a_kx^k
+    $$.
+\end{defi}
+
+\begin{bonus}{Polynome als $\mathbb{K}$-Vektorraum}
+    Sei $+$ die Addition von Funktionen und $\cdot$ die Multiplikation einer Funktion mit einem Skalar. Dann bildet $(P_n, +, \cdot)$ einen $\mathbb{K}$-Vektorraum.
+\end{bonus}
+
+\begin{bonus}{Basis des Vektorraums $P_n$}
+    Die Funktionen $1, x, x^2, \ldots, x^n$ bilden eine Basis des Vektorraums $P_n$ und es gilt
+    $$
+        \dim(P_n) = n + 1.
+    $$
+    Diese Basis wird auch \emph{Monombasis} genannt.
+\end{bonus}
+
+\begin{defi}{Interpolationspolynom}
+    Gegeben seien die $n+1$-Punkte $(x_k, y_k), 0 \leq k \leq n$ mit \emph{paarweise verschiedenen} $x_k$.
+    Dann existiert genau ein $p_n \in P_n$ mit $y_k = p_n(x_k) \forall 0 \leq k \leq n$.
+    Dies ist das sogenannte \emph{Interpolationspolynom}.
+\end{defi}
+
+\begin{example}{Interpolationspolynom}
+    Wir betrachten die drei Punkte $(-2, 1)$, $(-1, -1)$ und $(1, 1)$.
+
+    Eine interpolierende Parabel $p_2$ wird durch diese Punkte festgelegt.
+
+    Die allgemeine Form des Polynoms ist $p_2(x) = ax^2 + bx + c$.
+    Einsetzen der drei Punkte ergibt die Gleichungen
+    $$
+        \begin{aligned}
+            (1, 1): \quad   & 1 = a + b + c   \\
+            (-1, -1): \quad & -1 = a - b + c  \\
+            (-2, 1): \quad  & 1 = 4a - 2b + c \\
+        \end{aligned}
+    $$
+    und führt damit zu einem linearen Gleichungssystem.
+
+    Man errechnet als Lösung $a = 1$, $b = 1$, $c = -1$ und erhält
+    $$
+        p_2(x) = x^2 + x -1.
+    $$\qed
+\end{example}
+
+\begin{example}{Lineare Unabhängigkeit von Polynomen}
+    Die Polynome
+    $$
+        p_1(x) = (1-x)^2 \qquad p_2(x) = (1-x)x \qquad p_3(x) = x^2
+    $$
+    sollen auf lineare Unabhängigkeit geprüft werden.
+    Wir berechnen zunächst die Koeffizientenvektoren.
+    $$
+        \begin{aligned}
+             & p_1(x) = (1-x)^2 &  & =1-2x+1x^2  &  & \implies a_{0_1} = 1, ~a_{1_1} = -2, ~a_{2_1} = 1 \\
+             & p_2(x) = (1-x)x  &  & =0+ 1x -x^2 &  & \implies a_{0_2} = 0, ~a_{1_2} = 1, ~a_{2_2} = -1 \\
+             & p_3(x) = x^2     &  &             &  & \implies a_{0_3} = 0, ~a_{1_3} = 0, ~a_{2_3} = 1
+        \end{aligned}
+    $$
+
+    $\det(a_0, a_1, a_2) \neq 0$ und damit sind die Polynome linear unabhängig.\qed
+\end{example}
+
+\subsection{Skalarprodukte, euklidische und unitäre Räume}
+\begin{defi}{Euklidische und unitäre Vektorräume}
+    Ein reeller Vektorraum gemeinsam mit einem Skalarprodukt heißt \emph{euklidischer Vektorraum}, ein komplexer Vektorraum mit einem Skalarprodukt heißt \emph{unitärer Vektorraum}.
+\end{defi}
+
+\begin{defi}{Orthogonale Projektion}
+    Sei $U$ ein endlich erzeugter Untervektorraum von $V$ und $a \in V$.
+    Ein Vektor $p_u(a) \in U$ heißt \emph{orthogonale Projektion} von $a$ auf $U$, wenn gilt:
+    $$
+        a - p_U(a) \perp u \quad \forall u \in U.
+    $$
+\end{defi}
+
+\begin{defi}{Orthogonales Komplement}
+    Für $M \subseteq V$ heißt
+    $$
+        M^\perp := \{v\in V \mid v \perp u \quad \forall u \in M\}
+    $$
+    das \emph{orthogonale Komplement} von $M$.
+\end{defi}
+
+\begin{defi}{Orthogonalsystem, Orthonormalsystem, Orthogonalbasis, Orthonormalbasis}
+    Sei $B = (v_1, \ldots, v_m)$ ein $m$-Tupel mit Vektoren in $V\setminus \{0\}$.
+    \begin{enumerate}
+        \item $B$ heißt \emph{Orthogonalsystem} in $V$, falls alle $v_i$ paarweise orthogonal sind.
+        \item Ein Orthogonalsystem, für das zusätzlich $\forall v_i \in B: \norm{v_i} = 1$ gilt, heißt \emph{Orthonormalsystem}.
+        \item Ein Orthogonalsystem, das eine Basis von $V$ bildet, heißt \emph{Orthogonalbasis} von $V$.
+        \item Ein Orthonormalsystem, das eine Basis von $V$ bildet, heißt \emph{Orthonormalbasis} von $V$.
+    \end{enumerate}
+\end{defi}
+
+\subsection{Das Verfahren von Gram-Schmidt}
+\begin{defi}{Gram-Schmidt-Verfahren}
+    Sei $V$ ein unitärer Vektorraum und $v_1, \ldots, v_m$ linear unabhängig.
+    Seien
+    $$
+        \begin{aligned}
+            w_1     & :={} \frac{v_1}{\norm{v_1}}                              \\
+            r_{k+1} & :={} v_{k+1} - \sum^k_{i=1} \scalarprod{v_{k+1}, w_i}w_i \\
+            w_{k+1} & :={} \frac{r_{k+1}}{\norm{r_{k+1}}}
+        \end{aligned}
+    $$
+    Dann bilden $(w_1, \ldots, w_m)$ eine Orthonormalbasis von $L(v_1, \ldots, v_m)$.
+\end{defi}
+
+\begin{example}{Gram-Schmidt-Verfahren (allgemein)}
+    Wir betrachten eine beliebige Basis $(v_1, v_2, v_3)$ von $\R^3$.
+    Wir gehen so vor:
+    \begin{enumerate}
+        \item Man wählt einfach $w_1 = \frac{1}{\norm{v_1}}v_1$, weil dann offenbar $\norm{w_1} = 1$ gilt.
+        \item Wir konstruieren einen Vektor $r_2$, der senkrecht auf $w_1$ steht.
+              Dazu projizieren wir $v_2$ auf den von $w_1$ erzeugen Unterraum $L(w_1)$ und setzen $r_2 := v_2 - p_{L(v_1)}(v_2)$.
+              Dann gilt nach Definition der orthogonalen Projektion $v_1 \perp r_2$.
+              Man erhält
+              $$
+                  r_2 = v_2 - \scalarprod{v_2, w_1}w_1.
+              $$
+              Normierung von $r_2$ liefert $w_2$.
+        \item Der Vektor $r_3 := v_3 - p_{L(v_1, v_2)}(v_3)$ steht nach Konstruktion senkrecht auf $L(v_1, v_2)$ und daher gilt insbesonere $r_3 \perp v_1$ und $r_3 \perp v_2$.
+              Weil $(w_1, w_2)$ eine Orthonormalbasis von $L(v_1, v_2)$ bilden, gilt:
+              $$
+                  r_3 = v_3 - \scalarprod{v_3, w_1}w_1 - \scalarprod{v_3, w_2}w_2
+              $$
+              Normierung von $r_3$ ergibt $w_3$.
+    \end{enumerate}
+\end{example}
+
+
+\printindex
+\printindex[Beispiele]
+\end{document}
diff --git a/la2/la2.pdf b/la2/la2.pdf
index 4cd8b44e586329ab54bf66e0e58003482c8b7080..80b2e189975afaa4e738e39f5740ffd04e17c1a1 100644
GIT binary patch
delta 143
zcmaE}QRvM^p$)Uy89O)6VgJX(BGj<mt$7|-`#dhj_IX@P?en;px6k8Zsj6o;Gc-1~
zG%}hl-^C&W<7{{8VtK{sZ0hP{ZsBBNYUJqTY-r?a;bdXrYG`O?>15_&V(w_}Y^PvD
MNXhp6DJ-=t0Io79z5oCK

delta 143
zcmaE}QRvM^p$)Uy8T&TRVgJX(@``i2OY=Og_IX^4?en;p+UIdGZ=c7-QdQ4xVrXGt
zWMDpBzKcZ$#@X)F#qx^N+1bF=(A3e~#MIc_)!f3+$j#E(!qm~g$lTD}#l^zJ&`!aI
Mkdp2BQ&?(Q0Lqpqo&W#<

diff --git a/la2/la2.tex b/la2/la2.tex
index 304bce2..cfed3e7 100644
--- a/la2/la2.tex
+++ b/la2/la2.tex
@@ -1,1575 +1,1575 @@
-\documentclass[german]{../spicker}
-
-\usepackage{amsmath}
-\usepackage{polynom}
-\usepackage{nicefrac}
-\usepackage{array}   % for \newcolumntype macro
-\usepackage{tikz}
-\usepackage{pgfplots}
-\usepackage{multirow,bigdelim}
-\usepgfplotslibrary{fillbetween}
-
-\usetikzlibrary{positioning}
-
-\title{Lineare Algebra 2}
-\author{Patrick Gustav Blaneck}
-\makeindex[intoc]
-\makeindex[intoc, name=Beispiele,title=Beispiele]
-
-\newcommand{\scalarprod}[1]{\left\langle #1 \right\rangle}
-\newcommand{\vektor}[1]{\begin{pmatrix*}[c] #1 \end{pmatrix*}}
-\renewcommand{\span}[1]{\operatorname{span}\left(#1\right)}
-
-\newcommand{\im}{\operatorname{im}}
-\newcommand{\rg}{\operatorname{rg}}
-\newcommand{\defect}{\operatorname{def}}
-\newcommand{\Eig}{\operatorname{Eig}}
-
-\renewcommand{\d}{\,\mathrm{d}}
-
-\renewcommand{\abs}[1]{\left| #1 \right|}
-\newcommand{\cis}[1]{\left( \cos\left( #1 \right) + i \sin\left( #1 \right) \right)}
-\newcommand{\sgn}{\text{sgn}}
-\newcommand{\diff}{\mathrm{d}}
-\newcommand{\dx}{~\mathrm{d}x}
-\newcommand{\du}{~\mathrm{d}u}
-\newcommand{\dv}{~\mathrm{d}v}
-\newcommand{\dw}{~\mathrm{d}w}
-\newcommand{\dt}{~\mathrm{d}t}
-\newcommand{\dn}{~\mathrm{d}n}
-\newcommand{\dudx}{~\frac{\mathrm{d}u}{\mathrm{d}x}}
-\newcommand{\dudn}{~\frac{\mathrm{d}u}{\mathrm{d}n}}
-\newcommand{\dvdx}{~\frac{\mathrm{d}v}{\mathrm{d}x}}
-\newcommand{\dwdx}{~\frac{\mathrm{d}w}{\mathrm{d}x}}
-\newcommand{\dtdx}{~\frac{\mathrm{d}t}{\mathrm{d}x}}
-\newcommand{\ddx}{\frac{\mathrm{d}}{\mathrm{d}x}}
-\newcommand{\dFdx}{\frac{\mathrm{d}F}{\mathrm{d}x}}
-\newcommand{\dfdx}{\frac{\mathrm{d}f}{\mathrm{d}x}}
-\newcommand{\interval}[1]{\left[ #1 \right]}
-
-\newcolumntype{L}{>{$}l<{$}} % math-mode version of "l" column type
-\newcolumntype{R}{>{$}r<{$}} % math-mode version of "r" column type
-\newcolumntype{C}{>{$}c<{$}} % math-mode version of "c" column type
-\newcolumntype{P}{>{$}p<{$}} % math-mode version of "l" column type
-
-\newenvironment{sysmatrix}[1]
- {\left(\begin{array}{@{}#1@{}}}
- {\end{array}\right)}
-
-\newcommand{\dvektor}[1]{\begin{vmatrix*}[r] #1 \end{vmatrix*}}
-
-\begin{document}
-\maketitle
-\tableofcontents
-\newpage
-
-%\setcounter{section}{1}
-
-\section{Lineare Abbildungen}
-
-\subsection{Grundlegende Eigenschaften linearer Abbildungen}
-
-\begin{defi}{Homomorphismus}
-    Eine Abbildung $f : V \to W$ heißt \emph{linear} oder ein \emph{Homomorphismus}, falls $\forall x, y \in V, \forall \lambda \in K$ gilt:
-    \begin{itemize}
-        \item Additivität: $f(x + y) = f(x) + f(y)$
-        \item Homogenität: $f(\lambda x) = \lambda f(x)$
-    \end{itemize}
-
-    Es gilt auch:
-    \begin{itemize}
-        \item Für eine lineare Funktion $f$ gilt $f(0) = 0$.
-        \item Die Funktion $f$ ist genau dann linear, wenn $\forall x, y \in V, \forall \lambda \in K$ gilt:
-              $$
-                  f(x + \lambda y) = f(x) + \lambda f(y)
-              $$
-        \item Summen, Vielfache linearer Abbildungen und vektorwertige Abbildungen, deren Komponenten aus linearen Abbildungen bestehen, sind wiederum linear.
-    \end{itemize}
-\end{defi}
-
-\begin{example}{Homomorphismus}
-    Gegeben sei die Abbildung $f : \R^3 \to \R^2$ mit $f(x_1, x_2, x_3) = (x_1-2x_3, 4x_2)$.
-
-    Zeigen Sie: $f$ ist linear.
-
-    \exampleseparator
-
-    $f$ ist genau dann \emph{linear}, wenn $f$ \emph{homogen} und \emph{additiv} ist.
-
-    \emph{Homogenität:} $\forall x \in \R^3, \lambda \in \R: f(\lambda  x) = \lambda  f(x)$
-    $$
-        \begin{aligned}
-                         & f(\lambda  x)                                  &  & = \lambda  f(x)                              \\
-            \equiv \quad & f(\lambda  x_1, \lambda  x_2, \lambda  x_3)    &  & = \lambda  f(x_1, x_2, x_3)                  \\
-            \equiv \quad & (\lambda  x_1-2  \lambda  x_3, 4 \lambda  x_2) &  & = \lambda  (x_1-2x_3, 4x_2)                  \\
-            \equiv \quad & \lambda  (x_1-2x_3, 4x_2)                      &  & = \lambda  (x_1-2x_3, 4x_2) \quad \checkmark
-        \end{aligned}
-    $$
-    \emph{Additivität:} $\forall x, y \in \R^3: f(x + y) = f(x) + f_4(y)$
-    $$
-        \begin{aligned}
-                         & f(x + y)                                 &  & = f(x) + f(y)                                               \\
-            \equiv \quad & f(x_1 + y_1, x_2 + y_2, x_3 + y_3)       &  & = f(x_1, x_2, x_3) + f(y_1, y_2, y_3)                       \\
-            \equiv \quad & (x_1 + y_1-2(x_3 + y_3), 4(x_2 + y_2))   &  & = (x_1-2x_3, 4x_2) + (y_1-2y_3, 4y_2)                       \\
-            \equiv \quad & (x_1 + y_1-2 x_3 -2  y_3, 4 x_2 +4  y_2) &  & = (x_1 + y_1-2 x_3 -2  y_3, 4 x_2 +4  y_2) \quad \checkmark
-        \end{aligned}
-    $$
-
-    Damit ist $f$ linear. \qed
-\end{example}
-
-\begin{defi}{Kern}
-    Der \emph{Kern} einer linearen Abbildung $f : V \to W$ wird definiert durch
-    $$
-        \ker (f) := f^{-1}(0)
-    $$
-
-    Dabei gilt:
-    \begin{itemize}
-        \item $\im (f)$\footnote{Bild von $f$} ist ein Untervektorraum von $W$.
-        \item $\ker (f)$ ist ein Untervektorraum von $V$.
-    \end{itemize}
-
-    Eine lineare Abbildung ist genau dann injektiv, wenn $\ker (f) = \{0\}$ gilt.
-\end{defi}
-
-\begin{bonus}{Defekt}
-    Für eine lineare Funktion $f: V\to W$ definiert man den \emph{Defekt} von $f$ durch
-    $$
-        \defect (f) := \dim\ker (f)
-    $$
-
-    Eine lineare Abbildung ist genau dann injektiv, wenn $\defect (f) = 0$ gilt.
-\end{bonus}
-
-\begin{example}{Kern}
-    Gegeben sei die Abbildung $f : \R^3 \to \R^2$ mit $f(x_1, x_2, x_3) = (x_1-2x_3, 4x_2)$.
-
-    Bestimmen Sie den Kern von $f$ und geben Sie $\dim(\ker(f))$ an.
-
-    \exampleseparator
-
-    $$
-        f(x_1, x_2, x_3) = 0 \iff
-        \begin{sysmatrix}{ccc|c}
-            1 & 0 & -2 & 0 \\
-            0 & 4 & 0  & 0
-        \end{sysmatrix}
-        \implies x_2 = 0 \quad \land \quad x_1 = 2x_3
-    $$
-    Daraus folgt:
-    $$
-        \ker(f) = f^{-1}(0) = \left\{ (2\lambda, 0, \lambda) \mid \lambda \in \R \right\} \implies \defect(f) = \dim(\ker(f)) = 1
-    $$\qed
-\end{example}
-
-\begin{defi}{Rang}
-    Für eine lineare Funktion $f: V\to W$ definiert man den \emph{Rang} von $f$ durch
-    $$
-        \rg (f) := \dim\im (f)
-    $$
-
-    Eine lineare Abbildung ist genau dann surjektiv, wenn $\rg (f) = \dim (W)$ gilt.
-\end{defi}
-
-\begin{defi}{Dimensionsformel für lineare Abbildungen (Rangsatz)}
-    Es sei $f : V \to W$ linear. Dann gilt:
-    $$
-        \defect (f) + \rg (f) = \dim V
-    $$
-    bzw. äquivalent
-    $$
-        \dim\ker (f) + \dim\im (f) = \dim V
-    $$
-\end{defi}
-
-\begin{defi}{Isomorphismus}
-    Sei $f : V \to W$ linear.
-    Dann ist $f$ ein \emph{Isomorphismus}, wenn $f$ bijektiv ist.
-
-    Es gilt (für $f$ linear):
-    \begin{itemize}
-        \item $f$ ist genau dann ein Isomorphismus, wenn $\ker(f) = \{0\}$ und $\im(f) = W$ gilt.
-        \item Gelte $\dim (V) = \dim (W)$. Dann gilt $f$ ist injektiv $\iff$ $f$ ist surjektiv $\iff$ $f$ ist bijektiv.
-    \end{itemize}
-
-    Es gilt (für $f$ Isomorphismus):
-    \begin{itemize}
-        \item $\dim(V) = \dim(W)$
-        \item $f^{-1} : W \to V$ ist ebenfalls ein Isomorphismus.
-    \end{itemize}
-
-    Sei $\dim(V) = \dim(W) = n$, $(v_1, \ldots, v_n)$ eine Basis von $V$ und $f : V \to W$ linear.
-    $f$ ist genau dann ein Isomorphismus, wenn $(f(v_1), \ldots, f(v_n))$ eine Basis von $W$ bildet.
-\end{defi}
-
-\begin{bonus}{Isomorphie}
-    Seien $V$ und $W$ zwei $K$-Vektorräume
-    Dann heißen $V$ und $W$ \emph{isomorph}, Schreibweise $V \simeq W$, falls ein Isomorphismus von $V$ nach $W$ existiert.
-
-    Gilt $\dim(V) = \dim(W) = n$, dann gilt direkt $K^n \simeq V \simeq W$.
-\end{bonus}
-
-\begin{defi}{Automorphismus}
-    Sei $f : V \to W$ linear.
-    Dann ist $f$ ein \emph{Automorphismus}, wenn $f$ bijektiv ist und $V = W$.
-\end{defi}
-
-\begin{defi}{Endomorphismus}
-    Eine lineare Abbildung $f : V \to V$ heißt \emph{Endomorphismus}.
-\end{defi}
-
-\subsection{Matrizen und lineare Abbildungen}
-
-\begin{defi}{Abbildungsmatrix}
-    Sei $f : V \to W$ linear. Dann ist die \emph{Abbildungsmatrix} $A$ bzgl. $f$ gegeben mit
-    $$
-        A = \vektor{f(e_1) & \ldots & f(e_n)} \ \text{mit} \ \forall x : f(x) = Ax
-    $$
-
-    Sei $(v_1, \ldots, v_n)$ eine Basis von $V$. Dann gilt:
-    \begin{itemize}
-        \item $\im(f) = \scalarprod{f(v_1), \ldots, f(v_n)}$
-        \item $f$ ist injektiv $\iff$ $f(v_1), \ldots, f(v_n)$ sind linear unabhängig.
-    \end{itemize}
-\end{defi}
-
-\begin{defi}{Darstellungsmatrix}
-    Sei $f : V \to W$ linear, $\mathcal{B}_V = (v_1, \ldots, v_n)$ eine Basis von $V$ und $\mathcal{B}_W = (w_1, \ldots, w_m)$ eine Basis von $W$.
-    Dann ist
-    $$
-        M^{\mathcal{B}_V}_{\mathcal{B}_W} (f) = \vektor{K_{\mathcal{B}_W}(f(v_1)) & \ldots & K_{\mathcal{B}_W}(f(v_1))}
-    $$
-    die \emph{Darstellungsmatrix} von $f$ bezüglich der Basen $\mathcal{B}_V$ und $\mathcal{B}_W$.
-
-    $K_{\mathcal{B}_W}(f(v_i))$ bedeutet hier, dass das Bild von $v_i$ in der Basis $\mathcal{B}_W$ kodiert wird.
-
-    Es gilt:
-    \begin{itemize}
-        \item Sind $\mathcal{B}_V$ und $\mathcal{B}_W$ die Standardbasen bez. $V$ und $W$, dann gilt $M^{\mathcal{B}_V}_{\mathcal{B}_W} (f) = A$.
-    \end{itemize}
-\end{defi}
-
-\begin{example}{Abbildungsmatrix}
-    Sei
-    $$
-        F\left(\vektor{x\\y\\z}\right) = \vektor{x + y + 2z \\ -3x + z \\ -x + 2y + 5z}
-    $$
-    \begin{enumerate}[a)]
-        \item Geben Sie für obige Abbildung die Abbildungsmatrix an.
-        \item Bestimmen Sie $\ker(F)$ und dessen Dimension.
-        \item Bestimmen Sie mit Hilfe der Dimensionsformel $\dim(\im (F))$.
-        \item Geben Sie eine Basis des Bildes an.
-    \end{enumerate}
-
-    \exampleseparator
-
-    \begin{enumerate}[a)]
-        \item Sei $B$ die kanonische Einheitsbasis des $\R^3$.
-              Dann ist die Abbildungsmatrix gegeben mit
-              $$
-                  A = M^B_B (F) = \vektor{~ \\F(e_1) & F(e_2) & F(e_3)\\ ~} = \vektor{1 & 1 & 2\\ -3 & 0 & 1\\ -1 & 2 & 5}
-              $$\qed
-        \item $$
-                  M^B_B \cdot \vektor{x \\ y \\ z} = \vektor{1 & 1 & 2\\ -3 & 0 & 1\\ -1 & 2 & 5} \cdot \vektor{x \\ y \\ z} = \vektor{0 \\ 0 \\ 0}
-              $$
-
-              Wir erhalten also ein LGS, dessen Lösung eine Basis von $\ker(F)$ ist:
-              $$
-                  \begin{sysmatrix}{c c c | c}
-                      1 & 1 & 2 & 0 \\ -3 & 0 & 1 & 0 \\ -1 & 2 & 5 & 0
-                  \end{sysmatrix}
-                  \sim
-                  \begin{sysmatrix}{c c c | c}
-                      1 & 1 & 2 & 0 \\ 0 & 3 & 7 & 0 \\ 0 & 3 & 7 & 0
-                  \end{sysmatrix}
-                  \sim
-                  \begin{sysmatrix}{c c c | c}
-                      1 & 1 & 2 & 0 \\ 0 & 3 & 7 & 0 \\ 0 & 0 & 0 & 0
-                  \end{sysmatrix}
-                  \sim
-                  \begin{sysmatrix}{c c c | c}
-                      -3 & 0 & 1 & 0 \\ 0 & \frac{3}{7} & 1 & 0 \\ 0 & 0 & 0 & 0
-                  \end{sysmatrix}
-              $$
-
-              Daraus können wir folgern, dass $\ker(F) = \scalarprod{\vektor{1 & -7 & 3}^T}$ und $\defect(F) = 1$. \qed
-        \item $\dim(\R^3) = \defect(F) + \rg(F) \implies \rg(F) = 2$\qed
-        \item Wegen $\rg(F) = 2$ wissen wir, dass wir zwei linear unabhängige Vektoren aus $M^B_B$ auswählen können, die dann automatisch eine Basis von $\im(F)$ ergeben.
-
-              Wir wählen $\im(F) = \scalarprod{ \vektor{1 & 0 & 2}^T, \vektor{2 & 1 & 5}^T }$.\qed
-    \end{enumerate}
-\end{example}
-
-\subsection{Abbildungsverkettung und Matrizenmultiplikation}
-
-\begin{defi}{Eigenschaften der Abbildungsverkettung}
-    Seien $U$, $V$, $W$ $K$-Vektorräume und $f : V \to W$ sowie $g : U \to V$ linear.
-    Dann ist auch $f \circ g : U \to W$ linear.
-
-    Ist $f$ ein Isomorphismus und $\dim(V) = \dim(W)$, dann gilt:
-    $$
-        \rg(f\circ g) = \rg(g)
-    $$
-\end{defi}
-
-\begin{defi}{Eigenschaften der Matrixmultiplikation}
-    Seien $A$, $B$, $C$ so, dass die nachfolgend vorkommenden Matrixmultiplikationen definiert sind.
-    Dann gilt:
-    \begin{itemize}
-        \item $A(BC) = (AB)C$ (Assoziativgesetz)
-        \item $A(B+C) = AB+AC$ und $(A+B)C = AC+BC$ (Distributivgesetz)
-        \item $(AB)^T = B^TA^T$
-        \item Sei $A \in K^{m\times n}$ und $E_k \in K^{k\times k}$ die $(k\times k)$-Einheitsmatrix. Dann gilt:
-              $$
-                  AE_n = E_mA = A
-              $$
-        \item Sei $A \in K^{m\times n}$ und $0_{kl} \in K^{k\times l}$ die $(k\times l)$-Nullmatrix. Dann gilt:
-              $$
-                  A0_{nl} = 0_{ml} \quad \text{und} \quad 0_{km}A = 0_{kn}
-              $$
-        \item Das Matrixprodukt ist im Allgemeinen nicht kommutativ.
-        \item Seien $x, y \in K^n$. Dann gilt:
-              $$
-                  \scalarprod{x, y} = x^T \cdot y
-              $$
-    \end{itemize}
-\end{defi}
-
-\begin{example}{Matrixmultiplikation}
-    Gegeben sind die Matrizen
-    $$
-        A = \vektor{10 & 2 & 3 \\ 8 & 5 & 3 \\ 2 & 3 & 2}, \quad
-        B = \vektor{7 & 3 \\ 1 & 5}, \quad
-        C = \vektor{4 & 5 \\ 2 & 7 \\ 3 & 6}
-    $$
-    Welche der folgenden Matrixprodukte sind wohldefiniert?
-
-    \begin{enumerate}[a)]
-        \item $A\cdot B$
-        \item $C\cdot B$
-        \item $C\cdot B \cdot A$
-    \end{enumerate}
-
-    \exampleseparator
-
-    \begin{enumerate}[a)]
-        \item $$
-                  A\cdot B = \overset{3\times \pmb{3}}{\vektor{10 & 2 & 3 \\ 8 & 5 & 3 \\ 2 & 3 & 2}} \overset{\pmb{2}\times 2}{\vektor{7 & 3 \\ 1 & 5}} \quad \lightning \quad (3 \neq 2)
-              $$
-        \item $$
-                  C\cdot B = \overset{3\times \pmb{2}}{\vektor{4 & 5 \\ 2 & 7 \\ 3 & 6}} \overset{\pmb{2}\times 2}{\vektor{7 & 3 \\ 1 & 5}} = \vektor{33 & 37 \\ 21 & 41 \\ 27 & 39}
-              $$
-        \item $$
-                  C\cdot B \cdot A = \overset{3\times \pmb{2}}{\vektor{4 & 5 \\ 2 & 7 \\ 3 & 6}} \overset{\pmb{2}\times \pmb{2}}{\vektor{7 & 3 \\ 1 & 5}} \overset{\pmb{3}\times 3}{\vektor{10 & 2 & 3 \\ 8 & 5 & 3 \\ 2 & 3 & 2}} \quad \lightning \quad (2 \neq 3)
-              $$
-    \end{enumerate}
-\end{example}
-
-\begin{defi}{Inverse einer Matrix}
-    Sei $A$ eine quadratische Matrix.
-    Gibt es eine Matrix $A^{-1}$ mit
-    $$
-        AA^{-1} = A^{-1}A = E
-    $$
-    so heißt $A$ \emph{invertierbar} oder auch \emph{regulär}.
-    $A^{-1}$ wird als \emph{Inverse} von $A$ bezeichnet.
-
-    Es gilt:
-    \begin{itemize}
-        \item Eine lineare Abbildung $f : V \to W$ ist genau dann invertierbar, wenn ihre Darstellungsmatrix invertierbar ist.
-        \item Jede invertierbare Matrix ist quadratisch.
-    \end{itemize}
-
-    Seien $A, B \in K^{n\times n}$ invertierbar.
-    Dann gilt:
-    \begin{itemize}
-        \item $AB = E \iff BA = E \iff B = A^{-1}$
-        \item $AB$ ist invertierbar, und es gilt $(AB)^{-1} = B^{-1}A^{-1}$.
-        \item $A^{-1}$ ist invertierbar, und es gilt $(A^{-1})^{-1} = A$.
-        \item $A^T$ ist invertierbar, und es gilt $(A^T)^{-1} = (A^{-1})^T$.
-        \item Für $\lambda \in K \setminus \{0\}$ ist $\lambda A$ invertierbar, und es gilt $(\lambda A)^{-1} = \frac{1}{\lambda}A^{-1}$.
-    \end{itemize}
-\end{defi}
-
-\begin{example}{Inverse einer Matrix (Gauß-Algorithmus)}
-    Berechnen Sie mit Hilfe des Gauß-Algorithmus die Inverse zu folgender Matrix:
-    $$\vektor{0 & 0 & 2 & 0 \\ 1 & 0 & 0 & 1 \\ 0 & -1 & -3 & 0 \\ 2 & 1 & 5 & 3}$$
-
-    \exampleseparator
-
-    $$
-        \begin{sysmatrix}{cccr|cccr}
-            0 & 0 & 2 & 0   & 1 & 0 & 0 & 0 \\
-            1 & 0 & 0 & 1   & 0 & 1 & 0 & 0 \\
-            0 & -1 & -3 & 0 & 0 & 0 & 1 & 0 \\
-            2 & 1 & 5 & 3   & 0 & 0 & 0 & 1
-        \end{sysmatrix}
-        \sim
-        \begin{sysmatrix}{cccr|cccr}
-            0 & 0 & 1 & 0   & \nicefrac{1}{2} & 0 & 0 & 0 \\
-            1 & 0 & 0 & 1   & 0 & 1 & 0 & 0 \\
-            0 & -1 & 0 & 0 & \nicefrac{3}{2} & 0 & 1 & 0 \\
-            2 & 1 & 0 & 3   & -\nicefrac{5}{2} & 0 & 0 & 1
-        \end{sysmatrix}
-    $$
-    $$
-        \sim
-        \begin{sysmatrix}{cccr|cccr}
-            0 & 0 & 1 & 0   & \nicefrac{1}{2} & 0 & 0 & 0 \\
-            1 & 0 & 0 & 1   & 0 & 1 & 0 & 0 \\
-            0 & 1 & 0 & 0 & -\nicefrac{3}{2} & 0 & -1 & 0 \\
-            0 & 1 & 0 & 1   & -\nicefrac{5}{2} & -2 & 0 & 1
-        \end{sysmatrix}
-        \sim
-        \begin{sysmatrix}{cccr|cccr}
-            0 & 0 & 1 & 0   & \nicefrac{1}{2} & 0 & 0 & 0 \\
-            1 & 0 & 0 & 1   & 0 & 1 & 0 & 0 \\
-            0 & 1 & 0 & 0 & -\nicefrac{3}{2} & 0 & -1 & 0 \\
-            0 & 0 & 0 & 1   & -1 & -2 & 1 & 1
-        \end{sysmatrix}
-    $$
-    $$
-        \sim
-        \begin{sysmatrix}{cccr|cccr}
-            0 & 0 & 1 & 0   & \nicefrac{1}{2} & 0 & 0 & 0 \\
-            1 & 0 & 0 & 0   & 1 & 3 & -1 & -1 \\
-            0 & 1 & 0 & 0 & -\nicefrac{3}{2} & 0 & -1 & 0 \\
-            0 & 0 & 0 & 1   & -1 & -2 & 1 & 1
-        \end{sysmatrix}
-        \sim
-        \begin{sysmatrix}{cccr|cccr}
-            1 & 0 & 0 & 0   & 1 & 3 & -1 & -1 \\
-            0 & 1 & 0 & 0 & -\nicefrac{3}{2} & 0 & -1 & 0 \\
-            0 & 0 & 1 & 0   & \nicefrac{1}{2} & 0 & 0 & 0 \\
-            0 & 0 & 0 & 1   & -1 & -2 & 1 & 1
-        \end{sysmatrix}
-    $$
-
-    Damit ist
-    $$
-        \vektor{0 & 0 & 2 & 0 \\ 1 & 0 & 0 & 1 \\ 0 & -1 & -3 & 0 \\ 2 & 1 & 5 & 3}^{-1} = \vektor{1 & 3 & -1 & -1 \\-\nicefrac{3}{2} & 0 & -1 & 0 \\ \nicefrac{1}{2} & 0 & 0 & 0 \\ -1 & -2 & 1 & 1}
-    $$\qed
-\end{example}
-
-\begin{example}{Inverse von verketteten Abbildungen}
-    Ein sehr gutes (aber sperriges) Beispiel zum Finden von Inversen verketteter Abbildungen ist zu finden im \emph{Lineare Algebra Übungsblatt 05} (Aufgabe 6).
-
-    Das Übungsblatt ist erreichbar unter \url{https://fh-aachen.paddel.xyz/#lineare-algebra-2}.
-\end{example}
-
-\subsection{Koordinatentransformationen}
-
-\begin{defi}{Koordinatenabbildung}
-    Sei $V$ ein $K$-Vektorraum mit einer Basis $\mathcal{B} = (b_1, \ldots, b_n)$.
-    Dann existiert genau ein Isomorphismus $\varphi_{\mathcal{B}} : K^n \to V$ mit $\varphi_{\mathcal{B}}(e_i) = v_i$, $1 \leq i \leq n$.
-
-    Der Isomorphismus $\varphi_{\mathcal{B}}$ heißt \emph{Koordinatenabbildung}.
-\end{defi}
-
-\begin{defi}{Koordinaten eines Vektors}
-    Sei $V$ ein $K$-Vektorraum mit einer Basis $\mathcal{B} = (b_1, \ldots, b_n)$.
-    Die Abbildung $K_{\mathcal{B}}(v)$ mit
-    $$
-        K_{\mathcal{B}} : V \to K^n , v = \sum^n_{i=1} \lambda_ib_i \longmapsto \vektor{\lambda_1 \\ \vdots \\ \lambda_n}
-    $$
-    erzeugt die \emph{Koordinaten von v bezüglich der Basis} $\mathcal{B}$.
-
-    Es gilt:
-    \begin{itemize}
-        \item $K_{\mathcal{B}}(v) = \varphi^{-1}_{\mathcal{B}}(v)$
-    \end{itemize}
-\end{defi}
-
-\begin{defi}{Transformationsmatrix}
-    Sei ein Vektorraum $V$ mit den Basen $\mathcal{A} = (a_1, \ldots, a_n)$ und $\mathcal{B} = (b_1, \ldots, b_n)$ gegeben.
-
-    Für einen Vektor $v$ existieren die Darstellungen $K_{\mathcal{A}}(v)$ und $K_{\mathcal{B}}(v)$.
-    Es gilt:
-
-    \begin{center}
-        \begin{tikzpicture}
-            \node (v) {$V$};
-            \node [below left=of v] (k1) {$K^n$};
-            \node [below right=of v] (k2) {$K^n$};
-
-            \draw [->] (k1) -- (v) node [midway, above left] {\small $\varphi_{\mathcal{A}}$};
-            \draw [->] (k2) -- (v) node [midway, above right] {\small $\varphi_{\mathcal{B}}$};
-            \draw [->] (k1) -- (k2) node [midway, below] {\small $T^{\mathcal{A}}_{\mathcal{B}} = \varphi_{\mathcal{B}}^{-1} \circ \varphi_{\mathcal{A}}$};
-        \end{tikzpicture}
-    \end{center}
-
-
-    Die Matrix $T^{\mathcal{A}}_{\mathcal{B}}$ heißt \emph{Transformationsmatrix des Basiswechsels von} $\mathcal{A}$ \emph{nach} $\mathcal{B}$
-
-    Sei $v\in V$ beliebig, $K_{\mathcal{A}}(v) = \vektor{x_1 & \ldots & x_n}^T$ und $K_{\mathcal{B}}(v) = \vektor{y_1 & \ldots & y_n}^T$. Dann gilt:
-    $$
-        \vektor{y_1 \\ \vdots \\ y_n} = T^{\mathcal{A}}_{\mathcal{B}} \vektor{x_1 \\ \vdots \\ x_n}
-    $$
-
-    Sind die Koordinaten von $v$ beqüglich $\mathcal{A}$ bekannt, kann man mithilfe der Matrix $T^{\mathcal{A}}_{\mathcal{B}}$ die Koordinaten von $v$ bezüglich $\mathcal{B}$ berechnen.
-
-    Seien $A$ und $B$ die Matrizen der Basisvektoren von $\mathcal{A}$ bzw. $\mathcal{B}$.
-    Dann gilt:
-
-    \begin{center}
-        \begin{tikzpicture}
-            \node (ka) {$K_{\mathcal{A}}(x)$};
-            \node [right=of ka] (kb) {$K_{\mathcal{B}}(x)$};
-
-            \node [above=of ka] (x1) {$x$};
-            \node [above=of kb] (x2) {$x$};
-
-
-            \draw [->] (x1) -- (x2) node [midway, above] {\small $E$};
-            \draw [->] (ka) -- (x1) node [midway, left] {\small $A$};
-            \draw [->] (kb) -- (x2) node [midway, right] {\small $B$};
-            \draw [->] (ka) -- (kb) node [midway, below] {\small $T^{\mathcal{A}}_{\mathcal{B}}$};
-        \end{tikzpicture}
-    \end{center}
-
-    Man erkennt:
-    $$
-        T^{\mathcal{A}}_{\mathcal{B}} = B^{-1}A
-    $$
-\end{defi}
-
-\begin{example}{Transformationsmatrizen}
-    $\mathcal{A}  = (e_1, e_2, e_3)$, $\mathcal{A}' = (a'_1, a'_2, a'_3)$ und $\mathcal{A}'' = (a''_1, a''_2, a''_3)$ bilden mit den kanonischen Einheitsvektoren $e_1, e_2, e_3$ sowie
-    $$
-        a'_1 = \vektor{1\\0\\0}, a'_2 = \vektor{1\\1\\0}, a'_3 = \vektor{1\\1\\1}
-        \quad \text{bzw.} \quad
-        a''_1 = \vektor{1\\-1\\0}, a''_2 = \vektor{-1\\0\\1}, a''_3 = \vektor{0\\1\\1}
-    $$
-    jeweils Basen des $\R^3$.
-
-    Bestimmen Sie:
-    \begin{enumerate}[a)]
-        \item die Transformationsmatrizen $T^{\mathcal{A}'}_{\mathcal{A}}$ sowie $T^{\mathcal{A}}_{\mathcal{A}'}$.
-        \item die Transformationsmatrizen $T^{\mathcal{A}''}_{\mathcal{A}}$ sowie $T^{\mathcal{A}}_{\mathcal{A}''}$.
-        \item die Transformationsmatrizen $T^{\mathcal{A}'}_{\mathcal{A}''}$ sowie $T^{\mathcal{A}''}_{\mathcal{A}'}$.
-        \item die Koordinaten des Vektors $\vektor{1 & 0 & 1}^T$ bzgl. der Basen $\mathcal{A}'$ und $\mathcal{A}''$.
-    \end{enumerate}
-
-    \exampleseparator
-
-    \begin{enumerate}[a)]
-        \item Berechnen von $\mathcal{A}'^{-1}$:
-              $$
-                  \begin{sysmatrix}{rrr|rrr}
-                      1 & 1 & 1 & 1 & 0 & 0 \\
-                      0 & 1 & 1 & 0 & 1 & 0 \\
-                      0 & 0 & 1 & 0 & 0 & 1
-                  \end{sysmatrix}
-                  \sim
-                  \begin{sysmatrix}{rrr|rrr}
-                      1 & 1 & 0 & 1 & 0 & -1 \\
-                      0 & 1 & 0 & 0 & 1 & -1 \\
-                      0 & 0 & 1 & 0 & 0 & 1
-                  \end{sysmatrix}
-                  \sim
-                  \begin{sysmatrix}{rrr|rrr}
-                      1 & 0 & 0 & 1 & -1 & 0 \\
-                      0 & 1 & 0 & 0 & 1 & -1 \\
-                      0 & 0 & 1 & 0 & 0 & 1
-                  \end{sysmatrix}
-              $$
-
-              Damit gilt:
-              $$
-                  T^{\mathcal{A}'}_{\mathcal{A}} = \mathcal{A}^{-1}\mathcal{A}' = \vektor{1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1} \vektor{1 & 1 & 1 \\ 0 & 1 & 1 \\ 0 & 0 & 1} = \vektor{1 & 1 & 1 \\ 0 & 1 & 1 \\ 0 & 0 & 1}
-              $$
-              und
-              $$
-                  T^{\mathcal{A}}_{\mathcal{A}'} = \mathcal{A}'^{-1}\mathcal{A} = \vektor{1 & -1 & 0 \\ 0 & 1 & -1 \\ 0 & 0 & 1} \vektor{1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1} = \vektor{1 & -1 & 0 \\ 0 & 1 & -1 \\ 0 & 0 & 1}.
-              $$\qed
-        \item Berechnen von $\mathcal{A}''^{-1}$:
-              $$
-                  \begin{sysmatrix}{rrr|rrr}
-                      1 & -1 & 0 & 1 & 0 & 0 \\
-                      -1 & 0 & 1 & 0 & 1 & 0 \\
-                      0 & 1 & 1 & 0 & 0 & 1
-                  \end{sysmatrix}
-                  \sim
-                  \ldots
-                  \sim
-                  \begin{sysmatrix}{rrr|rrr}
-                      1 & 0 & 0 & \nicefrac{1}{2} & -\nicefrac{1}{2} & \nicefrac{1}{2} \\
-                      0 & 1 & 0 & -\nicefrac{1}{2} & -\nicefrac{1}{2} & \nicefrac{1}{2}\\
-                      0 & 0 & 1 & \nicefrac{1}{2} & \nicefrac{1}{2} & \nicefrac{1}{2}
-                  \end{sysmatrix}
-                  =
-                  \frac{1}{2}\vektor{1 & -1 & 1 \\ -1 & -1 & 1 \\ 1 & 1 & 1}
-              $$
-              Damit gilt:
-              $$
-                  T^{\mathcal{A}''}_{\mathcal{A}} = \mathcal{A}^{-1}\mathcal{A}'' = \vektor{1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1} \vektor{1 & -1 & 0 \\ -1 & 0 & 1 \\ 0 & 1 & 1} = \vektor{1 & -1 & 0 \\ -1 & 0 & 1 \\ 0 & 1 & 1}
-              $$
-              und
-              $$
-                  T^{\mathcal{A}}_{\mathcal{A}''} = \mathcal{A}''^{-1}\mathcal{A} = \frac{1}{2}\vektor{1 & -1 & 1 \\ -1 & -1 & 1 \\ 1 & 1 & 1} \vektor{1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1} = \frac{1}{2}\vektor{1 & -1 & 1 \\ -1 & -1 & 1 \\ 1 & 1 & 1}.
-              $$\qed
-    \end{enumerate}
-
-\end{example}
-
-\begin{example}{Transformationsmatrizen (Fortsetzung)}
-    \begin{enumerate}[a)]
-        \setcounter{enumi}{2}
-        \item Mit den bisherigen Ergebnissen gilt:
-              $$
-                  T^{\mathcal{A}'}_{\mathcal{A}''} = \mathcal{A}''^{-1}\mathcal{A}' = \frac{1}{2}\vektor{1 & -1 & 1 \\ -1 & -1 & 1 \\ 1 & 1 & 1} \vektor{1 & 1 & 1 \\ 0 & 1 & 1 \\ 0 & 0 & 1} = \frac{1}{2}\vektor{1 & 0 & 1 \\ -1 & -2 & -1 \\ 1 & 2 & 3}
-              $$
-              und
-              $$
-                  T^{\mathcal{A}''}_{\mathcal{A}'} = \mathcal{A}'^{-1}\mathcal{A}'' = \vektor{1 & -1 & 0 \\ 0 & 1 & -1 \\ 0 & 0 & 1} \vektor{1 & -1 & 0 \\ -1 & 0 & 1 \\ 0 & 1 & 1} = \vektor{2 & -1 & -1 \\ -1 & -1 & 0 \\ 0 & 1 & 1}.
-              $$\qed
-        \item Sei $x = \vektor{1 & 0 & 1}^T$.
-
-              Dann gilt für $x$ bzgl. $\mathcal{A}'$:
-              $$
-                  x = K_{\mathcal{A}'}(x) = T^{\mathcal{A}}_{\mathcal{A}'} \cdot K_{\mathcal{A}}(x) = \vektor{1 & -1 & 0 \\ 0 & 1 & -1 \\ 0 & 0 & 1} \vektor{1 \\ 0 \\ 1} = \vektor{1 \\ -1 \\ 1},
-              $$
-              bzw. bzgl. $\mathcal{A}''$:
-              $$
-                  x = K_{\mathcal{A}''}(x) = T^{\mathcal{A}}_{\mathcal{A}''} \cdot K_{\mathcal{A}}(x) = \frac{1}{2}\vektor{1 & -1 & 1 \\ -1 & -1 & 1 \\ 1 & 1 & 1} \vektor{1 \\ 0 \\ 1} = \vektor{1 \\ 0 \\ 1}.
-              $$\qed
-    \end{enumerate}
-\end{example}
-
-\begin{defi}{Darstellungsmatrix mit Basistransformation}
-    Seien $V$ und $W$ endlich erzeugt mit Basen $\mathcal{A}$ und $\mathcal{A}'$ bzw. $\mathcal{B}$ und $\mathcal{B}'$.
-    Sei weiter $f : V \to W$ linear.
-    Dann gilt:
-    $$
-        M^{\mathcal{A}'}_{\mathcal{\mathcal{B}'}}(f) = T^{\mathcal{B}}_{\mathcal{B}'} \cdot M^{\mathcal{A}}_{\mathcal{\mathcal{B}}}(f) \cdot T^{\mathcal{A}'}_{\mathcal{A}}
-    $$
-
-    Zur Visualisierung dient folgendes kommutative Diagramm:
-    \begin{center}
-        \begin{tikzpicture}
-            \node (kn1) {$K^n$};
-            \node [above right=of kn1] (v) {$V$};
-            \node [above left=of v] (kn2) {$K^n$};
-            \node [right=of v] (w) {$W$};
-            \node [above right=of w] (km2) {$K^m$};
-            \node [below right=of w] (km1) {$K^m$};
-
-            \draw [->] (kn1) -- (v) node [midway, above left] {\small $\varphi_{\mathcal{A}'}$};
-            \draw [->] (kn2) -- (v) node [midway, above right] {\small $\varphi_{\mathcal{A}}$};
-            \draw [->] (km1) -- (w) node [midway, above right] {\small $\varphi_{\mathcal{B}'}$};
-            \draw [->] (km2) -- (w) node [midway, above left] {\small $\varphi_{\mathcal{B}}$};
-
-            \draw [->] (v) -- (w) node [midway, above] {\small $f$};
-
-            \draw [->] (kn2) -- (km2) node [midway, above] {\small $M^{\mathcal{A}}_{\mathcal{B}} (f)$};
-            \draw [->] (kn1) -- (km1) node [midway, below] {\small $M^{\mathcal{A}'}_{\mathcal{B}'} (f)$};
-
-            \draw [->] (kn2) -- (kn1) node [midway, left] {\small $T^{\mathcal{A}}_{\mathcal{A}'}$};
-            \draw [->] (km2) -- (km1) node [midway, right] {\small $T^{\mathcal{B}}_{\mathcal{B}'}$};
-        \end{tikzpicture}
-    \end{center}
-\end{defi}
-
-\section{Determinanten}
-
-\begin{defi}{Elementarmatrix}
-    Seien $1\leq i$, $j \leq n$ mit $i \neq j$ und $\lambda \in K \setminus \{0\}$ gegeben.
-    Dann sei
-    $$
-        C1 := \vektor{1 & & & & \\ & \ddots & & & \\ & \lambda & \ddots & & \\ & & & \ddots & & \\ & & & & \ddots & \\ & & & & & 1} \in K^{n \times n}
-    $$
-    wobei der $(i, j)$-te Eintrag den Wert $\lambda$ annehmen soll und alle anderen Einträge außerhalb der Hauptdiagonalen $0$ sein sollen.
-
-    Sei $C2$ die Matrix, die man aus der Einheitsmatrix gewinnt, indem man die $i$-te und $j$-te Spalte vertauscht, also
-    $$
-        C2 := \vektor{1 & & & & \\ & \ddots & & & \\ &  & 0 & &1 \\ & & & \ddots & & \\ & & 1 & & 0 & \\ & & & & & 1} \in K^{n \times n}
-    $$
-
-    Zuletzt definieren wir
-    $$
-        C3 := \vektor{1 & & & & \\ & \ddots & & & \\ &  & \lambda & & \\ & & & \ddots & & \\ & & & & \ddots & \\ & & & & & 1} \in K^{n \times n}
-    $$
-
-    Matrizen der Gestalt $C1$, $C2$ oder $C3$ nennt man \emph{Elementarmatrizen}.
-
-    Es gilt:
-    \begin{itemize}
-        \item Die Multiplikation einer Matrix $A$ von links mit einer Elementarmatrix entspricht der Anwendung einer elementaren Zeilenoperation des Gauß-Verfahrens auf $A$.
-              \subitem Notation: $Zi$ statt $Ci$
-        \item Die Multiplikation einer Matrix $A$ von rechts mit einer Elementarmatrix entspricht der Anwendung einer elementaren Spaltenoperation auf $A$.
-              \subitem Notation: $Si$ statt $Ci$
-    \end{itemize}
-
-    \begin{itemize}
-        \item $C1$ entspricht dem Addieren von $\lambda$-mal Spalte bzw. Zeile $j$ auf Spalte bzw. Zeile $i$.
-        \item $C2$ entspricht dem Tauschen von Spalte bzw. Zeile $i$ mit Spalte bzw. Zeile $j$.
-        \item $C3$ entspricht dem Multiplizieren von Spalte bzw. Zeile $i$ mit $\lambda$.
-    \end{itemize}
-\end{defi}
-
-\begin{example}{Elementarmatrizen}
-    Sei
-    $$
-        A = \vektor{1 & 0 \\ -5 & 2}
-    $$
-    Bestimmen Sie Elementarmatrizen $M_1$ und $M_2$ mit $M_1M_2A = E$.
-
-    \exampleseparator
-
-    Es gilt:
-    $$
-        \begin{sysmatrix}{cc|cc}
-            1 & 0 & 1 & 0 \\
-            -5 & 2 & 0 & 1
-        \end{sysmatrix}
-        \sim
-        \begin{sysmatrix}{cc|cc}
-            1 & 0 & 1 & 0 \\
-            0 & 2 & 5 & 1
-        \end{sysmatrix}
-        \sim
-        \begin{sysmatrix}{cc|cc}
-            1 & 0 & 1 & 0 \\
-            0 & 1 & \frac{5}{2} & \frac{1}{2}
-        \end{sysmatrix}
-    $$
-    Damit gilt:
-    $$
-        A^{-1} = \vektor{1 & 0 \\ \frac{5}{2} & \frac{1}{2}} =\footnote{Das wird aus dem Kontext ersichtlich: Für $A^{-1}$ wird zuerst fünfmal \Rnum{1} auf \Rnum{2} addiert und anschließend wird \Rnum{2} mit $\frac{1}{2}$ skaliert.} \vektor{1 & 0 \\ 0 & \frac{1}{2}} \cdot \vektor{1 & 0 \\ 5 & 1}
-    $$
-    und schlussendlich:
-    $$
-        A^{-1} \cdot A = \vektor{1 & 0 \\ 0 & \frac{1}{2}} \cdot \vektor{1 & 0 \\ 5 & 1} \cdot A = M_1 M_2  A
-    $$\qed
-\end{example}
-
-\begin{defi}{Eigenschaften der Determinante}
-    Für $A, B \in K^{n\times n}$ gilt:
-    \begin{itemize}
-        \item $S1$ und $Z1$ ändern die Determinante einer Matrix nicht. ($\det(C1) = 1$)
-        \item $S2$ und $Z2$ kehren das Vorzeichen der Determinante um. ($\det(C2) = -1$)
-        \item $S3$ und $Z3$ vervielfachen den Wert der Determinante um den Faktor $\lambda$. ($\det(C3) = \lambda$)
-    \end{itemize}
-
-    \begin{itemize}
-        \item $\det(A) = \det(A^T)$
-        \item Besitzt $A$ zwei gleiche Spalten bzw. Zeilen, so gilt $\det(A) = 0$.
-        \item $A$ invertierbar $\iff \det(A) \neq 0$
-        \item $\det(AB) = \det(A)\det(B)$
-        \item $A$ invertierbar $\implies \det(A^{-1}) = (\det(A))^{-1}$
-    \end{itemize}
-\end{defi}
-
-\subsection{Verfahren zur Berechnung der Determinante}
-
-\begin{defi}{Laplacescher Entwicklungssatz}
-    Für $A \in K^{n\times n}$ bezeichne $A_{ij}$ die Matrix in $K^{(n-1)\times (n-1)}$, die durch Streichen der $i$-ten Zeile und der $j$-ten Spalte aus $A$ hervorgeht.
-
-    Es sei $A = (a_{ij}) \in K^{n\times n}$ und $j$ mit $1 \leq j \leq n$.
-    Dann gilt:
-    $$
-        \det(A) = \sum^n_{i=1} (-1)^{i+j} a_{ij}\det(A_{ij})
-    $$
-    Man spricht von der \emph{Entwicklung der Determinante nach der j-ten Spalte}.
-    Ebenso ist eine \emph{Entwicklung der Determinante nach der i-ten Zeile} möglich:
-    $$
-        \det(A) = \sum^n_{j=1} (-1)^{i+j} a_{ij}\det(A_{ij})
-    $$
-\end{defi}
-
-\begin{defi}{Determinante mit Gauß-Algorithmus}
-    Zur Berechnung mit dem Gauß-Algorithmus bringt man die gegebene Matrix $A$ mittels äquivalenter Zeilen- oder Spaltenumformungen $Z1$-$Z3$ bzw. $S1$-$S3$ auf Stufenform $B$ und errechnet dann nach Folgerung $\det(A)$ leicht als Produkt der Hauptdiagonalelelemente von $B$, multipliziert mit den Determinanten der genutzten Elementarmatrizen.
-\end{defi}
-
-\begin{example}{Determinante mit Gauß-Algorithmus}
-    Berechnen Sie die Determinante von $A = \vektor{4 & 5 & 6 \\ 2 & -2 & -1 \\ 0 & 1 & -3}$ mit Hilfe des Gauß-Algorithmus.
-
-    \exampleseparator
-
-    $$
-        \vektor{4 & 5 & 6 \\ 2 & -2 & -1 \\ 0 & 1 & -3}
-        \underset{}{\xrightarrow{\text{\Rnum{2}: \Rnum{2} + 2 \Rnum{3}}}}
-        \vektor{4 & 5 & 6 \\ 2 & 0 & -7 \\ 0 & 1 & -3}
-        \underset{}{\xrightarrow{\text{\Rnum{1}: \Rnum{1} - 5 \Rnum{3}}}}
-        \vektor{4 & 0 & 21 \\ 2 & 0 & -7 \\ 0 & 1 & -3}
-        \underset{}{\xrightarrow{\text{\Rnum{1}: \Rnum{1} - 2 \Rnum{2}}}}
-        \vektor{0 & 0 & 35 \\ 2 & 0 & -7 \\ 0 & 1 & -3}
-    $$
-    $$
-        \vektor{0 & 0 & 35 \\ 2 & 0 & -7 \\ 0 & 1 & -3}
-        \underset{\nicefrac{1}{35} \cdot \det(A)}{\xrightarrow{\text{\Rnum{1}: \Rnum{1} - 2 \Rnum{2}}}}
-        \vektor{0 & 0 & 1 \\ 2 & 0 & -7 \\ 0 & 1 & -3}
-        \underset{}{\xrightarrow{\text{(\Rnum{2}: \Rnum{2} + 7 \Rnum{1})} \ \circ \ \text{(\Rnum{3}: \Rnum{3} + 3 \Rnum{1})}}}
-        \vektor{0 & 0 & 1 \\ 2 & 0 & 0 \\ 0 & 1 & 0}
-    $$
-    $$
-        \vektor{0 & 0 & 1 \\ 2 & 0 & 0 \\ 0 & 1 & 0}
-        \underset{(-1)\cdot(-1)\cdot \det A}{\xrightarrow{\text{(\Rnum{1}$\,\leftrightarrow\,$\Rnum{3})} \ \circ \ \text{(\Rnum{1}$\,\leftrightarrow\,$\Rnum{2})}}}
-        \vektor{2 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1}
-    $$
-    Damit gilt:
-    $$
-        \det A = (-1) \cdot (-1) \cdot 35 \cdot \dvektor{2 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1} = 35 \cdot 2 = 70
-    $$\qed
-\end{example}
-
-\begin{bonus}{Tipps zur Determinantenberechnung}
-    \begin{enumerate}
-        \item Für $(2\times 2)$- und $(3\times 3)$-Matrizen empfiehlt sich die Sarrus-Regel.\footnote{Siehe Lineare Algebra 1}
-        \item Die Laplace-Entwicklung ist dann vorzuziehen, wenn in einer Spalte oder Zeile nur wenige Nicht-Null-Einträge vorhanden sind, weil bei einer Entwicklung nach dieser Zeile bzw. Spalte die meisten Summanden erst gar nicht berechnet werden müssen.
-        \item Es können zur Berechnung der Determinanten mehrere Verfahren kombiniert werden, z.B. $(4\times 4)$-Matrizen zuerst nach Laplace entwickeln und die dann entstehenden Determinanten von $(3\times 3)$-Matrizen direkt mit der Sarrus-Regel berechnen.
-    \end{enumerate}
-\end{bonus}
-
-\begin{bonus}{Inverse einer $(2\times 2)$-Matrix}
-    Sei $A$ definiert als $A = \vektor{a & b \\ c & d}$. Dann gilt:
-    $$
-        A^{-1} = \frac{1}{\det(A)} \vektor{d & -b \\ -c & a} = \frac{1}{ad - bc} \vektor{d & -b \\ -c & a}
-    $$
-\end{bonus}
-
-\section{Lineare Gleichungssysteme}
-
-\subsection{Lösbarkeit eines linearen Gleichungssystems}
-
-\begin{defi}{Lineares Gleichungssystem}
-    Seien $A = (a_{ij}) \in K^{m\times n}$ und $b = \vektor{b_1 & \ldots & b_m}^T$.
-    Dann heißt
-    $$
-        \begin{aligned}
-             & a_{11}x_1 &  & + \ \ldots \ + &  & a_{1n}x_n &  & = &  & b_1 \\
-             & \ldots                                                       \\
-             & a_{m1}x_1 &  & + \ \ldots \ + &  & a_{mn}x_n &  & = &  & b_m
-        \end{aligned}
-    $$
-    \emph{lineares Gleichungssystem} bzgl. $(x_1, \ldots, x_n)$ mit Koeffizienten $a_{ij}$ in $K$.
-    Hierbei sind $x_1, \ldots, x_n$ die \emph{Unbekannten} des Systems.
-
-    Für $b = 0_{m1}$ nennt man das lineare Gleichungssystem \emph{homogen}, sonst \emph{inhomogen}.
-
-    Jedes lineare Gleichungssystem kann in der Form $Ax = b$ geschrieben werden.
-\end{defi}
-
-\begin{defi}{Lösungsmenge}
-    Die \emph{Lösungsmenge} $L(A, b)$ des zu $(A, b)$ gehörigen Gleichungssystems ist festgelegt durch
-    $$
-        L(A, b) := \{x \in K^n \mid Ax = b\}
-    $$
-\end{defi}
-
-\begin{defi}{Spaltenrang}
-    Die lineare Abbildung $L_A : K^n \to K^m$ sei gegeben durch $L_A(x) := Ax$. Dann sei $\rg(A) := \rg(L_A)$.
-    Der \emph{Spaltenrang} $\rg_S(A)$ sei die maximale Anzahl linear unabhängiger Spaltenvektoren von $A$.
-
-    Es gilt $\rg(A) = \rg_S(A)$.
-\end{defi}
-
-\begin{defi}{Zeilenrang}
-    Für $A \in K^{m\times n}$ sei die maximale Anzahl linear unabhängiger Zeilenvektoren von $A$ der \emph{Zeilenrang} $\rg_Z(A)$ von $A$.
-
-    Es gilt:
-    $$
-        \rg(A) = \rg_S(A) = \rg_Z(A)
-    $$
-\end{defi}
-
-\begin{defi}{Lösbarkeit von linearen Gleichungssystemen}
-    Das lineare Gleichungssystem $Ax = b$ ist genau dann lösbar, wenn gilt:
-    $$
-        \rg(a_1, \ldots, a_n) = \rg(a_1, \ldots, a_n, b)
-    $$
-    Kürzer schreibt man $\rg(A) = \rg(A, b)$.
-
-    $Ax = b$ ist also genau dann eindeutig lösbar, falls $\ker(A) = \{0\} \iff \rg(A) = \rg(A, b) = n$.
-\end{defi}
-
-\begin{bonus}{Äquivalente Bedingungen für eindeutige Lösbarkeit}
-    Sei $K \in \{\R, \C\}$.
-    Für $A \in K^{n\times n}$ und die dadurch gegebene lineare Abbildung $L_A$ sind folgende Bedingungen äquivalent:
-    \begin{enumerate}
-        \item $A$ ist invertierbar.
-        \item $Ax = 0$ hat nur die triviale Lösung $x=0$.
-        \item Durch Zeilen- und Spaltenumformungen kann $A$ auf die Einheitsmatrix transformiert werden.
-        \item $A$ ist darstellbar als Produkt von Elementarmatrizen.
-        \item $Ax = b$ besitzt für jedes $b \in K^n$ mindestens eine Lösung.
-        \item $Ax = b$ hat genau eine Lösung für jedes $b \in K^n$.
-        \item $\det(A) \neq 0$
-        \item $\im(A) = K^n$
-        \item $L_A$ ist bijektiv.
-        \item Die Spaltenvektoren von $A$ sind linear unabhängig.
-        \item Die Zeilenvektoren von $A$ sind linear unabhängig.
-        \item Die Spaltenvektoren von $A$ bilden eine Basis von $K^n$.
-        \item Die Zeilenvektoren von $A$ bilden eine Basis von $K^n$.
-        \item $\rg(A)=n$
-        \item $\ker(L_A) = \{0\}$
-        \item $(\ker(L_A))^\perp = K^n$
-        \item Das orthogonale Komplement des von den Zeilen von $A$ aufgespannten Raums ist $\{0\}$.
-        \item $A^TA$ ist invertierbar.
-    \end{enumerate}
-\end{bonus}
-
-\begin{defi}{Allgemeine Lösung eines linearen Gleichungssystems}
-    Sei $x_s \in K^n$ eine (spezielle) Lösung von $Ax = b$.
-    Dann gilt:
-    $$
-        L(A, b) = x_s + \ker(A) = \{x_s + x \mid x \in \ker(A)\}
-    $$
-    bzw., wenn $(v_1, \ldots, v_r)$ eine Basis von $\ker(A)$ ist:
-    $$
-        L(A, b) = \{x + \lambda_1 v_1 + \ldots + \lambda_rv_r \mid \lambda_i \in K\}
-    $$
-\end{defi}
-
-\begin{example}{Allgemeine Lösung eines linearen Gleichungssystems}
-    Finden Sie die Lösung des linearen Gleichungssystems
-    $$
-        \vektor{-1 & 1 & 0 \\ 0 & 1 & 1}x = \vektor{0 \\ 2}
-    $$
-    mit Hilfe folgender Schritte:
-    \begin{enumerate}[a)]
-        \item Bestimmen Sie den Kern der Abbildungsmatrix.
-        \item Erraten Sie eine spezielle Lösung.
-        \item Bestimmen Sie die allgemeine Lösung.
-    \end{enumerate}
-
-    \exampleseparator
-
-    \begin{enumerate}[a)]
-        \item $$
-                  \begin{sysmatrix}{rrr|r}
-                      -1 & 1 & 0 & 0 \\
-                      0 & 1 & 1 & 0
-                  \end{sysmatrix}
-                  \quad \implies \quad
-                  \ker \vektor{-1 & 1 & 0 \\ 0 & 1 & 1} = \scalarprod{\vektor{1 \\ 1 \\ -1}}
-              $$\qed
-        \item $$
-                  x = \vektor{0\\0\\2} \quad \implies \quad \vektor{-1 & 1 & 0 \\ 0 & 1 & 1}\cdot \vektor{0\\0\\2} = \vektor{0 \\ 2}
-              $$\qed
-        \item Es gilt:
-              $$
-                  L \left({\vektor{-1 & 1 & 0 \\ 0 & 1 & 1}, \vektor{0 \\ 2}} \right) = \vektor{0\\0\\2} + \ker\vektor{-1 & 1 & 0 \\ 0 & 1 & 1} = \vektor{0\\0\\2} + \lambda \cdot \vektor{1 \\ 1 \\ -1}, \quad \lambda \in \R
-              $$\qed
-    \end{enumerate}
-\end{example}
-
-\begin{defi}{Cramersche Regel}
-    Es seien $A = \vektor{a_1 & \ldots & a_n} \in K^{n\times n}$ und $x, b \in K^n$ sowie $Ax=b$ ein lineares Gleichungssystem, und es gelte $\det(A) \neq 0$.
-    Seien
-    $$
-        A_i := \vektor{a_1 & \ldots & a_{i-1} & b & a_{i+1} & \ldots & a_n}, 1 \leq i \leq n
-    $$
-    Dann gilt:
-    $$
-        x_i = \frac{\det(A_i)}{\det(A)}
-    $$
-\end{defi}
-
-\begin{example}{Cramersche Regel}
-    In der Elektrotechnik ergeben sich eine Widerstandsmatrix $R$ und ein Quellspannungsvektor $U$:
-    $$
-        R = \vektor{1 & 3 & 0 \\ 1 & 4 & 1 \\ 2 & 1 & 1}, \quad U = \vektor{5 \\ 9 \\ 8}.
-    $$
-    Gesucht ist der Stromvektor $I$, der sich durch Lösen des linearen Gleichungssystems
-    $$
-        R \cdot I = U
-    $$
-    ergibt.
-    Bestimmen Sie die Lösung mithilfe der Cramerschen Regel.
-
-    \exampleseparator
-
-    Es gilt:
-    $$
-        \vektor{1 & 3 & 0 \\ 1 & 4 & 1 \\ 2 & 1 & 1}  \vektor{i_1 \\ i_2 \\ i_3} = \vektor{5 \\ 9 \\ 8}
-    $$
-
-    Nach der Cramerschen Regel gilt:\footnote{$\abs{R} = -1 \cdot (1-6) + 1 \cdot (4-3) = 6$}
-    $$
-        i_1 = \frac{\dvektor{5 & 3 & 0 \\ 9 & 4 & 1 \\ 8 & 1 & 1}}{\abs{R}} = \frac{-1 \cdot (5-24) + 1 \cdot (20-27)}{6} = \frac{12}{6} = 2
-    $$
-    $$
-        i_2 = \frac{\dvektor{1 & 5 & 0 \\ 1 & 9 & 1 \\ 2 & 8 & 1}}{\abs{R}} = \frac{-1 \cdot (8-10) + 1 \cdot (9-5)}{6} = \frac{6}{6} = 1
-    $$
-    $$
-        i_3 = \frac{\dvektor{1 & 3 & 5 \\ 1 & 4 & 9 \\ 2 & 1 & 8}}{\abs{R}} = \frac{32+54+5-40-9-24}{6} = \frac{18}{6} = 3
-    $$
-
-    Damit ist der Stromvektor $I$ gegeben mit $I = \vektor{2 & 1 & 3}^T$.\qed
-\end{example}
-
-\subsection{Über- und unterbestimmte lineare Gleichungssysteme}
-
-\begin{defi}{Normalgleichung}
-    Sei $p_A(b)$ die Projektion eines Vektors $b \in \R^m$ auf den von den Vektoren $A = \vektor{a_1 & \ldots & a_n} \in \R^{m\times n}$ aufgespannten Unterraum $U$, also das Bild von $A$.
-
-    Damit existiert ein $x \in \R^n$ mit
-    $$
-        p_A(b) = \sum^n_{k=1} x_ka_k = Ax
-    $$
-    Dann gilt
-    $$
-        b - p_A(b) \iff \ldots \iff A^TAx = A^Tb
-    $$
-
-    Die Gleichungen $A^TAx = A^Tb$ heißen \emph{Normalgleichungen}.
-
-    Die Normalgleichungen sind für jede relle Matrix $A \in \R^{m\times n}$ lösbar.
-
-\end{defi}
-
-\begin{defi}{Verallgemeinerte Inverse}
-    Gegeben ist ein lineares Gleichungssystem $Ax=b$ mit $A \in \R^{m\times n}$, $x \in \R^n$, $b \in \R^m$.
-
-    Im Fall $\rg(A) = n$ (voller Spaltenrang) existiert mit
-    $$
-        x = (A^TA)^{-1}A^Tb
-    $$
-    eine eindeutige Lösung.
-    In diesem Fall heißt $(A^TA)^{-1}A^T$ \emph{verallgemeinerte Inverse} von $A$.
-
-    Im Fall $\rg(A) = m$ (voller Zeilenrang) existiert mit
-    $$
-        x = A^T(AA^T)^{-1}b
-    $$
-    eine eindeutige Lösung.
-    In diesem Fall heißt $A^T(AA^T)^{-1}$ \emph{verallgemeinerte Inverse} von $A$.
-\end{defi}
-
-\begin{algo}{Lösen von überbestimmten Gleichungssystemen (Methode der kleinsten Quadrate)}
-    Gegeben ist das \emph{überbestimmte} Gleichungssystem
-    $$
-        Ax = b, \quad A \in \R^{m\times n}, \, b\in \R^m, \, m \geq n
-    $$
-    Im Fall $\rg(A) = n$ (voller Spaltenrang) gilt mithilfe der verallgemeinerten Inverse für
-    $$
-        x_s = (A^TA)^{-1}A^Tb
-    $$
-    dass
-    $$
-        \norm{b-Ax_s} = \min_{z\in\R^n} \norm{b-Az}
-    $$
-
-    Der Vektor $x_s$ heißt \emph{Näherungslösung nach der Methode der kleinsten Quadrate}.
-\end{algo}
-
-\begin{example}{Methode der kleinsten Quadrate}
-    Eine Messreihe ergibt zu den Zeiten $t = 1,2,3,4,5$ in Sekunden folgende Temperaturwerte:
-
-    \begin{center}
-        \begin{tabular}{l | CCCCC}
-            $t$ Sekunden        & 1   & 2   & 3    & 4    & 5    \\
-            \hline
-            $y(t)\si{\celsius}$ & 0.9 & 5.8 & 11.4 & 12.1 & 12.9 \\
-        \end{tabular}
-    \end{center}
-
-    Stellen Sie das überbestimmte Gleichungssystem für die unbekannten Parameter $a$ und $b$ auf und bestimmen Sie diese nach der Methode der kleinsten Quadrate, wenn folgende Beziehung zwischen $y$ und $t$ gilt:
-    $$
-        y(t) = a \cdot t + b \cdot \sin\left( -t \cdot \frac{\pi}{2} \right)
-    $$
-    \exampleseparator
-
-    \begin{center}
-        \begin{tikzpicture}[scale=1]
-            \begin{axis}[
-                    %view={45}{15},
-                    width=15cm,
-                    unit vector ratio*=1 1,
-                    axis lines = middle,
-                    grid=major,
-                    ymin=-.5,
-                    ymax=14,
-                    xmin=0,
-                    xmax=7,
-                    %zmin=-1,
-                    %zmax=10,
-                    xlabel = $x$,
-                    ylabel = $y$,
-                    %zlabel = $z$,
-                    %xtick style={draw=none},
-                    %ytick style={draw=none},
-                    %ztick style={draw=none},
-                    xtick distance={1},
-                    ytick distance={1},
-                    %ztick distance={1},
-                    %xticklabels=\empty,
-                    %yticklabels=\empty,
-                    %zticklabels=\empty,
-                    disabledatascaling,
-                ]
-
-                \addplot[domain=0:6, samples=100, color=red]{3.02308 * x - 2.22308 * sin(deg(x * pi/2))};
-
-                \node[label={315:{(1,0.9)}},circle,fill,inner sep=1pt] at (axis cs:1,0.9) {};
-                \node[label={135:{(2,5.8)}},circle,fill,inner sep=1pt] at (axis cs:2,5.8) {};
-                \node[label={135:{(3,11.4)}},circle,fill,inner sep=1pt] at (axis cs:3,11.4) {};
-                \node[label={135:{(4,12.1)}},circle,fill,inner sep=1pt] at (axis cs:4,12.1) {};
-                \node[label={315:{(5,12.9)}},circle,fill,inner sep=1pt] at (axis cs:5,12.9) {};
-            \end{axis}
-        \end{tikzpicture}
-    \end{center}
-\end{example}
-
-\begin{example}{Methode der kleinsten Quadrate (Fortsetzung)}
-    Mit den gegebenen Daten erhalten wir folgendes LGS:
-    $$
-        Ax = b \quad \iff \quad \vektor{1 & -\sin \frac{\pi}{2} \\ 2 & -\sin \pi \\ 3 & -\sin \frac{3\pi}{2} \\ 4 & -\sin 2 \pi \\ 5 & -\sin \frac{5\pi}{2}}\vektor{a \\ b} = \vektor{0.9 \\ 5.8 \\ 11.4 \\ 12.1 \\ 12.9} \quad \iff \quad \vektor{1 & -1 \\ 2 & 0 \\ 3 & 1 \\ 4 & 0 \\ 5 & -1}\vektor{a \\ b} = \vektor{0.9 \\ 5.8 \\ 11.4 \\ 12.1 \\ 12.9}
-    $$
-    mit
-    $$
-        \rg(A) = 2 = n \quad \implies \quad A^TAx = A^Tb \quad \iff \quad x = \left(A^T A\right)^{-1} A^T b
-    $$
-    Dann gilt nach der Methode der kleinsten Quadrate:
-    $$
-        \begin{aligned}
-            x_s \quad = \quad & \left(A^T A\right)^{-1} A^T b                     \\
-            = \quad           & \left(\vektor{1               & 2  & 3  & 4  & 5  \\ -1 & 0 & 1 & 0 & -1} \vektor{1 & -1 \\ 2 & 0 \\ 3 & 1 \\ 4 & 0 \\ 5 & -1}\right)^{-1} \vektor{1 & 2 & 3 & 4 & 5 \\ -1 & 0 & 1 & 0 & -1} \vektor{0.9 \\ 5.8 \\ 11.4 \\ 12.1 \\ 12.9} \\
-            = \quad           & \vektor{55                    & -3                \\ -3 & 3}^{-1} \vektor{1 & 2 & 3 & 4 & 5 \\ -1 & 0 & 1 & 0 & -1} \vektor{0.9 \\ 5.8 \\ 11.4 \\ 12.1 \\ 12.9} \\
-            = \quad           & \frac{1}{156}\vektor{3        & 3                 \\ 3 & 55} \vektor{1 & 2 & 3 & 4 & 5 \\ -1 & 0 & 1 & 0 & -1} \vektor{0.9 \\ 5.8 \\ 11.4 \\ 12.1 \\ 12.9} \\
-            = \quad           & \frac{1}{156}\vektor{0        & 6  & 12 & 12 & 12 \\ -52 & 6 & 64 & 12 & -40} \vektor{0.9 \\ 5.8 \\ 11.4 \\ 12.1 \\ 12.9} \\
-            = \quad           & \frac{1}{156}\vektor{471.6                        \\ 346.8} = \vektor{3.02308 \\ 2.22308} = \vektor{a \\ b}
-        \end{aligned}
-    $$
-
-    Damit gilt insgesamt:
-    $$
-        y(t) = a \cdot t + b \cdot \sin\left( -t \cdot \frac{\pi}{2} \right) = 3.02308 \cdot t + 2.22308 \cdot \sin\left( -t \cdot \frac{\pi}{2} \right)
-    $$\qed
-\end{example}
-
-
-\begin{algo}{Lösen von unterbestimmten Gleichungssystemen}
-    Gegeben ist das \emph{unterbestimmte} Gleichungssystem
-    $$
-        Ax = b, \quad A \in \R^{m\times n}, \, b\in \R^m, \, m \leq n
-    $$
-    Im Fall $\rg(A) = m$ (voller Zeilenrang) gilt mithilfe der verallgemeinerten Inverse für
-    $$
-        x_s = A^T(AA^T)^{-1}b
-    $$
-    dass
-    $$
-        \norm{x_s} = \min_{Ax=b} \norm{x} \quad \land \quad x_s \perp \ker(A)
-    $$
-
-    Der Vektor $x_s$ ist eine \emph{eindeutige Lösung mit minimaler Norm}.
-\end{algo}
-
-\begin{example}{Lösen von unterbestimmten Gleichungssystemen}
-    Die Punkte $A(6;0;0)$, $B(2;1;3)$ und $C(-2;-2;2)$ liegen in einer Ebene $E$.
-    \begin{enumerate}[a)]
-        \item Stellen Sie die Hessesche Normalform der Ebene auf.
-              Wie groß ist der Abstand der Ebene zum Ursprung?
-        \item Welcher Punkt in der Ebene hat den kleinsten Abstand zum Ursprung?
-              Stellen Sie dazu das zugehörige unterbestimmte LGS auf und finden Sie die Lösung mit Hilfe der verallgemeinerten Inverse.
-    \end{enumerate}
-
-    \exampleseparator
-
-    \begin{enumerate}[a)]
-        \item Wir wählen uns $\vec{a}$ (Ortsvektor von $A$) als Stützvektor und die Vektoren $v = \vec{b} - \vec{a}$ und $w = \vec{c} - \vec{a}$ als Richtungsvektoren der Ebene.
-              Dann gilt:
-              $$
-                  v = \vektor{2\\1\\3} - \vektor{6\\0\\0} = \vektor{-4\\1\\3}, \qquad w = \vektor{-2\\-2\\2} - \vektor{6\\0\\0} = \vektor{-8\\-2\\2}
-              $$
-              $$
-                  n = \frac{v \times w}{\abs{v \times w}} = \frac{1}{\abs{v \times w}} \vektor{8 \\ -16 \\ 16} = \frac{1}{24} \vektor{8 \\ -16 \\ 16} = \vektor{\nicefrac{1}{3} \\ -\nicefrac{2}{3} \\ \nicefrac{2}{3}}
-              $$
-
-              Mit $n$ als (normierten) Normalenvektor erhalten wir dann die Hessesche Normalform der Ebene mit
-              $$
-                  E: \scalarprod{x,n} = \scalarprod{\vec{a}, n} \quad \iff \quad \frac{1}{3} \cdot x - \frac{2}{3} \cdot y + \frac{2}{3} \cdot z = 2
-              $$
-
-              Setzen wir den Nullpunkt in die Ebene ein, erhalten wir den Abstand mit $d = 2$.\qed
-        \item Mit der Ebenengleichung
-              $$
-                  E: \frac{1}{3} \cdot x - \frac{2}{3} \cdot y + \frac{2}{3} \cdot z = 2
-              $$
-              können wir folgendes unterbestimmte LGS aufstellen:
-              $$
-                  Ax = b \quad \iff \quad \vektor{\nicefrac{1}{3} & -\nicefrac{2}{3} & \nicefrac{2}{3}} \vektor{x \\ y \\ z} = \vektor{2}
-              $$
-              mit
-              $$
-                  \rg(A) = 1 = m \quad \implies \quad x = A^T \left(AA^T\right)^{-1}b
-              $$
-
-              Dann gilt:
-              $$
-                  \begin{aligned}
-                      x_s \quad = \quad & A^T \left(AA^T\right)^{-1}b \\
-                      = \quad           & \vektor{\nicefrac{1}{3}     \\ -\nicefrac{2}{3} \\ \nicefrac{2}{3}} \left( \vektor{\nicefrac{1}{3} & -\nicefrac{2}{3} & \nicefrac{2}{3}} \vektor{\nicefrac{1}{3} \\ -\nicefrac{2}{3} \\ \nicefrac{2}{3}} \right)^{-1} \cdot 2 \\
-                      = \quad           & \vektor{\nicefrac{2}{3}     \\ -\nicefrac{4}{3} \\ \nicefrac{4}{3}} = \vektor{x\\y\\z}
-                  \end{aligned}
-              $$
-              Damit ist dann $\vektor{\nicefrac{2}{3} & -\nicefrac{4}{3} & \nicefrac{4}{3}}^T$ der gesuchte Punkt in der Ebene mit dem geringsten Abstand.\qed
-    \end{enumerate}
-\end{example}
-\section{Geometrie linearer Abbildungen}
-
-\subsection{Orthogonale Abbildungen und Matrizen}
-
-\begin{defi}{Isometrie}
-    Eine \emph{Isometrie} ist eine lineare Abbildung, die zwei metrische Räume aufeinander abbildet und dabei die euklidische Länge eines Vektors erhält.
-
-    Man spricht auch von einer abstandserhaltenden Abbildung.
-
-    Sei $f : \R^n \to \R^n$ beliebig. Dann sind äquivalent:
-    \begin{enumerate}
-        \item $\forall x, y \in \R^n : \scalarprod{f(x), f(y)} = \scalarprod{x, y}$
-        \item $f$ ist eine winkelerhaltende Isometrie.
-    \end{enumerate}
-\end{defi}
-
-\begin{defi}{Orthogonalmatrix}
-    Eine Matrix $A\in \R^{n\times n}$ heißt \emph{orthogonal}, wenn ihre Spaltenvektoren eine Orthonormalbasis bilden.
-
-    Die Menge aller orthogonalen Matrizen in $\R^{n\times n}$ heiße $O(n)$.
-
-    Es gilt:
-    \begin{itemize}
-        \item $A \in O(n) \implies \abs{\det(A)} = 1$
-    \end{itemize}
-
-    Es sind äquivalent:
-    \begin{enumerate}
-        \item $A \in O(n)$
-        \item $A$ ist invertierbar, und es gilt $A^{-1} = A^T$
-        \item $A^T \in O(n)$
-    \end{enumerate}
-\end{defi}
-
-\begin{example}{Orthogonalmatrix}
-    Zeigen Sie, dass die Matrix
-    $$
-        Q = \vektor{
-            \cos \beta & -\sin\beta & 0 \\
-            \cos \alpha \sin\beta & \cos\alpha \cos\beta & -\sin\alpha \\
-            \sin\alpha \sin\beta & \sin\alpha \cos\beta & \cos\alpha
-        }
-    $$
-    eine Orthogonalmatrix ist und bestimmen Sie ihre Inverse.
-
-    \exampleseparator
-
-    Genau dann, wenn $Q$ eine Orthogonalmatrix ist, ist $QQ^T = I$ und damit auch $Q^T = Q^{-1}$:
-    $$
-        \begin{aligned}
-            QQ^T = \quad        &
-            \vektor{ \cos \beta & -\sin\beta                        & 0                        \\ \cos \alpha \sin\beta & \cos\alpha \cos\beta & -\sin\alpha \\ \sin\alpha \sin\beta & \sin\alpha \cos\beta & \cos\alpha }
-            \vektor{ \cos\beta  & \cos\alpha \sin\beta              & \sin\alpha \sin\beta     \\ -\sin\beta & \cos\alpha \cos\beta & \sin\alpha \cos\beta \\ 0 & -\sin\alpha & \cos\alpha} \\
-            = \quad             & \vektor{\cos^2\beta + \sin^2\beta & 0                    & 0 \\ 0 & \cos^2\alpha \left( \sin^2\beta + \cos^2\beta \right) + \sin^2\alpha & 0  \\ 0 & 0 & \sin^2\alpha \left( \sin^2\beta + \cos^2\beta \right) + \cos^2\alpha} \\
-            = \quad             & \vektor{\cos^2\beta + \sin^2\beta & 0                    & 0 \\ 0 & \cos^2\alpha  + \sin^2\alpha & 0  \\ 0 & 0 & \sin^2\alpha + \cos^2\alpha} \\
-            = \quad             & \vektor{1                         & 0                    & 0 \\ 0 & 1 & 0  \\ 0 & 0 & 1}
-        \end{aligned}
-    $$
-
-    Damit ist $Q$ eine Orthogonalmatrix und $Q^T$ die Inverse von $Q$.\qed
-\end{example}
-
-\begin{algo}{QR-Zerlegung}
-    Sei $A = \vektor{a_1 & \ldots & a_n} \in \R^{m\times n}$ und $\rg(A) = n$.
-    Dann gibt es eine in den Spalten orthogonale Matrix $Q \in \R^{m\times n}$ und eine obere Dreiecksmatrix $R \in \R^{n\times n}$ mit $A = QR$.
-    Hierbei können die Spalten von $Q$ mithilfe des Verfahrens von Gram-Schmidt aus den Spalten von $A$ erzeugt werden, und es gilt $\rg(R) = n$.
-
-    Mit $Q = \vektor{q_1 & \ldots & q_n}$ und $R = (\varrho_{ij})$ ergibt sich $R$ durch Lösen der $n$ linearen Gleichungen
-    $$
-        \vektor{a_1 & \ldots & a_n} = \vektor{q_1 & \ldots & q_n} \vektor{ \varrho_{11} & \varrho_{12} & \ldots & \varrho_{1n} \\ & \varrho_{22} & \ldots & \varrho_{2n} \\ & & \ddots & \vdots \\ & & & \varrho_{nn}}
-    $$
-    Hierbei kann bei $n > 1$ über die per Gram-Schmidt generierten Zwischenrechnungen durch Koeffizientenvergleich gelöst werden.
-\end{algo}
-
-\begin{example}{QR-Zerlegung}
-    Wie lautet die QR-Zerlegung von
-    $$
-        A = \vektor{3 & 1 \\ 4 & 5}?
-    $$
-    Lösen Sie anschließend mit dieser Zerlegung das lineare Gleichungssystem $Ax = b$ mit $b = \vektor{2 & 3}^T$.
-
-    \exampleseparator
-
-    Wir wenden das Gram-Schmidt-Verfahren auf die Spaltenvektoren an:\footnote{Wir sehen, dass die Vektoren orthogonal sind.}
-    $$
-        \begin{aligned}
-            v_1 \quad = \quad & \vektor{3                                                        \\4} \\
-            w_1 \quad = \quad & \frac{v_1}{\norm{v_1}} = \frac{1}{5}\vektor{3                    \\4} = \vektor{\nicefrac{3}{5}\\\nicefrac{4}{5}} \\
-            v_2 \quad = \quad & \vektor{1                                                        \\5} \\
-            r_2 \quad = \quad & v_2 - \scalarprod{v_2, w_1}w_1                                   \\
-            = \quad           & \vektor{1                                                        \\ 5} - \left( \frac{1}{5} \right)^2\scalarprod{\vektor{1 \\ 5}, \vektor{3 \\ 4}}\vektor{3 \\ 4} =  \vektor{-\nicefrac{44}{25}                      \\ \nicefrac{33}{25}}\\
-            w_2 \quad = \quad & \frac{r_2}{\norm{r_2}} = \frac{5}{11} \vektor{-\nicefrac{44}{25} \\ \nicefrac{33}{25}} = \vektor{-\nicefrac{4}{5} \\ \nicefrac{3}{5}}
-        \end{aligned}
-    $$
-
-    Damit erhalten wir $Q$ mit
-    $$
-        Q = \vektor{w_1 & w_2} =  \vektor{\nicefrac{3}{5} & -\nicefrac{4}{5} \\ \nicefrac{4}{5} & \nicefrac{3}{5}} = \frac{1}{5} \vektor{3 & -4 \\ 4 & 3}
-    $$
-    Da $A$ quadratisch ist\footnote{\ldots und damit auch $Q$}, gilt:
-    $$
-        QR = A \quad \iff \quad R = Q^TA
-    $$
-    womit $R$ gegeben ist, mit
-    $$
-        R = Q^TA = \frac{1}{5}\vektor{3 & 4 \\ -4 & 3} \vektor{3 & 1 \\ 4 & 5} = \frac{1}{5} \vektor{25 & 23 \\ 0 & 11}
-    $$
-\end{example}
-
-\begin{example}{QR-Zerlegung (Fortsetzung)}
-    Für das gegebene lineare Gleichungssystem $Ax = b$ ergibt sich dann:
-    $$
-        Ax = b \quad \iff \quad QRx = b  \quad \iff \quad Rx = Q^Tb
-    $$
-    $$
-        \begin{aligned}
-            \iff \quad     & \frac{1}{5} \vektor{25                                  & 23 \\ 0 & 11}x = \frac{1}{5}\vektor{3 & 4 \\ -4 & 3}\vektor{2\\3} \\
-            \iff \quad     & \vektor{25                                              & 23 \\ 0 & 11}x = \vektor{18 \\ 1} \\
-            \implies \quad & 11x_2 = 1 \quad \land \quad 25x_1 + 23x_2 = 18               \\
-            \iff \quad     & x_2 = \frac{1}{11} \quad \land \quad x_1 = \frac{7}{11}      \\
-            \implies \quad & x = \vektor{\nicefrac{7}{11}                                 \\ \nicefrac{1}{11}}
-        \end{aligned}
-    $$\qed
-\end{example}
-
-\subsection{Eigenwerte und Eigenvektoren}
-
-\begin{defi}{Eigenwert, Eigenvektor und Eigenraum}
-    Existiert für einen Endomorphismus $f$ ein $\lambda \in \C$ und $v\in V \setminus \{0\}$ mit
-    $$
-        f(v) = \lambda v
-    $$
-    dann heißt $v$ \emph{Eigenvektor} von $f$ zum \emph{Eigenwert} $\lambda$.
-
-    Sei $\lambda$ ein Eigenwert von $f$ und $v_1, \ldots, v_k$ Eigenvektoren von $f$ zu $\lambda$.
-    Dann ist auch $v \in L(v_1, \ldots, v_k) \setminus \{0\}$ ein Eigenvektor von $f$ zu $\lambda$.
-
-    Für $\lambda \in \C$ ist $\Eig(f;\lambda) := \{v \in V \mid f(v) = \lambda v\}$, der \emph{Eigenraum} von $f$ zu $\lambda$, ein Untervektorraum von $V$.
-
-    Es gilt:
-    \begin{itemize}
-        \item Für $\lambda \neq \gamma$ gilt $\Eig(f;\lambda) \cap \Eig(f;\gamma) = \{0\}$.
-        \item Eigenvektoren zu unterschiedlichen Eigenwerten sind linear unabhängig.
-        \item Die Eigenwerte einer Dreiecksmatrix sind die Werte auf der Hauptdiagonalen.
-        \item Eigenwerte reeller symmetrischer Matrizen sind immer reell.
-        \item Zu jedem Eigenwert einer reellen symmetrischen Matrix existieren reelle Eigenvektoren.
-        \item Sei $A \in \R^{n\times n}$ symmetrisch, $\lambda \neq \mu$ zwei Eigenwerte von $A$ mit Eigenvektoren $v$ bzw. $w$. Dann gilt $v \perp w$.
-    \end{itemize}
-
-\end{defi}
-
-\begin{defi}{Charakteristisches Polynom}
-    Sei $A \in \C^{n\times n}$.
-    Dann ist die Funktion
-    $$
-        \chi_A(\lambda) := \det(A-\lambda E)
-    $$
-    ein Polynom mit $\deg(\chi_A) = n$ und heißt \emph{charakteristisches Polynom}.
-
-    Es gilt:
-    \begin{itemize}
-        \item $\lambda \in \C$ ist Eigenwert von $A$ $\iff \chi_A(\lambda) = 0$
-        \item $A$ hat (mit Vielfachheit) genau $n$ Eigenwerte $\lambda_i \in \C$.
-        \item $\Eig(f;\lambda) = \ker(A-\lambda E)$
-    \end{itemize}
-\end{defi}
-
-\begin{example}{Eigenwerte und Eigenvektoren}
-    Gegeben sind
-    $$
-        A_t = \vektor{1 & t \\ -2 & -1-t} \quad \text{und} \quad x_t = \vektor{-t \\ 2}, t \in \R
-    $$
-    Zeigen Sie, dass der Vektor $x_t$ Eigenvektor der Matrix $A_t$ ist.
-    Wie lautet der zugehörige Eigenwert?
-    Bestimmen Sie auch den zweiten Eigenwert.
-
-    \exampleseparator
-
-    Berechnen des charakteristischen Polynoms von $A_t$:
-    $$
-        \abs{A - \lambda I} = \abs{\vektor{1 - \lambda & t \\ -2  & -1-t-\lambda}} = (1-\lambda)(-1-t-\lambda) + 2t = \lambda^2 + t\lambda + t - 1
-    $$
-
-    Nullstellen des charakteristischen Polynoms (Eigenwerte):
-    $$
-        \lambda_{1,2} = -\frac{t}{2} \pm \sqrt{\left(\frac{t}{2}\right)^2 - t + 1} = -\frac{t}{2} \pm \sqrt{\frac{t^2-4t + 4}{4}} = -\frac{t}{2} \pm \frac{t-2}{2}
-    $$
-    $$
-        \lambda_1 = -1 \quad \land \quad \lambda_2 = -t +1
-    $$
-
-    Bestimmen des Eigenraums/der Eigenvektoren zum Eigenwert $\lambda_1$:
-    $$
-        \begin{sysmatrix}{cc|c}
-            1-\lambda_1 & t & 0 \\
-            -2 & -1-t-\lambda_1 & 0
-        \end{sysmatrix}
-        \sim
-        \begin{sysmatrix}{cc|c}
-            2 & t & 0 \\
-            -2 & -t & 0
-        \end{sysmatrix}
-        \sim
-        \begin{sysmatrix}{cc|c}
-            2 & t & 0 \\
-            0 & 0 & 0
-        \end{sysmatrix}
-    $$
-    $$
-        \begin{aligned}
-            \implies \quad & 2x_1 + tx_2 = 0 \iff x_1 = -\frac{tx_2}{2}                  \\
-            \implies \quad & E(\lambda_1) = \ker(A-\lambda_1 I) = \scalarprod{\vektor{-t \\ 2}} \ni x_t
-        \end{aligned}
-    $$
-
-    Insgesamt sind also die Eigenwerte $\lambda_1 = -1$ und $\lambda_2 = -t+1$ und $x_t$ Eigenvektor zu $\lambda_1$.\qed
-\end{example}
-
-\begin{bonus}{Eigenwerte und Determinanten}
-    Für $A = \vektor{a_1 & \ldots & a_n} \in \C^{n\times n}$ mit Eigenwerten $\lambda_i$, $1 \leq i \leq n$ gilt
-    $$
-        \det(A) = \prod^n_{i=1}\lambda_i
-    $$
-\end{bonus}
-
-\subsection{Diagonalisierung linearer Abbildungen}
-
-\begin{defi}{Diagonalisierbarkeit}
-    Eine quadratische Matrix $A \in \C^{n\times n}$ heißt \emph{diagonalisierbar}, wenn es eine Diagonalmatrix $D$ und eine invertierbare Matrix $S$ existiert, sodass
-    $$
-        A = SDS^{-1}
-    $$
-    gilt.
-    Dabei ist $A$ genau dann diagonalisierbar, wenn eine Basis aus Eigenvektoren existiert.
-    Bildet man mit ihnen als Spalten eine Matrix $S$, dann ist $S$ genau die oben genannte Matrix\footnote{\ldots des Basiswechsels.}.
-
-    Auf der Hauptdiagonalen von $D$ befinden sich die entsprechenden Eigenwerte von $A$.
-
-    Es gilt:
-    \begin{itemize}
-        \item Zu jeder reellsymmetrischen Matrix $A$ gibt es eine Orthogonalmatrix $S$ und eine Diagonalmatrix $D$ wie oben.
-    \end{itemize}
-\end{defi}
-
-\begin{example}{Diagonalmatrix}
-    Gesucht ist die Matrix $A$ mit den Eigenwerten $1$ und $4$ und den zugehörigen Eigenvektoren $\vektor{4\\1}$ und $\vektor{2\\1}$.
-
-    \exampleseparator
-
-    Wir wissen, dass $A$ diagonalisierbar ist.
-    Damit gilt
-    $$
-        \begin{aligned}
-            A & \quad = SDS^{-1}                    \\
-              & \quad = \vektor{4              & 2  \\ 1 & 1} \vektor{1 & 0 \\ 0 & 4} \vektor{4 & 2 \\ 1 & 1}^{-1} \\
-              & \quad = \vektor{4              & 2  \\ 1 & 1} \vektor{1 & 0 \\ 0 & 4} \frac{1}{2} \vektor{1 & -2 \\ -1 & 4} \\
-              & \quad = \frac{1}{2} \vektor{4  & 2  \\ 1 & 1} \vektor{1 & -2 \\ -4 & 16} \\
-              & \quad = \frac{1}{2} \vektor{-4 & 24 \\ -3 & 14}
-        \end{aligned}
-    $$\qed
-\end{example}
-
-\begin{defi}{Vielfachheit}
-    Sei $A \in \C^{n\times n}$ und $\lambda$ ein Eigenwert.
-
-    Die Vielfachheit der Nullstelle $\lambda$ von $\chi_A$ heißte \emph{algebraische Vielfachheit} $a(\lambda)$.
-
-    Weiter sei $g(\lambda) := \dim(\Eig(A;\lambda))$ die \emph{geometrische Vielfachheit} von $\lambda$.
-
-    Es gilt:
-    \begin{itemize}
-        \item Existiert ein Eigenwert $\tilde{\lambda}$ mit $a(\tilde{\lambda}) > g(\tilde{\lambda})$, dann ist $A$ nicht diagonalisierbar.
-    \end{itemize}
-\end{defi}
-
-\begin{bonus}{Normale Matrix}
-    Eine Matrix $A \in \C^{n\times n}$ heißt \emph{normal}, wenn gilt:
-    $$
-        AA^{*} = A^{*}A \quad \iff \quad A\bar{A}^T = \bar{A}^TA
-    $$
-
-    $A^{*}$ heißt adjungierte Matrix von $A$.
-
-    Sei $A \in \C^{n\times n}$.
-    Es gilt:
-    \begin{itemize}
-        \item Es existiert eine bzgl. des Standardskalarprodukts in $\C^n$ orthonormale Basis aus Eigenvektoren, d.h. $A$ ist diagonalisierbar.
-        \item Jede reelle symmetrische Matrix ist diagonalisierbar. Die Eigenwerte sind reell.
-        \item Jede reelle antisymmetrische Matrix (d.h. $A^T = -A$) ist diagonalisierbar. Die Eigenwerte sind rein imaginär oder 0.
-        \item Jede reelle orthogonale Matrix ist diagonalisierbar.
-    \end{itemize}
-\end{bonus}
-
-\subsection{Definitheit und Skalarprodukte}
-
-\begin{defi}{Skalarprodukt}
-    Für ein \emph{Skalarprodukt} $(\cdot, \cdot) : \R^n \times \R^n \to \R$ müssen drei Bedingungen erfüllt sein:
-    \begin{enumerate}
-        \item $(\cdot, \cdot)$ ist linear in den Spalten.
-        \item $(\cdot, \cdot)$ ist symmetrisch.
-        \item $(x, x) > 0$ für $x \neq 0$.
-    \end{enumerate}
-
-    Wir wählen eine beliebige Matrix $A \in \R^{n\times n}$ und betrachten die Abbildung
-    $$
-        (\cdot, \cdot)_A : \R^n \times \R^n \to \R, \quad (x, y)_A := \scalarprod{x, Ay}
-    $$
-    wobei $\scalarprod{\cdot, \cdot}$ für das Standardskalarprodukt steht.
-
-    Die Abbildung $(\cdot, \cdot)_A$ ist genau dann symmetrisch, wenn $A$ symmetrisch ist.
-
-    Nicht jede symmetrische Matrix definiert ein Skalarprodukt (z.B. die Nullmatrix).
-\end{defi}
-
-\begin{defi}{Quadratische Form}
-    Sei $A$ eine symmetrische Matrix $A \in \R^{n\times n}$.
-
-    Die Abbildung $x \to \scalarprod{x, Ax}$ wird \emph{quadratische Form} genannt.
-\end{defi}
-
-\begin{defi}{Hauptminoren}
-    Für $A \in \R^{n\times n}$ seien $A_k$ die \emph{links oben} beginnenden $k \times k$-Untermatrizen $A_k = (a_{ij})^k_{i,j=1}$ von $A$.
-
-    Dann heißen $D_k = \det(A_k)$ die \emph{Hauptunterdeterminanten} oder \emph{Hauptminoren} von $A$.
-\end{defi}
-
-\begin{defi}{Definitheit}
-    Sei $A$ eine symmetrische Matrix $A \in \R^{n\times n}$.
-
-    Dann gilt:
-    \begin{itemize}
-        \item $A$ heißt \emph{positiv definit}, wenn $\scalarprod{x, Ax} > 0 \forall x \in \R^n \setminus \{0\}$.\footnote{Häufig kürzt man \glqq symmetrisch positiv definit\grqq mit \emph{spd} ab.}
-        \item $A$ heißt \emph{negativ definit}, wenn $\scalarprod{x, Ax} < 0 \forall x \in \R^n \setminus \{0\}$.
-        \item $A$ heißt \emph{positiv semidefinit}, wenn $\scalarprod{x, Ax} \geq 0 \forall x \in \R^n \setminus \{0\}$.
-        \item $A$ heißt \emph{negativ semidefinit}, wenn $\scalarprod{x, Ax} \leq 0 \forall x \in \R^n \setminus \{0\}$.
-        \item $A$ heißt \emph{indefinit}, falls sie weder positiv noch negativ (semi-)definit ist, d.h.
-              $$
-                  \exists x, y \in \R^n \{0\} : \scalarprod{x, Ax} > 0 \land \scalarprod{y, Ay} < 0
-              $$
-    \end{itemize}
-
-    Es gilt:
-    \begin{itemize}
-        \item Die Abbildung $(\cdot, \cdot)_A$ ist genau dann ein Skalarprodukt, wenn $A$ spd ist.
-    \end{itemize}
-
-    Für eine reelle symmetrische Matrix $A$ sind äquivalent:
-    \begin{enumerate}
-        \item $A$ ist positiv definit.
-        \item $A$ besitzt nur positive Eigenwerte.
-        \item Alle Hauptminoren von $A$ sind positiv.
-    \end{enumerate}
-
-    Weiter ist $A$ genau dann positiv semidefinit, wenn alle Eigenwerte von $A$ nicht negativ sind.
-    In diesem Fall sind alle Hauptminoren von $A$ nicht negativ.
-
-    $A$ ist genau dann negativ (semi-)definit, wenn $-A$ positiv (semi-)definit ist.
-
-    Für die Hauptminoren $D_k$ einer negativ definiten Matrix gilt, dass $D_k$ abwechselnd positiv und negativ sind, beginnend mit negativem Vorzeichen.
-\end{defi}
-
-\printindex
-\printindex[Beispiele]
-
+\documentclass[german]{../spicker}
+
+\usepackage{amsmath}
+\usepackage{polynom}
+\usepackage{nicefrac}
+\usepackage{array}   % for \newcolumntype macro
+\usepackage{tikz}
+\usepackage{pgfplots}
+\usepackage{multirow,bigdelim}
+\usepgfplotslibrary{fillbetween}
+
+\usetikzlibrary{positioning}
+
+\title{Lineare Algebra 2}
+\author{Patrick Gustav Blaneck}
+\makeindex[intoc]
+\makeindex[intoc, name=Beispiele,title=Beispiele]
+
+\newcommand{\scalarprod}[1]{\left\langle #1 \right\rangle}
+\newcommand{\vektor}[1]{\begin{pmatrix*}[c] #1 \end{pmatrix*}}
+\renewcommand{\span}[1]{\operatorname{span}\left(#1\right)}
+
+\newcommand{\im}{\operatorname{im}}
+\newcommand{\rg}{\operatorname{rg}}
+\newcommand{\defect}{\operatorname{def}}
+\newcommand{\Eig}{\operatorname{Eig}}
+
+\renewcommand{\d}{\,\mathrm{d}}
+
+\renewcommand{\abs}[1]{\left| #1 \right|}
+\newcommand{\cis}[1]{\left( \cos\left( #1 \right) + i \sin\left( #1 \right) \right)}
+\newcommand{\sgn}{\text{sgn}}
+\newcommand{\diff}{\mathrm{d}}
+\newcommand{\dx}{~\mathrm{d}x}
+\newcommand{\du}{~\mathrm{d}u}
+\newcommand{\dv}{~\mathrm{d}v}
+\newcommand{\dw}{~\mathrm{d}w}
+\newcommand{\dt}{~\mathrm{d}t}
+\newcommand{\dn}{~\mathrm{d}n}
+\newcommand{\dudx}{~\frac{\mathrm{d}u}{\mathrm{d}x}}
+\newcommand{\dudn}{~\frac{\mathrm{d}u}{\mathrm{d}n}}
+\newcommand{\dvdx}{~\frac{\mathrm{d}v}{\mathrm{d}x}}
+\newcommand{\dwdx}{~\frac{\mathrm{d}w}{\mathrm{d}x}}
+\newcommand{\dtdx}{~\frac{\mathrm{d}t}{\mathrm{d}x}}
+\newcommand{\ddx}{\frac{\mathrm{d}}{\mathrm{d}x}}
+\newcommand{\dFdx}{\frac{\mathrm{d}F}{\mathrm{d}x}}
+\newcommand{\dfdx}{\frac{\mathrm{d}f}{\mathrm{d}x}}
+\newcommand{\interval}[1]{\left[ #1 \right]}
+
+\newcolumntype{L}{>{$}l<{$}} % math-mode version of "l" column type
+\newcolumntype{R}{>{$}r<{$}} % math-mode version of "r" column type
+\newcolumntype{C}{>{$}c<{$}} % math-mode version of "c" column type
+\newcolumntype{P}{>{$}p<{$}} % math-mode version of "l" column type
+
+\newenvironment{sysmatrix}[1]
+ {\left(\begin{array}{@{}#1@{}}}
+ {\end{array}\right)}
+
+\newcommand{\dvektor}[1]{\begin{vmatrix*}[r] #1 \end{vmatrix*}}
+
+\begin{document}
+\maketitle
+\tableofcontents
+\newpage
+
+%\setcounter{section}{1}
+
+\section{Lineare Abbildungen}
+
+\subsection{Grundlegende Eigenschaften linearer Abbildungen}
+
+\begin{defi}{Homomorphismus}
+    Eine Abbildung $f : V \to W$ heißt \emph{linear} oder ein \emph{Homomorphismus}, falls $\forall x, y \in V, \forall \lambda \in K$ gilt:
+    \begin{itemize}
+        \item Additivität: $f(x + y) = f(x) + f(y)$
+        \item Homogenität: $f(\lambda x) = \lambda f(x)$
+    \end{itemize}
+
+    Es gilt auch:
+    \begin{itemize}
+        \item Für eine lineare Funktion $f$ gilt $f(0) = 0$.
+        \item Die Funktion $f$ ist genau dann linear, wenn $\forall x, y \in V, \forall \lambda \in K$ gilt:
+              $$
+                  f(x + \lambda y) = f(x) + \lambda f(y)
+              $$
+        \item Summen, Vielfache linearer Abbildungen und vektorwertige Abbildungen, deren Komponenten aus linearen Abbildungen bestehen, sind wiederum linear.
+    \end{itemize}
+\end{defi}
+
+\begin{example}{Homomorphismus}
+    Gegeben sei die Abbildung $f : \R^3 \to \R^2$ mit $f(x_1, x_2, x_3) = (x_1-2x_3, 4x_2)$.
+
+    Zeigen Sie: $f$ ist linear.
+
+    \exampleseparator
+
+    $f$ ist genau dann \emph{linear}, wenn $f$ \emph{homogen} und \emph{additiv} ist.
+
+    \emph{Homogenität:} $\forall x \in \R^3, \lambda \in \R: f(\lambda  x) = \lambda  f(x)$
+    $$
+        \begin{aligned}
+                         & f(\lambda  x)                                  &  & = \lambda  f(x)                              \\
+            \equiv \quad & f(\lambda  x_1, \lambda  x_2, \lambda  x_3)    &  & = \lambda  f(x_1, x_2, x_3)                  \\
+            \equiv \quad & (\lambda  x_1-2  \lambda  x_3, 4 \lambda  x_2) &  & = \lambda  (x_1-2x_3, 4x_2)                  \\
+            \equiv \quad & \lambda  (x_1-2x_3, 4x_2)                      &  & = \lambda  (x_1-2x_3, 4x_2) \quad \checkmark
+        \end{aligned}
+    $$
+    \emph{Additivität:} $\forall x, y \in \R^3: f(x + y) = f(x) + f_4(y)$
+    $$
+        \begin{aligned}
+                         & f(x + y)                                 &  & = f(x) + f(y)                                               \\
+            \equiv \quad & f(x_1 + y_1, x_2 + y_2, x_3 + y_3)       &  & = f(x_1, x_2, x_3) + f(y_1, y_2, y_3)                       \\
+            \equiv \quad & (x_1 + y_1-2(x_3 + y_3), 4(x_2 + y_2))   &  & = (x_1-2x_3, 4x_2) + (y_1-2y_3, 4y_2)                       \\
+            \equiv \quad & (x_1 + y_1-2 x_3 -2  y_3, 4 x_2 +4  y_2) &  & = (x_1 + y_1-2 x_3 -2  y_3, 4 x_2 +4  y_2) \quad \checkmark
+        \end{aligned}
+    $$
+
+    Damit ist $f$ linear. \qed
+\end{example}
+
+\begin{defi}{Kern}
+    Der \emph{Kern} einer linearen Abbildung $f : V \to W$ wird definiert durch
+    $$
+        \ker (f) := f^{-1}(0)
+    $$
+
+    Dabei gilt:
+    \begin{itemize}
+        \item $\im (f)$\footnote{Bild von $f$} ist ein Untervektorraum von $W$.
+        \item $\ker (f)$ ist ein Untervektorraum von $V$.
+    \end{itemize}
+
+    Eine lineare Abbildung ist genau dann injektiv, wenn $\ker (f) = \{0\}$ gilt.
+\end{defi}
+
+\begin{bonus}{Defekt}
+    Für eine lineare Funktion $f: V\to W$ definiert man den \emph{Defekt} von $f$ durch
+    $$
+        \defect (f) := \dim\ker (f)
+    $$
+
+    Eine lineare Abbildung ist genau dann injektiv, wenn $\defect (f) = 0$ gilt.
+\end{bonus}
+
+\begin{example}{Kern}
+    Gegeben sei die Abbildung $f : \R^3 \to \R^2$ mit $f(x_1, x_2, x_3) = (x_1-2x_3, 4x_2)$.
+
+    Bestimmen Sie den Kern von $f$ und geben Sie $\dim(\ker(f))$ an.
+
+    \exampleseparator
+
+    $$
+        f(x_1, x_2, x_3) = 0 \iff
+        \begin{sysmatrix}{ccc|c}
+            1 & 0 & -2 & 0 \\
+            0 & 4 & 0  & 0
+        \end{sysmatrix}
+        \implies x_2 = 0 \quad \land \quad x_1 = 2x_3
+    $$
+    Daraus folgt:
+    $$
+        \ker(f) = f^{-1}(0) = \left\{ (2\lambda, 0, \lambda) \mid \lambda \in \R \right\} \implies \defect(f) = \dim(\ker(f)) = 1
+    $$\qed
+\end{example}
+
+\begin{defi}{Rang}
+    Für eine lineare Funktion $f: V\to W$ definiert man den \emph{Rang} von $f$ durch
+    $$
+        \rg (f) := \dim\im (f)
+    $$
+
+    Eine lineare Abbildung ist genau dann surjektiv, wenn $\rg (f) = \dim (W)$ gilt.
+\end{defi}
+
+\begin{defi}{Dimensionsformel für lineare Abbildungen (Rangsatz)}
+    Es sei $f : V \to W$ linear. Dann gilt:
+    $$
+        \defect (f) + \rg (f) = \dim V
+    $$
+    bzw. äquivalent
+    $$
+        \dim\ker (f) + \dim\im (f) = \dim V
+    $$
+\end{defi}
+
+\begin{defi}{Isomorphismus}
+    Sei $f : V \to W$ linear.
+    Dann ist $f$ ein \emph{Isomorphismus}, wenn $f$ bijektiv ist.
+
+    Es gilt (für $f$ linear):
+    \begin{itemize}
+        \item $f$ ist genau dann ein Isomorphismus, wenn $\ker(f) = \{0\}$ und $\im(f) = W$ gilt.
+        \item Gelte $\dim (V) = \dim (W)$. Dann gilt $f$ ist injektiv $\iff$ $f$ ist surjektiv $\iff$ $f$ ist bijektiv.
+    \end{itemize}
+
+    Es gilt (für $f$ Isomorphismus):
+    \begin{itemize}
+        \item $\dim(V) = \dim(W)$
+        \item $f^{-1} : W \to V$ ist ebenfalls ein Isomorphismus.
+    \end{itemize}
+
+    Sei $\dim(V) = \dim(W) = n$, $(v_1, \ldots, v_n)$ eine Basis von $V$ und $f : V \to W$ linear.
+    $f$ ist genau dann ein Isomorphismus, wenn $(f(v_1), \ldots, f(v_n))$ eine Basis von $W$ bildet.
+\end{defi}
+
+\begin{bonus}{Isomorphie}
+    Seien $V$ und $W$ zwei $K$-Vektorräume
+    Dann heißen $V$ und $W$ \emph{isomorph}, Schreibweise $V \simeq W$, falls ein Isomorphismus von $V$ nach $W$ existiert.
+
+    Gilt $\dim(V) = \dim(W) = n$, dann gilt direkt $K^n \simeq V \simeq W$.
+\end{bonus}
+
+\begin{defi}{Automorphismus}
+    Sei $f : V \to W$ linear.
+    Dann ist $f$ ein \emph{Automorphismus}, wenn $f$ bijektiv ist und $V = W$.
+\end{defi}
+
+\begin{defi}{Endomorphismus}
+    Eine lineare Abbildung $f : V \to V$ heißt \emph{Endomorphismus}.
+\end{defi}
+
+\subsection{Matrizen und lineare Abbildungen}
+
+\begin{defi}{Abbildungsmatrix}
+    Sei $f : V \to W$ linear. Dann ist die \emph{Abbildungsmatrix} $A$ bzgl. $f$ gegeben mit
+    $$
+        A = \vektor{f(e_1) & \ldots & f(e_n)} \ \text{mit} \ \forall x : f(x) = Ax
+    $$
+
+    Sei $(v_1, \ldots, v_n)$ eine Basis von $V$. Dann gilt:
+    \begin{itemize}
+        \item $\im(f) = \scalarprod{f(v_1), \ldots, f(v_n)}$
+        \item $f$ ist injektiv $\iff$ $f(v_1), \ldots, f(v_n)$ sind linear unabhängig.
+    \end{itemize}
+\end{defi}
+
+\begin{defi}{Darstellungsmatrix}
+    Sei $f : V \to W$ linear, $\mathcal{B}_V = (v_1, \ldots, v_n)$ eine Basis von $V$ und $\mathcal{B}_W = (w_1, \ldots, w_m)$ eine Basis von $W$.
+    Dann ist
+    $$
+        M^{\mathcal{B}_V}_{\mathcal{B}_W} (f) = \vektor{K_{\mathcal{B}_W}(f(v_1)) & \ldots & K_{\mathcal{B}_W}(f(v_1))}
+    $$
+    die \emph{Darstellungsmatrix} von $f$ bezüglich der Basen $\mathcal{B}_V$ und $\mathcal{B}_W$.
+
+    $K_{\mathcal{B}_W}(f(v_i))$ bedeutet hier, dass das Bild von $v_i$ in der Basis $\mathcal{B}_W$ kodiert wird.
+
+    Es gilt:
+    \begin{itemize}
+        \item Sind $\mathcal{B}_V$ und $\mathcal{B}_W$ die Standardbasen bez. $V$ und $W$, dann gilt $M^{\mathcal{B}_V}_{\mathcal{B}_W} (f) = A$.
+    \end{itemize}
+\end{defi}
+
+\begin{example}{Abbildungsmatrix}
+    Sei
+    $$
+        F\left(\vektor{x\\y\\z}\right) = \vektor{x + y + 2z \\ -3x + z \\ -x + 2y + 5z}
+    $$
+    \begin{enumerate}[a)]
+        \item Geben Sie für obige Abbildung die Abbildungsmatrix an.
+        \item Bestimmen Sie $\ker(F)$ und dessen Dimension.
+        \item Bestimmen Sie mit Hilfe der Dimensionsformel $\dim(\im (F))$.
+        \item Geben Sie eine Basis des Bildes an.
+    \end{enumerate}
+
+    \exampleseparator
+
+    \begin{enumerate}[a)]
+        \item Sei $B$ die kanonische Einheitsbasis des $\R^3$.
+              Dann ist die Abbildungsmatrix gegeben mit
+              $$
+                  A = M^B_B (F) = \vektor{~ \\F(e_1) & F(e_2) & F(e_3)\\ ~} = \vektor{1 & 1 & 2\\ -3 & 0 & 1\\ -1 & 2 & 5}
+              $$\qed
+        \item $$
+                  M^B_B \cdot \vektor{x \\ y \\ z} = \vektor{1 & 1 & 2\\ -3 & 0 & 1\\ -1 & 2 & 5} \cdot \vektor{x \\ y \\ z} = \vektor{0 \\ 0 \\ 0}
+              $$
+
+              Wir erhalten also ein LGS, dessen Lösung eine Basis von $\ker(F)$ ist:
+              $$
+                  \begin{sysmatrix}{c c c | c}
+                      1 & 1 & 2 & 0 \\ -3 & 0 & 1 & 0 \\ -1 & 2 & 5 & 0
+                  \end{sysmatrix}
+                  \sim
+                  \begin{sysmatrix}{c c c | c}
+                      1 & 1 & 2 & 0 \\ 0 & 3 & 7 & 0 \\ 0 & 3 & 7 & 0
+                  \end{sysmatrix}
+                  \sim
+                  \begin{sysmatrix}{c c c | c}
+                      1 & 1 & 2 & 0 \\ 0 & 3 & 7 & 0 \\ 0 & 0 & 0 & 0
+                  \end{sysmatrix}
+                  \sim
+                  \begin{sysmatrix}{c c c | c}
+                      -3 & 0 & 1 & 0 \\ 0 & \frac{3}{7} & 1 & 0 \\ 0 & 0 & 0 & 0
+                  \end{sysmatrix}
+              $$
+
+              Daraus können wir folgern, dass $\ker(F) = \scalarprod{\vektor{1 & -7 & 3}^T}$ und $\defect(F) = 1$. \qed
+        \item $\dim(\R^3) = \defect(F) + \rg(F) \implies \rg(F) = 2$\qed
+        \item Wegen $\rg(F) = 2$ wissen wir, dass wir zwei linear unabhängige Vektoren aus $M^B_B$ auswählen können, die dann automatisch eine Basis von $\im(F)$ ergeben.
+
+              Wir wählen $\im(F) = \scalarprod{ \vektor{1 & 0 & 2}^T, \vektor{2 & 1 & 5}^T }$.\qed
+    \end{enumerate}
+\end{example}
+
+\subsection{Abbildungsverkettung und Matrizenmultiplikation}
+
+\begin{defi}{Eigenschaften der Abbildungsverkettung}
+    Seien $U$, $V$, $W$ $K$-Vektorräume und $f : V \to W$ sowie $g : U \to V$ linear.
+    Dann ist auch $f \circ g : U \to W$ linear.
+
+    Ist $f$ ein Isomorphismus und $\dim(V) = \dim(W)$, dann gilt:
+    $$
+        \rg(f\circ g) = \rg(g)
+    $$
+\end{defi}
+
+\begin{defi}{Eigenschaften der Matrixmultiplikation}
+    Seien $A$, $B$, $C$ so, dass die nachfolgend vorkommenden Matrixmultiplikationen definiert sind.
+    Dann gilt:
+    \begin{itemize}
+        \item $A(BC) = (AB)C$ (Assoziativgesetz)
+        \item $A(B+C) = AB+AC$ und $(A+B)C = AC+BC$ (Distributivgesetz)
+        \item $(AB)^T = B^TA^T$
+        \item Sei $A \in K^{m\times n}$ und $E_k \in K^{k\times k}$ die $(k\times k)$-Einheitsmatrix. Dann gilt:
+              $$
+                  AE_n = E_mA = A
+              $$
+        \item Sei $A \in K^{m\times n}$ und $0_{kl} \in K^{k\times l}$ die $(k\times l)$-Nullmatrix. Dann gilt:
+              $$
+                  A0_{nl} = 0_{ml} \quad \text{und} \quad 0_{km}A = 0_{kn}
+              $$
+        \item Das Matrixprodukt ist im Allgemeinen nicht kommutativ.
+        \item Seien $x, y \in K^n$. Dann gilt:
+              $$
+                  \scalarprod{x, y} = x^T \cdot y
+              $$
+    \end{itemize}
+\end{defi}
+
+\begin{example}{Matrixmultiplikation}
+    Gegeben sind die Matrizen
+    $$
+        A = \vektor{10 & 2 & 3 \\ 8 & 5 & 3 \\ 2 & 3 & 2}, \quad
+        B = \vektor{7 & 3 \\ 1 & 5}, \quad
+        C = \vektor{4 & 5 \\ 2 & 7 \\ 3 & 6}
+    $$
+    Welche der folgenden Matrixprodukte sind wohldefiniert?
+
+    \begin{enumerate}[a)]
+        \item $A\cdot B$
+        \item $C\cdot B$
+        \item $C\cdot B \cdot A$
+    \end{enumerate}
+
+    \exampleseparator
+
+    \begin{enumerate}[a)]
+        \item $$
+                  A\cdot B = \overset{3\times \pmb{3}}{\vektor{10 & 2 & 3 \\ 8 & 5 & 3 \\ 2 & 3 & 2}} \overset{\pmb{2}\times 2}{\vektor{7 & 3 \\ 1 & 5}} \quad \lightning \quad (3 \neq 2)
+              $$
+        \item $$
+                  C\cdot B = \overset{3\times \pmb{2}}{\vektor{4 & 5 \\ 2 & 7 \\ 3 & 6}} \overset{\pmb{2}\times 2}{\vektor{7 & 3 \\ 1 & 5}} = \vektor{33 & 37 \\ 21 & 41 \\ 27 & 39}
+              $$
+        \item $$
+                  C\cdot B \cdot A = \overset{3\times \pmb{2}}{\vektor{4 & 5 \\ 2 & 7 \\ 3 & 6}} \overset{\pmb{2}\times \pmb{2}}{\vektor{7 & 3 \\ 1 & 5}} \overset{\pmb{3}\times 3}{\vektor{10 & 2 & 3 \\ 8 & 5 & 3 \\ 2 & 3 & 2}} \quad \lightning \quad (2 \neq 3)
+              $$
+    \end{enumerate}
+\end{example}
+
+\begin{defi}{Inverse einer Matrix}
+    Sei $A$ eine quadratische Matrix.
+    Gibt es eine Matrix $A^{-1}$ mit
+    $$
+        AA^{-1} = A^{-1}A = E
+    $$
+    so heißt $A$ \emph{invertierbar} oder auch \emph{regulär}.
+    $A^{-1}$ wird als \emph{Inverse} von $A$ bezeichnet.
+
+    Es gilt:
+    \begin{itemize}
+        \item Eine lineare Abbildung $f : V \to W$ ist genau dann invertierbar, wenn ihre Darstellungsmatrix invertierbar ist.
+        \item Jede invertierbare Matrix ist quadratisch.
+    \end{itemize}
+
+    Seien $A, B \in K^{n\times n}$ invertierbar.
+    Dann gilt:
+    \begin{itemize}
+        \item $AB = E \iff BA = E \iff B = A^{-1}$
+        \item $AB$ ist invertierbar, und es gilt $(AB)^{-1} = B^{-1}A^{-1}$.
+        \item $A^{-1}$ ist invertierbar, und es gilt $(A^{-1})^{-1} = A$.
+        \item $A^T$ ist invertierbar, und es gilt $(A^T)^{-1} = (A^{-1})^T$.
+        \item Für $\lambda \in K \setminus \{0\}$ ist $\lambda A$ invertierbar, und es gilt $(\lambda A)^{-1} = \frac{1}{\lambda}A^{-1}$.
+    \end{itemize}
+\end{defi}
+
+\begin{example}{Inverse einer Matrix (Gauß-Algorithmus)}
+    Berechnen Sie mit Hilfe des Gauß-Algorithmus die Inverse zu folgender Matrix:
+    $$\vektor{0 & 0 & 2 & 0 \\ 1 & 0 & 0 & 1 \\ 0 & -1 & -3 & 0 \\ 2 & 1 & 5 & 3}$$
+
+    \exampleseparator
+
+    $$
+        \begin{sysmatrix}{cccr|cccr}
+            0 & 0 & 2 & 0   & 1 & 0 & 0 & 0 \\
+            1 & 0 & 0 & 1   & 0 & 1 & 0 & 0 \\
+            0 & -1 & -3 & 0 & 0 & 0 & 1 & 0 \\
+            2 & 1 & 5 & 3   & 0 & 0 & 0 & 1
+        \end{sysmatrix}
+        \sim
+        \begin{sysmatrix}{cccr|cccr}
+            0 & 0 & 1 & 0   & \nicefrac{1}{2} & 0 & 0 & 0 \\
+            1 & 0 & 0 & 1   & 0 & 1 & 0 & 0 \\
+            0 & -1 & 0 & 0 & \nicefrac{3}{2} & 0 & 1 & 0 \\
+            2 & 1 & 0 & 3   & -\nicefrac{5}{2} & 0 & 0 & 1
+        \end{sysmatrix}
+    $$
+    $$
+        \sim
+        \begin{sysmatrix}{cccr|cccr}
+            0 & 0 & 1 & 0   & \nicefrac{1}{2} & 0 & 0 & 0 \\
+            1 & 0 & 0 & 1   & 0 & 1 & 0 & 0 \\
+            0 & 1 & 0 & 0 & -\nicefrac{3}{2} & 0 & -1 & 0 \\
+            0 & 1 & 0 & 1   & -\nicefrac{5}{2} & -2 & 0 & 1
+        \end{sysmatrix}
+        \sim
+        \begin{sysmatrix}{cccr|cccr}
+            0 & 0 & 1 & 0   & \nicefrac{1}{2} & 0 & 0 & 0 \\
+            1 & 0 & 0 & 1   & 0 & 1 & 0 & 0 \\
+            0 & 1 & 0 & 0 & -\nicefrac{3}{2} & 0 & -1 & 0 \\
+            0 & 0 & 0 & 1   & -1 & -2 & 1 & 1
+        \end{sysmatrix}
+    $$
+    $$
+        \sim
+        \begin{sysmatrix}{cccr|cccr}
+            0 & 0 & 1 & 0   & \nicefrac{1}{2} & 0 & 0 & 0 \\
+            1 & 0 & 0 & 0   & 1 & 3 & -1 & -1 \\
+            0 & 1 & 0 & 0 & -\nicefrac{3}{2} & 0 & -1 & 0 \\
+            0 & 0 & 0 & 1   & -1 & -2 & 1 & 1
+        \end{sysmatrix}
+        \sim
+        \begin{sysmatrix}{cccr|cccr}
+            1 & 0 & 0 & 0   & 1 & 3 & -1 & -1 \\
+            0 & 1 & 0 & 0 & -\nicefrac{3}{2} & 0 & -1 & 0 \\
+            0 & 0 & 1 & 0   & \nicefrac{1}{2} & 0 & 0 & 0 \\
+            0 & 0 & 0 & 1   & -1 & -2 & 1 & 1
+        \end{sysmatrix}
+    $$
+
+    Damit ist
+    $$
+        \vektor{0 & 0 & 2 & 0 \\ 1 & 0 & 0 & 1 \\ 0 & -1 & -3 & 0 \\ 2 & 1 & 5 & 3}^{-1} = \vektor{1 & 3 & -1 & -1 \\-\nicefrac{3}{2} & 0 & -1 & 0 \\ \nicefrac{1}{2} & 0 & 0 & 0 \\ -1 & -2 & 1 & 1}
+    $$\qed
+\end{example}
+
+\begin{example}{Inverse von verketteten Abbildungen}
+    Ein sehr gutes (aber sperriges) Beispiel zum Finden von Inversen verketteter Abbildungen ist zu finden im \emph{Lineare Algebra Übungsblatt 05} (Aufgabe 6).
+
+    Das Übungsblatt ist erreichbar unter \url{https://fh-aachen.paddel.xyz/#lineare-algebra-2}.
+\end{example}
+
+\subsection{Koordinatentransformationen}
+
+\begin{defi}{Koordinatenabbildung}
+    Sei $V$ ein $K$-Vektorraum mit einer Basis $\mathcal{B} = (b_1, \ldots, b_n)$.
+    Dann existiert genau ein Isomorphismus $\varphi_{\mathcal{B}} : K^n \to V$ mit $\varphi_{\mathcal{B}}(e_i) = v_i$, $1 \leq i \leq n$.
+
+    Der Isomorphismus $\varphi_{\mathcal{B}}$ heißt \emph{Koordinatenabbildung}.
+\end{defi}
+
+\begin{defi}{Koordinaten eines Vektors}
+    Sei $V$ ein $K$-Vektorraum mit einer Basis $\mathcal{B} = (b_1, \ldots, b_n)$.
+    Die Abbildung $K_{\mathcal{B}}(v)$ mit
+    $$
+        K_{\mathcal{B}} : V \to K^n , v = \sum^n_{i=1} \lambda_ib_i \longmapsto \vektor{\lambda_1 \\ \vdots \\ \lambda_n}
+    $$
+    erzeugt die \emph{Koordinaten von v bezüglich der Basis} $\mathcal{B}$.
+
+    Es gilt:
+    \begin{itemize}
+        \item $K_{\mathcal{B}}(v) = \varphi^{-1}_{\mathcal{B}}(v)$
+    \end{itemize}
+\end{defi}
+
+\begin{defi}{Transformationsmatrix}
+    Sei ein Vektorraum $V$ mit den Basen $\mathcal{A} = (a_1, \ldots, a_n)$ und $\mathcal{B} = (b_1, \ldots, b_n)$ gegeben.
+
+    Für einen Vektor $v$ existieren die Darstellungen $K_{\mathcal{A}}(v)$ und $K_{\mathcal{B}}(v)$.
+    Es gilt:
+
+    \begin{center}
+        \begin{tikzpicture}
+            \node (v) {$V$};
+            \node [below left=of v] (k1) {$K^n$};
+            \node [below right=of v] (k2) {$K^n$};
+
+            \draw [->] (k1) -- (v) node [midway, above left] {\small $\varphi_{\mathcal{A}}$};
+            \draw [->] (k2) -- (v) node [midway, above right] {\small $\varphi_{\mathcal{B}}$};
+            \draw [->] (k1) -- (k2) node [midway, below] {\small $T^{\mathcal{A}}_{\mathcal{B}} = \varphi_{\mathcal{B}}^{-1} \circ \varphi_{\mathcal{A}}$};
+        \end{tikzpicture}
+    \end{center}
+
+
+    Die Matrix $T^{\mathcal{A}}_{\mathcal{B}}$ heißt \emph{Transformationsmatrix des Basiswechsels von} $\mathcal{A}$ \emph{nach} $\mathcal{B}$
+
+    Sei $v\in V$ beliebig, $K_{\mathcal{A}}(v) = \vektor{x_1 & \ldots & x_n}^T$ und $K_{\mathcal{B}}(v) = \vektor{y_1 & \ldots & y_n}^T$. Dann gilt:
+    $$
+        \vektor{y_1 \\ \vdots \\ y_n} = T^{\mathcal{A}}_{\mathcal{B}} \vektor{x_1 \\ \vdots \\ x_n}
+    $$
+
+    Sind die Koordinaten von $v$ beqüglich $\mathcal{A}$ bekannt, kann man mithilfe der Matrix $T^{\mathcal{A}}_{\mathcal{B}}$ die Koordinaten von $v$ bezüglich $\mathcal{B}$ berechnen.
+
+    Seien $A$ und $B$ die Matrizen der Basisvektoren von $\mathcal{A}$ bzw. $\mathcal{B}$.
+    Dann gilt:
+
+    \begin{center}
+        \begin{tikzpicture}
+            \node (ka) {$K_{\mathcal{A}}(x)$};
+            \node [right=of ka] (kb) {$K_{\mathcal{B}}(x)$};
+
+            \node [above=of ka] (x1) {$x$};
+            \node [above=of kb] (x2) {$x$};
+
+
+            \draw [->] (x1) -- (x2) node [midway, above] {\small $E$};
+            \draw [->] (ka) -- (x1) node [midway, left] {\small $A$};
+            \draw [->] (kb) -- (x2) node [midway, right] {\small $B$};
+            \draw [->] (ka) -- (kb) node [midway, below] {\small $T^{\mathcal{A}}_{\mathcal{B}}$};
+        \end{tikzpicture}
+    \end{center}
+
+    Man erkennt:
+    $$
+        T^{\mathcal{A}}_{\mathcal{B}} = B^{-1}A
+    $$
+\end{defi}
+
+\begin{example}{Transformationsmatrizen}
+    $\mathcal{A}  = (e_1, e_2, e_3)$, $\mathcal{A}' = (a'_1, a'_2, a'_3)$ und $\mathcal{A}'' = (a''_1, a''_2, a''_3)$ bilden mit den kanonischen Einheitsvektoren $e_1, e_2, e_3$ sowie
+    $$
+        a'_1 = \vektor{1\\0\\0}, a'_2 = \vektor{1\\1\\0}, a'_3 = \vektor{1\\1\\1}
+        \quad \text{bzw.} \quad
+        a''_1 = \vektor{1\\-1\\0}, a''_2 = \vektor{-1\\0\\1}, a''_3 = \vektor{0\\1\\1}
+    $$
+    jeweils Basen des $\R^3$.
+
+    Bestimmen Sie:
+    \begin{enumerate}[a)]
+        \item die Transformationsmatrizen $T^{\mathcal{A}'}_{\mathcal{A}}$ sowie $T^{\mathcal{A}}_{\mathcal{A}'}$.
+        \item die Transformationsmatrizen $T^{\mathcal{A}''}_{\mathcal{A}}$ sowie $T^{\mathcal{A}}_{\mathcal{A}''}$.
+        \item die Transformationsmatrizen $T^{\mathcal{A}'}_{\mathcal{A}''}$ sowie $T^{\mathcal{A}''}_{\mathcal{A}'}$.
+        \item die Koordinaten des Vektors $\vektor{1 & 0 & 1}^T$ bzgl. der Basen $\mathcal{A}'$ und $\mathcal{A}''$.
+    \end{enumerate}
+
+    \exampleseparator
+
+    \begin{enumerate}[a)]
+        \item Berechnen von $\mathcal{A}'^{-1}$:
+              $$
+                  \begin{sysmatrix}{rrr|rrr}
+                      1 & 1 & 1 & 1 & 0 & 0 \\
+                      0 & 1 & 1 & 0 & 1 & 0 \\
+                      0 & 0 & 1 & 0 & 0 & 1
+                  \end{sysmatrix}
+                  \sim
+                  \begin{sysmatrix}{rrr|rrr}
+                      1 & 1 & 0 & 1 & 0 & -1 \\
+                      0 & 1 & 0 & 0 & 1 & -1 \\
+                      0 & 0 & 1 & 0 & 0 & 1
+                  \end{sysmatrix}
+                  \sim
+                  \begin{sysmatrix}{rrr|rrr}
+                      1 & 0 & 0 & 1 & -1 & 0 \\
+                      0 & 1 & 0 & 0 & 1 & -1 \\
+                      0 & 0 & 1 & 0 & 0 & 1
+                  \end{sysmatrix}
+              $$
+
+              Damit gilt:
+              $$
+                  T^{\mathcal{A}'}_{\mathcal{A}} = \mathcal{A}^{-1}\mathcal{A}' = \vektor{1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1} \vektor{1 & 1 & 1 \\ 0 & 1 & 1 \\ 0 & 0 & 1} = \vektor{1 & 1 & 1 \\ 0 & 1 & 1 \\ 0 & 0 & 1}
+              $$
+              und
+              $$
+                  T^{\mathcal{A}}_{\mathcal{A}'} = \mathcal{A}'^{-1}\mathcal{A} = \vektor{1 & -1 & 0 \\ 0 & 1 & -1 \\ 0 & 0 & 1} \vektor{1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1} = \vektor{1 & -1 & 0 \\ 0 & 1 & -1 \\ 0 & 0 & 1}.
+              $$\qed
+        \item Berechnen von $\mathcal{A}''^{-1}$:
+              $$
+                  \begin{sysmatrix}{rrr|rrr}
+                      1 & -1 & 0 & 1 & 0 & 0 \\
+                      -1 & 0 & 1 & 0 & 1 & 0 \\
+                      0 & 1 & 1 & 0 & 0 & 1
+                  \end{sysmatrix}
+                  \sim
+                  \ldots
+                  \sim
+                  \begin{sysmatrix}{rrr|rrr}
+                      1 & 0 & 0 & \nicefrac{1}{2} & -\nicefrac{1}{2} & \nicefrac{1}{2} \\
+                      0 & 1 & 0 & -\nicefrac{1}{2} & -\nicefrac{1}{2} & \nicefrac{1}{2}\\
+                      0 & 0 & 1 & \nicefrac{1}{2} & \nicefrac{1}{2} & \nicefrac{1}{2}
+                  \end{sysmatrix}
+                  =
+                  \frac{1}{2}\vektor{1 & -1 & 1 \\ -1 & -1 & 1 \\ 1 & 1 & 1}
+              $$
+              Damit gilt:
+              $$
+                  T^{\mathcal{A}''}_{\mathcal{A}} = \mathcal{A}^{-1}\mathcal{A}'' = \vektor{1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1} \vektor{1 & -1 & 0 \\ -1 & 0 & 1 \\ 0 & 1 & 1} = \vektor{1 & -1 & 0 \\ -1 & 0 & 1 \\ 0 & 1 & 1}
+              $$
+              und
+              $$
+                  T^{\mathcal{A}}_{\mathcal{A}''} = \mathcal{A}''^{-1}\mathcal{A} = \frac{1}{2}\vektor{1 & -1 & 1 \\ -1 & -1 & 1 \\ 1 & 1 & 1} \vektor{1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1} = \frac{1}{2}\vektor{1 & -1 & 1 \\ -1 & -1 & 1 \\ 1 & 1 & 1}.
+              $$\qed
+    \end{enumerate}
+
+\end{example}
+
+\begin{example}{Transformationsmatrizen (Fortsetzung)}
+    \begin{enumerate}[a)]
+        \setcounter{enumi}{2}
+        \item Mit den bisherigen Ergebnissen gilt:
+              $$
+                  T^{\mathcal{A}'}_{\mathcal{A}''} = \mathcal{A}''^{-1}\mathcal{A}' = \frac{1}{2}\vektor{1 & -1 & 1 \\ -1 & -1 & 1 \\ 1 & 1 & 1} \vektor{1 & 1 & 1 \\ 0 & 1 & 1 \\ 0 & 0 & 1} = \frac{1}{2}\vektor{1 & 0 & 1 \\ -1 & -2 & -1 \\ 1 & 2 & 3}
+              $$
+              und
+              $$
+                  T^{\mathcal{A}''}_{\mathcal{A}'} = \mathcal{A}'^{-1}\mathcal{A}'' = \vektor{1 & -1 & 0 \\ 0 & 1 & -1 \\ 0 & 0 & 1} \vektor{1 & -1 & 0 \\ -1 & 0 & 1 \\ 0 & 1 & 1} = \vektor{2 & -1 & -1 \\ -1 & -1 & 0 \\ 0 & 1 & 1}.
+              $$\qed
+        \item Sei $x = \vektor{1 & 0 & 1}^T$.
+
+              Dann gilt für $x$ bzgl. $\mathcal{A}'$:
+              $$
+                  x = K_{\mathcal{A}'}(x) = T^{\mathcal{A}}_{\mathcal{A}'} \cdot K_{\mathcal{A}}(x) = \vektor{1 & -1 & 0 \\ 0 & 1 & -1 \\ 0 & 0 & 1} \vektor{1 \\ 0 \\ 1} = \vektor{1 \\ -1 \\ 1},
+              $$
+              bzw. bzgl. $\mathcal{A}''$:
+              $$
+                  x = K_{\mathcal{A}''}(x) = T^{\mathcal{A}}_{\mathcal{A}''} \cdot K_{\mathcal{A}}(x) = \frac{1}{2}\vektor{1 & -1 & 1 \\ -1 & -1 & 1 \\ 1 & 1 & 1} \vektor{1 \\ 0 \\ 1} = \vektor{1 \\ 0 \\ 1}.
+              $$\qed
+    \end{enumerate}
+\end{example}
+
+\begin{defi}{Darstellungsmatrix mit Basistransformation}
+    Seien $V$ und $W$ endlich erzeugt mit Basen $\mathcal{A}$ und $\mathcal{A}'$ bzw. $\mathcal{B}$ und $\mathcal{B}'$.
+    Sei weiter $f : V \to W$ linear.
+    Dann gilt:
+    $$
+        M^{\mathcal{A}'}_{\mathcal{\mathcal{B}'}}(f) = T^{\mathcal{B}}_{\mathcal{B}'} \cdot M^{\mathcal{A}}_{\mathcal{\mathcal{B}}}(f) \cdot T^{\mathcal{A}'}_{\mathcal{A}}
+    $$
+
+    Zur Visualisierung dient folgendes kommutative Diagramm:
+    \begin{center}
+        \begin{tikzpicture}
+            \node (kn1) {$K^n$};
+            \node [above right=of kn1] (v) {$V$};
+            \node [above left=of v] (kn2) {$K^n$};
+            \node [right=of v] (w) {$W$};
+            \node [above right=of w] (km2) {$K^m$};
+            \node [below right=of w] (km1) {$K^m$};
+
+            \draw [->] (kn1) -- (v) node [midway, above left] {\small $\varphi_{\mathcal{A}'}$};
+            \draw [->] (kn2) -- (v) node [midway, above right] {\small $\varphi_{\mathcal{A}}$};
+            \draw [->] (km1) -- (w) node [midway, above right] {\small $\varphi_{\mathcal{B}'}$};
+            \draw [->] (km2) -- (w) node [midway, above left] {\small $\varphi_{\mathcal{B}}$};
+
+            \draw [->] (v) -- (w) node [midway, above] {\small $f$};
+
+            \draw [->] (kn2) -- (km2) node [midway, above] {\small $M^{\mathcal{A}}_{\mathcal{B}} (f)$};
+            \draw [->] (kn1) -- (km1) node [midway, below] {\small $M^{\mathcal{A}'}_{\mathcal{B}'} (f)$};
+
+            \draw [->] (kn2) -- (kn1) node [midway, left] {\small $T^{\mathcal{A}}_{\mathcal{A}'}$};
+            \draw [->] (km2) -- (km1) node [midway, right] {\small $T^{\mathcal{B}}_{\mathcal{B}'}$};
+        \end{tikzpicture}
+    \end{center}
+\end{defi}
+
+\section{Determinanten}
+
+\begin{defi}{Elementarmatrix}
+    Seien $1\leq i$, $j \leq n$ mit $i \neq j$ und $\lambda \in K \setminus \{0\}$ gegeben.
+    Dann sei
+    $$
+        C1 := \vektor{1 & & & & \\ & \ddots & & & \\ & \lambda & \ddots & & \\ & & & \ddots & & \\ & & & & \ddots & \\ & & & & & 1} \in K^{n \times n}
+    $$
+    wobei der $(i, j)$-te Eintrag den Wert $\lambda$ annehmen soll und alle anderen Einträge außerhalb der Hauptdiagonalen $0$ sein sollen.
+
+    Sei $C2$ die Matrix, die man aus der Einheitsmatrix gewinnt, indem man die $i$-te und $j$-te Spalte vertauscht, also
+    $$
+        C2 := \vektor{1 & & & & \\ & \ddots & & & \\ &  & 0 & &1 \\ & & & \ddots & & \\ & & 1 & & 0 & \\ & & & & & 1} \in K^{n \times n}
+    $$
+
+    Zuletzt definieren wir
+    $$
+        C3 := \vektor{1 & & & & \\ & \ddots & & & \\ &  & \lambda & & \\ & & & \ddots & & \\ & & & & \ddots & \\ & & & & & 1} \in K^{n \times n}
+    $$
+
+    Matrizen der Gestalt $C1$, $C2$ oder $C3$ nennt man \emph{Elementarmatrizen}.
+
+    Es gilt:
+    \begin{itemize}
+        \item Die Multiplikation einer Matrix $A$ von links mit einer Elementarmatrix entspricht der Anwendung einer elementaren Zeilenoperation des Gauß-Verfahrens auf $A$.
+              \subitem Notation: $Zi$ statt $Ci$
+        \item Die Multiplikation einer Matrix $A$ von rechts mit einer Elementarmatrix entspricht der Anwendung einer elementaren Spaltenoperation auf $A$.
+              \subitem Notation: $Si$ statt $Ci$
+    \end{itemize}
+
+    \begin{itemize}
+        \item $C1$ entspricht dem Addieren von $\lambda$-mal Spalte bzw. Zeile $j$ auf Spalte bzw. Zeile $i$.
+        \item $C2$ entspricht dem Tauschen von Spalte bzw. Zeile $i$ mit Spalte bzw. Zeile $j$.
+        \item $C3$ entspricht dem Multiplizieren von Spalte bzw. Zeile $i$ mit $\lambda$.
+    \end{itemize}
+\end{defi}
+
+\begin{example}{Elementarmatrizen}
+    Sei
+    $$
+        A = \vektor{1 & 0 \\ -5 & 2}
+    $$
+    Bestimmen Sie Elementarmatrizen $M_1$ und $M_2$ mit $M_1M_2A = E$.
+
+    \exampleseparator
+
+    Es gilt:
+    $$
+        \begin{sysmatrix}{cc|cc}
+            1 & 0 & 1 & 0 \\
+            -5 & 2 & 0 & 1
+        \end{sysmatrix}
+        \sim
+        \begin{sysmatrix}{cc|cc}
+            1 & 0 & 1 & 0 \\
+            0 & 2 & 5 & 1
+        \end{sysmatrix}
+        \sim
+        \begin{sysmatrix}{cc|cc}
+            1 & 0 & 1 & 0 \\
+            0 & 1 & \frac{5}{2} & \frac{1}{2}
+        \end{sysmatrix}
+    $$
+    Damit gilt:
+    $$
+        A^{-1} = \vektor{1 & 0 \\ \frac{5}{2} & \frac{1}{2}} =\footnote{Das wird aus dem Kontext ersichtlich: Für $A^{-1}$ wird zuerst fünfmal \Rnum{1} auf \Rnum{2} addiert und anschließend wird \Rnum{2} mit $\frac{1}{2}$ skaliert.} \vektor{1 & 0 \\ 0 & \frac{1}{2}} \cdot \vektor{1 & 0 \\ 5 & 1}
+    $$
+    und schlussendlich:
+    $$
+        A^{-1} \cdot A = \vektor{1 & 0 \\ 0 & \frac{1}{2}} \cdot \vektor{1 & 0 \\ 5 & 1} \cdot A = M_1 M_2  A
+    $$\qed
+\end{example}
+
+\begin{defi}{Eigenschaften der Determinante}
+    Für $A, B \in K^{n\times n}$ gilt:
+    \begin{itemize}
+        \item $S1$ und $Z1$ ändern die Determinante einer Matrix nicht. ($\det(C1) = 1$)
+        \item $S2$ und $Z2$ kehren das Vorzeichen der Determinante um. ($\det(C2) = -1$)
+        \item $S3$ und $Z3$ vervielfachen den Wert der Determinante um den Faktor $\lambda$. ($\det(C3) = \lambda$)
+    \end{itemize}
+
+    \begin{itemize}
+        \item $\det(A) = \det(A^T)$
+        \item Besitzt $A$ zwei gleiche Spalten bzw. Zeilen, so gilt $\det(A) = 0$.
+        \item $A$ invertierbar $\iff \det(A) \neq 0$
+        \item $\det(AB) = \det(A)\det(B)$
+        \item $A$ invertierbar $\implies \det(A^{-1}) = (\det(A))^{-1}$
+    \end{itemize}
+\end{defi}
+
+\subsection{Verfahren zur Berechnung der Determinante}
+
+\begin{defi}{Laplacescher Entwicklungssatz}
+    Für $A \in K^{n\times n}$ bezeichne $A_{ij}$ die Matrix in $K^{(n-1)\times (n-1)}$, die durch Streichen der $i$-ten Zeile und der $j$-ten Spalte aus $A$ hervorgeht.
+
+    Es sei $A = (a_{ij}) \in K^{n\times n}$ und $j$ mit $1 \leq j \leq n$.
+    Dann gilt:
+    $$
+        \det(A) = \sum^n_{i=1} (-1)^{i+j} a_{ij}\det(A_{ij})
+    $$
+    Man spricht von der \emph{Entwicklung der Determinante nach der j-ten Spalte}.
+    Ebenso ist eine \emph{Entwicklung der Determinante nach der i-ten Zeile} möglich:
+    $$
+        \det(A) = \sum^n_{j=1} (-1)^{i+j} a_{ij}\det(A_{ij})
+    $$
+\end{defi}
+
+\begin{defi}{Determinante mit Gauß-Algorithmus}
+    Zur Berechnung mit dem Gauß-Algorithmus bringt man die gegebene Matrix $A$ mittels äquivalenter Zeilen- oder Spaltenumformungen $Z1$-$Z3$ bzw. $S1$-$S3$ auf Stufenform $B$ und errechnet dann nach Folgerung $\det(A)$ leicht als Produkt der Hauptdiagonalelelemente von $B$, multipliziert mit den Determinanten der genutzten Elementarmatrizen.
+\end{defi}
+
+\begin{example}{Determinante mit Gauß-Algorithmus}
+    Berechnen Sie die Determinante von $A = \vektor{4 & 5 & 6 \\ 2 & -2 & -1 \\ 0 & 1 & -3}$ mit Hilfe des Gauß-Algorithmus.
+
+    \exampleseparator
+
+    $$
+        \vektor{4 & 5 & 6 \\ 2 & -2 & -1 \\ 0 & 1 & -3}
+        \underset{}{\xrightarrow{\text{\Rnum{2}: \Rnum{2} + 2 \Rnum{3}}}}
+        \vektor{4 & 5 & 6 \\ 2 & 0 & -7 \\ 0 & 1 & -3}
+        \underset{}{\xrightarrow{\text{\Rnum{1}: \Rnum{1} - 5 \Rnum{3}}}}
+        \vektor{4 & 0 & 21 \\ 2 & 0 & -7 \\ 0 & 1 & -3}
+        \underset{}{\xrightarrow{\text{\Rnum{1}: \Rnum{1} - 2 \Rnum{2}}}}
+        \vektor{0 & 0 & 35 \\ 2 & 0 & -7 \\ 0 & 1 & -3}
+    $$
+    $$
+        \vektor{0 & 0 & 35 \\ 2 & 0 & -7 \\ 0 & 1 & -3}
+        \underset{\nicefrac{1}{35} \cdot \det(A)}{\xrightarrow{\text{\Rnum{1}: \Rnum{1} - 2 \Rnum{2}}}}
+        \vektor{0 & 0 & 1 \\ 2 & 0 & -7 \\ 0 & 1 & -3}
+        \underset{}{\xrightarrow{\text{(\Rnum{2}: \Rnum{2} + 7 \Rnum{1})} \ \circ \ \text{(\Rnum{3}: \Rnum{3} + 3 \Rnum{1})}}}
+        \vektor{0 & 0 & 1 \\ 2 & 0 & 0 \\ 0 & 1 & 0}
+    $$
+    $$
+        \vektor{0 & 0 & 1 \\ 2 & 0 & 0 \\ 0 & 1 & 0}
+        \underset{(-1)\cdot(-1)\cdot \det A}{\xrightarrow{\text{(\Rnum{1}$\,\leftrightarrow\,$\Rnum{3})} \ \circ \ \text{(\Rnum{1}$\,\leftrightarrow\,$\Rnum{2})}}}
+        \vektor{2 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1}
+    $$
+    Damit gilt:
+    $$
+        \det A = (-1) \cdot (-1) \cdot 35 \cdot \dvektor{2 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1} = 35 \cdot 2 = 70
+    $$\qed
+\end{example}
+
+\begin{bonus}{Tipps zur Determinantenberechnung}
+    \begin{enumerate}
+        \item Für $(2\times 2)$- und $(3\times 3)$-Matrizen empfiehlt sich die Sarrus-Regel.\footnote{Siehe Lineare Algebra 1}
+        \item Die Laplace-Entwicklung ist dann vorzuziehen, wenn in einer Spalte oder Zeile nur wenige Nicht-Null-Einträge vorhanden sind, weil bei einer Entwicklung nach dieser Zeile bzw. Spalte die meisten Summanden erst gar nicht berechnet werden müssen.
+        \item Es können zur Berechnung der Determinanten mehrere Verfahren kombiniert werden, z.B. $(4\times 4)$-Matrizen zuerst nach Laplace entwickeln und die dann entstehenden Determinanten von $(3\times 3)$-Matrizen direkt mit der Sarrus-Regel berechnen.
+    \end{enumerate}
+\end{bonus}
+
+\begin{bonus}{Inverse einer $(2\times 2)$-Matrix}
+    Sei $A$ definiert als $A = \vektor{a & b \\ c & d}$. Dann gilt:
+    $$
+        A^{-1} = \frac{1}{\det(A)} \vektor{d & -b \\ -c & a} = \frac{1}{ad - bc} \vektor{d & -b \\ -c & a}
+    $$
+\end{bonus}
+
+\section{Lineare Gleichungssysteme}
+
+\subsection{Lösbarkeit eines linearen Gleichungssystems}
+
+\begin{defi}{Lineares Gleichungssystem}
+    Seien $A = (a_{ij}) \in K^{m\times n}$ und $b = \vektor{b_1 & \ldots & b_m}^T$.
+    Dann heißt
+    $$
+        \begin{aligned}
+             & a_{11}x_1 &  & + \ \ldots \ + &  & a_{1n}x_n &  & = &  & b_1 \\
+             & \ldots                                                       \\
+             & a_{m1}x_1 &  & + \ \ldots \ + &  & a_{mn}x_n &  & = &  & b_m
+        \end{aligned}
+    $$
+    \emph{lineares Gleichungssystem} bzgl. $(x_1, \ldots, x_n)$ mit Koeffizienten $a_{ij}$ in $K$.
+    Hierbei sind $x_1, \ldots, x_n$ die \emph{Unbekannten} des Systems.
+
+    Für $b = 0_{m1}$ nennt man das lineare Gleichungssystem \emph{homogen}, sonst \emph{inhomogen}.
+
+    Jedes lineare Gleichungssystem kann in der Form $Ax = b$ geschrieben werden.
+\end{defi}
+
+\begin{defi}{Lösungsmenge}
+    Die \emph{Lösungsmenge} $L(A, b)$ des zu $(A, b)$ gehörigen Gleichungssystems ist festgelegt durch
+    $$
+        L(A, b) := \{x \in K^n \mid Ax = b\}
+    $$
+\end{defi}
+
+\begin{defi}{Spaltenrang}
+    Die lineare Abbildung $L_A : K^n \to K^m$ sei gegeben durch $L_A(x) := Ax$. Dann sei $\rg(A) := \rg(L_A)$.
+    Der \emph{Spaltenrang} $\rg_S(A)$ sei die maximale Anzahl linear unabhängiger Spaltenvektoren von $A$.
+
+    Es gilt $\rg(A) = \rg_S(A)$.
+\end{defi}
+
+\begin{defi}{Zeilenrang}
+    Für $A \in K^{m\times n}$ sei die maximale Anzahl linear unabhängiger Zeilenvektoren von $A$ der \emph{Zeilenrang} $\rg_Z(A)$ von $A$.
+
+    Es gilt:
+    $$
+        \rg(A) = \rg_S(A) = \rg_Z(A)
+    $$
+\end{defi}
+
+\begin{defi}{Lösbarkeit von linearen Gleichungssystemen}
+    Das lineare Gleichungssystem $Ax = b$ ist genau dann lösbar, wenn gilt:
+    $$
+        \rg(a_1, \ldots, a_n) = \rg(a_1, \ldots, a_n, b)
+    $$
+    Kürzer schreibt man $\rg(A) = \rg(A, b)$.
+
+    $Ax = b$ ist also genau dann eindeutig lösbar, falls $\ker(A) = \{0\} \iff \rg(A) = \rg(A, b) = n$.
+\end{defi}
+
+\begin{bonus}{Äquivalente Bedingungen für eindeutige Lösbarkeit}
+    Sei $K \in \{\R, \C\}$.
+    Für $A \in K^{n\times n}$ und die dadurch gegebene lineare Abbildung $L_A$ sind folgende Bedingungen äquivalent:
+    \begin{enumerate}
+        \item $A$ ist invertierbar.
+        \item $Ax = 0$ hat nur die triviale Lösung $x=0$.
+        \item Durch Zeilen- und Spaltenumformungen kann $A$ auf die Einheitsmatrix transformiert werden.
+        \item $A$ ist darstellbar als Produkt von Elementarmatrizen.
+        \item $Ax = b$ besitzt für jedes $b \in K^n$ mindestens eine Lösung.
+        \item $Ax = b$ hat genau eine Lösung für jedes $b \in K^n$.
+        \item $\det(A) \neq 0$
+        \item $\im(A) = K^n$
+        \item $L_A$ ist bijektiv.
+        \item Die Spaltenvektoren von $A$ sind linear unabhängig.
+        \item Die Zeilenvektoren von $A$ sind linear unabhängig.
+        \item Die Spaltenvektoren von $A$ bilden eine Basis von $K^n$.
+        \item Die Zeilenvektoren von $A$ bilden eine Basis von $K^n$.
+        \item $\rg(A)=n$
+        \item $\ker(L_A) = \{0\}$
+        \item $(\ker(L_A))^\perp = K^n$
+        \item Das orthogonale Komplement des von den Zeilen von $A$ aufgespannten Raums ist $\{0\}$.
+        \item $A^TA$ ist invertierbar.
+    \end{enumerate}
+\end{bonus}
+
+\begin{defi}{Allgemeine Lösung eines linearen Gleichungssystems}
+    Sei $x_s \in K^n$ eine (spezielle) Lösung von $Ax = b$.
+    Dann gilt:
+    $$
+        L(A, b) = x_s + \ker(A) = \{x_s + x \mid x \in \ker(A)\}
+    $$
+    bzw., wenn $(v_1, \ldots, v_r)$ eine Basis von $\ker(A)$ ist:
+    $$
+        L(A, b) = \{x + \lambda_1 v_1 + \ldots + \lambda_rv_r \mid \lambda_i \in K\}
+    $$
+\end{defi}
+
+\begin{example}{Allgemeine Lösung eines linearen Gleichungssystems}
+    Finden Sie die Lösung des linearen Gleichungssystems
+    $$
+        \vektor{-1 & 1 & 0 \\ 0 & 1 & 1}x = \vektor{0 \\ 2}
+    $$
+    mit Hilfe folgender Schritte:
+    \begin{enumerate}[a)]
+        \item Bestimmen Sie den Kern der Abbildungsmatrix.
+        \item Erraten Sie eine spezielle Lösung.
+        \item Bestimmen Sie die allgemeine Lösung.
+    \end{enumerate}
+
+    \exampleseparator
+
+    \begin{enumerate}[a)]
+        \item $$
+                  \begin{sysmatrix}{rrr|r}
+                      -1 & 1 & 0 & 0 \\
+                      0 & 1 & 1 & 0
+                  \end{sysmatrix}
+                  \quad \implies \quad
+                  \ker \vektor{-1 & 1 & 0 \\ 0 & 1 & 1} = \scalarprod{\vektor{1 \\ 1 \\ -1}}
+              $$\qed
+        \item $$
+                  x = \vektor{0\\0\\2} \quad \implies \quad \vektor{-1 & 1 & 0 \\ 0 & 1 & 1}\cdot \vektor{0\\0\\2} = \vektor{0 \\ 2}
+              $$\qed
+        \item Es gilt:
+              $$
+                  L \left({\vektor{-1 & 1 & 0 \\ 0 & 1 & 1}, \vektor{0 \\ 2}} \right) = \vektor{0\\0\\2} + \ker\vektor{-1 & 1 & 0 \\ 0 & 1 & 1} = \vektor{0\\0\\2} + \lambda \cdot \vektor{1 \\ 1 \\ -1}, \quad \lambda \in \R
+              $$\qed
+    \end{enumerate}
+\end{example}
+
+\begin{defi}{Cramersche Regel}
+    Es seien $A = \vektor{a_1 & \ldots & a_n} \in K^{n\times n}$ und $x, b \in K^n$ sowie $Ax=b$ ein lineares Gleichungssystem, und es gelte $\det(A) \neq 0$.
+    Seien
+    $$
+        A_i := \vektor{a_1 & \ldots & a_{i-1} & b & a_{i+1} & \ldots & a_n}, 1 \leq i \leq n
+    $$
+    Dann gilt:
+    $$
+        x_i = \frac{\det(A_i)}{\det(A)}
+    $$
+\end{defi}
+
+\begin{example}{Cramersche Regel}
+    In der Elektrotechnik ergeben sich eine Widerstandsmatrix $R$ und ein Quellspannungsvektor $U$:
+    $$
+        R = \vektor{1 & 3 & 0 \\ 1 & 4 & 1 \\ 2 & 1 & 1}, \quad U = \vektor{5 \\ 9 \\ 8}.
+    $$
+    Gesucht ist der Stromvektor $I$, der sich durch Lösen des linearen Gleichungssystems
+    $$
+        R \cdot I = U
+    $$
+    ergibt.
+    Bestimmen Sie die Lösung mithilfe der Cramerschen Regel.
+
+    \exampleseparator
+
+    Es gilt:
+    $$
+        \vektor{1 & 3 & 0 \\ 1 & 4 & 1 \\ 2 & 1 & 1}  \vektor{i_1 \\ i_2 \\ i_3} = \vektor{5 \\ 9 \\ 8}
+    $$
+
+    Nach der Cramerschen Regel gilt:\footnote{$\abs{R} = -1 \cdot (1-6) + 1 \cdot (4-3) = 6$}
+    $$
+        i_1 = \frac{\dvektor{5 & 3 & 0 \\ 9 & 4 & 1 \\ 8 & 1 & 1}}{\abs{R}} = \frac{-1 \cdot (5-24) + 1 \cdot (20-27)}{6} = \frac{12}{6} = 2
+    $$
+    $$
+        i_2 = \frac{\dvektor{1 & 5 & 0 \\ 1 & 9 & 1 \\ 2 & 8 & 1}}{\abs{R}} = \frac{-1 \cdot (8-10) + 1 \cdot (9-5)}{6} = \frac{6}{6} = 1
+    $$
+    $$
+        i_3 = \frac{\dvektor{1 & 3 & 5 \\ 1 & 4 & 9 \\ 2 & 1 & 8}}{\abs{R}} = \frac{32+54+5-40-9-24}{6} = \frac{18}{6} = 3
+    $$
+
+    Damit ist der Stromvektor $I$ gegeben mit $I = \vektor{2 & 1 & 3}^T$.\qed
+\end{example}
+
+\subsection{Über- und unterbestimmte lineare Gleichungssysteme}
+
+\begin{defi}{Normalgleichung}
+    Sei $p_A(b)$ die Projektion eines Vektors $b \in \R^m$ auf den von den Vektoren $A = \vektor{a_1 & \ldots & a_n} \in \R^{m\times n}$ aufgespannten Unterraum $U$, also das Bild von $A$.
+
+    Damit existiert ein $x \in \R^n$ mit
+    $$
+        p_A(b) = \sum^n_{k=1} x_ka_k = Ax
+    $$
+    Dann gilt
+    $$
+        b - p_A(b) \iff \ldots \iff A^TAx = A^Tb
+    $$
+
+    Die Gleichungen $A^TAx = A^Tb$ heißen \emph{Normalgleichungen}.
+
+    Die Normalgleichungen sind für jede relle Matrix $A \in \R^{m\times n}$ lösbar.
+
+\end{defi}
+
+\begin{defi}{Verallgemeinerte Inverse}
+    Gegeben ist ein lineares Gleichungssystem $Ax=b$ mit $A \in \R^{m\times n}$, $x \in \R^n$, $b \in \R^m$.
+
+    Im Fall $\rg(A) = n$ (voller Spaltenrang) existiert mit
+    $$
+        x = (A^TA)^{-1}A^Tb
+    $$
+    eine eindeutige Lösung.
+    In diesem Fall heißt $(A^TA)^{-1}A^T$ \emph{verallgemeinerte Inverse} von $A$.
+
+    Im Fall $\rg(A) = m$ (voller Zeilenrang) existiert mit
+    $$
+        x = A^T(AA^T)^{-1}b
+    $$
+    eine eindeutige Lösung.
+    In diesem Fall heißt $A^T(AA^T)^{-1}$ \emph{verallgemeinerte Inverse} von $A$.
+\end{defi}
+
+\begin{algo}{Lösen von überbestimmten Gleichungssystemen (Methode der kleinsten Quadrate)}
+    Gegeben ist das \emph{überbestimmte} Gleichungssystem
+    $$
+        Ax = b, \quad A \in \R^{m\times n}, \, b\in \R^m, \, m \geq n
+    $$
+    Im Fall $\rg(A) = n$ (voller Spaltenrang) gilt mithilfe der verallgemeinerten Inverse für
+    $$
+        x_s = (A^TA)^{-1}A^Tb
+    $$
+    dass
+    $$
+        \norm{b-Ax_s} = \min_{z\in\R^n} \norm{b-Az}
+    $$
+
+    Der Vektor $x_s$ heißt \emph{Näherungslösung nach der Methode der kleinsten Quadrate}.
+\end{algo}
+
+\begin{example}{Methode der kleinsten Quadrate}
+    Eine Messreihe ergibt zu den Zeiten $t = 1,2,3,4,5$ in Sekunden folgende Temperaturwerte:
+
+    \begin{center}
+        \begin{tabular}{l | CCCCC}
+            $t$ Sekunden        & 1   & 2   & 3    & 4    & 5    \\
+            \hline
+            $y(t)\si{\celsius}$ & 0.9 & 5.8 & 11.4 & 12.1 & 12.9 \\
+        \end{tabular}
+    \end{center}
+
+    Stellen Sie das überbestimmte Gleichungssystem für die unbekannten Parameter $a$ und $b$ auf und bestimmen Sie diese nach der Methode der kleinsten Quadrate, wenn folgende Beziehung zwischen $y$ und $t$ gilt:
+    $$
+        y(t) = a \cdot t + b \cdot \sin\left( -t \cdot \frac{\pi}{2} \right)
+    $$
+    \exampleseparator
+
+    \begin{center}
+        \begin{tikzpicture}[scale=1]
+            \begin{axis}[
+                    %view={45}{15},
+                    width=15cm,
+                    unit vector ratio*=1 1,
+                    axis lines = middle,
+                    grid=major,
+                    ymin=-.5,
+                    ymax=14,
+                    xmin=0,
+                    xmax=7,
+                    %zmin=-1,
+                    %zmax=10,
+                    xlabel = $x$,
+                    ylabel = $y$,
+                    %zlabel = $z$,
+                    %xtick style={draw=none},
+                    %ytick style={draw=none},
+                    %ztick style={draw=none},
+                    xtick distance={1},
+                    ytick distance={1},
+                    %ztick distance={1},
+                    %xticklabels=\empty,
+                    %yticklabels=\empty,
+                    %zticklabels=\empty,
+                    disabledatascaling,
+                ]
+
+                \addplot[domain=0:6, samples=100, color=red]{3.02308 * x - 2.22308 * sin(deg(x * pi/2))};
+
+                \node[label={315:{(1,0.9)}},circle,fill,inner sep=1pt] at (axis cs:1,0.9) {};
+                \node[label={135:{(2,5.8)}},circle,fill,inner sep=1pt] at (axis cs:2,5.8) {};
+                \node[label={135:{(3,11.4)}},circle,fill,inner sep=1pt] at (axis cs:3,11.4) {};
+                \node[label={135:{(4,12.1)}},circle,fill,inner sep=1pt] at (axis cs:4,12.1) {};
+                \node[label={315:{(5,12.9)}},circle,fill,inner sep=1pt] at (axis cs:5,12.9) {};
+            \end{axis}
+        \end{tikzpicture}
+    \end{center}
+\end{example}
+
+\begin{example}{Methode der kleinsten Quadrate (Fortsetzung)}
+    Mit den gegebenen Daten erhalten wir folgendes LGS:
+    $$
+        Ax = b \quad \iff \quad \vektor{1 & -\sin \frac{\pi}{2} \\ 2 & -\sin \pi \\ 3 & -\sin \frac{3\pi}{2} \\ 4 & -\sin 2 \pi \\ 5 & -\sin \frac{5\pi}{2}}\vektor{a \\ b} = \vektor{0.9 \\ 5.8 \\ 11.4 \\ 12.1 \\ 12.9} \quad \iff \quad \vektor{1 & -1 \\ 2 & 0 \\ 3 & 1 \\ 4 & 0 \\ 5 & -1}\vektor{a \\ b} = \vektor{0.9 \\ 5.8 \\ 11.4 \\ 12.1 \\ 12.9}
+    $$
+    mit
+    $$
+        \rg(A) = 2 = n \quad \implies \quad A^TAx = A^Tb \quad \iff \quad x = \left(A^T A\right)^{-1} A^T b
+    $$
+    Dann gilt nach der Methode der kleinsten Quadrate:
+    $$
+        \begin{aligned}
+            x_s \quad = \quad & \left(A^T A\right)^{-1} A^T b                     \\
+            = \quad           & \left(\vektor{1               & 2  & 3  & 4  & 5  \\ -1 & 0 & 1 & 0 & -1} \vektor{1 & -1 \\ 2 & 0 \\ 3 & 1 \\ 4 & 0 \\ 5 & -1}\right)^{-1} \vektor{1 & 2 & 3 & 4 & 5 \\ -1 & 0 & 1 & 0 & -1} \vektor{0.9 \\ 5.8 \\ 11.4 \\ 12.1 \\ 12.9} \\
+            = \quad           & \vektor{55                    & -3                \\ -3 & 3}^{-1} \vektor{1 & 2 & 3 & 4 & 5 \\ -1 & 0 & 1 & 0 & -1} \vektor{0.9 \\ 5.8 \\ 11.4 \\ 12.1 \\ 12.9} \\
+            = \quad           & \frac{1}{156}\vektor{3        & 3                 \\ 3 & 55} \vektor{1 & 2 & 3 & 4 & 5 \\ -1 & 0 & 1 & 0 & -1} \vektor{0.9 \\ 5.8 \\ 11.4 \\ 12.1 \\ 12.9} \\
+            = \quad           & \frac{1}{156}\vektor{0        & 6  & 12 & 12 & 12 \\ -52 & 6 & 64 & 12 & -40} \vektor{0.9 \\ 5.8 \\ 11.4 \\ 12.1 \\ 12.9} \\
+            = \quad           & \frac{1}{156}\vektor{471.6                        \\ 346.8} = \vektor{3.02308 \\ 2.22308} = \vektor{a \\ b}
+        \end{aligned}
+    $$
+
+    Damit gilt insgesamt:
+    $$
+        y(t) = a \cdot t + b \cdot \sin\left( -t \cdot \frac{\pi}{2} \right) = 3.02308 \cdot t + 2.22308 \cdot \sin\left( -t \cdot \frac{\pi}{2} \right)
+    $$\qed
+\end{example}
+
+
+\begin{algo}{Lösen von unterbestimmten Gleichungssystemen}
+    Gegeben ist das \emph{unterbestimmte} Gleichungssystem
+    $$
+        Ax = b, \quad A \in \R^{m\times n}, \, b\in \R^m, \, m \leq n
+    $$
+    Im Fall $\rg(A) = m$ (voller Zeilenrang) gilt mithilfe der verallgemeinerten Inverse für
+    $$
+        x_s = A^T(AA^T)^{-1}b
+    $$
+    dass
+    $$
+        \norm{x_s} = \min_{Ax=b} \norm{x} \quad \land \quad x_s \perp \ker(A)
+    $$
+
+    Der Vektor $x_s$ ist eine \emph{eindeutige Lösung mit minimaler Norm}.
+\end{algo}
+
+\begin{example}{Lösen von unterbestimmten Gleichungssystemen}
+    Die Punkte $A(6;0;0)$, $B(2;1;3)$ und $C(-2;-2;2)$ liegen in einer Ebene $E$.
+    \begin{enumerate}[a)]
+        \item Stellen Sie die Hessesche Normalform der Ebene auf.
+              Wie groß ist der Abstand der Ebene zum Ursprung?
+        \item Welcher Punkt in der Ebene hat den kleinsten Abstand zum Ursprung?
+              Stellen Sie dazu das zugehörige unterbestimmte LGS auf und finden Sie die Lösung mit Hilfe der verallgemeinerten Inverse.
+    \end{enumerate}
+
+    \exampleseparator
+
+    \begin{enumerate}[a)]
+        \item Wir wählen uns $\vec{a}$ (Ortsvektor von $A$) als Stützvektor und die Vektoren $v = \vec{b} - \vec{a}$ und $w = \vec{c} - \vec{a}$ als Richtungsvektoren der Ebene.
+              Dann gilt:
+              $$
+                  v = \vektor{2\\1\\3} - \vektor{6\\0\\0} = \vektor{-4\\1\\3}, \qquad w = \vektor{-2\\-2\\2} - \vektor{6\\0\\0} = \vektor{-8\\-2\\2}
+              $$
+              $$
+                  n = \frac{v \times w}{\abs{v \times w}} = \frac{1}{\abs{v \times w}} \vektor{8 \\ -16 \\ 16} = \frac{1}{24} \vektor{8 \\ -16 \\ 16} = \vektor{\nicefrac{1}{3} \\ -\nicefrac{2}{3} \\ \nicefrac{2}{3}}
+              $$
+
+              Mit $n$ als (normierten) Normalenvektor erhalten wir dann die Hessesche Normalform der Ebene mit
+              $$
+                  E: \scalarprod{x,n} = \scalarprod{\vec{a}, n} \quad \iff \quad \frac{1}{3} \cdot x - \frac{2}{3} \cdot y + \frac{2}{3} \cdot z = 2
+              $$
+
+              Setzen wir den Nullpunkt in die Ebene ein, erhalten wir den Abstand mit $d = 2$.\qed
+        \item Mit der Ebenengleichung
+              $$
+                  E: \frac{1}{3} \cdot x - \frac{2}{3} \cdot y + \frac{2}{3} \cdot z = 2
+              $$
+              können wir folgendes unterbestimmte LGS aufstellen:
+              $$
+                  Ax = b \quad \iff \quad \vektor{\nicefrac{1}{3} & -\nicefrac{2}{3} & \nicefrac{2}{3}} \vektor{x \\ y \\ z} = \vektor{2}
+              $$
+              mit
+              $$
+                  \rg(A) = 1 = m \quad \implies \quad x = A^T \left(AA^T\right)^{-1}b
+              $$
+
+              Dann gilt:
+              $$
+                  \begin{aligned}
+                      x_s \quad = \quad & A^T \left(AA^T\right)^{-1}b \\
+                      = \quad           & \vektor{\nicefrac{1}{3}     \\ -\nicefrac{2}{3} \\ \nicefrac{2}{3}} \left( \vektor{\nicefrac{1}{3} & -\nicefrac{2}{3} & \nicefrac{2}{3}} \vektor{\nicefrac{1}{3} \\ -\nicefrac{2}{3} \\ \nicefrac{2}{3}} \right)^{-1} \cdot 2 \\
+                      = \quad           & \vektor{\nicefrac{2}{3}     \\ -\nicefrac{4}{3} \\ \nicefrac{4}{3}} = \vektor{x\\y\\z}
+                  \end{aligned}
+              $$
+              Damit ist dann $\vektor{\nicefrac{2}{3} & -\nicefrac{4}{3} & \nicefrac{4}{3}}^T$ der gesuchte Punkt in der Ebene mit dem geringsten Abstand.\qed
+    \end{enumerate}
+\end{example}
+\section{Geometrie linearer Abbildungen}
+
+\subsection{Orthogonale Abbildungen und Matrizen}
+
+\begin{defi}{Isometrie}
+    Eine \emph{Isometrie} ist eine lineare Abbildung, die zwei metrische Räume aufeinander abbildet und dabei die euklidische Länge eines Vektors erhält.
+
+    Man spricht auch von einer abstandserhaltenden Abbildung.
+
+    Sei $f : \R^n \to \R^n$ beliebig. Dann sind äquivalent:
+    \begin{enumerate}
+        \item $\forall x, y \in \R^n : \scalarprod{f(x), f(y)} = \scalarprod{x, y}$
+        \item $f$ ist eine winkelerhaltende Isometrie.
+    \end{enumerate}
+\end{defi}
+
+\begin{defi}{Orthogonalmatrix}
+    Eine Matrix $A\in \R^{n\times n}$ heißt \emph{orthogonal}, wenn ihre Spaltenvektoren eine Orthonormalbasis bilden.
+
+    Die Menge aller orthogonalen Matrizen in $\R^{n\times n}$ heiße $O(n)$.
+
+    Es gilt:
+    \begin{itemize}
+        \item $A \in O(n) \implies \abs{\det(A)} = 1$
+    \end{itemize}
+
+    Es sind äquivalent:
+    \begin{enumerate}
+        \item $A \in O(n)$
+        \item $A$ ist invertierbar, und es gilt $A^{-1} = A^T$
+        \item $A^T \in O(n)$
+    \end{enumerate}
+\end{defi}
+
+\begin{example}{Orthogonalmatrix}
+    Zeigen Sie, dass die Matrix
+    $$
+        Q = \vektor{
+            \cos \beta & -\sin\beta & 0 \\
+            \cos \alpha \sin\beta & \cos\alpha \cos\beta & -\sin\alpha \\
+            \sin\alpha \sin\beta & \sin\alpha \cos\beta & \cos\alpha
+        }
+    $$
+    eine Orthogonalmatrix ist und bestimmen Sie ihre Inverse.
+
+    \exampleseparator
+
+    Genau dann, wenn $Q$ eine Orthogonalmatrix ist, ist $QQ^T = I$ und damit auch $Q^T = Q^{-1}$:
+    $$
+        \begin{aligned}
+            QQ^T = \quad        &
+            \vektor{ \cos \beta & -\sin\beta                        & 0                        \\ \cos \alpha \sin\beta & \cos\alpha \cos\beta & -\sin\alpha \\ \sin\alpha \sin\beta & \sin\alpha \cos\beta & \cos\alpha }
+            \vektor{ \cos\beta  & \cos\alpha \sin\beta              & \sin\alpha \sin\beta     \\ -\sin\beta & \cos\alpha \cos\beta & \sin\alpha \cos\beta \\ 0 & -\sin\alpha & \cos\alpha} \\
+            = \quad             & \vektor{\cos^2\beta + \sin^2\beta & 0                    & 0 \\ 0 & \cos^2\alpha \left( \sin^2\beta + \cos^2\beta \right) + \sin^2\alpha & 0  \\ 0 & 0 & \sin^2\alpha \left( \sin^2\beta + \cos^2\beta \right) + \cos^2\alpha} \\
+            = \quad             & \vektor{\cos^2\beta + \sin^2\beta & 0                    & 0 \\ 0 & \cos^2\alpha  + \sin^2\alpha & 0  \\ 0 & 0 & \sin^2\alpha + \cos^2\alpha} \\
+            = \quad             & \vektor{1                         & 0                    & 0 \\ 0 & 1 & 0  \\ 0 & 0 & 1}
+        \end{aligned}
+    $$
+
+    Damit ist $Q$ eine Orthogonalmatrix und $Q^T$ die Inverse von $Q$.\qed
+\end{example}
+
+\begin{algo}{QR-Zerlegung}
+    Sei $A = \vektor{a_1 & \ldots & a_n} \in \R^{m\times n}$ und $\rg(A) = n$.
+    Dann gibt es eine in den Spalten orthogonale Matrix $Q \in \R^{m\times n}$ und eine obere Dreiecksmatrix $R \in \R^{n\times n}$ mit $A = QR$.
+    Hierbei können die Spalten von $Q$ mithilfe des Verfahrens von Gram-Schmidt aus den Spalten von $A$ erzeugt werden, und es gilt $\rg(R) = n$.
+
+    Mit $Q = \vektor{q_1 & \ldots & q_n}$ und $R = (\varrho_{ij})$ ergibt sich $R$ durch Lösen der $n$ linearen Gleichungen
+    $$
+        \vektor{a_1 & \ldots & a_n} = \vektor{q_1 & \ldots & q_n} \vektor{ \varrho_{11} & \varrho_{12} & \ldots & \varrho_{1n} \\ & \varrho_{22} & \ldots & \varrho_{2n} \\ & & \ddots & \vdots \\ & & & \varrho_{nn}}
+    $$
+    Hierbei kann bei $n > 1$ über die per Gram-Schmidt generierten Zwischenrechnungen durch Koeffizientenvergleich gelöst werden.
+\end{algo}
+
+\begin{example}{QR-Zerlegung}
+    Wie lautet die QR-Zerlegung von
+    $$
+        A = \vektor{3 & 1 \\ 4 & 5}?
+    $$
+    Lösen Sie anschließend mit dieser Zerlegung das lineare Gleichungssystem $Ax = b$ mit $b = \vektor{2 & 3}^T$.
+
+    \exampleseparator
+
+    Wir wenden das Gram-Schmidt-Verfahren auf die Spaltenvektoren an:\footnote{Wir sehen, dass die Vektoren orthogonal sind.}
+    $$
+        \begin{aligned}
+            v_1 \quad = \quad & \vektor{3                                                        \\4} \\
+            w_1 \quad = \quad & \frac{v_1}{\norm{v_1}} = \frac{1}{5}\vektor{3                    \\4} = \vektor{\nicefrac{3}{5}\\\nicefrac{4}{5}} \\
+            v_2 \quad = \quad & \vektor{1                                                        \\5} \\
+            r_2 \quad = \quad & v_2 - \scalarprod{v_2, w_1}w_1                                   \\
+            = \quad           & \vektor{1                                                        \\ 5} - \left( \frac{1}{5} \right)^2\scalarprod{\vektor{1 \\ 5}, \vektor{3 \\ 4}}\vektor{3 \\ 4} =  \vektor{-\nicefrac{44}{25}                      \\ \nicefrac{33}{25}}\\
+            w_2 \quad = \quad & \frac{r_2}{\norm{r_2}} = \frac{5}{11} \vektor{-\nicefrac{44}{25} \\ \nicefrac{33}{25}} = \vektor{-\nicefrac{4}{5} \\ \nicefrac{3}{5}}
+        \end{aligned}
+    $$
+
+    Damit erhalten wir $Q$ mit
+    $$
+        Q = \vektor{w_1 & w_2} =  \vektor{\nicefrac{3}{5} & -\nicefrac{4}{5} \\ \nicefrac{4}{5} & \nicefrac{3}{5}} = \frac{1}{5} \vektor{3 & -4 \\ 4 & 3}
+    $$
+    Da $A$ quadratisch ist\footnote{\ldots und damit auch $Q$}, gilt:
+    $$
+        QR = A \quad \iff \quad R = Q^TA
+    $$
+    womit $R$ gegeben ist, mit
+    $$
+        R = Q^TA = \frac{1}{5}\vektor{3 & 4 \\ -4 & 3} \vektor{3 & 1 \\ 4 & 5} = \frac{1}{5} \vektor{25 & 23 \\ 0 & 11}
+    $$
+\end{example}
+
+\begin{example}{QR-Zerlegung (Fortsetzung)}
+    Für das gegebene lineare Gleichungssystem $Ax = b$ ergibt sich dann:
+    $$
+        Ax = b \quad \iff \quad QRx = b  \quad \iff \quad Rx = Q^Tb
+    $$
+    $$
+        \begin{aligned}
+            \iff \quad     & \frac{1}{5} \vektor{25                                  & 23 \\ 0 & 11}x = \frac{1}{5}\vektor{3 & 4 \\ -4 & 3}\vektor{2\\3} \\
+            \iff \quad     & \vektor{25                                              & 23 \\ 0 & 11}x = \vektor{18 \\ 1} \\
+            \implies \quad & 11x_2 = 1 \quad \land \quad 25x_1 + 23x_2 = 18               \\
+            \iff \quad     & x_2 = \frac{1}{11} \quad \land \quad x_1 = \frac{7}{11}      \\
+            \implies \quad & x = \vektor{\nicefrac{7}{11}                                 \\ \nicefrac{1}{11}}
+        \end{aligned}
+    $$\qed
+\end{example}
+
+\subsection{Eigenwerte und Eigenvektoren}
+
+\begin{defi}{Eigenwert, Eigenvektor und Eigenraum}
+    Existiert für einen Endomorphismus $f$ ein $\lambda \in \C$ und $v\in V \setminus \{0\}$ mit
+    $$
+        f(v) = \lambda v
+    $$
+    dann heißt $v$ \emph{Eigenvektor} von $f$ zum \emph{Eigenwert} $\lambda$.
+
+    Sei $\lambda$ ein Eigenwert von $f$ und $v_1, \ldots, v_k$ Eigenvektoren von $f$ zu $\lambda$.
+    Dann ist auch $v \in L(v_1, \ldots, v_k) \setminus \{0\}$ ein Eigenvektor von $f$ zu $\lambda$.
+
+    Für $\lambda \in \C$ ist $\Eig(f;\lambda) := \{v \in V \mid f(v) = \lambda v\}$, der \emph{Eigenraum} von $f$ zu $\lambda$, ein Untervektorraum von $V$.
+
+    Es gilt:
+    \begin{itemize}
+        \item Für $\lambda \neq \gamma$ gilt $\Eig(f;\lambda) \cap \Eig(f;\gamma) = \{0\}$.
+        \item Eigenvektoren zu unterschiedlichen Eigenwerten sind linear unabhängig.
+        \item Die Eigenwerte einer Dreiecksmatrix sind die Werte auf der Hauptdiagonalen.
+        \item Eigenwerte reeller symmetrischer Matrizen sind immer reell.
+        \item Zu jedem Eigenwert einer reellen symmetrischen Matrix existieren reelle Eigenvektoren.
+        \item Sei $A \in \R^{n\times n}$ symmetrisch, $\lambda \neq \mu$ zwei Eigenwerte von $A$ mit Eigenvektoren $v$ bzw. $w$. Dann gilt $v \perp w$.
+    \end{itemize}
+
+\end{defi}
+
+\begin{defi}{Charakteristisches Polynom}
+    Sei $A \in \C^{n\times n}$.
+    Dann ist die Funktion
+    $$
+        \chi_A(\lambda) := \det(A-\lambda E)
+    $$
+    ein Polynom mit $\deg(\chi_A) = n$ und heißt \emph{charakteristisches Polynom}.
+
+    Es gilt:
+    \begin{itemize}
+        \item $\lambda \in \C$ ist Eigenwert von $A$ $\iff \chi_A(\lambda) = 0$
+        \item $A$ hat (mit Vielfachheit) genau $n$ Eigenwerte $\lambda_i \in \C$.
+        \item $\Eig(f;\lambda) = \ker(A-\lambda E)$
+    \end{itemize}
+\end{defi}
+
+\begin{example}{Eigenwerte und Eigenvektoren}
+    Gegeben sind
+    $$
+        A_t = \vektor{1 & t \\ -2 & -1-t} \quad \text{und} \quad x_t = \vektor{-t \\ 2}, t \in \R
+    $$
+    Zeigen Sie, dass der Vektor $x_t$ Eigenvektor der Matrix $A_t$ ist.
+    Wie lautet der zugehörige Eigenwert?
+    Bestimmen Sie auch den zweiten Eigenwert.
+
+    \exampleseparator
+
+    Berechnen des charakteristischen Polynoms von $A_t$:
+    $$
+        \abs{A - \lambda I} = \abs{\vektor{1 - \lambda & t \\ -2  & -1-t-\lambda}} = (1-\lambda)(-1-t-\lambda) + 2t = \lambda^2 + t\lambda + t - 1
+    $$
+
+    Nullstellen des charakteristischen Polynoms (Eigenwerte):
+    $$
+        \lambda_{1,2} = -\frac{t}{2} \pm \sqrt{\left(\frac{t}{2}\right)^2 - t + 1} = -\frac{t}{2} \pm \sqrt{\frac{t^2-4t + 4}{4}} = -\frac{t}{2} \pm \frac{t-2}{2}
+    $$
+    $$
+        \lambda_1 = -1 \quad \land \quad \lambda_2 = -t +1
+    $$
+
+    Bestimmen des Eigenraums/der Eigenvektoren zum Eigenwert $\lambda_1$:
+    $$
+        \begin{sysmatrix}{cc|c}
+            1-\lambda_1 & t & 0 \\
+            -2 & -1-t-\lambda_1 & 0
+        \end{sysmatrix}
+        \sim
+        \begin{sysmatrix}{cc|c}
+            2 & t & 0 \\
+            -2 & -t & 0
+        \end{sysmatrix}
+        \sim
+        \begin{sysmatrix}{cc|c}
+            2 & t & 0 \\
+            0 & 0 & 0
+        \end{sysmatrix}
+    $$
+    $$
+        \begin{aligned}
+            \implies \quad & 2x_1 + tx_2 = 0 \iff x_1 = -\frac{tx_2}{2}                  \\
+            \implies \quad & E(\lambda_1) = \ker(A-\lambda_1 I) = \scalarprod{\vektor{-t \\ 2}} \ni x_t
+        \end{aligned}
+    $$
+
+    Insgesamt sind also die Eigenwerte $\lambda_1 = -1$ und $\lambda_2 = -t+1$ und $x_t$ Eigenvektor zu $\lambda_1$.\qed
+\end{example}
+
+\begin{bonus}{Eigenwerte und Determinanten}
+    Für $A = \vektor{a_1 & \ldots & a_n} \in \C^{n\times n}$ mit Eigenwerten $\lambda_i$, $1 \leq i \leq n$ gilt
+    $$
+        \det(A) = \prod^n_{i=1}\lambda_i
+    $$
+\end{bonus}
+
+\subsection{Diagonalisierung linearer Abbildungen}
+
+\begin{defi}{Diagonalisierbarkeit}
+    Eine quadratische Matrix $A \in \C^{n\times n}$ heißt \emph{diagonalisierbar}, wenn es eine Diagonalmatrix $D$ und eine invertierbare Matrix $S$ existiert, sodass
+    $$
+        A = SDS^{-1}
+    $$
+    gilt.
+    Dabei ist $A$ genau dann diagonalisierbar, wenn eine Basis aus Eigenvektoren existiert.
+    Bildet man mit ihnen als Spalten eine Matrix $S$, dann ist $S$ genau die oben genannte Matrix\footnote{\ldots des Basiswechsels.}.
+
+    Auf der Hauptdiagonalen von $D$ befinden sich die entsprechenden Eigenwerte von $A$.
+
+    Es gilt:
+    \begin{itemize}
+        \item Zu jeder reellsymmetrischen Matrix $A$ gibt es eine Orthogonalmatrix $S$ und eine Diagonalmatrix $D$ wie oben.
+    \end{itemize}
+\end{defi}
+
+\begin{example}{Diagonalmatrix}
+    Gesucht ist die Matrix $A$ mit den Eigenwerten $1$ und $4$ und den zugehörigen Eigenvektoren $\vektor{4\\1}$ und $\vektor{2\\1}$.
+
+    \exampleseparator
+
+    Wir wissen, dass $A$ diagonalisierbar ist.
+    Damit gilt
+    $$
+        \begin{aligned}
+            A & \quad = SDS^{-1}                    \\
+              & \quad = \vektor{4              & 2  \\ 1 & 1} \vektor{1 & 0 \\ 0 & 4} \vektor{4 & 2 \\ 1 & 1}^{-1} \\
+              & \quad = \vektor{4              & 2  \\ 1 & 1} \vektor{1 & 0 \\ 0 & 4} \frac{1}{2} \vektor{1 & -2 \\ -1 & 4} \\
+              & \quad = \frac{1}{2} \vektor{4  & 2  \\ 1 & 1} \vektor{1 & -2 \\ -4 & 16} \\
+              & \quad = \frac{1}{2} \vektor{-4 & 24 \\ -3 & 14}
+        \end{aligned}
+    $$\qed
+\end{example}
+
+\begin{defi}{Vielfachheit}
+    Sei $A \in \C^{n\times n}$ und $\lambda$ ein Eigenwert.
+
+    Die Vielfachheit der Nullstelle $\lambda$ von $\chi_A$ heißte \emph{algebraische Vielfachheit} $a(\lambda)$.
+
+    Weiter sei $g(\lambda) := \dim(\Eig(A;\lambda))$ die \emph{geometrische Vielfachheit} von $\lambda$.
+
+    Es gilt:
+    \begin{itemize}
+        \item Existiert ein Eigenwert $\tilde{\lambda}$ mit $a(\tilde{\lambda}) > g(\tilde{\lambda})$, dann ist $A$ nicht diagonalisierbar.
+    \end{itemize}
+\end{defi}
+
+\begin{bonus}{Normale Matrix}
+    Eine Matrix $A \in \C^{n\times n}$ heißt \emph{normal}, wenn gilt:
+    $$
+        AA^{*} = A^{*}A \quad \iff \quad A\bar{A}^T = \bar{A}^TA
+    $$
+
+    $A^{*}$ heißt adjungierte Matrix von $A$.
+
+    Sei $A \in \C^{n\times n}$.
+    Es gilt:
+    \begin{itemize}
+        \item Es existiert eine bzgl. des Standardskalarprodukts in $\C^n$ orthonormale Basis aus Eigenvektoren, d.h. $A$ ist diagonalisierbar.
+        \item Jede reelle symmetrische Matrix ist diagonalisierbar. Die Eigenwerte sind reell.
+        \item Jede reelle antisymmetrische Matrix (d.h. $A^T = -A$) ist diagonalisierbar. Die Eigenwerte sind rein imaginär oder 0.
+        \item Jede reelle orthogonale Matrix ist diagonalisierbar.
+    \end{itemize}
+\end{bonus}
+
+\subsection{Definitheit und Skalarprodukte}
+
+\begin{defi}{Skalarprodukt}
+    Für ein \emph{Skalarprodukt} $(\cdot, \cdot) : \R^n \times \R^n \to \R$ müssen drei Bedingungen erfüllt sein:
+    \begin{enumerate}
+        \item $(\cdot, \cdot)$ ist linear in den Spalten.
+        \item $(\cdot, \cdot)$ ist symmetrisch.
+        \item $(x, x) > 0$ für $x \neq 0$.
+    \end{enumerate}
+
+    Wir wählen eine beliebige Matrix $A \in \R^{n\times n}$ und betrachten die Abbildung
+    $$
+        (\cdot, \cdot)_A : \R^n \times \R^n \to \R, \quad (x, y)_A := \scalarprod{x, Ay}
+    $$
+    wobei $\scalarprod{\cdot, \cdot}$ für das Standardskalarprodukt steht.
+
+    Die Abbildung $(\cdot, \cdot)_A$ ist genau dann symmetrisch, wenn $A$ symmetrisch ist.
+
+    Nicht jede symmetrische Matrix definiert ein Skalarprodukt (z.B. die Nullmatrix).
+\end{defi}
+
+\begin{defi}{Quadratische Form}
+    Sei $A$ eine symmetrische Matrix $A \in \R^{n\times n}$.
+
+    Die Abbildung $x \to \scalarprod{x, Ax}$ wird \emph{quadratische Form} genannt.
+\end{defi}
+
+\begin{defi}{Hauptminoren}
+    Für $A \in \R^{n\times n}$ seien $A_k$ die \emph{links oben} beginnenden $k \times k$-Untermatrizen $A_k = (a_{ij})^k_{i,j=1}$ von $A$.
+
+    Dann heißen $D_k = \det(A_k)$ die \emph{Hauptunterdeterminanten} oder \emph{Hauptminoren} von $A$.
+\end{defi}
+
+\begin{defi}{Definitheit}
+    Sei $A$ eine symmetrische Matrix $A \in \R^{n\times n}$.
+
+    Dann gilt:
+    \begin{itemize}
+        \item $A$ heißt \emph{positiv definit}, wenn $\scalarprod{x, Ax} > 0 \forall x \in \R^n \setminus \{0\}$.\footnote{Häufig kürzt man \glqq symmetrisch positiv definit\grqq mit \emph{spd} ab.}
+        \item $A$ heißt \emph{negativ definit}, wenn $\scalarprod{x, Ax} < 0 \forall x \in \R^n \setminus \{0\}$.
+        \item $A$ heißt \emph{positiv semidefinit}, wenn $\scalarprod{x, Ax} \geq 0 \forall x \in \R^n \setminus \{0\}$.
+        \item $A$ heißt \emph{negativ semidefinit}, wenn $\scalarprod{x, Ax} \leq 0 \forall x \in \R^n \setminus \{0\}$.
+        \item $A$ heißt \emph{indefinit}, falls sie weder positiv noch negativ (semi-)definit ist, d.h.
+              $$
+                  \exists x, y \in \R^n \{0\} : \scalarprod{x, Ax} > 0 \land \scalarprod{y, Ay} < 0
+              $$
+    \end{itemize}
+
+    Es gilt:
+    \begin{itemize}
+        \item Die Abbildung $(\cdot, \cdot)_A$ ist genau dann ein Skalarprodukt, wenn $A$ spd ist.
+    \end{itemize}
+
+    Für eine reelle symmetrische Matrix $A$ sind äquivalent:
+    \begin{enumerate}
+        \item $A$ ist positiv definit.
+        \item $A$ besitzt nur positive Eigenwerte.
+        \item Alle Hauptminoren von $A$ sind positiv.
+    \end{enumerate}
+
+    Weiter ist $A$ genau dann positiv semidefinit, wenn alle Eigenwerte von $A$ nicht negativ sind.
+    In diesem Fall sind alle Hauptminoren von $A$ nicht negativ.
+
+    $A$ ist genau dann negativ (semi-)definit, wenn $-A$ positiv (semi-)definit ist.
+
+    Für die Hauptminoren $D_k$ einer negativ definiten Matrix gilt, dass $D_k$ abwechselnd positiv und negativ sind, beginnend mit negativem Vorzeichen.
+\end{defi}
+
+\printindex
+\printindex[Beispiele]
+
 \end{document}
\ No newline at end of file
diff --git a/or/or.bib b/or/or.bib
index 7554751..9f03368 100644
--- a/or/or.bib
+++ b/or/or.bib
@@ -1,18 +1,18 @@
-@inproceedings{khachiyan1979,
-  title        = {A polynomial algorithm in linear programming},
-  author       = {Khachiyan, Leonid Genrikhovich},
-  booktitle    = {Doklady Akademii Nauk},
-  volume       = {244},
-  number       = {5},
-  pages        = {1093--1096},
-  year         = {1979},
-  organization = {Russian Academy of Sciences}
-}
-
-@inproceedings{karmarkar1984,
-  title     = {A new polynomial-time algorithm for linear programming},
-  author    = {Karmarkar, Narendra},
-  booktitle = {Proceedings of the sixteenth annual ACM symposium on Theory of computing},
-  pages     = {302--311},
-  year      = {1984}
+@inproceedings{khachiyan1979,
+  title        = {A polynomial algorithm in linear programming},
+  author       = {Khachiyan, Leonid Genrikhovich},
+  booktitle    = {Doklady Akademii Nauk},
+  volume       = {244},
+  number       = {5},
+  pages        = {1093--1096},
+  year         = {1979},
+  organization = {Russian Academy of Sciences}
+}
+
+@inproceedings{karmarkar1984,
+  title     = {A new polynomial-time algorithm for linear programming},
+  author    = {Karmarkar, Narendra},
+  booktitle = {Proceedings of the sixteenth annual ACM symposium on Theory of computing},
+  pages     = {302--311},
+  year      = {1984}
 }
\ No newline at end of file
diff --git a/or/or.pdf b/or/or.pdf
index ad782a4a5d56bc719e39794dd53cc845a878ae20..33ee8a1b7c8e97637ffd99a6452ca8547ed33af2 100644
GIT binary patch
delta 68405
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
UT+1ZKZDM9%#-*z2>hHz{0Nc#_PXGV_

delta 68844
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

diff --git a/or/or.tex b/or/or.tex
index a25901f..8e368e8 100644
--- a/or/or.tex
+++ b/or/or.tex
@@ -1,76 +1,76 @@
-\documentclass[english]{../spicker}
-
-\usepackage{amsmath}
-
-\usepackage{graphicx}
-\usepackage{tabularx, multirow}
-
-\usepackage[style=numeric, backend=bibtex]{biblatex}
-\addbibresource{or.bib}
-
-\title{Operations Research}
-\author{Patrick Gustav Blaneck}
-
-\begin{document}
-\maketitle
-\tableofcontents
-\newpage
-
-%\setcounter{section}{1}
-
-\section{Linear Programming}
-
-\begin{defi}{Linear Programming}
-    \emph{Linear Programming} is the problem of optimizing (maximizing or minimizing) a \emph{linear objective function} subject to a set of \emph{linear functional constraints}.
-
-    \textbf{Given:} $A \in \R^{m\times n}, b \in \R^m, c\in R^n$
-
-    \textbf{Find:} $x^* \in \R^n$ where $x^* = \arg\max\{c^Tx \mid Ax \leq b\}$
-\end{defi}
-
-\begin{bonus}{Linear Programming Solvers}
-    Software that solves linear programs - \emph{linear programming solvers} - also generate lots of important auxiliary information (as well as the optimum):
-    \begin{itemize}
-        \item sensitivity analysis
-        \item shadow prices
-        \item alternative optima
-        \item \ldots
-    \end{itemize}
-\end{bonus}
-
-\begin{theo}{Ellipsoid Method}
-    A LP of dimension $n$ can be solved in $\bigo(L^2 \cdot n^6)$ time \cite{khachiyan1979}, where $L =$ \# bits in the input.
-\end{theo}
-
-\begin{theo}{Interior Point Method}
-    A LP of dimension $n$ can be solved in a \emph{numerically stable} way in $\bigo(L^2 \cdot n^{3.5})$ time \cite{karmarkar1984}.
-\end{theo}
-
-\begin{defi}{Integer Linear Programs (ILP)}
-    \textbf{Given:} $A \in \R^{m\times n}, b \in \R^m, c\in R^n$
-
-    \textbf{Find:} $\underline{x^*\in\Z^n}$ where $x^* = \arg\max\{c^Tx \mid Ax \leq b\}$
-\end{defi}
-
-\begin{example}{Integer Linear Program for \textsc{Vertex Cover}}
-    \fbox{
-        \parbox{0.95\textwidth}{
-            \underline{\textsc{Vertex Cover}}
-
-
-            \textbf{Given:} Graph $G = (V, E)$\\
-            \textbf{Find:} \textsc{Vertex Cover}, i.e. $V' \subseteq V$ such that every edge has at least one endpoint in $V'$.
-        }
-    }
-
-    \textbf{Integer Linear Program:}
-
-    For $v\in V$, let $x_v \in \{0, 1\}$.
-
-    Goal: minimize $\sum_{v\in V}x_v$.
-
-    Constraints: for every edge $uv \in E$, we require $x_u + x_v \geq 1$.
-\end{example}
-
-\printbibliography
-\end{document}
+\documentclass[english]{../spicker}
+
+\usepackage{amsmath}
+
+\usepackage{graphicx}
+\usepackage{tabularx, multirow}
+
+\usepackage[style=numeric, backend=bibtex]{biblatex}
+\addbibresource{or.bib}
+
+\title{Operations Research}
+\author{Patrick Gustav Blaneck}
+
+\begin{document}
+\maketitle
+\tableofcontents
+\newpage
+
+%\setcounter{section}{1}
+
+\section{Linear Programming}
+
+\begin{defi}{Linear Programming}
+    \emph{Linear Programming} is the problem of optimizing (maximizing or minimizing) a \emph{linear objective function} subject to a set of \emph{linear functional constraints}.
+
+    \textbf{Given:} $A \in \R^{m\times n}, b \in \R^m, c\in R^n$
+
+    \textbf{Find:} $x^* \in \R^n$ where $x^* = \arg\max\{c^Tx \mid Ax \leq b\}$
+\end{defi}
+
+\begin{bonus}{Linear Programming Solvers}
+    Software that solves linear programs - \emph{linear programming solvers} - also generate lots of important auxiliary information (as well as the optimum):
+    \begin{itemize}
+        \item sensitivity analysis
+        \item shadow prices
+        \item alternative optima
+        \item \ldots
+    \end{itemize}
+\end{bonus}
+
+\begin{theo}{Ellipsoid Method}
+    A LP of dimension $n$ can be solved in $\bigo(L^2 \cdot n^6)$ time \cite{khachiyan1979}, where $L =$ \# bits in the input.
+\end{theo}
+
+\begin{theo}{Interior Point Method}
+    A LP of dimension $n$ can be solved in a \emph{numerically stable} way in $\bigo(L^2 \cdot n^{3.5})$ time \cite{karmarkar1984}.
+\end{theo}
+
+\begin{defi}{Integer Linear Programs (ILP)}
+    \textbf{Given:} $A \in \R^{m\times n}, b \in \R^m, c\in R^n$
+
+    \textbf{Find:} $\underline{x^*\in\Z^n}$ where $x^* = \arg\max\{c^Tx \mid Ax \leq b\}$
+\end{defi}
+
+\begin{example}{Integer Linear Program for \textsc{Vertex Cover}}
+    \fbox{
+        \parbox{0.95\textwidth}{
+            \underline{\textsc{Vertex Cover}}
+
+
+            \textbf{Given:} Graph $G = (V, E)$\\
+            \textbf{Find:} \textsc{Vertex Cover}, i.e. $V' \subseteq V$ such that every edge has at least one endpoint in $V'$.
+        }
+    }
+
+    \textbf{Integer Linear Program:}
+
+    For $v\in V$, let $x_v \in \{0, 1\}$.
+
+    Goal: minimize $\sum_{v\in V}x_v$.
+
+    Constraints: for every edge $uv \in E$, we require $x_u + x_v \geq 1$.
+\end{example}
+
+\printbibliography
+\end{document}
diff --git a/spicker.cls b/spicker.cls
index f0328df..8c68801 100644
--- a/spicker.cls
+++ b/spicker.cls
@@ -1,227 +1,227 @@
-% Additional warnings for deprecated things
-\RequirePackage[l2tabu, orthodox]{nag}
-
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{spicker}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Optional 'english' language option
-\newcommand{\InitSpickerLanguage}{\PassOptionsToPackage{english,ngerman}{babel}}
-\DeclareOption{english}{\renewcommand{\InitSpickerLanguage}{\PassOptionsToPackage{english}{babel}}}
-\ProcessOptions
-\InitSpickerLanguage
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Compact scrartcl format
-\LoadClass[a4paper,parskip=half-,DIV=15,fontsize=11pt]{scrartcl}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Enable post-90s text processing
-\usepackage[utf8]{inputenc}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Typesetting
-\usepackage{babel}
-\usepackage{microtype}
-\usepackage{parskip}
-\usepackage{microtype}
-\usepackage{csquotes}
-\usepackage{booktabs}
-\usepackage{listings}
-
-\usepackage{lmodern} % upgrade default font
-\usepackage[sc]{mathpazo} % pretty font for text
-
-\linespread{1.05} % more spacing
-\setkomafont{disposition}{\fontseries{sbc}\sffamily}
-
-\usepackage[shortlabels]{enumitem}
-\setlist{nosep}
-
-\makeatletter
-% Re-enable paragraph spacing in minipages;
-% we choose something smaller than what is used outside of minipages.
-\newcommand{\@minipagerestore}{\setlength{\parskip}{0.8\medskipamount}}
-\makeatother
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Utilities
-\usepackage{lipsum}
-
-\usepackage[svgnames]{xcolor}
-% https://s3.amazonaws.com/edwardtufte.com/colorblind_palette.png
-\definecolor{orange}{RGB}{230,159,0}
-\definecolor{skyblue}{RGB}{86,180,233}
-\definecolor{bluishgreen}{RGB}{0,158,115}
-\definecolor{vermillion}{RGB}{213,94,0}
-\definecolor{reddishpurple}{RGB}{204,121,167}
-\definecolor{matse}{RGB}{11,102,168}
-\definecolor{fhmint}{RGB}{0,177,172}
-\definecolor{fhblue}{RGB}{0,141,208}
-\definecolor{fhred}{RGB}{168,46,104}
-\definecolor{fhpurple}{RGB}{147,81,159}
-
-% Show most recent revision number and date in date field
-\makeatletter
-\date{\small \IfLanguageName{ngerman}{Letzte Änderung:}{Last Change:} \filename@parse{\jobname}\IfFileExists{\filename@base.last-change}{\input{\filename@base.last-change}}{\today}}
-\makeatother
-
-\subject{\normalfont{}\texttt{\href{https://matse.paddel.xyz/spicker}{https://matse.paddel.xyz/spicker}}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Math & Symbols
-\usepackage{mathtools}
-\usepackage{amssymb}
-\usepackage{amsmath}
-\usepackage{amsthm}
-\usepackage{stmaryrd}
-\usepackage{braket}
-\usepackage{cool}
-\usepackage{siunitx}
-
-\DeclarePairedDelimiter\abs{\lvert}{\rvert}
-\DeclarePairedDelimiter\norm{\lVert}{\rVert}
-\DeclarePairedDelimiter\floor{\lfloor}{\rfloor}
-\DeclarePairedDelimiter\ceil{\lceil}{\rceil}
-
-\DeclareMathOperator{\Exists}{\exists}
-\DeclareMathOperator{\Forall}{\forall}
-\DeclareMathOperator*{\argmin}{argmin}
-\DeclareMathOperator*{\argmax}{argmax}
-
-\newcommand{\Nplus}{\mathbb{N}^+}
-\newcommand{\N}{\mathbb{N}}
-\newcommand{\Rnonneg}{\mathbb{R}^+_0}
-\newcommand{\R}{\mathbb{R}}
-\newcommand{\C}{\mathbb{C}}
-\newcommand{\Z}{\mathbb{Z}}
-\newcommand{\bigo}{\mathcal{O}}
-
-\newcommand{\Rnum}[1]{\uppercase\expandafter{\romannumeral #1\relax}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Diagrams
-
-\usepackage{pgfplots}
-\usepgfplotslibrary{fillbetween}
-\pgfplotsset{compat=1.8}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Links and Metadata
-\usepackage[
-  colorlinks,
-  citecolor = fhmint,
-  linkcolor = matse,
-  urlcolor = matse
-]{hyperref}
-\usepackage{bookmark}
-
-\makeatletter
-\AtBeginDocument{
-  \hypersetup{
-    pdftitle = {\@title},
-    pdfauthor = {\@author}
-  }
-}
-\makeatother
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Environments
-\usepackage{todonotes}
-
-% Just like the 'center' block, but without spacing around it.
-\newenvironment{tightcenter}{%
-  \setlength\topsep{0pt}
-  \setlength\parskip{0pt}
-  \begin{center}
-}{%
-  \end{center}
-}
-
-\usepackage{tcolorbox}
-
-\usepackage{array}   % for \newcolumntype macro
-
-\newcolumntype{L}{>{$}l<{$}} % math-mode version of "l" column type
-\newcolumntype{R}{>{$}r<{$}} % math-mode version of "r" column type
-\newcolumntype{C}{>{$}c<{$}} % math-mode version of "c" column type
-\newcolumntype{P}{>{$}p<{$}} % math-mode version of "l" column type
-
-%%%%%%%%%%%%%%%%
-% Context Blocks
-
-\usepackage[]{imakeidx}
-
-\usepackage{iflang}
-\newcommand{\SpickerAlgorithm}{\IfLanguageName{ngerman}{Algorithmus}{Algorithm}}
-\newcommand{\SpickerCode}{\IfLanguageName{ngerman}{Code}{Code}}
-
-\tcbset{boxrule=0pt,toprule=1pt,parbox=false,on line}
-
-\newenvironment{algo}[1]{%
-\index{#1}%
-\setlist{nosep,leftmargin=*}%
-\begin{tcolorbox}[colback=fhblue!5!white, colframe=fhblue!75!black, title={\sffamily \SpickerAlgorithm: #1}]
-}{%
-\end{tcolorbox}}
-
-\newenvironment{code}[1]{%
-\index{#1}%
-\begin{tcolorbox}[colback=fhpurple!5!white, colframe=fhpurple!75!black, title={\sffamily \SpickerCode: #1}]
-}{%
-\end{tcolorbox}}
-
-\newenvironment{defi}[1]{%
-\index{#1}%
-\begin{tcolorbox}[colback=fhmint!5!white, colframe=fhmint!75!black, title={\sffamily Definition: #1}]
-}{%
-\end{tcolorbox}}
-
-\newenvironment{bonus}[1]{%
-\index{#1}%
-\begin{tcolorbox}[colback=fhred!5!white, colframe=fhred!75!black, title={\sffamily Bonus: #1}]
-}{%
-\end{tcolorbox}}
-
-\newenvironment{example}[1]{%
-\index[Beispiele]{#1}%
-\begin{tcolorbox}[colback=fhred!5!white, colframe=fhred!75!black, title={\sffamily \IfLanguageName{ngerman}{Beispiel}{Example}: #1}]
-}{%
-\end{tcolorbox}}
-    
-\newcommand{\exampleseparator}{\noindent\rule{\textwidth}{0.2pt}}
-
-%%%%%%%%%%%%%%
-% Split Blocks
-
-\newenvironment{halfboxl}{%
-\noindent
-\begin{minipage}[t]{0.4875\textwidth}
-%\vspace{0pt}
-%\vspace{\dimexpr\ht\strutbox-\topskip}
-}{%
-\end{minipage}\hspace{0.025\textwidth}}
-\newenvironment{halfboxr}{%
-\begin{minipage}[t]{0.4875\textwidth}
-\vspace{0pt}
-}{%
-\end{minipage}\bigbreak}
-
-\newenvironment{thirdboxl}{%
-\begin{minipage}[t]{0.3166\textwidth}
-}{%
-\end{minipage}\hspace{0.025\textwidth}}
-\newenvironment{thirdboxm}{%
-\begin{minipage}[t]{0.3166\textwidth}
-}{%
-\end{minipage}\hspace{0.025\textwidth}}
-\newenvironment{thirdboxr}{%
-\begin{minipage}[t]{0.3166\textwidth}
-}{%
-\end{minipage}\bigbreak}
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Citations 
-
+% Additional warnings for deprecated things
+\RequirePackage[l2tabu, orthodox]{nag}
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{spicker}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Optional 'english' language option
+\newcommand{\InitSpickerLanguage}{\PassOptionsToPackage{english,ngerman}{babel}}
+\DeclareOption{english}{\renewcommand{\InitSpickerLanguage}{\PassOptionsToPackage{english}{babel}}}
+\ProcessOptions
+\InitSpickerLanguage
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Compact scrartcl format
+\LoadClass[a4paper,parskip=half-,DIV=15,fontsize=11pt]{scrartcl}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Enable post-90s text processing
+\usepackage[utf8]{inputenc}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Typesetting
+\usepackage{babel}
+\usepackage{microtype}
+\usepackage{parskip}
+\usepackage{microtype}
+\usepackage{csquotes}
+\usepackage{booktabs}
+\usepackage{listings}
+
+\usepackage{lmodern} % upgrade default font
+\usepackage[sc]{mathpazo} % pretty font for text
+
+\linespread{1.05} % more spacing
+\setkomafont{disposition}{\fontseries{sbc}\sffamily}
+
+\usepackage[shortlabels]{enumitem}
+\setlist{nosep}
+
+\makeatletter
+% Re-enable paragraph spacing in minipages;
+% we choose something smaller than what is used outside of minipages.
+\newcommand{\@minipagerestore}{\setlength{\parskip}{0.8\medskipamount}}
+\makeatother
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Utilities
+\usepackage{lipsum}
+
+\usepackage[svgnames]{xcolor}
+% https://s3.amazonaws.com/edwardtufte.com/colorblind_palette.png
+\definecolor{orange}{RGB}{230,159,0}
+\definecolor{skyblue}{RGB}{86,180,233}
+\definecolor{bluishgreen}{RGB}{0,158,115}
+\definecolor{vermillion}{RGB}{213,94,0}
+\definecolor{reddishpurple}{RGB}{204,121,167}
+\definecolor{matse}{RGB}{11,102,168}
+\definecolor{fhmint}{RGB}{0,177,172}
+\definecolor{fhblue}{RGB}{0,141,208}
+\definecolor{fhred}{RGB}{168,46,104}
+\definecolor{fhpurple}{RGB}{147,81,159}
+
+% Show most recent revision number and date in date field
+\makeatletter
+\date{\small \IfLanguageName{ngerman}{Letzte Änderung:}{Last Change:} \filename@parse{\jobname}\IfFileExists{\filename@base.last-change}{\input{\filename@base.last-change}}{\today}}
+\makeatother
+
+\subject{\normalfont{}\texttt{\href{https://matse.paddel.xyz/spicker}{https://matse.paddel.xyz/spicker}}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Math & Symbols
+\usepackage{mathtools}
+\usepackage{amssymb}
+\usepackage{amsmath}
+\usepackage{amsthm}
+\usepackage{stmaryrd}
+\usepackage{braket}
+\usepackage{cool}
+\usepackage{siunitx}
+
+\DeclarePairedDelimiter\abs{\lvert}{\rvert}
+\DeclarePairedDelimiter\norm{\lVert}{\rVert}
+\DeclarePairedDelimiter\floor{\lfloor}{\rfloor}
+\DeclarePairedDelimiter\ceil{\lceil}{\rceil}
+
+\DeclareMathOperator{\Exists}{\exists}
+\DeclareMathOperator{\Forall}{\forall}
+\DeclareMathOperator*{\argmin}{argmin}
+\DeclareMathOperator*{\argmax}{argmax}
+
+\newcommand{\Nplus}{\mathbb{N}^+}
+\newcommand{\N}{\mathbb{N}}
+\newcommand{\Rnonneg}{\mathbb{R}^+_0}
+\newcommand{\R}{\mathbb{R}}
+\newcommand{\C}{\mathbb{C}}
+\newcommand{\Z}{\mathbb{Z}}
+\newcommand{\bigo}{\mathcal{O}}
+
+\newcommand{\Rnum}[1]{\uppercase\expandafter{\romannumeral #1\relax}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Diagrams
+
+\usepackage{pgfplots}
+\usepgfplotslibrary{fillbetween}
+\pgfplotsset{compat=1.8}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Links and Metadata
+\usepackage[
+  colorlinks,
+  citecolor = fhmint,
+  linkcolor = matse,
+  urlcolor = matse
+]{hyperref}
+\usepackage{bookmark}
+
+\makeatletter
+\AtBeginDocument{
+  \hypersetup{
+    pdftitle = {\@title},
+    pdfauthor = {\@author}
+  }
+}
+\makeatother
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Environments
+\usepackage{todonotes}
+
+% Just like the 'center' block, but without spacing around it.
+\newenvironment{tightcenter}{%
+  \setlength\topsep{0pt}
+  \setlength\parskip{0pt}
+  \begin{center}
+}{%
+  \end{center}
+}
+
+\usepackage{tcolorbox}
+
+\usepackage{array}   % for \newcolumntype macro
+
+\newcolumntype{L}{>{$}l<{$}} % math-mode version of "l" column type
+\newcolumntype{R}{>{$}r<{$}} % math-mode version of "r" column type
+\newcolumntype{C}{>{$}c<{$}} % math-mode version of "c" column type
+\newcolumntype{P}{>{$}p<{$}} % math-mode version of "l" column type
+
+%%%%%%%%%%%%%%%%
+% Context Blocks
+
+\usepackage[]{imakeidx}
+
+\usepackage{iflang}
+\newcommand{\SpickerAlgorithm}{\IfLanguageName{ngerman}{Algorithmus}{Algorithm}}
+\newcommand{\SpickerCode}{\IfLanguageName{ngerman}{Code}{Code}}
+
+\tcbset{boxrule=0pt,toprule=1pt,parbox=false,on line}
+
+\newenvironment{algo}[1]{%
+\index{#1}%
+\setlist{nosep,leftmargin=*}%
+\begin{tcolorbox}[colback=fhblue!5!white, colframe=fhblue!75!black, title={\sffamily \SpickerAlgorithm: #1}]
+}{%
+\end{tcolorbox}}
+
+\newenvironment{code}[1]{%
+\index{#1}%
+\begin{tcolorbox}[colback=fhpurple!5!white, colframe=fhpurple!75!black, title={\sffamily \SpickerCode: #1}]
+}{%
+\end{tcolorbox}}
+
+\newenvironment{defi}[1]{%
+\index{#1}%
+\begin{tcolorbox}[colback=fhmint!5!white, colframe=fhmint!75!black, title={\sffamily Definition: #1}]
+}{%
+\end{tcolorbox}}
+
+\newenvironment{bonus}[1]{%
+\index{#1}%
+\begin{tcolorbox}[colback=fhred!5!white, colframe=fhred!75!black, title={\sffamily Bonus: #1}]
+}{%
+\end{tcolorbox}}
+
+\newenvironment{example}[1]{%
+\index[Beispiele]{#1}%
+\begin{tcolorbox}[colback=fhred!5!white, colframe=fhred!75!black, title={\sffamily \IfLanguageName{ngerman}{Beispiel}{Example}: #1}]
+}{%
+\end{tcolorbox}}
+    
+\newcommand{\exampleseparator}{\noindent\rule{\textwidth}{0.2pt}}
+
+%%%%%%%%%%%%%%
+% Split Blocks
+
+\newenvironment{halfboxl}{%
+\noindent
+\begin{minipage}[t]{0.4875\textwidth}
+%\vspace{0pt}
+%\vspace{\dimexpr\ht\strutbox-\topskip}
+}{%
+\end{minipage}\hspace{0.025\textwidth}}
+\newenvironment{halfboxr}{%
+\begin{minipage}[t]{0.4875\textwidth}
+\vspace{0pt}
+}{%
+\end{minipage}\bigbreak}
+
+\newenvironment{thirdboxl}{%
+\begin{minipage}[t]{0.3166\textwidth}
+}{%
+\end{minipage}\hspace{0.025\textwidth}}
+\newenvironment{thirdboxm}{%
+\begin{minipage}[t]{0.3166\textwidth}
+}{%
+\end{minipage}\hspace{0.025\textwidth}}
+\newenvironment{thirdboxr}{%
+\begin{minipage}[t]{0.3166\textwidth}
+}{%
+\end{minipage}\bigbreak}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Citations 
+
 \usepackage[style=numeric, backend=bibtex]{biblatex}
\ No newline at end of file
diff --git a/tgi/tgi.pdf b/tgi/tgi.pdf
index 101e200d0604c4c8eb6c89e693c002fd17912888..b2654187c06419126bcc4592ab2d81dfe53c71cd 100644
GIT binary patch
delta 29364
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
SGBPzYHZ|u`Rdw}u;{pH^glN71

delta 29355
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
T-Te)-0;h=um#V6(zZ(|-HP#IN

diff --git a/tgi/tgi.tex b/tgi/tgi.tex
index a45cf28..fca75f9 100644
--- a/tgi/tgi.tex
+++ b/tgi/tgi.tex
@@ -1,513 +1,513 @@
-\documentclass[german]{../spicker}
-
-\usepackage{amsmath}
-
-\usepackage{graphicx}
-\usepackage{tabularx, multirow}
-
-\usetikzlibrary{arrows.meta,chains,decorations.pathreplacing,scopes,shapes.misc}
-
-\addbibresource{algo.bib}
-
-\title{Theoretische Grundlagen der Informatik}
-\author{Patrick Gustav Blaneck}
-\makeindex[intoc]
-\makeindex[intoc, name=Beispiele,title=Beispiele]
-
-\newenvironment{allintypewriter}{\ttfamily}{\par}
-
- 
-\pgfmathsetmacro\twopi{2*pi}
-
-\pgfmathdeclarefunction{lngamma}{1}{%
-  \pgfmathsetmacro\lngammatmp{#1*#1*#1}%
-  \pgfmathparse{%
-    #1*ln(#1) - #1 - .5*ln(#1/\twopi)
-    + 1/12/#1 - 1/360/\lngammatmp + 1/1260/\lngammatmp/#1/#1
-  }%
-}  
-
-\pgfmathdeclarefunction{facreal}{1}{%
-  \pgfmathparse{exp(lngamma(#1+1))}% 
-}
-
-\begin{document}
-\maketitle
-\tableofcontents
-\newpage
-
-%\setcounter{section}{1}
-
-% ------------------------------------------------
-\section{Random Access Machine (RAM)}
-
-\begin{defi}{Algorithmus}
-  Ein \emph{Algorithmus} ist eine \textbf{Verarbeitungsvorschrift}, die angibt wie Eingabedaten schrittweise in Ausgabedaten umgewandelt werden.
-
-  Wichtig für einen Algorithmus sind insbesondere:
-  \begin{itemize}
-    \item \textbf{Korrektheit:} berechnet der Algorithmus das gewünschte?
-    \item \textbf{Termination:} terminiert der Algorithmus immer?
-    \item \textbf{Geschwindigkeit:} wie lange läuft der Algorithmus?
-    \item \textbf{Speicherverbrauch:} wie viel Speicher verbraucht der Algorithmus?
-  \end{itemize}
-\end{defi}
-
-\begin{defi}{Random Access Machine (RAM), informal}
-  Die \emph{Random Access Machine (RAM)} ist ein axiomatisch definiertes Rechnermodell.
-
-  Die RAM besteht aus:
-  \begin{itemize}
-    \item Programmspeicher (lesen)
-    \item Befehlszähler
-    \item Hauptspeicher (lesen und schreiben)
-          \begin{itemize}
-            \item Speicherzelle 0 als \emph{Akkumulator}
-            \item Speicherzellen nehmen ganze Zahlen auf
-            \item keine Größenbeschränkung
-          \end{itemize}
-    \item Ein- und Ausgabeband
-          \begin{itemize}
-            \item beliebig viele ganze Zahlen
-            \item Zugriff nicht wahlfrei
-          \end{itemize}
-  \end{itemize}
-
-  \begin{center}
-    \includegraphics[]{images/ram.pdf}
-  \end{center}
-\end{defi}
-
-\begin{defi}{Befehlssatz der RAM}
-  Zugriff auf die Bänder:
-  \begin{itemize}
-    \item \texttt{READ} $n$: \\
-          liest den Wert unter dem Lesekopf, schreibt ihn an Speicherstelle $n$ und bewegt den Lesekopf um eine Stelle nach rechts
-    \item \texttt{WRITE} $n$: \\
-          schreibt den Wert aus Speicherstelle $n$ an die Position des Schreibkopfes auf das Ausgabeband und bewegt den Schreibkopf um eine Stelle nach rechts
-  \end{itemize}
-
-  Akkumulator:
-  \begin{itemize}
-    \item \texttt{LOAD} $op_r$: \\
-          beschreibt einen \emph{Wert}
-          \subitem Arten von Operanden $op_r$:
-          \begin{itemize}
-            \item $z$: \emph{unmittelbarer} Operand ($z \in \Z$)
-            \item $[n]$: \emph{direkt adressierter} Operand ($\sigma(n)$ - Inhalt an Speicheradresse $n\in \N_0$)
-            \item $[*n]$: \emph{indirekt adressierter} Operand ($\sigma(\sigma(n))$ - Inhalt der Speicheradresse $\sigma(n)$)
-          \end{itemize}
-  \end{itemize}
-
-  \begin{itemize}
-    \item \texttt{STORE} $op_w$: \\
-          beschreibt eine \emph{Speicheradresse}
-          \subitem Arten von Operanden $op_w$:
-          \begin{itemize}
-            \item $n$: \emph{unmittelbarer} Operand ($n \in \N_0$)
-            \item $[n]$: \emph{direkt adressierter} Operand ($\sigma(n)$ - Inhalt an Speicheradresse $n\in \N_0$)
-          \end{itemize}
-  \end{itemize}
-
-  Arithmetik:
-  \begin{itemize}
-    \item \texttt{ADD} $op_r$: \\
-          addiert den Operanden $op_r$ zum Akkumulator
-    \item \texttt{SUB} $op_r$: \\
-          subtrahier den Operanden $op_r$ vom Akkumulator
-    \item \texttt{MUL} $op_r$: \\
-          multipliziert den Akkumulator mit dem Operanden $op_r$
-    \item \texttt{DIV} $op_r$: \\
-          dividiert den Akkumulator durchden Operanden $op_r$ (Ganzzahldivision)
-  \end{itemize}
-
-  Sprungbefehle:
-  \begin{itemize}
-    \item \texttt{GOTO} $p$: \\
-          die Ausführung wird in Zeile $p$ fortgeführt
-    \item \texttt{JZ} $p$ (Jump Zero): \\
-          falls der Akkumulator 0 enthält, wird die Ausführung in Zeile $p$ fortgeführt, ansonsten bei der folgenden Zeile
-    \item \texttt{JGTZ} $p$ (Jump Greater Than Zero): \\
-          falls der Akkumulator einen Wert größer als 0 enthält, wird die Ausführung in Zeile $p$ fortgeführt, ansonsten bei der folgenden Zeile
-    \item \texttt{HALT}: \\
-          RAM stoppt die Ausführung
-  \end{itemize}
-\end{defi}
-
-\begin{bonus}{Adressierungsarten der RAM}
-  Unmittelbar:
-  \begin{center}
-    \begin{tikzpicture}
-      [
-        %  -{Stealth[length = 2.5pt]},
-        start chain,
-        node distance = 0pt,
-        StackBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
-      ]
-
-      \node [draw, minimum width=2em, minimum height=2em, outer sep=0pt] (ins) {\texttt{LOAD 2}};
-
-      { start chain = going right
-      \node [StackBlock,label=above:$0$, right=2cm of ins, fill=red!30] (0) {2};
-      \node [StackBlock,label=above:$1$] (1) {4};
-      \node [StackBlock,label=above:$2$] (2) {3};
-      \node [StackBlock,label=above:$3$] (3) {1};
-      \node [StackBlock,label=above:$4$] (4) {2};
-
-      \draw[->] (ins.east) [out=0, in=180] to (0.west);
-      }
-    \end{tikzpicture}
-
-  \end{center}
-  Direkt:
-  \begin{center}
-    \begin{tikzpicture}
-      [
-        %  -{Stealth[length = 2.5pt]},
-        start chain,
-        node distance = 0pt,
-        StackBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
-      ]
-
-      \node [draw, minimum width=2em, minimum height=2em, outer sep=0pt] (ins) {\texttt{LOAD [2]}};
-
-      { start chain = going right
-      \node [StackBlock,label=above:$0$, right=2cm of ins, fill=red!30] (0) {3};
-      \node [StackBlock,label=above:$1$] (1) {4};
-      \node [StackBlock,label=above:$2$] (2) {3};
-      \node [StackBlock,label=above:$3$] (3) {1};
-      \node [StackBlock,label=above:$4$] (4) {2};
-
-      \draw[->,dashed] (ins.south) [out=-45, in=-135] to (2.south);
-      \draw[->] (2.south) [out=-90, in=-90] to (0.south);
-      }
-    \end{tikzpicture}
-
-  \end{center}
-  Indirekt:
-  \begin{center}
-    \begin{tikzpicture}
-      [
-        %  -{Stealth[length = 2.5pt]},
-        start chain,
-        node distance = 0pt,
-        StackBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
-      ]
-
-      \node [draw, minimum width=2em, minimum height=2em, outer sep=0pt] (ins) {\texttt{LOAD [*2]}};
-
-      { start chain = going right
-      \node [StackBlock,label=above:$0$, right=2cm of ins, fill=red!30] (0) {1};
-      \node [StackBlock,label=above:$1$] (1) {4};
-      \node [StackBlock,label=above:$2$] (2) {3};
-      \node [StackBlock,label=above:$3$] (3) {1};
-      \node [StackBlock,label=above:$4$] (4) {2};
-
-      \draw[->,dashed] (ins.south) [out=-45, in=-135] to (2.south);
-      \draw[->,dashed] (2.south) [out=-90, in=-90] to (3.south);
-      \draw[->] (3.south) [out=-90, in=-90] to (0.south);
-      }
-    \end{tikzpicture}
-  \end{center}
-\end{bonus}
-
-\begin{defi}{Speicher der RAM}
-  Ein \emph{Speicher} ist eine totale Funktion $\sigma : \N_0 \to \Z$, wobei Adresse $0$ \emph{Akkumulator} genannt wird.
-
-  Die Funktion $\sigma_0$ mit $\forall i \in \N_0 : \sigma_0(i) = 0$ nennen wir den \emph{initialen Speicher}.
-
-  Seien $n \in \N_0$ eine Speicheradresse und $c \in \Z$, dann ist $\sigma[n\to c] : \N_0 \to \Z$ definiert durch\footnote{Verbal: Der Speicheradresse $n$ wird der Wert $c$ zugeordnet. $\sigma(x)$ gibt dann den Wert an der Stelle $x$ zurück.}
-  $$
-    \boxed{
-      \sigma[n\to c](x) = \begin{cases}
-        c         & \text{falls} \ x=n \\
-        \sigma(x) & \text{sonst}
-      \end{cases}
-    }
-  $$
-
-  \textbf{Notation:}
-  Betrachte $\sigma[n_1\to c_1][n_2 \to c_2]\ldots [n_k\to c_k]$
-  \begin{itemize}
-    \item Wir schreiben stattdessen auch $\sigma[n_1\to c_1,n_2 \to c_2,\ldots ,n_k\to c_k]$.
-    \item Für ein $n_i$ notieren wir immer nur das letzte Paar $n_i \to c_j$, da dieses alle vorangegangenen überschreibt
-          (z.B. $\sigma[0\to 1, 1\to 3]$ statt $\sigma[1\to 7, 0\to 1, 1\to 3]$)
-  \end{itemize}
-\end{defi}
-
-\begin{defi}{Bänder der RAM}
-  Sei $N = \{1, \ldots, n\} \in \N$ eine endliche Menge, dann ist ein \emph{RAM-Band} eine Folge von $n$ ganzen Zahlen, die wir als Funktion $\alpha: N \to \Z$ modellieren.
-
-  Bandoperationen:
-  \begin{itemize}
-    \item $\operatorname{read}(\alpha): (N \to \Z) \to (N - \{n\} \to \Z) \times \Z$ ist definiert durch\footnote{Verbal: $\operatorname{read}(\alpha)$ entfernt die erste Position des Bandes ($\alpha'$ entspricht $\alpha$ \glqq um eins nach links verschoben\grqq) und gibt das erste Element des alten Bandes $\alpha(1)$ zurück}
-          $$
-            \boxed{
-              \operatorname{read}(\alpha) = (\alpha', \alpha(1))
-            }
-            \quad \text{mit} \quad \forall i \in \{1, \ldots, n-1\} : \alpha'(i) = \alpha(i+1)
-          $$
-    \item $\operatorname{write}(\alpha, v): (N \to \Z) \times \Z \to (N \cup \{n+1\} \to \Z)$ ist definiert durch
-          $$
-            \boxed{
-              \operatorname{write}(\alpha, v) = \alpha'
-            }
-            \quad \text{mit} \quad \forall i \in \{1, \ldots, n+1\} : \alpha'(i) = \begin{cases}
-              v         & \text{falls} \ i = n+1 \\
-              \alpha(i) & \text{sonst}
-            \end{cases}
-          $$
-  \end{itemize}
-
-  \textbf{Beachte:}
-  $\operatorname{read}$ entfernt das erste Element einer Folge, $\operatorname{write}$ hängt ein Element an das Ende einer Folge an.
-\end{defi}
-
-\begin{defi}{Random Access Machine (RAM), formal}
-  Eine \emph{Random Access Machine (RAM)} ist definiert durch eine endliche Folge von RAM-Befehlen $\mathcal{R}_{am} = (s_1, \ldots, s_n)$, wobei für jedes Sprungziel gilt, dass es im Bereich $\{1, \ldots, n\}$ liegt.
-\end{defi}
-
-\begin{defi}{Konfiguration der RAM}
-  Sei $\mathcal{R}_{am} = (s_1, \ldots, s_n)$ eine RAM.
-  Eine \emph{Konfiguration} von $\mathcal{R}_{am}$ ist ein Quadrupel $(\pi, \alpha, \beta, \sigma)$, bestehend aus:
-  \begin{itemize}
-    \item $\pi$, dem Programmzähler mit $\pi \in \{0, \ldots, n\}$
-    \item $\alpha$, dem Eingabeband,
-    \item $\beta$, dem Ausgabeband
-    \item $\sigma$, dem Speicher
-  \end{itemize}
-
-  Für ein beliebiges $\alpha$ bezeichnet $1, \alpha, (), \sigma_0)$ die \emph{Startkonfiguration} einer RAM.
-
-  Konfigurationen der Form $(0, (), \beta, \sigma)$ nennen wir \emph{Endkonfiguration} und mit $\operatorname{Conf}(\mathcal{R}_{am})$ bezeichnen wir die Menge aller Konfigurationen zu einer RAM $\mathcal{R}_{am}$.
-\end{defi}
-
-\begin{defi}{Operandenfunktion}
-  Sei $\gamma = (\pi, \alpha, \beta, \sigma)$ eine RAM-Konfiguration, dann ist die \emph{Operandenfunktion} $\operatorname{eval}$ definiert durch:
-  \begin{itemize}
-    \item $\operatorname{eval}(\gamma, z) = z$ für $z \in \Z$
-    \item $\operatorname{eval}(\gamma, [n]) = \sigma(n)$ für $n\in \N_0$
-    \item $\operatorname{eval}(\gamma, [*n]) = \sigma(\sigma(n))$ für $n \in \N_0$
-  \end{itemize}
-
-  Anstelle von $\operatorname{eval}(\gamma, \chi) = z$ schreiben wir auch\footnote{Verbal: Unter der Konfiguration $\gamma$ hat der Operand $\chi$ den Wert $z$.}
-  $$
-    \boxed{
-      \gamma \vdash \chi = z
-    }
-  $$
-\end{defi}
-
-\begin{defi}{Deduktionssystem}
-  Die Rechenregeln der RAM werden wir in Form eines \emph{Deduktionssystems} angeben.
-  Darin haben die Regeln die Form:
-  $$
-    \boxed{
-      \frac{\text{Prämisse}_1 \cdots \text{Prämisse}_n}{\gamma \vdash \gamma'} \quad (\operatorname{NAME})
-    }
-  $$
-
-  Die Regel mit Namen $\operatorname{NAME}$ beschreibt den
-  \begin{itemize}
-    \item den \emph{Konfigurationsübergang} von $\gamma$ nach $\gamma'$, der nur dann möglich ist, wenn
-    \item die Bedingungen aller Prämissen erfüllbar sind.
-  \end{itemize}
-
-  Das Deduktionssystem beschreibt somit eine Relation
-  $$
-    \vdash \ : \ \operatorname{Conf} (\mathcal{R}_{am}) \times \operatorname{Conf} (\mathcal{R}_{am})
-  $$
-  die wir \emph{Schrittrelation} nennen.
-\end{defi}
-
-\begin{example}{Schrittrelationen (Bandoperationen)}
-  $$
-    \frac{s_\pi = \operatorname{READ} \ n \quad \operatorname{read}(\alpha) = (\alpha', z)}{(\pi, \alpha, \beta, \sigma) \vdash (\pi + 1, \alpha', \beta, \sigma[n\to z])} \quad (\operatorname{READ})
-  $$
-
-  $$
-    \frac{s_\pi = \operatorname{WRITE} \ n \quad \sigma(n) = z}{(\pi, \alpha, \beta, \sigma) \vdash (\pi + 1, \alpha, \operatorname{write}(\beta, z), \sigma)} \quad (\operatorname{WRITE})
-  $$
-
-  $$
-    \frac{s_\pi = \operatorname{LOAD} \ op_r \quad (\pi, \alpha, \beta, \sigma) \vdash op_r = z}{(\pi, \alpha, \beta, \sigma) \vdash (\pi + 1, \alpha, \beta, \sigma[0\to z])} \quad (\operatorname{LOAD})
-  $$
-
-  $$
-    \frac{s_\pi = \operatorname{STORE} \ op_w \quad (\pi, \alpha, \beta, \sigma) \vdash op_w = n \quad n\in \N}{(\pi, \alpha, \beta, \sigma) \vdash (\pi + 1, \alpha, \beta, \sigma[n\to \sigma(0)])} \quad (\operatorname{STORE})
-  $$
-\end{example}
-
-\begin{example}{Schrittrelationen (Arithmetik)}
-  $$
-    \frac{s_\pi = \operatorname{ADD} \ op_r \quad (\pi, \alpha, \beta, \sigma) \vdash op_r = z_b \quad (\pi, \alpha, \beta, \sigma) \vdash [0] = z_a}{(\pi, \alpha, \beta, \sigma) \vdash (\pi + 1, \alpha, \beta, \sigma[0\to z_a + z_b])} \quad (\operatorname{ADD})
-  $$
-
-  $$
-    \frac{s_\pi = \operatorname{SUB} \ op_r \quad (\pi, \alpha, \beta, \sigma) \vdash op_r = z_b \quad (\pi, \alpha, \beta, \sigma) \vdash [0] = z_a}{(\pi, \alpha, \beta, \sigma) \vdash (\pi + 1, \alpha, \beta, \sigma[0\to z_a - z_b])} \quad (\operatorname{SUB})
-  $$
-
-  $$
-    \frac{s_\pi = \operatorname{MUL} \ op_r \quad (\pi, \alpha, \beta, \sigma) \vdash op_r = z_b \quad (\pi, \alpha, \beta, \sigma) \vdash [0] = z_a}{(\pi, \alpha, \beta, \sigma) \vdash (\pi + 1, \alpha, \beta, \sigma[0\to z_a \cdot z_b])} \quad (\operatorname{MUL})
-  $$
-
-  $$
-    \frac{s_\pi = \operatorname{DIV} \ op_r \quad (\pi, \alpha, \beta, \sigma) \vdash op_r = z_b \quad z_b \neq 0 \quad (\pi, \alpha, \beta, \sigma) \vdash [0] = z_a}{(\pi, \alpha, \beta, \sigma) \vdash \left(\pi + 1, \alpha, \beta, \sigma[0\to \left\lfloor \frac{z_a}{z_b} \right\rfloor ]\right)} \quad (\operatorname{DIV})
-  $$
-\end{example}
-
-\begin{example}{Schrittrelationen (konditional)}
-  $$
-    \frac{s_\pi = \operatorname{GOTO} \ p}{(\pi, \alpha, \beta, \sigma) \vdash (p, \alpha, \beta, \sigma)} \quad (\operatorname{GOTO})
-  $$
-
-  $$
-    \frac{s_\pi = \operatorname{JZ_1} \ p \quad \sigma(0) = 0}{(\pi, \alpha, \beta, \sigma) \vdash (p, \alpha, \beta, \sigma)} \quad (\operatorname{JZ}_1)
-    \qquad
-    \frac{s_\pi = \operatorname{JZ_2} \ p \quad \sigma(0) \neq 0}{(\pi, \alpha, \beta, \sigma) \vdash (\pi + 1, \alpha, \beta, \sigma)} \quad (\operatorname{JZ_2}_2)
-  $$
-
-  $$
-    \frac{s_\pi = \operatorname{JGTZ_1} \ p \quad \sigma(0) > 0}{(\pi, \alpha, \beta, \sigma) \vdash (p, \alpha, \beta, \sigma)} \quad (\operatorname{JGTZ}_1)
-    \qquad
-    \frac{s_\pi = \operatorname{JGTZ_2} \ p \quad \sigma(0) \leq 0}{(\pi, \alpha, \beta, \sigma) \vdash (p, \alpha, \beta, \sigma)} \quad (\operatorname{JGTZ}_2)
-  $$
-  $$
-    \frac{s_\pi = \operatorname{HALT}}{(\pi, \alpha, \beta, \sigma) \vdash (0, \alpha, \beta, \sigma)} \quad (\operatorname{HALT})
-  $$
-\end{example}
-
-\begin{defi}{Abschluss der Schrittrelation}
-  Sei $\mathcal{R}_{am} = (s_1, \ldots, s_n)$ eine RAM.
-  Wir definieren
-  $$
-    \overset{*}{\vdash} \ : \ \operatorname{Conf} (\mathcal{R}_{am}) \times \operatorname{Conf} (\mathcal{R}_{am})
-  $$
-  als reflexiven und transitiven \emph{Abschluss der Schrittrelation}:
-
-  $$
-    \boxed{
-      (\pi, \alpha, \beta, \sigma) \overset{*}{\vdash} (\pi_n, \alpha_n, \beta_n, \sigma_n)
-    }
-  $$
-  falls
-  $$
-    \exists (\pi_1, \alpha_1, \beta_1, \sigma_1), \ldots, (\pi_n, \alpha_n, \beta_n, \sigma_n) \in \operatorname{Conf} (\mathcal{R}_{am}) :
-  $$
-  $$
-    (\pi, \alpha, \beta, \sigma) \vdash (\pi_1, \alpha_1, \beta_1, \sigma_1) \vdash \ldots \vdash (\pi_n, \alpha_n, \beta_n, \sigma_n)
-  $$
-\end{defi}
-
-\begin{defi}{RAM-Berechenbarkeit}
-  Seien $\mathcal{R}_{am} = (s_1, \ldots, s_n)$ eine RAM und $f : \Z^k \to \Z^l$ eine Funktion.
-
-  $\mathcal{R}_{am}$ \emph{berechnet f}, genau dann, wenn
-  $$
-    \forall (z_1, \ldots, z_k) \in \Z^k : (1, (z_1, \ldots, z_k), (), \sigma_0) \overset{*}{\vdash} (0, (), f(z_1, \ldots, z_k), \sigma')
-  $$
-  für ein geeignetes $\sigma'$.
-
-  Eine Funktion heißt \emph{RAM-berechenbar}, wenn es eine RAM gibt, die sie berechnet.
-\end{defi}
-
-\begin{bonus}{Modulo-Operator}
-  Der \emph{Modulo-Operator} $\operatorname{mod} : \Z \times \Z \setminus \{0\} \to Z$ ist definiert durch
-  $$
-    a \operatorname{mod} b = a - \left\lfloor \frac{a}{b} \right\rfloor \cdot b
-  $$
-\end{bonus}
-
-\begin{bonus}{Kongruenz}
-  Sei $m \in \Z \setminus \{0\}$.
-  Zwei Zahlen $a, b \in \Z$ heißen \emph{kongruent modulo m}, genau dann, wenn
-  $$
-    a \operatorname{mod} m = b \operatorname{mod} m
-  $$
-  und wir schreiben
-  $$
-    a \equiv b \ (\operatorname{mod} m)
-  $$
-  Die Menge
-  $$
-    [a]_m = \{z \in \Z \mid z \equiv a \operatorname{mod} m\}
-  $$
-  nennen wir dann \emph{Kongruenzklasse} (auch Restklasse) von $a$ modulo $m$.
-\end{bonus}
-
-\begin{defi}{Schleifeninvariante}
-  Eine \emph{Schleifeninvariante} ist eine Aussage, die vor und nach einer Schleife und jedem Durchlauf der Schleife gilt.
-  Sie ist damit unabhängig von der Zahl ihrer derzeitigen Durchläufe.
-
-  Für die Korrektheit der Schleifeninvatiante muss gezeigt werden, dass
-  \begin{itemize}
-    \item die Invariante direkt vor Ausführung der Schleife und damit auch am Anfang des ersten Schleifendurchlaufs gilt (\emph{Initialisierung})
-    \item falls die Invariante am Anfang eines Schleifendurchlaufs erfüllt ist, sie dann auch am Ende erfüllt ist (\emph{Erhaltung}), und
-    \item sie direkt nach Beendigung der Schleife gilt (\emph{Terminierung}).
-  \end{itemize}
-\end{defi}
-
-\begin{defi}{Partielle Korrektheit}
-  Seien $P$ eine Vorbedingung und $Q$ eine Nachbedingung.
-  Ein Algorithmus heißt \emph{partiell korrekt}, wenn er für Eingaben, unter denen $P$ erfüllt ist, nur Ausgaben liefert, welche $Q$ erfüllen.
-
-\end{defi}
-
-\begin{defi}{Totale Korrektheit}
-  Seien $P$ eine Vorbedingung und $Q$ eine Nachbedingung.
-  Ein Algorithmus heißt \emph{total korrekt}, falls er partiell korrekt ist und auf jeder Eingabe, die $P$ erfüllt, terminiert.
-
-  Zum Nachweis der Termination wird die \emph{Schleifenvariante} genutzt, für die gilt:\footnote{analog zu Zählvariablen}
-  \begin{itemize}
-    \item Ausdruck über Programmvariablen
-    \item liefert Zahl aus $\N_0$
-    \item muss in jeder Iteration verringert werden
-  \end{itemize}
-\end{defi}
-
-\begin{defi}{Speicherplatzverbrauch}
-  Der \emph{Speicherplatzverbrauch} $M$ wird in Abhängigkeit zur Größe der Eingabe angegeben.
-
-  Einfacher Speicherplatzverbrauch:
-  \begin{itemize}
-    \item $M$ entspricht Anzahl der gespeicherten Zahlen
-    \item z.B. für $\operatorname{mod}$: $M(A, B) = 3$
-  \end{itemize}
-
-  Realistischerer Speicherplatzverbrauch:
-  \begin{itemize}
-    \item $M$ entspricht Anzahl der Bits der gespeicherten Zahlen
-    \item z.B. für $\operatorname{mod}$: $M(A, B) = 2 \cdot \lceil \log_2 A \rceil + \lceil \log_2 B \rceil$
-  \end{itemize}
-\end{defi}
-
-\begin{defi}{Laufzeit}
-  Laufzeit ist abhängig von Größe der Eingabe und entspricht der Anzahl der abgearbeiteten RAM-Kommandos.
-
-  Einfache Laufzeit:
-  \begin{itemize}
-    \item $M$ entspricht genau der Anzahl der abgearbeiteten RAM-Kommandos
-    \item z.B. für $\operatorname{mod}$: $T(A, B) = 4 + \underbrace{\left\lfloor \frac{A}{B} \right\rfloor \cdot 7}_{\text{Schleife}} + 3$
-  \end{itemize}
-
-  Realistischere Laufzeit:
-  \begin{itemize}
-    \item logarithmisches Kostenmaß für arithmetische Operationen
-    \item z.B. Aufwand für Subtraktion: Anzahl Bits des größeren Operanden
-    \item damit gilt für $\operatorname{mod}$: $T(A, B) = 4 + \left\lfloor \frac{A}{B} \right\rfloor \cdot 6 + \underbrace{T_{\texttt{SUB}}(A, B)}_{\text{Alle Subtraktionen}} + 3$
-          mit
-          $$
-            T_{\texttt{SUB}}(x, y) = \begin{cases}
-              0                                                                                                      & \text{falls} \ x < y \\
-              T_{\texttt{SUB}}(x-y, y) + \max (\left\lceil \log_2 x \right\rceil, \left\lceil \log_2 y \right\rceil) & \text{sonst}
-            \end{cases}
-          $$
-  \end{itemize}
-\end{defi}
-
-% ------------------------------------------------
-\printindex
-\printindex[Beispiele]
-
-\printbibliography
-\end{document}
+\documentclass[german]{../spicker}
+
+\usepackage{amsmath}
+
+\usepackage{graphicx}
+\usepackage{tabularx, multirow}
+
+\usetikzlibrary{arrows.meta,chains,decorations.pathreplacing,scopes,shapes.misc}
+
+\addbibresource{algo.bib}
+
+\title{Theoretische Grundlagen der Informatik}
+\author{Patrick Gustav Blaneck}
+\makeindex[intoc]
+\makeindex[intoc, name=Beispiele,title=Beispiele]
+
+\newenvironment{allintypewriter}{\ttfamily}{\par}
+
+ 
+\pgfmathsetmacro\twopi{2*pi}
+
+\pgfmathdeclarefunction{lngamma}{1}{%
+  \pgfmathsetmacro\lngammatmp{#1*#1*#1}%
+  \pgfmathparse{%
+    #1*ln(#1) - #1 - .5*ln(#1/\twopi)
+    + 1/12/#1 - 1/360/\lngammatmp + 1/1260/\lngammatmp/#1/#1
+  }%
+}  
+
+\pgfmathdeclarefunction{facreal}{1}{%
+  \pgfmathparse{exp(lngamma(#1+1))}% 
+}
+
+\begin{document}
+\maketitle
+\tableofcontents
+\newpage
+
+%\setcounter{section}{1}
+
+% ------------------------------------------------
+\section{Random Access Machine (RAM)}
+
+\begin{defi}{Algorithmus}
+  Ein \emph{Algorithmus} ist eine \textbf{Verarbeitungsvorschrift}, die angibt wie Eingabedaten schrittweise in Ausgabedaten umgewandelt werden.
+
+  Wichtig für einen Algorithmus sind insbesondere:
+  \begin{itemize}
+    \item \textbf{Korrektheit:} berechnet der Algorithmus das gewünschte?
+    \item \textbf{Termination:} terminiert der Algorithmus immer?
+    \item \textbf{Geschwindigkeit:} wie lange läuft der Algorithmus?
+    \item \textbf{Speicherverbrauch:} wie viel Speicher verbraucht der Algorithmus?
+  \end{itemize}
+\end{defi}
+
+\begin{defi}{Random Access Machine (RAM), informal}
+  Die \emph{Random Access Machine (RAM)} ist ein axiomatisch definiertes Rechnermodell.
+
+  Die RAM besteht aus:
+  \begin{itemize}
+    \item Programmspeicher (lesen)
+    \item Befehlszähler
+    \item Hauptspeicher (lesen und schreiben)
+          \begin{itemize}
+            \item Speicherzelle 0 als \emph{Akkumulator}
+            \item Speicherzellen nehmen ganze Zahlen auf
+            \item keine Größenbeschränkung
+          \end{itemize}
+    \item Ein- und Ausgabeband
+          \begin{itemize}
+            \item beliebig viele ganze Zahlen
+            \item Zugriff nicht wahlfrei
+          \end{itemize}
+  \end{itemize}
+
+  \begin{center}
+    \includegraphics[]{images/ram.pdf}
+  \end{center}
+\end{defi}
+
+\begin{defi}{Befehlssatz der RAM}
+  Zugriff auf die Bänder:
+  \begin{itemize}
+    \item \texttt{READ} $n$: \\
+          liest den Wert unter dem Lesekopf, schreibt ihn an Speicherstelle $n$ und bewegt den Lesekopf um eine Stelle nach rechts
+    \item \texttt{WRITE} $n$: \\
+          schreibt den Wert aus Speicherstelle $n$ an die Position des Schreibkopfes auf das Ausgabeband und bewegt den Schreibkopf um eine Stelle nach rechts
+  \end{itemize}
+
+  Akkumulator:
+  \begin{itemize}
+    \item \texttt{LOAD} $op_r$: \\
+          beschreibt einen \emph{Wert}
+          \subitem Arten von Operanden $op_r$:
+          \begin{itemize}
+            \item $z$: \emph{unmittelbarer} Operand ($z \in \Z$)
+            \item $[n]$: \emph{direkt adressierter} Operand ($\sigma(n)$ - Inhalt an Speicheradresse $n\in \N_0$)
+            \item $[*n]$: \emph{indirekt adressierter} Operand ($\sigma(\sigma(n))$ - Inhalt der Speicheradresse $\sigma(n)$)
+          \end{itemize}
+  \end{itemize}
+
+  \begin{itemize}
+    \item \texttt{STORE} $op_w$: \\
+          beschreibt eine \emph{Speicheradresse}
+          \subitem Arten von Operanden $op_w$:
+          \begin{itemize}
+            \item $n$: \emph{unmittelbarer} Operand ($n \in \N_0$)
+            \item $[n]$: \emph{direkt adressierter} Operand ($\sigma(n)$ - Inhalt an Speicheradresse $n\in \N_0$)
+          \end{itemize}
+  \end{itemize}
+
+  Arithmetik:
+  \begin{itemize}
+    \item \texttt{ADD} $op_r$: \\
+          addiert den Operanden $op_r$ zum Akkumulator
+    \item \texttt{SUB} $op_r$: \\
+          subtrahier den Operanden $op_r$ vom Akkumulator
+    \item \texttt{MUL} $op_r$: \\
+          multipliziert den Akkumulator mit dem Operanden $op_r$
+    \item \texttt{DIV} $op_r$: \\
+          dividiert den Akkumulator durchden Operanden $op_r$ (Ganzzahldivision)
+  \end{itemize}
+
+  Sprungbefehle:
+  \begin{itemize}
+    \item \texttt{GOTO} $p$: \\
+          die Ausführung wird in Zeile $p$ fortgeführt
+    \item \texttt{JZ} $p$ (Jump Zero): \\
+          falls der Akkumulator 0 enthält, wird die Ausführung in Zeile $p$ fortgeführt, ansonsten bei der folgenden Zeile
+    \item \texttt{JGTZ} $p$ (Jump Greater Than Zero): \\
+          falls der Akkumulator einen Wert größer als 0 enthält, wird die Ausführung in Zeile $p$ fortgeführt, ansonsten bei der folgenden Zeile
+    \item \texttt{HALT}: \\
+          RAM stoppt die Ausführung
+  \end{itemize}
+\end{defi}
+
+\begin{bonus}{Adressierungsarten der RAM}
+  Unmittelbar:
+  \begin{center}
+    \begin{tikzpicture}
+      [
+        %  -{Stealth[length = 2.5pt]},
+        start chain,
+        node distance = 0pt,
+        StackBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+      ]
+
+      \node [draw, minimum width=2em, minimum height=2em, outer sep=0pt] (ins) {\texttt{LOAD 2}};
+
+      { start chain = going right
+      \node [StackBlock,label=above:$0$, right=2cm of ins, fill=red!30] (0) {2};
+      \node [StackBlock,label=above:$1$] (1) {4};
+      \node [StackBlock,label=above:$2$] (2) {3};
+      \node [StackBlock,label=above:$3$] (3) {1};
+      \node [StackBlock,label=above:$4$] (4) {2};
+
+      \draw[->] (ins.east) [out=0, in=180] to (0.west);
+      }
+    \end{tikzpicture}
+
+  \end{center}
+  Direkt:
+  \begin{center}
+    \begin{tikzpicture}
+      [
+        %  -{Stealth[length = 2.5pt]},
+        start chain,
+        node distance = 0pt,
+        StackBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+      ]
+
+      \node [draw, minimum width=2em, minimum height=2em, outer sep=0pt] (ins) {\texttt{LOAD [2]}};
+
+      { start chain = going right
+      \node [StackBlock,label=above:$0$, right=2cm of ins, fill=red!30] (0) {3};
+      \node [StackBlock,label=above:$1$] (1) {4};
+      \node [StackBlock,label=above:$2$] (2) {3};
+      \node [StackBlock,label=above:$3$] (3) {1};
+      \node [StackBlock,label=above:$4$] (4) {2};
+
+      \draw[->,dashed] (ins.south) [out=-45, in=-135] to (2.south);
+      \draw[->] (2.south) [out=-90, in=-90] to (0.south);
+      }
+    \end{tikzpicture}
+
+  \end{center}
+  Indirekt:
+  \begin{center}
+    \begin{tikzpicture}
+      [
+        %  -{Stealth[length = 2.5pt]},
+        start chain,
+        node distance = 0pt,
+        StackBlock/.style={draw, minimum width=2em, minimum height=2em, outer sep=0pt, on chain},
+      ]
+
+      \node [draw, minimum width=2em, minimum height=2em, outer sep=0pt] (ins) {\texttt{LOAD [*2]}};
+
+      { start chain = going right
+      \node [StackBlock,label=above:$0$, right=2cm of ins, fill=red!30] (0) {1};
+      \node [StackBlock,label=above:$1$] (1) {4};
+      \node [StackBlock,label=above:$2$] (2) {3};
+      \node [StackBlock,label=above:$3$] (3) {1};
+      \node [StackBlock,label=above:$4$] (4) {2};
+
+      \draw[->,dashed] (ins.south) [out=-45, in=-135] to (2.south);
+      \draw[->,dashed] (2.south) [out=-90, in=-90] to (3.south);
+      \draw[->] (3.south) [out=-90, in=-90] to (0.south);
+      }
+    \end{tikzpicture}
+  \end{center}
+\end{bonus}
+
+\begin{defi}{Speicher der RAM}
+  Ein \emph{Speicher} ist eine totale Funktion $\sigma : \N_0 \to \Z$, wobei Adresse $0$ \emph{Akkumulator} genannt wird.
+
+  Die Funktion $\sigma_0$ mit $\forall i \in \N_0 : \sigma_0(i) = 0$ nennen wir den \emph{initialen Speicher}.
+
+  Seien $n \in \N_0$ eine Speicheradresse und $c \in \Z$, dann ist $\sigma[n\to c] : \N_0 \to \Z$ definiert durch\footnote{Verbal: Der Speicheradresse $n$ wird der Wert $c$ zugeordnet. $\sigma(x)$ gibt dann den Wert an der Stelle $x$ zurück.}
+  $$
+    \boxed{
+      \sigma[n\to c](x) = \begin{cases}
+        c         & \text{falls} \ x=n \\
+        \sigma(x) & \text{sonst}
+      \end{cases}
+    }
+  $$
+
+  \textbf{Notation:}
+  Betrachte $\sigma[n_1\to c_1][n_2 \to c_2]\ldots [n_k\to c_k]$
+  \begin{itemize}
+    \item Wir schreiben stattdessen auch $\sigma[n_1\to c_1,n_2 \to c_2,\ldots ,n_k\to c_k]$.
+    \item Für ein $n_i$ notieren wir immer nur das letzte Paar $n_i \to c_j$, da dieses alle vorangegangenen überschreibt
+          (z.B. $\sigma[0\to 1, 1\to 3]$ statt $\sigma[1\to 7, 0\to 1, 1\to 3]$)
+  \end{itemize}
+\end{defi}
+
+\begin{defi}{Bänder der RAM}
+  Sei $N = \{1, \ldots, n\} \in \N$ eine endliche Menge, dann ist ein \emph{RAM-Band} eine Folge von $n$ ganzen Zahlen, die wir als Funktion $\alpha: N \to \Z$ modellieren.
+
+  Bandoperationen:
+  \begin{itemize}
+    \item $\operatorname{read}(\alpha): (N \to \Z) \to (N - \{n\} \to \Z) \times \Z$ ist definiert durch\footnote{Verbal: $\operatorname{read}(\alpha)$ entfernt die erste Position des Bandes ($\alpha'$ entspricht $\alpha$ \glqq um eins nach links verschoben\grqq) und gibt das erste Element des alten Bandes $\alpha(1)$ zurück}
+          $$
+            \boxed{
+              \operatorname{read}(\alpha) = (\alpha', \alpha(1))
+            }
+            \quad \text{mit} \quad \forall i \in \{1, \ldots, n-1\} : \alpha'(i) = \alpha(i+1)
+          $$
+    \item $\operatorname{write}(\alpha, v): (N \to \Z) \times \Z \to (N \cup \{n+1\} \to \Z)$ ist definiert durch
+          $$
+            \boxed{
+              \operatorname{write}(\alpha, v) = \alpha'
+            }
+            \quad \text{mit} \quad \forall i \in \{1, \ldots, n+1\} : \alpha'(i) = \begin{cases}
+              v         & \text{falls} \ i = n+1 \\
+              \alpha(i) & \text{sonst}
+            \end{cases}
+          $$
+  \end{itemize}
+
+  \textbf{Beachte:}
+  $\operatorname{read}$ entfernt das erste Element einer Folge, $\operatorname{write}$ hängt ein Element an das Ende einer Folge an.
+\end{defi}
+
+\begin{defi}{Random Access Machine (RAM), formal}
+  Eine \emph{Random Access Machine (RAM)} ist definiert durch eine endliche Folge von RAM-Befehlen $\mathcal{R}_{am} = (s_1, \ldots, s_n)$, wobei für jedes Sprungziel gilt, dass es im Bereich $\{1, \ldots, n\}$ liegt.
+\end{defi}
+
+\begin{defi}{Konfiguration der RAM}
+  Sei $\mathcal{R}_{am} = (s_1, \ldots, s_n)$ eine RAM.
+  Eine \emph{Konfiguration} von $\mathcal{R}_{am}$ ist ein Quadrupel $(\pi, \alpha, \beta, \sigma)$, bestehend aus:
+  \begin{itemize}
+    \item $\pi$, dem Programmzähler mit $\pi \in \{0, \ldots, n\}$
+    \item $\alpha$, dem Eingabeband,
+    \item $\beta$, dem Ausgabeband
+    \item $\sigma$, dem Speicher
+  \end{itemize}
+
+  Für ein beliebiges $\alpha$ bezeichnet $1, \alpha, (), \sigma_0)$ die \emph{Startkonfiguration} einer RAM.
+
+  Konfigurationen der Form $(0, (), \beta, \sigma)$ nennen wir \emph{Endkonfiguration} und mit $\operatorname{Conf}(\mathcal{R}_{am})$ bezeichnen wir die Menge aller Konfigurationen zu einer RAM $\mathcal{R}_{am}$.
+\end{defi}
+
+\begin{defi}{Operandenfunktion}
+  Sei $\gamma = (\pi, \alpha, \beta, \sigma)$ eine RAM-Konfiguration, dann ist die \emph{Operandenfunktion} $\operatorname{eval}$ definiert durch:
+  \begin{itemize}
+    \item $\operatorname{eval}(\gamma, z) = z$ für $z \in \Z$
+    \item $\operatorname{eval}(\gamma, [n]) = \sigma(n)$ für $n\in \N_0$
+    \item $\operatorname{eval}(\gamma, [*n]) = \sigma(\sigma(n))$ für $n \in \N_0$
+  \end{itemize}
+
+  Anstelle von $\operatorname{eval}(\gamma, \chi) = z$ schreiben wir auch\footnote{Verbal: Unter der Konfiguration $\gamma$ hat der Operand $\chi$ den Wert $z$.}
+  $$
+    \boxed{
+      \gamma \vdash \chi = z
+    }
+  $$
+\end{defi}
+
+\begin{defi}{Deduktionssystem}
+  Die Rechenregeln der RAM werden wir in Form eines \emph{Deduktionssystems} angeben.
+  Darin haben die Regeln die Form:
+  $$
+    \boxed{
+      \frac{\text{Prämisse}_1 \cdots \text{Prämisse}_n}{\gamma \vdash \gamma'} \quad (\operatorname{NAME})
+    }
+  $$
+
+  Die Regel mit Namen $\operatorname{NAME}$ beschreibt den
+  \begin{itemize}
+    \item den \emph{Konfigurationsübergang} von $\gamma$ nach $\gamma'$, der nur dann möglich ist, wenn
+    \item die Bedingungen aller Prämissen erfüllbar sind.
+  \end{itemize}
+
+  Das Deduktionssystem beschreibt somit eine Relation
+  $$
+    \vdash \ : \ \operatorname{Conf} (\mathcal{R}_{am}) \times \operatorname{Conf} (\mathcal{R}_{am})
+  $$
+  die wir \emph{Schrittrelation} nennen.
+\end{defi}
+
+\begin{example}{Schrittrelationen (Bandoperationen)}
+  $$
+    \frac{s_\pi = \operatorname{READ} \ n \quad \operatorname{read}(\alpha) = (\alpha', z)}{(\pi, \alpha, \beta, \sigma) \vdash (\pi + 1, \alpha', \beta, \sigma[n\to z])} \quad (\operatorname{READ})
+  $$
+
+  $$
+    \frac{s_\pi = \operatorname{WRITE} \ n \quad \sigma(n) = z}{(\pi, \alpha, \beta, \sigma) \vdash (\pi + 1, \alpha, \operatorname{write}(\beta, z), \sigma)} \quad (\operatorname{WRITE})
+  $$
+
+  $$
+    \frac{s_\pi = \operatorname{LOAD} \ op_r \quad (\pi, \alpha, \beta, \sigma) \vdash op_r = z}{(\pi, \alpha, \beta, \sigma) \vdash (\pi + 1, \alpha, \beta, \sigma[0\to z])} \quad (\operatorname{LOAD})
+  $$
+
+  $$
+    \frac{s_\pi = \operatorname{STORE} \ op_w \quad (\pi, \alpha, \beta, \sigma) \vdash op_w = n \quad n\in \N}{(\pi, \alpha, \beta, \sigma) \vdash (\pi + 1, \alpha, \beta, \sigma[n\to \sigma(0)])} \quad (\operatorname{STORE})
+  $$
+\end{example}
+
+\begin{example}{Schrittrelationen (Arithmetik)}
+  $$
+    \frac{s_\pi = \operatorname{ADD} \ op_r \quad (\pi, \alpha, \beta, \sigma) \vdash op_r = z_b \quad (\pi, \alpha, \beta, \sigma) \vdash [0] = z_a}{(\pi, \alpha, \beta, \sigma) \vdash (\pi + 1, \alpha, \beta, \sigma[0\to z_a + z_b])} \quad (\operatorname{ADD})
+  $$
+
+  $$
+    \frac{s_\pi = \operatorname{SUB} \ op_r \quad (\pi, \alpha, \beta, \sigma) \vdash op_r = z_b \quad (\pi, \alpha, \beta, \sigma) \vdash [0] = z_a}{(\pi, \alpha, \beta, \sigma) \vdash (\pi + 1, \alpha, \beta, \sigma[0\to z_a - z_b])} \quad (\operatorname{SUB})
+  $$
+
+  $$
+    \frac{s_\pi = \operatorname{MUL} \ op_r \quad (\pi, \alpha, \beta, \sigma) \vdash op_r = z_b \quad (\pi, \alpha, \beta, \sigma) \vdash [0] = z_a}{(\pi, \alpha, \beta, \sigma) \vdash (\pi + 1, \alpha, \beta, \sigma[0\to z_a \cdot z_b])} \quad (\operatorname{MUL})
+  $$
+
+  $$
+    \frac{s_\pi = \operatorname{DIV} \ op_r \quad (\pi, \alpha, \beta, \sigma) \vdash op_r = z_b \quad z_b \neq 0 \quad (\pi, \alpha, \beta, \sigma) \vdash [0] = z_a}{(\pi, \alpha, \beta, \sigma) \vdash \left(\pi + 1, \alpha, \beta, \sigma[0\to \left\lfloor \frac{z_a}{z_b} \right\rfloor ]\right)} \quad (\operatorname{DIV})
+  $$
+\end{example}
+
+\begin{example}{Schrittrelationen (konditional)}
+  $$
+    \frac{s_\pi = \operatorname{GOTO} \ p}{(\pi, \alpha, \beta, \sigma) \vdash (p, \alpha, \beta, \sigma)} \quad (\operatorname{GOTO})
+  $$
+
+  $$
+    \frac{s_\pi = \operatorname{JZ_1} \ p \quad \sigma(0) = 0}{(\pi, \alpha, \beta, \sigma) \vdash (p, \alpha, \beta, \sigma)} \quad (\operatorname{JZ}_1)
+    \qquad
+    \frac{s_\pi = \operatorname{JZ_2} \ p \quad \sigma(0) \neq 0}{(\pi, \alpha, \beta, \sigma) \vdash (\pi + 1, \alpha, \beta, \sigma)} \quad (\operatorname{JZ_2}_2)
+  $$
+
+  $$
+    \frac{s_\pi = \operatorname{JGTZ_1} \ p \quad \sigma(0) > 0}{(\pi, \alpha, \beta, \sigma) \vdash (p, \alpha, \beta, \sigma)} \quad (\operatorname{JGTZ}_1)
+    \qquad
+    \frac{s_\pi = \operatorname{JGTZ_2} \ p \quad \sigma(0) \leq 0}{(\pi, \alpha, \beta, \sigma) \vdash (p, \alpha, \beta, \sigma)} \quad (\operatorname{JGTZ}_2)
+  $$
+  $$
+    \frac{s_\pi = \operatorname{HALT}}{(\pi, \alpha, \beta, \sigma) \vdash (0, \alpha, \beta, \sigma)} \quad (\operatorname{HALT})
+  $$
+\end{example}
+
+\begin{defi}{Abschluss der Schrittrelation}
+  Sei $\mathcal{R}_{am} = (s_1, \ldots, s_n)$ eine RAM.
+  Wir definieren
+  $$
+    \overset{*}{\vdash} \ : \ \operatorname{Conf} (\mathcal{R}_{am}) \times \operatorname{Conf} (\mathcal{R}_{am})
+  $$
+  als reflexiven und transitiven \emph{Abschluss der Schrittrelation}:
+
+  $$
+    \boxed{
+      (\pi, \alpha, \beta, \sigma) \overset{*}{\vdash} (\pi_n, \alpha_n, \beta_n, \sigma_n)
+    }
+  $$
+  falls
+  $$
+    \exists (\pi_1, \alpha_1, \beta_1, \sigma_1), \ldots, (\pi_n, \alpha_n, \beta_n, \sigma_n) \in \operatorname{Conf} (\mathcal{R}_{am}) :
+  $$
+  $$
+    (\pi, \alpha, \beta, \sigma) \vdash (\pi_1, \alpha_1, \beta_1, \sigma_1) \vdash \ldots \vdash (\pi_n, \alpha_n, \beta_n, \sigma_n)
+  $$
+\end{defi}
+
+\begin{defi}{RAM-Berechenbarkeit}
+  Seien $\mathcal{R}_{am} = (s_1, \ldots, s_n)$ eine RAM und $f : \Z^k \to \Z^l$ eine Funktion.
+
+  $\mathcal{R}_{am}$ \emph{berechnet f}, genau dann, wenn
+  $$
+    \forall (z_1, \ldots, z_k) \in \Z^k : (1, (z_1, \ldots, z_k), (), \sigma_0) \overset{*}{\vdash} (0, (), f(z_1, \ldots, z_k), \sigma')
+  $$
+  für ein geeignetes $\sigma'$.
+
+  Eine Funktion heißt \emph{RAM-berechenbar}, wenn es eine RAM gibt, die sie berechnet.
+\end{defi}
+
+\begin{bonus}{Modulo-Operator}
+  Der \emph{Modulo-Operator} $\operatorname{mod} : \Z \times \Z \setminus \{0\} \to Z$ ist definiert durch
+  $$
+    a \operatorname{mod} b = a - \left\lfloor \frac{a}{b} \right\rfloor \cdot b
+  $$
+\end{bonus}
+
+\begin{bonus}{Kongruenz}
+  Sei $m \in \Z \setminus \{0\}$.
+  Zwei Zahlen $a, b \in \Z$ heißen \emph{kongruent modulo m}, genau dann, wenn
+  $$
+    a \operatorname{mod} m = b \operatorname{mod} m
+  $$
+  und wir schreiben
+  $$
+    a \equiv b \ (\operatorname{mod} m)
+  $$
+  Die Menge
+  $$
+    [a]_m = \{z \in \Z \mid z \equiv a \operatorname{mod} m\}
+  $$
+  nennen wir dann \emph{Kongruenzklasse} (auch Restklasse) von $a$ modulo $m$.
+\end{bonus}
+
+\begin{defi}{Schleifeninvariante}
+  Eine \emph{Schleifeninvariante} ist eine Aussage, die vor und nach einer Schleife und jedem Durchlauf der Schleife gilt.
+  Sie ist damit unabhängig von der Zahl ihrer derzeitigen Durchläufe.
+
+  Für die Korrektheit der Schleifeninvatiante muss gezeigt werden, dass
+  \begin{itemize}
+    \item die Invariante direkt vor Ausführung der Schleife und damit auch am Anfang des ersten Schleifendurchlaufs gilt (\emph{Initialisierung})
+    \item falls die Invariante am Anfang eines Schleifendurchlaufs erfüllt ist, sie dann auch am Ende erfüllt ist (\emph{Erhaltung}), und
+    \item sie direkt nach Beendigung der Schleife gilt (\emph{Terminierung}).
+  \end{itemize}
+\end{defi}
+
+\begin{defi}{Partielle Korrektheit}
+  Seien $P$ eine Vorbedingung und $Q$ eine Nachbedingung.
+  Ein Algorithmus heißt \emph{partiell korrekt}, wenn er für Eingaben, unter denen $P$ erfüllt ist, nur Ausgaben liefert, welche $Q$ erfüllen.
+
+\end{defi}
+
+\begin{defi}{Totale Korrektheit}
+  Seien $P$ eine Vorbedingung und $Q$ eine Nachbedingung.
+  Ein Algorithmus heißt \emph{total korrekt}, falls er partiell korrekt ist und auf jeder Eingabe, die $P$ erfüllt, terminiert.
+
+  Zum Nachweis der Termination wird die \emph{Schleifenvariante} genutzt, für die gilt:\footnote{analog zu Zählvariablen}
+  \begin{itemize}
+    \item Ausdruck über Programmvariablen
+    \item liefert Zahl aus $\N_0$
+    \item muss in jeder Iteration verringert werden
+  \end{itemize}
+\end{defi}
+
+\begin{defi}{Speicherplatzverbrauch}
+  Der \emph{Speicherplatzverbrauch} $M$ wird in Abhängigkeit zur Größe der Eingabe angegeben.
+
+  Einfacher Speicherplatzverbrauch:
+  \begin{itemize}
+    \item $M$ entspricht Anzahl der gespeicherten Zahlen
+    \item z.B. für $\operatorname{mod}$: $M(A, B) = 3$
+  \end{itemize}
+
+  Realistischerer Speicherplatzverbrauch:
+  \begin{itemize}
+    \item $M$ entspricht Anzahl der Bits der gespeicherten Zahlen
+    \item z.B. für $\operatorname{mod}$: $M(A, B) = 2 \cdot \lceil \log_2 A \rceil + \lceil \log_2 B \rceil$
+  \end{itemize}
+\end{defi}
+
+\begin{defi}{Laufzeit}
+  Laufzeit ist abhängig von Größe der Eingabe und entspricht der Anzahl der abgearbeiteten RAM-Kommandos.
+
+  Einfache Laufzeit:
+  \begin{itemize}
+    \item $M$ entspricht genau der Anzahl der abgearbeiteten RAM-Kommandos
+    \item z.B. für $\operatorname{mod}$: $T(A, B) = 4 + \underbrace{\left\lfloor \frac{A}{B} \right\rfloor \cdot 7}_{\text{Schleife}} + 3$
+  \end{itemize}
+
+  Realistischere Laufzeit:
+  \begin{itemize}
+    \item logarithmisches Kostenmaß für arithmetische Operationen
+    \item z.B. Aufwand für Subtraktion: Anzahl Bits des größeren Operanden
+    \item damit gilt für $\operatorname{mod}$: $T(A, B) = 4 + \left\lfloor \frac{A}{B} \right\rfloor \cdot 6 + \underbrace{T_{\texttt{SUB}}(A, B)}_{\text{Alle Subtraktionen}} + 3$
+          mit
+          $$
+            T_{\texttt{SUB}}(x, y) = \begin{cases}
+              0                                                                                                      & \text{falls} \ x < y \\
+              T_{\texttt{SUB}}(x-y, y) + \max (\left\lceil \log_2 x \right\rceil, \left\lceil \log_2 y \right\rceil) & \text{sonst}
+            \end{cases}
+          $$
+  \end{itemize}
+\end{defi}
+
+% ------------------------------------------------
+\printindex
+\printindex[Beispiele]
+
+\printbibliography
+\end{document}
-- 
GitLab