From 23326eb7047812366848812919aebf85c04f589e Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Tue, 20 Apr 2021 12:30:50 +0200 Subject: Presentation added --- buch/papers/reedsolomon/RS presentation/RS.aux | 30 + buch/papers/reedsolomon/RS presentation/RS.log | 956 +++++++++++++++++++++ buch/papers/reedsolomon/RS presentation/RS.nav | 9 + buch/papers/reedsolomon/RS presentation/RS.out | 0 buch/papers/reedsolomon/RS presentation/RS.pdf | Bin 0 -> 53965 bytes buch/papers/reedsolomon/RS presentation/RS.snm | 0 .../reedsolomon/RS presentation/RS.synctex.gz | Bin 0 -> 3637 bytes buch/papers/reedsolomon/RS presentation/RS.tex | 25 + buch/papers/reedsolomon/RS presentation/RS.toc | 1 + buch/papers/reedsolomon/RS presentation/Thumbs.db | Bin 0 -> 89088 bytes 10 files changed, 1021 insertions(+) create mode 100644 buch/papers/reedsolomon/RS presentation/RS.aux create mode 100644 buch/papers/reedsolomon/RS presentation/RS.log create mode 100644 buch/papers/reedsolomon/RS presentation/RS.nav create mode 100644 buch/papers/reedsolomon/RS presentation/RS.out create mode 100644 buch/papers/reedsolomon/RS presentation/RS.pdf create mode 100644 buch/papers/reedsolomon/RS presentation/RS.snm create mode 100644 buch/papers/reedsolomon/RS presentation/RS.synctex.gz create mode 100644 buch/papers/reedsolomon/RS presentation/RS.tex create mode 100644 buch/papers/reedsolomon/RS presentation/RS.toc create mode 100644 buch/papers/reedsolomon/RS presentation/Thumbs.db (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/RS presentation/RS.aux b/buch/papers/reedsolomon/RS presentation/RS.aux new file mode 100644 index 0000000..17ce46b --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/RS.aux @@ -0,0 +1,30 @@ +\relax +\providecommand\hyper@newdestlabel[2]{} +\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} +\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined +\global\let\oldcontentsline\contentsline +\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} +\global\let\oldnewlabel\newlabel +\gdef\newlabel#1#2{\newlabelxx{#1}#2} +\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} +\AtEndDocument{\ifx\hyper@anchor\@undefined +\let\contentsline\oldcontentsline +\let\newlabel\oldnewlabel +\fi} +\fi} +\global\let\hyper@last\relax +\gdef\HyperFirstAtBeginDocument#1{#1} +\providecommand\HyField@AuxAddToFields[1]{} +\providecommand\HyField@AuxAddToCoFields[2]{} +\@nameuse{bbl@beforestart} +\catcode `"\active +\babel@aux{ngerman}{} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{1}{1/1}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {1}{1}}} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{2}{2/2}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {2}{2}}} +\@writefile{nav}{\headcommand {\beamer@partpages {1}{2}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {1}{2}}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {1}{2}}} +\@writefile{nav}{\headcommand {\beamer@documentpages {2}}} +\@writefile{nav}{\headcommand {\gdef \inserttotalframenumber {2}}} diff --git a/buch/papers/reedsolomon/RS presentation/RS.log b/buch/papers/reedsolomon/RS presentation/RS.log new file mode 100644 index 0000000..f7dc931 --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/RS.log @@ -0,0 +1,956 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/W32TeX) (preloaded format=pdflatex 2019.11.30) 20 APR 2021 12:21 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**RS.tex +(./RS.tex +LaTeX2e <2019-10-01> patch level 3 +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamer.cls +Document Class: beamer 2019/09/29 v3.57 A class for typesetting presentations +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasemodes.sty +(c:/texlive/2019/texmf-dist/tex/latex/etoolbox/etoolbox.sty +Package: etoolbox 2019/09/21 v2.5h e-TeX tools for LaTeX (JAW) +\etb@tempcnta=\count80 +) +\beamer@tempbox=\box27 +\beamer@tempcount=\count81 +\c@beamerpauses=\count82 + +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasedecode.sty +\beamer@slideinframe=\count83 +\beamer@minimum=\count84 +\beamer@decode@box=\box28 +) +\beamer@commentbox=\box29 +\beamer@modecount=\count85 +) +(c:/texlive/2019/texmf-dist/tex/generic/iftex/ifpdf.sty +Package: ifpdf 2019/10/25 v3.4 ifpdf legacy package. Use iftex instead. + +(c:/texlive/2019/texmf-dist/tex/generic/iftex/iftex.sty +Package: iftex 2019/11/07 v1.0c TeX engine tests +)) +\headdp=\dimen102 +\footheight=\dimen103 +\sidebarheight=\dimen104 +\beamer@tempdim=\dimen105 +\beamer@finalheight=\dimen106 +\beamer@animht=\dimen107 +\beamer@animdp=\dimen108 +\beamer@animwd=\dimen109 +\beamer@leftmargin=\dimen110 +\beamer@rightmargin=\dimen111 +\beamer@leftsidebar=\dimen112 +\beamer@rightsidebar=\dimen113 +\beamer@boxsize=\dimen114 +\beamer@vboxoffset=\dimen115 +\beamer@descdefault=\dimen116 +\beamer@descriptionwidth=\dimen117 +\beamer@lastskip=\skip41 +\beamer@areabox=\box30 +\beamer@animcurrent=\box31 +\beamer@animshowbox=\box32 +\beamer@sectionbox=\box33 +\beamer@logobox=\box34 +\beamer@linebox=\box35 +\beamer@sectioncount=\count86 +\beamer@subsubsectionmax=\count87 +\beamer@subsectionmax=\count88 +\beamer@sectionmax=\count89 +\beamer@totalheads=\count90 +\beamer@headcounter=\count91 +\beamer@partstartpage=\count92 +\beamer@sectionstartpage=\count93 +\beamer@subsectionstartpage=\count94 +\beamer@animationtempa=\count95 +\beamer@animationtempb=\count96 +\beamer@xpos=\count97 +\beamer@ypos=\count98 +\beamer@ypos@offset=\count99 +\beamer@showpartnumber=\count100 +\beamer@currentsubsection=\count101 +\beamer@coveringdepth=\count102 +\beamer@sectionadjust=\count103 +\beamer@tocsectionnumber=\count104 + +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaseoptions.sty +(c:/texlive/2019/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks14 +)) +\beamer@paperwidth=\skip42 +\beamer@paperheight=\skip43 + +(c:/texlive/2019/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2018/04/16 v5.8 Page Geometry + +(c:/texlive/2019/texmf-dist/tex/generic/iftex/ifvtex.sty +Package: ifvtex 2019/10/25 v1.7 ifvtex legacy package. Use iftex instead. +) +(c:/texlive/2019/texmf-dist/tex/generic/iftex/ifxetex.sty +Package: ifxetex 2019/10/25 v0.7 ifxetex legacy package. Use iftex instead. +) +\Gm@cnth=\count105 +\Gm@cntv=\count106 +\c@Gm@tempcnt=\count107 +\Gm@bindingoffset=\dimen118 +\Gm@wd@mp=\dimen119 +\Gm@odd@mp=\dimen120 +\Gm@even@mp=\dimen121 +\Gm@layoutwidth=\dimen122 +\Gm@layoutheight=\dimen123 +\Gm@layouthoffset=\dimen124 +\Gm@layoutvoffset=\dimen125 +\Gm@dimlist=\toks15 +) +(c:/texlive/2019/texmf-dist/tex/latex/base/size11.clo +File: size11.clo 2019/10/25 v1.4k Standard LaTeX file (size option) +) +(c:/texlive/2019/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +(c:/texlive/2019/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR) + +(c:/texlive/2019/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2019/11/01 v1.3d Standard LaTeX Graphics (DPC,SPQR) + +(c:/texlive/2019/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) +(c:/texlive/2019/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 105. + +(c:/texlive/2019/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex +)) +\Gin@req@height=\dimen126 +\Gin@req@width=\dimen127 +) +(c:/texlive/2019/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +(c:/texlive/2019/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex +\pgfutil@everybye=\toks16 +\pgfutil@tempdima=\dimen128 +\pgfutil@tempdimb=\dimen129 + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.tex) +) (c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def +\pgfutil@abb=\box36 + +(c:/texlive/2019/texmf-dist/tex/latex/ms/everyshi.sty +Package: everyshi 2001/05/15 v3.00 EveryShipout Package (MS) +)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/pgf.revision.tex) +Package: pgfrcs 2019/08/03 v3.1.4b (3.1.4b) +)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +Package: pgfsys 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +\pgfkeys@pathtoks=\toks17 +\pgfkeys@temptoks=\toks18 + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex +\pgfkeys@tmptoks=\toks19 +)) +\pgf@x=\dimen130 +\pgf@y=\dimen131 +\pgf@xa=\dimen132 +\pgf@ya=\dimen133 +\pgf@xb=\dimen134 +\pgf@yb=\dimen135 +\pgf@xc=\dimen136 +\pgf@yc=\dimen137 +\pgf@xd=\dimen138 +\pgf@yd=\dimen139 +\w@pgf@writea=\write3 +\r@pgf@reada=\read1 +\c@pgf@counta=\count108 +\c@pgf@countb=\count109 +\c@pgf@countc=\count110 +\c@pgf@countd=\count111 +\t@pgf@toka=\toks20 +\t@pgf@tokb=\toks21 +\t@pgf@tokc=\toks22 +\pgf@sys@id@count=\count112 + (c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg +File: pgf.cfg 2019/08/03 v3.1.4b (3.1.4b) +) +Driver file for pgf: pgfsys-pdftex.def + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def +File: pgfsys-pdftex.def 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def +File: pgfsys-common-pdf.def 2019/08/03 v3.1.4b (3.1.4b) +))) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex +File: pgfsyssoftpath.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgfsyssoftpath@smallbuffer@items=\count113 +\pgfsyssoftpath@bigbuffer@items=\count114 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex +File: pgfsysprotocol.code.tex 2019/08/03 v3.1.4b (3.1.4b) +)) (c:/texlive/2019/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) + +(c:/texlive/2019/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: pdftex.def on input line 225. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352. +Package xcolor Info: Model `RGB' extended on input line 1364. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +Package: pgfcore 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex +\pgfmath@dimen=\dimen140 +\pgfmath@count=\count115 +\pgfmath@box=\box37 +\pgfmath@toks=\toks23 +\pgfmath@stack@operand=\toks24 +\pgfmath@stack@operation=\toks25 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.te +x) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric +.code.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.t +ex) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.co +de.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.te +x) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithm +etics.code.tex))) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex +\c@pgfmathroundto@lastzeros=\count116 +)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfint.code.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex +File: pgfcorepoints.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgf@picminx=\dimen141 +\pgf@picmaxx=\dimen142 +\pgf@picminy=\dimen143 +\pgf@picmaxy=\dimen144 +\pgf@pathminx=\dimen145 +\pgf@pathmaxx=\dimen146 +\pgf@pathminy=\dimen147 +\pgf@pathmaxy=\dimen148 +\pgf@xx=\dimen149 +\pgf@xy=\dimen150 +\pgf@yx=\dimen151 +\pgf@yy=\dimen152 +\pgf@zx=\dimen153 +\pgf@zy=\dimen154 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.cod +e.tex +File: pgfcorepathconstruct.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgf@path@lastx=\dimen155 +\pgf@path@lasty=\dimen156 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.te +x +File: pgfcorepathusage.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgf@shorten@end@additional=\dimen157 +\pgf@shorten@start@additional=\dimen158 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex +File: pgfcorescopes.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgfpic=\box38 +\pgf@hbox=\box39 +\pgf@layerbox@main=\box40 +\pgf@picture@serial@count=\count117 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code +.tex +File: pgfcoregraphicstate.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgflinewidth=\dimen159 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.c +ode.tex +File: pgfcoretransformations.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgf@pt@x=\dimen160 +\pgf@pt@y=\dimen161 +\pgf@pt@temp=\dimen162 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex +File: pgfcorequick.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex +File: pgfcoreobjects.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.co +de.tex +File: pgfcorepathprocessing.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex +File: pgfcorearrows.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgfarrowsep=\dimen163 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex +File: pgfcoreshade.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgf@max=\dimen164 +\pgf@sys@shading@range@num=\count118 +\pgf@shadingcount=\count119 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex +File: pgfcoreimage.code.tex 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex +File: pgfcoreexternal.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgfexternal@startupbox=\box41 +)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex +File: pgfcorelayers.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code +.tex +File: pgfcoretransparency.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex +File: pgfcorepatterns.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) (c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex +File: pgfcorerdf.code.tex 2019/08/03 v3.1.4b (3.1.4b) +))) (c:/texlive/2019/texmf-dist/tex/latex/pgf/utilities/xxcolor.sty +Package: xxcolor 2003/10/24 ver 0.1 +\XC@nummixins=\count120 +\XC@countmixins=\count121 +) +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/atbegshi.sty +Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO) + +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) +) +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) +)) +(c:/texlive/2019/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2019/11/10 v7.00c Hypertext links for LaTeX + +(c:/texlive/2019/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty +Package: pdftexcmds 2019/11/24 v0.31 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +) +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) + +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/etexcmds.sty +Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) + +(c:/texlive/2019/texmf-dist/tex/generic/iftex/ifluatex.sty +Package: ifluatex 2019/10/25 v1.5 ifluatex legacy package. Use iftex instead. +))) +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty +Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO) +) +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/pdfescape.sty +Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO) +) +(c:/texlive/2019/texmf-dist/tex/latex/oberdiek/hycolor.sty +Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO) + +(c:/texlive/2019/texmf-dist/tex/latex/oberdiek/xcolor-patch.sty +Package: xcolor-patch 2016/05/16 xcolor patch + +(c:/texlive/2019/texmf-dist/tex/latex/oberdiek/hopatch.sty +Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO) +))) +(c:/texlive/2019/texmf-dist/tex/latex/oberdiek/letltxmacro.sty +Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO) +) +(c:/texlive/2019/texmf-dist/tex/latex/oberdiek/auxhook.sty +Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO) +) +(c:/texlive/2019/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) +) +\@linkdim=\dimen165 +\Hy@linkcounter=\count122 +\Hy@pagecounter=\count123 + +(c:/texlive/2019/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2019/11/10 v7.00c Hyperref: PDFDocEncoding definition (HO) +Now handling font encoding PD1 ... +... no UTF-8 mapping file for font encoding PD1 +) +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/intcalc.sty +Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO) +) +\Hy@SavedSpaceFactor=\count124 + +(c:/texlive/2019/texmf-dist/tex/latex/latexconfig/hyperref.cfg +File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive +) +Package hyperref Info: Option `bookmarks' set `true' on input line 4409. +Package hyperref Info: Option `bookmarksopen' set `true' on input line 4409. +Package hyperref Info: Option `implicit' set `false' on input line 4409. +Package hyperref Info: Hyper figures OFF on input line 4535. +Package hyperref Info: Link nesting OFF on input line 4540. +Package hyperref Info: Hyper index ON on input line 4543. +Package hyperref Info: Plain pages OFF on input line 4550. +Package hyperref Info: Backreferencing OFF on input line 4555. +Package hyperref Info: Implicit mode OFF; no redefinition of LaTeX internals. +Package hyperref Info: Bookmarks ON on input line 4788. +\c@Hy@tempcnt=\count125 + +(c:/texlive/2019/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip10 +Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 5147. +\XeTeXLinkMargin=\dimen166 + +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/bitset.sty +Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO) + +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/bigintcalc.sty +Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO +) +)) +\Fld@menulength=\count126 +\Field@Width=\dimen167 +\Fld@charsize=\dimen168 +Package hyperref Info: Hyper figures OFF on input line 6418. +Package hyperref Info: Link nesting OFF on input line 6423. +Package hyperref Info: Hyper index ON on input line 6426. +Package hyperref Info: backreferencing OFF on input line 6433. +Package hyperref Info: Link coloring OFF on input line 6438. +Package hyperref Info: Link coloring with OCG OFF on input line 6443. +Package hyperref Info: PDF/A mode OFF on input line 6448. +LaTeX Info: Redefining \ref on input line 6488. +LaTeX Info: Redefining \pageref on input line 6492. +\Hy@abspage=\count127 + + +Package hyperref Message: Stopped early. + +) +Package hyperref Info: Driver (autodetected): hpdftex. + (c:/texlive/2019/texmf-dist/tex/latex/hyperref/hpdftex.def +File: hpdftex.def 2019/11/10 v7.00c Hyperref driver for pdfTeX + +(c:/texlive/2019/texmf-dist/tex/latex/oberdiek/atveryend.sty +Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO) +) +\Fld@listcount=\count128 +\c@bookmark@seq@number=\count129 + +(c:/texlive/2019/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty +Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO) + +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/uniquecounter.sty +Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO) +) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 +85. +)) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaserequires.sty +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasecompatibility.sty) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasefont.sty +(c:/texlive/2019/texmf-dist/tex/latex/amsfonts/amssymb.sty +Package: amssymb 2013/01/14 v3.01 AMS font symbols + +(c:/texlive/2019/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support +\@emptytoks=\toks26 +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Redeclaring math symbol \hbar on input line 98. +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 106. +)) +(c:/texlive/2019/texmf-dist/tex/latex/sansmathaccent/sansmathaccent.sty +Package: sansmathaccent 2013/03/28 + +(c:/texlive/2019/texmf-dist/tex/latex/filehook/filehook.sty +Package: filehook 2019/10/03 v0.6 Hooks for input files +))) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasetranslator.sty +(c:/texlive/2019/texmf-dist/tex/latex/translator/translator.sty +Package: translator 2019-05-31 v1.12a Easy translation of strings in LaTeX +)) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasemisc.sty) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasetwoscreens.sty) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaseoverlay.sty +\beamer@argscount=\count130 +\beamer@lastskipcover=\skip44 +\beamer@trivlistdepth=\count131 +) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasetitle.sty) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasesection.sty +\c@lecture=\count132 +\c@part=\count133 +\c@section=\count134 +\c@subsection=\count135 +\c@subsubsection=\count136 +) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaseframe.sty +\beamer@framebox=\box42 +\beamer@frametitlebox=\box43 +\beamer@zoombox=\box44 +\beamer@zoomcount=\count137 +\beamer@zoomframecount=\count138 +\beamer@frametextheight=\dimen169 +\c@subsectionslide=\count139 +\beamer@frametopskip=\skip45 +\beamer@framebottomskip=\skip46 +\beamer@frametopskipautobreak=\skip47 +\beamer@framebottomskipautobreak=\skip48 +\beamer@envbody=\toks27 +\framewidth=\dimen170 +\c@framenumber=\count140 +) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaseverbatim.sty +\beamer@verbatimfileout=\write4 +) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaseframesize.sty +\beamer@splitbox=\box45 +\beamer@autobreakcount=\count141 +\beamer@autobreaklastheight=\dimen171 +\beamer@frametitletoks=\toks28 +\beamer@framesubtitletoks=\toks29 +) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaseframecomponents.sty +\beamer@footins=\box46 +) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasecolor.sty) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasenotes.sty +\beamer@frameboxcopy=\box47 +) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasetoc.sty) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasetemplates.sty +\beamer@sbttoks=\toks30 + +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaseauxtemplates.sty +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaseboxes.sty +\bmb@box=\box48 +\bmb@colorbox=\box49 +\bmb@boxshadow=\box50 +\bmb@boxshadowball=\box51 +\bmb@boxshadowballlarge=\box52 +\bmb@temp=\dimen172 +\bmb@dima=\dimen173 +\bmb@dimb=\dimen174 +\bmb@prevheight=\dimen175 +) +\beamer@blockheadheight=\dimen176 +)) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaselocalstructure.sty +(c:/texlive/2019/texmf-dist/tex/latex/tools/enumerate.sty +Package: enumerate 2015/07/23 v3.00 enumerate extensions (DPC) +\@enLab=\toks31 +) +\c@figure=\count142 +\c@table=\count143 +\abovecaptionskip=\skip49 +\belowcaptionskip=\skip50 +) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasenavigation.sty +\beamer@section@min@dim=\dimen177 +) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasetheorems.sty +(c:/texlive/2019/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2019/11/16 v2.17d AMS math features +\@mathmargin=\skip51 + +For additional information on amsmath, use the `?' option. +(c:/texlive/2019/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 AMS text + +(c:/texlive/2019/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 generic functions +\@emptytoks=\toks32 +\ex@=\dimen178 +)) +(c:/texlive/2019/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d Bold Symbols +\pmbraise@=\dimen179 +) +(c:/texlive/2019/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 2016/03/08 v2.02 operator names +) +\inf@bad=\count144 +LaTeX Info: Redefining \frac on input line 227. +\uproot@=\count145 +\leftroot@=\count146 +LaTeX Info: Redefining \overline on input line 389. +\classnum@=\count147 +\DOTSCASE@=\count148 +LaTeX Info: Redefining \ldots on input line 486. +LaTeX Info: Redefining \dots on input line 489. +LaTeX Info: Redefining \cdots on input line 610. +\Mathstrutbox@=\box53 +\strutbox@=\box54 +\big@size=\dimen180 +LaTeX Font Info: Redeclaring font encoding OML on input line 733. +LaTeX Font Info: Redeclaring font encoding OMS on input line 734. +\macc@depth=\count149 +\c@MaxMatrixCols=\count150 +\dotsspace@=\muskip11 +\c@parentequation=\count151 +\dspbrk@lvl=\count152 +\tag@help=\toks33 +\row@=\count153 +\column@=\count154 +\maxfields@=\count155 +\andhelp@=\toks34 +\eqnshift@=\dimen181 +\alignsep@=\dimen182 +\tagshift@=\dimen183 +\tagwidth@=\dimen184 +\totwidth@=\dimen185 +\lineht@=\dimen186 +\@envbody=\toks35 +\multlinegap=\skip52 +\multlinetaggap=\skip53 +\mathdisplay@stack=\toks36 +LaTeX Info: Redefining \[ on input line 2858. +LaTeX Info: Redefining \] on input line 2859. +) +(c:/texlive/2019/texmf-dist/tex/latex/amscls/amsthm.sty +Package: amsthm 2017/10/31 v2.20.4 +\thm@style=\toks37 +\thm@bodyfont=\toks38 +\thm@headfont=\toks39 +\thm@notefont=\toks40 +\thm@headpunct=\toks41 +\thm@preskip=\skip54 +\thm@postskip=\skip55 +\thm@headsep=\skip56 +\dth@everypar=\toks42 +) +\c@theorem=\count156 +) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasethemes.sty)) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerthemedefault.sty +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerfontthemedefault.sty) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamercolorthemedefault.sty) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerinnerthemedefault.sty +\beamer@dima=\dimen187 +\beamer@dimb=\dimen188 +) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerouterthemedefault.sty))) +(c:/texlive/2019/texmf-dist/tex/latex/base/inputenc.sty +Package: inputenc 2018/08/11 v1.3c Input encoding file +\inpenc@prehook=\toks43 +\inpenc@posthook=\toks44 +) +(c:/texlive/2019/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2018/08/11 v2.0j Standard LaTeX package + +(c:/texlive/2019/texmf-dist/tex/latex/base/t1enc.def +File: t1enc.def 2018/08/11 v2.0j Standard LaTeX file +LaTeX Font Info: Redeclaring font encoding T1 on input line 48. +)) +(c:/texlive/2019/texmf-dist/tex/latex/lm/lmodern.sty +Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts +LaTeX Font Info: Overwriting symbol font `operators' in version `normal' +(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22. +LaTeX Font Info: Overwriting symbol font `letters' in version `normal' +(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23. +LaTeX Font Info: Overwriting symbol font `symbols' in version `normal' +(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal' +(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26. +LaTeX Font Info: Overwriting symbol font `letters' in version `bold' +(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27. +LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' +(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' +(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' +(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' +(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' +(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38. +) +(c:/texlive/2019/texmf-dist/tex/generic/babel/babel.sty +Package: babel 2019/11/14 3.36 The Babel package + +(c:/texlive/2019/texmf-dist/tex/generic/babel/switch.def +File: switch.def 2019/11/14 3.36 Babel switching mechanism +) +(c:/texlive/2019/texmf-dist/tex/generic/babel-german/ngerman.ldf +Language: ngerman 2018/12/08 v2.11 German support for babel (post-1996 orthogra +phy) + +(c:/texlive/2019/texmf-dist/tex/generic/babel-german/ngermanb.ldf +Language: ngermanb 2018/12/08 v2.11 German support for babel (post-1996 orthogr +aphy) + +(c:/texlive/2019/texmf-dist/tex/generic/babel/babel.def +File: babel.def 2019/11/14 3.36 Babel common definitions +\babel@savecnt=\count157 +\U@D=\dimen189 + +(c:/texlive/2019/texmf-dist/tex/generic/babel/txtbabel.def) +LaTeX Info: Redefining \textlatin on input line 2250. +\bbl@dirlevel=\count158 +) +Package babel Info: Making " an active character on input line 121. +))) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerthemeHannover.sty +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerouterthemesidebar.sty +\beamer@sidebarwidth=\dimen190 +\beamer@headheight=\dimen191 +LaTeX Font Info: Trying to load font information for T1+lmss on input line 1 +7. + +(c:/texlive/2019/texmf-dist/tex/latex/lm/t1lmss.fd +File: t1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern +)) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamercolorthemeseahorse.sty) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerinnerthemecircles.sty)) +(./RS.aux) +\openout1 = `RS.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 7. +LaTeX Font Info: ... okay on input line 7. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 7. +LaTeX Font Info: ... okay on input line 7. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 7. +LaTeX Font Info: ... okay on input line 7. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 7. +LaTeX Font Info: ... okay on input line 7. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 7. +LaTeX Font Info: ... okay on input line 7. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 7. +LaTeX Font Info: ... okay on input line 7. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 7. +LaTeX Font Info: ... okay on input line 7. + +*geometry* driver: auto-detecting +*geometry* detected driver: pdftex +*geometry* verbose mode - [ preamble ] result: +* driver: pdftex +* paper: custom +* layout: +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* modes: includehead includefoot +* h-part:(L,W,R)=(59.22636pt, 381.79135pt, 14.22636pt) +* v-part:(T,H,B)=(0.0pt, 256.0748pt, 0.0pt) +* \paperwidth=455.24408pt +* \paperheight=256.0748pt +* \textwidth=381.79135pt +* \textheight=227.62207pt +* \oddsidemargin=-13.04362pt +* \evensidemargin=-13.04362pt +* \topmargin=-72.26999pt +* \headheight=14.22636pt +* \headsep=0.0pt +* \topskip=11.0pt +* \footskip=14.22636pt +* \marginparwidth=4.0pt +* \marginparsep=10.0pt +* \columnsep=10.0pt +* \skip\footins=10.0pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +(c:/texlive/2019/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count159 +\scratchdimen=\dimen192 +\scratchbox=\box55 +\nofMPsegments=\count160 +\nofMParguments=\count161 +\everyMPshowfont=\toks45 +\MPscratchCnt=\count162 +\MPscratchDim=\dimen193 +\MPnumerator=\count163 +\makeMPintoPDFobject=\count164 +\everyMPtoPDFconversion=\toks46 +) (c:/texlive/2019/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +Package: epstopdf-base 2019/11/27 v2.8 Base part for package epstopdf +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 +85. + +(c:/texlive/2019/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +ABD: EveryShipout initializing macros +\AtBeginShipoutBox=\box56 +Package hyperref Info: Link coloring OFF on input line 7. + +(c:/texlive/2019/texmf-dist/tex/latex/hyperref/nameref.sty +Package: nameref 2019/09/16 v2.46 Cross-referencing by name of section + +(c:/texlive/2019/texmf-dist/tex/latex/oberdiek/refcount.sty +Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO) +) +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/gettitlestring.sty +Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO) +) +\c@section@level=\count165 +) +LaTeX Info: Redefining \ref on input line 7. +LaTeX Info: Redefining \pageref on input line 7. +LaTeX Info: Redefining \nameref on input line 7. + (./RS.out) (./RS.out) +\@outlinefile=\write5 +\openout5 = `RS.out'. + +LaTeX Font Info: Overwriting symbol font `operators' in version `normal' +(Font) OT1/lmr/m/n --> OT1/cmss/m/n on input line 7. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/lmr/bx/n --> OT1/cmss/bx/n on input line 7. +LaTeX Font Info: Overwriting symbol font `operators' in version `normal' +(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 7. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 7. +\symnumbers=\mathgroup6 +\sympureletters=\mathgroup7 +LaTeX Font Info: Overwriting math alphabet `\mathrm' in version `normal' +(Font) OT1/lmss/m/n --> T1/lmr/m/n on input line 7. +LaTeX Font Info: Redeclaring math alphabet \mathbf on input line 7. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' +(Font) OT1/lmr/bx/n --> T1/lmss/bx/n on input line 7. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' +(Font) OT1/lmr/bx/n --> T1/lmss/bx/n on input line 7. +LaTeX Font Info: Redeclaring math alphabet \mathsf on input line 7. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' +(Font) OT1/lmss/m/n --> T1/lmss/m/n on input line 7. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/lmss/bx/n --> T1/lmss/m/n on input line 7. +LaTeX Font Info: Redeclaring math alphabet \mathit on input line 7. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' +(Font) OT1/lmr/m/it --> T1/lmss/m/it on input line 7. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/lmr/bx/it --> T1/lmss/m/it on input line 7. +LaTeX Font Info: Redeclaring math alphabet \mathtt on input line 7. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' +(Font) OT1/lmtt/m/n --> T1/lmtt/m/n on input line 7. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/lmtt/m/n --> T1/lmtt/m/n on input line 7. +LaTeX Font Info: Overwriting symbol font `numbers' in version `bold' +(Font) T1/lmss/m/n --> T1/lmss/bx/n on input line 7. +LaTeX Font Info: Overwriting symbol font `pureletters' in version `bold' +(Font) T1/lmss/m/it --> T1/lmss/bx/it on input line 7. +LaTeX Font Info: Overwriting math alphabet `\mathrm' in version `bold' +(Font) OT1/lmss/bx/n --> T1/lmr/bx/n on input line 7. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' +(Font) T1/lmss/bx/n --> T1/lmss/bx/n on input line 7. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) T1/lmss/m/n --> T1/lmss/bx/n on input line 7. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) T1/lmss/m/it --> T1/lmss/bx/it on input line 7. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) T1/lmtt/m/n --> T1/lmtt/bx/n on input line 7. + +(c:/texlive/2019/texmf-dist/tex/latex/translator/translator-basic-dictionary-En +glish.dict +Dictionary: translator-basic-dictionary, Language: English +) +(c:/texlive/2019/texmf-dist/tex/latex/translator/translator-bibliography-dictio +nary-English.dict +Dictionary: translator-bibliography-dictionary, Language: English +) +(c:/texlive/2019/texmf-dist/tex/latex/translator/translator-environment-diction +ary-English.dict +Dictionary: translator-environment-dictionary, Language: English +) +(c:/texlive/2019/texmf-dist/tex/latex/translator/translator-months-dictionary-E +nglish.dict +Dictionary: translator-months-dictionary, Language: English +) +(c:/texlive/2019/texmf-dist/tex/latex/translator/translator-numbers-dictionary- +English.dict +Dictionary: translator-numbers-dictionary, Language: English +) +(c:/texlive/2019/texmf-dist/tex/latex/translator/translator-theorem-dictionary- +English.dict +Dictionary: translator-theorem-dictionary, Language: English +) (./RS.nav) + +Package hyperref Warning: Option `pdfauthor' has already been used, +(hyperref) setting the option has no effect on input line 8. + + +Package hyperref Warning: Option `pdfsubject' has already been used, +(hyperref) setting the option has no effect on input line 14. + +[1 + +{c:/texlive/2019/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] [2 + +] +\tf@nav=\write6 +\openout6 = `RS.nav'. + +\tf@toc=\write7 +\openout7 = `RS.toc'. + +\tf@snm=\write8 +\openout8 = `RS.snm'. + +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 25. +Package atveryend Info: Empty hook `AfterLastShipout' on input line 25. + (./RS.aux) +Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 25. +Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 25. +Package rerunfilecheck Info: File `RS.out' has not changed. +(rerunfilecheck) Checksum: D41D8CD98F00B204E9800998ECF8427E;0. + ) +Here is how much of TeX's memory you used: + 18359 strings out of 492164 + 341776 string characters out of 6129087 + 431862 words of memory out of 5000000 + 22272 multiletter control sequences out of 15000+600000 + 19654 words of font info for 23 fonts, out of 8000000 for 9000 + 1141 hyphenation exceptions out of 8191 + 58i,12n,57p,796b,459s stack positions out of 5000i,500n,10000p,200000b,80000s +{c:/texlive/2019/texmf-dist/fonts/enc/dvips/lm/lm-ec.enc} +Output written on RS.pdf (2 pages, 53965 bytes). +PDF statistics: + 42 PDF objects out of 1000 (max. 8388607) + 28 compressed objects within 1 object stream + 5 named destinations out of 1000 (max. 500000) + 43 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/buch/papers/reedsolomon/RS presentation/RS.nav b/buch/papers/reedsolomon/RS presentation/RS.nav new file mode 100644 index 0000000..9033d8b --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/RS.nav @@ -0,0 +1,9 @@ +\headcommand {\slideentry {0}{0}{1}{1/1}{}{0}} +\headcommand {\beamer@framepages {1}{1}} +\headcommand {\slideentry {0}{0}{2}{2/2}{}{0}} +\headcommand {\beamer@framepages {2}{2}} +\headcommand {\beamer@partpages {1}{2}} +\headcommand {\beamer@subsectionpages {1}{2}} +\headcommand {\beamer@sectionpages {1}{2}} +\headcommand {\beamer@documentpages {2}} +\headcommand {\gdef \inserttotalframenumber {2}} diff --git a/buch/papers/reedsolomon/RS presentation/RS.out b/buch/papers/reedsolomon/RS presentation/RS.out new file mode 100644 index 0000000..e69de29 diff --git a/buch/papers/reedsolomon/RS presentation/RS.pdf b/buch/papers/reedsolomon/RS presentation/RS.pdf new file mode 100644 index 0000000..459d7e8 Binary files /dev/null and b/buch/papers/reedsolomon/RS presentation/RS.pdf differ diff --git a/buch/papers/reedsolomon/RS presentation/RS.snm b/buch/papers/reedsolomon/RS presentation/RS.snm new file mode 100644 index 0000000..e69de29 diff --git a/buch/papers/reedsolomon/RS presentation/RS.synctex.gz b/buch/papers/reedsolomon/RS presentation/RS.synctex.gz new file mode 100644 index 0000000..fe8adf5 Binary files /dev/null and b/buch/papers/reedsolomon/RS presentation/RS.synctex.gz differ diff --git a/buch/papers/reedsolomon/RS presentation/RS.tex b/buch/papers/reedsolomon/RS presentation/RS.tex new file mode 100644 index 0000000..3d2be8f --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/RS.tex @@ -0,0 +1,25 @@ +\documentclass[11pt,aspectratio=169]{beamer} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{lmodern} +\usepackage[ngerman]{babel} +\usetheme{Hannover} +\begin{document} + \author{Joshua Bär und Michael Steiner} + \title{Reed-Solomon-Code} + \subtitle{} + \logo{} + \institute{OST Ostschweizer Fachhochschule} + \date{26.04.2021} + \subject{Mathematisches Seminar} + \setbeamercovered{transparent} + \setbeamertemplate{navigation symbols}{} + \begin{frame}[plain] + \maketitle + \end{frame} + + \begin{frame} + \frametitle{Test} + Ich mag Züge. + \end{frame} +\end{document} \ No newline at end of file diff --git a/buch/papers/reedsolomon/RS presentation/RS.toc b/buch/papers/reedsolomon/RS presentation/RS.toc new file mode 100644 index 0000000..4cd1c86 --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/RS.toc @@ -0,0 +1 @@ +\babel@toc {ngerman}{} diff --git a/buch/papers/reedsolomon/RS presentation/Thumbs.db b/buch/papers/reedsolomon/RS presentation/Thumbs.db new file mode 100644 index 0000000..1626e26 Binary files /dev/null and b/buch/papers/reedsolomon/RS presentation/Thumbs.db differ -- cgit v1.2.1 From 4301a062125a31b0466acf6527a01b1682cf60c5 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Wed, 21 Apr 2021 08:59:22 +0200 Subject: slides introduction#1 --- buch/papers/reedsolomon/RS presentation/RS.bbl | 0 .../reedsolomon/RS presentation/images/fig1.pdf | Bin 0 -> 3071 bytes .../RS presentation/images/fig1.pdf_tex | 81 ++++++++++ .../reedsolomon/RS presentation/images/fig1.png | Bin 0 -> 27373 bytes .../reedsolomon/RS presentation/images/fig1.svg | 180 +++++++++++++++++++++ .../reedsolomon/RS presentation/images/fig2.png | Bin 0 -> 30489 bytes .../reedsolomon/RS presentation/images/fig2.svg | 163 +++++++++++++++++++ .../reedsolomon/RS presentation/images/fig3.png | Bin 0 -> 16007 bytes .../reedsolomon/RS presentation/images/fig3.svg | 180 +++++++++++++++++++++ .../reedsolomon/RS presentation/images/fig4.png | Bin 0 -> 27548 bytes .../reedsolomon/RS presentation/images/fig4.svg | 164 +++++++++++++++++++ .../reedsolomon/RS presentation/images/fig5.png | Bin 0 -> 30167 bytes .../reedsolomon/RS presentation/images/fig5.svg | 121 ++++++++++++++ .../reedsolomon/RS presentation/images/fig6.png | Bin 0 -> 22604 bytes .../reedsolomon/RS presentation/images/fig6.svg | 158 ++++++++++++++++++ .../reedsolomon/RS presentation/images/fig7.png | Bin 0 -> 28677 bytes .../reedsolomon/RS presentation/images/fig7.svg | 163 +++++++++++++++++++ 17 files changed, 1210 insertions(+) create mode 100644 buch/papers/reedsolomon/RS presentation/RS.bbl create mode 100644 buch/papers/reedsolomon/RS presentation/images/fig1.pdf create mode 100644 buch/papers/reedsolomon/RS presentation/images/fig1.pdf_tex create mode 100644 buch/papers/reedsolomon/RS presentation/images/fig1.png create mode 100644 buch/papers/reedsolomon/RS presentation/images/fig1.svg create mode 100644 buch/papers/reedsolomon/RS presentation/images/fig2.png create mode 100644 buch/papers/reedsolomon/RS presentation/images/fig2.svg create mode 100644 buch/papers/reedsolomon/RS presentation/images/fig3.png create mode 100644 buch/papers/reedsolomon/RS presentation/images/fig3.svg create mode 100644 buch/papers/reedsolomon/RS presentation/images/fig4.png create mode 100644 buch/papers/reedsolomon/RS presentation/images/fig4.svg create mode 100644 buch/papers/reedsolomon/RS presentation/images/fig5.png create mode 100644 buch/papers/reedsolomon/RS presentation/images/fig5.svg create mode 100644 buch/papers/reedsolomon/RS presentation/images/fig6.png create mode 100644 buch/papers/reedsolomon/RS presentation/images/fig6.svg create mode 100644 buch/papers/reedsolomon/RS presentation/images/fig7.png create mode 100644 buch/papers/reedsolomon/RS presentation/images/fig7.svg (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/RS presentation/RS.bbl b/buch/papers/reedsolomon/RS presentation/RS.bbl new file mode 100644 index 0000000..e69de29 diff --git a/buch/papers/reedsolomon/RS presentation/images/fig1.pdf b/buch/papers/reedsolomon/RS presentation/images/fig1.pdf new file mode 100644 index 0000000..5cff7fe Binary files /dev/null and b/buch/papers/reedsolomon/RS presentation/images/fig1.pdf differ diff --git a/buch/papers/reedsolomon/RS presentation/images/fig1.pdf_tex b/buch/papers/reedsolomon/RS presentation/images/fig1.pdf_tex new file mode 100644 index 0000000..cb323ae --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/images/fig1.pdf_tex @@ -0,0 +1,81 @@ +%% Creator: Inkscape 1.0.2 (e86c870879, 2021-01-15, custom), www.inkscape.org +%% PDF/EPS/PS + LaTeX output extension by Johan Engelen, 2010 +%% Accompanies image file 'fig1.pdf' (pdf, eps, ps) +%% +%% To include the image in your LaTeX document, write +%% \input{.pdf_tex} +%% instead of +%% \includegraphics{.pdf} +%% To scale the image, write +%% \def\svgwidth{} +%% \input{.pdf_tex} +%% instead of +%% \includegraphics[width=]{.pdf} +%% +%% Images with a different path to the parent latex file can +%% be accessed with the `import' package (which may need to be +%% installed) using +%% \usepackage{import} +%% in the preamble, and then including the image with +%% \import{}{.pdf_tex} +%% Alternatively, one can specify +%% \graphicspath{{/}} +%% +%% For more information, please see info/svg-inkscape on CTAN: +%% http://tug.ctan.org/tex-archive/info/svg-inkscape +%% +\begingroup% + \makeatletter% + \providecommand\color[2][]{% + \errmessage{(Inkscape) Color is used for the text in Inkscape, but the package 'color.sty' is not loaded}% + \renewcommand\color[2][]{}% + }% + \providecommand\transparent[1]{% + \errmessage{(Inkscape) Transparency is used (non-zero) for the text in Inkscape, but the package 'transparent.sty' is not loaded}% + \renewcommand\transparent[1]{}% + }% + \providecommand\rotatebox[2]{#2}% + \newcommand*\fsize{\dimexpr\f@size pt\relax}% + \newcommand*\lineheight[1]{\fontsize{\fsize}{#1\fsize}\selectfont}% + \ifx\svgwidth\undefined% + \setlength{\unitlength}{420bp}% + \ifx\svgscale\undefined% + \relax% + \else% + \setlength{\unitlength}{\unitlength * \real{\svgscale}}% + \fi% + \else% + \setlength{\unitlength}{\svgwidth}% + \fi% + \global\let\svgwidth\undefined% + \global\let\svgscale\undefined% + \makeatother% + \begin{picture}(1,0.75)% + \lineheight{1}% + \setlength\tabcolsep{0pt}% + \put(0,0){\includegraphics[width=\unitlength,page=1]{fig1.pdf}}% + \put(0.19038536,0.04761911){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}10\end{tabular}}}}% + \put(0.27196429,0.04761911){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}20\end{tabular}}}}% + \put(0.35354321,0.04761911){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}30\end{tabular}}}}% + \put(0.43512214,0.04761911){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}40\end{tabular}}}}% + \put(0.51670107,0.04761911){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}50\end{tabular}}}}% + \put(0.59828,0.04761911){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}60\end{tabular}}}}% + \put(0.67985893,0.04761911){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}70\end{tabular}}}}% + \put(0.76143804,0.04761911){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}80\end{tabular}}}}% + \put(0.84301696,0.04761911){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}90\end{tabular}}}}% + \put(0,0){\includegraphics[width=\unitlength,page=2]{fig1.pdf}}% + \put(0.10654768,0.07232143){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}0\end{tabular}}}}% + \put(0.10654768,0.13357143){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}1\end{tabular}}}}% + \put(0.10654768,0.19482143){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}2\end{tabular}}}}% + \put(0.10654768,0.25607143){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}3\end{tabular}}}}% + \put(0.10654768,0.31732143){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}4\end{tabular}}}}% + \put(0.10654768,0.37857143){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}5\end{tabular}}}}% + \put(0.10654768,0.43982143){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}6\end{tabular}}}}% + \put(0.10654768,0.50107143){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}7\end{tabular}}}}% + \put(0.10654768,0.56232143){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}8\end{tabular}}}}% + \put(0.10654768,0.62357143){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}9\end{tabular}}}}% + \put(0.09404768,0.68482143){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}10\end{tabular}}}}% + \put(0.47857196,0.70669643){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\textbf{Signal}\end{tabular}}}}% + \put(0,0){\includegraphics[width=\unitlength,page=3]{fig1.pdf}}% + \end{picture}% +\endgroup% diff --git a/buch/papers/reedsolomon/RS presentation/images/fig1.png b/buch/papers/reedsolomon/RS presentation/images/fig1.png new file mode 100644 index 0000000..a0395d7 Binary files /dev/null and b/buch/papers/reedsolomon/RS presentation/images/fig1.png differ diff --git a/buch/papers/reedsolomon/RS presentation/images/fig1.svg b/buch/papers/reedsolomon/RS presentation/images/fig1.svg new file mode 100644 index 0000000..8682b56 --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/images/fig1.svg @@ -0,0 +1,180 @@ + + +102030405060708090012345678910Signal diff --git a/buch/papers/reedsolomon/RS presentation/images/fig2.png b/buch/papers/reedsolomon/RS presentation/images/fig2.png new file mode 100644 index 0000000..bd8faa0 Binary files /dev/null and b/buch/papers/reedsolomon/RS presentation/images/fig2.png differ diff --git a/buch/papers/reedsolomon/RS presentation/images/fig2.svg b/buch/papers/reedsolomon/RS presentation/images/fig2.svg new file mode 100644 index 0000000..e66bd95 --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/images/fig2.svg @@ -0,0 +1,163 @@ + + +102030405060708090050100150200250300350Codiert diff --git a/buch/papers/reedsolomon/RS presentation/images/fig3.png b/buch/papers/reedsolomon/RS presentation/images/fig3.png new file mode 100644 index 0000000..e14358d Binary files /dev/null and b/buch/papers/reedsolomon/RS presentation/images/fig3.png differ diff --git a/buch/papers/reedsolomon/RS presentation/images/fig3.svg b/buch/papers/reedsolomon/RS presentation/images/fig3.svg new file mode 100644 index 0000000..e0c7072 --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/images/fig3.svg @@ -0,0 +1,180 @@ + + +10203040506070809000.20.40.60.811.21.41.61.82Fehler diff --git a/buch/papers/reedsolomon/RS presentation/images/fig4.png b/buch/papers/reedsolomon/RS presentation/images/fig4.png new file mode 100644 index 0000000..1821c3b Binary files /dev/null and b/buch/papers/reedsolomon/RS presentation/images/fig4.png differ diff --git a/buch/papers/reedsolomon/RS presentation/images/fig4.svg b/buch/papers/reedsolomon/RS presentation/images/fig4.svg new file mode 100644 index 0000000..4bf2864 --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/images/fig4.svg @@ -0,0 +1,164 @@ + + +102030405060708090050100150200250300350Empfangen diff --git a/buch/papers/reedsolomon/RS presentation/images/fig5.png b/buch/papers/reedsolomon/RS presentation/images/fig5.png new file mode 100644 index 0000000..e4abbaa Binary files /dev/null and b/buch/papers/reedsolomon/RS presentation/images/fig5.png differ diff --git a/buch/papers/reedsolomon/RS presentation/images/fig5.svg b/buch/papers/reedsolomon/RS presentation/images/fig5.svg new file mode 100644 index 0000000..7cfdb10 --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/images/fig5.svg @@ -0,0 +1,121 @@ + + + diff --git a/buch/papers/reedsolomon/RS presentation/images/fig6.png b/buch/papers/reedsolomon/RS presentation/images/fig6.png new file mode 100644 index 0000000..5447949 Binary files /dev/null and b/buch/papers/reedsolomon/RS presentation/images/fig6.png differ diff --git a/buch/papers/reedsolomon/RS presentation/images/fig6.svg b/buch/papers/reedsolomon/RS presentation/images/fig6.svg new file mode 100644 index 0000000..f8f8369 --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/images/fig6.svg @@ -0,0 +1,158 @@ + + +10203040506070809000.010.020.030.040.050.06Syndrom diff --git a/buch/papers/reedsolomon/RS presentation/images/fig7.png b/buch/papers/reedsolomon/RS presentation/images/fig7.png new file mode 100644 index 0000000..a850402 Binary files /dev/null and b/buch/papers/reedsolomon/RS presentation/images/fig7.png differ diff --git a/buch/papers/reedsolomon/RS presentation/images/fig7.svg b/buch/papers/reedsolomon/RS presentation/images/fig7.svg new file mode 100644 index 0000000..27c7622 --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/images/fig7.svg @@ -0,0 +1,163 @@ + + +10203040506070809000.10.20.30.40.50.60.7Locator -- cgit v1.2.1 From a9001166bb9bef3dcef3ea2d19a552f9eeb74324 Mon Sep 17 00:00:00 2001 From: JODBaer <55744603+JODBaer@users.noreply.github.com> Date: Wed, 21 Apr 2021 11:31:56 +0200 Subject: Creat gitignor --- buch/papers/reedsolomon/.gitignor | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 buch/papers/reedsolomon/.gitignor (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/.gitignor b/buch/papers/reedsolomon/.gitignor new file mode 100644 index 0000000..5f0787b --- /dev/null +++ b/buch/papers/reedsolomon/.gitignor @@ -0,0 +1,12 @@ +RS*.aux +RS*.bbl +RS*.bib +RS*.blg +RS*.idx +RS*.ilg +RS*.ind +RS*.log +RS*.out +RS*.pdf +RS*.run.xml +RS*.toc -- cgit v1.2.1 From b804afc336594a0c0a1ecec56c96d02bb97427f4 Mon Sep 17 00:00:00 2001 From: JODBaer <55744603+JODBaer@users.noreply.github.com> Date: Wed, 21 Apr 2021 12:39:57 +0200 Subject: update gitignor --- buch/papers/reedsolomon/.gitignor | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/.gitignor b/buch/papers/reedsolomon/.gitignor index 5f0787b..466d238 100644 --- a/buch/papers/reedsolomon/.gitignor +++ b/buch/papers/reedsolomon/.gitignor @@ -10,3 +10,15 @@ RS*.out RS*.pdf RS*.run.xml RS*.toc +*.aux +*.lof +*.log +*.lot +*.fls +*.out +*.toc +*.fmt +*.fot +*.cb +*.cb2 +.*.lb -- cgit v1.2.1 From 44b5dcffb75c9f7dc0d28fd5af9794608cd9b395 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Wed, 21 Apr 2021 12:47:00 +0200 Subject: Presentation#1 --- buch/papers/reedsolomon/RS presentation/RS.aux | 29 +- buch/papers/reedsolomon/RS presentation/RS.bbl | 0 buch/papers/reedsolomon/RS presentation/RS.log | 698 +++++++++++-------- buch/papers/reedsolomon/RS presentation/RS.nav | 19 +- buch/papers/reedsolomon/RS presentation/RS.out | 1 + buch/papers/reedsolomon/RS presentation/RS.pdf | Bin 53965 -> 117082 bytes .../reedsolomon/RS presentation/RS.synctex.gz | Bin 3637 -> 6763 bytes buch/papers/reedsolomon/RS presentation/RS.tex | 50 +- buch/papers/reedsolomon/RS presentation/RS.toc | 1 + buch/papers/reedsolomon/RS presentation/Thumbs.db | Bin 89088 -> 0 bytes .../reedsolomon/RS presentation/images/fig1.pdf | Bin 3071 -> 11898 bytes .../RS presentation/images/fig1.pdf_tex | 81 --- .../reedsolomon/RS presentation/images/fig1.png | Bin 27373 -> 0 bytes .../reedsolomon/RS presentation/images/fig2.pdf | Bin 0 -> 13901 bytes .../reedsolomon/RS presentation/images/fig2.png | Bin 30489 -> 0 bytes .../reedsolomon/RS presentation/images/fig3.pdf | Bin 0 -> 13099 bytes .../reedsolomon/RS presentation/images/fig3.png | Bin 16007 -> 0 bytes .../reedsolomon/RS presentation/images/fig4.pdf | Bin 0 -> 14995 bytes .../reedsolomon/RS presentation/images/fig4.png | Bin 27548 -> 0 bytes .../reedsolomon/RS presentation/images/fig5.pdf | Bin 0 -> 13298 bytes .../reedsolomon/RS presentation/images/fig5.png | Bin 30167 -> 0 bytes .../reedsolomon/RS presentation/images/fig6.pdf | Bin 0 -> 13688 bytes .../reedsolomon/RS presentation/images/fig6.png | Bin 22604 -> 0 bytes .../reedsolomon/RS presentation/images/fig7.pdf | Bin 0 -> 13278 bytes .../reedsolomon/RS presentation/images/fig7.png | Bin 28677 -> 0 bytes .../RS presentation/images/polynom1.aux | 1 + .../RS presentation/images/polynom1.log | 747 +++++++++++++++++++++ .../RS presentation/images/polynom1.pdf | Bin 0 -> 5938 bytes .../RS presentation/images/polynom1.synctex.gz | Bin 0 -> 2399 bytes .../RS presentation/images/polynom1.tex | 59 ++ .../RS presentation/images/polynom2.aux | 1 + .../RS presentation/images/polynom2.log | 747 +++++++++++++++++++++ .../RS presentation/images/polynom2.pdf | Bin 0 -> 6995 bytes .../RS presentation/images/polynom2.synctex.gz | Bin 0 -> 2410 bytes .../RS presentation/images/polynom2.tex | 57 ++ 35 files changed, 2127 insertions(+), 364 deletions(-) delete mode 100644 buch/papers/reedsolomon/RS presentation/RS.bbl delete mode 100644 buch/papers/reedsolomon/RS presentation/Thumbs.db delete mode 100644 buch/papers/reedsolomon/RS presentation/images/fig1.pdf_tex delete mode 100644 buch/papers/reedsolomon/RS presentation/images/fig1.png create mode 100644 buch/papers/reedsolomon/RS presentation/images/fig2.pdf delete mode 100644 buch/papers/reedsolomon/RS presentation/images/fig2.png create mode 100644 buch/papers/reedsolomon/RS presentation/images/fig3.pdf delete mode 100644 buch/papers/reedsolomon/RS presentation/images/fig3.png create mode 100644 buch/papers/reedsolomon/RS presentation/images/fig4.pdf delete mode 100644 buch/papers/reedsolomon/RS presentation/images/fig4.png create mode 100644 buch/papers/reedsolomon/RS presentation/images/fig5.pdf delete mode 100644 buch/papers/reedsolomon/RS presentation/images/fig5.png create mode 100644 buch/papers/reedsolomon/RS presentation/images/fig6.pdf delete mode 100644 buch/papers/reedsolomon/RS presentation/images/fig6.png create mode 100644 buch/papers/reedsolomon/RS presentation/images/fig7.pdf delete mode 100644 buch/papers/reedsolomon/RS presentation/images/fig7.png create mode 100644 buch/papers/reedsolomon/RS presentation/images/polynom1.aux create mode 100644 buch/papers/reedsolomon/RS presentation/images/polynom1.log create mode 100644 buch/papers/reedsolomon/RS presentation/images/polynom1.pdf create mode 100644 buch/papers/reedsolomon/RS presentation/images/polynom1.synctex.gz create mode 100644 buch/papers/reedsolomon/RS presentation/images/polynom1.tex create mode 100644 buch/papers/reedsolomon/RS presentation/images/polynom2.aux create mode 100644 buch/papers/reedsolomon/RS presentation/images/polynom2.log create mode 100644 buch/papers/reedsolomon/RS presentation/images/polynom2.pdf create mode 100644 buch/papers/reedsolomon/RS presentation/images/polynom2.synctex.gz create mode 100644 buch/papers/reedsolomon/RS presentation/images/polynom2.tex (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/RS presentation/RS.aux b/buch/papers/reedsolomon/RS presentation/RS.aux index 17ce46b..fff632d 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.aux +++ b/buch/papers/reedsolomon/RS presentation/RS.aux @@ -14,17 +14,28 @@ \fi} \global\let\hyper@last\relax \gdef\HyperFirstAtBeginDocument#1{#1} -\providecommand\HyField@AuxAddToFields[1]{} -\providecommand\HyField@AuxAddToCoFields[2]{} -\@nameuse{bbl@beforestart} +\providecommand*\HyPL@Entry[1]{} +\bbl@beforestart \catcode `"\active +\HyPL@Entry{0<>} \babel@aux{ngerman}{} \@writefile{nav}{\headcommand {\slideentry {0}{0}{1}{1/1}{}{0}}} \@writefile{nav}{\headcommand {\beamer@framepages {1}{1}}} -\@writefile{nav}{\headcommand {\slideentry {0}{0}{2}{2/2}{}{0}}} +\HyPL@Entry{1<>} +\@writefile{toc}{\beamer@sectionintoc {1}{Introduction}{2}{0}{1}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {1}{1}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {1}{1}}} +\@writefile{nav}{\headcommand {\sectionentry {1}{Introduction}{2}{Introduction}{0}}} +\@writefile{nav}{\headcommand {\slideentry {1}{0}{1}{2/2}{}{0}}} \@writefile{nav}{\headcommand {\beamer@framepages {2}{2}}} -\@writefile{nav}{\headcommand {\beamer@partpages {1}{2}}} -\@writefile{nav}{\headcommand {\beamer@subsectionpages {1}{2}}} -\@writefile{nav}{\headcommand {\beamer@sectionpages {1}{2}}} -\@writefile{nav}{\headcommand {\beamer@documentpages {2}}} -\@writefile{nav}{\headcommand {\gdef \inserttotalframenumber {2}}} +\HyPL@Entry{2<>} +\@writefile{nav}{\headcommand {\slideentry {1}{0}{2}{3/9}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {3}{9}}} +\HyPL@Entry{9<>} +\@writefile{nav}{\headcommand {\slideentry {1}{0}{3}{10/11}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {10}{11}}} +\@writefile{nav}{\headcommand {\beamer@partpages {1}{11}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {2}{11}}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {2}{11}}} +\@writefile{nav}{\headcommand {\beamer@documentpages {11}}} +\@writefile{nav}{\headcommand {\gdef \inserttotalframenumber {4}}} diff --git a/buch/papers/reedsolomon/RS presentation/RS.bbl b/buch/papers/reedsolomon/RS presentation/RS.bbl deleted file mode 100644 index e69de29..0000000 diff --git a/buch/papers/reedsolomon/RS presentation/RS.log b/buch/papers/reedsolomon/RS presentation/RS.log index f7dc931..824b9b5 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.log +++ b/buch/papers/reedsolomon/RS presentation/RS.log @@ -1,10 +1,10 @@ -This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/W32TeX) (preloaded format=pdflatex 2019.11.30) 20 APR 2021 12:21 +This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019/W32TeX) (preloaded format=xelatex 2019.10.25) 21 APR 2021 12:30 entering extended mode restricted \write18 enabled. %&-line parsing enabled. **RS.tex (./RS.tex -LaTeX2e <2019-10-01> patch level 3 +LaTeX2e <2019-10-01> patch level 1 (c:/texlive/2019/texmf-dist/tex/latex/beamer/beamer.cls Document Class: beamer 2019/09/29 v3.57 A class for typesetting presentations (c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasemodes.sty @@ -24,12 +24,9 @@ Package: etoolbox 2019/09/21 v2.5h e-TeX tools for LaTeX (JAW) \beamer@commentbox=\box29 \beamer@modecount=\count85 ) -(c:/texlive/2019/texmf-dist/tex/generic/iftex/ifpdf.sty -Package: ifpdf 2019/10/25 v3.4 ifpdf legacy package. Use iftex instead. - -(c:/texlive/2019/texmf-dist/tex/generic/iftex/iftex.sty -Package: iftex 2019/11/07 v1.0c TeX engine tests -)) +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2018/09/07 v3.3 Provides the ifpdf switch +) \headdp=\dimen102 \footheight=\dimen103 \sidebarheight=\dimen104 @@ -84,11 +81,12 @@ Package: keyval 2014/10/28 v1.15 key=value parser (DPC) (c:/texlive/2019/texmf-dist/tex/latex/geometry/geometry.sty Package: geometry 2018/04/16 v5.8 Page Geometry -(c:/texlive/2019/texmf-dist/tex/generic/iftex/ifvtex.sty -Package: ifvtex 2019/10/25 v1.7 ifvtex legacy package. Use iftex instead. +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/ifvtex.sty +Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. ) -(c:/texlive/2019/texmf-dist/tex/generic/iftex/ifxetex.sty -Package: ifxetex 2019/10/25 v0.7 ifxetex legacy package. Use iftex instead. +(c:/texlive/2019/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional ) \Gm@cnth=\count105 \Gm@cntv=\count106 @@ -104,14 +102,14 @@ Package: ifxetex 2019/10/25 v0.7 ifxetex legacy package. Use iftex instead. \Gm@dimlist=\toks15 ) (c:/texlive/2019/texmf-dist/tex/latex/base/size11.clo -File: size11.clo 2019/10/25 v1.4k Standard LaTeX file (size option) +File: size11.clo 2019/08/27 v1.4j Standard LaTeX file (size option) ) (c:/texlive/2019/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty (c:/texlive/2019/texmf-dist/tex/latex/graphics/graphicx.sty Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR) (c:/texlive/2019/texmf-dist/tex/latex/graphics/graphics.sty -Package: graphics 2019/11/01 v1.3d Standard LaTeX Graphics (DPC,SPQR) +Package: graphics 2019/10/08 v1.3c Standard LaTeX Graphics (DPC,SPQR) (c:/texlive/2019/texmf-dist/tex/latex/graphics/trig.sty Package: trig 2016/01/03 v1.10 sin cos tan (DPC) @@ -119,10 +117,10 @@ Package: trig 2016/01/03 v1.10 sin cos tan (DPC) (c:/texlive/2019/texmf-dist/tex/latex/graphics-cfg/graphics.cfg File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration ) -Package graphics Info: Driver file: pdftex.def on input line 105. +Package graphics Info: Driver file: xetex.def on input line 105. -(c:/texlive/2019/texmf-dist/tex/latex/graphics-def/pdftex.def -File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex +(c:/texlive/2019/texmf-dist/tex/latex/graphics-def/xetex.def +File: xetex.def 2017/06/24 v5.0h Graphics/color driver for xetex )) \Gin@req@height=\dimen126 \Gin@req@width=\dimen127 @@ -178,18 +176,23 @@ Package: pgfsys 2019/08/03 v3.1.4b (3.1.4b) (c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg File: pgf.cfg 2019/08/03 v3.1.4b (3.1.4b) ) -Driver file for pgf: pgfsys-pdftex.def +Driver file for pgf: pgfsys-xetex.def + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-xetex.def +File: pgfsys-xetex.def 2019/08/03 v3.1.4b (3.1.4b) -(c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def -File: pgfsys-pdftex.def 2019/08/03 v3.1.4b (3.1.4b) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-dvipdfmx.def +File: pgfsys-dvipdfmx.def 2019/08/03 v3.1.4b (3.1.4b) (c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def File: pgfsys-common-pdf.def 2019/08/03 v3.1.4b (3.1.4b) +) +\pgfsys@objnum=\count113 ))) (c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex File: pgfsyssoftpath.code.tex 2019/08/03 v3.1.4b (3.1.4b) -\pgfsyssoftpath@smallbuffer@items=\count113 -\pgfsyssoftpath@bigbuffer@items=\count114 +\pgfsyssoftpath@smallbuffer@items=\count114 +\pgfsyssoftpath@bigbuffer@items=\count115 ) (c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex File: pgfsysprotocol.code.tex 2019/08/03 v3.1.4b (3.1.4b) @@ -199,9 +202,8 @@ Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) (c:/texlive/2019/texmf-dist/tex/latex/graphics-cfg/color.cfg File: color.cfg 2016/01/02 v1.6 sample color configuration ) -Package xcolor Info: Driver file: pdftex.def on input line 225. +Package xcolor Info: Driver file: xetex.def on input line 225. Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348. -Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352. Package xcolor Info: Model `RGB' extended on input line 1364. Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366. Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367. @@ -218,7 +220,7 @@ Package: pgfcore 2019/08/03 v3.1.4b (3.1.4b) (c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex) (c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex \pgfmath@dimen=\dimen140 -\pgfmath@count=\count115 +\pgfmath@count=\count116 \pgfmath@box=\box37 \pgfmath@toks=\toks23 \pgfmath@stack@operand=\toks24 @@ -242,7 +244,7 @@ x) (c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithm etics.code.tex))) (c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex -\c@pgfmathroundto@lastzeros=\count116 +\c@pgfmathroundto@lastzeros=\count117 )) (c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfint.code.tex) (c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex @@ -279,7 +281,7 @@ File: pgfcorescopes.code.tex 2019/08/03 v3.1.4b (3.1.4b) \pgfpic=\box38 \pgf@hbox=\box39 \pgf@layerbox@main=\box40 -\pgf@picture@serial@count=\count117 +\pgf@picture@serial@count=\count118 ) (c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code .tex @@ -310,8 +312,8 @@ File: pgfcorearrows.code.tex 2019/08/03 v3.1.4b (3.1.4b) (c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex File: pgfcoreshade.code.tex 2019/08/03 v3.1.4b (3.1.4b) \pgf@max=\dimen164 -\pgf@sys@shading@range@num=\count118 -\pgf@shadingcount=\count119 +\pgf@sys@shading@range@num=\count119 +\pgf@shadingcount=\count120 ) (c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex File: pgfcoreimage.code.tex 2019/08/03 v3.1.4b (3.1.4b) @@ -333,8 +335,8 @@ File: pgfcorepatterns.code.tex 2019/08/03 v3.1.4b (3.1.4b) File: pgfcorerdf.code.tex 2019/08/03 v3.1.4b (3.1.4b) ))) (c:/texlive/2019/texmf-dist/tex/latex/pgf/utilities/xxcolor.sty Package: xxcolor 2003/10/24 ver 0.1 -\XC@nummixins=\count120 -\XC@countmixins=\count121 +\XC@nummixins=\count121 +\XC@countmixins=\count122 ) (c:/texlive/2019/texmf-dist/tex/generic/oberdiek/atbegshi.sty Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO) @@ -346,41 +348,46 @@ Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) )) (c:/texlive/2019/texmf-dist/tex/latex/hyperref/hyperref.sty -Package: hyperref 2019/11/10 v7.00c Hypertext links for LaTeX +Package: hyperref 2019/09/28 v7.00a Hypertext links for LaTeX -(c:/texlive/2019/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty -Package: pdftexcmds 2019/11/24 v0.31 Utility functions of pdfTeX for LuaTeX (HO -) -Package pdftexcmds Info: \pdf@primitive is available. -Package pdftexcmds Info: \pdf@ifprimitive is available. -Package pdftexcmds Info: \pdfdraftmode found. -) -(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty -Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty +Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO) -(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/etexcmds.sty -Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) -(c:/texlive/2019/texmf-dist/tex/generic/iftex/ifluatex.sty -Package: ifluatex 2019/10/25 v1.5 ifluatex legacy package. Use iftex instead. -))) -(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty +Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO) +Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO) +Package hobsub Info: Skipping package `infwarerr' (already loaded). +Package hobsub Info: Skipping package `ltxcmds' (already loaded). +Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +Package hobsub Info: Skipping package `ifvtex' (already loaded). +Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO) +Package hobsub Info: Skipping package `ifpdf' (already loaded). +Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) +Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO) +Package: pdftexcmds 2019/07/25 v0.30 Utility functions of pdfTeX for LuaTeX (HO ) -(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/pdfescape.sty +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: pdfTeX >= 1.30 not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode not found. Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO) +Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO ) -(c:/texlive/2019/texmf-dist/tex/latex/oberdiek/hycolor.sty -Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO) - -(c:/texlive/2019/texmf-dist/tex/latex/oberdiek/xcolor-patch.sty -Package: xcolor-patch 2016/05/16 xcolor patch - -(c:/texlive/2019/texmf-dist/tex/latex/oberdiek/hopatch.sty -Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO) -))) -(c:/texlive/2019/texmf-dist/tex/latex/oberdiek/letltxmacro.sty +Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO) +Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO) +) +Package hobsub Info: Skipping package `hobsub' (already loaded). Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO) +Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO) +Package: xcolor-patch 2016/05/16 xcolor patch +Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO) +Package hobsub Info: Skipping package `atbegshi' (already loaded). +Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO) +Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO) ) (c:/texlive/2019/texmf-dist/tex/latex/oberdiek/auxhook.sty Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO) @@ -389,85 +396,79 @@ Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO) Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) ) \@linkdim=\dimen165 -\Hy@linkcounter=\count122 -\Hy@pagecounter=\count123 +\Hy@linkcounter=\count123 +\Hy@pagecounter=\count124 (c:/texlive/2019/texmf-dist/tex/latex/hyperref/pd1enc.def -File: pd1enc.def 2019/11/10 v7.00c Hyperref: PDFDocEncoding definition (HO) -Now handling font encoding PD1 ... -... no UTF-8 mapping file for font encoding PD1 -) -(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/intcalc.sty -Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO) +File: pd1enc.def 2019/09/28 v7.00a Hyperref: PDFDocEncoding definition (HO) ) -\Hy@SavedSpaceFactor=\count124 +\Hy@SavedSpaceFactor=\count125 (c:/texlive/2019/texmf-dist/tex/latex/latexconfig/hyperref.cfg File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive ) -Package hyperref Info: Option `bookmarks' set `true' on input line 4409. -Package hyperref Info: Option `bookmarksopen' set `true' on input line 4409. -Package hyperref Info: Option `implicit' set `false' on input line 4409. -Package hyperref Info: Hyper figures OFF on input line 4535. -Package hyperref Info: Link nesting OFF on input line 4540. -Package hyperref Info: Hyper index ON on input line 4543. -Package hyperref Info: Plain pages OFF on input line 4550. -Package hyperref Info: Backreferencing OFF on input line 4555. +Package hyperref Info: Option `bookmarks' set `true' on input line 4414. +Package hyperref Info: Option `bookmarksopen' set `true' on input line 4414. +Package hyperref Info: Option `implicit' set `false' on input line 4414. +Package hyperref Info: Hyper figures OFF on input line 4540. +Package hyperref Info: Link nesting OFF on input line 4545. +Package hyperref Info: Hyper index ON on input line 4548. +Package hyperref Info: Plain pages OFF on input line 4555. +Package hyperref Info: Backreferencing OFF on input line 4560. Package hyperref Info: Implicit mode OFF; no redefinition of LaTeX internals. -Package hyperref Info: Bookmarks ON on input line 4788. -\c@Hy@tempcnt=\count125 +Package hyperref Info: Bookmarks ON on input line 4793. +\c@Hy@tempcnt=\count126 (c:/texlive/2019/texmf-dist/tex/latex/url/url.sty \Urlmuskip=\muskip10 Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. ) -LaTeX Info: Redefining \url on input line 5147. +LaTeX Info: Redefining \url on input line 5152. \XeTeXLinkMargin=\dimen166 - -(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/bitset.sty -Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO) - -(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/bigintcalc.sty -Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO -) -)) -\Fld@menulength=\count126 +\Fld@menulength=\count127 \Field@Width=\dimen167 \Fld@charsize=\dimen168 -Package hyperref Info: Hyper figures OFF on input line 6418. -Package hyperref Info: Link nesting OFF on input line 6423. -Package hyperref Info: Hyper index ON on input line 6426. -Package hyperref Info: backreferencing OFF on input line 6433. -Package hyperref Info: Link coloring OFF on input line 6438. -Package hyperref Info: Link coloring with OCG OFF on input line 6443. -Package hyperref Info: PDF/A mode OFF on input line 6448. -LaTeX Info: Redefining \ref on input line 6488. -LaTeX Info: Redefining \pageref on input line 6492. -\Hy@abspage=\count127 +Package hyperref Info: Hyper figures OFF on input line 6423. +Package hyperref Info: Link nesting OFF on input line 6428. +Package hyperref Info: Hyper index ON on input line 6431. +Package hyperref Info: backreferencing OFF on input line 6438. +Package hyperref Info: Link coloring OFF on input line 6443. +Package hyperref Info: Link coloring with OCG OFF on input line 6448. +Package hyperref Info: PDF/A mode OFF on input line 6453. +LaTeX Info: Redefining \ref on input line 6493. +LaTeX Info: Redefining \pageref on input line 6497. +\Hy@abspage=\count128 Package hyperref Message: Stopped early. ) -Package hyperref Info: Driver (autodetected): hpdftex. - (c:/texlive/2019/texmf-dist/tex/latex/hyperref/hpdftex.def -File: hpdftex.def 2019/11/10 v7.00c Hyperref driver for pdfTeX +Package hyperref Info: Driver (autodetected): hxetex. + (c:/texlive/2019/texmf-dist/tex/latex/hyperref/hxetex.def +File: hxetex.def 2019/09/28 v7.00a Hyperref driver for XeTeX -(c:/texlive/2019/texmf-dist/tex/latex/oberdiek/atveryend.sty -Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO) +(c:/texlive/2019/texmf-dist/tex/latex/hyperref/puenc.def +File: puenc.def 2019/09/28 v7.00a Hyperref: PDF Unicode definition (HO) +) +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/stringenc.sty +Package: stringenc 2016/05/16 v1.11 Convert strings between diff. encodings (HO ) -\Fld@listcount=\count128 -\c@bookmark@seq@number=\count129 +) +\pdfm@box=\box42 +\c@Hy@AnnotLevel=\count129 +\HyField@AnnotCount=\count130 +\Fld@listcount=\count131 +\c@bookmark@seq@number=\count132 (c:/texlive/2019/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO) - -(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/uniquecounter.sty -Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO) -) Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 -85. +82. )) +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/se-ascii-print.def +File: se-ascii-print.def 2016/05/16 v1.11 stringenc: Printable ASCII characters + +) (c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaserequires.sty (c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasecompatibility.sty) (c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasefont.sty @@ -496,50 +497,50 @@ Package: translator 2019-05-31 v1.12a Easy translation of strings in LaTeX (c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasemisc.sty) (c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasetwoscreens.sty) (c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaseoverlay.sty -\beamer@argscount=\count130 +\beamer@argscount=\count133 \beamer@lastskipcover=\skip44 -\beamer@trivlistdepth=\count131 +\beamer@trivlistdepth=\count134 ) (c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasetitle.sty) (c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasesection.sty -\c@lecture=\count132 -\c@part=\count133 -\c@section=\count134 -\c@subsection=\count135 -\c@subsubsection=\count136 +\c@lecture=\count135 +\c@part=\count136 +\c@section=\count137 +\c@subsection=\count138 +\c@subsubsection=\count139 ) (c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaseframe.sty -\beamer@framebox=\box42 -\beamer@frametitlebox=\box43 -\beamer@zoombox=\box44 -\beamer@zoomcount=\count137 -\beamer@zoomframecount=\count138 +\beamer@framebox=\box43 +\beamer@frametitlebox=\box44 +\beamer@zoombox=\box45 +\beamer@zoomcount=\count140 +\beamer@zoomframecount=\count141 \beamer@frametextheight=\dimen169 -\c@subsectionslide=\count139 +\c@subsectionslide=\count142 \beamer@frametopskip=\skip45 \beamer@framebottomskip=\skip46 \beamer@frametopskipautobreak=\skip47 \beamer@framebottomskipautobreak=\skip48 \beamer@envbody=\toks27 \framewidth=\dimen170 -\c@framenumber=\count140 +\c@framenumber=\count143 ) (c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaseverbatim.sty \beamer@verbatimfileout=\write4 ) (c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaseframesize.sty -\beamer@splitbox=\box45 -\beamer@autobreakcount=\count141 +\beamer@splitbox=\box46 +\beamer@autobreakcount=\count144 \beamer@autobreaklastheight=\dimen171 \beamer@frametitletoks=\toks28 \beamer@framesubtitletoks=\toks29 ) (c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaseframecomponents.sty -\beamer@footins=\box46 +\beamer@footins=\box47 ) (c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasecolor.sty) (c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasenotes.sty -\beamer@frameboxcopy=\box47 +\beamer@frameboxcopy=\box48 ) (c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasetoc.sty) (c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasetemplates.sty @@ -547,11 +548,11 @@ Package: translator 2019-05-31 v1.12a Easy translation of strings in LaTeX (c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaseauxtemplates.sty (c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaseboxes.sty -\bmb@box=\box48 -\bmb@colorbox=\box49 -\bmb@boxshadow=\box50 -\bmb@boxshadowball=\box51 -\bmb@boxshadowballlarge=\box52 +\bmb@box=\box49 +\bmb@colorbox=\box50 +\bmb@boxshadow=\box51 +\bmb@boxshadowball=\box52 +\bmb@boxshadowballlarge=\box53 \bmb@temp=\dimen172 \bmb@dima=\dimen173 \bmb@dimb=\dimen174 @@ -564,8 +565,8 @@ Package: translator 2019-05-31 v1.12a Easy translation of strings in LaTeX Package: enumerate 2015/07/23 v3.00 enumerate extensions (DPC) \@enLab=\toks31 ) -\c@figure=\count142 -\c@table=\count143 +\c@figure=\count145 +\c@table=\count146 \abovecaptionskip=\skip49 \belowcaptionskip=\skip50 ) @@ -574,7 +575,7 @@ Package: enumerate 2015/07/23 v3.00 enumerate extensions (DPC) ) (c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasetheorems.sty (c:/texlive/2019/texmf-dist/tex/latex/amsmath/amsmath.sty -Package: amsmath 2019/11/16 v2.17d AMS math features +Package: amsmath 2019/04/01 v2.17c AMS math features \@mathmargin=\skip51 For additional information on amsmath, use the `?' option. @@ -593,30 +594,30 @@ Package: amsbsy 1999/11/29 v1.2d Bold Symbols (c:/texlive/2019/texmf-dist/tex/latex/amsmath/amsopn.sty Package: amsopn 2016/03/08 v2.02 operator names ) -\inf@bad=\count144 +\inf@bad=\count147 LaTeX Info: Redefining \frac on input line 227. -\uproot@=\count145 -\leftroot@=\count146 +\uproot@=\count148 +\leftroot@=\count149 LaTeX Info: Redefining \overline on input line 389. -\classnum@=\count147 -\DOTSCASE@=\count148 +\classnum@=\count150 +\DOTSCASE@=\count151 LaTeX Info: Redefining \ldots on input line 486. LaTeX Info: Redefining \dots on input line 489. LaTeX Info: Redefining \cdots on input line 610. -\Mathstrutbox@=\box53 -\strutbox@=\box54 +\Mathstrutbox@=\box54 +\strutbox@=\box55 \big@size=\dimen180 LaTeX Font Info: Redeclaring font encoding OML on input line 733. LaTeX Font Info: Redeclaring font encoding OMS on input line 734. -\macc@depth=\count149 -\c@MaxMatrixCols=\count150 +\macc@depth=\count152 +\c@MaxMatrixCols=\count153 \dotsspace@=\muskip11 -\c@parentequation=\count151 -\dspbrk@lvl=\count152 +\c@parentequation=\count154 +\dspbrk@lvl=\count155 \tag@help=\toks33 -\row@=\count153 -\column@=\count154 -\maxfields@=\count155 +\row@=\count156 +\column@=\count157 +\maxfields@=\count158 \andhelp@=\toks34 \eqnshift@=\dimen181 \alignsep@=\dimen182 @@ -628,8 +629,8 @@ LaTeX Font Info: Redeclaring font encoding OMS on input line 734. \multlinegap=\skip52 \multlinetaggap=\skip53 \mathdisplay@stack=\toks36 -LaTeX Info: Redefining \[ on input line 2858. -LaTeX Info: Redefining \] on input line 2859. +LaTeX Info: Redefining \[ on input line 2855. +LaTeX Info: Redefining \] on input line 2856. ) (c:/texlive/2019/texmf-dist/tex/latex/amscls/amsthm.sty Package: amsthm 2017/10/31 v2.20.4 @@ -643,7 +644,7 @@ Package: amsthm 2017/10/31 v2.20.4 \thm@headsep=\skip56 \dth@everypar=\toks42 ) -\c@theorem=\count156 +\c@theorem=\count159 ) (c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasethemes.sty)) (c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerthemedefault.sty @@ -658,13 +659,22 @@ Package: amsthm 2017/10/31 v2.20.4 Package: inputenc 2018/08/11 v1.3c Input encoding file \inpenc@prehook=\toks43 \inpenc@posthook=\toks44 -) -(c:/texlive/2019/texmf-dist/tex/latex/base/fontenc.sty + + +Package inputenc Warning: inputenc package ignored with utf8 based engines. + +) (c:/texlive/2019/texmf-dist/tex/latex/base/fontenc.sty Package: fontenc 2018/08/11 v2.0j Standard LaTeX package (c:/texlive/2019/texmf-dist/tex/latex/base/t1enc.def File: t1enc.def 2018/08/11 v2.0j Standard LaTeX file LaTeX Font Info: Redeclaring font encoding T1 on input line 48. +) +LaTeX Font Info: Trying to load font information for T1+lmss on input line 1 +05. + +(c:/texlive/2019/texmf-dist/tex/latex/lm/t1lmss.fd +File: t1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern )) (c:/texlive/2019/texmf-dist/tex/latex/lm/lmodern.sty Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts @@ -702,10 +712,10 @@ LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' (Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38. ) (c:/texlive/2019/texmf-dist/tex/generic/babel/babel.sty -Package: babel 2019/11/14 3.36 The Babel package +Package: babel 2019/10/15 3.35 The Babel package (c:/texlive/2019/texmf-dist/tex/generic/babel/switch.def -File: switch.def 2019/11/14 3.36 Babel switching mechanism +File: switch.def 2019/10/15 3.35 Babel switching mechanism ) (c:/texlive/2019/texmf-dist/tex/generic/babel-german/ngerman.ldf Language: ngerman 2018/12/08 v2.11 German support for babel (post-1996 orthogra @@ -716,50 +726,122 @@ Language: ngermanb 2018/12/08 v2.11 German support for babel (post-1996 orthogr aphy) (c:/texlive/2019/texmf-dist/tex/generic/babel/babel.def -File: babel.def 2019/11/14 3.36 Babel common definitions -\babel@savecnt=\count157 +File: babel.def 2019/10/15 3.35 Babel common definitions +\babel@savecnt=\count160 \U@D=\dimen189 -(c:/texlive/2019/texmf-dist/tex/generic/babel/txtbabel.def) -LaTeX Info: Redefining \textlatin on input line 2250. -\bbl@dirlevel=\count158 +(c:/texlive/2019/texmf-dist/tex/generic/babel/xebabel.def +(c:/texlive/2019/texmf-dist/tex/generic/babel/txtbabel.def)) +LaTeX Info: Redefining \textlatin on input line 2185. +\bbl@dirlevel=\count161 ) Package babel Info: Making " an active character on input line 121. ))) -(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerthemeHannover.sty -(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerouterthemesidebar.sty -\beamer@sidebarwidth=\dimen190 -\beamer@headheight=\dimen191 -LaTeX Font Info: Trying to load font information for T1+lmss on input line 1 -7. +(c:/texlive/2019/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +(c:/texlive/2019/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +Package: pgf 2019/08/03 v3.1.4b (3.1.4b) -(c:/texlive/2019/texmf-dist/tex/latex/lm/t1lmss.fd -File: t1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern +(c:/texlive/2019/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex +File: pgfmoduleshapes.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgfnodeparttextbox=\box56 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex +File: pgfmoduleplot.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) +(c:/texlive/2019/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.st +y +Package: pgfcomp-version-0-65 2019/08/03 v3.1.4b (3.1.4b) +\pgf@nodesepstart=\dimen190 +\pgf@nodesepend=\dimen191 +) +(c:/texlive/2019/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.st +y +Package: pgfcomp-version-1-18 2019/08/03 v3.1.4b (3.1.4b) +)) (c:/texlive/2019/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +(c:/texlive/2019/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex)) +(c:/texlive/2019/texmf-dist/tex/latex/pgf/math/pgfmath.sty +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +Package: pgffor 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex) +\pgffor@iter=\dimen192 +\pgffor@skip=\dimen193 +\pgffor@stack=\toks45 +\pgffor@toks=\toks46 )) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex +Package: tikz 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.co +de.tex +File: pgflibraryplothandlers.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgf@plot@mark@count=\count162 +\pgfplotmarksize=\dimen194 +) +\tikz@lastx=\dimen195 +\tikz@lasty=\dimen196 +\tikz@lastxsaved=\dimen197 +\tikz@lastysaved=\dimen198 +\tikz@lastmovetox=\dimen199 +\tikz@lastmovetoy=\dimen256 +\tikzleveldistance=\dimen257 +\tikzsiblingdistance=\dimen258 +\tikz@figbox=\box57 +\tikz@figbox@bg=\box58 +\tikz@tempbox=\box59 +\tikz@tempbox@bg=\box60 +\tikztreelevel=\count163 +\tikznumberofchildren=\count164 +\tikznumberofcurrentchild=\count165 +\tikz@fig@count=\count166 + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex +File: pgfmodulematrix.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgfmatrixcurrentrow=\count167 +\pgfmatrixcurrentcolumn=\count168 +\pgf@matrix@numberofcolumns=\count169 +) +\tikz@expandcount=\count170 + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzli +brarytopaths.code.tex +File: tikzlibrarytopaths.code.tex 2019/08/03 v3.1.4b (3.1.4b) +))) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerthemeHannover.sty +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerouterthemesidebar.sty +\beamer@sidebarwidth=\dimen259 +\beamer@headheight=\dimen260 +) (c:/texlive/2019/texmf-dist/tex/latex/beamer/beamercolorthemeseahorse.sty) (c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerinnerthemecircles.sty)) (./RS.aux) \openout1 = `RS.aux'. -LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 7. -LaTeX Font Info: ... okay on input line 7. -LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 7. -LaTeX Font Info: ... okay on input line 7. -LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 7. -LaTeX Font Info: ... okay on input line 7. -LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 7. -LaTeX Font Info: ... okay on input line 7. -LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 7. -LaTeX Font Info: ... okay on input line 7. -LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 7. -LaTeX Font Info: ... okay on input line 7. -LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 7. -LaTeX Font Info: ... okay on input line 7. +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for TU/lmr/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. *geometry* driver: auto-detecting -*geometry* detected driver: pdftex +*geometry* detected driver: xetex *geometry* verbose mode - [ preamble ] result: -* driver: pdftex +* driver: xetex * paper: custom * layout: * layoutoffset:(h,v)=(0.0pt,0.0pt) @@ -790,96 +872,71 @@ LaTeX Font Info: ... okay on input line 7. * \@reversemarginfalse * (1in=72.27pt=25.4mm, 1cm=28.453pt) -(c:/texlive/2019/texmf-dist/tex/context/base/mkii/supp-pdf.mkii -[Loading MPS to PDF converter (version 2006.09.02).] -\scratchcounter=\count159 -\scratchdimen=\dimen192 -\scratchbox=\box55 -\nofMPsegments=\count160 -\nofMParguments=\count161 -\everyMPshowfont=\toks45 -\MPscratchCnt=\count162 -\MPscratchDim=\dimen193 -\MPnumerator=\count163 -\makeMPintoPDFobject=\count164 -\everyMPtoPDFconversion=\toks46 -) (c:/texlive/2019/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty -Package: epstopdf-base 2019/11/27 v2.8 Base part for package epstopdf -Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 -85. - -(c:/texlive/2019/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg -File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv -e -)) ABD: EveryShipout initializing macros -\AtBeginShipoutBox=\box56 -Package hyperref Info: Link coloring OFF on input line 7. +\AtBeginShipoutBox=\box61 +Package hyperref Info: Link coloring OFF on input line 9. (c:/texlive/2019/texmf-dist/tex/latex/hyperref/nameref.sty Package: nameref 2019/09/16 v2.46 Cross-referencing by name of section -(c:/texlive/2019/texmf-dist/tex/latex/oberdiek/refcount.sty -Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO) -) (c:/texlive/2019/texmf-dist/tex/generic/oberdiek/gettitlestring.sty Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO) ) -\c@section@level=\count165 +\c@section@level=\count171 ) -LaTeX Info: Redefining \ref on input line 7. -LaTeX Info: Redefining \pageref on input line 7. -LaTeX Info: Redefining \nameref on input line 7. +LaTeX Info: Redefining \ref on input line 9. +LaTeX Info: Redefining \pageref on input line 9. +LaTeX Info: Redefining \nameref on input line 9. (./RS.out) (./RS.out) \@outlinefile=\write5 \openout5 = `RS.out'. LaTeX Font Info: Overwriting symbol font `operators' in version `normal' -(Font) OT1/lmr/m/n --> OT1/cmss/m/n on input line 7. +(Font) OT1/lmr/m/n --> OT1/cmss/m/n on input line 9. LaTeX Font Info: Overwriting symbol font `operators' in version `bold' -(Font) OT1/lmr/bx/n --> OT1/cmss/bx/n on input line 7. +(Font) OT1/lmr/bx/n --> OT1/cmss/bx/n on input line 9. LaTeX Font Info: Overwriting symbol font `operators' in version `normal' -(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 7. +(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 9. LaTeX Font Info: Overwriting symbol font `operators' in version `bold' -(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 7. +(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 9. \symnumbers=\mathgroup6 \sympureletters=\mathgroup7 LaTeX Font Info: Overwriting math alphabet `\mathrm' in version `normal' -(Font) OT1/lmss/m/n --> T1/lmr/m/n on input line 7. -LaTeX Font Info: Redeclaring math alphabet \mathbf on input line 7. +(Font) OT1/lmss/m/n --> T1/lmr/m/n on input line 9. +LaTeX Font Info: Redeclaring math alphabet \mathbf on input line 9. LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' -(Font) OT1/lmr/bx/n --> T1/lmss/bx/n on input line 7. +(Font) OT1/lmr/bx/n --> T1/lmss/bx/n on input line 9. LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' -(Font) OT1/lmr/bx/n --> T1/lmss/bx/n on input line 7. -LaTeX Font Info: Redeclaring math alphabet \mathsf on input line 7. +(Font) OT1/lmr/bx/n --> T1/lmss/bx/n on input line 9. +LaTeX Font Info: Redeclaring math alphabet \mathsf on input line 9. LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' -(Font) OT1/lmss/m/n --> T1/lmss/m/n on input line 7. +(Font) OT1/lmss/m/n --> T1/lmss/m/n on input line 9. LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' -(Font) OT1/lmss/bx/n --> T1/lmss/m/n on input line 7. -LaTeX Font Info: Redeclaring math alphabet \mathit on input line 7. +(Font) OT1/lmss/bx/n --> T1/lmss/m/n on input line 9. +LaTeX Font Info: Redeclaring math alphabet \mathit on input line 9. LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' -(Font) OT1/lmr/m/it --> T1/lmss/m/it on input line 7. +(Font) OT1/lmr/m/it --> T1/lmss/m/it on input line 9. LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' -(Font) OT1/lmr/bx/it --> T1/lmss/m/it on input line 7. -LaTeX Font Info: Redeclaring math alphabet \mathtt on input line 7. +(Font) OT1/lmr/bx/it --> T1/lmss/m/it on input line 9. +LaTeX Font Info: Redeclaring math alphabet \mathtt on input line 9. LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' -(Font) OT1/lmtt/m/n --> T1/lmtt/m/n on input line 7. +(Font) OT1/lmtt/m/n --> T1/lmtt/m/n on input line 9. LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' -(Font) OT1/lmtt/m/n --> T1/lmtt/m/n on input line 7. +(Font) OT1/lmtt/m/n --> T1/lmtt/m/n on input line 9. LaTeX Font Info: Overwriting symbol font `numbers' in version `bold' -(Font) T1/lmss/m/n --> T1/lmss/bx/n on input line 7. +(Font) T1/lmss/m/n --> T1/lmss/bx/n on input line 9. LaTeX Font Info: Overwriting symbol font `pureletters' in version `bold' -(Font) T1/lmss/m/it --> T1/lmss/bx/it on input line 7. +(Font) T1/lmss/m/it --> T1/lmss/bx/it on input line 9. LaTeX Font Info: Overwriting math alphabet `\mathrm' in version `bold' -(Font) OT1/lmss/bx/n --> T1/lmr/bx/n on input line 7. +(Font) OT1/lmss/bx/n --> T1/lmr/bx/n on input line 9. LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' -(Font) T1/lmss/bx/n --> T1/lmss/bx/n on input line 7. +(Font) T1/lmss/bx/n --> T1/lmss/bx/n on input line 9. LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' -(Font) T1/lmss/m/n --> T1/lmss/bx/n on input line 7. +(Font) T1/lmss/m/n --> T1/lmss/bx/n on input line 9. LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' -(Font) T1/lmss/m/it --> T1/lmss/bx/it on input line 7. +(Font) T1/lmss/m/it --> T1/lmss/bx/it on input line 9. LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' -(Font) T1/lmtt/m/n --> T1/lmtt/bx/n on input line 7. +(Font) T1/lmtt/m/n --> T1/lmtt/bx/n on input line 9. (c:/texlive/2019/texmf-dist/tex/latex/translator/translator-basic-dictionary-En glish.dict @@ -907,15 +964,135 @@ Dictionary: translator-theorem-dictionary, Language: English ) (./RS.nav) Package hyperref Warning: Option `pdfauthor' has already been used, -(hyperref) setting the option has no effect on input line 8. +(hyperref) setting the option has no effect on input line 10. Package hyperref Warning: Option `pdfsubject' has already been used, -(hyperref) setting the option has no effect on input line 14. +(hyperref) setting the option has no effect on input line 16. [1 -{c:/texlive/2019/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] [2 +] [2 + +] +File: images/fig1.pdf Graphic file (type pdf) + + +Overfull \vbox (14.63716pt too high) detected at line 52 + [] + +[3 + +] +File: images/fig2.pdf Graphic file (type pdf) + + +Overfull \vbox (14.63716pt too high) detected at line 52 + [] + +[4 + +] +File: images/fig3.pdf Graphic file (type pdf) + + +Overfull \vbox (14.63716pt too high) detected at line 52 + [] + +[5 + +] +File: images/fig4.pdf Graphic file (type pdf) + + +Overfull \vbox (14.63716pt too high) detected at line 52 + [] + +[6 + +] +File: images/fig5.pdf Graphic file (type pdf) + + +Overfull \vbox (14.63716pt too high) detected at line 52 + [] + +[7 + +] +File: images/fig6.pdf Graphic file (type pdf) + + +Overfull \vbox (14.63716pt too high) detected at line 52 + [] + +[8 + +] +File: images/fig7.pdf Graphic file (type pdf) + + +Overfull \vbox (14.63716pt too high) detected at line 52 + [] + +[9 + +] +LaTeX Font Info: Trying to load font information for OT1+lmss on input line +66. + (c:/texlive/2019/texmf-dist/tex/latex/lm/ot1lmss.fd +File: ot1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Trying to load font information for OML+lmm on input line 6 +6. + +(c:/texlive/2019/texmf-dist/tex/latex/lm/omllmm.fd +File: omllmm.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Trying to load font information for OMS+lmsy on input line +66. + +(c:/texlive/2019/texmf-dist/tex/latex/lm/omslmsy.fd +File: omslmsy.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Trying to load font information for OMX+lmex on input line +66. + +(c:/texlive/2019/texmf-dist/tex/latex/lm/omxlmex.fd +File: omxlmex.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <10.95> on input line 66. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <8> on input line 66. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <6> on input line 66. +LaTeX Font Info: Trying to load font information for U+msa on input line 66. + + +(c:/texlive/2019/texmf-dist/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2013/01/14 v3.01 AMS symbols A +) +LaTeX Font Info: Trying to load font information for U+msb on input line 66. + + +(c:/texlive/2019/texmf-dist/tex/latex/amsfonts/umsb.fd +File: umsb.fd 2013/01/14 v3.01 AMS symbols B +) +LaTeX Font Info: Font shape `T1/lmss/m/it' in size <10.95> not available +(Font) Font shape `T1/lmss/m/sl' tried instead on input line 66. +LaTeX Font Info: Font shape `T1/lmss/m/it' in size <8> not available +(Font) Font shape `T1/lmss/m/sl' tried instead on input line 66. +LaTeX Font Info: Font shape `T1/lmss/m/it' in size <6> not available +(Font) Font shape `T1/lmss/m/sl' tried instead on input line 66. +File: images/polynom1.pdf Graphic file (type pdf) + + [10 + +] +File: images/polynom2.pdf Graphic file (type pdf) + + [11 ] \tf@nav=\write6 @@ -927,30 +1104,21 @@ Package hyperref Warning: Option `pdfsubject' has already been used, \tf@snm=\write8 \openout8 = `RS.snm'. -Package atveryend Info: Empty hook `BeforeClearDocument' on input line 25. -Package atveryend Info: Empty hook `AfterLastShipout' on input line 25. +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 68. +Package atveryend Info: Empty hook `AfterLastShipout' on input line 68. (./RS.aux) -Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 25. -Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 25. +Package atveryend Info: Empty hook `AtVeryEndDocument' on input line 68. +Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 68. Package rerunfilecheck Info: File `RS.out' has not changed. -(rerunfilecheck) Checksum: D41D8CD98F00B204E9800998ECF8427E;0. +(rerunfilecheck) Checksum: 4CA0FF56E3EE124326A4720E136735D1. ) Here is how much of TeX's memory you used: - 18359 strings out of 492164 - 341776 string characters out of 6129087 - 431862 words of memory out of 5000000 - 22272 multiletter control sequences out of 15000+600000 - 19654 words of font info for 23 fonts, out of 8000000 for 9000 - 1141 hyphenation exceptions out of 8191 - 58i,12n,57p,796b,459s stack positions out of 5000i,500n,10000p,200000b,80000s -{c:/texlive/2019/texmf-dist/fonts/enc/dvips/lm/lm-ec.enc} -Output written on RS.pdf (2 pages, 53965 bytes). -PDF statistics: - 42 PDF objects out of 1000 (max. 8388607) - 28 compressed objects within 1 object stream - 5 named destinations out of 1000 (max. 500000) - 43 words of extra memory for PDF output out of 10000 (max. 10000000) + 24329 strings out of 492483 + 450480 string characters out of 6132858 + 528380 words of memory out of 5000000 + 28307 multiletter control sequences out of 15000+600000 + 37892 words of font info for 41 fonts, out of 8000000 for 9000 + 1348 hyphenation exceptions out of 8191 + 58i,15n,57p,796b,539s stack positions out of 5000i,500n,10000p,200000b,80000s +Output written on RS.pdf (11 pages). diff --git a/buch/papers/reedsolomon/RS presentation/RS.nav b/buch/papers/reedsolomon/RS presentation/RS.nav index 9033d8b..3edba3c 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.nav +++ b/buch/papers/reedsolomon/RS presentation/RS.nav @@ -1,9 +1,16 @@ \headcommand {\slideentry {0}{0}{1}{1/1}{}{0}} \headcommand {\beamer@framepages {1}{1}} -\headcommand {\slideentry {0}{0}{2}{2/2}{}{0}} +\headcommand {\beamer@sectionpages {1}{1}} +\headcommand {\beamer@subsectionpages {1}{1}} +\headcommand {\sectionentry {1}{Introduction}{2}{Introduction}{0}} +\headcommand {\slideentry {1}{0}{1}{2/2}{}{0}} \headcommand {\beamer@framepages {2}{2}} -\headcommand {\beamer@partpages {1}{2}} -\headcommand {\beamer@subsectionpages {1}{2}} -\headcommand {\beamer@sectionpages {1}{2}} -\headcommand {\beamer@documentpages {2}} -\headcommand {\gdef \inserttotalframenumber {2}} +\headcommand {\slideentry {1}{0}{2}{3/9}{}{0}} +\headcommand {\beamer@framepages {3}{9}} +\headcommand {\slideentry {1}{0}{3}{10/11}{}{0}} +\headcommand {\beamer@framepages {10}{11}} +\headcommand {\beamer@partpages {1}{11}} +\headcommand {\beamer@subsectionpages {2}{11}} +\headcommand {\beamer@sectionpages {2}{11}} +\headcommand {\beamer@documentpages {11}} +\headcommand {\gdef \inserttotalframenumber {4}} diff --git a/buch/papers/reedsolomon/RS presentation/RS.out b/buch/papers/reedsolomon/RS presentation/RS.out index e69de29..dec2d7d 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.out +++ b/buch/papers/reedsolomon/RS presentation/RS.out @@ -0,0 +1 @@ +\BOOKMARK [2][]{Outline0.1}{Introduction}{}% 1 diff --git a/buch/papers/reedsolomon/RS presentation/RS.pdf b/buch/papers/reedsolomon/RS presentation/RS.pdf index 459d7e8..10719b7 100644 Binary files a/buch/papers/reedsolomon/RS presentation/RS.pdf and b/buch/papers/reedsolomon/RS presentation/RS.pdf differ diff --git a/buch/papers/reedsolomon/RS presentation/RS.synctex.gz b/buch/papers/reedsolomon/RS presentation/RS.synctex.gz index fe8adf5..2fe95de 100644 Binary files a/buch/papers/reedsolomon/RS presentation/RS.synctex.gz and b/buch/papers/reedsolomon/RS presentation/RS.synctex.gz differ diff --git a/buch/papers/reedsolomon/RS presentation/RS.tex b/buch/papers/reedsolomon/RS presentation/RS.tex index 3d2be8f..fb822da 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.tex +++ b/buch/papers/reedsolomon/RS presentation/RS.tex @@ -3,7 +3,9 @@ \usepackage[T1]{fontenc} \usepackage{lmodern} \usepackage[ngerman]{babel} +\usepackage{tikz} \usetheme{Hannover} + \begin{document} \author{Joshua Bär und Michael Steiner} \title{Reed-Solomon-Code} @@ -17,9 +19,51 @@ \begin{frame}[plain] \maketitle \end{frame} - + \section{Introduction} + \begin{frame} + \frametitle{Idee} + + \end{frame} + \begin{frame} - \frametitle{Test} - Ich mag Züge. + \begin{figure} + \only<1>{ + \includegraphics[width=0.9\linewidth]{images/fig1.pdf} + } + \only<2>{ + \includegraphics[width=0.9\linewidth]{images/fig2.pdf} + } + \only<3>{ + \includegraphics[width=0.9\linewidth]{images/fig3.pdf} + } + \only<4>{ + \includegraphics[width=0.9\linewidth]{images/fig4.pdf} + } + \only<5>{ + \includegraphics[width=0.9\linewidth]{images/fig5.pdf} + } + \only<6>{ + \includegraphics[width=0.9\linewidth]{images/fig6.pdf} + } + \only<7>{ + \includegraphics[width=0.9\linewidth]{images/fig7.pdf} + } + \end{figure} \end{frame} + + \begin{frame} + Übertragen von den Zahlen + \textcolor{blue}{2}, \textcolor{blue}{1}, \textcolor{blue}{5} + als $ p(x) = \textcolor{blue}{2}x^2 + \textcolor{blue}{1}x + \textcolor{blue}{5} $.\newline + Versende $ (p(1),p(2),...,p(7)) = (\textcolor{green}{8}, + \textcolor{green}{15}, \textcolor{green}{26}, + \textcolor{green}{ 41}, \textcolor{green}{60}, + \textcolor{green}{83}, \textcolor{green}{110})$ + \only<1>{ + \includegraphics[]{images/polynom1.pdf}} + \only<2>{ + \includegraphics[]{images/polynom2.pdf}} + \end{frame} + + \end{document} \ No newline at end of file diff --git a/buch/papers/reedsolomon/RS presentation/RS.toc b/buch/papers/reedsolomon/RS presentation/RS.toc index 4cd1c86..32e7e8d 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.toc +++ b/buch/papers/reedsolomon/RS presentation/RS.toc @@ -1 +1,2 @@ \babel@toc {ngerman}{} +\beamer@sectionintoc {1}{Introduction}{2}{0}{1} diff --git a/buch/papers/reedsolomon/RS presentation/Thumbs.db b/buch/papers/reedsolomon/RS presentation/Thumbs.db deleted file mode 100644 index 1626e26..0000000 Binary files a/buch/papers/reedsolomon/RS presentation/Thumbs.db and /dev/null differ diff --git a/buch/papers/reedsolomon/RS presentation/images/fig1.pdf b/buch/papers/reedsolomon/RS presentation/images/fig1.pdf index 5cff7fe..abde60c 100644 Binary files a/buch/papers/reedsolomon/RS presentation/images/fig1.pdf and b/buch/papers/reedsolomon/RS presentation/images/fig1.pdf differ diff --git a/buch/papers/reedsolomon/RS presentation/images/fig1.pdf_tex b/buch/papers/reedsolomon/RS presentation/images/fig1.pdf_tex deleted file mode 100644 index cb323ae..0000000 --- a/buch/papers/reedsolomon/RS presentation/images/fig1.pdf_tex +++ /dev/null @@ -1,81 +0,0 @@ -%% Creator: Inkscape 1.0.2 (e86c870879, 2021-01-15, custom), www.inkscape.org -%% PDF/EPS/PS + LaTeX output extension by Johan Engelen, 2010 -%% Accompanies image file 'fig1.pdf' (pdf, eps, ps) -%% -%% To include the image in your LaTeX document, write -%% \input{.pdf_tex} -%% instead of -%% \includegraphics{.pdf} -%% To scale the image, write -%% \def\svgwidth{} -%% \input{.pdf_tex} -%% instead of -%% \includegraphics[width=]{.pdf} -%% -%% Images with a different path to the parent latex file can -%% be accessed with the `import' package (which may need to be -%% installed) using -%% \usepackage{import} -%% in the preamble, and then including the image with -%% \import{}{.pdf_tex} -%% Alternatively, one can specify -%% \graphicspath{{/}} -%% -%% For more information, please see info/svg-inkscape on CTAN: -%% http://tug.ctan.org/tex-archive/info/svg-inkscape -%% -\begingroup% - \makeatletter% - \providecommand\color[2][]{% - \errmessage{(Inkscape) Color is used for the text in Inkscape, but the package 'color.sty' is not loaded}% - \renewcommand\color[2][]{}% - }% - \providecommand\transparent[1]{% - \errmessage{(Inkscape) Transparency is used (non-zero) for the text in Inkscape, but the package 'transparent.sty' is not loaded}% - \renewcommand\transparent[1]{}% - }% - \providecommand\rotatebox[2]{#2}% - \newcommand*\fsize{\dimexpr\f@size pt\relax}% - \newcommand*\lineheight[1]{\fontsize{\fsize}{#1\fsize}\selectfont}% - \ifx\svgwidth\undefined% - \setlength{\unitlength}{420bp}% - \ifx\svgscale\undefined% - \relax% - \else% - \setlength{\unitlength}{\unitlength * \real{\svgscale}}% - \fi% - \else% - \setlength{\unitlength}{\svgwidth}% - \fi% - \global\let\svgwidth\undefined% - \global\let\svgscale\undefined% - \makeatother% - \begin{picture}(1,0.75)% - \lineheight{1}% - \setlength\tabcolsep{0pt}% - \put(0,0){\includegraphics[width=\unitlength,page=1]{fig1.pdf}}% - \put(0.19038536,0.04761911){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}10\end{tabular}}}}% - \put(0.27196429,0.04761911){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}20\end{tabular}}}}% - \put(0.35354321,0.04761911){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}30\end{tabular}}}}% - \put(0.43512214,0.04761911){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}40\end{tabular}}}}% - \put(0.51670107,0.04761911){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}50\end{tabular}}}}% - \put(0.59828,0.04761911){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}60\end{tabular}}}}% - \put(0.67985893,0.04761911){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}70\end{tabular}}}}% - \put(0.76143804,0.04761911){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}80\end{tabular}}}}% - \put(0.84301696,0.04761911){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}90\end{tabular}}}}% - \put(0,0){\includegraphics[width=\unitlength,page=2]{fig1.pdf}}% - \put(0.10654768,0.07232143){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}0\end{tabular}}}}% - \put(0.10654768,0.13357143){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}1\end{tabular}}}}% - \put(0.10654768,0.19482143){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}2\end{tabular}}}}% - \put(0.10654768,0.25607143){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}3\end{tabular}}}}% - \put(0.10654768,0.31732143){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}4\end{tabular}}}}% - \put(0.10654768,0.37857143){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}5\end{tabular}}}}% - \put(0.10654768,0.43982143){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}6\end{tabular}}}}% - \put(0.10654768,0.50107143){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}7\end{tabular}}}}% - \put(0.10654768,0.56232143){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}8\end{tabular}}}}% - \put(0.10654768,0.62357143){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}9\end{tabular}}}}% - \put(0.09404768,0.68482143){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}10\end{tabular}}}}% - \put(0.47857196,0.70669643){\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\textbf{Signal}\end{tabular}}}}% - \put(0,0){\includegraphics[width=\unitlength,page=3]{fig1.pdf}}% - \end{picture}% -\endgroup% diff --git a/buch/papers/reedsolomon/RS presentation/images/fig1.png b/buch/papers/reedsolomon/RS presentation/images/fig1.png deleted file mode 100644 index a0395d7..0000000 Binary files a/buch/papers/reedsolomon/RS presentation/images/fig1.png and /dev/null differ diff --git a/buch/papers/reedsolomon/RS presentation/images/fig2.pdf b/buch/papers/reedsolomon/RS presentation/images/fig2.pdf new file mode 100644 index 0000000..8281ce7 Binary files /dev/null and b/buch/papers/reedsolomon/RS presentation/images/fig2.pdf differ diff --git a/buch/papers/reedsolomon/RS presentation/images/fig2.png b/buch/papers/reedsolomon/RS presentation/images/fig2.png deleted file mode 100644 index bd8faa0..0000000 Binary files a/buch/papers/reedsolomon/RS presentation/images/fig2.png and /dev/null differ diff --git a/buch/papers/reedsolomon/RS presentation/images/fig3.pdf b/buch/papers/reedsolomon/RS presentation/images/fig3.pdf new file mode 100644 index 0000000..7d29d1e Binary files /dev/null and b/buch/papers/reedsolomon/RS presentation/images/fig3.pdf differ diff --git a/buch/papers/reedsolomon/RS presentation/images/fig3.png b/buch/papers/reedsolomon/RS presentation/images/fig3.png deleted file mode 100644 index e14358d..0000000 Binary files a/buch/papers/reedsolomon/RS presentation/images/fig3.png and /dev/null differ diff --git a/buch/papers/reedsolomon/RS presentation/images/fig4.pdf b/buch/papers/reedsolomon/RS presentation/images/fig4.pdf new file mode 100644 index 0000000..394a673 Binary files /dev/null and b/buch/papers/reedsolomon/RS presentation/images/fig4.pdf differ diff --git a/buch/papers/reedsolomon/RS presentation/images/fig4.png b/buch/papers/reedsolomon/RS presentation/images/fig4.png deleted file mode 100644 index 1821c3b..0000000 Binary files a/buch/papers/reedsolomon/RS presentation/images/fig4.png and /dev/null differ diff --git a/buch/papers/reedsolomon/RS presentation/images/fig5.pdf b/buch/papers/reedsolomon/RS presentation/images/fig5.pdf new file mode 100644 index 0000000..37416a9 Binary files /dev/null and b/buch/papers/reedsolomon/RS presentation/images/fig5.pdf differ diff --git a/buch/papers/reedsolomon/RS presentation/images/fig5.png b/buch/papers/reedsolomon/RS presentation/images/fig5.png deleted file mode 100644 index e4abbaa..0000000 Binary files a/buch/papers/reedsolomon/RS presentation/images/fig5.png and /dev/null differ diff --git a/buch/papers/reedsolomon/RS presentation/images/fig6.pdf b/buch/papers/reedsolomon/RS presentation/images/fig6.pdf new file mode 100644 index 0000000..61cbc01 Binary files /dev/null and b/buch/papers/reedsolomon/RS presentation/images/fig6.pdf differ diff --git a/buch/papers/reedsolomon/RS presentation/images/fig6.png b/buch/papers/reedsolomon/RS presentation/images/fig6.png deleted file mode 100644 index 5447949..0000000 Binary files a/buch/papers/reedsolomon/RS presentation/images/fig6.png and /dev/null differ diff --git a/buch/papers/reedsolomon/RS presentation/images/fig7.pdf b/buch/papers/reedsolomon/RS presentation/images/fig7.pdf new file mode 100644 index 0000000..7397ffe Binary files /dev/null and b/buch/papers/reedsolomon/RS presentation/images/fig7.pdf differ diff --git a/buch/papers/reedsolomon/RS presentation/images/fig7.png b/buch/papers/reedsolomon/RS presentation/images/fig7.png deleted file mode 100644 index a850402..0000000 Binary files a/buch/papers/reedsolomon/RS presentation/images/fig7.png and /dev/null differ diff --git a/buch/papers/reedsolomon/RS presentation/images/polynom1.aux b/buch/papers/reedsolomon/RS presentation/images/polynom1.aux new file mode 100644 index 0000000..f23e546 --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/images/polynom1.aux @@ -0,0 +1 @@ +\relax diff --git a/buch/papers/reedsolomon/RS presentation/images/polynom1.log b/buch/papers/reedsolomon/RS presentation/images/polynom1.log new file mode 100644 index 0000000..183eaea --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/images/polynom1.log @@ -0,0 +1,747 @@ +This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019/W32TeX) (preloaded format=xelatex 2019.10.25) 21 APR 2021 12:27 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**polynom1.tex +(./polynom1.tex +LaTeX2e <2019-10-01> patch level 1 +(c:/texlive/2019/texmf-dist/tex/latex/standalone/standalone.cls +Document Class: standalone 2018/03/26 v1.3a Class to compile TeX sub-files stan +dalone +(c:/texlive/2019/texmf-dist/tex/latex/tools/shellesc.sty +Package: shellesc 2016/06/07 v0.02b unified shell escape interface for LaTeX +Package shellesc Info: Restricted shell escape enabled on input line 72. +) +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +) +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2018/09/07 v3.3 Provides the ifpdf switch +) +(c:/texlive/2019/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +(c:/texlive/2019/texmf-dist/tex/latex/xkeyval/xkeyval.sty +Package: xkeyval 2014/12/03 v2.7a package option processing (HA) + +(c:/texlive/2019/texmf-dist/tex/generic/xkeyval/xkeyval.tex +(c:/texlive/2019/texmf-dist/tex/generic/xkeyval/xkvutils.tex +\XKV@toks=\toks14 +\XKV@tempa@toks=\toks15 + +(c:/texlive/2019/texmf-dist/tex/generic/xkeyval/keyval.tex)) +\XKV@depth=\count80 +File: xkeyval.tex 2014/12/03 v2.7a key=value parser (HA) +)) +\sa@internal=\count81 +\c@sapage=\count82 + +(c:/texlive/2019/texmf-dist/tex/latex/standalone/standalone.cfg +File: standalone.cfg 2018/03/26 v1.3a Default configuration file for 'standalon +e' class +) +(c:/texlive/2019/texmf-dist/tex/latex/base/article.cls +Document Class: article 2019/08/27 v1.4j Standard LaTeX document class +(c:/texlive/2019/texmf-dist/tex/latex/base/size10.clo +File: size10.clo 2019/08/27 v1.4j Standard LaTeX file (size option) +) +\c@part=\count83 +\c@section=\count84 +\c@subsection=\count85 +\c@subsubsection=\count86 +\c@paragraph=\count87 +\c@subparagraph=\count88 +\c@figure=\count89 +\c@table=\count90 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +(c:/texlive/2019/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +(c:/texlive/2019/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +(c:/texlive/2019/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex +\pgfutil@everybye=\toks16 +\pgfutil@tempdima=\dimen103 +\pgfutil@tempdimb=\dimen104 + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.tex) +) (c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def +\pgfutil@abb=\box27 + +(c:/texlive/2019/texmf-dist/tex/latex/ms/everyshi.sty +Package: everyshi 2001/05/15 v3.00 EveryShipout Package (MS) +)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/pgf.revision.tex) +Package: pgfrcs 2019/08/03 v3.1.4b (3.1.4b) +)) +Package: pgf 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +(c:/texlive/2019/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR) + +(c:/texlive/2019/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2019/10/08 v1.3c Standard LaTeX Graphics (DPC,SPQR) + +(c:/texlive/2019/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) +(c:/texlive/2019/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: xetex.def on input line 105. + +(c:/texlive/2019/texmf-dist/tex/latex/graphics-def/xetex.def +File: xetex.def 2017/06/24 v5.0h Graphics/color driver for xetex +)) +\Gin@req@height=\dimen105 +\Gin@req@width=\dimen106 +) +(c:/texlive/2019/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +(c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +Package: pgfsys 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +\pgfkeys@pathtoks=\toks17 +\pgfkeys@temptoks=\toks18 + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex +\pgfkeys@tmptoks=\toks19 +)) +\pgf@x=\dimen107 +\pgf@y=\dimen108 +\pgf@xa=\dimen109 +\pgf@ya=\dimen110 +\pgf@xb=\dimen111 +\pgf@yb=\dimen112 +\pgf@xc=\dimen113 +\pgf@yc=\dimen114 +\pgf@xd=\dimen115 +\pgf@yd=\dimen116 +\w@pgf@writea=\write3 +\r@pgf@reada=\read1 +\c@pgf@counta=\count91 +\c@pgf@countb=\count92 +\c@pgf@countc=\count93 +\c@pgf@countd=\count94 +\t@pgf@toka=\toks20 +\t@pgf@tokb=\toks21 +\t@pgf@tokc=\toks22 +\pgf@sys@id@count=\count95 + (c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg +File: pgf.cfg 2019/08/03 v3.1.4b (3.1.4b) +) +Driver file for pgf: pgfsys-xetex.def + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-xetex.def +File: pgfsys-xetex.def 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-dvipdfmx.def +File: pgfsys-dvipdfmx.def 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def +File: pgfsys-common-pdf.def 2019/08/03 v3.1.4b (3.1.4b) +) +\pgfsys@objnum=\count96 +))) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex +File: pgfsyssoftpath.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgfsyssoftpath@smallbuffer@items=\count97 +\pgfsyssoftpath@bigbuffer@items=\count98 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex +File: pgfsysprotocol.code.tex 2019/08/03 v3.1.4b (3.1.4b) +)) (c:/texlive/2019/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) + +(c:/texlive/2019/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: xetex.def on input line 225. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348. +Package xcolor Info: Model `RGB' extended on input line 1364. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +Package: pgfcore 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex +\pgfmath@dimen=\dimen117 +\pgfmath@count=\count99 +\pgfmath@box=\box28 +\pgfmath@toks=\toks23 +\pgfmath@stack@operand=\toks24 +\pgfmath@stack@operation=\toks25 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.te +x) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric +.code.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.t +ex) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.co +de.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.te +x) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithm +etics.code.tex))) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex +\c@pgfmathroundto@lastzeros=\count100 +)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfint.code.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex +File: pgfcorepoints.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgf@picminx=\dimen118 +\pgf@picmaxx=\dimen119 +\pgf@picminy=\dimen120 +\pgf@picmaxy=\dimen121 +\pgf@pathminx=\dimen122 +\pgf@pathmaxx=\dimen123 +\pgf@pathminy=\dimen124 +\pgf@pathmaxy=\dimen125 +\pgf@xx=\dimen126 +\pgf@xy=\dimen127 +\pgf@yx=\dimen128 +\pgf@yy=\dimen129 +\pgf@zx=\dimen130 +\pgf@zy=\dimen131 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.cod +e.tex +File: pgfcorepathconstruct.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgf@path@lastx=\dimen132 +\pgf@path@lasty=\dimen133 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.te +x +File: pgfcorepathusage.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgf@shorten@end@additional=\dimen134 +\pgf@shorten@start@additional=\dimen135 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex +File: pgfcorescopes.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgfpic=\box29 +\pgf@hbox=\box30 +\pgf@layerbox@main=\box31 +\pgf@picture@serial@count=\count101 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code +.tex +File: pgfcoregraphicstate.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgflinewidth=\dimen136 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.c +ode.tex +File: pgfcoretransformations.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgf@pt@x=\dimen137 +\pgf@pt@y=\dimen138 +\pgf@pt@temp=\dimen139 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex +File: pgfcorequick.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex +File: pgfcoreobjects.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.co +de.tex +File: pgfcorepathprocessing.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex +File: pgfcorearrows.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgfarrowsep=\dimen140 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex +File: pgfcoreshade.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgf@max=\dimen141 +\pgf@sys@shading@range@num=\count102 +\pgf@shadingcount=\count103 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex +File: pgfcoreimage.code.tex 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex +File: pgfcoreexternal.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgfexternal@startupbox=\box32 +)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex +File: pgfcorelayers.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code +.tex +File: pgfcoretransparency.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex +File: pgfcorepatterns.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) (c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex +File: pgfcorerdf.code.tex 2019/08/03 v3.1.4b (3.1.4b) +))) (c:/texlive/2019/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.te +x +File: pgfmoduleshapes.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgfnodeparttextbox=\box33 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex +File: pgfmoduleplot.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) +(c:/texlive/2019/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.st +y +Package: pgfcomp-version-0-65 2019/08/03 v3.1.4b (3.1.4b) +\pgf@nodesepstart=\dimen142 +\pgf@nodesepend=\dimen143 +) +(c:/texlive/2019/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.st +y +Package: pgfcomp-version-1-18 2019/08/03 v3.1.4b (3.1.4b) +)) (c:/texlive/2019/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +(c:/texlive/2019/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex)) +(c:/texlive/2019/texmf-dist/tex/latex/pgf/math/pgfmath.sty +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +Package: pgffor 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex) +\pgffor@iter=\dimen144 +\pgffor@skip=\dimen145 +\pgffor@stack=\toks26 +\pgffor@toks=\toks27 +)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex +Package: tikz 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.co +de.tex +File: pgflibraryplothandlers.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgf@plot@mark@count=\count104 +\pgfplotmarksize=\dimen146 +) +\tikz@lastx=\dimen147 +\tikz@lasty=\dimen148 +\tikz@lastxsaved=\dimen149 +\tikz@lastysaved=\dimen150 +\tikz@lastmovetox=\dimen151 +\tikz@lastmovetoy=\dimen152 +\tikzleveldistance=\dimen153 +\tikzsiblingdistance=\dimen154 +\tikz@figbox=\box34 +\tikz@figbox@bg=\box35 +\tikz@tempbox=\box36 +\tikz@tempbox@bg=\box37 +\tikztreelevel=\count105 +\tikznumberofchildren=\count106 +\tikznumberofcurrentchild=\count107 +\tikz@fig@count=\count108 + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex +File: pgfmodulematrix.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgfmatrixcurrentrow=\count109 +\pgfmatrixcurrentcolumn=\count110 +\pgf@matrix@numberofcolumns=\count111 +) +\tikz@expandcount=\count112 + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzli +brarytopaths.code.tex +File: tikzlibrarytopaths.code.tex 2019/08/03 v3.1.4b (3.1.4b) +))) +\sa@box=\box38 +) +(c:/texlive/2019/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2019/04/01 v2.17c AMS math features +\@mathmargin=\skip43 + +For additional information on amsmath, use the `?' option. +(c:/texlive/2019/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 AMS text + +(c:/texlive/2019/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 generic functions +\@emptytoks=\toks28 +\ex@=\dimen155 +)) +(c:/texlive/2019/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d Bold Symbols +\pmbraise@=\dimen156 +) +(c:/texlive/2019/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 2016/03/08 v2.02 operator names +) +\inf@bad=\count113 +LaTeX Info: Redefining \frac on input line 227. +\uproot@=\count114 +\leftroot@=\count115 +LaTeX Info: Redefining \overline on input line 389. +\classnum@=\count116 +\DOTSCASE@=\count117 +LaTeX Info: Redefining \ldots on input line 486. +LaTeX Info: Redefining \dots on input line 489. +LaTeX Info: Redefining \cdots on input line 610. +\Mathstrutbox@=\box39 +\strutbox@=\box40 +\big@size=\dimen157 +LaTeX Font Info: Redeclaring font encoding OML on input line 733. +LaTeX Font Info: Redeclaring font encoding OMS on input line 734. +\macc@depth=\count118 +\c@MaxMatrixCols=\count119 +\dotsspace@=\muskip10 +\c@parentequation=\count120 +\dspbrk@lvl=\count121 +\tag@help=\toks29 +\row@=\count122 +\column@=\count123 +\maxfields@=\count124 +\andhelp@=\toks30 +\eqnshift@=\dimen158 +\alignsep@=\dimen159 +\tagshift@=\dimen160 +\tagwidth@=\dimen161 +\totwidth@=\dimen162 +\lineht@=\dimen163 +\@envbody=\toks31 +\multlinegap=\skip44 +\multlinetaggap=\skip45 +\mathdisplay@stack=\toks32 +LaTeX Info: Redefining \[ on input line 2855. +LaTeX Info: Redefining \] on input line 2856. +) +(c:/texlive/2019/texmf-dist/tex/latex/psnfss/times.sty +Package: times 2005/04/12 PSNFSS-v9.2a (SPQR) +) +(c:/texlive/2019/texmf-dist/tex/latex/txfonts/txfonts.sty +Package: txfonts 2008/01/22 v3.2.1 +LaTeX Font Info: Redeclaring symbol font `operators' on input line 21. +LaTeX Font Info: Overwriting symbol font `operators' in version `normal' +(Font) OT1/cmr/m/n --> OT1/txr/m/n on input line 21. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/txr/m/n on input line 21. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/txr/m/n --> OT1/txr/bx/n on input line 22. +\symitalic=\mathgroup4 +LaTeX Font Info: Overwriting symbol font `italic' in version `bold' +(Font) OT1/txr/m/it --> OT1/txr/bx/it on input line 26. +LaTeX Font Info: Redeclaring math alphabet \mathbf on input line 29. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' +(Font) OT1/cmr/bx/n --> OT1/txr/bx/n on input line 29. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/txr/bx/n on input line 29. +LaTeX Font Info: Redeclaring math alphabet \mathit on input line 30. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' +(Font) OT1/cmr/m/it --> OT1/txr/m/it on input line 30. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/cmr/bx/it --> OT1/txr/m/it on input line 30. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/txr/m/it --> OT1/txr/bx/it on input line 31. +LaTeX Font Info: Redeclaring math alphabet \mathsf on input line 40. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' +(Font) OT1/cmss/m/n --> OT1/txss/m/n on input line 40. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/cmss/bx/n --> OT1/txss/m/n on input line 40. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/txss/m/n --> OT1/txss/b/n on input line 41. +LaTeX Font Info: Redeclaring math alphabet \mathtt on input line 50. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' +(Font) OT1/cmtt/m/n --> OT1/txtt/m/n on input line 50. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/cmtt/m/n --> OT1/txtt/m/n on input line 50. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/txtt/m/n --> OT1/txtt/b/n on input line 51. +LaTeX Font Info: Redeclaring symbol font `letters' on input line 58. +LaTeX Font Info: Overwriting symbol font `letters' in version `normal' +(Font) OML/cmm/m/it --> OML/txmi/m/it on input line 58. +LaTeX Font Info: Overwriting symbol font `letters' in version `bold' +(Font) OML/cmm/b/it --> OML/txmi/m/it on input line 58. +LaTeX Font Info: Overwriting symbol font `letters' in version `bold' +(Font) OML/txmi/m/it --> OML/txmi/bx/it on input line 59. +\symlettersA=\mathgroup5 +LaTeX Font Info: Overwriting symbol font `lettersA' in version `bold' +(Font) U/txmia/m/it --> U/txmia/bx/it on input line 67. +LaTeX Font Info: Redeclaring symbol font `symbols' on input line 77. +LaTeX Font Info: Overwriting symbol font `symbols' in version `normal' +(Font) OMS/cmsy/m/n --> OMS/txsy/m/n on input line 77. +LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' +(Font) OMS/cmsy/b/n --> OMS/txsy/m/n on input line 77. +LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' +(Font) OMS/txsy/m/n --> OMS/txsy/bx/n on input line 78. +\symAMSa=\mathgroup6 +LaTeX Font Info: Overwriting symbol font `AMSa' in version `bold' +(Font) U/txsya/m/n --> U/txsya/bx/n on input line 94. +\symAMSb=\mathgroup7 +LaTeX Font Info: Overwriting symbol font `AMSb' in version `bold' +(Font) U/txsyb/m/n --> U/txsyb/bx/n on input line 103. +\symsymbolsC=\mathgroup8 +LaTeX Font Info: Overwriting symbol font `symbolsC' in version `bold' +(Font) U/txsyc/m/n --> U/txsyc/bx/n on input line 113. +LaTeX Font Info: Redeclaring symbol font `largesymbols' on input line 120. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal' +(Font) OMX/cmex/m/n --> OMX/txex/m/n on input line 120. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' +(Font) OMX/cmex/m/n --> OMX/txex/m/n on input line 120. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' +(Font) OMX/txex/m/n --> OMX/txex/bx/n on input line 121. +\symlargesymbolsA=\mathgroup9 +LaTeX Font Info: Overwriting symbol font `largesymbolsA' in version `bold' +(Font) U/txexa/m/n --> U/txexa/bx/n on input line 129. +LaTeX Font Info: Redeclaring math symbol \mathsterling on input line 164. +LaTeX Font Info: Redeclaring math symbol \hbar on input line 591. +LaTeX Info: Redefining \not on input line 1043. +) +(c:/texlive/2019/texmf-dist/tex/latex/pgfplots/pgfplots.sty +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/pgfplots.revision.tex) +Package: pgfplots 2018/03/28 v1.16 Data Visualization (1.16) + +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/pgfplots.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/pgfplotscore.code.tex +\t@pgfplots@toka=\toks33 +\t@pgfplots@tokb=\toks34 +\t@pgfplots@tokc=\toks35 +\pgfplots@tmpa=\dimen164 +\c@pgfplots@coordindex=\count125 +\c@pgfplots@scanlineindex=\count126 + +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/sys/pgfplotssysgeneric.code.te +x)) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/libs/pgfplotslibrary.code.tex) + +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfs +upp_loader.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/libraries/pgflibraryfpu.code.tex)) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/util/pgfplotsutil.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/liststructure/pgfplotsliststru +cture.code.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/liststructure/pgfplotsliststru +ctureext.code.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/liststructure/pgfplotsarray.co +de.tex +\c@pgfplotsarray@tmp=\count127 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/liststructure/pgfplotsmatrix.c +ode.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/numtable/pgfplotstableshared.c +ode.tex +\c@pgfplotstable@counta=\count128 +\t@pgfplotstable@a=\toks36 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/liststructure/pgfplotsdeque.co +de.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/util/pgfplotsbinary.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/util/pgfplotsbinary.data.code. +tex)) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/util/pgfplotsutil.verb.code.te +x) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/libs/pgflibrarypgfplots.surfsh +ading.code.tex +\c@pgfplotslibrarysurf@no=\count129 + +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/sys/pgflibrarypgfplots.surfsha +ding.pgfsys-xetex.def +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/sys/pgflibrarypgfplots.surfsha +ding.pgfsys-dvipdfmx.def +\c@pgfplotslibrarysurf@streamlen=\count130 +)))) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/util/pgfplotscolormap.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/util/pgfplotscolor.code.tex)) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/pgfplotsstackedplots.code.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/pgfplotsplothandlers.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/pgfplotsmeshplothandler.code.t +ex +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/pgfplotsmeshplotimage.code.tex +))) (c:/texlive/2019/texmf-dist/tex/generic/pgfplots/pgfplots.scaling.code.tex) + +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/pgfplotscoordprocessing.code.t +ex) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/pgfplots.errorbars.code.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/pgfplots.markers.code.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/pgfplotsticks.code.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/pgfplots.paths.code.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzli +brarydecorations.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/modules/pgfmoduledecorations.code.t +ex +\pgfdecoratedcompleteddistance=\dimen165 +\pgfdecoratedremainingdistance=\dimen166 +\pgfdecoratedinputsegmentcompleteddistance=\dimen167 +\pgfdecoratedinputsegmentremainingdistance=\dimen168 +\pgf@decorate@distancetomove=\dimen169 +\pgf@decorate@repeatstate=\count131 +\pgfdecorationsegmentamplitude=\dimen170 +\pgfdecorationsegmentlength=\dimen171 +) +\tikz@lib@dec@box=\box41 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzli +brarydecorations.pathmorphing.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/libraries/decorations/pgflibrarydec +orations.pathmorphing.code.tex)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzli +brarydecorations.pathreplacing.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/libraries/decorations/pgflibrarydec +orations.pathreplacing.code.tex)) +\pgfplots@numplots=\count132 +\pgfplots@xmin@reg=\dimen172 +\pgfplots@xmax@reg=\dimen173 +\pgfplots@ymin@reg=\dimen174 +\pgfplots@ymax@reg=\dimen175 +\pgfplots@zmin@reg=\dimen176 +\pgfplots@zmax@reg=\dimen177 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzli +braryplotmarks.code.tex +File: tikzlibraryplotmarks.code.tex 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/libraries/pgflibraryplotmarks.code. +tex +File: pgflibraryplotmarks.code.tex 2019/08/03 v3.1.4b (3.1.4b) +))) (c:/texlive/2019/texmf-dist/tex/latex/csvsimple/csvsimple.sty +Package: csvsimple 2019/04/09 version 1.21 LaTeX CSV file processing + +(c:/texlive/2019/texmf-dist/tex/latex/base/ifthen.sty +Package: ifthen 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC) +) +(c:/texlive/2019/texmf-dist/tex/latex/etoolbox/etoolbox.sty +Package: etoolbox 2019/09/21 v2.5h e-TeX tools for LaTeX (JAW) +\etb@tempcnta=\count133 +) +\csv@file=\read2 +\c@csvinputline=\count134 +\c@csvrow=\count135 +\c@csvcol=\count136 +\csv@out=\write4 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzli +braryarrows.code.tex +File: tikzlibraryarrows.code.tex 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex +File: pgflibraryarrows.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\arrowsize=\dimen178 +)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzli +braryintersections.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/libraries/pgflibraryintersections.c +ode.tex +\pgf@intersect@solutions=\count137 +)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzli +brarymath.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzli +braryfpu.code.tex) +\tikz@math@for@depth=\count138 +\tikz@math@dimen=\dimen179 +\tikz@math@toks=\toks37 +) (./polynom1.aux) +\openout1 = `polynom1.aux'. + +LaTeX Font Info: Checking defaults for OML/txmi/m/it on input line 11. +LaTeX Font Info: Trying to load font information for OML+txmi on input line +11. + +(c:/texlive/2019/texmf-dist/tex/latex/txfonts/omltxmi.fd +File: omltxmi.fd 2000/12/15 v3.1 +) +LaTeX Font Info: ... okay on input line 11. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 11. +LaTeX Font Info: ... okay on input line 11. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 11. +LaTeX Font Info: ... okay on input line 11. +LaTeX Font Info: Checking defaults for OMS/txsy/m/n on input line 11. +LaTeX Font Info: Trying to load font information for OMS+txsy on input line +11. + +(c:/texlive/2019/texmf-dist/tex/latex/txfonts/omstxsy.fd +File: omstxsy.fd 2000/12/15 v3.1 +) +LaTeX Font Info: ... okay on input line 11. +LaTeX Font Info: Checking defaults for TU/lmr/m/n on input line 11. +LaTeX Font Info: ... okay on input line 11. +LaTeX Font Info: Checking defaults for OMX/txex/m/n on input line 11. +LaTeX Font Info: Trying to load font information for OMX+txex on input line +11. + +(c:/texlive/2019/texmf-dist/tex/latex/txfonts/omxtxex.fd +File: omxtxex.fd 2000/12/15 v3.1 +) +LaTeX Font Info: ... okay on input line 11. +LaTeX Font Info: Checking defaults for U/txexa/m/n on input line 11. +LaTeX Font Info: Trying to load font information for U+txexa on input line 1 +1. + +(c:/texlive/2019/texmf-dist/tex/latex/txfonts/utxexa.fd +File: utxexa.fd 2000/12/15 v3.1 +) +LaTeX Font Info: ... okay on input line 11. +LaTeX Font Info: Trying to load font information for TU+txr on input line 11 +. +LaTeX Font Info: No file TUtxr.fd. on input line 11. + + +LaTeX Font Warning: Font shape `TU/txr/m/n' undefined +(Font) using `TU/lmr/m/n' instead on input line 11. + +ABD: EveryShipout initializing macros + +Package pgfplots Warning: running in backwards compatibility mode (unsuitable t +ick labels; missing features). Consider writing \pgfplotsset{compat=1.16} into +your preamble. + on input line 11. + +LaTeX Font Info: Trying to load font information for OT1+txr on input line 2 +6. +(c:/texlive/2019/texmf-dist/tex/latex/txfonts/ot1txr.fd +File: ot1txr.fd 2000/12/15 v3.1 +) +LaTeX Font Info: Trying to load font information for U+txmia on input line 2 +6. + +(c:/texlive/2019/texmf-dist/tex/latex/txfonts/utxmia.fd +File: utxmia.fd 2000/12/15 v3.1 +) +LaTeX Font Info: Trying to load font information for U+txsya on input line 2 +6. + +(c:/texlive/2019/texmf-dist/tex/latex/txfonts/utxsya.fd +File: utxsya.fd 2000/12/15 v3.1 +) +LaTeX Font Info: Trying to load font information for U+txsyb on input line 2 +6. + +(c:/texlive/2019/texmf-dist/tex/latex/txfonts/utxsyb.fd +File: utxsyb.fd 2000/12/15 v3.1 +) +LaTeX Font Info: Trying to load font information for U+txsyc on input line 2 +6. + +(c:/texlive/2019/texmf-dist/tex/latex/txfonts/utxsyc.fd +File: utxsyc.fd 2000/12/15 v3.1 +) [1 + +] (./polynom1.aux) + +LaTeX Font Warning: Some font shapes were not available, defaults substituted. + + ) +Here is how much of TeX's memory you used: + 25076 strings out of 492483 + 634297 string characters out of 6132858 + 794987 words of memory out of 5000000 + 29148 multiletter control sequences out of 15000+600000 + 13575 words of font info for 45 fonts, out of 8000000 for 9000 + 1348 hyphenation exceptions out of 8191 + 68i,6n,98p,840b,724s stack positions out of 5000i,500n,10000p,200000b,80000s + +Output written on polynom1.pdf (1 page). diff --git a/buch/papers/reedsolomon/RS presentation/images/polynom1.pdf b/buch/papers/reedsolomon/RS presentation/images/polynom1.pdf new file mode 100644 index 0000000..1f632d8 Binary files /dev/null and b/buch/papers/reedsolomon/RS presentation/images/polynom1.pdf differ diff --git a/buch/papers/reedsolomon/RS presentation/images/polynom1.synctex.gz b/buch/papers/reedsolomon/RS presentation/images/polynom1.synctex.gz new file mode 100644 index 0000000..578f2a3 Binary files /dev/null and b/buch/papers/reedsolomon/RS presentation/images/polynom1.synctex.gz differ diff --git a/buch/papers/reedsolomon/RS presentation/images/polynom1.tex b/buch/papers/reedsolomon/RS presentation/images/polynom1.tex new file mode 100644 index 0000000..db83daa --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/images/polynom1.tex @@ -0,0 +1,59 @@ +% polynome1 +%------------------- +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math} +\newcommand{\teiler}{40} +\begin{document} + %Übertragen von den Zahlen + %\textcolor{blue}{2}, \textcolor{blue}{1}, \textcolor{blue}{5} + %als $ p(x) = \textcolor{blue}{2}x^2 + \textcolor{blue}{1}x + \textcolor{blue}{5} $.\newline + %Versende $ (p(1),p(2),...,p(7)) = (\textcolor{green}{8}, + % \textcolor{green}{15}, \textcolor{green}{26}, + % \textcolor{green}{ 41}, \textcolor{green}{60}, + % \textcolor{green}{83}, \textcolor{green}{110})$ + + +\begin{tikzpicture}[>=latex,thick] + +\draw[color=blue, line width=1.4pt] +plot[domain=0:8, samples=100] + ({\x},{(2*\x^2+1*\x+5)/\teiler}); +\draw[->] (-0.2,0) -- (8,0) coordinate[label={$x$}]; +\draw[->] (0,-0.2) -- (0,150/\teiler) coordinate[label={right:$p(x)$}]; +\def\punkt#1{ + \fill[color=green] #1 circle[radius=0.08]; + \draw #1 circle[radius=0.07]; +} +\punkt{(1,8/\teiler)} +\punkt{(2,15/\teiler)} +\punkt{(3,26/\teiler)} +\punkt{(4,41/\teiler)} +\punkt{(5,60/\teiler)} +\punkt{(6,83/\teiler)} +\punkt{(7,110/\teiler)} +%\draw[color=gray,line width=1pt,dashed] +%plot[domain=0.5:7, samples=100] +%({\x},{(0.1958*\x^2-1.2875*\x+3.0417)}); +%\def\erpunkt#1{ +% \fill[color=red] #1 circle[radius=0.08]; +% \draw #1 circle[radius=0.07]; +%} +%\erpunkt{(2,50/\teiler)} +%\erpunkt{(3,0.9414)} +%\punkt{(4,41/\teiler)} +%\punkt{(5,60/\teiler)} + +\draw(0,100/\teiler) -- (-0.1,100/\teiler) coordinate[label={left:$100$}]; +\draw(1,0) -- (1,-0.1) coordinate[label={below:$1$}]; + + + + +\end{tikzpicture} +\end{document} + diff --git a/buch/papers/reedsolomon/RS presentation/images/polynom2.aux b/buch/papers/reedsolomon/RS presentation/images/polynom2.aux new file mode 100644 index 0000000..f23e546 --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/images/polynom2.aux @@ -0,0 +1 @@ +\relax diff --git a/buch/papers/reedsolomon/RS presentation/images/polynom2.log b/buch/papers/reedsolomon/RS presentation/images/polynom2.log new file mode 100644 index 0000000..169203e --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/images/polynom2.log @@ -0,0 +1,747 @@ +This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019/W32TeX) (preloaded format=xelatex 2019.10.25) 21 APR 2021 12:28 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**polynom2.tex +(./polynom2.tex +LaTeX2e <2019-10-01> patch level 1 +(c:/texlive/2019/texmf-dist/tex/latex/standalone/standalone.cls +Document Class: standalone 2018/03/26 v1.3a Class to compile TeX sub-files stan +dalone +(c:/texlive/2019/texmf-dist/tex/latex/tools/shellesc.sty +Package: shellesc 2016/06/07 v0.02b unified shell escape interface for LaTeX +Package shellesc Info: Restricted shell escape enabled on input line 72. +) +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +) +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2018/09/07 v3.3 Provides the ifpdf switch +) +(c:/texlive/2019/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +(c:/texlive/2019/texmf-dist/tex/latex/xkeyval/xkeyval.sty +Package: xkeyval 2014/12/03 v2.7a package option processing (HA) + +(c:/texlive/2019/texmf-dist/tex/generic/xkeyval/xkeyval.tex +(c:/texlive/2019/texmf-dist/tex/generic/xkeyval/xkvutils.tex +\XKV@toks=\toks14 +\XKV@tempa@toks=\toks15 + +(c:/texlive/2019/texmf-dist/tex/generic/xkeyval/keyval.tex)) +\XKV@depth=\count80 +File: xkeyval.tex 2014/12/03 v2.7a key=value parser (HA) +)) +\sa@internal=\count81 +\c@sapage=\count82 + +(c:/texlive/2019/texmf-dist/tex/latex/standalone/standalone.cfg +File: standalone.cfg 2018/03/26 v1.3a Default configuration file for 'standalon +e' class +) +(c:/texlive/2019/texmf-dist/tex/latex/base/article.cls +Document Class: article 2019/08/27 v1.4j Standard LaTeX document class +(c:/texlive/2019/texmf-dist/tex/latex/base/size10.clo +File: size10.clo 2019/08/27 v1.4j Standard LaTeX file (size option) +) +\c@part=\count83 +\c@section=\count84 +\c@subsection=\count85 +\c@subsubsection=\count86 +\c@paragraph=\count87 +\c@subparagraph=\count88 +\c@figure=\count89 +\c@table=\count90 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +(c:/texlive/2019/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +(c:/texlive/2019/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +(c:/texlive/2019/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex +\pgfutil@everybye=\toks16 +\pgfutil@tempdima=\dimen103 +\pgfutil@tempdimb=\dimen104 + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.tex) +) (c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def +\pgfutil@abb=\box27 + +(c:/texlive/2019/texmf-dist/tex/latex/ms/everyshi.sty +Package: everyshi 2001/05/15 v3.00 EveryShipout Package (MS) +)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/pgf.revision.tex) +Package: pgfrcs 2019/08/03 v3.1.4b (3.1.4b) +)) +Package: pgf 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +(c:/texlive/2019/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR) + +(c:/texlive/2019/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2019/10/08 v1.3c Standard LaTeX Graphics (DPC,SPQR) + +(c:/texlive/2019/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) +(c:/texlive/2019/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: xetex.def on input line 105. + +(c:/texlive/2019/texmf-dist/tex/latex/graphics-def/xetex.def +File: xetex.def 2017/06/24 v5.0h Graphics/color driver for xetex +)) +\Gin@req@height=\dimen105 +\Gin@req@width=\dimen106 +) +(c:/texlive/2019/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +(c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +Package: pgfsys 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +\pgfkeys@pathtoks=\toks17 +\pgfkeys@temptoks=\toks18 + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex +\pgfkeys@tmptoks=\toks19 +)) +\pgf@x=\dimen107 +\pgf@y=\dimen108 +\pgf@xa=\dimen109 +\pgf@ya=\dimen110 +\pgf@xb=\dimen111 +\pgf@yb=\dimen112 +\pgf@xc=\dimen113 +\pgf@yc=\dimen114 +\pgf@xd=\dimen115 +\pgf@yd=\dimen116 +\w@pgf@writea=\write3 +\r@pgf@reada=\read1 +\c@pgf@counta=\count91 +\c@pgf@countb=\count92 +\c@pgf@countc=\count93 +\c@pgf@countd=\count94 +\t@pgf@toka=\toks20 +\t@pgf@tokb=\toks21 +\t@pgf@tokc=\toks22 +\pgf@sys@id@count=\count95 + (c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg +File: pgf.cfg 2019/08/03 v3.1.4b (3.1.4b) +) +Driver file for pgf: pgfsys-xetex.def + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-xetex.def +File: pgfsys-xetex.def 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-dvipdfmx.def +File: pgfsys-dvipdfmx.def 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def +File: pgfsys-common-pdf.def 2019/08/03 v3.1.4b (3.1.4b) +) +\pgfsys@objnum=\count96 +))) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex +File: pgfsyssoftpath.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgfsyssoftpath@smallbuffer@items=\count97 +\pgfsyssoftpath@bigbuffer@items=\count98 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex +File: pgfsysprotocol.code.tex 2019/08/03 v3.1.4b (3.1.4b) +)) (c:/texlive/2019/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) + +(c:/texlive/2019/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: xetex.def on input line 225. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348. +Package xcolor Info: Model `RGB' extended on input line 1364. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +Package: pgfcore 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex +\pgfmath@dimen=\dimen117 +\pgfmath@count=\count99 +\pgfmath@box=\box28 +\pgfmath@toks=\toks23 +\pgfmath@stack@operand=\toks24 +\pgfmath@stack@operation=\toks25 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.te +x) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric +.code.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.t +ex) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.co +de.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.te +x) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithm +etics.code.tex))) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex +\c@pgfmathroundto@lastzeros=\count100 +)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfint.code.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex +File: pgfcorepoints.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgf@picminx=\dimen118 +\pgf@picmaxx=\dimen119 +\pgf@picminy=\dimen120 +\pgf@picmaxy=\dimen121 +\pgf@pathminx=\dimen122 +\pgf@pathmaxx=\dimen123 +\pgf@pathminy=\dimen124 +\pgf@pathmaxy=\dimen125 +\pgf@xx=\dimen126 +\pgf@xy=\dimen127 +\pgf@yx=\dimen128 +\pgf@yy=\dimen129 +\pgf@zx=\dimen130 +\pgf@zy=\dimen131 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.cod +e.tex +File: pgfcorepathconstruct.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgf@path@lastx=\dimen132 +\pgf@path@lasty=\dimen133 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.te +x +File: pgfcorepathusage.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgf@shorten@end@additional=\dimen134 +\pgf@shorten@start@additional=\dimen135 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex +File: pgfcorescopes.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgfpic=\box29 +\pgf@hbox=\box30 +\pgf@layerbox@main=\box31 +\pgf@picture@serial@count=\count101 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code +.tex +File: pgfcoregraphicstate.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgflinewidth=\dimen136 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.c +ode.tex +File: pgfcoretransformations.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgf@pt@x=\dimen137 +\pgf@pt@y=\dimen138 +\pgf@pt@temp=\dimen139 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex +File: pgfcorequick.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex +File: pgfcoreobjects.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.co +de.tex +File: pgfcorepathprocessing.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex +File: pgfcorearrows.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgfarrowsep=\dimen140 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex +File: pgfcoreshade.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgf@max=\dimen141 +\pgf@sys@shading@range@num=\count102 +\pgf@shadingcount=\count103 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex +File: pgfcoreimage.code.tex 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex +File: pgfcoreexternal.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgfexternal@startupbox=\box32 +)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex +File: pgfcorelayers.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code +.tex +File: pgfcoretransparency.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex +File: pgfcorepatterns.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) (c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex +File: pgfcorerdf.code.tex 2019/08/03 v3.1.4b (3.1.4b) +))) (c:/texlive/2019/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.te +x +File: pgfmoduleshapes.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgfnodeparttextbox=\box33 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex +File: pgfmoduleplot.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) +(c:/texlive/2019/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.st +y +Package: pgfcomp-version-0-65 2019/08/03 v3.1.4b (3.1.4b) +\pgf@nodesepstart=\dimen142 +\pgf@nodesepend=\dimen143 +) +(c:/texlive/2019/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.st +y +Package: pgfcomp-version-1-18 2019/08/03 v3.1.4b (3.1.4b) +)) (c:/texlive/2019/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +(c:/texlive/2019/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex)) +(c:/texlive/2019/texmf-dist/tex/latex/pgf/math/pgfmath.sty +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +Package: pgffor 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex) +\pgffor@iter=\dimen144 +\pgffor@skip=\dimen145 +\pgffor@stack=\toks26 +\pgffor@toks=\toks27 +)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex +Package: tikz 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.co +de.tex +File: pgflibraryplothandlers.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgf@plot@mark@count=\count104 +\pgfplotmarksize=\dimen146 +) +\tikz@lastx=\dimen147 +\tikz@lasty=\dimen148 +\tikz@lastxsaved=\dimen149 +\tikz@lastysaved=\dimen150 +\tikz@lastmovetox=\dimen151 +\tikz@lastmovetoy=\dimen152 +\tikzleveldistance=\dimen153 +\tikzsiblingdistance=\dimen154 +\tikz@figbox=\box34 +\tikz@figbox@bg=\box35 +\tikz@tempbox=\box36 +\tikz@tempbox@bg=\box37 +\tikztreelevel=\count105 +\tikznumberofchildren=\count106 +\tikznumberofcurrentchild=\count107 +\tikz@fig@count=\count108 + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex +File: pgfmodulematrix.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgfmatrixcurrentrow=\count109 +\pgfmatrixcurrentcolumn=\count110 +\pgf@matrix@numberofcolumns=\count111 +) +\tikz@expandcount=\count112 + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzli +brarytopaths.code.tex +File: tikzlibrarytopaths.code.tex 2019/08/03 v3.1.4b (3.1.4b) +))) +\sa@box=\box38 +) +(c:/texlive/2019/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2019/04/01 v2.17c AMS math features +\@mathmargin=\skip43 + +For additional information on amsmath, use the `?' option. +(c:/texlive/2019/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 AMS text + +(c:/texlive/2019/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 generic functions +\@emptytoks=\toks28 +\ex@=\dimen155 +)) +(c:/texlive/2019/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d Bold Symbols +\pmbraise@=\dimen156 +) +(c:/texlive/2019/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 2016/03/08 v2.02 operator names +) +\inf@bad=\count113 +LaTeX Info: Redefining \frac on input line 227. +\uproot@=\count114 +\leftroot@=\count115 +LaTeX Info: Redefining \overline on input line 389. +\classnum@=\count116 +\DOTSCASE@=\count117 +LaTeX Info: Redefining \ldots on input line 486. +LaTeX Info: Redefining \dots on input line 489. +LaTeX Info: Redefining \cdots on input line 610. +\Mathstrutbox@=\box39 +\strutbox@=\box40 +\big@size=\dimen157 +LaTeX Font Info: Redeclaring font encoding OML on input line 733. +LaTeX Font Info: Redeclaring font encoding OMS on input line 734. +\macc@depth=\count118 +\c@MaxMatrixCols=\count119 +\dotsspace@=\muskip10 +\c@parentequation=\count120 +\dspbrk@lvl=\count121 +\tag@help=\toks29 +\row@=\count122 +\column@=\count123 +\maxfields@=\count124 +\andhelp@=\toks30 +\eqnshift@=\dimen158 +\alignsep@=\dimen159 +\tagshift@=\dimen160 +\tagwidth@=\dimen161 +\totwidth@=\dimen162 +\lineht@=\dimen163 +\@envbody=\toks31 +\multlinegap=\skip44 +\multlinetaggap=\skip45 +\mathdisplay@stack=\toks32 +LaTeX Info: Redefining \[ on input line 2855. +LaTeX Info: Redefining \] on input line 2856. +) +(c:/texlive/2019/texmf-dist/tex/latex/psnfss/times.sty +Package: times 2005/04/12 PSNFSS-v9.2a (SPQR) +) +(c:/texlive/2019/texmf-dist/tex/latex/txfonts/txfonts.sty +Package: txfonts 2008/01/22 v3.2.1 +LaTeX Font Info: Redeclaring symbol font `operators' on input line 21. +LaTeX Font Info: Overwriting symbol font `operators' in version `normal' +(Font) OT1/cmr/m/n --> OT1/txr/m/n on input line 21. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/txr/m/n on input line 21. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/txr/m/n --> OT1/txr/bx/n on input line 22. +\symitalic=\mathgroup4 +LaTeX Font Info: Overwriting symbol font `italic' in version `bold' +(Font) OT1/txr/m/it --> OT1/txr/bx/it on input line 26. +LaTeX Font Info: Redeclaring math alphabet \mathbf on input line 29. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' +(Font) OT1/cmr/bx/n --> OT1/txr/bx/n on input line 29. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/txr/bx/n on input line 29. +LaTeX Font Info: Redeclaring math alphabet \mathit on input line 30. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' +(Font) OT1/cmr/m/it --> OT1/txr/m/it on input line 30. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/cmr/bx/it --> OT1/txr/m/it on input line 30. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/txr/m/it --> OT1/txr/bx/it on input line 31. +LaTeX Font Info: Redeclaring math alphabet \mathsf on input line 40. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' +(Font) OT1/cmss/m/n --> OT1/txss/m/n on input line 40. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/cmss/bx/n --> OT1/txss/m/n on input line 40. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/txss/m/n --> OT1/txss/b/n on input line 41. +LaTeX Font Info: Redeclaring math alphabet \mathtt on input line 50. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' +(Font) OT1/cmtt/m/n --> OT1/txtt/m/n on input line 50. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/cmtt/m/n --> OT1/txtt/m/n on input line 50. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/txtt/m/n --> OT1/txtt/b/n on input line 51. +LaTeX Font Info: Redeclaring symbol font `letters' on input line 58. +LaTeX Font Info: Overwriting symbol font `letters' in version `normal' +(Font) OML/cmm/m/it --> OML/txmi/m/it on input line 58. +LaTeX Font Info: Overwriting symbol font `letters' in version `bold' +(Font) OML/cmm/b/it --> OML/txmi/m/it on input line 58. +LaTeX Font Info: Overwriting symbol font `letters' in version `bold' +(Font) OML/txmi/m/it --> OML/txmi/bx/it on input line 59. +\symlettersA=\mathgroup5 +LaTeX Font Info: Overwriting symbol font `lettersA' in version `bold' +(Font) U/txmia/m/it --> U/txmia/bx/it on input line 67. +LaTeX Font Info: Redeclaring symbol font `symbols' on input line 77. +LaTeX Font Info: Overwriting symbol font `symbols' in version `normal' +(Font) OMS/cmsy/m/n --> OMS/txsy/m/n on input line 77. +LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' +(Font) OMS/cmsy/b/n --> OMS/txsy/m/n on input line 77. +LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' +(Font) OMS/txsy/m/n --> OMS/txsy/bx/n on input line 78. +\symAMSa=\mathgroup6 +LaTeX Font Info: Overwriting symbol font `AMSa' in version `bold' +(Font) U/txsya/m/n --> U/txsya/bx/n on input line 94. +\symAMSb=\mathgroup7 +LaTeX Font Info: Overwriting symbol font `AMSb' in version `bold' +(Font) U/txsyb/m/n --> U/txsyb/bx/n on input line 103. +\symsymbolsC=\mathgroup8 +LaTeX Font Info: Overwriting symbol font `symbolsC' in version `bold' +(Font) U/txsyc/m/n --> U/txsyc/bx/n on input line 113. +LaTeX Font Info: Redeclaring symbol font `largesymbols' on input line 120. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal' +(Font) OMX/cmex/m/n --> OMX/txex/m/n on input line 120. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' +(Font) OMX/cmex/m/n --> OMX/txex/m/n on input line 120. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' +(Font) OMX/txex/m/n --> OMX/txex/bx/n on input line 121. +\symlargesymbolsA=\mathgroup9 +LaTeX Font Info: Overwriting symbol font `largesymbolsA' in version `bold' +(Font) U/txexa/m/n --> U/txexa/bx/n on input line 129. +LaTeX Font Info: Redeclaring math symbol \mathsterling on input line 164. +LaTeX Font Info: Redeclaring math symbol \hbar on input line 591. +LaTeX Info: Redefining \not on input line 1043. +) +(c:/texlive/2019/texmf-dist/tex/latex/pgfplots/pgfplots.sty +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/pgfplots.revision.tex) +Package: pgfplots 2018/03/28 v1.16 Data Visualization (1.16) + +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/pgfplots.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/pgfplotscore.code.tex +\t@pgfplots@toka=\toks33 +\t@pgfplots@tokb=\toks34 +\t@pgfplots@tokc=\toks35 +\pgfplots@tmpa=\dimen164 +\c@pgfplots@coordindex=\count125 +\c@pgfplots@scanlineindex=\count126 + +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/sys/pgfplotssysgeneric.code.te +x)) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/libs/pgfplotslibrary.code.tex) + +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfs +upp_loader.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/libraries/pgflibraryfpu.code.tex)) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/util/pgfplotsutil.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/liststructure/pgfplotsliststru +cture.code.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/liststructure/pgfplotsliststru +ctureext.code.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/liststructure/pgfplotsarray.co +de.tex +\c@pgfplotsarray@tmp=\count127 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/liststructure/pgfplotsmatrix.c +ode.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/numtable/pgfplotstableshared.c +ode.tex +\c@pgfplotstable@counta=\count128 +\t@pgfplotstable@a=\toks36 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/liststructure/pgfplotsdeque.co +de.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/util/pgfplotsbinary.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/util/pgfplotsbinary.data.code. +tex)) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/util/pgfplotsutil.verb.code.te +x) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/libs/pgflibrarypgfplots.surfsh +ading.code.tex +\c@pgfplotslibrarysurf@no=\count129 + +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/sys/pgflibrarypgfplots.surfsha +ding.pgfsys-xetex.def +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/sys/pgflibrarypgfplots.surfsha +ding.pgfsys-dvipdfmx.def +\c@pgfplotslibrarysurf@streamlen=\count130 +)))) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/util/pgfplotscolormap.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/util/pgfplotscolor.code.tex)) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/pgfplotsstackedplots.code.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/pgfplotsplothandlers.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/pgfplotsmeshplothandler.code.t +ex +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/pgfplotsmeshplotimage.code.tex +))) (c:/texlive/2019/texmf-dist/tex/generic/pgfplots/pgfplots.scaling.code.tex) + +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/pgfplotscoordprocessing.code.t +ex) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/pgfplots.errorbars.code.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/pgfplots.markers.code.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/pgfplotsticks.code.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgfplots/pgfplots.paths.code.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzli +brarydecorations.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/modules/pgfmoduledecorations.code.t +ex +\pgfdecoratedcompleteddistance=\dimen165 +\pgfdecoratedremainingdistance=\dimen166 +\pgfdecoratedinputsegmentcompleteddistance=\dimen167 +\pgfdecoratedinputsegmentremainingdistance=\dimen168 +\pgf@decorate@distancetomove=\dimen169 +\pgf@decorate@repeatstate=\count131 +\pgfdecorationsegmentamplitude=\dimen170 +\pgfdecorationsegmentlength=\dimen171 +) +\tikz@lib@dec@box=\box41 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzli +brarydecorations.pathmorphing.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/libraries/decorations/pgflibrarydec +orations.pathmorphing.code.tex)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzli +brarydecorations.pathreplacing.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/libraries/decorations/pgflibrarydec +orations.pathreplacing.code.tex)) +\pgfplots@numplots=\count132 +\pgfplots@xmin@reg=\dimen172 +\pgfplots@xmax@reg=\dimen173 +\pgfplots@ymin@reg=\dimen174 +\pgfplots@ymax@reg=\dimen175 +\pgfplots@zmin@reg=\dimen176 +\pgfplots@zmax@reg=\dimen177 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzli +braryplotmarks.code.tex +File: tikzlibraryplotmarks.code.tex 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/libraries/pgflibraryplotmarks.code. +tex +File: pgflibraryplotmarks.code.tex 2019/08/03 v3.1.4b (3.1.4b) +))) (c:/texlive/2019/texmf-dist/tex/latex/csvsimple/csvsimple.sty +Package: csvsimple 2019/04/09 version 1.21 LaTeX CSV file processing + +(c:/texlive/2019/texmf-dist/tex/latex/base/ifthen.sty +Package: ifthen 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC) +) +(c:/texlive/2019/texmf-dist/tex/latex/etoolbox/etoolbox.sty +Package: etoolbox 2019/09/21 v2.5h e-TeX tools for LaTeX (JAW) +\etb@tempcnta=\count133 +) +\csv@file=\read2 +\c@csvinputline=\count134 +\c@csvrow=\count135 +\c@csvcol=\count136 +\csv@out=\write4 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzli +braryarrows.code.tex +File: tikzlibraryarrows.code.tex 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex +File: pgflibraryarrows.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\arrowsize=\dimen178 +)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzli +braryintersections.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/libraries/pgflibraryintersections.c +ode.tex +\pgf@intersect@solutions=\count137 +)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzli +brarymath.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzli +braryfpu.code.tex) +\tikz@math@for@depth=\count138 +\tikz@math@dimen=\dimen179 +\tikz@math@toks=\toks37 +) (./polynom2.aux) +\openout1 = `polynom2.aux'. + +LaTeX Font Info: Checking defaults for OML/txmi/m/it on input line 11. +LaTeX Font Info: Trying to load font information for OML+txmi on input line +11. + +(c:/texlive/2019/texmf-dist/tex/latex/txfonts/omltxmi.fd +File: omltxmi.fd 2000/12/15 v3.1 +) +LaTeX Font Info: ... okay on input line 11. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 11. +LaTeX Font Info: ... okay on input line 11. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 11. +LaTeX Font Info: ... okay on input line 11. +LaTeX Font Info: Checking defaults for OMS/txsy/m/n on input line 11. +LaTeX Font Info: Trying to load font information for OMS+txsy on input line +11. + +(c:/texlive/2019/texmf-dist/tex/latex/txfonts/omstxsy.fd +File: omstxsy.fd 2000/12/15 v3.1 +) +LaTeX Font Info: ... okay on input line 11. +LaTeX Font Info: Checking defaults for TU/lmr/m/n on input line 11. +LaTeX Font Info: ... okay on input line 11. +LaTeX Font Info: Checking defaults for OMX/txex/m/n on input line 11. +LaTeX Font Info: Trying to load font information for OMX+txex on input line +11. + +(c:/texlive/2019/texmf-dist/tex/latex/txfonts/omxtxex.fd +File: omxtxex.fd 2000/12/15 v3.1 +) +LaTeX Font Info: ... okay on input line 11. +LaTeX Font Info: Checking defaults for U/txexa/m/n on input line 11. +LaTeX Font Info: Trying to load font information for U+txexa on input line 1 +1. + +(c:/texlive/2019/texmf-dist/tex/latex/txfonts/utxexa.fd +File: utxexa.fd 2000/12/15 v3.1 +) +LaTeX Font Info: ... okay on input line 11. +LaTeX Font Info: Trying to load font information for TU+txr on input line 11 +. +LaTeX Font Info: No file TUtxr.fd. on input line 11. + + +LaTeX Font Warning: Font shape `TU/txr/m/n' undefined +(Font) using `TU/lmr/m/n' instead on input line 11. + +ABD: EveryShipout initializing macros + +Package pgfplots Warning: running in backwards compatibility mode (unsuitable t +ick labels; missing features). Consider writing \pgfplotsset{compat=1.16} into +your preamble. + on input line 11. + +LaTeX Font Info: Trying to load font information for OT1+txr on input line 2 +6. +(c:/texlive/2019/texmf-dist/tex/latex/txfonts/ot1txr.fd +File: ot1txr.fd 2000/12/15 v3.1 +) +LaTeX Font Info: Trying to load font information for U+txmia on input line 2 +6. + +(c:/texlive/2019/texmf-dist/tex/latex/txfonts/utxmia.fd +File: utxmia.fd 2000/12/15 v3.1 +) +LaTeX Font Info: Trying to load font information for U+txsya on input line 2 +6. + +(c:/texlive/2019/texmf-dist/tex/latex/txfonts/utxsya.fd +File: utxsya.fd 2000/12/15 v3.1 +) +LaTeX Font Info: Trying to load font information for U+txsyb on input line 2 +6. + +(c:/texlive/2019/texmf-dist/tex/latex/txfonts/utxsyb.fd +File: utxsyb.fd 2000/12/15 v3.1 +) +LaTeX Font Info: Trying to load font information for U+txsyc on input line 2 +6. + +(c:/texlive/2019/texmf-dist/tex/latex/txfonts/utxsyc.fd +File: utxsyc.fd 2000/12/15 v3.1 +) [1 + +] (./polynom2.aux) + +LaTeX Font Warning: Some font shapes were not available, defaults substituted. + + ) +Here is how much of TeX's memory you used: + 25292 strings out of 492483 + 638772 string characters out of 6132858 + 794987 words of memory out of 5000000 + 29364 multiletter control sequences out of 15000+600000 + 13575 words of font info for 45 fonts, out of 8000000 for 9000 + 1348 hyphenation exceptions out of 8191 + 68i,6n,98p,840b,724s stack positions out of 5000i,500n,10000p,200000b,80000s + +Output written on polynom2.pdf (1 page). diff --git a/buch/papers/reedsolomon/RS presentation/images/polynom2.pdf b/buch/papers/reedsolomon/RS presentation/images/polynom2.pdf new file mode 100644 index 0000000..05f4ba0 Binary files /dev/null and b/buch/papers/reedsolomon/RS presentation/images/polynom2.pdf differ diff --git a/buch/papers/reedsolomon/RS presentation/images/polynom2.synctex.gz b/buch/papers/reedsolomon/RS presentation/images/polynom2.synctex.gz new file mode 100644 index 0000000..24859aa Binary files /dev/null and b/buch/papers/reedsolomon/RS presentation/images/polynom2.synctex.gz differ diff --git a/buch/papers/reedsolomon/RS presentation/images/polynom2.tex b/buch/papers/reedsolomon/RS presentation/images/polynom2.tex new file mode 100644 index 0000000..aa792ce --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/images/polynom2.tex @@ -0,0 +1,57 @@ +% polynome2 +%------------------- +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math} +\newcommand{\teiler}{40} +\begin{document} + %Übertragen von den Zahlen + %\textcolor{blue}{2}, \textcolor{blue}{1}, \textcolor{blue}{5} + %als $ p(x) = \textcolor{blue}{2}x^2 + \textcolor{blue}{1}x + \textcolor{blue}{5} $.\newline + %Versende $ (p(1),p(2),...,p(7)) = (\textcolor{green}{8}, + % \textcolor{green}{15}, \textcolor{green}{26}, + % \textcolor{green}{ 41}, \textcolor{green}{60}, + % \textcolor{green}{83}, \textcolor{green}{110})$ + + + \begin{tikzpicture}[>=latex,thick] + + \draw[color=blue, line width=1.4pt] + plot[domain=0:8, samples=100] + ({\x},{(2*\x^2+1*\x+5)/\teiler}); + \draw[->] (-0.2,0) -- (8,0) coordinate[label={$x$}]; + \draw[->] (0,-0.2) -- (0,150/\teiler) coordinate[label={right:$p(x)$}]; + \def\punkt#1{ + \fill[color=green] #1 circle[radius=0.08]; + \draw #1 circle[radius=0.07]; + } + \punkt{(1,8/\teiler)} + %\punkt{(2,15/\teiler)} + %\punkt{(3,26/\teiler)} + \punkt{(4,41/\teiler)} + \punkt{(5,60/\teiler)} + \punkt{(6,83/\teiler)} + \punkt{(7,110/\teiler)} + \draw[color=gray,line width=1pt,dashed] + plot[domain=0.5:7, samples=100] + ({\x},{(0.1958*\x^2-1.2875*\x+3.0417)}); + \def\erpunkt#1{ + \fill[color=red] #1 circle[radius=0.08]; + \draw #1 circle[radius=0.07]; + } + \erpunkt{(2,50/\teiler)} + \erpunkt{(3,0.9414)} + + + \draw(0,100/\teiler) -- (-0.1,100/\teiler) coordinate[label={left:$100$}]; + \draw(1,0) -- (1,-0.1) coordinate[label={below:$1$}]; + + + + + \end{tikzpicture} +\end{document} -- cgit v1.2.1 From 10f3cdb829c001c341ea31415efb44ff6a2878b8 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Wed, 21 Apr 2021 17:30:50 +0200 Subject: Persentation stand 17:30 --- buch/papers/reedsolomon/RS presentation/RS.aux | 37 +++++- buch/papers/reedsolomon/RS presentation/RS.log | 145 +++++++++++---------- buch/papers/reedsolomon/RS presentation/RS.nav | 26 +++- buch/papers/reedsolomon/RS presentation/RS.out | 4 +- buch/papers/reedsolomon/RS presentation/RS.pdf | Bin 117082 -> 132691 bytes buch/papers/reedsolomon/RS presentation/RS.snm | 1 + .../reedsolomon/RS presentation/RS.synctex.gz | Bin 6763 -> 19501 bytes buch/papers/reedsolomon/RS presentation/RS.tex | 109 ++++++++++++++-- buch/papers/reedsolomon/RS presentation/RS.toc | 4 +- 9 files changed, 235 insertions(+), 91 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/RS presentation/RS.aux b/buch/papers/reedsolomon/RS presentation/RS.aux index fff632d..6294c05 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.aux +++ b/buch/papers/reedsolomon/RS presentation/RS.aux @@ -22,10 +22,10 @@ \@writefile{nav}{\headcommand {\slideentry {0}{0}{1}{1/1}{}{0}}} \@writefile{nav}{\headcommand {\beamer@framepages {1}{1}}} \HyPL@Entry{1<>} -\@writefile{toc}{\beamer@sectionintoc {1}{Introduction}{2}{0}{1}} +\@writefile{toc}{\beamer@sectionintoc {1}{Einführung}{2}{0}{1}} \@writefile{nav}{\headcommand {\beamer@sectionpages {1}{1}}} \@writefile{nav}{\headcommand {\beamer@subsectionpages {1}{1}}} -\@writefile{nav}{\headcommand {\sectionentry {1}{Introduction}{2}{Introduction}{0}}} +\@writefile{nav}{\headcommand {\sectionentry {1}{Einführung}{2}{Einführung}{0}}} \@writefile{nav}{\headcommand {\slideentry {1}{0}{1}{2/2}{}{0}}} \@writefile{nav}{\headcommand {\beamer@framepages {2}{2}}} \HyPL@Entry{2<>} @@ -34,8 +34,33 @@ \HyPL@Entry{9<>} \@writefile{nav}{\headcommand {\slideentry {1}{0}{3}{10/11}{}{0}}} \@writefile{nav}{\headcommand {\beamer@framepages {10}{11}}} -\@writefile{nav}{\headcommand {\beamer@partpages {1}{11}}} -\@writefile{nav}{\headcommand {\beamer@subsectionpages {2}{11}}} +\HyPL@Entry{11<>} +\@writefile{toc}{\beamer@sectionintoc {2}{Polynom Ansatz}{12}{0}{2}} \@writefile{nav}{\headcommand {\beamer@sectionpages {2}{11}}} -\@writefile{nav}{\headcommand {\beamer@documentpages {11}}} -\@writefile{nav}{\headcommand {\gdef \inserttotalframenumber {4}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {2}{11}}} +\@writefile{nav}{\headcommand {\sectionentry {2}{Polynom Ansatz}{12}{Polynom Ansatz}{0}}} +\@writefile{snm}{\beamer@slide {ft_discrete}{12}} +\newlabel{ft_discrete}{{5}{12}{Polynom Ansatz}{Doc-Start}{}} +\@writefile{nav}{\headcommand {\slideentry {2}{0}{1}{12/12}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {12}{12}}} +\HyPL@Entry{12<>} +\@writefile{nav}{\headcommand {\slideentry {2}{0}{2}{13/13}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {13}{13}}} +\HyPL@Entry{13<>} +\@writefile{nav}{\headcommand {\slideentry {2}{0}{3}{14/15}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {14}{15}}} +\HyPL@Entry{15<>} +\@writefile{nav}{\headcommand {\slideentry {2}{0}{4}{16/16}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {16}{16}}} +\HyPL@Entry{16<>} +\@writefile{toc}{\beamer@sectionintoc {3}{Diskrete Fourien Transformation}{17}{0}{3}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {12}{16}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {12}{16}}} +\@writefile{nav}{\headcommand {\sectionentry {3}{Diskrete Fourien Transformation}{17}{Diskrete Fourien Transformation}{0}}} +\@writefile{nav}{\headcommand {\slideentry {3}{0}{1}{17/17}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {17}{17}}} +\@writefile{nav}{\headcommand {\beamer@partpages {1}{17}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {17}{17}}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {17}{17}}} +\@writefile{nav}{\headcommand {\beamer@documentpages {17}}} +\@writefile{nav}{\headcommand {\gdef \inserttotalframenumber {9}}} diff --git a/buch/papers/reedsolomon/RS presentation/RS.log b/buch/papers/reedsolomon/RS presentation/RS.log index 824b9b5..342b031 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.log +++ b/buch/papers/reedsolomon/RS presentation/RS.log @@ -1,4 +1,4 @@ -This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019/W32TeX) (preloaded format=xelatex 2019.10.25) 21 APR 2021 12:30 +This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019/W32TeX) (preloaded format=xelatex 2019.10.25) 21 APR 2021 17:27 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -972,13 +972,61 @@ Package hyperref Warning: Option `pdfsubject' has already been used, [1 -] [2 +] +LaTeX Font Info: Trying to load font information for OT1+lmss on input line +31. + (c:/texlive/2019/texmf-dist/tex/latex/lm/ot1lmss.fd +File: ot1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Trying to load font information for OML+lmm on input line 3 +1. + +(c:/texlive/2019/texmf-dist/tex/latex/lm/omllmm.fd +File: omllmm.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Trying to load font information for OMS+lmsy on input line +31. + +(c:/texlive/2019/texmf-dist/tex/latex/lm/omslmsy.fd +File: omslmsy.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Trying to load font information for OMX+lmex on input line +31. + +(c:/texlive/2019/texmf-dist/tex/latex/lm/omxlmex.fd +File: omxlmex.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <10.95> on input line 31. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <8> on input line 31. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <6> on input line 31. +LaTeX Font Info: Trying to load font information for U+msa on input line 31. + + +(c:/texlive/2019/texmf-dist/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2013/01/14 v3.01 AMS symbols A +) +LaTeX Font Info: Trying to load font information for U+msb on input line 31. + + +(c:/texlive/2019/texmf-dist/tex/latex/amsfonts/umsb.fd +File: umsb.fd 2013/01/14 v3.01 AMS symbols B +) +LaTeX Font Info: Font shape `T1/lmss/m/it' in size <10.95> not available +(Font) Font shape `T1/lmss/m/sl' tried instead on input line 31. +LaTeX Font Info: Font shape `T1/lmss/m/it' in size <8> not available +(Font) Font shape `T1/lmss/m/sl' tried instead on input line 31. +LaTeX Font Info: Font shape `T1/lmss/m/it' in size <6> not available +(Font) Font shape `T1/lmss/m/sl' tried instead on input line 31. + [2 ] File: images/fig1.pdf Graphic file (type pdf) -Overfull \vbox (14.63716pt too high) detected at line 52 +Overfull \vbox (14.63716pt too high) detected at line 57 [] [3 @@ -987,7 +1035,7 @@ Overfull \vbox (14.63716pt too high) detected at line 52 File: images/fig2.pdf Graphic file (type pdf) -Overfull \vbox (14.63716pt too high) detected at line 52 +Overfull \vbox (14.63716pt too high) detected at line 57 [] [4 @@ -996,7 +1044,7 @@ Overfull \vbox (14.63716pt too high) detected at line 52 File: images/fig3.pdf Graphic file (type pdf) -Overfull \vbox (14.63716pt too high) detected at line 52 +Overfull \vbox (14.63716pt too high) detected at line 57 [] [5 @@ -1005,7 +1053,7 @@ Overfull \vbox (14.63716pt too high) detected at line 52 File: images/fig4.pdf Graphic file (type pdf) -Overfull \vbox (14.63716pt too high) detected at line 52 +Overfull \vbox (14.63716pt too high) detected at line 57 [] [6 @@ -1014,7 +1062,7 @@ Overfull \vbox (14.63716pt too high) detected at line 52 File: images/fig5.pdf Graphic file (type pdf) -Overfull \vbox (14.63716pt too high) detected at line 52 +Overfull \vbox (14.63716pt too high) detected at line 57 [] [7 @@ -1023,7 +1071,7 @@ Overfull \vbox (14.63716pt too high) detected at line 52 File: images/fig6.pdf Graphic file (type pdf) -Overfull \vbox (14.63716pt too high) detected at line 52 +Overfull \vbox (14.63716pt too high) detected at line 57 [] [8 @@ -1032,67 +1080,32 @@ Overfull \vbox (14.63716pt too high) detected at line 52 File: images/fig7.pdf Graphic file (type pdf) -Overfull \vbox (14.63716pt too high) detected at line 52 +Overfull \vbox (14.63716pt too high) detected at line 57 [] [9 -] -LaTeX Font Info: Trying to load font information for OT1+lmss on input line -66. - (c:/texlive/2019/texmf-dist/tex/latex/lm/ot1lmss.fd -File: ot1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern -) -LaTeX Font Info: Trying to load font information for OML+lmm on input line 6 -6. - -(c:/texlive/2019/texmf-dist/tex/latex/lm/omllmm.fd -File: omllmm.fd 2009/10/30 v1.6 Font defs for Latin Modern -) -LaTeX Font Info: Trying to load font information for OMS+lmsy on input line -66. - -(c:/texlive/2019/texmf-dist/tex/latex/lm/omslmsy.fd -File: omslmsy.fd 2009/10/30 v1.6 Font defs for Latin Modern -) -LaTeX Font Info: Trying to load font information for OMX+lmex on input line -66. - -(c:/texlive/2019/texmf-dist/tex/latex/lm/omxlmex.fd -File: omxlmex.fd 2009/10/30 v1.6 Font defs for Latin Modern -) -LaTeX Font Info: External font `lmex10' loaded for size -(Font) <10.95> on input line 66. -LaTeX Font Info: External font `lmex10' loaded for size -(Font) <8> on input line 66. -LaTeX Font Info: External font `lmex10' loaded for size -(Font) <6> on input line 66. -LaTeX Font Info: Trying to load font information for U+msa on input line 66. +] [10 +] [11 -(c:/texlive/2019/texmf-dist/tex/latex/amsfonts/umsa.fd -File: umsa.fd 2013/01/14 v3.01 AMS symbols A -) -LaTeX Font Info: Trying to load font information for U+msb on input line 66. +] [12 +] [13 -(c:/texlive/2019/texmf-dist/tex/latex/amsfonts/umsb.fd -File: umsb.fd 2013/01/14 v3.01 AMS symbols B -) -LaTeX Font Info: Font shape `T1/lmss/m/it' in size <10.95> not available -(Font) Font shape `T1/lmss/m/sl' tried instead on input line 66. -LaTeX Font Info: Font shape `T1/lmss/m/it' in size <8> not available -(Font) Font shape `T1/lmss/m/sl' tried instead on input line 66. -LaTeX Font Info: Font shape `T1/lmss/m/it' in size <6> not available -(Font) Font shape `T1/lmss/m/sl' tried instead on input line 66. +] File: images/polynom1.pdf Graphic file (type pdf) - [10 + [14 ] File: images/polynom2.pdf Graphic file (type pdf) - [11 + [15 + +] [16 + +] [17 ] \tf@nav=\write6 @@ -1104,21 +1117,21 @@ File: images/polynom2.pdf Graphic file (type pdf) \tf@snm=\write8 \openout8 = `RS.snm'. -Package atveryend Info: Empty hook `BeforeClearDocument' on input line 68. -Package atveryend Info: Empty hook `AfterLastShipout' on input line 68. +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 154. +Package atveryend Info: Empty hook `AfterLastShipout' on input line 154. (./RS.aux) -Package atveryend Info: Empty hook `AtVeryEndDocument' on input line 68. -Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 68. +Package atveryend Info: Empty hook `AtVeryEndDocument' on input line 154. +Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 154. Package rerunfilecheck Info: File `RS.out' has not changed. -(rerunfilecheck) Checksum: 4CA0FF56E3EE124326A4720E136735D1. +(rerunfilecheck) Checksum: 488F938CBAD5E8FAC29F906360775E5F. ) Here is how much of TeX's memory you used: - 24329 strings out of 492483 - 450480 string characters out of 6132858 - 528380 words of memory out of 5000000 - 28307 multiletter control sequences out of 15000+600000 + 24397 strings out of 492483 + 452001 string characters out of 6132858 + 533692 words of memory out of 5000000 + 28375 multiletter control sequences out of 15000+600000 37892 words of font info for 41 fonts, out of 8000000 for 9000 1348 hyphenation exceptions out of 8191 - 58i,15n,57p,796b,539s stack positions out of 5000i,500n,10000p,200000b,80000s + 58i,15n,61p,796b,549s stack positions out of 5000i,500n,10000p,200000b,80000s -Output written on RS.pdf (11 pages). +Output written on RS.pdf (17 pages). diff --git a/buch/papers/reedsolomon/RS presentation/RS.nav b/buch/papers/reedsolomon/RS presentation/RS.nav index 3edba3c..22ae94a 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.nav +++ b/buch/papers/reedsolomon/RS presentation/RS.nav @@ -2,15 +2,31 @@ \headcommand {\beamer@framepages {1}{1}} \headcommand {\beamer@sectionpages {1}{1}} \headcommand {\beamer@subsectionpages {1}{1}} -\headcommand {\sectionentry {1}{Introduction}{2}{Introduction}{0}} +\headcommand {\sectionentry {1}{Einführung}{2}{Einführung}{0}} \headcommand {\slideentry {1}{0}{1}{2/2}{}{0}} \headcommand {\beamer@framepages {2}{2}} \headcommand {\slideentry {1}{0}{2}{3/9}{}{0}} \headcommand {\beamer@framepages {3}{9}} \headcommand {\slideentry {1}{0}{3}{10/11}{}{0}} \headcommand {\beamer@framepages {10}{11}} -\headcommand {\beamer@partpages {1}{11}} -\headcommand {\beamer@subsectionpages {2}{11}} \headcommand {\beamer@sectionpages {2}{11}} -\headcommand {\beamer@documentpages {11}} -\headcommand {\gdef \inserttotalframenumber {4}} +\headcommand {\beamer@subsectionpages {2}{11}} +\headcommand {\sectionentry {2}{Polynom Ansatz}{12}{Polynom Ansatz}{0}} +\headcommand {\slideentry {2}{0}{1}{12/12}{}{0}} +\headcommand {\beamer@framepages {12}{12}} +\headcommand {\slideentry {2}{0}{2}{13/13}{}{0}} +\headcommand {\beamer@framepages {13}{13}} +\headcommand {\slideentry {2}{0}{3}{14/15}{}{0}} +\headcommand {\beamer@framepages {14}{15}} +\headcommand {\slideentry {2}{0}{4}{16/16}{}{0}} +\headcommand {\beamer@framepages {16}{16}} +\headcommand {\beamer@sectionpages {12}{16}} +\headcommand {\beamer@subsectionpages {12}{16}} +\headcommand {\sectionentry {3}{Diskrete Fourien Transformation}{17}{Diskrete Fourien Transformation}{0}} +\headcommand {\slideentry {3}{0}{1}{17/17}{}{0}} +\headcommand {\beamer@framepages {17}{17}} +\headcommand {\beamer@partpages {1}{17}} +\headcommand {\beamer@subsectionpages {17}{17}} +\headcommand {\beamer@sectionpages {17}{17}} +\headcommand {\beamer@documentpages {17}} +\headcommand {\gdef \inserttotalframenumber {9}} diff --git a/buch/papers/reedsolomon/RS presentation/RS.out b/buch/papers/reedsolomon/RS presentation/RS.out index dec2d7d..597a5f8 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.out +++ b/buch/papers/reedsolomon/RS presentation/RS.out @@ -1 +1,3 @@ -\BOOKMARK [2][]{Outline0.1}{Introduction}{}% 1 +\BOOKMARK [2][]{Outline0.1}{Einführung}{}% 1 +\BOOKMARK [2][]{Outline0.2}{Polynom\040Ansatz}{}% 2 +\BOOKMARK [2][]{Outline0.3}{Diskrete\040Fourien\040Transformation}{}% 3 diff --git a/buch/papers/reedsolomon/RS presentation/RS.pdf b/buch/papers/reedsolomon/RS presentation/RS.pdf index 10719b7..f49671f 100644 Binary files a/buch/papers/reedsolomon/RS presentation/RS.pdf and b/buch/papers/reedsolomon/RS presentation/RS.pdf differ diff --git a/buch/papers/reedsolomon/RS presentation/RS.snm b/buch/papers/reedsolomon/RS presentation/RS.snm index e69de29..8b82641 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.snm +++ b/buch/papers/reedsolomon/RS presentation/RS.snm @@ -0,0 +1 @@ +\beamer@slide {ft_discrete}{12} diff --git a/buch/papers/reedsolomon/RS presentation/RS.synctex.gz b/buch/papers/reedsolomon/RS presentation/RS.synctex.gz index 2fe95de..96af4cc 100644 Binary files a/buch/papers/reedsolomon/RS presentation/RS.synctex.gz and b/buch/papers/reedsolomon/RS presentation/RS.synctex.gz differ diff --git a/buch/papers/reedsolomon/RS presentation/RS.tex b/buch/papers/reedsolomon/RS presentation/RS.tex index fb822da..9bdf947 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.tex +++ b/buch/papers/reedsolomon/RS presentation/RS.tex @@ -19,10 +19,15 @@ \begin{frame}[plain] \maketitle \end{frame} - \section{Introduction} + \section{Einführung} \begin{frame} \frametitle{Idee} - + \begin{itemize} + \item Reed-Solomon-Code beschäftigt sich mit der Übertragung von Daten + und deren Fehler Erkennung. + \item Idee Fourier Transformieren und dann senden. + \item Danach Empfangen und Rücktransformieren. + \end{itemize} \end{frame} \begin{frame} @@ -50,20 +55,100 @@ } \end{figure} \end{frame} + \begin{frame} - Übertragen von den Zahlen - \textcolor{blue}{2}, \textcolor{blue}{1}, \textcolor{blue}{5} - als $ p(x) = \textcolor{blue}{2}x^2 + \textcolor{blue}{1}x + \textcolor{blue}{5} $.\newline - Versende $ (p(1),p(2),...,p(7)) = (\textcolor{green}{8}, - \textcolor{green}{15}, \textcolor{green}{26}, - \textcolor{green}{ 41}, \textcolor{green}{60}, - \textcolor{green}{83}, \textcolor{green}{110})$ + \uncover<1->{ + Wie ist die Anzahl 0 definiert zum mitgeben? + Indem die Polymereigenschaft genutzt werden. + } + \uncover<2->{ + Wie wird der Fehler lokalisiert? + Indem in einem Endlichen Körper gerechnet wird. + } + + \end{frame} + +\section{Polynom Ansatz} + \begin{frame} + Die Diskrite Fouren Transformation ist so gegeben + \[ + \label{ft_discrete} + \hat{c}_{k} + = \frac{1}{N} \sum_{n=0}^{N-1} + {f}_n \cdot e^{-\frac{2\pi j}{N} \cdot kn} + \]. + + \[ + w = e^{-\frac{2\pi j}{N} k} + \] + Wenn $N$ konstant: + \[ + \hat{c}_{k}=\frac{1}{N}( {f}_0 w^0 + {f}_1 w^1 + {f}_2 w^2 + \dots + {f}_{N-1} w^N) + \] + \end{frame} + + \begin{frame} + Beispiel 2, 1, 5 Versenden und auf 2 Fehler absichern. + \end{frame} + \begin{frame} + Übertragen von + ${f}_2=$\textcolor{blue}{2}, ${f}_1$\textcolor{blue}{1}, ${f}_0$\textcolor{blue}{5} + als $ p(w) = \textcolor{blue}{2}w^2 + \textcolor{blue}{1}w + \textcolor{blue}{5} $. + \only<1>{ - \includegraphics[]{images/polynom1.pdf}} + Versende $ (p(1),p(2),...,p(7)) = (\textcolor{green}{8}, + \textcolor{green}{15}, \textcolor{green}{26}, + \textcolor{green}{ 41}, \textcolor{green}{60}, + \textcolor{green}{83}, \textcolor{green}{110})$ + \includegraphics[scale = 1.2]{images/polynom1.pdf}} \only<2>{ - \includegraphics[]{images/polynom2.pdf}} + Versende $ (p(1),p(2),...,p(7)) = (\textcolor{green}{8}, + \textcolor{red}{50}, \textcolor{red}{37}, + \textcolor{green}{ 41}, \textcolor{green}{60}, + \textcolor{green}{83}, \textcolor{green}{110})$ + \includegraphics[scale = 1.2]{images/polynom2.pdf} + \textcolor{green}{7} Zahlen versenden, um \textcolor{blue}{3} Zahlen gegen \textcolor{red}{2} Fehlern abzusichern.} + \end{frame} + + \begin{frame} + \frametitle{Parameter} + \begin{center} + \begin{tabular}{ c c c } + \hline + "Nutzlast" & Fehler & Versenden \\ + \hline + 3 & 2 & 7 Werte eines Polynoms vom Grad 2 \\ + 4 & 2 & 8 Werte eines Polynoms vom Grad 3 \\ + 3 & 2 & 7 Werte eines Polynoms vom Grad 2 \\ + &&\\ + k & t & k+2t Werte eines Polynoms vom Grad k-1 \\ + \hline + \end{tabular} + \end{center} + \end{frame} +\section{Diskrete Fourien Transformation} + \begin{frame} + \[ + \begin{pmatrix} + \hat{c}_1 \\\hat{c}_2 \\\hat{c}_3 \\ \vdots \\\hat{c}_n + \end{pmatrix} + = + \begin{pmatrix} + w^0 & w^0 & w^0 & \dots &w^0 \\ + w^0 & w^1 &w^2 & \dots &w^n \\ + w^0 & w^2 &w^4 & \dots &w^{2n} \\ + \vdots & \vdots &\vdots &\ddots &\vdots \\ + w^0 & w^{1n}&w^{2n}& \dots &w^{n} \\ + \end{pmatrix} + \begin{pmatrix} + \textcolor{blue}{5} \\ + \textcolor{blue}{1} \\ + \textcolor{blue}{2} \\ + \vdots \\ + 0 \\ + \end{pmatrix} + \] \end{frame} - \end{document} \ No newline at end of file diff --git a/buch/papers/reedsolomon/RS presentation/RS.toc b/buch/papers/reedsolomon/RS presentation/RS.toc index 32e7e8d..ff200c6 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.toc +++ b/buch/papers/reedsolomon/RS presentation/RS.toc @@ -1,2 +1,4 @@ \babel@toc {ngerman}{} -\beamer@sectionintoc {1}{Introduction}{2}{0}{1} +\beamer@sectionintoc {1}{Einführung}{2}{0}{1} +\beamer@sectionintoc {2}{Polynom Ansatz}{12}{0}{2} +\beamer@sectionintoc {3}{Diskrete Fourien Transformation}{17}{0}{3} -- cgit v1.2.1 From 7c0937851938305c2bb760f3cd4c2084c4493217 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Wed, 21 Apr 2021 18:18:22 +0200 Subject: Presentation neu arangiert --- buch/papers/reedsolomon/RS presentation/RS.tex | 186 +++++++++++++------------ 1 file changed, 96 insertions(+), 90 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/RS presentation/RS.tex b/buch/papers/reedsolomon/RS presentation/RS.tex index 9bdf947..1a1cefd 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.tex +++ b/buch/papers/reedsolomon/RS presentation/RS.tex @@ -21,12 +21,60 @@ \end{frame} \section{Einführung} \begin{frame} - \frametitle{Idee} + \frametitle{Einführung} \begin{itemize} \item Reed-Solomon-Code beschäftigt sich mit der Übertragung von Daten und deren Fehler Erkennung. - \item Idee Fourier Transformieren und dann senden. - \item Danach Empfangen und Rücktransformieren. + \end{itemize} + \end{frame} +\section{Polynom Ansatz} + \begin{frame} + Beispiel 2, 1, 5 Versenden und auf 2 Fehler absichern. + \end{frame} + \begin{frame} + Übertragen von + ${f}_2=$\textcolor{blue}{2}, ${f}_1$\textcolor{blue}{1}, ${f}_0$\textcolor{blue}{5} + als $ p(w) = \textcolor{blue}{2}w^2 + \textcolor{blue}{1}w + \textcolor{blue}{5} $. + + \only<1>{ + Versende $ (p(1),p(2),...,p(7)) = (\textcolor{green}{8}, + \textcolor{green}{15}, \textcolor{green}{26}, + \textcolor{green}{ 41}, \textcolor{green}{60}, + \textcolor{green}{83}, \textcolor{green}{110})$ + \includegraphics[scale = 1.2]{images/polynom1.pdf}} + \only<2>{ + Versende $ (p(1),p(2),...,p(7)) = (\textcolor{green}{8}, + \textcolor{red}{50}, \textcolor{red}{37}, + \textcolor{green}{ 41}, \textcolor{green}{60}, + \textcolor{green}{83}, \textcolor{green}{110})$ + \includegraphics[scale = 1.2]{images/polynom2.pdf} + \textcolor{green}{7} Zahlen versenden, um \textcolor{blue}{3} Zahlen gegen \textcolor{red}{2} Fehlern abzusichern.} + \end{frame} + + \begin{frame} + \frametitle{Parameter} + \begin{center} + \begin{tabular}{ c c c } + \hline + "Nutzlast" & Fehler & Versenden \\ + \hline + 3 & 2 & 7 Werte eines Polynoms vom Grad 2 \\ + 4 & 2 & 8 Werte eines Polynoms vom Grad 3 \\ + 3 & 2 & 7 Werte eines Polynoms vom Grad 2 \\ + &&\\ + k & t & k+2t Werte eines Polynoms vom Grad k-1 \\ + \hline + \end{tabular} + \end{center} + + Ausserdem können bis zu 2t Fehler erkannt werden! + \end{frame} +\section{Fourier Transformation} + \begin{frame} + \frametitle{Idee} + \begin{itemize} + \item Idee mit Fourier Transformieren und dann senden. + \item Danach Empfangen und Rücktransformieren. \end{itemize} \end{frame} @@ -56,99 +104,57 @@ \end{figure} \end{frame} - +\section{Diskrete Fourier Transformation} \begin{frame} - \uncover<1->{ - Wie ist die Anzahl 0 definiert zum mitgeben? - Indem die Polymereigenschaft genutzt werden. - } - \uncover<2->{ - Wie wird der Fehler lokalisiert? - Indem in einem Endlichen Körper gerechnet wird. - } - + \frametitle{Diskrete Fourier Transformation} + Die Diskrete Fourier Transformation ist so gegeben: + \[ + \label{ft_discrete} + \hat{c}_{k} + = \frac{1}{N} \sum_{n=0}^{N-1} + {f}_n \cdot e^{-\frac{2\pi j}{N} \cdot kn} + \]. + + \[ + w = e^{-\frac{2\pi j}{N} k} + \] + Wenn $N$ konstant: + \[ + \hat{c}_{k}=\frac{1}{N}( {f}_0 w^0 + {f}_1 w^1 + {f}_2 w^2 + \dots + {f}_{N-1} w^N) + \] \end{frame} -\section{Polynom Ansatz} - \begin{frame} - Die Diskrite Fouren Transformation ist so gegeben - \[ - \label{ft_discrete} - \hat{c}_{k} - = \frac{1}{N} \sum_{n=0}^{N-1} - {f}_n \cdot e^{-\frac{2\pi j}{N} \cdot kn} - \]. - - \[ - w = e^{-\frac{2\pi j}{N} k} - \] - Wenn $N$ konstant: - \[ - \hat{c}_{k}=\frac{1}{N}( {f}_0 w^0 + {f}_1 w^1 + {f}_2 w^2 + \dots + {f}_{N-1} w^N) - \] - \end{frame} - - \begin{frame} - Beispiel 2, 1, 5 Versenden und auf 2 Fehler absichern. - \end{frame} - \begin{frame} - Übertragen von - ${f}_2=$\textcolor{blue}{2}, ${f}_1$\textcolor{blue}{1}, ${f}_0$\textcolor{blue}{5} - als $ p(w) = \textcolor{blue}{2}w^2 + \textcolor{blue}{1}w + \textcolor{blue}{5} $. - \only<1>{ - Versende $ (p(1),p(2),...,p(7)) = (\textcolor{green}{8}, - \textcolor{green}{15}, \textcolor{green}{26}, - \textcolor{green}{ 41}, \textcolor{green}{60}, - \textcolor{green}{83}, \textcolor{green}{110})$ - \includegraphics[scale = 1.2]{images/polynom1.pdf}} - \only<2>{ - Versende $ (p(1),p(2),...,p(7)) = (\textcolor{green}{8}, - \textcolor{red}{50}, \textcolor{red}{37}, - \textcolor{green}{ 41}, \textcolor{green}{60}, - \textcolor{green}{83}, \textcolor{green}{110})$ - \includegraphics[scale = 1.2]{images/polynom2.pdf} - \textcolor{green}{7} Zahlen versenden, um \textcolor{blue}{3} Zahlen gegen \textcolor{red}{2} Fehlern abzusichern.} - \end{frame} - - \begin{frame} - \frametitle{Parameter} - \begin{center} - \begin{tabular}{ c c c } - \hline - "Nutzlast" & Fehler & Versenden \\ - \hline - 3 & 2 & 7 Werte eines Polynoms vom Grad 2 \\ - 4 & 2 & 8 Werte eines Polynoms vom Grad 3 \\ - 3 & 2 & 7 Werte eines Polynoms vom Grad 2 \\ - &&\\ - k & t & k+2t Werte eines Polynoms vom Grad k-1 \\ - \hline - \end{tabular} - \end{center} - \end{frame} -\section{Diskrete Fourien Transformation} \begin{frame} + \frametitle{Diskrete Fourier Transformation} \[ - \begin{pmatrix} - \hat{c}_1 \\\hat{c}_2 \\\hat{c}_3 \\ \vdots \\\hat{c}_n - \end{pmatrix} - = - \begin{pmatrix} - w^0 & w^0 & w^0 & \dots &w^0 \\ - w^0 & w^1 &w^2 & \dots &w^n \\ - w^0 & w^2 &w^4 & \dots &w^{2n} \\ - \vdots & \vdots &\vdots &\ddots &\vdots \\ - w^0 & w^{1n}&w^{2n}& \dots &w^{n} \\ - \end{pmatrix} - \begin{pmatrix} - \textcolor{blue}{5} \\ - \textcolor{blue}{1} \\ - \textcolor{blue}{2} \\ - \vdots \\ - 0 \\ - \end{pmatrix} + \begin{pmatrix} + \hat{c}_1 \\\hat{c}_2 \\\hat{c}_3 \\ \vdots \\\hat{c}_n + \end{pmatrix} + = + \begin{pmatrix} + w^0 & w^0 & w^0 & \dots &w^0 \\ + w^0 & w^1 &w^2 & \dots &w^n \\ + w^0 & w^2 &w^4 & \dots &w^{2n} \\ + \vdots & \vdots &\vdots &\ddots &\vdots \\ + w^0 & w^{1n}&w^{2n}& \dots &w^{n} \\ + \end{pmatrix} + \begin{pmatrix} + \textcolor{blue}{f_0} \\ + \textcolor{blue}{f_1} \\ + \textcolor{blue}{f_2} \\ + \vdots \\ + 0 \\ + \end{pmatrix} \] \end{frame} - +\section{Probleme und Fragen} + \begin{frame} + \frametitle{Probleme und Fragen} + + Wie wird der Fehler lokalisiert? + \only<2>{ + Indem in einem Endlichen Körper gerechnet wird. + } + \end{frame} \end{document} \ No newline at end of file -- cgit v1.2.1 From 264bd585ba37fcf0a8fed6c83b38edfe2495daef Mon Sep 17 00:00:00 2001 From: JODBaer Date: Wed, 21 Apr 2021 18:19:54 +0200 Subject: gitignor angepasst --- buch/papers/reedsolomon/.gitignor | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/.gitignor b/buch/papers/reedsolomon/.gitignor index 466d238..52a02ac 100644 --- a/buch/papers/reedsolomon/.gitignor +++ b/buch/papers/reedsolomon/.gitignor @@ -1,15 +1,15 @@ -RS*.aux -RS*.bbl -RS*.bib -RS*.blg -RS*.idx -RS*.ilg -RS*.ind -RS*.log -RS*.out -RS*.pdf -RS*.run.xml -RS*.toc +RS.aux +RS.bbl +RS.bib +RS.blg +RS.idx +RS.ilg +RS.ind +RS.log +RS.out +RS.pdf +RS.run.xml +RS.toc *.aux *.lof *.log -- cgit v1.2.1 From 66a49562a720d4aae3b89603589df79abd0962cd Mon Sep 17 00:00:00 2001 From: JODBaer Date: Wed, 21 Apr 2021 18:20:24 +0200 Subject: automatisch generierte Files --- buch/papers/reedsolomon/RS presentation/RS.aux | 79 +++++++------- buch/papers/reedsolomon/RS presentation/RS.log | 113 +++++++++++---------- buch/papers/reedsolomon/RS presentation/RS.nav | 56 +++++----- buch/papers/reedsolomon/RS presentation/RS.out | 4 +- buch/papers/reedsolomon/RS presentation/RS.pdf | Bin 132691 -> 135643 bytes buch/papers/reedsolomon/RS presentation/RS.snm | 2 +- .../reedsolomon/RS presentation/RS.synctex.gz | Bin 19501 -> 22450 bytes buch/papers/reedsolomon/RS presentation/RS.toc | 6 +- 8 files changed, 143 insertions(+), 117 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/RS presentation/RS.aux b/buch/papers/reedsolomon/RS presentation/RS.aux index 6294c05..005172f 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.aux +++ b/buch/papers/reedsolomon/RS presentation/RS.aux @@ -29,38 +29,49 @@ \@writefile{nav}{\headcommand {\slideentry {1}{0}{1}{2/2}{}{0}}} \@writefile{nav}{\headcommand {\beamer@framepages {2}{2}}} \HyPL@Entry{2<>} -\@writefile{nav}{\headcommand {\slideentry {1}{0}{2}{3/9}{}{0}}} -\@writefile{nav}{\headcommand {\beamer@framepages {3}{9}}} -\HyPL@Entry{9<>} -\@writefile{nav}{\headcommand {\slideentry {1}{0}{3}{10/11}{}{0}}} -\@writefile{nav}{\headcommand {\beamer@framepages {10}{11}}} -\HyPL@Entry{11<>} -\@writefile{toc}{\beamer@sectionintoc {2}{Polynom Ansatz}{12}{0}{2}} -\@writefile{nav}{\headcommand {\beamer@sectionpages {2}{11}}} -\@writefile{nav}{\headcommand {\beamer@subsectionpages {2}{11}}} -\@writefile{nav}{\headcommand {\sectionentry {2}{Polynom Ansatz}{12}{Polynom Ansatz}{0}}} -\@writefile{snm}{\beamer@slide {ft_discrete}{12}} -\newlabel{ft_discrete}{{5}{12}{Polynom Ansatz}{Doc-Start}{}} -\@writefile{nav}{\headcommand {\slideentry {2}{0}{1}{12/12}{}{0}}} -\@writefile{nav}{\headcommand {\beamer@framepages {12}{12}}} -\HyPL@Entry{12<>} -\@writefile{nav}{\headcommand {\slideentry {2}{0}{2}{13/13}{}{0}}} -\@writefile{nav}{\headcommand {\beamer@framepages {13}{13}}} -\HyPL@Entry{13<>} -\@writefile{nav}{\headcommand {\slideentry {2}{0}{3}{14/15}{}{0}}} -\@writefile{nav}{\headcommand {\beamer@framepages {14}{15}}} -\HyPL@Entry{15<>} -\@writefile{nav}{\headcommand {\slideentry {2}{0}{4}{16/16}{}{0}}} +\@writefile{toc}{\beamer@sectionintoc {2}{Polynom Ansatz}{3}{0}{2}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {2}{2}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {2}{2}}} +\@writefile{nav}{\headcommand {\sectionentry {2}{Polynom Ansatz}{3}{Polynom Ansatz}{0}}} +\@writefile{nav}{\headcommand {\slideentry {2}{0}{1}{3/3}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {3}{3}}} +\HyPL@Entry{3<>} +\@writefile{nav}{\headcommand {\slideentry {2}{0}{2}{4/5}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {4}{5}}} +\HyPL@Entry{5<>} +\@writefile{nav}{\headcommand {\slideentry {2}{0}{3}{6/6}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {6}{6}}} +\HyPL@Entry{6<>} +\@writefile{toc}{\beamer@sectionintoc {3}{Fourier Transformation}{7}{0}{3}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {3}{6}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {3}{6}}} +\@writefile{nav}{\headcommand {\sectionentry {3}{Fourier Transformation}{7}{Fourier Transformation}{0}}} +\@writefile{nav}{\headcommand {\slideentry {3}{0}{1}{7/7}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {7}{7}}} +\HyPL@Entry{7<>} +\@writefile{nav}{\headcommand {\slideentry {3}{0}{2}{8/14}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {8}{14}}} +\HyPL@Entry{14<>} +\@writefile{toc}{\beamer@sectionintoc {4}{Diskrete Fourier Transformation}{15}{0}{4}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {7}{14}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {7}{14}}} +\@writefile{nav}{\headcommand {\sectionentry {4}{Diskrete Fourier Transformation}{15}{Diskrete Fourier Transformation}{0}}} +\@writefile{snm}{\beamer@slide {ft_discrete}{15}} +\newlabel{ft_discrete}{{8}{15}{Diskrete Fourier Transformation}{Doc-Start}{}} +\@writefile{nav}{\headcommand {\slideentry {4}{0}{1}{15/15}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {15}{15}}} +\HyPL@Entry{15<>} +\@writefile{nav}{\headcommand {\slideentry {4}{0}{2}{16/16}{}{0}}} \@writefile{nav}{\headcommand {\beamer@framepages {16}{16}}} -\HyPL@Entry{16<>} -\@writefile{toc}{\beamer@sectionintoc {3}{Diskrete Fourien Transformation}{17}{0}{3}} -\@writefile{nav}{\headcommand {\beamer@sectionpages {12}{16}}} -\@writefile{nav}{\headcommand {\beamer@subsectionpages {12}{16}}} -\@writefile{nav}{\headcommand {\sectionentry {3}{Diskrete Fourien Transformation}{17}{Diskrete Fourien Transformation}{0}}} -\@writefile{nav}{\headcommand {\slideentry {3}{0}{1}{17/17}{}{0}}} -\@writefile{nav}{\headcommand {\beamer@framepages {17}{17}}} -\@writefile{nav}{\headcommand {\beamer@partpages {1}{17}}} -\@writefile{nav}{\headcommand {\beamer@subsectionpages {17}{17}}} -\@writefile{nav}{\headcommand {\beamer@sectionpages {17}{17}}} -\@writefile{nav}{\headcommand {\beamer@documentpages {17}}} -\@writefile{nav}{\headcommand {\gdef \inserttotalframenumber {9}}} +\HyPL@Entry{16<>} +\@writefile{toc}{\beamer@sectionintoc {5}{Probleme und Fragen}{17}{0}{5}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {15}{16}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {15}{16}}} +\@writefile{nav}{\headcommand {\sectionentry {5}{Probleme und Fragen}{17}{Probleme und Fragen}{0}}} +\@writefile{nav}{\headcommand {\slideentry {5}{0}{1}{17/18}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {17}{18}}} +\@writefile{nav}{\headcommand {\beamer@partpages {1}{18}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {17}{18}}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {17}{18}}} +\@writefile{nav}{\headcommand {\beamer@documentpages {18}}} +\@writefile{nav}{\headcommand {\gdef \inserttotalframenumber {10}}} diff --git a/buch/papers/reedsolomon/RS presentation/RS.log b/buch/papers/reedsolomon/RS presentation/RS.log index 342b031..4e1c806 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.log +++ b/buch/papers/reedsolomon/RS presentation/RS.log @@ -1,4 +1,4 @@ -This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019/W32TeX) (preloaded format=xelatex 2019.10.25) 21 APR 2021 17:27 +This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019/W32TeX) (preloaded format=xelatex 2019.10.25) 21 APR 2021 18:18 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -974,139 +974,142 @@ Package hyperref Warning: Option `pdfsubject' has already been used, ] LaTeX Font Info: Trying to load font information for OT1+lmss on input line -31. +29. (c:/texlive/2019/texmf-dist/tex/latex/lm/ot1lmss.fd File: ot1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern ) -LaTeX Font Info: Trying to load font information for OML+lmm on input line 3 -1. +LaTeX Font Info: Trying to load font information for OML+lmm on input line 2 +9. (c:/texlive/2019/texmf-dist/tex/latex/lm/omllmm.fd File: omllmm.fd 2009/10/30 v1.6 Font defs for Latin Modern ) LaTeX Font Info: Trying to load font information for OMS+lmsy on input line -31. +29. (c:/texlive/2019/texmf-dist/tex/latex/lm/omslmsy.fd File: omslmsy.fd 2009/10/30 v1.6 Font defs for Latin Modern ) LaTeX Font Info: Trying to load font information for OMX+lmex on input line -31. +29. (c:/texlive/2019/texmf-dist/tex/latex/lm/omxlmex.fd File: omxlmex.fd 2009/10/30 v1.6 Font defs for Latin Modern ) LaTeX Font Info: External font `lmex10' loaded for size -(Font) <10.95> on input line 31. +(Font) <10.95> on input line 29. LaTeX Font Info: External font `lmex10' loaded for size -(Font) <8> on input line 31. +(Font) <8> on input line 29. LaTeX Font Info: External font `lmex10' loaded for size -(Font) <6> on input line 31. -LaTeX Font Info: Trying to load font information for U+msa on input line 31. +(Font) <6> on input line 29. +LaTeX Font Info: Trying to load font information for U+msa on input line 29. (c:/texlive/2019/texmf-dist/tex/latex/amsfonts/umsa.fd File: umsa.fd 2013/01/14 v3.01 AMS symbols A ) -LaTeX Font Info: Trying to load font information for U+msb on input line 31. +LaTeX Font Info: Trying to load font information for U+msb on input line 29. (c:/texlive/2019/texmf-dist/tex/latex/amsfonts/umsb.fd File: umsb.fd 2013/01/14 v3.01 AMS symbols B ) LaTeX Font Info: Font shape `T1/lmss/m/it' in size <10.95> not available -(Font) Font shape `T1/lmss/m/sl' tried instead on input line 31. +(Font) Font shape `T1/lmss/m/sl' tried instead on input line 29. LaTeX Font Info: Font shape `T1/lmss/m/it' in size <8> not available -(Font) Font shape `T1/lmss/m/sl' tried instead on input line 31. +(Font) Font shape `T1/lmss/m/sl' tried instead on input line 29. LaTeX Font Info: Font shape `T1/lmss/m/it' in size <6> not available -(Font) Font shape `T1/lmss/m/sl' tried instead on input line 31. +(Font) Font shape `T1/lmss/m/sl' tried instead on input line 29. [2 +] [3 + +] +File: images/polynom1.pdf Graphic file (type pdf) + + [4 + +] +File: images/polynom2.pdf Graphic file (type pdf) + + [5 + +] +[6 + +] [7 + ] File: images/fig1.pdf Graphic file (type pdf) -Overfull \vbox (14.63716pt too high) detected at line 57 +Overfull \vbox (14.63716pt too high) detected at line 105 [] -[3 +[8 ] File: images/fig2.pdf Graphic file (type pdf) -Overfull \vbox (14.63716pt too high) detected at line 57 +Overfull \vbox (14.63716pt too high) detected at line 105 [] -[4 +[9 ] File: images/fig3.pdf Graphic file (type pdf) -Overfull \vbox (14.63716pt too high) detected at line 57 +Overfull \vbox (14.63716pt too high) detected at line 105 [] -[5 +[10 ] File: images/fig4.pdf Graphic file (type pdf) -Overfull \vbox (14.63716pt too high) detected at line 57 +Overfull \vbox (14.63716pt too high) detected at line 105 [] -[6 +[11 ] File: images/fig5.pdf Graphic file (type pdf) -Overfull \vbox (14.63716pt too high) detected at line 57 +Overfull \vbox (14.63716pt too high) detected at line 105 [] -[7 +[12 ] File: images/fig6.pdf Graphic file (type pdf) -Overfull \vbox (14.63716pt too high) detected at line 57 +Overfull \vbox (14.63716pt too high) detected at line 105 [] -[8 +[13 ] File: images/fig7.pdf Graphic file (type pdf) -Overfull \vbox (14.63716pt too high) detected at line 57 +Overfull \vbox (14.63716pt too high) detected at line 105 [] -[9 - -] [10 +[14 -] [11 - -] [12 - -] [13 - -] -File: images/polynom1.pdf Graphic file (type pdf) - - [14 - -] -File: images/polynom2.pdf Graphic file (type pdf) - - [15 +] [15 ] [16 ] [17 +] [18 + ] \tf@nav=\write6 \openout6 = `RS.nav'. @@ -1117,21 +1120,21 @@ File: images/polynom2.pdf Graphic file (type pdf) \tf@snm=\write8 \openout8 = `RS.snm'. -Package atveryend Info: Empty hook `BeforeClearDocument' on input line 154. -Package atveryend Info: Empty hook `AfterLastShipout' on input line 154. +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 160. +Package atveryend Info: Empty hook `AfterLastShipout' on input line 160. (./RS.aux) -Package atveryend Info: Empty hook `AtVeryEndDocument' on input line 154. -Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 154. +Package atveryend Info: Empty hook `AtVeryEndDocument' on input line 160. +Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 160. Package rerunfilecheck Info: File `RS.out' has not changed. -(rerunfilecheck) Checksum: 488F938CBAD5E8FAC29F906360775E5F. +(rerunfilecheck) Checksum: 74C688051BF542B3A11E9793A97790F4. ) Here is how much of TeX's memory you used: - 24397 strings out of 492483 - 452001 string characters out of 6132858 - 533692 words of memory out of 5000000 - 28375 multiletter control sequences out of 15000+600000 + 24400 strings out of 492483 + 451960 string characters out of 6132858 + 534889 words of memory out of 5000000 + 28378 multiletter control sequences out of 15000+600000 37892 words of font info for 41 fonts, out of 8000000 for 9000 1348 hyphenation exceptions out of 8191 58i,15n,61p,796b,549s stack positions out of 5000i,500n,10000p,200000b,80000s -Output written on RS.pdf (17 pages). +Output written on RS.pdf (18 pages). diff --git a/buch/papers/reedsolomon/RS presentation/RS.nav b/buch/papers/reedsolomon/RS presentation/RS.nav index 22ae94a..1d67391 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.nav +++ b/buch/papers/reedsolomon/RS presentation/RS.nav @@ -5,28 +5,36 @@ \headcommand {\sectionentry {1}{Einführung}{2}{Einführung}{0}} \headcommand {\slideentry {1}{0}{1}{2/2}{}{0}} \headcommand {\beamer@framepages {2}{2}} -\headcommand {\slideentry {1}{0}{2}{3/9}{}{0}} -\headcommand {\beamer@framepages {3}{9}} -\headcommand {\slideentry {1}{0}{3}{10/11}{}{0}} -\headcommand {\beamer@framepages {10}{11}} -\headcommand {\beamer@sectionpages {2}{11}} -\headcommand {\beamer@subsectionpages {2}{11}} -\headcommand {\sectionentry {2}{Polynom Ansatz}{12}{Polynom Ansatz}{0}} -\headcommand {\slideentry {2}{0}{1}{12/12}{}{0}} -\headcommand {\beamer@framepages {12}{12}} -\headcommand {\slideentry {2}{0}{2}{13/13}{}{0}} -\headcommand {\beamer@framepages {13}{13}} -\headcommand {\slideentry {2}{0}{3}{14/15}{}{0}} -\headcommand {\beamer@framepages {14}{15}} -\headcommand {\slideentry {2}{0}{4}{16/16}{}{0}} +\headcommand {\beamer@sectionpages {2}{2}} +\headcommand {\beamer@subsectionpages {2}{2}} +\headcommand {\sectionentry {2}{Polynom Ansatz}{3}{Polynom Ansatz}{0}} +\headcommand {\slideentry {2}{0}{1}{3/3}{}{0}} +\headcommand {\beamer@framepages {3}{3}} +\headcommand {\slideentry {2}{0}{2}{4/5}{}{0}} +\headcommand {\beamer@framepages {4}{5}} +\headcommand {\slideentry {2}{0}{3}{6/6}{}{0}} +\headcommand {\beamer@framepages {6}{6}} +\headcommand {\beamer@sectionpages {3}{6}} +\headcommand {\beamer@subsectionpages {3}{6}} +\headcommand {\sectionentry {3}{Fourier Transformation}{7}{Fourier Transformation}{0}} +\headcommand {\slideentry {3}{0}{1}{7/7}{}{0}} +\headcommand {\beamer@framepages {7}{7}} +\headcommand {\slideentry {3}{0}{2}{8/14}{}{0}} +\headcommand {\beamer@framepages {8}{14}} +\headcommand {\beamer@sectionpages {7}{14}} +\headcommand {\beamer@subsectionpages {7}{14}} +\headcommand {\sectionentry {4}{Diskrete Fourier Transformation}{15}{Diskrete Fourier Transformation}{0}} +\headcommand {\slideentry {4}{0}{1}{15/15}{}{0}} +\headcommand {\beamer@framepages {15}{15}} +\headcommand {\slideentry {4}{0}{2}{16/16}{}{0}} \headcommand {\beamer@framepages {16}{16}} -\headcommand {\beamer@sectionpages {12}{16}} -\headcommand {\beamer@subsectionpages {12}{16}} -\headcommand {\sectionentry {3}{Diskrete Fourien Transformation}{17}{Diskrete Fourien Transformation}{0}} -\headcommand {\slideentry {3}{0}{1}{17/17}{}{0}} -\headcommand {\beamer@framepages {17}{17}} -\headcommand {\beamer@partpages {1}{17}} -\headcommand {\beamer@subsectionpages {17}{17}} -\headcommand {\beamer@sectionpages {17}{17}} -\headcommand {\beamer@documentpages {17}} -\headcommand {\gdef \inserttotalframenumber {9}} +\headcommand {\beamer@sectionpages {15}{16}} +\headcommand {\beamer@subsectionpages {15}{16}} +\headcommand {\sectionentry {5}{Probleme und Fragen}{17}{Probleme und Fragen}{0}} +\headcommand {\slideentry {5}{0}{1}{17/18}{}{0}} +\headcommand {\beamer@framepages {17}{18}} +\headcommand {\beamer@partpages {1}{18}} +\headcommand {\beamer@subsectionpages {17}{18}} +\headcommand {\beamer@sectionpages {17}{18}} +\headcommand {\beamer@documentpages {18}} +\headcommand {\gdef \inserttotalframenumber {10}} diff --git a/buch/papers/reedsolomon/RS presentation/RS.out b/buch/papers/reedsolomon/RS presentation/RS.out index 597a5f8..32b9a2c 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.out +++ b/buch/papers/reedsolomon/RS presentation/RS.out @@ -1,3 +1,5 @@ \BOOKMARK [2][]{Outline0.1}{Einführung}{}% 1 \BOOKMARK [2][]{Outline0.2}{Polynom\040Ansatz}{}% 2 -\BOOKMARK [2][]{Outline0.3}{Diskrete\040Fourien\040Transformation}{}% 3 +\BOOKMARK [2][]{Outline0.3}{Fourier\040Transformation}{}% 3 +\BOOKMARK [2][]{Outline0.4}{Diskrete\040Fourier\040Transformation}{}% 4 +\BOOKMARK [2][]{Outline0.5}{Probleme\040und\040Fragen}{}% 5 diff --git a/buch/papers/reedsolomon/RS presentation/RS.pdf b/buch/papers/reedsolomon/RS presentation/RS.pdf index f49671f..913bc42 100644 Binary files a/buch/papers/reedsolomon/RS presentation/RS.pdf and b/buch/papers/reedsolomon/RS presentation/RS.pdf differ diff --git a/buch/papers/reedsolomon/RS presentation/RS.snm b/buch/papers/reedsolomon/RS presentation/RS.snm index 8b82641..6607ea8 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.snm +++ b/buch/papers/reedsolomon/RS presentation/RS.snm @@ -1 +1 @@ -\beamer@slide {ft_discrete}{12} +\beamer@slide {ft_discrete}{15} diff --git a/buch/papers/reedsolomon/RS presentation/RS.synctex.gz b/buch/papers/reedsolomon/RS presentation/RS.synctex.gz index 96af4cc..001b5c8 100644 Binary files a/buch/papers/reedsolomon/RS presentation/RS.synctex.gz and b/buch/papers/reedsolomon/RS presentation/RS.synctex.gz differ diff --git a/buch/papers/reedsolomon/RS presentation/RS.toc b/buch/papers/reedsolomon/RS presentation/RS.toc index ff200c6..44c06ab 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.toc +++ b/buch/papers/reedsolomon/RS presentation/RS.toc @@ -1,4 +1,6 @@ \babel@toc {ngerman}{} \beamer@sectionintoc {1}{Einführung}{2}{0}{1} -\beamer@sectionintoc {2}{Polynom Ansatz}{12}{0}{2} -\beamer@sectionintoc {3}{Diskrete Fourien Transformation}{17}{0}{3} +\beamer@sectionintoc {2}{Polynom Ansatz}{3}{0}{2} +\beamer@sectionintoc {3}{Fourier Transformation}{7}{0}{3} +\beamer@sectionintoc {4}{Diskrete Fourier Transformation}{15}{0}{4} +\beamer@sectionintoc {5}{Probleme und Fragen}{17}{0}{5} -- cgit v1.2.1 From 308c797ad63e094b1553d6417d477b4b7e792358 Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Wed, 21 Apr 2021 22:53:22 +0200 Subject: Update RS.tex --- buch/papers/reedsolomon/RS presentation/RS.tex | 708 ++++++++++++++++++++++++- 1 file changed, 707 insertions(+), 1 deletion(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/RS presentation/RS.tex b/buch/papers/reedsolomon/RS presentation/RS.tex index 3d2be8f..400e654 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.tex +++ b/buch/papers/reedsolomon/RS presentation/RS.tex @@ -17,9 +17,715 @@ \begin{frame}[plain] \maketitle \end{frame} - +%------------------------------------------------------------------------------- \begin{frame} \frametitle{Test} Ich mag Züge. \end{frame} + + \begin{frame} + \frametitle{Reed-Solomon in Endlichen Körpern} + + \begin{itemize} + \item Warum Endliche Körper? + + \qquad bessere Laufzeit + + \vspace{10pt} + + \item Nachricht = Nutzdaten + Fehlerkorrekturteil + + \vspace{10pt} + + \item den Fehlerkorrekturteil brauchen wir im Optimalfall nicht + + \vspace{10pt} + + \item Im Fehlerfall sollen wir aus der Nachricht ein Lokatorpolynom berechnen können, welches die Fehlerhaften Stellen beinhaltet + +% Wir sollten im Fehlerfall in der Lage sein, aus der Nachricht ein Lokatorpolynom zu berechnen, welches die Fehlerhaften Stellen beinhaltet + + \end{itemize} + +% TODO + +% erklärung und einführung der endlichen körper, was wollen wir erreichen? + +% wir versenden im endefekt mehr daten als unsere nachricht umfasst, damit die korrektur sichergestellt werden kann + +% sollten wir fehler bekommen, was uns die korrekturstellen mitgeteilt wird, dann ist es unsere aufgabe ein lokatorpolynom zu finden, welches uns verrät, auf welchen zeilen der Fehler aufgetreten ist + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Definition eines Beispiels} + + \begin{itemize} + + \item Endlicher Körper $q = 11$ + + \only<1->{ist eine Primzahl} + + \only<1->{beinhaltet die Zahlen $\mathbb{Z}_{11} = [0,1,2,3,4,5,6,7,8,9,10]$} + + \vspace{10pt} + + \only<1->{\item Nachrichtenblock $n = q-1$} + + wird an den Empfänger gesendet + + \vspace{10pt} + + \only<1->{\item max. Fehler $z = 2$} + + maximale Anzahl von Fehler, die wir noch korrigieren können + + \vspace{10pt} + + \only<1->{\item Nutzlast $k = n -2t = 6$ Zahlen} + + Fehlerstellen $2t = 4$ Zahlen + + \only<1->{Nachricht $m = [0,0,0,0,4,7,2,5,8,1]$} + + \only<1->{als Polynom $m(X) = 4X^5 + 7X^4 + 2X^3 + 5X^2 + 8X + 1$} + + \end{itemize} + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Codierung} + + \begin{itemize} + \item Ansatz aus den Komplexen Zahlen mit der Fouriertransformation + + \vspace{10pt} + + \item $\mathrm{e}$ existiert nicht in $\mathbb{Z}_{11}$ + + \vspace{10pt} + + \item wir suchen $a$ so, dass $a^i$ den gesamten Zahlenbereich von $\mathbb{Z}_{11}$ abdeckt + + $\mathbb{Z}_{11}\setminus\{0\} = [a^0, a^1, a^2, a^3, a^4, a^5, a^6, a^7, a^8, a^9]$ + + \vspace{10pt} + + \item wir wählen $a = 8$ + + $\mathbb{Z}_{11}\setminus\{0\} = [1,8,9,6,4,10,3,2,5,7]$ + + 8 ist eine Primitive Einheitswurzel + + \vspace{10pt} + + \item $m(8^0) = 4\cdot1 + 7\cdot1 + 2\cdot1 + 5\cdot1 + 8\cdot1 + 1 = 5$ + + $\Rightarrow$ \qquad können wir auch als Matrix schreiben + + \end{itemize} + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Codierung} + + \begin{itemize} + \item Übertragungsvektor $V$ + + \item $V = A \cdot m$ + + \end{itemize} + + \[ + V = \begin{pmatrix} + 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0\\ + 8^0& 8^1& 8^2& 8^3& 8^4& 8^5& 8^6& 8^7& 8^8& 8^9\\ + 8^0& 8^2& 8^4& 8^6& 8^8& 8^{10}& 8^{12}& 8^{14}& 8^{16}& 8^{18}\\ + 8^0& 8^3& 8^6& 8^9& 8^{12}& 8^{15}& 8^{18}& 8^{21}& 8^{24}& 8^{27}\\ + 8^0& 8^4& 8^8& 8^{12}& 8^{16}& 8^{20}& 8^{24}& 8^{28}& 8^{32}& 8^{36}\\ + 8^0& 8^5& 8^{10}& 8^{15}& 8^{20}& 8^{25}& 8^{30}& 8^{35}& 8^{40}& 8^{45}\\ + 8^0& 8^6& 8^{12}& 8^{18}& 8^{24}& 8^{30}& 8^{36}& 8^{42}& 8^{48}& 8^{54}\\ + 8^0& 8^7& 8^{14}& 8^{21}& 8^{28}& 8^{35}& 8^{42}& 8^{49}& 8^{56}& 8^{63}\\ + 8^0& 8^8& 8^{16}& 8^{24}& 8^{32}& 8^{40}& 8^{48}& 8^{56}& 8^{64}& 8^{72}\\ + 8^0& 8^9& 8^{18}& 8^{27}& 8^{36}& 8^{45}& 8^{54}& 8^{63}& 8^{72}& 8^{81}\\ + \end{pmatrix} + \cdot + \begin{pmatrix} + 1 \\ 8 \\ 5 \\ 2 \\ 7 \\ 4 \\ 0 \\ 0 \\ 0 \\ 0 \\ + \end{pmatrix} + \] + + \begin{itemize} + \item $V = [5,3,6,5,2,10,2,7,10,4]$ + \end{itemize} + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Decodierung ohne Fehler} + + \begin{itemize} + \item Der Empfänger erhält den unveränderten Vektor $V = [5,3,6,5,2,10,2,7,10,4]$ + + \vspace{10pt} + + \item Wir suchen die Inverse der Matrix A + + \end{itemize} + + \begin{columns}[t] + \begin{column}{0.50\textwidth} + + Inverse der Fouriertransformation + \vspace{10pt} + \[ + F(\omega) = \int_{-\infty}^{\infty} f(t) \mathrm{e}^{-j\omega t} dt + \] + \vspace{10pt} + \[ + f(t) = \frac{1}{2 \pi} \int_{-\infty}^{\infty} F(\omega) \mathrm{e}^{j \omega t} d\omega + \] + + \end{column} + \begin{column}{0.50\textwidth} + + Inverse von a + \vspace{10pt} + \[ + 8^{1} \Rightarrow 8^{-1} + \] + + Inverse finden wir über den Eulkidischen Algorithmus + \vspace{10pt} + \end{column} + \end{columns} + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Der Euklidische Algorithmus} + + \begin{columns}[t] + \begin{column}{0.50\textwidth} + + Recap aus der Vorlesung: + + Gegeben $a \in \mathbb{F}_p$, finde $b = a^{-1} \in \mathbb{F}_p$ + + \begin{tabular}{rcl} + $a b$ &$\equiv$& $1 \mod p$\\ + $a b$ &$=$& $1 + n p$\\ + $a b - n p$ &$=$& $1$\\ + &&\\ + $\operatorname{ggT}(a,p)$&$=$& $1$\\ + $sa + tp$&$=$& $1$\\ + $b$&$=$&$s$\\ + $n$&$=$&$-t$ + \end{tabular} + + \end{column} + \begin{column}{0.50\textwidth} + + \begin{center} + + \begin{tabular}{| c | c c | c | c c |} + \hline + $k$ & $a_i$ & $b_i$ & $q_i$ & $c_i$ & $d_i$\\ + \hline + & & & & $1$& $0$\\ + $0$& $8$& $11$& $0$& $0$& $1$\\ + $1$& $11$& $8$& $1$& $1$& $0$\\ + $2$& $8$& $3$& $2$& $-1$& $1$\\ + $3$& $3$& $2$& $1$& $3$& $-2$\\ + $4$& $2$& $1$& $2$& $-4$& $3$\\ + $5$& $1$& $0$& & $11$& $-8$\\ + \hline + \end{tabular} + + \vspace{10pt} + + \begin{tabular}{rcl} + $-4\cdot 8 + 3 \cdot 11$ &$=$& $1$\\ + $7 \cdot 8 + 3 \cdot 11$ &$=$& $1$\\ + $8^{-1}$ &$=$& $7$ + + \end{tabular} + + \end{center} + + \end{column} + \end{columns} + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Decodirung mit Inverser Matrix} + + \begin{itemize} + \item $V = [5,3,6,5,2,10,2,7,10,4]$ + + \item $m = 1/10 \cdot A^{-1} \cdot V$ + + \item $m = 10 \cdot A^{-1} \cdot V$ + + \end{itemize} + + \[ + m = \begin{pmatrix} + 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0\\ + 7^0& 7^1& 7^2& 7^3& 7^4& 7^5& 7^6& 7^7& 7^8& 7^9\\ + 7^0& 7^2& 7^4& 7^6& 7^8& 7^{10}& 7^{12}& 7^{14}& 7^{16}& 7^{18}\\ + 7^0& 7^3& 7^6& 7^9& 7^{12}& 7^{15}& 7^{18}& 7^{21}& 7^{24}& 7^{27}\\ + 7^0& 7^4& 7^8& 7^{12}& 7^{16}& 7^{20}& 7^{24}& 7^{28}& 7^{32}& 7^{36}\\ + 7^0& 7^5& 7^{10}& 7^{15}& 7^{20}& 7^{25}& 7^{30}& 7^{35}& 7^{40}& 7^{45}\\ + 7^0& 7^6& 7^{12}& 7^{18}& 7^{24}& 7^{30}& 7^{36}& 7^{42}& 7^{48}& 7^{54}\\ + 7^0& 7^7& 7^{14}& 7^{21}& 7^{28}& 7^{35}& 7^{42}& 7^{49}& 7^{56}& 7^{63}\\ + 7^0& 7^8& 7^{16}& 7^{24}& 7^{32}& 7^{40}& 7^{48}& 7^{56}& 7^{64}& 7^{72}\\ + 7^0& 7^9& 7^{18}& 7^{27}& 7^{36}& 7^{45}& 7^{54}& 7^{63}& 7^{72}& 7^{81}\\ + \end{pmatrix} + \cdot + \begin{pmatrix} + 5 \\ 3 \\ 6 \\ 5 \\ 2 \\ 10 \\ 2 \\ 7 \\ 10 \\ 4 \\ + \end{pmatrix} + \] + + \begin{itemize} + \item $m = [0,0,0,0,4,7,2,5,8,1]$ + \end{itemize} + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Decodierung mit Fehler - Ansatz} + + \begin{itemize} + \item Gesendet: $V = [5,3,6,5,2,10,2,7,10,4]$ + + \item Empfangen: $W = [5,3,6,8,2,10,2,7,1,4]$ + + \item Rücktransformation: $r = [\underbrace{5,7,4,10,}_{Fehlerstellen}5,4,5,7,6,7]$ + \end{itemize} + + Wie finden wir die Fehler? + + \begin{itemize} + \item $m(X) = 4X^5 + 7X^4 + 2X^3 + 5X^2 + 8X + 1$ + + \item $r(X) = 5X^9 + 7X^8 + 4X^7 + 10X^6 + 5X^5 + 4X^4 + 5X^3 + 7X^2 + 6X + 7$ + + \item $e(X) = r(X) - m(X)$ + \end{itemize} + + \begin{center} + + \begin{tabular}{c c c c c c c c c c c} + \hline + $i$& $0$& $1$& $2$& $3$& $4$& $5$& $6$& $7$& $8$& $9$\\ + \hline + $r(a^{i})$& $5$& $3$& $6$& $8$& $2$& $10$& $2$& $7$& $1$& $4$\\ + $m(a^{i})$& $5$& $3$& $6$& $5$& $2$& $10$& $2$& $7$& $10$& $4$\\ + $e(a^{i})$& $0$& $0$& $0$& $3$& $0$& $0$& $0$& $0$& $2$& $0$\\ + \hline + \end{tabular} + + \end{center} + + \begin{itemize} + \item Alle Stellen, die nicht Null sind, sind Fehler + \end{itemize} + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Nullstellen des Fehlerpolynoms finden} + + \begin{itemize} + \item Satz von Fermat: $f(X) = X^{q-1}-1=0$ + + \vspace{10pt} + + \item $f(X) = X^{10}-1 = 0$ \qquad für $X = [1,2,3,4,5,6,7,8,9,10]$ + + \vspace{10pt} + + \item $f(X) = (X-a^0)(X-a^1)(X-a^2)(X-a^3)(X-a^4)(X-a^5)(X-a^6) \cdot$ + + \qquad \qquad $(X-a^7)(X-a^8)(X-a^9)$ + + \vspace{10pt} + + \item $e(X) = (X-a^0)(X-a^1)(X-a^2) \qquad \qquad (X-a^4)(X-a^5)(X-a^6) \cdot$ + + \qquad \qquad $(X-a^7) \qquad \qquad (X-a^9) \cdot p(x)$ + + \vspace{10pt} + + \item $\operatorname{ggT}$ gibt uns eine Liste der Nullstellen, an denen es keine Fehler gegeben hat + + \vspace{10pt} + + $\operatorname{ggT}(f(X),e(X)) = (X-a^0)(X-a^1)(X-a^2) \qquad \qquad (X-a^4)(X-a^5)(X-a^6) \cdot$ + + \qquad \qquad \qquad \qquad $(X-a^7) \qquad \qquad (X-a^9)$ + + \end{itemize} + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Nullstellen des Fehlerpolynoms finden} + + \begin{itemize} + + \item Satz von Fermat: $f(X) = X^{q-1}-1=0$ + + \vspace{10pt} + + \item $f(X) = X^{10}-1 = 0$ \qquad für $X = [1,2,3,4,5,6,7,8,9,10]$ + + \vspace{10pt} + + \item $f(X) = (X-a^0)(X-a^1)(X-a^2)(X-a^3)(X-a^4)(X-a^5)(X-a^6) \cdot$ + + \qquad \qquad $(X-a^7)(X-a^8)(X-a^9)$ + + \vspace{10pt} + + \item $e(X) = (X-a^0)(X-a^1)(X-a^2) \qquad \qquad (X-a^4)(X-a^5)(X-a^6) \cdot$ + + \qquad \qquad $(X-a^7) \qquad \qquad (X-a^9) \cdot p(x)$ + + \vspace{10pt} + + \item $\operatorname{kgV}$ gibt uns eine Liste von aller Nullstellen, die wir in $e$ und $d$ zerlegen können + + \vspace{10pt} + + $\operatorname{kgV}(f(X),e(X)) = (X-a^0)(X-a^1)(X-a^2)(X-a^3)(X-a^4)(X-a^5)(X-a^6) \cdot $ + + \qquad \qquad \qquad \qquad $(X-a^7)(X-a^8)(X-a^9) \cdot q(X)$ + + $= d(X) \cdot e(X)$ + + \vspace{10pt} + + \item Lokatorpolynom $d(X) = (X-a^3)(X-a^8)$ + + \end{itemize} + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{kennen wir $e$?} + + \begin{itemize} + + \item $e$ ist unbekannt auf der Empfängerseite + + \vspace{10pt} + + \item $e(X) = r(X) - m(X)$ \qquad $\rightarrow$ \qquad $m(X)$ ist unbekannt? + + \vspace{10pt} + + \item $m$ ist nicht gänzlich unbekannt: $m = [0,0,0,0,?,?,?,?,?,?]$ + + In den bekannten Stellen liegt auch die Information, wo es Fehler gegeben hat + + \vspace{10pt} + + \item daraus folgt $e(X) = 5X^9 + 7X^8 + 4X^7 + 10X^6 + p(X)$ + + \vspace{10pt} + + \item $f(X) = X^{10} - 1 = X^{10} + 10$ + + \vspace{10pt} + + \item jetzt können wir den $\operatorname{ggT}$ von $f(X)$ und $e(X)$ berechnen + \end{itemize} + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Der Euklidische Algorithmus (nochmal)} + + $\operatorname{ggT}(f(X),e(X))$ hat den Grad 8 + + \[ + \arraycolsep=1.4pt + \begin{array}{rcrcrcrcccrcrcrcrcrcrcrcrcr} + X^{10}& & & & & & &+& 10& & & & &:&5X^9&+&7X^8&+& 4X^7&+&10X^6&+&p(X)&=&9X&+&5\\ + X^{10}&+& 8X^9&+& 3X^8&+&2X^7&+& p(X)& & & & & & & & & & & & & & & & \\ \cline{1-9} + && 3X^9&+& 8X^8&+& 9X^7&+& p(X)& & & & & & & & & & & & \\ + && 3X^9&+& 2X^8&+& 9X^7&+& p(X)& & & & & & & & & & & & \\ \cline{3-9} + & & & &6X^8&+&0X^7&+&p(X)& & & & & & & & & & & & \\ + \end{array} + \] + + \[ + \arraycolsep=1.4pt + \begin{array}{rcrcrcrcccrcrcrcrcrcrcrcrcr} + 5X^9&+& 7X^8&+& 4X^7&+& 10X^6&+& p(X)& & & & &:&6X^8&+&0X^7& & & & & & &=&10X&+&3\\ + 5X^9&+& 0X^8&+& p(X)& & & & & & & & & & & & & & & & & & & & \\ \cline{1-5} + && 7X^8&+& p(X)& & & & & & & & & & & & & & & & \\ + \end{array} + \] + + \vspace{10pt} + + $\operatorname{ggT}(f(X),e(X)) = 6X^8$ + + \vspace{10pt} + + $\operatorname{kgV}$ durch den erweiterten Euklidischen Algorithmus bestimmen + + \end{frame} + +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Der Erweiterte Euklidische Algorithmus} + + \begin{center} + + \begin{tabular}{| c | c | c c |} + \hline + $k$ & $q_i$ & $e_i$ & $f_i$\\ + \hline + & & $0$& $1$\\ + $0$& $9X + 5$& $1$& $0$\\ + $1$& $10X + 3$& $9X+5$& $1$\\ + $2$& & $2X^2 + 0X + 5$& $10X + 3$\\ + \hline + \end{tabular} + + \end{center} + + \vspace{10pt} + + \begin{tabular}{ll} + Somit erhalten wir den Faktor& $d(X) = 2X^2 + 5$\\ + Faktorisiert erhalten wir& $d(X) = 2(X-5)(X-6)$\\ + Lokatorpolynom& $d(X) = (X-a^i)(X-a^i)$ + \end{tabular} + + \vspace{10pt} + + \begin{center} + $a^i = 5 \qquad \Rightarrow \qquad i = 3$ + + $a^i = 6 \qquad \Rightarrow \qquad i = 8$ + \end{center} + + $D = [3,8]$ + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Rekonstruktion der Nachricht} + + \begin{itemize} + + \item $W = [5,3,6,8,2,10,2,7,1,4]$ + + \item $D = [3,8]$ + + \end{itemize} + + \[ + \begin{pmatrix} + 5 \\ 3 \\ 6 \\ 8 \\ 2 \\ 10 \\ 2 \\ 7 \\ 1 \\ 4 \\ + \end{pmatrix} + = + \begin{pmatrix} + 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0\\ + 8^0& 8^1& 8^2& 8^3& 8^4& 8^5& 8^6& 8^7& 8^8& 8^9\\ + 8^0& 8^2& 8^4& 8^6& 8^8& 8^{10}& 8^{12}& 8^{14}& 8^{16}& 8^{18}\\ + 8^0& 8^3& 8^6& 8^9& 8^{12}& 8^{15}& 8^{18}& 8^{21}& 8^{24}& 8^{27}\\ + 8^0& 8^4& 8^8& 8^{12}& 8^{16}& 8^{20}& 8^{24}& 8^{28}& 8^{32}& 8^{36}\\ + 8^0& 8^5& 8^{10}& 8^{15}& 8^{20}& 8^{25}& 8^{30}& 8^{35}& 8^{40}& 8^{45}\\ + 8^0& 8^6& 8^{12}& 8^{18}& 8^{24}& 8^{30}& 8^{36}& 8^{42}& 8^{48}& 8^{54}\\ + 8^0& 8^7& 8^{14}& 8^{21}& 8^{28}& 8^{35}& 8^{42}& 8^{49}& 8^{56}& 8^{63}\\ + 8^0& 8^8& 8^{16}& 8^{24}& 8^{32}& 8^{40}& 8^{48}& 8^{56}& 8^{64}& 8^{72}\\ + 8^0& 8^9& 8^{18}& 8^{27}& 8^{36}& 8^{45}& 8^{54}& 8^{63}& 8^{72}& 8^{81}\\ + \end{pmatrix} + \cdot + \begin{pmatrix} + m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ m_6 \\ m_7 \\ m_8 \\ m_9 \\ + \end{pmatrix} + \] + + \begin{itemize} + \item Fehlerstellen entfernen + \end{itemize} + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Rekonstruktion der Nachricht} + + \[ + \begin{pmatrix} + 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ 7 \\ 4 \\ + \end{pmatrix} + = + \begin{pmatrix} + 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0\\ + 8^0& 8^1& 8^2& 8^3& 8^4& 8^5& 8^6& 8^7& 8^8& 8^9\\ + 8^0& 8^2& 8^4& 8^6& 8^8& 8^{10}& 8^{12}& 8^{14}& 8^{16}& 8^{18}\\ + 8^0& 8^4& 8^8& 8^{12}& 8^{16}& 8^{20}& 8^{24}& 8^{28}& 8^{32}& 8^{36}\\ + 8^0& 8^5& 8^{10}& 8^{15}& 8^{20}& 8^{25}& 8^{30}& 8^{35}& 8^{40}& 8^{45}\\ + 8^0& 8^6& 8^{12}& 8^{18}& 8^{24}& 8^{30}& 8^{36}& 8^{42}& 8^{48}& 8^{54}\\ + 8^0& 8^7& 8^{14}& 8^{21}& 8^{28}& 8^{35}& 8^{42}& 8^{49}& 8^{56}& 8^{63}\\ + 8^0& 8^9& 8^{18}& 8^{27}& 8^{36}& 8^{45}& 8^{54}& 8^{63}& 8^{72}& 8^{81}\\ + \end{pmatrix} + \cdot + \begin{pmatrix} + m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ m_6 \\ m_7 \\ m_8 \\ m_9 \\ + \end{pmatrix} + \] + + \begin{itemize} + \item Nullstellen entfernen + \end{itemize} + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Rekonstruktion der Nachricht} + + \[ + \begin{pmatrix} + 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ 7 \\ 4 \\ + \end{pmatrix} + = + \begin{pmatrix} + 8^0& 8^0& 8^0& 8^0& 8^0& 8^0\\ + 8^0& 8^1& 8^2& 8^3& 8^4& 8^5\\ + 8^0& 8^2& 8^4& 8^6& 8^8& 8^{10}\\ + 8^0& 8^4& 8^8& 8^{12}& 8^{16}& 8^{20}\\ + 8^0& 8^5& 8^{10}& 8^{15}& 8^{20}& 8^{25}\\ + 8^0& 8^6& 8^{12}& 8^{18}& 8^{24}& 8^{30}\\ + 8^0& 8^7& 8^{14}& 8^{21}& 8^{28}& 8^{35}\\ + 8^0& 8^9& 8^{18}& 8^{27}& 8^{36}& 8^{45}\\ + \end{pmatrix} + \cdot + \begin{pmatrix} + m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ + \end{pmatrix} + \] + + \vspace{5pt} + + \begin{itemize} + \item Matrix in eine Quadratische Form bringen + \end{itemize} + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Rekonstruktion der Nachricht} + + \[ + \begin{pmatrix} + 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ + \end{pmatrix} + = + \begin{pmatrix} + 8^0& 8^0& 8^0& 8^0& 8^0& 8^0\\ + 8^0& 8^1& 8^2& 8^3& 8^4& 8^5\\ + 8^0& 8^2& 8^4& 8^6& 8^8& 8^{10}\\ + 8^0& 8^4& 8^8& 8^{12}& 8^{16}& 8^{20}\\ + 8^0& 8^5& 8^{10}& 8^{15}& 8^{20}& 8^{25}\\ + 8^0& 8^6& 8^{12}& 8^{18}& 8^{24}& 8^{30}\\ + \end{pmatrix} + \cdot + \begin{pmatrix} + m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ + \end{pmatrix} + \] + + \vspace{5pt} + + \begin{itemize} + \item Matrix Invertieren + \end{itemize} + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Rekonstruktion der Nachricht} + + \[ + \begin{pmatrix} + 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ + \end{pmatrix} + = + \begin{pmatrix} + 1& 1& 1& 1& 1& 1\\ + 1& 8& 9& 6& 4& 10\\ + 1& 9& 4& 3& 5& 1\\ + 1& 4& 5& 9& 3& 1\\ + 1& 10& 1& 10& 1& 10\\ + 1& 3& 9& 5& 4& 1\\ + \end{pmatrix} + \cdot + \begin{pmatrix} + m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ + \end{pmatrix} + \] + + \begin{center} + $\Downarrow$ + \end{center} + \[ + \begin{pmatrix} + m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ + \end{pmatrix} + = + \begin{pmatrix} + 6& 4& 4& 6& 2& 1\\ + 2& 7& 10& 3& 4& 7\\ + 1& 8& 9& 8& 3& 4\\ + 3& 6& 6& 4& 5& 9\\ + 10& 10& 9& 8& 1& 6\\ + 1& 9& 6& 4& 7& 6\\ + \end{pmatrix} + \cdot + \begin{pmatrix} + 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ + \end{pmatrix} + \] + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Rekonstruktion der Nachricht} + + \[ + \begin{pmatrix} + m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ + \end{pmatrix} + = + \begin{pmatrix} + 6& 4& 4& 6& 2& 1\\ + 2& 7& 10& 3& 4& 7\\ + 1& 8& 9& 8& 3& 4\\ + 3& 6& 6& 4& 5& 9\\ + 10& 10& 9& 8& 1& 6\\ + 1& 9& 6& 4& 7& 6\\ + \end{pmatrix} + \cdot + \begin{pmatrix} + 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ + \end{pmatrix} + \] + + \begin{itemize} + \item $m = [4,7,2,5,8,1]$ + \end{itemize} + + \end{frame} +%------------------------------------------------------------------------------- \end{document} \ No newline at end of file -- cgit v1.2.1 From 8473571bc77425cd198b4bba515a3f5fe10c8cd2 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Wed, 21 Apr 2021 22:53:49 +0200 Subject: Style verbessert --- buch/papers/reedsolomon/RS presentation/RS.tex | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/RS presentation/RS.tex b/buch/papers/reedsolomon/RS presentation/RS.tex index 1a1cefd..65f8431 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.tex +++ b/buch/papers/reedsolomon/RS presentation/RS.tex @@ -64,12 +64,16 @@ &&\\ k & t & k+2t Werte eines Polynoms vom Grad k-1 \\ \hline + &&\\ + &&\\ + &Ausserdem können bis zu 2t Fehler erkannt werden!\\ \end{tabular} \end{center} - Ausserdem können bis zu 2t Fehler erkannt werden! + + \end{frame} -\section{Fourier Transformation} +\section{Diskrete Fourier Transformation} \begin{frame} \frametitle{Idee} \begin{itemize} @@ -104,7 +108,7 @@ \end{figure} \end{frame} -\section{Diskrete Fourier Transformation} + \begin{frame} \frametitle{Diskrete Fourier Transformation} Die Diskrete Fourier Transformation ist so gegeben: @@ -134,10 +138,10 @@ = \begin{pmatrix} w^0 & w^0 & w^0 & \dots &w^0 \\ - w^0 & w^1 &w^2 & \dots &w^n \\ - w^0 & w^2 &w^4 & \dots &w^{2n} \\ + w^0 & w^1 &w^2 & \dots &w^N \\ + w^0 & w^2 &w^4 & \dots &w^{2N} \\ \vdots & \vdots &\vdots &\ddots &\vdots \\ - w^0 & w^{1n}&w^{2n}& \dots &w^{n} \\ + w^0 & w^{1(N-1)}&w^{2(N-1)}& \dots &w^{(N-1)(N-1)} \\ \end{pmatrix} \begin{pmatrix} \textcolor{blue}{f_0} \\ @@ -154,6 +158,7 @@ Wie wird der Fehler lokalisiert? \only<2>{ + \newline Indem in einem Endlichen Körper gerechnet wird. } \end{frame} -- cgit v1.2.1 From 38d0c69842308be5f096375ff070c5233b395c4c Mon Sep 17 00:00:00 2001 From: JODBaer Date: Thu, 22 Apr 2021 16:01:46 +0200 Subject: kleine korrekturen --- buch/papers/reedsolomon/RS presentation/RS.tex | 45 +++++++++++++++----------- 1 file changed, 26 insertions(+), 19 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/RS presentation/RS.tex b/buch/papers/reedsolomon/RS presentation/RS.tex index eecd66b..618121c 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.tex +++ b/buch/papers/reedsolomon/RS presentation/RS.tex @@ -19,14 +19,18 @@ \begin{frame}[plain] \maketitle \end{frame} - \section{Einführung} +%------------------------------------------------------------------------------- +\section{Einführung} \begin{frame} \frametitle{Einführung} \begin{itemize} \item Reed-Solomon-Code beschäftigt sich mit der Übertragung von Daten und deren Fehler Erkennung. + \item Wird verwendet in: + \only<2>{CD, QR-Codes, Voyager-Sonde, etc.} \end{itemize} \end{frame} +%------------------------------------------------------------------------------- \section{Polynom Ansatz} \begin{frame} Beispiel 2, 1, 5 Versenden und auf 2 Fehler absichern. @@ -50,7 +54,7 @@ \includegraphics[scale = 1.2]{images/polynom2.pdf} \textcolor{green}{7} Zahlen versenden, um \textcolor{blue}{3} Zahlen gegen \textcolor{red}{2} Fehlern abzusichern.} \end{frame} - +%------------------------------------------------------------------------------- \begin{frame} \frametitle{Parameter} \begin{center} @@ -59,20 +63,24 @@ "Nutzlast" & Fehler & Versenden \\ \hline 3 & 2 & 7 Werte eines Polynoms vom Grad 2 \\ - 4 & 2 & 8 Werte eines Polynoms vom Grad 3 \\ - 3 & 2 & 7 Werte eines Polynoms vom Grad 2 \\ + 4 & 2 & 8 Werte eines Polynoms vom Grad 3 \\ +\only<2->{3}& +\only<2->{2}& +\only<2->{7 Werte eines Polynoms vom Grad 2} \\ &&\\ - k & t & k+2t Werte eines Polynoms vom Grad k-1 \\ +\only<3->{k} & +\only<3->{t} & +\only<3->{k+2t Werte eines Polynoms vom Grad k-1} \\ \hline &&\\ &&\\ - &Ausserdem können bis zu 2t Fehler erkannt werden!\\ + \multicolumn{3}{l} { + \only<4>{Ausserdem können bis zu 2t Fehler erkannt werden!} + } \end{tabular} - \end{center} - - - + \end{center} \end{frame} +%------------------------------------------------------------------------------- \section{Diskrete Fourier Transformation} \begin{frame} \frametitle{Idee} @@ -81,7 +89,7 @@ \item Danach Empfangen und Rücktransformieren. \end{itemize} \end{frame} - +%------------------------------------------------------------------------------- \begin{frame} \begin{figure} \only<1>{ @@ -107,8 +115,7 @@ } \end{figure} \end{frame} - - +%------------------------------------------------------------------------------- \begin{frame} \frametitle{Diskrete Fourier Transformation} Die Diskrete Fourier Transformation ist so gegeben: @@ -117,8 +124,8 @@ \hat{c}_{k} = \frac{1}{N} \sum_{n=0}^{N-1} {f}_n \cdot e^{-\frac{2\pi j}{N} \cdot kn} - \]. - + \] + Ersetzten als: \[ w = e^{-\frac{2\pi j}{N} k} \] @@ -128,14 +135,14 @@ \] \end{frame} - +%------------------------------------------------------------------------------- \begin{frame} \frametitle{Diskrete Fourier Transformation} \[ \begin{pmatrix} \hat{c}_1 \\\hat{c}_2 \\\hat{c}_3 \\ \vdots \\\hat{c}_n \end{pmatrix} - = + = \frac{1}{N} \begin{pmatrix} w^0 & w^0 & w^0 & \dots &w^0 \\ w^0 & w^1 &w^2 & \dots &w^N \\ @@ -152,7 +159,7 @@ \end{pmatrix} \] \end{frame} - +%------------------------------------------------------------------------------- \section{Probleme und Fragen} \begin{frame} \frametitle{Probleme und Fragen} @@ -163,7 +170,7 @@ Indem in einem Endlichen Körper gerechnet wird. } \end{frame} - +%------------------------------------------------------------------------------- \begin{frame} \frametitle{Reed-Solomon in Endlichen Körpern} -- cgit v1.2.1 From 9ce4fb55792c297989d1c001a621793303f31689 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Thu, 22 Apr 2021 22:13:29 +0200 Subject: Verbesserungen und anmerkungen umgesetzt --- buch/papers/reedsolomon/RS presentation/RS.tex | 56 ++++++++++++++------------ 1 file changed, 31 insertions(+), 25 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/RS presentation/RS.tex b/buch/papers/reedsolomon/RS presentation/RS.tex index 618121c..9811cf6 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.tex +++ b/buch/papers/reedsolomon/RS presentation/RS.tex @@ -22,36 +22,38 @@ %------------------------------------------------------------------------------- \section{Einführung} \begin{frame} - \frametitle{Einführung} + \frametitle{Reed-Solomon-Code:} \begin{itemize} - \item Reed-Solomon-Code beschäftigt sich mit der Übertragung von Daten - und deren Fehler Erkennung. - \item Wird verwendet in: - \only<2>{CD, QR-Codes, Voyager-Sonde, etc.} + \item \only<1>{Für Übertragung von Daten} + \item \only<2->{Ermöglicht Korrektur von Übertragungsfehler} + \item \only<3->{Wird verwendet in: CD, QR-Codes, Voyager-Sonde, etc.} \end{itemize} \end{frame} %------------------------------------------------------------------------------- \section{Polynom Ansatz} \begin{frame} - Beispiel 2, 1, 5 Versenden und auf 2 Fehler absichern. + \begin{itemize} + \item Beispiel $2, 1, 5$ versenden und auf 2 Fehler absichern + \end{itemize} \end{frame} \begin{frame} Übertragen von - ${f}_2=$\textcolor{blue}{2}, ${f}_1$\textcolor{blue}{1}, ${f}_0$\textcolor{blue}{5} + ${f}_2=\textcolor{blue}{2}$, ${f}_1=\textcolor{blue}{1}$, ${f}_0=\textcolor{blue}{5}$ als $ p(w) = \textcolor{blue}{2}w^2 + \textcolor{blue}{1}w + \textcolor{blue}{5} $. \only<1>{ - Versende $ (p(1),p(2),...,p(7)) = (\textcolor{green}{8}, + Versende $ (p(1),p(2),\dots,p(7)) = (\textcolor{green}{8}, \textcolor{green}{15}, \textcolor{green}{26}, - \textcolor{green}{ 41}, \textcolor{green}{60}, + \textcolor{green}{41}, \textcolor{green}{60}, \textcolor{green}{83}, \textcolor{green}{110})$ \includegraphics[scale = 1.2]{images/polynom1.pdf}} \only<2>{ - Versende $ (p(1),p(2),...,p(7)) = (\textcolor{green}{8}, + Versende $ (p(1),p(2),\dots,p(7)) = (\textcolor{green}{8}, \textcolor{red}{50}, \textcolor{red}{37}, - \textcolor{green}{ 41}, \textcolor{green}{60}, + \textcolor{green}{41}, \textcolor{green}{60}, \textcolor{green}{83}, \textcolor{green}{110})$ \includegraphics[scale = 1.2]{images/polynom2.pdf} + \newline \textcolor{green}{7} Zahlen versenden, um \textcolor{blue}{3} Zahlen gegen \textcolor{red}{2} Fehlern abzusichern.} \end{frame} %------------------------------------------------------------------------------- @@ -60,22 +62,22 @@ \begin{center} \begin{tabular}{ c c c } \hline - "Nutzlast" & Fehler & Versenden \\ + ``Nutzlas´´ & Fehler & Versenden \\ \hline 3 & 2 & 7 Werte eines Polynoms vom Grad 2 \\ 4 & 2 & 8 Werte eines Polynoms vom Grad 3 \\ \only<2->{3}& -\only<2->{2}& -\only<2->{7 Werte eines Polynoms vom Grad 2} \\ +\only<2->{3}& +\only<3->{9 Werte eines Polynoms vom Grad 2} \\ &&\\ -\only<3->{k} & -\only<3->{t} & -\only<3->{k+2t Werte eines Polynoms vom Grad k-1} \\ +\only<4->{$k$} & +\only<4->{$t$} & +\only<4->{$k+2t$ Werte eines Polynoms vom Grad $k-1$} \\ \hline &&\\ &&\\ \multicolumn{3}{l} { - \only<4>{Ausserdem können bis zu 2t Fehler erkannt werden!} + \only<4>{Ausserdem können bis zu $2t$ Fehler erkannt werden!} } \end{tabular} \end{center} @@ -85,8 +87,9 @@ \begin{frame} \frametitle{Idee} \begin{itemize} - \item Idee mit Fourier Transformieren und dann senden. - \item Danach Empfangen und Rücktransformieren. + \item Fourier-transformieren + \item Übertragung + \item Rücktransformieren \end{itemize} \end{frame} %------------------------------------------------------------------------------- @@ -118,14 +121,16 @@ %------------------------------------------------------------------------------- \begin{frame} \frametitle{Diskrete Fourier Transformation} - Die Diskrete Fourier Transformation ist so gegeben: + \begin{itemize} + \item Diskrete Fourier-Transformation gegeben durch: + \[ \label{ft_discrete} \hat{c}_{k} = \frac{1}{N} \sum_{n=0}^{N-1} {f}_n \cdot e^{-\frac{2\pi j}{N} \cdot kn} \] - Ersetzten als: + \item Ersetzte \[ w = e^{-\frac{2\pi j}{N} k} \] @@ -133,6 +138,7 @@ \[ \hat{c}_{k}=\frac{1}{N}( {f}_0 w^0 + {f}_1 w^1 + {f}_2 w^2 + \dots + {f}_{N-1} w^N) \] + \end{itemize} \end{frame} %------------------------------------------------------------------------------- @@ -145,8 +151,8 @@ = \frac{1}{N} \begin{pmatrix} w^0 & w^0 & w^0 & \dots &w^0 \\ - w^0 & w^1 &w^2 & \dots &w^N \\ - w^0 & w^2 &w^4 & \dots &w^{2N} \\ + w^0 & w^1 &w^2 & \dots &w^{N-1} \\ + w^0 & w^2 &w^4 & \dots &w^{2(N-1)} \\ \vdots & \vdots &\vdots &\ddots &\vdots \\ w^0 & w^{1(N-1)}&w^{2(N-1)}& \dots &w^{(N-1)(N-1)} \\ \end{pmatrix} @@ -167,7 +173,7 @@ Wie wird der Fehler lokalisiert? \only<2>{ \newline - Indem in einem Endlichen Körper gerechnet wird. + Indem in einem endlichen Körper gerechnet wird. } \end{frame} %------------------------------------------------------------------------------- -- cgit v1.2.1 From 5bca0960f8c9635375d2ca53c93d2bc5a2e37c10 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Thu, 22 Apr 2021 22:59:07 +0200 Subject: Animation verbessert --- buch/papers/reedsolomon/RS presentation/RS.tex | 37 ++++++++++++++------------ 1 file changed, 20 insertions(+), 17 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/RS presentation/RS.tex b/buch/papers/reedsolomon/RS presentation/RS.tex index 9811cf6..732cee5 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.tex +++ b/buch/papers/reedsolomon/RS presentation/RS.tex @@ -24,9 +24,9 @@ \begin{frame} \frametitle{Reed-Solomon-Code:} \begin{itemize} - \item \only<1>{Für Übertragung von Daten} - \item \only<2->{Ermöglicht Korrektur von Übertragungsfehler} - \item \only<3->{Wird verwendet in: CD, QR-Codes, Voyager-Sonde, etc.} + \visible<1->{\item Für Übertragung von Daten} + \visible<2->{\item Ermöglicht Korrektur von Übertragungsfehler} + \visible<3->{\item Wird verwendet in: CD, QR-Codes, Voyager-Sonde, etc.} \end{itemize} \end{frame} %------------------------------------------------------------------------------- @@ -37,6 +37,7 @@ \end{itemize} \end{frame} \begin{frame} + \frametitle{Beispiel} Übertragen von ${f}_2=\textcolor{blue}{2}$, ${f}_1=\textcolor{blue}{1}$, ${f}_0=\textcolor{blue}{5}$ als $ p(w) = \textcolor{blue}{2}w^2 + \textcolor{blue}{1}w + \textcolor{blue}{5} $. @@ -66,18 +67,18 @@ \hline 3 & 2 & 7 Werte eines Polynoms vom Grad 2 \\ 4 & 2 & 8 Werte eines Polynoms vom Grad 3 \\ -\only<2->{3}& -\only<2->{3}& -\only<3->{9 Werte eines Polynoms vom Grad 2} \\ +\visible<2->{3}& +\visible<2->{3}& +\visible<3->{9 Werte eines Polynoms vom Grad 2} \\ &&\\ -\only<4->{$k$} & -\only<4->{$t$} & -\only<4->{$k+2t$ Werte eines Polynoms vom Grad $k-1$} \\ +\visible<4->{$k$} & +\visible<4->{$t$} & +\visible<4->{$k+2t$ Werte eines Polynoms vom Grad $k-1$} \\ \hline &&\\ &&\\ \multicolumn{3}{l} { - \only<4>{Ausserdem können bis zu $2t$ Fehler erkannt werden!} + \visible<4>{Ausserdem können bis zu $2t$ Fehler erkannt werden!} } \end{tabular} \end{center} @@ -123,21 +124,23 @@ \frametitle{Diskrete Fourier Transformation} \begin{itemize} \item Diskrete Fourier-Transformation gegeben durch: - + \visible<1->{ \[ \label{ft_discrete} \hat{c}_{k} = \frac{1}{N} \sum_{n=0}^{N-1} {f}_n \cdot e^{-\frac{2\pi j}{N} \cdot kn} - \] + \]} + \visible<2->{ \item Ersetzte \[ w = e^{-\frac{2\pi j}{N} k} - \] - Wenn $N$ konstant: + \]} + \visible<3->{ + \item Wenn $N$ konstant: \[ \hat{c}_{k}=\frac{1}{N}( {f}_0 w^0 + {f}_1 w^1 + {f}_2 w^2 + \dots + {f}_{N-1} w^N) - \] + \]} \end{itemize} \end{frame} @@ -166,12 +169,12 @@ \] \end{frame} %------------------------------------------------------------------------------- -\section{Probleme und Fragen} + \begin{frame} \frametitle{Probleme und Fragen} Wie wird der Fehler lokalisiert? - \only<2>{ + \visible<2>{ \newline Indem in einem endlichen Körper gerechnet wird. } -- cgit v1.2.1 From 967ff1f33d3faaa1e344ff687aff6c07cde29b77 Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Thu, 22 Apr 2021 23:33:02 +0200 Subject: Update RS.tex --- buch/papers/reedsolomon/RS presentation/RS.tex | 288 ++++++++++++++----------- 1 file changed, 165 insertions(+), 123 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/RS presentation/RS.tex b/buch/papers/reedsolomon/RS presentation/RS.tex index 732cee5..61324f7 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.tex +++ b/buch/papers/reedsolomon/RS presentation/RS.tex @@ -15,6 +15,7 @@ \date{26.04.2021} \subject{Mathematisches Seminar} \setbeamercovered{transparent} + %\setbeamercovered{invisible} \setbeamertemplate{navigation symbols}{} \begin{frame}[plain] \maketitle @@ -83,7 +84,11 @@ \end{tabular} \end{center} \end{frame} +<<<<<<< Updated upstream %------------------------------------------------------------------------------- +======= + +>>>>>>> Stashed changes \section{Diskrete Fourier Transformation} \begin{frame} \frametitle{Idee} @@ -179,26 +184,38 @@ Indem in einem endlichen Körper gerechnet wird. } \end{frame} +<<<<<<< Updated upstream %------------------------------------------------------------------------------- +======= + +\section{Reed-Solomon in Endlichen Körpern} + +>>>>>>> Stashed changes \begin{frame} \frametitle{Reed-Solomon in Endlichen Körpern} \begin{itemize} - \item Warum Endliche Körper? + \onslide<1->{\item Warum endliche Körper?} - \qquad bessere Laufzeit + \onslide<1->{\qquad konkrete Zahlen $\rightarrow$ keine Rundungsfehler} - \vspace{10pt} + \onslide<1->{\qquad digitale Fehlerkorrektur} - \item Nachricht = Nutzdaten + Fehlerkorrekturteil + \onslide<1->{\qquad bessere Laufzeit} \vspace{10pt} - \item den Fehlerkorrekturteil brauchen wir im Optimalfall nicht + \onslide<1->{\item Nachricht = Nutzdaten + Fehlerkorrekturteil} \vspace{10pt} - \item Im Fehlerfall sollen wir aus der Nachricht ein Lokatorpolynom berechnen können, welches die Fehlerhaften Stellen beinhaltet + \onslide<1->{\item aus Fehlerkorrekturteil die Fehlerstellen finden} + + \onslide<1->{\qquad $\Rightarrow$ gesucht ist ein Lokatorpolynom} + +% \vspace{10pt} + +% \onslide<1->{\item Im Fehlerfall sollen wir aus der Nachricht ein Lokatorpolynom berechnen können, welches die fehlerhaften Stellen beinhaltet} % Wir sollten im Fehlerfall in der Lage sein, aus der Nachricht ein Lokatorpolynom zu berechnen, welches die Fehlerhaften Stellen beinhaltet @@ -212,35 +229,35 @@ % sollten wir fehler bekommen, was uns die korrekturstellen mitgeteilt wird, dann ist es unsere aufgabe ein lokatorpolynom zu finden, welches uns verrät, auf welchen zeilen der Fehler aufgetreten ist \end{frame} -%------------------------------------------------------------------------------- +%------------------------------------------------------------------------------- \begin{frame} \frametitle{Definition eines Beispiels} \begin{itemize} - \item Endlicher Körper $q = 11$ + \only<1->{\item endlicher Körper $q = 11$} \only<1->{ist eine Primzahl} - \only<1->{beinhaltet die Zahlen $\mathbb{Z}_{11} = [0,1,2,3,4,5,6,7,8,9,10]$} + \only<1->{beinhaltet die Zahlen $\mathbb{F}_{11} = \{0,1,2,3,4,5,6,7,8,9,10\}$} \vspace{10pt} - \only<1->{\item Nachrichtenblock $n = q-1$} + \only<1->{\item Nachrichtenblock $=$ Nutzlast $+$ Fehlerkorrekturstellen - wird an den Empfänger gesendet + $n = q - 1 = 10$ Zahlen} \vspace{10pt} - \only<1->{\item max. Fehler $z = 2$} + \only<1->{\item Max.~Fehler $z = 2$ - maximale Anzahl von Fehler, die wir noch korrigieren können + maximale Anzahl von Fehler, die wir noch korrigieren können} \vspace{10pt} \only<1->{\item Nutzlast $k = n -2t = 6$ Zahlen} - Fehlerstellen $2t = 4$ Zahlen + \only<1->{Fehlerkorrkturstellen $2t = 4$ Zahlen} \only<1->{Nachricht $m = [0,0,0,0,4,7,2,5,8,1]$} @@ -250,52 +267,54 @@ \end{frame} %------------------------------------------------------------------------------- +\section{Codierung eines Beispiels} \begin{frame} \frametitle{Codierung} \begin{itemize} - \item Ansatz aus den Komplexen Zahlen mit der Fouriertransformation + \only<1->{\item Ansatz aus den komplexen Zahlen mit der diskreten Fouriertransformation} \vspace{10pt} - \item $\mathrm{e}$ existiert nicht in $\mathbb{Z}_{11}$ + \only<1->{\item Eulersche Zahl $\mathrm{e}$ existiert nicht in $\mathbb{F}_{11}$} \vspace{10pt} - \item wir suchen $a$ so, dass $a^i$ den gesamten Zahlenbereich von $\mathbb{Z}_{11}$ abdeckt + \only<1->{\item Wir suchen $a$ so, dass $a^i$ den gesamten Zahlenbereich von $\mathbb{F}_{11}$ abdecken - $\mathbb{Z}_{11}\setminus\{0\} = [a^0, a^1, a^2, a^3, a^4, a^5, a^6, a^7, a^8, a^9]$ + $\mathbb{Z}_{11}\setminus\{0\} = \{a^0, a^1, a^2, a^3, a^4, a^5, a^6, a^7, a^8, a^9\}$} \vspace{10pt} - \item wir wählen $a = 8$ + \only<1->{\item Wir wählen $a = 8$} - $\mathbb{Z}_{11}\setminus\{0\} = [1,8,9,6,4,10,3,2,5,7]$ + \only<1->{$\mathbb{Z}_{11}\setminus\{0\} = \{1,8,9,6,4,10,3,2,5,7\}$} - 8 ist eine Primitive Einheitswurzel + \only<1->{$8$ ist eine primitive Einheitswurzel} \vspace{10pt} - \item $m(8^0) = 4\cdot1 + 7\cdot1 + 2\cdot1 + 5\cdot1 + 8\cdot1 + 1 = 5$ + \only<1->{\item $m(8^0) = 4\cdot1 + 7\cdot1 + 2\cdot1 + 5\cdot1 + 8\cdot1 + 1 = 5$} - $\Rightarrow$ \qquad können wir auch als Matrix schreiben + \only<1->{$\Rightarrow$ \qquad können wir auch als Matrix schreiben} \end{itemize} \end{frame} -%------------------------------------------------------------------------------- +%------------------------------------------------------------------------------- \begin{frame} \frametitle{Codierung} \begin{itemize} - \item Übertragungsvektor $V$ + \only<1->{\item Übertragungsvektor $v$} - \item $V = A \cdot m$ + \only<1->{\item $v = A \cdot m$} \end{itemize} \[ - V = \begin{pmatrix} + \only<1->{ + v = \begin{pmatrix} 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0\\ 8^0& 8^1& 8^2& 8^3& 8^4& 8^5& 8^6& 8^7& 8^8& 8^9\\ 8^0& 8^2& 8^4& 8^6& 8^8& 8^{10}& 8^{12}& 8^{14}& 8^{16}& 8^{18}\\ @@ -311,29 +330,34 @@ \begin{pmatrix} 1 \\ 8 \\ 5 \\ 2 \\ 7 \\ 4 \\ 0 \\ 0 \\ 0 \\ 0 \\ \end{pmatrix} + } \] - + \only<1->{ \begin{itemize} - \item $V = [5,3,6,5,2,10,2,7,10,4]$ + \item $v = [5,3,6,5,2,10,2,7,10,4]$ \end{itemize} - + } \end{frame} %------------------------------------------------------------------------------- +\section{Decodierung ohne Fehler} \begin{frame} \frametitle{Decodierung ohne Fehler} \begin{itemize} - \item Der Empfänger erhält den unveränderten Vektor $V = [5,3,6,5,2,10,2,7,10,4]$ + \only<1->{\item Der Empfänger erhält den unveränderten Vektor + $v = [5,3,6,5,2,10,2,7,10,4]$} \vspace{10pt} - \item Wir suchen die Inverse der Matrix A + \only<1->{\item Wir suchen die Inverse der Matrix $A$} + + \vspace{10pt} \end{itemize} \begin{columns}[t] \begin{column}{0.50\textwidth} - + \only<1->{ Inverse der Fouriertransformation \vspace{10pt} \[ @@ -341,25 +365,26 @@ \] \vspace{10pt} \[ - f(t) = \frac{1}{2 \pi} \int_{-\infty}^{\infty} F(\omega) \mathrm{e}^{j \omega t} d\omega + \mathfrak{F}^{-1}(F(\omega)) = f(t) = \frac{1}{2 \pi} \int_{-\infty}^{\infty} F(\omega) \mathrm{e}^{j \omega t} d\omega \] - + } \end{column} \begin{column}{0.50\textwidth} - - Inverse von a + \only<1->{ + Inverse von $a$} \vspace{10pt} + \only<1->{ \[ 8^{1} \Rightarrow 8^{-1} \] - - Inverse finden wir über den Eulkidischen Algorithmus + } + \only<1->{Inverse finden wir über den Eulkidischen Algorithmus} \vspace{10pt} \end{column} \end{columns} \end{frame} -%------------------------------------------------------------------------------- +%------------------------------------------------------------------------------- \begin{frame} \frametitle{Der Euklidische Algorithmus} @@ -385,8 +410,8 @@ \begin{column}{0.50\textwidth} \begin{center} - - \begin{tabular}{| c | c c | c | c c |} + \only<1->{ + \begin{tabular}{| c | c c | c | r r |} \hline $k$ & $a_i$ & $b_i$ & $q_i$ & $c_i$ & $d_i$\\ \hline @@ -395,17 +420,17 @@ $1$& $11$& $8$& $1$& $1$& $0$\\ $2$& $8$& $3$& $2$& $-1$& $1$\\ $3$& $3$& $2$& $1$& $3$& $-2$\\ - $4$& $2$& $1$& $2$& $-4$& $3$\\ + $4$& $2$& $1$& $2$& \textcolor<3->{blue}{$-4$}& \textcolor<3->{red}{$3$}\\ $5$& $1$& $0$& & $11$& $-8$\\ \hline \end{tabular} - + } \vspace{10pt} \begin{tabular}{rcl} - $-4\cdot 8 + 3 \cdot 11$ &$=$& $1$\\ - $7 \cdot 8 + 3 \cdot 11$ &$=$& $1$\\ - $8^{-1}$ &$=$& $7$ + \only<1->{$\textcolor{blue}{-4} \cdot 8 + \textcolor{red}{3} \cdot 11$ &$=$& $1$}\\ + \only<1->{$7 \cdot 8 + 3 \cdot 11$ &$=$& $1$}\\ + \only<1->{$8^{-1}$ &$=$& $7$} \end{tabular} @@ -417,17 +442,17 @@ \end{frame} %------------------------------------------------------------------------------- \begin{frame} - \frametitle{Decodirung mit Inverser Matrix} + \frametitle{Decodierung mit Inverser Matrix} \begin{itemize} - \item $V = [5,3,6,5,2,10,2,7,10,4]$ + \only<1->{\item $v = [5,3,6,5,2,10,2,7,10,4]$} - \item $m = 1/10 \cdot A^{-1} \cdot V$ + \only<1->{\item $m = 1/10 \cdot A^{-1} \cdot v$} - \item $m = 10 \cdot A^{-1} \cdot V$ + \only<1->{\item $m = 10 \cdot A^{-1} \cdot v$} \end{itemize} - + \only<1->{ \[ m = \begin{pmatrix} 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0\\ @@ -446,85 +471,95 @@ 5 \\ 3 \\ 6 \\ 5 \\ 2 \\ 10 \\ 2 \\ 7 \\ 10 \\ 4 \\ \end{pmatrix} \] - + } + \only<1->{ \begin{itemize} \item $m = [0,0,0,0,4,7,2,5,8,1]$ \end{itemize} - + } \end{frame} %------------------------------------------------------------------------------- +\section{Decodierung mit Fehler} \begin{frame} \frametitle{Decodierung mit Fehler - Ansatz} \begin{itemize} - \item Gesendet: $V = [5,3,6,5,2,10,2,7,10,4]$ + \only<1->{\item Gesendet: $v = [5,3,6,5,2,10,2,7,10,4]$} - \item Empfangen: $W = [5,3,6,8,2,10,2,7,1,4]$ + \only<1->{\item Empfangen: $w = [5,3,6,\textcolor{red}{8},2,10,2,7,\textcolor{red}{1},4]$} + + \only<1->{\item Rücktransformation: $r = [\underbrace{5,7,4,10,}_{Fehlerinfo}5,4,5,7,6,7]$} - \item Rücktransformation: $r = [\underbrace{5,7,4,10,}_{Fehlerstellen}5,4,5,7,6,7]$ \end{itemize} - Wie finden wir die Fehler? + \only<1->{Wie finden wir die Fehler?} + \only<1->{ \begin{itemize} \item $m(X) = 4X^5 + 7X^4 + 2X^3 + 5X^2 + 8X + 1$ \item $r(X) = 5X^9 + 7X^8 + 4X^7 + 10X^6 + 5X^5 + 4X^4 + 5X^3 + 7X^2 + 6X + 7$ + %\only<7->{\item $e(X) = r(X) - m(X)$} + \item $e(X) = r(X) - m(X)$ + \end{itemize} - + } + \begin{center} - + \only<1->{ \begin{tabular}{c c c c c c c c c c c} \hline $i$& $0$& $1$& $2$& $3$& $4$& $5$& $6$& $7$& $8$& $9$\\ \hline - $r(a^{i})$& $5$& $3$& $6$& $8$& $2$& $10$& $2$& $7$& $1$& $4$\\ - $m(a^{i})$& $5$& $3$& $6$& $5$& $2$& $10$& $2$& $7$& $10$& $4$\\ - $e(a^{i})$& $0$& $0$& $0$& $3$& $0$& $0$& $0$& $0$& $2$& $0$\\ + $r(a^{i})$& \only<1->{$5$& $3$& $6$& $8$& $2$& $10$& $2$& $7$& $1$& $4$}\\ + $m(a^{i})$& \only<1->{$5$& $3$& $6$& $5$& $2$& $10$& $2$& $7$& $10$& $4$}\\ + $e(a^{i})$& \only<1->{$0$& $0$& $0$& $3$& $0$& $0$& $0$& $0$& $2$& $0$}\\ \hline \end{tabular} - + } \end{center} - + + \only<1->{ \begin{itemize} \item Alle Stellen, die nicht Null sind, sind Fehler \end{itemize} - + } + \end{frame} -%------------------------------------------------------------------------------- +%------------------------------------------------------------------------------- \begin{frame} \frametitle{Nullstellen des Fehlerpolynoms finden} \begin{itemize} - \item Satz von Fermat: $f(X) = X^{q-1}-1=0$ + \only<1->{\item Satz von Fermat: $f(X) = X^{q-1}-1=0$} \vspace{10pt} - \item $f(X) = X^{10}-1 = 0$ \qquad für $X = [1,2,3,4,5,6,7,8,9,10]$ + \only<1->{\item $f(X) = X^{10}-1 = 0$ \qquad für $X \in \{1,2,3,4,5,6,7,8,9,10\}$} \vspace{10pt} - \item $f(X) = (X-a^0)(X-a^1)(X-a^2)(X-a^3)(X-a^4)(X-a^5)(X-a^6) \cdot$ + \only<1->{\item $f(X) = (X-a^0)(X-a^1)(X-a^2)(X-a^3)(X-a^4)(X-a^5)(X-a^6) \cdot$ - \qquad \qquad $(X-a^7)(X-a^8)(X-a^9)$ + \qquad \qquad $(X-a^7)(X-a^8)(X-a^9)$} \vspace{10pt} - \item $e(X) = (X-a^0)(X-a^1)(X-a^2) \qquad \qquad (X-a^4)(X-a^5)(X-a^6) \cdot$ + \only<1->{\item $e(X) = (X-a^0)(X-a^1)(X-a^2) \qquad \qquad (X-a^4)(X-a^5)(X-a^6) \cdot$ - \qquad \qquad $(X-a^7) \qquad \qquad (X-a^9) \cdot p(x)$ + \qquad \qquad $(X-a^7) \qquad \qquad (X-a^9) \cdot p(x)$} \vspace{10pt} - \item $\operatorname{ggT}$ gibt uns eine Liste der Nullstellen, an denen es keine Fehler gegeben hat + \only<1->{\item $\operatorname{ggT}$ gibt uns eine Liste der Nullstellen, an denen es keine Fehler gegeben hat} \vspace{10pt} - $\operatorname{ggT}(f(X),e(X)) = (X-a^0)(X-a^1)(X-a^2) \qquad \qquad (X-a^4)(X-a^5)(X-a^6) \cdot$ + \only<1->{$\operatorname{ggT}(f(X),e(X)) = (X-a^0)(X-a^1)(X-a^2) \qquad \qquad (X-a^4)(X-a^5)(X-a^6) \cdot$ - \qquad \qquad \qquad \qquad $(X-a^7) \qquad \qquad (X-a^9)$ + \qquad \qquad \qquad \qquad $(X-a^7) \qquad \qquad (X-a^9)$} \end{itemize} @@ -574,33 +609,33 @@ \end{frame} %------------------------------------------------------------------------------- \begin{frame} - \frametitle{kennen wir $e$?} + \frametitle{Kennen wir $e(X)$?} \begin{itemize} - \item $e$ ist unbekannt auf der Empfängerseite + \only<1->{\item $e(X)$ ist unbekannt auf der Empfängerseite} \vspace{10pt} - \item $e(X) = r(X) - m(X)$ \qquad $\rightarrow$ \qquad $m(X)$ ist unbekannt? + \only<1->{\item $e(X) = r(X) - m(X)$ \qquad $\rightarrow$ \qquad $m(X)$ ist unbekannt?} \vspace{10pt} - \item $m$ ist nicht gänzlich unbekannt: $m = [0,0,0,0,?,?,?,?,?,?]$ + \only<1->{\item $m$ ist nicht gänzlich unbekannt: $m = [0,0,0,0,?,?,?,?,?,?]$ - In den bekannten Stellen liegt auch die Information, wo es Fehler gegeben hat + In den bekannten Stellen liegt auch die Information, wo es Fehler gegeben hat} \vspace{10pt} - \item daraus folgt $e(X) = 5X^9 + 7X^8 + 4X^7 + 10X^6 + p(X)$ + \only<1->{\item Daraus folgt $e(X) = 5X^9 + 7X^8 + 4X^7 + 10X^6 + p(X)$} \vspace{10pt} - \item $f(X) = X^{10} - 1 = X^{10} + 10$ + \only<1->{\item $f(X) = X^{10} - 1 = X^{10} + 10$} \vspace{10pt} - \item jetzt können wir den $\operatorname{ggT}$ von $f(X)$ und $e(X)$ berechnen + \only<1->{\item Jetzt können wir den $\operatorname{ggT}$ von $f(X)$ und $e(X)$ berechnen} \end{itemize} \end{frame} @@ -608,8 +643,8 @@ \begin{frame} \frametitle{Der Euklidische Algorithmus (nochmal)} - $\operatorname{ggT}(f(X),e(X))$ hat den Grad 8 - + \only<1->{$\operatorname{ggT}(f(X),e(X))$ hat den Grad $8$} + \only<1->{ \[ \arraycolsep=1.4pt \begin{array}{rcrcrcrcccrcrcrcrcrcrcrcrcr} @@ -620,7 +655,8 @@ & & & &6X^8&+&0X^7&+&p(X)& & & & & & & & & & & & \\ \end{array} \] - + } + \only<1->{ \[ \arraycolsep=1.4pt \begin{array}{rcrcrcrcccrcrcrcrcrcrcrcrcr} @@ -629,14 +665,14 @@ && 7X^8&+& p(X)& & & & & & & & & & & & & & & & \\ \end{array} \] - + } \vspace{10pt} - $\operatorname{ggT}(f(X),e(X)) = 6X^8$ + \only<1->{$\operatorname{ggT}(f(X),e(X)) = 6X^8$} \vspace{10pt} - $\operatorname{kgV}$ durch den erweiterten Euklidischen Algorithmus bestimmen + \only<1->{ $\operatorname{kgV}$ durch den erweiterten Euklidischen Algorithmus bestimmen } \end{frame} @@ -653,7 +689,7 @@ & & $0$& $1$\\ $0$& $9X + 5$& $1$& $0$\\ $1$& $10X + 3$& $9X+5$& $1$\\ - $2$& & $2X^2 + 0X + 5$& $10X + 3$\\ + $2$& & \textcolor<2->{blue}{$2X^2 + 0X + 5$}& $10X + 3$\\ \hline \end{tabular} @@ -662,49 +698,54 @@ \vspace{10pt} \begin{tabular}{ll} - Somit erhalten wir den Faktor& $d(X) = 2X^2 + 5$\\ - Faktorisiert erhalten wir& $d(X) = 2(X-5)(X-6)$\\ - Lokatorpolynom& $d(X) = (X-a^i)(X-a^i)$ + \only<1->{Somit erhalten wir den Faktor& $d(X) = 2X^2 + 5$\\} + \only<1->{Faktorisiert erhalten wir& $d(X) = 2(X-5)(X-6)$\\} + \only<1->{Lokatorpolynom& $d(X) = (X-a^i)(X-a^i)$} \end{tabular} \vspace{10pt} - + \only<1->{ \begin{center} $a^i = 5 \qquad \Rightarrow \qquad i = 3$ $a^i = 6 \qquad \Rightarrow \qquad i = 8$ \end{center} - - $D = [3,8]$ + } + \only<1->{$d(X) = (X-a^3)(X-a^8)$} \end{frame} -%------------------------------------------------------------------------------- +%------------------------------------------------------------------------------- +\section{Nachricht Rekonstruieren} \begin{frame} \frametitle{Rekonstruktion der Nachricht} \begin{itemize} - \item $W = [5,3,6,8,2,10,2,7,1,4]$ + \only<1->{\item $w = [5,3,6,8,2,10,2,7,1,4]$} - \item $D = [3,8]$ + \only<1->{\item $d(X) = (X-\textcolor<4->{red}{a^3})(X-\textcolor<4->{red}{a^8})$} \end{itemize} - + \only<1->{ \[ + \textcolor{gray}{ \begin{pmatrix} - 5 \\ 3 \\ 6 \\ 8 \\ 2 \\ 10 \\ 2 \\ 7 \\ 1 \\ 4 \\ + a^0 \\ a^1 \\ a^2 \\ \textcolor<4->{red}{a^3} \\ a^4 \\ a^5 \\ a^6 \\ a^7 \\ \textcolor<4->{red}{a^8} \\ a^9 \\ + \end{pmatrix}} + \begin{pmatrix} + 5 \\ 3 \\ 6 \\ \textcolor<4->{red}{8} \\ 2 \\ 10 \\ 2 \\ 7 \\ \textcolor<4->{red}{1} \\ 4 \\ \end{pmatrix} = \begin{pmatrix} 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0\\ 8^0& 8^1& 8^2& 8^3& 8^4& 8^5& 8^6& 8^7& 8^8& 8^9\\ 8^0& 8^2& 8^4& 8^6& 8^8& 8^{10}& 8^{12}& 8^{14}& 8^{16}& 8^{18}\\ - 8^0& 8^3& 8^6& 8^9& 8^{12}& 8^{15}& 8^{18}& 8^{21}& 8^{24}& 8^{27}\\ + \textcolor<4->{red}{8^0}& \textcolor<4->{red}{8^3}& \textcolor<4->{red}{8^6}& \textcolor<4->{red}{8^9}& \textcolor<4->{red}{8^{12}}& \textcolor<4->{red}{8^{15}}& \textcolor<4->{red}{8^{18}}& \textcolor<4->{red}{8^{21}}& \textcolor<4->{red}{8^{24}}& \textcolor<4->{red}{8^{27}}\\ 8^0& 8^4& 8^8& 8^{12}& 8^{16}& 8^{20}& 8^{24}& 8^{28}& 8^{32}& 8^{36}\\ 8^0& 8^5& 8^{10}& 8^{15}& 8^{20}& 8^{25}& 8^{30}& 8^{35}& 8^{40}& 8^{45}\\ 8^0& 8^6& 8^{12}& 8^{18}& 8^{24}& 8^{30}& 8^{36}& 8^{42}& 8^{48}& 8^{54}\\ 8^0& 8^7& 8^{14}& 8^{21}& 8^{28}& 8^{35}& 8^{42}& 8^{49}& 8^{56}& 8^{63}\\ - 8^0& 8^8& 8^{16}& 8^{24}& 8^{32}& 8^{40}& 8^{48}& 8^{56}& 8^{64}& 8^{72}\\ + \textcolor<4->{red}{8^0}& \textcolor<4->{red}{8^8}& \textcolor<4->{red}{8^{16}}& \textcolor<4->{red}{8^{24}}& \textcolor<4->{red}{8^{32}}& \textcolor<4->{red}{8^{40}}& \textcolor<4->{red}{8^{48}}& \textcolor<4->{red}{8^{56}}& \textcolor<4->{red}{8^{64}}& \textcolor<4->{red}{8^{72}}\\ 8^0& 8^9& 8^{18}& 8^{27}& 8^{36}& 8^{45}& 8^{54}& 8^{63}& 8^{72}& 8^{81}\\ \end{pmatrix} \cdot @@ -712,13 +753,14 @@ m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ m_6 \\ m_7 \\ m_8 \\ m_9 \\ \end{pmatrix} \] - + } + \only<1->{ \begin{itemize} \item Fehlerstellen entfernen \end{itemize} - + } \end{frame} -%------------------------------------------------------------------------------- +%------------------------------------------------------------------------------- \begin{frame} \frametitle{Rekonstruktion der Nachricht} @@ -728,25 +770,25 @@ \end{pmatrix} = \begin{pmatrix} - 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0\\ - 8^0& 8^1& 8^2& 8^3& 8^4& 8^5& 8^6& 8^7& 8^8& 8^9\\ - 8^0& 8^2& 8^4& 8^6& 8^8& 8^{10}& 8^{12}& 8^{14}& 8^{16}& 8^{18}\\ - 8^0& 8^4& 8^8& 8^{12}& 8^{16}& 8^{20}& 8^{24}& 8^{28}& 8^{32}& 8^{36}\\ - 8^0& 8^5& 8^{10}& 8^{15}& 8^{20}& 8^{25}& 8^{30}& 8^{35}& 8^{40}& 8^{45}\\ - 8^0& 8^6& 8^{12}& 8^{18}& 8^{24}& 8^{30}& 8^{36}& 8^{42}& 8^{48}& 8^{54}\\ - 8^0& 8^7& 8^{14}& 8^{21}& 8^{28}& 8^{35}& 8^{42}& 8^{49}& 8^{56}& 8^{63}\\ - 8^0& 8^9& 8^{18}& 8^{27}& 8^{36}& 8^{45}& 8^{54}& 8^{63}& 8^{72}& 8^{81}\\ + 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& \textcolor<3->{green}{8^0}& \textcolor<3->{green}{8^0}& \textcolor<3->{green}{8^0}& \textcolor<3->{green}{8^0}\\ + 8^0& 8^1& 8^2& 8^3& 8^4& 8^5& \textcolor<3->{green}{8^6}& \textcolor<3->{green}{8^7}& \textcolor<3->{green}{8^8}& \textcolor<3->{green}{8^9}\\ + 8^0& 8^2& 8^4& 8^6& 8^8& 8^{10}& \textcolor<3->{green}{8^{12}}& \textcolor<3->{green}{8^{14}}& \textcolor<3->{green}{8^{16}}& \textcolor<3->{green}{8^{18}}\\ + 8^0& 8^4& 8^8& 8^{12}& 8^{16}& 8^{20}& \textcolor<3->{green}{8^{24}}& \textcolor<3->{green}{8^{28}}& \textcolor<3->{green}{8^{32}}& \textcolor<3->{green}{8^{36}}\\ + 8^0& 8^5& 8^{10}& 8^{15}& 8^{20}& 8^{25}& \textcolor<3->{green}{8^{30}}& \textcolor<3->{green}{8^{35}}& \textcolor<3->{green}{8^{40}}& \textcolor<3->{green}{8^{45}}\\ + 8^0& 8^6& 8^{12}& 8^{18}& 8^{24}& 8^{30}& \textcolor<3->{green}{8^{36}}& \textcolor<3->{green}{8^{42}}& \textcolor<3->{green}{8^{48}}& \textcolor<3->{green}{8^{54}}\\ + 8^0& 8^7& 8^{14}& 8^{21}& 8^{28}& 8^{35}& \textcolor<3->{green}{8^{42}}& \textcolor<3->{green}{8^{49}}& \textcolor<3->{green}{8^{56}}& \textcolor<3->{green}{8^{63}}\\ + 8^0& 8^9& 8^{18}& 8^{27}& 8^{36}& 8^{45}& \textcolor<3->{green}{8^{54}}& \textcolor<3->{green}{8^{63}}& \textcolor<3->{green}{8^{72}}& \textcolor<3->{green}{8^{81}}\\ \end{pmatrix} \cdot \begin{pmatrix} - m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ m_6 \\ m_7 \\ m_8 \\ m_9 \\ + m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ \textcolor<2->{green}{m_6} \\ \textcolor<2->{green}{m_7} \\ \textcolor<2->{green}{m_8} \\ \textcolor<2->{green}{m_9} \\ \end{pmatrix} \] - + \only<1->{ \begin{itemize} \item Nullstellen entfernen \end{itemize} - + } \end{frame} %------------------------------------------------------------------------------- \begin{frame} @@ -754,7 +796,7 @@ \[ \begin{pmatrix} - 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ 7 \\ 4 \\ + 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ \textcolor<2->{red}{7} \\ \textcolor<2->{red}{4} \\ \end{pmatrix} = \begin{pmatrix} @@ -764,8 +806,8 @@ 8^0& 8^4& 8^8& 8^{12}& 8^{16}& 8^{20}\\ 8^0& 8^5& 8^{10}& 8^{15}& 8^{20}& 8^{25}\\ 8^0& 8^6& 8^{12}& 8^{18}& 8^{24}& 8^{30}\\ - 8^0& 8^7& 8^{14}& 8^{21}& 8^{28}& 8^{35}\\ - 8^0& 8^9& 8^{18}& 8^{27}& 8^{36}& 8^{45}\\ + \textcolor<2->{red}{8^0}& \textcolor<2->{red}{8^7}& \textcolor<2->{red}{8^{14}}& \textcolor<2->{red}{8^{21}}& \textcolor<2->{red}{8^{28}}& \textcolor<2->{red}{8^{35}}\\ + \textcolor<2->{red}{8^0}& \textcolor<2->{red}{8^9}& \textcolor<2->{red}{8^{18}}& \textcolor<2->{red}{8^{27}}& \textcolor<2->{red}{8^{36}}& \textcolor<2->{red}{8^{45}}\\ \end{pmatrix} \cdot \begin{pmatrix} @@ -774,11 +816,11 @@ \] \vspace{5pt} - + \only<1->{ \begin{itemize} \item Matrix in eine Quadratische Form bringen \end{itemize} - + } \end{frame} %------------------------------------------------------------------------------- \begin{frame} -- cgit v1.2.1 From 8c6a8e56c125c238dc64c21d1269fcdc7542c5cd Mon Sep 17 00:00:00 2001 From: JODBaer Date: Thu, 22 Apr 2021 23:45:32 +0200 Subject: =?UTF-8?q?merge=20lines=20gel=C3=B6scht?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buch/papers/reedsolomon/RS presentation/RS.tex | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/RS presentation/RS.tex b/buch/papers/reedsolomon/RS presentation/RS.tex index 61324f7..943f2da 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.tex +++ b/buch/papers/reedsolomon/RS presentation/RS.tex @@ -84,11 +84,9 @@ \end{tabular} \end{center} \end{frame} -<<<<<<< Updated upstream + %------------------------------------------------------------------------------- -======= ->>>>>>> Stashed changes \section{Diskrete Fourier Transformation} \begin{frame} \frametitle{Idee} @@ -184,13 +182,12 @@ Indem in einem endlichen Körper gerechnet wird. } \end{frame} -<<<<<<< Updated upstream + %------------------------------------------------------------------------------- -======= + \section{Reed-Solomon in Endlichen Körpern} ->>>>>>> Stashed changes \begin{frame} \frametitle{Reed-Solomon in Endlichen Körpern} -- cgit v1.2.1 From 179ea16b001b6640e9b720d53ffc06f3e2389ff2 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Fri, 23 Apr 2021 00:30:36 +0200 Subject: appostroph verbessert --- buch/papers/reedsolomon/RS presentation/RS.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/RS presentation/RS.tex b/buch/papers/reedsolomon/RS presentation/RS.tex index 943f2da..d09d77d 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.tex +++ b/buch/papers/reedsolomon/RS presentation/RS.tex @@ -64,7 +64,7 @@ \begin{center} \begin{tabular}{ c c c } \hline - ``Nutzlas´´ & Fehler & Versenden \\ + ``Nutzlast'' & Fehler & Versenden \\ \hline 3 & 2 & 7 Werte eines Polynoms vom Grad 2 \\ 4 & 2 & 8 Werte eines Polynoms vom Grad 3 \\ -- cgit v1.2.1 From ded210e33924d4c078e5a0d899c0585d7f987565 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Fri, 23 Apr 2021 12:58:40 +0200 Subject: Folien Verbesserungen animation --- buch/papers/reedsolomon/RS presentation/RS.aux | 167 +++++++++++----- buch/papers/reedsolomon/RS presentation/RS.log | 212 ++++++++++++++++----- buch/papers/reedsolomon/RS presentation/RS.nav | 117 ++++++++---- buch/papers/reedsolomon/RS presentation/RS.out | 9 +- buch/papers/reedsolomon/RS presentation/RS.pdf | Bin 135643 -> 207741 bytes buch/papers/reedsolomon/RS presentation/RS.snm | 2 +- .../reedsolomon/RS presentation/RS.synctex.gz | Bin 22450 -> 203648 bytes buch/papers/reedsolomon/RS presentation/RS.tex | 24 +-- buch/papers/reedsolomon/RS presentation/RS.toc | 11 +- 9 files changed, 388 insertions(+), 154 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/RS presentation/RS.aux b/buch/papers/reedsolomon/RS presentation/RS.aux index 005172f..065ba66 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.aux +++ b/buch/papers/reedsolomon/RS presentation/RS.aux @@ -26,52 +26,121 @@ \@writefile{nav}{\headcommand {\beamer@sectionpages {1}{1}}} \@writefile{nav}{\headcommand {\beamer@subsectionpages {1}{1}}} \@writefile{nav}{\headcommand {\sectionentry {1}{Einführung}{2}{Einführung}{0}}} -\@writefile{nav}{\headcommand {\slideentry {1}{0}{1}{2/2}{}{0}}} -\@writefile{nav}{\headcommand {\beamer@framepages {2}{2}}} -\HyPL@Entry{2<>} -\@writefile{toc}{\beamer@sectionintoc {2}{Polynom Ansatz}{3}{0}{2}} -\@writefile{nav}{\headcommand {\beamer@sectionpages {2}{2}}} -\@writefile{nav}{\headcommand {\beamer@subsectionpages {2}{2}}} -\@writefile{nav}{\headcommand {\sectionentry {2}{Polynom Ansatz}{3}{Polynom Ansatz}{0}}} -\@writefile{nav}{\headcommand {\slideentry {2}{0}{1}{3/3}{}{0}}} -\@writefile{nav}{\headcommand {\beamer@framepages {3}{3}}} -\HyPL@Entry{3<>} -\@writefile{nav}{\headcommand {\slideentry {2}{0}{2}{4/5}{}{0}}} -\@writefile{nav}{\headcommand {\beamer@framepages {4}{5}}} -\HyPL@Entry{5<>} -\@writefile{nav}{\headcommand {\slideentry {2}{0}{3}{6/6}{}{0}}} -\@writefile{nav}{\headcommand {\beamer@framepages {6}{6}}} -\HyPL@Entry{6<>} -\@writefile{toc}{\beamer@sectionintoc {3}{Fourier Transformation}{7}{0}{3}} -\@writefile{nav}{\headcommand {\beamer@sectionpages {3}{6}}} -\@writefile{nav}{\headcommand {\beamer@subsectionpages {3}{6}}} -\@writefile{nav}{\headcommand {\sectionentry {3}{Fourier Transformation}{7}{Fourier Transformation}{0}}} -\@writefile{nav}{\headcommand {\slideentry {3}{0}{1}{7/7}{}{0}}} -\@writefile{nav}{\headcommand {\beamer@framepages {7}{7}}} -\HyPL@Entry{7<>} -\@writefile{nav}{\headcommand {\slideentry {3}{0}{2}{8/14}{}{0}}} -\@writefile{nav}{\headcommand {\beamer@framepages {8}{14}}} -\HyPL@Entry{14<>} -\@writefile{toc}{\beamer@sectionintoc {4}{Diskrete Fourier Transformation}{15}{0}{4}} -\@writefile{nav}{\headcommand {\beamer@sectionpages {7}{14}}} -\@writefile{nav}{\headcommand {\beamer@subsectionpages {7}{14}}} -\@writefile{nav}{\headcommand {\sectionentry {4}{Diskrete Fourier Transformation}{15}{Diskrete Fourier Transformation}{0}}} -\@writefile{snm}{\beamer@slide {ft_discrete}{15}} -\newlabel{ft_discrete}{{8}{15}{Diskrete Fourier Transformation}{Doc-Start}{}} -\@writefile{nav}{\headcommand {\slideentry {4}{0}{1}{15/15}{}{0}}} -\@writefile{nav}{\headcommand {\beamer@framepages {15}{15}}} -\HyPL@Entry{15<>} -\@writefile{nav}{\headcommand {\slideentry {4}{0}{2}{16/16}{}{0}}} -\@writefile{nav}{\headcommand {\beamer@framepages {16}{16}}} -\HyPL@Entry{16<>} -\@writefile{toc}{\beamer@sectionintoc {5}{Probleme und Fragen}{17}{0}{5}} -\@writefile{nav}{\headcommand {\beamer@sectionpages {15}{16}}} -\@writefile{nav}{\headcommand {\beamer@subsectionpages {15}{16}}} -\@writefile{nav}{\headcommand {\sectionentry {5}{Probleme und Fragen}{17}{Probleme und Fragen}{0}}} -\@writefile{nav}{\headcommand {\slideentry {5}{0}{1}{17/18}{}{0}}} -\@writefile{nav}{\headcommand {\beamer@framepages {17}{18}}} -\@writefile{nav}{\headcommand {\beamer@partpages {1}{18}}} -\@writefile{nav}{\headcommand {\beamer@subsectionpages {17}{18}}} -\@writefile{nav}{\headcommand {\beamer@sectionpages {17}{18}}} -\@writefile{nav}{\headcommand {\beamer@documentpages {18}}} -\@writefile{nav}{\headcommand {\gdef \inserttotalframenumber {10}}} +\@writefile{nav}{\headcommand {\slideentry {1}{0}{1}{2/4}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {2}{4}}} +\HyPL@Entry{4<>} +\@writefile{toc}{\beamer@sectionintoc {2}{Polynom Ansatz}{5}{0}{2}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {2}{4}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {2}{4}}} +\@writefile{nav}{\headcommand {\sectionentry {2}{Polynom Ansatz}{5}{Polynom Ansatz}{0}}} +\@writefile{nav}{\headcommand {\slideentry {2}{0}{1}{5/5}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {5}{5}}} +\HyPL@Entry{5<>} +\@writefile{nav}{\headcommand {\slideentry {2}{0}{2}{6/8}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {6}{8}}} +\HyPL@Entry{8<>} +\@writefile{nav}{\headcommand {\slideentry {2}{0}{3}{9/12}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {9}{12}}} +\HyPL@Entry{12<>} +\@writefile{toc}{\beamer@sectionintoc {3}{Diskrete Fourier Transformation}{13}{0}{3}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {5}{12}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {5}{12}}} +\@writefile{nav}{\headcommand {\sectionentry {3}{Diskrete Fourier Transformation}{13}{Diskrete Fourier Transformation}{0}}} +\@writefile{nav}{\headcommand {\slideentry {3}{0}{1}{13/13}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {13}{13}}} +\HyPL@Entry{13<>} +\@writefile{nav}{\headcommand {\slideentry {3}{0}{2}{14/20}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {14}{20}}} +\HyPL@Entry{20<>} +\@writefile{snm}{\beamer@slide {ft_discrete}{21}} +\newlabel{ft_discrete}{{8}{21}{Diskrete Fourier Transformation}{Doc-Start}{}} +\@writefile{nav}{\headcommand {\slideentry {3}{0}{3}{21/23}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {21}{23}}} +\HyPL@Entry{23<>} +\@writefile{nav}{\headcommand {\slideentry {3}{0}{4}{24/24}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {24}{24}}} +\HyPL@Entry{24<>} +\@writefile{nav}{\headcommand {\slideentry {3}{0}{5}{25/26}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {25}{26}}} +\HyPL@Entry{26<>} +\@writefile{toc}{\beamer@sectionintoc {4}{Reed-Solomon in Endlichen Körpern}{27}{0}{4}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {13}{26}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {13}{26}}} +\@writefile{nav}{\headcommand {\sectionentry {4}{Reed-Solomon in Endlichen Körpern}{27}{Reed-Solomon in Endlichen Körpern}{0}}} +\@writefile{nav}{\headcommand {\slideentry {4}{0}{1}{27/27}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {27}{27}}} +\HyPL@Entry{27<>} +\@writefile{nav}{\headcommand {\slideentry {4}{0}{2}{28/28}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {28}{28}}} +\HyPL@Entry{28<>} +\@writefile{toc}{\beamer@sectionintoc {5}{Codierung eines Beispiels}{29}{0}{5}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {27}{28}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {27}{28}}} +\@writefile{nav}{\headcommand {\sectionentry {5}{Codierung eines Beispiels}{29}{Codierung eines Beispiels}{0}}} +\@writefile{nav}{\headcommand {\slideentry {5}{0}{1}{29/29}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {29}{29}}} +\HyPL@Entry{29<>} +\@writefile{nav}{\headcommand {\slideentry {5}{0}{2}{30/30}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {30}{30}}} +\HyPL@Entry{30<>} +\@writefile{toc}{\beamer@sectionintoc {6}{Decodierung ohne Fehler}{31}{0}{6}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {29}{30}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {29}{30}}} +\@writefile{nav}{\headcommand {\sectionentry {6}{Decodierung ohne Fehler}{31}{Decodierung ohne Fehler}{0}}} +\@writefile{nav}{\headcommand {\slideentry {6}{0}{1}{31/31}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {31}{31}}} +\HyPL@Entry{31<>} +\@writefile{nav}{\headcommand {\slideentry {6}{0}{2}{32/34}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {32}{34}}} +\HyPL@Entry{34<>} +\@writefile{nav}{\headcommand {\slideentry {6}{0}{3}{35/35}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {35}{35}}} +\HyPL@Entry{35<>} +\@writefile{toc}{\beamer@sectionintoc {7}{Decodierung mit Fehler}{36}{0}{7}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {31}{35}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {31}{35}}} +\@writefile{nav}{\headcommand {\sectionentry {7}{Decodierung mit Fehler}{36}{Decodierung mit Fehler}{0}}} +\@writefile{nav}{\headcommand {\slideentry {7}{0}{1}{36/36}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {36}{36}}} +\HyPL@Entry{36<>} +\@writefile{nav}{\headcommand {\slideentry {7}{0}{2}{37/37}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {37}{37}}} +\HyPL@Entry{37<>} +\@writefile{nav}{\headcommand {\slideentry {7}{0}{3}{38/38}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {38}{38}}} +\HyPL@Entry{38<>} +\@writefile{nav}{\headcommand {\slideentry {7}{0}{4}{39/39}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {39}{39}}} +\HyPL@Entry{39<>} +\@writefile{nav}{\headcommand {\slideentry {7}{0}{5}{40/40}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {40}{40}}} +\HyPL@Entry{40<>} +\@writefile{nav}{\headcommand {\slideentry {7}{0}{6}{41/42}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {41}{42}}} +\HyPL@Entry{42<>} +\@writefile{toc}{\beamer@sectionintoc {8}{Nachricht Rekonstruieren}{43}{0}{8}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {36}{42}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {36}{42}}} +\@writefile{nav}{\headcommand {\sectionentry {8}{Nachricht Rekonstruieren}{43}{Nachricht Rekonstruieren}{0}}} +\@writefile{nav}{\headcommand {\slideentry {8}{0}{1}{43/46}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {43}{46}}} +\HyPL@Entry{46<>} +\@writefile{nav}{\headcommand {\slideentry {8}{0}{2}{47/49}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {47}{49}}} +\HyPL@Entry{49<>} +\@writefile{nav}{\headcommand {\slideentry {8}{0}{3}{50/51}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {50}{51}}} +\HyPL@Entry{51<>} +\@writefile{nav}{\headcommand {\slideentry {8}{0}{4}{52/52}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {52}{52}}} +\HyPL@Entry{52<>} +\@writefile{nav}{\headcommand {\slideentry {8}{0}{5}{53/53}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {53}{53}}} +\HyPL@Entry{53<>} +\@writefile{nav}{\headcommand {\slideentry {8}{0}{6}{54/54}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {54}{54}}} +\@writefile{nav}{\headcommand {\beamer@partpages {1}{54}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {43}{54}}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {43}{54}}} +\@writefile{nav}{\headcommand {\beamer@documentpages {54}}} +\@writefile{nav}{\headcommand {\gdef \inserttotalframenumber {29}}} diff --git a/buch/papers/reedsolomon/RS presentation/RS.log b/buch/papers/reedsolomon/RS presentation/RS.log index 4e1c806..6042adc 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.log +++ b/buch/papers/reedsolomon/RS presentation/RS.log @@ -1,4 +1,4 @@ -This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019/W32TeX) (preloaded format=xelatex 2019.10.25) 21 APR 2021 18:18 +This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019/W32TeX) (preloaded format=xelatex 2019.10.25) 23 APR 2021 10:48 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -974,141 +974,252 @@ Package hyperref Warning: Option `pdfsubject' has already been used, ] LaTeX Font Info: Trying to load font information for OT1+lmss on input line -29. +32. (c:/texlive/2019/texmf-dist/tex/latex/lm/ot1lmss.fd File: ot1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern ) -LaTeX Font Info: Trying to load font information for OML+lmm on input line 2 -9. +LaTeX Font Info: Trying to load font information for OML+lmm on input line 3 +2. (c:/texlive/2019/texmf-dist/tex/latex/lm/omllmm.fd File: omllmm.fd 2009/10/30 v1.6 Font defs for Latin Modern ) LaTeX Font Info: Trying to load font information for OMS+lmsy on input line -29. +32. (c:/texlive/2019/texmf-dist/tex/latex/lm/omslmsy.fd File: omslmsy.fd 2009/10/30 v1.6 Font defs for Latin Modern ) LaTeX Font Info: Trying to load font information for OMX+lmex on input line -29. +32. (c:/texlive/2019/texmf-dist/tex/latex/lm/omxlmex.fd File: omxlmex.fd 2009/10/30 v1.6 Font defs for Latin Modern ) LaTeX Font Info: External font `lmex10' loaded for size -(Font) <10.95> on input line 29. +(Font) <10.95> on input line 32. LaTeX Font Info: External font `lmex10' loaded for size -(Font) <8> on input line 29. +(Font) <8> on input line 32. LaTeX Font Info: External font `lmex10' loaded for size -(Font) <6> on input line 29. -LaTeX Font Info: Trying to load font information for U+msa on input line 29. +(Font) <6> on input line 32. +LaTeX Font Info: Trying to load font information for U+msa on input line 32. (c:/texlive/2019/texmf-dist/tex/latex/amsfonts/umsa.fd File: umsa.fd 2013/01/14 v3.01 AMS symbols A ) -LaTeX Font Info: Trying to load font information for U+msb on input line 29. +LaTeX Font Info: Trying to load font information for U+msb on input line 32. (c:/texlive/2019/texmf-dist/tex/latex/amsfonts/umsb.fd File: umsb.fd 2013/01/14 v3.01 AMS symbols B ) LaTeX Font Info: Font shape `T1/lmss/m/it' in size <10.95> not available -(Font) Font shape `T1/lmss/m/sl' tried instead on input line 29. +(Font) Font shape `T1/lmss/m/sl' tried instead on input line 32. LaTeX Font Info: Font shape `T1/lmss/m/it' in size <8> not available -(Font) Font shape `T1/lmss/m/sl' tried instead on input line 29. +(Font) Font shape `T1/lmss/m/sl' tried instead on input line 32. LaTeX Font Info: Font shape `T1/lmss/m/it' in size <6> not available -(Font) Font shape `T1/lmss/m/sl' tried instead on input line 29. +(Font) Font shape `T1/lmss/m/sl' tried instead on input line 32. [2 ] [3 +] [4 + +] [5 + +] +[6 + ] File: images/polynom1.pdf Graphic file (type pdf) - [4 + [7 ] File: images/polynom2.pdf Graphic file (type pdf) - [5 + [8 -] -[6 +] [9 -] [7 +] [10 + +] [11 + +] [12 + +] [13 ] File: images/fig1.pdf Graphic file (type pdf) -Overfull \vbox (14.63716pt too high) detected at line 105 +Overfull \vbox (14.63716pt too high) detected at line 124 [] -[8 +[14 ] File: images/fig2.pdf Graphic file (type pdf) -Overfull \vbox (14.63716pt too high) detected at line 105 +Overfull \vbox (14.63716pt too high) detected at line 124 [] -[9 +[15 ] File: images/fig3.pdf Graphic file (type pdf) -Overfull \vbox (14.63716pt too high) detected at line 105 +Overfull \vbox (14.63716pt too high) detected at line 124 [] -[10 +[16 ] File: images/fig4.pdf Graphic file (type pdf) -Overfull \vbox (14.63716pt too high) detected at line 105 +Overfull \vbox (14.63716pt too high) detected at line 124 [] -[11 +[17 ] File: images/fig5.pdf Graphic file (type pdf) -Overfull \vbox (14.63716pt too high) detected at line 105 +Overfull \vbox (14.63716pt too high) detected at line 124 [] -[12 +[18 ] File: images/fig6.pdf Graphic file (type pdf) -Overfull \vbox (14.63716pt too high) detected at line 105 +Overfull \vbox (14.63716pt too high) detected at line 124 [] -[13 +[19 ] File: images/fig7.pdf Graphic file (type pdf) -Overfull \vbox (14.63716pt too high) detected at line 105 +Overfull \vbox (14.63716pt too high) detected at line 124 [] -[14 +[20 + +] [21 + +] [22 + +] [23 + +] [24 + +] [25 + +] [26 + +] [27 + +] [28 + +] +LaTeX Font Info: Trying to load font information for T1+lmr on input line 30 +0. + +(c:/texlive/2019/texmf-dist/tex/latex/lm/t1lmr.fd +File: t1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern +) [29 + +] [30 + +] +LaTeX Font Info: Trying to load font information for U+euf on input line 383 +. + +(c:/texlive/2019/texmf-dist/tex/latex/amsfonts/ueuf.fd +File: ueuf.fd 2013/01/14 v3.01 Euler Fraktur +) +Overfull \hbox (1.42268pt too wide) detected at line 383 +\U/euf/m/n/10.95 F[]\OT1/lmss/m/n/10.95 (\T1/lmss/m/sl/10.95 F\OT1/lmss/m/n/10. +95 (\OML/lmm/m/it/10.95 !\OT1/lmss/m/n/10.95 )) = \T1/lmss/m/sl/10.95 f\OT1/lms +s/m/n/10.95 (\T1/lmss/m/sl/10.95 t\OT1/lmss/m/n/10.95 ) = [] [][] \T1/lmss/m/sl +/10.95 F\OT1/lmss/m/n/10.95 (\OML/lmm/m/it/10.95 !\OT1/lmss/m/n/10.95 )\T1/lmr/ +m/n/10.95 e[]\T1/lmss/m/sl/10.95 d\OML/lmm/m/it/10.95 ! + [] + +[31 -] [15 +] [32 -] [16 +] [33 -] [17 +] [34 -] [18 +] [35 + +] [36 + +] [37 + +] [38 + +] +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <14.4> on input line 638. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <10> on input line 638. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <7> on input line 638. +LaTeX Font Info: Font shape `T1/lmss/m/it' in size <14.4> not available +(Font) Font shape `T1/lmss/m/sl' tried instead on input line 638. +LaTeX Font Info: Font shape `T1/lmss/m/it' in size <10> not available +(Font) Font shape `T1/lmss/m/sl' tried instead on input line 638. +LaTeX Font Info: Font shape `T1/lmss/m/it' in size <7> not available +(Font) Font shape `T1/lmss/m/sl' tried instead on input line 638. + [39 + +] +Overfull \hbox (2.91844pt too wide) detected at line 674 +[] + [] + +[40 + +] [41 + +] [42 + +] [43 + +] [44 + +] [45 + +] [46 + +] [47 + +] [48 + +] [49 + +] [50 + +] [51 + +] [52 + +] [53 + +] [54 ] \tf@nav=\write6 @@ -1120,21 +1231,22 @@ Overfull \vbox (14.63716pt too high) detected at line 105 \tf@snm=\write8 \openout8 = `RS.snm'. -Package atveryend Info: Empty hook `BeforeClearDocument' on input line 160. -Package atveryend Info: Empty hook `AfterLastShipout' on input line 160. - (./RS.aux) -Package atveryend Info: Empty hook `AtVeryEndDocument' on input line 160. -Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 160. +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 928. +Package atveryend Info: Empty hook `AfterLastShipout' on input line 928. + +(./RS.aux) +Package atveryend Info: Empty hook `AtVeryEndDocument' on input line 928. +Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 928. Package rerunfilecheck Info: File `RS.out' has not changed. -(rerunfilecheck) Checksum: 74C688051BF542B3A11E9793A97790F4. +(rerunfilecheck) Checksum: CBEDF1F633104E8EE4EB074E401487DA. ) Here is how much of TeX's memory you used: - 24400 strings out of 492483 - 451960 string characters out of 6132858 - 534889 words of memory out of 5000000 - 28378 multiletter control sequences out of 15000+600000 - 37892 words of font info for 41 fonts, out of 8000000 for 9000 + 24528 strings out of 492483 + 453801 string characters out of 6132858 + 557615 words of memory out of 5000000 + 28488 multiletter control sequences out of 15000+600000 + 82614 words of font info for 73 fonts, out of 8000000 for 9000 1348 hyphenation exceptions out of 8191 - 58i,15n,61p,796b,549s stack positions out of 5000i,500n,10000p,200000b,80000s + 58i,15n,61p,796b,566s stack positions out of 5000i,500n,10000p,200000b,80000s -Output written on RS.pdf (18 pages). +Output written on RS.pdf (54 pages). diff --git a/buch/papers/reedsolomon/RS presentation/RS.nav b/buch/papers/reedsolomon/RS presentation/RS.nav index 1d67391..f288963 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.nav +++ b/buch/papers/reedsolomon/RS presentation/RS.nav @@ -3,38 +3,85 @@ \headcommand {\beamer@sectionpages {1}{1}} \headcommand {\beamer@subsectionpages {1}{1}} \headcommand {\sectionentry {1}{Einführung}{2}{Einführung}{0}} -\headcommand {\slideentry {1}{0}{1}{2/2}{}{0}} -\headcommand {\beamer@framepages {2}{2}} -\headcommand {\beamer@sectionpages {2}{2}} -\headcommand {\beamer@subsectionpages {2}{2}} -\headcommand {\sectionentry {2}{Polynom Ansatz}{3}{Polynom Ansatz}{0}} -\headcommand {\slideentry {2}{0}{1}{3/3}{}{0}} -\headcommand {\beamer@framepages {3}{3}} -\headcommand {\slideentry {2}{0}{2}{4/5}{}{0}} -\headcommand {\beamer@framepages {4}{5}} -\headcommand {\slideentry {2}{0}{3}{6/6}{}{0}} -\headcommand {\beamer@framepages {6}{6}} -\headcommand {\beamer@sectionpages {3}{6}} -\headcommand {\beamer@subsectionpages {3}{6}} -\headcommand {\sectionentry {3}{Fourier Transformation}{7}{Fourier Transformation}{0}} -\headcommand {\slideentry {3}{0}{1}{7/7}{}{0}} -\headcommand {\beamer@framepages {7}{7}} -\headcommand {\slideentry {3}{0}{2}{8/14}{}{0}} -\headcommand {\beamer@framepages {8}{14}} -\headcommand {\beamer@sectionpages {7}{14}} -\headcommand {\beamer@subsectionpages {7}{14}} -\headcommand {\sectionentry {4}{Diskrete Fourier Transformation}{15}{Diskrete Fourier Transformation}{0}} -\headcommand {\slideentry {4}{0}{1}{15/15}{}{0}} -\headcommand {\beamer@framepages {15}{15}} -\headcommand {\slideentry {4}{0}{2}{16/16}{}{0}} -\headcommand {\beamer@framepages {16}{16}} -\headcommand {\beamer@sectionpages {15}{16}} -\headcommand {\beamer@subsectionpages {15}{16}} -\headcommand {\sectionentry {5}{Probleme und Fragen}{17}{Probleme und Fragen}{0}} -\headcommand {\slideentry {5}{0}{1}{17/18}{}{0}} -\headcommand {\beamer@framepages {17}{18}} -\headcommand {\beamer@partpages {1}{18}} -\headcommand {\beamer@subsectionpages {17}{18}} -\headcommand {\beamer@sectionpages {17}{18}} -\headcommand {\beamer@documentpages {18}} -\headcommand {\gdef \inserttotalframenumber {10}} +\headcommand {\slideentry {1}{0}{1}{2/4}{}{0}} +\headcommand {\beamer@framepages {2}{4}} +\headcommand {\beamer@sectionpages {2}{4}} +\headcommand {\beamer@subsectionpages {2}{4}} +\headcommand {\sectionentry {2}{Polynom Ansatz}{5}{Polynom Ansatz}{0}} +\headcommand {\slideentry {2}{0}{1}{5/5}{}{0}} +\headcommand {\beamer@framepages {5}{5}} +\headcommand {\slideentry {2}{0}{2}{6/8}{}{0}} +\headcommand {\beamer@framepages {6}{8}} +\headcommand {\slideentry {2}{0}{3}{9/12}{}{0}} +\headcommand {\beamer@framepages {9}{12}} +\headcommand {\beamer@sectionpages {5}{12}} +\headcommand {\beamer@subsectionpages {5}{12}} +\headcommand {\sectionentry {3}{Diskrete Fourier Transformation}{13}{Diskrete Fourier Transformation}{0}} +\headcommand {\slideentry {3}{0}{1}{13/13}{}{0}} +\headcommand {\beamer@framepages {13}{13}} +\headcommand {\slideentry {3}{0}{2}{14/20}{}{0}} +\headcommand {\beamer@framepages {14}{20}} +\headcommand {\slideentry {3}{0}{3}{21/23}{}{0}} +\headcommand {\beamer@framepages {21}{23}} +\headcommand {\slideentry {3}{0}{4}{24/24}{}{0}} +\headcommand {\beamer@framepages {24}{24}} +\headcommand {\slideentry {3}{0}{5}{25/26}{}{0}} +\headcommand {\beamer@framepages {25}{26}} +\headcommand {\beamer@sectionpages {13}{26}} +\headcommand {\beamer@subsectionpages {13}{26}} +\headcommand {\sectionentry {4}{Reed-Solomon in Endlichen Körpern}{27}{Reed-Solomon in Endlichen Körpern}{0}} +\headcommand {\slideentry {4}{0}{1}{27/27}{}{0}} +\headcommand {\beamer@framepages {27}{27}} +\headcommand {\slideentry {4}{0}{2}{28/28}{}{0}} +\headcommand {\beamer@framepages {28}{28}} +\headcommand {\beamer@sectionpages {27}{28}} +\headcommand {\beamer@subsectionpages {27}{28}} +\headcommand {\sectionentry {5}{Codierung eines Beispiels}{29}{Codierung eines Beispiels}{0}} +\headcommand {\slideentry {5}{0}{1}{29/29}{}{0}} +\headcommand {\beamer@framepages {29}{29}} +\headcommand {\slideentry {5}{0}{2}{30/30}{}{0}} +\headcommand {\beamer@framepages {30}{30}} +\headcommand {\beamer@sectionpages {29}{30}} +\headcommand {\beamer@subsectionpages {29}{30}} +\headcommand {\sectionentry {6}{Decodierung ohne Fehler}{31}{Decodierung ohne Fehler}{0}} +\headcommand {\slideentry {6}{0}{1}{31/31}{}{0}} +\headcommand {\beamer@framepages {31}{31}} +\headcommand {\slideentry {6}{0}{2}{32/34}{}{0}} +\headcommand {\beamer@framepages {32}{34}} +\headcommand {\slideentry {6}{0}{3}{35/35}{}{0}} +\headcommand {\beamer@framepages {35}{35}} +\headcommand {\beamer@sectionpages {31}{35}} +\headcommand {\beamer@subsectionpages {31}{35}} +\headcommand {\sectionentry {7}{Decodierung mit Fehler}{36}{Decodierung mit Fehler}{0}} +\headcommand {\slideentry {7}{0}{1}{36/36}{}{0}} +\headcommand {\beamer@framepages {36}{36}} +\headcommand {\slideentry {7}{0}{2}{37/37}{}{0}} +\headcommand {\beamer@framepages {37}{37}} +\headcommand {\slideentry {7}{0}{3}{38/38}{}{0}} +\headcommand {\beamer@framepages {38}{38}} +\headcommand {\slideentry {7}{0}{4}{39/39}{}{0}} +\headcommand {\beamer@framepages {39}{39}} +\headcommand {\slideentry {7}{0}{5}{40/40}{}{0}} +\headcommand {\beamer@framepages {40}{40}} +\headcommand {\slideentry {7}{0}{6}{41/42}{}{0}} +\headcommand {\beamer@framepages {41}{42}} +\headcommand {\beamer@sectionpages {36}{42}} +\headcommand {\beamer@subsectionpages {36}{42}} +\headcommand {\sectionentry {8}{Nachricht Rekonstruieren}{43}{Nachricht Rekonstruieren}{0}} +\headcommand {\slideentry {8}{0}{1}{43/46}{}{0}} +\headcommand {\beamer@framepages {43}{46}} +\headcommand {\slideentry {8}{0}{2}{47/49}{}{0}} +\headcommand {\beamer@framepages {47}{49}} +\headcommand {\slideentry {8}{0}{3}{50/51}{}{0}} +\headcommand {\beamer@framepages {50}{51}} +\headcommand {\slideentry {8}{0}{4}{52/52}{}{0}} +\headcommand {\beamer@framepages {52}{52}} +\headcommand {\slideentry {8}{0}{5}{53/53}{}{0}} +\headcommand {\beamer@framepages {53}{53}} +\headcommand {\slideentry {8}{0}{6}{54/54}{}{0}} +\headcommand {\beamer@framepages {54}{54}} +\headcommand {\beamer@partpages {1}{54}} +\headcommand {\beamer@subsectionpages {43}{54}} +\headcommand {\beamer@sectionpages {43}{54}} +\headcommand {\beamer@documentpages {54}} +\headcommand {\gdef \inserttotalframenumber {29}} diff --git a/buch/papers/reedsolomon/RS presentation/RS.out b/buch/papers/reedsolomon/RS presentation/RS.out index 32b9a2c..364319e 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.out +++ b/buch/papers/reedsolomon/RS presentation/RS.out @@ -1,5 +1,8 @@ \BOOKMARK [2][]{Outline0.1}{Einführung}{}% 1 \BOOKMARK [2][]{Outline0.2}{Polynom\040Ansatz}{}% 2 -\BOOKMARK [2][]{Outline0.3}{Fourier\040Transformation}{}% 3 -\BOOKMARK [2][]{Outline0.4}{Diskrete\040Fourier\040Transformation}{}% 4 -\BOOKMARK [2][]{Outline0.5}{Probleme\040und\040Fragen}{}% 5 +\BOOKMARK [2][]{Outline0.3}{Diskrete\040Fourier\040Transformation}{}% 3 +\BOOKMARK [2][]{Outline0.4}{Reed-Solomon in Endlichen Körpern}{}% 4 +\BOOKMARK [2][]{Outline0.5}{Codierung\040eines\040Beispiels}{}% 5 +\BOOKMARK [2][]{Outline0.6}{Decodierung\040ohne\040Fehler}{}% 6 +\BOOKMARK [2][]{Outline0.7}{Decodierung\040mit\040Fehler}{}% 7 +\BOOKMARK [2][]{Outline0.8}{Nachricht\040Rekonstruieren}{}% 8 diff --git a/buch/papers/reedsolomon/RS presentation/RS.pdf b/buch/papers/reedsolomon/RS presentation/RS.pdf index 913bc42..d9d6693 100644 Binary files a/buch/papers/reedsolomon/RS presentation/RS.pdf and b/buch/papers/reedsolomon/RS presentation/RS.pdf differ diff --git a/buch/papers/reedsolomon/RS presentation/RS.snm b/buch/papers/reedsolomon/RS presentation/RS.snm index 6607ea8..86859c9 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.snm +++ b/buch/papers/reedsolomon/RS presentation/RS.snm @@ -1 +1 @@ -\beamer@slide {ft_discrete}{15} +\beamer@slide {ft_discrete}{21} diff --git a/buch/papers/reedsolomon/RS presentation/RS.synctex.gz b/buch/papers/reedsolomon/RS presentation/RS.synctex.gz index 001b5c8..04bd239 100644 Binary files a/buch/papers/reedsolomon/RS presentation/RS.synctex.gz and b/buch/papers/reedsolomon/RS presentation/RS.synctex.gz differ diff --git a/buch/papers/reedsolomon/RS presentation/RS.tex b/buch/papers/reedsolomon/RS presentation/RS.tex index d09d77d..7b2c4da 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.tex +++ b/buch/papers/reedsolomon/RS presentation/RS.tex @@ -43,18 +43,18 @@ ${f}_2=\textcolor{blue}{2}$, ${f}_1=\textcolor{blue}{1}$, ${f}_0=\textcolor{blue}{5}$ als $ p(w) = \textcolor{blue}{2}w^2 + \textcolor{blue}{1}w + \textcolor{blue}{5} $. - \only<1>{ - Versende $ (p(1),p(2),\dots,p(7)) = (\textcolor{green}{8}, - \textcolor{green}{15}, \textcolor{green}{26}, - \textcolor{green}{41}, \textcolor{green}{60}, - \textcolor{green}{83}, \textcolor{green}{110})$ - \includegraphics[scale = 1.2]{images/polynom1.pdf}} - \only<2>{ - Versende $ (p(1),p(2),\dots,p(7)) = (\textcolor{green}{8}, - \textcolor{red}{50}, \textcolor{red}{37}, - \textcolor{green}{41}, \textcolor{green}{60}, - \textcolor{green}{83}, \textcolor{green}{110})$ - \includegraphics[scale = 1.2]{images/polynom2.pdf} + + Versende $ (p(1),p(2),\dots,p(7))$ + \visible<2->{ = (\textcolor{green}{8},} + \only<2>{\textcolor{green}{15},} + \only<3>{\textcolor{red}{50},} + \only<2>{\textcolor{green}{26},} + \only<3>{\textcolor{red}{37},} + \visible<2->{\textcolor{green}{41}, \textcolor{green}{60}, + \textcolor{green}{83}, \textcolor{green}{110})} + \only<2>{\includegraphics[scale = 1.2]{images/polynom1.pdf}} + \only<3>{\includegraphics[scale = 1.2]{images/polynom2.pdf}} + \visible<3>{ \newline \textcolor{green}{7} Zahlen versenden, um \textcolor{blue}{3} Zahlen gegen \textcolor{red}{2} Fehlern abzusichern.} \end{frame} diff --git a/buch/papers/reedsolomon/RS presentation/RS.toc b/buch/papers/reedsolomon/RS presentation/RS.toc index 44c06ab..095b5e6 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.toc +++ b/buch/papers/reedsolomon/RS presentation/RS.toc @@ -1,6 +1,9 @@ \babel@toc {ngerman}{} \beamer@sectionintoc {1}{Einführung}{2}{0}{1} -\beamer@sectionintoc {2}{Polynom Ansatz}{3}{0}{2} -\beamer@sectionintoc {3}{Fourier Transformation}{7}{0}{3} -\beamer@sectionintoc {4}{Diskrete Fourier Transformation}{15}{0}{4} -\beamer@sectionintoc {5}{Probleme und Fragen}{17}{0}{5} +\beamer@sectionintoc {2}{Polynom Ansatz}{5}{0}{2} +\beamer@sectionintoc {3}{Diskrete Fourier Transformation}{13}{0}{3} +\beamer@sectionintoc {4}{Reed-Solomon in Endlichen Körpern}{27}{0}{4} +\beamer@sectionintoc {5}{Codierung eines Beispiels}{29}{0}{5} +\beamer@sectionintoc {6}{Decodierung ohne Fehler}{31}{0}{6} +\beamer@sectionintoc {7}{Decodierung mit Fehler}{36}{0}{7} +\beamer@sectionintoc {8}{Nachricht Rekonstruieren}{43}{0}{8} -- cgit v1.2.1 From 0a80be4477602e2d909e5eda40dae485ec6acd56 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Fri, 23 Apr 2021 13:02:38 +0200 Subject: Read me erstellt --- buch/papers/reedsolomon/RS presentation/README.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 buch/papers/reedsolomon/RS presentation/README.txt (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/RS presentation/README.txt b/buch/papers/reedsolomon/RS presentation/README.txt new file mode 100644 index 0000000..4d0620f --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/README.txt @@ -0,0 +1 @@ +Dies ist die Presentation des Reed-Solomon-Code \ No newline at end of file -- cgit v1.2.1 From d1b6d92a02d9c44b3860b73d5660c5c6863de0df Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Fri, 23 Apr 2021 21:19:34 +0200 Subject: handout added --- buch/papers/reedsolomon/RS presentation/RS.tex | 290 +++---- .../reedsolomon/RS presentation/RS_handout.tex | 921 +++++++++++++++++++++ 2 files changed, 1069 insertions(+), 142 deletions(-) create mode 100644 buch/papers/reedsolomon/RS presentation/RS_handout.tex (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/RS presentation/RS.tex b/buch/papers/reedsolomon/RS presentation/RS.tex index 943f2da..c215e66 100644 --- a/buch/papers/reedsolomon/RS presentation/RS.tex +++ b/buch/papers/reedsolomon/RS presentation/RS.tex @@ -14,8 +14,8 @@ \institute{OST Ostschweizer Fachhochschule} \date{26.04.2021} \subject{Mathematisches Seminar} - \setbeamercovered{transparent} - %\setbeamercovered{invisible} + %\setbeamercovered{transparent} + \setbeamercovered{invisible} \setbeamertemplate{navigation symbols}{} \begin{frame}[plain] \maketitle @@ -64,22 +64,22 @@ \begin{center} \begin{tabular}{ c c c } \hline - ``Nutzlas´´ & Fehler & Versenden \\ + Nutzlas & Fehler & Versenden \\ \hline 3 & 2 & 7 Werte eines Polynoms vom Grad 2 \\ 4 & 2 & 8 Werte eines Polynoms vom Grad 3 \\ -\visible<2->{3}& -\visible<2->{3}& -\visible<3->{9 Werte eines Polynoms vom Grad 2} \\ +\visible<1->{3}& +\visible<1->{3}& +\visible<1->{9 Werte eines Polynoms vom Grad 2} \\ &&\\ -\visible<4->{$k$} & -\visible<4->{$t$} & -\visible<4->{$k+2t$ Werte eines Polynoms vom Grad $k-1$} \\ +\visible<1->{$k$} & +\visible<1->{$t$} & +\visible<1->{$k+2t$ Werte eines Polynoms vom Grad $k-1$} \\ \hline &&\\ &&\\ \multicolumn{3}{l} { - \visible<4>{Ausserdem können bis zu $2t$ Fehler erkannt werden!} + \visible<1>{Ausserdem können bis zu $2t$ Fehler erkannt werden!} } \end{tabular} \end{center} @@ -194,21 +194,21 @@ \begin{itemize} \onslide<1->{\item Warum endliche Körper?} - \onslide<1->{\qquad konkrete Zahlen $\rightarrow$ keine Rundungsfehler} + \onslide<2->{\qquad konkrete Zahlen $\rightarrow$ keine Rundungsfehler} - \onslide<1->{\qquad digitale Fehlerkorrektur} + \onslide<3->{\qquad digitale Fehlerkorrektur} - \onslide<1->{\qquad bessere Laufzeit} + %\onslide<4->{\qquad bessere Laufzeit} \vspace{10pt} - \onslide<1->{\item Nachricht = Nutzdaten + Fehlerkorrekturteil} + \onslide<4->{\item Nachricht = Nutzdaten + Fehlerkorrekturteil} \vspace{10pt} - \onslide<1->{\item aus Fehlerkorrekturteil die Fehlerstellen finden} + \onslide<5->{\item aus Fehlerkorrekturteil die Fehlerstellen finden} - \onslide<1->{\qquad $\Rightarrow$ gesucht ist ein Lokatorpolynom} + \onslide<6->{\qquad $\Rightarrow$ gesucht ist ein Lokatorpolynom} % \vspace{10pt} @@ -232,33 +232,33 @@ \begin{itemize} - \only<1->{\item endlicher Körper $q = 11$} + \onslide<1->{\item endlicher Körper $q = 11$} - \only<1->{ist eine Primzahl} + \onslide<2->{ist eine Primzahl} - \only<1->{beinhaltet die Zahlen $\mathbb{F}_{11} = \{0,1,2,3,4,5,6,7,8,9,10\}$} + \onslide<3->{beinhaltet die Zahlen $\mathbb{F}_{11} = \{0,1,2,3,4,5,6,7,8,9,10\}$} \vspace{10pt} - \only<1->{\item Nachrichtenblock $=$ Nutzlast $+$ Fehlerkorrekturstellen + \onslide<4->{\item Nachrichtenblock $=$ Nutzlast $+$ Fehlerkorrekturstellen} - $n = q - 1 = 10$ Zahlen} + \onslide<5->{$n = q - 1 = 10$ Zahlen} \vspace{10pt} - \only<1->{\item Max.~Fehler $z = 2$ + \onslide<6->{\item Max.~Fehler $t = 2$} - maximale Anzahl von Fehler, die wir noch korrigieren können} + \onslide<7->{maximale Anzahl von Fehler, die wir noch korrigieren können} \vspace{10pt} - \only<1->{\item Nutzlast $k = n -2t = 6$ Zahlen} + \onslide<8->{\item Nutzlast $k = n -2t = 6$ Zahlen} - \only<1->{Fehlerkorrkturstellen $2t = 4$ Zahlen} + \onslide<9->{Fehlerkorrkturstellen $2t = 4$ Zahlen} - \only<1->{Nachricht $m = [0,0,0,0,4,7,2,5,8,1]$} + \onslide<10->{Nachricht $m = [0,0,0,0,4,7,2,5,8,1]$} - \only<1->{als Polynom $m(X) = 4X^5 + 7X^4 + 2X^3 + 5X^2 + 8X + 1$} + \onslide<11->{als Polynom $m(X) = 4X^5 + 7X^4 + 2X^3 + 5X^2 + 8X + 1$} \end{itemize} @@ -269,31 +269,31 @@ \frametitle{Codierung} \begin{itemize} - \only<1->{\item Ansatz aus den komplexen Zahlen mit der diskreten Fouriertransformation} + \onslide<1->{\item Ansatz aus den komplexen Zahlen mit der diskreten Fouriertransformation} \vspace{10pt} - \only<1->{\item Eulersche Zahl $\mathrm{e}$ existiert nicht in $\mathbb{F}_{11}$} + \onslide<2->{\item Eulersche Zahl $\mathrm{e}$ existiert nicht in $\mathbb{F}_{11}$} \vspace{10pt} - \only<1->{\item Wir suchen $a$ so, dass $a^i$ den gesamten Zahlenbereich von $\mathbb{F}_{11}$ abdecken + \onslide<3->{\item Wir suchen $a$ so, dass $a^i$ den gesamten Zahlenbereich von $\mathbb{F}_{11}$ abdecken} - $\mathbb{Z}_{11}\setminus\{0\} = \{a^0, a^1, a^2, a^3, a^4, a^5, a^6, a^7, a^8, a^9\}$} + \onslide<4->{$\mathbb{Z}_{11}\setminus\{0\} = \{a^0, a^1, a^2, a^3, a^4, a^5, a^6, a^7, a^8, a^9\}$} \vspace{10pt} - \only<1->{\item Wir wählen $a = 8$} + \onslide<5->{\item Wir wählen $a = 8$} - \only<1->{$\mathbb{Z}_{11}\setminus\{0\} = \{1,8,9,6,4,10,3,2,5,7\}$} + \onslide<6->{$\mathbb{Z}_{11}\setminus\{0\} = \{1,8,9,6,4,10,3,2,5,7\}$} - \only<1->{$8$ ist eine primitive Einheitswurzel} + \onslide<7->{$8$ ist eine primitive Einheitswurzel} \vspace{10pt} - \only<1->{\item $m(8^0) = 4\cdot1 + 7\cdot1 + 2\cdot1 + 5\cdot1 + 8\cdot1 + 1 = 5$} + \onslide<8->{\item $m(8^0) = 4\cdot1 + 7\cdot1 + 2\cdot1 + 5\cdot1 + 8\cdot1 + 1 = 5$} - \only<1->{$\Rightarrow$ \qquad können wir auch als Matrix schreiben} + \onslide<9->{$\Rightarrow$ \qquad können wir auch als Matrix schreiben} \end{itemize} @@ -303,14 +303,14 @@ \frametitle{Codierung} \begin{itemize} - \only<1->{\item Übertragungsvektor $v$} + \onslide<1->{\item Übertragungsvektor $v$} - \only<1->{\item $v = A \cdot m$} + \onslide<2->{\item $v = A \cdot m$} \end{itemize} \[ - \only<1->{ + \onslide<3->{ v = \begin{pmatrix} 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0\\ 8^0& 8^1& 8^2& 8^3& 8^4& 8^5& 8^6& 8^7& 8^8& 8^9\\ @@ -329,11 +329,11 @@ \end{pmatrix} } \] - \only<1->{ + \begin{itemize} - \item $v = [5,3,6,5,2,10,2,7,10,4]$ + \onslide<4->{\item $v = [5,3,6,5,2,10,2,7,10,4]$} \end{itemize} - } + \end{frame} %------------------------------------------------------------------------------- \section{Decodierung ohne Fehler} @@ -341,41 +341,44 @@ \frametitle{Decodierung ohne Fehler} \begin{itemize} - \only<1->{\item Der Empfänger erhält den unveränderten Vektor - $v = [5,3,6,5,2,10,2,7,10,4]$} + \onslide<1->{\item Der Empfänger erhält den unveränderten Vektor $v = [5,3,6,5,2,10,2,7,10,4]$} \vspace{10pt} - \only<1->{\item Wir suchen die Inverse der Matrix $A$} + \onslide<2->{\item Wir suchen die Inverse der Matrix $A$} \vspace{10pt} \end{itemize} \begin{columns}[t] - \begin{column}{0.50\textwidth} - \only<1->{ - Inverse der Fouriertransformation + \begin{column}{0.55\textwidth} + \onslide<3->{ Inverse der Fouriertransformation} \vspace{10pt} + \onslide<4->{ \[ F(\omega) = \int_{-\infty}^{\infty} f(t) \mathrm{e}^{-j\omega t} dt \] + } \vspace{10pt} + \onslide<5->{ \[ \mathfrak{F}^{-1}(F(\omega)) = f(t) = \frac{1}{2 \pi} \int_{-\infty}^{\infty} F(\omega) \mathrm{e}^{j \omega t} d\omega \] } \end{column} - \begin{column}{0.50\textwidth} - \only<1->{ - Inverse von $a$} + \begin{column}{0.45\textwidth} + \onslide<6->{Inverse von $a$} + \vspace{10pt} - \only<1->{ + + \onslide<7->{ \[ 8^{1} \Rightarrow 8^{-1} \] } - \only<1->{Inverse finden wir über den Eulkidischen Algorithmus} + + \onslide<8->{Inverse finden wir über den Eulkidischen Algorithmus} \vspace{10pt} \end{column} \end{columns} @@ -407,7 +410,7 @@ \begin{column}{0.50\textwidth} \begin{center} - \only<1->{ + \onslide<1->{ \begin{tabular}{| c | c c | c | r r |} \hline $k$ & $a_i$ & $b_i$ & $q_i$ & $c_i$ & $d_i$\\ @@ -417,17 +420,18 @@ $1$& $11$& $8$& $1$& $1$& $0$\\ $2$& $8$& $3$& $2$& $-1$& $1$\\ $3$& $3$& $2$& $1$& $3$& $-2$\\ - $4$& $2$& $1$& $2$& \textcolor<3->{blue}{$-4$}& \textcolor<3->{red}{$3$}\\ + $4$& $2$& $1$& $2$& \textcolor<2->{blue}{$-4$}& \textcolor<2->{red}{$3$}\\ $5$& $1$& $0$& & $11$& $-8$\\ \hline \end{tabular} } + \vspace{10pt} \begin{tabular}{rcl} - \only<1->{$\textcolor{blue}{-4} \cdot 8 + \textcolor{red}{3} \cdot 11$ &$=$& $1$}\\ - \only<1->{$7 \cdot 8 + 3 \cdot 11$ &$=$& $1$}\\ - \only<1->{$8^{-1}$ &$=$& $7$} + \onslide<3->{$\textcolor{blue}{-4} \cdot 8 + \textcolor{red}{3} \cdot 11$ &$=$& $1$}\\ + \onslide<4->{$7 \cdot 8 + 3 \cdot 11$ &$=$& $1$}\\ + \onslide<5->{$8^{-1}$ &$=$& $7$} \end{tabular} @@ -442,16 +446,16 @@ \frametitle{Decodierung mit Inverser Matrix} \begin{itemize} - \only<1->{\item $v = [5,3,6,5,2,10,2,7,10,4]$} + \onslide<1->{\item $v = [5,3,6,5,2,10,2,7,10,4]$} - \only<1->{\item $m = 1/10 \cdot A^{-1} \cdot v$} + \onslide<2->{\item $m = 1/10 \cdot A^{-1} \cdot v$} - \only<1->{\item $m = 10 \cdot A^{-1} \cdot v$} + \onslide<3->{\item $m = 10 \cdot A^{-1} \cdot v$} \end{itemize} - \only<1->{ + \onslide<4->{ \[ - m = \begin{pmatrix} + m = 10 \cdot \begin{pmatrix} 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0\\ 7^0& 7^1& 7^2& 7^3& 7^4& 7^5& 7^6& 7^7& 7^8& 7^9\\ 7^0& 7^2& 7^4& 7^6& 7^8& 7^{10}& 7^{12}& 7^{14}& 7^{16}& 7^{18}\\ @@ -469,11 +473,11 @@ \end{pmatrix} \] } - \only<1->{ + \begin{itemize} - \item $m = [0,0,0,0,4,7,2,5,8,1]$ + \onslide<5->{\item $m = [0,0,0,0,4,7,2,5,8,1]$} \end{itemize} - } + \end{frame} %------------------------------------------------------------------------------- \section{Decodierung mit Fehler} @@ -481,48 +485,46 @@ \frametitle{Decodierung mit Fehler - Ansatz} \begin{itemize} - \only<1->{\item Gesendet: $v = [5,3,6,5,2,10,2,7,10,4]$} + \onslide<1->{\item Gesendet: $v = [5,3,6,5,2,10,2,7,10,4]$} - \only<1->{\item Empfangen: $w = [5,3,6,\textcolor{red}{8},2,10,2,7,\textcolor{red}{1},4]$} + \onslide<2->{\item Empfangen: $w = [5,3,6,\textcolor{red}{8},2,10,2,7,\textcolor{red}{1},4]$} - \only<1->{\item Rücktransformation: $r = [\underbrace{5,7,4,10,}_{Fehlerinfo}5,4,5,7,6,7]$} + \onslide<3->{\item Rücktransformation: $r = [\underbrace{5,7,4,10,}_{Fehlerinfo}5,4,5,7,6,7]$} \end{itemize} - \only<1->{Wie finden wir die Fehler?} + \onslide<4->{Wie finden wir die Fehler?} - \only<1->{ \begin{itemize} - \item $m(X) = 4X^5 + 7X^4 + 2X^3 + 5X^2 + 8X + 1$ + \onslide<5->{\item $m(X) = 4X^5 + 7X^4 + 2X^3 + 5X^2 + 8X + 1$} - \item $r(X) = 5X^9 + 7X^8 + 4X^7 + 10X^6 + 5X^5 + 4X^4 + 5X^3 + 7X^2 + 6X + 7$ + \onslide<6->{\item $r(X) = 5X^9 + 7X^8 + 4X^7 + 10X^6 + 5X^5 + 4X^4 + 5X^3 + 7X^2 + 6X + 7$} %\only<7->{\item $e(X) = r(X) - m(X)$} - \item $e(X) = r(X) - m(X)$ + \onslide<7->{\item $e(X) = r(X) - m(X)$} \end{itemize} - } \begin{center} - \only<1->{ + \onslide<8->{ \begin{tabular}{c c c c c c c c c c c} \hline $i$& $0$& $1$& $2$& $3$& $4$& $5$& $6$& $7$& $8$& $9$\\ \hline - $r(a^{i})$& \only<1->{$5$& $3$& $6$& $8$& $2$& $10$& $2$& $7$& $1$& $4$}\\ - $m(a^{i})$& \only<1->{$5$& $3$& $6$& $5$& $2$& $10$& $2$& $7$& $10$& $4$}\\ - $e(a^{i})$& \only<1->{$0$& $0$& $0$& $3$& $0$& $0$& $0$& $0$& $2$& $0$}\\ + $r(a^{i})$& \onslide<9->{$5$& $3$& $6$& $8$& $2$& $10$& $2$& $7$& $1$& $4$}\\ + $m(a^{i})$& \onslide<10->{$5$& $3$& $6$& $5$& $2$& $10$& $2$& $7$& $10$& $4$}\\ + $e(a^{i})$& \onslide<11->{$0$& $0$& $0$& $3$& $0$& $0$& $0$& $0$& $2$& $0$}\\ \hline \end{tabular} } \end{center} - \only<1->{ + \begin{itemize} - \item Alle Stellen, die nicht Null sind, sind Fehler + \onslide<12->{\item Alle Stellen, die nicht Null sind, sind Fehler} \end{itemize} - } + \end{frame} %------------------------------------------------------------------------------- @@ -530,31 +532,31 @@ \frametitle{Nullstellen des Fehlerpolynoms finden} \begin{itemize} - \only<1->{\item Satz von Fermat: $f(X) = X^{q-1}-1=0$} + \onslide<1->{\item Satz von Fermat: $f(X) = X^{q-1}-1=0$} \vspace{10pt} - \only<1->{\item $f(X) = X^{10}-1 = 0$ \qquad für $X \in \{1,2,3,4,5,6,7,8,9,10\}$} + \onslide<2->{\item $f(X) = X^{10}-1 = 0$ \qquad für $X \in \{1,2,3,4,5,6,7,8,9,10\}$} \vspace{10pt} - \only<1->{\item $f(X) = (X-a^0)(X-a^1)(X-a^2)(X-a^3)(X-a^4)(X-a^5)(X-a^6) \cdot$ + \onslide<3->{\item $f(X) = (X-a^0)(X-a^1)(X-a^2)(X-a^3)(X-a^4)(X-a^5)(X-a^6) \cdot$ \qquad \qquad $(X-a^7)(X-a^8)(X-a^9)$} \vspace{10pt} - \only<1->{\item $e(X) = (X-a^0)(X-a^1)(X-a^2) \qquad \qquad (X-a^4)(X-a^5)(X-a^6) \cdot$ + \onslide<4->{\item $e(X) = (X-a^0)(X-a^1)(X-a^2) \qquad \qquad (X-a^4)(X-a^5)(X-a^6) \cdot$ \qquad \qquad $(X-a^7) \qquad \qquad (X-a^9) \cdot p(x)$} \vspace{10pt} - \only<1->{\item $\operatorname{ggT}$ gibt uns eine Liste der Nullstellen, an denen es keine Fehler gegeben hat} + \onslide<5->{\item $\operatorname{ggT}$ gibt uns eine Liste der Nullstellen, an denen es keine Fehler gegeben hat} \vspace{10pt} - \only<1->{$\operatorname{ggT}(f(X),e(X)) = (X-a^0)(X-a^1)(X-a^2) \qquad \qquad (X-a^4)(X-a^5)(X-a^6) \cdot$ + \onslide<6->{$\operatorname{ggT}(f(X),e(X)) = (X-a^0)(X-a^1)(X-a^2) \qquad \qquad (X-a^4)(X-a^5)(X-a^6) \cdot$ \qquad \qquad \qquad \qquad $(X-a^7) \qquad \qquad (X-a^9)$} @@ -567,39 +569,39 @@ \begin{itemize} - \item Satz von Fermat: $f(X) = X^{q-1}-1=0$ + \onslide<1->{\item Satz von Fermat: $f(X) = X^{q-1}-1=0$} \vspace{10pt} - \item $f(X) = X^{10}-1 = 0$ \qquad für $X = [1,2,3,4,5,6,7,8,9,10]$ + \onslide<1->{\item $f(X) = X^{10}-1 = 0$ \qquad für $X = [1,2,3,4,5,6,7,8,9,10]$} \vspace{10pt} - \item $f(X) = (X-a^0)(X-a^1)(X-a^2)(X-a^3)(X-a^4)(X-a^5)(X-a^6) \cdot$ + \onslide<1->{\item $f(X) = (X-a^0)(X-a^1)(X-a^2)(X-a^3)(X-a^4)(X-a^5)(X-a^6) \cdot$ - \qquad \qquad $(X-a^7)(X-a^8)(X-a^9)$ + \qquad \qquad $(X-a^7)(X-a^8)(X-a^9)$} \vspace{10pt} - \item $e(X) = (X-a^0)(X-a^1)(X-a^2) \qquad \qquad (X-a^4)(X-a^5)(X-a^6) \cdot$ + \onslide<1->{\item $e(X) = (X-a^0)(X-a^1)(X-a^2) \qquad \qquad (X-a^4)(X-a^5)(X-a^6) \cdot$ - \qquad \qquad $(X-a^7) \qquad \qquad (X-a^9) \cdot p(x)$ + \qquad \qquad $(X-a^7) \qquad \qquad (X-a^9) \cdot p(x)$} \vspace{10pt} - \item $\operatorname{kgV}$ gibt uns eine Liste von aller Nullstellen, die wir in $e$ und $d$ zerlegen können + \onslide<1->{\item $\operatorname{kgV}$ gibt uns eine Liste von aller Nullstellen, die wir in $e$ und $d$ zerlegen können} \vspace{10pt} - $\operatorname{kgV}(f(X),e(X)) = (X-a^0)(X-a^1)(X-a^2)(X-a^3)(X-a^4)(X-a^5)(X-a^6) \cdot $ + \onslide<2->{$\operatorname{kgV}(f(X),e(X)) = (X-a^0)(X-a^1)(X-a^2)(X-a^3)(X-a^4)(X-a^5)(X-a^6) \cdot $ - \qquad \qquad \qquad \qquad $(X-a^7)(X-a^8)(X-a^9) \cdot q(X)$ + \qquad \qquad \qquad \qquad $(X-a^7)(X-a^8)(X-a^9) \cdot q(X)$} - $= d(X) \cdot e(X)$ + \onslide<3->{$= d(X) \cdot e(X)$} \vspace{10pt} - \item Lokatorpolynom $d(X) = (X-a^3)(X-a^8)$ + \onslide<4->{\item Lokatorpolynom $d(X) = (X-a^3)(X-a^8)$} \end{itemize} @@ -610,29 +612,29 @@ \begin{itemize} - \only<1->{\item $e(X)$ ist unbekannt auf der Empfängerseite} + \onslide<1->{\item $e(X)$ ist unbekannt auf der Empfängerseite} \vspace{10pt} - \only<1->{\item $e(X) = r(X) - m(X)$ \qquad $\rightarrow$ \qquad $m(X)$ ist unbekannt?} + \onslide<2->{\item $e(X) = r(X) - m(X)$ \qquad $\rightarrow$ \qquad $m(X)$ ist unbekannt?} \vspace{10pt} - \only<1->{\item $m$ ist nicht gänzlich unbekannt: $m = [0,0,0,0,?,?,?,?,?,?]$ + \onslide<3->{\item $m$ ist nicht gänzlich unbekannt: $m = [0,0,0,0,?,?,?,?,?,?]$ In den bekannten Stellen liegt auch die Information, wo es Fehler gegeben hat} \vspace{10pt} - \only<1->{\item Daraus folgt $e(X) = 5X^9 + 7X^8 + 4X^7 + 10X^6 + p(X)$} + \onslide<4->{\item Daraus folgt $e(X) = 5X^9 + 7X^8 + 4X^7 + 10X^6 + p(X)$} \vspace{10pt} - \only<1->{\item $f(X) = X^{10} - 1 = X^{10} + 10$} + \onslide<5->{\item $f(X) = X^{10} - 1 = X^{10} + 10$} \vspace{10pt} - \only<1->{\item Jetzt können wir den $\operatorname{ggT}$ von $f(X)$ und $e(X)$ berechnen} + \onslide<6->{\item Jetzt können wir den $\operatorname{ggT}$ von $f(X)$ und $e(X)$ berechnen} \end{itemize} \end{frame} @@ -640,8 +642,8 @@ \begin{frame} \frametitle{Der Euklidische Algorithmus (nochmal)} - \only<1->{$\operatorname{ggT}(f(X),e(X))$ hat den Grad $8$} - \only<1->{ + \onslide<1->{$\operatorname{ggT}(f(X),e(X))$ hat den Grad $8$} + \onslide<2->{ \[ \arraycolsep=1.4pt \begin{array}{rcrcrcrcccrcrcrcrcrcrcrcrcr} @@ -653,7 +655,7 @@ \end{array} \] } - \only<1->{ + \onslide<3->{ \[ \arraycolsep=1.4pt \begin{array}{rcrcrcrcccrcrcrcrcrcrcrcrcr} @@ -665,11 +667,11 @@ } \vspace{10pt} - \only<1->{$\operatorname{ggT}(f(X),e(X)) = 6X^8$} + \onslide<4->{$\operatorname{ggT}(f(X),e(X)) = 6X^8$} \vspace{10pt} - \only<1->{ $\operatorname{kgV}$ durch den erweiterten Euklidischen Algorithmus bestimmen } + \onslide<5->{ $\operatorname{kgV}$ durch den erweiterten Euklidischen Algorithmus bestimmen } \end{frame} @@ -695,20 +697,22 @@ \vspace{10pt} \begin{tabular}{ll} - \only<1->{Somit erhalten wir den Faktor& $d(X) = 2X^2 + 5$\\} - \only<1->{Faktorisiert erhalten wir& $d(X) = 2(X-5)(X-6)$\\} - \only<1->{Lokatorpolynom& $d(X) = (X-a^i)(X-a^i)$} + \onslide<3->{Somit erhalten wir den Faktor& $d(X) = 2X^2 + 5$\\} + \onslide<4->{Faktorisiert erhalten wir& $d(X) = 2(X-5)(X-6)$\\} + \onslide<5->{Lokatorpolynom& $d(X) = (X-a^i)(X-a^i)$} \end{tabular} \vspace{10pt} - \only<1->{ + + \onslide<6->{ \begin{center} $a^i = 5 \qquad \Rightarrow \qquad i = 3$ $a^i = 6 \qquad \Rightarrow \qquad i = 8$ \end{center} - } - \only<1->{$d(X) = (X-a^3)(X-a^8)$} + } + + \onslide<7->{$d(X) = (X-a^3)(X-a^8)$} \end{frame} %------------------------------------------------------------------------------- @@ -718,12 +722,12 @@ \begin{itemize} - \only<1->{\item $w = [5,3,6,8,2,10,2,7,1,4]$} + \onslide<1->{\item $w = [5,3,6,\textcolor{red}{8},2,10,2,7,\textcolor{red}{1},4]$} - \only<1->{\item $d(X) = (X-\textcolor<4->{red}{a^3})(X-\textcolor<4->{red}{a^8})$} + \onslide<2->{\item $d(X) = (X-\textcolor<4->{red}{a^3})(X-\textcolor<4->{red}{a^8})$} \end{itemize} - \only<1->{ + \onslide<3->{ \[ \textcolor{gray}{ \begin{pmatrix} @@ -751,11 +755,11 @@ \end{pmatrix} \] } - \only<1->{ + \begin{itemize} - \item Fehlerstellen entfernen + \onslide<5->{\item Fehlerstellen entfernen} \end{itemize} - } + \end{frame} %------------------------------------------------------------------------------- \begin{frame} @@ -767,25 +771,25 @@ \end{pmatrix} = \begin{pmatrix} - 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& \textcolor<3->{green}{8^0}& \textcolor<3->{green}{8^0}& \textcolor<3->{green}{8^0}& \textcolor<3->{green}{8^0}\\ - 8^0& 8^1& 8^2& 8^3& 8^4& 8^5& \textcolor<3->{green}{8^6}& \textcolor<3->{green}{8^7}& \textcolor<3->{green}{8^8}& \textcolor<3->{green}{8^9}\\ - 8^0& 8^2& 8^4& 8^6& 8^8& 8^{10}& \textcolor<3->{green}{8^{12}}& \textcolor<3->{green}{8^{14}}& \textcolor<3->{green}{8^{16}}& \textcolor<3->{green}{8^{18}}\\ - 8^0& 8^4& 8^8& 8^{12}& 8^{16}& 8^{20}& \textcolor<3->{green}{8^{24}}& \textcolor<3->{green}{8^{28}}& \textcolor<3->{green}{8^{32}}& \textcolor<3->{green}{8^{36}}\\ - 8^0& 8^5& 8^{10}& 8^{15}& 8^{20}& 8^{25}& \textcolor<3->{green}{8^{30}}& \textcolor<3->{green}{8^{35}}& \textcolor<3->{green}{8^{40}}& \textcolor<3->{green}{8^{45}}\\ - 8^0& 8^6& 8^{12}& 8^{18}& 8^{24}& 8^{30}& \textcolor<3->{green}{8^{36}}& \textcolor<3->{green}{8^{42}}& \textcolor<3->{green}{8^{48}}& \textcolor<3->{green}{8^{54}}\\ - 8^0& 8^7& 8^{14}& 8^{21}& 8^{28}& 8^{35}& \textcolor<3->{green}{8^{42}}& \textcolor<3->{green}{8^{49}}& \textcolor<3->{green}{8^{56}}& \textcolor<3->{green}{8^{63}}\\ - 8^0& 8^9& 8^{18}& 8^{27}& 8^{36}& 8^{45}& \textcolor<3->{green}{8^{54}}& \textcolor<3->{green}{8^{63}}& \textcolor<3->{green}{8^{72}}& \textcolor<3->{green}{8^{81}}\\ + 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& \textcolor<4->{green}{8^0}& \textcolor<4->{green}{8^0}& \textcolor<4->{green}{8^0}& \textcolor<4->{green}{8^0}\\ + 8^0& 8^1& 8^2& 8^3& 8^4& 8^5& \textcolor<4->{green}{8^6}& \textcolor<4->{green}{8^7}& \textcolor<4->{green}{8^8}& \textcolor<4->{green}{8^9}\\ + 8^0& 8^2& 8^4& 8^6& 8^8& 8^{10}& \textcolor<4->{green}{8^{12}}& \textcolor<4->{green}{8^{14}}& \textcolor<4->{green}{8^{16}}& \textcolor<4->{green}{8^{18}}\\ + 8^0& 8^4& 8^8& 8^{12}& 8^{16}& 8^{20}& \textcolor<4->{green}{8^{24}}& \textcolor<4->{green}{8^{28}}& \textcolor<4->{green}{8^{32}}& \textcolor<4->{green}{8^{36}}\\ + 8^0& 8^5& 8^{10}& 8^{15}& 8^{20}& 8^{25}& \textcolor<4->{green}{8^{30}}& \textcolor<4->{green}{8^{35}}& \textcolor<4->{green}{8^{40}}& \textcolor<4->{green}{8^{45}}\\ + 8^0& 8^6& 8^{12}& 8^{18}& 8^{24}& 8^{30}& \textcolor<4->{green}{8^{36}}& \textcolor<4->{green}{8^{42}}& \textcolor<4->{green}{8^{48}}& \textcolor<4->{green}{8^{54}}\\ + 8^0& 8^7& 8^{14}& 8^{21}& 8^{28}& 8^{35}& \textcolor<4->{green}{8^{42}}& \textcolor<4->{green}{8^{49}}& \textcolor<4->{green}{8^{56}}& \textcolor<4->{green}{8^{63}}\\ + 8^0& 8^9& 8^{18}& 8^{27}& 8^{36}& 8^{45}& \textcolor<4->{green}{8^{54}}& \textcolor<4->{green}{8^{63}}& \textcolor<4->{green}{8^{72}}& \textcolor<4->{green}{8^{81}}\\ \end{pmatrix} \cdot \begin{pmatrix} m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ \textcolor<2->{green}{m_6} \\ \textcolor<2->{green}{m_7} \\ \textcolor<2->{green}{m_8} \\ \textcolor<2->{green}{m_9} \\ \end{pmatrix} \] - \only<1->{ + \begin{itemize} - \item Nullstellen entfernen + \onslide<3->{\item Nullstellen entfernen} \end{itemize} - } + \end{frame} %------------------------------------------------------------------------------- \begin{frame} @@ -793,7 +797,7 @@ \[ \begin{pmatrix} - 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ \textcolor<2->{red}{7} \\ \textcolor<2->{red}{4} \\ + 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ \textcolor<3->{red}{7} \\ \textcolor<3->{red}{4} \\ \end{pmatrix} = \begin{pmatrix} @@ -803,8 +807,8 @@ 8^0& 8^4& 8^8& 8^{12}& 8^{16}& 8^{20}\\ 8^0& 8^5& 8^{10}& 8^{15}& 8^{20}& 8^{25}\\ 8^0& 8^6& 8^{12}& 8^{18}& 8^{24}& 8^{30}\\ - \textcolor<2->{red}{8^0}& \textcolor<2->{red}{8^7}& \textcolor<2->{red}{8^{14}}& \textcolor<2->{red}{8^{21}}& \textcolor<2->{red}{8^{28}}& \textcolor<2->{red}{8^{35}}\\ - \textcolor<2->{red}{8^0}& \textcolor<2->{red}{8^9}& \textcolor<2->{red}{8^{18}}& \textcolor<2->{red}{8^{27}}& \textcolor<2->{red}{8^{36}}& \textcolor<2->{red}{8^{45}}\\ + \textcolor<3->{red}{8^0}& \textcolor<3->{red}{8^7}& \textcolor<3->{red}{8^{14}}& \textcolor<3->{red}{8^{21}}& \textcolor<3->{red}{8^{28}}& \textcolor<3->{red}{8^{35}}\\ + \textcolor<3->{red}{8^0}& \textcolor<3->{red}{8^9}& \textcolor<3->{red}{8^{18}}& \textcolor<3->{red}{8^{27}}& \textcolor<3->{red}{8^{36}}& \textcolor<3->{red}{8^{45}}\\ \end{pmatrix} \cdot \begin{pmatrix} @@ -813,11 +817,11 @@ \] \vspace{5pt} - \only<1->{ + \begin{itemize} - \item Matrix in eine Quadratische Form bringen + \onslide<2->{\item Matrix in eine Quadratische Form bringen} \end{itemize} - } + \end{frame} %------------------------------------------------------------------------------- \begin{frame} @@ -845,7 +849,7 @@ \vspace{5pt} \begin{itemize} - \item Matrix Invertieren + \onslide<2->{\item Matrix Invertieren} \end{itemize} \end{frame} @@ -873,9 +877,10 @@ \] \begin{center} - $\Downarrow$ + \onslide<2->{$\Downarrow$} \end{center} \[ + \onslide<3->{ \begin{pmatrix} m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ \end{pmatrix} @@ -892,6 +897,7 @@ \begin{pmatrix} 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ \end{pmatrix} + } \] \end{frame} @@ -919,7 +925,7 @@ \] \begin{itemize} - \item $m = [4,7,2,5,8,1]$ + \onslide<2->{\item $m = [4,7,2,5,8,1]$} \end{itemize} \end{frame} diff --git a/buch/papers/reedsolomon/RS presentation/RS_handout.tex b/buch/papers/reedsolomon/RS presentation/RS_handout.tex new file mode 100644 index 0000000..863b3a2 --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/RS_handout.tex @@ -0,0 +1,921 @@ +\documentclass[11pt,aspectratio=169]{beamer} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{lmodern} +\usepackage[ngerman]{babel} +\usepackage{tikz} +\usetheme{Hannover} + +\begin{document} + \author{Joshua Bär und Michael Steiner} + \title{Reed-Solomon-Code} + \subtitle{} + \logo{} + \institute{OST Ostschweizer Fachhochschule} + \date{26.04.2021} + \subject{Mathematisches Seminar} + %\setbeamercovered{transparent} + \setbeamercovered{invisible} + \setbeamertemplate{navigation symbols}{} + \begin{frame}[plain] + \maketitle + \end{frame} +%------------------------------------------------------------------------------- +\section{Einführung} + \begin{frame} + \frametitle{Reed-Solomon-Code:} + \begin{itemize} + \visible<1->{\item Für Übertragung von Daten} + \visible<2->{\item Ermöglicht Korrektur von Übertragungsfehler} + \visible<3->{\item Wird verwendet in: CD, QR-Codes, Voyager-Sonde, etc.} + \end{itemize} + \end{frame} +%------------------------------------------------------------------------------- +\section{Polynom Ansatz} + \begin{frame} + \begin{itemize} + \item Beispiel $2, 1, 5$ versenden und auf 2 Fehler absichern + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{Beispiel} + Übertragen von + ${f}_2=\textcolor{blue}{2}$, ${f}_1=\textcolor{blue}{1}$, ${f}_0=\textcolor{blue}{5}$ + als $ p(w) = \textcolor{blue}{2}w^2 + \textcolor{blue}{1}w + \textcolor{blue}{5} $. + + \only<1>{ + Versende $ (p(1),p(2),\dots,p(7)) = (\textcolor{green}{8}, + \textcolor{green}{15}, \textcolor{green}{26}, + \textcolor{green}{41}, \textcolor{green}{60}, + \textcolor{green}{83}, \textcolor{green}{110})$ + \includegraphics[scale = 1.2]{images/polynom1.pdf}} + \only<2>{ + Versende $ (p(1),p(2),\dots,p(7)) = (\textcolor{green}{8}, + \textcolor{red}{50}, \textcolor{red}{37}, + \textcolor{green}{41}, \textcolor{green}{60}, + \textcolor{green}{83}, \textcolor{green}{110})$ + \includegraphics[scale = 1.2]{images/polynom2.pdf} + \newline + \textcolor{green}{7} Zahlen versenden, um \textcolor{blue}{3} Zahlen gegen \textcolor{red}{2} Fehlern abzusichern.} + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Parameter} + \begin{center} + \begin{tabular}{ c c c } + \hline + Nutzlas & Fehler & Versenden \\ + \hline + 3 & 2 & 7 Werte eines Polynoms vom Grad 2 \\ + 4 & 2 & 8 Werte eines Polynoms vom Grad 3 \\ +\visible<1->{3}& +\visible<1->{3}& +\visible<1->{9 Werte eines Polynoms vom Grad 2} \\ + &&\\ +\visible<1->{$k$} & +\visible<1->{$t$} & +\visible<1->{$k+2t$ Werte eines Polynoms vom Grad $k-1$} \\ + \hline + &&\\ + &&\\ + \multicolumn{3}{l} { + \visible<1>{Ausserdem können bis zu $2t$ Fehler erkannt werden!} + } + \end{tabular} + \end{center} + \end{frame} + +%------------------------------------------------------------------------------- + +\section{Diskrete Fourier Transformation} + \begin{frame} + \frametitle{Idee} + \begin{itemize} + \item Fourier-transformieren + \item Übertragung + \item Rücktransformieren + \end{itemize} + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \begin{figure} + \only<1>{ + \includegraphics[width=0.9\linewidth]{images/fig1.pdf} + } + \only<2>{ + \includegraphics[width=0.9\linewidth]{images/fig2.pdf} + } + \only<3>{ + \includegraphics[width=0.9\linewidth]{images/fig3.pdf} + } + \only<4>{ + \includegraphics[width=0.9\linewidth]{images/fig4.pdf} + } + \only<5>{ + \includegraphics[width=0.9\linewidth]{images/fig5.pdf} + } + \only<6>{ + \includegraphics[width=0.9\linewidth]{images/fig6.pdf} + } + \only<7>{ + \includegraphics[width=0.9\linewidth]{images/fig7.pdf} + } + \end{figure} + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Diskrete Fourier Transformation} + \begin{itemize} + \item Diskrete Fourier-Transformation gegeben durch: + \visible<1->{ + \[ + \label{ft_discrete} + \hat{c}_{k} + = \frac{1}{N} \sum_{n=0}^{N-1} + {f}_n \cdot e^{-\frac{2\pi j}{N} \cdot kn} + \]} + \visible<2->{ + \item Ersetzte + \[ + w = e^{-\frac{2\pi j}{N} k} + \]} + \visible<3->{ + \item Wenn $N$ konstant: + \[ + \hat{c}_{k}=\frac{1}{N}( {f}_0 w^0 + {f}_1 w^1 + {f}_2 w^2 + \dots + {f}_{N-1} w^N) + \]} + \end{itemize} + \end{frame} + +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Diskrete Fourier Transformation} + \[ + \begin{pmatrix} + \hat{c}_1 \\\hat{c}_2 \\\hat{c}_3 \\ \vdots \\\hat{c}_n + \end{pmatrix} + = \frac{1}{N} + \begin{pmatrix} + w^0 & w^0 & w^0 & \dots &w^0 \\ + w^0 & w^1 &w^2 & \dots &w^{N-1} \\ + w^0 & w^2 &w^4 & \dots &w^{2(N-1)} \\ + \vdots & \vdots &\vdots &\ddots &\vdots \\ + w^0 & w^{1(N-1)}&w^{2(N-1)}& \dots &w^{(N-1)(N-1)} \\ + \end{pmatrix} + \begin{pmatrix} + \textcolor{blue}{f_0} \\ + \textcolor{blue}{f_1} \\ + \textcolor{blue}{f_2} \\ + \vdots \\ + 0 \\ + \end{pmatrix} + \] + \end{frame} +%------------------------------------------------------------------------------- + + \begin{frame} + \frametitle{Probleme und Fragen} + + Wie wird der Fehler lokalisiert? + \visible<2>{ + \newline + Indem in einem endlichen Körper gerechnet wird. + } + \end{frame} + +%------------------------------------------------------------------------------- + + +\section{Reed-Solomon in Endlichen Körpern} + + \begin{frame} + \frametitle{Reed-Solomon in Endlichen Körpern} + + \begin{itemize} + \item Warum endliche Körper? + + \qquad konkrete Zahlen $\rightarrow$ keine Rundungsfehler + + \qquad digitale Fehlerkorrektur + + %\onslide<4->{\qquad bessere Laufzeit} + + \vspace{10pt} + + \item Nachricht = Nutzdaten + Fehlerkorrekturteil + + \vspace{10pt} + + \item aus Fehlerkorrekturteil die Fehlerstellen finden + + \qquad $\Rightarrow$ gesucht ist ein Lokatorpolynom + +% \vspace{10pt} + +% \onslide<1->{\item Im Fehlerfall sollen wir aus der Nachricht ein Lokatorpolynom berechnen können, welches die fehlerhaften Stellen beinhaltet} + +% Wir sollten im Fehlerfall in der Lage sein, aus der Nachricht ein Lokatorpolynom zu berechnen, welches die Fehlerhaften Stellen beinhaltet + + \end{itemize} + +% TODO + +% erklärung und einführung der endlichen körper, was wollen wir erreichen? + +% wir versenden im endefekt mehr daten als unsere nachricht umfasst, damit die korrektur sichergestellt werden kann + +% sollten wir fehler bekommen, was uns die korrekturstellen mitgeteilt wird, dann ist es unsere aufgabe ein lokatorpolynom zu finden, welches uns verrät, auf welchen zeilen der Fehler aufgetreten ist + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Definition eines Beispiels} + + \begin{itemize} + + \item endlicher Körper $q = 11$ + + ist eine Primzahl + + beinhaltet die Zahlen $\mathbb{F}_{11} = \{0,1,2,3,4,5,6,7,8,9,10\}$ + + \vspace{10pt} + + \item Nachrichtenblock $=$ Nutzlast $+$ Fehlerkorrekturstellen + + $n = q - 1 = 10$ Zahlen + + \vspace{10pt} + + \item Max.~Fehler $t = 2$ + + maximale Anzahl von Fehler, die wir noch korrigieren können + + \vspace{10pt} + + \item Nutzlast $k = n -2t = 6$ Zahlen + + Fehlerkorrkturstellen $2t = 4$ Zahlen + + Nachricht $m = [0,0,0,0,4,7,2,5,8,1]$ + + als Polynom $m(X) = 4X^5 + 7X^4 + 2X^3 + 5X^2 + 8X + 1$ + + \end{itemize} + + \end{frame} +%------------------------------------------------------------------------------- +\section{Codierung eines Beispiels} + \begin{frame} + \frametitle{Codierung} + + \begin{itemize} + \item Ansatz aus den komplexen Zahlen mit der diskreten Fouriertransformation + + \vspace{10pt} + + \item Eulersche Zahl $\mathrm{e}$ existiert nicht in $\mathbb{F}_{11}$ + + \vspace{10pt} + + \item Wir suchen $a$ so, dass $a^i$ den gesamten Zahlenbereich von $\mathbb{F}_{11}$ abdecken + + $\mathbb{Z}_{11}\setminus\{0\} = \{a^0, a^1, a^2, a^3, a^4, a^5, a^6, a^7, a^8, a^9\}$ + + \vspace{10pt} + + \item Wir wählen $a = 8$ + + $\mathbb{Z}_{11}\setminus\{0\} = \{1,8,9,6,4,10,3,2,5,7\}$ + + $8$ ist eine primitive Einheitswurzel + + \vspace{10pt} + + \item $m(8^0) = 4\cdot1 + 7\cdot1 + 2\cdot1 + 5\cdot1 + 8\cdot1 + 1 = 5$ + + $\Rightarrow$ \qquad können wir auch als Matrix schreiben + + \end{itemize} + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Codierung} + + \begin{itemize} + \item Übertragungsvektor $v$ + + \item $v = A \cdot m$ + + \end{itemize} + + \[ + v = \begin{pmatrix} + 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0\\ + 8^0& 8^1& 8^2& 8^3& 8^4& 8^5& 8^6& 8^7& 8^8& 8^9\\ + 8^0& 8^2& 8^4& 8^6& 8^8& 8^{10}& 8^{12}& 8^{14}& 8^{16}& 8^{18}\\ + 8^0& 8^3& 8^6& 8^9& 8^{12}& 8^{15}& 8^{18}& 8^{21}& 8^{24}& 8^{27}\\ + 8^0& 8^4& 8^8& 8^{12}& 8^{16}& 8^{20}& 8^{24}& 8^{28}& 8^{32}& 8^{36}\\ + 8^0& 8^5& 8^{10}& 8^{15}& 8^{20}& 8^{25}& 8^{30}& 8^{35}& 8^{40}& 8^{45}\\ + 8^0& 8^6& 8^{12}& 8^{18}& 8^{24}& 8^{30}& 8^{36}& 8^{42}& 8^{48}& 8^{54}\\ + 8^0& 8^7& 8^{14}& 8^{21}& 8^{28}& 8^{35}& 8^{42}& 8^{49}& 8^{56}& 8^{63}\\ + 8^0& 8^8& 8^{16}& 8^{24}& 8^{32}& 8^{40}& 8^{48}& 8^{56}& 8^{64}& 8^{72}\\ + 8^0& 8^9& 8^{18}& 8^{27}& 8^{36}& 8^{45}& 8^{54}& 8^{63}& 8^{72}& 8^{81}\\ + \end{pmatrix} + \cdot + \begin{pmatrix} + 1 \\ 8 \\ 5 \\ 2 \\ 7 \\ 4 \\ 0 \\ 0 \\ 0 \\ 0 \\ + \end{pmatrix} + \] + + \begin{itemize} + \item $v = [5,3,6,5,2,10,2,7,10,4]$ + \end{itemize} + + \end{frame} +%------------------------------------------------------------------------------- +\section{Decodierung ohne Fehler} + \begin{frame} + \frametitle{Decodierung ohne Fehler} + + \begin{itemize} + \item Der Empfänger erhält den unveränderten Vektor $v = [5,3,6,5,2,10,2,7,10,4]$ + + \vspace{10pt} + + \item Wir suchen die Inverse der Matrix $A$ + + \vspace{10pt} + + \end{itemize} + + \begin{columns}[t] + \begin{column}{0.55\textwidth} + Inverse der Fouriertransformation + \vspace{10pt} + + \[ + F(\omega) = \int_{-\infty}^{\infty} f(t) \mathrm{e}^{-j\omega t} dt + \] + + \vspace{10pt} + + \[ + \mathfrak{F}^{-1}(F(\omega)) = f(t) = \frac{1}{2 \pi} \int_{-\infty}^{\infty} F(\omega) \mathrm{e}^{j \omega t} d\omega + \] + + \end{column} + \begin{column}{0.45\textwidth} + Inverse von $a$ + + \vspace{10pt} + + \[ + 8^{1} \Rightarrow 8^{-1} + \] + + Inverse finden wir über den Eulkidischen Algorithmus + \vspace{10pt} + \end{column} + \end{columns} + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Der Euklidische Algorithmus} + + \begin{columns}[t] + \begin{column}{0.50\textwidth} + + Recap aus der Vorlesung: + + Gegeben $a \in \mathbb{F}_p$, finde $b = a^{-1} \in \mathbb{F}_p$ + + \begin{tabular}{rcl} + $a b$ &$\equiv$& $1 \mod p$\\ + $a b$ &$=$& $1 + n p$\\ + $a b - n p$ &$=$& $1$\\ + &&\\ + $\operatorname{ggT}(a,p)$&$=$& $1$\\ + $sa + tp$&$=$& $1$\\ + $b$&$=$&$s$\\ + $n$&$=$&$-t$ + \end{tabular} + + \end{column} + \begin{column}{0.50\textwidth} + + \begin{center} + + \begin{tabular}{| c | c c | c | r r |} + \hline + $k$ & $a_i$ & $b_i$ & $q_i$ & $c_i$ & $d_i$\\ + \hline + & & & & $1$& $0$\\ + $0$& $8$& $11$& $0$& $0$& $1$\\ + $1$& $11$& $8$& $1$& $1$& $0$\\ + $2$& $8$& $3$& $2$& $-1$& $1$\\ + $3$& $3$& $2$& $1$& $3$& $-2$\\ + $4$& $2$& $1$& $2$& \textcolor{blue}{$-4$}& \textcolor{red}{$3$}\\ + $5$& $1$& $0$& & $11$& $-8$\\ + \hline + \end{tabular} + + + \vspace{10pt} + + \begin{tabular}{rcl} + $\textcolor{blue}{-4} \cdot 8 + \textcolor{red}{3} \cdot 11$ &$=$& $1$\\ + $7 \cdot 8 + 3 \cdot 11$ &$=$& $1$\\ + $8^{-1}$ &$=$& $7$ + + \end{tabular} + + \end{center} + + \end{column} + \end{columns} + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Decodierung mit Inverser Matrix} + + \begin{itemize} + \item $v = [5,3,6,5,2,10,2,7,10,4]$ + + \item $m = 1/10 \cdot A^{-1} \cdot v$ + + \item $m = 10 \cdot A^{-1} \cdot v$ + + \end{itemize} + + \[ + m = 10 \cdot \begin{pmatrix} + 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0\\ + 7^0& 7^1& 7^2& 7^3& 7^4& 7^5& 7^6& 7^7& 7^8& 7^9\\ + 7^0& 7^2& 7^4& 7^6& 7^8& 7^{10}& 7^{12}& 7^{14}& 7^{16}& 7^{18}\\ + 7^0& 7^3& 7^6& 7^9& 7^{12}& 7^{15}& 7^{18}& 7^{21}& 7^{24}& 7^{27}\\ + 7^0& 7^4& 7^8& 7^{12}& 7^{16}& 7^{20}& 7^{24}& 7^{28}& 7^{32}& 7^{36}\\ + 7^0& 7^5& 7^{10}& 7^{15}& 7^{20}& 7^{25}& 7^{30}& 7^{35}& 7^{40}& 7^{45}\\ + 7^0& 7^6& 7^{12}& 7^{18}& 7^{24}& 7^{30}& 7^{36}& 7^{42}& 7^{48}& 7^{54}\\ + 7^0& 7^7& 7^{14}& 7^{21}& 7^{28}& 7^{35}& 7^{42}& 7^{49}& 7^{56}& 7^{63}\\ + 7^0& 7^8& 7^{16}& 7^{24}& 7^{32}& 7^{40}& 7^{48}& 7^{56}& 7^{64}& 7^{72}\\ + 7^0& 7^9& 7^{18}& 7^{27}& 7^{36}& 7^{45}& 7^{54}& 7^{63}& 7^{72}& 7^{81}\\ + \end{pmatrix} + \cdot + \begin{pmatrix} + 5 \\ 3 \\ 6 \\ 5 \\ 2 \\ 10 \\ 2 \\ 7 \\ 10 \\ 4 \\ + \end{pmatrix} + \] + + \begin{itemize} + \item $m = [0,0,0,0,4,7,2,5,8,1]$ + \end{itemize} + + \end{frame} +%------------------------------------------------------------------------------- +\section{Decodierung mit Fehler} + \begin{frame} + \frametitle{Decodierung mit Fehler - Ansatz} + + \begin{itemize} + \item Gesendet: $v = [5,3,6,5,2,10,2,7,10,4]$ + + \item Empfangen: $w = [5,3,6,\textcolor{red}{8},2,10,2,7,\textcolor{red}{1},4]$ + + \item Rücktransformation: $r = [\underbrace{5,7,4,10,}_{Fehlerinfo}5,4,5,7,6,7]$ + + \end{itemize} + + Wie finden wir die Fehler? + + \begin{itemize} + \item $m(X) = 4X^5 + 7X^4 + 2X^3 + 5X^2 + 8X + 1$ + + \item $r(X) = 5X^9 + 7X^8 + 4X^7 + 10X^6 + 5X^5 + 4X^4 + 5X^3 + 7X^2 + 6X + 7$ + + \item $e(X) = r(X) - m(X)$ + + \end{itemize} + + \begin{center} + + \begin{tabular}{c c c c c c c c c c c} + \hline + $i$& $0$& $1$& $2$& $3$& $4$& $5$& $6$& $7$& $8$& $9$\\ + \hline + $r(a^{i})$& $5$& $3$& $6$& $8$& $2$& $10$& $2$& $7$& $1$& $4$\\ + $m(a^{i})$& $5$& $3$& $6$& $5$& $2$& $10$& $2$& $7$& $10$& $4$\\ + $e(a^{i})$& $0$& $0$& $0$& $3$& $0$& $0$& $0$& $0$& $2$& $0$\\ + \hline + \end{tabular} + + \end{center} + + \begin{itemize} + \item Alle Stellen, die nicht Null sind, sind Fehler + \end{itemize} + + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Nullstellen des Fehlerpolynoms finden} + + \begin{itemize} + \item Satz von Fermat: $f(X) = X^{q-1}-1=0$ + + \vspace{10pt} + + \item $f(X) = X^{10}-1 = 0$ \qquad für $X \in \{1,2,3,4,5,6,7,8,9,10\}$ + + \vspace{10pt} + + \item $f(X) = (X-a^0)(X-a^1)(X-a^2)(X-a^3)(X-a^4)(X-a^5)(X-a^6) \cdot$ + + \qquad \qquad $(X-a^7)(X-a^8)(X-a^9)$ + + \vspace{10pt} + + \item $e(X) = (X-a^0)(X-a^1)(X-a^2) \qquad \qquad (X-a^4)(X-a^5)(X-a^6) \cdot$ + + \qquad \qquad $(X-a^7) \qquad \qquad (X-a^9) \cdot p(x)$ + + \vspace{10pt} + + \item $\operatorname{ggT}$ gibt uns eine Liste der Nullstellen, an denen es keine Fehler gegeben hat + + \vspace{10pt} + + $\operatorname{ggT}(f(X),e(X)) = (X-a^0)(X-a^1)(X-a^2) \qquad \qquad (X-a^4)(X-a^5)(X-a^6) \cdot$ + + \qquad \qquad \qquad \qquad $(X-a^7) \qquad \qquad (X-a^9)$ + + \end{itemize} + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Nullstellen des Fehlerpolynoms finden} + + \begin{itemize} + + \item Satz von Fermat: $f(X) = X^{q-1}-1=0$ + + \vspace{10pt} + + \item $f(X) = X^{10}-1 = 0$ \qquad für $X = [1,2,3,4,5,6,7,8,9,10]$ + + \vspace{10pt} + + \item $f(X) = (X-a^0)(X-a^1)(X-a^2)(X-a^3)(X-a^4)(X-a^5)(X-a^6) \cdot$ + + \qquad \qquad $(X-a^7)(X-a^8)(X-a^9)$ + + \vspace{10pt} + + \item $e(X) = (X-a^0)(X-a^1)(X-a^2) \qquad \qquad (X-a^4)(X-a^5)(X-a^6) \cdot$ + + \qquad \qquad $(X-a^7) \qquad \qquad (X-a^9) \cdot p(x)$ + + \vspace{10pt} + + \item $\operatorname{kgV}$ gibt uns eine Liste von aller Nullstellen, die wir in $e$ und $d$ zerlegen können + + \vspace{10pt} + + $\operatorname{kgV}(f(X),e(X)) = (X-a^0)(X-a^1)(X-a^2)(X-a^3)(X-a^4)(X-a^5)(X-a^6) \cdot $ + + \qquad \qquad \qquad \qquad $(X-a^7)(X-a^8)(X-a^9) \cdot q(X)$ + + $= d(X) \cdot e(X)$ + + \vspace{10pt} + + \item Lokatorpolynom $d(X) = (X-a^3)(X-a^8)$ + + \end{itemize} + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Kennen wir $e(X)$?} + + \begin{itemize} + + \item $e(X)$ ist unbekannt auf der Empfängerseite + + \vspace{10pt} + + \item $e(X) = r(X) - m(X)$ \qquad $\rightarrow$ \qquad $m(X)$ ist unbekannt? + + \vspace{10pt} + + \item $m$ ist nicht gänzlich unbekannt: $m = [0,0,0,0,?,?,?,?,?,?]$ + + In den bekannten Stellen liegt auch die Information, wo es Fehler gegeben hat + + \vspace{10pt} + + \item Daraus folgt $e(X) = 5X^9 + 7X^8 + 4X^7 + 10X^6 + p(X)$ + + \vspace{10pt} + + \item $f(X) = X^{10} - 1 = X^{10} + 10$ + + \vspace{10pt} + + \item Jetzt können wir den $\operatorname{ggT}$ von $f(X)$ und $e(X)$ berechnen + \end{itemize} + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Der Euklidische Algorithmus (nochmal)} + + $\operatorname{ggT}(f(X),e(X))$ hat den Grad $8$ + + \[ + \arraycolsep=1.4pt + \begin{array}{rcrcrcrcccrcrcrcrcrcrcrcrcr} + X^{10}& & & & & & &+& 10& & & & &:&5X^9&+&7X^8&+& 4X^7&+&10X^6&+&p(X)&=&9X&+&5\\ + X^{10}&+& 8X^9&+& 3X^8&+&2X^7&+& p(X)& & & & & & & & & & & & & & & & \\ \cline{1-9} + && 3X^9&+& 8X^8&+& 9X^7&+& p(X)& & & & & & & & & & & & \\ + && 3X^9&+& 2X^8&+& 9X^7&+& p(X)& & & & & & & & & & & & \\ \cline{3-9} + & & & &6X^8&+&0X^7&+&p(X)& & & & & & & & & & & & \\ + \end{array} + \] + + \[ + \arraycolsep=1.4pt + \begin{array}{rcrcrcrcccrcrcrcrcrcrcrcrcr} + 5X^9&+& 7X^8&+& 4X^7&+& 10X^6&+& p(X)& & & & &:&6X^8&+&0X^7& & & & & & &=&10X&+&3\\ + 5X^9&+& 0X^8&+& p(X)& & & & & & & & & & & & & & & & & & & & \\ \cline{1-5} + && 7X^8&+& p(X)& & & & & & & & & & & & & & & & \\ + \end{array} + \] + + \vspace{10pt} + + $\operatorname{ggT}(f(X),e(X)) = 6X^8$ + + \vspace{10pt} + + $\operatorname{kgV}$ durch den erweiterten Euklidischen Algorithmus bestimmen + + \end{frame} + +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Der Erweiterte Euklidische Algorithmus} + + \begin{center} + + \begin{tabular}{| c | c | c c |} + \hline + $k$ & $q_i$ & $e_i$ & $f_i$\\ + \hline + & & $0$& $1$\\ + $0$& $9X + 5$& $1$& $0$\\ + $1$& $10X + 3$& $9X+5$& $1$\\ + $2$& & \textcolor{blue}{$2X^2 + 0X + 5$}& $10X + 3$\\ + \hline + \end{tabular} + + \end{center} + + \vspace{10pt} + + \begin{tabular}{ll} + Somit erhalten wir den Faktor& $d(X) = 2X^2 + 5$\\ + Faktorisiert erhalten wir& $d(X) = 2(X-5)(X-6)$\\ + Lokatorpolynom& $d(X) = (X-a^i)(X-a^i)$ + \end{tabular} + + \vspace{10pt} + + \begin{center} + $a^i = 5 \qquad \Rightarrow \qquad i = 3$ + + $a^i = 6 \qquad \Rightarrow \qquad i = 8$ + \end{center} + + + $d(X) = (X-a^3)(X-a^8)$ + + \end{frame} +%------------------------------------------------------------------------------- +\section{Nachricht Rekonstruieren} + \begin{frame} + \frametitle{Rekonstruktion der Nachricht} + + \begin{itemize} + + \item $w = [5,3,6,\textcolor{red}{8},2,10,2,7,\textcolor{red}{1},4]$ + + \item $d(X) = (X-\textcolor{red}{a^3})(X-\textcolor{red}{a^8})$ + + \end{itemize} + + \[ + \textcolor{gray}{ + \begin{pmatrix} + a^0 \\ a^1 \\ a^2 \\ \textcolor{red}{a^3} \\ a^4 \\ a^5 \\ a^6 \\ a^7 \\ \textcolor{red}{a^8} \\ a^9 \\ + \end{pmatrix}} + \begin{pmatrix} + 5 \\ 3 \\ 6 \\ \textcolor{red}{8} \\ 2 \\ 10 \\ 2 \\ 7 \\ \textcolor{red}{1} \\ 4 \\ + \end{pmatrix} + = + \begin{pmatrix} + 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0\\ + 8^0& 8^1& 8^2& 8^3& 8^4& 8^5& 8^6& 8^7& 8^8& 8^9\\ + 8^0& 8^2& 8^4& 8^6& 8^8& 8^{10}& 8^{12}& 8^{14}& 8^{16}& 8^{18}\\ + \textcolor{red}{8^0}& \textcolor{red}{8^3}& \textcolor{red}{8^6}& \textcolor{red}{8^9}& \textcolor{red}{8^{12}}& \textcolor{red}{8^{15}}& \textcolor{red}{8^{18}}& \textcolor{red}{8^{21}}& \textcolor{red}{8^{24}}& \textcolor{red}{8^{27}}\\ + 8^0& 8^4& 8^8& 8^{12}& 8^{16}& 8^{20}& 8^{24}& 8^{28}& 8^{32}& 8^{36}\\ + 8^0& 8^5& 8^{10}& 8^{15}& 8^{20}& 8^{25}& 8^{30}& 8^{35}& 8^{40}& 8^{45}\\ + 8^0& 8^6& 8^{12}& 8^{18}& 8^{24}& 8^{30}& 8^{36}& 8^{42}& 8^{48}& 8^{54}\\ + 8^0& 8^7& 8^{14}& 8^{21}& 8^{28}& 8^{35}& 8^{42}& 8^{49}& 8^{56}& 8^{63}\\ + \textcolor{red}{8^0}& \textcolor{red}{8^8}& \textcolor{red}{8^{16}}& \textcolor{red}{8^{24}}& \textcolor{red}{8^{32}}& \textcolor{red}{8^{40}}& \textcolor{red}{8^{48}}& \textcolor{red}{8^{56}}& \textcolor{red}{8^{64}}& \textcolor{red}{8^{72}}\\ + 8^0& 8^9& 8^{18}& 8^{27}& 8^{36}& 8^{45}& 8^{54}& 8^{63}& 8^{72}& 8^{81}\\ + \end{pmatrix} + \cdot + \begin{pmatrix} + m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ m_6 \\ m_7 \\ m_8 \\ m_9 \\ + \end{pmatrix} + \] + + \begin{itemize} + \item Fehlerstellen entfernen + \end{itemize} + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Rekonstruktion der Nachricht} + + \[ + \begin{pmatrix} + 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ 7 \\ 4 \\ + \end{pmatrix} + = + \begin{pmatrix} + 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& \textcolor{green}{8^0}& \textcolor{green}{8^0}& \textcolor{green}{8^0}& \textcolor{green}{8^0}\\ + 8^0& 8^1& 8^2& 8^3& 8^4& 8^5& \textcolor{green}{8^6}& \textcolor{green}{8^7}& \textcolor{green}{8^8}& \textcolor{green}{8^9}\\ + 8^0& 8^2& 8^4& 8^6& 8^8& 8^{10}& \textcolor{green}{8^{12}}& \textcolor{green}{8^{14}}& \textcolor{green}{8^{16}}& \textcolor{green}{8^{18}}\\ + 8^0& 8^4& 8^8& 8^{12}& 8^{16}& 8^{20}& \textcolor{green}{8^{24}}& \textcolor{green}{8^{28}}& \textcolor{green}{8^{32}}& \textcolor{green}{8^{36}}\\ + 8^0& 8^5& 8^{10}& 8^{15}& 8^{20}& 8^{25}& \textcolor{green}{8^{30}}& \textcolor{green}{8^{35}}& \textcolor{green}{8^{40}}& \textcolor{green}{8^{45}}\\ + 8^0& 8^6& 8^{12}& 8^{18}& 8^{24}& 8^{30}& \textcolor{green}{8^{36}}& \textcolor{green}{8^{42}}& \textcolor{green}{8^{48}}& \textcolor{green}{8^{54}}\\ + 8^0& 8^7& 8^{14}& 8^{21}& 8^{28}& 8^{35}& \textcolor{green}{8^{42}}& \textcolor{green}{8^{49}}& \textcolor{green}{8^{56}}& \textcolor{green}{8^{63}}\\ + 8^0& 8^9& 8^{18}& 8^{27}& 8^{36}& 8^{45}& \textcolor{green}{8^{54}}& \textcolor{green}{8^{63}}& \textcolor{green}{8^{72}}& \textcolor{green}{8^{81}}\\ + \end{pmatrix} + \cdot + \begin{pmatrix} + m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ \textcolor{green}{m_6} \\ \textcolor{green}{m_7} \\ \textcolor{green}{m_8} \\ \textcolor{green}{m_9} \\ + \end{pmatrix} + \] + + \begin{itemize} + \item Nullstellen entfernen + \end{itemize} + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Rekonstruktion der Nachricht} + + \[ + \begin{pmatrix} + 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ \textcolor{red}{7} \\ \textcolor{red}{4} \\ + \end{pmatrix} + = + \begin{pmatrix} + 8^0& 8^0& 8^0& 8^0& 8^0& 8^0\\ + 8^0& 8^1& 8^2& 8^3& 8^4& 8^5\\ + 8^0& 8^2& 8^4& 8^6& 8^8& 8^{10}\\ + 8^0& 8^4& 8^8& 8^{12}& 8^{16}& 8^{20}\\ + 8^0& 8^5& 8^{10}& 8^{15}& 8^{20}& 8^{25}\\ + 8^0& 8^6& 8^{12}& 8^{18}& 8^{24}& 8^{30}\\ + \textcolor{red}{8^0}& \textcolor{red}{8^7}& \textcolor{red}{8^{14}}& \textcolor{red}{8^{21}}& \textcolor{red}{8^{28}}& \textcolor{red}{8^{35}}\\ + \textcolor{red}{8^0}& \textcolor{red}{8^9}& \textcolor{red}{8^{18}}& \textcolor{red}{8^{27}}& \textcolor{red}{8^{36}}& \textcolor{red}{8^{45}}\\ + \end{pmatrix} + \cdot + \begin{pmatrix} + m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ + \end{pmatrix} + \] + + \vspace{5pt} + + \begin{itemize} + \item Matrix in eine Quadratische Form bringen + \end{itemize} + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Rekonstruktion der Nachricht} + + \[ + \begin{pmatrix} + 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ + \end{pmatrix} + = + \begin{pmatrix} + 8^0& 8^0& 8^0& 8^0& 8^0& 8^0\\ + 8^0& 8^1& 8^2& 8^3& 8^4& 8^5\\ + 8^0& 8^2& 8^4& 8^6& 8^8& 8^{10}\\ + 8^0& 8^4& 8^8& 8^{12}& 8^{16}& 8^{20}\\ + 8^0& 8^5& 8^{10}& 8^{15}& 8^{20}& 8^{25}\\ + 8^0& 8^6& 8^{12}& 8^{18}& 8^{24}& 8^{30}\\ + \end{pmatrix} + \cdot + \begin{pmatrix} + m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ + \end{pmatrix} + \] + + \vspace{5pt} + + \begin{itemize} + \item Matrix Invertieren + \end{itemize} + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Rekonstruktion der Nachricht} + + \[ + \begin{pmatrix} + 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ + \end{pmatrix} + = + \begin{pmatrix} + 1& 1& 1& 1& 1& 1\\ + 1& 8& 9& 6& 4& 10\\ + 1& 9& 4& 3& 5& 1\\ + 1& 4& 5& 9& 3& 1\\ + 1& 10& 1& 10& 1& 10\\ + 1& 3& 9& 5& 4& 1\\ + \end{pmatrix} + \cdot + \begin{pmatrix} + m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ + \end{pmatrix} + \] + + \begin{center} + $\Downarrow$ + \end{center} + \[ + \begin{pmatrix} + m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ + \end{pmatrix} + = + \begin{pmatrix} + 6& 4& 4& 6& 2& 1\\ + 2& 7& 10& 3& 4& 7\\ + 1& 8& 9& 8& 3& 4\\ + 3& 6& 6& 4& 5& 9\\ + 10& 10& 9& 8& 1& 6\\ + 1& 9& 6& 4& 7& 6\\ + \end{pmatrix} + \cdot + \begin{pmatrix} + 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ + \end{pmatrix} + \] + + \end{frame} +%------------------------------------------------------------------------------- + \begin{frame} + \frametitle{Rekonstruktion der Nachricht} + + \[ + \begin{pmatrix} + m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ + \end{pmatrix} + = + \begin{pmatrix} + 6& 4& 4& 6& 2& 1\\ + 2& 7& 10& 3& 4& 7\\ + 1& 8& 9& 8& 3& 4\\ + 3& 6& 6& 4& 5& 9\\ + 10& 10& 9& 8& 1& 6\\ + 1& 9& 6& 4& 7& 6\\ + \end{pmatrix} + \cdot + \begin{pmatrix} + 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ + \end{pmatrix} + \] + + \begin{itemize} + \item $m = [4,7,2,5,8,1]$ + \end{itemize} + + \end{frame} +%------------------------------------------------------------------------------- + +\end{document} -- cgit v1.2.1 From df810d1315cfb1c4b876d5145846d6ea70753141 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Sat, 24 Apr 2021 15:27:05 +0200 Subject: Handout animation deleted --- .../reedsolomon/RS presentation/RS_handout.aux | 143 +++ .../reedsolomon/RS presentation/RS_handout.log | 1198 ++++++++++++++++++++ .../reedsolomon/RS presentation/RS_handout.nav | 85 ++ .../reedsolomon/RS presentation/RS_handout.out | 8 + .../reedsolomon/RS presentation/RS_handout.pdf | Bin 0 -> 172860 bytes .../reedsolomon/RS presentation/RS_handout.snm | 1 + .../RS presentation/RS_handout.synctex.gz | Bin 0 -> 132775 bytes .../reedsolomon/RS presentation/RS_handout.tex | 58 +- .../reedsolomon/RS presentation/RS_handout.toc | 9 + 9 files changed, 1466 insertions(+), 36 deletions(-) create mode 100644 buch/papers/reedsolomon/RS presentation/RS_handout.aux create mode 100644 buch/papers/reedsolomon/RS presentation/RS_handout.log create mode 100644 buch/papers/reedsolomon/RS presentation/RS_handout.nav create mode 100644 buch/papers/reedsolomon/RS presentation/RS_handout.out create mode 100644 buch/papers/reedsolomon/RS presentation/RS_handout.pdf create mode 100644 buch/papers/reedsolomon/RS presentation/RS_handout.snm create mode 100644 buch/papers/reedsolomon/RS presentation/RS_handout.synctex.gz create mode 100644 buch/papers/reedsolomon/RS presentation/RS_handout.toc (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/RS presentation/RS_handout.aux b/buch/papers/reedsolomon/RS presentation/RS_handout.aux new file mode 100644 index 0000000..41ccfb5 --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/RS_handout.aux @@ -0,0 +1,143 @@ +\relax +\providecommand\hyper@newdestlabel[2]{} +\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} +\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined +\global\let\oldcontentsline\contentsline +\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} +\global\let\oldnewlabel\newlabel +\gdef\newlabel#1#2{\newlabelxx{#1}#2} +\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} +\AtEndDocument{\ifx\hyper@anchor\@undefined +\let\contentsline\oldcontentsline +\let\newlabel\oldnewlabel +\fi} +\fi} +\global\let\hyper@last\relax +\gdef\HyperFirstAtBeginDocument#1{#1} +\providecommand*\HyPL@Entry[1]{} +\bbl@beforestart +\catcode `"\active +\HyPL@Entry{0<>} +\babel@aux{ngerman}{} +\@writefile{nav}{\headcommand {\slideentry {0}{0}{1}{1/1}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {1}{1}}} +\HyPL@Entry{1<>} +\@writefile{toc}{\beamer@sectionintoc {1}{Einführung}{2}{0}{1}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {1}{1}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {1}{1}}} +\@writefile{nav}{\headcommand {\sectionentry {1}{Einführung}{2}{Einführung}{0}}} +\@writefile{nav}{\headcommand {\slideentry {1}{0}{1}{2/2}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {2}{2}}} +\HyPL@Entry{2<>} +\@writefile{toc}{\beamer@sectionintoc {2}{Polynom Ansatz}{3}{0}{2}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {2}{2}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {2}{2}}} +\@writefile{nav}{\headcommand {\sectionentry {2}{Polynom Ansatz}{3}{Polynom Ansatz}{0}}} +\@writefile{nav}{\headcommand {\slideentry {2}{0}{1}{3/3}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {3}{3}}} +\HyPL@Entry{3<>} +\@writefile{nav}{\headcommand {\slideentry {2}{0}{2}{4/4}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {4}{4}}} +\HyPL@Entry{4<>} +\@writefile{toc}{\beamer@sectionintoc {3}{Diskrete Fourier Transformation}{5}{0}{3}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {3}{4}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {3}{4}}} +\@writefile{nav}{\headcommand {\sectionentry {3}{Diskrete Fourier Transformation}{5}{Diskrete Fourier Transformation}{0}}} +\@writefile{nav}{\headcommand {\slideentry {3}{0}{1}{5/5}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {5}{5}}} +\HyPL@Entry{5<>} +\@writefile{nav}{\headcommand {\slideentry {3}{0}{2}{6/12}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {6}{12}}} +\HyPL@Entry{12<>} +\@writefile{snm}{\beamer@slide {ft_discrete}{13}} +\newlabel{ft_discrete}{{7}{13}{Diskrete Fourier Transformation}{Doc-Start}{}} +\@writefile{nav}{\headcommand {\slideentry {3}{0}{3}{13/13}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {13}{13}}} +\HyPL@Entry{13<>} +\@writefile{nav}{\headcommand {\slideentry {3}{0}{4}{14/14}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {14}{14}}} +\HyPL@Entry{14<>} +\@writefile{nav}{\headcommand {\slideentry {3}{0}{5}{15/15}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {15}{15}}} +\HyPL@Entry{15<>} +\@writefile{toc}{\beamer@sectionintoc {4}{Reed-Solomon in Endlichen Körpern}{16}{0}{4}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {5}{15}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {5}{15}}} +\@writefile{nav}{\headcommand {\sectionentry {4}{Reed-Solomon in Endlichen Körpern}{16}{Reed-Solomon in Endlichen Körpern}{0}}} +\@writefile{nav}{\headcommand {\slideentry {4}{0}{1}{16/16}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {16}{16}}} +\HyPL@Entry{16<>} +\@writefile{nav}{\headcommand {\slideentry {4}{0}{2}{17/17}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {17}{17}}} +\HyPL@Entry{17<>} +\@writefile{toc}{\beamer@sectionintoc {5}{Codierung eines Beispiels}{18}{0}{5}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {16}{17}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {16}{17}}} +\@writefile{nav}{\headcommand {\sectionentry {5}{Codierung eines Beispiels}{18}{Codierung eines Beispiels}{0}}} +\@writefile{nav}{\headcommand {\slideentry {5}{0}{1}{18/18}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {18}{18}}} +\HyPL@Entry{18<>} +\@writefile{nav}{\headcommand {\slideentry {5}{0}{2}{19/19}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {19}{19}}} +\HyPL@Entry{19<>} +\@writefile{toc}{\beamer@sectionintoc {6}{Decodierung ohne Fehler}{20}{0}{6}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {18}{19}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {18}{19}}} +\@writefile{nav}{\headcommand {\sectionentry {6}{Decodierung ohne Fehler}{20}{Decodierung ohne Fehler}{0}}} +\@writefile{nav}{\headcommand {\slideentry {6}{0}{1}{20/20}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {20}{20}}} +\HyPL@Entry{20<>} +\@writefile{nav}{\headcommand {\slideentry {6}{0}{2}{21/21}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {21}{21}}} +\HyPL@Entry{21<>} +\@writefile{nav}{\headcommand {\slideentry {6}{0}{3}{22/22}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {22}{22}}} +\HyPL@Entry{22<>} +\@writefile{toc}{\beamer@sectionintoc {7}{Decodierung mit Fehler}{23}{0}{7}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {20}{22}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {20}{22}}} +\@writefile{nav}{\headcommand {\sectionentry {7}{Decodierung mit Fehler}{23}{Decodierung mit Fehler}{0}}} +\@writefile{nav}{\headcommand {\slideentry {7}{0}{1}{23/23}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {23}{23}}} +\HyPL@Entry{23<>} +\@writefile{nav}{\headcommand {\slideentry {7}{0}{2}{24/24}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {24}{24}}} +\HyPL@Entry{24<>} +\@writefile{nav}{\headcommand {\slideentry {7}{0}{3}{25/25}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {25}{25}}} +\HyPL@Entry{25<>} +\@writefile{nav}{\headcommand {\slideentry {7}{0}{4}{26/26}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {26}{26}}} +\HyPL@Entry{26<>} +\@writefile{nav}{\headcommand {\slideentry {7}{0}{5}{27/27}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {27}{27}}} +\HyPL@Entry{27<>} +\@writefile{nav}{\headcommand {\slideentry {7}{0}{6}{28/28}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {28}{28}}} +\HyPL@Entry{28<>} +\@writefile{toc}{\beamer@sectionintoc {8}{Nachricht Rekonstruieren}{29}{0}{8}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {23}{28}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {23}{28}}} +\@writefile{nav}{\headcommand {\sectionentry {8}{Nachricht Rekonstruieren}{29}{Nachricht Rekonstruieren}{0}}} +\@writefile{nav}{\headcommand {\slideentry {8}{0}{1}{29/29}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {29}{29}}} +\HyPL@Entry{29<>} +\@writefile{nav}{\headcommand {\slideentry {8}{0}{2}{30/30}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {30}{30}}} +\HyPL@Entry{30<>} +\@writefile{nav}{\headcommand {\slideentry {8}{0}{3}{31/31}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {31}{31}}} +\HyPL@Entry{31<>} +\@writefile{nav}{\headcommand {\slideentry {8}{0}{4}{32/32}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {32}{32}}} +\HyPL@Entry{32<>} +\@writefile{nav}{\headcommand {\slideentry {8}{0}{5}{33/33}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {33}{33}}} +\HyPL@Entry{33<>} +\@writefile{nav}{\headcommand {\slideentry {8}{0}{6}{34/34}{}{0}}} +\@writefile{nav}{\headcommand {\beamer@framepages {34}{34}}} +\@writefile{nav}{\headcommand {\beamer@partpages {1}{34}}} +\@writefile{nav}{\headcommand {\beamer@subsectionpages {29}{34}}} +\@writefile{nav}{\headcommand {\beamer@sectionpages {29}{34}}} +\@writefile{nav}{\headcommand {\beamer@documentpages {34}}} +\@writefile{nav}{\headcommand {\gdef \inserttotalframenumber {28}}} diff --git a/buch/papers/reedsolomon/RS presentation/RS_handout.log b/buch/papers/reedsolomon/RS presentation/RS_handout.log new file mode 100644 index 0000000..988a7c5 --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/RS_handout.log @@ -0,0 +1,1198 @@ +This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019/W32TeX) (preloaded format=xelatex 2019.10.25) 24 APR 2021 15:25 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**RS_handout.tex +(./RS_handout.tex +LaTeX2e <2019-10-01> patch level 1 +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamer.cls +Document Class: beamer 2019/09/29 v3.57 A class for typesetting presentations +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasemodes.sty +(c:/texlive/2019/texmf-dist/tex/latex/etoolbox/etoolbox.sty +Package: etoolbox 2019/09/21 v2.5h e-TeX tools for LaTeX (JAW) +\etb@tempcnta=\count80 +) +\beamer@tempbox=\box27 +\beamer@tempcount=\count81 +\c@beamerpauses=\count82 + +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasedecode.sty +\beamer@slideinframe=\count83 +\beamer@minimum=\count84 +\beamer@decode@box=\box28 +) +\beamer@commentbox=\box29 +\beamer@modecount=\count85 +) +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2018/09/07 v3.3 Provides the ifpdf switch +) +\headdp=\dimen102 +\footheight=\dimen103 +\sidebarheight=\dimen104 +\beamer@tempdim=\dimen105 +\beamer@finalheight=\dimen106 +\beamer@animht=\dimen107 +\beamer@animdp=\dimen108 +\beamer@animwd=\dimen109 +\beamer@leftmargin=\dimen110 +\beamer@rightmargin=\dimen111 +\beamer@leftsidebar=\dimen112 +\beamer@rightsidebar=\dimen113 +\beamer@boxsize=\dimen114 +\beamer@vboxoffset=\dimen115 +\beamer@descdefault=\dimen116 +\beamer@descriptionwidth=\dimen117 +\beamer@lastskip=\skip41 +\beamer@areabox=\box30 +\beamer@animcurrent=\box31 +\beamer@animshowbox=\box32 +\beamer@sectionbox=\box33 +\beamer@logobox=\box34 +\beamer@linebox=\box35 +\beamer@sectioncount=\count86 +\beamer@subsubsectionmax=\count87 +\beamer@subsectionmax=\count88 +\beamer@sectionmax=\count89 +\beamer@totalheads=\count90 +\beamer@headcounter=\count91 +\beamer@partstartpage=\count92 +\beamer@sectionstartpage=\count93 +\beamer@subsectionstartpage=\count94 +\beamer@animationtempa=\count95 +\beamer@animationtempb=\count96 +\beamer@xpos=\count97 +\beamer@ypos=\count98 +\beamer@ypos@offset=\count99 +\beamer@showpartnumber=\count100 +\beamer@currentsubsection=\count101 +\beamer@coveringdepth=\count102 +\beamer@sectionadjust=\count103 +\beamer@tocsectionnumber=\count104 + +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaseoptions.sty +(c:/texlive/2019/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks14 +)) +\beamer@paperwidth=\skip42 +\beamer@paperheight=\skip43 + +(c:/texlive/2019/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2018/04/16 v5.8 Page Geometry + +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/ifvtex.sty +Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. +) +(c:/texlive/2019/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +\Gm@cnth=\count105 +\Gm@cntv=\count106 +\c@Gm@tempcnt=\count107 +\Gm@bindingoffset=\dimen118 +\Gm@wd@mp=\dimen119 +\Gm@odd@mp=\dimen120 +\Gm@even@mp=\dimen121 +\Gm@layoutwidth=\dimen122 +\Gm@layoutheight=\dimen123 +\Gm@layouthoffset=\dimen124 +\Gm@layoutvoffset=\dimen125 +\Gm@dimlist=\toks15 +) +(c:/texlive/2019/texmf-dist/tex/latex/base/size11.clo +File: size11.clo 2019/08/27 v1.4j Standard LaTeX file (size option) +) +(c:/texlive/2019/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +(c:/texlive/2019/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR) + +(c:/texlive/2019/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2019/10/08 v1.3c Standard LaTeX Graphics (DPC,SPQR) + +(c:/texlive/2019/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) +(c:/texlive/2019/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: xetex.def on input line 105. + +(c:/texlive/2019/texmf-dist/tex/latex/graphics-def/xetex.def +File: xetex.def 2017/06/24 v5.0h Graphics/color driver for xetex +)) +\Gin@req@height=\dimen126 +\Gin@req@width=\dimen127 +) +(c:/texlive/2019/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +(c:/texlive/2019/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex +\pgfutil@everybye=\toks16 +\pgfutil@tempdima=\dimen128 +\pgfutil@tempdimb=\dimen129 + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.tex) +) (c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def +\pgfutil@abb=\box36 + +(c:/texlive/2019/texmf-dist/tex/latex/ms/everyshi.sty +Package: everyshi 2001/05/15 v3.00 EveryShipout Package (MS) +)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/pgf.revision.tex) +Package: pgfrcs 2019/08/03 v3.1.4b (3.1.4b) +)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +Package: pgfsys 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +\pgfkeys@pathtoks=\toks17 +\pgfkeys@temptoks=\toks18 + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex +\pgfkeys@tmptoks=\toks19 +)) +\pgf@x=\dimen130 +\pgf@y=\dimen131 +\pgf@xa=\dimen132 +\pgf@ya=\dimen133 +\pgf@xb=\dimen134 +\pgf@yb=\dimen135 +\pgf@xc=\dimen136 +\pgf@yc=\dimen137 +\pgf@xd=\dimen138 +\pgf@yd=\dimen139 +\w@pgf@writea=\write3 +\r@pgf@reada=\read1 +\c@pgf@counta=\count108 +\c@pgf@countb=\count109 +\c@pgf@countc=\count110 +\c@pgf@countd=\count111 +\t@pgf@toka=\toks20 +\t@pgf@tokb=\toks21 +\t@pgf@tokc=\toks22 +\pgf@sys@id@count=\count112 + (c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg +File: pgf.cfg 2019/08/03 v3.1.4b (3.1.4b) +) +Driver file for pgf: pgfsys-xetex.def + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-xetex.def +File: pgfsys-xetex.def 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-dvipdfmx.def +File: pgfsys-dvipdfmx.def 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def +File: pgfsys-common-pdf.def 2019/08/03 v3.1.4b (3.1.4b) +) +\pgfsys@objnum=\count113 +))) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex +File: pgfsyssoftpath.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgfsyssoftpath@smallbuffer@items=\count114 +\pgfsyssoftpath@bigbuffer@items=\count115 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex +File: pgfsysprotocol.code.tex 2019/08/03 v3.1.4b (3.1.4b) +)) (c:/texlive/2019/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) + +(c:/texlive/2019/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: xetex.def on input line 225. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348. +Package xcolor Info: Model `RGB' extended on input line 1364. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +Package: pgfcore 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex +\pgfmath@dimen=\dimen140 +\pgfmath@count=\count116 +\pgfmath@box=\box37 +\pgfmath@toks=\toks23 +\pgfmath@stack@operand=\toks24 +\pgfmath@stack@operation=\toks25 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.te +x) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric +.code.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.t +ex) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.co +de.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.te +x) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithm +etics.code.tex))) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex +\c@pgfmathroundto@lastzeros=\count117 +)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfint.code.tex) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex +File: pgfcorepoints.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgf@picminx=\dimen141 +\pgf@picmaxx=\dimen142 +\pgf@picminy=\dimen143 +\pgf@picmaxy=\dimen144 +\pgf@pathminx=\dimen145 +\pgf@pathmaxx=\dimen146 +\pgf@pathminy=\dimen147 +\pgf@pathmaxy=\dimen148 +\pgf@xx=\dimen149 +\pgf@xy=\dimen150 +\pgf@yx=\dimen151 +\pgf@yy=\dimen152 +\pgf@zx=\dimen153 +\pgf@zy=\dimen154 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.cod +e.tex +File: pgfcorepathconstruct.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgf@path@lastx=\dimen155 +\pgf@path@lasty=\dimen156 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.te +x +File: pgfcorepathusage.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgf@shorten@end@additional=\dimen157 +\pgf@shorten@start@additional=\dimen158 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex +File: pgfcorescopes.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgfpic=\box38 +\pgf@hbox=\box39 +\pgf@layerbox@main=\box40 +\pgf@picture@serial@count=\count118 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code +.tex +File: pgfcoregraphicstate.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgflinewidth=\dimen159 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.c +ode.tex +File: pgfcoretransformations.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgf@pt@x=\dimen160 +\pgf@pt@y=\dimen161 +\pgf@pt@temp=\dimen162 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex +File: pgfcorequick.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex +File: pgfcoreobjects.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.co +de.tex +File: pgfcorepathprocessing.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex +File: pgfcorearrows.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgfarrowsep=\dimen163 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex +File: pgfcoreshade.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgf@max=\dimen164 +\pgf@sys@shading@range@num=\count119 +\pgf@shadingcount=\count120 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex +File: pgfcoreimage.code.tex 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex +File: pgfcoreexternal.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgfexternal@startupbox=\box41 +)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex +File: pgfcorelayers.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code +.tex +File: pgfcoretransparency.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex +File: pgfcorepatterns.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) (c:/texlive/2019/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex +File: pgfcorerdf.code.tex 2019/08/03 v3.1.4b (3.1.4b) +))) (c:/texlive/2019/texmf-dist/tex/latex/pgf/utilities/xxcolor.sty +Package: xxcolor 2003/10/24 ver 0.1 +\XC@nummixins=\count121 +\XC@countmixins=\count122 +) +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/atbegshi.sty +Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO) + +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) +) +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) +)) +(c:/texlive/2019/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2019/09/28 v7.00a Hypertext links for LaTeX + +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty +Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO) + + +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty +Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO) +Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO) +Package hobsub Info: Skipping package `infwarerr' (already loaded). +Package hobsub Info: Skipping package `ltxcmds' (already loaded). +Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +Package hobsub Info: Skipping package `ifvtex' (already loaded). +Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO) +Package hobsub Info: Skipping package `ifpdf' (already loaded). +Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) +Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) +Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO) +Package: pdftexcmds 2019/07/25 v0.30 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: pdfTeX >= 1.30 not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode not found. +Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO) +Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO +) +Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO) +Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO) +) +Package hobsub Info: Skipping package `hobsub' (already loaded). +Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO) +Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO) +Package: xcolor-patch 2016/05/16 xcolor patch +Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO) +Package hobsub Info: Skipping package `atbegshi' (already loaded). +Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO) +Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO) +) +(c:/texlive/2019/texmf-dist/tex/latex/oberdiek/auxhook.sty +Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO) +) +(c:/texlive/2019/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) +) +\@linkdim=\dimen165 +\Hy@linkcounter=\count123 +\Hy@pagecounter=\count124 + +(c:/texlive/2019/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2019/09/28 v7.00a Hyperref: PDFDocEncoding definition (HO) +) +\Hy@SavedSpaceFactor=\count125 + +(c:/texlive/2019/texmf-dist/tex/latex/latexconfig/hyperref.cfg +File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive +) +Package hyperref Info: Option `bookmarks' set `true' on input line 4414. +Package hyperref Info: Option `bookmarksopen' set `true' on input line 4414. +Package hyperref Info: Option `implicit' set `false' on input line 4414. +Package hyperref Info: Hyper figures OFF on input line 4540. +Package hyperref Info: Link nesting OFF on input line 4545. +Package hyperref Info: Hyper index ON on input line 4548. +Package hyperref Info: Plain pages OFF on input line 4555. +Package hyperref Info: Backreferencing OFF on input line 4560. +Package hyperref Info: Implicit mode OFF; no redefinition of LaTeX internals. +Package hyperref Info: Bookmarks ON on input line 4793. +\c@Hy@tempcnt=\count126 + +(c:/texlive/2019/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip10 +Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 5152. +\XeTeXLinkMargin=\dimen166 +\Fld@menulength=\count127 +\Field@Width=\dimen167 +\Fld@charsize=\dimen168 +Package hyperref Info: Hyper figures OFF on input line 6423. +Package hyperref Info: Link nesting OFF on input line 6428. +Package hyperref Info: Hyper index ON on input line 6431. +Package hyperref Info: backreferencing OFF on input line 6438. +Package hyperref Info: Link coloring OFF on input line 6443. +Package hyperref Info: Link coloring with OCG OFF on input line 6448. +Package hyperref Info: PDF/A mode OFF on input line 6453. +LaTeX Info: Redefining \ref on input line 6493. +LaTeX Info: Redefining \pageref on input line 6497. +\Hy@abspage=\count128 + + +Package hyperref Message: Stopped early. + +) +Package hyperref Info: Driver (autodetected): hxetex. + (c:/texlive/2019/texmf-dist/tex/latex/hyperref/hxetex.def +File: hxetex.def 2019/09/28 v7.00a Hyperref driver for XeTeX + +(c:/texlive/2019/texmf-dist/tex/latex/hyperref/puenc.def +File: puenc.def 2019/09/28 v7.00a Hyperref: PDF Unicode definition (HO) +) +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/stringenc.sty +Package: stringenc 2016/05/16 v1.11 Convert strings between diff. encodings (HO +) +) +\pdfm@box=\box42 +\c@Hy@AnnotLevel=\count129 +\HyField@AnnotCount=\count130 +\Fld@listcount=\count131 +\c@bookmark@seq@number=\count132 + +(c:/texlive/2019/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty +Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 +82. +)) +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/se-ascii-print.def +File: se-ascii-print.def 2016/05/16 v1.11 stringenc: Printable ASCII characters + +) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaserequires.sty +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasecompatibility.sty) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasefont.sty +(c:/texlive/2019/texmf-dist/tex/latex/amsfonts/amssymb.sty +Package: amssymb 2013/01/14 v3.01 AMS font symbols + +(c:/texlive/2019/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support +\@emptytoks=\toks26 +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Redeclaring math symbol \hbar on input line 98. +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 106. +)) +(c:/texlive/2019/texmf-dist/tex/latex/sansmathaccent/sansmathaccent.sty +Package: sansmathaccent 2013/03/28 + +(c:/texlive/2019/texmf-dist/tex/latex/filehook/filehook.sty +Package: filehook 2019/10/03 v0.6 Hooks for input files +))) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasetranslator.sty +(c:/texlive/2019/texmf-dist/tex/latex/translator/translator.sty +Package: translator 2019-05-31 v1.12a Easy translation of strings in LaTeX +)) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasemisc.sty) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasetwoscreens.sty) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaseoverlay.sty +\beamer@argscount=\count133 +\beamer@lastskipcover=\skip44 +\beamer@trivlistdepth=\count134 +) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasetitle.sty) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasesection.sty +\c@lecture=\count135 +\c@part=\count136 +\c@section=\count137 +\c@subsection=\count138 +\c@subsubsection=\count139 +) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaseframe.sty +\beamer@framebox=\box43 +\beamer@frametitlebox=\box44 +\beamer@zoombox=\box45 +\beamer@zoomcount=\count140 +\beamer@zoomframecount=\count141 +\beamer@frametextheight=\dimen169 +\c@subsectionslide=\count142 +\beamer@frametopskip=\skip45 +\beamer@framebottomskip=\skip46 +\beamer@frametopskipautobreak=\skip47 +\beamer@framebottomskipautobreak=\skip48 +\beamer@envbody=\toks27 +\framewidth=\dimen170 +\c@framenumber=\count143 +) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaseverbatim.sty +\beamer@verbatimfileout=\write4 +) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaseframesize.sty +\beamer@splitbox=\box46 +\beamer@autobreakcount=\count144 +\beamer@autobreaklastheight=\dimen171 +\beamer@frametitletoks=\toks28 +\beamer@framesubtitletoks=\toks29 +) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaseframecomponents.sty +\beamer@footins=\box47 +) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasecolor.sty) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasenotes.sty +\beamer@frameboxcopy=\box48 +) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasetoc.sty) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasetemplates.sty +\beamer@sbttoks=\toks30 + +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaseauxtemplates.sty +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaseboxes.sty +\bmb@box=\box49 +\bmb@colorbox=\box50 +\bmb@boxshadow=\box51 +\bmb@boxshadowball=\box52 +\bmb@boxshadowballlarge=\box53 +\bmb@temp=\dimen172 +\bmb@dima=\dimen173 +\bmb@dimb=\dimen174 +\bmb@prevheight=\dimen175 +) +\beamer@blockheadheight=\dimen176 +)) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbaselocalstructure.sty +(c:/texlive/2019/texmf-dist/tex/latex/tools/enumerate.sty +Package: enumerate 2015/07/23 v3.00 enumerate extensions (DPC) +\@enLab=\toks31 +) +\c@figure=\count145 +\c@table=\count146 +\abovecaptionskip=\skip49 +\belowcaptionskip=\skip50 +) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasenavigation.sty +\beamer@section@min@dim=\dimen177 +) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasetheorems.sty +(c:/texlive/2019/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2019/04/01 v2.17c AMS math features +\@mathmargin=\skip51 + +For additional information on amsmath, use the `?' option. +(c:/texlive/2019/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 AMS text + +(c:/texlive/2019/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 generic functions +\@emptytoks=\toks32 +\ex@=\dimen178 +)) +(c:/texlive/2019/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d Bold Symbols +\pmbraise@=\dimen179 +) +(c:/texlive/2019/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 2016/03/08 v2.02 operator names +) +\inf@bad=\count147 +LaTeX Info: Redefining \frac on input line 227. +\uproot@=\count148 +\leftroot@=\count149 +LaTeX Info: Redefining \overline on input line 389. +\classnum@=\count150 +\DOTSCASE@=\count151 +LaTeX Info: Redefining \ldots on input line 486. +LaTeX Info: Redefining \dots on input line 489. +LaTeX Info: Redefining \cdots on input line 610. +\Mathstrutbox@=\box54 +\strutbox@=\box55 +\big@size=\dimen180 +LaTeX Font Info: Redeclaring font encoding OML on input line 733. +LaTeX Font Info: Redeclaring font encoding OMS on input line 734. +\macc@depth=\count152 +\c@MaxMatrixCols=\count153 +\dotsspace@=\muskip11 +\c@parentequation=\count154 +\dspbrk@lvl=\count155 +\tag@help=\toks33 +\row@=\count156 +\column@=\count157 +\maxfields@=\count158 +\andhelp@=\toks34 +\eqnshift@=\dimen181 +\alignsep@=\dimen182 +\tagshift@=\dimen183 +\tagwidth@=\dimen184 +\totwidth@=\dimen185 +\lineht@=\dimen186 +\@envbody=\toks35 +\multlinegap=\skip52 +\multlinetaggap=\skip53 +\mathdisplay@stack=\toks36 +LaTeX Info: Redefining \[ on input line 2855. +LaTeX Info: Redefining \] on input line 2856. +) +(c:/texlive/2019/texmf-dist/tex/latex/amscls/amsthm.sty +Package: amsthm 2017/10/31 v2.20.4 +\thm@style=\toks37 +\thm@bodyfont=\toks38 +\thm@headfont=\toks39 +\thm@notefont=\toks40 +\thm@headpunct=\toks41 +\thm@preskip=\skip54 +\thm@postskip=\skip55 +\thm@headsep=\skip56 +\dth@everypar=\toks42 +) +\c@theorem=\count159 +) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerbasethemes.sty)) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerthemedefault.sty +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerfontthemedefault.sty) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamercolorthemedefault.sty) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerinnerthemedefault.sty +\beamer@dima=\dimen187 +\beamer@dimb=\dimen188 +) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerouterthemedefault.sty))) +(c:/texlive/2019/texmf-dist/tex/latex/base/inputenc.sty +Package: inputenc 2018/08/11 v1.3c Input encoding file +\inpenc@prehook=\toks43 +\inpenc@posthook=\toks44 + + +Package inputenc Warning: inputenc package ignored with utf8 based engines. + +) (c:/texlive/2019/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2018/08/11 v2.0j Standard LaTeX package + +(c:/texlive/2019/texmf-dist/tex/latex/base/t1enc.def +File: t1enc.def 2018/08/11 v2.0j Standard LaTeX file +LaTeX Font Info: Redeclaring font encoding T1 on input line 48. +) +LaTeX Font Info: Trying to load font information for T1+lmss on input line 1 +05. + +(c:/texlive/2019/texmf-dist/tex/latex/lm/t1lmss.fd +File: t1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern +)) +(c:/texlive/2019/texmf-dist/tex/latex/lm/lmodern.sty +Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts +LaTeX Font Info: Overwriting symbol font `operators' in version `normal' +(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22. +LaTeX Font Info: Overwriting symbol font `letters' in version `normal' +(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23. +LaTeX Font Info: Overwriting symbol font `symbols' in version `normal' +(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal' +(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26. +LaTeX Font Info: Overwriting symbol font `letters' in version `bold' +(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27. +LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' +(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' +(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' +(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' +(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' +(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38. +) +(c:/texlive/2019/texmf-dist/tex/generic/babel/babel.sty +Package: babel 2019/10/15 3.35 The Babel package + +(c:/texlive/2019/texmf-dist/tex/generic/babel/switch.def +File: switch.def 2019/10/15 3.35 Babel switching mechanism +) +(c:/texlive/2019/texmf-dist/tex/generic/babel-german/ngerman.ldf +Language: ngerman 2018/12/08 v2.11 German support for babel (post-1996 orthogra +phy) + +(c:/texlive/2019/texmf-dist/tex/generic/babel-german/ngermanb.ldf +Language: ngermanb 2018/12/08 v2.11 German support for babel (post-1996 orthogr +aphy) + +(c:/texlive/2019/texmf-dist/tex/generic/babel/babel.def +File: babel.def 2019/10/15 3.35 Babel common definitions +\babel@savecnt=\count160 +\U@D=\dimen189 + +(c:/texlive/2019/texmf-dist/tex/generic/babel/xebabel.def +(c:/texlive/2019/texmf-dist/tex/generic/babel/txtbabel.def)) +LaTeX Info: Redefining \textlatin on input line 2185. +\bbl@dirlevel=\count161 +) +Package babel Info: Making " an active character on input line 121. +))) +(c:/texlive/2019/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +(c:/texlive/2019/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +Package: pgf 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex +File: pgfmoduleshapes.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgfnodeparttextbox=\box56 +) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex +File: pgfmoduleplot.code.tex 2019/08/03 v3.1.4b (3.1.4b) +) +(c:/texlive/2019/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.st +y +Package: pgfcomp-version-0-65 2019/08/03 v3.1.4b (3.1.4b) +\pgf@nodesepstart=\dimen190 +\pgf@nodesepend=\dimen191 +) +(c:/texlive/2019/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.st +y +Package: pgfcomp-version-1-18 2019/08/03 v3.1.4b (3.1.4b) +)) (c:/texlive/2019/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +(c:/texlive/2019/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex)) +(c:/texlive/2019/texmf-dist/tex/latex/pgf/math/pgfmath.sty +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +Package: pgffor 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex) +\pgffor@iter=\dimen192 +\pgffor@skip=\dimen193 +\pgffor@stack=\toks45 +\pgffor@toks=\toks46 +)) +(c:/texlive/2019/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex +Package: tikz 2019/08/03 v3.1.4b (3.1.4b) + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.co +de.tex +File: pgflibraryplothandlers.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgf@plot@mark@count=\count162 +\pgfplotmarksize=\dimen194 +) +\tikz@lastx=\dimen195 +\tikz@lasty=\dimen196 +\tikz@lastxsaved=\dimen197 +\tikz@lastysaved=\dimen198 +\tikz@lastmovetox=\dimen199 +\tikz@lastmovetoy=\dimen256 +\tikzleveldistance=\dimen257 +\tikzsiblingdistance=\dimen258 +\tikz@figbox=\box57 +\tikz@figbox@bg=\box58 +\tikz@tempbox=\box59 +\tikz@tempbox@bg=\box60 +\tikztreelevel=\count163 +\tikznumberofchildren=\count164 +\tikznumberofcurrentchild=\count165 +\tikz@fig@count=\count166 + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex +File: pgfmodulematrix.code.tex 2019/08/03 v3.1.4b (3.1.4b) +\pgfmatrixcurrentrow=\count167 +\pgfmatrixcurrentcolumn=\count168 +\pgf@matrix@numberofcolumns=\count169 +) +\tikz@expandcount=\count170 + +(c:/texlive/2019/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzli +brarytopaths.code.tex +File: tikzlibrarytopaths.code.tex 2019/08/03 v3.1.4b (3.1.4b) +))) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerthemeHannover.sty +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerouterthemesidebar.sty +\beamer@sidebarwidth=\dimen259 +\beamer@headheight=\dimen260 +) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamercolorthemeseahorse.sty) +(c:/texlive/2019/texmf-dist/tex/latex/beamer/beamerinnerthemecircles.sty)) +(./RS_handout.aux) +\openout1 = `RS_handout.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for TU/lmr/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. + +*geometry* driver: auto-detecting +*geometry* detected driver: xetex +*geometry* verbose mode - [ preamble ] result: +* driver: xetex +* paper: custom +* layout: +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* modes: includehead includefoot +* h-part:(L,W,R)=(59.22636pt, 381.79135pt, 14.22636pt) +* v-part:(T,H,B)=(0.0pt, 256.0748pt, 0.0pt) +* \paperwidth=455.24408pt +* \paperheight=256.0748pt +* \textwidth=381.79135pt +* \textheight=227.62207pt +* \oddsidemargin=-13.04362pt +* \evensidemargin=-13.04362pt +* \topmargin=-72.26999pt +* \headheight=14.22636pt +* \headsep=0.0pt +* \topskip=11.0pt +* \footskip=14.22636pt +* \marginparwidth=4.0pt +* \marginparsep=10.0pt +* \columnsep=10.0pt +* \skip\footins=10.0pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +ABD: EveryShipout initializing macros +\AtBeginShipoutBox=\box61 +Package hyperref Info: Link coloring OFF on input line 9. + +(c:/texlive/2019/texmf-dist/tex/latex/hyperref/nameref.sty +Package: nameref 2019/09/16 v2.46 Cross-referencing by name of section + +(c:/texlive/2019/texmf-dist/tex/generic/oberdiek/gettitlestring.sty +Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO) +) +\c@section@level=\count171 +) +LaTeX Info: Redefining \ref on input line 9. +LaTeX Info: Redefining \pageref on input line 9. +LaTeX Info: Redefining \nameref on input line 9. + +(./RS_handout.out) (./RS_handout.out) +\@outlinefile=\write5 +\openout5 = `RS_handout.out'. + +LaTeX Font Info: Overwriting symbol font `operators' in version `normal' +(Font) OT1/lmr/m/n --> OT1/cmss/m/n on input line 9. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/lmr/bx/n --> OT1/cmss/bx/n on input line 9. +LaTeX Font Info: Overwriting symbol font `operators' in version `normal' +(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 9. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 9. +\symnumbers=\mathgroup6 +\sympureletters=\mathgroup7 +LaTeX Font Info: Overwriting math alphabet `\mathrm' in version `normal' +(Font) OT1/lmss/m/n --> T1/lmr/m/n on input line 9. +LaTeX Font Info: Redeclaring math alphabet \mathbf on input line 9. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' +(Font) OT1/lmr/bx/n --> T1/lmss/bx/n on input line 9. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' +(Font) OT1/lmr/bx/n --> T1/lmss/bx/n on input line 9. +LaTeX Font Info: Redeclaring math alphabet \mathsf on input line 9. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' +(Font) OT1/lmss/m/n --> T1/lmss/m/n on input line 9. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/lmss/bx/n --> T1/lmss/m/n on input line 9. +LaTeX Font Info: Redeclaring math alphabet \mathit on input line 9. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' +(Font) OT1/lmr/m/it --> T1/lmss/m/it on input line 9. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/lmr/bx/it --> T1/lmss/m/it on input line 9. +LaTeX Font Info: Redeclaring math alphabet \mathtt on input line 9. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' +(Font) OT1/lmtt/m/n --> T1/lmtt/m/n on input line 9. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/lmtt/m/n --> T1/lmtt/m/n on input line 9. +LaTeX Font Info: Overwriting symbol font `numbers' in version `bold' +(Font) T1/lmss/m/n --> T1/lmss/bx/n on input line 9. +LaTeX Font Info: Overwriting symbol font `pureletters' in version `bold' +(Font) T1/lmss/m/it --> T1/lmss/bx/it on input line 9. +LaTeX Font Info: Overwriting math alphabet `\mathrm' in version `bold' +(Font) OT1/lmss/bx/n --> T1/lmr/bx/n on input line 9. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' +(Font) T1/lmss/bx/n --> T1/lmss/bx/n on input line 9. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) T1/lmss/m/n --> T1/lmss/bx/n on input line 9. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) T1/lmss/m/it --> T1/lmss/bx/it on input line 9. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) T1/lmtt/m/n --> T1/lmtt/bx/n on input line 9. + +(c:/texlive/2019/texmf-dist/tex/latex/translator/translator-basic-dictionary-En +glish.dict +Dictionary: translator-basic-dictionary, Language: English +) +(c:/texlive/2019/texmf-dist/tex/latex/translator/translator-bibliography-dictio +nary-English.dict +Dictionary: translator-bibliography-dictionary, Language: English +) +(c:/texlive/2019/texmf-dist/tex/latex/translator/translator-environment-diction +ary-English.dict +Dictionary: translator-environment-dictionary, Language: English +) +(c:/texlive/2019/texmf-dist/tex/latex/translator/translator-months-dictionary-E +nglish.dict +Dictionary: translator-months-dictionary, Language: English +) +(c:/texlive/2019/texmf-dist/tex/latex/translator/translator-numbers-dictionary- +English.dict +Dictionary: translator-numbers-dictionary, Language: English +) +(c:/texlive/2019/texmf-dist/tex/latex/translator/translator-theorem-dictionary- +English.dict +Dictionary: translator-theorem-dictionary, Language: English +) (./RS_handout.nav) + +Package hyperref Warning: Option `pdfauthor' has already been used, +(hyperref) setting the option has no effect on input line 10. + + +Package hyperref Warning: Option `pdfsubject' has already been used, +(hyperref) setting the option has no effect on input line 16. + +[1 + +] +LaTeX Font Info: Trying to load font information for OT1+lmss on input line +32. + (c:/texlive/2019/texmf-dist/tex/latex/lm/ot1lmss.fd +File: ot1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Trying to load font information for OML+lmm on input line 3 +2. + +(c:/texlive/2019/texmf-dist/tex/latex/lm/omllmm.fd +File: omllmm.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Trying to load font information for OMS+lmsy on input line +32. + +(c:/texlive/2019/texmf-dist/tex/latex/lm/omslmsy.fd +File: omslmsy.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Trying to load font information for OMX+lmex on input line +32. + +(c:/texlive/2019/texmf-dist/tex/latex/lm/omxlmex.fd +File: omxlmex.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <10.95> on input line 32. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <8> on input line 32. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <6> on input line 32. +LaTeX Font Info: Trying to load font information for U+msa on input line 32. + + +(c:/texlive/2019/texmf-dist/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2013/01/14 v3.01 AMS symbols A +) +LaTeX Font Info: Trying to load font information for U+msb on input line 32. + + +(c:/texlive/2019/texmf-dist/tex/latex/amsfonts/umsb.fd +File: umsb.fd 2013/01/14 v3.01 AMS symbols B +) +LaTeX Font Info: Font shape `T1/lmss/m/it' in size <10.95> not available +(Font) Font shape `T1/lmss/m/sl' tried instead on input line 32. +LaTeX Font Info: Font shape `T1/lmss/m/it' in size <8> not available +(Font) Font shape `T1/lmss/m/sl' tried instead on input line 32. +LaTeX Font Info: Font shape `T1/lmss/m/it' in size <6> not available +(Font) Font shape `T1/lmss/m/sl' tried instead on input line 32. + [2 + +] +File: images/polynom2.pdf Graphic file (type pdf) + + [3 + +] [4 + +] [5 + +] +File: images/fig1.pdf Graphic file (type pdf) + + +Overfull \vbox (14.63716pt too high) detected at line 111 + [] + +[6 + +] +File: images/fig2.pdf Graphic file (type pdf) + + +Overfull \vbox (14.63716pt too high) detected at line 111 + [] + +[7 + +] +File: images/fig3.pdf Graphic file (type pdf) + + +Overfull \vbox (14.63716pt too high) detected at line 111 + [] + +[8 + +] +File: images/fig4.pdf Graphic file (type pdf) + + +Overfull \vbox (14.63716pt too high) detected at line 111 + [] + +[9 + +] +File: images/fig5.pdf Graphic file (type pdf) + + +Overfull \vbox (14.63716pt too high) detected at line 111 + [] + +[10 + +] +File: images/fig6.pdf Graphic file (type pdf) + + +Overfull \vbox (14.63716pt too high) detected at line 111 + [] + +[11 + +] +File: images/fig7.pdf Graphic file (type pdf) + + +Overfull \vbox (14.63716pt too high) detected at line 111 + [] + +[12 + +] [13 + +] [14 + +] [15 + +] [16 + +] [17 + +] +LaTeX Font Info: Trying to load font information for T1+lmr on input line 28 +6. + (c:/texlive/2019/texmf-dist/tex/latex/lm/t1lmr.fd +File: t1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern +) [18 + +] [19 + +] +LaTeX Font Info: Trying to load font information for U+euf on input line 368 +. + (c:/texlive/2019/texmf-dist/tex/latex/amsfonts/ueuf.fd +File: ueuf.fd 2013/01/14 v3.01 Euler Fraktur +) [20 + +] +[21 + +] [22 + +] [23 + +] [24 + +] [25 + +] +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <14.4> on input line 618. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <10> on input line 618. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <7> on input line 618. +LaTeX Font Info: Font shape `T1/lmss/m/it' in size <14.4> not available +(Font) Font shape `T1/lmss/m/sl' tried instead on input line 618. +LaTeX Font Info: Font shape `T1/lmss/m/it' in size <10> not available +(Font) Font shape `T1/lmss/m/sl' tried instead on input line 618. +LaTeX Font Info: Font shape `T1/lmss/m/it' in size <7> not available +(Font) Font shape `T1/lmss/m/sl' tried instead on input line 618. + [26 + +] +Overfull \hbox (2.91844pt too wide) detected at line 653 +[] + [] + +[27 + +] [28 + +] [29 + +] [30 + +] [31 + +] [32 + +] [33 + +] [34 + +] +\tf@nav=\write6 +\openout6 = `RS_handout.nav'. + +\tf@toc=\write7 +\openout7 = `RS_handout.toc'. + +\tf@snm=\write8 +\openout8 = `RS_handout.snm'. + +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 907. +Package atveryend Info: Empty hook `AfterLastShipout' on input line 907. + (./RS_handout.aux) +Package atveryend Info: Empty hook `AtVeryEndDocument' on input line 907. +Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 907. +Package rerunfilecheck Info: File `RS_handout.out' has not changed. +(rerunfilecheck) Checksum: CBEDF1F633104E8EE4EB074E401487DA. + ) +Here is how much of TeX's memory you used: + 24519 strings out of 492483 + 453771 string characters out of 6132858 + 551669 words of memory out of 5000000 + 28480 multiletter control sequences out of 15000+600000 + 82614 words of font info for 73 fonts, out of 8000000 for 9000 + 1348 hyphenation exceptions out of 8191 + 58i,15n,61p,804b,549s stack positions out of 5000i,500n,10000p,200000b,80000s + +Output written on RS_handout.pdf (34 pages). diff --git a/buch/papers/reedsolomon/RS presentation/RS_handout.nav b/buch/papers/reedsolomon/RS presentation/RS_handout.nav new file mode 100644 index 0000000..b6e8a36 --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/RS_handout.nav @@ -0,0 +1,85 @@ +\headcommand {\slideentry {0}{0}{1}{1/1}{}{0}} +\headcommand {\beamer@framepages {1}{1}} +\headcommand {\beamer@sectionpages {1}{1}} +\headcommand {\beamer@subsectionpages {1}{1}} +\headcommand {\sectionentry {1}{Einführung}{2}{Einführung}{0}} +\headcommand {\slideentry {1}{0}{1}{2/2}{}{0}} +\headcommand {\beamer@framepages {2}{2}} +\headcommand {\beamer@sectionpages {2}{2}} +\headcommand {\beamer@subsectionpages {2}{2}} +\headcommand {\sectionentry {2}{Polynom Ansatz}{3}{Polynom Ansatz}{0}} +\headcommand {\slideentry {2}{0}{1}{3/3}{}{0}} +\headcommand {\beamer@framepages {3}{3}} +\headcommand {\slideentry {2}{0}{2}{4/4}{}{0}} +\headcommand {\beamer@framepages {4}{4}} +\headcommand {\beamer@sectionpages {3}{4}} +\headcommand {\beamer@subsectionpages {3}{4}} +\headcommand {\sectionentry {3}{Diskrete Fourier Transformation}{5}{Diskrete Fourier Transformation}{0}} +\headcommand {\slideentry {3}{0}{1}{5/5}{}{0}} +\headcommand {\beamer@framepages {5}{5}} +\headcommand {\slideentry {3}{0}{2}{6/12}{}{0}} +\headcommand {\beamer@framepages {6}{12}} +\headcommand {\slideentry {3}{0}{3}{13/13}{}{0}} +\headcommand {\beamer@framepages {13}{13}} +\headcommand {\slideentry {3}{0}{4}{14/14}{}{0}} +\headcommand {\beamer@framepages {14}{14}} +\headcommand {\slideentry {3}{0}{5}{15/15}{}{0}} +\headcommand {\beamer@framepages {15}{15}} +\headcommand {\beamer@sectionpages {5}{15}} +\headcommand {\beamer@subsectionpages {5}{15}} +\headcommand {\sectionentry {4}{Reed-Solomon in Endlichen Körpern}{16}{Reed-Solomon in Endlichen Körpern}{0}} +\headcommand {\slideentry {4}{0}{1}{16/16}{}{0}} +\headcommand {\beamer@framepages {16}{16}} +\headcommand {\slideentry {4}{0}{2}{17/17}{}{0}} +\headcommand {\beamer@framepages {17}{17}} +\headcommand {\beamer@sectionpages {16}{17}} +\headcommand {\beamer@subsectionpages {16}{17}} +\headcommand {\sectionentry {5}{Codierung eines Beispiels}{18}{Codierung eines Beispiels}{0}} +\headcommand {\slideentry {5}{0}{1}{18/18}{}{0}} +\headcommand {\beamer@framepages {18}{18}} +\headcommand {\slideentry {5}{0}{2}{19/19}{}{0}} +\headcommand {\beamer@framepages {19}{19}} +\headcommand {\beamer@sectionpages {18}{19}} +\headcommand {\beamer@subsectionpages {18}{19}} +\headcommand {\sectionentry {6}{Decodierung ohne Fehler}{20}{Decodierung ohne Fehler}{0}} +\headcommand {\slideentry {6}{0}{1}{20/20}{}{0}} +\headcommand {\beamer@framepages {20}{20}} +\headcommand {\slideentry {6}{0}{2}{21/21}{}{0}} +\headcommand {\beamer@framepages {21}{21}} +\headcommand {\slideentry {6}{0}{3}{22/22}{}{0}} +\headcommand {\beamer@framepages {22}{22}} +\headcommand {\beamer@sectionpages {20}{22}} +\headcommand {\beamer@subsectionpages {20}{22}} +\headcommand {\sectionentry {7}{Decodierung mit Fehler}{23}{Decodierung mit Fehler}{0}} +\headcommand {\slideentry {7}{0}{1}{23/23}{}{0}} +\headcommand {\beamer@framepages {23}{23}} +\headcommand {\slideentry {7}{0}{2}{24/24}{}{0}} +\headcommand {\beamer@framepages {24}{24}} +\headcommand {\slideentry {7}{0}{3}{25/25}{}{0}} +\headcommand {\beamer@framepages {25}{25}} +\headcommand {\slideentry {7}{0}{4}{26/26}{}{0}} +\headcommand {\beamer@framepages {26}{26}} +\headcommand {\slideentry {7}{0}{5}{27/27}{}{0}} +\headcommand {\beamer@framepages {27}{27}} +\headcommand {\slideentry {7}{0}{6}{28/28}{}{0}} +\headcommand {\beamer@framepages {28}{28}} +\headcommand {\beamer@sectionpages {23}{28}} +\headcommand {\beamer@subsectionpages {23}{28}} +\headcommand {\sectionentry {8}{Nachricht Rekonstruieren}{29}{Nachricht Rekonstruieren}{0}} +\headcommand {\slideentry {8}{0}{1}{29/29}{}{0}} +\headcommand {\beamer@framepages {29}{29}} +\headcommand {\slideentry {8}{0}{2}{30/30}{}{0}} +\headcommand {\beamer@framepages {30}{30}} +\headcommand {\slideentry {8}{0}{3}{31/31}{}{0}} +\headcommand {\beamer@framepages {31}{31}} +\headcommand {\slideentry {8}{0}{4}{32/32}{}{0}} +\headcommand {\beamer@framepages {32}{32}} +\headcommand {\slideentry {8}{0}{5}{33/33}{}{0}} +\headcommand {\beamer@framepages {33}{33}} +\headcommand {\slideentry {8}{0}{6}{34/34}{}{0}} +\headcommand {\beamer@framepages {34}{34}} +\headcommand {\beamer@partpages {1}{34}} +\headcommand {\beamer@subsectionpages {29}{34}} +\headcommand {\beamer@sectionpages {29}{34}} +\headcommand {\beamer@documentpages {34}} +\headcommand {\gdef \inserttotalframenumber {28}} diff --git a/buch/papers/reedsolomon/RS presentation/RS_handout.out b/buch/papers/reedsolomon/RS presentation/RS_handout.out new file mode 100644 index 0000000..364319e --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/RS_handout.out @@ -0,0 +1,8 @@ +\BOOKMARK [2][]{Outline0.1}{Einführung}{}% 1 +\BOOKMARK [2][]{Outline0.2}{Polynom\040Ansatz}{}% 2 +\BOOKMARK [2][]{Outline0.3}{Diskrete\040Fourier\040Transformation}{}% 3 +\BOOKMARK [2][]{Outline0.4}{Reed-Solomon in Endlichen Körpern}{}% 4 +\BOOKMARK [2][]{Outline0.5}{Codierung\040eines\040Beispiels}{}% 5 +\BOOKMARK [2][]{Outline0.6}{Decodierung\040ohne\040Fehler}{}% 6 +\BOOKMARK [2][]{Outline0.7}{Decodierung\040mit\040Fehler}{}% 7 +\BOOKMARK [2][]{Outline0.8}{Nachricht\040Rekonstruieren}{}% 8 diff --git a/buch/papers/reedsolomon/RS presentation/RS_handout.pdf b/buch/papers/reedsolomon/RS presentation/RS_handout.pdf new file mode 100644 index 0000000..382049d Binary files /dev/null and b/buch/papers/reedsolomon/RS presentation/RS_handout.pdf differ diff --git a/buch/papers/reedsolomon/RS presentation/RS_handout.snm b/buch/papers/reedsolomon/RS presentation/RS_handout.snm new file mode 100644 index 0000000..1796304 --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/RS_handout.snm @@ -0,0 +1 @@ +\beamer@slide {ft_discrete}{13} diff --git a/buch/papers/reedsolomon/RS presentation/RS_handout.synctex.gz b/buch/papers/reedsolomon/RS presentation/RS_handout.synctex.gz new file mode 100644 index 0000000..c28a28a Binary files /dev/null and b/buch/papers/reedsolomon/RS presentation/RS_handout.synctex.gz differ diff --git a/buch/papers/reedsolomon/RS presentation/RS_handout.tex b/buch/papers/reedsolomon/RS presentation/RS_handout.tex index 863b3a2..1cbb6ef 100644 --- a/buch/papers/reedsolomon/RS presentation/RS_handout.tex +++ b/buch/papers/reedsolomon/RS presentation/RS_handout.tex @@ -25,38 +25,29 @@ \begin{frame} \frametitle{Reed-Solomon-Code:} \begin{itemize} - \visible<1->{\item Für Übertragung von Daten} - \visible<2->{\item Ermöglicht Korrektur von Übertragungsfehler} - \visible<3->{\item Wird verwendet in: CD, QR-Codes, Voyager-Sonde, etc.} + \item Für Übertragung von Daten + \item Ermöglicht Korrektur von Übertragungsfehler + \item Wird verwendet in: CD, QR-Codes, Voyager-Sonde, etc. \end{itemize} \end{frame} %------------------------------------------------------------------------------- \section{Polynom Ansatz} \begin{frame} \begin{itemize} - \item Beispiel $2, 1, 5$ versenden und auf 2 Fehler absichern + \item $2, 1, 5$ versenden und auf 2 Fehler absichern \end{itemize} - \end{frame} - \begin{frame} \frametitle{Beispiel} Übertragen von ${f}_2=\textcolor{blue}{2}$, ${f}_1=\textcolor{blue}{1}$, ${f}_0=\textcolor{blue}{5}$ als $ p(w) = \textcolor{blue}{2}w^2 + \textcolor{blue}{1}w + \textcolor{blue}{5} $. - - \only<1>{ - Versende $ (p(1),p(2),\dots,p(7)) = (\textcolor{green}{8}, - \textcolor{green}{15}, \textcolor{green}{26}, - \textcolor{green}{41}, \textcolor{green}{60}, - \textcolor{green}{83}, \textcolor{green}{110})$ - \includegraphics[scale = 1.2]{images/polynom1.pdf}} - \only<2>{ - Versende $ (p(1),p(2),\dots,p(7)) = (\textcolor{green}{8}, - \textcolor{red}{50}, \textcolor{red}{37}, - \textcolor{green}{41}, \textcolor{green}{60}, - \textcolor{green}{83}, \textcolor{green}{110})$ - \includegraphics[scale = 1.2]{images/polynom2.pdf} - \newline - \textcolor{green}{7} Zahlen versenden, um \textcolor{blue}{3} Zahlen gegen \textcolor{red}{2} Fehlern abzusichern.} + \newline + Versende $ (p(1),p(2),\dots,p(7)) = (\textcolor{green}{8}, + \textcolor{red}{50}, \textcolor{red}{37}, + \textcolor{green}{41}, \textcolor{green}{60}, + \textcolor{green}{83}, \textcolor{green}{110})$ + \includegraphics[scale = 1.2]{images/polynom2.pdf} + \newline + \textcolor{green}{7} Zahlen versenden, um \textcolor{blue}{3} Zahlen gegen \textcolor{red}{2} Fehlern abzusichern. \end{frame} %------------------------------------------------------------------------------- \begin{frame} @@ -68,18 +59,14 @@ \hline 3 & 2 & 7 Werte eines Polynoms vom Grad 2 \\ 4 & 2 & 8 Werte eines Polynoms vom Grad 3 \\ -\visible<1->{3}& -\visible<1->{3}& -\visible<1->{9 Werte eines Polynoms vom Grad 2} \\ + 3& 3& 9 Werte eines Polynoms vom Grad 2 \\ &&\\ -\visible<1->{$k$} & -\visible<1->{$t$} & -\visible<1->{$k+2t$ Werte eines Polynoms vom Grad $k-1$} \\ + $k$ & $t$ & $k+2t$ Werte eines Polynoms vom Grad $k-1$ \\ \hline &&\\ &&\\ \multicolumn{3}{l} { - \visible<1>{Ausserdem können bis zu $2t$ Fehler erkannt werden!} + Ausserdem können bis zu $2t$ Fehler erkannt werden! } \end{tabular} \end{center} @@ -127,23 +114,23 @@ \frametitle{Diskrete Fourier Transformation} \begin{itemize} \item Diskrete Fourier-Transformation gegeben durch: - \visible<1->{ + \[ \label{ft_discrete} \hat{c}_{k} = \frac{1}{N} \sum_{n=0}^{N-1} {f}_n \cdot e^{-\frac{2\pi j}{N} \cdot kn} - \]} - \visible<2->{ + \] + \item Ersetzte \[ w = e^{-\frac{2\pi j}{N} k} - \]} - \visible<3->{ + \] + \item Wenn $N$ konstant: \[ \hat{c}_{k}=\frac{1}{N}( {f}_0 w^0 + {f}_1 w^1 + {f}_2 w^2 + \dots + {f}_{N-1} w^N) - \]} + \] \end{itemize} \end{frame} @@ -177,10 +164,9 @@ \frametitle{Probleme und Fragen} Wie wird der Fehler lokalisiert? - \visible<2>{ \newline Indem in einem endlichen Körper gerechnet wird. - } + \end{frame} %------------------------------------------------------------------------------- diff --git a/buch/papers/reedsolomon/RS presentation/RS_handout.toc b/buch/papers/reedsolomon/RS presentation/RS_handout.toc new file mode 100644 index 0000000..ce1bdc2 --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/RS_handout.toc @@ -0,0 +1,9 @@ +\babel@toc {ngerman}{} +\beamer@sectionintoc {1}{Einführung}{2}{0}{1} +\beamer@sectionintoc {2}{Polynom Ansatz}{3}{0}{2} +\beamer@sectionintoc {3}{Diskrete Fourier Transformation}{5}{0}{3} +\beamer@sectionintoc {4}{Reed-Solomon in Endlichen Körpern}{16}{0}{4} +\beamer@sectionintoc {5}{Codierung eines Beispiels}{18}{0}{5} +\beamer@sectionintoc {6}{Decodierung ohne Fehler}{20}{0}{6} +\beamer@sectionintoc {7}{Decodierung mit Fehler}{23}{0}{7} +\beamer@sectionintoc {8}{Nachricht Rekonstruieren}{29}{0}{8} -- cgit v1.2.1 From dd7bd6ca3b6517435dfc6b740ab96f51aa15ac2e Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Sun, 16 May 2021 16:03:36 +0200 Subject: edit main.tex add chapters --- buch/papers/reedsolomon/main.tex | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/main.tex b/buch/papers/reedsolomon/main.tex index 8219b63..a7485cd 100644 --- a/buch/papers/reedsolomon/main.tex +++ b/buch/papers/reedsolomon/main.tex @@ -3,7 +3,7 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Thema\label{chapter:reedsolomon}} +\chapter{Reed-Solomon-Code\label{chapter:reedsolomon}} \lhead{Thema} \begin{refsection} \chapterauthor{Joshua Bär und Michael Steiner} @@ -27,10 +27,18 @@ Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. \end{itemize} +% Joshua \input{papers/reedsolomon/teil0.tex} \input{papers/reedsolomon/teil1.tex} \input{papers/reedsolomon/teil2.tex} \input{papers/reedsolomon/teil3.tex} +% Michael +\input{papers/reedsolomon/endlichekoerper} +\input{papers/reedsolomon/codebsp} +\input{papers/reedsolomon/decohnefehler} +\input{papers/reedsolomon/decmitfehler} +\input{papers/reedsolomon/rekonstruktion} + \printbibliography[heading=subbibliography] \end{refsection} -- cgit v1.2.1 From 898274b6cb5f825fe710eec58349799cdc5f6bc3 Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Sun, 16 May 2021 16:04:13 +0200 Subject: create endlichekoerper.tex added chapter description --- buch/papers/reedsolomon/endlichekoerper.tex | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 buch/papers/reedsolomon/endlichekoerper.tex (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/endlichekoerper.tex b/buch/papers/reedsolomon/endlichekoerper.tex new file mode 100644 index 0000000..8ccd918 --- /dev/null +++ b/buch/papers/reedsolomon/endlichekoerper.tex @@ -0,0 +1,23 @@ +% +% teil1.tex -- Beispiel-File für das Paper +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Reed-Solomon in Endlichen Körpern +\label{reedsolomon:section:endlichekoerper}} +\rhead{Problemstellung} + +TODO: + +Das rechnen in endlichen Körpern bietet einige Vorteile: + +\begin{itemize} + \item Konkrete Zahlen: In endlichen Körpern gibt es weder rationale noch komplexe Zahlen. Zudem beschränken sich die möglichen Rechenoperationen auf das Addieren und Multiplizieren. Somit können wir nur ganze Zahlen als Resultat erhalten. + + \item Digitale Fehlerkorrektur: lässt sich nur in endlichen Körpern umsetzen. + +\end{itemize} + +Um jetzt eine Nachricht in den endlichen Körpern zu konstruieren legen wir fest, dass diese Nachricht aus einem Nutzdatenteil und einem Fehlerkorrekturteil bestehen muss. Somit ist die zu übertragende Nachricht immer grösser als die Daten, die wir übertragen wollen. Zudem müssen wir einen Weg finden, den Fehlerkorrekturteil so aus den Nutzdaten zu berechnen, dass wir die Nutzdaten auf der Empfängerseite wieder rekonstruieren können, sollte es zu einer fehlerhaften Übertragung kommen. + +Nun stellt sich die Frage, wie wir eine Fehlerhafte Nachricht korrigieren können, ohne ihren ursprünglichen Inhalt zu kennen. Der Reed-Solomon-Code erzielt dies, indem aus dem Fehlerkorrekturteil ein sogenanntes "Lokatorpolynom" generiert werden kann. Dieses Polynom gibt dem Emfänger an, welche Stellen in der Nachricht feherhaft sind. -- cgit v1.2.1 From 46fa4763d730b1312741eefb8a2981c73389ccae Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Mon, 17 May 2021 19:32:32 +0200 Subject: update of codebsp started, restetabelle 1&2 created --- buch/papers/reedsolomon/codebsp.tex | 71 +++++++++++++++++++++++++++++++ buch/papers/reedsolomon/restetabelle1.tex | 24 +++++++++++ buch/papers/reedsolomon/restetabelle2.tex | 24 +++++++++++ 3 files changed, 119 insertions(+) create mode 100644 buch/papers/reedsolomon/codebsp.tex create mode 100644 buch/papers/reedsolomon/restetabelle1.tex create mode 100644 buch/papers/reedsolomon/restetabelle2.tex (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/codebsp.tex b/buch/papers/reedsolomon/codebsp.tex new file mode 100644 index 0000000..e9359f9 --- /dev/null +++ b/buch/papers/reedsolomon/codebsp.tex @@ -0,0 +1,71 @@ +% +% teil3.tex -- Beispiel-File für Teil 3 +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Codierung eines Beispiels +\label{reedsolomon:section:codebsp}} +\rhead{Koerper Festlegen} + +Um die Funktionsweise eines Reed-Solomon-Codes besser zu verstehen werden wir die einzelnen Probleme und ihre Lösungen anhand eines Beispiels betrachten. +Da wir in Endlichen Körpern Rechnen werden wir zuerst solch ein Körper festlegen. Dabei müssen wir die \textcolor{red}{Definition 4.6} berücksichtigen, die besagt, dass nur Primzahlen für endliche Körper in Frage kommen. +Wir legen für unser Beispiel den endlichen Körper $q = 11$ fest. +Alle folgenden Berechnungen wurden mit den beiden Restetabellen \textcolor{red}{xx} und \textcolor{red}{yy} durchgeführt. + +% die beiden Restetabellen von F_11 +%\input{papers/reedsolomon/restetabelle1} +%\input{papers/reedsolomon/restetabelle2} + + + + + +\textbf{DUMP} + +Da Körper laut der \textcolor{red}{Definition 4.6} eine Primzahl sein muss, + + +Dieser Körper sollte jedoch über eine nullteilerfreie Restetabelle verfügen. Somit kommen nur Primzahlen als Körper in frage. + + + Für das Beispiel wählen wir die Zahl $11$. + + uns zu aller erst auf ein sochen Körper festlegen. + +Um die Funktionsweise eines Reed-Solomon-Codes besser zu verstehen werden wir dies anhand eines Beispiels betrachten. + +Um die Nachfolgende Rechenwege besser zu verstehen, werden wir die einzelnen Rechenschritte anhand eines Beispiels betrachten. + + + + +Als erstes muss festgelegt werden, in welchem endlichen Körper gerechnet werden soll. +Da die Restetabelle eines Körpers nullteilerfrei sein soll, kommen so nur Primzahlen in Frage. +Für das Beispiel verwenden wir den Körper $\mathbb{F}_{11}$. So wählen wir + + +$q = 11$ + + +und beinhaltet die Zahlen + + +$Z_{11} = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]$ + +\subsection{De finibus bonorum et malorum +\label{reedsolomon:subsection:malorum}} +At vero eos et accusamus et iusto odio dignissimos ducimus qui +blanditiis praesentium voluptatum deleniti atque corrupti quos +dolores et quas molestias excepturi sint occaecati cupiditate non +provident, similique sunt in culpa qui officia deserunt mollitia +animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis +est et expedita distinctio. Nam libero tempore, cum soluta nobis +est eligendi optio cumque nihil impedit quo minus id quod maxime +placeat facere possimus, omnis voluptas assumenda est, omnis dolor +repellendus. Temporibus autem quibusdam et aut officiis debitis aut +rerum necessitatibus saepe eveniet ut et voluptates repudiandae +sint et molestiae non recusandae. Itaque earum rerum hic tenetur a +sapiente delectus, ut aut reiciendis voluptatibus maiores alias +consequatur aut perferendis doloribus asperiores repellat. + + diff --git a/buch/papers/reedsolomon/restetabelle1.tex b/buch/papers/reedsolomon/restetabelle1.tex new file mode 100644 index 0000000..a5055c0 --- /dev/null +++ b/buch/papers/reedsolomon/restetabelle1.tex @@ -0,0 +1,24 @@ +% created by Michael Steiner +% +% Restetabelle von F_11: Addition +\begin{figure} +\begin{center} +\begin{tabular}{|>{$}c<{$}|>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}|} +\hline ++&0&1&2&3&4&5&6&7&8&9&10\\ +\hline +0&0&1&2&3&4&5&6&7&8&9&10\\ +1&1&2&3&4&5&6&7&8&9&10&0\\ +2&2&3&4&5&6&7&8&9&10&0&1\\ +3&3&4&5&6&7&8&9&10&0&1&2\\ +4&4&5&6&7&8&9&10&0&1&2&3\\ +5&5&6&7&8&9&10&0&1&2&3&4\\ +6&6&7&8&9&10&0&1&2&3&4&5\\ +7&7&8&9&10&0&1&2&3&4&5&6\\ +8&8&9&10&0&1&2&3&4&5&6&7\\ +9&9&10&0&1&2&3&4&5&6&7&8\\ +10&10&0&1&2&3&4&5&6&7&8&9\\ +\hline +\end{tabular} +\end{center} +\end{figure} \ No newline at end of file diff --git a/buch/papers/reedsolomon/restetabelle2.tex b/buch/papers/reedsolomon/restetabelle2.tex new file mode 100644 index 0000000..887c981 --- /dev/null +++ b/buch/papers/reedsolomon/restetabelle2.tex @@ -0,0 +1,24 @@ +% created by Michael Steiner +% +% Restetabelle von F_11: Multiplikation +\begin{figure} +\begin{center} +\begin{tabular}{|>{$}c<{$}|>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}|} +\hline +\cdot&0&1&2&3&4&5&6&7&8&9&10\\ +\hline +0&0&0&0&0&0&0&0&0&0&0&0\\ +1&0&1&2&3&4&5&6&7&8&9&10\\ +2&0&2&4&6&8&10&1&3&5&7&9\\ +3&0&3&6&9&1&4&7&10&2&5&8\\ +4&0&4&8&1&5&9&2&6&10&3&7\\ +5&0&5&10&4&9&3&8&2&7&1&6\\ +6&0&6&1&7&2&8&3&9&4&10&5\\ +7&0&7&3&10&6&2&9&5&1&8&4\\ +8&0&8&5&2&10&7&4&1&9&6&3\\ +9&0&9&7&5&3&1&10&8&6&4&2\\ +10&0&10&9&8&7&6&5&4&3&2&1\\ +\hline +\end{tabular} +\end{center} +\end{figure} \ No newline at end of file -- cgit v1.2.1 From 55fc006b2133da4f79eb6eb5179d584c130824a2 Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Tue, 18 May 2021 18:29:59 +0200 Subject: updated codebsp.tex, created decohnefehler.tex (with blindtext) --- buch/papers/reedsolomon/codebsp.tex | 174 +++++++++++++++++++++--------- buch/papers/reedsolomon/decohnefehler.tex | 40 +++++++ 2 files changed, 161 insertions(+), 53 deletions(-) create mode 100644 buch/papers/reedsolomon/decohnefehler.tex (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/codebsp.tex b/buch/papers/reedsolomon/codebsp.tex index e9359f9..5b67c43 100644 --- a/buch/papers/reedsolomon/codebsp.tex +++ b/buch/papers/reedsolomon/codebsp.tex @@ -11,61 +11,129 @@ Um die Funktionsweise eines Reed-Solomon-Codes besser zu verstehen werden wir di Da wir in Endlichen Körpern Rechnen werden wir zuerst solch ein Körper festlegen. Dabei müssen wir die \textcolor{red}{Definition 4.6} berücksichtigen, die besagt, dass nur Primzahlen für endliche Körper in Frage kommen. Wir legen für unser Beispiel den endlichen Körper $q = 11$ fest. Alle folgenden Berechnungen wurden mit den beiden Restetabellen \textcolor{red}{xx} und \textcolor{red}{yy} durchgeführt. +Aus den Tabellen folgt auch, dass uns nur die Zahlen \[\mathbb{F}_{11} = \{0,1,2,3,4,5,6,7,8,9,10\}\] zur Verfügung stehen. % die beiden Restetabellen von F_11 %\input{papers/reedsolomon/restetabelle1} %\input{papers/reedsolomon/restetabelle2} - - - - -\textbf{DUMP} - -Da Körper laut der \textcolor{red}{Definition 4.6} eine Primzahl sein muss, - - -Dieser Körper sollte jedoch über eine nullteilerfreie Restetabelle verfügen. Somit kommen nur Primzahlen als Körper in frage. - - - Für das Beispiel wählen wir die Zahl $11$. - - uns zu aller erst auf ein sochen Körper festlegen. - -Um die Funktionsweise eines Reed-Solomon-Codes besser zu verstehen werden wir dies anhand eines Beispiels betrachten. - -Um die Nachfolgende Rechenwege besser zu verstehen, werden wir die einzelnen Rechenschritte anhand eines Beispiels betrachten. - - - - -Als erstes muss festgelegt werden, in welchem endlichen Körper gerechnet werden soll. -Da die Restetabelle eines Körpers nullteilerfrei sein soll, kommen so nur Primzahlen in Frage. -Für das Beispiel verwenden wir den Körper $\mathbb{F}_{11}$. So wählen wir - - -$q = 11$ - - -und beinhaltet die Zahlen - - -$Z_{11} = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]$ - -\subsection{De finibus bonorum et malorum -\label{reedsolomon:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - +Die grösse des endlichen Körpers legt auch fest, wie gross unsere Nachricht $n$ bestehend aus Nutzdatenteil und Fehlerkorrekturteil sein kann und beträgt in unserem Beispiel +\[ +n = q - 1 = 10 \text{ Zahlen}. +\] + +Im nächsten Schritt bestimmen wir, wie viele Fehler $t$ maximal während der Übertragung auftreten dürfen, damit wir sie noch korrigieren können. +Unser Beispielcode sollte in der Lage sein +\[ +t = 2 +\] +Fehlerstellen korrigieren zu können. + +Die Grösse des Nutzdatenteils hängt von der Grösse der Nachricht sowie der Anzahl der Fehlerkorrekturstellen. Je robuster der Code sein muss, desto weniger Platz für Nutzdaten $k$ bleibt in der Nachricht übrig. +Bei maximal 2 Fehler können wir noch +\[ +k = n - 2t = 6\text{ Zahlen} +\] +übertragen. + +Zusammenfassend haben wir einen Codeblock mit der Länge von 10 Zahlen definiert, der 6 Zahlen als Nutzlast beinhaltet und in der Lage ist aus 2 fehlerhafte Stellen im Block die ursprünglichen Nutzdaten rekonstruieren kann. Zudem werden wir im weiteren feststellen, dass dieser Code maximal 4 Fehlerstellen erkennen, diese aber nicht rekonstruieren kann. + +Wir legen nun die Nachricht +\[ +m = [0,0,0,0,4,7,2,5,8,1] +\] +fest, die wir gerne an einen Empfänger übertragen möchten, wobei die vorderen vier Nullstellen für die Fehlerkorrektur zuständig sind. +Die Nachricht können wir auch als Polynom +\[ +m(X) = 4X^5 + 7X^4 + 2X^3 + 5X^2 + 8X + 1 +\] +darstellen. + +\subsection{Der Ansatz der diskreten Fouriertransformation + \label{reedsolomon:subsection:diskFT}} + +In einem vorherigen Kapitel (???) haben wir schon einmal die diskrete Fouriertransformation zum Codieren einer Nachricht verwendet. In den endlichen Körpern wird dies jedoch nicht gelingen, da die Eulerische Zahl $\mathrm{e}$ in $\mathbb{F}_{11}$ nicht existiert. +Wir suchen also eine Zahl $a^i$, die in endlichen Körpern existiert und den gesamten Zahlenbereich von $\mathbb{F}_{11}$ abdecken kann. +Dazu schreiben wir +\[ +\mathbb{F}_{11} = \{0,1,2,3,4,5,6,7,8,9,10\} +\] +um in +\[ +\mathbb{Z}_{11}\setminus\{0\} = \{a^0, a^1, a^2, a^3, a^4, a^5, a^6, a^7, a^8, a^9\}. +\] + +Wenn wir alle möglichen Werte für $a$ einsetzen, also + +%\begin{align} +%a = 0 : \qquad \mathbb{Z}_{11}\setminus\{0\} = \{0, 0, 0, 0, 0, 0, 0, 0, 0, 0\} \\ +%a = 1 : \qquad \mathbb{Z}_{11}\setminus\{0\} = \{1, 1, 1, 1, 1, 1, 1, 1, 1, 1\} \\ +%a = 2 : \qquad \mathbb{Z}_{11}\setminus\{0\} = \{1, 2, 4, 8, 5, 10, 9, 7, 3, 6\} \\ +%a = 3 : \qquad \mathbb{Z}_{11}\setminus\{0\} = \{1, 3, 9, 5, 4, 1, 3, 9, 5, 4\} \\ +%a = 4 : \qquad \mathbb{Z}_{11}\setminus\{0\} = \{1, 4, 5, 9, 3, 1, 4, 5, 9, 3\} \\ +%a = 5 : \qquad \mathbb{Z}_{11}\setminus\{0\} = \{1, 5, 3, 4, 9, 1, 5, 3, 4, 9\} \\ +%a = 6 : \qquad \mathbb{Z}_{11}\setminus\{0\} = \{1, 6, 3, 7, 9, 10, 5, 8, 4, 2\} \\ +%a = 7 : \qquad \mathbb{Z}_{11}\setminus\{0\} = \{1, 7, 5, 2, 3, 10, 4, 6, 9, 8\} \\ +%a = 8 : \qquad \mathbb{Z}_{11}\setminus\{0\} = \{1, 8, 9, 6, 4, 10, 3, 2, 5, 7\} \\ +%a = 9 : \qquad \mathbb{Z}_{11}\setminus\{0\} = \{1, 9, 4, 3, 5, 1, 9, 4, 3, 5\} \\ +%a = 10 : \qquad \mathbb{Z}_{11}\setminus\{0\} = \{1, 10, 1, 10, 1, 10, 1, 10, 1, 10\} +%\end{align} + +\begin{center} +\begin{tabular}{c r c l} +%$a = 0 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{0, 0, 0, 0, 0, 0, 0, 0, 0, 0\}$ \\ +$a = 1 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 1, 1, 1, 1, 1, 1, 1, 1, 1\}$ \\ +$a = 2 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 2, 4, 8, 5, 10, 9, 7, 3, 6\}$ \\ +$a = 3 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 3, 9, 5, 4, 1, 3, 9, 5, 4\}$ \\ +$a = 4 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 4, 5, 9, 3, 1, 4, 5, 9, 3\}$ \\ +$a = 5 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 5, 3, 4, 9, 1, 5, 3, 4, 9\}$ \\ +$a = 6 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 6, 3, 7, 9, 10, 5, 8, 4, 2\}$ \\ +$a = 7 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 7, 5, 2, 3, 10, 4, 6, 9, 8\}$ \\ +$a = 8 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 8, 9, 6, 4, 10, 3, 2, 5, 7\}$ \\ +$a = 9 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 9, 4, 3, 5, 1, 9, 4, 3, 5\}$ \\ +$a = 10 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 10, 1, 10, 1, 10, 1, 10, 1, 10\}$ +\end{tabular} +\end{center} + +so fällt uns auf, dass die Zahlen $2,6,7,8$ tatsächlich den gesamten Zahlenraum von $\mathbb{F}_{11}$ abbilden. Solche Zahlen werden \em Primitive Einheitswurzel \em genannt. +Für das Beispiel wählen wir die Zahl $a^i = 8$. +Damit wir unsere Nachricht codieren können, müssen wir $8^i$ in $m(X)$ einsetzen. + +\begin{center} + \begin{tabular}{c} + $m(8^0) = 4 \cdot 1 + 7 \cdot 1 + 2 \cdot 1 + 5 \cdot 1 + 8 \cdot 1 + 1 = 5$ \\ + $m(8^1) = 4 \cdot 8 + 7 \cdot 8 + 2 \cdot 8 + 5 \cdot 8 + 8 \cdot 8 + 1 = 3$ \\ + \vdots + \end{tabular} +\end{center} + +Für eine elegantere Formulierung stellen wir das ganze als Matrix dar, wobei $m$ unser Nachrichtenvektor, $A$ die Transformationsmatrix und $v$ unser Übertragungsvektor ist. + +\[ +v = A \cdot m \qquad \Rightarrow \qquad v = \begin{pmatrix} + 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0\\ + 8^0& 8^1& 8^2& 8^3& 8^4& 8^5& 8^6& 8^7& 8^8& 8^9\\ + 8^0& 8^2& 8^4& 8^6& 8^8& 8^{10}& 8^{12}& 8^{14}& 8^{16}& 8^{18}\\ + 8^0& 8^3& 8^6& 8^9& 8^{12}& 8^{15}& 8^{18}& 8^{21}& 8^{24}& 8^{27}\\ + 8^0& 8^4& 8^8& 8^{12}& 8^{16}& 8^{20}& 8^{24}& 8^{28}& 8^{32}& 8^{36}\\ + 8^0& 8^5& 8^{10}& 8^{15}& 8^{20}& 8^{25}& 8^{30}& 8^{35}& 8^{40}& 8^{45}\\ + 8^0& 8^6& 8^{12}& 8^{18}& 8^{24}& 8^{30}& 8^{36}& 8^{42}& 8^{48}& 8^{54}\\ + 8^0& 8^7& 8^{14}& 8^{21}& 8^{28}& 8^{35}& 8^{42}& 8^{49}& 8^{56}& 8^{63}\\ + 8^0& 8^8& 8^{16}& 8^{24}& 8^{32}& 8^{40}& 8^{48}& 8^{56}& 8^{64}& 8^{72}\\ + 8^0& 8^9& 8^{18}& 8^{27}& 8^{36}& 8^{45}& 8^{54}& 8^{63}& 8^{72}& 8^{81}\\ +\end{pmatrix} +\cdot +\begin{pmatrix} + 1 \\ 8 \\ 5 \\ 2 \\ 7 \\ 4 \\ 0 \\ 0 \\ 0 \\ 0 \\ +\end{pmatrix} +\] + +Somit bekommen wir für unseren Übertragungsvektor +\[ +v = [5,3,6,5,2,10,2,7,10,4], +\] +den wir jetzt über einen beliebigen Nachrichtenkanal versenden können. + +\textbf{NOTES} + +warum wird 0 weggelassen? diff --git a/buch/papers/reedsolomon/decohnefehler.tex b/buch/papers/reedsolomon/decohnefehler.tex new file mode 100644 index 0000000..832d63f --- /dev/null +++ b/buch/papers/reedsolomon/decohnefehler.tex @@ -0,0 +1,40 @@ +% +% teil3.tex -- Beispiel-File für Teil 3 +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Decodierung ohne Fehler +\label{reedsolomon:section:decohnefehler}} +\rhead{Teil 3} +Sed ut perspiciatis unde omnis iste natus error sit voluptatem +accusantium doloremque laudantium, totam rem aperiam, eaque ipsa +quae ab illo inventore veritatis et quasi architecto beatae vitae +dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit +aspernatur aut odit aut fugit, sed quia consequuntur magni dolores +eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam +est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci +velit, sed quia non numquam eius modi tempora incidunt ut labore +et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima +veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, +nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure +reprehenderit qui in ea voluptate velit esse quam nihil molestiae +consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla +pariatur? + +\subsection{De finibus bonorum et malorum +\label{reedsolomon:subsection:malorum}} +At vero eos et accusamus et iusto odio dignissimos ducimus qui +blanditiis praesentium voluptatum deleniti atque corrupti quos +dolores et quas molestias excepturi sint occaecati cupiditate non +provident, similique sunt in culpa qui officia deserunt mollitia +animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis +est et expedita distinctio. Nam libero tempore, cum soluta nobis +est eligendi optio cumque nihil impedit quo minus id quod maxime +placeat facere possimus, omnis voluptas assumenda est, omnis dolor +repellendus. Temporibus autem quibusdam et aut officiis debitis aut +rerum necessitatibus saepe eveniet ut et voluptates repudiandae +sint et molestiae non recusandae. Itaque earum rerum hic tenetur a +sapiente delectus, ut aut reiciendis voluptatibus maiores alias +consequatur aut perferendis doloribus asperiores repellat. + + -- cgit v1.2.1 From 9c25485518e7f80050a8ee2a12b94abb009c9a58 Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Tue, 18 May 2021 21:14:36 +0200 Subject: finished first final version of decohnefehler.tex --- buch/papers/reedsolomon/decohnefehler.tex | 128 ++++++++++++++++++++++-------- 1 file changed, 97 insertions(+), 31 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/decohnefehler.tex b/buch/papers/reedsolomon/decohnefehler.tex index 832d63f..90f8ba8 100644 --- a/buch/papers/reedsolomon/decohnefehler.tex +++ b/buch/papers/reedsolomon/decohnefehler.tex @@ -5,36 +5,102 @@ % \section{Decodierung ohne Fehler \label{reedsolomon:section:decohnefehler}} -\rhead{Teil 3} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{reedsolomon:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. +\rhead{fehlerlose rekonstruktion} +Im ersten Teil zur Decodierung des Übertragungsvektor betrachten wir den Übertragungskanal als fehlerfrei. +Wir erhalten also unseren Übertragungsvektor +\[ +v = [5,3,6,5,2,10,2,7,10,4]. +\] +Gesucht ist nun einen Weg, mit dem wir auf unseren Nachrichtenvektor zurückrechnen können. +Ein banaler Ansatz ist das Invertieren der Glechung +\[ +v = A \cdot m \qquad \Rightarrow \qquad m = A^{-1} \cdot v. +\] +Nur stellt sich dann die Frage, wie wir auf die Inverse der Matix $A$ kommen. +Dazu können wir wiederum den Ansatz der Fouriertransformation uns zur Hilfe nehmen, +jedoch betrachten wir jetzt deren Inverse. +Definiert ist sie als +\[ +F(\omega) = \int_{-\infty}^{\infty} f(t) \mathrm{e}^{-j\omega t} dt \qquad \Rightarrow \qquad \mathfrak{F}^{-1}(F(\omega)) = f(t) = \frac{1}{2 \pi} \int_{-\infty}^{\infty} F(\omega) \mathrm{e}^{j \omega t} d\omega. +\] + +In unserem Fall suchen wir also eine inverse für die Primitive Einheitswurzel $a$, also +\[ +8^1 \qquad \Rightarrow \qquad 8^{-1}. +\] + +Im Abschnitt \textcolor{red}{4.1} haben wir den euklidischen Algorithmus kennengelernt, den wir auf unseren Fall anwenden können. + +\subsection{Der Euklidische Algorithmus +\label{reedsolomon:subsection:eukAlgo}} + +Die Funktionsweise des euklidischen Algorithmus ist im Kapitel \textcolor{red}{4.1} ausführlich beschrieben. +Für unsere Anwendung wählen wir die Parameter $a_i = 8$ und $b_i = 11$. +Daraus erhalten wir + +\begin{center} + +\begin{tabular}{| c | c c | c | r r |} + \hline + $k$ & $a_i$ & $b_i$ & $q_i$ & $c_i$ & $d_i$\\ + \hline + & & & & $1$& $0$\\ + $0$& $8$& $11$& $0$& $0$& $1$\\ + $1$& $11$& $8$& $1$& $1$& $0$\\ + $2$& $8$& $3$& $2$& $-1$& $1$\\ + $3$& $3$& $2$& $1$& $3$& $-2$\\ + $4$& $2$& $1$& $2$& \textcolor{blue}{$-4$}& \textcolor{red}{$3$}\\ + $5$& $1$& $0$& & $11$& $-8$\\ + \hline +\end{tabular} + +\end{center} +\begin{center} + +\begin{tabular}{rcl} + $\textcolor{blue}{-4} \cdot 8 + \textcolor{red}{3} \cdot 11$ &$=$& $1$\\ + $7 \cdot 8 + 3 \cdot 11$ &$=$& $1$\\ + $8^{-1}$ &$=$& $7$ + +\end{tabular} + +\end{center} + +als Inverse der Primitiven Einheitswurzel. + +Nun haben wir fast alles für die Rücktransformation beisammen. Wie auch bei der Inversen Fouriertransformation haben wir nun einen Vorfaktor +\[ +m = \textcolor{red}{s} \cdot A^{-1} \cdot v +\] +den wir noch bestimmen müssen. +Glücklicherweise lässt der sich analog wie bei der Inversen Fouriertransformation bestimmen und beträgt +\[ +s = \frac{1}{10}. +\] +Da $\frac{1}{10} = 10^{-1}$ entspricht können wir $s$ ebenfalls mit dem euklidischen Algorithmus bestimmen und stellen fest, dass $10^{-1} = 10$ ergibt. +Somit lässt sich den Nachrichtenvektor einfach bestimmen mit +\[ +m = 10 \cdot A^{-1} \cdot v \qquad \Rightarrow \qquad m = 10 \cdot \begin{pmatrix} + 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0\\ + 7^0& 7^1& 7^2& 7^3& 7^4& 7^5& 7^6& 7^7& 7^8& 7^9\\ + 7^0& 7^2& 7^4& 7^6& 7^8& 7^{10}& 7^{12}& 7^{14}& 7^{16}& 7^{18}\\ + 7^0& 7^3& 7^6& 7^9& 7^{12}& 7^{15}& 7^{18}& 7^{21}& 7^{24}& 7^{27}\\ + 7^0& 7^4& 7^8& 7^{12}& 7^{16}& 7^{20}& 7^{24}& 7^{28}& 7^{32}& 7^{36}\\ + 7^0& 7^5& 7^{10}& 7^{15}& 7^{20}& 7^{25}& 7^{30}& 7^{35}& 7^{40}& 7^{45}\\ + 7^0& 7^6& 7^{12}& 7^{18}& 7^{24}& 7^{30}& 7^{36}& 7^{42}& 7^{48}& 7^{54}\\ + 7^0& 7^7& 7^{14}& 7^{21}& 7^{28}& 7^{35}& 7^{42}& 7^{49}& 7^{56}& 7^{63}\\ + 7^0& 7^8& 7^{16}& 7^{24}& 7^{32}& 7^{40}& 7^{48}& 7^{56}& 7^{64}& 7^{72}\\ + 7^0& 7^9& 7^{18}& 7^{27}& 7^{36}& 7^{45}& 7^{54}& 7^{63}& 7^{72}& 7^{81}\\ +\end{pmatrix} +\cdot +\begin{pmatrix} + 5 \\ 3 \\ 6 \\ 5 \\ 2 \\ 10 \\ 2 \\ 7 \\ 10 \\ 4 \\ +\end{pmatrix} +\] +und wir erhalten +\[ +m = [0,0,0,0,4,7,2,5,8,1] +\] +als unsere Nachricht zurück. \ No newline at end of file -- cgit v1.2.1 From 5294c40d558e93a034d43846e98176291fb32692 Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Mon, 24 May 2021 14:28:24 +0200 Subject: update decohnefehler.tex, create decmitfehler.tex --- buch/papers/reedsolomon/decmitfehler.tex | 16 ++++++++++++++++ buch/papers/reedsolomon/decohnefehler.tex | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 buch/papers/reedsolomon/decmitfehler.tex (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/decmitfehler.tex b/buch/papers/reedsolomon/decmitfehler.tex new file mode 100644 index 0000000..fead10e --- /dev/null +++ b/buch/papers/reedsolomon/decmitfehler.tex @@ -0,0 +1,16 @@ +% +% teil3.tex -- Beispiel-File für Teil 3 +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Decodierung mit Fehler +\label{reedsolomon:section:decmitfehler}} +\rhead{fehlerhafte rekonstruktion} +moin + + +\subsection{Der Satz von Fermat +\label{reedsolomon:subsection:fermat}} +wer ist fermat? + + diff --git a/buch/papers/reedsolomon/decohnefehler.tex b/buch/papers/reedsolomon/decohnefehler.tex index 90f8ba8..6ca577a 100644 --- a/buch/papers/reedsolomon/decohnefehler.tex +++ b/buch/papers/reedsolomon/decohnefehler.tex @@ -80,7 +80,7 @@ Glücklicherweise lässt der sich analog wie bei der Inversen Fouriertransformat s = \frac{1}{10}. \] Da $\frac{1}{10} = 10^{-1}$ entspricht können wir $s$ ebenfalls mit dem euklidischen Algorithmus bestimmen und stellen fest, dass $10^{-1} = 10$ ergibt. -Somit lässt sich den Nachrichtenvektor einfach bestimmen mit +Somit lässt sich der Nachrichtenvektor einfach bestimmen mit \[ m = 10 \cdot A^{-1} \cdot v \qquad \Rightarrow \qquad m = 10 \cdot \begin{pmatrix} 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0\\ -- cgit v1.2.1 From 60bfb41261f51cf20ce65a9242c2624b31d74e75 Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Mon, 24 May 2021 17:17:56 +0200 Subject: decmitfehler.tex updated --- buch/papers/reedsolomon/decmitfehler.tex | 185 ++++++++++++++++++++++++++++++- 1 file changed, 183 insertions(+), 2 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/decmitfehler.tex b/buch/papers/reedsolomon/decmitfehler.tex index fead10e..923c1c5 100644 --- a/buch/papers/reedsolomon/decmitfehler.tex +++ b/buch/papers/reedsolomon/decmitfehler.tex @@ -6,11 +6,192 @@ \section{Decodierung mit Fehler \label{reedsolomon:section:decmitfehler}} \rhead{fehlerhafte rekonstruktion} -moin +Im zweiten Teil zur Decodierung betrachten wir den Fall, dass unser Übertragungskanal nicht fehlerfrei ist. +Wir legen daher den Fehlervektor +\[ +u = [0, 0, 0, 3, 0, 0, 0, 0, 2, 0] +\] +fest, den wir zu unserem Übertragungsvektor als Fehler dazu addieren und somit +\begin{center} + +\begin{tabular}{c | c r } + $v$ & & $[5,3,6,5,2,10,2,7,10,4]$\\ + $u$ & $+$ & $[0,0,0,3,0,0,0,0,2,0]$\\ + \hline + $w$ & & $[5,3,6,8,2,10,2,7,1,4]$\\ +\end{tabular} + +% alternative design +%\begin{tabular}{c | c cccccccccccc } +% $v$ & & $[$&$5,$&$3,$&$6,$&$5,$&$2,$&$10,$&$2,$&$7,$&$10,$&$4$&$]$\\ +% $u$ & $+$ & $[$&$0,$&$0,$&$0,$&$3,$&$0,$&$0,$&$0,$&$0,$&$2,$&$0$&$]$\\ +% \hline +% $w$ & & $[$&$5,$&$3,$&$6,$&$8,$&$2,$&$10,$&$2,$&$7,$&$1,$&$4$&$]$\\ +%\end{tabular} + +\end{center} +als Übertragungsvektor auf der Empfängerseite erhalten. + +Wenn wir den Übertragungsvektor jetzt Rücktransformieren wie im vorherigen Kapitel erhalten wir +\[ +r = [\underbrace{5,7,4,10,}_{Fehlerinfo}5,4,5,7,6,7]. +\] +Im Vergleich zum vorherigen Kapitel sind die Fehlerkorrekturstellen jetzt $\neq 0$, was bedeutet, dass wir diesen Übertragungsvektor fehlerhaft empfangen haben und sich die Nachricht jetzt nicht mehr so einfach decodieren lässt. + +% warum wir die fehler suchen +Da Reed-Solomon-Codes in der Lage sind, eine Nachricht aus weniger Stellen zu rekonstruieren als wir ursprünglich haben, so müssen wir nur die Fehlerhaften Stellen finden und eliminieren, damit wir unsere Nutzdaten rekonstruieren können. +Damit stellt sich die Frage, wie wir die Fehlerstellen $e$ finden. +Dafür wählen wir einen Primitiven Ansatz mit +\begin{align} + m(X) & = 4X^5 + 7X^4 + 2X^3 + 5X^2 + 8X + 1 \\ + r(X) & = 5X^9 + 7X^8 + 4X^7 + 10X^6 + 5X^5 + 4X^4 + 5X^3 + 7X^2 + 6X + 7 \\ + e(X) & = r(X) - m(X). +\end{align} +Setzen wir jetzt unsere Einheitswurzel für $X$ ein, so erhalten wir +\begin{center} +\begin{tabular}{c c c c c c c c c c c} + \hline + $i$& $0$& $1$& $2$& $3$& $4$& $5$& $6$& $7$& $8$& $9$\\ + \hline + $r(a^{i})$& $5$& $3$& $6$& $8$& $2$& $10$& $2$& $7$& $1$& $4$\\ + $m(a^{i})$& $5$& $3$& $6$& $5$& $2$& $10$& $2$& $7$& $10$& $4$\\ + $e(a^{i})$& $0$& $0$& $0$& $3$& $0$& $0$& $0$& $0$& $2$& $0$\\ + \hline +\end{tabular} +\end{center} +und damit die Information, dass an allen Stellen, die nicht Null sind, Fehler enthalten. +Um jetzt alle nicht Nullstellen zu finden, wenden wir den Satz von Fermat an. \subsection{Der Satz von Fermat \label{reedsolomon:subsection:fermat}} -wer ist fermat? +Der Satz von Fermat besagt, dass für +\[ +f(X) = X^{q-1} -1 = 0 +\] +gilt, egal was wir für $q$ einsetzen. + +Für unser Beispiel erhalten wir +\[ +f(X) = X^{10}-1 = 0 \qquad \text{für } X = \{1,2,3,4,5,6,7,8,9,10\} +\] +und können $f(X)$ auch umschreiben in +\[ +f(X) = (X-a^0)(X-a^1)(X-a^2)(X-a^3)(X-a^4)(X-a^5)(X-a^6)(X-a^7)(X-a^8)(X-a^9). +\] +Zur Überprüfung können wir unsere Einheitswurzel in $a$ einsetzen und werden sehen, dass wir für $f(X) = 0$ erhalten werden. +Nach der gleichen Überlegung können wir jetzt auch $e(X)$ darstellen als +\[ +e(X) = (X-a^0)(X-a^1)(X-a^2) \qquad \qquad (X-a^4)(X-a^5)(X-a^6)(X-a^7) \qquad \qquad (X-a^9) \cdot p(x), +\] +wobei $p(X)$ das Restpolynom ist und die Fehlerstellen beinhaltet. +Wenn wir jetzt den grössten gemeinsamen Teiler von $f(X)$ und $e(X)$ berechnen, so erhalten wir mit +\[ +\operatorname{ggT}(f(X),e(X)) = (X-a^0)(X-a^1)(X-a^2) \qquad \qquad (X-a^4)(X-a^5)(X-a^6)(X-a^7) \qquad \qquad (X-a^9) +\] +eine Liste von Nullstellen, an denen es keine Fehler gegeben hat. +Da wir uns jedoch für eine Liste mit Nullstellen interessieren, an denen es Fehler gegeben hat berechnen wir stattdessen das kgV von $f(X)$ und $e(X)$ als +\[ +\operatorname{kgV}(f(X),e(X)) = (X-a^0)(X-a^1)(X-a^2)(X-a^3)(X-a^4)(X-a^5)(X-a^6)(X-a^7)(X-a^8)(X-a^9) \cdot q(X). +\] +Wir können das Resultat noch zerlegen in +\[ +\operatorname{kgV}(f(X),e(X)) = d(X) \cdot e(X). +\] +Somit muss $d(X)$ eine Liste von Nullstellen enthalten an denen es Fehler gegeben hat. +\[ +d(X) = (X-a^3)(X-a^8) +\] + + +und ist damit unser gesuchtes Lokatorpolynom. + +Das einzige Problem was jetzt noch bleibt ist, dass wir $e(X)$ berechnet haben aus +\[ +e(X) = r(X) - m(X), +\] +wobei $m(X)$ auf der Empfängerseite unbekannt ist. +Es sieht danach aus, das wir diesen Lösungsansatz nicht verwenden können, da uns ein entscheidender Teil fehlt. +Bei einer näheren Betrachtung von $m(X)$ fällt uns aber auf, dass wir doch etwas über $m(X)$ wissen. +Wir kennen nämlich die ersten vier Stellen, da diese für die Fehlerkorrektur zuständig sind und daher Null sein müssen. +\[ +m = [0,0,0,0,?,?,?,?,?,?] +\] +An genau diesen Stellen liegt auch die Information, wo unsere Fehlerstellen liegen, was uns ermöglicht, den Teil von $e(X)$ zu berechnen, der uns auch interessiert. + +Wir können $e(X)$ also bestimmen als +\[ +e(X) = 5X^9 + 7X^8 + 4X^7 + 10X^6 + p(X) +\] +wobei $p(X)$ wiederum ein unbekanntes Restpolynom ist und +\[ +f(X) = X^{10} - 1 = X^{10} + 10 +\] +ist können wir so in einer ersten Instanz den grössten gemeinsamen Teiler von $f(X)$ und $e(X)$ berechnen. +Dafür nehmen wir uns wiederum den Euklidischen Algorithmus zur Hilfe und berechnen so + +\[ +\arraycolsep=1.4pt +\begin{array}{rcrcrcrcccrcrcrcrcrcrcrcrcr} + X^{10}& & & & & & &+& 10& & & & &:&5X^9&+&7X^8&+& 4X^7&+&10X^6&+&p(X)&=&9X&+&5\\ + X^{10}&+& 8X^9&+& 3X^8&+&2X^7&+& p(X)& & & & & & & & & & & & & & & & \\ \cline{1-9} + && 3X^9&+& 8X^8&+& 9X^7&+& p(X)& & & & & & & & & & & & \\ + && 3X^9&+& 2X^8&+& 9X^7&+& p(X)& & & & & & & & & & & & \\ \cline{3-9} + & & & &6X^8&+&0X^7&+&p(X)& & & & & & & & & & & & \\ +\end{array} +\] + +\[ +\arraycolsep=1.4pt +\begin{array}{rcrcrcrcccrcrcrcrcrcrcrcrcr} + 5X^9&+& 7X^8&+& 4X^7&+& 10X^6&+& p(X)& & & & &:&6X^8&+&0X^7& & & & & & &=&10X&+&3\\ + 5X^9&+& 0X^8&+& p(X)& & & & & & & & & & & & & & & & & & & & \\ \cline{1-5} + && 7X^8&+& p(X)& & & & & & & & & & & & & & & & \\ +\end{array} +\] +und erhalten +\[ +\operatorname{ggT}(f(X),e(X)) = 6X^8 +\] +Mit den Resultaten, die wir vom Rechenweg des grössten gemeinsamen Teiler erhalten haben können wir jetzt auch das kleinste Gemeinsame Vielfache berechnen. Eine detailliertere Vorgehensweise findet man in Kapitel ???. +Aus diesem erweiterten Euklidischen Algorithmus erhalten wir +\begin{center} + + \begin{tabular}{| c | c | c c |} + \hline + $k$ & $q_i$ & $e_i$ & $f_i$\\ + \hline + & & $0$& $1$\\ + $0$& $9X + 5$& $1$& $0$\\ + $1$& $10X + 3$& $9X+5$& $1$\\ + $2$& & \textcolor{blue}{$2X^2 + 0X + 5$}& $10X + 3$\\ + \hline + \end{tabular} + +\end{center} +und erhalten auf diesem Weg den Faktor +\[ +d(X) = 2X^2 + 5, +\] +den wir in +\[ +d(X) = 2(X-5)(X-6) +\] +zerlegen können. +Da die unbekannten Stellen im Lokatorpolynom +\[ +d(X) = (X-a^i)(X-a^i) +\] +sind, müssen wir nur noch $i$ berechnen als +\begin{center} + $a^i = 5 \qquad \Rightarrow \qquad i = 3$ + + $a^i = 6 \qquad \Rightarrow \qquad i = 8$. +\end{center} +Somit erhalten wir schliesslich +\[ +d(X) = (X-a^3)(X-a^8) +\] +als unser Lokatorpolynom mit den Fehlerhaften Stellen. \ No newline at end of file -- cgit v1.2.1 From 81527bd39cb20969fa3a84c85a843bca511dcb51 Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Mon, 24 May 2021 17:18:21 +0200 Subject: created rekonstruktion.tex --- buch/papers/reedsolomon/rekonstruktion.tex | 40 ++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 buch/papers/reedsolomon/rekonstruktion.tex (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/rekonstruktion.tex b/buch/papers/reedsolomon/rekonstruktion.tex new file mode 100644 index 0000000..a3edba4 --- /dev/null +++ b/buch/papers/reedsolomon/rekonstruktion.tex @@ -0,0 +1,40 @@ +% +% teil3.tex -- Beispiel-File für Teil 3 +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Nachricht Rekonstruieren +\label{reedsolomon:section:rekonstruktion}} +\rhead{Teil 3} +Sed ut perspiciatis unde omnis iste natus error sit voluptatem +accusantium doloremque laudantium, totam rem aperiam, eaque ipsa +quae ab illo inventore veritatis et quasi architecto beatae vitae +dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit +aspernatur aut odit aut fugit, sed quia consequuntur magni dolores +eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam +est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci +velit, sed quia non numquam eius modi tempora incidunt ut labore +et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima +veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, +nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure +reprehenderit qui in ea voluptate velit esse quam nihil molestiae +consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla +pariatur? + +\subsection{De finibus bonorum et malorum +\label{reedsolomon:subsection:malorum}} +At vero eos et accusamus et iusto odio dignissimos ducimus qui +blanditiis praesentium voluptatum deleniti atque corrupti quos +dolores et quas molestias excepturi sint occaecati cupiditate non +provident, similique sunt in culpa qui officia deserunt mollitia +animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis +est et expedita distinctio. Nam libero tempore, cum soluta nobis +est eligendi optio cumque nihil impedit quo minus id quod maxime +placeat facere possimus, omnis voluptas assumenda est, omnis dolor +repellendus. Temporibus autem quibusdam et aut officiis debitis aut +rerum necessitatibus saepe eveniet ut et voluptates repudiandae +sint et molestiae non recusandae. Itaque earum rerum hic tenetur a +sapiente delectus, ut aut reiciendis voluptatibus maiores alias +consequatur aut perferendis doloribus asperiores repellat. + + -- cgit v1.2.1 From 337c10d8861718c88b1c8e4d365a4dd7d678153a Mon Sep 17 00:00:00 2001 From: Alain Date: Wed, 26 May 2021 12:08:46 +0200 Subject: initeur --- buch/papers/ifs/main.log | 6045 +++++++++++++++++++++++++++++++++++++++++++++ buch/papers/ifs/main.tex | 6 +- buch/papers/ifs/teil0.tex | 18 +- buch/papers/ifs/teil1.tex | 11 +- 4 files changed, 6056 insertions(+), 24 deletions(-) create mode 100644 buch/papers/ifs/main.log (limited to 'buch/papers') diff --git a/buch/papers/ifs/main.log b/buch/papers/ifs/main.log new file mode 100644 index 0000000..b818dc7 --- /dev/null +++ b/buch/papers/ifs/main.log @@ -0,0 +1,6045 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/W32TeX) (preloaded format=pdflatex 2019.9.25) 27 MAR 2021 11:43 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**main.tex +(./main.tex +LaTeX2e <2018-12-01> +! Undefined control sequence. +l.6 \chapter + {Thema\label{chapter:ifs}} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + + +! LaTeX Error: Missing \begin{document}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.6 \chapter{T + hema\label{chapter:ifs}} +You're in trouble here. Try typing to proceed. +If that doesn't work, type X to quit. + +Missing character: There is no T in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +! Undefined control sequence. +l.7 \lhead + {Thema} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no T in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! + +! LaTeX Error: Environment refsection undefined. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.8 \begin{refsection} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +! Undefined control sequence. +l.9 \chapterauthor + {Hans Muster} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no H in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 6--10 +[][] + [] + + +! LaTeX Error: Missing \begin{document}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.11 E + in paar Hinweise für die korrekte Formatierung des Textes +You're in trouble here. Try typing to proceed. +If that doesn't work, type X to quit. + +Missing character: There is no E in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no H in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +LaTeX Font Info: Try loading font information for +cmr on input line 11. +LaTeX Font Info: No file cmr.fd. on input line 11. + +LaTeX Font Warning: Font shape `/cmr/m/n' undefined +(Font) using `/cmr/m/n' instead on input line 11. + +! Corrupted NFSS tables. +wrong@fontshape ...message {Corrupted NFSS tables} + error@fontshape else let f... +l.11 Ein paar Hinweise fü + r die korrekte Formatierung des Textes +This error message was generated by an \errmessage +command, so I can't give any explicit help. +Pretend that you're Hercule Poirot: Examine all clues, +and deduce the truth by order and method. + + +LaTeX Font Warning: Font shape `/cmr/m/n' undefined +(Font) using `OT1/cmr/m/n' instead on input line 11. + +Missing character: There is no r in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 11--12 +[] + [] + + +Overfull \hbox (10.55559pt too wide) in paragraph at lines 11--12 +\/cmr/m/n/10 ^^?u + [] + +Missing character: There is no A in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no z in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no z in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no V in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! + +Overfull \hbox (5.00002pt too wide) in paragraph at lines 14--17 +\/cmr/m/n/10 ^^?a + [] + + +Overfull \hbox (5.55557pt too wide) in paragraph at lines 14--17 +\/cmr/m/n/10 ^^?u + [] + + +Overfull \hbox (10.49991pt too wide) in paragraph at lines 14--17 +[][]\OT1/cmtt/m/n/10 \\ + [] + +Missing character: There is no D in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no z in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no z in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no B in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no V in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no V in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no B in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no z in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! + +Overfull \hbox (5.00002pt too wide) in paragraph at lines 17--21 +\/cmr/m/n/10 ^^?o + [] + +Missing character: There is no B in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no z in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no Z in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no V in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no z in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no K in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no z in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! + +Overfull \hbox (5.00002pt too wide) in paragraph at lines 21--26 +\/cmr/m/n/10 ^^?o + [] + + +Overfull \hbox (7.50002pt too wide) in paragraph at lines 21--26 +[]\/cmr/m/n/10 A + [] + + +Overfull \hbox (5.00002pt too wide) in paragraph at lines 21--26 +\/cmr/m/n/10 ^^?a + [] + +Missing character: There is no B in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no z in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no Z in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no z in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! + +Overfull \hbox (5.55557pt too wide) in paragraph at lines 26--28 +\/cmr/m/n/10 ^^?u + [] + + +Overfull \hbox (7.50002pt too wide) in paragraph at lines 26--28 +[]\/cmr/m/n/10 U + [] + +(./teil0.tex +! Undefined control sequence. +l.6 \section + {Teil 0\label{ifs:section:teil0}} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no T in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no 0 in font nullfont! +! Undefined control sequence. +l.7 \rhead + {Teil 0} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no T in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no [ in font nullfont! +\citation{ifs:bibtex} +! Undefined control sequence. + ...: Citation `\@citeb ' on page \thepage + \space undefined\on@line . +l.10 erat, sed diam voluptua \cite{ifs:bibtex} + . +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + + +LaTeX Warning: Citation `ifs:bibtex' on page undefined on input line 10. + +Missing character: There is no ] in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 6--14 +[] + [] + + +Overfull \hbox (5.43053pt too wide) in paragraph at lines 6--14 +[] + [] + +Missing character: There is no L in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 15--21 +[] + [] + +) (./teil1.tex +! Undefined control sequence. +l.6 \section + {Teil 1 +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no T in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no 1 in font nullfont! +! Undefined control sequence. +l.8 \rhead + {Problemstellung} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 6--16 +[] + [] + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <7> on input line 16. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <5> on input line 16. + +Overfull \hbox (134.08229pt too wide) detected at line 23 +[][] \OML/cmm/m/it/10 x[] dx \/cmr/m/n/10 = [][] = []\OML/cmm/m/it/10 :[] + [] + +Missing character: There is no N in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no ? in font nullfont! +Missing character: There is no Q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no ? in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 28--33 +[] + [] + +! Undefined control sequence. +l.34 \subsection + {De finibus bonorum et malorum +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no D in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no a in font nullfont! +! Undefined control sequence. +l.40 animi, id est laborum et dolorum fuga \eqref + {000tempmlate:equation1}. +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no 0 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no . in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 34--41 +[] + [] + +Missing character: There is no E in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +! Undefined control sequence. + ...`ifs:section:loesung' on page \thepage + \space undefined\on@line . +l.43 \ref{ifs:section:loesung} + . +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + + +LaTeX Warning: Reference `ifs:section:loesung' on page undefined on input line + 43. + +Missing character: There is no . in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +! Undefined control sequence. + ...fs:section:folgerung' on page \thepage + \space undefined\on@line . +l.47 \ref{ifs:section:folgerung} + . +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + + +LaTeX Warning: Reference `ifs:section:folgerung' on page undefined on input li +ne 47. + +Missing character: There is no . in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 42--54 +[] + [] + + +Overfull \hbox (10.86105pt too wide) in paragraph at lines 42--54 +[] + [] + + +Overfull \hbox (10.86105pt too wide) in paragraph at lines 42--54 +[] + [] + +) (./teil2.tex +! Undefined control sequence. +l.6 \section + {Teil 2 +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no T in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no 2 in font nullfont! +! Undefined control sequence. +l.8 \rhead + {Teil 2} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no T in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no ? in font nullfont! +Missing character: There is no Q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no ? in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 6--23 +[] + [] + +! Undefined control sequence. +l.24 \subsection + {De finibus bonorum et malorum +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no D in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 24--39 +[] + [] + +) (./teil3.tex +! Undefined control sequence. +l.6 \section + {Teil 3 +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no T in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no 3 in font nullfont! +! Undefined control sequence. +l.8 \rhead + {Teil 3} +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no T in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no 3 in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no ? in font nullfont! +Missing character: There is no Q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no ? in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 6--23 +[] + [] + +! Undefined control sequence. +l.24 \subsection + {De finibus bonorum et malorum +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no D in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 24--39 +[] + [] + +) +! Undefined control sequence. +l.35 \printbibliography + [heading=subbibliography] +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no [ in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no ] in font nullfont! + +! LaTeX Error: \begin{document} ended by \end{refsection}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.36 \end{refsection} + +Your command was ignored. +Type I to replace it with another command, +or to continue without it. + +) +! Emergency stop. +<*> main.tex + +*** (job aborted, no legal \end found) + + +Here is how much of TeX's memory you used: + 37 strings out of 492609 + 427 string characters out of 6132818 + 62613 words of memory out of 5000000 + 4043 multiletter control sequences out of 15000+600000 + 4116 words of font info for 16 fonts, out of 8000000 for 9000 + 1141 hyphenation exceptions out of 8191 + 20i,3n,22p,104b,180s stack positions out of 5000i,500n,10000p,200000b,80000s +! ==> Fatal error occurred, no output PDF file produced! diff --git a/buch/papers/ifs/main.tex b/buch/papers/ifs/main.tex index 8d70951..48c38f9 100644 --- a/buch/papers/ifs/main.tex +++ b/buch/papers/ifs/main.tex @@ -3,10 +3,10 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Thema\label{chapter:ifs}} -\lhead{Thema} +\chapter{Iterierte Funktionsschemata\label{chapter:ifs}} +\lhead{Iterierte Funktionschemata und ihre Anwendungen} \begin{refsection} -\chapterauthor{Hans Muster} +\chapterauthor{Alain Keller} Ein paar Hinweise für die korrekte Formatierung des Textes \begin{itemize} diff --git a/buch/papers/ifs/teil0.tex b/buch/papers/ifs/teil0.tex index b605bfe..7e3d344 100644 --- a/buch/papers/ifs/teil0.tex +++ b/buch/papers/ifs/teil0.tex @@ -4,19 +4,11 @@ % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % \section{Teil 0\label{ifs:section:teil0}} -\rhead{Teil 0} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{ifs:bibtex}. -At vero eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum -dolor sit amet. +\rhead{Was ist ein Iteriertes Funktionsschema} +Mit der Hilfe von Iterierten Funktionsschemata mit nur wenigen Funktionen, komplexe Bilder beschreiben. +In der Regel sind diese Bilder Fraktale. +Wie es dazu kommt, und wie man mit IFS auch Bilder komprimieren kann, wollen wir im folgenden Kapitel untersuchen. -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit -amet. +\subsection{Metrische Räume} diff --git a/buch/papers/ifs/teil1.tex b/buch/papers/ifs/teil1.tex index c824cb4..76bc828 100644 --- a/buch/papers/ifs/teil1.tex +++ b/buch/papers/ifs/teil1.tex @@ -3,16 +3,11 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 1 +\section{Fraktale \label{ifs:section:teil1}} \rhead{Problemstellung} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. -Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit -aut fugit, sed quia consequuntur magni dolores eos qui ratione -voluptatem sequi nesciunt +Bevor wir die IFS genauer ansehen, schauen wir uns Fraktale genauer an. + \begin{equation} \int_a^b x^2\, dx = -- cgit v1.2.1 From a1a45cd5bd0e487cb69916f8c3e636a5e326c935 Mon Sep 17 00:00:00 2001 From: Alain Date: Wed, 26 May 2021 17:41:38 +0200 Subject: Fraktale Kapitel Fertig --- buch/papers/ifs/images/koch0.eps | 1004 ++ buch/papers/ifs/images/koch1.eps | 1073 ++ buch/papers/ifs/images/koch2.eps | 1085 ++ buch/papers/ifs/images/koch8.eps | 26780 +++++++++++++++++++++++++++++++++++++ buch/papers/ifs/teil0.tex | 2 - buch/papers/ifs/teil1.tex | 116 +- 6 files changed, 30023 insertions(+), 37 deletions(-) create mode 100644 buch/papers/ifs/images/koch0.eps create mode 100644 buch/papers/ifs/images/koch1.eps create mode 100644 buch/papers/ifs/images/koch2.eps create mode 100644 buch/papers/ifs/images/koch8.eps (limited to 'buch/papers') diff --git a/buch/papers/ifs/images/koch0.eps b/buch/papers/ifs/images/koch0.eps new file mode 100644 index 0000000..16e0d6b --- /dev/null +++ b/buch/papers/ifs/images/koch0.eps @@ -0,0 +1,1004 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (MATLAB, The Mathworks, Inc. Version 9.7.0.1434023 \(R2019b\) Update 6. Operating System: Windows 10) +%%Title: C:/Users/Alain/Dropbox/Dokumente/HSR/08_fs21/mathsem/buch/SeminarMatrizen/buch/papers/ifs/images/koch0.eps +%%CreationDate: 2021-05-26T15:25:51 +%%Pages: (atend) +%%BoundingBox: 0 0 420 315 +%%LanguageLevel: 3 +%%EndComments +%%BeginProlog +%%BeginResource: procset (Apache XML Graphics Std ProcSet) 1.2 0 +%%Version: 1.2 0 +%%Copyright: (Copyright 2001-2003,2010 The Apache Software Foundation. License terms: http://www.apache.org/licenses/LICENSE-2.0) +/bd{bind def}bind def +/ld{load def}bd +/GR/grestore ld +/GS/gsave ld +/RM/rmoveto ld +/C/curveto ld +/t/show ld +/L/lineto ld +/ML/setmiterlimit ld +/CT/concat ld +/f/fill ld +/N/newpath ld +/S/stroke ld +/CC/setcmykcolor ld +/A/ashow ld +/cp/closepath ld +/RC/setrgbcolor ld +/LJ/setlinejoin ld +/GC/setgray ld +/LW/setlinewidth ld +/M/moveto ld +/re {4 2 roll M +1 index 0 rlineto +0 exch rlineto +neg 0 rlineto +cp } bd +/_ctm matrix def +/_tm matrix def +/BT { _ctm currentmatrix pop matrix _tm copy pop 0 0 moveto } bd +/ET { _ctm setmatrix } bd +/iTm { _ctm setmatrix _tm concat } bd +/Tm { _tm astore pop iTm 0 0 moveto } bd +/ux 0.0 def +/uy 0.0 def +/F { + /Tp exch def + /Tf exch def + Tf findfont Tp scalefont setfont + /cf Tf def /cs Tp def +} bd +/ULS {currentpoint /uy exch def /ux exch def} bd +/ULE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add moveto Tcx uy To add lineto + Tt setlinewidth stroke + grestore +} bd +/OLE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add cs add moveto Tcx uy To add cs add lineto + Tt setlinewidth stroke + grestore +} bd +/SOE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add cs 10 mul 26 idiv add moveto Tcx uy To add cs 10 mul 26 idiv add lineto + Tt setlinewidth stroke + grestore +} bd +/QT { +/Y22 exch store +/X22 exch store +/Y21 exch store +/X21 exch store +currentpoint +/Y21 load 2 mul add 3 div exch +/X21 load 2 mul add 3 div exch +/X21 load 2 mul /X22 load add 3 div +/Y21 load 2 mul /Y22 load add 3 div +/X22 load /Y22 load curveto +} bd +/SSPD { +dup length /d exch dict def +{ +/v exch def +/k exch def +currentpagedevice k known { +/cpdv currentpagedevice k get def +v cpdv ne { +/upd false def +/nullv v type /nulltype eq def +/nullcpdv cpdv type /nulltype eq def +nullv nullcpdv or +{ +/upd true def +} { +/sametype v type cpdv type eq def +sametype { +v type /arraytype eq { +/vlen v length def +/cpdvlen cpdv length def +vlen cpdvlen eq { +0 1 vlen 1 sub { +/i exch def +/obj v i get def +/cpdobj cpdv i get def +obj cpdobj ne { +/upd true def +exit +} if +} for +} { +/upd true def +} ifelse +} { +v type /dicttype eq { +v { +/dv exch def +/dk exch def +/cpddv cpdv dk get def +dv cpddv ne { +/upd true def +exit +} if +} forall +} { +/upd true def +} ifelse +} ifelse +} if +} ifelse +upd true eq { +d k v put +} if +} if +} if +} forall +d length 0 gt { +d setpagedevice +} if +} bd +/RE { % /NewFontName [NewEncodingArray] /FontName RE - + findfont dup length dict begin + { + 1 index /FID ne + {def} {pop pop} ifelse + } forall + /Encoding exch def + /FontName 1 index def + currentdict definefont pop + end +} bind def +%%EndResource +%%BeginResource: procset (Apache XML Graphics EPS ProcSet) 1.0 0 +%%Version: 1.0 0 +%%Copyright: (Copyright 2002-2003 The Apache Software Foundation. License terms: http://www.apache.org/licenses/LICENSE-2.0) +/BeginEPSF { %def +/b4_Inc_state save def % Save state for cleanup +/dict_count countdictstack def % Count objects on dict stack +/op_count count 1 sub def % Count objects on operand stack +userdict begin % Push userdict on dict stack +/showpage { } def % Redefine showpage, { } = null proc +0 setgray 0 setlinecap % Prepare graphics state +1 setlinewidth 0 setlinejoin +10 setmiterlimit [ ] 0 setdash newpath +/languagelevel where % If level not equal to 1 then +{pop languagelevel % set strokeadjust and +1 ne % overprint to their defaults. +{false setstrokeadjust false setoverprint +} if +} if +} bd +/EndEPSF { %def +count op_count sub {pop} repeat % Clean up stacks +countdictstack dict_count sub {end} repeat +b4_Inc_state restore +} bd +%%EndResource +%FOPBeginFontDict +%%IncludeResource: font Courier-Oblique +%%IncludeResource: font Courier-BoldOblique +%%IncludeResource: font Courier-Bold +%%IncludeResource: font ZapfDingbats +%%IncludeResource: font Symbol +%%IncludeResource: font Helvetica +%%IncludeResource: font Helvetica-Oblique +%%IncludeResource: font Helvetica-Bold +%%IncludeResource: font Helvetica-BoldOblique +%%IncludeResource: font Times-Roman +%%IncludeResource: font Times-Italic +%%IncludeResource: font Times-Bold +%%IncludeResource: font Times-BoldItalic +%%IncludeResource: font Courier +%FOPEndFontDict +%%BeginResource: encoding WinAnsiEncoding +/WinAnsiEncoding [ +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /space /exclam /quotedbl +/numbersign /dollar /percent /ampersand /quotesingle +/parenleft /parenright /asterisk /plus /comma +/hyphen /period /slash /zero /one +/two /three /four /five /six +/seven /eight /nine /colon /semicolon +/less /equal /greater /question /at +/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 /bracketleft /backslash /bracketright /asciicircum +/underscore /quoteleft /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 /braceleft /bar +/braceright /asciitilde /bullet /Euro /bullet +/quotesinglbase /florin /quotedblbase /ellipsis /dagger +/daggerdbl /circumflex /perthousand /Scaron /guilsinglleft +/OE /bullet /Zcaron /bullet /bullet +/quoteleft /quoteright /quotedblleft /quotedblright /bullet +/endash /emdash /asciitilde /trademark /scaron +/guilsinglright /oe /bullet /zcaron /Ydieresis +/space /exclamdown /cent /sterling /currency +/yen /brokenbar /section /dieresis /copyright +/ordfeminine /guillemotleft /logicalnot /sfthyphen /registered +/macron /degree /plusminus /twosuperior /threesuperior +/acute /mu /paragraph /middot /cedilla +/onesuperior /ordmasculine /guillemotright /onequarter /onehalf +/threequarters /questiondown /Agrave /Aacute /Acircumflex +/Atilde /Adieresis /Aring /AE /Ccedilla +/Egrave /Eacute /Ecircumflex /Edieresis /Igrave +/Iacute /Icircumflex /Idieresis /Eth /Ntilde +/Ograve /Oacute /Ocircumflex /Otilde /Odieresis +/multiply /Oslash /Ugrave /Uacute /Ucircumflex +/Udieresis /Yacute /Thorn /germandbls /agrave +/aacute /acircumflex /atilde /adieresis /aring +/ae /ccedilla /egrave /eacute /ecircumflex +/edieresis /igrave /iacute /icircumflex /idieresis +/eth /ntilde /ograve /oacute /ocircumflex +/otilde /odieresis /divide /oslash /ugrave +/uacute /ucircumflex /udieresis /yacute /thorn +/ydieresis +] def +%%EndResource +%FOPBeginFontReencode +/Courier-Oblique findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Courier-Oblique exch definefont pop +/Courier-BoldOblique findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Courier-BoldOblique exch definefont pop +/Courier-Bold findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Courier-Bold exch definefont pop +/Helvetica findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Helvetica exch definefont pop +/Helvetica-Oblique findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Helvetica-Oblique exch definefont pop +/Helvetica-Bold findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Helvetica-Bold exch definefont pop +/Helvetica-BoldOblique findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Helvetica-BoldOblique exch definefont pop +/Times-Roman findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Times-Roman exch definefont pop +/Times-Italic findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Times-Italic exch definefont pop +/Times-Bold findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Times-Bold exch definefont pop +/Times-BoldItalic findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Times-BoldItalic exch definefont pop +/Courier findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Courier exch definefont pop +%FOPEndFontReencode +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 420 315 +%%BeginPageSetup +[1 0 0 -1 0 315] CT +%%EndPageSetup +GS +[0.75 0 0 0.75 0 0] CT +1 GC +N +0 0 560 420 re +f +GR +GS +[0.75 0 0 0.75 0 0] CT +1 GC +N +0 0 560 420 re +f +GR +GS +[0.75 0 0 0.75 0 0] CT +1 GC +N +73 373.65 M +507 373.65 L +507 31.35 L +73 31.35 L +cp +f +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 373.65 M +507 373.65 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 31.35 M +507 31.35 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +116.4 373.65 M +116.4 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +159.8 373.65 M +159.8 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +203.2 373.65 M +203.2 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +246.6 373.65 M +246.6 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +290 373.65 M +290 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +333.4 373.65 M +333.4 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +376.8 373.65 M +376.8 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +420.2 373.65 M +420.2 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +463.6 373.65 M +463.6 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 373.65 M +507 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +116.4 31.35 M +116.4 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +159.8 31.35 M +159.8 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +203.2 31.35 M +203.2 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +246.6 31.35 M +246.6 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +290 31.35 M +290 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +333.4 31.35 M +333.4 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +376.8 31.35 M +376.8 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +420.2 31.35 M +420.2 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +463.6 31.35 M +463.6 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 31.35 M +507 35.69 L +S +GR +GS +[0.75 0 0 0.75 87.3 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.1) t +GR +GR +GS +[0.75 0 0 0.75 119.85 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.2) t +GR +GR +GS +[0.75 0 0 0.75 152.40001 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.3) t +GR +GR +GS +[0.75 0 0 0.75 184.95 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.4) t +GR +GR +GS +[0.75 0 0 0.75 217.5 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.5) t +GR +GR +GS +[0.75 0 0 0.75 250.05002 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.6) t +GR +GR +GS +[0.75 0 0 0.75 282.59999 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.7) t +GR +GR +GS +[0.75 0 0 0.75 315.15001 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.8) t +GR +GR +GS +[0.75 0 0 0.75 347.69998 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.9) t +GR +GR +GS +[0.75 0 0 0.75 380.25 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-4 14 moveto +1 -1 scale +(1) t +GR +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 373.65 M +73 31.35 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 373.65 M +507 31.35 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 332.7 M +77.34 332.7 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 289.3 M +77.34 289.3 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 245.9 M +77.34 245.9 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 202.5 M +77.34 202.5 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 159.1 M +77.34 159.1 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 115.7 M +77.34 115.7 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 72.3 M +77.34 72.3 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 332.7 M +502.66 332.7 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 289.3 M +502.66 289.3 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 245.9 M +502.66 245.9 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 202.5 M +502.66 202.5 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 159.1 M +502.66 159.1 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 115.7 M +502.66 115.7 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 72.3 M +502.66 72.3 L +S +GR +GS +[0.75 0 0 0.75 50.75 249.52501] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-23 5.5 moveto +1 -1 scale +(-0.3) t +GR +GR +GS +[0.75 0 0 0.75 50.75 216.97499] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-23 5.5 moveto +1 -1 scale +(-0.2) t +GR +GR +GS +[0.75 0 0 0.75 50.75 184.425] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-23 5.5 moveto +1 -1 scale +(-0.1) t +GR +GR +GS +[0.75 0 0 0.75 50.75 151.875] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-8 5.5 moveto +1 -1 scale +(0) t +GR +GR +GS +[0.75 0 0 0.75 50.75 119.325] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-19 5.5 moveto +1 -1 scale +(0.1) t +GR +GR +GS +[0.75 0 0 0.75 50.75 86.775] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-19 5.5 moveto +1 -1 scale +(0.2) t +GR +GR +GS +[0.75 0 0 0.75 50.75 54.225] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-19 5.5 moveto +1 -1 scale +(0.3) t +GR +GR +GS +[0.75 0 0 0.75 0 0] CT +1 LJ +0.667 LW +N +73 202.5 M +507 202.5 L +S +GR +%%Trailer +%%Pages: 1 +%%EOF diff --git a/buch/papers/ifs/images/koch1.eps b/buch/papers/ifs/images/koch1.eps new file mode 100644 index 0000000..b2e6f49 --- /dev/null +++ b/buch/papers/ifs/images/koch1.eps @@ -0,0 +1,1073 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (MATLAB, The Mathworks, Inc. Version 9.7.0.1434023 \(R2019b\) Update 6. Operating System: Windows 10) +%%Title: C:/Users/Alain/Dropbox/Dokumente/HSR/08_fs21/mathsem/buch/SeminarMatrizen/buch/papers/ifs/images/koch1.eps +%%CreationDate: 2021-05-26T15:26:15 +%%Pages: (atend) +%%BoundingBox: 0 0 420 315 +%%LanguageLevel: 3 +%%EndComments +%%BeginProlog +%%BeginResource: procset (Apache XML Graphics Std ProcSet) 1.2 0 +%%Version: 1.2 0 +%%Copyright: (Copyright 2001-2003,2010 The Apache Software Foundation. License terms: http://www.apache.org/licenses/LICENSE-2.0) +/bd{bind def}bind def +/ld{load def}bd +/GR/grestore ld +/GS/gsave ld +/RM/rmoveto ld +/C/curveto ld +/t/show ld +/L/lineto ld +/ML/setmiterlimit ld +/CT/concat ld +/f/fill ld +/N/newpath ld +/S/stroke ld +/CC/setcmykcolor ld +/A/ashow ld +/cp/closepath ld +/RC/setrgbcolor ld +/LJ/setlinejoin ld +/GC/setgray ld +/LW/setlinewidth ld +/M/moveto ld +/re {4 2 roll M +1 index 0 rlineto +0 exch rlineto +neg 0 rlineto +cp } bd +/_ctm matrix def +/_tm matrix def +/BT { _ctm currentmatrix pop matrix _tm copy pop 0 0 moveto } bd +/ET { _ctm setmatrix } bd +/iTm { _ctm setmatrix _tm concat } bd +/Tm { _tm astore pop iTm 0 0 moveto } bd +/ux 0.0 def +/uy 0.0 def +/F { + /Tp exch def + /Tf exch def + Tf findfont Tp scalefont setfont + /cf Tf def /cs Tp def +} bd +/ULS {currentpoint /uy exch def /ux exch def} bd +/ULE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add moveto Tcx uy To add lineto + Tt setlinewidth stroke + grestore +} bd +/OLE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add cs add moveto Tcx uy To add cs add lineto + Tt setlinewidth stroke + grestore +} bd +/SOE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add cs 10 mul 26 idiv add moveto Tcx uy To add cs 10 mul 26 idiv add lineto + Tt setlinewidth stroke + grestore +} bd +/QT { +/Y22 exch store +/X22 exch store +/Y21 exch store +/X21 exch store +currentpoint +/Y21 load 2 mul add 3 div exch +/X21 load 2 mul add 3 div exch +/X21 load 2 mul /X22 load add 3 div +/Y21 load 2 mul /Y22 load add 3 div +/X22 load /Y22 load curveto +} bd +/SSPD { +dup length /d exch dict def +{ +/v exch def +/k exch def +currentpagedevice k known { +/cpdv currentpagedevice k get def +v cpdv ne { +/upd false def +/nullv v type /nulltype eq def +/nullcpdv cpdv type /nulltype eq def +nullv nullcpdv or +{ +/upd true def +} { +/sametype v type cpdv type eq def +sametype { +v type /arraytype eq { +/vlen v length def +/cpdvlen cpdv length def +vlen cpdvlen eq { +0 1 vlen 1 sub { +/i exch def +/obj v i get def +/cpdobj cpdv i get def +obj cpdobj ne { +/upd true def +exit +} if +} for +} { +/upd true def +} ifelse +} { +v type /dicttype eq { +v { +/dv exch def +/dk exch def +/cpddv cpdv dk get def +dv cpddv ne { +/upd true def +exit +} if +} forall +} { +/upd true def +} ifelse +} ifelse +} if +} ifelse +upd true eq { +d k v put +} if +} if +} if +} forall +d length 0 gt { +d setpagedevice +} if +} bd +/RE { % /NewFontName [NewEncodingArray] /FontName RE - + findfont dup length dict begin + { + 1 index /FID ne + {def} {pop pop} ifelse + } forall + /Encoding exch def + /FontName 1 index def + currentdict definefont pop + end +} bind def +%%EndResource +%%BeginResource: procset (Apache XML Graphics EPS ProcSet) 1.0 0 +%%Version: 1.0 0 +%%Copyright: (Copyright 2002-2003 The Apache Software Foundation. License terms: http://www.apache.org/licenses/LICENSE-2.0) +/BeginEPSF { %def +/b4_Inc_state save def % Save state for cleanup +/dict_count countdictstack def % Count objects on dict stack +/op_count count 1 sub def % Count objects on operand stack +userdict begin % Push userdict on dict stack +/showpage { } def % Redefine showpage, { } = null proc +0 setgray 0 setlinecap % Prepare graphics state +1 setlinewidth 0 setlinejoin +10 setmiterlimit [ ] 0 setdash newpath +/languagelevel where % If level not equal to 1 then +{pop languagelevel % set strokeadjust and +1 ne % overprint to their defaults. +{false setstrokeadjust false setoverprint +} if +} if +} bd +/EndEPSF { %def +count op_count sub {pop} repeat % Clean up stacks +countdictstack dict_count sub {end} repeat +b4_Inc_state restore +} bd +%%EndResource +%FOPBeginFontDict +%%IncludeResource: font Courier-Oblique +%%IncludeResource: font Courier-BoldOblique +%%IncludeResource: font Courier-Bold +%%IncludeResource: font ZapfDingbats +%%IncludeResource: font Symbol +%%IncludeResource: font Helvetica +%%IncludeResource: font Helvetica-Oblique +%%IncludeResource: font Helvetica-Bold +%%IncludeResource: font Helvetica-BoldOblique +%%IncludeResource: font Times-Roman +%%IncludeResource: font Times-Italic +%%IncludeResource: font Times-Bold +%%IncludeResource: font Times-BoldItalic +%%IncludeResource: font Courier +%FOPEndFontDict +%%BeginResource: encoding WinAnsiEncoding +/WinAnsiEncoding [ +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /space /exclam /quotedbl +/numbersign /dollar /percent /ampersand /quotesingle +/parenleft /parenright /asterisk /plus /comma +/hyphen /period /slash /zero /one +/two /three /four /five /six +/seven /eight /nine /colon /semicolon +/less /equal /greater /question /at +/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 /bracketleft /backslash /bracketright /asciicircum +/underscore /quoteleft /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 /braceleft /bar +/braceright /asciitilde /bullet /Euro /bullet +/quotesinglbase /florin /quotedblbase /ellipsis /dagger +/daggerdbl /circumflex /perthousand /Scaron /guilsinglleft +/OE /bullet /Zcaron /bullet /bullet +/quoteleft /quoteright /quotedblleft /quotedblright /bullet +/endash /emdash /asciitilde /trademark /scaron +/guilsinglright /oe /bullet /zcaron /Ydieresis +/space /exclamdown /cent /sterling /currency +/yen /brokenbar /section /dieresis /copyright +/ordfeminine /guillemotleft /logicalnot /sfthyphen /registered +/macron /degree /plusminus /twosuperior /threesuperior +/acute /mu /paragraph /middot /cedilla +/onesuperior /ordmasculine /guillemotright /onequarter /onehalf +/threequarters /questiondown /Agrave /Aacute /Acircumflex +/Atilde /Adieresis /Aring /AE /Ccedilla +/Egrave /Eacute /Ecircumflex /Edieresis /Igrave +/Iacute /Icircumflex /Idieresis /Eth /Ntilde +/Ograve /Oacute /Ocircumflex /Otilde /Odieresis +/multiply /Oslash /Ugrave /Uacute /Ucircumflex +/Udieresis /Yacute /Thorn /germandbls /agrave +/aacute /acircumflex /atilde /adieresis /aring +/ae /ccedilla /egrave /eacute /ecircumflex +/edieresis /igrave /iacute /icircumflex /idieresis +/eth /ntilde /ograve /oacute /ocircumflex +/otilde /odieresis /divide /oslash /ugrave +/uacute /ucircumflex /udieresis /yacute /thorn +/ydieresis +] def +%%EndResource +%FOPBeginFontReencode +/Courier-Oblique findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Courier-Oblique exch definefont pop +/Courier-BoldOblique findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Courier-BoldOblique exch definefont pop +/Courier-Bold findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Courier-Bold exch definefont pop +/Helvetica findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Helvetica exch definefont pop +/Helvetica-Oblique findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Helvetica-Oblique exch definefont pop +/Helvetica-Bold findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Helvetica-Bold exch definefont pop +/Helvetica-BoldOblique findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Helvetica-BoldOblique exch definefont pop +/Times-Roman findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Times-Roman exch definefont pop +/Times-Italic findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Times-Italic exch definefont pop +/Times-Bold findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Times-Bold exch definefont pop +/Times-BoldItalic findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Times-BoldItalic exch definefont pop +/Courier findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Courier exch definefont pop +%FOPEndFontReencode +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 420 315 +%%BeginPageSetup +[1 0 0 -1 0 315] CT +%%EndPageSetup +GS +[0.75 0 0 0.75 0 0] CT +1 GC +N +0 0 560 420 re +f +GR +GS +[0.75 0 0 0.75 0 0] CT +1 GC +N +0 0 560 420 re +f +GR +GS +[0.75 0 0 0.75 0 0] CT +1 GC +N +73 373.65 M +507 373.65 L +507 31.35 L +73 31.35 L +cp +f +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 373.65 M +507 373.65 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 31.35 M +507 31.35 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 373.65 M +73 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +116.4 373.65 M +116.4 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +159.8 373.65 M +159.8 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +203.2 373.65 M +203.2 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +246.6 373.65 M +246.6 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +290 373.65 M +290 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +333.4 373.65 M +333.4 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +376.8 373.65 M +376.8 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +420.2 373.65 M +420.2 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +463.6 373.65 M +463.6 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 373.65 M +507 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 31.35 M +73 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +116.4 31.35 M +116.4 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +159.8 31.35 M +159.8 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +203.2 31.35 M +203.2 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +246.6 31.35 M +246.6 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +290 31.35 M +290 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +333.4 31.35 M +333.4 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +376.8 31.35 M +376.8 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +420.2 31.35 M +420.2 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +463.6 31.35 M +463.6 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 31.35 M +507 35.69 L +S +GR +GS +[0.75 0 0 0.75 54.75 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-4 14 moveto +1 -1 scale +(0) t +GR +GR +GS +[0.75 0 0 0.75 87.3 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.1) t +GR +GR +GS +[0.75 0 0 0.75 119.85 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.2) t +GR +GR +GS +[0.75 0 0 0.75 152.40001 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.3) t +GR +GR +GS +[0.75 0 0 0.75 184.95 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.4) t +GR +GR +GS +[0.75 0 0 0.75 217.5 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.5) t +GR +GR +GS +[0.75 0 0 0.75 250.05002 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.6) t +GR +GR +GS +[0.75 0 0 0.75 282.59999 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.7) t +GR +GR +GS +[0.75 0 0 0.75 315.15001 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.8) t +GR +GR +GS +[0.75 0 0 0.75 347.69998 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.9) t +GR +GR +GS +[0.75 0 0 0.75 380.25 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-4 14 moveto +1 -1 scale +(1) t +GR +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 373.65 M +73 31.35 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 373.65 M +507 31.35 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 351.943 M +77.34 351.943 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 308.543 M +77.34 308.543 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 265.143 M +77.34 265.143 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 221.743 M +77.34 221.743 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 178.342 M +77.34 178.342 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 134.943 M +77.34 134.943 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 91.543 M +77.34 91.543 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 48.143 M +77.34 48.143 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 351.943 M +502.66 351.943 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 308.543 M +502.66 308.543 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 265.143 M +502.66 265.143 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 221.743 M +502.66 221.743 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 178.342 M +502.66 178.342 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 134.943 M +502.66 134.943 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 91.543 M +502.66 91.543 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 48.143 M +502.66 48.143 L +S +GR +GS +[0.75 0 0 0.75 50.75 263.95688] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-23 5.5 moveto +1 -1 scale +(-0.2) t +GR +GR +GS +[0.75 0 0 0.75 50.75 231.40688] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-23 5.5 moveto +1 -1 scale +(-0.1) t +GR +GR +GS +[0.75 0 0 0.75 50.75 198.85689] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-8 5.5 moveto +1 -1 scale +(0) t +GR +GR +GS +[0.75 0 0 0.75 50.75 166.30688] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-19 5.5 moveto +1 -1 scale +(0.1) t +GR +GR +GS +[0.75 0 0 0.75 50.75 133.75687] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-19 5.5 moveto +1 -1 scale +(0.2) t +GR +GR +GS +[0.75 0 0 0.75 50.75 101.20688] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-19 5.5 moveto +1 -1 scale +(0.3) t +GR +GR +GS +[0.75 0 0 0.75 50.75 68.65688] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-19 5.5 moveto +1 -1 scale +(0.4) t +GR +GR +GS +[0.75 0 0 0.75 50.75 36.10688] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-19 5.5 moveto +1 -1 scale +(0.5) t +GR +GR +GS +[0.75 0 0 0.75 0 0] CT +1 LJ +0.667 LW +N +73 265.143 M +217.667 265.143 L +290 139.857 L +362.333 265.143 L +507 265.143 L +S +GR +%%Trailer +%%Pages: 1 +%%EOF diff --git a/buch/papers/ifs/images/koch2.eps b/buch/papers/ifs/images/koch2.eps new file mode 100644 index 0000000..ab4ce6f --- /dev/null +++ b/buch/papers/ifs/images/koch2.eps @@ -0,0 +1,1085 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (MATLAB, The Mathworks, Inc. Version 9.7.0.1434023 \(R2019b\) Update 6. Operating System: Windows 10) +%%Title: C:/Users/Alain/Dropbox/Dokumente/HSR/08_fs21/mathsem/buch/SeminarMatrizen/buch/papers/ifs/images/koch2.eps +%%CreationDate: 2021-05-26T15:26:36 +%%Pages: (atend) +%%BoundingBox: 0 0 420 315 +%%LanguageLevel: 3 +%%EndComments +%%BeginProlog +%%BeginResource: procset (Apache XML Graphics Std ProcSet) 1.2 0 +%%Version: 1.2 0 +%%Copyright: (Copyright 2001-2003,2010 The Apache Software Foundation. License terms: http://www.apache.org/licenses/LICENSE-2.0) +/bd{bind def}bind def +/ld{load def}bd +/GR/grestore ld +/GS/gsave ld +/RM/rmoveto ld +/C/curveto ld +/t/show ld +/L/lineto ld +/ML/setmiterlimit ld +/CT/concat ld +/f/fill ld +/N/newpath ld +/S/stroke ld +/CC/setcmykcolor ld +/A/ashow ld +/cp/closepath ld +/RC/setrgbcolor ld +/LJ/setlinejoin ld +/GC/setgray ld +/LW/setlinewidth ld +/M/moveto ld +/re {4 2 roll M +1 index 0 rlineto +0 exch rlineto +neg 0 rlineto +cp } bd +/_ctm matrix def +/_tm matrix def +/BT { _ctm currentmatrix pop matrix _tm copy pop 0 0 moveto } bd +/ET { _ctm setmatrix } bd +/iTm { _ctm setmatrix _tm concat } bd +/Tm { _tm astore pop iTm 0 0 moveto } bd +/ux 0.0 def +/uy 0.0 def +/F { + /Tp exch def + /Tf exch def + Tf findfont Tp scalefont setfont + /cf Tf def /cs Tp def +} bd +/ULS {currentpoint /uy exch def /ux exch def} bd +/ULE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add moveto Tcx uy To add lineto + Tt setlinewidth stroke + grestore +} bd +/OLE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add cs add moveto Tcx uy To add cs add lineto + Tt setlinewidth stroke + grestore +} bd +/SOE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add cs 10 mul 26 idiv add moveto Tcx uy To add cs 10 mul 26 idiv add lineto + Tt setlinewidth stroke + grestore +} bd +/QT { +/Y22 exch store +/X22 exch store +/Y21 exch store +/X21 exch store +currentpoint +/Y21 load 2 mul add 3 div exch +/X21 load 2 mul add 3 div exch +/X21 load 2 mul /X22 load add 3 div +/Y21 load 2 mul /Y22 load add 3 div +/X22 load /Y22 load curveto +} bd +/SSPD { +dup length /d exch dict def +{ +/v exch def +/k exch def +currentpagedevice k known { +/cpdv currentpagedevice k get def +v cpdv ne { +/upd false def +/nullv v type /nulltype eq def +/nullcpdv cpdv type /nulltype eq def +nullv nullcpdv or +{ +/upd true def +} { +/sametype v type cpdv type eq def +sametype { +v type /arraytype eq { +/vlen v length def +/cpdvlen cpdv length def +vlen cpdvlen eq { +0 1 vlen 1 sub { +/i exch def +/obj v i get def +/cpdobj cpdv i get def +obj cpdobj ne { +/upd true def +exit +} if +} for +} { +/upd true def +} ifelse +} { +v type /dicttype eq { +v { +/dv exch def +/dk exch def +/cpddv cpdv dk get def +dv cpddv ne { +/upd true def +exit +} if +} forall +} { +/upd true def +} ifelse +} ifelse +} if +} ifelse +upd true eq { +d k v put +} if +} if +} if +} forall +d length 0 gt { +d setpagedevice +} if +} bd +/RE { % /NewFontName [NewEncodingArray] /FontName RE - + findfont dup length dict begin + { + 1 index /FID ne + {def} {pop pop} ifelse + } forall + /Encoding exch def + /FontName 1 index def + currentdict definefont pop + end +} bind def +%%EndResource +%%BeginResource: procset (Apache XML Graphics EPS ProcSet) 1.0 0 +%%Version: 1.0 0 +%%Copyright: (Copyright 2002-2003 The Apache Software Foundation. License terms: http://www.apache.org/licenses/LICENSE-2.0) +/BeginEPSF { %def +/b4_Inc_state save def % Save state for cleanup +/dict_count countdictstack def % Count objects on dict stack +/op_count count 1 sub def % Count objects on operand stack +userdict begin % Push userdict on dict stack +/showpage { } def % Redefine showpage, { } = null proc +0 setgray 0 setlinecap % Prepare graphics state +1 setlinewidth 0 setlinejoin +10 setmiterlimit [ ] 0 setdash newpath +/languagelevel where % If level not equal to 1 then +{pop languagelevel % set strokeadjust and +1 ne % overprint to their defaults. +{false setstrokeadjust false setoverprint +} if +} if +} bd +/EndEPSF { %def +count op_count sub {pop} repeat % Clean up stacks +countdictstack dict_count sub {end} repeat +b4_Inc_state restore +} bd +%%EndResource +%FOPBeginFontDict +%%IncludeResource: font Courier-Oblique +%%IncludeResource: font Courier-BoldOblique +%%IncludeResource: font Courier-Bold +%%IncludeResource: font ZapfDingbats +%%IncludeResource: font Symbol +%%IncludeResource: font Helvetica +%%IncludeResource: font Helvetica-Oblique +%%IncludeResource: font Helvetica-Bold +%%IncludeResource: font Helvetica-BoldOblique +%%IncludeResource: font Times-Roman +%%IncludeResource: font Times-Italic +%%IncludeResource: font Times-Bold +%%IncludeResource: font Times-BoldItalic +%%IncludeResource: font Courier +%FOPEndFontDict +%%BeginResource: encoding WinAnsiEncoding +/WinAnsiEncoding [ +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /space /exclam /quotedbl +/numbersign /dollar /percent /ampersand /quotesingle +/parenleft /parenright /asterisk /plus /comma +/hyphen /period /slash /zero /one +/two /three /four /five /six +/seven /eight /nine /colon /semicolon +/less /equal /greater /question /at +/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 /bracketleft /backslash /bracketright /asciicircum +/underscore /quoteleft /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 /braceleft /bar +/braceright /asciitilde /bullet /Euro /bullet +/quotesinglbase /florin /quotedblbase /ellipsis /dagger +/daggerdbl /circumflex /perthousand /Scaron /guilsinglleft +/OE /bullet /Zcaron /bullet /bullet +/quoteleft /quoteright /quotedblleft /quotedblright /bullet +/endash /emdash /asciitilde /trademark /scaron +/guilsinglright /oe /bullet /zcaron /Ydieresis +/space /exclamdown /cent /sterling /currency +/yen /brokenbar /section /dieresis /copyright +/ordfeminine /guillemotleft /logicalnot /sfthyphen /registered +/macron /degree /plusminus /twosuperior /threesuperior +/acute /mu /paragraph /middot /cedilla +/onesuperior /ordmasculine /guillemotright /onequarter /onehalf +/threequarters /questiondown /Agrave /Aacute /Acircumflex +/Atilde /Adieresis /Aring /AE /Ccedilla +/Egrave /Eacute /Ecircumflex /Edieresis /Igrave +/Iacute /Icircumflex /Idieresis /Eth /Ntilde +/Ograve /Oacute /Ocircumflex /Otilde /Odieresis +/multiply /Oslash /Ugrave /Uacute /Ucircumflex +/Udieresis /Yacute /Thorn /germandbls /agrave +/aacute /acircumflex /atilde /adieresis /aring +/ae /ccedilla /egrave /eacute /ecircumflex +/edieresis /igrave /iacute /icircumflex /idieresis +/eth /ntilde /ograve /oacute /ocircumflex +/otilde /odieresis /divide /oslash /ugrave +/uacute /ucircumflex /udieresis /yacute /thorn +/ydieresis +] def +%%EndResource +%FOPBeginFontReencode +/Courier-Oblique findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Courier-Oblique exch definefont pop +/Courier-BoldOblique findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Courier-BoldOblique exch definefont pop +/Courier-Bold findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Courier-Bold exch definefont pop +/Helvetica findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Helvetica exch definefont pop +/Helvetica-Oblique findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Helvetica-Oblique exch definefont pop +/Helvetica-Bold findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Helvetica-Bold exch definefont pop +/Helvetica-BoldOblique findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Helvetica-BoldOblique exch definefont pop +/Times-Roman findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Times-Roman exch definefont pop +/Times-Italic findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Times-Italic exch definefont pop +/Times-Bold findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Times-Bold exch definefont pop +/Times-BoldItalic findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Times-BoldItalic exch definefont pop +/Courier findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Courier exch definefont pop +%FOPEndFontReencode +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 420 315 +%%BeginPageSetup +[1 0 0 -1 0 315] CT +%%EndPageSetup +GS +[0.75 0 0 0.75 0 0] CT +1 GC +N +0 0 560 420 re +f +GR +GS +[0.75 0 0 0.75 0 0] CT +1 GC +N +0 0 560 420 re +f +GR +GS +[0.75 0 0 0.75 0 0] CT +1 GC +N +73 373.65 M +507 373.65 L +507 31.35 L +73 31.35 L +cp +f +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 373.65 M +507 373.65 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 31.35 M +507 31.35 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 373.65 M +73 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +116.4 373.65 M +116.4 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +159.8 373.65 M +159.8 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +203.2 373.65 M +203.2 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +246.6 373.65 M +246.6 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +290 373.65 M +290 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +333.4 373.65 M +333.4 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +376.8 373.65 M +376.8 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +420.2 373.65 M +420.2 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +463.6 373.65 M +463.6 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 373.65 M +507 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 31.35 M +73 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +116.4 31.35 M +116.4 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +159.8 31.35 M +159.8 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +203.2 31.35 M +203.2 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +246.6 31.35 M +246.6 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +290 31.35 M +290 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +333.4 31.35 M +333.4 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +376.8 31.35 M +376.8 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +420.2 31.35 M +420.2 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +463.6 31.35 M +463.6 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 31.35 M +507 35.69 L +S +GR +GS +[0.75 0 0 0.75 54.75 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-4 14 moveto +1 -1 scale +(0) t +GR +GR +GS +[0.75 0 0 0.75 87.3 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.1) t +GR +GR +GS +[0.75 0 0 0.75 119.85 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.2) t +GR +GR +GS +[0.75 0 0 0.75 152.40001 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.3) t +GR +GR +GS +[0.75 0 0 0.75 184.95 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.4) t +GR +GR +GS +[0.75 0 0 0.75 217.5 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.5) t +GR +GR +GS +[0.75 0 0 0.75 250.05002 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.6) t +GR +GR +GS +[0.75 0 0 0.75 282.59999 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.7) t +GR +GR +GS +[0.75 0 0 0.75 315.15001 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.8) t +GR +GR +GS +[0.75 0 0 0.75 347.69998 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.9) t +GR +GR +GS +[0.75 0 0 0.75 380.25 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-4 14 moveto +1 -1 scale +(1) t +GR +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 373.65 M +73 31.35 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 373.65 M +507 31.35 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 351.943 M +77.34 351.943 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 308.543 M +77.34 308.543 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 265.143 M +77.34 265.143 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 221.743 M +77.34 221.743 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 178.342 M +77.34 178.342 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 134.943 M +77.34 134.943 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 91.543 M +77.34 91.543 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 48.143 M +77.34 48.143 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 351.943 M +502.66 351.943 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 308.543 M +502.66 308.543 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 265.143 M +502.66 265.143 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 221.743 M +502.66 221.743 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 178.342 M +502.66 178.342 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 134.943 M +502.66 134.943 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 91.543 M +502.66 91.543 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 48.143 M +502.66 48.143 L +S +GR +GS +[0.75 0 0 0.75 50.75 263.95688] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-23 5.5 moveto +1 -1 scale +(-0.2) t +GR +GR +GS +[0.75 0 0 0.75 50.75 231.40688] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-23 5.5 moveto +1 -1 scale +(-0.1) t +GR +GR +GS +[0.75 0 0 0.75 50.75 198.85689] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-8 5.5 moveto +1 -1 scale +(0) t +GR +GR +GS +[0.75 0 0 0.75 50.75 166.30688] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-19 5.5 moveto +1 -1 scale +(0.1) t +GR +GR +GS +[0.75 0 0 0.75 50.75 133.75687] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-19 5.5 moveto +1 -1 scale +(0.2) t +GR +GR +GS +[0.75 0 0 0.75 50.75 101.20688] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-19 5.5 moveto +1 -1 scale +(0.3) t +GR +GR +GS +[0.75 0 0 0.75 50.75 68.65688] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-19 5.5 moveto +1 -1 scale +(0.4) t +GR +GR +GS +[0.75 0 0 0.75 50.75 36.10688] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-19 5.5 moveto +1 -1 scale +(0.5) t +GR +GR +GS +[0.75 0 0 0.75 0 0] CT +1 LJ +0.667 LW +N +73 265.143 M +121.222 265.143 L +145.333 223.381 L +169.444 265.143 L +217.667 265.143 L +241.778 223.381 L +217.667 181.619 L +265.889 181.619 L +290 139.857 L +314.111 181.619 L +362.333 181.619 L +338.222 223.381 L +362.333 265.143 L +410.556 265.143 L +434.667 223.381 L +458.778 265.143 L +507 265.143 L +S +GR +%%Trailer +%%Pages: 1 +%%EOF diff --git a/buch/papers/ifs/images/koch8.eps b/buch/papers/ifs/images/koch8.eps new file mode 100644 index 0000000..c7b4abf --- /dev/null +++ b/buch/papers/ifs/images/koch8.eps @@ -0,0 +1,26780 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (MATLAB, The Mathworks, Inc. Version 9.7.0.1434023 \(R2019b\) Update 6. Operating System: Windows 10) +%%Title: C:/Users/Alain/Dropbox/Dokumente/HSR/08_fs21/mathsem/buch/SeminarMatrizen/buch/papers/ifs/images/koch8.eps +%%CreationDate: 2021-05-26T15:23:05 +%%Pages: (atend) +%%BoundingBox: 0 0 420 315 +%%LanguageLevel: 3 +%%EndComments +%%BeginProlog +%%BeginResource: procset (Apache XML Graphics Std ProcSet) 1.2 0 +%%Version: 1.2 0 +%%Copyright: (Copyright 2001-2003,2010 The Apache Software Foundation. License terms: http://www.apache.org/licenses/LICENSE-2.0) +/bd{bind def}bind def +/ld{load def}bd +/GR/grestore ld +/GS/gsave ld +/RM/rmoveto ld +/C/curveto ld +/t/show ld +/L/lineto ld +/ML/setmiterlimit ld +/CT/concat ld +/f/fill ld +/N/newpath ld +/S/stroke ld +/CC/setcmykcolor ld +/A/ashow ld +/cp/closepath ld +/RC/setrgbcolor ld +/LJ/setlinejoin ld +/GC/setgray ld +/LW/setlinewidth ld +/M/moveto ld +/re {4 2 roll M +1 index 0 rlineto +0 exch rlineto +neg 0 rlineto +cp } bd +/_ctm matrix def +/_tm matrix def +/BT { _ctm currentmatrix pop matrix _tm copy pop 0 0 moveto } bd +/ET { _ctm setmatrix } bd +/iTm { _ctm setmatrix _tm concat } bd +/Tm { _tm astore pop iTm 0 0 moveto } bd +/ux 0.0 def +/uy 0.0 def +/F { + /Tp exch def + /Tf exch def + Tf findfont Tp scalefont setfont + /cf Tf def /cs Tp def +} bd +/ULS {currentpoint /uy exch def /ux exch def} bd +/ULE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add moveto Tcx uy To add lineto + Tt setlinewidth stroke + grestore +} bd +/OLE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add cs add moveto Tcx uy To add cs add lineto + Tt setlinewidth stroke + grestore +} bd +/SOE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add cs 10 mul 26 idiv add moveto Tcx uy To add cs 10 mul 26 idiv add lineto + Tt setlinewidth stroke + grestore +} bd +/QT { +/Y22 exch store +/X22 exch store +/Y21 exch store +/X21 exch store +currentpoint +/Y21 load 2 mul add 3 div exch +/X21 load 2 mul add 3 div exch +/X21 load 2 mul /X22 load add 3 div +/Y21 load 2 mul /Y22 load add 3 div +/X22 load /Y22 load curveto +} bd +/SSPD { +dup length /d exch dict def +{ +/v exch def +/k exch def +currentpagedevice k known { +/cpdv currentpagedevice k get def +v cpdv ne { +/upd false def +/nullv v type /nulltype eq def +/nullcpdv cpdv type /nulltype eq def +nullv nullcpdv or +{ +/upd true def +} { +/sametype v type cpdv type eq def +sametype { +v type /arraytype eq { +/vlen v length def +/cpdvlen cpdv length def +vlen cpdvlen eq { +0 1 vlen 1 sub { +/i exch def +/obj v i get def +/cpdobj cpdv i get def +obj cpdobj ne { +/upd true def +exit +} if +} for +} { +/upd true def +} ifelse +} { +v type /dicttype eq { +v { +/dv exch def +/dk exch def +/cpddv cpdv dk get def +dv cpddv ne { +/upd true def +exit +} if +} forall +} { +/upd true def +} ifelse +} ifelse +} if +} ifelse +upd true eq { +d k v put +} if +} if +} if +} forall +d length 0 gt { +d setpagedevice +} if +} bd +/RE { % /NewFontName [NewEncodingArray] /FontName RE - + findfont dup length dict begin + { + 1 index /FID ne + {def} {pop pop} ifelse + } forall + /Encoding exch def + /FontName 1 index def + currentdict definefont pop + end +} bind def +%%EndResource +%%BeginResource: procset (Apache XML Graphics EPS ProcSet) 1.0 0 +%%Version: 1.0 0 +%%Copyright: (Copyright 2002-2003 The Apache Software Foundation. License terms: http://www.apache.org/licenses/LICENSE-2.0) +/BeginEPSF { %def +/b4_Inc_state save def % Save state for cleanup +/dict_count countdictstack def % Count objects on dict stack +/op_count count 1 sub def % Count objects on operand stack +userdict begin % Push userdict on dict stack +/showpage { } def % Redefine showpage, { } = null proc +0 setgray 0 setlinecap % Prepare graphics state +1 setlinewidth 0 setlinejoin +10 setmiterlimit [ ] 0 setdash newpath +/languagelevel where % If level not equal to 1 then +{pop languagelevel % set strokeadjust and +1 ne % overprint to their defaults. +{false setstrokeadjust false setoverprint +} if +} if +} bd +/EndEPSF { %def +count op_count sub {pop} repeat % Clean up stacks +countdictstack dict_count sub {end} repeat +b4_Inc_state restore +} bd +%%EndResource +%FOPBeginFontDict +%%IncludeResource: font Courier-Oblique +%%IncludeResource: font Courier-BoldOblique +%%IncludeResource: font Courier-Bold +%%IncludeResource: font ZapfDingbats +%%IncludeResource: font Symbol +%%IncludeResource: font Helvetica +%%IncludeResource: font Helvetica-Oblique +%%IncludeResource: font Helvetica-Bold +%%IncludeResource: font Helvetica-BoldOblique +%%IncludeResource: font Times-Roman +%%IncludeResource: font Times-Italic +%%IncludeResource: font Times-Bold +%%IncludeResource: font Times-BoldItalic +%%IncludeResource: font Courier +%FOPEndFontDict +%%BeginResource: encoding WinAnsiEncoding +/WinAnsiEncoding [ +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /space /exclam /quotedbl +/numbersign /dollar /percent /ampersand /quotesingle +/parenleft /parenright /asterisk /plus /comma +/hyphen /period /slash /zero /one +/two /three /four /five /six +/seven /eight /nine /colon /semicolon +/less /equal /greater /question /at +/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 /bracketleft /backslash /bracketright /asciicircum +/underscore /quoteleft /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 /braceleft /bar +/braceright /asciitilde /bullet /Euro /bullet +/quotesinglbase /florin /quotedblbase /ellipsis /dagger +/daggerdbl /circumflex /perthousand /Scaron /guilsinglleft +/OE /bullet /Zcaron /bullet /bullet +/quoteleft /quoteright /quotedblleft /quotedblright /bullet +/endash /emdash /asciitilde /trademark /scaron +/guilsinglright /oe /bullet /zcaron /Ydieresis +/space /exclamdown /cent /sterling /currency +/yen /brokenbar /section /dieresis /copyright +/ordfeminine /guillemotleft /logicalnot /sfthyphen /registered +/macron /degree /plusminus /twosuperior /threesuperior +/acute /mu /paragraph /middot /cedilla +/onesuperior /ordmasculine /guillemotright /onequarter /onehalf +/threequarters /questiondown /Agrave /Aacute /Acircumflex +/Atilde /Adieresis /Aring /AE /Ccedilla +/Egrave /Eacute /Ecircumflex /Edieresis /Igrave +/Iacute /Icircumflex /Idieresis /Eth /Ntilde +/Ograve /Oacute /Ocircumflex /Otilde /Odieresis +/multiply /Oslash /Ugrave /Uacute /Ucircumflex +/Udieresis /Yacute /Thorn /germandbls /agrave +/aacute /acircumflex /atilde /adieresis /aring +/ae /ccedilla /egrave /eacute /ecircumflex +/edieresis /igrave /iacute /icircumflex /idieresis +/eth /ntilde /ograve /oacute /ocircumflex +/otilde /odieresis /divide /oslash /ugrave +/uacute /ucircumflex /udieresis /yacute /thorn +/ydieresis +] def +%%EndResource +%FOPBeginFontReencode +/Courier-Oblique findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Courier-Oblique exch definefont pop +/Courier-BoldOblique findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Courier-BoldOblique exch definefont pop +/Courier-Bold findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Courier-Bold exch definefont pop +/Helvetica findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Helvetica exch definefont pop +/Helvetica-Oblique findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Helvetica-Oblique exch definefont pop +/Helvetica-Bold findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Helvetica-Bold exch definefont pop +/Helvetica-BoldOblique findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Helvetica-BoldOblique exch definefont pop +/Times-Roman findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Times-Roman exch definefont pop +/Times-Italic findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Times-Italic exch definefont pop +/Times-Bold findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Times-Bold exch definefont pop +/Times-BoldItalic findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Times-BoldItalic exch definefont pop +/Courier findfont +dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding WinAnsiEncoding def + currentdict +end +/Courier exch definefont pop +%FOPEndFontReencode +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 420 315 +%%BeginPageSetup +[1 0 0 -1 0 315] CT +%%EndPageSetup +GS +[0.75 0 0 0.75 0 0] CT +1 GC +N +0 0 560 420 re +f +GR +GS +[0.75 0 0 0.75 0 0] CT +1 GC +N +0 0 560 420 re +f +GR +GS +[0.75 0 0 0.75 0 0] CT +1 GC +N +73 373.65 M +507 373.65 L +507 31.35 L +73 31.35 L +cp +f +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 373.65 M +507 373.65 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 31.35 M +507 31.35 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 373.65 M +73 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +116.4 373.65 M +116.4 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +159.8 373.65 M +159.8 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +203.2 373.65 M +203.2 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +246.6 373.65 M +246.6 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +290 373.65 M +290 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +333.4 373.65 M +333.4 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +376.8 373.65 M +376.8 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +420.2 373.65 M +420.2 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +463.6 373.65 M +463.6 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 373.65 M +507 369.31 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 31.35 M +73 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +116.4 31.35 M +116.4 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +159.8 31.35 M +159.8 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +203.2 31.35 M +203.2 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +246.6 31.35 M +246.6 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +290 31.35 M +290 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +333.4 31.35 M +333.4 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +376.8 31.35 M +376.8 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +420.2 31.35 M +420.2 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +463.6 31.35 M +463.6 35.69 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 31.35 M +507 35.69 L +S +GR +GS +[0.75 0 0 0.75 54.75 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-4 14 moveto +1 -1 scale +(0) t +GR +GR +GS +[0.75 0 0 0.75 87.3 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.1) t +GR +GR +GS +[0.75 0 0 0.75 119.85 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.2) t +GR +GR +GS +[0.75 0 0 0.75 152.40001 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.3) t +GR +GR +GS +[0.75 0 0 0.75 184.95 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.4) t +GR +GR +GS +[0.75 0 0 0.75 217.5 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.5) t +GR +GR +GS +[0.75 0 0 0.75 250.05002 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.6) t +GR +GR +GS +[0.75 0 0 0.75 282.59999 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.7) t +GR +GR +GS +[0.75 0 0 0.75 315.15001 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.8) t +GR +GR +GS +[0.75 0 0 0.75 347.69998 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-9.5 14 moveto +1 -1 scale +(0.9) t +GR +GR +GS +[0.75 0 0 0.75 380.25 284.2375] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-4 14 moveto +1 -1 scale +(1) t +GR +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 373.65 M +73 31.35 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 373.65 M +507 31.35 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 351.943 M +77.34 351.943 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 308.543 M +77.34 308.543 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 265.143 M +77.34 265.143 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 221.743 M +77.34 221.743 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 178.342 M +77.34 178.342 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 134.943 M +77.34 134.943 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 91.543 M +77.34 91.543 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +73 48.143 M +77.34 48.143 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 351.943 M +502.66 351.943 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 308.543 M +502.66 308.543 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 265.143 M +502.66 265.143 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 221.743 M +502.66 221.743 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 178.342 M +502.66 178.342 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 134.943 M +502.66 134.943 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 91.543 M +502.66 91.543 L +S +GR +GS +[0.75 0 0 0.75 0 0] CT +0.149 GC +2 setlinecap +1 LJ +0.667 LW +N +507 48.143 M +502.66 48.143 L +S +GR +GS +[0.75 0 0 0.75 50.75 263.95688] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-23 5.5 moveto +1 -1 scale +(-0.2) t +GR +GR +GS +[0.75 0 0 0.75 50.75 231.40688] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-23 5.5 moveto +1 -1 scale +(-0.1) t +GR +GR +GS +[0.75 0 0 0.75 50.75 198.85689] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-8 5.5 moveto +1 -1 scale +(0) t +GR +GR +GS +[0.75 0 0 0.75 50.75 166.30688] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-19 5.5 moveto +1 -1 scale +(0.1) t +GR +GR +GS +[0.75 0 0 0.75 50.75 133.75687] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-19 5.5 moveto +1 -1 scale +(0.2) t +GR +GR +GS +[0.75 0 0 0.75 50.75 101.20688] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-19 5.5 moveto +1 -1 scale +(0.3) t +GR +GR +GS +[0.75 0 0 0.75 50.75 68.65688] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-19 5.5 moveto +1 -1 scale +(0.4) t +GR +GR +GS +[0.75 0 0 0.75 50.75 36.10688] CT +0.149 GC +/Helvetica 13.333 F +GS +[1 0 0 1 0 0] CT +-19 5.5 moveto +1 -1 scale +(0.5) t +GR +GR +GS +[0.75 0 0 0.75 0 0] CT +1 LJ +0.667 LW +N +73 265.143 M +73.198 265.028 L +73.265 265.028 L +73.298 264.971 L +73.397 265.143 L +73.496 265.085 L +73.529 265.143 L +73.695 264.741 L +73.728 264.799 L +73.794 264.799 L +73.893 264.627 L +73.992 264.799 L +74.058 264.799 L +74.091 264.741 L +74.191 265.143 L +74.257 265.143 L +74.488 264.971 L +74.521 265.028 L +74.588 265.143 L +74.72 265.143 L +74.786 265.143 L +74.885 264.741 L +74.984 264.799 L +75.018 264.741 L +74.984 264.684 L +75.051 264.684 L +75.051 264.57 L +74.984 264.57 L +75.018 264.512 L +74.984 264.455 L +74.885 264.512 L +74.885 264.054 L +74.984 264.111 L +75.018 264.054 L +74.984 263.997 L +75.051 263.997 L +75.084 263.939 L +75.183 264.111 L +75.249 264.111 L +75.282 264.054 L +75.315 264.111 L +75.481 263.71 L +75.514 263.768 L +75.679 263.596 L +75.712 263.653 L +75.778 263.653 L +75.745 263.71 L +75.778 263.768 L +75.877 263.71 L +75.977 264.111 L +76.043 264.111 L +76.175 263.997 L +76.241 263.997 L +76.274 263.939 L +76.374 264.111 L +76.473 264.054 L +76.506 264.111 L +76.572 264.226 L +76.506 264.226 L +76.473 264.283 L +76.506 264.34 L +76.572 264.455 L +76.506 264.455 L +76.473 264.512 L +76.44 264.455 L +76.374 264.799 L +76.473 264.741 L +76.506 264.799 L +76.572 264.913 L +76.506 264.913 L +76.473 264.971 L +76.506 265.028 L +76.572 265.143 L +76.704 265.143 L +76.77 265.143 L +76.87 264.971 L +76.969 265.143 L +77.035 265.143 L +77.167 265.028 L +77.233 265.028 L +77.267 264.971 L +77.233 264.913 L +77.167 264.799 L +77.233 264.799 L +77.267 264.741 L +77.3 264.799 L +77.465 264.627 L +77.498 264.684 L +77.564 264.684 L +77.564 264.799 L +77.697 264.799 L +77.763 264.799 L +77.73 264.856 L +77.763 264.913 L +77.697 264.913 L +77.697 265.028 L +77.763 265.028 L +77.73 265.085 L +77.763 265.143 L +77.961 265.028 L +78.027 265.028 L +78.06 264.971 L +78.16 265.143 L +78.226 265.143 L +78.259 265.085 L +78.292 265.143 L +78.457 264.741 L +78.49 264.799 L +78.556 264.799 L +78.556 264.455 L +78.49 264.455 L +78.457 264.512 L +78.457 264.054 L +78.49 264.111 L +78.556 264.111 L +78.656 263.939 L +78.689 263.997 L +78.755 263.997 L +78.722 264.054 L +78.755 264.111 L +78.953 263.997 L +79.02 263.997 L +79.02 263.882 L +78.953 263.882 L +78.953 263.768 L +79.02 263.768 L +79.152 263.653 L +79.218 263.653 L +79.251 263.596 L +79.218 263.538 L +79.152 263.424 L +79.02 263.424 L +78.953 263.424 L +78.953 263.309 L +79.02 263.309 L +79.02 263.195 L +78.953 263.195 L +78.953 263.08 L +78.755 263.08 L +78.722 263.137 L +78.755 263.195 L +78.689 263.195 L +78.656 263.252 L +78.556 263.08 L +78.49 263.08 L +78.457 263.137 L +78.457 262.679 L +78.49 262.736 L +78.556 262.736 L +78.556 262.393 L +78.49 262.393 L +78.457 262.45 L +78.457 261.992 L +78.49 262.049 L +78.556 262.049 L +78.656 261.877 L +78.689 261.934 L +78.755 261.934 L +78.722 261.992 L +78.755 262.049 L +78.953 261.934 L +79.02 261.934 L +79.02 261.82 L +78.953 261.82 L +78.953 261.705 L +79.02 261.705 L +79.152 261.591 L +79.218 261.591 L +79.251 261.533 L +79.35 261.705 L +79.483 261.705 L +79.549 261.705 L +79.549 261.82 L +79.483 261.82 L +79.483 261.934 L +79.549 261.934 L +79.549 262.049 L +79.747 262.049 L +79.78 261.992 L +79.747 261.934 L +79.813 261.934 L +79.846 261.877 L +79.946 262.049 L +80.012 262.049 L +80.243 261.648 L +80.276 261.705 L +80.342 261.362 L +80.276 261.362 L +80.243 261.419 L +80.243 260.961 L +80.276 261.018 L +80.442 260.846 L +80.475 260.903 L +80.541 260.903 L +80.541 261.018 L +80.739 261.018 L +80.772 260.961 L +80.739 260.903 L +80.806 260.903 L +80.806 260.789 L +80.739 260.789 L +80.772 260.731 L +80.739 260.674 L +80.806 260.674 L +80.938 260.56 L +81.004 260.56 L +81.037 260.502 L +81.136 260.674 L +81.235 260.617 L +81.269 260.674 L +81.335 260.789 L +81.269 260.789 L +81.235 260.846 L +81.269 260.903 L +81.335 261.018 L +81.467 261.018 L +81.533 261.018 L +81.632 260.846 L +81.732 261.018 L +81.798 261.018 L +81.831 260.961 L +81.831 261.419 L +81.798 261.362 L +81.732 261.362 L +81.732 261.705 L +81.798 261.705 L +81.831 261.648 L +81.93 262.049 L +81.996 262.049 L +82.029 261.992 L +82.062 262.049 L +82.228 261.877 L +82.261 261.934 L +82.327 262.049 L +82.459 262.049 L +82.525 262.049 L +82.625 261.648 L +82.724 261.705 L +82.757 261.648 L +82.724 261.591 L +82.79 261.591 L +82.823 261.533 L +82.922 261.705 L +82.988 261.705 L +83.021 261.648 L +83.121 262.049 L +83.22 261.992 L +83.253 262.049 L +83.418 261.877 L +83.451 261.934 L +83.518 261.934 L +83.485 261.992 L +83.518 262.049 L +83.617 261.992 L +83.617 262.45 L +83.518 262.393 L +83.485 262.45 L +83.518 262.507 L +83.451 262.507 L +83.451 262.622 L +83.518 262.622 L +83.485 262.679 L +83.518 262.736 L +83.617 262.679 L +83.617 263.137 L +83.518 263.08 L +83.485 263.137 L +83.518 263.195 L +83.451 263.195 L +83.418 263.252 L +83.319 263.08 L +83.253 263.08 L +83.22 263.137 L +83.187 263.08 L +83.021 263.481 L +82.988 263.424 L +82.922 263.768 L +82.988 263.768 L +83.021 263.71 L +83.121 264.111 L +83.22 264.054 L +83.253 264.111 L +83.418 263.939 L +83.451 263.997 L +83.518 263.997 L +83.485 264.054 L +83.518 264.111 L +83.617 264.054 L +83.617 264.512 L +83.518 264.455 L +83.485 264.512 L +83.518 264.57 L +83.451 264.57 L +83.451 264.684 L +83.518 264.684 L +83.485 264.741 L +83.518 264.799 L +83.617 264.741 L +83.716 265.143 L +83.782 265.143 L +83.914 265.028 L +83.981 265.028 L +84.014 264.971 L +84.113 265.143 L +84.245 265.143 L +84.311 265.143 L +84.411 264.741 L +84.444 264.799 L +84.51 264.799 L +84.609 264.627 L +84.708 264.799 L +84.774 264.799 L +84.807 264.741 L +84.907 265.143 L +84.973 265.143 L +85.006 265.085 L +85.039 265.143 L +85.204 264.971 L +85.237 265.028 L +85.304 265.028 L +85.304 265.143 L +85.436 265.143 L +85.502 265.143 L +85.701 264.684 L +85.767 264.684 L +85.767 264.57 L +85.701 264.57 L +85.701 263.997 L +85.767 263.997 L +85.8 263.939 L +85.899 264.111 L +85.998 264.054 L +86.031 264.111 L +86.197 263.71 L +86.23 263.768 L +86.296 263.768 L +86.395 263.596 L +86.494 263.768 L +86.56 263.768 L +86.594 263.71 L +86.693 264.111 L +86.759 264.111 L +86.99 263.939 L +87.023 263.997 L +87.09 264.111 L +87.222 264.111 L +87.288 264.111 L +87.288 264.226 L +87.222 264.226 L +87.222 264.34 L +87.288 264.34 L +87.288 264.455 L +87.222 264.455 L +87.09 264.57 L +87.023 264.57 L +86.99 264.627 L +87.023 264.684 L +87.09 264.799 L +87.222 264.799 L +87.288 264.799 L +87.288 264.913 L +87.222 264.913 L +87.222 265.028 L +87.288 265.028 L +87.288 265.143 L +87.487 265.143 L +87.52 265.085 L +87.487 265.028 L +87.553 265.028 L +87.586 264.971 L +87.685 265.143 L +87.751 265.143 L +87.983 264.741 L +88.016 264.799 L +88.181 264.627 L +88.214 264.684 L +88.28 264.684 L +88.247 264.741 L +88.28 264.799 L +88.38 264.741 L +88.479 265.143 L +88.545 265.143 L +88.677 265.028 L +88.743 265.028 L +88.776 264.971 L +88.876 265.143 L +88.975 265.085 L +89.008 265.143 L +89.173 264.741 L +89.206 264.799 L +89.273 264.799 L +89.273 264.455 L +89.206 264.455 L +89.173 264.512 L +89.173 264.054 L +89.206 264.111 L +89.273 264.111 L +89.372 263.939 L +89.471 264.111 L +89.537 264.111 L +89.669 263.997 L +89.736 263.997 L +89.769 263.939 L +89.736 263.882 L +89.669 263.768 L +89.736 263.768 L +89.769 263.71 L +89.802 263.768 L +89.868 263.424 L +89.769 263.481 L +89.736 263.424 L +89.669 263.309 L +89.736 263.309 L +89.769 263.252 L +89.736 263.195 L +89.669 263.08 L +89.537 263.08 L +89.471 263.08 L +89.372 263.252 L +89.273 263.08 L +89.206 263.08 L +89.173 263.137 L +89.173 262.679 L +89.206 262.736 L +89.273 262.736 L +89.273 262.393 L +89.206 262.393 L +89.173 262.45 L +89.173 261.992 L +89.206 262.049 L +89.273 262.049 L +89.372 261.877 L +89.471 262.049 L +89.537 262.049 L +89.669 261.934 L +89.736 261.934 L +89.769 261.877 L +89.736 261.82 L +89.669 261.705 L +89.736 261.705 L +89.769 261.648 L +89.802 261.705 L +89.967 261.533 L +90 261.591 L +90.066 261.705 L +90.199 261.705 L +90.265 261.705 L +90.232 261.763 L +90.265 261.82 L +90.199 261.82 L +90.199 261.934 L +90.265 261.934 L +90.232 261.992 L +90.265 262.049 L +90.463 261.934 L +90.529 261.934 L +90.562 261.877 L +90.662 262.049 L +90.728 262.049 L +90.761 261.992 L +90.794 262.049 L +90.959 261.648 L +90.992 261.705 L +91.059 261.705 L +91.059 261.362 L +90.992 261.362 L +90.959 261.419 L +90.959 260.961 L +90.992 261.018 L +91.059 261.018 L +91.158 260.846 L +91.191 260.903 L +91.257 260.903 L +91.224 260.961 L +91.257 261.018 L +91.455 260.903 L +91.522 260.903 L +91.522 260.789 L +91.455 260.789 L +91.455 260.674 L +91.522 260.674 L +91.654 260.56 L +91.72 260.56 L +91.753 260.502 L +91.72 260.445 L +91.654 260.33 L +91.522 260.33 L +91.455 260.33 L +91.455 260.216 L +91.522 260.216 L +91.522 260.101 L +91.455 260.101 L +91.455 259.987 L +91.257 259.987 L +91.224 260.044 L +91.257 260.101 L +91.191 260.101 L +91.158 260.159 L +91.059 259.987 L +90.992 259.987 L +90.959 260.044 L +90.959 259.586 L +90.992 259.643 L +91.059 259.643 L +91.059 259.299 L +90.992 259.299 L +90.959 259.357 L +90.86 258.956 L +90.761 259.013 L +90.728 258.956 L +90.562 259.127 L +90.529 259.07 L +90.463 259.07 L +90.463 258.956 L +90.265 258.956 L +90.232 259.013 L +90.265 259.07 L +90.199 259.07 L +90.199 259.185 L +90.265 259.185 L +90.232 259.242 L +90.265 259.299 L +90.199 259.299 L +90.066 259.414 L +90 259.414 L +89.967 259.471 L +89.868 259.299 L +89.769 259.357 L +89.736 259.299 L +89.669 259.185 L +89.736 259.185 L +89.769 259.127 L +89.736 259.07 L +89.669 258.956 L +89.537 258.956 L +89.471 258.956 L +89.372 259.127 L +89.273 258.956 L +89.206 258.956 L +89.173 259.013 L +89.173 258.555 L +89.206 258.612 L +89.273 258.612 L +89.273 258.268 L +89.206 258.268 L +89.173 258.325 L +89.173 257.867 L +89.206 257.924 L +89.273 257.924 L +89.372 257.753 L +89.471 257.924 L +89.537 257.924 L +89.669 257.81 L +89.736 257.81 L +89.769 257.753 L +89.736 257.695 L +89.669 257.581 L +89.736 257.581 L +89.769 257.523 L +89.802 257.581 L +89.868 257.237 L +89.769 257.294 L +89.736 257.237 L +89.669 257.122 L +89.736 257.122 L +89.769 257.065 L +89.736 257.008 L +89.669 256.893 L +89.537 256.893 L +89.471 256.893 L +89.372 257.065 L +89.273 256.893 L +89.206 256.893 L +89.173 256.951 L +89.173 256.492 L +89.206 256.55 L +89.273 256.55 L +89.273 256.206 L +89.206 256.206 L +89.173 256.263 L +89.173 255.805 L +89.206 255.862 L +89.273 255.862 L +89.372 255.69 L +89.471 255.862 L +89.537 255.862 L +89.669 255.748 L +89.736 255.748 L +89.769 255.69 L +89.736 255.633 L +89.669 255.518 L +89.736 255.518 L +89.769 255.461 L +89.802 255.518 L +89.967 255.347 L +90 255.404 L +90.066 255.518 L +90.199 255.518 L +90.265 255.518 L +90.232 255.576 L +90.265 255.633 L +90.199 255.633 L +90.199 255.748 L +90.265 255.748 L +90.232 255.805 L +90.265 255.862 L +90.463 255.748 L +90.529 255.748 L +90.562 255.69 L +90.662 255.862 L +90.728 255.862 L +90.761 255.805 L +90.794 255.862 L +90.959 255.461 L +90.992 255.518 L +91.059 255.518 L +91.059 255.175 L +90.992 255.175 L +90.959 255.232 L +90.959 254.774 L +90.992 254.831 L +91.059 254.831 L +91.158 254.659 L +91.191 254.716 L +91.257 254.716 L +91.224 254.774 L +91.257 254.831 L +91.455 254.716 L +91.522 254.716 L +91.522 254.602 L +91.455 254.602 L +91.455 254.487 L +91.522 254.487 L +91.654 254.373 L +91.72 254.373 L +91.753 254.315 L +91.852 254.487 L +91.985 254.487 L +92.051 254.487 L +92.051 254.602 L +91.985 254.602 L +91.985 254.716 L +92.051 254.716 L +92.051 254.831 L +92.249 254.831 L +92.282 254.774 L +92.249 254.716 L +92.315 254.716 L +92.348 254.659 L +92.448 254.831 L +92.514 254.831 L +92.547 254.774 L +92.547 255.232 L +92.514 255.175 L +92.448 255.175 L +92.448 255.518 L +92.514 255.518 L +92.547 255.461 L +92.646 255.862 L +92.745 255.805 L +92.778 255.862 L +92.944 255.69 L +92.977 255.748 L +93.043 255.748 L +93.043 255.862 L +93.241 255.862 L +93.274 255.805 L +93.241 255.748 L +93.308 255.748 L +93.308 255.633 L +93.241 255.633 L +93.274 255.576 L +93.241 255.518 L +93.308 255.518 L +93.44 255.404 L +93.506 255.404 L +93.539 255.347 L +93.638 255.518 L +93.738 255.461 L +93.771 255.518 L +93.837 255.633 L +93.771 255.633 L +93.738 255.69 L +93.771 255.748 L +93.837 255.862 L +93.969 255.862 L +94.035 255.862 L +94.134 255.69 L +94.234 255.862 L +94.3 255.862 L +94.432 255.748 L +94.498 255.748 L +94.531 255.69 L +94.498 255.633 L +94.432 255.518 L +94.498 255.518 L +94.531 255.461 L +94.564 255.518 L +94.631 255.175 L +94.531 255.232 L +94.498 255.175 L +94.432 255.06 L +94.498 255.06 L +94.531 255.003 L +94.498 254.946 L +94.432 254.831 L +94.498 254.831 L +94.531 254.774 L +94.564 254.831 L +94.73 254.659 L +94.763 254.716 L +94.829 254.831 L +94.961 254.831 L +95.027 254.831 L +95.127 254.43 L +95.226 254.487 L +95.259 254.43 L +95.226 254.373 L +95.292 254.373 L +95.292 254.258 L +95.226 254.258 L +95.259 254.201 L +95.226 254.144 L +95.127 254.201 L +95.027 253.8 L +94.961 253.8 L +94.829 253.914 L +94.763 253.914 L +94.73 253.972 L +94.631 253.8 L +94.531 253.857 L +94.498 253.8 L +94.432 253.685 L +94.498 253.685 L +94.531 253.628 L +94.498 253.571 L +94.432 253.456 L +94.498 253.456 L +94.531 253.399 L +94.564 253.456 L +94.631 253.112 L +94.531 253.17 L +94.498 253.112 L +94.432 252.998 L +94.498 252.998 L +94.531 252.941 L +94.498 252.883 L +94.432 252.769 L +94.498 252.769 L +94.531 252.711 L +94.564 252.769 L +94.73 252.597 L +94.763 252.654 L +94.829 252.769 L +94.961 252.769 L +95.027 252.769 L +95.127 252.368 L +95.226 252.425 L +95.259 252.368 L +95.226 252.31 L +95.292 252.31 L +95.325 252.253 L +95.424 252.425 L +95.49 252.425 L +95.524 252.368 L +95.623 252.769 L +95.722 252.711 L +95.755 252.769 L +95.92 252.597 L +95.954 252.654 L +96.02 252.654 L +95.987 252.711 L +96.02 252.769 L +96.119 252.711 L +96.218 252.769 L +96.251 252.711 L +96.218 252.654 L +96.284 252.654 L +96.284 252.54 L +96.218 252.54 L +96.251 252.482 L +96.218 252.425 L +96.284 252.425 L +96.417 252.31 L +96.483 252.31 L +96.516 252.253 L +96.483 252.196 L +96.417 252.081 L +96.284 252.081 L +96.218 252.081 L +96.251 252.024 L +96.218 251.967 L +96.284 251.967 L +96.284 251.852 L +96.218 251.852 L +96.251 251.795 L +96.218 251.738 L +96.284 251.738 L +96.417 251.623 L +96.483 251.623 L +96.516 251.566 L +96.615 251.738 L +96.747 251.738 L +96.813 251.738 L +96.913 251.337 L +96.946 251.394 L +97.012 251.394 L +97.111 251.222 L +97.21 251.394 L +97.276 251.394 L +97.31 251.337 L +97.409 251.738 L +97.475 251.738 L +97.508 251.68 L +97.541 251.738 L +97.706 251.566 L +97.74 251.623 L +97.806 251.623 L +97.806 251.738 L +97.938 251.738 L +98.004 251.738 L +97.971 251.795 L +98.004 251.852 L +97.938 251.852 L +97.938 251.967 L +98.004 251.967 L +97.971 252.024 L +98.004 252.081 L +97.938 252.081 L +97.806 252.196 L +97.74 252.196 L +97.74 252.31 L +97.806 252.31 L +97.806 252.425 L +97.938 252.425 L +98.004 252.425 L +97.971 252.482 L +98.004 252.54 L +97.938 252.54 L +97.938 252.654 L +98.004 252.654 L +97.971 252.711 L +98.004 252.769 L +98.203 252.654 L +98.269 252.654 L +98.302 252.597 L +98.401 252.769 L +98.467 252.769 L +98.5 252.711 L +98.533 252.769 L +98.699 252.368 L +98.732 252.425 L +98.798 252.425 L +98.897 252.253 L +98.996 252.425 L +99.062 252.425 L +99.096 252.368 L +99.195 252.769 L +99.261 252.769 L +99.492 252.597 L +99.526 252.654 L +99.592 252.769 L +99.724 252.769 L +99.79 252.769 L +99.79 252.883 L +99.724 252.883 L +99.724 252.998 L +99.79 252.998 L +99.79 253.112 L +99.724 253.112 L +99.592 253.227 L +99.526 253.227 L +99.492 253.284 L +99.526 253.342 L +99.592 253.456 L +99.724 253.456 L +99.79 253.456 L +99.79 253.571 L +99.724 253.571 L +99.724 253.685 L +99.79 253.685 L +99.79 253.8 L +99.724 253.8 L +99.592 253.914 L +99.526 253.914 L +99.492 253.972 L +99.393 253.8 L +99.261 253.8 L +99.195 253.8 L +99.096 254.201 L +99.062 254.144 L +98.996 254.144 L +98.996 254.487 L +99.062 254.487 L +99.096 254.43 L +99.195 254.831 L +99.261 254.831 L +99.492 254.659 L +99.526 254.716 L +99.592 254.831 L +99.724 254.831 L +99.79 254.831 L +99.79 254.946 L +99.724 254.946 L +99.724 255.06 L +99.79 255.06 L +99.79 255.175 L +99.724 255.175 L +99.592 255.289 L +99.526 255.289 L +99.492 255.347 L +99.526 255.404 L +99.592 255.518 L +99.724 255.518 L +99.79 255.518 L +99.79 255.633 L +99.724 255.633 L +99.724 255.748 L +99.79 255.748 L +99.79 255.862 L +99.989 255.862 L +100.022 255.805 L +99.989 255.748 L +100.055 255.748 L +100.088 255.69 L +100.187 255.862 L +100.253 255.862 L +100.485 255.461 L +100.518 255.518 L +100.683 255.347 L +100.716 255.404 L +100.782 255.404 L +100.749 255.461 L +100.782 255.518 L +100.882 255.461 L +100.981 255.862 L +101.047 255.862 L +101.179 255.748 L +101.245 255.748 L +101.278 255.69 L +101.378 255.862 L +101.477 255.805 L +101.51 255.862 L +101.675 255.461 L +101.708 255.518 L +101.775 255.518 L +101.775 255.175 L +101.708 255.175 L +101.675 255.232 L +101.675 254.774 L +101.708 254.831 L +101.775 254.831 L +101.874 254.659 L +101.973 254.831 L +102.039 254.831 L +102.171 254.716 L +102.238 254.716 L +102.271 254.659 L +102.238 254.602 L +102.171 254.487 L +102.238 254.487 L +102.271 254.43 L +102.304 254.487 L +102.469 254.315 L +102.502 254.373 L +102.568 254.487 L +102.701 254.487 L +102.767 254.487 L +102.734 254.545 L +102.767 254.602 L +102.701 254.602 L +102.701 254.716 L +102.767 254.716 L +102.734 254.774 L +102.767 254.831 L +102.965 254.716 L +103.031 254.716 L +103.064 254.659 L +103.164 254.831 L +103.23 254.831 L +103.263 254.774 L +103.263 255.232 L +103.23 255.175 L +103.164 255.518 L +103.23 255.518 L +103.263 255.461 L +103.362 255.862 L +103.494 255.862 L +103.561 255.862 L +103.66 255.69 L +103.693 255.748 L +103.759 255.748 L +103.726 255.805 L +103.759 255.862 L +103.957 255.748 L +104.024 255.748 L +104.024 255.633 L +103.957 255.633 L +103.957 255.518 L +104.024 255.518 L +104.156 255.404 L +104.222 255.404 L +104.255 255.347 L +104.354 255.518 L +104.487 255.518 L +104.553 255.518 L +104.553 255.633 L +104.487 255.633 L +104.487 255.748 L +104.553 255.748 L +104.553 255.862 L +104.685 255.862 L +104.751 255.862 L +104.85 255.69 L +104.95 255.862 L +105.016 255.862 L +105.049 255.805 L +105.049 256.263 L +105.016 256.206 L +104.95 256.206 L +104.95 256.55 L +105.016 256.55 L +105.049 256.492 L +105.049 256.951 L +105.016 256.893 L +104.95 256.893 L +104.85 257.065 L +104.751 256.893 L +104.685 256.893 L +104.553 257.008 L +104.487 257.008 L +104.487 257.122 L +104.553 257.122 L +104.553 257.237 L +104.487 257.237 L +104.354 257.581 L +104.487 257.581 L +104.553 257.581 L +104.553 257.695 L +104.487 257.695 L +104.487 257.81 L +104.553 257.81 L +104.553 257.924 L +104.685 257.924 L +104.751 257.924 L +104.85 257.753 L +104.95 257.924 L +105.016 257.924 L +105.049 257.867 L +105.049 258.325 L +105.016 258.268 L +104.95 258.268 L +104.95 258.612 L +105.016 258.612 L +105.049 258.555 L +105.049 259.013 L +105.016 258.956 L +104.95 258.956 L +104.85 259.127 L +104.751 258.956 L +104.685 258.956 L +104.553 259.07 L +104.487 259.07 L +104.487 259.185 L +104.553 259.185 L +104.553 259.299 L +104.487 259.299 L +104.255 259.471 L +104.222 259.414 L +104.156 259.299 L +104.024 259.299 L +103.957 259.299 L +103.957 259.185 L +104.024 259.185 L +104.024 259.07 L +103.957 259.07 L +103.957 258.956 L +103.759 258.956 L +103.726 259.013 L +103.759 259.07 L +103.693 259.07 L +103.66 259.127 L +103.561 258.956 L +103.494 258.956 L +103.263 259.357 L +103.23 259.299 L +103.164 259.643 L +103.23 259.643 L +103.263 259.586 L +103.263 260.044 L +103.23 259.987 L +103.064 260.159 L +103.031 260.101 L +102.965 260.101 L +102.965 259.987 L +102.767 259.987 L +102.734 260.044 L +102.767 260.101 L +102.701 260.101 L +102.701 260.216 L +102.767 260.216 L +102.734 260.273 L +102.767 260.33 L +102.701 260.33 L +102.568 260.445 L +102.502 260.445 L +102.469 260.502 L +102.502 260.56 L +102.568 260.674 L +102.701 260.674 L +102.767 260.674 L +102.734 260.731 L +102.767 260.789 L +102.701 260.789 L +102.701 260.903 L +102.767 260.903 L +102.734 260.961 L +102.767 261.018 L +102.965 260.903 L +103.031 260.903 L +103.064 260.846 L +103.164 261.018 L +103.23 261.018 L +103.263 260.961 L +103.263 261.419 L +103.23 261.362 L +103.164 261.705 L +103.23 261.705 L +103.263 261.648 L +103.362 262.049 L +103.494 262.049 L +103.561 262.049 L +103.66 261.877 L +103.693 261.934 L +103.759 261.934 L +103.726 261.992 L +103.759 262.049 L +103.957 261.934 L +104.024 261.934 L +104.024 261.82 L +103.957 261.82 L +103.957 261.705 L +104.024 261.705 L +104.156 261.591 L +104.222 261.591 L +104.255 261.533 L +104.354 261.705 L +104.487 261.705 L +104.553 261.705 L +104.553 261.82 L +104.487 261.82 L +104.487 261.934 L +104.553 261.934 L +104.553 262.049 L +104.685 262.049 L +104.751 262.049 L +104.85 261.877 L +104.95 262.049 L +105.016 262.049 L +105.049 261.992 L +105.049 262.45 L +105.016 262.393 L +104.95 262.393 L +104.95 262.736 L +105.016 262.736 L +105.049 262.679 L +105.049 263.137 L +105.016 263.08 L +104.95 263.08 L +104.85 263.252 L +104.751 263.08 L +104.685 263.08 L +104.553 263.195 L +104.487 263.195 L +104.487 263.309 L +104.553 263.309 L +104.553 263.424 L +104.487 263.424 L +104.354 263.768 L +104.487 263.768 L +104.553 263.768 L +104.553 263.882 L +104.487 263.882 L +104.487 263.997 L +104.553 263.997 L +104.553 264.111 L +104.685 264.111 L +104.751 264.111 L +104.85 263.939 L +104.95 264.111 L +105.016 264.111 L +105.049 264.054 L +105.049 264.512 L +105.016 264.455 L +104.95 264.455 L +104.95 264.799 L +105.016 264.799 L +105.049 264.741 L +105.148 265.143 L +105.247 265.085 L +105.28 265.143 L +105.446 264.971 L +105.479 265.028 L +105.545 265.028 L +105.545 265.143 L +105.743 265.143 L +105.777 265.085 L +105.743 265.028 L +105.81 265.028 L +105.81 264.913 L +105.743 264.913 L +105.777 264.856 L +105.743 264.799 L +105.81 264.799 L +105.942 264.684 L +106.008 264.684 L +106.041 264.627 L +106.14 264.799 L +106.24 264.741 L +106.273 264.799 L +106.339 264.913 L +106.273 264.913 L +106.24 264.971 L +106.273 265.028 L +106.339 265.143 L +106.471 265.143 L +106.537 265.143 L +106.636 264.971 L +106.736 265.143 L +106.802 265.143 L +106.934 265.028 L +107 265.028 L +107 264.913 L +106.934 264.913 L +106.934 264.799 L +107 264.799 L +107.133 264.455 L +107 264.455 L +106.934 264.455 L +106.934 264.34 L +107 264.34 L +107 264.226 L +106.934 264.226 L +106.934 264.111 L +107 264.111 L +107.232 263.939 L +107.265 263.997 L +107.331 264.111 L +107.463 264.111 L +107.529 264.111 L +107.629 263.71 L +107.728 263.768 L +107.761 263.71 L +107.728 263.653 L +107.794 263.653 L +107.827 263.596 L +107.926 263.768 L +107.993 263.768 L +108.026 263.71 L +108.125 264.111 L +108.224 264.054 L +108.257 264.111 L +108.423 263.939 L +108.456 263.997 L +108.522 263.997 L +108.489 264.054 L +108.522 264.111 L +108.621 264.054 L +108.621 264.512 L +108.522 264.455 L +108.489 264.512 L +108.522 264.57 L +108.456 264.57 L +108.456 264.684 L +108.522 264.684 L +108.489 264.741 L +108.522 264.799 L +108.621 264.741 L +108.72 265.143 L +108.786 265.143 L +108.919 265.028 L +108.985 265.028 L +109.018 264.971 L +109.117 265.143 L +109.249 265.143 L +109.315 265.143 L +109.415 264.741 L +109.448 264.799 L +109.514 264.799 L +109.613 264.627 L +109.712 264.799 L +109.779 264.799 L +109.812 264.741 L +109.911 265.143 L +109.977 265.143 L +110.01 265.085 L +110.043 265.143 L +110.209 264.971 L +110.242 265.028 L +110.308 265.028 L +110.308 265.143 L +110.44 265.143 L +110.506 265.143 L +110.705 264.684 L +110.771 264.684 L +110.771 264.57 L +110.705 264.57 L +110.705 263.997 L +110.771 263.997 L +110.804 263.939 L +110.903 264.111 L +110.969 264.111 L +111.002 264.054 L +111.035 264.111 L +111.201 263.71 L +111.234 263.768 L +111.3 263.768 L +111.3 263.424 L +111.234 263.424 L +111.201 263.481 L +111.102 263.08 L +111.002 263.137 L +110.969 263.08 L +110.804 263.252 L +110.771 263.195 L +110.705 263.195 L +110.705 262.622 L +110.771 262.622 L +110.771 262.507 L +110.705 262.507 L +110.705 261.934 L +110.771 261.934 L +110.804 261.877 L +110.903 262.049 L +110.969 262.049 L +111.002 261.992 L +111.035 262.049 L +111.201 261.648 L +111.234 261.705 L +111.3 261.705 L +111.399 261.533 L +111.498 261.705 L +111.565 261.705 L +111.598 261.648 L +111.697 262.049 L +111.763 262.049 L +111.995 261.877 L +112.028 261.934 L +112.094 262.049 L +112.226 262.049 L +112.292 262.049 L +112.391 261.648 L +112.491 261.705 L +112.524 261.648 L +112.491 261.591 L +112.557 261.591 L +112.557 261.476 L +112.491 261.476 L +112.524 261.419 L +112.491 261.362 L +112.391 261.419 L +112.391 260.961 L +112.491 261.018 L +112.524 260.961 L +112.491 260.903 L +112.557 260.903 L +112.59 260.846 L +112.689 261.018 L +112.755 261.018 L +112.987 260.617 L +113.02 260.674 L +113.185 260.502 L +113.218 260.56 L +113.284 260.56 L +113.483 261.018 L +113.549 261.018 L +113.681 260.903 L +113.747 260.903 L +113.781 260.846 L +113.88 261.018 L +113.979 260.961 L +114.012 261.018 L +114.078 261.132 L +114.012 261.132 L +113.979 261.19 L +114.012 261.247 L +114.078 261.362 L +114.012 261.362 L +113.979 261.419 L +113.946 261.362 L +113.88 261.705 L +113.979 261.648 L +114.012 261.705 L +114.078 261.82 L +114.012 261.82 L +113.979 261.877 L +114.012 261.934 L +114.078 262.049 L +114.21 262.049 L +114.277 262.049 L +114.376 261.877 L +114.475 262.049 L +114.541 262.049 L +114.674 261.934 L +114.74 261.934 L +114.773 261.877 L +114.74 261.82 L +114.674 261.705 L +114.74 261.705 L +114.773 261.648 L +114.806 261.705 L +114.971 261.533 L +115.004 261.591 L +115.07 261.705 L +115.203 261.705 L +115.269 261.705 L +115.236 261.763 L +115.269 261.82 L +115.203 261.82 L +115.203 261.934 L +115.269 261.934 L +115.236 261.992 L +115.269 262.049 L +115.368 261.992 L +115.467 262.049 L +115.5 261.992 L +115.467 261.934 L +115.533 261.934 L +115.567 261.877 L +115.666 262.049 L +115.732 262.049 L +115.765 261.992 L +115.765 262.45 L +115.732 262.393 L +115.666 262.736 L +115.732 262.736 L +115.765 262.679 L +115.765 263.137 L +115.732 263.08 L +115.567 263.252 L +115.533 263.195 L +115.467 263.195 L +115.5 263.137 L +115.467 263.08 L +115.368 263.137 L +115.269 263.08 L +115.236 263.137 L +115.269 263.195 L +115.203 263.195 L +115.203 263.309 L +115.269 263.309 L +115.236 263.367 L +115.269 263.424 L +115.203 263.424 L +115.07 263.538 L +115.004 263.538 L +114.971 263.596 L +115.004 263.653 L +115.07 263.768 L +115.203 263.768 L +115.269 263.768 L +115.236 263.825 L +115.269 263.882 L +115.203 263.882 L +115.203 263.997 L +115.269 263.997 L +115.236 264.054 L +115.269 264.111 L +115.368 264.054 L +115.467 264.111 L +115.5 264.054 L +115.467 263.997 L +115.533 263.997 L +115.567 263.939 L +115.666 264.111 L +115.732 264.111 L +115.765 264.054 L +115.765 264.512 L +115.732 264.455 L +115.666 264.799 L +115.732 264.799 L +115.765 264.741 L +115.864 265.143 L +115.996 265.143 L +116.063 265.143 L +116.162 264.971 L +116.195 265.028 L +116.261 265.028 L +116.228 265.085 L +116.261 265.143 L +116.46 265.028 L +116.526 265.028 L +116.526 264.913 L +116.46 264.913 L +116.46 264.799 L +116.526 264.799 L +116.658 264.684 L +116.724 264.684 L +116.757 264.627 L +116.856 264.799 L +116.989 264.799 L +117.055 264.799 L +117.055 264.913 L +116.989 264.913 L +116.989 265.028 L +117.055 265.028 L +117.055 265.143 L +117.187 265.143 L +117.253 265.143 L +117.353 264.971 L +117.452 265.143 L +117.518 265.143 L +117.749 264.741 L +117.783 264.799 L +117.849 264.455 L +117.783 264.455 L +117.749 264.512 L +117.749 264.054 L +117.783 264.111 L +117.948 263.939 L +117.981 263.997 L +118.047 263.997 L +118.047 264.111 L +118.246 264.111 L +118.279 264.054 L +118.246 263.997 L +118.312 263.997 L +118.312 263.882 L +118.246 263.882 L +118.279 263.825 L +118.246 263.768 L +118.312 263.768 L +118.444 263.653 L +118.51 263.653 L +118.543 263.596 L +118.642 263.768 L +118.742 263.71 L +118.775 263.768 L +118.841 263.882 L +118.775 263.882 L +118.742 263.939 L +118.775 263.997 L +118.841 264.111 L +118.973 264.111 L +119.039 264.111 L +119.139 263.939 L +119.238 264.111 L +119.304 264.111 L +119.337 264.054 L +119.337 264.512 L +119.304 264.455 L +119.238 264.455 L +119.238 264.799 L +119.304 264.799 L +119.337 264.741 L +119.436 265.143 L +119.502 265.143 L +119.734 264.971 L +119.767 265.028 L +119.833 265.143 L +119.965 265.143 L +120.032 265.143 L +120.131 264.741 L +120.23 264.799 L +120.263 264.741 L +120.23 264.684 L +120.296 264.684 L +120.329 264.627 L +120.428 264.799 L +120.495 264.799 L +120.528 264.741 L +120.627 265.143 L +120.726 265.085 L +120.759 265.143 L +120.925 264.971 L +120.958 265.028 L +121.024 265.028 L +120.991 265.085 L +121.024 265.143 L +121.123 265.085 L +121.222 265.143 L +121.255 265.085 L +121.222 265.028 L +121.288 265.028 L +121.288 264.913 L +121.222 264.913 L +121.255 264.856 L +121.222 264.799 L +121.288 264.799 L +121.421 264.684 L +121.487 264.684 L +121.52 264.627 L +121.487 264.57 L +121.421 264.455 L +121.288 264.455 L +121.222 264.455 L +121.255 264.398 L +121.222 264.34 L +121.288 264.34 L +121.288 264.226 L +121.222 264.226 L +121.255 264.169 L +121.222 264.111 L +121.288 264.111 L +121.421 263.997 L +121.487 263.997 L +121.52 263.939 L +121.619 264.111 L +121.718 264.054 L +121.751 264.111 L +121.917 263.71 L +121.95 263.768 L +122.016 263.768 L +122.016 263.424 L +121.95 263.424 L +121.917 263.481 L +121.818 263.08 L +121.751 263.08 L +121.718 263.137 L +121.685 263.08 L +121.52 263.252 L +121.487 263.195 L +121.421 263.08 L +121.288 263.08 L +121.222 263.08 L +121.255 263.023 L +121.222 262.966 L +121.288 262.966 L +121.288 262.851 L +121.222 262.851 L +121.255 262.794 L +121.222 262.736 L +121.288 262.736 L +121.421 262.622 L +121.487 262.622 L +121.52 262.565 L +121.487 262.507 L +121.421 262.393 L +121.288 262.393 L +121.222 262.393 L +121.255 262.335 L +121.222 262.278 L +121.288 262.278 L +121.288 262.164 L +121.222 262.164 L +121.255 262.106 L +121.222 262.049 L +121.288 262.049 L +121.421 261.934 L +121.487 261.934 L +121.52 261.877 L +121.619 262.049 L +121.718 261.992 L +121.751 262.049 L +121.917 261.648 L +121.95 261.705 L +122.016 261.705 L +122.115 261.533 L +122.214 261.705 L +122.281 261.705 L +122.314 261.648 L +122.413 262.049 L +122.479 262.049 L +122.512 261.992 L +122.545 262.049 L +122.711 261.877 L +122.744 261.934 L +122.81 261.934 L +122.81 262.049 L +122.942 262.049 L +123.008 262.049 L +123.207 261.591 L +123.273 261.591 L +123.273 261.476 L +123.207 261.476 L +123.207 260.903 L +123.273 260.903 L +123.306 260.846 L +123.405 261.018 L +123.471 261.018 L +123.504 260.961 L +123.537 261.018 L +123.703 260.617 L +123.736 260.674 L +123.802 260.674 L +123.802 260.33 L +123.736 260.33 L +123.703 260.388 L +123.604 259.987 L +123.504 260.044 L +123.471 259.987 L +123.306 260.159 L +123.273 260.101 L +123.207 260.101 L +123.207 259.528 L +123.273 259.528 L +123.273 259.414 L +123.207 259.414 L +123.008 258.956 L +122.942 258.956 L +122.81 259.07 L +122.744 259.07 L +122.711 259.127 L +122.611 258.956 L +122.512 259.013 L +122.479 258.956 L +122.314 259.357 L +122.281 259.299 L +122.214 259.299 L +122.115 259.471 L +122.016 259.299 L +121.95 259.299 L +121.917 259.357 L +121.818 258.956 L +121.751 258.956 L +121.718 259.013 L +121.685 258.956 L +121.52 259.127 L +121.487 259.07 L +121.421 258.956 L +121.288 258.956 L +121.222 258.956 L +121.255 258.898 L +121.222 258.841 L +121.288 258.841 L +121.288 258.726 L +121.222 258.726 L +121.255 258.669 L +121.222 258.612 L +121.288 258.612 L +121.421 258.497 L +121.487 258.497 L +121.52 258.44 L +121.487 258.383 L +121.421 258.268 L +121.288 258.268 L +121.222 258.268 L +121.255 258.211 L +121.222 258.154 L +121.288 258.154 L +121.288 258.039 L +121.222 258.039 L +121.255 257.982 L +121.222 257.924 L +121.288 257.924 L +121.421 257.81 L +121.487 257.81 L +121.52 257.753 L +121.619 257.924 L +121.718 257.867 L +121.751 257.924 L +121.917 257.523 L +121.95 257.581 L +122.016 257.581 L +122.016 257.237 L +121.95 257.237 L +121.917 257.294 L +121.818 256.893 L +121.751 256.893 L +121.718 256.951 L +121.685 256.893 L +121.52 257.065 L +121.487 257.008 L +121.421 256.893 L +121.288 256.893 L +121.222 256.893 L +121.255 256.836 L +121.222 256.779 L +121.288 256.779 L +121.288 256.664 L +121.222 256.664 L +121.255 256.607 L +121.222 256.55 L +121.288 256.55 L +121.421 256.435 L +121.487 256.435 L +121.52 256.378 L +121.487 256.32 L +121.421 256.206 L +121.288 256.206 L +121.222 256.206 L +121.255 256.149 L +121.222 256.091 L +121.288 256.091 L +121.288 255.977 L +121.222 255.977 L +121.255 255.919 L +121.222 255.862 L +121.288 255.862 L +121.421 255.748 L +121.487 255.748 L +121.52 255.69 L +121.619 255.862 L +121.718 255.805 L +121.751 255.862 L +121.917 255.461 L +121.95 255.518 L +122.016 255.518 L +122.115 255.347 L +122.214 255.518 L +122.281 255.518 L +122.314 255.461 L +122.413 255.862 L +122.479 255.862 L +122.512 255.805 L +122.545 255.862 L +122.711 255.69 L +122.744 255.748 L +122.81 255.748 L +122.81 255.862 L +122.942 255.862 L +123.008 255.862 L +123.207 255.404 L +123.273 255.404 L +123.273 255.289 L +123.207 255.289 L +123.207 254.716 L +123.273 254.716 L +123.306 254.659 L +123.405 254.831 L +123.471 254.831 L +123.504 254.774 L +123.537 254.831 L +123.703 254.43 L +123.736 254.487 L +123.802 254.487 L +123.901 254.315 L +123.934 254.373 L +124 254.373 L +123.967 254.43 L +124 254.487 L +124.1 254.43 L +124.199 254.831 L +124.265 254.831 L +124.497 254.659 L +124.53 254.716 L +124.596 254.831 L +124.728 254.831 L +124.794 254.831 L +124.794 254.946 L +124.728 254.946 L +124.728 255.06 L +124.794 255.06 L +124.794 255.175 L +124.728 255.175 L +124.596 255.289 L +124.53 255.289 L +124.497 255.347 L +124.53 255.404 L +124.596 255.518 L +124.728 255.518 L +124.794 255.518 L +124.794 255.633 L +124.728 255.633 L +124.728 255.748 L +124.794 255.748 L +124.794 255.862 L +124.993 255.862 L +125.026 255.805 L +124.993 255.748 L +125.059 255.748 L +125.092 255.69 L +125.191 255.862 L +125.257 255.862 L +125.489 255.461 L +125.522 255.518 L +125.687 255.347 L +125.72 255.404 L +125.786 255.404 L +125.985 255.862 L +126.051 255.862 L +126.183 255.748 L +126.25 255.748 L +126.283 255.69 L +126.382 255.862 L +126.481 255.805 L +126.514 255.862 L +126.679 255.461 L +126.713 255.518 L +126.779 255.518 L +126.779 255.175 L +126.713 255.175 L +126.679 255.232 L +126.679 254.774 L +126.713 254.831 L +126.779 254.831 L +126.878 254.659 L +126.977 254.831 L +127.043 254.831 L +127.176 254.716 L +127.242 254.716 L +127.275 254.659 L +127.242 254.602 L +127.176 254.487 L +127.242 254.487 L +127.275 254.43 L +127.308 254.487 L +127.374 254.144 L +127.275 254.201 L +127.242 254.144 L +127.176 254.029 L +127.242 254.029 L +127.275 253.972 L +127.242 253.914 L +127.176 253.8 L +127.043 253.8 L +126.977 253.8 L +126.878 253.972 L +126.779 253.8 L +126.713 253.8 L +126.679 253.857 L +126.679 253.399 L +126.713 253.456 L +126.779 253.456 L +126.779 253.112 L +126.713 253.112 L +126.679 253.17 L +126.679 252.711 L +126.713 252.769 L +126.779 252.769 L +126.878 252.597 L +126.977 252.769 L +127.043 252.769 L +127.176 252.654 L +127.242 252.654 L +127.275 252.597 L +127.242 252.54 L +127.176 252.425 L +127.242 252.425 L +127.275 252.368 L +127.308 252.425 L +127.473 252.253 L +127.506 252.31 L +127.572 252.425 L +127.705 252.425 L +127.771 252.425 L +127.738 252.482 L +127.771 252.54 L +127.705 252.54 L +127.705 252.654 L +127.771 252.654 L +127.738 252.711 L +127.771 252.769 L +127.87 252.711 L +127.969 252.769 L +128.002 252.711 L +127.969 252.654 L +128.036 252.654 L +128.069 252.597 L +128.168 252.769 L +128.234 252.769 L +128.267 252.711 L +128.3 252.769 L +128.465 252.368 L +128.499 252.425 L +128.565 252.425 L +128.565 252.081 L +128.499 252.081 L +128.465 252.139 L +128.465 251.68 L +128.499 251.738 L +128.565 251.738 L +128.664 251.566 L +128.697 251.623 L +128.763 251.623 L +128.73 251.68 L +128.763 251.738 L +128.962 251.623 L +129.028 251.623 L +129.028 251.508 L +128.962 251.508 L +128.962 251.394 L +129.028 251.394 L +129.16 251.279 L +129.226 251.279 L +129.259 251.222 L +129.226 251.165 L +129.16 251.05 L +129.028 251.05 L +128.962 251.05 L +128.962 250.936 L +129.028 250.936 L +129.028 250.821 L +128.962 250.821 L +128.962 250.706 L +128.763 250.706 L +128.73 250.764 L +128.763 250.821 L +128.697 250.821 L +128.664 250.878 L +128.565 250.706 L +128.499 250.706 L +128.465 250.764 L +128.465 250.305 L +128.499 250.363 L +128.565 250.363 L +128.565 250.019 L +128.499 250.019 L +128.465 250.076 L +128.366 249.675 L +128.267 249.733 L +128.234 249.675 L +128.069 249.847 L +128.036 249.79 L +127.969 249.79 L +128.002 249.733 L +127.969 249.675 L +127.87 249.733 L +127.771 249.675 L +127.738 249.733 L +127.771 249.79 L +127.705 249.79 L +127.705 249.904 L +127.771 249.904 L +127.738 249.962 L +127.771 250.019 L +127.705 250.019 L +127.572 250.134 L +127.506 250.134 L +127.473 250.191 L +127.374 250.019 L +127.275 250.076 L +127.242 250.019 L +127.176 249.904 L +127.242 249.904 L +127.275 249.847 L +127.242 249.79 L +127.176 249.675 L +127.043 249.675 L +126.977 249.675 L +126.878 249.847 L +126.779 249.675 L +126.713 249.675 L +126.679 249.733 L +126.679 249.274 L +126.713 249.331 L +126.779 249.331 L +126.779 248.988 L +126.713 248.988 L +126.679 249.045 L +126.679 248.587 L +126.713 248.644 L +126.779 248.644 L +126.878 248.472 L +126.977 248.644 L +127.043 248.644 L +127.176 248.529 L +127.242 248.529 L +127.275 248.472 L +127.242 248.415 L +127.176 248.3 L +127.242 248.3 L +127.275 248.243 L +127.308 248.3 L +127.374 247.957 L +127.275 248.014 L +127.242 247.957 L +127.176 247.842 L +127.242 247.842 L +127.275 247.785 L +127.242 247.727 L +127.176 247.613 L +127.043 247.613 L +126.977 247.613 L +126.878 247.785 L +126.779 247.613 L +126.713 247.613 L +126.679 247.67 L +126.679 247.212 L +126.713 247.269 L +126.779 247.269 L +126.779 246.925 L +126.713 246.925 L +126.679 246.983 L +126.58 246.582 L +126.514 246.582 L +126.481 246.639 L +126.448 246.582 L +126.283 246.754 L +126.25 246.696 L +126.183 246.582 L +126.051 246.582 L +125.985 246.582 L +125.786 247.04 L +125.72 247.04 L +125.687 247.097 L +125.588 246.925 L +125.522 246.925 L +125.489 246.983 L +125.39 246.582 L +125.257 246.582 L +125.191 246.582 L +125.092 246.754 L +125.059 246.696 L +124.993 246.696 L +125.026 246.639 L +124.993 246.582 L +124.794 246.696 L +124.728 246.696 L +124.728 246.811 L +124.794 246.811 L +124.794 246.925 L +124.728 246.925 L +124.596 247.04 L +124.53 247.04 L +124.497 247.097 L +124.53 247.155 L +124.596 247.269 L +124.728 247.269 L +124.794 247.269 L +124.794 247.384 L +124.728 247.384 L +124.728 247.498 L +124.794 247.498 L +124.794 247.613 L +124.728 247.613 L +124.596 247.727 L +124.53 247.727 L +124.497 247.785 L +124.397 247.613 L +124.265 247.613 L +124.199 247.613 L +124.1 248.014 L +124 247.957 L +123.967 248.014 L +124 248.071 L +123.934 248.071 L +123.901 248.128 L +123.802 247.957 L +123.736 247.957 L +123.703 248.014 L +123.604 247.613 L +123.504 247.67 L +123.471 247.613 L +123.306 247.785 L +123.273 247.727 L +123.207 247.727 L +123.207 247.155 L +123.273 247.155 L +123.273 247.04 L +123.207 247.04 L +123.008 246.582 L +122.942 246.582 L +122.81 246.696 L +122.744 246.696 L +122.711 246.754 L +122.611 246.582 L +122.512 246.639 L +122.479 246.582 L +122.314 246.983 L +122.281 246.925 L +122.214 246.925 L +122.115 247.097 L +122.016 246.925 L +121.95 246.925 L +121.917 246.983 L +121.818 246.582 L +121.751 246.582 L +121.718 246.639 L +121.685 246.582 L +121.52 246.754 L +121.487 246.696 L +121.421 246.582 L +121.288 246.582 L +121.222 246.582 L +121.255 246.524 L +121.222 246.467 L +121.288 246.467 L +121.288 246.353 L +121.222 246.353 L +121.255 246.295 L +121.222 246.238 L +121.288 246.238 L +121.421 246.123 L +121.487 246.123 L +121.52 246.066 L +121.487 246.009 L +121.421 245.894 L +121.288 245.894 L +121.222 245.894 L +121.255 245.837 L +121.222 245.78 L +121.288 245.78 L +121.288 245.665 L +121.222 245.665 L +121.255 245.608 L +121.222 245.551 L +121.288 245.551 L +121.421 245.436 L +121.487 245.436 L +121.52 245.379 L +121.619 245.551 L +121.718 245.493 L +121.751 245.551 L +121.917 245.15 L +121.95 245.207 L +122.016 245.207 L +122.016 244.863 L +121.95 244.863 L +121.917 244.92 L +121.818 244.519 L +121.751 244.519 L +121.718 244.577 L +121.685 244.519 L +121.52 244.691 L +121.487 244.634 L +121.421 244.519 L +121.288 244.519 L +121.222 244.519 L +121.255 244.462 L +121.222 244.405 L +121.288 244.405 L +121.288 244.29 L +121.222 244.29 L +121.255 244.233 L +121.222 244.176 L +121.288 244.176 L +121.421 244.061 L +121.487 244.061 L +121.52 244.004 L +121.487 243.947 L +121.421 243.832 L +121.288 243.832 L +121.222 243.832 L +121.255 243.775 L +121.222 243.717 L +121.288 243.717 L +121.288 243.603 L +121.222 243.603 L +121.255 243.546 L +121.222 243.488 L +121.288 243.488 L +121.421 243.374 L +121.487 243.374 L +121.52 243.316 L +121.619 243.488 L +121.718 243.431 L +121.751 243.488 L +121.917 243.087 L +121.95 243.145 L +122.016 243.145 L +122.115 242.973 L +122.214 243.145 L +122.281 243.145 L +122.314 243.087 L +122.413 243.488 L +122.479 243.488 L +122.512 243.431 L +122.545 243.488 L +122.711 243.316 L +122.744 243.374 L +122.81 243.374 L +122.81 243.488 L +122.942 243.488 L +123.008 243.488 L +123.207 243.03 L +123.273 243.03 L +123.273 242.915 L +123.207 242.915 L +123.207 242.343 L +123.273 242.343 L +123.306 242.285 L +123.405 242.457 L +123.471 242.457 L +123.504 242.4 L +123.537 242.457 L +123.703 242.056 L +123.736 242.113 L +123.802 242.113 L +123.802 241.77 L +123.736 241.77 L +123.703 241.827 L +123.604 241.426 L +123.504 241.483 L +123.471 241.426 L +123.306 241.598 L +123.273 241.541 L +123.207 241.541 L +123.207 240.968 L +123.273 240.968 L +123.273 240.853 L +123.207 240.853 L +123.008 240.395 L +122.942 240.395 L +122.81 240.509 L +122.744 240.509 L +122.711 240.567 L +122.611 240.395 L +122.512 240.452 L +122.479 240.395 L +122.314 240.796 L +122.281 240.739 L +122.214 240.739 L +122.115 240.91 L +122.016 240.739 L +121.95 240.739 L +121.917 240.796 L +121.818 240.395 L +121.751 240.395 L +121.718 240.452 L +121.685 240.395 L +121.52 240.567 L +121.487 240.509 L +121.421 240.395 L +121.288 240.395 L +121.222 240.395 L +121.255 240.338 L +121.222 240.28 L +121.288 240.28 L +121.288 240.166 L +121.222 240.166 L +121.255 240.108 L +121.222 240.051 L +121.288 240.051 L +121.421 239.937 L +121.487 239.937 L +121.52 239.879 L +121.487 239.822 L +121.421 239.707 L +121.288 239.707 L +121.222 239.707 L +121.255 239.65 L +121.222 239.593 L +121.288 239.593 L +121.288 239.478 L +121.222 239.478 L +121.255 239.421 L +121.222 239.364 L +121.288 239.364 L +121.421 239.249 L +121.487 239.249 L +121.52 239.192 L +121.619 239.364 L +121.718 239.306 L +121.751 239.364 L +121.917 238.963 L +121.95 239.02 L +122.016 239.02 L +122.016 238.676 L +121.95 238.676 L +121.917 238.734 L +121.818 238.333 L +121.751 238.333 L +121.718 238.39 L +121.685 238.333 L +121.52 238.504 L +121.487 238.447 L +121.421 238.333 L +121.288 238.333 L +121.222 238.333 L +121.255 238.275 L +121.222 238.218 L +121.288 238.218 L +121.288 238.103 L +121.222 238.103 L +121.255 238.046 L +121.222 237.989 L +121.288 237.989 L +121.421 237.874 L +121.487 237.874 L +121.52 237.817 L +121.487 237.76 L +121.421 237.645 L +121.288 237.645 L +121.222 237.645 L +121.255 237.588 L +121.222 237.531 L +121.288 237.531 L +121.288 237.416 L +121.222 237.416 L +121.255 237.359 L +121.222 237.301 L +121.288 237.301 L +121.421 237.187 L +121.487 237.187 L +121.52 237.13 L +121.619 237.301 L +121.718 237.244 L +121.751 237.301 L +121.917 236.9 L +121.95 236.958 L +122.016 236.958 L +122.115 236.786 L +122.214 236.958 L +122.281 236.958 L +122.314 236.9 L +122.413 237.301 L +122.479 237.301 L +122.512 237.244 L +122.545 237.301 L +122.711 237.13 L +122.744 237.187 L +122.81 237.187 L +122.81 237.301 L +122.942 237.301 L +123.008 237.301 L +123.207 236.843 L +123.273 236.843 L +123.273 236.729 L +123.207 236.729 L +123.207 236.156 L +123.273 236.156 L +123.306 236.098 L +123.405 236.27 L +123.471 236.27 L +123.504 236.213 L +123.537 236.27 L +123.703 235.869 L +123.736 235.927 L +123.802 235.927 L +123.901 235.755 L +123.934 235.812 L +124 235.812 L +123.967 235.869 L +124 235.927 L +124.1 235.869 L +124.199 236.27 L +124.265 236.27 L +124.497 236.098 L +124.53 236.156 L +124.596 236.27 L +124.728 236.27 L +124.794 236.27 L +124.794 236.385 L +124.728 236.385 L +124.728 236.499 L +124.794 236.499 L +124.794 236.614 L +124.728 236.614 L +124.596 236.729 L +124.53 236.729 L +124.497 236.786 L +124.53 236.843 L +124.596 236.958 L +124.728 236.958 L +124.794 236.958 L +124.794 237.072 L +124.728 237.072 L +124.728 237.187 L +124.794 237.187 L +124.794 237.301 L +124.993 237.301 L +125.026 237.244 L +124.993 237.187 L +125.059 237.187 L +125.092 237.13 L +125.191 237.301 L +125.257 237.301 L +125.489 236.9 L +125.522 236.958 L +125.687 236.786 L +125.72 236.843 L +125.786 236.843 L +125.985 237.301 L +126.051 237.301 L +126.183 237.187 L +126.25 237.187 L +126.283 237.13 L +126.382 237.301 L +126.481 237.244 L +126.514 237.301 L +126.679 236.9 L +126.713 236.958 L +126.779 236.958 L +126.779 236.614 L +126.713 236.614 L +126.679 236.671 L +126.679 236.213 L +126.713 236.27 L +126.779 236.27 L +126.878 236.098 L +126.977 236.27 L +127.043 236.27 L +127.176 236.156 L +127.242 236.156 L +127.275 236.098 L +127.242 236.041 L +127.176 235.927 L +127.242 235.927 L +127.275 235.869 L +127.308 235.927 L +127.374 235.583 L +127.275 235.64 L +127.242 235.583 L +127.176 235.468 L +127.242 235.468 L +127.275 235.411 L +127.242 235.354 L +127.176 235.239 L +127.043 235.239 L +126.977 235.239 L +126.878 235.411 L +126.779 235.239 L +126.713 235.239 L +126.679 235.296 L +126.679 234.838 L +126.713 234.895 L +126.779 234.895 L +126.779 234.552 L +126.713 234.552 L +126.679 234.609 L +126.679 234.151 L +126.713 234.208 L +126.779 234.208 L +126.878 234.036 L +126.977 234.208 L +127.043 234.208 L +127.176 234.093 L +127.242 234.093 L +127.275 234.036 L +127.242 233.979 L +127.176 233.864 L +127.242 233.864 L +127.275 233.807 L +127.308 233.864 L +127.473 233.692 L +127.506 233.75 L +127.572 233.864 L +127.705 233.864 L +127.771 233.864 L +127.738 233.922 L +127.771 233.979 L +127.705 233.979 L +127.705 234.093 L +127.771 234.093 L +127.738 234.151 L +127.771 234.208 L +127.87 234.151 L +127.969 234.208 L +128.002 234.151 L +127.969 234.093 L +128.036 234.093 L +128.069 234.036 L +128.168 234.208 L +128.234 234.208 L +128.267 234.151 L +128.3 234.208 L +128.465 233.807 L +128.499 233.864 L +128.565 233.864 L +128.565 233.52 L +128.499 233.52 L +128.465 233.578 L +128.465 233.119 L +128.499 233.177 L +128.565 233.177 L +128.664 233.005 L +128.697 233.062 L +128.763 233.062 L +128.73 233.119 L +128.763 233.177 L +128.962 233.062 L +129.028 233.062 L +129.028 232.948 L +128.962 232.948 L +128.962 232.833 L +129.028 232.833 L +129.16 232.718 L +129.226 232.718 L +129.259 232.661 L +129.358 232.833 L +129.491 232.833 L +129.557 232.833 L +129.557 232.948 L +129.491 232.948 L +129.491 233.062 L +129.557 233.062 L +129.557 233.177 L +129.689 233.177 L +129.755 233.177 L +129.855 233.005 L +129.954 233.177 L +130.02 233.177 L +130.053 233.119 L +130.053 233.578 L +130.02 233.52 L +129.954 233.52 L +129.954 233.864 L +130.02 233.864 L +130.053 233.807 L +130.152 234.208 L +130.218 234.208 L +130.251 234.151 L +130.285 234.208 L +130.45 234.036 L +130.483 234.093 L +130.549 234.093 L +130.549 234.208 L +130.748 234.208 L +130.781 234.151 L +130.748 234.093 L +130.814 234.093 L +130.814 233.979 L +130.748 233.979 L +130.781 233.922 L +130.748 233.864 L +130.814 233.864 L +130.946 233.75 L +131.012 233.75 L +131.045 233.692 L +131.144 233.864 L +131.244 233.807 L +131.277 233.864 L +131.343 233.979 L +131.277 233.979 L +131.244 234.036 L +131.277 234.093 L +131.343 234.208 L +131.475 234.208 L +131.541 234.208 L +131.641 234.036 L +131.74 234.208 L +131.806 234.208 L +131.839 234.151 L +131.839 234.609 L +131.806 234.552 L +131.74 234.552 L +131.74 234.895 L +131.806 234.895 L +131.839 234.838 L +131.839 235.296 L +131.806 235.239 L +131.74 235.239 L +131.641 235.411 L +131.541 235.239 L +131.475 235.239 L +131.343 235.354 L +131.277 235.354 L +131.244 235.411 L +131.277 235.468 L +131.343 235.583 L +131.277 235.583 L +131.244 235.64 L +131.211 235.583 L +131.144 235.927 L +131.244 235.869 L +131.277 235.927 L +131.343 236.041 L +131.277 236.041 L +131.244 236.098 L +131.277 236.156 L +131.343 236.27 L +131.475 236.27 L +131.541 236.27 L +131.641 236.098 L +131.74 236.27 L +131.806 236.27 L +131.839 236.213 L +131.839 236.671 L +131.806 236.614 L +131.74 236.614 L +131.74 236.958 L +131.806 236.958 L +131.839 236.9 L +131.938 237.301 L +132.004 237.301 L +132.236 237.13 L +132.269 237.187 L +132.335 237.301 L +132.467 237.301 L +132.534 237.301 L +132.633 236.9 L +132.732 236.958 L +132.765 236.9 L +132.732 236.843 L +132.798 236.843 L +132.831 236.786 L +132.93 236.958 L +132.997 236.958 L +133.03 236.9 L +133.129 237.301 L +133.228 237.244 L +133.261 237.301 L +133.427 237.13 L +133.46 237.187 L +133.526 237.187 L +133.493 237.244 L +133.526 237.301 L +133.625 237.244 L +133.724 237.301 L +133.757 237.244 L +133.724 237.187 L +133.79 237.187 L +133.79 237.072 L +133.724 237.072 L +133.757 237.015 L +133.724 236.958 L +133.79 236.958 L +133.923 236.843 L +133.989 236.843 L +134.022 236.786 L +133.989 236.729 L +133.923 236.614 L +133.79 236.614 L +133.724 236.614 L +133.757 236.557 L +133.724 236.499 L +133.79 236.499 L +133.79 236.385 L +133.724 236.385 L +133.757 236.328 L +133.724 236.27 L +133.79 236.27 L +133.923 236.156 L +133.989 236.156 L +134.022 236.098 L +134.121 236.27 L +134.22 236.213 L +134.253 236.27 L +134.419 235.869 L +134.452 235.927 L +134.518 235.927 L +134.617 235.755 L +134.717 235.927 L +134.783 235.927 L +134.816 235.869 L +134.915 236.27 L +134.981 236.27 L +135.014 236.213 L +135.047 236.27 L +135.213 236.098 L +135.246 236.156 L +135.312 236.156 L +135.312 236.27 L +135.444 236.27 L +135.51 236.27 L +135.477 236.328 L +135.51 236.385 L +135.444 236.385 L +135.444 236.499 L +135.51 236.499 L +135.477 236.557 L +135.51 236.614 L +135.444 236.614 L +135.312 236.729 L +135.246 236.729 L +135.246 236.843 L +135.312 236.843 L +135.312 236.958 L +135.444 236.958 L +135.51 236.958 L +135.477 237.015 L +135.51 237.072 L +135.444 237.072 L +135.444 237.187 L +135.51 237.187 L +135.477 237.244 L +135.51 237.301 L +135.709 237.187 L +135.775 237.187 L +135.808 237.13 L +135.907 237.301 L +135.973 237.301 L +136.006 237.244 L +136.039 237.301 L +136.205 236.9 L +136.238 236.958 L +136.304 236.958 L +136.403 236.786 L +136.436 236.843 L +136.503 236.843 L +136.469 236.9 L +136.503 236.958 L +136.602 236.9 L +136.701 237.301 L +136.767 237.301 L +136.999 237.13 L +137.032 237.187 L +137.098 237.301 L +137.23 237.301 L +137.296 237.301 L +137.396 236.9 L +137.495 236.958 L +137.528 236.9 L +137.495 236.843 L +137.561 236.843 L +137.561 236.729 L +137.495 236.729 L +137.528 236.671 L +137.495 236.614 L +137.396 236.671 L +137.396 236.213 L +137.495 236.27 L +137.528 236.213 L +137.495 236.156 L +137.561 236.156 L +137.594 236.098 L +137.693 236.27 L +137.759 236.27 L +137.991 235.869 L +138.024 235.927 L +138.09 235.583 L +138.024 235.583 L +137.991 235.64 L +137.892 235.239 L +137.759 235.239 L +137.693 235.239 L +137.594 235.411 L +137.561 235.354 L +137.495 235.354 L +137.528 235.296 L +137.495 235.239 L +137.396 235.296 L +137.396 234.838 L +137.495 234.895 L +137.528 234.838 L +137.495 234.781 L +137.561 234.781 L +137.561 234.666 L +137.495 234.666 L +137.528 234.609 L +137.495 234.552 L +137.396 234.609 L +137.396 234.151 L +137.495 234.208 L +137.528 234.151 L +137.495 234.093 L +137.561 234.093 L +137.594 234.036 L +137.693 234.208 L +137.759 234.208 L +137.991 233.807 L +138.024 233.864 L +138.189 233.692 L +138.222 233.75 L +138.289 233.75 L +138.487 234.208 L +138.553 234.208 L +138.685 234.093 L +138.752 234.093 L +138.785 234.036 L +138.884 234.208 L +138.983 234.151 L +139.016 234.208 L +139.182 233.807 L +139.215 233.864 L +139.281 233.864 L +139.281 233.52 L +139.215 233.52 L +139.182 233.578 L +139.182 233.119 L +139.215 233.177 L +139.281 233.177 L +139.38 233.005 L +139.479 233.177 L +139.545 233.177 L +139.678 233.062 L +139.744 233.062 L +139.777 233.005 L +139.744 232.948 L +139.678 232.833 L +139.744 232.833 L +139.777 232.776 L +139.81 232.833 L +139.876 232.489 L +139.777 232.547 L +139.744 232.489 L +139.678 232.375 L +139.744 232.375 L +139.777 232.317 L +139.744 232.26 L +139.678 232.146 L +139.545 232.146 L +139.479 232.146 L +139.38 232.317 L +139.281 232.146 L +139.215 232.146 L +139.182 232.203 L +139.182 231.745 L +139.215 231.802 L +139.281 231.802 L +139.281 231.458 L +139.215 231.458 L +139.182 231.515 L +139.082 231.114 L +139.016 231.114 L +138.983 231.172 L +138.95 231.114 L +138.785 231.286 L +138.752 231.229 L +138.685 231.229 L +138.685 231.114 L +138.553 231.114 L +138.487 231.114 L +138.289 231.573 L +138.222 231.573 L +138.189 231.63 L +138.09 231.458 L +138.024 231.458 L +137.991 231.515 L +137.892 231.114 L +137.759 231.114 L +137.693 231.114 L +137.594 231.286 L +137.561 231.229 L +137.495 231.229 L +137.528 231.172 L +137.495 231.114 L +137.396 231.172 L +137.396 230.713 L +137.495 230.771 L +137.528 230.713 L +137.495 230.656 L +137.561 230.656 L +137.561 230.542 L +137.495 230.542 L +137.528 230.484 L +137.495 230.427 L +137.396 230.484 L +137.396 230.026 L +137.495 230.083 L +137.528 230.026 L +137.495 229.969 L +137.561 229.969 L +137.594 229.911 L +137.693 230.083 L +137.759 230.083 L +137.991 229.682 L +138.024 229.74 L +138.09 229.396 L +138.024 229.396 L +137.991 229.453 L +137.892 229.052 L +137.759 229.052 L +137.693 229.052 L +137.594 229.224 L +137.561 229.167 L +137.495 229.167 L +137.528 229.109 L +137.495 229.052 L +137.396 229.109 L +137.396 228.651 L +137.495 228.708 L +137.528 228.651 L +137.495 228.594 L +137.561 228.594 L +137.561 228.479 L +137.495 228.479 L +137.528 228.422 L +137.495 228.365 L +137.396 228.422 L +137.396 227.964 L +137.495 228.021 L +137.528 227.964 L +137.495 227.906 L +137.561 227.906 L +137.594 227.849 L +137.693 228.021 L +137.759 228.021 L +137.991 227.62 L +138.024 227.677 L +138.189 227.505 L +138.222 227.563 L +138.289 227.563 L +138.487 228.021 L +138.553 228.021 L +138.685 227.906 L +138.752 227.906 L +138.785 227.849 L +138.884 228.021 L +138.983 227.964 L +139.016 228.021 L +139.182 227.62 L +139.215 227.677 L +139.281 227.677 L +139.281 227.334 L +139.215 227.334 L +139.182 227.391 L +139.182 226.933 L +139.215 226.99 L +139.281 226.99 L +139.38 226.818 L +139.479 226.99 L +139.545 226.99 L +139.678 226.875 L +139.744 226.875 L +139.777 226.818 L +139.744 226.761 L +139.678 226.646 L +139.744 226.646 L +139.777 226.589 L +139.81 226.646 L +139.975 226.474 L +140.008 226.532 L +140.075 226.646 L +140.207 226.646 L +140.273 226.646 L +140.24 226.703 L +140.273 226.761 L +140.207 226.761 L +140.207 226.875 L +140.273 226.875 L +140.24 226.933 L +140.273 226.99 L +140.372 226.933 L +140.471 226.99 L +140.505 226.933 L +140.471 226.875 L +140.538 226.875 L +140.571 226.818 L +140.67 226.99 L +140.736 226.99 L +140.769 226.933 L +140.769 227.391 L +140.736 227.334 L +140.67 227.677 L +140.736 227.677 L +140.769 227.62 L +140.868 228.021 L +140.968 227.964 L +141.001 228.021 L +141.166 227.849 L +141.199 227.906 L +141.265 227.906 L +141.232 227.964 L +141.265 228.021 L +141.464 227.906 L +141.53 227.906 L +141.53 227.792 L +141.464 227.792 L +141.464 227.677 L +141.53 227.677 L +141.728 227.563 L +141.761 227.505 L +141.861 227.677 L +141.993 227.677 L +142.059 227.677 L +142.059 227.792 L +141.993 227.792 L +141.993 227.906 L +142.059 227.906 L +142.059 228.021 L +142.191 228.021 L +142.257 228.021 L +142.357 227.849 L +142.456 228.021 L +142.522 228.021 L +142.654 227.906 L +142.72 227.906 L +142.754 227.849 L +142.72 227.792 L +142.654 227.677 L +142.72 227.677 L +142.754 227.62 L +142.787 227.677 L +142.853 227.334 L +142.754 227.391 L +142.72 227.334 L +142.654 227.219 L +142.72 227.219 L +142.754 227.162 L +142.72 227.104 L +142.654 226.99 L +142.72 226.99 L +142.754 226.933 L +142.787 226.99 L +142.952 226.818 L +142.985 226.875 L +143.051 226.875 L +143.051 226.99 L +143.25 226.99 L +143.283 226.933 L +143.25 226.875 L +143.316 226.875 L +143.316 226.761 L +143.25 226.761 L +143.283 226.703 L +143.25 226.646 L +143.316 226.646 L +143.448 226.532 L +143.514 226.532 L +143.514 226.417 L +143.448 226.417 L +143.448 226.302 L +143.316 226.302 L +143.25 226.302 L +143.283 226.245 L +143.25 226.188 L +143.316 226.188 L +143.316 226.073 L +143.25 226.073 L +143.283 226.016 L +143.25 225.959 L +143.051 226.073 L +142.985 226.073 L +142.952 226.131 L +142.853 225.959 L +142.754 226.016 L +142.72 225.959 L +142.654 225.844 L +142.72 225.844 L +142.754 225.787 L +142.72 225.73 L +142.654 225.615 L +142.72 225.615 L +142.754 225.558 L +142.787 225.615 L +142.853 225.271 L +142.754 225.329 L +142.72 225.271 L +142.654 225.157 L +142.72 225.157 L +142.754 225.099 L +142.72 225.042 L +142.654 224.928 L +142.72 224.928 L +142.754 224.87 L +142.787 224.928 L +142.952 224.756 L +142.985 224.813 L +143.051 224.813 L +143.051 224.928 L +143.25 224.928 L +143.283 224.87 L +143.25 224.813 L +143.316 224.813 L +143.316 224.698 L +143.25 224.698 L +143.283 224.641 L +143.25 224.584 L +143.316 224.584 L +143.448 224.469 L +143.514 224.469 L +143.547 224.412 L +143.647 224.584 L +143.746 224.527 L +143.779 224.584 L +143.845 224.698 L +143.779 224.698 L +143.746 224.756 L +143.779 224.813 L +143.845 224.928 L +143.977 224.928 L +144.043 224.928 L +144.143 224.756 L +144.242 224.928 L +144.308 224.928 L +144.44 224.813 L +144.506 224.813 L +144.506 224.698 L +144.44 224.698 L +144.44 224.584 L +144.506 224.584 L +144.639 224.24 L +144.506 224.24 L +144.44 224.24 L +144.44 224.126 L +144.506 224.126 L +144.506 224.011 L +144.44 224.011 L +144.44 223.896 L +144.506 223.896 L +144.738 223.725 L +144.771 223.782 L +144.837 223.896 L +144.97 223.896 L +145.036 223.896 L +145.135 223.495 L +145.234 223.553 L +145.267 223.495 L +145.234 223.438 L +145.3 223.438 L +145.333 223.381 L +145.433 223.553 L +145.499 223.553 L +145.532 223.495 L +145.631 223.896 L +145.73 223.839 L +145.763 223.896 L +145.929 223.725 L +145.962 223.782 L +146.028 223.782 L +145.995 223.839 L +146.028 223.896 L +146.127 223.839 L +146.127 224.297 L +146.028 224.24 L +145.995 224.297 L +146.028 224.355 L +145.962 224.355 L +145.962 224.469 L +146.028 224.469 L +145.995 224.527 L +146.028 224.584 L +146.127 224.527 L +146.226 224.928 L +146.292 224.928 L +146.425 224.813 L +146.491 224.813 L +146.524 224.756 L +146.623 224.928 L +146.722 224.87 L +146.756 224.928 L +146.921 224.527 L +146.954 224.584 L +147.02 224.584 L +147.119 224.412 L +147.219 224.584 L +147.285 224.584 L +147.318 224.527 L +147.417 224.928 L +147.483 224.928 L +147.516 224.87 L +147.549 224.928 L +147.715 224.756 L +147.748 224.813 L +147.814 224.813 L +147.814 224.928 L +147.946 224.928 L +148.012 224.928 L +147.979 224.985 L +148.012 225.042 L +147.946 225.042 L +147.946 225.157 L +148.012 225.157 L +147.979 225.214 L +148.012 225.271 L +147.946 225.271 L +147.814 225.386 L +147.748 225.386 L +147.748 225.5 L +147.814 225.5 L +147.814 225.615 L +147.946 225.615 L +148.012 225.615 L +147.979 225.672 L +148.012 225.73 L +147.946 225.73 L +147.946 225.844 L +148.012 225.844 L +147.979 225.901 L +148.012 225.959 L +147.946 225.959 L +147.814 226.073 L +147.748 226.073 L +147.715 226.131 L +147.615 225.959 L +147.516 226.016 L +147.483 225.959 L +147.318 226.36 L +147.285 226.302 L +147.219 226.302 L +147.219 226.646 L +147.285 226.646 L +147.318 226.589 L +147.417 226.99 L +147.483 226.99 L +147.516 226.933 L +147.549 226.99 L +147.715 226.818 L +147.748 226.875 L +147.814 226.875 L +147.814 226.99 L +147.946 226.99 L +148.012 226.99 L +147.979 227.047 L +148.012 227.104 L +147.946 227.104 L +147.946 227.219 L +148.012 227.219 L +147.979 227.276 L +148.012 227.334 L +147.946 227.334 L +147.814 227.448 L +147.748 227.448 L +147.748 227.563 L +147.814 227.563 L +147.814 227.677 L +147.946 227.677 L +148.012 227.677 L +147.979 227.735 L +148.012 227.792 L +147.946 227.792 L +147.946 227.906 L +148.012 227.906 L +147.979 227.964 L +148.012 228.021 L +148.211 227.906 L +148.277 227.906 L +148.31 227.849 L +148.409 228.021 L +148.475 228.021 L +148.508 227.964 L +148.542 228.021 L +148.707 227.62 L +148.74 227.677 L +148.806 227.677 L +148.905 227.505 L +148.938 227.563 L +149.005 227.563 L +148.971 227.62 L +149.005 227.677 L +149.104 227.62 L +149.203 228.021 L +149.269 228.021 L +149.401 227.906 L +149.468 227.906 L +149.501 227.849 L +149.6 228.021 L +149.732 228.021 L +149.798 228.021 L +149.898 227.62 L +149.997 227.677 L +150.03 227.62 L +149.997 227.563 L +150.063 227.563 L +150.063 227.448 L +149.997 227.448 L +150.03 227.391 L +149.997 227.334 L +149.898 227.391 L +149.898 226.933 L +149.997 226.99 L +150.03 226.933 L +149.997 226.875 L +150.063 226.875 L +150.096 226.818 L +150.195 226.99 L +150.261 226.99 L +150.493 226.589 L +150.526 226.646 L +150.691 226.474 L +150.724 226.532 L +150.791 226.532 L +150.989 226.99 L +151.055 226.99 L +151.187 226.875 L +151.254 226.875 L +151.287 226.818 L +151.386 226.99 L +151.485 226.933 L +151.518 226.99 L +151.584 227.104 L +151.518 227.104 L +151.485 227.162 L +151.518 227.219 L +151.584 227.334 L +151.518 227.334 L +151.485 227.391 L +151.452 227.334 L +151.386 227.677 L +151.485 227.62 L +151.518 227.677 L +151.584 227.792 L +151.518 227.792 L +151.485 227.849 L +151.518 227.906 L +151.584 228.021 L +151.717 228.021 L +151.783 228.021 L +151.882 227.849 L +151.981 228.021 L +152.047 228.021 L +152.18 227.906 L +152.246 227.906 L +152.279 227.849 L +152.246 227.792 L +152.18 227.677 L +152.246 227.677 L +152.279 227.62 L +152.312 227.677 L +152.477 227.505 L +152.51 227.563 L +152.577 227.677 L +152.709 227.677 L +152.775 227.677 L +152.742 227.735 L +152.775 227.792 L +152.709 227.792 L +152.709 227.906 L +152.775 227.906 L +152.742 227.964 L +152.775 228.021 L +152.874 227.964 L +152.973 228.021 L +153.007 227.964 L +152.973 227.906 L +153.04 227.906 L +153.073 227.849 L +153.172 228.021 L +153.238 228.021 L +153.271 227.964 L +153.271 228.422 L +153.238 228.365 L +153.172 228.708 L +153.238 228.708 L +153.271 228.651 L +153.271 229.109 L +153.238 229.052 L +153.073 229.224 L +153.04 229.167 L +152.973 229.167 L +153.007 229.109 L +152.973 229.052 L +152.874 229.109 L +152.775 229.052 L +152.742 229.109 L +152.775 229.167 L +152.709 229.167 L +152.709 229.281 L +152.775 229.281 L +152.742 229.339 L +152.775 229.396 L +152.709 229.396 L +152.577 229.51 L +152.51 229.51 L +152.477 229.568 L +152.51 229.625 L +152.577 229.74 L +152.709 229.74 L +152.775 229.74 L +152.742 229.797 L +152.775 229.854 L +152.709 229.854 L +152.709 229.969 L +152.775 229.969 L +152.742 230.026 L +152.775 230.083 L +152.874 230.026 L +152.973 230.083 L +153.007 230.026 L +152.973 229.969 L +153.04 229.969 L +153.073 229.911 L +153.172 230.083 L +153.238 230.083 L +153.271 230.026 L +153.271 230.484 L +153.238 230.427 L +153.172 230.771 L +153.238 230.771 L +153.271 230.713 L +153.271 231.172 L +153.238 231.114 L +153.073 231.286 L +153.04 231.229 L +152.973 231.229 L +153.007 231.172 L +152.973 231.114 L +152.874 231.172 L +152.775 231.114 L +152.742 231.172 L +152.775 231.229 L +152.709 231.229 L +152.709 231.344 L +152.775 231.344 L +152.742 231.401 L +152.775 231.458 L +152.709 231.458 L +152.51 231.573 L +152.477 231.63 L +152.378 231.458 L +152.279 231.515 L +152.246 231.458 L +152.18 231.344 L +152.246 231.344 L +152.279 231.286 L +152.246 231.229 L +152.18 231.114 L +152.047 231.114 L +151.981 231.114 L +151.882 231.286 L +151.783 231.114 L +151.717 231.114 L +151.584 231.229 L +151.518 231.229 L +151.485 231.286 L +151.518 231.344 L +151.584 231.458 L +151.518 231.458 L +151.485 231.515 L +151.452 231.458 L +151.386 231.802 L +151.485 231.745 L +151.518 231.802 L +151.584 231.916 L +151.518 231.916 L +151.485 231.974 L +151.518 232.031 L +151.584 232.146 L +151.518 232.146 L +151.485 232.203 L +151.452 232.146 L +151.287 232.317 L +151.254 232.26 L +151.187 232.26 L +151.187 232.146 L +151.055 232.146 L +150.989 232.146 L +150.791 232.604 L +150.724 232.604 L +150.724 232.718 L +150.791 232.718 L +150.989 233.177 L +151.055 233.177 L +151.187 233.062 L +151.254 233.062 L +151.287 233.005 L +151.386 233.177 L +151.485 233.119 L +151.518 233.177 L +151.584 233.291 L +151.518 233.291 L +151.485 233.349 L +151.518 233.406 L +151.584 233.52 L +151.518 233.52 L +151.485 233.578 L +151.452 233.52 L +151.386 233.864 L +151.485 233.807 L +151.518 233.864 L +151.584 233.979 L +151.518 233.979 L +151.485 234.036 L +151.518 234.093 L +151.584 234.208 L +151.717 234.208 L +151.783 234.208 L +151.882 234.036 L +151.981 234.208 L +152.047 234.208 L +152.246 234.093 L +152.279 234.036 L +152.246 233.979 L +152.18 233.864 L +152.246 233.864 L +152.279 233.807 L +152.312 233.864 L +152.477 233.692 L +152.51 233.75 L +152.577 233.864 L +152.709 233.864 L +152.775 233.864 L +152.742 233.922 L +152.775 233.979 L +152.709 233.979 L +152.709 234.093 L +152.775 234.093 L +152.742 234.151 L +152.775 234.208 L +152.874 234.151 L +152.973 234.208 L +153.007 234.151 L +152.973 234.093 L +153.04 234.093 L +153.073 234.036 L +153.172 234.208 L +153.238 234.208 L +153.271 234.151 L +153.271 234.609 L +153.238 234.552 L +153.172 234.895 L +153.238 234.895 L +153.271 234.838 L +153.271 235.296 L +153.238 235.239 L +153.073 235.411 L +153.04 235.354 L +152.973 235.354 L +153.007 235.296 L +152.973 235.239 L +152.874 235.296 L +152.775 235.239 L +152.742 235.296 L +152.775 235.354 L +152.709 235.354 L +152.709 235.468 L +152.775 235.468 L +152.742 235.526 L +152.775 235.583 L +152.709 235.583 L +152.577 235.697 L +152.51 235.697 L +152.477 235.755 L +152.51 235.812 L +152.577 235.927 L +152.709 235.927 L +152.775 235.927 L +152.742 235.984 L +152.775 236.041 L +152.709 236.041 L +152.709 236.156 L +152.775 236.156 L +152.742 236.213 L +152.775 236.27 L +152.874 236.213 L +152.973 236.27 L +153.007 236.213 L +152.973 236.156 L +153.04 236.156 L +153.073 236.098 L +153.172 236.27 L +153.238 236.27 L +153.271 236.213 L +153.271 236.671 L +153.238 236.614 L +153.172 236.958 L +153.238 236.958 L +153.271 236.9 L +153.37 237.301 L +153.47 237.244 L +153.503 237.301 L +153.668 237.13 L +153.701 237.187 L +153.767 237.187 L +153.734 237.244 L +153.767 237.301 L +153.966 237.187 L +154.032 237.187 L +154.032 237.072 L +153.966 237.072 L +153.966 236.958 L +154.032 236.958 L +154.164 236.843 L +154.23 236.843 L +154.263 236.786 L +154.363 236.958 L +154.495 236.958 L +154.561 236.958 L +154.561 237.072 L +154.495 237.072 L +154.495 237.187 L +154.561 237.187 L +154.561 237.301 L +154.693 237.301 L +154.759 237.301 L +154.859 237.13 L +154.958 237.301 L +155.024 237.301 L +155.156 237.187 L +155.223 237.187 L +155.256 237.13 L +155.223 237.072 L +155.156 236.958 L +155.223 236.958 L +155.256 236.9 L +155.289 236.958 L +155.355 236.614 L +155.256 236.671 L +155.223 236.614 L +155.156 236.499 L +155.223 236.499 L +155.256 236.442 L +155.223 236.385 L +155.156 236.27 L +155.223 236.27 L +155.256 236.213 L +155.289 236.27 L +155.454 236.098 L +155.487 236.156 L +155.553 236.156 L +155.553 236.27 L +155.686 236.27 L +155.752 236.27 L +155.95 235.812 L +156.016 235.812 L +156.049 235.755 L +156.149 235.927 L +156.248 235.869 L +156.281 235.927 L +156.347 236.041 L +156.281 236.041 L +156.248 236.098 L +156.281 236.156 L +156.347 236.27 L +156.479 236.27 L +156.546 236.27 L +156.645 236.098 L +156.744 236.27 L +156.81 236.27 L +156.843 236.213 L +156.843 236.671 L +156.81 236.614 L +156.744 236.614 L +156.744 236.958 L +156.81 236.958 L +156.843 236.9 L +156.942 237.301 L +157.009 237.301 L +157.24 237.13 L +157.273 237.187 L +157.339 237.301 L +157.472 237.301 L +157.538 237.301 L +157.637 236.9 L +157.736 236.958 L +157.769 236.9 L +157.736 236.843 L +157.802 236.843 L +157.835 236.786 L +157.935 236.958 L +158.001 236.958 L +158.034 236.9 L +158.133 237.301 L +158.232 237.244 L +158.265 237.301 L +158.431 237.13 L +158.464 237.187 L +158.53 237.187 L +158.497 237.244 L +158.53 237.301 L +158.629 237.244 L +158.728 237.301 L +158.761 237.244 L +158.728 237.187 L +158.795 237.187 L +158.795 237.072 L +158.728 237.072 L +158.761 237.015 L +158.728 236.958 L +158.795 236.958 L +158.927 236.843 L +158.993 236.843 L +159.026 236.786 L +158.993 236.729 L +158.927 236.614 L +158.795 236.614 L +158.728 236.614 L +158.761 236.557 L +158.728 236.499 L +158.795 236.499 L +158.795 236.385 L +158.728 236.385 L +158.761 236.328 L +158.728 236.27 L +158.795 236.27 L +158.927 236.156 L +158.993 236.156 L +159.026 236.098 L +159.125 236.27 L +159.225 236.213 L +159.258 236.27 L +159.423 235.869 L +159.456 235.927 L +159.522 235.927 L +159.522 235.583 L +159.456 235.583 L +159.423 235.64 L +159.324 235.239 L +159.258 235.239 L +159.225 235.296 L +159.191 235.239 L +159.026 235.411 L +158.993 235.354 L +158.927 235.239 L +158.795 235.239 L +158.728 235.239 L +158.761 235.182 L +158.728 235.125 L +158.795 235.125 L +158.795 235.01 L +158.728 235.01 L +158.761 234.953 L +158.728 234.895 L +158.795 234.895 L +158.927 234.781 L +158.993 234.781 L +159.026 234.724 L +158.993 234.666 L +158.927 234.552 L +158.795 234.552 L +158.728 234.552 L +158.761 234.494 L +158.728 234.437 L +158.795 234.437 L +158.795 234.323 L +158.728 234.323 L +158.761 234.265 L +158.728 234.208 L +158.795 234.208 L +158.927 234.093 L +158.993 234.093 L +159.026 234.036 L +159.125 234.208 L +159.225 234.151 L +159.258 234.208 L +159.423 233.807 L +159.456 233.864 L +159.522 233.864 L +159.621 233.692 L +159.721 233.864 L +159.787 233.864 L +159.82 233.807 L +159.919 234.208 L +159.985 234.208 L +160.018 234.151 L +160.051 234.208 L +160.217 234.036 L +160.25 234.093 L +160.316 234.093 L +160.316 234.208 L +160.448 234.208 L +160.514 234.208 L +160.713 233.75 L +160.779 233.75 L +160.779 233.635 L +160.713 233.635 L +160.713 233.062 L +160.779 233.062 L +160.812 233.005 L +160.911 233.177 L +160.977 233.177 L +161.011 233.119 L +161.044 233.177 L +161.209 232.776 L +161.242 232.833 L +161.308 232.833 L +161.407 232.661 L +161.44 232.718 L +161.507 232.718 L +161.474 232.776 L +161.507 232.833 L +161.606 232.776 L +161.705 233.177 L +161.771 233.177 L +161.904 233.062 L +161.97 233.062 L +162.003 233.005 L +162.102 233.177 L +162.234 233.177 L +162.3 233.177 L +162.3 233.291 L +162.234 233.291 L +162.234 233.406 L +162.3 233.406 L +162.3 233.52 L +162.234 233.52 L +162.102 233.864 L +162.234 233.864 L +162.3 233.864 L +162.3 233.979 L +162.234 233.979 L +162.234 234.093 L +162.3 234.093 L +162.3 234.208 L +162.499 234.208 L +162.532 234.151 L +162.499 234.093 L +162.565 234.093 L +162.598 234.036 L +162.697 234.208 L +162.763 234.208 L +162.995 233.807 L +163.028 233.864 L +163.193 233.692 L +163.226 233.75 L +163.293 233.75 L +163.491 234.208 L +163.557 234.208 L +163.69 234.093 L +163.756 234.093 L +163.789 234.036 L +163.888 234.208 L +163.987 234.151 L +164.02 234.208 L +164.086 234.323 L +164.02 234.323 L +163.987 234.38 L +164.02 234.437 L +164.086 234.552 L +164.02 234.552 L +163.987 234.609 L +163.954 234.552 L +163.888 234.895 L +163.987 234.838 L +164.02 234.895 L +164.086 235.01 L +164.02 235.01 L +163.987 235.067 L +164.02 235.125 L +164.086 235.239 L +164.02 235.239 L +163.987 235.296 L +163.954 235.239 L +163.789 235.411 L +163.756 235.354 L +163.69 235.354 L +163.69 235.239 L +163.557 235.239 L +163.491 235.239 L +163.293 235.697 L +163.226 235.697 L +163.226 235.812 L +163.293 235.812 L +163.491 236.27 L +163.557 236.27 L +163.69 236.156 L +163.756 236.156 L +163.789 236.098 L +163.888 236.27 L +163.987 236.213 L +164.02 236.27 L +164.086 236.385 L +164.02 236.385 L +163.987 236.442 L +164.02 236.499 L +164.086 236.614 L +164.02 236.614 L +163.987 236.671 L +163.954 236.614 L +163.888 236.958 L +163.987 236.9 L +164.02 236.958 L +164.086 237.072 L +164.02 237.072 L +163.987 237.13 L +164.02 237.187 L +164.086 237.301 L +164.219 237.301 L +164.285 237.301 L +164.384 237.13 L +164.483 237.301 L +164.549 237.301 L +164.682 237.187 L +164.748 237.187 L +164.781 237.13 L +164.748 237.072 L +164.682 236.958 L +164.748 236.958 L +164.781 236.9 L +164.814 236.958 L +164.979 236.786 L +165.012 236.843 L +165.079 236.958 L +165.211 236.958 L +165.277 236.958 L +165.244 237.015 L +165.277 237.072 L +165.211 237.072 L +165.211 237.187 L +165.277 237.187 L +165.244 237.244 L +165.277 237.301 L +165.376 237.244 L +165.476 237.301 L +165.509 237.244 L +165.476 237.187 L +165.542 237.187 L +165.575 237.13 L +165.674 237.301 L +165.74 237.301 L +165.773 237.244 L +165.806 237.301 L +165.972 236.9 L +166.005 236.958 L +166.071 236.614 L +166.005 236.614 L +165.972 236.671 L +165.972 236.213 L +166.005 236.27 L +166.17 236.098 L +166.203 236.156 L +166.269 236.156 L +166.236 236.213 L +166.269 236.27 L +166.369 236.213 L +166.468 236.27 L +166.501 236.213 L +166.468 236.156 L +166.534 236.156 L +166.534 236.041 L +166.468 236.041 L +166.501 235.984 L +166.468 235.927 L +166.534 235.927 L +166.666 235.812 L +166.732 235.812 L +166.765 235.755 L +166.865 235.927 L +166.997 235.927 L +167.063 235.927 L +167.063 236.041 L +166.997 236.041 L +166.997 236.156 L +167.063 236.156 L +167.063 236.27 L +167.195 236.27 L +167.262 236.27 L +167.361 236.098 L +167.46 236.27 L +167.526 236.27 L +167.559 236.213 L +167.559 236.671 L +167.526 236.614 L +167.46 236.614 L +167.46 236.958 L +167.526 236.958 L +167.559 236.9 L +167.658 237.301 L +167.725 237.301 L +167.758 237.244 L +167.791 237.301 L +167.956 237.13 L +167.989 237.187 L +168.055 237.187 L +168.055 237.301 L +168.188 237.301 L +168.254 237.301 L +168.452 236.843 L +168.518 236.843 L +168.551 236.786 L +168.651 236.958 L +168.75 236.9 L +168.783 236.958 L +168.849 237.072 L +168.783 237.072 L +168.75 237.13 L +168.783 237.187 L +168.849 237.301 L +168.981 237.301 L +169.048 237.301 L +169.147 237.13 L +169.246 237.301 L +169.312 237.301 L +169.345 237.244 L +169.345 237.702 L +169.312 237.645 L +169.246 237.645 L +169.246 237.989 L +169.312 237.989 L +169.345 237.932 L +169.345 238.39 L +169.312 238.333 L +169.246 238.333 L +169.147 238.504 L +169.048 238.333 L +168.981 238.333 L +168.849 238.447 L +168.783 238.447 L +168.75 238.504 L +168.783 238.562 L +168.849 238.676 L +168.783 238.676 L +168.75 238.734 L +168.717 238.676 L +168.651 239.02 L +168.75 238.963 L +168.783 239.02 L +168.849 239.135 L +168.783 239.135 L +168.75 239.192 L +168.783 239.249 L +168.849 239.364 L +168.981 239.364 L +169.048 239.364 L +169.147 239.192 L +169.246 239.364 L +169.312 239.364 L +169.345 239.306 L +169.345 239.765 L +169.312 239.707 L +169.246 239.707 L +169.246 240.051 L +169.312 240.051 L +169.345 239.994 L +169.345 240.452 L +169.312 240.395 L +169.246 240.395 L +169.147 240.567 L +169.048 240.395 L +168.981 240.395 L +168.849 240.509 L +168.783 240.509 L +168.75 240.567 L +168.783 240.624 L +168.849 240.739 L +168.783 240.739 L +168.75 240.796 L +168.717 240.739 L +168.551 240.91 L +168.518 240.853 L +168.452 240.853 L +168.254 240.395 L +168.188 240.395 L +168.055 240.509 L +167.989 240.509 L +167.956 240.567 L +167.857 240.395 L +167.758 240.452 L +167.725 240.395 L +167.559 240.796 L +167.526 240.739 L +167.46 240.739 L +167.46 241.082 L +167.526 241.082 L +167.559 241.025 L +167.559 241.483 L +167.526 241.426 L +167.46 241.426 L +167.361 241.598 L +167.262 241.426 L +167.195 241.426 L +167.063 241.541 L +166.997 241.541 L +166.997 241.655 L +167.063 241.655 L +167.063 241.77 L +166.997 241.77 L +166.865 242.113 L +166.997 242.113 L +167.063 242.113 L +167.063 242.228 L +166.997 242.228 L +166.997 242.343 L +167.063 242.343 L +167.063 242.457 L +167.195 242.457 L +167.262 242.457 L +167.361 242.285 L +167.46 242.457 L +167.526 242.457 L +167.559 242.4 L +167.559 242.858 L +167.526 242.801 L +167.46 242.801 L +167.46 243.145 L +167.526 243.145 L +167.559 243.087 L +167.658 243.488 L +167.725 243.488 L +167.758 243.431 L +167.791 243.488 L +167.956 243.316 L +167.989 243.374 L +168.055 243.374 L +168.055 243.488 L +168.188 243.488 L +168.254 243.488 L +168.452 243.03 L +168.518 243.03 L +168.551 242.973 L +168.651 243.145 L +168.75 243.087 L +168.783 243.145 L +168.849 243.259 L +168.783 243.259 L +168.75 243.316 L +168.783 243.374 L +168.849 243.488 L +168.981 243.488 L +169.048 243.488 L +169.147 243.316 L +169.246 243.488 L +169.312 243.488 L +169.345 243.431 L +169.345 243.889 L +169.312 243.832 L +169.246 243.832 L +169.246 244.176 L +169.312 244.176 L +169.345 244.118 L +169.345 244.577 L +169.312 244.519 L +169.246 244.519 L +169.147 244.691 L +169.048 244.519 L +168.981 244.519 L +168.849 244.634 L +168.783 244.634 L +168.75 244.691 L +168.783 244.749 L +168.849 244.863 L +168.783 244.863 L +168.75 244.92 L +168.717 244.863 L +168.651 245.207 L +168.75 245.15 L +168.783 245.207 L +168.849 245.321 L +168.783 245.321 L +168.75 245.379 L +168.783 245.436 L +168.849 245.551 L +168.981 245.551 L +169.048 245.551 L +169.147 245.379 L +169.246 245.551 L +169.312 245.551 L +169.345 245.493 L +169.345 245.952 L +169.312 245.894 L +169.246 245.894 L +169.246 246.238 L +169.312 246.238 L +169.345 246.181 L +169.345 246.639 L +169.312 246.582 L +169.246 246.582 L +169.147 246.754 L +169.048 246.582 L +168.981 246.582 L +168.849 246.696 L +168.783 246.696 L +168.75 246.754 L +168.783 246.811 L +168.849 246.925 L +168.783 246.925 L +168.75 246.983 L +168.717 246.925 L +168.551 247.097 L +168.518 247.04 L +168.452 247.04 L +168.254 246.582 L +168.188 246.582 L +168.055 246.696 L +167.989 246.696 L +167.956 246.754 L +167.857 246.582 L +167.758 246.639 L +167.725 246.582 L +167.559 246.983 L +167.526 246.925 L +167.46 246.925 L +167.46 247.269 L +167.526 247.269 L +167.559 247.212 L +167.559 247.67 L +167.526 247.613 L +167.46 247.613 L +167.361 247.785 L +167.262 247.613 L +167.195 247.613 L +167.063 247.727 L +166.997 247.727 L +166.997 247.842 L +167.063 247.842 L +167.063 247.957 L +166.997 247.957 L +166.765 248.128 L +166.732 248.071 L +166.666 247.957 L +166.534 247.957 L +166.468 247.957 L +166.501 247.899 L +166.468 247.842 L +166.534 247.842 L +166.534 247.727 L +166.468 247.727 L +166.501 247.67 L +166.468 247.613 L +166.369 247.67 L +166.269 247.613 L +166.236 247.67 L +166.269 247.727 L +166.203 247.727 L +166.17 247.785 L +166.071 247.613 L +166.005 247.613 L +165.972 247.67 L +165.972 247.212 L +166.005 247.269 L +166.071 246.925 L +166.005 246.925 L +165.972 246.983 L +165.872 246.582 L +165.773 246.639 L +165.74 246.582 L +165.575 246.754 L +165.542 246.696 L +165.476 246.696 L +165.509 246.639 L +165.476 246.582 L +165.376 246.639 L +165.277 246.582 L +165.244 246.639 L +165.277 246.696 L +165.211 246.696 L +165.211 246.811 L +165.277 246.811 L +165.244 246.868 L +165.277 246.925 L +165.211 246.925 L +165.079 247.04 L +165.012 247.04 L +164.979 247.097 L +164.88 246.925 L +164.781 246.983 L +164.748 246.925 L +164.682 246.811 L +164.748 246.811 L +164.781 246.754 L +164.748 246.696 L +164.682 246.582 L +164.549 246.582 L +164.483 246.582 L +164.384 246.754 L +164.285 246.582 L +164.219 246.582 L +164.086 246.696 L +164.02 246.696 L +163.987 246.754 L +164.02 246.811 L +164.086 246.925 L +164.02 246.925 L +163.987 246.983 L +163.954 246.925 L +163.888 247.269 L +163.987 247.212 L +164.02 247.269 L +164.086 247.384 L +164.02 247.384 L +163.987 247.441 L +164.02 247.498 L +164.086 247.613 L +164.02 247.613 L +163.987 247.67 L +163.954 247.613 L +163.789 247.785 L +163.756 247.727 L +163.69 247.727 L +163.69 247.613 L +163.557 247.613 L +163.491 247.613 L +163.293 248.071 L +163.226 248.071 L +163.226 248.186 L +163.293 248.186 L +163.491 248.644 L +163.557 248.644 L +163.69 248.529 L +163.756 248.529 L +163.789 248.472 L +163.888 248.644 L +163.987 248.587 L +164.02 248.644 L +164.086 248.759 L +164.02 248.759 L +163.987 248.816 L +164.02 248.873 L +164.086 248.988 L +164.02 248.988 L +163.987 249.045 L +163.954 248.988 L +163.888 249.331 L +163.987 249.274 L +164.02 249.331 L +164.086 249.446 L +164.02 249.446 L +163.987 249.503 L +164.02 249.561 L +164.086 249.675 L +164.02 249.675 L +163.987 249.733 L +163.954 249.675 L +163.789 249.847 L +163.756 249.79 L +163.69 249.79 L +163.69 249.675 L +163.557 249.675 L +163.491 249.675 L +163.293 250.134 L +163.226 250.134 L +163.193 250.191 L +163.094 250.019 L +163.028 250.019 L +162.995 250.076 L +162.896 249.675 L +162.763 249.675 L +162.697 249.675 L +162.598 249.847 L +162.565 249.79 L +162.499 249.79 L +162.532 249.733 L +162.499 249.675 L +162.3 249.79 L +162.234 249.79 L +162.234 249.904 L +162.3 249.904 L +162.3 250.019 L +162.234 250.019 L +162.102 250.363 L +162.234 250.363 L +162.3 250.363 L +162.3 250.477 L +162.234 250.477 L +162.234 250.592 L +162.3 250.592 L +162.3 250.706 L +162.234 250.706 L +162.003 250.878 L +161.97 250.821 L +161.904 250.706 L +161.771 250.706 L +161.705 250.706 L +161.606 251.107 L +161.507 251.05 L +161.474 251.107 L +161.507 251.165 L +161.44 251.165 L +161.44 251.279 L +161.507 251.279 L +161.474 251.337 L +161.507 251.394 L +161.606 251.337 L +161.705 251.738 L +161.771 251.738 L +161.904 251.623 L +161.97 251.623 L +162.003 251.566 L +162.102 251.738 L +162.234 251.738 L +162.3 251.738 L +162.3 251.852 L +162.234 251.852 L +162.234 251.967 L +162.3 251.967 L +162.3 252.081 L +162.234 252.081 L +162.102 252.425 L +162.234 252.425 L +162.3 252.425 L +162.3 252.54 L +162.234 252.54 L +162.234 252.654 L +162.3 252.654 L +162.3 252.769 L +162.499 252.769 L +162.532 252.711 L +162.499 252.654 L +162.565 252.654 L +162.598 252.597 L +162.697 252.769 L +162.763 252.769 L +162.995 252.368 L +163.028 252.425 L +163.193 252.253 L +163.226 252.31 L +163.293 252.31 L +163.491 252.769 L +163.557 252.769 L +163.69 252.654 L +163.756 252.654 L +163.789 252.597 L +163.888 252.769 L +163.987 252.711 L +164.02 252.769 L +164.086 252.883 L +164.02 252.883 L +163.987 252.941 L +164.02 252.998 L +164.086 253.112 L +164.02 253.112 L +163.987 253.17 L +163.954 253.112 L +163.888 253.456 L +163.987 253.399 L +164.02 253.456 L +164.086 253.571 L +164.02 253.571 L +163.987 253.628 L +164.02 253.685 L +164.086 253.8 L +164.02 253.8 L +163.987 253.857 L +163.954 253.8 L +163.789 253.972 L +163.756 253.914 L +163.69 253.914 L +163.69 253.8 L +163.557 253.8 L +163.491 253.8 L +163.293 254.258 L +163.226 254.258 L +163.226 254.373 L +163.293 254.373 L +163.491 254.831 L +163.557 254.831 L +163.69 254.716 L +163.756 254.716 L +163.789 254.659 L +163.888 254.831 L +163.987 254.774 L +164.02 254.831 L +164.086 254.946 L +164.02 254.946 L +163.987 255.003 L +164.02 255.06 L +164.086 255.175 L +164.02 255.175 L +163.987 255.232 L +163.954 255.175 L +163.888 255.518 L +163.987 255.461 L +164.02 255.518 L +164.086 255.633 L +164.02 255.633 L +163.987 255.69 L +164.02 255.748 L +164.086 255.862 L +164.219 255.862 L +164.285 255.862 L +164.384 255.69 L +164.483 255.862 L +164.549 255.862 L +164.682 255.748 L +164.748 255.748 L +164.781 255.69 L +164.748 255.633 L +164.682 255.518 L +164.748 255.518 L +164.781 255.461 L +164.814 255.518 L +164.979 255.347 L +165.012 255.404 L +165.079 255.518 L +165.211 255.518 L +165.277 255.518 L +165.244 255.576 L +165.277 255.633 L +165.211 255.633 L +165.211 255.748 L +165.277 255.748 L +165.244 255.805 L +165.277 255.862 L +165.376 255.805 L +165.476 255.862 L +165.509 255.805 L +165.476 255.748 L +165.542 255.748 L +165.575 255.69 L +165.674 255.862 L +165.74 255.862 L +165.773 255.805 L +165.806 255.862 L +165.972 255.461 L +166.005 255.518 L +166.071 255.175 L +166.005 255.175 L +165.972 255.232 L +165.972 254.774 L +166.005 254.831 L +166.17 254.659 L +166.203 254.716 L +166.269 254.716 L +166.236 254.774 L +166.269 254.831 L +166.369 254.774 L +166.468 254.831 L +166.501 254.774 L +166.468 254.716 L +166.534 254.716 L +166.534 254.602 L +166.468 254.602 L +166.501 254.545 L +166.468 254.487 L +166.534 254.487 L +166.666 254.373 L +166.732 254.373 L +166.765 254.315 L +166.865 254.487 L +166.997 254.487 L +167.063 254.487 L +167.063 254.602 L +166.997 254.602 L +166.997 254.716 L +167.063 254.716 L +167.063 254.831 L +167.195 254.831 L +167.262 254.831 L +167.361 254.659 L +167.46 254.831 L +167.526 254.831 L +167.559 254.774 L +167.559 255.232 L +167.526 255.175 L +167.46 255.175 L +167.46 255.518 L +167.526 255.518 L +167.559 255.461 L +167.658 255.862 L +167.725 255.862 L +167.758 255.805 L +167.791 255.862 L +167.956 255.69 L +167.989 255.748 L +168.055 255.748 L +168.055 255.862 L +168.188 255.862 L +168.254 255.862 L +168.452 255.404 L +168.518 255.404 L +168.551 255.347 L +168.651 255.518 L +168.75 255.461 L +168.783 255.518 L +168.849 255.633 L +168.783 255.633 L +168.75 255.69 L +168.783 255.748 L +168.849 255.862 L +168.981 255.862 L +169.048 255.862 L +169.147 255.69 L +169.246 255.862 L +169.312 255.862 L +169.345 255.805 L +169.345 256.263 L +169.312 256.206 L +169.246 256.206 L +169.246 256.55 L +169.312 256.55 L +169.345 256.492 L +169.345 256.951 L +169.312 256.893 L +169.246 256.893 L +169.147 257.065 L +169.048 256.893 L +168.981 256.893 L +168.849 257.008 L +168.783 257.008 L +168.75 257.065 L +168.783 257.122 L +168.849 257.237 L +168.783 257.237 L +168.75 257.294 L +168.717 257.237 L +168.651 257.581 L +168.75 257.523 L +168.783 257.581 L +168.849 257.695 L +168.783 257.695 L +168.75 257.753 L +168.783 257.81 L +168.849 257.924 L +168.981 257.924 L +169.048 257.924 L +169.147 257.753 L +169.246 257.924 L +169.312 257.924 L +169.345 257.867 L +169.345 258.325 L +169.312 258.268 L +169.246 258.268 L +169.246 258.612 L +169.312 258.612 L +169.345 258.555 L +169.345 259.013 L +169.312 258.956 L +169.246 258.956 L +169.147 259.127 L +169.048 258.956 L +168.981 258.956 L +168.849 259.07 L +168.783 259.07 L +168.75 259.127 L +168.783 259.185 L +168.849 259.299 L +168.783 259.299 L +168.75 259.357 L +168.717 259.299 L +168.551 259.471 L +168.518 259.414 L +168.452 259.414 L +168.254 258.956 L +168.188 258.956 L +168.055 259.07 L +167.989 259.07 L +167.956 259.127 L +167.857 258.956 L +167.758 259.013 L +167.725 258.956 L +167.559 259.357 L +167.526 259.299 L +167.46 259.299 L +167.46 259.643 L +167.526 259.643 L +167.559 259.586 L +167.559 260.044 L +167.526 259.987 L +167.46 259.987 L +167.361 260.159 L +167.262 259.987 L +167.195 259.987 L +167.063 260.101 L +166.997 260.101 L +166.997 260.216 L +167.063 260.216 L +167.063 260.33 L +166.997 260.33 L +166.865 260.674 L +166.997 260.674 L +167.063 260.674 L +167.063 260.789 L +166.997 260.789 L +166.997 260.903 L +167.063 260.903 L +167.063 261.018 L +167.195 261.018 L +167.262 261.018 L +167.361 260.846 L +167.46 261.018 L +167.526 261.018 L +167.559 260.961 L +167.559 261.419 L +167.526 261.362 L +167.46 261.362 L +167.46 261.705 L +167.526 261.705 L +167.559 261.648 L +167.658 262.049 L +167.725 262.049 L +167.758 261.992 L +167.791 262.049 L +167.956 261.877 L +167.989 261.934 L +168.055 261.934 L +168.055 262.049 L +168.188 262.049 L +168.254 262.049 L +168.452 261.591 L +168.518 261.591 L +168.551 261.533 L +168.651 261.705 L +168.75 261.648 L +168.783 261.705 L +168.849 261.82 L +168.783 261.82 L +168.75 261.877 L +168.783 261.934 L +168.849 262.049 L +168.981 262.049 L +169.048 262.049 L +169.147 261.877 L +169.246 262.049 L +169.312 262.049 L +169.345 261.992 L +169.345 262.45 L +169.312 262.393 L +169.246 262.393 L +169.246 262.736 L +169.312 262.736 L +169.345 262.679 L +169.345 263.137 L +169.312 263.08 L +169.246 263.08 L +169.147 263.252 L +169.048 263.08 L +168.981 263.08 L +168.849 263.195 L +168.783 263.195 L +168.75 263.252 L +168.783 263.309 L +168.849 263.424 L +168.783 263.424 L +168.75 263.481 L +168.717 263.424 L +168.651 263.768 L +168.75 263.71 L +168.783 263.768 L +168.849 263.882 L +168.783 263.882 L +168.75 263.939 L +168.783 263.997 L +168.849 264.111 L +168.981 264.111 L +169.048 264.111 L +169.147 263.939 L +169.246 264.111 L +169.312 264.111 L +169.345 264.054 L +169.345 264.512 L +169.312 264.455 L +169.246 264.455 L +169.246 264.799 L +169.312 264.799 L +169.345 264.741 L +169.444 265.143 L +169.511 265.143 L +169.742 264.971 L +169.775 265.028 L +169.841 265.143 L +169.974 265.143 L +170.04 265.143 L +170.139 264.741 L +170.238 264.799 L +170.271 264.741 L +170.238 264.684 L +170.304 264.684 L +170.337 264.627 L +170.437 264.799 L +170.503 264.799 L +170.536 264.741 L +170.635 265.143 L +170.734 265.085 L +170.767 265.143 L +170.933 264.971 L +170.966 265.028 L +171.032 265.028 L +170.999 265.085 L +171.032 265.143 L +171.131 265.085 L +171.23 265.143 L +171.264 265.085 L +171.23 265.028 L +171.297 265.028 L +171.297 264.913 L +171.23 264.913 L +171.264 264.856 L +171.23 264.799 L +171.297 264.799 L +171.429 264.684 L +171.495 264.684 L +171.528 264.627 L +171.495 264.57 L +171.429 264.455 L +171.297 264.455 L +171.23 264.455 L +171.264 264.398 L +171.23 264.34 L +171.297 264.34 L +171.297 264.226 L +171.23 264.226 L +171.264 264.169 L +171.23 264.111 L +171.297 264.111 L +171.429 263.997 L +171.495 263.997 L +171.528 263.939 L +171.627 264.111 L +171.727 264.054 L +171.76 264.111 L +171.925 263.71 L +171.958 263.768 L +172.024 263.768 L +172.123 263.596 L +172.223 263.768 L +172.289 263.768 L +172.322 263.71 L +172.421 264.111 L +172.487 264.111 L +172.52 264.054 L +172.553 264.111 L +172.719 263.939 L +172.752 263.997 L +172.818 264.111 L +172.95 264.111 L +173.016 264.111 L +172.983 264.169 L +173.016 264.226 L +172.95 264.226 L +172.95 264.34 L +173.016 264.34 L +172.983 264.398 L +173.016 264.455 L +172.95 264.455 L +172.818 264.57 L +172.752 264.57 L +172.719 264.627 L +172.752 264.684 L +172.818 264.799 L +172.95 264.799 L +173.016 264.799 L +172.983 264.856 L +173.016 264.913 L +172.95 264.913 L +172.95 265.028 L +173.016 265.028 L +172.983 265.085 L +173.016 265.143 L +173.215 265.028 L +173.281 265.028 L +173.314 264.971 L +173.413 265.143 L +173.479 265.143 L +173.513 265.085 L +173.546 265.143 L +173.711 264.741 L +173.744 264.799 L +173.81 264.799 L +173.909 264.627 L +173.943 264.684 L +174.009 264.684 L +173.976 264.741 L +174.009 264.799 L +174.108 264.741 L +174.207 265.143 L +174.273 265.143 L +174.406 265.028 L +174.472 265.028 L +174.505 264.971 L +174.604 265.143 L +174.736 265.143 L +174.802 265.143 L +174.902 264.741 L +174.935 264.799 L +175.001 264.799 L +175.001 264.455 L +174.935 264.455 L +174.902 264.512 L +174.902 264.054 L +174.935 264.111 L +175.001 264.111 L +175.1 263.939 L +175.199 264.111 L +175.266 264.111 L +175.497 263.71 L +175.53 263.768 L +175.596 263.424 L +175.53 263.424 L +175.497 263.481 L +175.398 263.08 L +175.266 263.08 L +175.199 263.08 L +175.1 263.252 L +175.001 263.08 L +174.935 263.08 L +174.902 263.137 L +174.902 262.679 L +174.935 262.736 L +175.001 262.736 L +175.001 262.393 L +174.935 262.393 L +174.902 262.45 L +174.902 261.992 L +174.935 262.049 L +175.001 262.049 L +175.1 261.877 L +175.199 262.049 L +175.266 262.049 L +175.497 261.648 L +175.53 261.705 L +175.695 261.533 L +175.729 261.591 L +175.795 261.591 L +175.993 262.049 L +176.059 262.049 L +176.192 261.934 L +176.258 261.934 L +176.291 261.877 L +176.39 262.049 L +176.489 261.992 L +176.522 262.049 L +176.688 261.648 L +176.721 261.705 L +176.787 261.705 L +176.787 261.362 L +176.721 261.362 L +176.688 261.419 L +176.688 260.961 L +176.721 261.018 L +176.787 261.018 L +176.886 260.846 L +176.985 261.018 L +177.052 261.018 L +177.184 260.903 L +177.25 260.903 L +177.283 260.846 L +177.25 260.789 L +177.184 260.674 L +177.25 260.674 L +177.283 260.617 L +177.316 260.674 L +177.481 260.502 L +177.515 260.56 L +177.581 260.674 L +177.713 260.674 L +177.779 260.674 L +177.746 260.731 L +177.779 260.789 L +177.713 260.789 L +177.713 260.903 L +177.779 260.903 L +177.746 260.961 L +177.779 261.018 L +177.878 260.961 L +177.978 261.018 L +178.011 260.961 L +177.978 260.903 L +178.044 260.903 L +178.077 260.846 L +178.176 261.018 L +178.242 261.018 L +178.275 260.961 L +178.275 261.419 L +178.242 261.362 L +178.176 261.705 L +178.242 261.705 L +178.275 261.648 L +178.374 262.049 L +178.474 261.992 L +178.507 262.049 L +178.672 261.877 L +178.705 261.934 L +178.771 261.934 L +178.738 261.992 L +178.771 262.049 L +178.871 261.992 L +178.97 262.049 L +179.003 261.992 L +178.97 261.934 L +179.036 261.934 L +179.036 261.82 L +178.97 261.82 L +179.003 261.763 L +178.97 261.705 L +179.036 261.705 L +179.234 261.591 L +179.267 261.533 L +179.367 261.705 L +179.499 261.705 L +179.565 261.705 L +179.565 261.82 L +179.499 261.82 L +179.499 261.934 L +179.565 261.934 L +179.565 262.049 L +179.697 262.049 L +179.764 262.049 L +179.863 261.877 L +179.962 262.049 L +180.028 262.049 L +180.061 261.992 L +180.061 262.45 L +180.028 262.393 L +179.962 262.393 L +179.962 262.736 L +180.028 262.736 L +180.061 262.679 L +180.061 263.137 L +180.028 263.08 L +179.962 263.08 L +179.863 263.252 L +179.764 263.08 L +179.697 263.08 L +179.565 263.195 L +179.499 263.195 L +179.499 263.309 L +179.565 263.309 L +179.565 263.424 L +179.499 263.424 L +179.367 263.768 L +179.499 263.768 L +179.565 263.768 L +179.565 263.882 L +179.499 263.882 L +179.499 263.997 L +179.565 263.997 L +179.565 264.111 L +179.697 264.111 L +179.764 264.111 L +179.863 263.939 L +179.962 264.111 L +180.028 264.111 L +180.061 264.054 L +180.061 264.512 L +180.028 264.455 L +179.962 264.455 L +179.962 264.799 L +180.028 264.799 L +180.061 264.741 L +180.16 265.143 L +180.227 265.143 L +180.26 265.085 L +180.293 265.143 L +180.458 264.971 L +180.491 265.028 L +180.557 265.028 L +180.557 265.143 L +180.69 265.143 L +180.756 265.143 L +180.954 264.684 L +181.02 264.684 L +181.053 264.627 L +181.153 264.799 L +181.219 264.799 L +181.252 264.741 L +181.351 265.143 L +181.483 265.143 L +181.55 265.143 L +181.649 264.971 L +181.748 265.143 L +181.814 265.143 L +181.947 265.028 L +182.013 265.028 L +182.013 264.913 L +181.947 264.913 L +181.947 264.799 L +182.013 264.799 L +182.145 264.455 L +182.013 264.455 L +181.947 264.455 L +181.947 264.34 L +182.013 264.34 L +182.013 264.226 L +181.947 264.226 L +181.947 264.111 L +182.013 264.111 L +182.244 263.939 L +182.277 263.997 L +182.343 264.111 L +182.476 264.111 L +182.542 264.111 L +182.641 263.71 L +182.74 263.768 L +182.773 263.71 L +182.74 263.653 L +182.806 263.653 L +182.84 263.596 L +182.939 263.768 L +183.005 263.768 L +183.038 263.71 L +183.137 264.111 L +183.236 264.054 L +183.269 264.111 L +183.435 263.939 L +183.468 263.997 L +183.534 263.997 L +183.534 264.57 L +183.468 264.57 L +183.468 264.684 L +183.534 264.684 L +183.733 265.143 L +183.799 265.143 L +183.931 265.028 L +183.997 265.028 L +184.03 264.971 L +184.129 265.143 L +184.229 265.085 L +184.262 265.143 L +184.427 264.741 L +184.46 264.799 L +184.526 264.799 L +184.626 264.627 L +184.725 264.799 L +184.791 264.799 L +184.824 264.741 L +184.923 265.143 L +184.989 265.143 L +185.022 265.085 L +185.055 265.143 L +185.221 264.971 L +185.254 265.028 L +185.32 265.143 L +185.452 265.143 L +185.519 265.143 L +185.618 264.741 L +185.717 264.799 L +185.75 264.741 L +185.717 264.684 L +185.783 264.684 L +185.783 264.57 L +185.717 264.57 L +185.75 264.512 L +185.717 264.455 L +185.618 264.512 L +185.618 264.054 L +185.717 264.111 L +185.75 264.054 L +185.717 263.997 L +185.783 263.997 L +185.816 263.939 L +185.915 264.111 L +185.982 264.111 L +186.015 264.054 L +186.048 264.111 L +186.213 263.71 L +186.246 263.768 L +186.312 263.768 L +186.312 263.424 L +186.246 263.424 L +186.213 263.481 L +186.114 263.08 L +186.015 263.137 L +185.982 263.08 L +185.816 263.252 L +185.783 263.195 L +185.717 263.195 L +185.75 263.137 L +185.717 263.08 L +185.618 263.137 L +185.618 262.679 L +185.717 262.736 L +185.75 262.679 L +185.717 262.622 L +185.783 262.622 L +185.783 262.507 L +185.717 262.507 L +185.75 262.45 L +185.717 262.393 L +185.618 262.45 L +185.618 261.992 L +185.717 262.049 L +185.75 261.992 L +185.717 261.934 L +185.783 261.934 L +185.816 261.877 L +185.915 262.049 L +185.982 262.049 L +186.015 261.992 L +186.048 262.049 L +186.213 261.648 L +186.246 261.705 L +186.312 261.705 L +186.412 261.533 L +186.445 261.591 L +186.511 261.591 L +186.478 261.648 L +186.511 261.705 L +186.61 261.648 L +186.709 262.049 L +186.775 262.049 L +186.908 261.934 L +186.974 261.934 L +187.007 261.877 L +187.106 262.049 L +187.238 262.049 L +187.305 262.049 L +187.404 261.648 L +187.437 261.705 L +187.503 261.705 L +187.503 261.362 L +187.437 261.362 L +187.404 261.419 L +187.404 260.961 L +187.437 261.018 L +187.503 261.018 L +187.602 260.846 L +187.701 261.018 L +187.768 261.018 L +187.999 260.617 L +188.032 260.674 L +188.098 260.33 L +188.032 260.33 L +187.999 260.388 L +187.9 259.987 L +187.768 259.987 L +187.701 259.987 L +187.602 260.159 L +187.503 259.987 L +187.437 259.987 L +187.404 260.044 L +187.404 259.586 L +187.437 259.643 L +187.503 259.643 L +187.503 259.299 L +187.437 259.299 L +187.404 259.357 L +187.305 258.956 L +187.238 258.956 L +187.007 259.127 L +186.974 259.07 L +186.908 258.956 L +186.775 258.956 L +186.709 258.956 L +186.61 259.357 L +186.511 259.299 L +186.478 259.357 L +186.511 259.414 L +186.445 259.414 L +186.412 259.471 L +186.312 259.299 L +186.246 259.299 L +186.213 259.357 L +186.114 258.956 L +186.015 259.013 L +185.982 258.956 L +185.816 259.127 L +185.783 259.07 L +185.717 259.07 L +185.75 259.013 L +185.717 258.956 L +185.618 259.013 L +185.618 258.555 L +185.717 258.612 L +185.75 258.555 L +185.717 258.497 L +185.783 258.497 L +185.783 258.383 L +185.717 258.383 L +185.75 258.325 L +185.717 258.268 L +185.618 258.325 L +185.618 257.867 L +185.717 257.924 L +185.75 257.867 L +185.717 257.81 L +185.783 257.81 L +185.816 257.753 L +185.915 257.924 L +185.982 257.924 L +186.015 257.867 L +186.048 257.924 L +186.213 257.523 L +186.246 257.581 L +186.312 257.581 L +186.312 257.237 L +186.246 257.237 L +186.213 257.294 L +186.114 256.893 L +186.015 256.951 L +185.982 256.893 L +185.816 257.065 L +185.783 257.008 L +185.717 257.008 L +185.75 256.951 L +185.717 256.893 L +185.618 256.951 L +185.618 256.492 L +185.717 256.55 L +185.75 256.492 L +185.717 256.435 L +185.783 256.435 L +185.783 256.32 L +185.717 256.32 L +185.75 256.263 L +185.717 256.206 L +185.618 256.263 L +185.618 255.805 L +185.717 255.862 L +185.75 255.805 L +185.717 255.748 L +185.783 255.748 L +185.816 255.69 L +185.915 255.862 L +185.982 255.862 L +186.015 255.805 L +186.048 255.862 L +186.213 255.461 L +186.246 255.518 L +186.312 255.518 L +186.412 255.347 L +186.445 255.404 L +186.511 255.404 L +186.478 255.461 L +186.511 255.518 L +186.61 255.461 L +186.709 255.862 L +186.775 255.862 L +186.908 255.748 L +186.974 255.748 L +187.007 255.69 L +187.106 255.862 L +187.238 255.862 L +187.305 255.862 L +187.404 255.461 L +187.437 255.518 L +187.503 255.518 L +187.503 255.175 L +187.437 255.175 L +187.404 255.232 L +187.404 254.774 L +187.437 254.831 L +187.503 254.831 L +187.602 254.659 L +187.701 254.831 L +187.768 254.831 L +187.999 254.43 L +188.032 254.487 L +188.198 254.315 L +188.231 254.373 L +188.297 254.373 L +188.495 254.831 L +188.561 254.831 L +188.694 254.716 L +188.76 254.716 L +188.793 254.659 L +188.892 254.831 L +188.991 254.774 L +189.024 254.831 L +189.091 254.946 L +189.024 254.946 L +188.991 255.003 L +189.024 255.06 L +189.091 255.175 L +189.024 255.175 L +188.991 255.232 L +188.958 255.175 L +188.892 255.518 L +188.991 255.461 L +189.024 255.518 L +189.091 255.633 L +189.024 255.633 L +188.991 255.69 L +189.024 255.748 L +189.091 255.862 L +189.223 255.862 L +189.289 255.862 L +189.388 255.69 L +189.487 255.862 L +189.554 255.862 L +189.686 255.748 L +189.752 255.748 L +189.752 255.633 L +189.686 255.633 L +189.686 255.518 L +189.752 255.518 L +189.984 255.347 L +190.017 255.404 L +190.083 255.518 L +190.215 255.518 L +190.281 255.518 L +190.248 255.576 L +190.281 255.633 L +190.215 255.633 L +190.215 255.748 L +190.281 255.748 L +190.248 255.805 L +190.281 255.862 L +190.38 255.805 L +190.48 255.862 L +190.513 255.805 L +190.48 255.748 L +190.546 255.748 L +190.579 255.69 L +190.678 255.862 L +190.744 255.862 L +190.777 255.805 L +190.81 255.862 L +190.976 255.461 L +191.009 255.518 L +191.075 255.175 L +191.009 255.175 L +190.976 255.232 L +190.976 254.774 L +191.009 254.831 L +191.174 254.659 L +191.207 254.716 L +191.273 254.716 L +191.24 254.774 L +191.273 254.831 L +191.373 254.774 L +191.472 254.831 L +191.505 254.774 L +191.472 254.716 L +191.538 254.716 L +191.538 254.602 L +191.472 254.602 L +191.505 254.545 L +191.472 254.487 L +191.538 254.487 L +191.67 254.373 L +191.736 254.373 L +191.77 254.315 L +191.736 254.258 L +191.67 254.144 L +191.538 254.144 L +191.472 254.144 L +191.505 254.086 L +191.472 254.029 L +191.538 254.029 L +191.538 253.914 L +191.472 253.914 L +191.505 253.857 L +191.472 253.8 L +191.373 253.857 L +191.273 253.8 L +191.24 253.857 L +191.273 253.914 L +191.207 253.914 L +191.174 253.972 L +191.075 253.8 L +191.009 253.8 L +190.976 253.857 L +190.976 253.399 L +191.009 253.456 L +191.075 253.112 L +191.009 253.112 L +190.976 253.17 L +190.976 252.711 L +191.009 252.769 L +191.174 252.597 L +191.207 252.654 L +191.273 252.654 L +191.24 252.711 L +191.273 252.769 L +191.373 252.711 L +191.472 252.769 L +191.505 252.711 L +191.472 252.654 L +191.538 252.654 L +191.538 252.54 L +191.472 252.54 L +191.505 252.482 L +191.472 252.425 L +191.538 252.425 L +191.67 252.31 L +191.736 252.31 L +191.77 252.253 L +191.869 252.425 L +191.968 252.368 L +192.001 252.425 L +192.067 252.54 L +192.001 252.54 L +191.968 252.597 L +192.001 252.654 L +192.067 252.769 L +192.2 252.769 L +192.266 252.769 L +192.365 252.597 L +192.464 252.769 L +192.53 252.769 L +192.663 252.654 L +192.729 252.654 L +192.762 252.597 L +192.729 252.54 L +192.663 252.425 L +192.729 252.425 L +192.762 252.368 L +192.795 252.425 L +192.861 252.081 L +192.762 252.139 L +192.729 252.081 L +192.663 251.967 L +192.729 251.967 L +192.762 251.909 L +192.729 251.852 L +192.663 251.738 L +192.729 251.738 L +192.762 251.68 L +192.795 251.738 L +192.96 251.566 L +192.993 251.623 L +193.059 251.623 L +193.059 251.738 L +193.192 251.738 L +193.258 251.738 L +193.456 251.279 L +193.522 251.279 L +193.556 251.222 L +193.655 251.394 L +193.721 251.394 L +193.754 251.337 L +193.853 251.738 L +193.986 251.738 L +194.052 251.738 L +194.151 251.566 L +194.184 251.623 L +194.25 251.623 L +194.217 251.68 L +194.25 251.738 L +194.349 251.68 L +194.349 252.139 L +194.25 252.081 L +194.217 252.139 L +194.25 252.196 L +194.184 252.196 L +194.184 252.31 L +194.25 252.31 L +194.217 252.368 L +194.25 252.425 L +194.349 252.368 L +194.449 252.769 L +194.515 252.769 L +194.746 252.597 L +194.779 252.654 L +194.845 252.769 L +194.978 252.769 L +195.044 252.769 L +195.143 252.368 L +195.242 252.425 L +195.275 252.368 L +195.242 252.31 L +195.309 252.31 L +195.342 252.253 L +195.441 252.425 L +195.507 252.425 L +195.54 252.368 L +195.639 252.769 L +195.738 252.711 L +195.772 252.769 L +195.937 252.597 L +195.97 252.654 L +196.036 252.654 L +196.036 253.227 L +195.97 253.227 L +195.97 253.342 L +196.036 253.342 L +196.036 253.914 L +195.97 253.914 L +195.937 253.972 L +195.838 253.8 L +195.772 253.8 L +195.738 253.857 L +195.705 253.8 L +195.54 254.201 L +195.507 254.144 L +195.441 254.144 L +195.441 254.487 L +195.507 254.487 L +195.54 254.43 L +195.639 254.831 L +195.738 254.774 L +195.772 254.831 L +195.937 254.659 L +195.97 254.716 L +196.036 254.716 L +196.036 255.289 L +195.97 255.289 L +195.97 255.404 L +196.036 255.404 L +196.235 255.862 L +196.301 255.862 L +196.433 255.748 L +196.499 255.748 L +196.532 255.69 L +196.631 255.862 L +196.731 255.805 L +196.764 255.862 L +196.929 255.461 L +196.962 255.518 L +197.028 255.518 L +197.128 255.347 L +197.227 255.518 L +197.293 255.518 L +197.326 255.461 L +197.425 255.862 L +197.491 255.862 L +197.524 255.805 L +197.558 255.862 L +197.723 255.69 L +197.756 255.748 L +197.822 255.862 L +197.954 255.862 L +198.021 255.862 L +198.12 255.461 L +198.219 255.518 L +198.252 255.461 L +198.219 255.404 L +198.285 255.404 L +198.285 255.289 L +198.219 255.289 L +198.252 255.232 L +198.219 255.175 L +198.12 255.232 L +198.12 254.774 L +198.219 254.831 L +198.252 254.774 L +198.219 254.716 L +198.285 254.716 L +198.318 254.659 L +198.417 254.831 L +198.484 254.831 L +198.517 254.774 L +198.55 254.831 L +198.715 254.43 L +198.748 254.487 L +198.814 254.487 L +198.914 254.315 L +198.947 254.373 L +199.013 254.373 L +198.98 254.43 L +199.013 254.487 L +199.112 254.43 L +199.211 254.831 L +199.277 254.831 L +199.41 254.716 L +199.476 254.716 L +199.509 254.659 L +199.608 254.831 L +199.74 254.831 L +199.807 254.831 L +199.807 254.946 L +199.74 254.946 L +199.74 255.06 L +199.807 255.06 L +199.807 255.175 L +199.74 255.175 L +199.608 255.518 L +199.74 255.518 L +199.807 255.518 L +199.807 255.633 L +199.74 255.633 L +199.74 255.748 L +199.807 255.748 L +199.807 255.862 L +199.939 255.862 L +200.005 255.862 L +200.104 255.69 L +200.203 255.862 L +200.27 255.862 L +200.402 255.748 L +200.468 255.748 L +200.501 255.69 L +200.468 255.633 L +200.402 255.518 L +200.468 255.518 L +200.501 255.461 L +200.534 255.518 L +200.7 255.347 L +200.733 255.404 L +200.799 255.404 L +200.997 255.862 L +201.063 255.862 L +201.196 255.748 L +201.262 255.748 L +201.295 255.69 L +201.394 255.862 L +201.493 255.805 L +201.526 255.862 L +201.593 255.977 L +201.526 255.977 L +201.493 256.034 L +201.526 256.091 L +201.593 256.206 L +201.526 256.206 L +201.493 256.263 L +201.46 256.206 L +201.394 256.55 L +201.493 256.492 L +201.526 256.55 L +201.593 256.664 L +201.526 256.664 L +201.493 256.721 L +201.526 256.779 L +201.593 256.893 L +201.526 256.893 L +201.493 256.951 L +201.46 256.893 L +201.295 257.065 L +201.262 257.008 L +201.196 257.008 L +201.196 256.893 L +201.063 256.893 L +200.997 256.893 L +200.799 257.352 L +200.733 257.352 L +200.733 257.466 L +200.799 257.466 L +200.997 257.924 L +201.063 257.924 L +201.196 257.81 L +201.262 257.81 L +201.295 257.753 L +201.394 257.924 L +201.493 257.867 L +201.526 257.924 L +201.593 258.039 L +201.526 258.039 L +201.493 258.096 L +201.526 258.154 L +201.593 258.268 L +201.526 258.268 L +201.493 258.325 L +201.46 258.268 L +201.394 258.612 L +201.493 258.555 L +201.526 258.612 L +201.593 258.726 L +201.526 258.726 L +201.493 258.784 L +201.526 258.841 L +201.593 258.956 L +201.526 258.956 L +201.493 259.013 L +201.46 258.956 L +201.295 259.127 L +201.262 259.07 L +201.196 259.07 L +201.196 258.956 L +201.063 258.956 L +200.997 258.956 L +200.799 259.414 L +200.733 259.414 L +200.7 259.471 L +200.6 259.299 L +200.501 259.357 L +200.468 259.299 L +200.402 259.185 L +200.468 259.185 L +200.501 259.127 L +200.468 259.07 L +200.402 258.956 L +200.27 258.956 L +200.203 258.956 L +200.104 259.127 L +200.005 258.956 L +199.939 258.956 L +199.807 259.07 L +199.74 259.07 L +199.74 259.185 L +199.807 259.185 L +199.807 259.299 L +199.74 259.299 L +199.608 259.643 L +199.74 259.643 L +199.807 259.643 L +199.807 259.758 L +199.74 259.758 L +199.74 259.872 L +199.807 259.872 L +199.807 259.987 L +199.74 259.987 L +199.509 260.159 L +199.476 260.101 L +199.41 259.987 L +199.277 259.987 L +199.211 259.987 L +199.112 260.388 L +199.013 260.33 L +198.98 260.388 L +199.013 260.445 L +198.947 260.445 L +198.947 260.56 L +199.013 260.56 L +198.98 260.617 L +199.013 260.674 L +199.112 260.617 L +199.211 261.018 L +199.277 261.018 L +199.41 260.903 L +199.476 260.903 L +199.509 260.846 L +199.608 261.018 L +199.74 261.018 L +199.807 261.018 L +199.807 261.132 L +199.74 261.132 L +199.74 261.247 L +199.807 261.247 L +199.807 261.362 L +199.74 261.362 L +199.608 261.705 L +199.74 261.705 L +199.807 261.705 L +199.807 261.82 L +199.74 261.82 L +199.74 261.934 L +199.807 261.934 L +199.807 262.049 L +199.939 262.049 L +200.005 262.049 L +200.104 261.877 L +200.203 262.049 L +200.27 262.049 L +200.402 261.934 L +200.468 261.934 L +200.501 261.877 L +200.468 261.82 L +200.402 261.705 L +200.468 261.705 L +200.501 261.648 L +200.534 261.705 L +200.7 261.533 L +200.733 261.591 L +200.799 261.591 L +200.997 262.049 L +201.063 262.049 L +201.196 261.934 L +201.262 261.934 L +201.295 261.877 L +201.394 262.049 L +201.493 261.992 L +201.526 262.049 L +201.593 262.164 L +201.526 262.164 L +201.493 262.221 L +201.526 262.278 L +201.593 262.393 L +201.526 262.393 L +201.493 262.45 L +201.46 262.393 L +201.394 262.736 L +201.493 262.679 L +201.526 262.736 L +201.593 262.851 L +201.526 262.851 L +201.493 262.908 L +201.526 262.966 L +201.593 263.08 L +201.526 263.08 L +201.493 263.137 L +201.46 263.08 L +201.295 263.252 L +201.262 263.195 L +201.196 263.195 L +201.196 263.08 L +201.063 263.08 L +200.997 263.08 L +200.799 263.538 L +200.733 263.538 L +200.733 263.653 L +200.799 263.653 L +200.997 264.111 L +201.063 264.111 L +201.196 263.997 L +201.262 263.997 L +201.295 263.939 L +201.394 264.111 L +201.493 264.054 L +201.526 264.111 L +201.593 264.226 L +201.526 264.226 L +201.493 264.283 L +201.526 264.34 L +201.593 264.455 L +201.526 264.455 L +201.493 264.512 L +201.46 264.455 L +201.394 264.799 L +201.493 264.741 L +201.526 264.799 L +201.593 264.913 L +201.526 264.913 L +201.493 264.971 L +201.526 265.028 L +201.593 265.143 L +201.725 265.143 L +201.791 265.143 L +201.89 264.971 L +201.989 265.143 L +202.056 265.143 L +202.188 265.028 L +202.254 265.028 L +202.254 264.913 L +202.188 264.913 L +202.188 264.799 L +202.254 264.799 L +202.486 264.627 L +202.519 264.684 L +202.585 264.799 L +202.717 264.799 L +202.783 264.799 L +202.783 264.913 L +202.717 264.913 L +202.717 265.028 L +202.783 265.028 L +202.783 265.143 L +202.982 265.143 L +203.015 265.085 L +202.982 265.028 L +203.048 265.028 L +203.081 264.971 L +203.18 265.143 L +203.246 265.143 L +203.279 265.085 L +203.312 265.143 L +203.478 264.741 L +203.511 264.799 L +203.577 264.455 L +203.511 264.455 L +203.478 264.512 L +203.478 264.054 L +203.511 264.111 L +203.676 263.939 L +203.709 263.997 L +203.775 263.997 L +203.742 264.054 L +203.775 264.111 L +203.875 264.054 L +203.974 264.111 L +204.007 264.054 L +203.974 263.997 L +204.04 263.997 L +204.04 263.882 L +203.974 263.882 L +204.007 263.825 L +203.974 263.768 L +204.04 263.768 L +204.172 263.653 L +204.239 263.653 L +204.272 263.596 L +204.371 263.768 L +204.47 263.71 L +204.503 263.768 L +204.569 263.882 L +204.503 263.882 L +204.47 263.939 L +204.503 263.997 L +204.569 264.111 L +204.702 264.111 L +204.768 264.111 L +204.867 263.939 L +204.966 264.111 L +205.032 264.111 L +205.065 264.054 L +205.065 264.512 L +205.032 264.455 L +204.966 264.455 L +204.966 264.799 L +205.032 264.799 L +205.065 264.741 L +205.165 265.143 L +205.231 265.143 L +205.264 265.085 L +205.297 265.143 L +205.462 264.971 L +205.495 265.028 L +205.561 265.028 L +205.561 265.143 L +205.694 265.143 L +205.76 265.143 L +205.958 264.684 L +206.025 264.684 L +206.058 264.627 L +206.157 264.799 L +206.223 264.799 L +206.256 264.741 L +206.355 265.143 L +206.488 265.143 L +206.554 265.143 L +206.653 264.971 L +206.686 265.028 L +206.752 265.028 L +206.719 265.085 L +206.752 265.143 L +206.951 265.028 L +207.017 265.028 L +207.017 264.913 L +206.951 264.913 L +206.951 264.799 L +207.017 264.799 L +207.149 264.455 L +207.017 264.455 L +206.951 264.455 L +206.951 264.34 L +207.017 264.34 L +207.017 264.226 L +206.951 264.226 L +206.951 264.111 L +207.017 264.111 L +207.248 263.939 L +207.281 263.997 L +207.348 264.111 L +207.48 264.111 L +207.546 264.111 L +207.645 263.71 L +207.744 263.768 L +207.777 263.71 L +207.744 263.653 L +207.811 263.653 L +207.811 263.538 L +207.744 263.538 L +207.777 263.481 L +207.744 263.424 L +207.645 263.481 L +207.546 263.08 L +207.48 263.08 L +207.281 263.195 L +207.248 263.252 L +207.149 263.08 L +207.017 263.08 L +206.951 263.08 L +206.951 262.966 L +207.017 262.966 L +207.017 262.851 L +206.951 262.851 L +206.951 262.736 L +207.017 262.736 L +207.149 262.393 L +207.017 262.393 L +206.951 262.393 L +206.951 262.278 L +207.017 262.278 L +207.017 262.164 L +206.951 262.164 L +206.951 262.049 L +207.017 262.049 L +207.248 261.877 L +207.281 261.934 L +207.348 262.049 L +207.48 262.049 L +207.546 262.049 L +207.645 261.648 L +207.744 261.705 L +207.777 261.648 L +207.744 261.591 L +207.811 261.591 L +207.844 261.533 L +207.943 261.705 L +208.009 261.705 L +208.042 261.648 L +208.141 262.049 L +208.241 261.992 L +208.274 262.049 L +208.439 261.877 L +208.472 261.934 L +208.538 261.934 L +208.538 262.049 L +208.737 262.049 L +208.77 261.992 L +208.737 261.934 L +208.803 261.934 L +208.803 261.82 L +208.737 261.82 L +208.77 261.763 L +208.737 261.705 L +208.803 261.705 L +208.935 261.591 L +209.001 261.591 L +209.001 261.476 L +208.935 261.476 L +208.935 261.362 L +208.803 261.362 L +208.737 261.362 L +208.77 261.304 L +208.737 261.247 L +208.803 261.247 L +208.803 261.132 L +208.737 261.132 L +208.77 261.075 L +208.737 261.018 L +208.803 261.018 L +208.935 260.903 L +209.001 260.903 L +209.034 260.846 L +209.134 261.018 L +209.233 260.961 L +209.266 261.018 L +209.431 260.617 L +209.464 260.674 L +209.53 260.674 L +209.63 260.502 L +209.729 260.674 L +209.795 260.674 L +209.828 260.617 L +209.927 261.018 L +209.993 261.018 L +210.027 260.961 L +210.06 261.018 L +210.225 260.846 L +210.258 260.903 L +210.324 261.018 L +210.456 261.018 L +210.523 261.018 L +210.49 261.075 L +210.523 261.132 L +210.456 261.132 L +210.456 261.247 L +210.523 261.247 L +210.49 261.304 L +210.523 261.362 L +210.456 261.362 L +210.324 261.476 L +210.258 261.476 L +210.225 261.533 L +210.258 261.591 L +210.324 261.705 L +210.456 261.705 L +210.523 261.705 L +210.49 261.763 L +210.523 261.82 L +210.456 261.82 L +210.456 261.934 L +210.523 261.934 L +210.49 261.992 L +210.523 262.049 L +210.622 261.992 L +210.721 262.049 L +210.754 261.992 L +210.721 261.934 L +210.787 261.934 L +210.82 261.877 L +210.92 262.049 L +210.986 262.049 L +211.019 261.992 L +211.052 262.049 L +211.217 261.648 L +211.25 261.705 L +211.416 261.533 L +211.449 261.591 L +211.515 261.591 L +211.482 261.648 L +211.515 261.705 L +211.614 261.648 L +211.713 262.049 L +211.779 262.049 L +211.912 261.934 L +211.978 261.934 L +212.011 261.877 L +212.11 262.049 L +212.242 262.049 L +212.309 262.049 L +212.309 262.164 L +212.242 262.164 L +212.242 262.278 L +212.309 262.278 L +212.309 262.393 L +212.242 262.393 L +212.11 262.736 L +212.242 262.736 L +212.309 262.736 L +212.309 262.851 L +212.242 262.851 L +212.242 262.966 L +212.309 262.966 L +212.309 263.08 L +212.242 263.08 L +212.011 263.252 L +211.978 263.195 L +211.912 263.08 L +211.779 263.08 L +211.713 263.08 L +211.614 263.481 L +211.515 263.424 L +211.482 263.481 L +211.515 263.538 L +211.449 263.538 L +211.449 263.653 L +211.515 263.653 L +211.482 263.71 L +211.515 263.768 L +211.614 263.71 L +211.713 264.111 L +211.779 264.111 L +211.912 263.997 L +211.978 263.997 L +212.011 263.939 L +212.11 264.111 L +212.242 264.111 L +212.309 264.111 L +212.309 264.226 L +212.242 264.226 L +212.242 264.34 L +212.309 264.34 L +212.309 264.455 L +212.242 264.455 L +212.11 264.799 L +212.242 264.799 L +212.309 264.799 L +212.309 264.913 L +212.242 264.913 L +212.242 265.028 L +212.309 265.028 L +212.309 265.143 L +212.441 265.143 L +212.507 265.143 L +212.606 264.971 L +212.706 265.143 L +212.772 265.143 L +212.904 265.028 L +212.97 265.028 L +213.003 264.971 L +212.97 264.913 L +212.904 264.799 L +212.97 264.799 L +213.003 264.741 L +213.036 264.799 L +213.202 264.627 L +213.235 264.684 L +213.301 264.684 L +213.499 265.143 L +213.565 265.143 L +213.698 265.028 L +213.764 265.028 L +213.797 264.971 L +213.896 265.143 L +213.995 265.085 L +214.029 265.143 L +214.194 264.741 L +214.227 264.799 L +214.293 264.799 L +214.293 264.455 L +214.227 264.455 L +214.194 264.512 L +214.194 264.054 L +214.227 264.111 L +214.293 264.111 L +214.392 263.939 L +214.492 264.111 L +214.558 264.111 L +214.69 263.997 L +214.756 263.997 L +214.756 263.882 L +214.69 263.882 L +214.69 263.768 L +214.756 263.768 L +214.988 263.596 L +215.021 263.653 L +215.087 263.768 L +215.219 263.768 L +215.285 263.768 L +215.285 263.882 L +215.219 263.882 L +215.219 263.997 L +215.285 263.997 L +215.285 264.111 L +215.484 264.111 L +215.517 264.054 L +215.484 263.997 L +215.55 263.997 L +215.583 263.939 L +215.682 264.111 L +215.748 264.111 L +215.781 264.054 L +215.781 264.512 L +215.748 264.455 L +215.682 264.799 L +215.748 264.799 L +215.781 264.741 L +215.881 265.143 L +215.98 265.085 L +216.013 265.143 L +216.178 264.971 L +216.211 265.028 L +216.278 265.028 L +216.244 265.085 L +216.278 265.143 L +216.377 265.085 L +216.476 265.143 L +216.509 265.085 L +216.476 265.028 L +216.542 265.028 L +216.542 264.913 L +216.476 264.913 L +216.509 264.856 L +216.476 264.799 L +216.542 264.799 L +216.674 264.684 L +216.741 264.684 L +216.774 264.627 L +216.873 264.799 L +216.972 264.741 L +217.005 264.799 L +217.071 264.913 L +217.005 264.913 L +216.972 264.971 L +217.005 265.028 L +217.071 265.143 L +217.204 265.143 L +217.27 265.143 L +217.369 264.971 L +217.468 265.143 L +217.534 265.143 L +217.667 265.028 L +217.733 265.028 L +217.766 264.971 L +217.733 264.913 L +217.667 264.799 L +217.733 264.799 L +217.766 264.741 L +217.799 264.799 L +217.865 264.455 L +217.766 264.512 L +217.733 264.455 L +217.667 264.34 L +217.733 264.34 L +217.766 264.283 L +217.733 264.226 L +217.667 264.111 L +217.733 264.111 L +217.766 264.054 L +217.799 264.111 L +217.964 263.939 L +217.997 263.997 L +218.064 263.997 L +218.064 264.111 L +218.196 264.111 L +218.262 264.111 L +218.46 263.653 L +218.527 263.653 L +218.527 263.538 L +218.46 263.538 L +218.262 263.08 L +218.196 263.08 L +218.064 263.195 L +217.997 263.195 L +217.964 263.252 L +217.865 263.08 L +217.766 263.137 L +217.733 263.08 L +217.667 262.966 L +217.733 262.966 L +217.766 262.908 L +217.733 262.851 L +217.667 262.736 L +217.733 262.736 L +217.766 262.679 L +217.799 262.736 L +217.865 262.393 L +217.766 262.45 L +217.733 262.393 L +217.667 262.278 L +217.733 262.278 L +217.766 262.221 L +217.733 262.164 L +217.667 262.049 L +217.733 262.049 L +217.766 261.992 L +217.799 262.049 L +217.964 261.877 L +217.997 261.934 L +218.064 261.934 L +218.064 262.049 L +218.196 262.049 L +218.262 262.049 L +218.46 261.591 L +218.527 261.591 L +218.56 261.533 L +218.659 261.705 L +218.725 261.705 L +218.758 261.648 L +218.857 262.049 L +218.99 262.049 L +219.056 262.049 L +219.155 261.877 L +219.188 261.934 L +219.254 261.934 L +219.221 261.992 L +219.254 262.049 L +219.453 261.934 L +219.519 261.934 L +219.519 261.82 L +219.453 261.82 L +219.453 261.705 L +219.519 261.705 L +219.651 261.591 L +219.717 261.591 L +219.75 261.533 L +219.717 261.476 L +219.651 261.362 L +219.519 261.362 L +219.453 261.362 L +219.453 261.247 L +219.519 261.247 L +219.519 261.132 L +219.453 261.132 L +219.453 261.018 L +219.519 261.018 L +219.651 260.903 L +219.717 260.903 L +219.75 260.846 L +219.85 261.018 L +219.982 261.018 L +220.048 261.018 L +220.147 260.617 L +220.246 260.674 L +220.28 260.617 L +220.246 260.56 L +220.313 260.56 L +220.313 260.445 L +220.246 260.445 L +220.28 260.388 L +220.246 260.33 L +220.147 260.388 L +220.048 259.987 L +219.982 259.987 L +219.75 260.159 L +219.717 260.101 L +219.651 259.987 L +219.519 259.987 L +219.453 259.987 L +219.453 259.872 L +219.519 259.872 L +219.519 259.758 L +219.453 259.758 L +219.453 259.643 L +219.519 259.643 L +219.651 259.528 L +219.717 259.528 L +219.75 259.471 L +219.717 259.414 L +219.651 259.299 L +219.519 259.299 L +219.453 259.299 L +219.453 259.185 L +219.519 259.185 L +219.519 259.07 L +219.453 259.07 L +219.453 258.956 L +219.254 258.956 L +219.221 259.013 L +219.254 259.07 L +219.188 259.07 L +219.155 259.127 L +219.056 258.956 L +218.99 258.956 L +218.758 259.357 L +218.725 259.299 L +218.56 259.471 L +218.527 259.414 L +218.46 259.414 L +218.262 258.956 L +218.196 258.956 L +218.064 259.07 L +217.997 259.07 L +217.964 259.127 L +217.865 258.956 L +217.766 259.013 L +217.733 258.956 L +217.667 258.841 L +217.733 258.841 L +217.766 258.784 L +217.733 258.726 L +217.667 258.612 L +217.733 258.612 L +217.766 258.555 L +217.799 258.612 L +217.865 258.268 L +217.766 258.325 L +217.733 258.268 L +217.667 258.154 L +217.733 258.154 L +217.766 258.096 L +217.733 258.039 L +217.667 257.924 L +217.733 257.924 L +217.766 257.867 L +217.799 257.924 L +217.964 257.753 L +217.997 257.81 L +218.064 257.81 L +218.064 257.924 L +218.196 257.924 L +218.262 257.924 L +218.46 257.466 L +218.527 257.466 L +218.527 257.352 L +218.46 257.352 L +218.262 256.893 L +218.196 256.893 L +218.064 257.008 L +217.997 257.008 L +217.964 257.065 L +217.865 256.893 L +217.766 256.951 L +217.733 256.893 L +217.667 256.779 L +217.733 256.779 L +217.766 256.721 L +217.733 256.664 L +217.667 256.55 L +217.733 256.55 L +217.766 256.492 L +217.799 256.55 L +217.865 256.206 L +217.766 256.263 L +217.733 256.206 L +217.667 256.091 L +217.733 256.091 L +217.766 256.034 L +217.733 255.977 L +217.667 255.862 L +217.733 255.862 L +217.766 255.805 L +217.799 255.862 L +217.964 255.69 L +217.997 255.748 L +218.064 255.748 L +218.064 255.862 L +218.196 255.862 L +218.262 255.862 L +218.46 255.404 L +218.527 255.404 L +218.56 255.347 L +218.659 255.518 L +218.725 255.518 L +218.758 255.461 L +218.857 255.862 L +218.99 255.862 L +219.056 255.862 L +219.155 255.69 L +219.188 255.748 L +219.254 255.748 L +219.221 255.805 L +219.254 255.862 L +219.453 255.748 L +219.519 255.748 L +219.519 255.633 L +219.453 255.633 L +219.453 255.518 L +219.519 255.518 L +219.651 255.404 L +219.717 255.404 L +219.75 255.347 L +219.717 255.289 L +219.651 255.175 L +219.519 255.175 L +219.453 255.175 L +219.453 255.06 L +219.519 255.06 L +219.519 254.946 L +219.453 254.946 L +219.453 254.831 L +219.519 254.831 L +219.651 254.716 L +219.717 254.716 L +219.75 254.659 L +219.85 254.831 L +219.982 254.831 L +220.048 254.831 L +220.147 254.43 L +220.246 254.487 L +220.28 254.43 L +220.246 254.373 L +220.313 254.373 L +220.346 254.315 L +220.445 254.487 L +220.511 254.487 L +220.544 254.43 L +220.643 254.831 L +220.743 254.774 L +220.776 254.831 L +220.941 254.659 L +220.974 254.716 L +221.04 254.716 L +221.04 255.289 L +220.974 255.289 L +220.974 255.404 L +221.04 255.404 L +221.239 255.862 L +221.305 255.862 L +221.437 255.748 L +221.503 255.748 L +221.536 255.69 L +221.636 255.862 L +221.735 255.805 L +221.768 255.862 L +221.933 255.461 L +221.966 255.518 L +222.032 255.518 L +222.132 255.347 L +222.231 255.518 L +222.297 255.518 L +222.33 255.461 L +222.429 255.862 L +222.495 255.862 L +222.529 255.805 L +222.562 255.862 L +222.727 255.69 L +222.76 255.748 L +222.826 255.862 L +222.959 255.862 L +223.025 255.862 L +223.124 255.461 L +223.223 255.518 L +223.256 255.461 L +223.223 255.404 L +223.289 255.404 L +223.289 255.289 L +223.223 255.289 L +223.256 255.232 L +223.223 255.175 L +223.124 255.232 L +223.124 254.774 L +223.223 254.831 L +223.256 254.774 L +223.223 254.716 L +223.289 254.716 L +223.322 254.659 L +223.422 254.831 L +223.488 254.831 L +223.521 254.774 L +223.554 254.831 L +223.719 254.43 L +223.752 254.487 L +223.818 254.144 L +223.752 254.144 L +223.719 254.201 L +223.62 253.8 L +223.521 253.857 L +223.488 253.8 L +223.322 253.972 L +223.289 253.914 L +223.223 253.914 L +223.256 253.857 L +223.223 253.8 L +223.124 253.857 L +223.124 253.399 L +223.223 253.456 L +223.256 253.399 L +223.223 253.342 L +223.289 253.342 L +223.289 253.227 L +223.223 253.227 L +223.256 253.17 L +223.223 253.112 L +223.124 253.17 L +223.124 252.711 L +223.223 252.769 L +223.256 252.711 L +223.223 252.654 L +223.289 252.654 L +223.322 252.597 L +223.422 252.769 L +223.488 252.769 L +223.521 252.711 L +223.554 252.769 L +223.719 252.368 L +223.752 252.425 L +223.918 252.253 L +223.951 252.31 L +224.017 252.31 L +223.984 252.368 L +224.017 252.425 L +224.116 252.368 L +224.215 252.769 L +224.282 252.769 L +224.414 252.654 L +224.48 252.654 L +224.513 252.597 L +224.612 252.769 L +224.745 252.769 L +224.811 252.769 L +224.91 252.368 L +224.943 252.425 L +225.009 252.425 L +225.009 252.081 L +224.943 252.081 L +224.91 252.139 L +224.91 251.68 L +224.943 251.738 L +225.009 251.738 L +225.108 251.566 L +225.208 251.738 L +225.274 251.738 L +225.406 251.623 L +225.472 251.623 L +225.505 251.566 L +225.472 251.508 L +225.406 251.394 L +225.472 251.394 L +225.505 251.337 L +225.538 251.394 L +225.604 251.05 L +225.505 251.107 L +225.472 251.05 L +225.406 250.936 L +225.472 250.936 L +225.505 250.878 L +225.472 250.821 L +225.406 250.821 L +225.406 250.706 L +225.274 250.706 L +225.208 250.706 L +225.108 250.878 L +225.009 250.706 L +224.943 250.706 L +224.91 250.764 L +224.91 250.305 L +224.943 250.363 L +225.009 250.363 L +225.009 250.019 L +224.943 250.019 L +224.91 250.076 L +224.811 249.675 L +224.745 249.675 L +224.513 249.847 L +224.48 249.79 L +224.414 249.79 L +224.414 249.675 L +224.282 249.675 L +224.215 249.675 L +224.116 250.076 L +224.017 250.019 L +223.984 250.076 L +224.017 250.134 L +223.951 250.134 L +223.918 250.191 L +223.818 250.019 L +223.752 250.019 L +223.719 250.076 L +223.62 249.675 L +223.521 249.733 L +223.488 249.675 L +223.322 249.847 L +223.289 249.79 L +223.223 249.79 L +223.256 249.733 L +223.223 249.675 L +223.124 249.733 L +223.124 249.274 L +223.223 249.331 L +223.256 249.274 L +223.223 249.217 L +223.289 249.217 L +223.289 249.102 L +223.223 249.102 L +223.256 249.045 L +223.223 248.988 L +223.124 249.045 L +223.124 248.587 L +223.223 248.644 L +223.256 248.587 L +223.223 248.529 L +223.289 248.529 L +223.322 248.472 L +223.422 248.644 L +223.488 248.644 L +223.521 248.587 L +223.554 248.644 L +223.719 248.243 L +223.752 248.3 L +223.818 247.957 L +223.752 247.957 L +223.719 248.014 L +223.62 247.613 L +223.521 247.67 L +223.488 247.613 L +223.322 247.785 L +223.289 247.727 L +223.223 247.727 L +223.256 247.67 L +223.223 247.613 L +223.124 247.67 L +223.124 247.212 L +223.223 247.269 L +223.256 247.212 L +223.223 247.155 L +223.289 247.155 L +223.289 247.04 L +223.223 247.04 L +223.256 246.983 L +223.223 246.925 L +223.124 246.983 L +223.025 246.582 L +222.959 246.582 L +222.826 246.696 L +222.76 246.696 L +222.727 246.754 L +222.628 246.582 L +222.529 246.639 L +222.495 246.582 L +222.33 246.983 L +222.297 246.925 L +222.231 246.925 L +222.132 247.097 L +222.032 246.925 L +221.966 246.925 L +221.933 246.983 L +221.834 246.582 L +221.768 246.582 L +221.735 246.639 L +221.702 246.582 L +221.536 246.754 L +221.503 246.696 L +221.437 246.696 L +221.437 246.582 L +221.305 246.582 L +221.239 246.582 L +221.04 247.04 L +220.974 247.04 L +220.974 247.155 L +221.04 247.155 L +221.04 247.727 L +220.974 247.727 L +220.941 247.785 L +220.842 247.613 L +220.776 247.613 L +220.743 247.67 L +220.709 247.613 L +220.544 248.014 L +220.511 247.957 L +220.445 247.957 L +220.346 248.128 L +220.313 248.071 L +220.246 248.071 L +220.28 248.014 L +220.246 247.957 L +220.147 248.014 L +220.048 247.613 L +219.982 247.613 L +219.75 247.785 L +219.717 247.727 L +219.651 247.613 L +219.519 247.613 L +219.453 247.613 L +219.453 247.498 L +219.519 247.498 L +219.519 247.384 L +219.453 247.384 L +219.453 247.269 L +219.519 247.269 L +219.651 247.155 L +219.717 247.155 L +219.75 247.097 L +219.717 247.04 L +219.651 246.925 L +219.519 246.925 L +219.453 246.925 L +219.453 246.811 L +219.519 246.811 L +219.519 246.696 L +219.453 246.696 L +219.453 246.582 L +219.254 246.582 L +219.221 246.639 L +219.254 246.696 L +219.188 246.696 L +219.155 246.754 L +219.056 246.582 L +218.99 246.582 L +218.758 246.983 L +218.725 246.925 L +218.56 247.097 L +218.527 247.04 L +218.46 247.04 L +218.262 246.582 L +218.196 246.582 L +218.064 246.696 L +217.997 246.696 L +217.964 246.754 L +217.865 246.582 L +217.766 246.639 L +217.733 246.582 L +217.667 246.467 L +217.733 246.467 L +217.766 246.41 L +217.733 246.353 L +217.667 246.238 L +217.733 246.238 L +217.766 246.181 L +217.799 246.238 L +217.865 245.894 L +217.766 245.952 L +217.733 245.894 L +217.667 245.78 L +217.733 245.78 L +217.766 245.722 L +217.733 245.665 L +217.667 245.665 L +217.667 245.551 L +217.733 245.551 L +217.766 245.493 L +217.799 245.551 L +217.964 245.379 L +217.997 245.436 L +218.064 245.436 L +218.064 245.551 L +218.196 245.551 L +218.262 245.551 L +218.46 245.092 L +218.527 245.092 L +218.527 244.978 L +218.46 244.978 L +218.262 244.519 L +218.196 244.519 L +218.064 244.634 L +217.997 244.634 L +217.964 244.691 L +217.865 244.519 L +217.766 244.577 L +217.733 244.519 L +217.667 244.405 L +217.733 244.405 L +217.766 244.348 L +217.733 244.29 L +217.667 244.176 L +217.733 244.176 L +217.766 244.118 L +217.799 244.176 L +217.865 243.832 L +217.766 243.889 L +217.733 243.832 L +217.667 243.717 L +217.733 243.717 L +217.766 243.66 L +217.733 243.603 L +217.667 243.488 L +217.733 243.488 L +217.766 243.431 L +217.799 243.488 L +217.964 243.316 L +217.997 243.374 L +218.064 243.374 L +218.064 243.488 L +218.196 243.488 L +218.262 243.488 L +218.46 243.03 L +218.527 243.03 L +218.56 242.973 L +218.659 243.145 L +218.725 243.145 L +218.758 243.087 L +218.857 243.488 L +218.99 243.488 L +219.056 243.488 L +219.155 243.316 L +219.188 243.374 L +219.254 243.374 L +219.221 243.431 L +219.254 243.488 L +219.453 243.374 L +219.519 243.374 L +219.519 243.259 L +219.453 243.259 L +219.453 243.145 L +219.519 243.145 L +219.651 243.03 L +219.717 243.03 L +219.75 242.973 L +219.717 242.915 L +219.519 242.801 L +219.453 242.801 L +219.453 242.686 L +219.519 242.686 L +219.519 242.572 L +219.453 242.572 L +219.453 242.457 L +219.519 242.457 L +219.651 242.343 L +219.717 242.343 L +219.75 242.285 L +219.85 242.457 L +219.982 242.457 L +220.048 242.457 L +220.147 242.056 L +220.246 242.113 L +220.28 242.056 L +220.246 241.999 L +220.313 241.999 L +220.313 241.884 L +220.246 241.884 L +220.28 241.827 L +220.246 241.77 L +220.147 241.827 L +220.048 241.426 L +219.982 241.426 L +219.75 241.598 L +219.717 241.541 L +219.651 241.426 L +219.519 241.426 L +219.453 241.426 L +219.453 241.311 L +219.519 241.311 L +219.519 241.197 L +219.453 241.197 L +219.453 241.082 L +219.519 241.082 L +219.651 240.968 L +219.717 240.968 L +219.75 240.91 L +219.717 240.853 L +219.651 240.739 L +219.519 240.739 L +219.453 240.739 L +219.453 240.624 L +219.519 240.624 L +219.519 240.509 L +219.453 240.509 L +219.453 240.395 L +219.254 240.395 L +219.221 240.452 L +219.254 240.509 L +219.188 240.509 L +219.155 240.567 L +219.056 240.395 L +218.99 240.395 L +218.758 240.796 L +218.725 240.739 L +218.56 240.91 L +218.527 240.853 L +218.46 240.853 L +218.262 240.395 L +218.196 240.395 L +218.064 240.509 L +217.997 240.509 L +217.964 240.567 L +217.865 240.395 L +217.766 240.452 L +217.733 240.395 L +217.667 240.28 L +217.733 240.28 L +217.766 240.223 L +217.733 240.166 L +217.667 240.051 L +217.733 240.051 L +217.766 239.994 L +217.799 240.051 L +217.865 239.707 L +217.766 239.765 L +217.733 239.707 L +217.667 239.593 L +217.733 239.593 L +217.766 239.536 L +217.733 239.478 L +217.667 239.364 L +217.733 239.364 L +217.766 239.306 L +217.799 239.364 L +217.964 239.192 L +217.997 239.249 L +218.064 239.249 L +218.064 239.364 L +218.196 239.364 L +218.262 239.364 L +218.46 238.905 L +218.527 238.905 L +218.527 238.791 L +218.46 238.791 L +218.262 238.333 L +218.196 238.333 L +218.064 238.447 L +217.997 238.447 L +217.964 238.504 L +217.865 238.333 L +217.766 238.39 L +217.733 238.333 L +217.667 238.218 L +217.733 238.218 L +217.766 238.161 L +217.733 238.103 L +217.667 237.989 L +217.733 237.989 L +217.766 237.932 L +217.799 237.989 L +217.865 237.645 L +217.766 237.702 L +217.733 237.645 L +217.667 237.531 L +217.733 237.531 L +217.766 237.473 L +217.733 237.416 L +217.667 237.301 L +217.733 237.301 L +217.766 237.244 L +217.799 237.301 L +217.964 237.13 L +217.997 237.187 L +218.064 237.187 L +218.064 237.301 L +218.196 237.301 L +218.262 237.301 L +218.46 236.843 L +218.527 236.843 L +218.56 236.786 L +218.659 236.958 L +218.725 236.958 L +218.758 236.9 L +218.857 237.301 L +218.99 237.301 L +219.056 237.301 L +219.155 237.13 L +219.188 237.187 L +219.254 237.187 L +219.221 237.244 L +219.254 237.301 L +219.453 237.187 L +219.519 237.187 L +219.519 237.072 L +219.453 237.072 L +219.453 236.958 L +219.519 236.958 L +219.651 236.843 L +219.717 236.843 L +219.75 236.786 L +219.717 236.729 L +219.651 236.614 L +219.519 236.614 L +219.453 236.614 L +219.453 236.499 L +219.519 236.499 L +219.519 236.385 L +219.453 236.385 L +219.453 236.27 L +219.519 236.27 L +219.651 236.156 L +219.717 236.156 L +219.75 236.098 L +219.85 236.27 L +219.982 236.27 L +220.048 236.27 L +220.147 235.869 L +220.246 235.927 L +220.28 235.869 L +220.246 235.812 L +220.313 235.812 L +220.346 235.755 L +220.445 235.927 L +220.511 235.927 L +220.544 235.869 L +220.643 236.27 L +220.743 236.213 L +220.776 236.27 L +220.941 236.098 L +220.974 236.156 L +221.04 236.156 L +221.04 236.729 L +220.974 236.729 L +220.974 236.843 L +221.04 236.843 L +221.239 237.301 L +221.305 237.301 L +221.437 237.187 L +221.503 237.187 L +221.536 237.13 L +221.636 237.301 L +221.735 237.244 L +221.768 237.301 L +221.933 236.9 L +221.966 236.958 L +222.032 236.958 L +222.132 236.786 L +222.231 236.958 L +222.297 236.958 L +222.33 236.9 L +222.429 237.301 L +222.495 237.301 L +222.529 237.244 L +222.562 237.301 L +222.727 237.13 L +222.76 237.187 L +222.826 237.301 L +222.959 237.301 L +223.025 237.301 L +223.124 236.9 L +223.223 236.958 L +223.256 236.9 L +223.223 236.843 L +223.289 236.843 L +223.289 236.729 L +223.223 236.729 L +223.256 236.671 L +223.223 236.614 L +223.124 236.671 L +223.124 236.213 L +223.223 236.27 L +223.256 236.213 L +223.223 236.156 L +223.289 236.156 L +223.322 236.098 L +223.422 236.27 L +223.488 236.27 L +223.521 236.213 L +223.554 236.27 L +223.719 235.869 L +223.752 235.927 L +223.818 235.583 L +223.752 235.583 L +223.719 235.64 L +223.62 235.239 L +223.521 235.296 L +223.488 235.239 L +223.322 235.411 L +223.289 235.354 L +223.223 235.354 L +223.256 235.296 L +223.223 235.239 L +223.124 235.296 L +223.124 234.838 L +223.223 234.895 L +223.256 234.838 L +223.223 234.781 L +223.289 234.781 L +223.289 234.666 L +223.223 234.666 L +223.256 234.609 L +223.223 234.552 L +223.124 234.609 L +223.124 234.151 L +223.223 234.208 L +223.256 234.151 L +223.223 234.093 L +223.289 234.093 L +223.322 234.036 L +223.422 234.208 L +223.488 234.208 L +223.521 234.151 L +223.554 234.208 L +223.719 233.807 L +223.752 233.864 L +223.918 233.692 L +223.951 233.75 L +224.017 233.75 L +223.984 233.807 L +224.017 233.864 L +224.116 233.807 L +224.215 234.208 L +224.282 234.208 L +224.414 234.093 L +224.48 234.093 L +224.513 234.036 L +224.612 234.208 L +224.745 234.208 L +224.811 234.208 L +224.91 233.807 L +224.943 233.864 L +225.009 233.864 L +225.009 233.52 L +224.943 233.52 L +224.91 233.578 L +224.91 233.119 L +224.943 233.177 L +225.009 233.177 L +225.108 233.005 L +225.208 233.177 L +225.274 233.177 L +225.406 233.062 L +225.472 233.062 L +225.505 233.005 L +225.472 232.948 L +225.406 232.833 L +225.472 232.833 L +225.505 232.776 L +225.538 232.833 L +225.704 232.661 L +225.737 232.718 L +225.803 232.718 L +225.803 232.833 L +225.935 232.833 L +226.001 232.833 L +225.968 232.89 L +226.001 232.948 L +225.935 232.948 L +225.935 233.062 L +226.001 233.062 L +225.968 233.119 L +226.001 233.177 L +226.2 233.062 L +226.266 233.062 L +226.299 233.005 L +226.398 233.177 L +226.497 233.119 L +226.531 233.177 L +226.597 233.291 L +226.531 233.291 L +226.497 233.349 L +226.531 233.406 L +226.597 233.52 L +226.531 233.52 L +226.497 233.578 L +226.464 233.52 L +226.398 233.864 L +226.497 233.807 L +226.531 233.864 L +226.597 233.979 L +226.531 233.979 L +226.497 234.036 L +226.531 234.093 L +226.597 234.208 L +226.729 234.208 L +226.795 234.208 L +226.894 234.036 L +226.994 234.208 L +227.06 234.208 L +227.192 234.093 L +227.258 234.093 L +227.258 233.979 L +227.192 233.979 L +227.192 233.864 L +227.258 233.864 L +227.49 233.692 L +227.523 233.75 L +227.589 233.864 L +227.721 233.864 L +227.787 233.864 L +227.787 233.979 L +227.721 233.979 L +227.721 234.093 L +227.787 234.093 L +227.787 234.208 L +227.986 234.208 L +228.019 234.151 L +227.986 234.093 L +228.052 234.093 L +228.085 234.036 L +228.184 234.208 L +228.25 234.208 L +228.283 234.151 L +228.283 234.609 L +228.25 234.552 L +228.184 234.552 L +228.184 234.895 L +228.25 234.895 L +228.283 234.838 L +228.283 235.296 L +228.25 235.239 L +228.184 235.239 L +228.085 235.411 L +228.052 235.354 L +227.986 235.354 L +228.019 235.296 L +227.986 235.239 L +227.787 235.354 L +227.721 235.354 L +227.721 235.468 L +227.787 235.468 L +227.787 235.583 L +227.721 235.583 L +227.589 235.697 L +227.523 235.697 L +227.49 235.755 L +227.523 235.812 L +227.589 235.927 L +227.721 235.927 L +227.787 235.927 L +227.787 236.041 L +227.721 236.041 L +227.721 236.156 L +227.787 236.156 L +227.787 236.27 L +227.986 236.27 L +228.019 236.213 L +227.986 236.156 L +228.052 236.156 L +228.085 236.098 L +228.184 236.27 L +228.25 236.27 L +228.283 236.213 L +228.283 236.671 L +228.25 236.614 L +228.184 236.614 L +228.184 236.958 L +228.25 236.958 L +228.283 236.9 L +228.383 237.301 L +228.482 237.244 L +228.515 237.301 L +228.68 237.13 L +228.713 237.187 L +228.78 237.187 L +228.747 237.244 L +228.78 237.301 L +228.879 237.244 L +228.978 237.301 L +229.011 237.244 L +228.978 237.187 L +229.044 237.187 L +229.044 237.072 L +228.978 237.072 L +229.011 237.015 L +228.978 236.958 L +229.044 236.958 L +229.176 236.843 L +229.243 236.843 L +229.276 236.786 L +229.375 236.958 L +229.474 236.9 L +229.507 236.958 L +229.573 237.072 L +229.507 237.072 L +229.474 237.13 L +229.507 237.187 L +229.573 237.301 L +229.706 237.301 L +229.772 237.301 L +229.871 237.13 L +229.97 237.301 L +230.036 237.301 L +230.169 237.187 L +230.235 237.187 L +230.268 237.13 L +230.235 237.072 L +230.169 236.958 L +230.235 236.958 L +230.268 236.9 L +230.301 236.958 L +230.367 236.614 L +230.268 236.671 L +230.235 236.614 L +230.169 236.499 L +230.235 236.499 L +230.268 236.442 L +230.235 236.385 L +230.169 236.27 L +230.235 236.27 L +230.268 236.213 L +230.301 236.27 L +230.466 236.098 L +230.499 236.156 L +230.566 236.156 L +230.566 236.27 L +230.698 236.27 L +230.764 236.27 L +230.963 235.812 L +231.029 235.812 L +231.062 235.755 L +231.161 235.927 L +231.227 235.927 L +231.26 235.869 L +231.359 236.27 L +231.492 236.27 L +231.558 236.27 L +231.657 236.098 L +231.69 236.156 L +231.756 236.156 L +231.723 236.213 L +231.756 236.27 L +231.856 236.213 L +231.856 236.671 L +231.756 236.614 L +231.723 236.671 L +231.756 236.729 L +231.69 236.729 L +231.69 236.843 L +231.756 236.843 L +231.723 236.9 L +231.756 236.958 L +231.856 236.9 L +231.955 237.301 L +232.021 237.301 L +232.219 237.187 L +232.252 237.13 L +232.352 237.301 L +232.484 237.301 L +232.55 237.301 L +232.649 236.9 L +232.749 236.958 L +232.782 236.9 L +232.749 236.843 L +232.815 236.843 L +232.848 236.786 L +232.947 236.958 L +233.013 236.958 L +233.046 236.9 L +233.145 237.301 L +233.245 237.244 L +233.278 237.301 L +233.443 237.13 L +233.476 237.187 L +233.542 237.187 L +233.542 237.301 L +233.741 237.301 L +233.774 237.244 L +233.741 237.187 L +233.807 237.187 L +233.807 237.072 L +233.741 237.072 L +233.774 237.015 L +233.741 236.958 L +233.807 236.958 L +233.939 236.843 L +234.005 236.843 L +234.005 236.729 L +233.939 236.729 L +233.939 236.614 L +233.807 236.614 L +233.741 236.614 L +233.774 236.557 L +233.741 236.499 L +233.807 236.499 L +233.807 236.385 L +233.741 236.385 L +233.774 236.328 L +233.741 236.27 L +233.807 236.27 L +233.939 236.156 L +234.005 236.156 L +234.038 236.098 L +234.138 236.27 L +234.237 236.213 L +234.27 236.27 L +234.435 235.869 L +234.468 235.927 L +234.535 235.927 L +234.535 235.583 L +234.468 235.583 L +234.435 235.64 L +234.336 235.239 L +234.27 235.239 L +234.237 235.296 L +234.204 235.239 L +234.038 235.411 L +234.005 235.354 L +233.939 235.354 L +233.939 235.239 L +233.807 235.239 L +233.741 235.239 L +233.774 235.182 L +233.741 235.125 L +233.807 235.125 L +233.807 235.01 L +233.741 235.01 L +233.774 234.953 L +233.741 234.895 L +233.807 234.895 L +233.939 234.781 L +234.005 234.781 L +234.005 234.666 L +233.939 234.666 L +233.939 234.552 L +233.807 234.552 L +233.741 234.552 L +233.774 234.494 L +233.741 234.437 L +233.807 234.437 L +233.807 234.323 L +233.741 234.323 L +233.774 234.265 L +233.741 234.208 L +233.807 234.208 L +233.939 234.093 L +234.005 234.093 L +234.038 234.036 L +234.138 234.208 L +234.237 234.151 L +234.27 234.208 L +234.435 233.807 L +234.468 233.864 L +234.535 233.864 L +234.634 233.692 L +234.733 233.864 L +234.799 233.864 L +234.832 233.807 L +234.931 234.208 L +234.998 234.208 L +235.031 234.151 L +235.064 234.208 L +235.229 234.036 L +235.262 234.093 L +235.328 234.208 L +235.461 234.208 L +235.527 234.208 L +235.626 233.807 L +235.725 233.864 L +235.758 233.807 L +235.725 233.75 L +235.791 233.75 L +235.791 233.635 L +235.725 233.635 L +235.758 233.578 L +235.725 233.52 L +235.626 233.578 L +235.626 233.119 L +235.725 233.177 L +235.758 233.119 L +235.725 233.062 L +235.791 233.062 L +235.824 233.005 L +235.924 233.177 L +235.99 233.177 L +236.023 233.119 L +236.056 233.177 L +236.221 232.776 L +236.254 232.833 L +236.321 232.489 L +236.254 232.489 L +236.221 232.547 L +236.122 232.146 L +236.023 232.203 L +235.99 232.146 L +235.824 232.317 L +235.791 232.26 L +235.725 232.26 L +235.758 232.203 L +235.725 232.146 L +235.626 232.203 L +235.626 231.745 L +235.725 231.802 L +235.758 231.745 L +235.725 231.687 L +235.791 231.687 L +235.791 231.573 L +235.725 231.573 L +235.758 231.515 L +235.725 231.458 L +235.626 231.515 L +235.527 231.114 L +235.461 231.114 L +235.328 231.229 L +235.262 231.229 L +235.229 231.286 L +235.13 231.114 L +235.031 231.172 L +234.998 231.114 L +234.832 231.515 L +234.799 231.458 L +234.733 231.458 L +234.634 231.63 L +234.535 231.458 L +234.468 231.458 L +234.435 231.515 L +234.336 231.114 L +234.27 231.114 L +234.237 231.172 L +234.204 231.114 L +234.038 231.286 L +234.005 231.229 L +233.939 231.229 L +233.939 231.114 L +233.807 231.114 L +233.741 231.114 L +233.774 231.057 L +233.741 231 L +233.807 231 L +233.807 230.885 L +233.741 230.885 L +233.774 230.828 L +233.741 230.771 L +233.807 230.771 L +233.939 230.656 L +234.005 230.656 L +234.005 230.542 L +233.939 230.542 L +233.939 230.427 L +233.807 230.427 L +233.741 230.427 L +233.774 230.37 L +233.741 230.312 L +233.807 230.312 L +233.807 230.198 L +233.741 230.198 L +233.774 230.141 L +233.741 230.083 L +233.807 230.083 L +233.939 229.969 L +234.005 229.969 L +234.038 229.911 L +234.138 230.083 L +234.237 230.026 L +234.27 230.083 L +234.435 229.682 L +234.468 229.74 L +234.535 229.74 L +234.535 229.396 L +234.468 229.396 L +234.435 229.453 L +234.336 229.052 L +234.27 229.052 L +234.237 229.109 L +234.204 229.052 L +234.038 229.224 L +234.005 229.167 L +233.939 229.167 L +233.939 229.052 L +233.807 229.052 L +233.741 229.052 L +233.774 228.995 L +233.741 228.938 L +233.807 228.938 L +233.807 228.823 L +233.741 228.823 L +233.774 228.766 L +233.741 228.708 L +233.807 228.708 L +233.939 228.594 L +234.005 228.594 L +234.005 228.479 L +233.939 228.479 L +233.939 228.365 L +233.807 228.365 L +233.741 228.365 L +233.774 228.307 L +233.741 228.25 L +233.807 228.25 L +233.807 228.136 L +233.741 228.136 L +233.774 228.078 L +233.741 228.021 L +233.807 228.021 L +233.939 227.906 L +234.005 227.906 L +234.038 227.849 L +234.138 228.021 L +234.237 227.964 L +234.27 228.021 L +234.435 227.62 L +234.468 227.677 L +234.535 227.677 L +234.634 227.505 L +234.733 227.677 L +234.799 227.677 L +234.832 227.62 L +234.931 228.021 L +234.998 228.021 L +235.031 227.964 L +235.064 228.021 L +235.229 227.849 L +235.262 227.906 L +235.328 228.021 L +235.461 228.021 L +235.527 228.021 L +235.626 227.62 L +235.725 227.677 L +235.758 227.62 L +235.725 227.563 L +235.791 227.563 L +235.791 227.448 L +235.725 227.448 L +235.758 227.391 L +235.725 227.334 L +235.626 227.391 L +235.626 226.933 L +235.725 226.99 L +235.758 226.933 L +235.725 226.875 L +235.791 226.875 L +235.824 226.818 L +235.924 226.99 L +235.99 226.99 L +236.023 226.933 L +236.056 226.99 L +236.221 226.589 L +236.254 226.646 L +236.42 226.474 L +236.453 226.532 L +236.519 226.532 L +236.486 226.589 L +236.519 226.646 L +236.618 226.589 L +236.717 226.99 L +236.784 226.99 L +236.916 226.875 L +236.982 226.875 L +237.015 226.818 L +237.114 226.99 L +237.247 226.99 L +237.313 226.99 L +237.313 227.104 L +237.247 227.104 L +237.247 227.219 L +237.313 227.219 L +237.313 227.334 L +237.247 227.334 L +237.114 227.677 L +237.247 227.677 L +237.313 227.677 L +237.313 227.792 L +237.247 227.792 L +237.247 227.906 L +237.313 227.906 L +237.313 228.021 L +237.445 228.021 L +237.511 228.021 L +237.61 227.849 L +237.71 228.021 L +237.776 228.021 L +237.908 227.906 L +237.974 227.906 L +238.007 227.849 L +237.974 227.792 L +237.908 227.677 L +237.974 227.677 L +238.007 227.62 L +238.04 227.677 L +238.206 227.505 L +238.239 227.563 L +238.305 227.563 L +238.305 227.677 L +238.437 227.677 L +238.503 227.677 L +238.47 227.735 L +238.503 227.792 L +238.437 227.792 L +238.437 227.906 L +238.503 227.906 L +238.47 227.964 L +238.503 228.021 L +238.702 227.906 L +238.768 227.906 L +238.801 227.849 L +238.9 228.021 L +239 227.964 L +239.033 228.021 L +239.198 227.62 L +239.231 227.677 L +239.297 227.677 L +239.297 227.334 L +239.231 227.334 L +239.198 227.391 L +239.198 226.933 L +239.231 226.99 L +239.297 226.99 L +239.396 226.818 L +239.496 226.99 L +239.562 226.99 L +239.694 226.875 L +239.76 226.875 L +239.76 226.761 L +239.694 226.761 L +239.694 226.646 L +239.76 226.646 L +239.893 226.302 L +239.76 226.302 L +239.694 226.302 L +239.694 226.188 L +239.76 226.188 L +239.76 226.073 L +239.694 226.073 L +239.694 225.959 L +239.562 225.959 L +239.496 225.959 L +239.396 226.131 L +239.297 225.959 L +239.231 225.959 L +239.198 226.016 L +239.198 225.558 L +239.231 225.615 L +239.297 225.615 L +239.297 225.271 L +239.231 225.271 L +239.198 225.329 L +239.198 224.87 L +239.231 224.928 L +239.297 224.928 L +239.396 224.756 L +239.496 224.928 L +239.562 224.928 L +239.694 224.813 L +239.76 224.813 L +239.76 224.698 L +239.694 224.698 L +239.694 224.584 L +239.76 224.584 L +239.992 224.412 L +240.025 224.469 L +240.091 224.584 L +240.223 224.584 L +240.289 224.584 L +240.289 224.698 L +240.223 224.698 L +240.223 224.813 L +240.289 224.813 L +240.289 224.928 L +240.488 224.928 L +240.521 224.87 L +240.488 224.813 L +240.554 224.813 L +240.587 224.756 L +240.686 224.928 L +240.752 224.928 L +240.984 224.527 L +241.017 224.584 L +241.083 224.24 L +241.017 224.24 L +240.984 224.297 L +240.984 223.839 L +241.017 223.896 L +241.182 223.725 L +241.216 223.782 L +241.282 223.782 L +241.249 223.839 L +241.282 223.896 L +241.381 223.839 L +241.48 223.896 L +241.513 223.839 L +241.48 223.782 L +241.546 223.782 L +241.546 223.667 L +241.48 223.667 L +241.513 223.61 L +241.48 223.553 L +241.546 223.553 L +241.679 223.438 L +241.745 223.438 L +241.778 223.381 L +241.745 223.324 L +241.679 223.209 L +241.546 223.209 L +241.48 223.209 L +241.513 223.152 L +241.48 223.094 L +241.546 223.094 L +241.546 222.98 L +241.48 222.98 L +241.513 222.923 L +241.48 222.865 L +241.381 222.923 L +241.282 222.865 L +241.249 222.923 L +241.282 222.98 L +241.216 222.98 L +241.182 223.037 L +241.083 222.865 L +241.017 222.865 L +240.984 222.923 L +240.984 222.464 L +241.017 222.522 L +241.083 222.178 L +241.017 222.178 L +240.984 222.235 L +240.885 221.834 L +240.752 221.834 L +240.686 221.834 L +240.587 222.006 L +240.554 221.949 L +240.488 221.949 L +240.521 221.891 L +240.488 221.834 L +240.289 221.949 L +240.223 221.949 L +240.223 222.063 L +240.289 222.063 L +240.289 222.178 L +240.223 222.178 L +240.091 222.292 L +240.025 222.292 L +239.992 222.35 L +239.893 222.178 L +239.76 222.178 L +239.694 222.178 L +239.694 222.063 L +239.76 222.063 L +239.76 221.949 L +239.694 221.949 L +239.694 221.834 L +239.562 221.834 L +239.496 221.834 L +239.396 222.006 L +239.297 221.834 L +239.231 221.834 L +239.198 221.891 L +239.198 221.433 L +239.231 221.49 L +239.297 221.49 L +239.297 221.147 L +239.231 221.147 L +239.198 221.204 L +239.198 220.746 L +239.231 220.803 L +239.297 220.803 L +239.396 220.631 L +239.496 220.803 L +239.562 220.803 L +239.694 220.688 L +239.76 220.688 L +239.76 220.574 L +239.694 220.574 L +239.694 220.459 L +239.76 220.459 L +239.893 220.116 L +239.76 220.116 L +239.694 220.116 L +239.694 220.001 L +239.76 220.001 L +239.76 219.886 L +239.694 219.886 L +239.694 219.772 L +239.562 219.772 L +239.496 219.772 L +239.396 219.944 L +239.297 219.772 L +239.231 219.772 L +239.198 219.829 L +239.198 219.371 L +239.231 219.428 L +239.297 219.428 L +239.297 219.084 L +239.231 219.084 L +239.198 219.142 L +239.099 218.741 L +239.033 218.741 L +239 218.798 L +238.966 218.741 L +238.801 218.913 L +238.768 218.855 L +238.702 218.855 L +238.702 218.741 L +238.503 218.741 L +238.47 218.798 L +238.503 218.855 L +238.437 218.855 L +238.437 218.97 L +238.503 218.97 L +238.47 219.027 L +238.503 219.084 L +238.437 219.084 L +238.305 219.199 L +238.239 219.199 L +238.206 219.256 L +238.107 219.084 L +238.007 219.142 L +237.974 219.084 L +237.908 218.97 L +237.974 218.97 L +238.007 218.913 L +237.974 218.855 L +237.908 218.741 L +237.776 218.741 L +237.71 218.741 L +237.61 218.913 L +237.511 218.741 L +237.445 218.741 L +237.313 218.855 L +237.247 218.855 L +237.247 218.97 L +237.313 218.97 L +237.313 219.084 L +237.247 219.084 L +237.114 219.428 L +237.247 219.428 L +237.313 219.428 L +237.313 219.543 L +237.247 219.543 L +237.247 219.657 L +237.313 219.657 L +237.313 219.772 L +237.247 219.772 L +237.015 219.944 L +236.982 219.886 L +236.916 219.772 L +236.784 219.772 L +236.717 219.772 L +236.618 220.173 L +236.519 220.116 L +236.486 220.173 L +236.519 220.23 L +236.453 220.23 L +236.42 220.287 L +236.321 220.116 L +236.254 220.116 L +236.221 220.173 L +236.122 219.772 L +236.023 219.829 L +235.99 219.772 L +235.824 219.944 L +235.791 219.886 L +235.725 219.886 L +235.758 219.829 L +235.725 219.772 L +235.626 219.829 L +235.626 219.371 L +235.725 219.428 L +235.758 219.371 L +235.725 219.314 L +235.791 219.314 L +235.791 219.199 L +235.725 219.199 L +235.758 219.142 L +235.725 219.084 L +235.626 219.142 L +235.527 218.741 L +235.461 218.741 L +235.328 218.855 L +235.262 218.855 L +235.229 218.913 L +235.13 218.741 L +235.031 218.798 L +234.998 218.741 L +234.832 219.142 L +234.799 219.084 L +234.733 219.084 L +234.634 219.256 L +234.535 219.084 L +234.468 219.084 L +234.435 219.142 L +234.336 218.741 L +234.27 218.741 L +234.237 218.798 L +234.204 218.741 L +234.038 218.913 L +234.005 218.855 L +233.939 218.855 L +233.939 218.741 L +233.807 218.741 L +233.741 218.741 L +233.774 218.683 L +233.741 218.626 L +233.807 218.626 L +233.807 218.512 L +233.741 218.512 L +233.774 218.454 L +233.741 218.397 L +233.807 218.397 L +233.939 218.282 L +234.005 218.282 L +234.005 218.168 L +233.939 218.168 L +233.939 218.053 L +233.807 218.053 L +233.741 218.053 L +233.774 217.996 L +233.741 217.939 L +233.807 217.939 L +233.807 217.824 L +233.741 217.824 L +233.774 217.767 L +233.741 217.71 L +233.807 217.71 L +233.939 217.595 L +234.005 217.595 L +234.038 217.538 L +234.138 217.71 L +234.237 217.652 L +234.27 217.71 L +234.435 217.308 L +234.468 217.366 L +234.535 217.366 L +234.535 217.022 L +234.468 217.022 L +234.435 217.079 L +234.336 216.678 L +234.27 216.678 L +234.237 216.736 L +234.204 216.678 L +234.038 216.85 L +234.005 216.793 L +233.939 216.793 L +233.939 216.678 L +233.807 216.678 L +233.741 216.678 L +233.774 216.621 L +233.741 216.564 L +233.807 216.564 L +233.807 216.449 L +233.741 216.449 L +233.774 216.392 L +233.741 216.335 L +233.807 216.335 L +233.939 216.22 L +234.005 216.22 L +234.005 216.105 L +233.939 216.105 L +233.939 215.991 L +233.807 215.991 L +233.741 215.991 L +233.774 215.934 L +233.741 215.876 L +233.807 215.876 L +233.807 215.762 L +233.741 215.762 L +233.774 215.704 L +233.741 215.647 L +233.807 215.647 L +233.939 215.533 L +234.005 215.533 L +234.038 215.475 L +234.138 215.647 L +234.237 215.59 L +234.27 215.647 L +234.435 215.246 L +234.468 215.303 L +234.535 215.303 L +234.634 215.132 L +234.733 215.303 L +234.799 215.303 L +234.832 215.246 L +234.931 215.647 L +234.998 215.647 L +235.031 215.59 L +235.064 215.647 L +235.229 215.475 L +235.262 215.533 L +235.328 215.647 L +235.461 215.647 L +235.527 215.647 L +235.626 215.246 L +235.725 215.303 L +235.758 215.246 L +235.725 215.189 L +235.791 215.189 L +235.791 215.074 L +235.725 215.074 L +235.758 215.017 L +235.725 214.96 L +235.626 215.017 L +235.626 214.559 L +235.725 214.616 L +235.758 214.559 L +235.725 214.501 L +235.791 214.501 L +235.824 214.444 L +235.924 214.616 L +235.99 214.616 L +236.023 214.559 L +236.056 214.616 L +236.221 214.215 L +236.254 214.272 L +236.321 213.929 L +236.254 213.929 L +236.221 213.986 L +236.122 213.585 L +236.023 213.642 L +235.99 213.585 L +235.824 213.757 L +235.791 213.699 L +235.725 213.699 L +235.758 213.642 L +235.725 213.585 L +235.626 213.642 L +235.626 213.184 L +235.725 213.241 L +235.758 213.184 L +235.725 213.127 L +235.791 213.127 L +235.791 213.012 L +235.725 213.012 L +235.758 212.955 L +235.725 212.897 L +235.626 212.955 L +235.527 212.554 L +235.461 212.554 L +235.262 212.668 L +235.229 212.726 L +235.13 212.554 L +235.031 212.611 L +234.998 212.554 L +234.832 212.955 L +234.799 212.897 L +234.733 212.897 L +234.634 213.069 L +234.535 212.897 L +234.468 212.897 L +234.435 212.955 L +234.336 212.554 L +234.27 212.554 L +234.237 212.611 L +234.204 212.554 L +234.038 212.726 L +234.005 212.668 L +233.939 212.668 L +233.939 212.554 L +233.807 212.554 L +233.741 212.554 L +233.774 212.496 L +233.741 212.439 L +233.807 212.439 L +233.807 212.325 L +233.741 212.325 L +233.774 212.267 L +233.741 212.21 L +233.807 212.21 L +233.939 212.095 L +234.005 212.095 L +234.005 211.981 L +233.939 211.981 L +233.939 211.866 L +233.807 211.866 L +233.741 211.866 L +233.774 211.809 L +233.741 211.752 L +233.807 211.752 L +233.807 211.637 L +233.741 211.637 L +233.774 211.58 L +233.741 211.523 L +233.807 211.523 L +233.939 211.408 L +234.005 211.408 L +234.038 211.351 L +234.138 211.523 L +234.237 211.465 L +234.27 211.523 L +234.435 211.122 L +234.468 211.179 L +234.535 211.179 L +234.535 210.835 L +234.468 210.835 L +234.435 210.892 L +234.336 210.491 L +234.27 210.491 L +234.237 210.549 L +234.204 210.491 L +234.038 210.663 L +234.005 210.606 L +233.939 210.606 L +233.939 210.491 L +233.807 210.491 L +233.741 210.491 L +233.774 210.434 L +233.741 210.377 L +233.807 210.377 L +233.807 210.262 L +233.741 210.262 L +233.774 210.205 L +233.741 210.148 L +233.807 210.148 L +233.939 210.033 L +234.005 210.033 L +234.005 209.919 L +233.939 209.919 L +233.939 209.804 L +233.807 209.804 L +233.741 209.804 L +233.774 209.747 L +233.741 209.689 L +233.807 209.689 L +233.807 209.575 L +233.741 209.575 L +233.774 209.518 L +233.741 209.46 L +233.542 209.575 L +233.476 209.575 L +233.443 209.632 L +233.344 209.46 L +233.278 209.46 L +233.245 209.518 L +233.212 209.46 L +233.046 209.861 L +233.013 209.804 L +232.947 209.804 L +232.848 209.976 L +232.815 209.919 L +232.749 209.919 L +232.782 209.861 L +232.749 209.804 L +232.649 209.861 L +232.55 209.46 L +232.484 209.46 L +232.252 209.632 L +232.219 209.575 L +232.153 209.46 L +232.021 209.46 L +231.955 209.46 L +231.856 209.861 L +231.756 209.804 L +231.723 209.861 L +231.756 209.919 L +231.69 209.919 L +231.69 210.033 L +231.756 210.033 L +231.723 210.09 L +231.756 210.148 L +231.856 210.09 L +231.856 210.549 L +231.756 210.491 L +231.723 210.549 L +231.756 210.606 L +231.69 210.606 L +231.657 210.663 L +231.558 210.491 L +231.492 210.491 L +231.26 210.892 L +231.227 210.835 L +231.062 211.007 L +231.029 210.95 L +230.963 210.95 L +230.764 210.491 L +230.698 210.491 L +230.566 210.606 L +230.499 210.606 L +230.466 210.663 L +230.367 210.491 L +230.268 210.549 L +230.235 210.491 L +230.169 210.377 L +230.235 210.377 L +230.268 210.32 L +230.235 210.262 L +230.169 210.148 L +230.235 210.148 L +230.268 210.09 L +230.301 210.148 L +230.367 209.804 L +230.268 209.861 L +230.235 209.804 L +230.169 209.689 L +230.235 209.689 L +230.268 209.632 L +230.235 209.575 L +230.169 209.46 L +230.036 209.46 L +229.97 209.46 L +229.871 209.632 L +229.772 209.46 L +229.706 209.46 L +229.573 209.575 L +229.507 209.575 L +229.474 209.632 L +229.507 209.689 L +229.573 209.804 L +229.507 209.804 L +229.474 209.861 L +229.441 209.804 L +229.276 209.976 L +229.243 209.919 L +229.176 209.804 L +229.044 209.804 L +228.978 209.804 L +229.011 209.747 L +228.978 209.689 L +229.044 209.689 L +229.044 209.575 L +228.978 209.575 L +229.011 209.518 L +228.978 209.46 L +228.879 209.518 L +228.78 209.46 L +228.747 209.518 L +228.78 209.575 L +228.713 209.575 L +228.68 209.632 L +228.581 209.46 L +228.515 209.46 L +228.482 209.518 L +228.449 209.46 L +228.283 209.861 L +228.25 209.804 L +228.184 209.804 L +228.184 210.148 L +228.25 210.148 L +228.283 210.09 L +228.283 210.549 L +228.25 210.491 L +228.184 210.491 L +228.085 210.663 L +228.052 210.606 L +227.986 210.606 L +228.019 210.549 L +227.986 210.491 L +227.787 210.606 L +227.721 210.606 L +227.721 210.721 L +227.787 210.721 L +227.787 210.835 L +227.721 210.835 L +227.589 210.95 L +227.523 210.95 L +227.49 211.007 L +227.523 211.064 L +227.589 211.179 L +227.721 211.179 L +227.787 211.179 L +227.787 211.293 L +227.721 211.293 L +227.721 211.408 L +227.787 211.408 L +227.787 211.523 L +227.986 211.523 L +228.019 211.465 L +227.986 211.408 L +228.052 211.408 L +228.085 211.351 L +228.184 211.523 L +228.25 211.523 L +228.283 211.465 L +228.283 211.924 L +228.25 211.866 L +228.184 211.866 L +228.184 212.21 L +228.25 212.21 L +228.283 212.153 L +228.283 212.611 L +228.25 212.554 L +228.184 212.554 L +228.085 212.726 L +228.052 212.668 L +227.986 212.668 L +228.019 212.611 L +227.986 212.554 L +227.787 212.668 L +227.721 212.668 L +227.721 212.783 L +227.787 212.783 L +227.787 212.897 L +227.721 212.897 L +227.589 213.012 L +227.523 213.012 L +227.49 213.069 L +227.39 212.897 L +227.258 212.897 L +227.192 212.897 L +227.192 212.783 L +227.258 212.783 L +227.258 212.668 L +227.192 212.668 L +227.192 212.554 L +227.06 212.554 L +226.994 212.554 L +226.894 212.726 L +226.795 212.554 L +226.729 212.554 L +226.597 212.668 L +226.531 212.668 L +226.497 212.726 L +226.531 212.783 L +226.597 212.897 L +226.531 212.897 L +226.497 212.955 L +226.464 212.897 L +226.398 213.241 L +226.497 213.184 L +226.531 213.241 L +226.597 213.356 L +226.531 213.356 L +226.497 213.413 L +226.531 213.47 L +226.597 213.585 L +226.531 213.585 L +226.497 213.642 L +226.464 213.585 L +226.299 213.757 L +226.266 213.699 L +226.2 213.699 L +226.2 213.585 L +226.001 213.585 L +225.968 213.642 L +226.001 213.699 L +225.935 213.699 L +225.935 213.814 L +226.001 213.814 L +225.968 213.871 L +226.001 213.929 L +225.935 213.929 L +225.803 214.043 L +225.737 214.043 L +225.704 214.1 L +225.604 213.929 L +225.505 213.986 L +225.472 213.929 L +225.406 213.814 L +225.472 213.814 L +225.505 213.757 L +225.472 213.699 L +225.406 213.585 L +225.274 213.585 L +225.208 213.585 L +225.108 213.757 L +225.009 213.585 L +224.943 213.585 L +224.91 213.642 L +224.91 213.184 L +224.943 213.241 L +225.009 213.241 L +225.009 212.897 L +224.943 212.897 L +224.91 212.955 L +224.811 212.554 L +224.745 212.554 L +224.513 212.726 L +224.48 212.668 L +224.414 212.554 L +224.282 212.554 L +224.215 212.554 L +224.116 212.955 L +224.017 212.897 L +223.984 212.955 L +224.017 213.012 L +223.951 213.012 L +223.918 213.069 L +223.818 212.897 L +223.752 212.897 L +223.719 212.955 L +223.62 212.554 L +223.521 212.611 L +223.488 212.554 L +223.322 212.726 L +223.289 212.668 L +223.223 212.668 L +223.256 212.611 L +223.223 212.554 L +223.124 212.611 L +223.124 212.153 L +223.223 212.21 L +223.256 212.153 L +223.223 212.095 L +223.289 212.095 L +223.289 211.981 L +223.223 211.981 L +223.256 211.924 L +223.223 211.866 L +223.124 211.924 L +223.124 211.465 L +223.223 211.523 L +223.256 211.465 L +223.223 211.408 L +223.289 211.408 L +223.322 211.351 L +223.422 211.523 L +223.488 211.523 L +223.521 211.465 L +223.554 211.523 L +223.719 211.122 L +223.752 211.179 L +223.818 210.835 L +223.752 210.835 L +223.719 210.892 L +223.62 210.491 L +223.521 210.549 L +223.488 210.491 L +223.322 210.663 L +223.289 210.606 L +223.223 210.606 L +223.256 210.549 L +223.223 210.491 L +223.124 210.549 L +223.124 210.09 L +223.223 210.148 L +223.256 210.09 L +223.223 210.033 L +223.289 210.033 L +223.289 209.919 L +223.223 209.919 L +223.256 209.861 L +223.223 209.804 L +223.124 209.861 L +223.025 209.46 L +222.959 209.46 L +222.826 209.575 L +222.76 209.575 L +222.727 209.632 L +222.628 209.46 L +222.529 209.518 L +222.495 209.46 L +222.33 209.861 L +222.297 209.804 L +222.231 209.804 L +222.132 209.976 L +222.032 209.804 L +221.966 209.804 L +221.933 209.861 L +221.834 209.46 L +221.768 209.46 L +221.735 209.518 L +221.702 209.46 L +221.536 209.632 L +221.503 209.575 L +221.437 209.575 L +221.437 209.46 L +221.305 209.46 L +221.239 209.46 L +221.04 209.919 L +220.974 209.919 L +220.974 210.033 L +221.04 210.033 L +221.04 210.606 L +220.974 210.606 L +220.941 210.663 L +220.842 210.491 L +220.776 210.491 L +220.743 210.549 L +220.709 210.491 L +220.544 210.892 L +220.511 210.835 L +220.445 210.835 L +220.346 211.007 L +220.313 210.95 L +220.246 210.95 L +220.28 210.892 L +220.246 210.835 L +220.147 210.892 L +220.048 210.491 L +219.982 210.491 L +219.75 210.663 L +219.717 210.606 L +219.651 210.491 L +219.519 210.491 L +219.453 210.491 L +219.453 210.377 L +219.519 210.377 L +219.519 210.262 L +219.453 210.262 L +219.453 210.148 L +219.519 210.148 L +219.651 210.033 L +219.717 210.033 L +219.75 209.976 L +219.717 209.919 L +219.651 209.804 L +219.519 209.804 L +219.453 209.804 L +219.453 209.689 L +219.519 209.689 L +219.519 209.575 L +219.453 209.575 L +219.453 209.46 L +219.254 209.46 L +219.221 209.518 L +219.254 209.575 L +219.188 209.575 L +219.155 209.632 L +219.056 209.46 L +218.99 209.46 L +218.758 209.861 L +218.725 209.804 L +218.56 209.976 L +218.527 209.919 L +218.46 209.919 L +218.262 209.46 L +218.196 209.46 L +218.064 209.575 L +217.997 209.575 L +217.964 209.632 L +217.865 209.46 L +217.766 209.518 L +217.733 209.46 L +217.667 209.346 L +217.733 209.346 L +217.766 209.288 L +217.733 209.231 L +217.667 209.117 L +217.733 209.117 L +217.766 209.059 L +217.799 209.117 L +217.865 208.773 L +217.766 208.83 L +217.733 208.773 L +217.667 208.658 L +217.733 208.658 L +217.766 208.601 L +217.733 208.544 L +217.667 208.429 L +217.733 208.429 L +217.766 208.372 L +217.799 208.429 L +217.964 208.257 L +217.997 208.315 L +218.064 208.315 L +218.064 208.429 L +218.196 208.429 L +218.262 208.429 L +218.46 207.971 L +218.527 207.971 L +218.527 207.856 L +218.46 207.856 L +218.262 207.398 L +218.196 207.398 L +218.064 207.513 L +217.997 207.513 L +217.964 207.57 L +217.865 207.398 L +217.766 207.455 L +217.733 207.398 L +217.667 207.283 L +217.733 207.283 L +217.766 207.226 L +217.733 207.169 L +217.667 207.054 L +217.733 207.054 L +217.766 206.997 L +217.799 207.054 L +217.865 206.711 L +217.766 206.768 L +217.733 206.711 L +217.667 206.596 L +217.733 206.596 L +217.766 206.539 L +217.733 206.481 L +217.667 206.367 L +217.733 206.367 L +217.766 206.31 L +217.799 206.367 L +217.964 206.195 L +217.997 206.252 L +218.064 206.252 L +218.064 206.367 L +218.196 206.367 L +218.262 206.367 L +218.46 205.909 L +218.527 205.909 L +218.56 205.851 L +218.659 206.023 L +218.725 206.023 L +218.758 205.966 L +218.857 206.367 L +218.99 206.367 L +219.056 206.367 L +219.155 206.195 L +219.188 206.252 L +219.254 206.252 L +219.221 206.31 L +219.254 206.367 L +219.453 206.252 L +219.519 206.252 L +219.519 206.138 L +219.453 206.138 L +219.453 206.023 L +219.519 206.023 L +219.651 205.909 L +219.717 205.909 L +219.75 205.851 L +219.717 205.794 L +219.651 205.794 L +219.651 205.679 L +219.519 205.679 L +219.453 205.679 L +219.453 205.565 L +219.519 205.565 L +219.519 205.45 L +219.453 205.45 L +219.453 205.336 L +219.519 205.336 L +219.717 205.221 L +219.75 205.164 L +219.85 205.336 L +219.982 205.336 L +220.048 205.336 L +220.147 204.935 L +220.246 204.992 L +220.28 204.935 L +220.246 204.877 L +220.313 204.877 L +220.313 204.763 L +220.246 204.763 L +220.28 204.706 L +220.246 204.648 L +220.147 204.706 L +220.048 204.305 L +219.982 204.305 L +219.75 204.476 L +219.717 204.419 L +219.651 204.419 L +219.651 204.305 L +219.519 204.305 L +219.453 204.305 L +219.453 204.19 L +219.519 204.19 L +219.519 204.075 L +219.453 204.075 L +219.453 203.961 L +219.519 203.961 L +219.651 203.846 L +219.717 203.846 L +219.75 203.789 L +219.717 203.732 L +219.651 203.617 L +219.519 203.617 L +219.453 203.617 L +219.453 203.503 L +219.519 203.503 L +219.519 203.388 L +219.453 203.388 L +219.453 203.273 L +219.254 203.273 L +219.221 203.331 L +219.254 203.388 L +219.188 203.388 L +219.155 203.445 L +219.056 203.273 L +218.99 203.273 L +218.758 203.674 L +218.725 203.617 L +218.56 203.789 L +218.527 203.732 L +218.46 203.732 L +218.262 203.273 L +218.196 203.273 L +218.064 203.388 L +217.997 203.388 L +217.964 203.445 L +217.865 203.273 L +217.766 203.331 L +217.733 203.273 L +217.667 203.159 L +217.733 203.159 L +217.766 203.102 L +217.733 203.044 L +217.667 202.93 L +217.733 202.93 L +217.766 202.872 L +217.799 202.93 L +217.865 202.586 L +217.766 202.643 L +217.733 202.586 L +217.667 202.471 L +217.733 202.471 L +217.766 202.414 L +217.733 202.357 L +217.667 202.242 L +217.733 202.242 L +217.766 202.185 L +217.799 202.242 L +217.964 202.07 L +217.997 202.128 L +218.064 202.128 L +218.064 202.242 L +218.196 202.242 L +218.262 202.242 L +218.46 201.784 L +218.527 201.784 L +218.527 201.669 L +218.46 201.669 L +218.262 201.211 L +218.196 201.211 L +218.064 201.326 L +217.997 201.326 L +217.964 201.383 L +217.865 201.211 L +217.766 201.268 L +217.733 201.211 L +217.667 201.096 L +217.733 201.096 L +217.766 201.039 L +217.733 200.982 L +217.667 200.867 L +217.733 200.867 L +217.766 200.81 L +217.799 200.867 L +217.865 200.524 L +217.766 200.581 L +217.733 200.524 L +217.667 200.409 L +217.733 200.409 L +217.766 200.352 L +217.733 200.294 L +217.667 200.18 L +217.733 200.18 L +217.766 200.123 L +217.799 200.18 L +217.964 200.008 L +217.997 200.065 L +218.064 200.065 L +218.064 200.18 L +218.196 200.18 L +218.262 200.18 L +218.46 199.722 L +218.527 199.722 L +218.56 199.664 L +218.659 199.836 L +218.725 199.836 L +218.758 199.779 L +218.857 200.18 L +218.99 200.18 L +219.056 200.18 L +219.155 200.008 L +219.188 200.065 L +219.254 200.065 L +219.221 200.123 L +219.254 200.18 L +219.453 200.065 L +219.519 200.065 L +219.519 199.951 L +219.453 199.951 L +219.453 199.836 L +219.519 199.836 L +219.651 199.722 L +219.717 199.722 L +219.75 199.664 L +219.717 199.607 L +219.651 199.492 L +219.519 199.492 L +219.453 199.492 L +219.453 199.378 L +219.519 199.378 L +219.519 199.263 L +219.453 199.263 L +219.453 199.149 L +219.519 199.149 L +219.717 199.034 L +219.75 198.977 L +219.85 199.149 L +219.982 199.149 L +220.048 199.149 L +220.147 198.748 L +220.246 198.805 L +220.28 198.748 L +220.246 198.69 L +220.313 198.69 L +220.346 198.633 L +220.445 198.805 L +220.511 198.805 L +220.544 198.748 L +220.643 199.149 L +220.743 199.091 L +220.776 199.149 L +220.941 198.977 L +220.974 199.034 L +221.04 199.034 L +221.04 199.607 L +220.974 199.607 L +220.974 199.722 L +221.04 199.722 L +221.239 200.18 L +221.305 200.18 L +221.437 200.065 L +221.503 200.065 L +221.536 200.008 L +221.636 200.18 L +221.735 200.123 L +221.768 200.18 L +221.933 199.779 L +221.966 199.836 L +222.032 199.836 L +222.132 199.664 L +222.231 199.836 L +222.297 199.836 L +222.33 199.779 L +222.429 200.18 L +222.495 200.18 L +222.529 200.123 L +222.562 200.18 L +222.727 200.008 L +222.76 200.065 L +222.826 200.18 L +222.959 200.18 L +223.025 200.18 L +223.124 199.779 L +223.223 199.836 L +223.256 199.779 L +223.223 199.722 L +223.289 199.722 L +223.289 199.607 L +223.223 199.607 L +223.256 199.55 L +223.223 199.492 L +223.124 199.55 L +223.124 199.091 L +223.223 199.149 L +223.256 199.091 L +223.223 199.034 L +223.289 199.034 L +223.322 198.977 L +223.422 199.149 L +223.488 199.149 L +223.521 199.091 L +223.554 199.149 L +223.719 198.748 L +223.752 198.805 L +223.818 198.461 L +223.752 198.461 L +223.719 198.519 L +223.62 198.118 L +223.521 198.175 L +223.488 198.118 L +223.322 198.289 L +223.289 198.232 L +223.223 198.232 L +223.256 198.175 L +223.223 198.118 L +223.124 198.175 L +223.124 197.717 L +223.223 197.774 L +223.256 197.717 L +223.223 197.659 L +223.289 197.659 L +223.289 197.545 L +223.223 197.545 L +223.256 197.487 L +223.223 197.43 L +223.124 197.487 L +223.124 197.029 L +223.223 197.086 L +223.256 197.029 L +223.223 196.972 L +223.289 196.972 L +223.322 196.915 L +223.422 197.086 L +223.488 197.086 L +223.521 197.029 L +223.554 197.086 L +223.719 196.685 L +223.752 196.743 L +223.918 196.571 L +223.951 196.628 L +224.017 196.628 L +223.984 196.685 L +224.017 196.743 L +224.116 196.685 L +224.215 197.086 L +224.282 197.086 L +224.414 196.972 L +224.48 196.972 L +224.513 196.915 L +224.612 197.086 L +224.745 197.086 L +224.811 197.086 L +224.91 196.685 L +224.943 196.743 L +225.009 196.743 L +225.009 196.399 L +224.943 196.399 L +224.91 196.456 L +224.91 195.998 L +224.943 196.055 L +225.009 196.055 L +225.108 195.883 L +225.208 196.055 L +225.274 196.055 L +225.406 195.941 L +225.472 195.941 L +225.505 195.883 L +225.472 195.826 L +225.406 195.712 L +225.472 195.712 L +225.505 195.654 L +225.538 195.712 L +225.604 195.368 L +225.505 195.425 L +225.472 195.368 L +225.406 195.253 L +225.472 195.253 L +225.505 195.196 L +225.472 195.139 L +225.406 195.024 L +225.274 195.024 L +225.208 195.024 L +225.108 195.196 L +225.009 195.024 L +224.943 195.024 L +224.91 195.081 L +224.91 194.623 L +224.943 194.68 L +225.009 194.68 L +225.009 194.337 L +224.943 194.337 L +224.91 194.394 L +224.811 193.993 L +224.745 193.993 L +224.513 194.165 L +224.48 194.108 L +224.414 193.993 L +224.282 193.993 L +224.215 193.993 L +224.116 194.394 L +224.017 194.337 L +223.984 194.394 L +224.017 194.451 L +223.951 194.451 L +223.918 194.509 L +223.818 194.337 L +223.752 194.337 L +223.719 194.394 L +223.62 193.993 L +223.521 194.05 L +223.488 193.993 L +223.322 194.165 L +223.289 194.108 L +223.223 194.108 L +223.256 194.05 L +223.223 193.993 L +223.124 194.05 L +223.124 193.592 L +223.223 193.649 L +223.256 193.592 L +223.223 193.535 L +223.289 193.535 L +223.289 193.42 L +223.223 193.42 L +223.256 193.363 L +223.223 193.306 L +223.124 193.363 L +223.124 192.905 L +223.223 192.962 L +223.256 192.905 L +223.223 192.847 L +223.289 192.847 L +223.322 192.79 L +223.422 192.962 L +223.488 192.962 L +223.521 192.905 L +223.554 192.962 L +223.719 192.561 L +223.752 192.618 L +223.818 192.274 L +223.752 192.274 L +223.719 192.332 L +223.62 191.931 L +223.521 191.988 L +223.488 191.931 L +223.322 192.103 L +223.289 192.045 L +223.223 192.045 L +223.256 191.988 L +223.223 191.931 L +223.124 191.988 L +223.124 191.53 L +223.223 191.587 L +223.256 191.53 L +223.223 191.472 L +223.289 191.472 L +223.289 191.358 L +223.223 191.358 L +223.256 191.301 L +223.223 191.243 L +223.124 191.301 L +223.025 190.9 L +222.959 190.9 L +222.76 191.014 L +222.727 191.071 L +222.628 190.9 L +222.529 190.957 L +222.495 190.9 L +222.33 191.301 L +222.297 191.243 L +222.231 191.243 L +222.132 191.415 L +222.032 191.243 L +221.966 191.243 L +221.933 191.301 L +221.834 190.9 L +221.768 190.9 L +221.735 190.957 L +221.702 190.9 L +221.536 191.071 L +221.503 191.014 L +221.437 191.014 L +221.437 190.9 L +221.305 190.9 L +221.239 190.9 L +221.04 191.358 L +220.974 191.358 L +220.974 191.472 L +221.04 191.472 L +221.04 192.045 L +220.974 192.045 L +220.941 192.103 L +220.842 191.931 L +220.776 191.931 L +220.743 191.988 L +220.709 191.931 L +220.544 192.332 L +220.511 192.274 L +220.445 192.274 L +220.346 192.446 L +220.313 192.389 L +220.246 192.389 L +220.28 192.332 L +220.246 192.274 L +220.147 192.332 L +220.048 191.931 L +219.982 191.931 L +219.75 192.103 L +219.717 192.045 L +219.651 191.931 L +219.519 191.931 L +219.453 191.931 L +219.453 191.816 L +219.519 191.816 L +219.519 191.702 L +219.453 191.702 L +219.453 191.587 L +219.519 191.587 L +219.651 191.472 L +219.717 191.472 L +219.75 191.415 L +219.717 191.358 L +219.651 191.243 L +219.519 191.243 L +219.453 191.243 L +219.453 191.129 L +219.519 191.129 L +219.519 191.014 L +219.453 191.014 L +219.453 190.9 L +219.254 190.9 L +219.221 190.957 L +219.254 191.014 L +219.188 191.014 L +219.155 191.071 L +219.056 190.9 L +218.99 190.9 L +218.758 191.301 L +218.725 191.243 L +218.56 191.415 L +218.527 191.358 L +218.46 191.358 L +218.262 190.9 L +218.196 190.9 L +218.064 191.014 L +217.997 191.014 L +217.964 191.071 L +217.865 190.9 L +217.766 190.957 L +217.733 190.9 L +217.667 190.785 L +217.733 190.785 L +217.766 190.728 L +217.733 190.67 L +217.667 190.556 L +217.733 190.556 L +217.766 190.499 L +217.799 190.556 L +217.865 190.212 L +217.766 190.269 L +217.733 190.212 L +217.667 190.098 L +217.733 190.098 L +217.766 190.04 L +217.733 189.983 L +217.667 189.868 L +217.733 189.868 L +217.766 189.811 L +217.799 189.868 L +217.964 189.697 L +217.997 189.754 L +218.064 189.754 L +218.064 189.868 L +218.196 189.868 L +218.262 189.868 L +218.46 189.41 L +218.527 189.41 L +218.527 189.296 L +218.46 189.296 L +218.262 188.837 L +218.196 188.837 L +218.064 188.952 L +217.997 188.952 L +217.964 189.009 L +217.865 188.837 L +217.766 188.895 L +217.733 188.837 L +217.667 188.723 L +217.733 188.723 L +217.766 188.665 L +217.733 188.608 L +217.667 188.494 L +217.733 188.494 L +217.766 188.436 L +217.799 188.494 L +217.865 188.15 L +217.766 188.207 L +217.733 188.15 L +217.667 188.035 L +217.733 188.035 L +217.766 187.978 L +217.733 187.921 L +217.667 187.806 L +217.733 187.806 L +217.766 187.749 L +217.799 187.806 L +217.964 187.634 L +217.997 187.691 L +218.064 187.691 L +218.064 187.806 L +218.196 187.806 L +218.262 187.806 L +218.46 187.348 L +218.527 187.348 L +218.56 187.29 L +218.659 187.462 L +218.725 187.462 L +218.758 187.405 L +218.857 187.806 L +218.99 187.806 L +219.056 187.806 L +219.155 187.634 L +219.188 187.691 L +219.254 187.691 L +219.221 187.749 L +219.254 187.806 L +219.453 187.691 L +219.519 187.691 L +219.519 187.577 L +219.453 187.577 L +219.453 187.462 L +219.519 187.462 L +219.651 187.348 L +219.717 187.348 L +219.75 187.29 L +219.717 187.233 L +219.651 187.233 L +219.651 187.119 L +219.519 187.119 L +219.453 187.119 L +219.453 187.004 L +219.519 187.004 L +219.519 186.889 L +219.453 186.889 L +219.453 186.775 L +219.519 186.775 L +219.651 186.66 L +219.717 186.66 L +219.75 186.603 L +219.85 186.775 L +219.982 186.775 L +220.048 186.775 L +220.147 186.374 L +220.246 186.431 L +220.28 186.374 L +220.246 186.317 L +220.313 186.317 L +220.313 186.202 L +220.246 186.202 L +220.28 186.145 L +220.246 186.087 L +220.147 186.145 L +220.048 185.744 L +219.982 185.744 L +219.75 185.916 L +219.717 185.858 L +219.651 185.744 L +219.519 185.744 L +219.453 185.744 L +219.453 185.629 L +219.519 185.629 L +219.519 185.515 L +219.453 185.515 L +219.453 185.4 L +219.519 185.4 L +219.651 185.285 L +219.717 185.285 L +219.75 185.228 L +219.717 185.171 L +219.651 185.056 L +219.519 185.056 L +219.453 185.056 L +219.453 184.942 L +219.519 184.942 L +219.519 184.827 L +219.453 184.827 L +219.453 184.713 L +219.254 184.713 L +219.221 184.77 L +219.254 184.827 L +219.188 184.827 L +219.155 184.884 L +219.056 184.713 L +218.99 184.713 L +218.758 185.114 L +218.725 185.056 L +218.56 185.228 L +218.527 185.171 L +218.46 185.171 L +218.262 184.713 L +218.196 184.713 L +218.064 184.827 L +217.997 184.827 L +217.964 184.884 L +217.865 184.713 L +217.766 184.77 L +217.733 184.713 L +217.667 184.598 L +217.733 184.598 L +217.766 184.541 L +217.733 184.483 L +217.667 184.369 L +217.733 184.369 L +217.766 184.312 L +217.799 184.369 L +217.865 184.025 L +217.766 184.082 L +217.733 184.025 L +217.667 183.911 L +217.733 183.911 L +217.766 183.853 L +217.733 183.796 L +217.667 183.681 L +217.733 183.681 L +217.766 183.624 L +217.799 183.681 L +217.964 183.51 L +217.997 183.567 L +218.064 183.567 L +218.064 183.681 L +218.196 183.681 L +218.262 183.681 L +218.46 183.223 L +218.527 183.223 L +218.527 183.109 L +218.46 183.109 L +218.262 182.65 L +218.196 182.65 L +218.064 182.765 L +217.997 182.765 L +217.964 182.822 L +217.865 182.65 L +217.766 182.708 L +217.733 182.65 L +217.667 182.536 L +217.733 182.536 L +217.766 182.478 L +217.733 182.421 L +217.667 182.307 L +217.733 182.307 L +217.766 182.249 L +217.799 182.307 L +217.865 181.963 L +217.766 182.02 L +217.733 181.963 L +217.667 181.848 L +217.733 181.848 L +217.766 181.791 L +217.733 181.734 L +217.667 181.619 L +217.733 181.619 L +217.766 181.562 L +217.799 181.619 L +217.964 181.447 L +217.997 181.505 L +218.064 181.505 L +218.064 181.619 L +218.196 181.619 L +218.262 181.619 L +218.46 181.161 L +218.527 181.161 L +218.56 181.104 L +218.659 181.275 L +218.725 181.275 L +218.758 181.218 L +218.857 181.619 L +218.99 181.619 L +219.056 181.619 L +219.155 181.447 L +219.188 181.505 L +219.254 181.505 L +219.221 181.562 L +219.254 181.619 L +219.453 181.505 L +219.519 181.505 L +219.519 181.39 L +219.453 181.39 L +219.453 181.275 L +219.519 181.275 L +219.651 181.161 L +219.717 181.161 L +219.75 181.104 L +219.717 181.046 L +219.651 181.046 L +219.651 180.932 L +219.519 180.932 L +219.453 180.932 L +219.453 180.817 L +219.519 180.817 L +219.519 180.703 L +219.453 180.703 L +219.453 180.588 L +219.519 180.588 L +219.651 180.473 L +219.717 180.473 L +219.75 180.416 L +219.85 180.588 L +219.982 180.588 L +220.048 180.588 L +220.147 180.187 L +220.246 180.244 L +220.28 180.187 L +220.246 180.13 L +220.313 180.13 L +220.346 180.072 L +220.445 180.244 L +220.511 180.244 L +220.544 180.187 L +220.643 180.588 L +220.743 180.531 L +220.776 180.588 L +220.941 180.416 L +220.974 180.473 L +221.04 180.473 L +221.04 181.046 L +220.974 181.046 L +220.974 181.161 L +221.04 181.161 L +221.239 181.619 L +221.305 181.619 L +221.437 181.505 L +221.503 181.505 L +221.536 181.447 L +221.636 181.619 L +221.735 181.562 L +221.768 181.619 L +221.933 181.218 L +221.966 181.275 L +222.032 181.275 L +222.132 181.104 L +222.231 181.275 L +222.297 181.275 L +222.33 181.218 L +222.429 181.619 L +222.495 181.619 L +222.529 181.562 L +222.562 181.619 L +222.727 181.447 L +222.76 181.505 L +222.826 181.619 L +222.959 181.619 L +223.025 181.619 L +223.124 181.218 L +223.223 181.275 L +223.256 181.218 L +223.223 181.161 L +223.289 181.161 L +223.289 181.046 L +223.223 181.046 L +223.256 180.989 L +223.223 180.932 L +223.124 180.989 L +223.124 180.531 L +223.223 180.588 L +223.256 180.531 L +223.223 180.473 L +223.289 180.473 L +223.322 180.416 L +223.422 180.588 L +223.488 180.588 L +223.521 180.531 L +223.554 180.588 L +223.719 180.187 L +223.752 180.244 L +223.818 179.901 L +223.752 179.901 L +223.719 179.958 L +223.62 179.557 L +223.521 179.614 L +223.488 179.557 L +223.322 179.729 L +223.289 179.671 L +223.223 179.671 L +223.256 179.614 L +223.223 179.557 L +223.124 179.614 L +223.124 179.156 L +223.223 179.213 L +223.256 179.156 L +223.223 179.099 L +223.289 179.099 L +223.289 178.984 L +223.223 178.984 L +223.256 178.927 L +223.223 178.869 L +223.124 178.927 L +223.124 178.468 L +223.223 178.526 L +223.256 178.468 L +223.223 178.411 L +223.289 178.411 L +223.322 178.354 L +223.422 178.526 L +223.488 178.526 L +223.521 178.468 L +223.554 178.526 L +223.719 178.125 L +223.752 178.182 L +223.918 178.01 L +223.951 178.067 L +224.017 178.067 L +223.984 178.125 L +224.017 178.182 L +224.116 178.125 L +224.215 178.526 L +224.282 178.526 L +224.48 178.411 L +224.513 178.354 L +224.612 178.526 L +224.745 178.526 L +224.811 178.526 L +224.91 178.125 L +224.943 178.182 L +225.009 178.182 L +225.009 177.838 L +224.943 177.838 L +224.91 177.896 L +224.91 177.437 L +224.943 177.495 L +225.009 177.495 L +225.108 177.323 L +225.208 177.495 L +225.274 177.495 L +225.406 177.38 L +225.472 177.38 L +225.505 177.323 L +225.472 177.265 L +225.406 177.151 L +225.472 177.151 L +225.505 177.094 L +225.538 177.151 L +225.704 176.979 L +225.737 177.036 L +225.803 177.036 L +225.803 177.151 L +225.935 177.151 L +226.001 177.151 L +225.968 177.208 L +226.001 177.265 L +225.935 177.265 L +225.935 177.38 L +226.001 177.38 L +225.968 177.437 L +226.001 177.495 L +226.2 177.38 L +226.266 177.38 L +226.299 177.323 L +226.398 177.495 L +226.497 177.437 L +226.531 177.495 L +226.597 177.609 L +226.531 177.609 L +226.497 177.666 L +226.531 177.724 L +226.597 177.838 L +226.531 177.838 L +226.497 177.896 L +226.464 177.838 L +226.398 178.182 L +226.497 178.125 L +226.531 178.182 L +226.597 178.297 L +226.531 178.297 L +226.497 178.354 L +226.531 178.411 L +226.597 178.526 L +226.729 178.526 L +226.795 178.526 L +226.894 178.354 L +226.994 178.526 L +227.06 178.526 L +227.192 178.411 L +227.258 178.411 L +227.258 178.297 L +227.192 178.297 L +227.192 178.182 L +227.258 178.182 L +227.49 178.01 L +227.523 178.067 L +227.589 178.067 L +227.589 178.182 L +227.721 178.182 L +227.787 178.182 L +227.787 178.297 L +227.721 178.297 L +227.721 178.411 L +227.787 178.411 L +227.787 178.526 L +227.986 178.526 L +228.019 178.468 L +227.986 178.411 L +228.052 178.411 L +228.085 178.354 L +228.184 178.526 L +228.25 178.526 L +228.283 178.468 L +228.283 178.927 L +228.25 178.869 L +228.184 178.869 L +228.184 179.213 L +228.25 179.213 L +228.283 179.156 L +228.283 179.614 L +228.25 179.557 L +228.184 179.557 L +228.085 179.729 L +228.052 179.671 L +227.986 179.671 L +228.019 179.614 L +227.986 179.557 L +227.787 179.671 L +227.721 179.671 L +227.721 179.786 L +227.787 179.786 L +227.787 179.901 L +227.721 179.901 L +227.589 180.015 L +227.523 180.015 L +227.49 180.072 L +227.523 180.13 L +227.589 180.13 L +227.589 180.244 L +227.721 180.244 L +227.787 180.244 L +227.787 180.359 L +227.721 180.359 L +227.721 180.473 L +227.787 180.473 L +227.787 180.588 L +227.986 180.588 L +228.019 180.531 L +227.986 180.473 L +228.052 180.473 L +228.085 180.416 L +228.184 180.588 L +228.25 180.588 L +228.283 180.531 L +228.283 180.989 L +228.25 180.932 L +228.184 180.932 L +228.184 181.275 L +228.25 181.275 L +228.283 181.218 L +228.383 181.619 L +228.482 181.562 L +228.515 181.619 L +228.68 181.447 L +228.713 181.505 L +228.78 181.505 L +228.747 181.562 L +228.78 181.619 L +228.879 181.562 L +228.978 181.619 L +229.011 181.562 L +228.978 181.505 L +229.044 181.505 L +229.044 181.39 L +228.978 181.39 L +229.011 181.333 L +228.978 181.275 L +229.044 181.275 L +229.176 181.161 L +229.243 181.161 L +229.276 181.104 L +229.375 181.275 L +229.474 181.218 L +229.507 181.275 L +229.573 181.39 L +229.507 181.39 L +229.474 181.447 L +229.507 181.505 L +229.573 181.619 L +229.706 181.619 L +229.772 181.619 L +229.871 181.447 L +229.97 181.619 L +230.036 181.619 L +230.169 181.505 L +230.235 181.505 L +230.268 181.447 L +230.235 181.39 L +230.169 181.275 L +230.235 181.275 L +230.268 181.218 L +230.301 181.275 L +230.367 180.932 L +230.268 180.989 L +230.235 180.932 L +230.169 180.817 L +230.235 180.817 L +230.268 180.76 L +230.235 180.703 L +230.169 180.588 L +230.235 180.588 L +230.268 180.531 L +230.301 180.588 L +230.466 180.416 L +230.499 180.473 L +230.566 180.473 L +230.566 180.588 L +230.698 180.588 L +230.764 180.588 L +230.963 180.13 L +231.029 180.13 L +231.062 180.072 L +231.161 180.244 L +231.227 180.244 L +231.26 180.187 L +231.359 180.588 L +231.492 180.588 L +231.558 180.588 L +231.657 180.416 L +231.69 180.473 L +231.756 180.473 L +231.723 180.531 L +231.756 180.588 L +231.856 180.531 L +231.856 180.989 L +231.756 180.932 L +231.723 180.989 L +231.756 181.046 L +231.69 181.046 L +231.69 181.161 L +231.756 181.161 L +231.723 181.218 L +231.756 181.275 L +231.856 181.218 L +231.955 181.619 L +232.021 181.619 L +232.153 181.505 L +232.219 181.505 L +232.252 181.447 L +232.352 181.619 L +232.484 181.619 L +232.55 181.619 L +232.649 181.218 L +232.749 181.275 L +232.782 181.218 L +232.749 181.161 L +232.815 181.161 L +232.848 181.104 L +232.947 181.275 L +233.013 181.275 L +233.046 181.218 L +233.145 181.619 L +233.245 181.562 L +233.278 181.619 L +233.443 181.447 L +233.476 181.505 L +233.542 181.505 L +233.542 181.619 L +233.741 181.619 L +233.774 181.562 L +233.741 181.505 L +233.807 181.505 L +233.807 181.39 L +233.741 181.39 L +233.774 181.333 L +233.741 181.275 L +233.807 181.275 L +233.939 181.161 L +234.005 181.161 L +234.005 181.046 L +233.939 181.046 L +233.939 180.932 L +233.807 180.932 L +233.741 180.932 L +233.774 180.874 L +233.741 180.817 L +233.807 180.817 L +233.807 180.703 L +233.741 180.703 L +233.774 180.645 L +233.741 180.588 L +233.807 180.588 L +233.939 180.473 L +234.005 180.473 L +234.038 180.416 L +234.138 180.588 L +234.237 180.531 L +234.27 180.588 L +234.435 180.187 L +234.468 180.244 L +234.535 180.244 L +234.535 179.901 L +234.468 179.901 L +234.435 179.958 L +234.336 179.557 L +234.27 179.557 L +234.237 179.614 L +234.204 179.557 L +234.038 179.729 L +234.005 179.671 L +233.939 179.671 L +233.939 179.557 L +233.807 179.557 L +233.741 179.557 L +233.774 179.5 L +233.741 179.442 L +233.807 179.442 L +233.807 179.328 L +233.741 179.328 L +233.774 179.27 L +233.741 179.213 L +233.807 179.213 L +233.939 179.099 L +234.005 179.099 L +234.005 178.984 L +233.939 178.984 L +233.939 178.869 L +233.807 178.869 L +233.741 178.869 L +233.774 178.812 L +233.741 178.755 L +233.807 178.755 L +233.807 178.64 L +233.741 178.64 L +233.774 178.583 L +233.741 178.526 L +233.807 178.526 L +233.939 178.411 L +234.005 178.411 L +234.038 178.354 L +234.138 178.526 L +234.237 178.468 L +234.27 178.526 L +234.435 178.125 L +234.468 178.182 L +234.535 178.182 L +234.634 178.01 L +234.733 178.182 L +234.799 178.182 L +234.832 178.125 L +234.931 178.526 L +234.998 178.526 L +235.031 178.468 L +235.064 178.526 L +235.229 178.354 L +235.262 178.411 L +235.328 178.526 L +235.461 178.526 L +235.527 178.526 L +235.626 178.125 L +235.725 178.182 L +235.758 178.125 L +235.725 178.067 L +235.791 178.067 L +235.791 177.953 L +235.725 177.953 L +235.758 177.896 L +235.725 177.838 L +235.626 177.896 L +235.626 177.437 L +235.725 177.495 L +235.758 177.437 L +235.725 177.38 L +235.791 177.38 L +235.824 177.323 L +235.924 177.495 L +235.99 177.495 L +236.023 177.437 L +236.056 177.495 L +236.221 177.094 L +236.254 177.151 L +236.321 176.807 L +236.254 176.807 L +236.221 176.864 L +236.122 176.463 L +236.023 176.521 L +235.99 176.463 L +235.824 176.635 L +235.791 176.578 L +235.725 176.578 L +235.758 176.521 L +235.725 176.463 L +235.626 176.521 L +235.626 176.062 L +235.725 176.12 L +235.758 176.062 L +235.725 176.005 L +235.791 176.005 L +235.791 175.891 L +235.725 175.891 L +235.758 175.833 L +235.725 175.776 L +235.626 175.833 L +235.527 175.432 L +235.461 175.432 L +235.262 175.547 L +235.229 175.604 L +235.13 175.432 L +235.031 175.49 L +234.998 175.432 L +234.832 175.833 L +234.799 175.776 L +234.733 175.776 L +234.634 175.948 L +234.535 175.776 L +234.468 175.776 L +234.435 175.833 L +234.336 175.432 L +234.27 175.432 L +234.237 175.49 L +234.204 175.432 L +234.038 175.604 L +234.005 175.547 L +233.939 175.547 L +233.939 175.432 L +233.807 175.432 L +233.741 175.432 L +233.774 175.375 L +233.741 175.318 L +233.807 175.318 L +233.807 175.203 L +233.741 175.203 L +233.774 175.146 L +233.741 175.089 L +233.807 175.089 L +233.939 174.974 L +234.005 174.974 L +234.005 174.859 L +233.939 174.859 L +233.939 174.745 L +233.807 174.745 L +233.741 174.745 L +233.774 174.688 L +233.741 174.63 L +233.807 174.63 L +233.807 174.516 L +233.741 174.516 L +233.774 174.458 L +233.741 174.401 L +233.807 174.401 L +233.939 174.287 L +234.005 174.287 L +234.038 174.229 L +234.138 174.401 L +234.237 174.344 L +234.27 174.401 L +234.435 174 L +234.468 174.057 L +234.535 174.057 L +234.535 173.714 L +234.468 173.714 L +234.435 173.771 L +234.336 173.37 L +234.27 173.37 L +234.237 173.427 L +234.204 173.37 L +234.038 173.542 L +234.005 173.485 L +233.939 173.485 L +233.939 173.37 L +233.807 173.37 L +233.741 173.37 L +233.774 173.313 L +233.741 173.255 L +233.807 173.255 L +233.807 173.141 L +233.741 173.141 L +233.774 173.084 L +233.741 173.026 L +233.807 173.026 L +233.939 172.912 L +234.005 172.912 L +234.005 172.797 L +233.939 172.797 L +233.939 172.683 L +233.807 172.683 L +233.741 172.683 L +233.774 172.625 L +233.741 172.568 L +233.807 172.568 L +233.807 172.453 L +233.741 172.453 L +233.774 172.396 L +233.741 172.339 L +233.807 172.339 L +233.939 172.224 L +234.005 172.224 L +234.038 172.167 L +234.138 172.339 L +234.237 172.282 L +234.27 172.339 L +234.435 171.938 L +234.468 171.995 L +234.535 171.995 L +234.634 171.823 L +234.733 171.995 L +234.799 171.995 L +234.832 171.938 L +234.931 172.339 L +234.998 172.339 L +235.031 172.282 L +235.064 172.339 L +235.229 172.167 L +235.262 172.224 L +235.328 172.339 L +235.461 172.339 L +235.527 172.339 L +235.626 171.938 L +235.725 171.995 L +235.758 171.938 L +235.725 171.881 L +235.791 171.881 L +235.791 171.766 L +235.725 171.766 L +235.758 171.709 L +235.725 171.651 L +235.626 171.709 L +235.626 171.25 L +235.725 171.308 L +235.758 171.25 L +235.725 171.193 L +235.791 171.193 L +235.824 171.136 L +235.924 171.308 L +235.99 171.308 L +236.023 171.25 L +236.056 171.308 L +236.221 170.907 L +236.254 170.964 L +236.42 170.792 L +236.453 170.849 L +236.519 170.849 L +236.486 170.907 L +236.519 170.964 L +236.618 170.907 L +236.717 171.308 L +236.784 171.308 L +236.916 171.193 L +236.982 171.193 L +237.015 171.136 L +237.114 171.308 L +237.247 171.308 L +237.313 171.308 L +237.313 171.422 L +237.247 171.422 L +237.247 171.537 L +237.313 171.537 L +237.313 171.651 L +237.247 171.651 L +237.114 171.995 L +237.247 171.995 L +237.313 171.995 L +237.313 172.11 L +237.247 172.11 L +237.247 172.224 L +237.313 172.224 L +237.313 172.339 L +237.445 172.339 L +237.511 172.339 L +237.61 172.167 L +237.71 172.339 L +237.776 172.339 L +237.908 172.224 L +237.974 172.224 L +238.007 172.167 L +237.974 172.11 L +237.908 171.995 L +237.974 171.995 L +238.007 171.938 L +238.04 171.995 L +238.206 171.823 L +238.239 171.881 L +238.305 171.881 L +238.305 171.995 L +238.437 171.995 L +238.503 171.995 L +238.47 172.052 L +238.503 172.11 L +238.437 172.11 L +238.437 172.224 L +238.503 172.224 L +238.47 172.282 L +238.503 172.339 L +238.702 172.224 L +238.768 172.224 L +238.801 172.167 L +238.9 172.339 L +239 172.282 L +239.033 172.339 L +239.198 171.938 L +239.231 171.995 L +239.297 171.995 L +239.297 171.651 L +239.231 171.651 L +239.198 171.709 L +239.198 171.25 L +239.231 171.308 L +239.297 171.308 L +239.396 171.136 L +239.496 171.308 L +239.562 171.308 L +239.694 171.193 L +239.76 171.193 L +239.76 171.078 L +239.694 171.078 L +239.694 170.964 L +239.76 170.964 L +239.893 170.62 L +239.76 170.62 L +239.694 170.62 L +239.694 170.506 L +239.76 170.506 L +239.76 170.391 L +239.694 170.391 L +239.694 170.276 L +239.562 170.276 L +239.496 170.276 L +239.396 170.448 L +239.297 170.276 L +239.231 170.276 L +239.198 170.334 L +239.198 169.875 L +239.231 169.933 L +239.297 169.933 L +239.297 169.589 L +239.231 169.589 L +239.198 169.646 L +239.198 169.188 L +239.231 169.245 L +239.297 169.245 L +239.396 169.073 L +239.496 169.245 L +239.562 169.245 L +239.694 169.131 L +239.76 169.131 L +239.76 169.016 L +239.694 169.016 L +239.694 168.902 L +239.76 168.902 L +239.992 168.73 L +240.025 168.787 L +240.091 168.787 L +240.091 168.902 L +240.223 168.902 L +240.289 168.902 L +240.289 169.016 L +240.223 169.016 L +240.223 169.131 L +240.289 169.131 L +240.289 169.245 L +240.488 169.245 L +240.521 169.188 L +240.488 169.131 L +240.554 169.131 L +240.587 169.073 L +240.686 169.245 L +240.752 169.245 L +240.984 168.844 L +241.017 168.902 L +241.083 168.558 L +241.017 168.558 L +240.984 168.615 L +240.984 168.157 L +241.017 168.214 L +241.182 168.042 L +241.216 168.1 L +241.282 168.1 L +241.249 168.157 L +241.282 168.214 L +241.381 168.157 L +241.48 168.214 L +241.513 168.157 L +241.48 168.1 L +241.546 168.1 L +241.546 167.985 L +241.48 167.985 L +241.513 167.928 L +241.48 167.87 L +241.546 167.87 L +241.679 167.756 L +241.745 167.756 L +241.778 167.699 L +241.877 167.87 L +241.976 167.813 L +242.009 167.87 L +242.075 167.985 L +242.009 167.985 L +241.976 168.042 L +242.009 168.1 L +242.075 168.214 L +242.208 168.214 L +242.274 168.214 L +242.373 168.042 L +242.472 168.214 L +242.538 168.214 L +242.572 168.157 L +242.572 168.615 L +242.538 168.558 L +242.472 168.558 L +242.472 168.902 L +242.538 168.902 L +242.572 168.844 L +242.671 169.245 L +242.737 169.245 L +242.77 169.188 L +242.803 169.245 L +242.968 169.073 L +243.002 169.131 L +243.068 169.245 L +243.2 169.245 L +243.266 169.245 L +243.465 168.787 L +243.531 168.787 L +243.564 168.73 L +243.663 168.902 L +243.729 168.902 L +243.762 168.844 L +243.861 169.245 L +243.994 169.245 L +244.06 169.245 L +244.159 169.073 L +244.192 169.131 L +244.258 169.131 L +244.225 169.188 L +244.258 169.245 L +244.358 169.188 L +244.358 169.646 L +244.258 169.589 L +244.225 169.646 L +244.258 169.704 L +244.192 169.704 L +244.192 169.818 L +244.258 169.818 L +244.225 169.875 L +244.258 169.933 L +244.358 169.875 L +244.358 170.334 L +244.258 170.276 L +244.225 170.334 L +244.258 170.391 L +244.192 170.391 L +244.159 170.448 L +244.06 170.276 L +243.994 170.276 L +243.762 170.677 L +243.729 170.62 L +243.663 170.964 L +243.729 170.964 L +243.762 170.907 L +243.861 171.308 L +243.994 171.308 L +244.06 171.308 L +244.159 171.136 L +244.192 171.193 L +244.258 171.193 L +244.225 171.25 L +244.258 171.308 L +244.358 171.25 L +244.358 171.709 L +244.258 171.651 L +244.225 171.709 L +244.258 171.766 L +244.192 171.766 L +244.192 171.881 L +244.258 171.881 L +244.225 171.938 L +244.258 171.995 L +244.358 171.938 L +244.457 172.339 L +244.523 172.339 L +244.655 172.224 L +244.721 172.224 L +244.754 172.167 L +244.854 172.339 L +244.986 172.339 L +245.052 172.339 L +245.151 171.938 L +245.184 171.995 L +245.251 171.995 L +245.35 171.823 L +245.449 171.995 L +245.515 171.995 L +245.548 171.938 L +245.647 172.339 L +245.747 172.282 L +245.78 172.339 L +245.945 172.167 L +245.978 172.224 L +246.044 172.224 L +246.044 172.339 L +246.243 172.339 L +246.276 172.282 L +246.243 172.224 L +246.309 172.224 L +246.309 172.11 L +246.243 172.11 L +246.276 172.052 L +246.243 171.995 L +246.309 171.995 L +246.441 171.881 L +246.507 171.881 L +246.507 171.766 L +246.441 171.766 L +246.441 171.651 L +246.309 171.651 L +246.243 171.651 L +246.276 171.594 L +246.243 171.537 L +246.309 171.537 L +246.309 171.422 L +246.243 171.422 L +246.276 171.365 L +246.243 171.308 L +246.309 171.308 L +246.441 171.193 L +246.507 171.193 L +246.54 171.136 L +246.64 171.308 L +246.739 171.25 L +246.772 171.308 L +246.937 170.907 L +246.97 170.964 L +247.037 170.964 L +247.136 170.792 L +247.235 170.964 L +247.301 170.964 L +247.334 170.907 L +247.433 171.308 L +247.5 171.308 L +247.533 171.25 L +247.566 171.308 L +247.731 171.136 L +247.764 171.193 L +247.83 171.308 L +247.963 171.308 L +248.029 171.308 L +247.996 171.365 L +248.029 171.422 L +247.963 171.422 L +247.963 171.537 L +248.029 171.537 L +247.996 171.594 L +248.029 171.651 L +247.963 171.651 L +247.83 171.766 L +247.764 171.766 L +247.731 171.823 L +247.764 171.881 L +247.83 171.995 L +247.963 171.995 L +248.029 171.995 L +247.996 172.052 L +248.029 172.11 L +247.963 172.11 L +247.963 172.224 L +248.029 172.224 L +247.996 172.282 L +248.029 172.339 L +248.128 172.282 L +248.227 172.339 L +248.26 172.282 L +248.227 172.224 L +248.293 172.224 L +248.326 172.167 L +248.426 172.339 L +248.492 172.339 L +248.525 172.282 L +248.558 172.339 L +248.723 171.938 L +248.756 171.995 L +248.922 171.823 L +248.955 171.881 L +249.021 171.881 L +248.988 171.938 L +249.021 171.995 L +249.12 171.938 L +249.219 172.339 L +249.286 172.339 L +249.418 172.224 L +249.484 172.224 L +249.517 172.167 L +249.616 172.339 L +249.749 172.339 L +249.815 172.339 L +249.815 172.453 L +249.749 172.453 L +249.749 172.568 L +249.815 172.568 L +249.815 172.683 L +249.749 172.683 L +249.616 173.026 L +249.749 173.026 L +249.815 173.026 L +249.815 173.141 L +249.749 173.141 L +249.749 173.255 L +249.815 173.255 L +249.815 173.37 L +249.749 173.37 L +249.517 173.542 L +249.484 173.485 L +249.418 173.37 L +249.286 173.37 L +249.219 173.37 L +249.12 173.771 L +249.021 173.714 L +248.988 173.771 L +249.021 173.828 L +248.955 173.828 L +248.955 173.943 L +249.021 173.943 L +248.988 174 L +249.021 174.057 L +249.12 174 L +249.219 174.401 L +249.286 174.401 L +249.484 174.287 L +249.517 174.229 L +249.616 174.401 L +249.749 174.401 L +249.815 174.401 L +249.815 174.516 L +249.749 174.516 L +249.749 174.63 L +249.815 174.63 L +249.815 174.745 L +249.749 174.745 L +249.616 175.089 L +249.749 175.089 L +249.815 175.089 L +249.815 175.203 L +249.749 175.203 L +249.749 175.318 L +249.815 175.318 L +249.815 175.432 L +249.749 175.432 L +249.517 175.604 L +249.484 175.547 L +249.418 175.547 L +249.418 175.432 L +249.286 175.432 L +249.219 175.432 L +249.12 175.833 L +249.021 175.776 L +248.988 175.833 L +249.021 175.891 L +248.955 175.891 L +248.922 175.948 L +248.823 175.776 L +248.756 175.776 L +248.723 175.833 L +248.624 175.432 L +248.525 175.49 L +248.492 175.432 L +248.326 175.604 L +248.293 175.547 L +248.227 175.547 L +248.26 175.49 L +248.227 175.432 L +248.128 175.49 L +248.029 175.432 L +247.996 175.49 L +248.029 175.547 L +247.963 175.547 L +247.963 175.661 L +248.029 175.661 L +247.996 175.719 L +248.029 175.776 L +247.963 175.776 L +247.83 175.891 L +247.764 175.891 L +247.731 175.948 L +247.764 176.005 L +247.83 176.005 L +247.83 176.12 L +247.963 176.12 L +248.029 176.12 L +247.996 176.177 L +248.029 176.234 L +247.963 176.234 L +247.963 176.349 L +248.029 176.349 L +247.996 176.406 L +248.029 176.463 L +247.963 176.463 L +247.764 176.578 L +247.731 176.635 L +247.632 176.463 L +247.533 176.521 L +247.5 176.463 L +247.334 176.864 L +247.301 176.807 L +247.235 176.807 L +247.235 177.151 L +247.301 177.151 L +247.334 177.094 L +247.433 177.495 L +247.5 177.495 L +247.533 177.437 L +247.566 177.495 L +247.731 177.323 L +247.764 177.38 L +247.83 177.495 L +247.963 177.495 L +248.029 177.495 L +247.996 177.552 L +248.029 177.609 L +247.963 177.609 L +247.963 177.724 L +248.029 177.724 L +247.996 177.781 L +248.029 177.838 L +247.963 177.838 L +247.83 177.953 L +247.764 177.953 L +247.731 178.01 L +247.764 178.067 L +247.83 178.182 L +247.963 178.182 L +248.029 178.182 L +247.996 178.239 L +248.029 178.297 L +247.963 178.297 L +247.963 178.411 L +248.029 178.411 L +247.996 178.468 L +248.029 178.526 L +248.128 178.468 L +248.227 178.526 L +248.26 178.468 L +248.227 178.411 L +248.293 178.411 L +248.326 178.354 L +248.426 178.526 L +248.492 178.526 L +248.525 178.468 L +248.558 178.526 L +248.723 178.125 L +248.756 178.182 L +248.922 178.01 L +248.955 178.067 L +249.021 178.067 L +248.988 178.125 L +249.021 178.182 L +249.12 178.125 L +249.219 178.526 L +249.286 178.526 L +249.418 178.411 L +249.484 178.411 L +249.517 178.354 L +249.616 178.526 L +249.749 178.526 L +249.815 178.526 L +249.815 178.64 L +249.749 178.64 L +249.749 178.755 L +249.815 178.755 L +249.815 178.869 L +249.749 178.869 L +249.616 179.213 L +249.749 179.213 L +249.815 179.213 L +249.815 179.328 L +249.749 179.328 L +249.749 179.442 L +249.815 179.442 L +249.815 179.557 L +249.749 179.557 L +249.517 179.729 L +249.484 179.671 L +249.418 179.557 L +249.286 179.557 L +249.219 179.557 L +249.12 179.958 L +249.021 179.901 L +248.988 179.958 L +249.021 180.015 L +248.955 180.015 L +248.955 180.13 L +249.021 180.13 L +248.988 180.187 L +249.021 180.244 L +249.12 180.187 L +249.219 180.588 L +249.286 180.588 L +249.418 180.473 L +249.484 180.473 L +249.517 180.416 L +249.616 180.588 L +249.749 180.588 L +249.815 180.588 L +249.815 180.703 L +249.749 180.703 L +249.749 180.817 L +249.815 180.817 L +249.815 180.932 L +249.749 180.932 L +249.616 181.275 L +249.749 181.275 L +249.815 181.275 L +249.815 181.39 L +249.749 181.39 L +249.749 181.505 L +249.815 181.505 L +249.815 181.619 L +249.947 181.619 L +250.013 181.619 L +250.112 181.447 L +250.212 181.619 L +250.278 181.619 L +250.41 181.505 L +250.476 181.505 L +250.509 181.447 L +250.476 181.39 L +250.41 181.275 L +250.476 181.275 L +250.509 181.218 L +250.542 181.275 L +250.708 181.104 L +250.741 181.161 L +250.807 181.161 L +250.807 181.275 L +250.939 181.275 L +251.005 181.275 L +250.972 181.333 L +251.005 181.39 L +250.939 181.39 L +250.939 181.505 L +251.005 181.505 L +250.972 181.562 L +251.005 181.619 L +251.204 181.505 L +251.27 181.505 L +251.303 181.447 L +251.402 181.619 L +251.469 181.619 L +251.502 181.562 L +251.535 181.619 L +251.7 181.218 L +251.733 181.275 L +251.799 181.275 L +251.799 180.932 L +251.733 180.932 L +251.7 180.989 L +251.7 180.531 L +251.733 180.588 L +251.799 180.588 L +251.898 180.416 L +251.998 180.588 L +252.064 180.588 L +252.196 180.473 L +252.262 180.473 L +252.262 180.359 L +252.196 180.359 L +252.196 180.244 L +252.262 180.244 L +252.494 180.072 L +252.527 180.13 L +252.593 180.244 L +252.725 180.244 L +252.791 180.244 L +252.791 180.359 L +252.725 180.359 L +252.725 180.473 L +252.791 180.473 L +252.791 180.588 L +252.99 180.588 L +253.023 180.531 L +252.99 180.473 L +253.056 180.473 L +253.089 180.416 L +253.188 180.588 L +253.255 180.588 L +253.288 180.531 L +253.288 180.989 L +253.255 180.932 L +253.188 180.932 L +253.188 181.275 L +253.255 181.275 L +253.288 181.218 L +253.387 181.619 L +253.486 181.562 L +253.519 181.619 L +253.684 181.447 L +253.718 181.505 L +253.784 181.505 L +253.784 181.619 L +253.982 181.619 L +254.015 181.562 L +253.982 181.505 L +254.048 181.505 L +254.048 181.39 L +253.982 181.39 L +254.015 181.333 L +253.982 181.275 L +254.048 181.275 L +254.181 181.161 L +254.247 181.161 L +254.28 181.104 L +254.379 181.275 L +254.478 181.218 L +254.511 181.275 L +254.577 181.39 L +254.511 181.39 L +254.478 181.447 L +254.511 181.505 L +254.577 181.505 L +254.577 181.619 L +254.71 181.619 L +254.776 181.619 L +254.875 181.447 L +254.974 181.619 L +255.041 181.619 L +255.173 181.505 L +255.239 181.505 L +255.272 181.447 L +255.239 181.39 L +255.173 181.275 L +255.239 181.275 L +255.272 181.218 L +255.305 181.275 L +255.371 180.932 L +255.272 180.989 L +255.239 180.932 L +255.173 180.817 L +255.239 180.817 L +255.272 180.76 L +255.239 180.703 L +255.173 180.588 L +255.239 180.588 L +255.272 180.531 L +255.305 180.588 L +255.471 180.416 L +255.504 180.473 L +255.57 180.588 L +255.702 180.588 L +255.768 180.588 L +255.967 180.13 L +256.033 180.13 L +256.033 180.015 L +255.967 180.015 L +255.768 179.557 L +255.702 179.557 L +255.57 179.671 L +255.504 179.671 L +255.471 179.729 L +255.371 179.557 L +255.272 179.614 L +255.239 179.557 L +255.173 179.442 L +255.239 179.442 L +255.272 179.385 L +255.239 179.328 L +255.173 179.213 L +255.239 179.213 L +255.272 179.156 L +255.305 179.213 L +255.371 178.869 L +255.272 178.927 L +255.239 178.869 L +255.173 178.755 L +255.239 178.755 L +255.272 178.698 L +255.239 178.64 L +255.173 178.526 L +255.239 178.526 L +255.272 178.468 L +255.305 178.526 L +255.471 178.354 L +255.504 178.411 L +255.57 178.526 L +255.702 178.526 L +255.768 178.526 L +255.967 178.067 L +256.033 178.067 L +256.066 178.01 L +256.165 178.182 L +256.231 178.182 L +256.264 178.125 L +256.363 178.526 L +256.496 178.526 L +256.562 178.526 L +256.661 178.354 L +256.694 178.411 L +256.76 178.411 L +256.727 178.468 L +256.76 178.526 L +256.959 178.411 L +257.025 178.411 L +257.025 178.297 L +256.959 178.297 L +256.959 178.182 L +257.025 178.182 L +257.157 178.067 L +257.223 178.067 L +257.257 178.01 L +257.223 177.953 L +257.157 177.953 L +257.157 177.838 L +257.025 177.838 L +256.959 177.838 L +256.959 177.724 L +257.025 177.724 L +257.025 177.609 L +256.959 177.609 L +256.959 177.495 L +257.025 177.495 L +257.157 177.38 L +257.223 177.38 L +257.257 177.323 L +257.356 177.495 L +257.488 177.495 L +257.554 177.495 L +257.653 177.094 L +257.686 177.151 L +257.753 177.151 L +257.852 176.979 L +257.951 177.151 L +258.017 177.151 L +258.05 177.094 L +258.15 177.495 L +258.249 177.437 L +258.282 177.495 L +258.447 177.323 L +258.48 177.38 L +258.546 177.38 L +258.546 177.953 L +258.48 177.953 L +258.48 178.067 L +258.546 178.067 L +258.745 178.526 L +258.811 178.526 L +258.943 178.411 L +259.009 178.411 L +259.043 178.354 L +259.142 178.526 L +259.241 178.468 L +259.274 178.526 L +259.439 178.125 L +259.473 178.182 L +259.539 178.182 L +259.638 178.01 L +259.737 178.182 L +259.803 178.182 L +259.836 178.125 L +259.936 178.526 L +260.002 178.526 L +260.233 178.354 L +260.266 178.411 L +260.332 178.526 L +260.465 178.526 L +260.531 178.526 L +260.498 178.583 L +260.531 178.64 L +260.465 178.64 L +260.465 178.755 L +260.531 178.755 L +260.498 178.812 L +260.531 178.869 L +260.465 178.869 L +260.332 178.984 L +260.266 178.984 L +260.233 179.041 L +260.266 179.099 L +260.332 179.099 L +260.332 179.213 L +260.465 179.213 L +260.531 179.213 L +260.498 179.27 L +260.531 179.328 L +260.465 179.328 L +260.465 179.442 L +260.531 179.442 L +260.498 179.5 L +260.531 179.557 L +260.465 179.557 L +260.332 179.671 L +260.266 179.671 L +260.233 179.729 L +260.134 179.557 L +260.002 179.557 L +259.936 179.557 L +259.836 179.958 L +259.803 179.901 L +259.737 179.901 L +259.737 180.244 L +259.803 180.244 L +259.836 180.187 L +259.936 180.588 L +260.002 180.588 L +260.233 180.416 L +260.266 180.473 L +260.332 180.588 L +260.465 180.588 L +260.531 180.588 L +260.498 180.645 L +260.531 180.703 L +260.465 180.703 L +260.465 180.817 L +260.531 180.817 L +260.498 180.874 L +260.531 180.932 L +260.465 180.932 L +260.332 181.046 L +260.266 181.046 L +260.233 181.104 L +260.266 181.161 L +260.332 181.275 L +260.465 181.275 L +260.531 181.275 L +260.498 181.333 L +260.531 181.39 L +260.465 181.39 L +260.465 181.505 L +260.531 181.505 L +260.498 181.562 L +260.531 181.619 L +260.63 181.562 L +260.729 181.619 L +260.762 181.562 L +260.729 181.505 L +260.795 181.505 L +260.829 181.447 L +260.928 181.619 L +260.994 181.619 L +261.027 181.562 L +261.06 181.619 L +261.225 181.218 L +261.258 181.275 L +261.424 181.104 L +261.457 181.161 L +261.523 181.161 L +261.49 181.218 L +261.523 181.275 L +261.622 181.218 L +261.722 181.619 L +261.788 181.619 L +261.986 181.505 L +262.019 181.447 L +262.118 181.619 L +262.218 181.562 L +262.251 181.619 L +262.416 181.218 L +262.449 181.275 L +262.515 181.275 L +262.515 180.932 L +262.449 180.932 L +262.416 180.989 L +262.416 180.531 L +262.449 180.588 L +262.515 180.588 L +262.615 180.416 L +262.714 180.588 L +262.78 180.588 L +262.912 180.473 L +262.978 180.473 L +263.011 180.416 L +262.978 180.359 L +262.912 180.244 L +262.978 180.244 L +263.011 180.187 L +263.044 180.244 L +263.21 180.072 L +263.243 180.13 L +263.309 180.13 L +263.309 180.244 L +263.441 180.244 L +263.508 180.244 L +263.474 180.302 L +263.508 180.359 L +263.441 180.359 L +263.441 180.473 L +263.508 180.473 L +263.474 180.531 L +263.508 180.588 L +263.706 180.473 L +263.772 180.473 L +263.805 180.416 L +263.904 180.588 L +263.971 180.588 L +264.004 180.531 L +264.004 180.989 L +263.971 180.932 L +263.904 181.275 L +263.971 181.275 L +264.004 181.218 L +264.103 181.619 L +264.235 181.619 L +264.301 181.619 L +264.401 181.447 L +264.5 181.619 L +264.566 181.619 L +264.698 181.505 L +264.764 181.505 L +264.764 181.39 L +264.698 181.39 L +264.698 181.275 L +264.764 181.275 L +264.996 181.104 L +265.029 181.161 L +265.095 181.275 L +265.227 181.275 L +265.294 181.275 L +265.294 181.39 L +265.227 181.39 L +265.227 181.505 L +265.294 181.505 L +265.294 181.619 L +265.492 181.619 L +265.525 181.562 L +265.492 181.505 L +265.558 181.505 L +265.591 181.447 L +265.69 181.619 L +265.757 181.619 L +265.988 181.218 L +266.021 181.275 L +266.087 180.932 L +266.021 180.932 L +265.988 180.989 L +265.988 180.531 L +266.021 180.588 L +266.187 180.416 L +266.22 180.473 L +266.286 180.473 L +266.286 180.588 L +266.484 180.588 L +266.517 180.531 L +266.484 180.473 L +266.55 180.473 L +266.55 180.359 L +266.484 180.359 L +266.517 180.302 L +266.484 180.244 L +266.55 180.244 L +266.683 180.13 L +266.749 180.13 L +266.782 180.072 L +266.749 180.015 L +266.683 180.015 L +266.683 179.901 L +266.55 179.901 L +266.484 179.901 L +266.517 179.843 L +266.484 179.786 L +266.55 179.786 L +266.55 179.671 L +266.484 179.671 L +266.517 179.614 L +266.484 179.557 L +266.286 179.671 L +266.22 179.671 L +266.187 179.729 L +266.087 179.557 L +266.021 179.557 L +265.988 179.614 L +265.988 179.156 L +266.021 179.213 L +266.087 178.869 L +266.021 178.869 L +265.988 178.927 L +265.988 178.468 L +266.021 178.526 L +266.187 178.354 L +266.22 178.411 L +266.286 178.411 L +266.286 178.526 L +266.484 178.526 L +266.517 178.468 L +266.484 178.411 L +266.55 178.411 L +266.55 178.297 L +266.484 178.297 L +266.517 178.239 L +266.484 178.182 L +266.55 178.182 L +266.683 178.067 L +266.749 178.067 L +266.782 178.01 L +266.881 178.182 L +266.98 178.125 L +267.013 178.182 L +267.08 178.297 L +267.013 178.297 L +266.98 178.354 L +267.013 178.411 L +267.08 178.526 L +267.212 178.526 L +267.278 178.526 L +267.377 178.354 L +267.476 178.526 L +267.543 178.526 L +267.675 178.411 L +267.741 178.411 L +267.774 178.354 L +267.741 178.297 L +267.675 178.182 L +267.741 178.182 L +267.774 178.125 L +267.807 178.182 L +267.873 177.838 L +267.774 177.896 L +267.741 177.838 L +267.675 177.724 L +267.741 177.724 L +267.774 177.666 L +267.741 177.609 L +267.675 177.495 L +267.741 177.495 L +267.774 177.437 L +267.807 177.495 L +267.973 177.323 L +268.006 177.38 L +268.072 177.495 L +268.204 177.495 L +268.27 177.495 L +268.369 177.094 L +268.469 177.151 L +268.502 177.094 L +268.469 177.036 L +268.535 177.036 L +268.535 176.922 L +268.469 176.922 L +268.502 176.864 L +268.469 176.807 L +268.369 176.864 L +268.27 176.463 L +268.204 176.463 L +268.072 176.578 L +268.006 176.578 L +267.973 176.635 L +267.873 176.463 L +267.774 176.521 L +267.741 176.463 L +267.675 176.349 L +267.741 176.349 L +267.774 176.292 L +267.741 176.234 L +267.675 176.12 L +267.741 176.12 L +267.774 176.062 L +267.807 176.12 L +267.873 175.776 L +267.774 175.833 L +267.741 175.776 L +267.675 175.661 L +267.741 175.661 L +267.774 175.604 L +267.741 175.547 L +267.675 175.432 L +267.543 175.432 L +267.476 175.432 L +267.377 175.604 L +267.278 175.432 L +267.212 175.432 L +267.08 175.547 L +267.013 175.547 L +266.98 175.604 L +267.013 175.661 L +267.08 175.776 L +267.013 175.776 L +266.98 175.833 L +266.947 175.776 L +266.782 175.948 L +266.749 175.891 L +266.683 175.776 L +266.55 175.776 L +266.484 175.776 L +266.517 175.719 L +266.484 175.661 L +266.55 175.661 L +266.55 175.547 L +266.484 175.547 L +266.517 175.49 L +266.484 175.432 L +266.286 175.547 L +266.22 175.547 L +266.187 175.604 L +266.087 175.432 L +266.021 175.432 L +265.988 175.49 L +265.988 175.031 L +266.021 175.089 L +266.087 174.745 L +266.021 174.745 L +265.988 174.802 L +265.988 174.344 L +266.021 174.401 L +266.187 174.229 L +266.22 174.287 L +266.286 174.287 L +266.286 174.401 L +266.484 174.401 L +266.517 174.344 L +266.484 174.287 L +266.55 174.287 L +266.55 174.172 L +266.484 174.172 L +266.517 174.115 L +266.484 174.057 L +266.55 174.057 L +266.683 173.943 L +266.749 173.943 L +266.782 173.886 L +266.749 173.828 L +266.683 173.714 L +266.55 173.714 L +266.484 173.714 L +266.517 173.656 L +266.484 173.599 L +266.55 173.599 L +266.55 173.485 L +266.484 173.485 L +266.517 173.427 L +266.484 173.37 L +266.286 173.485 L +266.22 173.485 L +266.187 173.542 L +266.087 173.37 L +266.021 173.37 L +265.988 173.427 L +265.988 172.969 L +266.021 173.026 L +266.087 172.683 L +266.021 172.683 L +265.988 172.74 L +265.988 172.282 L +266.021 172.339 L +266.187 172.167 L +266.22 172.224 L +266.286 172.224 L +266.286 172.339 L +266.484 172.339 L +266.517 172.282 L +266.484 172.224 L +266.55 172.224 L +266.55 172.11 L +266.484 172.11 L +266.517 172.052 L +266.484 171.995 L +266.55 171.995 L +266.683 171.881 L +266.749 171.881 L +266.782 171.823 L +266.881 171.995 L +266.98 171.938 L +267.013 171.995 L +267.08 172.11 L +267.013 172.11 L +266.98 172.167 L +267.013 172.224 L +267.08 172.224 L +267.08 172.339 L +267.212 172.339 L +267.278 172.339 L +267.377 172.167 L +267.476 172.339 L +267.543 172.339 L +267.675 172.224 L +267.741 172.224 L +267.774 172.167 L +267.741 172.11 L +267.675 171.995 L +267.741 171.995 L +267.774 171.938 L +267.807 171.995 L +267.873 171.651 L +267.774 171.709 L +267.741 171.651 L +267.675 171.537 L +267.741 171.537 L +267.774 171.48 L +267.741 171.422 L +267.675 171.308 L +267.741 171.308 L +267.774 171.25 L +267.807 171.308 L +267.973 171.136 L +268.006 171.193 L +268.072 171.308 L +268.204 171.308 L +268.27 171.308 L +268.369 170.907 L +268.469 170.964 L +268.502 170.907 L +268.469 170.849 L +268.535 170.849 L +268.568 170.792 L +268.667 170.964 L +268.733 170.964 L +268.766 170.907 L +268.866 171.308 L +268.998 171.308 L +269.064 171.308 L +269.163 171.136 L +269.196 171.193 L +269.262 171.193 L +269.229 171.25 L +269.262 171.308 L +269.362 171.25 L +269.362 171.709 L +269.262 171.651 L +269.229 171.709 L +269.262 171.766 L +269.196 171.766 L +269.196 171.881 L +269.262 171.881 L +269.229 171.938 L +269.262 171.995 L +269.362 171.938 L +269.461 172.339 L +269.527 172.339 L +269.725 172.224 L +269.759 172.167 L +269.858 172.339 L +269.99 172.339 L +270.056 172.339 L +270.155 171.938 L +270.189 171.995 L +270.255 171.995 L +270.354 171.823 L +270.453 171.995 L +270.519 171.995 L +270.552 171.938 L +270.652 172.339 L +270.718 172.339 L +270.751 172.282 L +270.784 172.339 L +270.949 172.167 L +270.982 172.224 L +271.048 172.224 L +271.048 172.339 L +271.247 172.339 L +271.28 172.282 L +271.247 172.224 L +271.313 172.224 L +271.313 172.11 L +271.247 172.11 L +271.28 172.052 L +271.247 171.995 L +271.313 171.995 L +271.445 171.881 L +271.512 171.881 L +271.512 171.766 L +271.445 171.766 L +271.445 171.651 L +271.313 171.651 L +271.247 171.651 L +271.28 171.594 L +271.247 171.537 L +271.313 171.537 L +271.313 171.422 L +271.247 171.422 L +271.28 171.365 L +271.247 171.308 L +271.313 171.308 L +271.445 171.193 L +271.512 171.193 L +271.545 171.136 L +271.644 171.308 L +271.743 171.25 L +271.776 171.308 L +271.941 170.907 L +271.975 170.964 L +272.041 170.964 L +272.041 170.62 L +271.975 170.62 L +271.941 170.677 L +271.842 170.276 L +271.776 170.276 L +271.743 170.334 L +271.71 170.276 L +271.545 170.448 L +271.512 170.391 L +271.445 170.391 L +271.445 170.276 L +271.313 170.276 L +271.247 170.276 L +271.28 170.219 L +271.247 170.162 L +271.313 170.162 L +271.313 170.047 L +271.247 170.047 L +271.28 169.99 L +271.247 169.933 L +271.313 169.933 L +271.445 169.818 L +271.512 169.818 L +271.512 169.704 L +271.445 169.704 L +271.445 169.589 L +271.313 169.589 L +271.247 169.589 L +271.28 169.532 L +271.247 169.474 L +271.313 169.474 L +271.313 169.36 L +271.247 169.36 L +271.28 169.303 L +271.247 169.245 L +271.313 169.245 L +271.445 169.131 L +271.512 169.131 L +271.545 169.073 L +271.644 169.245 L +271.743 169.188 L +271.776 169.245 L +271.941 168.844 L +271.975 168.902 L +272.041 168.902 L +272.14 168.73 L +272.239 168.902 L +272.305 168.902 L +272.338 168.844 L +272.438 169.245 L +272.504 169.245 L +272.735 169.073 L +272.768 169.131 L +272.834 169.245 L +272.967 169.245 L +273.033 169.245 L +273.132 168.844 L +273.231 168.902 L +273.264 168.844 L +273.231 168.787 L +273.298 168.787 L +273.298 168.672 L +273.231 168.672 L +273.264 168.615 L +273.231 168.558 L +273.132 168.615 L +273.132 168.157 L +273.231 168.214 L +273.264 168.157 L +273.231 168.1 L +273.298 168.1 L +273.331 168.042 L +273.43 168.214 L +273.496 168.214 L +273.529 168.157 L +273.562 168.214 L +273.727 167.813 L +273.761 167.87 L +273.827 167.527 L +273.761 167.527 L +273.727 167.584 L +273.628 167.183 L +273.529 167.24 L +273.496 167.183 L +273.331 167.355 L +273.298 167.298 L +273.231 167.298 L +273.264 167.24 L +273.231 167.183 L +273.132 167.24 L +273.132 166.782 L +273.231 166.839 L +273.264 166.782 L +273.231 166.725 L +273.298 166.725 L +273.298 166.61 L +273.231 166.61 L +273.264 166.553 L +273.231 166.496 L +273.132 166.553 L +273.033 166.152 L +272.967 166.152 L +272.834 166.266 L +272.768 166.266 L +272.735 166.324 L +272.636 166.152 L +272.504 166.152 L +272.438 166.152 L +272.338 166.553 L +272.305 166.496 L +272.239 166.496 L +272.14 166.667 L +272.041 166.496 L +271.975 166.496 L +271.941 166.553 L +271.842 166.152 L +271.776 166.152 L +271.743 166.209 L +271.71 166.152 L +271.545 166.324 L +271.512 166.266 L +271.445 166.266 L +271.445 166.152 L +271.313 166.152 L +271.247 166.152 L +271.28 166.095 L +271.247 166.037 L +271.313 166.037 L +271.313 165.923 L +271.247 165.923 L +271.28 165.865 L +271.247 165.808 L +271.313 165.808 L +271.445 165.694 L +271.512 165.694 L +271.512 165.579 L +271.445 165.579 L +271.445 165.464 L +271.313 165.464 L +271.247 165.464 L +271.28 165.407 L +271.247 165.35 L +271.313 165.35 L +271.313 165.235 L +271.247 165.235 L +271.28 165.178 L +271.247 165.121 L +271.313 165.121 L +271.445 165.006 L +271.512 165.006 L +271.545 164.949 L +271.644 165.121 L +271.743 165.063 L +271.776 165.121 L +271.941 164.72 L +271.975 164.777 L +272.041 164.777 L +272.041 164.433 L +271.975 164.433 L +271.941 164.491 L +271.842 164.09 L +271.776 164.09 L +271.743 164.147 L +271.71 164.09 L +271.545 164.261 L +271.512 164.204 L +271.445 164.204 L +271.445 164.09 L +271.313 164.09 L +271.247 164.09 L +271.28 164.032 L +271.247 163.975 L +271.313 163.975 L +271.313 163.86 L +271.247 163.86 L +271.28 163.803 L +271.247 163.746 L +271.313 163.746 L +271.445 163.631 L +271.512 163.631 L +271.512 163.517 L +271.445 163.517 L +271.445 163.402 L +271.313 163.402 L +271.247 163.402 L +271.28 163.345 L +271.247 163.288 L +271.313 163.288 L +271.313 163.173 L +271.247 163.173 L +271.28 163.116 L +271.247 163.058 L +271.048 163.173 L +270.982 163.173 L +270.949 163.23 L +270.85 163.058 L +270.751 163.116 L +270.718 163.058 L +270.552 163.459 L +270.519 163.402 L +270.453 163.402 L +270.354 163.574 L +270.255 163.402 L +270.189 163.402 L +270.155 163.459 L +270.056 163.058 L +269.99 163.058 L +269.759 163.23 L +269.725 163.173 L +269.659 163.173 L +269.659 163.058 L +269.527 163.058 L +269.461 163.058 L +269.362 163.459 L +269.262 163.402 L +269.229 163.459 L +269.262 163.517 L +269.196 163.517 L +269.196 163.631 L +269.262 163.631 L +269.229 163.689 L +269.262 163.746 L +269.362 163.689 L +269.362 164.147 L +269.262 164.09 L +269.229 164.147 L +269.262 164.204 L +269.196 164.204 L +269.163 164.261 L +269.064 164.09 L +268.998 164.09 L +268.766 164.491 L +268.733 164.433 L +268.568 164.605 L +268.535 164.548 L +268.469 164.548 L +268.502 164.491 L +268.469 164.433 L +268.369 164.491 L +268.27 164.09 L +268.204 164.09 L +268.006 164.204 L +267.973 164.261 L +267.873 164.09 L +267.774 164.147 L +267.741 164.09 L +267.675 163.975 L +267.741 163.975 L +267.774 163.918 L +267.741 163.86 L +267.675 163.746 L +267.741 163.746 L +267.774 163.689 L +267.807 163.746 L +267.873 163.402 L +267.774 163.459 L +267.741 163.402 L +267.675 163.288 L +267.741 163.288 L +267.774 163.23 L +267.741 163.173 L +267.675 163.058 L +267.543 163.058 L +267.476 163.058 L +267.377 163.23 L +267.278 163.058 L +267.212 163.058 L +267.08 163.173 L +267.013 163.173 L +266.98 163.23 L +267.013 163.288 L +267.08 163.402 L +267.013 163.402 L +266.98 163.459 L +266.947 163.402 L +266.782 163.574 L +266.749 163.517 L +266.683 163.402 L +266.55 163.402 L +266.484 163.402 L +266.517 163.345 L +266.484 163.288 L +266.55 163.288 L +266.55 163.173 L +266.484 163.173 L +266.517 163.116 L +266.484 163.058 L +266.286 163.173 L +266.22 163.173 L +266.187 163.23 L +266.087 163.058 L +266.021 163.058 L +265.988 163.116 L +265.988 162.657 L +266.021 162.715 L +266.087 162.371 L +266.021 162.371 L +265.988 162.428 L +265.988 161.97 L +266.021 162.027 L +266.187 161.855 L +266.22 161.913 L +266.286 161.913 L +266.286 162.027 L +266.484 162.027 L +266.517 161.97 L +266.484 161.913 L +266.55 161.913 L +266.55 161.798 L +266.484 161.798 L +266.517 161.741 L +266.484 161.684 L +266.55 161.684 L +266.683 161.569 L +266.749 161.569 L +266.782 161.512 L +266.749 161.454 L +266.683 161.34 L +266.55 161.34 L +266.484 161.34 L +266.517 161.283 L +266.484 161.225 L +266.55 161.225 L +266.55 161.111 L +266.484 161.111 L +266.517 161.053 L +266.484 160.996 L +266.286 161.111 L +266.22 161.111 L +266.187 161.168 L +266.087 160.996 L +266.021 160.996 L +265.988 161.053 L +265.988 160.595 L +266.021 160.652 L +266.087 160.309 L +266.021 160.309 L +265.988 160.366 L +265.988 159.908 L +266.021 159.965 L +266.187 159.793 L +266.22 159.85 L +266.286 159.85 L +266.286 159.965 L +266.484 159.965 L +266.517 159.908 L +266.484 159.85 L +266.55 159.85 L +266.55 159.736 L +266.484 159.736 L +266.517 159.679 L +266.484 159.621 L +266.55 159.621 L +266.683 159.507 L +266.749 159.507 L +266.782 159.449 L +266.881 159.621 L +266.98 159.564 L +267.013 159.621 L +267.08 159.736 L +267.013 159.736 L +266.98 159.793 L +267.013 159.85 L +267.08 159.965 L +267.212 159.965 L +267.278 159.965 L +267.377 159.793 L +267.476 159.965 L +267.543 159.965 L +267.675 159.85 L +267.741 159.85 L +267.774 159.793 L +267.741 159.736 L +267.675 159.621 L +267.741 159.621 L +267.774 159.564 L +267.807 159.621 L +267.873 159.278 L +267.774 159.335 L +267.741 159.278 L +267.675 159.163 L +267.741 159.163 L +267.774 159.106 L +267.741 159.048 L +267.675 158.934 L +267.741 158.934 L +267.774 158.877 L +267.807 158.934 L +267.973 158.762 L +268.006 158.819 L +268.072 158.934 L +268.204 158.934 L +268.27 158.934 L +268.369 158.533 L +268.469 158.59 L +268.502 158.533 L +268.469 158.476 L +268.535 158.476 L +268.535 158.361 L +268.469 158.361 L +268.502 158.304 L +268.469 158.246 L +268.369 158.304 L +268.27 157.903 L +268.204 157.903 L +268.072 158.017 L +268.006 158.017 L +267.973 158.075 L +267.873 157.903 L +267.774 157.96 L +267.741 157.903 L +267.675 157.788 L +267.741 157.788 L +267.774 157.731 L +267.741 157.674 L +267.675 157.559 L +267.741 157.559 L +267.774 157.502 L +267.807 157.559 L +267.873 157.215 L +267.774 157.273 L +267.741 157.215 L +267.675 157.101 L +267.741 157.101 L +267.774 157.043 L +267.741 156.986 L +267.675 156.872 L +267.543 156.872 L +267.476 156.872 L +267.377 157.043 L +267.278 156.872 L +267.212 156.872 L +267.08 156.986 L +267.013 156.986 L +266.98 157.043 L +267.013 157.101 L +267.08 157.215 L +267.013 157.215 L +266.98 157.273 L +266.947 157.215 L +266.782 157.387 L +266.749 157.33 L +266.683 157.215 L +266.55 157.215 L +266.484 157.215 L +266.517 157.158 L +266.484 157.101 L +266.55 157.101 L +266.55 156.986 L +266.484 156.986 L +266.517 156.929 L +266.484 156.872 L +266.286 156.986 L +266.22 156.986 L +266.187 157.043 L +266.087 156.872 L +266.021 156.872 L +265.988 156.929 L +265.988 156.471 L +266.021 156.528 L +266.087 156.184 L +266.021 156.184 L +265.988 156.241 L +265.988 155.783 L +266.021 155.84 L +266.187 155.668 L +266.22 155.726 L +266.286 155.726 L +266.286 155.84 L +266.484 155.84 L +266.517 155.783 L +266.484 155.726 L +266.55 155.726 L +266.55 155.611 L +266.484 155.611 L +266.517 155.554 L +266.484 155.497 L +266.55 155.497 L +266.683 155.382 L +266.749 155.382 L +266.782 155.325 L +266.749 155.268 L +266.55 155.153 L +266.484 155.153 L +266.517 155.096 L +266.484 155.038 L +266.55 155.038 L +266.55 154.924 L +266.484 154.924 L +266.517 154.867 L +266.484 154.809 L +266.286 154.924 L +266.22 154.924 L +266.187 154.981 L +266.087 154.809 L +266.021 154.809 L +265.988 154.867 L +265.988 154.408 L +266.021 154.465 L +266.087 154.122 L +266.021 154.122 L +265.988 154.179 L +265.988 153.721 L +266.021 153.778 L +266.187 153.606 L +266.22 153.663 L +266.286 153.663 L +266.286 153.778 L +266.484 153.778 L +266.517 153.721 L +266.484 153.663 L +266.55 153.663 L +266.55 153.549 L +266.484 153.549 L +266.517 153.492 L +266.484 153.434 L +266.55 153.434 L +266.683 153.32 L +266.749 153.32 L +266.782 153.262 L +266.881 153.434 L +266.98 153.377 L +267.013 153.434 L +267.08 153.549 L +267.013 153.549 L +266.98 153.606 L +267.013 153.663 L +267.08 153.778 L +267.212 153.778 L +267.278 153.778 L +267.377 153.606 L +267.476 153.778 L +267.543 153.778 L +267.675 153.663 L +267.741 153.663 L +267.774 153.606 L +267.741 153.549 L +267.675 153.434 L +267.741 153.434 L +267.774 153.377 L +267.807 153.434 L +267.873 153.091 L +267.774 153.148 L +267.741 153.091 L +267.675 152.976 L +267.741 152.976 L +267.774 152.919 L +267.741 152.861 L +267.675 152.747 L +267.741 152.747 L +267.774 152.69 L +267.807 152.747 L +267.973 152.575 L +268.006 152.632 L +268.072 152.747 L +268.204 152.747 L +268.27 152.747 L +268.369 152.346 L +268.469 152.403 L +268.502 152.346 L +268.469 152.289 L +268.535 152.289 L +268.568 152.231 L +268.667 152.403 L +268.733 152.403 L +268.766 152.346 L +268.866 152.747 L +268.998 152.747 L +269.064 152.747 L +269.163 152.575 L +269.196 152.632 L +269.262 152.632 L +269.229 152.69 L +269.262 152.747 L +269.362 152.69 L +269.362 153.148 L +269.262 153.091 L +269.229 153.148 L +269.262 153.205 L +269.196 153.205 L +269.196 153.32 L +269.262 153.32 L +269.229 153.377 L +269.262 153.434 L +269.362 153.377 L +269.461 153.778 L +269.527 153.778 L +269.659 153.663 L +269.725 153.663 L +269.759 153.606 L +269.858 153.778 L +269.99 153.778 L +270.056 153.778 L +270.155 153.377 L +270.189 153.434 L +270.255 153.434 L +270.354 153.262 L +270.453 153.434 L +270.519 153.434 L +270.552 153.377 L +270.652 153.778 L +270.718 153.778 L +270.751 153.721 L +270.784 153.778 L +270.949 153.606 L +270.982 153.663 L +271.048 153.663 L +271.048 153.778 L +271.247 153.778 L +271.28 153.721 L +271.247 153.663 L +271.313 153.663 L +271.313 153.549 L +271.247 153.549 L +271.28 153.492 L +271.247 153.434 L +271.313 153.434 L +271.445 153.32 L +271.512 153.32 L +271.512 153.205 L +271.445 153.205 L +271.445 153.091 L +271.313 153.091 L +271.247 153.091 L +271.28 153.033 L +271.247 152.976 L +271.313 152.976 L +271.313 152.861 L +271.247 152.861 L +271.28 152.804 L +271.247 152.747 L +271.313 152.747 L +271.445 152.632 L +271.512 152.632 L +271.545 152.575 L +271.644 152.747 L +271.743 152.69 L +271.776 152.747 L +271.941 152.346 L +271.975 152.403 L +272.041 152.403 L +272.041 152.059 L +271.975 152.059 L +271.941 152.117 L +271.842 151.716 L +271.776 151.716 L +271.743 151.773 L +271.71 151.716 L +271.545 151.888 L +271.512 151.83 L +271.445 151.83 L +271.445 151.716 L +271.313 151.716 L +271.247 151.716 L +271.28 151.658 L +271.247 151.601 L +271.313 151.601 L +271.313 151.487 L +271.247 151.487 L +271.28 151.429 L +271.247 151.372 L +271.313 151.372 L +271.445 151.257 L +271.512 151.257 L +271.512 151.143 L +271.445 151.143 L +271.445 151.028 L +271.313 151.028 L +271.247 151.028 L +271.28 150.971 L +271.247 150.914 L +271.313 150.914 L +271.313 150.799 L +271.247 150.799 L +271.28 150.742 L +271.247 150.685 L +271.313 150.685 L +271.445 150.57 L +271.512 150.57 L +271.545 150.513 L +271.644 150.685 L +271.743 150.627 L +271.776 150.685 L +271.941 150.284 L +271.975 150.341 L +272.041 150.341 L +272.14 150.169 L +272.239 150.341 L +272.305 150.341 L +272.338 150.284 L +272.438 150.685 L +272.504 150.685 L +272.735 150.513 L +272.768 150.57 L +272.834 150.685 L +272.967 150.685 L +273.033 150.685 L +273.132 150.284 L +273.231 150.341 L +273.264 150.284 L +273.231 150.226 L +273.298 150.226 L +273.298 150.112 L +273.231 150.112 L +273.264 150.054 L +273.231 149.997 L +273.132 150.054 L +273.132 149.596 L +273.231 149.653 L +273.264 149.596 L +273.231 149.539 L +273.298 149.539 L +273.331 149.482 L +273.43 149.653 L +273.496 149.653 L +273.529 149.596 L +273.562 149.653 L +273.727 149.252 L +273.761 149.31 L +273.926 149.138 L +273.959 149.195 L +274.025 149.195 L +273.992 149.252 L +274.025 149.31 L +274.124 149.252 L +274.224 149.653 L +274.29 149.653 L +274.422 149.539 L +274.488 149.539 L +274.521 149.482 L +274.62 149.653 L +274.72 149.596 L +274.753 149.653 L +274.819 149.768 L +274.753 149.768 L +274.72 149.825 L +274.753 149.883 L +274.819 149.997 L +274.753 149.997 L +274.72 150.054 L +274.687 149.997 L +274.62 150.341 L +274.72 150.284 L +274.753 150.341 L +274.819 150.455 L +274.753 150.455 L +274.72 150.513 L +274.753 150.57 L +274.819 150.685 L +274.951 150.685 L +275.017 150.685 L +275.117 150.513 L +275.216 150.685 L +275.282 150.685 L +275.414 150.57 L +275.48 150.57 L +275.513 150.513 L +275.48 150.455 L +275.414 150.341 L +275.48 150.341 L +275.513 150.284 L +275.547 150.341 L +275.712 150.169 L +275.745 150.226 L +275.811 150.226 L +275.811 150.341 L +275.943 150.341 L +276.01 150.341 L +275.977 150.398 L +276.01 150.455 L +275.943 150.455 L +275.943 150.57 L +276.01 150.57 L +275.977 150.627 L +276.01 150.685 L +276.208 150.57 L +276.274 150.57 L +276.307 150.513 L +276.406 150.685 L +276.473 150.685 L +276.506 150.627 L +276.506 151.086 L +276.473 151.028 L +276.406 151.372 L +276.473 151.372 L +276.506 151.315 L +276.506 151.773 L +276.473 151.716 L +276.307 151.888 L +276.274 151.83 L +276.208 151.83 L +276.208 151.716 L +276.01 151.716 L +275.977 151.773 L +276.01 151.83 L +275.943 151.83 L +275.943 151.945 L +276.01 151.945 L +275.977 152.002 L +276.01 152.059 L +275.943 152.059 L +275.811 152.174 L +275.745 152.174 L +275.745 152.289 L +275.811 152.289 L +275.811 152.403 L +275.943 152.403 L +276.01 152.403 L +275.977 152.46 L +276.01 152.518 L +275.943 152.518 L +275.943 152.632 L +276.01 152.632 L +275.977 152.69 L +276.01 152.747 L +276.208 152.632 L +276.274 152.632 L +276.307 152.575 L +276.406 152.747 L +276.473 152.747 L +276.506 152.69 L +276.506 153.148 L +276.473 153.091 L +276.406 153.434 L +276.473 153.434 L +276.506 153.377 L +276.605 153.778 L +276.737 153.778 L +276.803 153.778 L +276.903 153.606 L +276.936 153.663 L +277.002 153.663 L +276.969 153.721 L +277.002 153.778 L +277.2 153.663 L +277.266 153.663 L +277.266 153.549 L +277.2 153.549 L +277.2 153.434 L +277.266 153.434 L +277.498 153.262 L +277.531 153.32 L +277.597 153.434 L +277.729 153.434 L +277.796 153.434 L +277.796 153.549 L +277.729 153.549 L +277.729 153.663 L +277.796 153.663 L +277.796 153.778 L +277.994 153.778 L +278.027 153.721 L +277.994 153.663 L +278.06 153.663 L +278.093 153.606 L +278.193 153.778 L +278.259 153.778 L +278.49 153.377 L +278.523 153.434 L +278.589 153.091 L +278.523 153.091 L +278.49 153.148 L +278.49 152.69 L +278.523 152.747 L +278.689 152.575 L +278.722 152.632 L +278.788 152.632 L +278.788 152.747 L +278.986 152.747 L +279.019 152.69 L +278.986 152.632 L +279.052 152.632 L +279.052 152.518 L +278.986 152.518 L +279.019 152.46 L +278.986 152.403 L +279.052 152.403 L +279.185 152.289 L +279.251 152.289 L +279.284 152.231 L +279.383 152.403 L +279.482 152.346 L +279.515 152.403 L +279.582 152.518 L +279.515 152.518 L +279.482 152.575 L +279.515 152.632 L +279.582 152.747 L +279.714 152.747 L +279.78 152.747 L +279.879 152.575 L +279.979 152.747 L +280.045 152.747 L +280.078 152.69 L +280.078 153.148 L +280.045 153.091 L +279.979 153.091 L +279.979 153.434 L +280.045 153.434 L +280.078 153.377 L +280.177 153.778 L +280.243 153.778 L +280.276 153.721 L +280.309 153.778 L +280.475 153.606 L +280.508 153.663 L +280.574 153.778 L +280.706 153.778 L +280.772 153.778 L +280.872 153.377 L +280.971 153.434 L +281.004 153.377 L +280.971 153.32 L +281.037 153.32 L +281.07 153.262 L +281.169 153.434 L +281.235 153.434 L +281.268 153.377 L +281.368 153.778 L +281.5 153.778 L +281.566 153.778 L +281.665 153.606 L +281.698 153.663 L +281.765 153.663 L +281.731 153.721 L +281.765 153.778 L +281.963 153.663 L +282.029 153.663 L +282.029 153.549 L +281.963 153.549 L +281.963 153.434 L +282.029 153.434 L +282.161 153.32 L +282.228 153.32 L +282.261 153.262 L +282.228 153.205 L +282.161 153.091 L +282.029 153.091 L +281.963 153.091 L +281.963 152.976 L +282.029 152.976 L +282.029 152.861 L +281.963 152.861 L +281.963 152.747 L +282.029 152.747 L +282.161 152.632 L +282.228 152.632 L +282.261 152.575 L +282.36 152.747 L +282.492 152.747 L +282.558 152.747 L +282.658 152.346 L +282.691 152.403 L +282.757 152.403 L +282.757 152.059 L +282.691 152.059 L +282.658 152.117 L +282.558 151.716 L +282.492 151.716 L +282.261 151.888 L +282.228 151.83 L +282.161 151.716 L +282.029 151.716 L +281.963 151.716 L +281.963 151.601 L +282.029 151.601 L +282.029 151.487 L +281.963 151.487 L +281.963 151.372 L +282.029 151.372 L +282.161 151.257 L +282.228 151.257 L +282.261 151.2 L +282.228 151.143 L +282.161 151.028 L +282.029 151.028 L +281.963 151.028 L +281.963 150.914 L +282.029 150.914 L +282.029 150.799 L +281.963 150.799 L +281.963 150.685 L +282.029 150.685 L +282.161 150.57 L +282.228 150.57 L +282.261 150.513 L +282.36 150.685 L +282.492 150.685 L +282.558 150.685 L +282.658 150.284 L +282.691 150.341 L +282.757 150.341 L +282.856 150.169 L +282.955 150.341 L +283.021 150.341 L +283.054 150.284 L +283.154 150.685 L +283.22 150.685 L +283.253 150.627 L +283.286 150.685 L +283.451 150.513 L +283.484 150.57 L +283.551 150.57 L +283.551 150.685 L +283.749 150.685 L +283.782 150.627 L +283.749 150.57 L +283.815 150.57 L +283.815 150.455 L +283.749 150.455 L +283.782 150.398 L +283.749 150.341 L +283.815 150.341 L +283.947 150.226 L +284.014 150.226 L +284.014 150.112 L +283.947 150.112 L +283.947 149.997 L +283.815 149.997 L +283.749 149.997 L +283.782 149.94 L +283.749 149.883 L +283.815 149.883 L +283.815 149.768 L +283.749 149.768 L +283.782 149.711 L +283.749 149.653 L +283.815 149.653 L +283.947 149.539 L +284.014 149.539 L +284.047 149.482 L +284.146 149.653 L +284.245 149.596 L +284.278 149.653 L +284.444 149.252 L +284.477 149.31 L +284.543 149.31 L +284.543 148.966 L +284.477 148.966 L +284.444 149.023 L +284.344 148.622 L +284.278 148.622 L +284.245 148.68 L +284.212 148.622 L +284.047 148.794 L +284.014 148.737 L +283.947 148.737 L +283.947 148.622 L +283.815 148.622 L +283.749 148.622 L +283.782 148.565 L +283.749 148.508 L +283.815 148.508 L +283.815 148.393 L +283.749 148.393 L +283.782 148.336 L +283.749 148.279 L +283.815 148.279 L +283.947 148.164 L +284.014 148.164 L +284.014 148.049 L +283.947 148.049 L +283.815 147.935 L +283.749 147.935 L +283.782 147.878 L +283.749 147.82 L +283.815 147.82 L +283.815 147.706 L +283.749 147.706 L +283.782 147.648 L +283.749 147.591 L +283.551 147.706 L +283.484 147.706 L +283.451 147.763 L +283.352 147.591 L +283.253 147.648 L +283.22 147.591 L +283.054 147.992 L +283.021 147.935 L +282.955 147.935 L +282.856 148.107 L +282.757 147.935 L +282.691 147.935 L +282.658 147.992 L +282.558 147.591 L +282.492 147.591 L +282.261 147.763 L +282.228 147.706 L +282.161 147.591 L +282.029 147.591 L +281.963 147.591 L +281.963 147.477 L +282.029 147.477 L +282.029 147.362 L +281.963 147.362 L +281.963 147.247 L +282.029 147.247 L +282.161 147.133 L +282.228 147.133 L +282.261 147.076 L +282.228 147.018 L +282.161 146.904 L +282.029 146.904 L +281.963 146.904 L +281.963 146.789 L +282.029 146.789 L +282.029 146.675 L +281.963 146.675 L +281.963 146.56 L +282.029 146.56 L +282.161 146.445 L +282.228 146.445 L +282.261 146.388 L +282.36 146.56 L +282.492 146.56 L +282.558 146.56 L +282.658 146.159 L +282.691 146.216 L +282.757 146.216 L +282.757 145.873 L +282.691 145.873 L +282.658 145.93 L +282.558 145.529 L +282.492 145.529 L +282.261 145.701 L +282.228 145.643 L +282.161 145.529 L +282.029 145.529 L +281.963 145.529 L +281.963 145.414 L +282.029 145.414 L +282.029 145.3 L +281.963 145.3 L +281.963 145.185 L +282.029 145.185 L +282.161 145.071 L +282.228 145.071 L +282.261 145.013 L +282.228 144.956 L +282.161 144.841 L +282.029 144.841 L +281.963 144.841 L +281.963 144.727 L +282.029 144.727 L +282.029 144.612 L +281.963 144.612 L +281.963 144.498 L +282.029 144.498 L +282.161 144.383 L +282.228 144.383 L +282.261 144.326 L +282.36 144.498 L +282.492 144.498 L +282.558 144.498 L +282.658 144.097 L +282.691 144.154 L +282.757 144.154 L +282.856 143.982 L +282.955 144.154 L +283.021 144.154 L +283.054 144.097 L +283.154 144.498 L +283.22 144.498 L +283.253 144.44 L +283.286 144.498 L +283.451 144.326 L +283.484 144.383 L +283.551 144.383 L +283.551 144.498 L +283.749 144.498 L +283.782 144.44 L +283.749 144.383 L +283.815 144.383 L +283.815 144.269 L +283.749 144.269 L +283.782 144.211 L +283.749 144.154 L +283.815 144.154 L +283.947 144.039 L +284.014 144.039 L +284.014 143.925 L +283.947 143.925 L +283.815 143.81 L +283.749 143.81 L +283.782 143.753 L +283.749 143.696 L +283.815 143.696 L +283.815 143.581 L +283.749 143.581 L +283.782 143.524 L +283.749 143.467 L +283.815 143.467 L +283.947 143.352 L +284.014 143.352 L +284.047 143.295 L +284.146 143.467 L +284.245 143.409 L +284.278 143.467 L +284.444 143.066 L +284.477 143.123 L +284.543 143.123 L +284.642 142.951 L +284.741 143.123 L +284.807 143.123 L +284.84 143.066 L +284.94 143.467 L +285.006 143.467 L +285.237 143.295 L +285.27 143.352 L +285.337 143.467 L +285.469 143.467 L +285.535 143.467 L +285.535 143.581 L +285.469 143.581 L +285.469 143.696 L +285.535 143.696 L +285.535 143.81 L +285.469 143.81 L +285.337 143.925 L +285.27 143.925 L +285.237 143.982 L +285.27 144.039 L +285.337 144.154 L +285.469 144.154 L +285.535 144.154 L +285.535 144.269 L +285.469 144.269 L +285.469 144.383 L +285.535 144.383 L +285.535 144.498 L +285.733 144.498 L +285.767 144.44 L +285.733 144.383 L +285.8 144.383 L +285.833 144.326 L +285.932 144.498 L +285.998 144.498 L +286.031 144.44 L +286.064 144.498 L +286.23 144.097 L +286.263 144.154 L +286.428 143.982 L +286.461 144.039 L +286.527 144.039 L +286.494 144.097 L +286.527 144.154 L +286.626 144.097 L +286.726 144.498 L +286.792 144.498 L +286.924 144.383 L +286.99 144.383 L +287.023 144.326 L +287.123 144.498 L +287.222 144.44 L +287.255 144.498 L +287.42 144.097 L +287.453 144.154 L +287.519 144.154 L +287.519 143.81 L +287.453 143.81 L +287.42 143.868 L +287.42 143.409 L +287.453 143.467 L +287.519 143.467 L +287.619 143.295 L +287.718 143.467 L +287.784 143.467 L +287.916 143.352 L +287.982 143.352 L +288.016 143.295 L +287.982 143.237 L +287.916 143.123 L +287.982 143.123 L +288.016 143.066 L +288.049 143.123 L +288.115 142.779 L +288.016 142.836 L +287.982 142.779 L +287.916 142.665 L +287.982 142.665 L +288.016 142.607 L +287.982 142.55 L +287.916 142.435 L +287.784 142.435 L +287.718 142.435 L +287.619 142.607 L +287.519 142.435 L +287.453 142.435 L +287.42 142.493 L +287.42 142.034 L +287.453 142.092 L +287.519 142.092 L +287.519 141.748 L +287.453 141.748 L +287.42 141.805 L +287.42 141.347 L +287.453 141.404 L +287.519 141.404 L +287.619 141.232 L +287.718 141.404 L +287.784 141.404 L +287.916 141.29 L +287.982 141.29 L +288.016 141.232 L +287.982 141.175 L +287.916 141.061 L +287.982 141.061 L +288.016 141.003 L +288.049 141.061 L +288.214 140.889 L +288.247 140.946 L +288.313 140.946 L +288.313 141.061 L +288.446 141.061 L +288.512 141.061 L +288.479 141.118 L +288.512 141.175 L +288.446 141.175 L +288.446 141.29 L +288.512 141.29 L +288.479 141.347 L +288.512 141.404 L +288.71 141.29 L +288.776 141.29 L +288.809 141.232 L +288.909 141.404 L +288.975 141.404 L +289.008 141.347 L +289.041 141.404 L +289.206 141.003 L +289.239 141.061 L +289.305 141.061 L +289.305 140.717 L +289.239 140.717 L +289.206 140.774 L +289.206 140.316 L +289.239 140.373 L +289.305 140.373 L +289.405 140.201 L +289.438 140.258 L +289.504 140.258 L +289.471 140.316 L +289.504 140.373 L +289.702 140.258 L +289.768 140.258 L +289.768 140.144 L +289.702 140.144 L +289.702 140.029 L +289.768 140.029 L +289.901 139.915 L +289.967 139.915 L +290 139.857 L +290.232 140.029 L +290.298 140.029 L +290.298 140.144 L +290.232 140.144 L +290.232 140.258 L +290.298 140.258 L +290.298 140.373 L +290.496 140.373 L +290.529 140.316 L +290.496 140.258 L +290.562 140.258 L +290.595 140.201 L +290.695 140.373 L +290.761 140.373 L +290.794 140.316 L +290.794 140.774 L +290.761 140.717 L +290.695 140.717 L +290.695 141.061 L +290.761 141.061 L +290.794 141.003 L +290.893 141.404 L +290.992 141.347 L +291.025 141.404 L +291.191 141.232 L +291.224 141.29 L +291.29 141.29 L +291.29 141.404 L +291.488 141.404 L +291.521 141.347 L +291.488 141.29 L +291.554 141.29 L +291.554 141.175 L +291.488 141.175 L +291.521 141.118 L +291.488 141.061 L +291.554 141.061 L +291.687 140.946 L +291.753 140.946 L +291.786 140.889 L +291.885 141.061 L +291.984 141.003 L +292.018 141.061 L +292.084 141.175 L +292.018 141.175 L +291.984 141.232 L +292.018 141.29 L +292.084 141.404 L +292.216 141.404 L +292.282 141.404 L +292.381 141.232 L +292.481 141.404 L +292.547 141.404 L +292.58 141.347 L +292.58 141.805 L +292.547 141.748 L +292.481 141.748 L +292.481 142.092 L +292.547 142.092 L +292.58 142.034 L +292.58 142.493 L +292.547 142.435 L +292.481 142.435 L +292.381 142.607 L +292.282 142.435 L +292.216 142.435 L +292.084 142.55 L +292.018 142.55 L +291.984 142.607 L +292.018 142.665 L +292.084 142.779 L +292.018 142.779 L +291.984 142.836 L +291.951 142.779 L +291.885 143.123 L +291.984 143.066 L +292.018 143.123 L +292.084 143.237 L +292.018 143.237 L +291.984 143.295 L +292.018 143.352 L +292.084 143.467 L +292.216 143.467 L +292.282 143.467 L +292.381 143.295 L +292.481 143.467 L +292.547 143.467 L +292.58 143.409 L +292.58 143.868 L +292.547 143.81 L +292.481 143.81 L +292.481 144.154 L +292.547 144.154 L +292.58 144.097 L +292.679 144.498 L +292.745 144.498 L +292.778 144.44 L +292.811 144.498 L +292.977 144.326 L +293.01 144.383 L +293.076 144.498 L +293.208 144.498 L +293.274 144.498 L +293.374 144.097 L +293.473 144.154 L +293.506 144.097 L +293.473 144.039 L +293.539 144.039 L +293.572 143.982 L +293.671 144.154 L +293.737 144.154 L +293.77 144.097 L +293.87 144.498 L +293.969 144.44 L +294.002 144.498 L +294.167 144.326 L +294.2 144.383 L +294.267 144.383 L +294.233 144.44 L +294.267 144.498 L +294.465 144.383 L +294.531 144.383 L +294.531 144.269 L +294.465 144.269 L +294.465 144.154 L +294.531 144.154 L +294.663 144.039 L +294.73 144.039 L +294.763 143.982 L +294.73 143.925 L +294.531 143.81 L +294.465 143.81 L +294.465 143.696 L +294.531 143.696 L +294.531 143.581 L +294.465 143.581 L +294.465 143.467 L +294.531 143.467 L +294.663 143.352 L +294.73 143.352 L +294.763 143.295 L +294.862 143.467 L +294.994 143.467 L +295.06 143.467 L +295.16 143.066 L +295.193 143.123 L +295.259 143.123 L +295.358 142.951 L +295.457 143.123 L +295.523 143.123 L +295.556 143.066 L +295.656 143.467 L +295.722 143.467 L +295.755 143.409 L +295.788 143.467 L +295.953 143.295 L +295.986 143.352 L +296.053 143.352 L +296.053 143.467 L +296.185 143.467 L +296.251 143.467 L +296.218 143.524 L +296.251 143.581 L +296.185 143.581 L +296.185 143.696 L +296.251 143.696 L +296.218 143.753 L +296.251 143.81 L +296.185 143.81 L +296.053 143.925 L +295.986 143.925 L +295.986 144.039 L +296.053 144.039 L +296.053 144.154 L +296.185 144.154 L +296.251 144.154 L +296.218 144.211 L +296.251 144.269 L +296.185 144.269 L +296.185 144.383 L +296.251 144.383 L +296.218 144.44 L +296.251 144.498 L +296.449 144.383 L +296.516 144.383 L +296.549 144.326 L +296.648 144.498 L +296.747 144.44 L +296.78 144.498 L +296.946 144.097 L +296.979 144.154 L +297.045 144.154 L +297.144 143.982 L +297.243 144.154 L +297.309 144.154 L +297.342 144.097 L +297.442 144.498 L +297.508 144.498 L +297.739 144.326 L +297.772 144.383 L +297.839 144.498 L +297.971 144.498 L +298.037 144.498 L +298.037 144.612 L +297.971 144.612 L +297.971 144.727 L +298.037 144.727 L +298.037 144.841 L +297.971 144.841 L +297.839 144.956 L +297.772 144.956 L +297.739 145.013 L +297.772 145.071 L +297.839 145.185 L +297.971 145.185 L +298.037 145.185 L +298.037 145.3 L +297.971 145.3 L +297.971 145.414 L +298.037 145.414 L +298.037 145.529 L +297.971 145.529 L +297.839 145.643 L +297.772 145.643 L +297.739 145.701 L +297.64 145.529 L +297.508 145.529 L +297.442 145.529 L +297.342 145.93 L +297.309 145.873 L +297.243 145.873 L +297.243 146.216 L +297.309 146.216 L +297.342 146.159 L +297.442 146.56 L +297.508 146.56 L +297.739 146.388 L +297.772 146.445 L +297.839 146.56 L +297.971 146.56 L +298.037 146.56 L +298.037 146.675 L +297.971 146.675 L +297.971 146.789 L +298.037 146.789 L +298.037 146.904 L +297.971 146.904 L +297.839 147.018 L +297.772 147.018 L +297.739 147.076 L +297.772 147.133 L +297.839 147.133 L +297.839 147.247 L +297.971 147.247 L +298.037 147.247 L +298.037 147.362 L +297.971 147.362 L +297.971 147.477 L +298.037 147.477 L +298.037 147.591 L +297.971 147.591 L +297.839 147.706 L +297.772 147.706 L +297.739 147.763 L +297.64 147.591 L +297.508 147.591 L +297.442 147.591 L +297.342 147.992 L +297.309 147.935 L +297.243 147.935 L +297.144 148.107 L +297.045 147.935 L +296.979 147.935 L +296.946 147.992 L +296.846 147.591 L +296.78 147.591 L +296.747 147.648 L +296.714 147.591 L +296.549 147.763 L +296.516 147.706 L +296.449 147.706 L +296.449 147.591 L +296.251 147.591 L +296.218 147.648 L +296.251 147.706 L +296.185 147.706 L +296.185 147.82 L +296.251 147.82 L +296.218 147.878 L +296.251 147.935 L +296.185 147.935 L +296.053 148.049 L +295.986 148.049 L +295.986 148.164 L +296.053 148.164 L +296.185 148.279 L +296.251 148.279 L +296.218 148.336 L +296.251 148.393 L +296.185 148.393 L +296.185 148.508 L +296.251 148.508 L +296.218 148.565 L +296.251 148.622 L +296.185 148.622 L +296.053 148.737 L +295.986 148.737 L +295.953 148.794 L +295.854 148.622 L +295.755 148.68 L +295.722 148.622 L +295.556 149.023 L +295.523 148.966 L +295.457 148.966 L +295.457 149.31 L +295.523 149.31 L +295.556 149.252 L +295.656 149.653 L +295.722 149.653 L +295.755 149.596 L +295.788 149.653 L +295.953 149.482 L +295.986 149.539 L +296.053 149.539 L +296.053 149.653 L +296.185 149.653 L +296.251 149.653 L +296.218 149.711 L +296.251 149.768 L +296.185 149.768 L +296.185 149.883 L +296.251 149.883 L +296.218 149.94 L +296.251 149.997 L +296.185 149.997 L +296.053 150.112 L +295.986 150.112 L +295.986 150.226 L +296.053 150.226 L +296.053 150.341 L +296.185 150.341 L +296.251 150.341 L +296.218 150.398 L +296.251 150.455 L +296.185 150.455 L +296.185 150.57 L +296.251 150.57 L +296.218 150.627 L +296.251 150.685 L +296.449 150.57 L +296.516 150.57 L +296.549 150.513 L +296.648 150.685 L +296.747 150.627 L +296.78 150.685 L +296.946 150.284 L +296.979 150.341 L +297.045 150.341 L +297.144 150.169 L +297.243 150.341 L +297.309 150.341 L +297.342 150.284 L +297.442 150.685 L +297.508 150.685 L +297.739 150.513 L +297.772 150.57 L +297.839 150.57 L +297.839 150.685 L +297.971 150.685 L +298.037 150.685 L +298.037 150.799 L +297.971 150.799 L +297.971 150.914 L +298.037 150.914 L +298.037 151.028 L +297.971 151.028 L +297.839 151.143 L +297.772 151.143 L +297.739 151.2 L +297.772 151.257 L +297.839 151.372 L +297.971 151.372 L +298.037 151.372 L +298.037 151.487 L +297.971 151.487 L +297.971 151.601 L +298.037 151.601 L +298.037 151.716 L +297.971 151.716 L +297.839 151.83 L +297.772 151.83 L +297.739 151.888 L +297.64 151.716 L +297.508 151.716 L +297.442 151.716 L +297.342 152.117 L +297.309 152.059 L +297.243 152.059 L +297.243 152.403 L +297.309 152.403 L +297.342 152.346 L +297.442 152.747 L +297.508 152.747 L +297.739 152.575 L +297.772 152.632 L +297.839 152.632 L +297.839 152.747 L +297.971 152.747 L +298.037 152.747 L +298.037 152.861 L +297.971 152.861 L +297.971 152.976 L +298.037 152.976 L +298.037 153.091 L +297.971 153.091 L +297.905 153.091 L +297.839 153.205 L +297.772 153.205 L +297.739 153.262 L +297.772 153.32 L +297.839 153.32 L +297.839 153.434 L +297.971 153.434 L +298.037 153.434 L +298.037 153.549 L +297.971 153.549 L +297.971 153.663 L +298.037 153.663 L +298.037 153.778 L +298.236 153.778 L +298.269 153.721 L +298.236 153.663 L +298.302 153.663 L +298.335 153.606 L +298.434 153.778 L +298.5 153.778 L +298.732 153.377 L +298.765 153.434 L +298.93 153.262 L +298.963 153.32 L +299.029 153.32 L +298.996 153.377 L +299.029 153.434 L +299.129 153.377 L +299.228 153.778 L +299.294 153.778 L +299.426 153.663 L +299.492 153.663 L +299.525 153.606 L +299.625 153.778 L +299.724 153.721 L +299.757 153.778 L +299.922 153.377 L +299.955 153.434 L +300.022 153.434 L +300.022 153.091 L +299.955 153.091 L +299.922 153.148 L +299.922 152.69 L +299.955 152.747 L +300.022 152.747 L +300.121 152.575 L +300.22 152.747 L +300.286 152.747 L +300.418 152.632 L +300.485 152.632 L +300.518 152.575 L +300.485 152.518 L +300.418 152.403 L +300.485 152.403 L +300.518 152.346 L +300.551 152.403 L +300.716 152.231 L +300.749 152.289 L +300.815 152.289 L +300.815 152.403 L +300.948 152.403 L +301.014 152.403 L +300.981 152.46 L +301.014 152.518 L +300.948 152.518 L +300.948 152.632 L +301.014 152.632 L +300.981 152.69 L +301.014 152.747 L +301.212 152.632 L +301.278 152.632 L +301.311 152.575 L +301.411 152.747 L +301.477 152.747 L +301.51 152.69 L +301.51 153.148 L +301.477 153.091 L +301.411 153.434 L +301.477 153.434 L +301.51 153.377 L +301.609 153.778 L +301.741 153.778 L +301.807 153.778 L +301.907 153.606 L +301.94 153.663 L +302.006 153.663 L +301.973 153.721 L +302.006 153.778 L +302.204 153.663 L +302.271 153.663 L +302.271 153.549 L +302.204 153.549 L +302.204 153.434 L +302.271 153.434 L +302.337 153.434 L +302.403 153.32 L +302.469 153.32 L +302.502 153.262 L +302.734 153.434 L +302.8 153.434 L +302.8 153.549 L +302.734 153.549 L +302.734 153.663 L +302.8 153.663 L +302.8 153.778 L +302.998 153.778 L +303.031 153.721 L +302.998 153.663 L +303.064 153.663 L +303.097 153.606 L +303.197 153.778 L +303.263 153.778 L +303.494 153.377 L +303.527 153.434 L +303.594 153.091 L +303.527 153.091 L +303.494 153.148 L +303.494 152.69 L +303.527 152.747 L +303.693 152.575 L +303.726 152.632 L +303.792 152.632 L +303.792 152.747 L +303.99 152.747 L +304.023 152.69 L +303.99 152.632 L +304.057 152.632 L +304.057 152.518 L +303.99 152.518 L +304.023 152.46 L +303.99 152.403 L +304.057 152.403 L +304.189 152.289 L +304.255 152.289 L +304.255 152.174 L +304.189 152.174 L +304.189 152.059 L +304.057 152.059 L +303.99 152.059 L +304.023 152.002 L +303.99 151.945 L +304.057 151.945 L +304.057 151.83 L +303.99 151.83 L +304.023 151.773 L +303.99 151.716 L +303.792 151.83 L +303.726 151.83 L +303.693 151.888 L +303.594 151.716 L +303.527 151.716 L +303.494 151.773 L +303.494 151.315 L +303.527 151.372 L +303.594 151.028 L +303.527 151.028 L +303.494 151.086 L +303.494 150.627 L +303.527 150.685 L +303.693 150.513 L +303.726 150.57 L +303.792 150.57 L +303.792 150.685 L +303.99 150.685 L +304.023 150.627 L +303.99 150.57 L +304.057 150.57 L +304.057 150.455 L +303.99 150.455 L +304.023 150.398 L +303.99 150.341 L +304.057 150.341 L +304.189 150.226 L +304.255 150.226 L +304.288 150.169 L +304.387 150.341 L +304.487 150.284 L +304.52 150.341 L +304.586 150.455 L +304.52 150.455 L +304.487 150.513 L +304.52 150.57 L +304.586 150.685 L +304.718 150.685 L +304.784 150.685 L +304.883 150.513 L +304.983 150.685 L +305.049 150.685 L +305.181 150.57 L +305.247 150.57 L +305.28 150.513 L +305.247 150.455 L +305.181 150.341 L +305.247 150.341 L +305.28 150.284 L +305.313 150.341 L +305.38 149.997 L +305.28 150.054 L +305.247 149.997 L +305.181 149.883 L +305.247 149.883 L +305.28 149.825 L +305.247 149.768 L +305.181 149.653 L +305.247 149.653 L +305.28 149.596 L +305.313 149.653 L +305.479 149.482 L +305.512 149.539 L +305.578 149.653 L +305.71 149.653 L +305.776 149.653 L +305.876 149.252 L +305.975 149.31 L +306.008 149.252 L +305.975 149.195 L +306.041 149.195 L +306.074 149.138 L +306.173 149.31 L +306.239 149.31 L +306.273 149.252 L +306.372 149.653 L +306.471 149.596 L +306.504 149.653 L +306.669 149.482 L +306.702 149.539 L +306.769 149.539 L +306.736 149.596 L +306.769 149.653 L +306.868 149.596 L +306.868 150.054 L +306.769 149.997 L +306.736 150.054 L +306.769 150.112 L +306.702 150.112 L +306.702 150.226 L +306.769 150.226 L +306.736 150.284 L +306.769 150.341 L +306.868 150.284 L +306.967 150.685 L +307.033 150.685 L +307.166 150.57 L +307.232 150.57 L +307.265 150.513 L +307.364 150.685 L +307.496 150.685 L +307.562 150.685 L +307.662 150.284 L +307.695 150.341 L +307.761 150.341 L +307.86 150.169 L +307.959 150.341 L +308.025 150.341 L +308.059 150.284 L +308.158 150.685 L +308.224 150.685 L +308.257 150.627 L +308.29 150.685 L +308.455 150.513 L +308.488 150.57 L +308.555 150.57 L +308.555 150.685 L +308.687 150.685 L +308.753 150.685 L +308.72 150.742 L +308.753 150.799 L +308.687 150.799 L +308.687 150.914 L +308.753 150.914 L +308.72 150.971 L +308.753 151.028 L +308.687 151.028 L +308.555 151.143 L +308.488 151.143 L +308.488 151.257 L +308.555 151.257 L +308.555 151.372 L +308.687 151.372 L +308.753 151.372 L +308.72 151.429 L +308.753 151.487 L +308.687 151.487 L +308.687 151.601 L +308.753 151.601 L +308.72 151.658 L +308.753 151.716 L +308.687 151.716 L +308.555 151.83 L +308.488 151.83 L +308.455 151.888 L +308.356 151.716 L +308.257 151.773 L +308.224 151.716 L +308.059 152.117 L +308.025 152.059 L +307.959 152.059 L +307.959 152.403 L +308.025 152.403 L +308.059 152.346 L +308.158 152.747 L +308.224 152.747 L +308.257 152.69 L +308.29 152.747 L +308.455 152.575 L +308.488 152.632 L +308.555 152.632 L +308.555 152.747 L +308.687 152.747 L +308.753 152.747 L +308.72 152.804 L +308.753 152.861 L +308.687 152.861 L +308.687 152.976 L +308.753 152.976 L +308.72 153.033 L +308.753 153.091 L +308.687 153.091 L +308.621 153.091 L +308.555 153.205 L +308.488 153.205 L +308.488 153.32 L +308.555 153.32 L +308.555 153.434 L +308.687 153.434 L +308.753 153.434 L +308.72 153.492 L +308.753 153.549 L +308.687 153.549 L +308.687 153.663 L +308.753 153.663 L +308.72 153.721 L +308.753 153.778 L +308.952 153.663 L +309.018 153.663 L +309.051 153.606 L +309.15 153.778 L +309.249 153.721 L +309.282 153.778 L +309.448 153.377 L +309.481 153.434 L +309.547 153.434 L +309.646 153.262 L +309.745 153.434 L +309.811 153.434 L +309.845 153.377 L +309.944 153.778 L +310.01 153.778 L +310.241 153.606 L +310.275 153.663 L +310.341 153.778 L +310.473 153.778 L +310.539 153.778 L +310.638 153.377 L +310.738 153.434 L +310.771 153.377 L +310.738 153.32 L +310.804 153.32 L +310.804 153.205 L +310.738 153.205 L +310.771 153.148 L +310.738 153.091 L +310.638 153.148 L +310.638 152.69 L +310.738 152.747 L +310.771 152.69 L +310.738 152.632 L +310.804 152.632 L +310.837 152.575 L +310.936 152.747 L +311.002 152.747 L +311.234 152.346 L +311.267 152.403 L +311.432 152.231 L +311.465 152.289 L +311.531 152.289 L +311.498 152.346 L +311.531 152.403 L +311.631 152.346 L +311.73 152.747 L +311.796 152.747 L +311.928 152.632 L +311.994 152.632 L +312.027 152.575 L +312.127 152.747 L +312.226 152.69 L +312.259 152.747 L +312.325 152.861 L +312.259 152.861 L +312.226 152.919 L +312.259 152.976 L +312.325 153.091 L +312.259 153.091 L +312.226 153.148 L +312.193 153.091 L +312.127 153.434 L +312.226 153.377 L +312.259 153.434 L +312.325 153.549 L +312.259 153.549 L +312.226 153.606 L +312.259 153.663 L +312.325 153.778 L +312.457 153.778 L +312.524 153.778 L +312.623 153.606 L +312.722 153.778 L +312.788 153.778 L +312.92 153.663 L +312.987 153.663 L +313.02 153.606 L +312.987 153.549 L +312.92 153.434 L +312.987 153.434 L +313.02 153.377 L +313.053 153.434 L +313.218 153.262 L +313.251 153.32 L +313.45 153.434 L +313.516 153.434 L +313.483 153.492 L +313.516 153.549 L +313.45 153.549 L +313.45 153.663 L +313.516 153.663 L +313.483 153.721 L +313.516 153.778 L +313.714 153.663 L +313.78 153.663 L +313.813 153.606 L +313.913 153.778 L +313.979 153.778 L +314.012 153.721 L +314.012 154.179 L +313.979 154.122 L +313.913 154.465 L +313.979 154.465 L +314.012 154.408 L +314.012 154.867 L +313.979 154.809 L +313.813 154.981 L +313.78 154.924 L +313.714 154.924 L +313.714 154.809 L +313.516 154.809 L +313.483 154.867 L +313.516 154.924 L +313.45 154.924 L +313.45 155.038 L +313.516 155.038 L +313.483 155.096 L +313.516 155.153 L +313.45 155.153 L +313.317 155.268 L +313.251 155.268 L +313.218 155.325 L +313.251 155.382 L +313.45 155.497 L +313.516 155.497 L +313.483 155.554 L +313.516 155.611 L +313.45 155.611 L +313.45 155.726 L +313.516 155.726 L +313.483 155.783 L +313.516 155.84 L +313.714 155.726 L +313.78 155.726 L +313.813 155.668 L +313.913 155.84 L +313.979 155.84 L +314.012 155.783 L +314.012 156.241 L +313.979 156.184 L +313.913 156.528 L +313.979 156.528 L +314.012 156.471 L +314.012 156.929 L +313.979 156.872 L +313.813 157.043 L +313.78 156.986 L +313.714 156.986 L +313.714 156.872 L +313.516 156.872 L +313.483 156.929 L +313.516 156.986 L +313.45 156.986 L +313.45 157.101 L +313.516 157.101 L +313.483 157.158 L +313.516 157.215 L +313.45 157.215 L +313.317 157.33 L +313.251 157.33 L +313.218 157.387 L +313.119 157.215 L +313.02 157.273 L +312.987 157.215 L +312.92 157.101 L +312.987 157.101 L +313.02 157.043 L +312.987 156.986 L +312.92 156.872 L +312.788 156.872 L +312.722 156.872 L +312.623 157.043 L +312.524 156.872 L +312.457 156.872 L +312.325 156.986 L +312.259 156.986 L +312.226 157.043 L +312.259 157.101 L +312.325 157.215 L +312.259 157.215 L +312.226 157.273 L +312.193 157.215 L +312.127 157.559 L +312.226 157.502 L +312.259 157.559 L +312.325 157.674 L +312.259 157.674 L +312.226 157.731 L +312.259 157.788 L +312.325 157.903 L +312.259 157.903 L +312.226 157.96 L +312.193 157.903 L +312.027 158.075 L +311.994 158.017 L +311.928 157.903 L +311.796 157.903 L +311.73 157.903 L +311.631 158.304 L +311.531 158.246 L +311.498 158.304 L +311.531 158.361 L +311.465 158.361 L +311.465 158.476 L +311.531 158.476 L +311.498 158.533 L +311.531 158.59 L +311.631 158.533 L +311.73 158.934 L +311.796 158.934 L +311.928 158.819 L +311.994 158.819 L +312.027 158.762 L +312.127 158.934 L +312.226 158.877 L +312.259 158.934 L +312.259 159.048 L +312.226 159.106 L +312.259 159.163 L +312.325 159.278 L +312.259 159.278 L +312.226 159.335 L +312.193 159.278 L +312.127 159.621 L +312.226 159.564 L +312.259 159.621 L +312.325 159.736 L +312.259 159.736 L +312.226 159.793 L +312.259 159.85 L +312.325 159.965 L +312.457 159.965 L +312.524 159.965 L +312.623 159.793 L +312.722 159.965 L +312.788 159.965 L +312.92 159.85 L +312.987 159.85 L +313.02 159.793 L +312.987 159.736 L +312.92 159.621 L +312.987 159.621 L +313.02 159.564 L +313.053 159.621 L +313.218 159.449 L +313.251 159.507 L +313.317 159.621 L +313.45 159.621 L +313.516 159.621 L +313.483 159.679 L +313.516 159.736 L +313.45 159.736 L +313.45 159.85 L +313.516 159.85 L +313.483 159.908 L +313.516 159.965 L +313.714 159.85 L +313.78 159.85 L +313.813 159.793 L +313.913 159.965 L +313.979 159.965 L +314.012 159.908 L +314.012 160.366 L +313.979 160.309 L +313.913 160.652 L +313.979 160.652 L +314.012 160.595 L +314.012 161.053 L +313.979 160.996 L +313.813 161.168 L +313.78 161.111 L +313.714 161.111 L +313.714 160.996 L +313.516 160.996 L +313.483 161.053 L +313.516 161.111 L +313.45 161.111 L +313.45 161.225 L +313.516 161.225 L +313.483 161.283 L +313.516 161.34 L +313.45 161.34 L +313.251 161.454 L +313.218 161.512 L +313.251 161.569 L +313.317 161.684 L +313.45 161.684 L +313.516 161.684 L +313.483 161.741 L +313.516 161.798 L +313.45 161.798 L +313.45 161.913 L +313.516 161.913 L +313.483 161.97 L +313.516 162.027 L +313.714 161.913 L +313.78 161.913 L +313.813 161.855 L +313.913 162.027 L +313.979 162.027 L +314.012 161.97 L +314.012 162.428 L +313.979 162.371 L +313.913 162.715 L +313.979 162.715 L +314.012 162.657 L +314.012 163.116 L +313.979 163.058 L +313.813 163.23 L +313.78 163.173 L +313.714 163.173 L +313.714 163.058 L +313.516 163.058 L +313.483 163.116 L +313.516 163.173 L +313.45 163.173 L +313.45 163.288 L +313.516 163.288 L +313.483 163.345 L +313.516 163.402 L +313.45 163.402 L +313.317 163.517 L +313.251 163.517 L +313.218 163.574 L +313.119 163.402 L +313.02 163.459 L +312.987 163.402 L +312.987 163.288 L +313.02 163.23 L +312.987 163.173 L +312.92 163.058 L +312.788 163.058 L +312.722 163.058 L +312.623 163.23 L +312.524 163.058 L +312.457 163.058 L +312.259 163.173 L +312.226 163.23 L +312.259 163.288 L +312.325 163.402 L +312.259 163.402 L +312.226 163.459 L +312.193 163.402 L +312.127 163.746 L +312.226 163.689 L +312.259 163.746 L +312.325 163.86 L +312.259 163.86 L +312.226 163.918 L +312.259 163.975 L +312.325 164.09 L +312.259 164.09 L +312.226 164.147 L +312.193 164.09 L +312.027 164.261 L +311.994 164.204 L +311.928 164.09 L +311.796 164.09 L +311.73 164.09 L +311.631 164.491 L +311.531 164.433 L +311.498 164.491 L +311.531 164.548 L +311.465 164.548 L +311.432 164.605 L +311.333 164.433 L +311.267 164.433 L +311.234 164.491 L +311.134 164.09 L +311.002 164.09 L +310.936 164.09 L +310.837 164.261 L +310.804 164.204 L +310.738 164.204 L +310.771 164.147 L +310.738 164.09 L +310.638 164.147 L +310.638 163.689 L +310.738 163.746 L +310.771 163.689 L +310.738 163.631 L +310.804 163.631 L +310.804 163.517 L +310.738 163.517 L +310.771 163.459 L +310.738 163.402 L +310.638 163.459 L +310.539 163.058 L +310.473 163.058 L +310.275 163.173 L +310.241 163.23 L +310.142 163.058 L +310.01 163.058 L +309.944 163.058 L +309.845 163.459 L +309.811 163.402 L +309.745 163.402 L +309.646 163.574 L +309.547 163.402 L +309.481 163.402 L +309.448 163.459 L +309.348 163.058 L +309.282 163.058 L +309.249 163.116 L +309.216 163.058 L +309.051 163.23 L +309.018 163.173 L +308.952 163.173 L +308.952 163.058 L +308.753 163.058 L +308.72 163.116 L +308.753 163.173 L +308.687 163.173 L +308.687 163.288 L +308.753 163.288 L +308.72 163.345 L +308.753 163.402 L +308.687 163.402 L +308.555 163.517 L +308.488 163.517 L +308.488 163.631 L +308.555 163.631 L +308.555 163.746 L +308.687 163.746 L +308.753 163.746 L +308.72 163.803 L +308.753 163.86 L +308.687 163.86 L +308.687 163.975 L +308.753 163.975 L +308.72 164.032 L +308.753 164.09 L +308.687 164.09 L +308.555 164.204 L +308.488 164.204 L +308.455 164.261 L +308.356 164.09 L +308.257 164.147 L +308.224 164.09 L +308.059 164.491 L +308.025 164.433 L +307.959 164.433 L +307.959 164.777 L +308.025 164.777 L +308.059 164.72 L +308.158 165.121 L +308.224 165.121 L +308.257 165.063 L +308.29 165.121 L +308.455 164.949 L +308.488 165.006 L +308.555 165.006 L +308.555 165.121 L +308.687 165.121 L +308.753 165.121 L +308.72 165.178 L +308.753 165.235 L +308.687 165.235 L +308.687 165.35 L +308.753 165.35 L +308.72 165.407 L +308.753 165.464 L +308.687 165.464 L +308.555 165.579 L +308.488 165.579 L +308.488 165.694 L +308.555 165.694 L +308.555 165.808 L +308.687 165.808 L +308.753 165.808 L +308.72 165.865 L +308.753 165.923 L +308.687 165.923 L +308.687 166.037 L +308.753 166.037 L +308.72 166.095 L +308.753 166.152 L +308.687 166.152 L +308.555 166.266 L +308.488 166.266 L +308.455 166.324 L +308.356 166.152 L +308.257 166.209 L +308.224 166.152 L +308.059 166.553 L +308.025 166.496 L +307.959 166.496 L +307.86 166.667 L +307.761 166.496 L +307.695 166.496 L +307.662 166.553 L +307.562 166.152 L +307.496 166.152 L +307.265 166.324 L +307.232 166.266 L +307.166 166.152 L +307.033 166.152 L +306.967 166.152 L +306.868 166.553 L +306.769 166.496 L +306.736 166.553 L +306.769 166.61 L +306.702 166.61 L +306.702 166.725 L +306.769 166.725 L +306.736 166.782 L +306.769 166.839 L +306.868 166.782 L +306.868 167.24 L +306.769 167.183 L +306.736 167.24 L +306.769 167.298 L +306.702 167.298 L +306.669 167.355 L +306.57 167.183 L +306.504 167.183 L +306.471 167.24 L +306.438 167.183 L +306.273 167.584 L +306.239 167.527 L +306.173 167.87 L +306.239 167.87 L +306.273 167.813 L +306.372 168.214 L +306.471 168.157 L +306.504 168.214 L +306.669 168.042 L +306.702 168.1 L +306.769 168.1 L +306.736 168.157 L +306.769 168.214 L +306.868 168.157 L +306.868 168.615 L +306.769 168.558 L +306.736 168.615 L +306.769 168.672 L +306.702 168.672 L +306.702 168.787 L +306.769 168.787 L +306.736 168.844 L +306.769 168.902 L +306.868 168.844 L +306.967 169.245 L +307.033 169.245 L +307.166 169.131 L +307.232 169.131 L +307.265 169.073 L +307.364 169.245 L +307.496 169.245 L +307.562 169.245 L +307.662 168.844 L +307.695 168.902 L +307.761 168.902 L +307.86 168.73 L +307.959 168.902 L +308.025 168.902 L +308.059 168.844 L +308.158 169.245 L +308.224 169.245 L +308.257 169.188 L +308.29 169.245 L +308.455 169.073 L +308.488 169.131 L +308.555 169.131 L +308.555 169.245 L +308.687 169.245 L +308.753 169.245 L +308.72 169.303 L +308.753 169.36 L +308.687 169.36 L +308.687 169.474 L +308.753 169.474 L +308.72 169.532 L +308.753 169.589 L +308.687 169.589 L +308.555 169.704 L +308.488 169.704 L +308.488 169.818 L +308.555 169.818 L +308.555 169.933 L +308.687 169.933 L +308.753 169.933 L +308.72 169.99 L +308.753 170.047 L +308.687 170.047 L +308.687 170.162 L +308.753 170.162 L +308.72 170.219 L +308.753 170.276 L +308.687 170.276 L +308.555 170.391 L +308.488 170.391 L +308.455 170.448 L +308.356 170.276 L +308.257 170.334 L +308.224 170.276 L +308.059 170.677 L +308.025 170.62 L +307.959 170.62 L +307.959 170.964 L +308.025 170.964 L +308.059 170.907 L +308.158 171.308 L +308.224 171.308 L +308.257 171.25 L +308.29 171.308 L +308.455 171.136 L +308.488 171.193 L +308.555 171.193 L +308.555 171.308 L +308.687 171.308 L +308.753 171.308 L +308.72 171.365 L +308.753 171.422 L +308.687 171.422 L +308.687 171.537 L +308.753 171.537 L +308.72 171.594 L +308.753 171.651 L +308.687 171.651 L +308.555 171.766 L +308.488 171.766 L +308.488 171.881 L +308.555 171.881 L +308.555 171.995 L +308.687 171.995 L +308.753 171.995 L +308.72 172.052 L +308.753 172.11 L +308.687 172.11 L +308.687 172.224 L +308.753 172.224 L +308.72 172.282 L +308.753 172.339 L +308.952 172.224 L +309.018 172.224 L +309.051 172.167 L +309.15 172.339 L +309.249 172.282 L +309.282 172.339 L +309.448 171.938 L +309.481 171.995 L +309.547 171.995 L +309.646 171.823 L +309.745 171.995 L +309.811 171.995 L +309.845 171.938 L +309.944 172.339 L +310.01 172.339 L +310.241 172.167 L +310.275 172.224 L +310.341 172.339 L +310.473 172.339 L +310.539 172.339 L +310.638 171.938 L +310.738 171.995 L +310.771 171.938 L +310.738 171.881 L +310.804 171.881 L +310.804 171.766 L +310.738 171.766 L +310.771 171.709 L +310.738 171.651 L +310.638 171.709 L +310.638 171.25 L +310.738 171.308 L +310.771 171.25 L +310.738 171.193 L +310.804 171.193 L +310.837 171.136 L +310.936 171.308 L +311.002 171.308 L +311.234 170.907 L +311.267 170.964 L +311.432 170.792 L +311.465 170.849 L +311.531 170.849 L +311.498 170.907 L +311.531 170.964 L +311.631 170.907 L +311.73 171.308 L +311.796 171.308 L +311.928 171.193 L +311.994 171.193 L +312.027 171.136 L +312.127 171.308 L +312.226 171.25 L +312.259 171.308 L +312.325 171.422 L +312.259 171.422 L +312.226 171.48 L +312.259 171.537 L +312.325 171.651 L +312.259 171.651 L +312.226 171.709 L +312.193 171.651 L +312.127 171.995 L +312.226 171.938 L +312.259 171.995 L +312.325 172.11 L +312.259 172.11 L +312.226 172.167 L +312.259 172.224 L +312.325 172.339 L +312.457 172.339 L +312.524 172.339 L +312.623 172.167 L +312.722 172.339 L +312.788 172.339 L +312.92 172.224 L +312.987 172.224 L +313.02 172.167 L +312.987 172.11 L +312.92 171.995 L +312.987 171.995 L +313.02 171.938 L +313.053 171.995 L +313.218 171.823 L +313.251 171.881 L +313.317 171.995 L +313.45 171.995 L +313.516 171.995 L +313.483 172.052 L +313.516 172.11 L +313.45 172.11 L +313.45 172.224 L +313.516 172.224 L +313.483 172.282 L +313.516 172.339 L +313.714 172.224 L +313.78 172.224 L +313.813 172.167 L +313.913 172.339 L +313.979 172.339 L +314.012 172.282 L +314.012 172.74 L +313.979 172.683 L +313.913 173.026 L +313.979 173.026 L +314.012 172.969 L +314.012 173.427 L +313.979 173.37 L +313.813 173.542 L +313.78 173.485 L +313.714 173.485 L +313.714 173.37 L +313.516 173.37 L +313.483 173.427 L +313.516 173.485 L +313.45 173.485 L +313.45 173.599 L +313.516 173.599 L +313.483 173.656 L +313.516 173.714 L +313.45 173.714 L +313.317 173.828 L +313.251 173.828 L +313.218 173.886 L +313.251 173.943 L +313.317 174.057 L +313.45 174.057 L +313.516 174.057 L +313.483 174.115 L +313.516 174.172 L +313.45 174.172 L +313.45 174.287 L +313.516 174.287 L +313.483 174.344 L +313.516 174.401 L +313.714 174.287 L +313.78 174.287 L +313.813 174.229 L +313.913 174.401 L +313.979 174.401 L +314.012 174.344 L +314.012 174.802 L +313.979 174.745 L +313.913 175.089 L +313.979 175.089 L +314.012 175.031 L +314.012 175.49 L +313.979 175.432 L +313.813 175.604 L +313.78 175.547 L +313.714 175.547 L +313.714 175.432 L +313.516 175.432 L +313.483 175.49 L +313.516 175.547 L +313.45 175.547 L +313.45 175.661 L +313.516 175.661 L +313.483 175.719 L +313.516 175.776 L +313.45 175.776 L +313.317 175.891 L +313.251 175.891 L +313.218 175.948 L +313.119 175.776 L +313.02 175.833 L +312.987 175.776 L +312.987 175.661 L +313.02 175.604 L +312.987 175.547 L +312.92 175.432 L +312.788 175.432 L +312.722 175.432 L +312.623 175.604 L +312.524 175.432 L +312.457 175.432 L +312.259 175.547 L +312.226 175.604 L +312.259 175.661 L +312.325 175.776 L +312.259 175.776 L +312.226 175.833 L +312.193 175.776 L +312.127 176.12 L +312.226 176.062 L +312.259 176.12 L +312.325 176.234 L +312.259 176.234 L +312.226 176.292 L +312.259 176.349 L +312.325 176.463 L +312.259 176.463 L +312.226 176.521 L +312.193 176.463 L +312.027 176.635 L +311.994 176.578 L +311.928 176.463 L +311.796 176.463 L +311.73 176.463 L +311.631 176.864 L +311.531 176.807 L +311.498 176.864 L +311.531 176.922 L +311.465 176.922 L +311.465 177.036 L +311.531 177.036 L +311.498 177.094 L +311.531 177.151 L +311.631 177.094 L +311.73 177.495 L +311.796 177.495 L +311.994 177.38 L +312.027 177.323 L +312.127 177.495 L +312.226 177.437 L +312.259 177.495 L +312.325 177.609 L +312.259 177.609 L +312.226 177.666 L +312.259 177.724 L +312.325 177.838 L +312.259 177.838 L +312.226 177.896 L +312.193 177.838 L +312.127 178.182 L +312.226 178.125 L +312.259 178.182 L +312.259 178.297 L +312.226 178.354 L +312.259 178.411 L +312.325 178.526 L +312.457 178.526 L +312.524 178.526 L +312.623 178.354 L +312.722 178.526 L +312.788 178.526 L +312.92 178.411 L +312.987 178.411 L +313.02 178.354 L +312.987 178.297 L +312.92 178.182 L +312.987 178.182 L +313.02 178.125 L +313.053 178.182 L +313.218 178.01 L +313.251 178.067 L +313.317 178.182 L +313.45 178.182 L +313.516 178.182 L +313.483 178.239 L +313.516 178.297 L +313.45 178.297 L +313.45 178.411 L +313.516 178.411 L +313.483 178.468 L +313.516 178.526 L +313.714 178.411 L +313.78 178.411 L +313.813 178.354 L +313.913 178.526 L +313.979 178.526 L +314.012 178.468 L +314.012 178.927 L +313.979 178.869 L +313.913 179.213 L +313.979 179.213 L +314.012 179.156 L +314.012 179.614 L +313.979 179.557 L +313.813 179.729 L +313.78 179.671 L +313.714 179.671 L +313.714 179.557 L +313.516 179.557 L +313.483 179.614 L +313.516 179.671 L +313.45 179.671 L +313.45 179.786 L +313.516 179.786 L +313.483 179.843 L +313.516 179.901 L +313.45 179.901 L +313.251 180.015 L +313.218 180.072 L +313.251 180.13 L +313.317 180.244 L +313.45 180.244 L +313.516 180.244 L +313.483 180.302 L +313.516 180.359 L +313.45 180.359 L +313.45 180.473 L +313.516 180.473 L +313.483 180.531 L +313.516 180.588 L +313.714 180.473 L +313.78 180.473 L +313.813 180.416 L +313.913 180.588 L +313.979 180.588 L +314.012 180.531 L +314.012 180.989 L +313.979 180.932 L +313.913 181.275 L +313.979 181.275 L +314.012 181.218 L +314.111 181.619 L +314.243 181.619 L +314.31 181.619 L +314.409 181.447 L +314.442 181.505 L +314.508 181.505 L +314.475 181.562 L +314.508 181.619 L +314.706 181.505 L +314.773 181.505 L +314.773 181.39 L +314.706 181.39 L +314.706 181.275 L +314.773 181.275 L +314.839 181.275 L +314.905 181.161 L +314.971 181.161 L +315.004 181.104 L +315.103 181.275 L +315.236 181.275 L +315.302 181.275 L +315.302 181.39 L +315.236 181.39 L +315.236 181.505 L +315.302 181.505 L +315.302 181.619 L +315.434 181.619 L +315.5 181.619 L +315.599 181.447 L +315.699 181.619 L +315.765 181.619 L +315.996 181.218 L +316.029 181.275 L +316.096 180.932 L +316.029 180.932 L +315.996 180.989 L +315.996 180.531 L +316.029 180.588 L +316.195 180.416 L +316.228 180.473 L +316.294 180.473 L +316.294 180.588 L +316.492 180.588 L +316.526 180.531 L +316.492 180.473 L +316.559 180.473 L +316.559 180.359 L +316.492 180.359 L +316.526 180.302 L +316.492 180.244 L +316.559 180.244 L +316.691 180.13 L +316.757 180.13 L +316.79 180.072 L +316.889 180.244 L +316.989 180.187 L +317.022 180.244 L +317.088 180.359 L +317.022 180.359 L +316.989 180.416 L +317.022 180.473 L +317.088 180.588 L +317.22 180.588 L +317.286 180.588 L +317.385 180.416 L +317.485 180.588 L +317.551 180.588 L +317.584 180.531 L +317.584 180.989 L +317.551 180.932 L +317.485 180.932 L +317.485 181.275 L +317.551 181.275 L +317.584 181.218 L +317.683 181.619 L +317.749 181.619 L +317.782 181.562 L +317.815 181.619 L +317.981 181.447 L +318.014 181.505 L +318.08 181.619 L +318.212 181.619 L +318.278 181.619 L +318.378 181.218 L +318.477 181.275 L +318.51 181.218 L +318.477 181.161 L +318.543 181.161 L +318.576 181.104 L +318.675 181.275 L +318.741 181.275 L +318.775 181.218 L +318.874 181.619 L +318.973 181.562 L +319.006 181.619 L +319.171 181.447 L +319.205 181.505 L +319.271 181.505 L +319.238 181.562 L +319.271 181.619 L +319.37 181.562 L +319.469 181.619 L +319.502 181.562 L +319.469 181.505 L +319.535 181.505 L +319.535 181.39 L +319.469 181.39 L +319.502 181.333 L +319.469 181.275 L +319.535 181.275 L +319.668 181.161 L +319.734 181.161 L +319.767 181.104 L +319.734 181.046 L +319.668 180.932 L +319.535 180.932 L +319.469 180.932 L +319.502 180.874 L +319.469 180.817 L +319.535 180.817 L +319.535 180.703 L +319.469 180.703 L +319.502 180.645 L +319.469 180.588 L +319.535 180.588 L +319.668 180.473 L +319.734 180.473 L +319.767 180.416 L +319.866 180.588 L +319.998 180.588 L +320.064 180.588 L +320.164 180.187 L +320.197 180.244 L +320.263 180.244 L +320.263 179.901 L +320.197 179.901 L +320.164 179.958 L +320.064 179.557 L +319.998 179.557 L +319.767 179.729 L +319.734 179.671 L +319.668 179.557 L +319.535 179.557 L +319.469 179.557 L +319.502 179.5 L +319.469 179.442 L +319.535 179.442 L +319.535 179.328 L +319.469 179.328 L +319.502 179.27 L +319.469 179.213 L +319.535 179.213 L +319.668 179.099 L +319.734 179.099 L +319.767 179.041 L +319.734 178.984 L +319.668 178.869 L +319.535 178.869 L +319.469 178.869 L +319.502 178.812 L +319.469 178.755 L +319.535 178.755 L +319.535 178.64 L +319.469 178.64 L +319.502 178.583 L +319.469 178.526 L +319.535 178.526 L +319.668 178.411 L +319.734 178.411 L +319.767 178.354 L +319.866 178.526 L +319.998 178.526 L +320.064 178.526 L +320.164 178.125 L +320.197 178.182 L +320.263 178.182 L +320.362 178.01 L +320.461 178.182 L +320.527 178.182 L +320.561 178.125 L +320.66 178.526 L +320.726 178.526 L +320.759 178.468 L +320.792 178.526 L +320.957 178.354 L +320.991 178.411 L +321.057 178.411 L +321.057 178.526 L +321.189 178.526 L +321.255 178.526 L +321.454 178.067 L +321.52 178.067 L +321.52 177.953 L +321.454 177.953 L +321.454 177.38 L +321.52 177.38 L +321.553 177.323 L +321.652 177.495 L +321.718 177.495 L +321.751 177.437 L +321.784 177.495 L +321.95 177.094 L +321.983 177.151 L +322.049 177.151 L +322.148 176.979 L +322.247 177.151 L +322.314 177.151 L +322.347 177.094 L +322.446 177.495 L +322.512 177.495 L +322.743 177.323 L +322.777 177.38 L +322.843 177.38 L +322.843 177.495 L +322.975 177.495 L +323.041 177.495 L +323.041 177.609 L +322.975 177.609 L +322.975 177.724 L +323.041 177.724 L +323.041 177.838 L +322.975 177.838 L +322.843 177.953 L +322.777 177.953 L +322.743 178.01 L +322.777 178.067 L +322.843 178.182 L +322.975 178.182 L +323.041 178.182 L +323.041 178.297 L +322.975 178.297 L +322.975 178.411 L +323.041 178.411 L +323.041 178.526 L +323.24 178.526 L +323.273 178.468 L +323.24 178.411 L +323.306 178.411 L +323.339 178.354 L +323.438 178.526 L +323.504 178.526 L +323.736 178.125 L +323.769 178.182 L +323.934 178.01 L +323.967 178.067 L +324.033 178.067 L +324.232 178.526 L +324.298 178.526 L +324.496 178.411 L +324.53 178.354 L +324.629 178.526 L +324.728 178.468 L +324.761 178.526 L +324.827 178.64 L +324.761 178.64 L +324.728 178.698 L +324.761 178.755 L +324.827 178.869 L +324.761 178.869 L +324.728 178.927 L +324.695 178.869 L +324.629 179.213 L +324.728 179.156 L +324.761 179.213 L +324.827 179.328 L +324.761 179.328 L +324.728 179.385 L +324.761 179.442 L +324.827 179.557 L +324.761 179.557 L +324.728 179.614 L +324.695 179.557 L +324.53 179.729 L +324.496 179.671 L +324.43 179.557 L +324.298 179.557 L +324.232 179.557 L +324.033 180.015 L +323.967 180.015 L +323.967 180.13 L +324.033 180.13 L +324.232 180.588 L +324.298 180.588 L +324.43 180.473 L +324.496 180.473 L +324.53 180.416 L +324.629 180.588 L +324.728 180.531 L +324.761 180.588 L +324.827 180.703 L +324.761 180.703 L +324.728 180.76 L +324.761 180.817 L +324.827 180.932 L +324.761 180.932 L +324.728 180.989 L +324.695 180.932 L +324.629 181.275 L +324.728 181.218 L +324.761 181.275 L +324.827 181.39 L +324.761 181.39 L +324.728 181.447 L +324.761 181.505 L +324.827 181.619 L +324.959 181.619 L +325.026 181.619 L +325.125 181.447 L +325.224 181.619 L +325.29 181.619 L +325.423 181.505 L +325.489 181.505 L +325.522 181.447 L +325.489 181.39 L +325.423 181.275 L +325.489 181.275 L +325.522 181.218 L +325.555 181.275 L +325.72 181.104 L +325.753 181.161 L +325.819 181.275 L +325.952 181.275 L +326.018 181.275 L +325.985 181.333 L +326.018 181.39 L +325.952 181.39 L +325.952 181.505 L +326.018 181.505 L +325.985 181.562 L +326.018 181.619 L +326.216 181.505 L +326.282 181.505 L +326.315 181.447 L +326.415 181.619 L +326.481 181.619 L +326.514 181.562 L +326.547 181.619 L +326.712 181.218 L +326.745 181.275 L +326.812 181.275 L +326.812 180.932 L +326.745 180.932 L +326.712 180.989 L +326.712 180.531 L +326.745 180.588 L +326.812 180.588 L +326.911 180.416 L +326.944 180.473 L +327.01 180.473 L +326.977 180.531 L +327.01 180.588 L +327.208 180.473 L +327.275 180.473 L +327.275 180.359 L +327.208 180.359 L +327.208 180.244 L +327.275 180.244 L +327.473 180.13 L +327.506 180.072 L +327.605 180.244 L +327.738 180.244 L +327.804 180.244 L +327.804 180.359 L +327.738 180.359 L +327.738 180.473 L +327.804 180.473 L +327.804 180.588 L +327.936 180.588 L +328.002 180.588 L +328.102 180.416 L +328.201 180.588 L +328.267 180.588 L +328.3 180.531 L +328.3 180.989 L +328.267 180.932 L +328.201 180.932 L +328.201 181.275 L +328.267 181.275 L +328.3 181.218 L +328.399 181.619 L +328.498 181.562 L +328.531 181.619 L +328.697 181.447 L +328.73 181.505 L +328.796 181.505 L +328.796 181.619 L +328.995 181.619 L +329.028 181.562 L +328.995 181.505 L +329.061 181.505 L +329.061 181.39 L +328.995 181.39 L +329.028 181.333 L +328.995 181.275 L +329.061 181.275 L +329.127 181.275 L +329.193 181.161 L +329.259 181.161 L +329.292 181.104 L +329.391 181.275 L +329.491 181.218 L +329.524 181.275 L +329.59 181.39 L +329.524 181.39 L +329.491 181.447 L +329.524 181.505 L +329.59 181.619 L +329.722 181.619 L +329.788 181.619 L +329.888 181.447 L +329.987 181.619 L +330.053 181.619 L +330.185 181.505 L +330.251 181.505 L +330.251 181.39 L +330.185 181.39 L +330.185 181.275 L +330.251 181.275 L +330.384 180.932 L +330.251 180.932 L +330.185 180.932 L +330.185 180.817 L +330.251 180.817 L +330.251 180.703 L +330.185 180.703 L +330.185 180.588 L +330.251 180.588 L +330.483 180.416 L +330.516 180.473 L +330.582 180.588 L +330.714 180.588 L +330.781 180.588 L +330.88 180.187 L +330.979 180.244 L +331.012 180.187 L +330.979 180.13 L +331.045 180.13 L +331.045 180.015 L +330.979 180.015 L +331.012 179.958 L +330.979 179.901 L +330.88 179.958 L +330.781 179.557 L +330.714 179.557 L +330.582 179.671 L +330.516 179.671 L +330.483 179.729 L +330.384 179.557 L +330.251 179.557 L +330.185 179.557 L +330.185 179.442 L +330.251 179.442 L +330.251 179.328 L +330.185 179.328 L +330.185 179.213 L +330.251 179.213 L +330.384 178.869 L +330.251 178.869 L +330.185 178.869 L +330.185 178.755 L +330.251 178.755 L +330.251 178.64 L +330.185 178.64 L +330.185 178.526 L +330.251 178.526 L +330.483 178.354 L +330.516 178.411 L +330.582 178.526 L +330.714 178.526 L +330.781 178.526 L +330.88 178.125 L +330.979 178.182 L +331.012 178.125 L +330.979 178.067 L +331.045 178.067 L +331.078 178.01 L +331.177 178.182 L +331.244 178.182 L +331.277 178.125 L +331.376 178.526 L +331.475 178.468 L +331.508 178.526 L +331.674 178.354 L +331.707 178.411 L +331.773 178.411 L +331.74 178.468 L +331.773 178.526 L +331.872 178.468 L +331.971 178.526 L +332.004 178.468 L +331.971 178.411 L +332.037 178.411 L +332.037 178.297 L +331.971 178.297 L +332.004 178.239 L +331.971 178.182 L +332.037 178.182 L +332.17 178.067 L +332.236 178.067 L +332.269 178.01 L +332.236 177.953 L +332.17 177.838 L +332.037 177.838 L +331.971 177.838 L +332.004 177.781 L +331.971 177.724 L +332.037 177.724 L +332.037 177.609 L +331.971 177.609 L +332.004 177.552 L +331.971 177.495 L +332.037 177.495 L +332.17 177.38 L +332.236 177.38 L +332.269 177.323 L +332.368 177.495 L +332.467 177.437 L +332.5 177.495 L +332.666 177.094 L +332.699 177.151 L +332.765 177.151 L +332.765 176.807 L +332.699 176.807 L +332.666 176.864 L +332.567 176.463 L +332.5 176.463 L +332.467 176.521 L +332.434 176.463 L +332.269 176.635 L +332.236 176.578 L +332.17 176.463 L +332.037 176.463 L +331.971 176.463 L +332.004 176.406 L +331.971 176.349 L +332.037 176.349 L +332.037 176.234 L +331.971 176.234 L +332.004 176.177 L +331.971 176.12 L +332.037 176.12 L +332.17 176.005 L +332.236 176.005 L +332.269 175.948 L +332.236 175.891 L +332.17 175.776 L +332.037 175.776 L +331.971 175.776 L +332.004 175.719 L +331.971 175.661 L +332.037 175.661 L +332.037 175.547 L +331.971 175.547 L +332.004 175.49 L +331.971 175.432 L +331.872 175.49 L +331.773 175.432 L +331.74 175.49 L +331.773 175.547 L +331.707 175.547 L +331.674 175.604 L +331.574 175.432 L +331.508 175.432 L +331.475 175.49 L +331.442 175.432 L +331.277 175.833 L +331.244 175.776 L +331.078 175.948 L +331.045 175.891 L +330.979 175.891 L +331.012 175.833 L +330.979 175.776 L +330.88 175.833 L +330.781 175.432 L +330.714 175.432 L +330.582 175.547 L +330.516 175.547 L +330.483 175.604 L +330.384 175.432 L +330.251 175.432 L +330.185 175.432 L +330.185 175.318 L +330.251 175.318 L +330.251 175.203 L +330.185 175.203 L +330.185 175.089 L +330.251 175.089 L +330.384 174.745 L +330.251 174.745 L +330.185 174.745 L +330.185 174.63 L +330.251 174.63 L +330.251 174.516 L +330.185 174.516 L +330.185 174.401 L +330.251 174.401 L +330.483 174.229 L +330.516 174.287 L +330.582 174.401 L +330.714 174.401 L +330.781 174.401 L +330.88 174 L +330.979 174.057 L +331.012 174 L +330.979 173.943 L +331.045 173.943 L +331.045 173.828 L +330.979 173.828 L +331.012 173.771 L +330.979 173.714 L +330.88 173.771 L +330.781 173.37 L +330.714 173.37 L +330.516 173.485 L +330.483 173.542 L +330.384 173.37 L +330.251 173.37 L +330.185 173.37 L +330.185 173.255 L +330.251 173.255 L +330.251 173.141 L +330.185 173.141 L +330.185 173.026 L +330.251 173.026 L +330.384 172.683 L +330.251 172.683 L +330.185 172.683 L +330.185 172.568 L +330.251 172.568 L +330.251 172.453 L +330.185 172.453 L +330.185 172.339 L +330.251 172.339 L +330.483 172.167 L +330.516 172.224 L +330.582 172.339 L +330.714 172.339 L +330.781 172.339 L +330.88 171.938 L +330.979 171.995 L +331.012 171.938 L +330.979 171.881 L +331.045 171.881 L +331.078 171.823 L +331.177 171.995 L +331.244 171.995 L +331.277 171.938 L +331.376 172.339 L +331.475 172.282 L +331.508 172.339 L +331.674 172.167 L +331.707 172.224 L +331.773 172.224 L +331.74 172.282 L +331.773 172.339 L +331.872 172.282 L +331.971 172.339 L +332.004 172.282 L +331.971 172.224 L +332.037 172.224 L +332.037 172.11 L +331.971 172.11 L +332.004 172.052 L +331.971 171.995 L +332.037 171.995 L +332.17 171.881 L +332.236 171.881 L +332.269 171.823 L +332.236 171.766 L +332.17 171.651 L +332.037 171.651 L +331.971 171.651 L +332.004 171.594 L +331.971 171.537 L +332.037 171.537 L +332.037 171.422 L +331.971 171.422 L +332.004 171.365 L +331.971 171.308 L +332.037 171.308 L +332.17 171.193 L +332.236 171.193 L +332.269 171.136 L +332.368 171.308 L +332.467 171.25 L +332.5 171.308 L +332.666 170.907 L +332.699 170.964 L +332.765 170.964 L +332.864 170.792 L +332.963 170.964 L +333.03 170.964 L +333.063 170.907 L +333.162 171.308 L +333.228 171.308 L +333.261 171.25 L +333.294 171.308 L +333.46 171.136 L +333.493 171.193 L +333.559 171.193 L +333.559 171.308 L +333.691 171.308 L +333.757 171.308 L +333.724 171.365 L +333.757 171.422 L +333.691 171.422 L +333.691 171.537 L +333.757 171.537 L +333.724 171.594 L +333.757 171.651 L +333.691 171.651 L +333.559 171.766 L +333.493 171.766 L +333.493 171.881 L +333.559 171.881 L +333.559 171.995 L +333.691 171.995 L +333.757 171.995 L +333.724 172.052 L +333.757 172.11 L +333.691 172.11 L +333.691 172.224 L +333.757 172.224 L +333.724 172.282 L +333.757 172.339 L +333.956 172.224 L +334.022 172.224 L +334.055 172.167 L +334.154 172.339 L +334.22 172.339 L +334.253 172.282 L +334.286 172.339 L +334.452 171.938 L +334.485 171.995 L +334.551 171.995 L +334.65 171.823 L +334.749 171.995 L +334.816 171.995 L +334.849 171.938 L +334.948 172.339 L +335.014 172.339 L +335.246 172.167 L +335.279 172.224 L +335.345 172.339 L +335.477 172.339 L +335.543 172.339 L +335.642 171.938 L +335.742 171.995 L +335.775 171.938 L +335.742 171.881 L +335.808 171.881 L +335.808 171.766 L +335.742 171.766 L +335.775 171.709 L +335.742 171.651 L +335.642 171.709 L +335.642 171.25 L +335.742 171.308 L +335.775 171.25 L +335.742 171.193 L +335.808 171.193 L +335.841 171.136 L +335.94 171.308 L +336.006 171.308 L +336.238 170.907 L +336.271 170.964 L +336.337 170.62 L +336.271 170.62 L +336.238 170.677 L +336.139 170.276 L +336.006 170.276 L +335.94 170.276 L +335.841 170.448 L +335.808 170.391 L +335.742 170.391 L +335.775 170.334 L +335.742 170.276 L +335.642 170.334 L +335.642 169.875 L +335.742 169.933 L +335.775 169.875 L +335.742 169.818 L +335.808 169.818 L +335.808 169.704 L +335.742 169.704 L +335.775 169.646 L +335.742 169.589 L +335.642 169.646 L +335.642 169.188 L +335.742 169.245 L +335.775 169.188 L +335.742 169.131 L +335.808 169.131 L +335.841 169.073 L +335.94 169.245 L +336.006 169.245 L +336.238 168.844 L +336.271 168.902 L +336.436 168.73 L +336.469 168.787 L +336.535 168.787 L +336.734 169.245 L +336.8 169.245 L +336.932 169.131 L +336.998 169.131 L +337.032 169.073 L +337.131 169.245 L +337.23 169.188 L +337.263 169.245 L +337.428 168.844 L +337.462 168.902 L +337.528 168.902 L +337.528 168.558 L +337.462 168.558 L +337.428 168.615 L +337.428 168.157 L +337.462 168.214 L +337.528 168.214 L +337.627 168.042 L +337.726 168.214 L +337.792 168.214 L +337.925 168.1 L +337.991 168.1 L +338.024 168.042 L +337.991 167.985 L +337.925 167.87 L +337.991 167.87 L +338.024 167.813 L +338.057 167.87 L +338.222 167.699 L +338.255 167.756 L +338.321 167.87 L +338.454 167.87 L +338.52 167.87 L +338.487 167.928 L +338.52 167.985 L +338.454 167.985 L +338.454 168.1 L +338.52 168.1 L +338.487 168.157 L +338.52 168.214 L +338.619 168.157 L +338.718 168.214 L +338.751 168.157 L +338.718 168.1 L +338.784 168.1 L +338.818 168.042 L +338.917 168.214 L +338.983 168.214 L +339.016 168.157 L +339.016 168.615 L +338.983 168.558 L +338.917 168.902 L +338.983 168.902 L +339.016 168.844 L +339.115 169.245 L +339.248 169.245 L +339.314 169.245 L +339.413 169.073 L +339.446 169.131 L +339.512 169.131 L +339.479 169.188 L +339.512 169.245 L +339.711 169.131 L +339.777 169.131 L +339.777 169.016 L +339.711 169.016 L +339.711 168.902 L +339.777 168.902 L +339.909 168.787 L +339.975 168.787 L +340.008 168.73 L +340.107 168.902 L +340.24 168.902 L +340.306 168.902 L +340.306 169.016 L +340.24 169.016 L +340.24 169.131 L +340.306 169.131 L +340.306 169.245 L +340.438 169.245 L +340.504 169.245 L +340.604 169.073 L +340.703 169.245 L +340.769 169.245 L +340.802 169.188 L +340.802 169.646 L +340.769 169.589 L +340.703 169.589 L +340.703 169.933 L +340.769 169.933 L +340.802 169.875 L +340.802 170.334 L +340.769 170.276 L +340.703 170.276 L +340.604 170.448 L +340.504 170.276 L +340.438 170.276 L +340.306 170.391 L +340.24 170.391 L +340.24 170.506 L +340.306 170.506 L +340.306 170.62 L +340.24 170.62 L +340.107 170.964 L +340.24 170.964 L +340.306 170.964 L +340.306 171.078 L +340.24 171.078 L +340.24 171.193 L +340.306 171.193 L +340.306 171.308 L +340.438 171.308 L +340.504 171.308 L +340.604 171.136 L +340.703 171.308 L +340.769 171.308 L +340.802 171.25 L +340.802 171.709 L +340.769 171.651 L +340.703 171.651 L +340.703 171.995 L +340.769 171.995 L +340.802 171.938 L +340.901 172.339 L +340.967 172.339 L +341 172.282 L +341.034 172.339 L +341.199 172.167 L +341.232 172.224 L +341.298 172.224 L +341.298 172.339 L +341.497 172.339 L +341.53 172.282 L +341.497 172.224 L +341.563 172.224 L +341.563 172.11 L +341.497 172.11 L +341.53 172.052 L +341.497 171.995 L +341.563 171.995 L +341.695 171.881 L +341.761 171.881 L +341.794 171.823 L +341.893 171.995 L +341.993 171.938 L +342.026 171.995 L +342.092 172.11 L +342.026 172.11 L +341.993 172.167 L +342.026 172.224 L +342.092 172.339 L +342.224 172.339 L +342.29 172.339 L +342.39 172.167 L +342.489 172.339 L +342.555 172.339 L +342.687 172.224 L +342.753 172.224 L +342.753 172.11 L +342.687 172.11 L +342.687 171.995 L +342.753 171.995 L +342.886 171.651 L +342.753 171.651 L +342.687 171.651 L +342.687 171.537 L +342.753 171.537 L +342.753 171.422 L +342.687 171.422 L +342.687 171.308 L +342.753 171.308 L +342.985 171.136 L +343.018 171.193 L +343.084 171.308 L +343.216 171.308 L +343.283 171.308 L +343.382 170.907 L +343.481 170.964 L +343.514 170.907 L +343.481 170.849 L +343.547 170.849 L +343.58 170.792 L +343.679 170.964 L +343.746 170.964 L +343.779 170.907 L +343.878 171.308 L +343.977 171.25 L +344.01 171.308 L +344.176 171.136 L +344.209 171.193 L +344.275 171.193 L +344.242 171.25 L +344.275 171.308 L +344.374 171.25 L +344.374 171.709 L +344.275 171.651 L +344.242 171.709 L +344.275 171.766 L +344.209 171.766 L +344.209 171.881 L +344.275 171.881 L +344.242 171.938 L +344.275 171.995 L +344.374 171.938 L +344.473 172.339 L +344.539 172.339 L +344.672 172.224 L +344.738 172.224 L +344.771 172.167 L +344.87 172.339 L +344.969 172.282 L +345.002 172.339 L +345.168 171.938 L +345.201 171.995 L +345.267 171.995 L +345.366 171.823 L +345.465 171.995 L +345.532 171.995 L +345.565 171.938 L +345.664 172.339 L +345.73 172.339 L +345.763 172.282 L +345.796 172.339 L +345.962 172.167 L +345.995 172.224 L +346.061 172.224 L +346.061 172.339 L +346.193 172.339 L +346.259 172.339 L +346.226 172.396 L +346.259 172.453 L +346.193 172.453 L +346.193 172.568 L +346.259 172.568 L +346.226 172.625 L +346.259 172.683 L +346.193 172.683 L +346.061 172.797 L +345.995 172.797 L +345.995 172.912 L +346.061 172.912 L +346.061 173.026 L +346.193 173.026 L +346.259 173.026 L +346.226 173.084 L +346.259 173.141 L +346.193 173.141 L +346.193 173.255 L +346.259 173.255 L +346.226 173.313 L +346.259 173.37 L +346.193 173.37 L +346.061 173.485 L +345.995 173.485 L +345.962 173.542 L +345.862 173.37 L +345.763 173.427 L +345.73 173.37 L +345.565 173.771 L +345.532 173.714 L +345.465 173.714 L +345.465 174.057 L +345.532 174.057 L +345.565 174 L +345.664 174.401 L +345.73 174.401 L +345.763 174.344 L +345.796 174.401 L +345.962 174.229 L +345.995 174.287 L +346.061 174.287 L +346.061 174.401 L +346.193 174.401 L +346.259 174.401 L +346.226 174.458 L +346.259 174.516 L +346.193 174.516 L +346.193 174.63 L +346.259 174.63 L +346.226 174.688 L +346.259 174.745 L +346.193 174.745 L +346.061 174.859 L +345.995 174.859 L +345.995 174.974 L +346.061 174.974 L +346.061 175.089 L +346.193 175.089 L +346.259 175.089 L +346.226 175.146 L +346.259 175.203 L +346.193 175.203 L +346.193 175.318 L +346.259 175.318 L +346.226 175.375 L +346.259 175.432 L +346.193 175.432 L +346.061 175.547 L +345.995 175.547 L +345.962 175.604 L +345.862 175.432 L +345.763 175.49 L +345.73 175.432 L +345.565 175.833 L +345.532 175.776 L +345.465 175.776 L +345.366 175.948 L +345.267 175.776 L +345.201 175.776 L +345.168 175.833 L +345.069 175.432 L +345.002 175.432 L +344.969 175.49 L +344.936 175.432 L +344.771 175.604 L +344.738 175.547 L +344.672 175.432 L +344.539 175.432 L +344.473 175.432 L +344.374 175.833 L +344.275 175.776 L +344.242 175.833 L +344.275 175.891 L +344.209 175.891 L +344.209 176.005 L +344.275 176.005 L +344.242 176.062 L +344.275 176.12 L +344.374 176.062 L +344.374 176.521 L +344.275 176.463 L +344.242 176.521 L +344.275 176.578 L +344.209 176.578 L +344.176 176.635 L +344.076 176.463 L +344.01 176.463 L +343.977 176.521 L +343.944 176.463 L +343.779 176.864 L +343.746 176.807 L +343.679 177.151 L +343.746 177.151 L +343.779 177.094 L +343.878 177.495 L +343.977 177.437 L +344.01 177.495 L +344.176 177.323 L +344.209 177.38 L +344.275 177.38 L +344.242 177.437 L +344.275 177.495 L +344.374 177.437 L +344.374 177.896 L +344.275 177.838 L +344.242 177.896 L +344.275 177.953 L +344.209 177.953 L +344.209 178.067 L +344.275 178.067 L +344.242 178.125 L +344.275 178.182 L +344.374 178.125 L +344.473 178.526 L +344.539 178.526 L +344.672 178.411 L +344.738 178.411 L +344.771 178.354 L +344.87 178.526 L +344.969 178.468 L +345.002 178.526 L +345.168 178.125 L +345.201 178.182 L +345.267 178.182 L +345.366 178.01 L +345.465 178.182 L +345.532 178.182 L +345.565 178.125 L +345.664 178.526 L +345.73 178.526 L +345.763 178.468 L +345.796 178.526 L +345.962 178.354 L +345.995 178.411 L +346.061 178.411 L +346.061 178.526 L +346.193 178.526 L +346.259 178.526 L +346.226 178.583 L +346.259 178.64 L +346.193 178.64 L +346.193 178.755 L +346.259 178.755 L +346.226 178.812 L +346.259 178.869 L +346.193 178.869 L +346.061 178.984 L +345.995 178.984 L +345.995 179.099 L +346.061 179.099 L +346.061 179.213 L +346.193 179.213 L +346.259 179.213 L +346.226 179.27 L +346.259 179.328 L +346.193 179.328 L +346.193 179.442 L +346.259 179.442 L +346.226 179.5 L +346.259 179.557 L +346.193 179.557 L +346.061 179.671 L +345.995 179.671 L +345.962 179.729 L +345.862 179.557 L +345.763 179.614 L +345.73 179.557 L +345.565 179.958 L +345.532 179.901 L +345.465 179.901 L +345.465 180.244 L +345.532 180.244 L +345.565 180.187 L +345.664 180.588 L +345.73 180.588 L +345.763 180.531 L +345.796 180.588 L +345.962 180.416 L +345.995 180.473 L +346.061 180.473 L +346.061 180.588 L +346.193 180.588 L +346.259 180.588 L +346.226 180.645 L +346.259 180.703 L +346.193 180.703 L +346.193 180.817 L +346.259 180.817 L +346.226 180.874 L +346.259 180.932 L +346.193 180.932 L +346.061 181.046 L +345.995 181.046 L +345.995 181.161 L +346.061 181.161 L +346.061 181.275 L +346.193 181.275 L +346.259 181.275 L +346.226 181.333 L +346.259 181.39 L +346.193 181.39 L +346.193 181.505 L +346.259 181.505 L +346.226 181.562 L +346.259 181.619 L +346.458 181.505 L +346.524 181.505 L +346.557 181.447 L +346.656 181.619 L +346.722 181.619 L +346.755 181.562 L +346.788 181.619 L +346.954 181.218 L +346.987 181.275 L +347.053 181.275 L +347.152 181.104 L +347.185 181.161 L +347.251 181.161 L +347.218 181.218 L +347.251 181.275 L +347.351 181.218 L +347.45 181.619 L +347.516 181.619 L +347.748 181.447 L +347.781 181.505 L +347.847 181.619 L +347.979 181.619 L +348.045 181.619 L +348.145 181.218 L +348.244 181.275 L +348.277 181.218 L +348.244 181.161 L +348.31 181.161 L +348.31 181.046 L +348.244 181.046 L +348.277 180.989 L +348.244 180.932 L +348.145 180.989 L +348.145 180.531 L +348.244 180.588 L +348.277 180.531 L +348.244 180.473 L +348.31 180.473 L +348.343 180.416 L +348.442 180.588 L +348.508 180.588 L +348.74 180.187 L +348.773 180.244 L +348.938 180.072 L +348.971 180.13 L +349.038 180.13 L +349.236 180.588 L +349.302 180.588 L +349.434 180.473 L +349.501 180.473 L +349.534 180.416 L +349.633 180.588 L +349.732 180.531 L +349.765 180.588 L +349.765 180.703 L +349.732 180.76 L +349.765 180.817 L +349.831 180.932 L +349.765 180.932 L +349.732 180.989 L +349.699 180.932 L +349.633 181.275 L +349.732 181.218 L +349.765 181.275 L +349.831 181.39 L +349.765 181.39 L +349.732 181.447 L +349.765 181.505 L +349.831 181.619 L +349.964 181.619 L +350.03 181.619 L +350.129 181.447 L +350.228 181.619 L +350.294 181.619 L +350.427 181.505 L +350.493 181.505 L +350.526 181.447 L +350.493 181.39 L +350.427 181.275 L +350.493 181.275 L +350.526 181.218 L +350.559 181.275 L +350.724 181.104 L +350.757 181.161 L +350.823 181.275 L +350.956 181.275 L +351.022 181.275 L +350.989 181.333 L +351.022 181.39 L +350.956 181.39 L +350.956 181.505 L +351.022 181.505 L +350.989 181.562 L +351.022 181.619 L +351.121 181.562 L +351.22 181.619 L +351.253 181.562 L +351.22 181.505 L +351.287 181.505 L +351.32 181.447 L +351.419 181.619 L +351.485 181.619 L +351.518 181.562 L +351.551 181.619 L +351.716 181.218 L +351.75 181.275 L +351.816 181.275 L +351.816 180.932 L +351.75 180.932 L +351.716 180.989 L +351.716 180.531 L +351.75 180.588 L +351.816 180.588 L +351.915 180.416 L +351.948 180.473 L +352.014 180.473 L +351.981 180.531 L +352.014 180.588 L +352.213 180.473 L +352.279 180.473 L +352.279 180.359 L +352.213 180.359 L +352.213 180.244 L +352.279 180.244 L +352.411 180.13 L +352.477 180.13 L +352.51 180.072 L +352.477 180.015 L +352.411 179.901 L +352.279 179.901 L +352.213 179.901 L +352.213 179.786 L +352.279 179.786 L +352.279 179.671 L +352.213 179.671 L +352.213 179.557 L +352.014 179.557 L +351.981 179.614 L +352.014 179.671 L +351.948 179.671 L +351.915 179.729 L +351.816 179.557 L +351.75 179.557 L +351.716 179.614 L +351.716 179.156 L +351.75 179.213 L +351.816 179.213 L +351.816 178.869 L +351.75 178.869 L +351.716 178.927 L +351.716 178.468 L +351.75 178.526 L +351.816 178.526 L +351.915 178.354 L +351.948 178.411 L +352.014 178.411 L +351.981 178.468 L +352.014 178.526 L +352.213 178.411 L +352.279 178.411 L +352.279 178.297 L +352.213 178.297 L +352.213 178.182 L +352.279 178.182 L +352.345 178.182 L +352.411 178.067 L +352.477 178.067 L +352.51 178.01 L +352.609 178.182 L +352.742 178.182 L +352.808 178.182 L +352.808 178.297 L +352.742 178.297 L +352.742 178.411 L +352.808 178.411 L +352.808 178.526 L +352.94 178.526 L +353.006 178.526 L +353.106 178.354 L +353.205 178.526 L +353.271 178.526 L +353.403 178.411 L +353.469 178.411 L +353.503 178.354 L +353.469 178.297 L +353.403 178.182 L +353.469 178.182 L +353.503 178.125 L +353.536 178.182 L +353.602 177.838 L +353.503 177.896 L +353.469 177.838 L +353.469 177.724 L +353.503 177.666 L +353.469 177.609 L +353.403 177.495 L +353.469 177.495 L +353.503 177.437 L +353.536 177.495 L +353.701 177.323 L +353.734 177.38 L +353.8 177.38 L +353.8 177.495 L +353.999 177.495 L +354.032 177.437 L +353.999 177.38 L +354.065 177.38 L +354.065 177.265 L +353.999 177.265 L +354.032 177.208 L +353.999 177.151 L +354.065 177.151 L +354.197 177.036 L +354.263 177.036 L +354.296 176.979 L +354.396 177.151 L +354.495 177.094 L +354.528 177.151 L +354.528 177.265 L +354.495 177.323 L +354.528 177.38 L +354.594 177.495 L +354.726 177.495 L +354.792 177.495 L +354.892 177.323 L +354.991 177.495 L +355.057 177.495 L +355.09 177.437 L +355.09 177.896 L +355.057 177.838 L +354.991 177.838 L +354.991 178.182 L +355.057 178.182 L +355.09 178.125 L +355.189 178.526 L +355.255 178.526 L +355.487 178.354 L +355.52 178.411 L +355.586 178.526 L +355.718 178.526 L +355.785 178.526 L +355.884 178.125 L +355.983 178.182 L +356.016 178.125 L +355.983 178.067 L +356.049 178.067 L +356.082 178.01 L +356.182 178.182 L +356.248 178.182 L +356.281 178.125 L +356.38 178.526 L +356.479 178.468 L +356.512 178.526 L +356.678 178.354 L +356.711 178.411 L +356.777 178.411 L +356.744 178.468 L +356.777 178.526 L +356.876 178.468 L +356.876 178.927 L +356.777 178.869 L +356.744 178.927 L +356.777 178.984 L +356.711 178.984 L +356.711 179.099 L +356.777 179.099 L +356.744 179.156 L +356.777 179.213 L +356.876 179.156 L +356.876 179.614 L +356.777 179.557 L +356.744 179.614 L +356.777 179.671 L +356.711 179.671 L +356.678 179.729 L +356.578 179.557 L +356.512 179.557 L +356.479 179.614 L +356.446 179.557 L +356.281 179.958 L +356.248 179.901 L +356.182 180.244 L +356.248 180.244 L +356.281 180.187 L +356.38 180.588 L +356.479 180.531 L +356.512 180.588 L +356.678 180.416 L +356.711 180.473 L +356.777 180.473 L +356.744 180.531 L +356.777 180.588 L +356.876 180.531 L +356.876 180.989 L +356.777 180.932 L +356.744 180.989 L +356.777 181.046 L +356.711 181.046 L +356.711 181.161 L +356.777 181.161 L +356.744 181.218 L +356.777 181.275 L +356.876 181.218 L +356.975 181.619 L +357.041 181.619 L +357.24 181.505 L +357.273 181.447 L +357.372 181.619 L +357.471 181.562 L +357.504 181.619 L +357.67 181.218 L +357.703 181.275 L +357.769 181.275 L +357.868 181.104 L +357.968 181.275 L +358.034 181.275 L +358.067 181.218 L +358.166 181.619 L +358.232 181.619 L +358.265 181.562 L +358.298 181.619 L +358.464 181.447 L +358.497 181.505 L +358.563 181.505 L +358.563 181.619 L +358.695 181.619 L +358.761 181.619 L +358.96 181.161 L +359.026 181.161 L +359.026 181.046 L +358.96 181.046 L +358.96 180.473 L +359.026 180.473 L +359.059 180.416 L +359.158 180.588 L +359.224 180.588 L +359.257 180.531 L +359.29 180.588 L +359.456 180.187 L +359.489 180.244 L +359.555 180.244 L +359.654 180.072 L +359.687 180.13 L +359.754 180.13 L +359.72 180.187 L +359.754 180.244 L +359.853 180.187 L +359.952 180.588 L +360.018 180.588 L +360.25 180.416 L +360.283 180.473 L +360.349 180.588 L +360.481 180.588 L +360.547 180.588 L +360.547 180.703 L +360.481 180.703 L +360.481 180.817 L +360.547 180.817 L +360.547 180.932 L +360.481 180.932 L +360.349 181.046 L +360.283 181.046 L +360.25 181.104 L +360.283 181.161 L +360.349 181.275 L +360.481 181.275 L +360.547 181.275 L +360.547 181.39 L +360.481 181.39 L +360.481 181.505 L +360.547 181.505 L +360.547 181.619 L +360.746 181.619 L +360.779 181.562 L +360.746 181.505 L +360.812 181.505 L +360.845 181.447 L +360.944 181.619 L +361.01 181.619 L +361.242 181.218 L +361.275 181.275 L +361.44 181.104 L +361.473 181.161 L +361.54 181.161 L +361.738 181.619 L +361.804 181.619 L +361.936 181.505 L +362.003 181.505 L +362.036 181.447 L +362.135 181.619 L +362.234 181.562 L +362.267 181.619 L +362.333 181.734 L +362.267 181.734 L +362.234 181.791 L +362.267 181.848 L +362.333 181.963 L +362.267 181.963 L +362.234 182.02 L +362.201 181.963 L +362.135 182.307 L +362.234 182.249 L +362.267 182.307 L +362.333 182.421 L +362.267 182.421 L +362.234 182.478 L +362.267 182.536 L +362.333 182.65 L +362.267 182.65 L +362.234 182.708 L +362.201 182.65 L +362.036 182.822 L +362.003 182.765 L +361.936 182.765 L +361.936 182.65 L +361.804 182.65 L +361.738 182.65 L +361.54 183.109 L +361.473 183.109 L +361.473 183.223 L +361.54 183.223 L +361.738 183.681 L +361.804 183.681 L +361.936 183.567 L +362.003 183.567 L +362.036 183.51 L +362.135 183.681 L +362.234 183.624 L +362.267 183.681 L +362.267 183.796 L +362.234 183.853 L +362.267 183.911 L +362.333 184.025 L +362.267 184.025 L +362.234 184.082 L +362.201 184.025 L +362.135 184.369 L +362.234 184.312 L +362.267 184.369 L +362.267 184.483 L +362.234 184.541 L +362.267 184.598 L +362.333 184.713 L +362.267 184.713 L +362.234 184.77 L +362.201 184.713 L +362.036 184.884 L +362.003 184.827 L +361.936 184.827 L +361.936 184.713 L +361.804 184.713 L +361.738 184.713 L +361.54 185.171 L +361.473 185.171 L +361.44 185.228 L +361.341 185.056 L +361.275 185.056 L +361.242 185.114 L +361.143 184.713 L +361.01 184.713 L +360.944 184.713 L +360.845 184.884 L +360.812 184.827 L +360.746 184.827 L +360.779 184.77 L +360.746 184.713 L +360.547 184.827 L +360.481 184.827 L +360.481 184.942 L +360.547 184.942 L +360.547 185.056 L +360.481 185.056 L +360.349 185.171 L +360.283 185.171 L +360.25 185.228 L +360.283 185.285 L +360.349 185.4 L +360.481 185.4 L +360.547 185.4 L +360.547 185.515 L +360.481 185.515 L +360.481 185.629 L +360.547 185.629 L +360.547 185.744 L +360.481 185.744 L +360.349 185.858 L +360.283 185.858 L +360.25 185.916 L +360.15 185.744 L +360.018 185.744 L +359.952 185.744 L +359.853 186.145 L +359.754 186.087 L +359.72 186.145 L +359.754 186.202 L +359.687 186.202 L +359.687 186.317 L +359.754 186.317 L +359.72 186.374 L +359.754 186.431 L +359.853 186.374 L +359.952 186.775 L +360.018 186.775 L +360.25 186.603 L +360.283 186.66 L +360.349 186.775 L +360.481 186.775 L +360.547 186.775 L +360.547 186.889 L +360.481 186.889 L +360.481 187.004 L +360.547 187.004 L +360.547 187.119 L +360.481 187.119 L +360.283 187.233 L +360.25 187.29 L +360.283 187.348 L +360.349 187.462 L +360.481 187.462 L +360.547 187.462 L +360.547 187.577 L +360.481 187.577 L +360.481 187.691 L +360.547 187.691 L +360.547 187.806 L +360.746 187.806 L +360.779 187.749 L +360.746 187.691 L +360.812 187.691 L +360.845 187.634 L +360.944 187.806 L +361.01 187.806 L +361.242 187.405 L +361.275 187.462 L +361.44 187.29 L +361.473 187.348 L +361.54 187.348 L +361.738 187.806 L +361.804 187.806 L +361.936 187.691 L +362.003 187.691 L +362.036 187.634 L +362.135 187.806 L +362.234 187.749 L +362.267 187.806 L +362.333 187.921 L +362.267 187.921 L +362.234 187.978 L +362.267 188.035 L +362.333 188.15 L +362.267 188.15 L +362.234 188.207 L +362.201 188.15 L +362.135 188.494 L +362.234 188.436 L +362.267 188.494 L +362.333 188.608 L +362.267 188.608 L +362.234 188.665 L +362.267 188.723 L +362.333 188.837 L +362.267 188.837 L +362.234 188.895 L +362.201 188.837 L +362.036 189.009 L +362.003 188.952 L +361.936 188.952 L +361.936 188.837 L +361.804 188.837 L +361.738 188.837 L +361.54 189.296 L +361.473 189.296 L +361.473 189.41 L +361.54 189.41 L +361.738 189.868 L +361.804 189.868 L +361.936 189.754 L +362.003 189.754 L +362.036 189.697 L +362.135 189.868 L +362.234 189.811 L +362.267 189.868 L +362.333 189.983 L +362.267 189.983 L +362.234 190.04 L +362.267 190.098 L +362.333 190.212 L +362.267 190.212 L +362.234 190.269 L +362.201 190.212 L +362.135 190.556 L +362.234 190.499 L +362.267 190.556 L +362.333 190.67 L +362.267 190.67 L +362.234 190.728 L +362.267 190.785 L +362.333 190.9 L +362.267 190.9 L +362.234 190.957 L +362.201 190.9 L +362.036 191.071 L +362.003 191.014 L +361.936 191.014 L +361.936 190.9 L +361.804 190.9 L +361.738 190.9 L +361.54 191.358 L +361.473 191.358 L +361.44 191.415 L +361.341 191.243 L +361.275 191.243 L +361.242 191.301 L +361.143 190.9 L +361.01 190.9 L +360.944 190.9 L +360.845 191.071 L +360.812 191.014 L +360.746 191.014 L +360.779 190.957 L +360.746 190.9 L +360.547 191.014 L +360.481 191.014 L +360.481 191.129 L +360.547 191.129 L +360.547 191.243 L +360.481 191.243 L +360.349 191.358 L +360.283 191.358 L +360.25 191.415 L +360.283 191.472 L +360.349 191.587 L +360.481 191.587 L +360.547 191.587 L +360.547 191.702 L +360.481 191.702 L +360.481 191.816 L +360.547 191.816 L +360.547 191.931 L +360.481 191.931 L +360.349 192.045 L +360.283 192.045 L +360.25 192.103 L +360.15 191.931 L +360.018 191.931 L +359.952 191.931 L +359.853 192.332 L +359.754 192.274 L +359.72 192.332 L +359.754 192.389 L +359.687 192.389 L +359.654 192.446 L +359.555 192.274 L +359.489 192.274 L +359.456 192.332 L +359.357 191.931 L +359.257 191.988 L +359.224 191.931 L +359.059 192.103 L +359.026 192.045 L +358.96 192.045 L +358.96 191.472 L +359.026 191.472 L +359.026 191.358 L +358.96 191.358 L +358.761 190.9 L +358.695 190.9 L +358.563 191.014 L +358.497 191.014 L +358.464 191.071 L +358.364 190.9 L +358.265 190.957 L +358.232 190.9 L +358.067 191.301 L +358.034 191.243 L +357.968 191.243 L +357.868 191.415 L +357.769 191.243 L +357.703 191.243 L +357.67 191.301 L +357.571 190.9 L +357.504 190.9 L +357.471 190.957 L +357.438 190.9 L +357.273 191.071 L +357.24 191.014 L +357.174 190.9 L +357.041 190.9 L +356.975 190.9 L +356.876 191.301 L +356.777 191.243 L +356.744 191.301 L +356.777 191.358 L +356.711 191.358 L +356.711 191.472 L +356.777 191.472 L +356.744 191.53 L +356.777 191.587 L +356.876 191.53 L +356.876 191.988 L +356.777 191.931 L +356.744 191.988 L +356.777 192.045 L +356.711 192.045 L +356.678 192.103 L +356.578 191.931 L +356.512 191.931 L +356.479 191.988 L +356.446 191.931 L +356.281 192.332 L +356.248 192.274 L +356.182 192.618 L +356.248 192.618 L +356.281 192.561 L +356.38 192.962 L +356.479 192.905 L +356.512 192.962 L +356.678 192.79 L +356.711 192.847 L +356.777 192.847 L +356.744 192.905 L +356.777 192.962 L +356.876 192.905 L +356.876 193.363 L +356.777 193.306 L +356.744 193.363 L +356.777 193.42 L +356.711 193.42 L +356.711 193.535 L +356.777 193.535 L +356.744 193.592 L +356.777 193.649 L +356.876 193.592 L +356.876 194.05 L +356.777 193.993 L +356.744 194.05 L +356.777 194.108 L +356.711 194.108 L +356.678 194.165 L +356.578 193.993 L +356.512 193.993 L +356.479 194.05 L +356.446 193.993 L +356.281 194.394 L +356.248 194.337 L +356.082 194.509 L +356.049 194.451 L +355.983 194.451 L +356.016 194.394 L +355.983 194.337 L +355.884 194.394 L +355.785 193.993 L +355.718 193.993 L +355.586 194.108 L +355.52 194.108 L +355.487 194.165 L +355.388 193.993 L +355.255 193.993 L +355.189 193.993 L +355.09 194.394 L +355.057 194.337 L +354.991 194.337 L +354.991 194.68 L +355.057 194.68 L +355.09 194.623 L +355.09 195.081 L +355.057 195.024 L +354.991 195.024 L +354.892 195.196 L +354.792 195.024 L +354.726 195.024 L +354.594 195.139 L +354.528 195.139 L +354.495 195.196 L +354.528 195.253 L +354.594 195.368 L +354.528 195.368 L +354.495 195.425 L +354.462 195.368 L +354.396 195.712 L +354.495 195.654 L +354.528 195.712 L +354.594 195.826 L +354.528 195.826 L +354.495 195.883 L +354.528 195.941 L +354.594 196.055 L +354.726 196.055 L +354.792 196.055 L +354.892 195.883 L +354.991 196.055 L +355.057 196.055 L +355.09 195.998 L +355.09 196.456 L +355.057 196.399 L +354.991 196.399 L +354.991 196.743 L +355.057 196.743 L +355.09 196.685 L +355.189 197.086 L +355.255 197.086 L +355.487 196.915 L +355.52 196.972 L +355.586 197.086 L +355.718 197.086 L +355.785 197.086 L +355.884 196.685 L +355.983 196.743 L +356.016 196.685 L +355.983 196.628 L +356.049 196.628 L +356.082 196.571 L +356.182 196.743 L +356.248 196.743 L +356.281 196.685 L +356.38 197.086 L +356.479 197.029 L +356.512 197.086 L +356.678 196.915 L +356.711 196.972 L +356.777 196.972 L +356.744 197.029 L +356.777 197.086 L +356.876 197.029 L +356.876 197.487 L +356.777 197.43 L +356.744 197.487 L +356.777 197.545 L +356.711 197.545 L +356.711 197.659 L +356.777 197.659 L +356.744 197.717 L +356.777 197.774 L +356.876 197.717 L +356.876 198.175 L +356.777 198.118 L +356.744 198.175 L +356.777 198.232 L +356.711 198.232 L +356.678 198.289 L +356.578 198.118 L +356.512 198.118 L +356.479 198.175 L +356.446 198.118 L +356.281 198.519 L +356.248 198.461 L +356.182 198.805 L +356.248 198.805 L +356.281 198.748 L +356.38 199.149 L +356.479 199.091 L +356.512 199.149 L +356.678 198.977 L +356.711 199.034 L +356.777 199.034 L +356.744 199.091 L +356.777 199.149 L +356.876 199.091 L +356.876 199.55 L +356.777 199.492 L +356.744 199.55 L +356.777 199.607 L +356.711 199.607 L +356.711 199.722 L +356.777 199.722 L +356.744 199.779 L +356.777 199.836 L +356.876 199.779 L +356.975 200.18 L +357.041 200.18 L +357.24 200.065 L +357.273 200.008 L +357.372 200.18 L +357.471 200.123 L +357.504 200.18 L +357.67 199.779 L +357.703 199.836 L +357.769 199.836 L +357.868 199.664 L +357.968 199.836 L +358.034 199.836 L +358.067 199.779 L +358.166 200.18 L +358.232 200.18 L +358.265 200.123 L +358.298 200.18 L +358.464 200.008 L +358.497 200.065 L +358.563 200.065 L +358.563 200.18 L +358.695 200.18 L +358.761 200.18 L +358.96 199.722 L +359.026 199.722 L +359.026 199.607 L +358.96 199.607 L +358.96 199.034 L +359.026 199.034 L +359.059 198.977 L +359.158 199.149 L +359.224 199.149 L +359.257 199.091 L +359.29 199.149 L +359.456 198.748 L +359.489 198.805 L +359.555 198.805 L +359.654 198.633 L +359.687 198.69 L +359.754 198.69 L +359.72 198.748 L +359.754 198.805 L +359.853 198.748 L +359.952 199.149 L +360.018 199.149 L +360.25 198.977 L +360.283 199.034 L +360.349 199.149 L +360.481 199.149 L +360.547 199.149 L +360.547 199.263 L +360.481 199.263 L +360.481 199.378 L +360.547 199.378 L +360.547 199.492 L +360.481 199.492 L +360.349 199.607 L +360.283 199.607 L +360.25 199.664 L +360.283 199.722 L +360.349 199.836 L +360.481 199.836 L +360.547 199.836 L +360.547 199.951 L +360.481 199.951 L +360.481 200.065 L +360.547 200.065 L +360.547 200.18 L +360.746 200.18 L +360.779 200.123 L +360.746 200.065 L +360.812 200.065 L +360.845 200.008 L +360.944 200.18 L +361.01 200.18 L +361.242 199.779 L +361.275 199.836 L +361.44 199.664 L +361.473 199.722 L +361.54 199.722 L +361.738 200.18 L +361.804 200.18 L +361.936 200.065 L +362.003 200.065 L +362.036 200.008 L +362.135 200.18 L +362.234 200.123 L +362.267 200.18 L +362.267 200.294 L +362.234 200.352 L +362.267 200.409 L +362.333 200.524 L +362.267 200.524 L +362.234 200.581 L +362.201 200.524 L +362.135 200.867 L +362.234 200.81 L +362.267 200.867 L +362.267 200.982 L +362.234 201.039 L +362.267 201.096 L +362.333 201.211 L +362.267 201.211 L +362.234 201.268 L +362.201 201.211 L +362.036 201.383 L +362.003 201.326 L +361.936 201.326 L +361.936 201.211 L +361.804 201.211 L +361.738 201.211 L +361.54 201.669 L +361.473 201.669 L +361.473 201.784 L +361.54 201.784 L +361.738 202.242 L +361.804 202.242 L +361.936 202.128 L +362.003 202.128 L +362.036 202.07 L +362.135 202.242 L +362.234 202.185 L +362.267 202.242 L +362.267 202.357 L +362.234 202.414 L +362.267 202.471 L +362.333 202.586 L +362.267 202.586 L +362.234 202.643 L +362.201 202.586 L +362.135 202.93 L +362.234 202.872 L +362.267 202.93 L +362.333 203.044 L +362.267 203.044 L +362.234 203.102 L +362.267 203.159 L +362.333 203.273 L +362.267 203.273 L +362.234 203.331 L +362.201 203.273 L +362.036 203.445 L +362.003 203.388 L +361.936 203.388 L +361.936 203.273 L +361.804 203.273 L +361.738 203.273 L +361.54 203.732 L +361.473 203.732 L +361.44 203.789 L +361.341 203.617 L +361.275 203.617 L +361.242 203.674 L +361.143 203.273 L +361.01 203.273 L +360.944 203.273 L +360.845 203.445 L +360.812 203.388 L +360.746 203.388 L +360.779 203.331 L +360.746 203.273 L +360.547 203.388 L +360.481 203.388 L +360.481 203.503 L +360.547 203.503 L +360.547 203.617 L +360.481 203.617 L +360.349 203.732 L +360.283 203.732 L +360.25 203.789 L +360.283 203.846 L +360.349 203.961 L +360.481 203.961 L +360.547 203.961 L +360.547 204.075 L +360.481 204.075 L +360.481 204.19 L +360.547 204.19 L +360.547 204.305 L +360.481 204.305 L +360.349 204.419 L +360.283 204.419 L +360.25 204.476 L +360.15 204.305 L +360.018 204.305 L +359.952 204.305 L +359.853 204.706 L +359.754 204.648 L +359.72 204.706 L +359.754 204.763 L +359.687 204.763 L +359.687 204.877 L +359.754 204.877 L +359.72 204.935 L +359.754 204.992 L +359.853 204.935 L +359.952 205.336 L +360.018 205.336 L +360.25 205.164 L +360.283 205.221 L +360.349 205.336 L +360.481 205.336 L +360.547 205.336 L +360.547 205.45 L +360.481 205.45 L +360.481 205.565 L +360.547 205.565 L +360.547 205.679 L +360.481 205.679 L +360.349 205.794 L +360.283 205.794 L +360.25 205.851 L +360.283 205.909 L +360.349 206.023 L +360.481 206.023 L +360.547 206.023 L +360.547 206.138 L +360.481 206.138 L +360.481 206.252 L +360.547 206.252 L +360.547 206.367 L +360.746 206.367 L +360.779 206.31 L +360.746 206.252 L +360.812 206.252 L +360.845 206.195 L +360.944 206.367 L +361.01 206.367 L +361.242 205.966 L +361.275 206.023 L +361.44 205.851 L +361.473 205.909 L +361.54 205.909 L +361.738 206.367 L +361.804 206.367 L +361.936 206.252 L +362.003 206.252 L +362.036 206.195 L +362.135 206.367 L +362.234 206.31 L +362.267 206.367 L +362.267 206.481 L +362.234 206.539 L +362.267 206.596 L +362.333 206.711 L +362.267 206.711 L +362.234 206.768 L +362.201 206.711 L +362.135 207.054 L +362.234 206.997 L +362.267 207.054 L +362.333 207.169 L +362.267 207.169 L +362.234 207.226 L +362.267 207.283 L +362.333 207.398 L +362.267 207.398 L +362.234 207.455 L +362.201 207.398 L +362.036 207.57 L +362.003 207.513 L +361.936 207.513 L +361.936 207.398 L +361.804 207.398 L +361.738 207.398 L +361.54 207.856 L +361.473 207.856 L +361.473 207.971 L +361.54 207.971 L +361.738 208.429 L +361.804 208.429 L +361.936 208.315 L +362.003 208.315 L +362.036 208.257 L +362.135 208.429 L +362.234 208.372 L +362.267 208.429 L +362.267 208.544 L +362.234 208.601 L +362.267 208.658 L +362.333 208.773 L +362.267 208.773 L +362.234 208.83 L +362.201 208.773 L +362.135 209.117 L +362.234 209.059 L +362.267 209.117 L +362.267 209.231 L +362.234 209.288 L +362.267 209.346 L +362.333 209.46 L +362.267 209.46 L +362.234 209.518 L +362.201 209.46 L +362.036 209.632 L +362.003 209.575 L +361.936 209.575 L +361.936 209.46 L +361.804 209.46 L +361.738 209.46 L +361.54 209.919 L +361.473 209.919 L +361.44 209.976 L +361.341 209.804 L +361.275 209.804 L +361.242 209.861 L +361.143 209.46 L +361.01 209.46 L +360.944 209.46 L +360.845 209.632 L +360.812 209.575 L +360.746 209.575 L +360.779 209.518 L +360.746 209.46 L +360.547 209.575 L +360.481 209.575 L +360.481 209.689 L +360.547 209.689 L +360.547 209.804 L +360.481 209.804 L +360.349 209.919 L +360.283 209.919 L +360.25 209.976 L +360.283 210.033 L +360.349 210.148 L +360.481 210.148 L +360.547 210.148 L +360.547 210.262 L +360.481 210.262 L +360.481 210.377 L +360.547 210.377 L +360.547 210.491 L +360.481 210.491 L +360.349 210.606 L +360.283 210.606 L +360.25 210.663 L +360.15 210.491 L +360.018 210.491 L +359.952 210.491 L +359.853 210.892 L +359.754 210.835 L +359.72 210.892 L +359.754 210.95 L +359.687 210.95 L +359.654 211.007 L +359.555 210.835 L +359.489 210.835 L +359.456 210.892 L +359.357 210.491 L +359.257 210.549 L +359.224 210.491 L +359.059 210.663 L +359.026 210.606 L +358.96 210.606 L +358.96 210.033 L +359.026 210.033 L +359.026 209.919 L +358.96 209.919 L +358.761 209.46 L +358.695 209.46 L +358.563 209.575 L +358.497 209.575 L +358.464 209.632 L +358.364 209.46 L +358.265 209.518 L +358.232 209.46 L +358.067 209.861 L +358.034 209.804 L +357.968 209.804 L +357.868 209.976 L +357.769 209.804 L +357.703 209.804 L +357.67 209.861 L +357.571 209.46 L +357.504 209.46 L +357.471 209.518 L +357.438 209.46 L +357.273 209.632 L +357.24 209.575 L +357.174 209.46 L +357.041 209.46 L +356.975 209.46 L +356.876 209.861 L +356.777 209.804 L +356.744 209.861 L +356.777 209.919 L +356.711 209.919 L +356.711 210.033 L +356.777 210.033 L +356.744 210.09 L +356.777 210.148 L +356.876 210.09 L +356.876 210.549 L +356.777 210.491 L +356.744 210.549 L +356.777 210.606 L +356.711 210.606 L +356.678 210.663 L +356.578 210.491 L +356.512 210.491 L +356.479 210.549 L +356.446 210.491 L +356.281 210.892 L +356.248 210.835 L +356.182 211.179 L +356.248 211.179 L +356.281 211.122 L +356.38 211.523 L +356.479 211.465 L +356.512 211.523 L +356.678 211.351 L +356.711 211.408 L +356.777 211.408 L +356.744 211.465 L +356.777 211.523 L +356.876 211.465 L +356.876 211.924 L +356.777 211.866 L +356.744 211.924 L +356.777 211.981 L +356.711 211.981 L +356.711 212.095 L +356.777 212.095 L +356.744 212.153 L +356.777 212.21 L +356.876 212.153 L +356.876 212.611 L +356.777 212.554 L +356.744 212.611 L +356.777 212.668 L +356.711 212.668 L +356.678 212.726 L +356.578 212.554 L +356.512 212.554 L +356.479 212.611 L +356.446 212.554 L +356.281 212.955 L +356.248 212.897 L +356.082 213.069 L +356.049 213.012 L +355.983 213.012 L +356.016 212.955 L +355.983 212.897 L +355.884 212.955 L +355.785 212.554 L +355.718 212.554 L +355.586 212.668 L +355.52 212.668 L +355.487 212.726 L +355.388 212.554 L +355.255 212.554 L +355.189 212.554 L +355.09 212.955 L +355.057 212.897 L +354.991 212.897 L +354.991 213.241 L +355.057 213.241 L +355.09 213.184 L +355.09 213.642 L +355.057 213.585 L +354.991 213.585 L +354.892 213.757 L +354.792 213.585 L +354.726 213.585 L +354.594 213.699 L +354.528 213.699 L +354.495 213.757 L +354.528 213.814 L +354.594 213.929 L +354.528 213.929 L +354.495 213.986 L +354.462 213.929 L +354.296 214.1 L +354.263 214.043 L +354.197 214.043 L +354.197 213.929 L +354.065 213.929 L +353.999 213.929 L +354.032 213.871 L +353.999 213.814 L +354.065 213.814 L +354.065 213.699 L +353.999 213.699 L +354.032 213.642 L +353.999 213.585 L +353.8 213.699 L +353.734 213.699 L +353.701 213.757 L +353.602 213.585 L +353.503 213.642 L +353.469 213.585 L +353.403 213.47 L +353.469 213.47 L +353.503 213.413 L +353.469 213.356 L +353.403 213.241 L +353.469 213.241 L +353.503 213.184 L +353.536 213.241 L +353.602 212.897 L +353.503 212.955 L +353.469 212.897 L +353.403 212.783 L +353.469 212.783 L +353.503 212.726 L +353.469 212.668 L +353.403 212.554 L +353.271 212.554 L +353.205 212.554 L +353.106 212.726 L +353.006 212.554 L +352.94 212.554 L +352.808 212.668 L +352.742 212.668 L +352.742 212.783 L +352.808 212.783 L +352.808 212.897 L +352.742 212.897 L +352.51 213.069 L +352.477 213.012 L +352.411 212.897 L +352.279 212.897 L +352.213 212.897 L +352.213 212.783 L +352.279 212.783 L +352.279 212.668 L +352.213 212.668 L +352.213 212.554 L +352.014 212.554 L +351.981 212.611 L +352.014 212.668 L +351.948 212.668 L +351.915 212.726 L +351.816 212.554 L +351.75 212.554 L +351.716 212.611 L +351.716 212.153 L +351.75 212.21 L +351.816 212.21 L +351.816 211.866 L +351.75 211.866 L +351.716 211.924 L +351.716 211.465 L +351.75 211.523 L +351.816 211.523 L +351.915 211.351 L +351.948 211.408 L +352.014 211.408 L +351.981 211.465 L +352.014 211.523 L +352.213 211.408 L +352.279 211.408 L +352.279 211.293 L +352.213 211.293 L +352.213 211.179 L +352.279 211.179 L +352.477 211.064 L +352.51 211.007 L +352.477 210.95 L +352.411 210.835 L +352.279 210.835 L +352.213 210.835 L +352.213 210.721 L +352.279 210.721 L +352.279 210.606 L +352.213 210.606 L +352.213 210.491 L +352.014 210.491 L +351.981 210.549 L +352.014 210.606 L +351.948 210.606 L +351.915 210.663 L +351.816 210.491 L +351.75 210.491 L +351.716 210.549 L +351.716 210.09 L +351.75 210.148 L +351.816 210.148 L +351.816 209.804 L +351.75 209.804 L +351.716 209.861 L +351.617 209.46 L +351.518 209.518 L +351.485 209.46 L +351.32 209.632 L +351.287 209.575 L +351.22 209.575 L +351.253 209.518 L +351.22 209.46 L +351.121 209.518 L +351.022 209.46 L +350.989 209.518 L +351.022 209.575 L +350.956 209.575 L +350.956 209.689 L +351.022 209.689 L +350.989 209.747 L +351.022 209.804 L +350.956 209.804 L +350.823 209.919 L +350.757 209.919 L +350.724 209.976 L +350.625 209.804 L +350.526 209.861 L +350.493 209.804 L +350.427 209.689 L +350.493 209.689 L +350.526 209.632 L +350.493 209.575 L +350.427 209.46 L +350.294 209.46 L +350.228 209.46 L +350.129 209.632 L +350.03 209.46 L +349.964 209.46 L +349.831 209.575 L +349.765 209.575 L +349.732 209.632 L +349.765 209.689 L +349.831 209.804 L +349.765 209.804 L +349.732 209.861 L +349.699 209.804 L +349.633 210.148 L +349.732 210.09 L +349.765 210.148 L +349.765 210.262 L +349.732 210.32 L +349.765 210.377 L +349.831 210.491 L +349.765 210.491 L +349.732 210.549 L +349.699 210.491 L +349.534 210.663 L +349.501 210.606 L +349.434 210.606 L +349.434 210.491 L +349.302 210.491 L +349.236 210.491 L +349.038 210.95 L +348.971 210.95 L +348.938 211.007 L +348.839 210.835 L +348.773 210.835 L +348.74 210.892 L +348.641 210.491 L +348.508 210.491 L +348.442 210.491 L +348.343 210.663 L +348.31 210.606 L +348.244 210.606 L +348.277 210.549 L +348.244 210.491 L +348.145 210.549 L +348.145 210.09 L +348.244 210.148 L +348.277 210.09 L +348.244 210.033 L +348.31 210.033 L +348.31 209.919 L +348.244 209.919 L +348.277 209.861 L +348.244 209.804 L +348.145 209.861 L +348.045 209.46 L +347.979 209.46 L +347.847 209.575 L +347.781 209.575 L +347.748 209.632 L +347.648 209.46 L +347.516 209.46 L +347.45 209.46 L +347.351 209.861 L +347.251 209.804 L +347.218 209.861 L +347.251 209.919 L +347.185 209.919 L +347.152 209.976 L +347.053 209.804 L +346.987 209.804 L +346.954 209.861 L +346.855 209.46 L +346.755 209.518 L +346.722 209.46 L +346.557 209.632 L +346.524 209.575 L +346.458 209.575 L +346.458 209.46 L +346.259 209.46 L +346.226 209.518 L +346.259 209.575 L +346.193 209.575 L +346.193 209.689 L +346.259 209.689 L +346.226 209.747 L +346.259 209.804 L +346.193 209.804 L +346.061 209.919 L +345.995 209.919 L +345.995 210.033 L +346.061 210.033 L +346.061 210.148 L +346.193 210.148 L +346.259 210.148 L +346.226 210.205 L +346.259 210.262 L +346.193 210.262 L +346.193 210.377 L +346.259 210.377 L +346.226 210.434 L +346.259 210.491 L +346.193 210.491 L +346.061 210.606 L +345.995 210.606 L +345.962 210.663 L +345.862 210.491 L +345.763 210.549 L +345.73 210.491 L +345.565 210.892 L +345.532 210.835 L +345.465 210.835 L +345.465 211.179 L +345.532 211.179 L +345.565 211.122 L +345.664 211.523 L +345.73 211.523 L +345.763 211.465 L +345.796 211.523 L +345.962 211.351 L +345.995 211.408 L +346.061 211.408 L +346.061 211.523 L +346.193 211.523 L +346.259 211.523 L +346.226 211.58 L +346.259 211.637 L +346.193 211.637 L +346.193 211.752 L +346.259 211.752 L +346.226 211.809 L +346.259 211.866 L +346.193 211.866 L +346.061 211.981 L +345.995 211.981 L +345.995 212.095 L +346.061 212.095 L +346.061 212.21 L +346.193 212.21 L +346.259 212.21 L +346.226 212.267 L +346.259 212.325 L +346.193 212.325 L +346.193 212.439 L +346.259 212.439 L +346.226 212.496 L +346.259 212.554 L +346.193 212.554 L +346.061 212.668 L +345.995 212.668 L +345.962 212.726 L +345.862 212.554 L +345.763 212.611 L +345.73 212.554 L +345.565 212.955 L +345.532 212.897 L +345.465 212.897 L +345.366 213.069 L +345.267 212.897 L +345.201 212.897 L +345.168 212.955 L +345.069 212.554 L +345.002 212.554 L +344.969 212.611 L +344.936 212.554 L +344.771 212.726 L +344.738 212.668 L +344.672 212.554 L +344.539 212.554 L +344.473 212.554 L +344.374 212.955 L +344.275 212.897 L +344.242 212.955 L +344.275 213.012 L +344.209 213.012 L +344.209 213.127 L +344.275 213.127 L +344.242 213.184 L +344.275 213.241 L +344.374 213.184 L +344.374 213.642 L +344.275 213.585 L +344.242 213.642 L +344.275 213.699 L +344.209 213.699 L +344.176 213.757 L +344.076 213.585 L +344.01 213.585 L +343.977 213.642 L +343.944 213.585 L +343.779 213.986 L +343.746 213.929 L +343.679 214.272 L +343.746 214.272 L +343.779 214.215 L +343.878 214.616 L +343.977 214.559 L +344.01 214.616 L +344.176 214.444 L +344.209 214.501 L +344.275 214.501 L +344.242 214.559 L +344.275 214.616 L +344.374 214.559 L +344.374 215.017 L +344.275 214.96 L +344.242 215.017 L +344.275 215.074 L +344.209 215.074 L +344.209 215.189 L +344.275 215.189 L +344.242 215.246 L +344.275 215.303 L +344.374 215.246 L +344.473 215.647 L +344.539 215.647 L +344.672 215.533 L +344.738 215.533 L +344.771 215.475 L +344.87 215.647 L +344.969 215.59 L +345.002 215.647 L +345.168 215.246 L +345.201 215.303 L +345.267 215.303 L +345.366 215.132 L +345.465 215.303 L +345.532 215.303 L +345.565 215.246 L +345.664 215.647 L +345.73 215.647 L +345.763 215.59 L +345.796 215.647 L +345.962 215.475 L +345.995 215.533 L +346.061 215.533 L +346.061 215.647 L +346.193 215.647 L +346.259 215.647 L +346.226 215.704 L +346.259 215.762 L +346.193 215.762 L +346.193 215.876 L +346.259 215.876 L +346.226 215.934 L +346.259 215.991 L +346.193 215.991 L +346.061 216.105 L +345.995 216.105 L +345.995 216.22 L +346.061 216.22 L +346.061 216.335 L +346.193 216.335 L +346.259 216.335 L +346.226 216.392 L +346.259 216.449 L +346.193 216.449 L +346.193 216.564 L +346.259 216.564 L +346.226 216.621 L +346.259 216.678 L +346.193 216.678 L +346.061 216.793 L +345.995 216.793 L +345.962 216.85 L +345.862 216.678 L +345.763 216.736 L +345.73 216.678 L +345.565 217.079 L +345.532 217.022 L +345.465 217.022 L +345.465 217.366 L +345.532 217.366 L +345.565 217.308 L +345.664 217.71 L +345.73 217.71 L +345.763 217.652 L +345.796 217.71 L +345.962 217.538 L +345.995 217.595 L +346.061 217.595 L +346.061 217.71 L +346.193 217.71 L +346.259 217.71 L +346.226 217.767 L +346.259 217.824 L +346.193 217.824 L +346.193 217.939 L +346.259 217.939 L +346.226 217.996 L +346.259 218.053 L +346.193 218.053 L +346.061 218.168 L +345.995 218.168 L +345.995 218.282 L +346.061 218.282 L +346.061 218.397 L +346.193 218.397 L +346.259 218.397 L +346.226 218.454 L +346.259 218.512 L +346.193 218.512 L +346.193 218.626 L +346.259 218.626 L +346.226 218.683 L +346.259 218.741 L +346.193 218.741 L +346.061 218.855 L +345.995 218.855 L +345.962 218.913 L +345.862 218.741 L +345.763 218.798 L +345.73 218.741 L +345.565 219.142 L +345.532 219.084 L +345.465 219.084 L +345.366 219.256 L +345.267 219.084 L +345.201 219.084 L +345.168 219.142 L +345.069 218.741 L +345.002 218.741 L +344.969 218.798 L +344.936 218.741 L +344.771 218.913 L +344.738 218.855 L +344.672 218.741 L +344.539 218.741 L +344.473 218.741 L +344.374 219.142 L +344.275 219.084 L +344.242 219.142 L +344.275 219.199 L +344.209 219.199 L +344.209 219.314 L +344.275 219.314 L +344.242 219.371 L +344.275 219.428 L +344.374 219.371 L +344.374 219.829 L +344.275 219.772 L +344.242 219.829 L +344.275 219.886 L +344.209 219.886 L +344.176 219.944 L +344.076 219.772 L +344.01 219.772 L +343.977 219.829 L +343.944 219.772 L +343.779 220.173 L +343.746 220.116 L +343.58 220.287 L +343.547 220.23 L +343.481 220.23 L +343.514 220.173 L +343.481 220.116 L +343.382 220.173 L +343.283 219.772 L +343.216 219.772 L +343.084 219.886 L +343.018 219.886 L +342.985 219.944 L +342.886 219.772 L +342.753 219.772 L +342.687 219.772 L +342.687 219.657 L +342.753 219.657 L +342.753 219.543 L +342.687 219.543 L +342.687 219.428 L +342.753 219.428 L +342.886 219.084 L +342.753 219.084 L +342.687 219.084 L +342.687 218.97 L +342.753 218.97 L +342.753 218.855 L +342.687 218.855 L +342.687 218.741 L +342.555 218.741 L +342.489 218.741 L +342.39 218.913 L +342.29 218.741 L +342.224 218.741 L +342.092 218.855 L +342.026 218.855 L +341.993 218.913 L +342.026 218.97 L +342.092 219.084 L +342.026 219.084 L +341.993 219.142 L +341.96 219.084 L +341.794 219.256 L +341.761 219.199 L +341.695 219.199 L +341.695 219.084 L +341.563 219.084 L +341.497 219.084 L +341.53 219.027 L +341.497 218.97 L +341.563 218.97 L +341.563 218.855 L +341.497 218.855 L +341.53 218.798 L +341.497 218.741 L +341.298 218.855 L +341.232 218.855 L +341.199 218.913 L +341.1 218.741 L +341 218.798 L +340.967 218.741 L +340.802 219.142 L +340.769 219.084 L +340.703 219.084 L +340.703 219.428 L +340.769 219.428 L +340.802 219.371 L +340.802 219.829 L +340.769 219.772 L +340.703 219.772 L +340.604 219.944 L +340.504 219.772 L +340.438 219.772 L +340.306 219.886 L +340.24 219.886 L +340.24 220.001 L +340.306 220.001 L +340.306 220.116 L +340.24 220.116 L +340.107 220.459 L +340.24 220.459 L +340.306 220.459 L +340.306 220.574 L +340.24 220.574 L +340.24 220.688 L +340.306 220.688 L +340.306 220.803 L +340.438 220.803 L +340.504 220.803 L +340.604 220.631 L +340.703 220.803 L +340.769 220.803 L +340.802 220.746 L +340.802 221.204 L +340.769 221.147 L +340.703 221.147 L +340.703 221.49 L +340.769 221.49 L +340.802 221.433 L +340.802 221.891 L +340.769 221.834 L +340.703 221.834 L +340.604 222.006 L +340.504 221.834 L +340.438 221.834 L +340.306 221.949 L +340.24 221.949 L +340.24 222.063 L +340.306 222.063 L +340.306 222.178 L +340.24 222.178 L +340.008 222.35 L +339.975 222.292 L +339.909 222.178 L +339.777 222.178 L +339.711 222.178 L +339.711 222.063 L +339.777 222.063 L +339.777 221.949 L +339.711 221.949 L +339.711 221.834 L +339.512 221.834 L +339.479 221.891 L +339.512 221.949 L +339.446 221.949 L +339.413 222.006 L +339.314 221.834 L +339.248 221.834 L +339.016 222.235 L +338.983 222.178 L +338.917 222.522 L +338.983 222.522 L +339.016 222.464 L +339.016 222.923 L +338.983 222.865 L +338.818 223.037 L +338.784 222.98 L +338.718 222.98 L +338.751 222.923 L +338.718 222.865 L +338.619 222.923 L +338.52 222.865 L +338.487 222.923 L +338.52 222.98 L +338.454 222.98 L +338.454 223.094 L +338.52 223.094 L +338.487 223.152 L +338.52 223.209 L +338.454 223.209 L +338.321 223.324 L +338.255 223.324 L +338.222 223.381 L +338.255 223.438 L +338.321 223.553 L +338.454 223.553 L +338.52 223.553 L +338.487 223.61 L +338.52 223.667 L +338.454 223.667 L +338.454 223.782 L +338.52 223.782 L +338.487 223.839 L +338.52 223.896 L +338.619 223.839 L +338.718 223.896 L +338.751 223.839 L +338.718 223.782 L +338.784 223.782 L +338.818 223.725 L +338.917 223.896 L +338.983 223.896 L +339.016 223.839 L +339.016 224.297 L +338.983 224.24 L +338.917 224.584 L +338.983 224.584 L +339.016 224.527 L +339.115 224.928 L +339.248 224.928 L +339.314 224.928 L +339.413 224.756 L +339.446 224.813 L +339.512 224.813 L +339.479 224.87 L +339.512 224.928 L +339.711 224.813 L +339.777 224.813 L +339.777 224.698 L +339.711 224.698 L +339.711 224.584 L +339.777 224.584 L +339.909 224.469 L +339.975 224.469 L +340.008 224.412 L +340.107 224.584 L +340.24 224.584 L +340.306 224.584 L +340.306 224.698 L +340.24 224.698 L +340.24 224.813 L +340.306 224.813 L +340.306 224.928 L +340.438 224.928 L +340.504 224.928 L +340.604 224.756 L +340.703 224.928 L +340.769 224.928 L +340.802 224.87 L +340.802 225.329 L +340.769 225.271 L +340.703 225.271 L +340.703 225.615 L +340.769 225.615 L +340.802 225.558 L +340.802 226.016 L +340.769 225.959 L +340.703 225.959 L +340.604 226.131 L +340.504 225.959 L +340.438 225.959 L +340.306 226.073 L +340.24 226.073 L +340.24 226.188 L +340.306 226.188 L +340.306 226.302 L +340.24 226.302 L +340.107 226.646 L +340.24 226.646 L +340.306 226.646 L +340.306 226.761 L +340.24 226.761 L +340.24 226.875 L +340.306 226.875 L +340.306 226.99 L +340.438 226.99 L +340.504 226.99 L +340.604 226.818 L +340.703 226.99 L +340.769 226.99 L +340.802 226.933 L +340.802 227.391 L +340.769 227.334 L +340.703 227.334 L +340.703 227.677 L +340.769 227.677 L +340.802 227.62 L +340.901 228.021 L +340.967 228.021 L +341 227.964 L +341.034 228.021 L +341.199 227.849 L +341.232 227.906 L +341.298 227.906 L +341.298 228.021 L +341.497 228.021 L +341.53 227.964 L +341.497 227.906 L +341.563 227.906 L +341.563 227.792 L +341.497 227.792 L +341.53 227.735 L +341.497 227.677 L +341.563 227.677 L +341.695 227.563 L +341.761 227.563 L +341.794 227.505 L +341.893 227.677 L +341.993 227.62 L +342.026 227.677 L +342.026 227.792 L +341.993 227.849 L +342.026 227.906 L +342.092 228.021 L +342.224 228.021 L +342.29 228.021 L +342.39 227.849 L +342.489 228.021 L +342.555 228.021 L +342.687 227.906 L +342.753 227.906 L +342.753 227.792 L +342.687 227.792 L +342.687 227.677 L +342.753 227.677 L +342.886 227.334 L +342.753 227.334 L +342.687 227.334 L +342.687 227.219 L +342.753 227.219 L +342.753 227.104 L +342.687 227.104 L +342.687 226.99 L +342.753 226.99 L +342.985 226.818 L +343.018 226.875 L +343.084 226.99 L +343.216 226.99 L +343.283 226.99 L +343.382 226.589 L +343.481 226.646 L +343.514 226.589 L +343.481 226.532 L +343.547 226.532 L +343.58 226.474 L +343.679 226.646 L +343.746 226.646 L +343.779 226.589 L +343.878 226.99 L +343.977 226.933 L +344.01 226.99 L +344.176 226.818 L +344.209 226.875 L +344.275 226.875 L +344.242 226.933 L +344.275 226.99 L +344.374 226.933 L +344.374 227.391 L +344.275 227.334 L +344.242 227.391 L +344.275 227.448 L +344.209 227.448 L +344.209 227.563 L +344.275 227.563 L +344.242 227.62 L +344.275 227.677 L +344.374 227.62 L +344.473 228.021 L +344.539 228.021 L +344.672 227.906 L +344.738 227.906 L +344.771 227.849 L +344.87 228.021 L +344.969 227.964 L +345.002 228.021 L +345.168 227.62 L +345.201 227.677 L +345.267 227.677 L +345.366 227.505 L +345.465 227.677 L +345.532 227.677 L +345.565 227.62 L +345.664 228.021 L +345.73 228.021 L +345.763 227.964 L +345.796 228.021 L +345.962 227.849 L +345.995 227.906 L +346.061 227.906 L +346.061 228.021 L +346.193 228.021 L +346.259 228.021 L +346.226 228.078 L +346.259 228.136 L +346.193 228.136 L +346.193 228.25 L +346.259 228.25 L +346.226 228.307 L +346.259 228.365 L +346.193 228.365 L +346.061 228.479 L +345.995 228.479 L +345.995 228.594 L +346.061 228.594 L +346.061 228.708 L +346.193 228.708 L +346.259 228.708 L +346.226 228.766 L +346.259 228.823 L +346.193 228.823 L +346.193 228.938 L +346.259 228.938 L +346.226 228.995 L +346.259 229.052 L +346.193 229.052 L +346.061 229.167 L +345.995 229.167 L +345.962 229.224 L +345.862 229.052 L +345.763 229.109 L +345.73 229.052 L +345.565 229.453 L +345.532 229.396 L +345.465 229.396 L +345.465 229.74 L +345.532 229.74 L +345.565 229.682 L +345.664 230.083 L +345.73 230.083 L +345.763 230.026 L +345.796 230.083 L +345.962 229.911 L +345.995 229.969 L +346.061 229.969 L +346.061 230.083 L +346.193 230.083 L +346.259 230.083 L +346.226 230.141 L +346.259 230.198 L +346.193 230.198 L +346.193 230.312 L +346.259 230.312 L +346.226 230.37 L +346.259 230.427 L +346.193 230.427 L +346.061 230.542 L +345.995 230.542 L +345.995 230.656 L +346.061 230.656 L +346.061 230.771 L +346.193 230.771 L +346.259 230.771 L +346.226 230.828 L +346.259 230.885 L +346.193 230.885 L +346.193 231 L +346.259 231 L +346.226 231.057 L +346.259 231.114 L +346.193 231.114 L +346.061 231.229 L +345.995 231.229 L +345.962 231.286 L +345.862 231.114 L +345.763 231.172 L +345.73 231.114 L +345.565 231.515 L +345.532 231.458 L +345.465 231.458 L +345.366 231.63 L +345.267 231.458 L +345.201 231.458 L +345.168 231.515 L +345.069 231.114 L +345.002 231.114 L +344.969 231.172 L +344.936 231.114 L +344.771 231.286 L +344.738 231.229 L +344.672 231.114 L +344.539 231.114 L +344.473 231.114 L +344.374 231.515 L +344.275 231.458 L +344.242 231.515 L +344.275 231.573 L +344.209 231.573 L +344.209 231.687 L +344.275 231.687 L +344.242 231.745 L +344.275 231.802 L +344.374 231.745 L +344.374 232.203 L +344.275 232.146 L +344.242 232.203 L +344.275 232.26 L +344.209 232.26 L +344.176 232.317 L +344.076 232.146 L +344.01 232.146 L +343.977 232.203 L +343.944 232.146 L +343.779 232.547 L +343.746 232.489 L +343.679 232.833 L +343.746 232.833 L +343.779 232.776 L +343.878 233.177 L +343.977 233.119 L +344.01 233.177 L +344.176 233.005 L +344.209 233.062 L +344.275 233.062 L +344.242 233.119 L +344.275 233.177 L +344.374 233.119 L +344.374 233.578 L +344.275 233.52 L +344.242 233.578 L +344.275 233.635 L +344.209 233.635 L +344.209 233.75 L +344.275 233.75 L +344.242 233.807 L +344.275 233.864 L +344.374 233.807 L +344.473 234.208 L +344.539 234.208 L +344.738 234.093 L +344.771 234.036 L +344.87 234.208 L +344.969 234.151 L +345.002 234.208 L +345.168 233.807 L +345.201 233.864 L +345.267 233.864 L +345.366 233.692 L +345.465 233.864 L +345.532 233.864 L +345.565 233.807 L +345.664 234.208 L +345.73 234.208 L +345.763 234.151 L +345.796 234.208 L +345.962 234.036 L +345.995 234.093 L +346.061 234.093 L +346.061 234.208 L +346.193 234.208 L +346.259 234.208 L +346.226 234.265 L +346.259 234.323 L +346.193 234.323 L +346.193 234.437 L +346.259 234.437 L +346.226 234.494 L +346.259 234.552 L +346.193 234.552 L +346.061 234.666 L +345.995 234.666 L +345.995 234.781 L +346.061 234.781 L +346.061 234.895 L +346.193 234.895 L +346.259 234.895 L +346.226 234.953 L +346.259 235.01 L +346.193 235.01 L +346.193 235.125 L +346.259 235.125 L +346.226 235.182 L +346.259 235.239 L +346.193 235.239 L +346.061 235.354 L +345.995 235.354 L +345.962 235.411 L +345.862 235.239 L +345.763 235.296 L +345.73 235.239 L +345.565 235.64 L +345.532 235.583 L +345.465 235.583 L +345.465 235.927 L +345.532 235.927 L +345.565 235.869 L +345.664 236.27 L +345.73 236.27 L +345.763 236.213 L +345.796 236.27 L +345.962 236.098 L +345.995 236.156 L +346.061 236.156 L +346.061 236.27 L +346.193 236.27 L +346.259 236.27 L +346.226 236.328 L +346.259 236.385 L +346.193 236.385 L +346.193 236.499 L +346.259 236.499 L +346.226 236.557 L +346.259 236.614 L +346.193 236.614 L +346.061 236.729 L +345.995 236.729 L +345.995 236.843 L +346.061 236.843 L +346.061 236.958 L +346.193 236.958 L +346.259 236.958 L +346.226 237.015 L +346.259 237.072 L +346.193 237.072 L +346.193 237.187 L +346.259 237.187 L +346.226 237.244 L +346.259 237.301 L +346.458 237.187 L +346.524 237.187 L +346.557 237.13 L +346.656 237.301 L +346.722 237.301 L +346.755 237.244 L +346.788 237.301 L +346.954 236.9 L +346.987 236.958 L +347.053 236.958 L +347.152 236.786 L +347.185 236.843 L +347.251 236.843 L +347.218 236.9 L +347.251 236.958 L +347.351 236.9 L +347.45 237.301 L +347.516 237.301 L +347.748 237.13 L +347.781 237.187 L +347.847 237.301 L +347.979 237.301 L +348.045 237.301 L +348.145 236.9 L +348.244 236.958 L +348.277 236.9 L +348.244 236.843 L +348.31 236.843 L +348.31 236.729 L +348.244 236.729 L +348.277 236.671 L +348.244 236.614 L +348.145 236.671 L +348.145 236.213 L +348.244 236.27 L +348.277 236.213 L +348.244 236.156 L +348.31 236.156 L +348.343 236.098 L +348.442 236.27 L +348.508 236.27 L +348.74 235.869 L +348.773 235.927 L +348.938 235.755 L +348.971 235.812 L +349.038 235.812 L +349.236 236.27 L +349.302 236.27 L +349.434 236.156 L +349.501 236.156 L +349.534 236.098 L +349.633 236.27 L +349.732 236.213 L +349.765 236.27 L +349.831 236.385 L +349.765 236.385 L +349.732 236.442 L +349.765 236.499 L +349.831 236.614 L +349.765 236.614 L +349.732 236.671 L +349.699 236.614 L +349.633 236.958 L +349.732 236.9 L +349.765 236.958 L +349.831 237.072 L +349.765 237.072 L +349.732 237.13 L +349.765 237.187 L +349.831 237.301 L +349.964 237.301 L +350.03 237.301 L +350.129 237.13 L +350.228 237.301 L +350.294 237.301 L +350.427 237.187 L +350.493 237.187 L +350.526 237.13 L +350.493 237.072 L +350.427 237.072 L +350.427 236.958 L +350.493 236.958 L +350.526 236.9 L +350.625 236.958 L +350.724 236.786 L +350.757 236.843 L +350.823 236.958 L +350.956 236.958 L +351.022 236.958 L +350.989 237.015 L +351.022 237.072 L +350.956 237.072 L +350.956 237.187 L +351.022 237.187 L +350.989 237.244 L +351.022 237.301 L +351.121 237.244 L +351.22 237.301 L +351.253 237.244 L +351.22 237.187 L +351.287 237.187 L +351.32 237.13 L +351.419 237.301 L +351.485 237.301 L +351.518 237.244 L +351.551 237.301 L +351.716 236.9 L +351.75 236.958 L +351.816 236.958 L +351.816 236.614 L +351.75 236.614 L +351.716 236.671 L +351.716 236.213 L +351.75 236.27 L +351.816 236.27 L +351.915 236.098 L +351.948 236.156 L +352.014 236.156 L +351.981 236.213 L +352.014 236.27 L +352.213 236.156 L +352.279 236.156 L +352.279 236.041 L +352.213 236.041 L +352.213 235.927 L +352.279 235.927 L +352.411 235.812 L +352.477 235.812 L +352.51 235.755 L +352.477 235.697 L +352.411 235.583 L +352.279 235.583 L +352.213 235.583 L +352.213 235.468 L +352.279 235.468 L +352.279 235.354 L +352.213 235.354 L +352.213 235.239 L +352.014 235.239 L +351.981 235.296 L +352.014 235.354 L +351.948 235.354 L +351.915 235.411 L +351.816 235.239 L +351.75 235.239 L +351.716 235.296 L +351.716 234.838 L +351.75 234.895 L +351.816 234.895 L +351.816 234.552 L +351.75 234.552 L +351.716 234.609 L +351.716 234.151 L +351.75 234.208 L +351.816 234.208 L +351.915 234.036 L +351.948 234.093 L +352.014 234.093 L +351.981 234.151 L +352.014 234.208 L +352.213 234.093 L +352.279 234.093 L +352.279 233.979 L +352.213 233.979 L +352.213 233.864 L +352.279 233.864 L +352.411 233.75 L +352.477 233.75 L +352.51 233.692 L +352.609 233.864 L +352.742 233.864 L +352.808 233.864 L +352.808 233.979 L +352.742 233.979 L +352.742 234.093 L +352.808 234.093 L +352.808 234.208 L +352.94 234.208 L +353.006 234.208 L +353.106 234.036 L +353.205 234.208 L +353.271 234.208 L +353.469 234.093 L +353.503 234.036 L +353.469 233.979 L +353.403 233.864 L +353.469 233.864 L +353.503 233.807 L +353.536 233.864 L +353.602 233.52 L +353.503 233.578 L +353.469 233.52 L +353.403 233.406 L +353.469 233.406 L +353.503 233.349 L +353.469 233.291 L +353.403 233.177 L +353.469 233.177 L +353.503 233.119 L +353.536 233.177 L +353.701 233.005 L +353.734 233.062 L +353.8 233.062 L +353.8 233.177 L +353.999 233.177 L +354.032 233.119 L +353.999 233.062 L +354.065 233.062 L +354.065 232.948 L +353.999 232.948 L +354.032 232.89 L +353.999 232.833 L +354.065 232.833 L +354.197 232.718 L +354.263 232.718 L +354.296 232.661 L +354.396 232.833 L +354.495 232.776 L +354.528 232.833 L +354.594 232.948 L +354.528 232.948 L +354.495 233.005 L +354.528 233.062 L +354.594 233.177 L +354.726 233.177 L +354.792 233.177 L +354.892 233.005 L +354.991 233.177 L +355.057 233.177 L +355.09 233.119 L +355.09 233.578 L +355.057 233.52 L +354.991 233.52 L +354.991 233.864 L +355.057 233.864 L +355.09 233.807 L +355.189 234.208 L +355.255 234.208 L +355.487 234.036 L +355.52 234.093 L +355.586 234.208 L +355.718 234.208 L +355.785 234.208 L +355.884 233.807 L +355.983 233.864 L +356.016 233.807 L +355.983 233.75 L +356.049 233.75 L +356.082 233.692 L +356.182 233.864 L +356.248 233.864 L +356.281 233.807 L +356.38 234.208 L +356.479 234.151 L +356.512 234.208 L +356.678 234.036 L +356.711 234.093 L +356.777 234.093 L +356.744 234.151 L +356.777 234.208 L +356.876 234.151 L +356.876 234.609 L +356.777 234.552 L +356.744 234.609 L +356.777 234.666 L +356.711 234.666 L +356.711 234.781 L +356.777 234.781 L +356.744 234.838 L +356.777 234.895 L +356.876 234.838 L +356.876 235.296 L +356.777 235.239 L +356.744 235.296 L +356.777 235.354 L +356.711 235.354 L +356.678 235.411 L +356.578 235.239 L +356.512 235.239 L +356.479 235.296 L +356.446 235.239 L +356.281 235.64 L +356.248 235.583 L +356.182 235.927 L +356.248 235.927 L +356.281 235.869 L +356.38 236.27 L +356.479 236.213 L +356.512 236.27 L +356.678 236.098 L +356.711 236.156 L +356.777 236.156 L +356.744 236.213 L +356.777 236.27 L +356.876 236.213 L +356.876 236.671 L +356.777 236.614 L +356.744 236.671 L +356.777 236.729 L +356.711 236.729 L +356.711 236.843 L +356.777 236.843 L +356.744 236.9 L +356.777 236.958 L +356.876 236.9 L +356.975 237.301 L +357.041 237.301 L +357.174 237.187 L +357.24 237.187 L +357.273 237.13 L +357.372 237.301 L +357.471 237.244 L +357.504 237.301 L +357.67 236.9 L +357.703 236.958 L +357.769 236.958 L +357.868 236.786 L +357.968 236.958 L +358.034 236.958 L +358.067 236.9 L +358.166 237.301 L +358.232 237.301 L +358.265 237.244 L +358.298 237.301 L +358.464 237.13 L +358.497 237.187 L +358.563 237.187 L +358.563 237.301 L +358.695 237.301 L +358.761 237.301 L +358.96 236.843 L +359.026 236.843 L +359.026 236.729 L +358.96 236.729 L +358.96 236.156 L +359.026 236.156 L +359.059 236.098 L +359.158 236.27 L +359.224 236.27 L +359.257 236.213 L +359.29 236.27 L +359.456 235.869 L +359.489 235.927 L +359.555 235.927 L +359.654 235.755 L +359.687 235.812 L +359.754 235.812 L +359.72 235.869 L +359.754 235.927 L +359.853 235.869 L +359.952 236.27 L +360.018 236.27 L +360.25 236.098 L +360.283 236.156 L +360.349 236.27 L +360.481 236.27 L +360.547 236.27 L +360.547 236.385 L +360.481 236.385 L +360.481 236.499 L +360.547 236.499 L +360.547 236.614 L +360.481 236.614 L +360.349 236.729 L +360.283 236.729 L +360.25 236.786 L +360.283 236.843 L +360.349 236.958 L +360.481 236.958 L +360.547 236.958 L +360.547 237.072 L +360.481 237.072 L +360.481 237.187 L +360.547 237.187 L +360.547 237.301 L +360.746 237.301 L +360.779 237.244 L +360.746 237.187 L +360.812 237.187 L +360.845 237.13 L +360.944 237.301 L +361.01 237.301 L +361.242 236.9 L +361.275 236.958 L +361.44 236.786 L +361.473 236.843 L +361.54 236.843 L +361.738 237.301 L +361.804 237.301 L +361.936 237.187 L +362.003 237.187 L +362.036 237.13 L +362.135 237.301 L +362.234 237.244 L +362.267 237.301 L +362.333 237.416 L +362.267 237.416 L +362.234 237.473 L +362.267 237.531 L +362.333 237.645 L +362.267 237.645 L +362.234 237.702 L +362.201 237.645 L +362.135 237.989 L +362.234 237.932 L +362.267 237.989 L +362.267 238.103 L +362.234 238.161 L +362.267 238.218 L +362.333 238.333 L +362.267 238.333 L +362.234 238.39 L +362.201 238.333 L +362.036 238.504 L +362.003 238.447 L +361.936 238.447 L +361.936 238.333 L +361.804 238.333 L +361.738 238.333 L +361.54 238.791 L +361.473 238.791 L +361.473 238.905 L +361.54 238.905 L +361.738 239.364 L +361.804 239.364 L +361.936 239.249 L +362.003 239.249 L +362.036 239.192 L +362.135 239.364 L +362.234 239.306 L +362.267 239.364 L +362.333 239.478 L +362.267 239.478 L +362.234 239.536 L +362.267 239.593 L +362.333 239.707 L +362.267 239.707 L +362.234 239.765 L +362.201 239.707 L +362.135 240.051 L +362.234 239.994 L +362.267 240.051 L +362.333 240.166 L +362.267 240.166 L +362.234 240.223 L +362.267 240.28 L +362.333 240.395 L +362.267 240.395 L +362.234 240.452 L +362.201 240.395 L +362.036 240.567 L +362.003 240.509 L +361.936 240.509 L +361.936 240.395 L +361.804 240.395 L +361.738 240.395 L +361.54 240.853 L +361.473 240.853 L +361.44 240.91 L +361.341 240.739 L +361.275 240.739 L +361.242 240.796 L +361.143 240.395 L +361.01 240.395 L +360.944 240.395 L +360.845 240.567 L +360.812 240.509 L +360.746 240.509 L +360.779 240.452 L +360.746 240.395 L +360.547 240.509 L +360.481 240.509 L +360.481 240.624 L +360.547 240.624 L +360.547 240.739 L +360.481 240.739 L +360.283 240.853 L +360.25 240.91 L +360.283 240.968 L +360.349 241.082 L +360.481 241.082 L +360.547 241.082 L +360.547 241.197 L +360.481 241.197 L +360.481 241.311 L +360.547 241.311 L +360.547 241.426 L +360.481 241.426 L +360.349 241.541 L +360.283 241.541 L +360.25 241.598 L +360.15 241.426 L +360.018 241.426 L +359.952 241.426 L +359.853 241.827 L +359.754 241.77 L +359.72 241.827 L +359.754 241.884 L +359.687 241.884 L +359.687 241.999 L +359.754 241.999 L +359.72 242.056 L +359.754 242.113 L +359.853 242.056 L +359.952 242.457 L +360.018 242.457 L +360.25 242.285 L +360.283 242.343 L +360.349 242.457 L +360.481 242.457 L +360.547 242.457 L +360.547 242.572 L +360.481 242.572 L +360.481 242.686 L +360.547 242.686 L +360.547 242.801 L +360.481 242.801 L +360.349 242.915 L +360.283 242.915 L +360.25 242.973 L +360.283 243.03 L +360.349 243.145 L +360.481 243.145 L +360.547 243.145 L +360.547 243.259 L +360.481 243.259 L +360.481 243.374 L +360.547 243.374 L +360.547 243.488 L +360.746 243.488 L +360.779 243.431 L +360.746 243.374 L +360.812 243.374 L +360.845 243.316 L +360.944 243.488 L +361.01 243.488 L +361.242 243.087 L +361.275 243.145 L +361.44 242.973 L +361.473 243.03 L +361.54 243.03 L +361.738 243.488 L +361.804 243.488 L +361.936 243.374 L +362.003 243.374 L +362.036 243.316 L +362.135 243.488 L +362.234 243.431 L +362.267 243.488 L +362.333 243.603 L +362.267 243.603 L +362.234 243.66 L +362.267 243.717 L +362.333 243.832 L +362.267 243.832 L +362.234 243.889 L +362.201 243.832 L +362.135 244.176 L +362.234 244.118 L +362.267 244.176 L +362.333 244.29 L +362.267 244.29 L +362.234 244.348 L +362.267 244.405 L +362.333 244.519 L +362.267 244.519 L +362.234 244.577 L +362.201 244.519 L +362.036 244.691 L +362.003 244.634 L +361.936 244.634 L +361.936 244.519 L +361.804 244.519 L +361.738 244.519 L +361.54 244.978 L +361.473 244.978 L +361.473 245.092 L +361.54 245.092 L +361.738 245.551 L +361.804 245.551 L +361.936 245.436 L +362.003 245.436 L +362.036 245.379 L +362.135 245.551 L +362.234 245.493 L +362.267 245.551 L +362.333 245.665 L +362.267 245.665 L +362.234 245.722 L +362.267 245.78 L +362.333 245.894 L +362.267 245.894 L +362.234 245.952 L +362.201 245.894 L +362.135 246.238 L +362.234 246.181 L +362.267 246.238 L +362.267 246.353 L +362.234 246.41 L +362.267 246.467 L +362.333 246.582 L +362.267 246.582 L +362.234 246.639 L +362.201 246.582 L +362.036 246.754 L +362.003 246.696 L +361.936 246.696 L +361.936 246.582 L +361.804 246.582 L +361.738 246.582 L +361.54 247.04 L +361.473 247.04 L +361.44 247.097 L +361.341 246.925 L +361.275 246.925 L +361.242 246.983 L +361.143 246.582 L +361.01 246.582 L +360.944 246.582 L +360.845 246.754 L +360.812 246.696 L +360.746 246.696 L +360.779 246.639 L +360.746 246.582 L +360.547 246.696 L +360.481 246.696 L +360.481 246.811 L +360.547 246.811 L +360.547 246.925 L +360.481 246.925 L +360.349 247.04 L +360.283 247.04 L +360.25 247.097 L +360.283 247.155 L +360.415 247.269 L +360.481 247.269 L +360.547 247.269 L +360.547 247.384 L +360.481 247.384 L +360.481 247.498 L +360.547 247.498 L +360.547 247.613 L +360.481 247.613 L +360.349 247.727 L +360.283 247.727 L +360.25 247.785 L +360.15 247.613 L +360.018 247.613 L +359.952 247.613 L +359.853 248.014 L +359.754 247.957 L +359.72 248.014 L +359.754 248.071 L +359.687 248.071 L +359.654 248.128 L +359.555 247.957 L +359.489 247.957 L +359.456 248.014 L +359.357 247.613 L +359.257 247.67 L +359.224 247.613 L +359.059 247.785 L +359.026 247.727 L +358.96 247.727 L +358.96 247.155 L +359.026 247.155 L +359.026 247.04 L +358.96 247.04 L +358.761 246.582 L +358.695 246.582 L +358.563 246.696 L +358.497 246.696 L +358.464 246.754 L +358.364 246.582 L +358.265 246.639 L +358.232 246.582 L +358.067 246.983 L +358.034 246.925 L +357.968 246.925 L +357.868 247.097 L +357.769 246.925 L +357.703 246.925 L +357.67 246.983 L +357.571 246.582 L +357.504 246.582 L +357.471 246.639 L +357.438 246.582 L +357.273 246.754 L +357.24 246.696 L +357.174 246.582 L +357.041 246.582 L +356.975 246.582 L +356.876 246.983 L +356.777 246.925 L +356.744 246.983 L +356.777 247.04 L +356.711 247.04 L +356.711 247.155 L +356.777 247.155 L +356.744 247.212 L +356.777 247.269 L +356.876 247.212 L +356.876 247.67 L +356.777 247.613 L +356.744 247.67 L +356.777 247.727 L +356.711 247.727 L +356.678 247.785 L +356.578 247.613 L +356.512 247.613 L +356.479 247.67 L +356.446 247.613 L +356.281 248.014 L +356.248 247.957 L +356.182 248.3 L +356.248 248.3 L +356.281 248.243 L +356.38 248.644 L +356.479 248.587 L +356.512 248.644 L +356.678 248.472 L +356.711 248.529 L +356.777 248.529 L +356.744 248.587 L +356.777 248.644 L +356.876 248.587 L +356.876 249.045 L +356.777 248.988 L +356.744 249.045 L +356.777 249.102 L +356.711 249.102 L +356.711 249.217 L +356.777 249.217 L +356.744 249.274 L +356.777 249.331 L +356.876 249.274 L +356.876 249.733 L +356.777 249.675 L +356.744 249.733 L +356.777 249.79 L +356.711 249.79 L +356.678 249.847 L +356.578 249.675 L +356.512 249.675 L +356.479 249.733 L +356.446 249.675 L +356.281 250.076 L +356.248 250.019 L +356.082 250.191 L +356.049 250.134 L +355.983 250.134 L +356.016 250.076 L +355.983 250.019 L +355.884 250.076 L +355.785 249.675 L +355.718 249.675 L +355.586 249.79 L +355.52 249.79 L +355.487 249.847 L +355.388 249.675 L +355.255 249.675 L +355.189 249.675 L +355.09 250.076 L +355.057 250.019 L +354.991 250.019 L +354.991 250.363 L +355.057 250.363 L +355.09 250.305 L +355.09 250.764 L +355.057 250.706 L +354.991 250.706 L +354.892 250.878 L +354.792 250.706 L +354.726 250.706 L +354.594 250.821 L +354.528 250.821 L +354.495 250.878 L +354.528 250.936 L +354.594 251.05 L +354.528 251.05 L +354.495 251.107 L +354.462 251.05 L +354.396 251.394 L +354.495 251.337 L +354.528 251.394 L +354.594 251.508 L +354.528 251.508 L +354.495 251.566 L +354.528 251.623 L +354.594 251.738 L +354.726 251.738 L +354.792 251.738 L +354.892 251.566 L +354.991 251.738 L +355.057 251.738 L +355.09 251.68 L +355.09 252.139 L +355.057 252.081 L +354.991 252.081 L +354.991 252.425 L +355.057 252.425 L +355.09 252.368 L +355.189 252.769 L +355.255 252.769 L +355.487 252.597 L +355.52 252.654 L +355.586 252.654 L +355.586 252.769 L +355.718 252.769 L +355.785 252.769 L +355.884 252.368 L +355.983 252.425 L +356.016 252.368 L +355.983 252.31 L +356.049 252.31 L +356.082 252.253 L +356.182 252.425 L +356.248 252.425 L +356.281 252.368 L +356.38 252.769 L +356.479 252.711 L +356.512 252.769 L +356.678 252.597 L +356.711 252.654 L +356.777 252.654 L +356.744 252.711 L +356.777 252.769 L +356.876 252.711 L +356.876 253.17 L +356.777 253.112 L +356.744 253.17 L +356.777 253.227 L +356.711 253.227 L +356.711 253.342 L +356.777 253.342 L +356.744 253.399 L +356.777 253.456 L +356.876 253.399 L +356.876 253.857 L +356.777 253.8 L +356.744 253.857 L +356.777 253.914 L +356.711 253.914 L +356.678 253.972 L +356.578 253.8 L +356.512 253.8 L +356.479 253.857 L +356.446 253.8 L +356.281 254.201 L +356.248 254.144 L +356.182 254.487 L +356.248 254.487 L +356.281 254.43 L +356.38 254.831 L +356.479 254.774 L +356.512 254.831 L +356.678 254.659 L +356.711 254.716 L +356.777 254.716 L +356.744 254.774 L +356.777 254.831 L +356.876 254.774 L +356.876 255.232 L +356.777 255.175 L +356.744 255.232 L +356.777 255.289 L +356.711 255.289 L +356.711 255.404 L +356.777 255.404 L +356.744 255.461 L +356.777 255.518 L +356.876 255.461 L +356.975 255.862 L +357.041 255.862 L +357.24 255.748 L +357.273 255.69 L +357.372 255.862 L +357.471 255.805 L +357.504 255.862 L +357.67 255.461 L +357.703 255.518 L +357.769 255.518 L +357.868 255.347 L +357.968 255.518 L +358.034 255.518 L +358.067 255.461 L +358.166 255.862 L +358.232 255.862 L +358.265 255.805 L +358.298 255.862 L +358.464 255.69 L +358.497 255.748 L +358.563 255.748 L +358.563 255.862 L +358.695 255.862 L +358.761 255.862 L +358.96 255.404 L +359.026 255.404 L +359.026 255.289 L +358.96 255.289 L +358.96 254.716 L +359.026 254.716 L +359.059 254.659 L +359.158 254.831 L +359.224 254.831 L +359.257 254.774 L +359.29 254.831 L +359.456 254.43 L +359.489 254.487 L +359.555 254.487 L +359.654 254.315 L +359.687 254.373 L +359.754 254.373 L +359.72 254.43 L +359.754 254.487 L +359.853 254.43 L +359.952 254.831 L +360.018 254.831 L +360.25 254.659 L +360.283 254.716 L +360.349 254.716 L +360.349 254.831 L +360.481 254.831 L +360.547 254.831 L +360.547 254.946 L +360.481 254.946 L +360.481 255.06 L +360.547 255.06 L +360.547 255.175 L +360.481 255.175 L +360.349 255.289 L +360.283 255.289 L +360.25 255.347 L +360.283 255.404 L +360.349 255.518 L +360.481 255.518 L +360.547 255.518 L +360.547 255.633 L +360.481 255.633 L +360.481 255.748 L +360.547 255.748 L +360.547 255.862 L +360.746 255.862 L +360.779 255.805 L +360.746 255.748 L +360.812 255.748 L +360.845 255.69 L +360.944 255.862 L +361.01 255.862 L +361.242 255.461 L +361.275 255.518 L +361.44 255.347 L +361.473 255.404 L +361.54 255.404 L +361.738 255.862 L +361.804 255.862 L +361.936 255.748 L +362.003 255.748 L +362.036 255.69 L +362.135 255.862 L +362.234 255.805 L +362.267 255.862 L +362.333 255.977 L +362.267 255.977 L +362.234 256.034 L +362.267 256.091 L +362.333 256.206 L +362.267 256.206 L +362.234 256.263 L +362.201 256.206 L +362.135 256.55 L +362.234 256.492 L +362.267 256.55 L +362.333 256.664 L +362.267 256.664 L +362.234 256.721 L +362.267 256.779 L +362.333 256.893 L +362.267 256.893 L +362.234 256.951 L +362.201 256.893 L +362.036 257.065 L +362.003 257.008 L +361.936 257.008 L +361.936 256.893 L +361.804 256.893 L +361.738 256.893 L +361.54 257.352 L +361.473 257.352 L +361.473 257.466 L +361.54 257.466 L +361.738 257.924 L +361.804 257.924 L +361.936 257.81 L +362.003 257.81 L +362.036 257.753 L +362.135 257.924 L +362.234 257.867 L +362.267 257.924 L +362.333 258.039 L +362.267 258.039 L +362.234 258.096 L +362.267 258.154 L +362.333 258.268 L +362.267 258.268 L +362.234 258.325 L +362.201 258.268 L +362.135 258.612 L +362.234 258.555 L +362.267 258.612 L +362.333 258.726 L +362.267 258.726 L +362.234 258.784 L +362.267 258.841 L +362.333 258.956 L +362.267 258.956 L +362.234 259.013 L +362.201 258.956 L +362.036 259.127 L +362.003 259.07 L +361.936 259.07 L +361.936 258.956 L +361.804 258.956 L +361.738 258.956 L +361.54 259.414 L +361.473 259.414 L +361.44 259.471 L +361.341 259.299 L +361.275 259.299 L +361.242 259.357 L +361.143 258.956 L +361.01 258.956 L +360.944 258.956 L +360.845 259.127 L +360.812 259.07 L +360.746 259.07 L +360.779 259.013 L +360.746 258.956 L +360.547 259.07 L +360.481 259.07 L +360.481 259.185 L +360.547 259.185 L +360.547 259.299 L +360.481 259.299 L +360.349 259.414 L +360.283 259.414 L +360.25 259.471 L +360.283 259.528 L +360.349 259.643 L +360.481 259.643 L +360.547 259.643 L +360.547 259.758 L +360.481 259.758 L +360.481 259.872 L +360.547 259.872 L +360.547 259.987 L +360.481 259.987 L +360.415 259.987 L +360.283 260.101 L +360.25 260.159 L +360.15 259.987 L +360.018 259.987 L +359.952 259.987 L +359.853 260.388 L +359.754 260.33 L +359.72 260.388 L +359.754 260.445 L +359.687 260.445 L +359.687 260.56 L +359.754 260.56 L +359.72 260.617 L +359.754 260.674 L +359.853 260.617 L +359.952 261.018 L +360.018 261.018 L +360.25 260.846 L +360.283 260.903 L +360.349 260.903 L +360.349 261.018 L +360.481 261.018 L +360.547 261.018 L +360.547 261.132 L +360.481 261.132 L +360.481 261.247 L +360.547 261.247 L +360.547 261.362 L +360.481 261.362 L +360.349 261.476 L +360.283 261.476 L +360.25 261.533 L +360.283 261.591 L +360.349 261.705 L +360.481 261.705 L +360.547 261.705 L +360.547 261.82 L +360.481 261.82 L +360.481 261.934 L +360.547 261.934 L +360.547 262.049 L +360.746 262.049 L +360.779 261.992 L +360.746 261.934 L +360.812 261.934 L +360.845 261.877 L +360.944 262.049 L +361.01 262.049 L +361.242 261.648 L +361.275 261.705 L +361.44 261.533 L +361.473 261.591 L +361.54 261.591 L +361.738 262.049 L +361.804 262.049 L +361.936 261.934 L +362.003 261.934 L +362.036 261.877 L +362.135 262.049 L +362.234 261.992 L +362.267 262.049 L +362.333 262.164 L +362.267 262.164 L +362.234 262.221 L +362.267 262.278 L +362.333 262.393 L +362.267 262.393 L +362.234 262.45 L +362.201 262.393 L +362.135 262.736 L +362.234 262.679 L +362.267 262.736 L +362.267 262.851 L +362.234 262.908 L +362.267 262.966 L +362.333 263.08 L +362.267 263.08 L +362.234 263.137 L +362.201 263.08 L +362.036 263.252 L +362.003 263.195 L +361.936 263.195 L +361.936 263.08 L +361.804 263.08 L +361.738 263.08 L +361.54 263.538 L +361.473 263.538 L +361.473 263.653 L +361.54 263.653 L +361.738 264.111 L +361.804 264.111 L +361.936 263.997 L +362.003 263.997 L +362.036 263.939 L +362.135 264.111 L +362.234 264.054 L +362.267 264.111 L +362.333 264.226 L +362.267 264.226 L +362.234 264.283 L +362.267 264.34 L +362.333 264.455 L +362.267 264.455 L +362.234 264.512 L +362.201 264.455 L +362.135 264.799 L +362.234 264.741 L +362.267 264.799 L +362.333 264.913 L +362.267 264.913 L +362.234 264.971 L +362.267 265.028 L +362.333 265.143 L +362.466 265.143 L +362.532 265.143 L +362.631 264.971 L +362.73 265.143 L +362.796 265.143 L +362.929 265.028 L +362.995 265.028 L +363.028 264.971 L +362.995 264.913 L +362.929 264.913 L +362.929 264.799 L +362.995 264.799 L +363.028 264.741 L +363.061 264.799 L +363.226 264.627 L +363.259 264.684 L +363.326 264.799 L +363.458 264.799 L +363.524 264.799 L +363.491 264.856 L +363.524 264.913 L +363.458 264.913 L +363.458 265.028 L +363.524 265.028 L +363.491 265.085 L +363.524 265.143 L +363.623 265.085 L +363.722 265.143 L +363.756 265.085 L +363.722 265.028 L +363.789 265.028 L +363.822 264.971 L +363.921 265.143 L +363.987 265.143 L +364.02 265.085 L +364.053 265.143 L +364.219 264.741 L +364.252 264.799 L +364.318 264.455 L +364.252 264.455 L +364.219 264.512 L +364.219 264.054 L +364.252 264.111 L +364.417 263.939 L +364.45 263.997 L +364.516 263.997 L +364.483 264.054 L +364.516 264.111 L +364.715 263.997 L +364.781 263.997 L +364.781 263.882 L +364.715 263.882 L +364.715 263.768 L +364.781 263.768 L +364.913 263.653 L +364.979 263.653 L +365.012 263.596 L +365.112 263.768 L +365.244 263.768 L +365.31 263.768 L +365.31 263.882 L +365.244 263.882 L +365.244 263.997 L +365.31 263.997 L +365.31 264.111 L +365.442 264.111 L +365.508 264.111 L +365.608 263.939 L +365.707 264.111 L +365.773 264.111 L +365.806 264.054 L +365.806 264.512 L +365.773 264.455 L +365.707 264.455 L +365.707 264.799 L +365.773 264.799 L +365.806 264.741 L +365.905 265.143 L +365.971 265.143 L +366.005 265.085 L +366.038 265.143 L +366.203 264.971 L +366.236 265.028 L +366.302 265.028 L +366.302 265.143 L +366.435 265.143 L +366.501 265.143 L +366.699 264.684 L +366.765 264.684 L +366.798 264.627 L +366.898 264.799 L +366.997 264.741 L +367.03 264.799 L +367.096 264.913 L +367.03 264.913 L +366.997 264.971 L +367.03 265.028 L +367.096 265.143 L +367.228 265.143 L +367.294 265.143 L +367.394 264.971 L +367.493 265.143 L +367.559 265.143 L +367.691 265.028 L +367.758 265.028 L +367.758 264.913 L +367.691 264.913 L +367.691 264.799 L +367.758 264.799 L +367.758 264.455 L +367.691 264.455 L +367.691 264.34 L +367.758 264.34 L +367.758 264.226 L +367.691 264.226 L +367.691 264.111 L +367.758 264.111 L +367.989 263.939 L +368.022 263.997 L +368.088 264.111 L +368.221 264.111 L +368.287 264.111 L +368.386 263.71 L +368.485 263.768 L +368.518 263.71 L +368.485 263.653 L +368.551 263.653 L +368.551 263.538 L +368.485 263.538 L +368.518 263.481 L +368.485 263.424 L +368.386 263.481 L +368.287 263.08 L +368.221 263.08 L +368.088 263.195 L +368.022 263.195 L +367.989 263.252 L +367.89 263.08 L +367.758 263.08 L +367.691 263.08 L +367.691 262.966 L +367.758 262.966 L +367.758 262.851 L +367.691 262.851 L +367.691 262.736 L +367.758 262.736 L +367.89 262.393 L +367.758 262.393 L +367.691 262.393 L +367.691 262.278 L +367.758 262.278 L +367.758 262.164 L +367.691 262.164 L +367.691 262.049 L +367.758 262.049 L +367.989 261.877 L +368.022 261.934 L +368.088 262.049 L +368.221 262.049 L +368.287 262.049 L +368.386 261.648 L +368.485 261.705 L +368.518 261.648 L +368.485 261.591 L +368.551 261.591 L +368.584 261.533 L +368.684 261.705 L +368.75 261.705 L +368.783 261.648 L +368.882 262.049 L +368.981 261.992 L +369.014 262.049 L +369.18 261.877 L +369.213 261.934 L +369.279 261.934 L +369.246 261.992 L +369.279 262.049 L +369.378 261.992 L +369.477 262.049 L +369.51 261.992 L +369.477 261.934 L +369.544 261.934 L +369.544 261.82 L +369.477 261.82 L +369.51 261.763 L +369.477 261.705 L +369.544 261.705 L +369.676 261.591 L +369.742 261.591 L +369.775 261.533 L +369.742 261.476 L +369.676 261.362 L +369.544 261.362 L +369.477 261.362 L +369.51 261.304 L +369.477 261.247 L +369.544 261.247 L +369.544 261.132 L +369.477 261.132 L +369.51 261.075 L +369.477 261.018 L +369.544 261.018 L +369.676 260.903 L +369.742 260.903 L +369.775 260.846 L +369.874 261.018 L +369.973 260.961 L +370.007 261.018 L +370.172 260.617 L +370.205 260.674 L +370.271 260.674 L +370.37 260.502 L +370.47 260.674 L +370.536 260.674 L +370.569 260.617 L +370.668 261.018 L +370.734 261.018 L +370.767 260.961 L +370.8 261.018 L +370.966 260.846 L +370.999 260.903 L +371.065 260.903 L +371.065 261.018 L +371.197 261.018 L +371.263 261.018 L +371.23 261.075 L +371.263 261.132 L +371.197 261.132 L +371.197 261.247 L +371.263 261.247 L +371.23 261.304 L +371.263 261.362 L +371.197 261.362 L +371.065 261.476 L +370.999 261.476 L +370.999 261.591 L +371.065 261.591 L +371.065 261.705 L +371.197 261.705 L +371.263 261.705 L +371.23 261.763 L +371.263 261.82 L +371.197 261.82 L +371.197 261.934 L +371.263 261.934 L +371.23 261.992 L +371.263 262.049 L +371.462 261.934 L +371.528 261.934 L +371.561 261.877 L +371.66 262.049 L +371.726 262.049 L +371.759 261.992 L +371.793 262.049 L +371.958 261.648 L +371.991 261.705 L +372.057 261.705 L +372.156 261.533 L +372.189 261.591 L +372.256 261.591 L +372.223 261.648 L +372.256 261.705 L +372.355 261.648 L +372.454 262.049 L +372.52 262.049 L +372.652 261.934 L +372.719 261.934 L +372.752 261.877 L +372.851 262.049 L +372.983 262.049 L +373.049 262.049 L +373.049 262.164 L +372.983 262.164 L +372.983 262.278 L +373.049 262.278 L +373.049 262.393 L +372.983 262.393 L +372.851 262.736 L +372.983 262.736 L +373.049 262.736 L +373.049 262.851 L +372.983 262.851 L +372.983 262.966 L +373.049 262.966 L +373.049 263.08 L +372.983 263.08 L +372.752 263.252 L +372.719 263.195 L +372.652 263.195 L +372.652 263.08 L +372.52 263.08 L +372.454 263.08 L +372.355 263.481 L +372.256 263.424 L +372.223 263.481 L +372.256 263.538 L +372.189 263.538 L +372.189 263.653 L +372.256 263.653 L +372.223 263.71 L +372.256 263.768 L +372.355 263.71 L +372.454 264.111 L +372.52 264.111 L +372.719 263.997 L +372.752 263.939 L +372.851 264.111 L +372.983 264.111 L +373.049 264.111 L +373.049 264.226 L +372.983 264.226 L +372.983 264.34 L +373.049 264.34 L +373.049 264.455 L +372.983 264.455 L +372.851 264.799 L +372.983 264.799 L +373.049 264.799 L +373.049 264.913 L +372.983 264.913 L +372.983 265.028 L +373.049 265.028 L +373.049 265.143 L +373.248 265.143 L +373.281 265.085 L +373.248 265.028 L +373.314 265.028 L +373.347 264.971 L +373.446 265.143 L +373.512 265.143 L +373.744 264.741 L +373.777 264.799 L +373.942 264.627 L +373.975 264.684 L +374.042 264.684 L +374.24 265.143 L +374.306 265.143 L +374.439 265.028 L +374.505 265.028 L +374.538 264.971 L +374.637 265.143 L +374.736 265.085 L +374.769 265.143 L +374.935 264.741 L +374.968 264.799 L +375.034 264.799 L +375.034 264.455 L +374.968 264.455 L +374.935 264.512 L +374.935 264.054 L +374.968 264.111 L +375.034 264.111 L +375.133 263.939 L +375.232 264.111 L +375.298 264.111 L +375.431 263.997 L +375.497 263.997 L +375.53 263.939 L +375.497 263.882 L +375.431 263.768 L +375.497 263.768 L +375.53 263.71 L +375.563 263.768 L +375.728 263.596 L +375.761 263.653 L +375.828 263.768 L +375.96 263.768 L +376.026 263.768 L +375.993 263.825 L +376.026 263.882 L +375.96 263.882 L +375.96 263.997 L +376.026 263.997 L +375.993 264.054 L +376.026 264.111 L +376.125 264.054 L +376.224 264.111 L +376.258 264.054 L +376.224 263.997 L +376.291 263.997 L +376.324 263.939 L +376.423 264.111 L +376.489 264.111 L +376.522 264.054 L +376.522 264.512 L +376.489 264.455 L +376.423 264.799 L +376.489 264.799 L +376.522 264.741 L +376.621 265.143 L +376.721 265.085 L +376.754 265.143 L +376.919 264.971 L +376.952 265.028 L +377.018 265.028 L +376.985 265.085 L +377.018 265.143 L +377.217 265.028 L +377.283 265.028 L +377.283 264.913 L +377.217 264.913 L +377.217 264.799 L +377.283 264.799 L +377.349 264.799 L +377.415 264.684 L +377.481 264.684 L +377.514 264.627 L +377.614 264.799 L +377.746 264.799 L +377.812 264.799 L +377.812 264.913 L +377.746 264.913 L +377.746 265.028 L +377.812 265.028 L +377.812 265.143 L +377.944 265.143 L +378.01 265.143 L +378.11 264.971 L +378.209 265.143 L +378.275 265.143 L +378.407 265.028 L +378.474 265.028 L +378.507 264.971 L +378.474 264.913 L +378.407 264.799 L +378.474 264.799 L +378.507 264.741 L +378.54 264.799 L +378.606 264.455 L +378.507 264.512 L +378.474 264.455 L +378.474 264.34 L +378.507 264.283 L +378.474 264.226 L +378.407 264.111 L +378.474 264.111 L +378.507 264.054 L +378.54 264.111 L +378.705 263.939 L +378.738 263.997 L +378.804 263.997 L +378.804 264.111 L +378.937 264.111 L +379.003 264.111 L +379.201 263.653 L +379.267 263.653 L +379.267 263.538 L +379.201 263.538 L +379.003 263.08 L +378.937 263.08 L +378.804 263.195 L +378.738 263.195 L +378.705 263.252 L +378.606 263.08 L +378.507 263.137 L +378.474 263.08 L +378.407 262.966 L +378.474 262.966 L +378.507 262.908 L +378.474 262.851 L +378.407 262.736 L +378.474 262.736 L +378.507 262.679 L +378.54 262.736 L +378.606 262.393 L +378.507 262.45 L +378.474 262.393 L +378.407 262.278 L +378.474 262.278 L +378.507 262.221 L +378.474 262.164 L +378.407 262.049 L +378.474 262.049 L +378.507 261.992 L +378.54 262.049 L +378.705 261.877 L +378.738 261.934 L +378.804 261.934 L +378.804 262.049 L +378.937 262.049 L +379.003 262.049 L +379.201 261.591 L +379.267 261.591 L +379.3 261.533 L +379.4 261.705 L +379.499 261.648 L +379.532 261.705 L +379.598 261.82 L +379.532 261.82 L +379.499 261.877 L +379.532 261.934 L +379.598 262.049 L +379.73 262.049 L +379.797 262.049 L +379.896 261.877 L +379.995 262.049 L +380.061 262.049 L +380.193 261.934 L +380.26 261.934 L +380.26 261.82 L +380.193 261.82 L +380.193 261.705 L +380.26 261.705 L +380.392 261.362 L +380.26 261.362 L +380.193 261.362 L +380.193 261.247 L +380.26 261.247 L +380.26 261.132 L +380.193 261.132 L +380.193 261.018 L +380.26 261.018 L +380.491 260.846 L +380.524 260.903 L +380.59 261.018 L +380.723 261.018 L +380.789 261.018 L +380.888 260.617 L +380.987 260.674 L +381.02 260.617 L +380.987 260.56 L +381.053 260.56 L +381.053 260.445 L +380.987 260.445 L +381.02 260.388 L +380.987 260.33 L +380.888 260.388 L +380.789 259.987 L +380.723 259.987 L +380.59 260.101 L +380.524 260.101 L +380.491 260.159 L +380.392 259.987 L +380.26 259.987 L +380.193 259.987 L +380.193 259.872 L +380.26 259.872 L +380.26 259.758 L +380.193 259.758 L +380.193 259.643 L +380.26 259.643 L +380.392 259.299 L +380.26 259.299 L +380.193 259.299 L +380.193 259.185 L +380.26 259.185 L +380.26 259.07 L +380.193 259.07 L +380.193 258.956 L +380.061 258.956 L +379.995 258.956 L +379.896 259.127 L +379.797 258.956 L +379.73 258.956 L +379.598 259.07 L +379.532 259.07 L +379.499 259.127 L +379.532 259.185 L +379.598 259.299 L +379.532 259.299 L +379.499 259.357 L +379.466 259.299 L +379.3 259.471 L +379.267 259.414 L +379.201 259.414 L +379.003 258.956 L +378.937 258.956 L +378.804 259.07 L +378.738 259.07 L +378.705 259.127 L +378.606 258.956 L +378.507 259.013 L +378.474 258.956 L +378.407 258.841 L +378.474 258.841 L +378.507 258.784 L +378.474 258.726 L +378.407 258.612 L +378.474 258.612 L +378.507 258.555 L +378.54 258.612 L +378.606 258.268 L +378.507 258.325 L +378.474 258.268 L +378.407 258.154 L +378.474 258.154 L +378.507 258.096 L +378.474 258.039 L +378.407 257.924 L +378.474 257.924 L +378.507 257.867 L +378.54 257.924 L +378.705 257.753 L +378.738 257.81 L +378.804 257.81 L +378.804 257.924 L +378.937 257.924 L +379.003 257.924 L +379.201 257.466 L +379.267 257.466 L +379.267 257.352 L +379.201 257.352 L +379.003 256.893 L +378.937 256.893 L +378.804 257.008 L +378.738 257.008 L +378.705 257.065 L +378.606 256.893 L +378.507 256.951 L +378.474 256.893 L +378.474 256.779 L +378.507 256.721 L +378.474 256.664 L +378.407 256.55 L +378.474 256.55 L +378.507 256.492 L +378.54 256.55 L +378.606 256.206 L +378.507 256.263 L +378.474 256.206 L +378.407 256.091 L +378.474 256.091 L +378.507 256.034 L +378.474 255.977 L +378.407 255.862 L +378.474 255.862 L +378.507 255.805 L +378.54 255.862 L +378.705 255.69 L +378.738 255.748 L +378.804 255.748 L +378.804 255.862 L +378.937 255.862 L +379.003 255.862 L +379.201 255.404 L +379.267 255.404 L +379.3 255.347 L +379.4 255.518 L +379.499 255.461 L +379.532 255.518 L +379.598 255.633 L +379.532 255.633 L +379.499 255.69 L +379.532 255.748 L +379.598 255.862 L +379.73 255.862 L +379.797 255.862 L +379.896 255.69 L +379.995 255.862 L +380.061 255.862 L +380.193 255.748 L +380.26 255.748 L +380.26 255.633 L +380.193 255.633 L +380.193 255.518 L +380.26 255.518 L +380.392 255.175 L +380.26 255.175 L +380.193 255.175 L +380.193 255.06 L +380.26 255.06 L +380.26 254.946 L +380.193 254.946 L +380.193 254.831 L +380.26 254.831 L +380.491 254.659 L +380.524 254.716 L +380.59 254.716 L +380.59 254.831 L +380.723 254.831 L +380.789 254.831 L +380.888 254.43 L +380.987 254.487 L +381.02 254.43 L +380.987 254.373 L +381.053 254.373 L +381.086 254.315 L +381.186 254.487 L +381.252 254.487 L +381.285 254.43 L +381.384 254.831 L +381.483 254.774 L +381.516 254.831 L +381.682 254.659 L +381.715 254.716 L +381.781 254.716 L +381.748 254.774 L +381.781 254.831 L +381.88 254.774 L +381.88 255.232 L +381.781 255.175 L +381.748 255.232 L +381.781 255.289 L +381.715 255.289 L +381.715 255.404 L +381.781 255.404 L +381.748 255.461 L +381.781 255.518 L +381.88 255.461 L +381.979 255.862 L +382.046 255.862 L +382.178 255.748 L +382.244 255.748 L +382.277 255.69 L +382.376 255.862 L +382.476 255.805 L +382.509 255.862 L +382.674 255.461 L +382.707 255.518 L +382.773 255.518 L +382.872 255.347 L +382.972 255.518 L +383.038 255.518 L +383.071 255.461 L +383.17 255.862 L +383.236 255.862 L +383.269 255.805 L +383.302 255.862 L +383.468 255.69 L +383.501 255.748 L +383.567 255.748 L +383.567 255.862 L +383.699 255.862 L +383.765 255.862 L +383.964 255.404 L +384.03 255.404 L +384.03 255.289 L +383.964 255.289 L +383.964 254.716 L +384.03 254.716 L +384.063 254.659 L +384.162 254.831 L +384.228 254.831 L +384.262 254.774 L +384.295 254.831 L +384.46 254.43 L +384.493 254.487 L +384.559 254.487 L +384.559 254.144 L +384.493 254.144 L +384.46 254.201 L +384.361 253.8 L +384.262 253.857 L +384.228 253.8 L +384.063 253.972 L +384.03 253.914 L +383.964 253.914 L +383.964 253.342 L +384.03 253.342 L +384.03 253.227 L +383.964 253.227 L +383.964 252.654 L +384.03 252.654 L +384.063 252.597 L +384.162 252.769 L +384.228 252.769 L +384.262 252.711 L +384.295 252.769 L +384.46 252.368 L +384.493 252.425 L +384.559 252.425 L +384.658 252.253 L +384.692 252.31 L +384.758 252.31 L +384.725 252.368 L +384.758 252.425 L +384.857 252.368 L +384.956 252.769 L +385.022 252.769 L +385.155 252.654 L +385.221 252.654 L +385.254 252.597 L +385.353 252.769 L +385.485 252.769 L +385.551 252.769 L +385.651 252.368 L +385.75 252.425 L +385.783 252.368 L +385.75 252.31 L +385.816 252.31 L +385.816 252.196 L +385.75 252.196 L +385.783 252.139 L +385.75 252.081 L +385.651 252.139 L +385.651 251.68 L +385.75 251.738 L +385.783 251.68 L +385.75 251.623 L +385.816 251.623 L +385.849 251.566 L +385.948 251.738 L +386.014 251.738 L +386.246 251.337 L +386.279 251.394 L +386.444 251.222 L +386.478 251.279 L +386.544 251.279 L +386.742 251.738 L +386.808 251.738 L +386.941 251.623 L +387.007 251.623 L +387.04 251.566 L +387.139 251.738 L +387.238 251.68 L +387.271 251.738 L +387.271 251.852 L +387.238 251.909 L +387.271 251.967 L +387.337 252.081 L +387.271 252.081 L +387.238 252.139 L +387.205 252.081 L +387.139 252.425 L +387.238 252.368 L +387.271 252.425 L +387.337 252.54 L +387.271 252.54 L +387.238 252.597 L +387.271 252.654 L +387.337 252.769 L +387.47 252.769 L +387.536 252.769 L +387.635 252.597 L +387.734 252.769 L +387.8 252.769 L +387.933 252.654 L +387.999 252.654 L +388.032 252.597 L +387.999 252.54 L +387.933 252.54 L +387.933 252.425 L +387.999 252.425 L +388.032 252.368 L +388.131 252.425 L +388.23 252.253 L +388.264 252.31 L +388.33 252.425 L +388.462 252.425 L +388.528 252.425 L +388.495 252.482 L +388.528 252.54 L +388.462 252.54 L +388.462 252.654 L +388.528 252.654 L +388.495 252.711 L +388.528 252.769 L +388.627 252.711 L +388.727 252.769 L +388.76 252.711 L +388.727 252.654 L +388.793 252.654 L +388.826 252.597 L +388.925 252.769 L +388.991 252.769 L +389.024 252.711 L +389.024 253.17 L +388.991 253.112 L +388.925 253.456 L +388.991 253.456 L +389.024 253.399 L +389.024 253.857 L +388.991 253.8 L +388.826 253.972 L +388.793 253.914 L +388.727 253.914 L +388.76 253.857 L +388.727 253.8 L +388.627 253.857 L +388.528 253.8 L +388.495 253.857 L +388.528 253.914 L +388.462 253.914 L +388.462 254.029 L +388.528 254.029 L +388.495 254.086 L +388.528 254.144 L +388.462 254.144 L +388.33 254.258 L +388.264 254.258 L +388.23 254.315 L +388.264 254.373 L +388.33 254.487 L +388.462 254.487 L +388.528 254.487 L +388.495 254.545 L +388.528 254.602 L +388.462 254.602 L +388.462 254.716 L +388.528 254.716 L +388.495 254.774 L +388.528 254.831 L +388.627 254.774 L +388.727 254.831 L +388.76 254.774 L +388.727 254.716 L +388.793 254.716 L +388.826 254.659 L +388.925 254.831 L +388.991 254.831 L +389.024 254.774 L +389.024 255.232 L +388.991 255.175 L +388.925 255.518 L +388.991 255.518 L +389.024 255.461 L +389.123 255.862 L +389.223 255.805 L +389.256 255.862 L +389.421 255.69 L +389.454 255.748 L +389.52 255.748 L +389.487 255.805 L +389.52 255.862 L +389.62 255.805 L +389.719 255.862 L +389.752 255.805 L +389.719 255.748 L +389.785 255.748 L +389.785 255.633 L +389.719 255.633 L +389.752 255.576 L +389.719 255.518 L +389.785 255.518 L +389.917 255.404 L +389.983 255.404 L +390.016 255.347 L +390.116 255.518 L +390.248 255.518 L +390.314 255.518 L +390.314 255.633 L +390.248 255.633 L +390.248 255.748 L +390.314 255.748 L +390.314 255.862 L +390.446 255.862 L +390.513 255.862 L +390.612 255.69 L +390.711 255.862 L +390.777 255.862 L +390.909 255.748 L +390.976 255.748 L +391.009 255.69 L +390.976 255.633 L +390.909 255.518 L +390.976 255.518 L +391.009 255.461 L +391.042 255.518 L +391.108 255.175 L +391.009 255.232 L +390.976 255.175 L +390.909 255.06 L +390.976 255.06 L +391.009 255.003 L +390.976 254.946 L +390.909 254.831 L +390.976 254.831 L +391.009 254.774 L +391.042 254.831 L +391.207 254.659 L +391.24 254.716 L +391.306 254.716 L +391.306 254.831 L +391.439 254.831 L +391.505 254.831 L +391.703 254.373 L +391.769 254.373 L +391.802 254.315 L +391.902 254.487 L +391.968 254.487 L +392.001 254.43 L +392.1 254.831 L +392.232 254.831 L +392.299 254.831 L +392.398 254.659 L +392.497 254.831 L +392.563 254.831 L +392.596 254.774 L +392.596 255.232 L +392.563 255.175 L +392.497 255.175 L +392.497 255.518 L +392.563 255.518 L +392.596 255.461 L +392.695 255.862 L +392.762 255.862 L +392.993 255.69 L +393.026 255.748 L +393.092 255.748 L +393.092 255.862 L +393.225 255.862 L +393.291 255.862 L +393.39 255.461 L +393.489 255.518 L +393.522 255.461 L +393.489 255.404 L +393.555 255.404 L +393.588 255.347 L +393.688 255.518 L +393.754 255.518 L +393.787 255.461 L +393.886 255.862 L +393.985 255.805 L +394.018 255.862 L +394.184 255.69 L +394.217 255.748 L +394.283 255.748 L +394.25 255.805 L +394.283 255.862 L +394.382 255.805 L +394.382 256.263 L +394.283 256.206 L +394.25 256.263 L +394.283 256.32 L +394.217 256.32 L +394.217 256.435 L +394.283 256.435 L +394.25 256.492 L +394.283 256.55 L +394.382 256.492 L +394.382 256.951 L +394.283 256.893 L +394.25 256.951 L +394.283 257.008 L +394.217 257.008 L +394.184 257.065 L +394.085 256.893 L +394.018 256.893 L +393.985 256.951 L +393.952 256.893 L +393.787 257.294 L +393.754 257.237 L +393.688 257.237 L +393.688 257.581 L +393.754 257.581 L +393.787 257.523 L +393.886 257.924 L +393.985 257.867 L +394.018 257.924 L +394.184 257.753 L +394.217 257.81 L +394.283 257.81 L +394.25 257.867 L +394.283 257.924 L +394.382 257.867 L +394.382 258.325 L +394.283 258.268 L +394.25 258.325 L +394.283 258.383 L +394.217 258.383 L +394.217 258.497 L +394.283 258.497 L +394.25 258.555 L +394.283 258.612 L +394.382 258.555 L +394.382 259.013 L +394.283 258.956 L +394.25 259.013 L +394.283 259.07 L +394.217 259.07 L +394.184 259.127 L +394.085 258.956 L +394.018 258.956 L +393.985 259.013 L +393.952 258.956 L +393.787 259.357 L +393.754 259.299 L +393.688 259.299 L +393.588 259.471 L +393.555 259.414 L +393.489 259.414 L +393.522 259.357 L +393.489 259.299 L +393.39 259.357 L +393.291 258.956 L +393.225 258.956 L +393.026 259.07 L +392.993 259.127 L +392.894 258.956 L +392.762 258.956 L +392.695 258.956 L +392.596 259.357 L +392.563 259.299 L +392.497 259.299 L +392.497 259.643 L +392.563 259.643 L +392.596 259.586 L +392.596 260.044 L +392.563 259.987 L +392.497 259.987 L +392.398 260.159 L +392.299 259.987 L +392.232 259.987 L +392.001 260.388 L +391.968 260.33 L +391.902 260.674 L +391.968 260.674 L +392.001 260.617 L +392.1 261.018 L +392.232 261.018 L +392.299 261.018 L +392.398 260.846 L +392.497 261.018 L +392.563 261.018 L +392.596 260.961 L +392.596 261.419 L +392.563 261.362 L +392.497 261.362 L +392.497 261.705 L +392.563 261.705 L +392.596 261.648 L +392.695 262.049 L +392.762 262.049 L +392.993 261.877 L +393.026 261.934 L +393.092 262.049 L +393.225 262.049 L +393.291 262.049 L +393.39 261.648 L +393.489 261.705 L +393.522 261.648 L +393.489 261.591 L +393.555 261.591 L +393.588 261.533 L +393.688 261.705 L +393.754 261.705 L +393.787 261.648 L +393.886 262.049 L +393.985 261.992 L +394.018 262.049 L +394.184 261.877 L +394.217 261.934 L +394.283 261.934 L +394.25 261.992 L +394.283 262.049 L +394.382 261.992 L +394.382 262.45 L +394.283 262.393 L +394.25 262.45 L +394.283 262.507 L +394.217 262.507 L +394.217 262.622 L +394.283 262.622 L +394.25 262.679 L +394.283 262.736 L +394.382 262.679 L +394.382 263.137 L +394.283 263.08 L +394.25 263.137 L +394.283 263.195 L +394.217 263.195 L +394.184 263.252 L +394.085 263.08 L +394.018 263.08 L +393.985 263.137 L +393.952 263.08 L +393.787 263.481 L +393.754 263.424 L +393.688 263.424 L +393.688 263.768 L +393.754 263.768 L +393.787 263.71 L +393.886 264.111 L +393.985 264.054 L +394.018 264.111 L +394.184 263.939 L +394.217 263.997 L +394.283 263.997 L +394.25 264.054 L +394.283 264.111 L +394.382 264.054 L +394.382 264.512 L +394.283 264.455 L +394.25 264.512 L +394.283 264.57 L +394.217 264.57 L +394.217 264.684 L +394.283 264.684 L +394.25 264.741 L +394.283 264.799 L +394.382 264.741 L +394.481 265.143 L +394.548 265.143 L +394.68 265.028 L +394.746 265.028 L +394.779 264.971 L +394.878 265.143 L +394.978 265.085 L +395.011 265.143 L +395.176 264.741 L +395.209 264.799 L +395.275 264.799 L +395.374 264.627 L +395.474 264.799 L +395.54 264.799 L +395.573 264.741 L +395.672 265.143 L +395.738 265.143 L +395.771 265.085 L +395.804 265.143 L +395.97 264.971 L +396.003 265.028 L +396.069 265.143 L +396.201 265.143 L +396.267 265.143 L +396.466 264.684 L +396.532 264.684 L +396.532 264.57 L +396.466 264.57 L +396.466 263.997 L +396.532 263.997 L +396.565 263.939 L +396.664 264.111 L +396.731 264.111 L +396.764 264.054 L +396.797 264.111 L +396.962 263.71 L +396.995 263.768 L +397.061 263.768 L +397.16 263.596 L +397.194 263.653 L +397.26 263.653 L +397.227 263.71 L +397.26 263.768 L +397.359 263.71 L +397.458 264.111 L +397.524 264.111 L +397.657 263.997 L +397.723 263.997 L +397.756 263.939 L +397.855 264.111 L +397.987 264.111 L +398.053 264.111 L +398.053 264.226 L +397.987 264.226 L +397.987 264.34 L +398.053 264.34 L +398.053 264.455 L +397.987 264.455 L +397.855 264.799 L +397.987 264.799 L +398.053 264.799 L +398.053 264.913 L +397.987 264.913 L +397.987 265.028 L +398.053 265.028 L +398.053 265.143 L +398.186 265.143 L +398.252 265.143 L +398.351 264.971 L +398.45 265.143 L +398.517 265.143 L +398.748 264.741 L +398.781 264.799 L +398.947 264.627 L +398.98 264.684 L +399.046 264.684 L +399.244 265.143 L +399.31 265.143 L +399.443 265.028 L +399.509 265.028 L +399.542 264.971 L +399.641 265.143 L +399.74 265.085 L +399.773 265.143 L +399.939 264.741 L +399.972 264.799 L +400.038 264.799 L +400.038 264.455 L +399.972 264.455 L +399.939 264.512 L +399.939 264.054 L +399.972 264.111 L +400.038 264.111 L +400.137 263.939 L +400.236 264.111 L +400.303 264.111 L +400.435 263.997 L +400.501 263.997 L +400.501 263.882 L +400.435 263.882 L +400.435 263.768 L +400.501 263.768 L +400.633 263.424 L +400.501 263.424 L +400.435 263.424 L +400.435 263.309 L +400.501 263.309 L +400.501 263.195 L +400.435 263.195 L +400.435 263.08 L +400.303 263.08 L +400.236 263.08 L +400.137 263.252 L +400.038 263.08 L +399.972 263.08 L +399.939 263.137 L +399.939 262.679 L +399.972 262.736 L +400.038 262.736 L +400.038 262.393 L +399.972 262.393 L +399.939 262.45 L +399.939 261.992 L +399.972 262.049 L +400.038 262.049 L +400.137 261.877 L +400.236 262.049 L +400.303 262.049 L +400.435 261.934 L +400.501 261.934 L +400.501 261.82 L +400.435 261.82 L +400.435 261.705 L +400.501 261.705 L +400.733 261.533 L +400.766 261.591 L +400.832 261.705 L +400.964 261.705 L +401.03 261.705 L +400.997 261.763 L +401.03 261.82 L +400.964 261.82 L +400.964 261.934 L +401.03 261.934 L +400.997 261.992 L +401.03 262.049 L +401.129 261.992 L +401.229 262.049 L +401.262 261.992 L +401.229 261.934 L +401.295 261.934 L +401.328 261.877 L +401.427 262.049 L +401.493 262.049 L +401.526 261.992 L +401.559 262.049 L +401.725 261.648 L +401.758 261.705 L +401.824 261.362 L +401.758 261.362 L +401.725 261.419 L +401.725 260.961 L +401.758 261.018 L +401.923 260.846 L +401.956 260.903 L +402.022 260.903 L +401.989 260.961 L +402.022 261.018 L +402.122 260.961 L +402.221 261.018 L +402.254 260.961 L +402.221 260.903 L +402.287 260.903 L +402.287 260.789 L +402.221 260.789 L +402.254 260.731 L +402.221 260.674 L +402.287 260.674 L +402.485 260.56 L +402.519 260.502 L +402.618 260.674 L +402.717 260.617 L +402.75 260.674 L +402.75 260.789 L +402.717 260.846 L +402.75 260.903 L +402.816 261.018 L +402.948 261.018 L +403.015 261.018 L +403.114 260.846 L +403.213 261.018 L +403.279 261.018 L +403.312 260.961 L +403.312 261.419 L +403.279 261.362 L +403.213 261.362 L +403.213 261.705 L +403.279 261.705 L +403.312 261.648 L +403.412 262.049 L +403.478 262.049 L +403.511 261.992 L +403.544 262.049 L +403.709 261.877 L +403.742 261.934 L +403.808 261.934 L +403.808 262.049 L +403.941 262.049 L +404.007 262.049 L +404.205 261.591 L +404.271 261.591 L +404.305 261.533 L +404.404 261.705 L +404.47 261.705 L +404.503 261.648 L +404.602 262.049 L +404.734 262.049 L +404.801 262.049 L +404.9 261.877 L +404.999 262.049 L +405.065 262.049 L +405.098 261.992 L +405.098 262.45 L +405.065 262.393 L +404.999 262.393 L +404.999 262.736 L +405.065 262.736 L +405.098 262.679 L +405.098 263.137 L +405.065 263.08 L +404.999 263.08 L +404.9 263.252 L +404.801 263.08 L +404.734 263.08 L +404.503 263.481 L +404.47 263.424 L +404.404 263.768 L +404.47 263.768 L +404.503 263.71 L +404.602 264.111 L +404.734 264.111 L +404.801 264.111 L +404.9 263.939 L +404.999 264.111 L +405.065 264.111 L +405.098 264.054 L +405.098 264.512 L +405.065 264.455 L +404.999 264.455 L +404.999 264.799 L +405.065 264.799 L +405.098 264.741 L +405.198 265.143 L +405.264 265.143 L +405.495 264.971 L +405.528 265.028 L +405.594 265.143 L +405.727 265.143 L +405.793 265.143 L +405.892 264.741 L +405.991 264.799 L +406.024 264.741 L +405.991 264.684 L +406.057 264.684 L +406.091 264.627 L +406.19 264.799 L +406.256 264.799 L +406.289 264.741 L +406.388 265.143 L +406.487 265.085 L +406.521 265.143 L +406.686 264.971 L +406.719 265.028 L +406.785 265.028 L +406.785 265.143 L +406.984 265.143 L +407.017 265.085 L +406.984 265.028 L +407.05 265.028 L +407.05 264.913 L +406.984 264.913 L +407.017 264.856 L +406.984 264.799 L +407.05 264.799 L +407.182 264.684 L +407.248 264.684 L +407.281 264.627 L +407.248 264.57 L +407.05 264.455 L +406.984 264.455 L +407.017 264.398 L +406.984 264.34 L +407.05 264.34 L +407.05 264.226 L +406.984 264.226 L +407.017 264.169 L +406.984 264.111 L +407.05 264.111 L +407.182 263.997 L +407.248 263.997 L +407.281 263.939 L +407.38 264.111 L +407.48 264.054 L +407.513 264.111 L +407.678 263.71 L +407.711 263.768 L +407.777 263.768 L +407.877 263.596 L +407.976 263.768 L +408.042 263.768 L +408.075 263.71 L +408.174 264.111 L +408.24 264.111 L +408.273 264.054 L +408.307 264.111 L +408.472 263.939 L +408.505 263.997 L +408.571 264.111 L +408.703 264.111 L +408.77 264.111 L +408.736 264.169 L +408.77 264.226 L +408.703 264.226 L +408.703 264.34 L +408.77 264.34 L +408.736 264.398 L +408.77 264.455 L +408.703 264.455 L +408.571 264.57 L +408.505 264.57 L +408.472 264.627 L +408.505 264.684 L +408.571 264.799 L +408.703 264.799 L +408.77 264.799 L +408.736 264.856 L +408.77 264.913 L +408.703 264.913 L +408.703 265.028 L +408.77 265.028 L +408.736 265.085 L +408.77 265.143 L +408.869 265.085 L +408.968 265.143 L +409.001 265.085 L +408.968 265.028 L +409.034 265.028 L +409.067 264.971 L +409.166 265.143 L +409.233 265.143 L +409.266 265.085 L +409.299 265.143 L +409.464 264.741 L +409.497 264.799 L +409.563 264.799 L +409.663 264.627 L +409.696 264.684 L +409.762 264.684 L +409.729 264.741 L +409.762 264.799 L +409.861 264.741 L +409.96 265.143 L +410.026 265.143 L +410.159 265.028 L +410.225 265.028 L +410.258 264.971 L +410.357 265.143 L +410.489 265.143 L +410.556 265.143 L +410.655 264.741 L +410.688 264.799 L +410.754 264.799 L +410.754 264.455 L +410.688 264.455 L +410.655 264.512 L +410.655 264.054 L +410.688 264.111 L +410.754 264.111 L +410.853 263.939 L +410.952 264.111 L +411.019 264.111 L +411.151 263.997 L +411.217 263.997 L +411.25 263.939 L +411.217 263.882 L +411.151 263.768 L +411.217 263.768 L +411.25 263.71 L +411.283 263.768 L +411.349 263.424 L +411.25 263.481 L +411.217 263.424 L +411.151 263.309 L +411.217 263.309 L +411.25 263.252 L +411.217 263.195 L +411.151 263.08 L +411.019 263.08 L +410.952 263.08 L +410.853 263.252 L +410.754 263.08 L +410.688 263.08 L +410.655 263.137 L +410.655 262.679 L +410.688 262.736 L +410.754 262.736 L +410.754 262.393 L +410.688 262.393 L +410.655 262.45 L +410.655 261.992 L +410.688 262.049 L +410.754 262.049 L +410.853 261.877 L +410.952 262.049 L +411.019 262.049 L +411.151 261.934 L +411.217 261.934 L +411.25 261.877 L +411.217 261.82 L +411.151 261.705 L +411.217 261.705 L +411.25 261.648 L +411.283 261.705 L +411.449 261.533 L +411.482 261.591 L +411.548 261.591 L +411.746 262.049 L +411.812 262.049 L +411.945 261.934 L +412.011 261.934 L +412.044 261.877 L +412.143 262.049 L +412.242 261.992 L +412.275 262.049 L +412.441 261.648 L +412.474 261.705 L +412.54 261.705 L +412.54 261.362 L +412.474 261.362 L +412.441 261.419 L +412.441 260.961 L +412.474 261.018 L +412.54 261.018 L +412.639 260.846 L +412.738 261.018 L +412.805 261.018 L +412.937 260.903 L +413.003 260.903 L +413.003 260.789 L +412.937 260.789 L +412.937 260.674 L +413.003 260.674 L +413.135 260.33 L +413.003 260.33 L +412.937 260.33 L +412.937 260.216 L +413.003 260.216 L +413.003 260.101 L +412.937 260.101 L +412.937 259.987 L +412.805 259.987 L +412.738 259.987 L +412.639 260.159 L +412.54 259.987 L +412.474 259.987 L +412.441 260.044 L +412.441 259.586 L +412.474 259.643 L +412.54 259.643 L +412.54 259.299 L +412.474 259.299 L +412.441 259.357 L +412.342 258.956 L +412.275 258.956 L +412.242 259.013 L +412.209 258.956 L +412.044 259.127 L +412.011 259.07 L +411.945 259.07 L +411.945 258.956 L +411.812 258.956 L +411.746 258.956 L +411.548 259.414 L +411.482 259.414 L +411.449 259.471 L +411.349 259.299 L +411.25 259.357 L +411.217 259.299 L +411.151 259.185 L +411.217 259.185 L +411.25 259.127 L +411.217 259.07 L +411.151 258.956 L +411.019 258.956 L +410.952 258.956 L +410.853 259.127 L +410.754 258.956 L +410.688 258.956 L +410.655 259.013 L +410.655 258.555 L +410.688 258.612 L +410.754 258.612 L +410.754 258.268 L +410.688 258.268 L +410.655 258.325 L +410.655 257.867 L +410.688 257.924 L +410.754 257.924 L +410.853 257.753 L +410.952 257.924 L +411.019 257.924 L +411.151 257.81 L +411.217 257.81 L +411.25 257.753 L +411.217 257.695 L +411.151 257.581 L +411.217 257.581 L +411.25 257.523 L +411.283 257.581 L +411.349 257.237 L +411.25 257.294 L +411.217 257.237 L +411.151 257.122 L +411.217 257.122 L +411.25 257.065 L +411.217 257.008 L +411.151 256.893 L +411.019 256.893 L +410.952 256.893 L +410.853 257.065 L +410.754 256.893 L +410.688 256.893 L +410.655 256.951 L +410.655 256.492 L +410.688 256.55 L +410.754 256.55 L +410.754 256.206 L +410.688 256.206 L +410.655 256.263 L +410.655 255.805 L +410.688 255.862 L +410.754 255.862 L +410.853 255.69 L +410.952 255.862 L +411.019 255.862 L +411.151 255.748 L +411.217 255.748 L +411.25 255.69 L +411.217 255.633 L +411.151 255.633 L +411.151 255.518 L +411.217 255.518 L +411.25 255.461 L +411.283 255.518 L +411.449 255.347 L +411.482 255.404 L +411.548 255.404 L +411.746 255.862 L +411.812 255.862 L +411.945 255.748 L +412.011 255.748 L +412.044 255.69 L +412.143 255.862 L +412.242 255.805 L +412.275 255.862 L +412.441 255.461 L +412.474 255.518 L +412.54 255.518 L +412.54 255.175 L +412.474 255.175 L +412.441 255.232 L +412.441 254.774 L +412.474 254.831 L +412.54 254.831 L +412.639 254.659 L +412.738 254.831 L +412.805 254.831 L +412.937 254.716 L +413.003 254.716 L +413.003 254.602 L +412.937 254.602 L +412.937 254.487 L +413.003 254.487 L +413.235 254.315 L +413.268 254.373 L +413.334 254.487 L +413.466 254.487 L +413.532 254.487 L +413.499 254.545 L +413.532 254.602 L +413.466 254.602 L +413.466 254.716 L +413.532 254.716 L +413.499 254.774 L +413.532 254.831 L +413.631 254.774 L +413.731 254.831 L +413.764 254.774 L +413.731 254.716 L +413.797 254.716 L +413.83 254.659 L +413.929 254.831 L +413.995 254.831 L +414.028 254.774 L +414.028 255.232 L +413.995 255.175 L +413.929 255.518 L +413.995 255.518 L +414.028 255.461 L +414.128 255.862 L +414.227 255.805 L +414.26 255.862 L +414.425 255.69 L +414.458 255.748 L +414.524 255.748 L +414.491 255.805 L +414.524 255.862 L +414.624 255.805 L +414.723 255.862 L +414.756 255.805 L +414.723 255.748 L +414.789 255.748 L +414.789 255.633 L +414.723 255.633 L +414.756 255.576 L +414.723 255.518 L +414.789 255.518 L +414.921 255.404 L +414.987 255.404 L +415.021 255.347 L +415.12 255.518 L +415.219 255.461 L +415.252 255.518 L +415.318 255.633 L +415.252 255.633 L +415.219 255.69 L +415.252 255.748 L +415.318 255.862 L +415.451 255.862 L +415.517 255.862 L +415.616 255.69 L +415.715 255.862 L +415.781 255.862 L +415.914 255.748 L +415.98 255.748 L +416.013 255.69 L +415.98 255.633 L +415.914 255.518 L +415.98 255.518 L +416.013 255.461 L +416.046 255.518 L +416.112 255.175 L +416.013 255.232 L +415.98 255.175 L +415.914 255.06 L +415.98 255.06 L +416.013 255.003 L +415.98 254.946 L +415.914 254.831 L +415.98 254.831 L +416.013 254.774 L +416.046 254.831 L +416.211 254.659 L +416.244 254.716 L +416.31 254.716 L +416.31 254.831 L +416.443 254.831 L +416.509 254.831 L +416.707 254.373 L +416.773 254.373 L +416.773 254.258 L +416.707 254.258 L +416.509 253.8 L +416.443 253.8 L +416.31 253.914 L +416.244 253.914 L +416.211 253.972 L +416.112 253.8 L +416.013 253.857 L +415.98 253.8 L +415.98 253.685 L +416.013 253.628 L +415.98 253.571 L +415.914 253.456 L +415.98 253.456 L +416.013 253.399 L +416.046 253.456 L +416.112 253.112 L +416.013 253.17 L +415.98 253.112 L +415.914 252.998 L +415.98 252.998 L +416.013 252.941 L +415.98 252.883 L +415.914 252.769 L +415.98 252.769 L +416.013 252.711 L +416.046 252.769 L +416.211 252.597 L +416.244 252.654 L +416.31 252.654 L +416.31 252.769 L +416.443 252.769 L +416.509 252.769 L +416.707 252.31 L +416.773 252.31 L +416.807 252.253 L +416.906 252.425 L +416.972 252.425 L +417.005 252.368 L +417.104 252.769 L +417.237 252.769 L +417.303 252.769 L +417.402 252.597 L +417.435 252.654 L +417.501 252.654 L +417.468 252.711 L +417.501 252.769 L +417.7 252.654 L +417.766 252.654 L +417.766 252.54 L +417.7 252.54 L +417.7 252.425 L +417.766 252.425 L +417.898 252.081 L +417.766 252.081 L +417.7 252.081 L +417.7 251.967 L +417.766 251.967 L +417.766 251.852 L +417.7 251.852 L +417.7 251.738 L +417.766 251.738 L +417.997 251.566 L +418.03 251.623 L +418.096 251.738 L +418.229 251.738 L +418.295 251.738 L +418.394 251.337 L +418.493 251.394 L +418.526 251.337 L +418.493 251.279 L +418.56 251.279 L +418.56 251.165 L +418.493 251.165 L +418.526 251.107 L +418.493 251.05 L +418.394 251.107 L +418.295 250.706 L +418.229 250.706 L +418.096 250.821 L +418.03 250.821 L +417.997 250.878 L +417.898 250.706 L +417.766 250.706 L +417.7 250.706 L +417.7 250.592 L +417.766 250.592 L +417.766 250.477 L +417.7 250.477 L +417.7 250.363 L +417.766 250.363 L +417.898 250.019 L +417.766 250.019 L +417.7 250.019 L +417.7 249.904 L +417.766 249.904 L +417.766 249.79 L +417.7 249.79 L +417.7 249.675 L +417.501 249.675 L +417.468 249.733 L +417.501 249.79 L +417.435 249.79 L +417.402 249.847 L +417.303 249.675 L +417.237 249.675 L +417.005 250.076 L +416.972 250.019 L +416.807 250.191 L +416.773 250.134 L +416.707 250.134 L +416.509 249.675 L +416.443 249.675 L +416.31 249.79 L +416.244 249.79 L +416.211 249.847 L +416.112 249.675 L +416.013 249.733 L +415.98 249.675 L +415.914 249.561 L +415.98 249.561 L +416.013 249.503 L +415.98 249.446 L +415.914 249.331 L +415.98 249.331 L +416.013 249.274 L +416.046 249.331 L +416.112 248.988 L +416.013 249.045 L +415.98 248.988 L +415.914 248.873 L +415.98 248.873 L +416.013 248.816 L +415.98 248.759 L +415.914 248.644 L +415.98 248.644 L +416.013 248.587 L +416.046 248.644 L +416.211 248.472 L +416.244 248.529 L +416.31 248.529 L +416.31 248.644 L +416.443 248.644 L +416.509 248.644 L +416.707 248.186 L +416.773 248.186 L +416.773 248.071 L +416.707 248.071 L +416.509 247.613 L +416.443 247.613 L +416.31 247.727 L +416.244 247.727 L +416.211 247.785 L +416.112 247.613 L +416.013 247.67 L +415.98 247.613 L +415.914 247.498 L +415.98 247.498 L +416.013 247.441 L +415.98 247.384 L +415.914 247.269 L +415.98 247.269 L +416.013 247.212 L +416.046 247.269 L +416.112 246.925 L +416.013 246.983 L +415.98 246.925 L +415.914 246.811 L +415.98 246.811 L +416.013 246.754 L +415.98 246.696 L +415.914 246.582 L +415.781 246.582 L +415.715 246.582 L +415.616 246.754 L +415.517 246.582 L +415.451 246.582 L +415.318 246.696 L +415.252 246.696 L +415.219 246.754 L +415.252 246.811 L +415.318 246.925 L +415.252 246.925 L +415.219 246.983 L +415.186 246.925 L +415.021 247.097 L +414.987 247.04 L +414.921 246.925 L +414.789 246.925 L +414.723 246.925 L +414.756 246.868 L +414.723 246.811 L +414.789 246.811 L +414.789 246.696 L +414.723 246.696 L +414.756 246.639 L +414.723 246.582 L +414.624 246.639 L +414.524 246.582 L +414.491 246.639 L +414.524 246.696 L +414.458 246.696 L +414.425 246.754 L +414.326 246.582 L +414.26 246.582 L +414.227 246.639 L +414.194 246.582 L +414.028 246.983 L +413.995 246.925 L +413.929 247.269 L +413.995 247.269 L +414.028 247.212 L +414.028 247.67 L +413.995 247.613 L +413.83 247.785 L +413.797 247.727 L +413.731 247.727 L +413.764 247.67 L +413.731 247.613 L +413.631 247.67 L +413.532 247.613 L +413.499 247.67 L +413.532 247.727 L +413.466 247.727 L +413.466 247.842 L +413.532 247.842 L +413.499 247.899 L +413.532 247.957 L +413.466 247.957 L +413.334 248.071 L +413.268 248.071 L +413.235 248.128 L +413.069 247.957 L +413.003 247.957 L +412.937 247.957 L +412.937 247.842 L +413.003 247.842 L +413.003 247.727 L +412.937 247.727 L +412.937 247.613 L +412.805 247.613 L +412.738 247.613 L +412.639 247.785 L +412.54 247.613 L +412.474 247.613 L +412.441 247.67 L +412.441 247.212 L +412.474 247.269 L +412.54 247.269 L +412.54 246.925 L +412.474 246.925 L +412.441 246.983 L +412.342 246.582 L +412.275 246.582 L +412.242 246.639 L +412.209 246.582 L +412.044 246.754 L +412.011 246.696 L +411.945 246.696 L +411.945 246.582 L +411.812 246.582 L +411.746 246.582 L +411.548 247.04 L +411.482 247.04 L +411.449 247.097 L +411.349 246.925 L +411.25 246.983 L +411.217 246.925 L +411.151 246.811 L +411.217 246.811 L +411.25 246.754 L +411.217 246.696 L +411.151 246.582 L +411.019 246.582 L +410.952 246.582 L +410.853 246.754 L +410.754 246.582 L +410.688 246.582 L +410.655 246.639 L +410.655 246.181 L +410.688 246.238 L +410.754 246.238 L +410.754 245.894 L +410.688 245.894 L +410.655 245.952 L +410.655 245.493 L +410.688 245.551 L +410.754 245.551 L +410.853 245.379 L +410.952 245.551 L +411.019 245.551 L +411.151 245.436 L +411.217 245.436 L +411.25 245.379 L +411.217 245.321 L +411.151 245.207 L +411.217 245.207 L +411.25 245.15 L +411.283 245.207 L +411.349 244.863 L +411.25 244.92 L +411.217 244.863 L +411.151 244.749 L +411.217 244.749 L +411.25 244.691 L +411.217 244.634 L +411.151 244.519 L +411.019 244.519 L +410.952 244.519 L +410.853 244.691 L +410.754 244.519 L +410.688 244.519 L +410.655 244.577 L +410.655 244.118 L +410.688 244.176 L +410.754 244.176 L +410.754 243.832 L +410.688 243.832 L +410.655 243.889 L +410.655 243.431 L +410.688 243.488 L +410.754 243.488 L +410.853 243.316 L +410.952 243.488 L +411.019 243.488 L +411.151 243.374 L +411.217 243.374 L +411.25 243.316 L +411.217 243.259 L +411.151 243.259 L +411.151 243.145 L +411.217 243.145 L +411.25 243.087 L +411.283 243.145 L +411.449 242.973 L +411.482 243.03 L +411.548 243.03 L +411.746 243.488 L +411.812 243.488 L +411.945 243.374 L +412.011 243.374 L +412.044 243.316 L +412.143 243.488 L +412.242 243.431 L +412.275 243.488 L +412.441 243.087 L +412.474 243.145 L +412.54 243.145 L +412.54 242.801 L +412.474 242.801 L +412.441 242.858 L +412.441 242.4 L +412.474 242.457 L +412.54 242.457 L +412.639 242.285 L +412.738 242.457 L +412.805 242.457 L +412.937 242.343 L +413.003 242.343 L +413.003 242.228 L +412.937 242.228 L +412.937 242.113 L +413.003 242.113 L +413.135 241.77 L +413.003 241.77 L +412.937 241.77 L +412.937 241.655 L +413.003 241.655 L +413.003 241.541 L +412.937 241.541 L +412.937 241.426 L +412.805 241.426 L +412.738 241.426 L +412.639 241.598 L +412.54 241.426 L +412.474 241.426 L +412.441 241.483 L +412.441 241.025 L +412.474 241.082 L +412.54 241.082 L +412.54 240.739 L +412.474 240.739 L +412.441 240.796 L +412.342 240.395 L +412.275 240.395 L +412.242 240.452 L +412.209 240.395 L +412.044 240.567 L +412.011 240.509 L +411.945 240.509 L +411.945 240.395 L +411.812 240.395 L +411.746 240.395 L +411.548 240.853 L +411.482 240.853 L +411.449 240.91 L +411.349 240.739 L +411.25 240.796 L +411.217 240.739 L +411.151 240.624 L +411.217 240.624 L +411.25 240.567 L +411.217 240.509 L +411.151 240.395 L +411.019 240.395 L +410.952 240.395 L +410.853 240.567 L +410.754 240.395 L +410.688 240.395 L +410.655 240.452 L +410.655 239.994 L +410.688 240.051 L +410.754 240.051 L +410.754 239.707 L +410.688 239.707 L +410.655 239.765 L +410.655 239.306 L +410.688 239.364 L +410.754 239.364 L +410.853 239.192 L +410.952 239.364 L +411.019 239.364 L +411.151 239.249 L +411.217 239.249 L +411.25 239.192 L +411.217 239.135 L +411.151 239.02 L +411.217 239.02 L +411.25 238.963 L +411.283 239.02 L +411.349 238.676 L +411.25 238.734 L +411.217 238.676 L +411.151 238.562 L +411.217 238.562 L +411.25 238.504 L +411.217 238.447 L +411.151 238.333 L +411.019 238.333 L +410.952 238.333 L +410.853 238.504 L +410.754 238.333 L +410.688 238.333 L +410.655 238.39 L +410.655 237.932 L +410.688 237.989 L +410.754 237.989 L +410.754 237.645 L +410.688 237.645 L +410.655 237.702 L +410.655 237.244 L +410.688 237.301 L +410.754 237.301 L +410.853 237.13 L +410.952 237.301 L +411.019 237.301 L +411.151 237.187 L +411.217 237.187 L +411.25 237.13 L +411.217 237.072 L +411.151 236.958 L +411.217 236.958 L +411.25 236.9 L +411.283 236.958 L +411.449 236.786 L +411.482 236.843 L +411.548 236.843 L +411.746 237.301 L +411.812 237.301 L +411.945 237.187 L +412.011 237.187 L +412.044 237.13 L +412.143 237.301 L +412.242 237.244 L +412.275 237.301 L +412.441 236.9 L +412.474 236.958 L +412.54 236.958 L +412.54 236.614 L +412.474 236.614 L +412.441 236.671 L +412.441 236.213 L +412.474 236.27 L +412.54 236.27 L +412.639 236.098 L +412.738 236.27 L +412.805 236.27 L +412.937 236.156 L +413.003 236.156 L +413.003 236.041 L +412.937 236.041 L +412.937 235.927 L +413.003 235.927 L +413.235 235.755 L +413.268 235.812 L +413.334 235.927 L +413.466 235.927 L +413.532 235.927 L +413.499 235.984 L +413.532 236.041 L +413.466 236.041 L +413.466 236.156 L +413.532 236.156 L +413.499 236.213 L +413.532 236.27 L +413.631 236.213 L +413.731 236.27 L +413.764 236.213 L +413.731 236.156 L +413.797 236.156 L +413.83 236.098 L +413.929 236.27 L +413.995 236.27 L +414.028 236.213 L +414.028 236.671 L +413.995 236.614 L +413.929 236.958 L +413.995 236.958 L +414.028 236.9 L +414.128 237.301 L +414.227 237.244 L +414.26 237.301 L +414.425 237.13 L +414.458 237.187 L +414.524 237.187 L +414.491 237.244 L +414.524 237.301 L +414.624 237.244 L +414.723 237.301 L +414.756 237.244 L +414.723 237.187 L +414.789 237.187 L +414.789 237.072 L +414.723 237.072 L +414.756 237.015 L +414.723 236.958 L +414.789 236.958 L +414.921 236.843 L +414.987 236.843 L +415.021 236.786 L +415.12 236.958 L +415.219 236.9 L +415.252 236.958 L +415.318 237.072 L +415.252 237.072 L +415.219 237.13 L +415.252 237.187 L +415.318 237.301 L +415.451 237.301 L +415.517 237.301 L +415.616 237.13 L +415.715 237.301 L +415.781 237.301 L +415.914 237.187 L +415.98 237.187 L +416.013 237.13 L +415.98 237.072 L +415.914 236.958 L +415.98 236.958 L +416.013 236.9 L +416.046 236.958 L +416.112 236.614 L +416.013 236.671 L +415.98 236.614 L +415.914 236.499 L +415.98 236.499 L +416.013 236.442 L +415.98 236.385 L +415.914 236.27 L +415.98 236.27 L +416.013 236.213 L +416.046 236.27 L +416.211 236.098 L +416.244 236.156 L +416.31 236.156 L +416.31 236.27 L +416.443 236.27 L +416.509 236.27 L +416.707 235.812 L +416.773 235.812 L +416.773 235.697 L +416.707 235.697 L +416.509 235.239 L +416.443 235.239 L +416.31 235.354 L +416.244 235.354 L +416.211 235.411 L +416.112 235.239 L +416.013 235.296 L +415.98 235.239 L +415.914 235.125 L +415.98 235.125 L +416.013 235.067 L +415.98 235.01 L +415.914 234.895 L +415.98 234.895 L +416.013 234.838 L +416.046 234.895 L +416.112 234.552 L +416.013 234.609 L +415.98 234.552 L +415.98 234.437 L +416.013 234.38 L +415.98 234.323 L +415.914 234.208 L +415.98 234.208 L +416.013 234.151 L +416.046 234.208 L +416.211 234.036 L +416.244 234.093 L +416.31 234.093 L +416.31 234.208 L +416.443 234.208 L +416.509 234.208 L +416.707 233.75 L +416.773 233.75 L +416.807 233.692 L +416.906 233.864 L +416.972 233.864 L +417.005 233.807 L +417.104 234.208 L +417.237 234.208 L +417.303 234.208 L +417.402 234.036 L +417.435 234.093 L +417.501 234.093 L +417.468 234.151 L +417.501 234.208 L +417.7 234.093 L +417.766 234.093 L +417.766 233.979 L +417.7 233.979 L +417.7 233.864 L +417.766 233.864 L +417.898 233.52 L +417.766 233.52 L +417.7 233.52 L +417.7 233.406 L +417.766 233.406 L +417.766 233.291 L +417.7 233.291 L +417.7 233.177 L +417.766 233.177 L +417.997 233.005 L +418.03 233.062 L +418.096 233.062 L +418.096 233.177 L +418.229 233.177 L +418.295 233.177 L +418.394 232.776 L +418.493 232.833 L +418.526 232.776 L +418.493 232.718 L +418.56 232.718 L +418.593 232.661 L +418.692 232.833 L +418.758 232.833 L +418.791 232.776 L +418.89 233.177 L +418.99 233.119 L +419.023 233.177 L +419.188 233.005 L +419.221 233.062 L +419.287 233.062 L +419.287 233.635 L +419.221 233.635 L +419.221 233.75 L +419.287 233.75 L +419.486 234.208 L +419.552 234.208 L +419.684 234.093 L +419.75 234.093 L +419.783 234.036 L +419.883 234.208 L +419.982 234.151 L +420.015 234.208 L +420.18 233.807 L +420.213 233.864 L +420.279 233.864 L +420.379 233.692 L +420.478 233.864 L +420.544 233.864 L +420.577 233.807 L +420.676 234.208 L +420.742 234.208 L +420.776 234.151 L +420.809 234.208 L +420.974 234.036 L +421.007 234.093 L +421.073 234.208 L +421.205 234.208 L +421.272 234.208 L +421.239 234.265 L +421.272 234.323 L +421.205 234.323 L +421.205 234.437 L +421.272 234.437 L +421.239 234.494 L +421.272 234.552 L +421.205 234.552 L +421.073 234.666 L +421.007 234.666 L +420.974 234.724 L +421.007 234.781 L +421.073 234.895 L +421.205 234.895 L +421.272 234.895 L +421.239 234.953 L +421.272 235.01 L +421.205 235.01 L +421.205 235.125 L +421.272 235.125 L +421.239 235.182 L +421.272 235.239 L +421.205 235.239 L +421.073 235.354 L +421.007 235.354 L +420.974 235.411 L +420.875 235.239 L +420.776 235.296 L +420.742 235.239 L +420.577 235.64 L +420.544 235.583 L +420.478 235.583 L +420.478 235.927 L +420.544 235.927 L +420.577 235.869 L +420.676 236.27 L +420.742 236.27 L +420.776 236.213 L +420.809 236.27 L +420.974 236.098 L +421.007 236.156 L +421.073 236.27 L +421.205 236.27 L +421.272 236.27 L +421.239 236.328 L +421.272 236.385 L +421.205 236.385 L +421.205 236.499 L +421.272 236.499 L +421.239 236.557 L +421.272 236.614 L +421.205 236.614 L +421.007 236.729 L +420.974 236.786 L +421.007 236.843 L +421.205 236.958 L +421.272 236.958 L +421.239 237.015 L +421.272 237.072 L +421.205 237.072 L +421.205 237.187 L +421.272 237.187 L +421.239 237.244 L +421.272 237.301 L +421.371 237.244 L +421.47 237.301 L +421.503 237.244 L +421.47 237.187 L +421.536 237.187 L +421.569 237.13 L +421.669 237.301 L +421.735 237.301 L +421.768 237.244 L +421.801 237.301 L +421.966 236.9 L +421.999 236.958 L +422.065 236.958 L +422.165 236.786 L +422.198 236.843 L +422.264 236.843 L +422.231 236.9 L +422.264 236.958 L +422.363 236.9 L +422.462 237.301 L +422.528 237.301 L +422.727 237.187 L +422.76 237.13 L +422.859 237.301 L +422.991 237.301 L +423.058 237.301 L +423.157 236.9 L +423.19 236.958 L +423.256 236.958 L +423.256 236.614 L +423.19 236.614 L +423.157 236.671 L +423.157 236.213 L +423.19 236.27 L +423.256 236.27 L +423.355 236.098 L +423.454 236.27 L +423.521 236.27 L +423.719 236.156 L +423.752 236.098 L +423.719 236.041 L +423.653 235.927 L +423.719 235.927 L +423.752 235.869 L +423.785 235.927 L +423.951 235.755 L +423.984 235.812 L +424.05 235.812 L +424.248 236.27 L +424.314 236.27 L +424.447 236.156 L +424.513 236.156 L +424.546 236.098 L +424.645 236.27 L +424.744 236.213 L +424.777 236.27 L +424.777 236.385 L +424.744 236.442 L +424.777 236.499 L +424.844 236.614 L +424.777 236.614 L +424.744 236.671 L +424.711 236.614 L +424.645 236.958 L +424.744 236.9 L +424.777 236.958 L +424.844 237.072 L +424.777 237.072 L +424.744 237.13 L +424.777 237.187 L +424.844 237.301 L +424.976 237.301 L +425.042 237.301 L +425.141 237.13 L +425.241 237.301 L +425.307 237.301 L +425.439 237.187 L +425.505 237.187 L +425.505 237.072 L +425.439 237.072 L +425.439 236.958 L +425.505 236.958 L +425.737 236.786 L +425.77 236.843 L +425.836 236.958 L +425.968 236.958 L +426.034 236.958 L +426.034 237.072 L +425.968 237.072 L +425.968 237.187 L +426.034 237.187 L +426.034 237.301 L +426.233 237.301 L +426.266 237.244 L +426.233 237.187 L +426.299 237.187 L +426.332 237.13 L +426.431 237.301 L +426.497 237.301 L +426.53 237.244 L +426.563 237.301 L +426.729 236.9 L +426.762 236.958 L +426.828 236.614 L +426.762 236.614 L +426.729 236.671 L +426.729 236.213 L +426.762 236.27 L +426.927 236.098 L +426.96 236.156 L +427.027 236.156 L +426.993 236.213 L +427.027 236.27 L +427.126 236.213 L +427.225 236.27 L +427.258 236.213 L +427.225 236.156 L +427.291 236.156 L +427.291 236.041 L +427.225 236.041 L +427.258 235.984 L +427.225 235.927 L +427.291 235.927 L +427.423 235.812 L +427.49 235.812 L +427.523 235.755 L +427.49 235.697 L +427.423 235.583 L +427.291 235.583 L +427.225 235.583 L +427.258 235.526 L +427.225 235.468 L +427.291 235.468 L +427.291 235.354 L +427.225 235.354 L +427.258 235.296 L +427.225 235.239 L +427.126 235.296 L +427.027 235.239 L +426.993 235.296 L +427.027 235.354 L +426.96 235.354 L +426.927 235.411 L +426.828 235.239 L +426.762 235.239 L +426.729 235.296 L +426.729 234.838 L +426.762 234.895 L +426.828 234.552 L +426.762 234.552 L +426.729 234.609 L +426.729 234.151 L +426.762 234.208 L +426.927 234.036 L +426.96 234.093 L +427.027 234.093 L +426.993 234.151 L +427.027 234.208 L +427.126 234.151 L +427.225 234.208 L +427.258 234.151 L +427.225 234.093 L +427.291 234.093 L +427.291 233.979 L +427.225 233.979 L +427.258 233.922 L +427.225 233.864 L +427.291 233.864 L +427.423 233.75 L +427.49 233.75 L +427.523 233.692 L +427.622 233.864 L +427.721 233.807 L +427.754 233.864 L +427.82 233.979 L +427.754 233.979 L +427.721 234.036 L +427.754 234.093 L +427.82 234.208 L +427.953 234.208 L +428.019 234.208 L +428.118 234.036 L +428.217 234.208 L +428.283 234.208 L +428.416 234.093 L +428.482 234.093 L +428.515 234.036 L +428.482 233.979 L +428.416 233.864 L +428.482 233.864 L +428.515 233.807 L +428.548 233.864 L +428.614 233.52 L +428.515 233.578 L +428.482 233.52 L +428.416 233.406 L +428.482 233.406 L +428.515 233.349 L +428.482 233.291 L +428.416 233.177 L +428.482 233.177 L +428.515 233.119 L +428.548 233.177 L +428.713 233.005 L +428.746 233.062 L +428.813 233.062 L +428.813 233.177 L +428.945 233.177 L +429.011 233.177 L +429.209 232.718 L +429.276 232.718 L +429.276 232.604 L +429.209 232.604 L +429.011 232.146 L +428.945 232.146 L +428.813 232.26 L +428.746 232.26 L +428.713 232.317 L +428.614 232.146 L +428.515 232.203 L +428.482 232.146 L +428.416 232.031 L +428.482 232.031 L +428.515 231.974 L +428.482 231.916 L +428.416 231.802 L +428.482 231.802 L +428.515 231.745 L +428.548 231.802 L +428.614 231.458 L +428.515 231.515 L +428.482 231.458 L +428.416 231.344 L +428.482 231.344 L +428.515 231.286 L +428.482 231.229 L +428.416 231.114 L +428.283 231.114 L +428.217 231.114 L +428.118 231.286 L +428.019 231.114 L +427.953 231.114 L +427.82 231.229 L +427.754 231.229 L +427.721 231.286 L +427.754 231.344 L +427.82 231.344 L +427.82 231.458 L +427.754 231.458 L +427.721 231.515 L +427.688 231.458 L +427.523 231.63 L +427.49 231.573 L +427.423 231.458 L +427.291 231.458 L +427.225 231.458 L +427.258 231.401 L +427.225 231.344 L +427.291 231.344 L +427.291 231.229 L +427.225 231.229 L +427.258 231.172 L +427.225 231.114 L +427.126 231.172 L +427.027 231.114 L +426.993 231.172 L +427.027 231.229 L +426.96 231.229 L +426.927 231.286 L +426.828 231.114 L +426.762 231.114 L +426.729 231.172 L +426.729 230.713 L +426.762 230.771 L +426.828 230.427 L +426.762 230.427 L +426.729 230.484 L +426.729 230.026 L +426.762 230.083 L +426.927 229.911 L +426.96 229.969 L +427.027 229.969 L +426.993 230.026 L +427.027 230.083 L +427.126 230.026 L +427.225 230.083 L +427.258 230.026 L +427.225 229.969 L +427.291 229.969 L +427.291 229.854 L +427.225 229.854 L +427.258 229.797 L +427.225 229.74 L +427.291 229.74 L +427.423 229.625 L +427.49 229.625 L +427.523 229.568 L +427.49 229.51 L +427.423 229.396 L +427.291 229.396 L +427.225 229.396 L +427.258 229.339 L +427.225 229.281 L +427.291 229.281 L +427.291 229.167 L +427.225 229.167 L +427.258 229.109 L +427.225 229.052 L +427.126 229.109 L +427.027 229.052 L +426.993 229.109 L +427.027 229.167 L +426.96 229.167 L +426.927 229.224 L +426.828 229.052 L +426.762 229.052 L +426.729 229.109 L +426.729 228.651 L +426.762 228.708 L +426.828 228.365 L +426.762 228.365 L +426.729 228.422 L +426.729 227.964 L +426.762 228.021 L +426.927 227.849 L +426.96 227.906 L +427.027 227.906 L +426.993 227.964 L +427.027 228.021 L +427.126 227.964 L +427.225 228.021 L +427.258 227.964 L +427.225 227.906 L +427.291 227.906 L +427.291 227.792 L +427.225 227.792 L +427.258 227.735 L +427.225 227.677 L +427.291 227.677 L +427.423 227.563 L +427.49 227.563 L +427.523 227.505 L +427.622 227.677 L +427.721 227.62 L +427.754 227.677 L +427.82 227.792 L +427.754 227.792 L +427.721 227.849 L +427.754 227.906 L +427.82 228.021 L +427.953 228.021 L +428.019 228.021 L +428.118 227.849 L +428.217 228.021 L +428.283 228.021 L +428.416 227.906 L +428.482 227.906 L +428.515 227.849 L +428.482 227.792 L +428.416 227.677 L +428.482 227.677 L +428.515 227.62 L +428.548 227.677 L +428.614 227.334 L +428.515 227.391 L +428.482 227.334 L +428.416 227.219 L +428.482 227.219 L +428.515 227.162 L +428.482 227.104 L +428.416 226.99 L +428.482 226.99 L +428.515 226.933 L +428.548 226.99 L +428.713 226.818 L +428.746 226.875 L +428.813 226.875 L +428.813 226.99 L +428.945 226.99 L +429.011 226.99 L +429.209 226.532 L +429.276 226.532 L +429.309 226.474 L +429.408 226.646 L +429.474 226.646 L +429.507 226.589 L +429.606 226.99 L +429.739 226.99 L +429.805 226.99 L +429.904 226.818 L +429.937 226.875 L +430.003 226.875 L +429.97 226.933 L +430.003 226.99 L +430.102 226.933 L +430.102 227.391 L +430.003 227.334 L +429.97 227.391 L +430.003 227.448 L +429.937 227.448 L +429.937 227.563 L +430.003 227.563 L +429.97 227.62 L +430.003 227.677 L +430.102 227.62 L +430.202 228.021 L +430.268 228.021 L +430.499 227.849 L +430.532 227.906 L +430.599 228.021 L +430.731 228.021 L +430.797 228.021 L +430.896 227.62 L +430.995 227.677 L +431.029 227.62 L +430.995 227.563 L +431.062 227.563 L +431.095 227.505 L +431.194 227.677 L +431.26 227.677 L +431.293 227.62 L +431.392 228.021 L +431.492 227.964 L +431.525 228.021 L +431.69 227.849 L +431.723 227.906 L +431.789 227.906 L +431.789 228.021 L +431.988 228.021 L +432.021 227.964 L +431.988 227.906 L +432.054 227.906 L +432.054 227.792 L +431.988 227.792 L +432.021 227.735 L +431.988 227.677 L +432.054 227.677 L +432.186 227.563 L +432.252 227.563 L +432.252 227.448 L +432.186 227.448 L +432.186 227.334 L +432.054 227.334 L +431.988 227.334 L +432.021 227.276 L +431.988 227.219 L +432.054 227.219 L +432.054 227.104 L +431.988 227.104 L +432.021 227.047 L +431.988 226.99 L +432.054 226.99 L +432.186 226.875 L +432.252 226.875 L +432.285 226.818 L +432.385 226.99 L +432.484 226.933 L +432.517 226.99 L +432.682 226.589 L +432.715 226.646 L +432.781 226.646 L +432.781 226.302 L +432.715 226.302 L +432.682 226.36 L +432.583 225.959 L +432.517 225.959 L +432.484 226.016 L +432.451 225.959 L +432.285 226.131 L +432.252 226.073 L +432.186 226.073 L +432.186 225.959 L +432.054 225.959 L +431.988 225.959 L +432.021 225.901 L +431.988 225.844 L +432.054 225.844 L +432.054 225.73 L +431.988 225.73 L +432.021 225.672 L +431.988 225.615 L +432.054 225.615 L +432.186 225.5 L +432.252 225.5 L +432.252 225.386 L +432.186 225.386 L +432.186 225.271 L +432.054 225.271 L +431.988 225.271 L +432.021 225.214 L +431.988 225.157 L +432.054 225.157 L +432.054 225.042 L +431.988 225.042 L +432.021 224.985 L +431.988 224.928 L +432.054 224.928 L +432.186 224.813 L +432.252 224.813 L +432.285 224.756 L +432.385 224.928 L +432.484 224.87 L +432.517 224.928 L +432.682 224.527 L +432.715 224.584 L +432.781 224.584 L +432.881 224.412 L +432.98 224.584 L +433.046 224.584 L +433.079 224.527 L +433.178 224.928 L +433.244 224.928 L +433.278 224.87 L +433.311 224.928 L +433.476 224.756 L +433.509 224.813 L +433.575 224.928 L +433.708 224.928 L +433.774 224.928 L +433.873 224.527 L +433.972 224.584 L +434.005 224.527 L +433.972 224.469 L +434.038 224.469 L +434.038 224.355 L +433.972 224.355 L +434.005 224.297 L +433.972 224.24 L +433.873 224.297 L +433.873 223.839 L +433.972 223.896 L +434.005 223.839 L +433.972 223.782 L +434.038 223.782 L +434.071 223.725 L +434.171 223.896 L +434.237 223.896 L +434.27 223.839 L +434.303 223.896 L +434.468 223.495 L +434.501 223.553 L +434.667 223.381 L +434.7 223.438 L +434.766 223.438 L +434.733 223.495 L +434.766 223.553 L +434.865 223.495 L +434.964 223.896 L +435.03 223.896 L +435.163 223.782 L +435.229 223.782 L +435.262 223.725 L +435.361 223.896 L +435.494 223.896 L +435.56 223.896 L +435.56 224.011 L +435.494 224.011 L +435.494 224.126 L +435.56 224.126 L +435.56 224.24 L +435.494 224.24 L +435.361 224.584 L +435.494 224.584 L +435.56 224.584 L +435.56 224.698 L +435.494 224.698 L +435.494 224.813 L +435.56 224.813 L +435.56 224.928 L +435.692 224.928 L +435.758 224.928 L +435.857 224.756 L +435.957 224.928 L +436.023 224.928 L +436.155 224.813 L +436.221 224.813 L +436.254 224.756 L +436.221 224.698 L +436.155 224.698 L +436.155 224.584 L +436.221 224.584 L +436.254 224.527 L +436.287 224.584 L +436.453 224.412 L +436.486 224.469 L +436.552 224.469 L +436.552 224.584 L +436.684 224.584 L +436.75 224.584 L +436.717 224.641 L +436.75 224.698 L +436.684 224.698 L +436.684 224.813 L +436.75 224.813 L +436.717 224.87 L +436.75 224.928 L +436.949 224.813 L +437.015 224.813 L +437.048 224.756 L +437.147 224.928 L +437.246 224.87 L +437.28 224.928 L +437.346 225.042 L +437.28 225.042 L +437.246 225.099 L +437.28 225.157 L +437.346 225.271 L +437.28 225.271 L +437.246 225.329 L +437.213 225.271 L +437.147 225.615 L +437.246 225.558 L +437.28 225.615 L +437.28 225.73 L +437.246 225.787 L +437.28 225.844 L +437.346 225.959 L +437.28 225.959 L +437.246 226.016 L +437.213 225.959 L +437.048 226.131 L +437.015 226.073 L +436.949 226.073 L +436.949 225.959 L +436.75 225.959 L +436.717 226.016 L +436.75 226.073 L +436.684 226.073 L +436.684 226.188 L +436.75 226.188 L +436.717 226.245 L +436.75 226.302 L +436.684 226.302 L +436.552 226.417 L +436.486 226.417 L +436.486 226.532 L +436.552 226.532 L +436.552 226.646 L +436.684 226.646 L +436.75 226.646 L +436.717 226.703 L +436.75 226.761 L +436.684 226.761 L +436.684 226.875 L +436.75 226.875 L +436.717 226.933 L +436.75 226.99 L +436.949 226.875 L +437.015 226.875 L +437.048 226.818 L +437.147 226.99 L +437.246 226.933 L +437.28 226.99 L +437.28 227.104 L +437.246 227.162 L +437.28 227.219 L +437.346 227.334 L +437.28 227.334 L +437.246 227.391 L +437.213 227.334 L +437.147 227.677 L +437.246 227.62 L +437.28 227.677 L +437.28 227.792 L +437.246 227.849 L +437.28 227.906 L +437.346 228.021 L +437.478 228.021 L +437.544 228.021 L +437.643 227.849 L +437.743 228.021 L +437.809 228.021 L +437.941 227.906 L +438.007 227.906 L +438.007 227.792 L +437.941 227.792 L +437.941 227.677 L +438.007 227.677 L +438.139 227.677 L +438.239 227.505 L +438.272 227.563 L +438.338 227.677 L +438.47 227.677 L +438.536 227.677 L +438.536 227.792 L +438.47 227.792 L +438.47 227.906 L +438.536 227.906 L +438.536 228.021 L +438.735 228.021 L +438.768 227.964 L +438.735 227.906 L +438.801 227.906 L +438.834 227.849 L +438.933 228.021 L +438.999 228.021 L +439.032 227.964 L +439.066 228.021 L +439.231 227.62 L +439.264 227.677 L +439.33 227.334 L +439.264 227.334 L +439.231 227.391 L +439.231 226.933 L +439.264 226.99 L +439.429 226.818 L +439.462 226.875 L +439.529 226.875 L +439.496 226.933 L +439.529 226.99 L +439.628 226.933 L +439.727 226.99 L +439.76 226.933 L +439.727 226.875 L +439.793 226.875 L +439.793 226.761 L +439.727 226.761 L +439.76 226.703 L +439.727 226.646 L +439.793 226.646 L +439.992 226.532 L +440.025 226.474 L +440.124 226.646 L +440.223 226.589 L +440.256 226.646 L +440.256 226.761 L +440.223 226.818 L +440.256 226.875 L +440.322 226.99 L +440.455 226.99 L +440.521 226.99 L +440.62 226.818 L +440.719 226.99 L +440.785 226.99 L +440.818 226.933 L +440.818 227.391 L +440.785 227.334 L +440.719 227.334 L +440.719 227.677 L +440.785 227.677 L +440.818 227.62 L +440.918 228.021 L +440.984 228.021 L +441.017 227.964 L +441.05 228.021 L +441.215 227.849 L +441.248 227.906 L +441.315 227.906 L +441.315 228.021 L +441.447 228.021 L +441.513 228.021 L +441.711 227.563 L +441.778 227.563 L +441.811 227.505 L +441.91 227.677 L +441.976 227.677 L +442.009 227.62 L +442.108 228.021 L +442.241 228.021 L +442.307 228.021 L +442.406 227.849 L +442.439 227.906 L +442.505 227.906 L +442.472 227.964 L +442.505 228.021 L +442.604 227.964 L +442.604 228.422 L +442.505 228.365 L +442.472 228.422 L +442.505 228.479 L +442.439 228.479 L +442.439 228.594 L +442.505 228.594 L +442.472 228.651 L +442.505 228.708 L +442.604 228.651 L +442.604 229.109 L +442.505 229.052 L +442.472 229.109 L +442.505 229.167 L +442.439 229.167 L +442.406 229.224 L +442.307 229.052 L +442.241 229.052 L +442.009 229.453 L +441.976 229.396 L +441.91 229.74 L +441.976 229.74 L +442.009 229.682 L +442.108 230.083 L +442.241 230.083 L +442.307 230.083 L +442.406 229.911 L +442.439 229.969 L +442.505 229.969 L +442.472 230.026 L +442.505 230.083 L +442.604 230.026 L +442.604 230.484 L +442.505 230.427 L +442.472 230.484 L +442.505 230.542 L +442.439 230.542 L +442.439 230.656 L +442.505 230.656 L +442.472 230.713 L +442.505 230.771 L +442.604 230.713 L +442.604 231.172 L +442.505 231.114 L +442.472 231.172 L +442.505 231.229 L +442.439 231.229 L +442.406 231.286 L +442.307 231.114 L +442.241 231.114 L +442.009 231.515 L +441.976 231.458 L +441.811 231.63 L +441.778 231.573 L +441.711 231.573 L +441.513 231.114 L +441.447 231.114 L +441.315 231.229 L +441.248 231.229 L +441.215 231.286 L +441.116 231.114 L +441.017 231.172 L +440.984 231.114 L +440.818 231.515 L +440.785 231.458 L +440.719 231.458 L +440.719 231.802 L +440.785 231.802 L +440.818 231.745 L +440.818 232.203 L +440.785 232.146 L +440.719 232.146 L +440.62 232.317 L +440.521 232.146 L +440.455 232.146 L +440.322 232.26 L +440.256 232.26 L +440.223 232.317 L +440.256 232.375 L +440.322 232.489 L +440.256 232.489 L +440.223 232.547 L +440.19 232.489 L +440.124 232.833 L +440.223 232.776 L +440.256 232.833 L +440.256 232.948 L +440.223 233.005 L +440.256 233.062 L +440.322 233.177 L +440.455 233.177 L +440.521 233.177 L +440.62 233.005 L +440.719 233.177 L +440.785 233.177 L +440.818 233.119 L +440.818 233.578 L +440.785 233.52 L +440.719 233.52 L +440.719 233.864 L +440.785 233.864 L +440.818 233.807 L +440.918 234.208 L +440.984 234.208 L +441.017 234.151 L +441.05 234.208 L +441.215 234.036 L +441.248 234.093 L +441.315 234.093 L +441.315 234.208 L +441.447 234.208 L +441.513 234.208 L +441.711 233.75 L +441.778 233.75 L +441.811 233.692 L +441.91 233.864 L +441.976 233.864 L +442.009 233.807 L +442.108 234.208 L +442.241 234.208 L +442.307 234.208 L +442.406 234.036 L +442.439 234.093 L +442.505 234.093 L +442.472 234.151 L +442.505 234.208 L +442.604 234.151 L +442.604 234.609 L +442.505 234.552 L +442.472 234.609 L +442.505 234.666 L +442.439 234.666 L +442.439 234.781 L +442.505 234.781 L +442.472 234.838 L +442.505 234.895 L +442.604 234.838 L +442.604 235.296 L +442.505 235.239 L +442.472 235.296 L +442.505 235.354 L +442.439 235.354 L +442.406 235.411 L +442.307 235.239 L +442.241 235.239 L +442.009 235.64 L +441.976 235.583 L +441.91 235.927 L +441.976 235.927 L +442.009 235.869 L +442.108 236.27 L +442.241 236.27 L +442.307 236.27 L +442.406 236.098 L +442.439 236.156 L +442.505 236.156 L +442.472 236.213 L +442.505 236.27 L +442.604 236.213 L +442.604 236.671 L +442.505 236.614 L +442.472 236.671 L +442.505 236.729 L +442.439 236.729 L +442.439 236.843 L +442.505 236.843 L +442.472 236.9 L +442.505 236.958 L +442.604 236.9 L +442.704 237.301 L +442.77 237.301 L +442.902 237.187 L +442.968 237.187 L +443.001 237.13 L +443.101 237.301 L +443.233 237.301 L +443.299 237.301 L +443.398 236.9 L +443.497 236.958 L +443.531 236.9 L +443.497 236.843 L +443.564 236.843 L +443.597 236.786 L +443.696 236.958 L +443.762 236.958 L +443.795 236.9 L +443.894 237.301 L +443.994 237.244 L +444.027 237.301 L +444.192 237.13 L +444.225 237.187 L +444.291 237.187 L +444.291 237.301 L +444.49 237.301 L +444.523 237.244 L +444.49 237.187 L +444.556 237.187 L +444.556 237.072 L +444.49 237.072 L +444.523 237.015 L +444.49 236.958 L +444.556 236.958 L +444.688 236.843 L +444.754 236.843 L +444.754 236.729 L +444.688 236.729 L +444.688 236.614 L +444.556 236.614 L +444.49 236.614 L +444.523 236.557 L +444.49 236.499 L +444.556 236.499 L +444.556 236.385 L +444.49 236.385 L +444.523 236.328 L +444.49 236.27 L +444.556 236.27 L +444.688 236.156 L +444.754 236.156 L +444.787 236.098 L +444.887 236.27 L +444.986 236.213 L +445.019 236.27 L +445.184 235.869 L +445.217 235.927 L +445.284 235.927 L +445.383 235.755 L +445.482 235.927 L +445.548 235.927 L +445.581 235.869 L +445.68 236.27 L +445.747 236.27 L +445.78 236.213 L +445.813 236.27 L +445.978 236.098 L +446.011 236.156 L +446.077 236.27 L +446.21 236.27 L +446.276 236.27 L +446.243 236.328 L +446.276 236.385 L +446.21 236.385 L +446.21 236.499 L +446.276 236.499 L +446.243 236.557 L +446.276 236.614 L +446.21 236.614 L +446.077 236.729 L +446.011 236.729 L +445.978 236.786 L +446.011 236.843 L +446.077 236.958 L +446.21 236.958 L +446.276 236.958 L +446.243 237.015 L +446.276 237.072 L +446.21 237.072 L +446.21 237.187 L +446.276 237.187 L +446.243 237.244 L +446.276 237.301 L +446.375 237.244 L +446.474 237.301 L +446.507 237.244 L +446.474 237.187 L +446.54 237.187 L +446.573 237.13 L +446.673 237.301 L +446.739 237.301 L +446.772 237.244 L +446.805 237.301 L +446.97 236.9 L +447.003 236.958 L +447.169 236.786 L +447.202 236.843 L +447.268 236.843 L +447.235 236.9 L +447.268 236.958 L +447.367 236.9 L +447.466 237.301 L +447.533 237.301 L +447.665 237.187 L +447.731 237.187 L +447.764 237.13 L +447.863 237.301 L +447.996 237.301 L +448.062 237.301 L +448.161 236.9 L +448.194 236.958 L +448.26 236.958 L +448.26 236.614 L +448.194 236.614 L +448.161 236.671 L +448.161 236.213 L +448.194 236.27 L +448.26 236.27 L +448.359 236.098 L +448.459 236.27 L +448.525 236.27 L +448.657 236.156 L +448.723 236.156 L +448.756 236.098 L +448.723 236.041 L +448.657 235.927 L +448.723 235.927 L +448.756 235.869 L +448.789 235.927 L +448.855 235.583 L +448.756 235.64 L +448.723 235.583 L +448.723 235.468 L +448.756 235.411 L +448.723 235.354 L +448.657 235.239 L +448.525 235.239 L +448.459 235.239 L +448.359 235.411 L +448.26 235.239 L +448.194 235.239 L +448.161 235.296 L +448.161 234.838 L +448.194 234.895 L +448.26 234.895 L +448.26 234.552 L +448.194 234.552 L +448.161 234.609 L +448.161 234.151 L +448.194 234.208 L +448.26 234.208 L +448.359 234.036 L +448.459 234.208 L +448.525 234.208 L +448.657 234.093 L +448.723 234.093 L +448.756 234.036 L +448.723 233.979 L +448.657 233.979 L +448.657 233.864 L +448.723 233.864 L +448.756 233.807 L +448.789 233.864 L +448.955 233.692 L +448.988 233.75 L +449.054 233.75 L +449.054 233.864 L +449.186 233.864 L +449.252 233.864 L +449.219 233.922 L +449.252 233.979 L +449.186 233.979 L +449.186 234.093 L +449.252 234.093 L +449.219 234.151 L +449.252 234.208 L +449.451 234.093 L +449.517 234.093 L +449.55 234.036 L +449.649 234.208 L +449.749 234.151 L +449.782 234.208 L +449.947 233.807 L +449.98 233.864 L +450.046 233.864 L +450.046 233.52 L +449.98 233.52 L +449.947 233.578 L +449.947 233.119 L +449.98 233.177 L +450.046 233.177 L +450.145 233.005 L +450.245 233.177 L +450.311 233.177 L +450.443 233.062 L +450.509 233.062 L +450.509 232.948 L +450.443 232.948 L +450.443 232.833 L +450.509 232.833 L +450.741 232.661 L +450.774 232.718 L +450.84 232.833 L +450.972 232.833 L +451.038 232.833 L +451.038 232.948 L +450.972 232.948 L +450.972 233.062 L +451.038 233.062 L +451.038 233.177 L +451.237 233.177 L +451.27 233.119 L +451.237 233.062 L +451.303 233.062 L +451.336 233.005 L +451.435 233.177 L +451.501 233.177 L +451.535 233.119 L +451.535 233.578 L +451.501 233.52 L +451.435 233.52 L +451.435 233.864 L +451.501 233.864 L +451.535 233.807 L +451.634 234.208 L +451.733 234.151 L +451.766 234.208 L +451.931 234.036 L +451.964 234.093 L +452.031 234.093 L +451.998 234.151 L +452.031 234.208 L +452.13 234.151 L +452.229 234.208 L +452.262 234.151 L +452.229 234.093 L +452.295 234.093 L +452.295 233.979 L +452.229 233.979 L +452.262 233.922 L +452.229 233.864 L +452.295 233.864 L +452.428 233.75 L +452.494 233.75 L +452.527 233.692 L +452.626 233.864 L +452.725 233.807 L +452.758 233.864 L +452.758 233.979 L +452.725 234.036 L +452.758 234.093 L +452.824 234.208 L +452.957 234.208 L +453.023 234.208 L +453.122 234.036 L +453.221 234.208 L +453.287 234.208 L +453.321 234.151 L +453.321 234.609 L +453.287 234.552 L +453.221 234.552 L +453.221 234.895 L +453.287 234.895 L +453.321 234.838 L +453.321 235.296 L +453.287 235.239 L +453.221 235.239 L +453.122 235.411 L +453.023 235.239 L +452.957 235.239 L +452.824 235.354 L +452.758 235.354 L +452.725 235.411 L +452.758 235.468 L +452.824 235.583 L +452.758 235.583 L +452.725 235.64 L +452.692 235.583 L +452.626 235.927 L +452.725 235.869 L +452.758 235.927 L +452.824 236.041 L +452.758 236.041 L +452.725 236.098 L +452.758 236.156 L +452.824 236.27 L +452.957 236.27 L +453.023 236.27 L +453.122 236.098 L +453.221 236.27 L +453.287 236.27 L +453.321 236.213 L +453.321 236.671 L +453.287 236.614 L +453.221 236.614 L +453.221 236.958 L +453.287 236.958 L +453.321 236.9 L +453.42 237.301 L +453.486 237.301 L +453.519 237.244 L +453.552 237.301 L +453.717 237.13 L +453.75 237.187 L +453.817 237.301 L +453.949 237.301 L +454.015 237.301 L +454.214 236.843 L +454.28 236.843 L +454.313 236.786 L +454.412 236.958 L +454.478 236.958 L +454.511 236.9 L +454.61 237.301 L +454.743 237.301 L +454.809 237.301 L +454.908 237.13 L +454.941 237.187 L +455.007 237.187 L +454.974 237.244 L +455.007 237.301 L +455.206 237.187 L +455.272 237.187 L +455.272 237.072 L +455.206 237.072 L +455.206 236.958 L +455.272 236.958 L +455.47 236.843 L +455.503 236.786 L +455.47 236.729 L +455.404 236.614 L +455.272 236.614 L +455.206 236.614 L +455.206 236.499 L +455.272 236.499 L +455.272 236.385 L +455.206 236.385 L +455.206 236.27 L +455.272 236.27 L +455.404 236.156 L +455.47 236.156 L +455.503 236.098 L +455.603 236.27 L +455.735 236.27 L +455.801 236.27 L +455.9 235.869 L +456 235.927 L +456.033 235.869 L +456 235.812 L +456.066 235.812 L +456.099 235.755 L +456.198 235.927 L +456.264 235.927 L +456.297 235.869 L +456.396 236.27 L +456.496 236.213 L +456.529 236.27 L +456.694 236.098 L +456.727 236.156 L +456.793 236.156 L +456.793 236.729 L +456.727 236.729 L +456.727 236.843 L +456.793 236.843 L +456.992 237.301 L +457.058 237.301 L +457.19 237.187 L +457.256 237.187 L +457.289 237.13 L +457.389 237.301 L +457.488 237.244 L +457.521 237.301 L +457.686 236.9 L +457.719 236.958 L +457.786 236.958 L +457.885 236.786 L +457.984 236.958 L +458.05 236.958 L +458.083 236.9 L +458.182 237.301 L +458.249 237.301 L +458.282 237.244 L +458.315 237.301 L +458.48 237.13 L +458.513 237.187 L +458.579 237.301 L +458.712 237.301 L +458.778 237.301 L +458.745 237.359 L +458.778 237.416 L +458.712 237.416 L +458.712 237.531 L +458.778 237.531 L +458.745 237.588 L +458.778 237.645 L +458.712 237.645 L +458.579 237.76 L +458.513 237.76 L +458.48 237.817 L +458.513 237.874 L +458.579 237.989 L +458.712 237.989 L +458.778 237.989 L +458.745 238.046 L +458.778 238.103 L +458.712 238.103 L +458.712 238.218 L +458.778 238.218 L +458.745 238.275 L +458.778 238.333 L +458.712 238.333 L +458.579 238.447 L +458.513 238.447 L +458.48 238.504 L +458.381 238.333 L +458.282 238.39 L +458.249 238.333 L +458.083 238.734 L +458.05 238.676 L +457.984 238.676 L +457.984 239.02 L +458.05 239.02 L +458.083 238.963 L +458.182 239.364 L +458.249 239.364 L +458.282 239.306 L +458.315 239.364 L +458.48 239.192 L +458.513 239.249 L +458.579 239.364 L +458.712 239.364 L +458.778 239.364 L +458.745 239.421 L +458.778 239.478 L +458.712 239.478 L +458.712 239.593 L +458.778 239.593 L +458.745 239.65 L +458.778 239.707 L +458.712 239.707 L +458.579 239.822 L +458.513 239.822 L +458.48 239.879 L +458.513 239.937 L +458.579 240.051 L +458.712 240.051 L +458.778 240.051 L +458.745 240.108 L +458.778 240.166 L +458.712 240.166 L +458.712 240.28 L +458.778 240.28 L +458.745 240.338 L +458.778 240.395 L +458.712 240.395 L +458.579 240.509 L +458.513 240.509 L +458.48 240.567 L +458.381 240.395 L +458.282 240.452 L +458.249 240.395 L +458.083 240.796 L +458.05 240.739 L +457.984 240.739 L +457.885 240.91 L +457.786 240.739 L +457.719 240.739 L +457.686 240.796 L +457.587 240.395 L +457.521 240.395 L +457.488 240.452 L +457.455 240.395 L +457.289 240.567 L +457.256 240.509 L +457.19 240.509 L +457.19 240.395 L +457.058 240.395 L +456.992 240.395 L +456.793 240.853 L +456.727 240.853 L +456.727 240.968 L +456.793 240.968 L +456.793 241.541 L +456.727 241.541 L +456.694 241.598 L +456.595 241.426 L +456.529 241.426 L +456.496 241.483 L +456.463 241.426 L +456.297 241.827 L +456.264 241.77 L +456.198 241.77 L +456.198 242.113 L +456.264 242.113 L +456.297 242.056 L +456.396 242.457 L +456.496 242.4 L +456.529 242.457 L +456.694 242.285 L +456.727 242.343 L +456.793 242.343 L +456.793 242.915 L +456.727 242.915 L +456.727 243.03 L +456.793 243.03 L +456.992 243.488 L +457.058 243.488 L +457.19 243.374 L +457.256 243.374 L +457.289 243.316 L +457.389 243.488 L +457.488 243.431 L +457.521 243.488 L +457.686 243.087 L +457.719 243.145 L +457.786 243.145 L +457.885 242.973 L +457.984 243.145 L +458.05 243.145 L +458.083 243.087 L +458.182 243.488 L +458.249 243.488 L +458.282 243.431 L +458.315 243.488 L +458.48 243.316 L +458.513 243.374 L +458.579 243.374 L +458.579 243.488 L +458.712 243.488 L +458.778 243.488 L +458.745 243.546 L +458.778 243.603 L +458.712 243.603 L +458.712 243.717 L +458.778 243.717 L +458.745 243.775 L +458.778 243.832 L +458.712 243.832 L +458.579 243.947 L +458.513 243.947 L +458.48 244.004 L +458.513 244.061 L +458.579 244.176 L +458.712 244.176 L +458.778 244.176 L +458.745 244.233 L +458.778 244.29 L +458.712 244.29 L +458.712 244.405 L +458.778 244.405 L +458.745 244.462 L +458.778 244.519 L +458.712 244.519 L +458.579 244.634 L +458.513 244.634 L +458.48 244.691 L +458.381 244.519 L +458.282 244.577 L +458.249 244.519 L +458.083 244.92 L +458.05 244.863 L +457.984 244.863 L +457.984 245.207 L +458.05 245.207 L +458.083 245.15 L +458.182 245.551 L +458.249 245.551 L +458.282 245.493 L +458.315 245.551 L +458.48 245.379 L +458.513 245.436 L +458.579 245.551 L +458.712 245.551 L +458.778 245.551 L +458.745 245.608 L +458.778 245.665 L +458.712 245.665 L +458.712 245.78 L +458.778 245.78 L +458.745 245.837 L +458.778 245.894 L +458.712 245.894 L +458.579 246.009 L +458.513 246.009 L +458.48 246.066 L +458.513 246.123 L +458.579 246.238 L +458.712 246.238 L +458.778 246.238 L +458.745 246.295 L +458.778 246.353 L +458.712 246.353 L +458.712 246.467 L +458.778 246.467 L +458.745 246.524 L +458.778 246.582 L +458.712 246.582 L +458.579 246.696 L +458.513 246.696 L +458.48 246.754 L +458.381 246.582 L +458.282 246.639 L +458.249 246.582 L +458.083 246.983 L +458.05 246.925 L +457.984 246.925 L +457.885 247.097 L +457.786 246.925 L +457.719 246.925 L +457.686 246.983 L +457.587 246.582 L +457.521 246.582 L +457.488 246.639 L +457.455 246.582 L +457.289 246.754 L +457.256 246.696 L +457.19 246.696 L +457.19 246.582 L +457.058 246.582 L +456.992 246.582 L +456.793 247.04 L +456.727 247.04 L +456.727 247.155 L +456.793 247.155 L +456.793 247.727 L +456.727 247.727 L +456.694 247.785 L +456.595 247.613 L +456.529 247.613 L +456.496 247.67 L +456.463 247.613 L +456.297 248.014 L +456.264 247.957 L +456.198 247.957 L +456.099 248.128 L +456.066 248.071 L +456 248.071 L +456.033 248.014 L +456 247.957 L +455.9 248.014 L +455.801 247.613 L +455.735 247.613 L +455.669 247.613 L +455.503 247.785 L +455.47 247.727 L +455.404 247.727 L +455.404 247.613 L +455.272 247.613 L +455.206 247.613 L +455.206 247.498 L +455.272 247.498 L +455.272 247.384 L +455.206 247.384 L +455.206 247.269 L +455.272 247.269 L +455.404 247.155 L +455.47 247.155 L +455.503 247.097 L +455.47 247.04 L +455.404 246.925 L +455.272 246.925 L +455.206 246.925 L +455.206 246.811 L +455.272 246.811 L +455.272 246.696 L +455.206 246.696 L +455.206 246.582 L +455.007 246.582 L +454.974 246.639 L +455.007 246.696 L +454.941 246.696 L +454.908 246.754 L +454.809 246.582 L +454.743 246.582 L +454.511 246.983 L +454.478 246.925 L +454.313 247.097 L +454.28 247.04 L +454.214 247.04 L +454.015 246.582 L +453.949 246.582 L +453.817 246.696 L +453.75 246.696 L +453.717 246.754 L +453.618 246.582 L +453.519 246.639 L +453.486 246.582 L +453.321 246.983 L +453.287 246.925 L +453.221 246.925 L +453.221 247.269 L +453.287 247.269 L +453.321 247.212 L +453.321 247.67 L +453.287 247.613 L +453.221 247.613 L +453.122 247.785 L +453.023 247.613 L +452.957 247.613 L +452.891 247.613 L +452.824 247.727 L +452.758 247.727 L +452.725 247.785 L +452.758 247.842 L +452.824 247.957 L +452.758 247.957 L +452.725 248.014 L +452.692 247.957 L +452.626 248.3 L +452.725 248.243 L +452.758 248.3 L +452.824 248.415 L +452.758 248.415 L +452.725 248.472 L +452.758 248.529 L +452.824 248.644 L +452.957 248.644 L +453.023 248.644 L +453.122 248.472 L +453.221 248.644 L +453.287 248.644 L +453.321 248.587 L +453.321 249.045 L +453.287 248.988 L +453.221 248.988 L +453.221 249.331 L +453.287 249.331 L +453.321 249.274 L +453.321 249.733 L +453.287 249.675 L +453.221 249.675 L +453.122 249.847 L +453.023 249.675 L +452.957 249.675 L +452.824 249.79 L +452.758 249.79 L +452.725 249.847 L +452.758 249.904 L +452.824 249.904 L +452.824 250.019 L +452.758 250.019 L +452.725 250.076 L +452.692 250.019 L +452.527 250.191 L +452.494 250.134 L +452.428 250.019 L +452.295 250.019 L +452.229 250.019 L +452.262 249.962 L +452.229 249.904 L +452.295 249.904 L +452.295 249.79 L +452.229 249.79 L +452.262 249.733 L +452.229 249.675 L +452.13 249.733 L +452.031 249.675 L +451.998 249.733 L +452.031 249.79 L +451.964 249.79 L +451.931 249.847 L +451.832 249.675 L +451.766 249.675 L +451.733 249.733 L +451.7 249.675 L +451.535 250.076 L +451.501 250.019 L +451.435 250.019 L +451.435 250.363 L +451.501 250.363 L +451.535 250.305 L +451.535 250.764 L +451.501 250.706 L +451.435 250.706 L +451.336 250.878 L +451.303 250.821 L +451.237 250.821 L +451.27 250.764 L +451.237 250.706 L +451.038 250.821 L +450.972 250.821 L +450.972 250.936 L +451.038 250.936 L +451.038 251.05 L +450.972 251.05 L +450.84 251.165 L +450.774 251.165 L +450.741 251.222 L +450.774 251.279 L +450.84 251.394 L +450.972 251.394 L +451.038 251.394 L +451.038 251.508 L +450.972 251.508 L +450.972 251.623 L +451.038 251.623 L +451.038 251.738 L +451.237 251.738 L +451.27 251.68 L +451.237 251.623 L +451.303 251.623 L +451.336 251.566 L +451.435 251.738 L +451.501 251.738 L +451.535 251.68 L +451.535 252.139 L +451.501 252.081 L +451.435 252.081 L +451.435 252.425 L +451.501 252.425 L +451.535 252.368 L +451.634 252.769 L +451.733 252.711 L +451.766 252.769 L +451.931 252.597 L +451.964 252.654 L +452.031 252.654 L +451.998 252.711 L +452.031 252.769 L +452.13 252.711 L +452.229 252.769 L +452.262 252.711 L +452.229 252.654 L +452.295 252.654 L +452.295 252.54 L +452.229 252.54 L +452.262 252.482 L +452.229 252.425 L +452.295 252.425 L +452.428 252.31 L +452.494 252.31 L +452.527 252.253 L +452.626 252.425 L +452.725 252.368 L +452.758 252.425 L +452.824 252.54 L +452.758 252.54 L +452.725 252.597 L +452.758 252.654 L +452.824 252.769 L +452.957 252.769 L +453.023 252.769 L +453.122 252.597 L +453.221 252.769 L +453.287 252.769 L +453.321 252.711 L +453.321 253.17 L +453.287 253.112 L +453.221 253.112 L +453.221 253.456 L +453.287 253.456 L +453.321 253.399 L +453.321 253.857 L +453.287 253.8 L +453.221 253.8 L +453.122 253.972 L +453.023 253.8 L +452.957 253.8 L +452.824 253.914 L +452.758 253.914 L +452.725 253.972 L +452.758 254.029 L +452.824 254.144 L +452.758 254.144 L +452.725 254.201 L +452.692 254.144 L +452.626 254.487 L +452.725 254.43 L +452.758 254.487 L +452.758 254.602 L +452.725 254.659 L +452.758 254.716 L +452.824 254.831 L +452.957 254.831 L +453.023 254.831 L +453.122 254.659 L +453.221 254.831 L +453.287 254.831 L +453.321 254.774 L +453.321 255.232 L +453.287 255.175 L +453.221 255.175 L +453.221 255.518 L +453.287 255.518 L +453.321 255.461 L +453.42 255.862 L +453.486 255.862 L +453.519 255.805 L +453.552 255.862 L +453.717 255.69 L +453.75 255.748 L +453.817 255.862 L +453.949 255.862 L +454.015 255.862 L +454.214 255.404 L +454.28 255.404 L +454.313 255.347 L +454.412 255.518 L +454.478 255.518 L +454.511 255.461 L +454.61 255.862 L +454.743 255.862 L +454.809 255.862 L +454.908 255.69 L +454.941 255.748 L +455.007 255.748 L +454.974 255.805 L +455.007 255.862 L +455.206 255.748 L +455.272 255.748 L +455.272 255.633 L +455.206 255.633 L +455.206 255.518 L +455.272 255.518 L +455.404 255.404 L +455.47 255.404 L +455.503 255.347 L +455.47 255.289 L +455.404 255.175 L +455.272 255.175 L +455.206 255.175 L +455.206 255.06 L +455.272 255.06 L +455.272 254.946 L +455.206 254.946 L +455.206 254.831 L +455.272 254.831 L +455.47 254.716 L +455.503 254.659 L +455.603 254.831 L +455.735 254.831 L +455.801 254.831 L +455.9 254.43 L +456 254.487 L +456.033 254.43 L +456 254.373 L +456.066 254.373 L +456.099 254.315 L +456.198 254.487 L +456.264 254.487 L +456.297 254.43 L +456.396 254.831 L +456.496 254.774 L +456.529 254.831 L +456.694 254.659 L +456.727 254.716 L +456.793 254.716 L +456.793 255.289 L +456.727 255.289 L +456.727 255.404 L +456.793 255.404 L +456.992 255.862 L +457.058 255.862 L +457.19 255.748 L +457.256 255.748 L +457.289 255.69 L +457.389 255.862 L +457.488 255.805 L +457.521 255.862 L +457.686 255.461 L +457.719 255.518 L +457.786 255.518 L +457.885 255.347 L +457.984 255.518 L +458.05 255.518 L +458.083 255.461 L +458.182 255.862 L +458.249 255.862 L +458.282 255.805 L +458.315 255.862 L +458.48 255.69 L +458.513 255.748 L +458.579 255.748 L +458.579 255.862 L +458.712 255.862 L +458.778 255.862 L +458.745 255.919 L +458.778 255.977 L +458.712 255.977 L +458.712 256.091 L +458.778 256.091 L +458.745 256.149 L +458.778 256.206 L +458.712 256.206 L +458.513 256.32 L +458.48 256.378 L +458.513 256.435 L +458.579 256.55 L +458.712 256.55 L +458.778 256.55 L +458.745 256.607 L +458.778 256.664 L +458.712 256.664 L +458.712 256.779 L +458.778 256.779 L +458.745 256.836 L +458.778 256.893 L +458.712 256.893 L +458.579 257.008 L +458.513 257.008 L +458.48 257.065 L +458.381 256.893 L +458.282 256.951 L +458.249 256.893 L +458.083 257.294 L +458.05 257.237 L +457.984 257.237 L +457.984 257.581 L +458.05 257.581 L +458.083 257.523 L +458.182 257.924 L +458.249 257.924 L +458.282 257.867 L +458.315 257.924 L +458.48 257.753 L +458.513 257.81 L +458.579 257.924 L +458.712 257.924 L +458.778 257.924 L +458.745 257.982 L +458.778 258.039 L +458.712 258.039 L +458.712 258.154 L +458.778 258.154 L +458.745 258.211 L +458.778 258.268 L +458.712 258.268 L +458.579 258.383 L +458.513 258.383 L +458.48 258.44 L +458.513 258.497 L +458.579 258.612 L +458.712 258.612 L +458.778 258.612 L +458.745 258.669 L +458.778 258.726 L +458.712 258.726 L +458.712 258.841 L +458.778 258.841 L +458.745 258.898 L +458.778 258.956 L +458.712 258.956 L +458.513 259.07 L +458.48 259.127 L +458.381 258.956 L +458.282 259.013 L +458.249 258.956 L +458.083 259.357 L +458.05 259.299 L +457.984 259.299 L +457.885 259.471 L +457.786 259.299 L +457.719 259.299 L +457.686 259.357 L +457.587 258.956 L +457.521 258.956 L +457.488 259.013 L +457.455 258.956 L +457.289 259.127 L +457.256 259.07 L +457.19 259.07 L +457.19 258.956 L +457.058 258.956 L +456.992 258.956 L +456.793 259.414 L +456.727 259.414 L +456.727 259.528 L +456.793 259.528 L +456.793 260.101 L +456.727 260.101 L +456.694 260.159 L +456.595 259.987 L +456.529 259.987 L +456.496 260.044 L +456.463 259.987 L +456.297 260.388 L +456.264 260.33 L +456.198 260.33 L +456.198 260.674 L +456.264 260.674 L +456.297 260.617 L +456.396 261.018 L +456.496 260.961 L +456.529 261.018 L +456.694 260.846 L +456.727 260.903 L +456.793 260.903 L +456.793 261.476 L +456.727 261.476 L +456.727 261.591 L +456.793 261.591 L +456.992 262.049 L +457.058 262.049 L +457.19 261.934 L +457.256 261.934 L +457.289 261.877 L +457.389 262.049 L +457.488 261.992 L +457.521 262.049 L +457.686 261.648 L +457.719 261.705 L +457.786 261.705 L +457.885 261.533 L +457.984 261.705 L +458.05 261.705 L +458.083 261.648 L +458.182 262.049 L +458.249 262.049 L +458.282 261.992 L +458.315 262.049 L +458.48 261.877 L +458.513 261.934 L +458.579 262.049 L +458.712 262.049 L +458.778 262.049 L +458.745 262.106 L +458.778 262.164 L +458.712 262.164 L +458.712 262.278 L +458.778 262.278 L +458.745 262.335 L +458.778 262.393 L +458.712 262.393 L +458.579 262.507 L +458.513 262.507 L +458.48 262.565 L +458.513 262.622 L +458.579 262.736 L +458.712 262.736 L +458.778 262.736 L +458.745 262.794 L +458.778 262.851 L +458.712 262.851 L +458.712 262.966 L +458.778 262.966 L +458.745 263.023 L +458.778 263.08 L +458.712 263.08 L +458.579 263.195 L +458.513 263.195 L +458.48 263.252 L +458.381 263.08 L +458.282 263.137 L +458.249 263.08 L +458.083 263.481 L +458.05 263.424 L +457.984 263.424 L +457.984 263.768 L +458.05 263.768 L +458.083 263.71 L +458.182 264.111 L +458.249 264.111 L +458.282 264.054 L +458.315 264.111 L +458.48 263.939 L +458.513 263.997 L +458.579 264.111 L +458.712 264.111 L +458.778 264.111 L +458.745 264.169 L +458.778 264.226 L +458.712 264.226 L +458.712 264.34 L +458.778 264.34 L +458.745 264.398 L +458.778 264.455 L +458.712 264.455 L +458.579 264.57 L +458.513 264.57 L +458.48 264.627 L +458.513 264.684 L +458.579 264.799 L +458.712 264.799 L +458.778 264.799 L +458.745 264.856 L +458.778 264.913 L +458.712 264.913 L +458.712 265.028 L +458.778 265.028 L +458.745 265.085 L +458.778 265.143 L +458.877 265.085 L +458.976 265.143 L +459.009 265.085 L +458.976 265.028 L +459.042 265.028 L +459.075 264.971 L +459.175 265.143 L +459.241 265.143 L +459.274 265.085 L +459.307 265.143 L +459.472 264.741 L +459.505 264.799 L +459.671 264.627 L +459.704 264.684 L +459.77 264.684 L +459.737 264.741 L +459.77 264.799 L +459.869 264.741 L +459.968 265.143 L +460.035 265.143 L +460.167 265.028 L +460.233 265.028 L +460.266 264.971 L +460.365 265.143 L +460.498 265.143 L +460.564 265.143 L +460.663 264.741 L +460.696 264.799 L +460.762 264.799 L +460.762 264.455 L +460.696 264.455 L +460.663 264.512 L +460.663 264.054 L +460.696 264.111 L +460.762 264.111 L +460.861 263.939 L +460.961 264.111 L +461.027 264.111 L +461.159 263.997 L +461.225 263.997 L +461.258 263.939 L +461.225 263.882 L +461.159 263.768 L +461.225 263.768 L +461.258 263.71 L +461.291 263.768 L +461.457 263.596 L +461.49 263.653 L +461.556 263.653 L +461.556 263.768 L +461.688 263.768 L +461.754 263.768 L +461.721 263.825 L +461.754 263.882 L +461.688 263.882 L +461.688 263.997 L +461.754 263.997 L +461.721 264.054 L +461.754 264.111 L +461.953 263.997 L +462.019 263.997 L +462.052 263.939 L +462.151 264.111 L +462.217 264.111 L +462.251 264.054 L +462.251 264.512 L +462.217 264.455 L +462.151 264.799 L +462.217 264.799 L +462.251 264.741 L +462.35 265.143 L +462.482 265.143 L +462.548 265.143 L +462.647 264.971 L +462.747 265.143 L +462.813 265.143 L +462.945 265.028 L +463.011 265.028 L +463.011 264.913 L +462.945 264.913 L +462.945 264.799 L +463.011 264.799 L +463.077 264.799 L +463.243 264.627 L +463.276 264.684 L +463.342 264.799 L +463.474 264.799 L +463.54 264.799 L +463.54 264.913 L +463.474 264.913 L +463.474 265.028 L +463.54 265.028 L +463.54 265.143 L +463.739 265.143 L +463.772 265.085 L +463.739 265.028 L +463.805 265.028 L +463.838 264.971 L +463.937 265.143 L +464.004 265.143 L +464.235 264.741 L +464.268 264.799 L +464.334 264.455 L +464.268 264.455 L +464.235 264.512 L +464.235 264.054 L +464.268 264.111 L +464.433 263.939 L +464.467 263.997 L +464.533 263.997 L +464.5 264.054 L +464.533 264.111 L +464.632 264.054 L +464.731 264.111 L +464.764 264.054 L +464.731 263.997 L +464.797 263.997 L +464.797 263.882 L +464.731 263.882 L +464.764 263.825 L +464.731 263.768 L +464.797 263.768 L +464.93 263.653 L +464.996 263.653 L +465.029 263.596 L +464.996 263.538 L +464.93 263.424 L +464.797 263.424 L +464.731 263.424 L +464.764 263.367 L +464.731 263.309 L +464.797 263.309 L +464.797 263.195 L +464.731 263.195 L +464.764 263.137 L +464.731 263.08 L +464.632 263.137 L +464.533 263.08 L +464.5 263.137 L +464.533 263.195 L +464.467 263.195 L +464.433 263.252 L +464.334 263.08 L +464.268 263.08 L +464.235 263.137 L +464.235 262.679 L +464.268 262.736 L +464.334 262.393 L +464.268 262.393 L +464.235 262.45 L +464.235 261.992 L +464.268 262.049 L +464.433 261.877 L +464.467 261.934 L +464.533 261.934 L +464.5 261.992 L +464.533 262.049 L +464.632 261.992 L +464.731 262.049 L +464.764 261.992 L +464.731 261.934 L +464.797 261.934 L +464.797 261.82 L +464.731 261.82 L +464.764 261.763 L +464.731 261.705 L +464.797 261.705 L +464.93 261.591 L +464.996 261.591 L +465.029 261.533 L +465.128 261.705 L +465.227 261.648 L +465.26 261.705 L +465.326 261.82 L +465.26 261.82 L +465.227 261.877 L +465.26 261.934 L +465.326 262.049 L +465.459 262.049 L +465.525 262.049 L +465.624 261.877 L +465.723 262.049 L +465.79 262.049 L +465.922 261.934 L +465.988 261.934 L +466.021 261.877 L +465.988 261.82 L +465.922 261.705 L +465.988 261.705 L +466.021 261.648 L +466.054 261.705 L +466.12 261.362 L +466.021 261.419 L +465.988 261.362 L +465.922 261.247 L +465.988 261.247 L +466.021 261.19 L +465.988 261.132 L +465.922 261.018 L +465.988 261.018 L +466.021 260.961 L +466.054 261.018 L +466.219 260.846 L +466.253 260.903 L +466.319 261.018 L +466.451 261.018 L +466.517 261.018 L +466.716 260.56 L +466.782 260.56 L +466.815 260.502 L +466.914 260.674 L +466.98 260.674 L +467.013 260.617 L +467.112 261.018 L +467.245 261.018 L +467.311 261.018 L +467.41 260.846 L +467.443 260.903 L +467.509 260.903 L +467.476 260.961 L +467.509 261.018 L +467.609 260.961 L +467.609 261.419 L +467.509 261.362 L +467.476 261.419 L +467.509 261.476 L +467.443 261.476 L +467.443 261.591 L +467.509 261.591 L +467.476 261.648 L +467.509 261.705 L +467.609 261.648 L +467.708 262.049 L +467.774 262.049 L +467.906 261.934 L +467.972 261.934 L +468.005 261.877 L +468.105 262.049 L +468.237 262.049 L +468.303 262.049 L +468.402 261.648 L +468.435 261.705 L +468.502 261.705 L +468.601 261.533 L +468.7 261.705 L +468.766 261.705 L +468.799 261.648 L +468.898 262.049 L +468.998 261.992 L +469.031 262.049 L +469.196 261.877 L +469.229 261.934 L +469.295 261.934 L +469.295 262.507 L +469.229 262.507 L +469.229 262.622 L +469.295 262.622 L +469.295 263.195 L +469.229 263.195 L +469.196 263.252 L +469.097 263.08 L +469.031 263.08 L +468.998 263.137 L +468.965 263.08 L +468.799 263.481 L +468.766 263.424 L +468.7 263.424 L +468.7 263.768 L +468.766 263.768 L +468.799 263.71 L +468.898 264.111 L +468.998 264.054 L +469.031 264.111 L +469.196 263.939 L +469.229 263.997 L +469.295 263.997 L +469.295 264.57 L +469.229 264.57 L +469.229 264.684 L +469.295 264.684 L +469.494 265.143 L +469.56 265.143 L +469.692 265.028 L +469.758 265.028 L +469.792 264.971 L +469.891 265.143 L +469.99 265.085 L +470.023 265.143 L +470.188 264.741 L +470.221 264.799 L +470.288 264.799 L +470.387 264.627 L +470.486 264.799 L +470.552 264.799 L +470.585 264.741 L +470.685 265.143 L +470.751 265.143 L +470.982 264.971 L +471.015 265.028 L +471.081 265.143 L +471.214 265.143 L +471.28 265.143 L +471.379 264.741 L +471.478 264.799 L +471.511 264.741 L +471.478 264.684 L +471.544 264.684 L +471.544 264.57 L +471.478 264.57 L +471.511 264.512 L +471.478 264.455 L +471.379 264.512 L +471.379 264.054 L +471.478 264.111 L +471.511 264.054 L +471.478 263.997 L +471.544 263.997 L +471.577 263.939 L +471.677 264.111 L +471.743 264.111 L +471.776 264.054 L +471.809 264.111 L +471.974 263.71 L +472.007 263.768 L +472.173 263.596 L +472.206 263.653 L +472.272 263.653 L +472.239 263.71 L +472.272 263.768 L +472.371 263.71 L +472.47 264.111 L +472.537 264.111 L +472.669 263.997 L +472.735 263.997 L +472.768 263.939 L +472.867 264.111 L +473 264.111 L +473.066 264.111 L +473.066 264.226 L +473 264.226 L +473 264.34 L +473.066 264.34 L +473.066 264.455 L +473 264.455 L +472.867 264.799 L +473 264.799 L +473.066 264.799 L +473.066 264.913 L +473 264.913 L +473 265.028 L +473.066 265.028 L +473.066 265.143 L +473.198 265.143 L +473.264 265.143 L +473.363 264.971 L +473.463 265.143 L +473.529 265.143 L +473.661 265.028 L +473.727 265.028 L +473.76 264.971 L +473.727 264.913 L +473.661 264.913 L +473.661 264.799 L +473.727 264.799 L +473.76 264.741 L +473.793 264.799 L +473.959 264.627 L +473.992 264.684 L +474.058 264.684 L +474.058 264.799 L +474.19 264.799 L +474.257 264.799 L +474.223 264.856 L +474.257 264.913 L +474.19 264.913 L +474.19 265.028 L +474.257 265.028 L +474.223 265.085 L +474.257 265.143 L +474.455 265.028 L +474.521 265.028 L +474.554 264.971 L +474.653 265.143 L +474.72 265.143 L +474.753 265.085 L +474.786 265.143 L +474.951 264.741 L +474.984 264.799 L +475.05 264.799 L +475.05 264.455 L +474.984 264.455 L +474.951 264.512 L +474.951 264.054 L +474.984 264.111 L +475.05 264.111 L +475.15 263.939 L +475.249 264.111 L +475.315 264.111 L +475.447 263.997 L +475.513 263.997 L +475.513 263.882 L +475.447 263.882 L +475.447 263.768 L +475.513 263.768 L +475.646 263.424 L +475.513 263.424 L +475.447 263.424 L +475.447 263.309 L +475.513 263.309 L +475.513 263.195 L +475.447 263.195 L +475.447 263.08 L +475.315 263.08 L +475.249 263.08 L +475.15 263.252 L +475.05 263.08 L +474.984 263.08 L +474.951 263.137 L +474.951 262.679 L +474.984 262.736 L +475.05 262.736 L +475.05 262.393 L +474.984 262.393 L +474.951 262.45 L +474.951 261.992 L +474.984 262.049 L +475.05 262.049 L +475.15 261.877 L +475.249 262.049 L +475.315 262.049 L +475.447 261.934 L +475.513 261.934 L +475.513 261.82 L +475.447 261.82 L +475.447 261.705 L +475.513 261.705 L +475.745 261.533 L +475.778 261.591 L +475.844 261.705 L +475.976 261.705 L +476.043 261.705 L +476.043 261.82 L +475.976 261.82 L +475.976 261.934 L +476.043 261.934 L +476.043 262.049 L +476.241 262.049 L +476.274 261.992 L +476.241 261.934 L +476.307 261.934 L +476.34 261.877 L +476.439 262.049 L +476.506 262.049 L +476.737 261.648 L +476.77 261.705 L +476.836 261.362 L +476.77 261.362 L +476.737 261.419 L +476.737 260.961 L +476.77 261.018 L +476.936 260.846 L +476.969 260.903 L +477.035 260.903 L +477.035 261.018 L +477.233 261.018 L +477.266 260.961 L +477.233 260.903 L +477.299 260.903 L +477.299 260.789 L +477.233 260.789 L +477.266 260.731 L +477.233 260.674 L +477.299 260.674 L +477.498 260.56 L +477.531 260.502 L +477.498 260.445 L +477.432 260.33 L +477.299 260.33 L +477.233 260.33 L +477.266 260.273 L +477.233 260.216 L +477.299 260.216 L +477.299 260.101 L +477.233 260.101 L +477.266 260.044 L +477.233 259.987 L +477.035 260.101 L +476.969 260.101 L +476.936 260.159 L +476.836 259.987 L +476.77 259.987 L +476.737 260.044 L +476.737 259.586 L +476.77 259.643 L +476.836 259.299 L +476.77 259.299 L +476.737 259.357 L +476.638 258.956 L +476.506 258.956 L +476.439 258.956 L +476.34 259.127 L +476.307 259.07 L +476.241 259.07 L +476.274 259.013 L +476.241 258.956 L +476.043 259.07 L +475.976 259.07 L +475.976 259.185 L +476.043 259.185 L +476.043 259.299 L +475.976 259.299 L +475.844 259.414 L +475.778 259.414 L +475.745 259.471 L +475.646 259.299 L +475.513 259.299 L +475.447 259.299 L +475.447 259.185 L +475.513 259.185 L +475.513 259.07 L +475.447 259.07 L +475.447 258.956 L +475.315 258.956 L +475.249 258.956 L +475.15 259.127 L +475.05 258.956 L +474.984 258.956 L +474.951 259.013 L +474.951 258.555 L +474.984 258.612 L +475.05 258.612 L +475.05 258.268 L +474.984 258.268 L +474.951 258.325 L +474.951 257.867 L +474.984 257.924 L +475.05 257.924 L +475.15 257.753 L +475.249 257.924 L +475.315 257.924 L +475.447 257.81 L +475.513 257.81 L +475.513 257.695 L +475.447 257.695 L +475.447 257.581 L +475.513 257.581 L +475.646 257.237 L +475.513 257.237 L +475.447 257.237 L +475.447 257.122 L +475.513 257.122 L +475.513 257.008 L +475.447 257.008 L +475.447 256.893 L +475.315 256.893 L +475.249 256.893 L +475.15 257.065 L +475.05 256.893 L +474.984 256.893 L +474.951 256.951 L +474.951 256.492 L +474.984 256.55 L +475.05 256.55 L +475.05 256.206 L +474.984 256.206 L +474.951 256.263 L +474.951 255.805 L +474.984 255.862 L +475.05 255.862 L +475.15 255.69 L +475.249 255.862 L +475.315 255.862 L +475.447 255.748 L +475.513 255.748 L +475.513 255.633 L +475.447 255.633 L +475.447 255.518 L +475.513 255.518 L +475.646 255.518 L +475.745 255.347 L +475.778 255.404 L +475.844 255.518 L +475.976 255.518 L +476.043 255.518 L +476.043 255.633 L +475.976 255.633 L +475.976 255.748 L +476.043 255.748 L +476.043 255.862 L +476.241 255.862 L +476.274 255.805 L +476.241 255.748 L +476.307 255.748 L +476.34 255.69 L +476.439 255.862 L +476.506 255.862 L +476.737 255.461 L +476.77 255.518 L +476.836 255.175 L +476.77 255.175 L +476.737 255.232 L +476.737 254.774 L +476.77 254.831 L +476.936 254.659 L +476.969 254.716 L +477.035 254.716 L +477.035 254.831 L +477.233 254.831 L +477.266 254.774 L +477.233 254.716 L +477.299 254.716 L +477.299 254.602 L +477.233 254.602 L +477.266 254.545 L +477.233 254.487 L +477.299 254.487 L +477.432 254.373 L +477.498 254.373 L +477.531 254.315 L +477.63 254.487 L +477.729 254.43 L +477.762 254.487 L +477.829 254.602 L +477.762 254.602 L +477.729 254.659 L +477.762 254.716 L +477.829 254.831 L +477.961 254.831 L +478.027 254.831 L +478.126 254.659 L +478.225 254.831 L +478.292 254.831 L +478.325 254.774 L +478.325 255.232 L +478.292 255.175 L +478.225 255.175 L +478.225 255.518 L +478.292 255.518 L +478.325 255.461 L +478.424 255.862 L +478.49 255.862 L +478.523 255.805 L +478.556 255.862 L +478.722 255.69 L +478.755 255.748 L +478.821 255.862 L +478.953 255.862 L +479.019 255.862 L +479.118 255.461 L +479.218 255.518 L +479.251 255.461 L +479.218 255.404 L +479.284 255.404 L +479.317 255.347 L +479.482 255.518 L +479.515 255.461 L +479.615 255.862 L +479.747 255.862 L +479.813 255.862 L +479.912 255.69 L +479.945 255.748 L +480.011 255.748 L +479.978 255.805 L +480.011 255.862 L +480.21 255.748 L +480.276 255.748 L +480.276 255.633 L +480.21 255.633 L +480.21 255.518 L +480.276 255.518 L +480.408 255.404 L +480.474 255.404 L +480.508 255.347 L +480.474 255.289 L +480.408 255.175 L +480.276 255.175 L +480.21 255.175 L +480.21 255.06 L +480.276 255.06 L +480.276 254.946 L +480.21 254.946 L +480.21 254.831 L +480.276 254.831 L +480.408 254.716 L +480.474 254.716 L +480.508 254.659 L +480.607 254.831 L +480.739 254.831 L +480.805 254.831 L +480.904 254.43 L +480.938 254.487 L +481.004 254.487 L +481.004 254.144 L +480.938 254.144 L +480.904 254.201 L +480.805 253.8 L +480.739 253.8 L +480.508 253.972 L +480.474 253.914 L +480.408 253.8 L +480.276 253.8 L +480.21 253.8 L +480.21 253.685 L +480.276 253.685 L +480.276 253.571 L +480.21 253.571 L +480.21 253.456 L +480.276 253.456 L +480.408 253.342 L +480.474 253.342 L +480.508 253.284 L +480.474 253.227 L +480.408 253.112 L +480.276 253.112 L +480.21 253.112 L +480.21 252.998 L +480.276 252.998 L +480.276 252.883 L +480.21 252.883 L +480.21 252.769 L +480.276 252.769 L +480.474 252.654 L +480.508 252.597 L +480.607 252.769 L +480.739 252.769 L +480.805 252.769 L +480.904 252.368 L +480.938 252.425 L +481.004 252.425 L +481.103 252.253 L +481.202 252.425 L +481.268 252.425 L +481.301 252.368 L +481.401 252.769 L +481.5 252.711 L +481.533 252.769 L +481.698 252.597 L +481.731 252.654 L +481.797 252.654 L +481.797 252.769 L +481.996 252.769 L +482.029 252.711 L +481.996 252.654 L +482.062 252.654 L +482.062 252.54 L +481.996 252.54 L +482.029 252.482 L +481.996 252.425 L +482.062 252.425 L +482.194 252.31 L +482.26 252.31 L +482.26 252.196 L +482.194 252.196 L +482.194 252.081 L +482.062 252.081 L +481.996 252.081 L +482.029 252.024 L +481.996 251.967 L +482.062 251.967 L +482.062 251.852 L +481.996 251.852 L +482.029 251.795 L +481.996 251.738 L +482.062 251.738 L +482.194 251.623 L +482.26 251.623 L +482.294 251.566 L +482.393 251.738 L +482.492 251.68 L +482.525 251.738 L +482.69 251.337 L +482.724 251.394 L +482.79 251.394 L +482.889 251.222 L +482.988 251.394 L +483.054 251.394 L +483.087 251.337 L +483.187 251.738 L +483.253 251.738 L +483.484 251.566 L +483.517 251.623 L +483.583 251.623 L +483.583 251.738 L +483.716 251.738 L +483.782 251.738 L +483.749 251.795 L +483.782 251.852 L +483.716 251.852 L +483.716 251.967 L +483.782 251.967 L +483.749 252.024 L +483.782 252.081 L +483.716 252.081 L +483.583 252.196 L +483.517 252.196 L +483.484 252.253 L +483.517 252.31 L +483.583 252.425 L +483.716 252.425 L +483.782 252.425 L +483.749 252.482 L +483.782 252.54 L +483.716 252.54 L +483.716 252.654 L +483.782 252.654 L +483.749 252.711 L +483.782 252.769 L +483.881 252.711 L +483.98 252.769 L +484.013 252.711 L +483.98 252.654 L +484.046 252.654 L +484.08 252.597 L +484.179 252.769 L +484.245 252.769 L +484.278 252.711 L +484.311 252.769 L +484.476 252.368 L +484.51 252.425 L +484.576 252.425 L +484.675 252.253 L +484.708 252.31 L +484.774 252.31 L +484.741 252.368 L +484.774 252.425 L +484.873 252.368 L +484.973 252.769 L +485.039 252.769 L +485.171 252.654 L +485.237 252.654 L +485.27 252.597 L +485.369 252.769 L +485.469 252.711 L +485.502 252.769 L +485.568 252.883 L +485.502 252.883 L +485.469 252.941 L +485.502 252.998 L +485.568 253.112 L +485.502 253.112 L +485.469 253.17 L +485.436 253.112 L +485.369 253.456 L +485.469 253.399 L +485.502 253.456 L +485.502 253.571 L +485.469 253.628 L +485.502 253.685 L +485.568 253.8 L +485.502 253.8 L +485.469 253.857 L +485.436 253.8 L +485.27 253.972 L +485.237 253.914 L +485.171 253.8 L +485.039 253.8 L +484.973 253.8 L +484.873 254.201 L +484.774 254.144 L +484.741 254.201 L +484.774 254.258 L +484.708 254.258 L +484.708 254.373 L +484.774 254.373 L +484.741 254.43 L +484.774 254.487 L +484.873 254.43 L +484.973 254.831 L +485.039 254.831 L +485.171 254.716 L +485.237 254.716 L +485.27 254.659 L +485.369 254.831 L +485.469 254.774 L +485.502 254.831 L +485.568 254.946 L +485.502 254.946 L +485.469 255.003 L +485.502 255.06 L +485.568 255.175 L +485.502 255.175 L +485.469 255.232 L +485.436 255.175 L +485.369 255.518 L +485.469 255.461 L +485.502 255.518 L +485.568 255.633 L +485.502 255.633 L +485.469 255.69 L +485.502 255.748 L +485.568 255.862 L +485.7 255.862 L +485.766 255.862 L +485.866 255.69 L +485.965 255.862 L +486.031 255.862 L +486.163 255.748 L +486.229 255.748 L +486.262 255.69 L +486.229 255.633 L +486.163 255.633 L +486.163 255.518 L +486.229 255.518 L +486.262 255.461 L +486.296 255.518 L +486.461 255.347 L +486.494 255.404 L +486.56 255.404 L +486.56 255.518 L +486.692 255.518 L +486.759 255.518 L +486.725 255.576 L +486.759 255.633 L +486.692 255.633 L +486.692 255.748 L +486.759 255.748 L +486.725 255.805 L +486.759 255.862 L +486.957 255.748 L +487.023 255.748 L +487.056 255.69 L +487.155 255.862 L +487.222 255.862 L +487.255 255.805 L +487.288 255.862 L +487.453 255.461 L +487.486 255.518 L +487.552 255.518 L +487.552 255.175 L +487.486 255.175 L +487.453 255.232 L +487.453 254.774 L +487.486 254.831 L +487.552 254.831 L +487.652 254.659 L +487.685 254.716 L +487.751 254.716 L +487.718 254.774 L +487.751 254.831 L +487.949 254.716 L +488.015 254.716 L +488.015 254.602 L +487.949 254.602 L +487.949 254.487 L +488.015 254.487 L +488.247 254.315 L +488.28 254.373 L +488.346 254.487 L +488.478 254.487 L +488.545 254.487 L +488.545 254.602 L +488.478 254.602 L +488.478 254.716 L +488.545 254.716 L +488.545 254.831 L +488.743 254.831 L +488.776 254.774 L +488.743 254.716 L +488.809 254.716 L +488.842 254.659 L +488.941 254.831 L +489.008 254.831 L +489.041 254.774 L +489.041 255.232 L +489.008 255.175 L +488.941 255.175 L +488.941 255.518 L +489.008 255.518 L +489.041 255.461 L +489.14 255.862 L +489.239 255.805 L +489.272 255.862 L +489.438 255.69 L +489.471 255.748 L +489.537 255.748 L +489.537 255.862 L +489.735 255.862 L +489.768 255.805 L +489.735 255.748 L +489.801 255.748 L +489.801 255.633 L +489.735 255.633 L +489.768 255.576 L +489.735 255.518 L +489.801 255.518 L +489.934 255.518 L +489.934 255.404 L +490 255.404 L +490.033 255.347 L +490.132 255.518 L +490.231 255.461 L +490.264 255.518 L +490.331 255.633 L +490.264 255.633 L +490.231 255.69 L +490.264 255.748 L +490.331 255.862 L +490.463 255.862 L +490.529 255.862 L +490.628 255.69 L +490.727 255.862 L +490.794 255.862 L +490.827 255.805 L +490.827 256.263 L +490.794 256.206 L +490.727 256.206 L +490.727 256.55 L +490.794 256.55 L +490.827 256.492 L +490.827 256.951 L +490.794 256.893 L +490.727 256.893 L +490.628 257.065 L +490.529 256.893 L +490.463 256.893 L +490.331 257.008 L +490.264 257.008 L +490.231 257.065 L +490.264 257.122 L +490.331 257.237 L +490.264 257.237 L +490.231 257.294 L +490.198 257.237 L +490.132 257.581 L +490.231 257.523 L +490.264 257.581 L +490.331 257.695 L +490.264 257.695 L +490.231 257.753 L +490.264 257.81 L +490.331 257.924 L +490.463 257.924 L +490.529 257.924 L +490.628 257.753 L +490.727 257.924 L +490.794 257.924 L +490.827 257.867 L +490.827 258.325 L +490.794 258.268 L +490.727 258.268 L +490.727 258.612 L +490.794 258.612 L +490.827 258.555 L +490.827 259.013 L +490.794 258.956 L +490.727 258.956 L +490.628 259.127 L +490.529 258.956 L +490.463 258.956 L +490.331 259.07 L +490.264 259.07 L +490.231 259.127 L +490.264 259.185 L +490.331 259.299 L +490.264 259.299 L +490.231 259.357 L +490.198 259.299 L +490.033 259.471 L +490 259.414 L +489.934 259.299 L +489.801 259.299 L +489.735 259.299 L +489.768 259.242 L +489.735 259.185 L +489.801 259.185 L +489.801 259.07 L +489.735 259.07 L +489.768 259.013 L +489.735 258.956 L +489.537 259.07 L +489.471 259.07 L +489.438 259.127 L +489.338 258.956 L +489.272 258.956 L +489.239 259.013 L +489.206 258.956 L +489.041 259.357 L +489.008 259.299 L +488.941 259.299 L +488.941 259.643 L +489.008 259.643 L +489.041 259.586 L +489.041 260.044 L +489.008 259.987 L +488.941 259.987 L +488.842 260.159 L +488.809 260.101 L +488.743 260.101 L +488.776 260.044 L +488.743 259.987 L +488.545 260.101 L +488.478 260.101 L +488.478 260.216 L +488.545 260.216 L +488.545 260.33 L +488.478 260.33 L +488.28 260.445 L +488.247 260.502 L +488.28 260.56 L +488.346 260.674 L +488.478 260.674 L +488.545 260.674 L +488.545 260.789 L +488.478 260.789 L +488.478 260.903 L +488.545 260.903 L +488.545 261.018 L +488.743 261.018 L +488.776 260.961 L +488.743 260.903 L +488.809 260.903 L +488.842 260.846 L +488.941 261.018 L +489.008 261.018 L +489.041 260.961 L +489.041 261.419 L +489.008 261.362 L +488.941 261.362 L +488.941 261.705 L +489.008 261.705 L +489.041 261.648 L +489.14 262.049 L +489.239 261.992 L +489.272 262.049 L +489.438 261.877 L +489.471 261.934 L +489.537 261.934 L +489.537 262.049 L +489.735 262.049 L +489.768 261.992 L +489.735 261.934 L +489.801 261.934 L +489.801 261.82 L +489.735 261.82 L +489.768 261.763 L +489.735 261.705 L +489.801 261.705 L +489.934 261.591 L +490 261.591 L +490.033 261.533 L +490.132 261.705 L +490.231 261.648 L +490.264 261.705 L +490.264 261.82 L +490.231 261.877 L +490.264 261.934 L +490.331 262.049 L +490.463 262.049 L +490.529 262.049 L +490.628 261.877 L +490.727 262.049 L +490.794 262.049 L +490.827 261.992 L +490.827 262.45 L +490.794 262.393 L +490.727 262.393 L +490.727 262.736 L +490.794 262.736 L +490.827 262.679 L +490.827 263.137 L +490.794 263.08 L +490.727 263.08 L +490.628 263.252 L +490.529 263.08 L +490.463 263.08 L +490.331 263.195 L +490.264 263.195 L +490.231 263.252 L +490.264 263.309 L +490.331 263.424 L +490.264 263.424 L +490.231 263.481 L +490.198 263.424 L +490.132 263.768 L +490.231 263.71 L +490.264 263.768 L +490.331 263.882 L +490.264 263.882 L +490.231 263.939 L +490.264 263.997 L +490.331 264.111 L +490.463 264.111 L +490.529 264.111 L +490.628 263.939 L +490.727 264.111 L +490.794 264.111 L +490.827 264.054 L +490.827 264.512 L +490.794 264.455 L +490.727 264.455 L +490.727 264.799 L +490.794 264.799 L +490.827 264.741 L +490.926 265.143 L +490.992 265.143 L +491.025 265.085 L +491.058 265.143 L +491.224 264.971 L +491.257 265.028 L +491.323 265.143 L +491.455 265.143 L +491.521 265.143 L +491.62 264.741 L +491.72 264.799 L +491.753 264.741 L +491.72 264.684 L +491.786 264.684 L +491.819 264.627 L +491.918 264.799 L +491.984 264.799 L +492.017 264.741 L +492.117 265.143 L +492.249 265.143 L +492.315 265.143 L +492.414 264.971 L +492.447 265.028 L +492.513 265.028 L +492.48 265.085 L +492.513 265.143 L +492.712 265.028 L +492.778 265.028 L +492.778 264.913 L +492.712 264.913 L +492.712 264.799 L +492.778 264.799 L +492.91 264.684 L +492.977 264.684 L +493.01 264.627 L +492.977 264.57 L +492.778 264.455 L +492.712 264.455 L +492.712 264.34 L +492.778 264.34 L +492.778 264.226 L +492.712 264.226 L +492.712 264.111 L +492.778 264.111 L +492.91 263.997 L +492.977 263.997 L +493.01 263.939 L +493.109 264.111 L +493.241 264.111 L +493.307 264.111 L +493.406 263.71 L +493.44 263.768 L +493.506 263.768 L +493.605 263.596 L +493.704 263.768 L +493.77 263.768 L +493.803 263.71 L +493.903 264.111 L +493.969 264.111 L +494.002 264.054 L +494.035 264.111 L +494.2 263.939 L +494.233 263.997 L +494.299 263.997 L +494.299 264.57 L +494.233 264.57 L +494.233 264.684 L +494.299 264.684 L +494.498 265.143 L +494.564 265.143 L +494.696 265.028 L +494.763 265.028 L +494.796 264.971 L +494.895 265.143 L +494.994 265.085 L +495.027 265.143 L +495.193 264.741 L +495.226 264.799 L +495.292 264.799 L +495.391 264.627 L +495.49 264.799 L +495.556 264.799 L +495.589 264.741 L +495.689 265.143 L +495.755 265.143 L +495.986 264.971 L +496.019 265.028 L +496.085 265.143 L +496.218 265.143 L +496.284 265.143 L +496.383 264.741 L +496.482 264.799 L +496.515 264.741 L +496.482 264.684 L +496.549 264.684 L +496.549 264.57 L +496.482 264.57 L +496.515 264.512 L +496.482 264.455 L +496.383 264.512 L +496.383 264.054 L +496.482 264.111 L +496.515 264.054 L +496.482 263.997 L +496.549 263.997 L +496.582 263.939 L +496.681 264.111 L +496.747 264.111 L +496.78 264.054 L +496.813 264.111 L +496.978 263.71 L +497.012 263.768 L +497.078 263.424 L +497.012 263.424 L +496.978 263.481 L +496.879 263.08 L +496.78 263.137 L +496.747 263.08 L +496.582 263.252 L +496.549 263.195 L +496.482 263.195 L +496.515 263.137 L +496.482 263.08 L +496.383 263.137 L +496.383 262.679 L +496.482 262.736 L +496.515 262.679 L +496.482 262.622 L +496.549 262.622 L +496.549 262.507 L +496.482 262.507 L +496.515 262.45 L +496.482 262.393 L +496.383 262.45 L +496.383 261.992 L +496.482 262.049 L +496.515 261.992 L +496.482 261.934 L +496.549 261.934 L +496.582 261.877 L +496.681 262.049 L +496.747 262.049 L +496.78 261.992 L +496.813 262.049 L +496.978 261.648 L +497.012 261.705 L +497.177 261.533 L +497.21 261.591 L +497.276 261.591 L +497.243 261.648 L +497.276 261.705 L +497.375 261.648 L +497.475 262.049 L +497.541 262.049 L +497.673 261.934 L +497.739 261.934 L +497.772 261.877 L +497.871 262.049 L +497.971 261.992 L +498.004 262.049 L +498.169 261.648 L +498.202 261.705 L +498.268 261.705 L +498.268 261.362 L +498.202 261.362 L +498.169 261.419 L +498.169 260.961 L +498.202 261.018 L +498.268 261.018 L +498.368 260.846 L +498.467 261.018 L +498.533 261.018 L +498.665 260.903 L +498.731 260.903 L +498.764 260.846 L +498.731 260.789 L +498.665 260.674 L +498.731 260.674 L +498.764 260.617 L +498.798 260.674 L +498.963 260.502 L +498.996 260.56 L +499.062 260.56 L +499.062 260.674 L +499.194 260.674 L +499.261 260.674 L +499.228 260.731 L +499.261 260.789 L +499.194 260.789 L +499.194 260.903 L +499.261 260.903 L +499.228 260.961 L +499.261 261.018 L +499.459 260.903 L +499.525 260.903 L +499.558 260.846 L +499.658 261.018 L +499.724 261.018 L +499.757 260.961 L +499.757 261.419 L +499.724 261.362 L +499.658 261.705 L +499.724 261.705 L +499.757 261.648 L +499.856 262.049 L +499.988 262.049 L +500.054 262.049 L +500.154 261.877 L +500.187 261.934 L +500.253 261.934 L +500.22 261.992 L +500.253 262.049 L +500.451 261.934 L +500.517 261.934 L +500.517 261.82 L +500.451 261.82 L +500.451 261.705 L +500.517 261.705 L +500.749 261.533 L +500.782 261.591 L +500.98 261.705 L +501.047 261.705 L +501.047 261.82 L +500.98 261.82 L +500.98 261.934 L +501.047 261.934 L +501.047 262.049 L +501.245 262.049 L +501.278 261.992 L +501.245 261.934 L +501.311 261.934 L +501.344 261.877 L +501.444 262.049 L +501.51 262.049 L +501.543 261.992 L +501.543 262.45 L +501.51 262.393 L +501.444 262.393 L +501.444 262.736 L +501.51 262.736 L +501.543 262.679 L +501.543 263.137 L +501.51 263.08 L +501.444 263.08 L +501.344 263.252 L +501.311 263.195 L +501.245 263.195 L +501.278 263.137 L +501.245 263.08 L +501.047 263.195 L +500.98 263.195 L +500.98 263.309 L +501.047 263.309 L +501.047 263.424 L +500.98 263.424 L +500.848 263.538 L +500.782 263.538 L +500.749 263.596 L +500.782 263.653 L +500.848 263.768 L +500.98 263.768 L +501.047 263.768 L +501.047 263.882 L +500.98 263.882 L +500.98 263.997 L +501.047 263.997 L +501.047 264.111 L +501.245 264.111 L +501.278 264.054 L +501.245 263.997 L +501.311 263.997 L +501.344 263.939 L +501.444 264.111 L +501.51 264.111 L +501.543 264.054 L +501.543 264.512 L +501.51 264.455 L +501.444 264.455 L +501.444 264.799 L +501.51 264.799 L +501.543 264.741 L +501.642 265.143 L +501.741 265.085 L +501.774 265.143 L +501.94 264.971 L +501.973 265.028 L +502.039 265.028 L +502.039 265.143 L +502.237 265.143 L +502.27 265.085 L +502.237 265.028 L +502.303 265.028 L +502.303 264.913 L +502.237 264.913 L +502.27 264.856 L +502.237 264.799 L +502.303 264.799 L +502.37 264.799 L +502.436 264.684 L +502.502 264.684 L +502.535 264.627 L +502.634 264.799 L +502.733 264.741 L +502.767 264.799 L +502.833 264.913 L +502.767 264.913 L +502.733 264.971 L +502.767 265.028 L +502.833 265.143 L +502.965 265.143 L +503.031 265.143 L +503.13 264.971 L +503.23 265.143 L +503.296 265.143 L +503.428 265.028 L +503.494 265.028 L +503.527 264.971 L +503.494 264.913 L +503.428 264.799 L +503.494 264.799 L +503.527 264.741 L +503.56 264.799 L +503.626 264.455 L +503.527 264.512 L +503.494 264.455 L +503.494 264.34 L +503.527 264.283 L +503.494 264.226 L +503.428 264.111 L +503.494 264.111 L +503.527 264.054 L +503.56 264.111 L +503.726 263.939 L +503.759 263.997 L +503.825 264.111 L +503.957 264.111 L +504.023 264.111 L +504.123 263.71 L +504.222 263.768 L +504.255 263.71 L +504.222 263.653 L +504.288 263.653 L +504.321 263.596 L +504.42 263.768 L +504.486 263.768 L +504.519 263.71 L +504.619 264.111 L +504.718 264.054 L +504.751 264.111 L +504.916 263.939 L +504.949 263.997 L +505.016 263.997 L +504.982 264.054 L +505.016 264.111 L +505.115 264.054 L +505.115 264.512 L +505.016 264.455 L +504.982 264.512 L +505.016 264.57 L +504.949 264.57 L +504.949 264.684 L +505.016 264.684 L +504.982 264.741 L +505.016 264.799 L +505.115 264.741 L +505.214 265.143 L +505.28 265.143 L +505.412 265.028 L +505.479 265.028 L +505.512 264.971 L +505.611 265.143 L +505.743 265.143 L +505.809 265.143 L +505.909 264.741 L +505.942 264.799 L +506.008 264.799 L +506.107 264.627 L +506.206 264.799 L +506.272 264.799 L +506.305 264.741 L +506.405 265.143 L +506.471 265.143 L +506.504 265.085 L +506.537 265.143 L +506.702 264.971 L +506.735 265.028 L +506.802 265.028 L +506.802 265.143 L +506.934 265.143 L +507 265.143 L +S +GR +%%Trailer +%%Pages: 1 +%%EOF diff --git a/buch/papers/ifs/teil0.tex b/buch/papers/ifs/teil0.tex index 7e3d344..d61c013 100644 --- a/buch/papers/ifs/teil0.tex +++ b/buch/papers/ifs/teil0.tex @@ -9,6 +9,4 @@ Mit der Hilfe von Iterierten Funktionsschemata mit nur wenigen Funktionen, kompl In der Regel sind diese Bilder Fraktale. Wie es dazu kommt, und wie man mit IFS auch Bilder komprimieren kann, wollen wir im folgenden Kapitel untersuchen. -\subsection{Metrische Räume} - diff --git a/buch/papers/ifs/teil1.tex b/buch/papers/ifs/teil1.tex index 76bc828..327a082 100644 --- a/buch/papers/ifs/teil1.tex +++ b/buch/papers/ifs/teil1.tex @@ -8,43 +8,89 @@ \rhead{Problemstellung} Bevor wir die IFS genauer ansehen, schauen wir uns Fraktale genauer an. -\begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{ifs:equation1} -\end{equation} -Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, -consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. +\subsection{Was sind Fraktale? +\label{ifs:subsection:finibus}} +Über die genaue Definition von Fraktalen sind sich die Mathematiker noch nicht einig. +In diesem Kapitel orientieren wir uns an den Eigneschaften welche Kenneth Flaconer in seinem Buch Fractal Geometry beschreibt. +Von einem Fraktal $F$ können wir folgende Eigneschaften erwarten: +\begin{enumerate} + \item $F$ hat eine unendlich feine Struktur + \item $F$ kann nicht mit der klassischen Geometrie beschrieben werden. + \item Oftmals haf $F$ eine Form von Selbstähnlichkeit. + \item Die 'fraktale Dimension' ist grösser als die Topologische Dimension + \item Viele Fraktale lassen sich einfach beschrieben +\end{enumerate} +\subsection{Koch Kurve + \label{ifs:subsection:lilkoch}} +Diese Eigenschaften möchten wir nun anhand der Koch Kurve näher anschauen. +In \ref{ifs:kochkurve8} sehen wir die Koch Kurve. Wie man schon erahnen kann, besteht die aus lauter kleineren Kopien von sich selber. +Den Konstruktionvorgang sehen wir in \ref{ifs:kochconst}. +Gestartet wird mit einer einzelnen Strecke der Länge $a$. +Diese wird in ersten Schritt mit vier gleich langen Streckenabschnitte der Länge $\frac{a}{3}$ ersetzt. +In \ref{ifs:kochconstb} ist die Anordnung dieser vier Streckenabschnitte ersichtilich. +Dieser Schritt wird nun für jeden der resultierten Streckenabschnitten wiederholt. +Die Kurve besteht also aus vier kleineren Kopien von der ganzen Kurve, was auch unter Selbstähnlichkeit bekannt ist. -Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis -suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? -Quis autem vel eum iure reprehenderit qui in ea voluptate velit -esse quam nihil molestiae consequatur, vel illum qui dolorem eum -fugiat quo voluptas nulla pariatur? -\subsection{De finibus bonorum et malorum -\label{ifs:subsection:finibus}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. +\begin{figure} + \label{ifs:kochkurve8} + \centering + \includegraphics{papers/ifs/images/koch8} + \caption{Koch Kurve} +\end{figure} -Et harum quidem rerum facilis est et expedita distinctio -\ref{ifs:section:loesung}. -Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil -impedit quo minus id quod maxime placeat facere possimus, omnis -voluptas assumenda est, omnis dolor repellendus -\ref{ifs:section:folgerung}. -Temporibus autem quibusdam et aut officiis debitis aut rerum -necessitatibus saepe eveniet ut et voluptates repudiandae sint et -molestiae non recusandae. -Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis -voluptatibus maiores alias consequatur aut perferendis doloribus -asperiores repellat. +\begin{figure} + \label{ifs:kochconst} + \centering + \subfigure[]{ + \label{ifs:kochconsta} + \includegraphics[width=0.32\textwidth]{papers/ifs/images/koch0}} + \subfigure[]{ + \label{ifs:kochconstb} + \includegraphics[width=0.32\textwidth]{papers/ifs/images/koch1}} + \subfigure[]{ + \label{kochconstc} + \includegraphics[width=0.32\textwidth]{papers/ifs/images/koch2}} + \caption{(a) Start (b) 1. Iteration (c) 2. Iteration} + \label{fig:foobar} +\end{figure} +Die resultierende Kurve hat ein paar interessante Eigenschaften. +Die Länge der Kurve lasst sich einfach berechnen. +\begin{align*} + l_0 = a ,\quad l_1 = a \frac{4}{3} ,\quad l_2 = a \left( \frac{4}{3}\right)^2 , \quad ... , \quad + l_n = a * \left( \frac{4}{3}\right)^n \quad + \Rightarrow \quad + \lim_{n\to\infty} a \left( \frac{4}{3}\right)^n = \infty +\end{align*} +In jedem Schritt wird die Länge um den Faktor $\frac{4}{3}$ verglängert. Somit divergiert die Länge gegen Unendlich. +Die Fläche unter der Kurve lässt sich folgendermassen berechnen +\begin{align*} + A_0 = 0 , \quad A_1 = \left( \frac{a}{3}\right)^2 \frac{\sqrt{3}}{4} = a^2 \frac{\sqrt{3}}{36}\\ + A_2 = A_1 + 4\left( \frac{a}{3^2}\right)^2 \frac{\sqrt{3}}{4} = A_1 + \frac{4}{9} A_1 \\ + A_3 = A_1 + A_2 + 4^2 \left( \frac{a}{3^2}\right)^2 \frac{\sqrt{3}}{4} = A_1 + \frac{4}{9} A_1 + \left( \frac{4}{9}\right)^2 A_1 +\end{align*} +Wir sehen, dass mit jedem Schritt die neu dazugekommene Fläche um $\frac{4}{9}$ kleiner ist. +Daraus resultiert eine konvergierende Geometrische Rheie. +\begin{align*} + A_n = A_1 \sum_{i = 0}^{n-1} \left( \frac{4}{9}\right)^n = a^2 \frac{\sqrt{3}}{36} \sum_{i = 0}^{n-1} \left( \frac{4}{9}\right)^n \\ + \lim_{n\to\infty} a^2 \frac{\sqrt{3}}{36} \sum_{i = 0}^{n-1} \left( \frac{4}{9}\right)^n = \frac{\sqrt{3}}{20} a^2 +\end{align*} +Wie wir sehen ist die Kochkurve ein Konstrukt mit endlicher Fläche, aber unendlichem Umfang. +Zu guter letzt bestimmen wir die Dimension der Kurve. +Es gibt viele verschidene Arten die Dimension zu definieren. Diese können dann auch unterschiedliche Resultate liefern. +Vor allem im Zusammenhang mit Fraktalen findet man in der Literatur viele verschiedene Arten. +In diesem Beispiel werden wir die Ähnlichkeits-Dimension. +\begin{align*} + D = - \frac{log(N)}{log(\epsilon)} +\end{align*} +Mit ihr kann man einfach die Dimension selbstähnlicher Mengen bestimmen. +Als Beispiel nehmen wir ein gleichseitiges Dreieck. Dieses besteht aus $N = 4$ Kopien mit halber ($\epsilon = 1/2$) Kantenlänge. +Somit hat das Dreieck die Dimension $D = 2$. +Die Koch Kurve besteht aus $N = 4$ Kopien mit Kantenlänge $\epsilon = 1/3$. +\begin{align*} + D = - \frac{log(N)}{log(\epsilon)} = - \frac{log(4)}{log(1/3)} \approx 1.2619 +\end{align*} +Wie wir nun sehen besitzt die Kochkurve alle oben beschriebenen Eigenschaften von Fraktalen. +Dies muss jedoch nicht bei allen Fraktalen der Fall. Sonst wäre die Frage nach einer 'richtigen' Definition einfach zu beantworten. -- cgit v1.2.1 From 18b269406626959a171c4db0dd5fd5cd8cfebb0b Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Wed, 26 May 2021 21:38:36 +0200 Subject: Start working on feedback --- buch/papers/punktgruppen/symmetry.tex | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/symmetry.tex b/buch/papers/punktgruppen/symmetry.tex index db05ff5..330cf51 100644 --- a/buch/papers/punktgruppen/symmetry.tex +++ b/buch/papers/punktgruppen/symmetry.tex @@ -11,11 +11,6 @@ präzise Bedeutung. bestimmten Operation invariant ist. \end{definition} -Wenn der Leser noch nicht mit der Gruppentheorie in Berührung gekommen ist, ist -vielleicht nicht ganz klar, was eine Operation ist, aber die Definition sollte -trotzdem Sinn machen. Die Formalisierung dieser Idee wird bald kommen, aber -zunächst wollen wir eine Intuition aufbauen. - \begin{figure}[h] \centering \begin{tikzpicture}[ @@ -68,12 +63,15 @@ zunächst wollen wir eine Intuition aufbauen. } \end{figure} +\subsection{Geometrische Symmetrien} + Die intuitivsten Beispiele kommen aus der Geometrie, daher werden wir mit einigen geometrischen Beispielen beginnen. Wie wir jedoch später sehen werden, -ist das Konzept der Symmetrie eigentlich viel allgemeiner. In Abbildung -\ref{fig:punktgruppen:geometry-example} haben wir einige Formen, die -offensichtlich symmetrisch sind. Zum Beispiel hat ein Quadrat viele Achsen, um -die es gedreht werden kann, ohne sein Aussehen zu verändern. Regelmässige +ist das Konzept der Symmetrie eigentlich viel allgemeiner. + +In Abbildung \ref{fig:punktgruppen:geometry-example} haben wir einige Formen, +die offensichtlich symmetrisch sind. Zum Beispiel hat das Quadrat Gerade, an +deren gespiegelt werden kann, ohne sein Aussehen zu verändern. Regelmässige Polygone mit \(n\) Seiten sind gute Beispiele, um eine diskrete Rotationssymmetrie zu veranschaulichen, was bedeutet, dass eine Drehung um einen Punkt um einen bestimmten Winkel \(360^\circ/n\) sie unverändert lässt. @@ -95,14 +93,15 @@ Mit dem oben Gesagten können wir das \(n\)-Gon Beispiel formalisieren. Wenn wir \[ C_n = \langle r \rangle = \left\{\mathds{1}, r, r^2, \ldots, r^{n-1}\right\} - = \mathbb{Z}/n\mathbb{Z}, \] -die Zyklische Gruppe heisst. Hier die Potenzen von \(r\) sind als wiederholte -Komposition gemeint, d.h. \(r^n = r\circ r \circ \cdots r\circ r\). Die -Schreibweise mit den spitzen Klammern wird als Erzeugendensystem bezeichnet. +die zyklische Gruppe heisst. Hier die Potenzen von \(r\) sind als wiederholte +Komposition gemeint, d.h. \(r^n = r\circ r \circ \cdots r\circ r\). + +Die Schreibweise mit den spitzen Klammern wird als Erzeugendensystem bezeichnet. Das liegt daran, dass alle Elemente der Symmetriegruppe aus Kombinationen einer -Teilmenge erzeugt werden, die als erzeugende Elemente bezeichnet werden. Die -Reflexionssymmetriegruppe ist nicht so interessant, da sie nur +Teilmenge erzeugt werden, die als erzeugende Elemente bezeichnet werden. + +Die Reflexionssymmetriegruppe ist nicht so interessant, da sie nur \(\left\{\mathds{1}, \sigma\right\}\) enthält. Kombiniert man sie jedoch mit der Rotation, erhält man die so genannte Diedergruppe \[ -- cgit v1.2.1 From 9644d3426ba9ce0ad9365cb020f8137d733e7854 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Thu, 27 May 2021 00:55:38 +0200 Subject: Restructure --- buch/papers/punktgruppen/symmetry.tex | 94 ++++++++++++++++++++--------------- 1 file changed, 53 insertions(+), 41 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/symmetry.tex b/buch/papers/punktgruppen/symmetry.tex index 330cf51..a3ccbed 100644 --- a/buch/papers/punktgruppen/symmetry.tex +++ b/buch/papers/punktgruppen/symmetry.tex @@ -10,8 +10,11 @@ präzise Bedeutung. Ein mathematisches Objekt wird als symmetrisch bezeichnet, wenn es unter einer bestimmten Operation invariant ist. \end{definition} +Die intuitivsten Beispiele kommen aus der Geometrie, daher werden wir mit +einigen geometrischen Beispielen beginnen. Wie wir jedoch später sehen werden, +ist das Konzept der Symmetrie eigentlich viel allgemeiner. -\begin{figure}[h] +\begin{figure} \centering \begin{tikzpicture}[ node distance = 2cm, @@ -65,17 +68,13 @@ präzise Bedeutung. \subsection{Geometrische Symmetrien} -Die intuitivsten Beispiele kommen aus der Geometrie, daher werden wir mit -einigen geometrischen Beispielen beginnen. Wie wir jedoch später sehen werden, -ist das Konzept der Symmetrie eigentlich viel allgemeiner. - In Abbildung \ref{fig:punktgruppen:geometry-example} haben wir einige Formen, die offensichtlich symmetrisch sind. Zum Beispiel hat das Quadrat Gerade, an deren gespiegelt werden kann, ohne sein Aussehen zu verändern. Regelmässige -Polygone mit \(n\) Seiten sind gute Beispiele, um eine diskrete +Polygone mit \(n\) Seiten sind auch gute Beispiele, um eine diskrete Rotationssymmetrie zu veranschaulichen, was bedeutet, dass eine Drehung um -einen Punkt um einen bestimmten Winkel \(360^\circ/n\) sie unverändert lässt. -Das letzte Beispiel auf der rechten Seite ist eine unendliche +einen Punkt um einen bestimmten Winkel \(360^\circ/n\) die Figur unverändert +lässt. Das letzte Beispiel auf der rechten Seite ist eine unendliche Rotationssymmetrie. Sie wird so genannt, weil es unendlich viele Werte für \(\alpha \in \mathbb{R}\) gibt, die die Form unverändert lassen. Dies ist hoffentlich ausreichend, um die Bedeutung hinter der Notation zu verstehen, die @@ -92,15 +91,16 @@ Mit dem oben Gesagten können wir das \(n\)-Gon Beispiel formalisieren. Wenn wir \(r\) eine Drehung von \(2\pi/n\) sein lassen, gibt es eine wohlbekannte Symmetriegruppe \[ C_n = \langle r \rangle - = \left\{\mathds{1}, r, r^2, \ldots, r^{n-1}\right\} + = \left\{\mathds{1}, r, r^2, \ldots, r^{n-1}\right\}, \] die zyklische Gruppe heisst. Hier die Potenzen von \(r\) sind als wiederholte -Komposition gemeint, d.h. \(r^n = r\circ r \circ \cdots r\circ r\). - -Die Schreibweise mit den spitzen Klammern wird als Erzeugendensystem bezeichnet. +Komposition gemeint, d.h. \(r^n = r\circ r \circ \cdots r\circ r\). Die +Schreibweise mit den spitzen Klammern wird als Erzeugendensystem bezeichnet. Das liegt daran, dass alle Elemente der Symmetriegruppe aus Kombinationen einer Teilmenge erzeugt werden, die als erzeugende Elemente bezeichnet werden. +% TODO: more on generators + Die Reflexionssymmetriegruppe ist nicht so interessant, da sie nur \(\left\{\mathds{1}, \sigma\right\}\) enthält. Kombiniert man sie jedoch mit der Rotation, erhält man die so genannte Diedergruppe @@ -111,21 +111,53 @@ der Rotation, erhält man die so genannte Diedergruppe \right\}. \] Diesmal muss die Generator-Notation die Beziehungen zwischen den beiden -Operationen beinhalten. Die ersten beiden sind leicht zu erkennen, für die -letzte empfehlen wir, sie an einem 2D-Quadrat auszuprobieren. +Operationen beinhalten. +% TODO +% Die ersten beiden sind leicht zu erkennen, für die +% letzte empfehlen wir, sie an einem 2D-Quadrat auszuprobieren. + +Die Symmetrieoperationen, die wir bis jetzt besprochen haben, haben immer +mindestens einen Punkt gehabt, der wieder auf sich selbst abgebildet wird. Im +Fall der Rotation war es der Drehpunkt, bei der Spiegelung die Punkte der +Spiegelachse. Dies ist jedoch keine Voraussetzung für eine Symmetrie, da es +Symmetrien gibt, die jeden Punkt zu einem anderen Punkt verschieben können. +Diesen Spezialfall, bei dem mindestens ein Punkt unverändert bleibt, nennt man +Punktsymmetrie. +\begin{definition}[Punktgruppe] + Wenn jede Operation in einer Symmetriegruppe die Eigenschaft hat, mindestens + einen Punkt unverändert zu lassen, sagt man, dass die Symmetriegruppe eine + Punktgruppe ist. +\end{definition} + +\subsection{Algebraische Symmetrien} Wir haben nun unseren Operationen Symbole gegeben, mit denen es tatsächlich -möglich ist, eine nicht kommutative Algebra zu erstellen. Die naheliegende -Frage ist dann, könnte es sein, dass wir bereits etwas haben, das dasselbe tut? -Natürlich, ja. Dafür führen wir den Begriff der Darstellung ein. -\begin{definition}[Darstellung einer Gruppe, Gruppenhomomorphismus] +möglich ist, Gleichungen zu schreiben. Die naheliegende Frage ist dann, könnte +es sein, dass wir bereits etwas haben, das dasselbe tut? Natürlich, ja. +Um es formaler zu beschreiben, werden wir ein einige Begriffe einführen. +\begin{definition}[Gruppenhomomorphismus] Seien \(G\) und \(H\) Gruppe mit unterschiedlicher Operation \(\diamond\) bzw. \(\star\). Ein Homomorphismus\footnote{ Für eine ausführlichere Diskussion siehe \S\ref{buch:grundlagen:subsection:gruppen} im Buch.} ist eine Funktion \(f: G \to H\), so dass für jedes \(a, b \in G\) gilt \(f(a\diamond b) = f(a) \star f(b)\). Man sagt, dass der Homomorphismus - \(f\) \(G\) in \(H\) transformiert, oder dass \(H\) eine Darstellung von - \(G\) ist. + \(f\) \(G\) in \(H\) transformiert. +\end{definition} +\begin{beispiel} + Die Rotationssymmetrie des Kreises \(C_\infty\), mit einem unendlichen + Kontinuum von Werten \(\alpha \in \mathbb{R}\), entspricht perfekt dem + komplexen Einheitskreis. Der Homomorphismus \(\phi: C_\infty \to \mathbb{C}\) + ist durch die Eulersche Formel \(\phi(r) = e^{i\alpha}\) gegeben. +\end{beispiel} + +\begin{definition}[Darstellung einer Gruppe] + Die Darstellung einer Gruppe ist ein Homomorphismus, der eine Symmetriegruppe + auf eine Menge von Matrizen abbildet. + \[ + \Phi: G \to \operatorname{GL}_n(\mathbb{R}). + \] + Äquivalent kann man sagen, dass ein Element aus der Symmetriegruppe auf einen + Vektorraum \(V\) wirkt, indem man definiert \(\Phi : G \times V \to V\). \end{definition} \begin{beispiel} Die Elemente \(r^k \in C_n\), wobei \(0 < k < n\), stellen abstrakt eine @@ -141,28 +173,8 @@ Natürlich, ja. Dafür führen wir den Begriff der Darstellung ein. die zweite die Matrixmultiplikation. Man kann überprüfen, dass \(\Phi(r^2 \circ r) = \Phi(r^2)\Phi(r)\). \end{beispiel} -\begin{beispiel} - Die Rotationssymmetrie des Kreises \(C_\infty\), mit einem unendlichen - Kontinuum von Werten \(\alpha \in \mathbb{R}\), entspricht perfekt dem - komplexen Einheitskreis. Der Homomorphismus \(\phi: C_\infty \to \mathbb{C}\) - ist durch die Eulersche Formel \(\phi(r) = e^{i\alpha}\) gegeben. -\end{beispiel} -Die Symmetrien, die wir bis jetzt besprochen haben, haben immer mindestens -einen Punkt unbesetzt gelassen. Im Fall der Rotation war es der Drehpunkt, bei -der Spiegelung die Achse. Dies ist jedoch keine Voraussetzung für eine -Symmetrie, da es Symmetrien gibt, die jeden Punkt zu einem anderen Punkt -verschieben können. Ein aufmerksamer Leser wird bemerken, dass die -unveränderten Punkte zum Eigenraum\footnote{Zur Erinnerung \(E_\lambda = -\mathrm{null}(\Phi - \lambda I)\), \(\vec{v}\in E_\lambda \implies \Phi \vec{v} -= \lambda\vec{v}\)} der Matrixdarstellung der Symmetrieoperation gehören. -Diesen Spezialfall, bei dem mindestens ein Punkt unverändert bleibt, nennt man -Punktsymmetrie. -\begin{definition}[Punktgruppe] - Wenn jede Operation in einer Symmetriegruppe die Eigenschaft hat, mindestens - einen Punkt unverändert zu lassen, sagt man, dass die Symmetriegruppe eine - Punktgruppe ist. -\end{definition} +%% TODO: title / fix continuity Um das Konzept zu illustrieren, werden wir den umgekehrten Fall diskutieren: eine Symmetrie, die keine Punktsymmetrie ist, die aber in der Physik sehr nützlich ist, nämlich die Translationssymmetrie. Von einem mathematischen -- cgit v1.2.1 From e86e0ad0e4415450a9c8b28917024ee6d0d77da5 Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Fri, 28 May 2021 15:23:51 +0200 Subject: text added --- buch/papers/reedsolomon/rekonstruktion.tex | 204 ++++++++++++++++++++++++----- 1 file changed, 174 insertions(+), 30 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/rekonstruktion.tex b/buch/papers/reedsolomon/rekonstruktion.tex index a3edba4..8cb7744 100644 --- a/buch/papers/reedsolomon/rekonstruktion.tex +++ b/buch/papers/reedsolomon/rekonstruktion.tex @@ -5,36 +5,180 @@ % \section{Nachricht Rekonstruieren \label{reedsolomon:section:rekonstruktion}} -\rhead{Teil 3} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? +\rhead{Rekonstruktion} +Im letzten Kapitel haben wir eine Möglichkeit gefunden, wie wir die Fehlerhaften Stellen lokalisieren können. +Mit diesen Stellen soll es uns nun möglich sein, aus dem fehlerhaften empfangenen Nachrichtenvektor wieder unsere Nachricht zu rekonstruieren. +Das Lokatorpolynom +\[ +d(X) = (X - a^3)(X-a^8) +\] +markiert dabei diese Fehlerhaften Stellen im Übertragungsvektor +\[ +w = [5,3,6,8,2,10,2,7,1,4]. +\] +Als Ausgangslage verwenden wir die Matrix, mit der wir den Nachrichtenvektor ursprünglich codiert haben. +Unser Ziel ist es wie auch schon im Kapitel X.X (Rekonstuktion ohne Fehler) eine Möglichkeit zu finden, wie wir den Übertragungsvektor decodieren können. +Aufgrund der Fehlerstellen müssen wir aber davon ausgehen, das wir nicht mehr den gleichen Weg verfolgen können wie wir im Kapitel X.X angewendet haben. -\subsection{De finibus bonorum et malorum -\label{reedsolomon:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. +Wir stellen also die Matrix auf und markieren gleichzeitig die Fehlerstellen. +\[ +\textcolor{gray}{ + \begin{pmatrix} + a^0 \\ a^1 \\ a^2 \\ \textcolor{red}{a^3} \\ a^4 \\ a^5 \\ a^6 \\ a^7 \\ \textcolor{red}{a^8} \\ a^9 \\ +\end{pmatrix}} +\begin{pmatrix} + 5 \\ 3 \\ 6 \\ \textcolor{red}{8} \\ 2 \\ 10 \\ 2 \\ 7 \\ \textcolor{red}{1} \\ 4 \\ +\end{pmatrix} += +\begin{pmatrix} + 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0\\ + 8^0& 8^1& 8^2& 8^3& 8^4& 8^5& 8^6& 8^7& 8^8& 8^9\\ + 8^0& 8^2& 8^4& 8^6& 8^8& 8^{10}& 8^{12}& 8^{14}& 8^{16}& 8^{18}\\ + \textcolor{red}{8^0}& \textcolor{red}{8^3}& \textcolor{red}{8^6}& \textcolor{red}{8^9}& \textcolor{red}{8^{12}}& \textcolor{red}{8^{15}}& \textcolor{red}{8^{18}}& \textcolor{red}{8^{21}}& \textcolor{red}{8^{24}}& \textcolor{red}{8^{27}}\\ + 8^0& 8^4& 8^8& 8^{12}& 8^{16}& 8^{20}& 8^{24}& 8^{28}& 8^{32}& 8^{36}\\ + 8^0& 8^5& 8^{10}& 8^{15}& 8^{20}& 8^{25}& 8^{30}& 8^{35}& 8^{40}& 8^{45}\\ + 8^0& 8^6& 8^{12}& 8^{18}& 8^{24}& 8^{30}& 8^{36}& 8^{42}& 8^{48}& 8^{54}\\ + 8^0& 8^7& 8^{14}& 8^{21}& 8^{28}& 8^{35}& 8^{42}& 8^{49}& 8^{56}& 8^{63}\\ + \textcolor{red}{8^0}& \textcolor{red}{8^8}& \textcolor{red}{8^{16}}& \textcolor{red}{8^{24}}& \textcolor{red}{8^{32}}& \textcolor{red}{8^{40}}& \textcolor{red}{8^{48}}& \textcolor{red}{8^{56}}& \textcolor{red}{8^{64}}& \textcolor{red}{8^{72}}\\ + 8^0& 8^9& 8^{18}& 8^{27}& 8^{36}& 8^{45}& 8^{54}& 8^{63}& 8^{72}& 8^{81}\\ +\end{pmatrix} +\cdot +\begin{pmatrix} + m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ m_6 \\ m_7 \\ m_8 \\ m_9 \\ +\end{pmatrix} +\] +Die rot markierten Stellen im Übertragungsvektor enthalten Fehler und bringt uns daher kein weiterer Nutzen. +Aus diesem Grund werden diese Stellen aus dem Vektor entfernt, was wir hier ohne Probleme machen können, da dieser Code ja über Fehlerkorrekturstellen verfügt, deren Aufgabe es ist, eine bestimmte Anzahl an Fehler kompensieren zu können. +Die dazugehörigen Zeilen in der Matrix werden ebenfalls entfernt, da die Matrix gleich viele Zeilen wie im Übertragungsvektor aufweisen muss, damit man ihn decodieren kann. +Daraus resultiert +\[ +\begin{pmatrix} + 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ 7 \\ 4 \\ +\end{pmatrix} += +\begin{pmatrix} + 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0\\ + 8^0& 8^1& 8^2& 8^3& 8^4& 8^5& 8^6& 8^7& 8^8& 8^9\\ + 8^0& 8^2& 8^4& 8^6& 8^8& 8^{10}& 8^{12}& 8^{14}& 8^{16}& 8^{18}\\ + 8^0& 8^4& 8^8& 8^{12}& 8^{16}& 8^{20}& 8^{24}& 8^{28}& 8^{32}& 8^{36}\\ + 8^0& 8^5& 8^{10}& 8^{15}& 8^{20}& 8^{25}& 8^{30}& 8^{35}& 8^{40}& 8^{45}\\ + 8^0& 8^6& 8^{12}& 8^{18}& 8^{24}& 8^{30}& 8^{36}& 8^{42}& 8^{48}& 8^{54}\\ + 8^0& 8^7& 8^{14}& 8^{21}& 8^{28}& 8^{35}& 8^{42}& 8^{49}& 8^{56}& 8^{63}\\ + 8^0& 8^9& 8^{18}& 8^{27}& 8^{36}& 8^{45}& 8^{54}& 8^{63}& 8^{72}& 8^{81}\\ +\end{pmatrix} +\cdot +\begin{pmatrix} + m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ m_6 \\ m_7 \\ m_8 \\ m_9 \\ +\end{pmatrix} +. +\] +Die Matrix ist jedoch nicht mehr quadratisch, was eine Rekonstruktion durch Inversion ausschliesst. +Um die quadratische Form wieder herzustellen müssen wir zwei Spalten aus der Matrix entfernen. +Wir kennen aber das Resultat aus den letzten vier Spalten, da wir wissen, das die Nachricht aus Nutzdatenteil und Fehlerkorrekturteil besteht, wobei der letzteres bekanntlich aus lauter Nullstellen besteht. +\[ +\begin{pmatrix} + 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ 7 \\ 4 \\ +\end{pmatrix} += +\begin{pmatrix} + 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& \textcolor{green}{8^0}& \textcolor{green}{8^0}& \textcolor{green}{8^0}& \textcolor{green}{8^0}\\ + 8^0& 8^1& 8^2& 8^3& 8^4& 8^5& \textcolor{green}{8^6}& \textcolor{green}{8^7}& \textcolor{green}{8^8}& \textcolor{green}{8^9}\\ + 8^0& 8^2& 8^4& 8^6& 8^8& 8^{10}& \textcolor{green}{8^{12}}& \textcolor{green}{8^{14}}& \textcolor{green}{8^{16}}& \textcolor{green}{8^{18}}\\ + 8^0& 8^4& 8^8& 8^{12}& 8^{16}& 8^{20}& \textcolor{green}{8^{24}}& \textcolor{green}{8^{28}}& \textcolor{green}{8^{32}}& \textcolor{green}{8^{36}}\\ + 8^0& 8^5& 8^{10}& 8^{15}& 8^{20}& 8^{25}& \textcolor{green}{8^{30}}& \textcolor{green}{8^{35}}& \textcolor{green}{8^{40}}& \textcolor{green}{8^{45}}\\ + 8^0& 8^6& 8^{12}& 8^{18}& 8^{24}& 8^{30}& \textcolor{green}{8^{36}}& \textcolor{green}{8^{42}}& \textcolor{green}{8^{48}}& \textcolor{green}{8^{54}}\\ + 8^0& 8^7& 8^{14}& 8^{21}& 8^{28}& 8^{35}& \textcolor{green}{8^{42}}& \textcolor{green}{8^{49}}& \textcolor{green}{8^{56}}& \textcolor{green}{8^{63}}\\ + 8^0& 8^9& 8^{18}& 8^{27}& 8^{36}& 8^{45}& \textcolor{green}{8^{54}}& \textcolor{green}{8^{63}}& \textcolor{green}{8^{72}}& \textcolor{green}{8^{81}}\\ +\end{pmatrix} +\cdot +\begin{pmatrix} + m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ \textcolor{green}{m_6} \\ \textcolor{green}{m_7} \\ \textcolor{green}{m_8} \\ \textcolor{green}{m_9} \\ +\end{pmatrix} +\] +Wir nehmen die Entsprechenden Spalten aus der Matrix heraus und erhalten so das Überbestimmte Gleichungssystem +\[ +\begin{pmatrix} + 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ \textcolor{red}{7} \\ \textcolor{red}{4} \\ +\end{pmatrix} += +\begin{pmatrix} + 8^0& 8^0& 8^0& 8^0& 8^0& 8^0\\ + 8^0& 8^1& 8^2& 8^3& 8^4& 8^5\\ + 8^0& 8^2& 8^4& 8^6& 8^8& 8^{10}\\ + 8^0& 8^4& 8^8& 8^{12}& 8^{16}& 8^{20}\\ + 8^0& 8^5& 8^{10}& 8^{15}& 8^{20}& 8^{25}\\ + 8^0& 8^6& 8^{12}& 8^{18}& 8^{24}& 8^{30}\\ + \textcolor{red}{8^0}& \textcolor{red}{8^7}& \textcolor{red}{8^{14}}& \textcolor{red}{8^{21}}& \textcolor{red}{8^{28}}& \textcolor{red}{8^{35}}\\ + \textcolor{red}{8^0}& \textcolor{red}{8^9}& \textcolor{red}{8^{18}}& \textcolor{red}{8^{27}}& \textcolor{red}{8^{36}}& \textcolor{red}{8^{45}}\\ +\end{pmatrix} +\cdot +\begin{pmatrix} + m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ +\end{pmatrix} +. +\] +Die roten Zeilen können wir aufgrund der Überbestimmtheit ebenfalls entfernen und erhalten so die gesuchte quadratische Matrix +\[ +\begin{pmatrix} + 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ +\end{pmatrix} += +\begin{pmatrix} + 8^0& 8^0& 8^0& 8^0& 8^0& 8^0\\ + 8^0& 8^1& 8^2& 8^3& 8^4& 8^5\\ + 8^0& 8^2& 8^4& 8^6& 8^8& 8^{10}\\ + 8^0& 8^4& 8^8& 8^{12}& 8^{16}& 8^{20}\\ + 8^0& 8^5& 8^{10}& 8^{15}& 8^{20}& 8^{25}\\ + 8^0& 8^6& 8^{12}& 8^{18}& 8^{24}& 8^{30}\\ +\end{pmatrix} +\cdot +\begin{pmatrix} + m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ +\end{pmatrix} +. +\] +Nun können wir den Gauss-Algorithmus anwenden um die Matrix zu Invertieren. +\[ +\begin{pmatrix} + 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ +\end{pmatrix} += +\begin{pmatrix} + 1& 1& 1& 1& 1& 1\\ + 1& 8& 9& 6& 4& 10\\ + 1& 9& 4& 3& 5& 1\\ + 1& 4& 5& 9& 3& 1\\ + 1& 10& 1& 10& 1& 10\\ + 1& 3& 9& 5& 4& 1\\ +\end{pmatrix} +\cdot +\begin{pmatrix} + m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ +\end{pmatrix} +\qquad +\Rightarrow +\qquad +\begin{pmatrix} + m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ +\end{pmatrix} += +\begin{pmatrix} + 6& 4& 4& 6& 2& 1\\ + 2& 7& 10& 3& 4& 7\\ + 1& 8& 9& 8& 3& 4\\ + 3& 6& 6& 4& 5& 9\\ + 10& 10& 9& 8& 1& 6\\ + 1& 9& 6& 4& 7& 6\\ +\end{pmatrix} +\cdot +\begin{pmatrix} + 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ +\end{pmatrix} +\] +Multiplizieren wir nun aus, erhalten wir unseren Nutzdatenteil +\[ +m = [4,7,2,5,8,1] +\] +zurück, den wir ursprünglich versendet haben. -- cgit v1.2.1 From 401325ee8d395ec4de27f4dcede73e860f3e28a8 Mon Sep 17 00:00:00 2001 From: "User-PC\\User" Date: Mon, 31 May 2021 10:47:48 +0200 Subject: =?UTF-8?q?=C3=9Cberarbeitung=20und=20Verbesserung=20der=20Kapitel?= =?UTF-8?q?=20Bearbeitung=20Literaturverzeichnis=20(im=20Literaturverzeich?= =?UTF-8?q?nis=20noch=20nicht=20alles=20korrekt)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buch/papers/spannung/Einleitung.tex | 81 ++++++++----------- buch/papers/spannung/references.bib | 49 +++++++---- buch/papers/spannung/teil0.tex | 70 ++++++++-------- buch/papers/spannung/teil1.tex | 37 +++++---- buch/papers/spannung/teil2.tex | 156 +++++++++++++++++------------------- buch/papers/spannung/teil3.tex | 107 +++++++++++++------------ buch/papers/spannung/teil4.tex | 44 ++++++---- 7 files changed, 281 insertions(+), 263 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/spannung/Einleitung.tex b/buch/papers/spannung/Einleitung.tex index cf6e916..c80db64 100644 --- a/buch/papers/spannung/Einleitung.tex +++ b/buch/papers/spannung/Einleitung.tex @@ -1,15 +1,18 @@ \section{Einleitung\label{spannung:section:Einleitung}} +\rhead{Einleitung} +Das Hook'sche Gesetz beschreibt die Beziehung von Spannung und Dehnung von linear-elastischen Materialien im Eindimensionalen. In diesem Kapitel geht es darum das Hook'sche Gesetz im Dreidimensionalen zu beschreiben. -Dieses beschreibt die Beziehung von Spannung und Dehnung von linear elastischen Materialien im Eindimensionalen. Durch variable Krafteinwirkungen entstehen in jedem Punkt des Materials eine Vielzahl an unterschiedlichen Spannungen. -Jeder erdenkliche Punkt im Dreidimensionalen beschreibt daher einen entsprechenden individuellen Spannungszustand. +In jedem erdenklichen Punkt im Dreidimensionalen herrscht daher ein entsprechender individueller Spannungszustand. Um das Hook'sche Gesetz für den 3D Spannungszustand formulieren zu können, reichen Skalare nicht aus. Darum werden Vektoren, Matrizen und Tensoren zur Hilfe gezogen. -Diese allgemeine Spannungsformel ist Grundlage für Computerprogramme und geotechnische Versuche, wie der Oedometer-Versuch. +Mit diesen lässt sich eine Spannungsformel für den 3D Spannungszustand bilden. +Diese Spannungsformel ist Grundlage für Computerprogramme und geotechnische Versuche, wie der Oedometer-Versuch. Um die mathematische Untersuchung vorzunehmen, beschäftigt man sich zuerst mit den spezifischen Gegebenheiten und Voraussetzungen. -Ebenfalls gilt es ein paar wichtige Begriffe und deren mathematischen Zeichen einzuführen, -damit sich den Berechnungen schlüssig folgen lässt. +Ebenfalls gilt es ein paar wichtige Begriffe und deren mathematischen Zeichen einzuführen. +In diesem Kapitel gehen wir auch auf die Zusammenhänge von Spannung, Dehnungen und Verformungen an elastischen Materialien ein, +wie sie in gängigen Lehrbüchern der Mechanik oder der Geotechnik behandelt werden. z. B. [\cite{spannung:Grundlagen der Geotechnik}] \section{Spannungsausbreitung\label{spannung:section:Spannungsausbreitung}} \rhead{Spannungsausbreitung} @@ -21,30 +24,34 @@ Belastet man den Boden mit einer Spannung \sigma = \frac{F}{A} +, \] -, so wird diese in den Boden geleitet und von diesem kompensiert. -Im Boden entstehen unterschiedlich hohe Zusatzspannung. -Die Zusatzspannung scheint sich räumlich und berechenbar im Boden auszubreiten. +so wird diese in den Boden geleitet und von diesem kompensiert. +Im Boden entstehen unterschiedlich hohe Zusatzspannungen. +Diese Zusatzspannung breitet sich räumlich im Boden aus. Im Falle einer konstanten Flächenlast $\sigma$ (siehe Abbildung 1.1) breitet sich die Zusatzspannung zwiebelartig aus. -Mit der Tiefe $t$ nimmt diese permanent ab (siehe Abbildung 1.2). -Wie diese Geometrie der Ausbreitung ist wird durch viele Modelle und Ansätze näherungsweise beschrieben. -Diese Zusatzspannung $\sigma$ ist aber sicher abhängig von $(x,y,t)$. \begin{figure} \centering - \includegraphics[width=0.5\linewidth,keepaspectratio]{papers/spannung/Grafiken/Bild4.png} - \caption{Ausbreitung der Zusatzspannung im Boden} + \includegraphics[width=0.4\linewidth,keepaspectratio]{papers/spannung/Grafiken/Bild4.png} + \caption{Ausbreitung der Zusatzspannung im Boden infolge einfacher Flächenlast} \label{fig:Bild4} \end{figure} +Mit der Tiefe $t$ nimmt diese permanent ab (siehe Abbildung 1.2). +Wie diese Geometrie der Ausbreitung ist, kann durch viele Modelle und Ansätze näherungsweise beschrieben werden. +Diese Zusatzspannung $\sigma$ ist im Wesentlichen abhängig von $(x,y,t)$. +Je nach Modell werden noch andere Parameter berücksichtigt. +Das können beispielsweise jenste Bodenkennwerte oder auch der Wassergehalt sein. + \begin{figure} \centering - \includegraphics[width=0.5\linewidth,keepaspectratio]{papers/spannung/Grafiken/Bild5.png} - \caption{Funktionen Spannung und Dehnung} + \includegraphics[width=0.35\linewidth,keepaspectratio]{papers/spannung/Grafiken/Bild5.png} + \caption{Funktionen der Spannung und Dehnung im Zusammenhang mit der Tiefe} \label{fig:Bild5} \end{figure} -Bei jeder dieser Zusatzspannung geht eine entsprechende Zusatzdehnung einher, welche eine Setzung bedeutet. +Bei jeder dieser Zusatzspannung geht eine entsprechende Zusatzdehnung des Bodens einher, welche eine Setzung bedeutet. Im einfachsten Fall kann modellhaft mit \[ \varepsilon @@ -58,43 +65,25 @@ s \int_{0}^{\infty}\varepsilon\enspace dt \] berechnet werden mit: -\[ -\varepsilon -= -\text{Dehnung [$-$]} -\] -\[ -\sigma -= -\text{Spannung [\si{\kilo\pascal}]} -\] -\[ -E -= -\text{Elastizitätsmodul; Young-Modul [\si{\kilo\pascal}]} -\] -\[ -t -= -\text{Tiefe [\si{\meter}]} -\] -\[ -s -= -\text{Setzung, Absenkung [m]} -\] - +\begin{align*} + \varepsilon &= \text{Dehnung [$-$]} \\ + \sigma &= \text{Spannung [\si{\kilo\pascal}]} \\ + E &= \text{Elastizitätsmodul; Young-Modul [\si{\kilo\pascal}]}\\ + t &= \text{Tiefe [\si{\meter}]} \\ + s &= \text{Setzung, Absenkung [m].} +\end{align*} +Diese Zusammenhänge sind wie erwähnt unter anderem im Lehrbuch [\cite{spannung:Grundlagen der Geotechnik}] beschrieben. In der praktischen Geotechnik wird man allerdings weitaus schwierigere Situationen antreffen. Ein Beispiel wäre eine Baugrube mit einem Baugrubenabschluss, wo ein Teil des Bodens abgetragen ist (siehe Abbildung 1.3). Die Ausbreitung der Zusatzspannung $\sigma(x,y,t)$ würde hier deutlich komplizierter ausfallen. Dies bedeutet auch eine komplexere Setzung der Bodenoberfläche infolge einer Flächenlast $\sigma$. -Aus allen zusätzlichen Spannungen müssen die adäquaten Dehnung mit Hilfe einer Spannungsgleichung berechnet werden. -Diese beruht auf Annahmen nach Hooke auf einem linear elastischen Boden. +Aus allen zusätzlichen Spannungen müssen die adäquaten Dehnungen mit Hilfe einer Spannungsgleichung berechnet werden. +Diese beruht auf Annahmen nach Hooke auf einem linear-elastischen Boden. Generell wird im Ingenieurwesen versucht Phänomene möglichst nach dem Hook'schen Gesetz abbilden zu können. \begin{figure} \centering - \includegraphics[width=0.5\linewidth,keepaspectratio]{papers/spannung/Grafiken/Bild3.png} - \caption{Beispiel Lastauftrag auf Boden} + \includegraphics[width=0.45\linewidth,keepaspectratio]{papers/spannung/Grafiken/Bild3.png} + \caption{Beispiel eines Lastauftrags auf den Boden bei einer komplexeren Situation, welches kompliziertere Spannungsausbreitung zur Folge hat} \label{fig:Bild3} \end{figure} \ No newline at end of file diff --git a/buch/papers/spannung/references.bib b/buch/papers/spannung/references.bib index ed5703c..090e3c3 100644 --- a/buch/papers/spannung/references.bib +++ b/buch/papers/spannung/references.bib @@ -4,27 +4,46 @@ % (c) 2020 Autor, Hochschule Rapperswil % -@online{spannung:bibtex, - title = {BibTeX}, - url = {https://de.wikipedia.org/wiki/BibTeX}, - date = {2020-02-06}, - year = {2020}, - month = {2}, +@online{spannung:Tensor, + title = {Tensor}, + url = {https://de.wikipedia.org/wiki/Tensor}, + date = {2021-05-29}, + year = {2021}, + month = {5}, day = {6} } -@book{spannung:numerical-analysis, - title = {Numerical Analysis}, - author = {David Kincaid and Ward Cheney}, - publisher = {American Mathematical Society}, - year = {2002}, - isbn = {978-8-8218-4788-6}, - inseries = {Pure and applied undegraduate texts}, - volume = {2} +@online{spannung:Voigtsche Notation, + title = {Voigtsche Notation}, + url = {https://de.wikipedia.org/wiki/Voigtsche_Notation}, + date = {2021-05-29}, + year = {2021}, + month = {5}, + day = {6} +} + +@book{spannung:Grundlagen der Geotechnik, + title = {Grundlagen der Geotechnik}, + author = {Hans-Henning Schmidt and Roland F. Buchmaier and Carola Vogt-Breyer}, + publisher = {Springer Fachmedien Wiesbaden GmbH}, + year = {2017}, + isbn = {978-3-658-14930-7}, + inseries = {Geotechnik nach Eurocode}, + volume = {5} +} + +@book{spannung:Stoffgesetze und numerische Modellierung in der Geotechnik, + title = {Stoffgesetze und numerische Modellierung in der Geotechnik}, + author = {Carlo Rabaiotti and Alessio Höttges}, + publisher = {Hochschule Rapperswil}, + year = {2021}, + isbn = {}, + inseries = {}, + volume = {} } @article{spannung:mendezmueller, - author = { Tabea Méndez and Andreas Müller }, + author = { Tabea Méndez and Andreas Müller }, title = { Noncommutative harmonic analysis and image registration }, journal = { Appl. Comput. Harmon. Anal.}, year = 2019, diff --git a/buch/papers/spannung/teil0.tex b/buch/papers/spannung/teil0.tex index be837ac..ffc9009 100644 --- a/buch/papers/spannung/teil0.tex +++ b/buch/papers/spannung/teil0.tex @@ -1,48 +1,47 @@ -\section{Einachsiger Spannungszustand\label{spannung:section:Einachsiger Spannungsustand}} -\rhead{Einachsiger Spannungszustand} -Ein Spannungszustand beschreibt alle Spannungen, welche in einem beliebigen Punkt im Körper wirken (siehe Abbildung 1.4). +\section{Der Spannungszustand\label{spannung:section:Der Spannungsustand}} +\rhead{Der Spannungszustand} +Ein Spannungszustand ist durch alle Spannungen, welche in einem beliebigen Punkt im Körper wirken, definiert (siehe Abbildung 1.4). Änderungen der äusseren Kräfte verändern die inneren Spannungszustände im Material. Um alle Spannungen eines Punktes darstellen zu können, wird ein infinitesimales Bodenelement in Form eines Würfels modellhaft vorgestellt. Man spricht auch von einem Elementarwürfel, da dieser elementar klein ist. \begin{figure} \centering - \includegraphics[width=0.5\linewidth,keepaspectratio]{papers/spannung/Grafiken/Bild2.png} + \includegraphics[width=0.4\linewidth,keepaspectratio]{papers/spannung/Grafiken/Bild2.png} \caption{Infinitesimales Bodenelement mit den 9 Spannungen} - \label{fig:infintesimaler-wurfel} + \label{fig:Bild2} \end{figure} -Es werden jeweils drei Seiten dieses Würfels betrachtet, wobei die drei gegenüberliegenden Seiten die selben Spannungen aufweisen. -Das infinitesimale Bodenteilchen hat die Koordinaten $1$, $2$, $3$ muss sich zwingend im Gleichgewicht befinden. -So sind insgesamt 9 verschiedene Spannungen möglich, wobei 3 Normal- und 6 Schubspannungen sind. -Normalspannung wirken normal (mit rechtem Winkel) zur angreifenden Fläche und Schubspannungen parallel zur angreifenden Fläche. -Alle Beträge dieser 9 Spannungen am Elementarwürfel bilden den Spannungszustand. +Es werden jeweils drei Seiten dieses Würfels betrachtet, wobei die drei gegenüberliegenden Seiten im Betrag die selben Spannungen aufweisen, +sodass der Elementarwürfel im Gleichgewicht ist. +Wäre dieses Gleichgewicht nicht vorhanden, käme es zu Verschiebungen und Drehungen. +Das infinitesimale Bodenteilchen hat die Koordinaten $1$, $2$, $3$. +Veränderungen der Normalspannungen können durch Schubspannungen kompensiert werden und umgekehrt. +So sind insgesamt neun verschiedene Spannungen möglich, wobei drei Normal- und sechs Schubspannungen sind. +Normalspannungen wirken normal (mit rechtem Winkel) zur angreifenden Fläche und Schubspannungen parallel zur angreifenden Fläche. +Alle Beträge dieser neun Spannungen am Elementarwürfel bilden den Spannungszustand. Daraus können die äquivalenten Dehnungen $\varepsilon$ mit Hilfe des Hook'schen Gesetz berechnet werden. +Daher gibt es auch den entsprechenden Dehnungszustand. -\begin{figure} - \centering - \includegraphics[width=0.5\linewidth,keepaspectratio]{papers/spannung/Grafiken/Bild1.png} - \caption{1D Spannungszustand aus einer quaderförmigen Bodenprobe} - \label{fig:infintesimaler-wurfel} -\end{figure} -Im einachsigen Spannungszustand herrscht nur die Normalspannung $\sigma_{11}$ (siehe Abbildung). +\section{Spannungszustand\label{spannung:section:Spannungsustand}} +\rhead{Spannungszustand} + +Im einachsigen Spannungszustand herrscht nur die Normalspannung $\sigma_{11}$ (siehe Abbildung 1.5). Das Hook'sche Gesetz beschreibt genau diesen 1D Spannungszustand. Nach Hooke gilt: \[ F \sim \Delta l -\] . -Teilt man beide Seiten mit den Konstanten $A$ und $l_0$ erhält man +\] +Teilt man beide Seiten durch die Konstanten $A$ und $l_0$, erhält man \[ \frac{F}{A} = \sigma \sim -\] -\[ \varepsilon = \frac{\Delta l}{l_0} @@ -52,22 +51,21 @@ und somit \sigma \sim \varepsilon +, \] -. -Mit: -\[ -l_0 -= -\text{Länge zu Beginn [\si{\meter}]} -\] -\[ -A -= -\text{Fläche [\si{\meter\squared}]} -\] - -Diese Beziehung gilt bei linear elastischen Materialien, welche reversibel sind und nicht dauerhaft verformt werden. +mit +\begin{align*} + l_0 &= \text{Länge zu Beginn [\si{\meter}]} \\ + A &= \text{Fläche [\si{\meter\squared}].} +\end{align*} +Diese Beziehung gilt bei linear-elastischen Materialien, welche reversible Verformungen zulassen. Es ist praktisch die relative Dehnung $\varepsilon$ anzugeben und nicht eine absolute Längenänderung $\Delta l$. +\begin{figure} + \centering + \includegraphics[width=0.35\linewidth,keepaspectratio]{papers/spannung/Grafiken/Bild1.png} + \caption{1D Spannungszustand aus einer quaderförmigen Bodenprobe} + \label{fig:Bild1} +\end{figure} Mithilfe vom Elastizitätsmodul $E$ als Proportionalitätskonstante lässt sich der eindimensionale Fall mit \[ \sigma @@ -75,7 +73,7 @@ Mithilfe vom Elastizitätsmodul $E$ als Proportionalitätskonstante lässt sich E\cdot\varepsilon \] beschreiben. -Im Falle, dass der E-Modul nicht konstant ist, kann dieser näherungsweise mit +Im Falle, dass $E$ nicht konstant ist, kann dieser näherungsweise durch \[ E = diff --git a/buch/papers/spannung/teil1.tex b/buch/papers/spannung/teil1.tex index 3b40ee9..2db244e 100644 --- a/buch/papers/spannung/teil1.tex +++ b/buch/papers/spannung/teil1.tex @@ -1,17 +1,24 @@ \section{Skalare, Vektoren, Matrizen und Tensoren\label{spannung:section:Skalare,_Vektoren,_Matrizen_und_Tensoren}} \rhead{Skalare, Vektoren, Matrizen und Tensoren} -Tensoren wurden als erstes in der Elastizitätstheorie eingesetzt. (Quelle Herr Müller) -In der Elastizitätstheorie geht es darum viele verschiedene Komponenten zu beschreiben. -Mit einer Matrix oder einem Vektor kann man dies nicht mehr bewerkstelligen. -Wenn man den dreidimensionalen Spannungszustand abbilden möchte, müsste man mehrere Vektoren haben. -Deshalb wurden 1840 von Rowan Hamilton Tensoren in die Mathematik eingeführt. -Woldemar Voigt hat den Begriff in die moderne Bedeutung von Skalar, Matrix und Vektor verallgemeinert. -Albert Einstein hat Tensoren zudem in der allgemeinen Relativitätstheorie benutzt. -Tensor sind eine Stufe höher als Matrizen. Matrizen sind 2. Stufe. -Da Tensoren eine Stufe höher sind, kann man auch Matrizen, Vektoren und Skalare als Tensoren bezeichnen. -Der Nachteil von den Tensoren ist, dass man die gewohnten Rechenregeln, die man bei Vektoren oder Matrizen kennt, -nicht darauf anwenden kann. Man ist deshalb bestrebt die Tensoren als Vektoren und Matrizen darzustellen, -damit man die gewohnten Rechenregeln darauf anwenden kann. (Quelle Wikipedia) -In der vorliegenden Arbeit sind bereits alle Tensoren als Matrizen 2. Stufe abgebildet. -Trotzdem kann man diese Matrizen wie vorher beschrieben als Tensor bezeichnen. -Da diese als Matrizen abgebildet sind, dürfen wir die bekannten Rechenregeln auf unsere Tensoren anwenden. \ No newline at end of file +Der Begriff Tensor kann als Überbegriff, der mathematischen Objekte Skalar, Vektor und Matrix, betrachtet werden. +Allerdings sind noch höhere Stufen dieser Objekte beinhaltet. +Ein Skalar, ein Vektor oder eine Matrix ist daher auch ein Tensor. +Ein Skalar ist ein Tensor 0. Stufe. +Mit einem Vektor können mehrere Skalare auf einmal beschrieben werden. +Ein Vektor hat daher die Stufe 1 und ist höherstufig als ein Skalar. +Mit einer Matrix können wiederum mehrere Vektoren auf einmal beschrieben werden. +Eine Matrix hat daher die Stufe 2 und ist noch höherstufig als ein Vektor. +Versteht man diese Stufen, so versteht man den Sinn des Begriffs Tensor. + +Jede Stufe von Tensoren verlangt andere Rechenregeln. +So zeigt sich auch der Nachteil von Tensoren mit Stufen höher als 2. +Man ist also bestrebt höherstufige Tensoren mit Skalaren, Vektoren oder Matrizen zu beschreiben. + +Der Begriff Tensor wurde 1840 von Rowan Hamilton in die Mathematik eingeführt. +James Clerk Maxwell hat bereits mit Tensoren operiert, ohne den Begriff Tensor gekannt zu haben. +Erst Woldemar Voigt hat den Begriff in die moderne Bedeutung von Skalar, Matrix und Vektor verallgemeinert. +Er hat in der Elastizitätstheorie als erstes Tensoren eingesetzt und beschrieben. +Auch Albert Einstein hat solche Tensoren eingesetzt, +um in der Relativitätstheorie die Änderung der 4D Raumzeit beschreiben zu können. +\cite{spannung:Tensor} +\cite{spannung:Voigtsche Notation} \ No newline at end of file diff --git a/buch/papers/spannung/teil2.tex b/buch/papers/spannung/teil2.tex index 8be0bdc..afd2c21 100644 --- a/buch/papers/spannung/teil2.tex +++ b/buch/papers/spannung/teil2.tex @@ -1,16 +1,22 @@ \section{Dreiachsiger Spannungszustand\label{spannung:section:Dreiachsiger_Spannungszustand}} \rhead{Dreiachsiger Spannungszustand} Durch komplexe Spannungsausbreitungen im Boden entstehen im 3D Spannungszustand unterschiedliche Normal- und Schubspannungen. -Ein Tensor 0.Stufe, sprich ein Skalar, kann lediglich den 1D Spannungszustand beschreiben. -Um den 3D Spannungszustandes als ein mathematisches Objekt darstellen zu können, wird ein Tensor 2.Stufe, sprich eine Matrix, eingesetzt. +\begin{figure} + \centering + \includegraphics[width=0.4\linewidth,keepaspectratio]{papers/spannung/Grafiken/infinitesimalerWuerfel.png} + \caption{Beispiel eines Spannungszustandes; Vergrösserung eines infinitesimalen Bodenteilchen} + \label{fig:infinitesimalerWuerfel} +\end{figure} +Ein Tensor 0. Stufe, sprich ein Skalar, kann lediglich den 1D Spannungszustand beschreiben. +Um den 3D Spannungszustandes als ein mathematisches Objekt darstellen zu können, wird ein Tensor 2. Stufe, sprich eine Matrix, eingesetzt. Die Spannungen sind durch die zwei Indizes \[ i, j\in\left\{1, 2, 3\right\} \] - definiert. -Daher ergeben sich die 9 Spannungen. -Dieser Spannungstensor kann schliesslich mit $3^2$ Einträgen als 3x3 Matrix mit +Daher ergeben sich die neun Spannungen. +Die nachfolgenden Zusammenhänge sind in \cite{spannung:Voigtsche Notation} beschrieben. +Dieser Spannungstensor kann schliesslich mit $3^2$ Einträgen als $3\times3$ Matrix mit \[ \overline{\sigma} = @@ -23,13 +29,12 @@ Dieser Spannungstensor kann schliesslich mit $3^2$ Einträgen als 3x3 Matrix mit \end{pmatrix} \] dargestellt werden und beschreibt somit den gesamten Spannungszustand. -Die Dehnungen wirken adäquat zu den Spannungen und sind durch die zwei Indizes +Die Dehnungen wirken in die gleichen Richtungen wie die korrespondierenden Spannungen und sind durch die zwei Indizes \[ k, l\in\left\{1, 2, 3\right\} \] - definiert. -Der Dehnungstensor ist ebenfalls ein Tensor 2.Stufe und kann somit auch als $3\times3$ Matrix mit +Der Dehnungstensor ist ebenfalls ein Tensor 2. Stufe und kann somit auch als $3\times3$ Matrix mit \[ \overline{\varepsilon} = @@ -43,14 +48,7 @@ Der Dehnungstensor ist ebenfalls ein Tensor 2.Stufe und kann somit auch als $3\t \] dargestellt werden und beschreibt den gesamten Dehnungszustand. -\begin{figure} - \centering - \includegraphics[width=0.5\linewidth,keepaspectratio]{papers/spannung/Grafiken/infinitesimalerWuerfel.png} - \caption{Infinitesimales Bodenteilchen} - \label{fig:infintesimaler-wurfel} -\end{figure} - -Der Spannungs- und Dehnungstensor 2.Stufe kann je in einen Tensor 1. Stufe überführt werden, welches ein Spaltenvektor ist. +Der Spannungs- und Dehnungstensor 2. Stufe kann je in einen Tensor 1. Stufe überführt werden, welches ein Spaltenvektor ist. Gemäss der Hadamard-Algebra dürfen Zeile um Zeile in eine Spalte notiert werden, sodass es einen Spaltenvektor ergibt. So ergibt sich der Spannungsvektor @@ -108,22 +106,22 @@ und Dehnungsvektor \varepsilon_{32} \\ \varepsilon_{33} \end{pmatrix} -\]. - -Um die Beziehung von Spannung und Dehnung, welche mit Tensoren 2.Stufen ausgedrückt werden, zu beschreiben, wird ein Elastizitätstensor 4.Stufe benötigt. -Dieser ist im 1D Spannungszustand ein Tensor 0.Stufe und somit ein Skalar. -Dieses Skalar ist das Elastizitätsmodul $E$. +. +\] +Um die Beziehung von Spannung und Dehnung, welche mit Tensoren 2. Stufe ausgedrückt werden, zu beschreiben, wird ein Elastizitätstensor 4. Stufe benötigt. +Dieser ist im 1D Spannungszustand ein Tensor 0. Stufe und somit ein Skalar, der Elastizitätsmodul $E$. -Dieser Elastizitätstensor 4.Stufe kann als Tensor 2.Stufe, sprich als Matrix, dargestellt werden. -So wird die Spannungsgleichung stark vereinfacht, da nun ein Vektor mit einer Matrix operiert. +Dieser Elastizitätstensor 4. Stufe kann als Tensor 2. Stufe, sprich als Matrix, dargestellt werden. +So wird die Spannungsgleichung stark vereinfacht, da nun eine Matrix auf einen Vektor operiert. Dieser Tensor muss für eine Spannung jeden Einfluss aus allen 9 Dehnungen mit Konstanten erfassen. Dies bedeutet um eine von 9 Spannungen berechnen zu können müssen alle 9 Dehnung mit unterschiedlichen Faktoren summiert werden. Es ergeben sich $9^2$ Einträge, welches mit den 4 Indizes \[ i, j, k, l\in\left\{1, 2, 3\right\} +, \] -, die zueinander verknüpft werden müssen, zu begründen ist. -Es ergeben sich $3^4$ Einträge, sprich eine $9\times9$ Matrix, welche allgemein mit +die zueinander verknüpft werden müssen, zu begründen ist. +Es ergeben sich $3^4$ Einträge, sprich eine $9\times9$ Matrix, welche allgemein \[ \overline{\overline{C}} = @@ -141,25 +139,26 @@ C_{3211} & C_{3212} & C_{3213} & C_{3221} & C_{3222} & C_{3223} & C_{3231} & C_{ C_{3311} & C_{3312} & C_{3313} & C_{3321} & C_{3322} & C_{3323} & C_{3331} & C_{3332} & C_{3333} \end{pmatrix} \] -ausgedrückt wird. +geschrieben werden kann. Dieser Elastizitätstensor muss für isotrope Materialien zwingend symmetrisch sein. Folglich gilt: \[ \overline{\overline{C}} = \overline{\overline{C}}~^{T} -\]. - +. +\] Die allgemeine Spannungsgleichung lautet nun: \[ \vec\sigma = \overline{\overline{C}}\cdot\vec{\varepsilon} -\]. - +. +\] Die Konstanten $C$ werden nun nach dem Hook'schen Gesetz mit Hilfe des Elastizitätsmoduls $E$ definiert. -Da dieser Modul durch die eindimensionale Betrachtung definiert ist muss eine weitere Kennzahl eingeführt werden. -Dies ist die Querdehnungszahl $\nu$ (auch Poisson-Zahl), welche mit +Da dieser Modul durch die eindimensionale Betrachtung definiert ist, +muss für die dreidimensionale Betrachtung eine weitere Kennzahl eingeführt werden. +Dies ist die Querdehnungszahl $\nu$ (auch Poisson-Zahl), welche durch \[ \nu = @@ -168,17 +167,11 @@ Dies ist die Querdehnungszahl $\nu$ (auch Poisson-Zahl), welche mit \frac{\Delta b}{b_0} \] und -\[ -\varepsilon -= -\text{Längsdehnung [$-$]} -\] -\[ -\varepsilon_q -= -\text{Querdehnung [$-$]} -\] -definiert ist. Trägt man die Konstanten in die Matrix ein ergibt sich +\begin{align*} + \varepsilon &= \text{Längsdehnung [$-$]} \\ + \varepsilon_q &= \text{Querdehnung [$-$]} +\end{align*} +definiert ist. Trägt man die Konstanten in die Matrix ein, ergibt sich \[ \begin{pmatrix} \sigma_{11}\\ @@ -215,9 +208,9 @@ definiert ist. Trägt man die Konstanten in die Matrix ein ergibt sich \varepsilon_{32} \\ \varepsilon_{33} \end{pmatrix} +, \] - -, welche ebenfalls als Indexnotation mit +welche ebenfalls als Indexnotation mit \[ \sigma_{ij} = @@ -225,9 +218,8 @@ definiert ist. Trägt man die Konstanten in die Matrix ein ergibt sich \sum_{l=1}^3 C_{ijkl}\cdot\varepsilon_{kl} \] -ausgedrückt werden können. -Die Normalspannung $\sigma_{11}$ lässt sich exemplarisch mit - +ausgedrückt werden kann. +Die Normalspannung $\sigma_{22}$ lässt sich exemplarisch als \[ \sigma_{22} = @@ -247,10 +239,12 @@ Diese Symmetrie setzt daher voraus, dass = \sigma_{21} , +\qquad \sigma_{13} = \sigma_{31} , +\qquad \sigma_{23} = \sigma_{32} @@ -261,16 +255,18 @@ und folglich auch = \varepsilon_{21} , +\qquad \varepsilon_{13} = \varepsilon_{31} , +\qquad \varepsilon_{23} = \varepsilon_{32} \] gilt. -Diese Eigenschaft wird durch die Voigt'sche Notation ausgenutzt um die Gleichung vereinfachen zu können. +Diese Eigenschaft wird durch die Voigt'sche Notation \cite{spannung:Voigtsche Notation} ausgenutzt, um die Gleichung vereinfachen zu können. Durch diese Symmetrie gilt \[ \overline{\sigma} @@ -284,7 +280,7 @@ Durch diese Symmetrie gilt \begin{pmatrix} \sigma_{11} & \sigma_{12} & \sigma_{13} \\ & \sigma_{22} & \sigma_{23} \\ - sym & & \sigma_{33} + \text{sym} & & \sigma_{33} \end{pmatrix} \qquad \Rightarrow @@ -328,9 +324,10 @@ und entsprechend \varepsilon_{13} \\ \varepsilon_{12} \end{pmatrix} -\]. +. +\] -Aus den Vereinfachungen der Voigt'schen Notation lassen sich die Spannungs- und Dehnungstensoren als Spaltenvektoren mit je 6 Einträgen darstellen. +Aus den Vereinfachungen der Voigt'schen Notation lassen sich die Spannungs- und Dehnungstensoren als Spaltenvektoren mit je sechs Einträgen darstellen. Der Elastizitätstensor kann entsprechend auf eine $6\times6$ Matrix reduziert werden. Es lässt sich nun eine reduzierte allgemeine Spannungsgleichung mit \[ @@ -350,12 +347,12 @@ beziehungsweise \end{pmatrix} = \begin{pmatrix} - C_{11} & C_{12} & C_{13} & C_{14} & C_{15} & C_{16} \\ - C_{21} & C_{22} & C_{23} & C_{24} & C_{25} & C_{26} \\ - C_{31} & C_{32} & C_{33} & C_{34} & C_{35} & C_{36} \\ - C_{41} & C_{42} & C_{43} & C_{44} & C_{45} & C_{46} \\ - C_{51} & C_{52} & C_{53} & C_{54} & C_{55} & C_{56} \\ - C_{61} & C_{62} & C_{63} & C_{64} & C_{65} & C_{66} + C_{1111} & C_{1122} & C_{1133} & C_{1123} & C_{1113} & C_{1112} \\ + C_{2211} & C_{2222} & C_{2233} & C_{2223} & C_{2213} & C_{2212} \\ + C_{3311} & C_{3322} & C_{3333} & C_{3323} & C_{3313} & C_{3312} \\ + C_{2311} & C_{2322} & C_{2333} & C_{2323} & C_{2313} & C_{2312} \\ + C_{1311} & C_{1322} & C_{1333} & C_{1323} & C_{1313} & C_{1312} \\ + C_{1211} & C_{1222} & C_{1233} & C_{1223} & C_{1213} & C_{1212} \end{pmatrix} \begin{pmatrix} \varepsilon_{11} \\ @@ -367,9 +364,9 @@ beziehungsweise \end{pmatrix} \] beschreiben. -Die Spannung $\sigma_{11}$ beispielsweise besteht so aus der Summe aller 6 Produkte der Konstanten $C$ und Dehnungen $\varepsilon$. +Die Spannung $\sigma_{11}$ beispielsweise erhält man, wenn man die sechs Produkte aus den Konstanten $C$ und Dehnungen $\varepsilon$ summiert. Die Symmetrieeigenschaft des Elastizitätstensors bleibt auch hier erhalten. -Nun lässt sich die reduzierte allgemeine Spannungsgleichung mit +Somit lässt sich die reduzierte allgemeine Spannungsgleichung mit \[ \begin{pmatrix} @@ -382,12 +379,12 @@ Nun lässt sich die reduzierte allgemeine Spannungsgleichung mit \end{pmatrix} = \begin{pmatrix} - C_{11} & C_{12} & C_{13} & C_{14} & C_{15} & C_{16} \\ - & C_{22} & C_{23} & C_{24} & C_{25} & C_{26} \\ - & & C_{33} & C_{34} & C_{35} & C_{36} \\ - & & & C_{44} & C_{45} & C_{46} \\ - & & & & C_{55} & C_{56} \\ - \text{sym} & & & & & C_{66} + C_{1111} & C_{1122} & C_{1133} & C_{1123} & C_{1113} & C_{1112} \\ + & C_{2222} & C_{2233} & C_{2223} & C_{2213} & C_{2212} \\ + & & C_{3333} & C_{3323} & C_{3313} & C_{3312} \\ + & & & C_{2323} & C_{2313} & C_{2312} \\ + & & & & C_{1313} & C_{1312} \\ + \text{sym} & & & & & C_{1212} \end{pmatrix} \begin{pmatrix} \varepsilon_{11} \\ @@ -399,9 +396,8 @@ Nun lässt sich die reduzierte allgemeine Spannungsgleichung mit \end{pmatrix} \] beschreiben. -Die Konstanten $C$ und $\nu$ werden wieder nach dem Hook'schen Gesetz definiert. +Die Konstanten $C$ werden wieder nach dem Hook'schen Gesetz definiert. Dies ergibt die Spannungsgleichung, welche weit möglichst vereinfacht ist: - \[ \begin{pmatrix} \sigma_{11}\\ @@ -429,10 +425,11 @@ Dies ergibt die Spannungsgleichung, welche weit möglichst vereinfacht ist: \varepsilon_{13}\\ \varepsilon_{12} \end{pmatrix} -\]. +. +\] Im Elastizitätstensor fallen zwei $3\times3$ Blöcke auf, welche nur Einträge mit $0$ haben. Der Tensor besagt also, -dass diese jeweiligen Konstanten keinen Einfluss auf unsere Spannung haben. +dass diese jeweiligen Dehnungen keinen Einfluss auf unsere Spannung haben. Man sieht nun auch ganz gut, dass sich im Vergleich zu der allgemeinen Spannungsgleichung, die Einträge verschoben haben. Da nach Voigt zuerst die Normalspannungen und anschliessend die Schubspannungen notiert worden sind, ergeben sich die $3\times3$ Blöcke. @@ -477,27 +474,18 @@ Dadurch erhält man die Dehnungsgleichung: \sigma_{13}\\ \sigma_{12} \end{pmatrix} -\]. - +. +\] Die zwei $3\times3$ Blöcke links unten und rechts oben sind folglich noch vorhanden. -Um wieder die Einflüsse der Parameter veranschaulichen zu können berechnet man mit +Um wieder die Einflüsse der Parameter veranschaulichen zu können berechnet man die Dehnung \[ \varepsilon_{22} = \frac{1}{E}\sigma_{22} - \frac{\nu}{E}\sigma_{11} - \frac{\nu}{E}\sigma_{33} = \frac{1}{E}\cdot(\sigma_{22}-\nu\cdot\sigma_{11}-\nu\cdot\sigma_{33}) +. \] - -die Dehnung $\varepsilon_{22}$. Diese hängt wieder am meisten von $\sigma_{22}$ ab. Ist die Querdehnung $\nu$ grösser, so wird die Dehnung $\varepsilon_{22}$ reduziert. -Bei inkompressiblen Medien, bei welchen keine Dehnungen und nur identische Normalspannungen auftreten können, ist folglich -\[ -\nu -= -0.5 -\]. - - - +Bei inkompressiblen Medien, bei welchen keine Dehnungen und nur identische Normalspannungen auftreten können, ist folglich $\nu=0.5$. \ No newline at end of file diff --git a/buch/papers/spannung/teil3.tex b/buch/papers/spannung/teil3.tex index e5574b8..438ac31 100644 --- a/buch/papers/spannung/teil3.tex +++ b/buch/papers/spannung/teil3.tex @@ -1,80 +1,86 @@ -\section{Spannungsausbreitung\label{spannung:section:Invarianten}} -\rhead{Invarianten} -Trotz der Vereinfachung lässt sich mit den Invarianten die Realität adäquat abbilden. -Als erste Bedingung stellt man folgendes Verhältnis auf: +\section{Die geotechnischen Invarianten\label{spannung:section:Die geotechnischen Invarianten}} +\rhead{Die geotechnischen Invarianten} +In vielen Fällen in der Geotechnik und auch in Versuchen hat man gleichmässige Belastungen über eine grössere Fläche. +Durch eine solche Belastung auf den Boden, entstehen gleichermassen Spannungen in Richtung $2$ und $3$, +wenn man von einem isotropen Bodenmaterial ausgeht. +Folglich gilt: \[ \sigma_{22} = \sigma_{33} -\] . - -Dies deshalb, da man von einem isotropen Bodenmaterial ausgeht. -In Achse 22, Richtung 22 hat man den gleichen Boden wie in Achse 33 und Richtung 33. -Das Verhalten bezüglich Kraftaufnahme, Dehnung Spannung ist somit dasselbe. - -Man führt die zwei Werte p als hydrostatische Spannung und q als deviatorische Spannung ein. -Die Berechnung von p und q sieht wie folgt aus: - +\] +Dadurch wird der Spannungszustand vereinfacht. +Diesen vereinfachten Spannungszustand kann man mit den zwei geotechnischen Invarianten abbilden. +Die erste Invariante ist die volumetrische Spannung \[ p = \frac{\sigma_{11}+\sigma_{22}+\sigma_{33}}{3} +, \] - -oder durch Vereinfachung, da $\sigma_{22}=\sigma_{33}$ : - +welche als arithmetisches Mittel aller Normalspannungen im infinitesimalen Würfel definiert ist. +Die zweite Invariante ist die deviatorische Spannung +\[ +q += +\sqrt{\frac{(\sigma_{11}-\sigma_{22})^{2}+(\sigma_{11}-\sigma_{33})^{2}+(\sigma_{22}-\sigma_{33})^{2}}{2}} +. +\] +Diese Zusammenhänge werden im Skript [\cite{spannung:Stoffgesetze und numerische Modellierung in der Geotechnik}] aufgezeigt. +Die hydrostatische Spannung $p$ kann gemäss Gleichung (Nr) als \[ p = \frac{\sigma_{11}+2\sigma_{33}}{3} \] - +vereinfacht werden. +Die deviatorische Spannung $q$ wird gemäss Gleichung (Nr) als \[ q = \sigma_{11}-\sigma_{33} \] -. - -p ist das arithmetische Mittel von der Spannung im infinitesimalen Würfel. -q ist die Differenz zwischen der Spannung in vertikaler Richtung und der Spannung in Richtung 2 und 3. -Man kann p als Druckspannung und q als Schubspannung anschauen. - -Aus der Formel vom vorherigen Kapitel konnten wir die Spannungen berechnen. -Deshalb kann man nun p und q in die Gleichung einsetzen. -Die Dehnungen werden mit neuen Variablen eingeführt. -Die Deviatorische Dehnung kann mit einer Schubdehnung verglichen werden. -Die hydrostatische Dehnung kann mit einer Kompressionsdehnung verglichen - -\[ -\overbrace{\sigma_{11}-\sigma_{33}}^{q} -= -\frac{3E}{2(1+\nu)} \overbrace{\frac{2}{3}(\varepsilon_{11} - \varepsilon_{33})}^{\varepsilon_{\nu}} -\] +vereinfacht. Man kann $p$ als Isotrop und $q$ als Schub betrachten. +Die Invarianten können mit der Spannungsformel (Nr..xxx) berechnet werden. +Durch geschickte Umformung dieser Gleichung, lassen sich die Module als Faktor separieren. +Dabei entstehen spezielle Faktoren mit den Dehnungskomponenten. +So ergibt sich \[ \overbrace{\frac{\sigma_{11}+2\sigma_{33}}{3}}^{p} = -\frac{E}{3(1-2\nu)} \overbrace{(\varepsilon_{11} - 2\varepsilon_{33})}^{\varepsilon_{s}} +\frac{E}{3(1-2\nu)} \overbrace{(\varepsilon_{11} - 2\varepsilon_{33})}^{\varepsilon_{v}} \] - +und \[ -\varepsilon_{s} +\overbrace{\sigma_{11}-\sigma_{33}}^{q} = -\text{Hydrostatische Dehnung} [-] +\frac{3E}{2(1+\nu)} \overbrace{\frac{2}{3}(\varepsilon_{11} - \varepsilon_{33})}^{\varepsilon_{s}} +. \] - +Die Faktoren mit den Dehnungskomponenten können so mit \[ -\varepsilon_{\nu} +\varepsilon_{v} = -\text{Deviatorische Dehnung} [-] +(\varepsilon_{11} - 2\varepsilon_{33}) +\qquad +\text{und} +\qquad +\varepsilon_{s} += +\frac{2}{3}(\varepsilon_{11} - \varepsilon_{33}) \] - -werden. - -Diese Komponenten kann man nun in die Vereinfachte Matrix +eingeführt werden, mit +\begin{align*} + \varepsilon_{v} &= \text{Hydrostatische Dehnung [-]} \\ + \varepsilon_{s} &= \text{Deviatorische Dehnung [-].} +\end{align*} +Die hydrostatische Dehnung $\varepsilon_{v}$ kann mit einer Kompression verglichen werden. +Die deviatorische Dehnung $\varepsilon_{s}$ kann mit einer Verzerrung verglichen werden. + +Diese zwei Gleichungen kann man durch die Matrixschreibweise \[ \begin{pmatrix} q\\ @@ -87,12 +93,13 @@ Diese Komponenten kann man nun in die Vereinfachte Matrix \end{pmatrix} \begin{pmatrix} \varepsilon_{s}\\ - \varepsilon_{\nu} + \varepsilon_{v} \end{pmatrix} \] -einsetzen. -Man hat dann eine Matrix multipliziert mit einem Vektor und erhält einen Vektor. +(sollte nummeriert sein) vereinfachen. +Man hat so eine Matrix multipliziert mit einem Vektor und erhält einen Vektor. +Änderungen des Spannungszustandes können mit dieser Gleichung vollumfänglich erfasst werden. -Mit dieser Formel lassen sich verschieden Parameter von Versuchen analysieren und berechnen. -Ein solcher Versuch, den oft in der Geotechnik durchgeführt wird ist der Oedometer-Versuch. +Mit dieser Formel lassen sich verschieden Ergebnisse von Versuchen analysieren und berechnen. +Ein solcher Versuch, den oft in der Geotechnik durchgeführt wird, ist der Oedometer-Versuch. Im nächsten Kapitel wird die Anwendung der Matrix an diesem Versuch beschrieben. \ No newline at end of file diff --git a/buch/papers/spannung/teil4.tex b/buch/papers/spannung/teil4.tex index 60f2518..d524f13 100644 --- a/buch/papers/spannung/teil4.tex +++ b/buch/papers/spannung/teil4.tex @@ -1,16 +1,16 @@ \section{Oedometer-Versuch\label{spannung:section:Oedometer-Versuch}} \rhead{Oedometer-Versuch} -Mit dem Oedometer-Versuch kann der Oedometrische Elastizitätsmodul $E_{OED}$ bestimmt werden. +Mit dem Oedometer-Versuch kann der oedometrische Elastizitätsmodul $E_{OED}$ bestimmt werden. Dieser beschreibt ebenfalls das Verhältnis zwischen Spannung und Dehnung, allerdings unter anderen Bedingungen. Diese Bedingung ist das Verhindern der seitlichen Verformung, sprich der Dehnung in Richtung $1$ und $2$. Es wird ein Probeelement mit immer grösseren Gewichten belastet, welche gleichmässig auf das Material drücken. Die seitliche Verschiebung des Materials wird durch einen Stahlring verhindert. -Die Probe wird sich so steig verdichten. +Die Probe wird sich so stetig verdichten. Das Volumen nimmt ab und die Dehnung nimmt immer mehr zu. -Unter diesen Bedingungen wird das Oedometrische E-Modul mit steigender Dehnung zunehmen. +Unter diesen Bedingungen wird der oedometrische Elastizitätsmodul mit steigender Dehnung zunehmen. -Da im Boden das umgebende Material ähnliche eine seitliche Verformung verhindert, -gibt dieser Oedometrische E-Modul die Realität besser als der gewöhnliche E-Modul wieder. +Da im Boden das umgebende Material ähnlich eine seitliche Verformung verhindert, +bildet dieser oedometrische Elastizitätsmodul die Realität besser ab, als der gewöhnliche Elastizitätsmodul. Durch dieses Verhindern des seitlichen Ausbrechens ist \[ \varepsilon_{22} @@ -25,15 +25,16 @@ aber auch = \sigma_{33} \neq 0 +. \] -Die Spannung $\sigma_{11}$ wird durch durch die aufgebrachte Kraft mit +Die Spannung $\sigma_{11}$ wird durch die aufgebrachte Kraft mit \[ \sigma_{11} = \frac{F}{A} \] und die Dehnung $\varepsilon_{11}$ jeweils mit den entsprechenden Setzungen berechnet. -Diese Randbedingen können in die vereinfachte Gleichung eingesetzt. +Diese Randbedingungen können in die vereinfachte Gleichung (Nrxxx) eingesetzt werden. Diese lautet nun: \[ \begin{pmatrix} @@ -42,21 +43,30 @@ Diese lautet nun: \end{pmatrix} = \begin{pmatrix} - \frac{E_{OED}}{(1+\nu)} & 0 \\ - 0 & \frac{E_{OED}}{(1-2\nu)} + \frac{E_{OED}}{(1+\nu)} & 0 \\ + 0 & \frac{E_{OED}}{3(1-2\nu)} \end{pmatrix} \begin{pmatrix} \varepsilon_{11}\\ \varepsilon_{11} \end{pmatrix} -\] . - -Daraus lässt sich bei jedem Setzungsgrad das Oedometrische E-Modul $E_{OED}$ und die seitlichen Spannungen $\sigma_{33}$ mit den 2 Gleichungen - -GLEICHUNGEN... - +\] +Daraus lässt sich bei jedem Setzungsgrad der oedometrische Elastitzitätsmodul $E_{OED}$ und die seitlichen Spannungen $\sigma_{33}$ mit den 2 Gleichungen +\[ +\sigma_{11}-\sigma_{33} += +\frac{E_{OED}}{(1+\nu)}\cdot\varepsilon_{11} +\] +und +\[ +\sigma_{11}+2\sigma_{33} += +\frac{E_{OED}}{3(1-2\nu)}\cdot\varepsilon_{11} +\] berechnen. +Mit diesen Gleichungen hat man das Gleichungssystem um $E_{OED}$ und $\sigma_{33}$ zu berechnen. +Die Poisson-Zahl muss als Kennwert gemäss der Bodenklasse gewählt werden. Den Versuch kann man auf einem $\sigma$-$\varepsilon$-Diagramm abtragen (siehe Abbildung 1.7). Durch die Komprimierung nimmt der Boden mehr Spannung auf, und verformt sich zugleich weniger stark. Mit diesem ermittelten $E_{OED}$ kann man nun weitere Berechnungen für die Geotechnik durchführen. @@ -64,6 +74,6 @@ Mit diesem ermittelten $E_{OED}$ kann man nun weitere Berechnungen für die Geot \begin{figure} \centering \includegraphics[width=0.5\linewidth,keepaspectratio]{papers/spannung/Grafiken/DiagrammOedometer-Versuch.png} - \caption{Diagramm Oedometer-Versuch} - \label{fig:Diagramm Oedometer-Versuch} + \caption{Diagramm Charakteristik verschiedener Elastizitätsmodule bei gleichem Material} + \label{fig:DiagrammOedometer-Versuch} \end{figure} \ No newline at end of file -- cgit v1.2.1 From b70156cbf2d76d1850ddd1fc6f58e79bdc5c5203 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Wed, 2 Jun 2021 07:53:42 +0200 Subject: Makefile in clifford, references in spannung --- buch/papers/clifford/Makefile.inc | 20 +++++++++++++------- buch/papers/spannung/Einleitung.tex | 6 +++--- buch/papers/spannung/references.bib | 6 +++--- buch/papers/spannung/teil1.tex | 2 +- buch/papers/spannung/teil2.tex | 6 +++--- buch/papers/spannung/teil3.tex | 4 ++-- 6 files changed, 25 insertions(+), 19 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/clifford/Makefile.inc b/buch/papers/clifford/Makefile.inc index 7b941b3..8cdd02e 100644 --- a/buch/papers/clifford/Makefile.inc +++ b/buch/papers/clifford/Makefile.inc @@ -3,12 +3,18 @@ # # (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule # -dependencies-clifford = \ +dependencies-clifford = \ papers/clifford/packages.tex \ papers/clifford/main.tex \ - papers/clifford/references.bib \ - papers/clifford/teil0.tex \ - papers/clifford/teil1.tex \ - papers/clifford/teil2.tex \ - papers/clifford/teil3.tex - + papers/clifford/references.bib \ + papers/clifford/0_ElevatorPitch.tex \ + papers/clifford/1_Vektordarstellung.tex \ + papers/clifford/2_QuadratVektoren.tex \ + papers/clifford/3_MultiplikationVektoren.tex \ + papers/clifford/4_GeometrischesProdukt.tex \ + papers/clifford/5_PolareDarstellung.tex \ + papers/clifford/6_Dirac-Matrizen.tex \ + papers/clifford/7_Reflektion.tex \ + papers/clifford/8_Rotation.tex \ + papers/clifford/9_KomplexeZahlen.tex \ + papers/clifford/10_Quaternionen.tex diff --git a/buch/papers/spannung/Einleitung.tex b/buch/papers/spannung/Einleitung.tex index c80db64..0cb1433 100644 --- a/buch/papers/spannung/Einleitung.tex +++ b/buch/papers/spannung/Einleitung.tex @@ -12,7 +12,7 @@ Diese Spannungsformel ist Grundlage für Computerprogramme und geotechnische Ver Um die mathematische Untersuchung vorzunehmen, beschäftigt man sich zuerst mit den spezifischen Gegebenheiten und Voraussetzungen. Ebenfalls gilt es ein paar wichtige Begriffe und deren mathematischen Zeichen einzuführen. In diesem Kapitel gehen wir auch auf die Zusammenhänge von Spannung, Dehnungen und Verformungen an elastischen Materialien ein, -wie sie in gängigen Lehrbüchern der Mechanik oder der Geotechnik behandelt werden. z. B. [\cite{spannung:Grundlagen der Geotechnik}] +wie sie in gängigen Lehrbüchern der Mechanik oder der Geotechnik behandelt werden, z.~B.~\cite{spannung:Grundlagen-der-Geotechnik}. \section{Spannungsausbreitung\label{spannung:section:Spannungsausbreitung}} \rhead{Spannungsausbreitung} @@ -72,7 +72,7 @@ berechnet werden mit: t &= \text{Tiefe [\si{\meter}]} \\ s &= \text{Setzung, Absenkung [m].} \end{align*} -Diese Zusammenhänge sind wie erwähnt unter anderem im Lehrbuch [\cite{spannung:Grundlagen der Geotechnik}] beschrieben. +Diese Zusammenhänge sind wie erwähnt unter anderem im Lehrbuch [\cite{spannung:Grundlagen-der-Geotechnik}] beschrieben. In der praktischen Geotechnik wird man allerdings weitaus schwierigere Situationen antreffen. Ein Beispiel wäre eine Baugrube mit einem Baugrubenabschluss, wo ein Teil des Bodens abgetragen ist (siehe Abbildung 1.3). Die Ausbreitung der Zusatzspannung $\sigma(x,y,t)$ würde hier deutlich komplizierter ausfallen. @@ -86,4 +86,4 @@ Generell wird im Ingenieurwesen versucht Phänomene möglichst nach dem Hook'sch \includegraphics[width=0.45\linewidth,keepaspectratio]{papers/spannung/Grafiken/Bild3.png} \caption{Beispiel eines Lastauftrags auf den Boden bei einer komplexeren Situation, welches kompliziertere Spannungsausbreitung zur Folge hat} \label{fig:Bild3} -\end{figure} \ No newline at end of file +\end{figure} diff --git a/buch/papers/spannung/references.bib b/buch/papers/spannung/references.bib index 090e3c3..02f8d09 100644 --- a/buch/papers/spannung/references.bib +++ b/buch/papers/spannung/references.bib @@ -13,7 +13,7 @@ day = {6} } -@online{spannung:Voigtsche Notation, +@online{spannung:Voigtsche-Notation, title = {Voigtsche Notation}, url = {https://de.wikipedia.org/wiki/Voigtsche_Notation}, date = {2021-05-29}, @@ -22,7 +22,7 @@ day = {6} } -@book{spannung:Grundlagen der Geotechnik, +@book{spannung:Grundlagen-der-Geotechnik, title = {Grundlagen der Geotechnik}, author = {Hans-Henning Schmidt and Roland F. Buchmaier and Carola Vogt-Breyer}, publisher = {Springer Fachmedien Wiesbaden GmbH}, @@ -32,7 +32,7 @@ volume = {5} } -@book{spannung:Stoffgesetze und numerische Modellierung in der Geotechnik, +@book{spannung:Stoffgesetze-und-numerische-Modellierung-in-der-Geotechnik, title = {Stoffgesetze und numerische Modellierung in der Geotechnik}, author = {Carlo Rabaiotti and Alessio Höttges}, publisher = {Hochschule Rapperswil}, diff --git a/buch/papers/spannung/teil1.tex b/buch/papers/spannung/teil1.tex index 2db244e..74516c1 100644 --- a/buch/papers/spannung/teil1.tex +++ b/buch/papers/spannung/teil1.tex @@ -21,4 +21,4 @@ Er hat in der Elastizitätstheorie als erstes Tensoren eingesetzt und beschriebe Auch Albert Einstein hat solche Tensoren eingesetzt, um in der Relativitätstheorie die Änderung der 4D Raumzeit beschreiben zu können. \cite{spannung:Tensor} -\cite{spannung:Voigtsche Notation} \ No newline at end of file +\cite{spannung:Voigtsche-Notation} diff --git a/buch/papers/spannung/teil2.tex b/buch/papers/spannung/teil2.tex index afd2c21..921d2b8 100644 --- a/buch/papers/spannung/teil2.tex +++ b/buch/papers/spannung/teil2.tex @@ -15,7 +15,7 @@ i, j\in\left\{1, 2, 3\right\} \] definiert. Daher ergeben sich die neun Spannungen. -Die nachfolgenden Zusammenhänge sind in \cite{spannung:Voigtsche Notation} beschrieben. +Die nachfolgenden Zusammenhänge sind in \cite{spannung:Voigtsche-Notation} beschrieben. Dieser Spannungstensor kann schliesslich mit $3^2$ Einträgen als $3\times3$ Matrix mit \[ \overline{\sigma} @@ -266,7 +266,7 @@ und folglich auch \varepsilon_{32} \] gilt. -Diese Eigenschaft wird durch die Voigt'sche Notation \cite{spannung:Voigtsche Notation} ausgenutzt, um die Gleichung vereinfachen zu können. +Diese Eigenschaft wird durch die Voigt'sche Notation \cite{spannung:Voigtsche-Notation} ausgenutzt, um die Gleichung vereinfachen zu können. Durch diese Symmetrie gilt \[ \overline{\sigma} @@ -488,4 +488,4 @@ Um wieder die Einflüsse der Parameter veranschaulichen zu können berechnet man \] Diese hängt wieder am meisten von $\sigma_{22}$ ab. Ist die Querdehnung $\nu$ grösser, so wird die Dehnung $\varepsilon_{22}$ reduziert. -Bei inkompressiblen Medien, bei welchen keine Dehnungen und nur identische Normalspannungen auftreten können, ist folglich $\nu=0.5$. \ No newline at end of file +Bei inkompressiblen Medien, bei welchen keine Dehnungen und nur identische Normalspannungen auftreten können, ist folglich $\nu=0.5$. diff --git a/buch/papers/spannung/teil3.tex b/buch/papers/spannung/teil3.tex index 438ac31..8d99733 100644 --- a/buch/papers/spannung/teil3.tex +++ b/buch/papers/spannung/teil3.tex @@ -28,7 +28,7 @@ q \sqrt{\frac{(\sigma_{11}-\sigma_{22})^{2}+(\sigma_{11}-\sigma_{33})^{2}+(\sigma_{22}-\sigma_{33})^{2}}{2}} . \] -Diese Zusammenhänge werden im Skript [\cite{spannung:Stoffgesetze und numerische Modellierung in der Geotechnik}] aufgezeigt. +Diese Zusammenhänge werden im Skript [\cite{spannung:Stoffgesetze-und-numerische-Modellierung-in-der-Geotechnik}] aufgezeigt. Die hydrostatische Spannung $p$ kann gemäss Gleichung (Nr) als \[ p @@ -102,4 +102,4 @@ Man hat so eine Matrix multipliziert mit einem Vektor und erhält einen Vektor. Mit dieser Formel lassen sich verschieden Ergebnisse von Versuchen analysieren und berechnen. Ein solcher Versuch, den oft in der Geotechnik durchgeführt wird, ist der Oedometer-Versuch. -Im nächsten Kapitel wird die Anwendung der Matrix an diesem Versuch beschrieben. \ No newline at end of file +Im nächsten Kapitel wird die Anwendung der Matrix an diesem Versuch beschrieben. -- cgit v1.2.1 From dfb9b5075e428e41f02cdf2d758a02899eea7e1e Mon Sep 17 00:00:00 2001 From: Alain Date: Fri, 4 Jun 2021 18:55:37 +0200 Subject: New Chapter IFS --- buch/papers/ifs/images/koch0-eps-converted-to.pdf | Bin 0 -> 5087 bytes buch/papers/ifs/images/koch1-eps-converted-to.pdf | Bin 0 -> 5141 bytes buch/papers/ifs/images/koch2-eps-converted-to.pdf | Bin 0 -> 5210 bytes buch/papers/ifs/images/koch8-eps-converted-to.pdf | Bin 0 -> 103521 bytes buch/papers/ifs/images/sierpinski.PNG | Bin 0 -> 293448 bytes buch/papers/ifs/images/sierpinski1.PNG | Bin 0 -> 11571 bytes buch/papers/ifs/images/sierpinski2.PNG | Bin 0 -> 12811 bytes buch/papers/ifs/images/sierpinski3.PNG | Bin 0 -> 14204 bytes buch/papers/ifs/images/sierpinski6.PNG | Bin 0 -> 30626 bytes buch/papers/ifs/main.tex | 19 ---- buch/papers/ifs/teil2.tex | 128 +++++++++++++++++----- buch/papers/ifs/teil3.tex | 46 +++----- 12 files changed, 114 insertions(+), 79 deletions(-) create mode 100644 buch/papers/ifs/images/koch0-eps-converted-to.pdf create mode 100644 buch/papers/ifs/images/koch1-eps-converted-to.pdf create mode 100644 buch/papers/ifs/images/koch2-eps-converted-to.pdf create mode 100644 buch/papers/ifs/images/koch8-eps-converted-to.pdf create mode 100644 buch/papers/ifs/images/sierpinski.PNG create mode 100644 buch/papers/ifs/images/sierpinski1.PNG create mode 100644 buch/papers/ifs/images/sierpinski2.PNG create mode 100644 buch/papers/ifs/images/sierpinski3.PNG create mode 100644 buch/papers/ifs/images/sierpinski6.PNG (limited to 'buch/papers') diff --git a/buch/papers/ifs/images/koch0-eps-converted-to.pdf b/buch/papers/ifs/images/koch0-eps-converted-to.pdf new file mode 100644 index 0000000..078c399 Binary files /dev/null and b/buch/papers/ifs/images/koch0-eps-converted-to.pdf differ diff --git a/buch/papers/ifs/images/koch1-eps-converted-to.pdf b/buch/papers/ifs/images/koch1-eps-converted-to.pdf new file mode 100644 index 0000000..81dcf18 Binary files /dev/null and b/buch/papers/ifs/images/koch1-eps-converted-to.pdf differ diff --git a/buch/papers/ifs/images/koch2-eps-converted-to.pdf b/buch/papers/ifs/images/koch2-eps-converted-to.pdf new file mode 100644 index 0000000..b7c7de7 Binary files /dev/null and b/buch/papers/ifs/images/koch2-eps-converted-to.pdf differ diff --git a/buch/papers/ifs/images/koch8-eps-converted-to.pdf b/buch/papers/ifs/images/koch8-eps-converted-to.pdf new file mode 100644 index 0000000..0bafd03 Binary files /dev/null and b/buch/papers/ifs/images/koch8-eps-converted-to.pdf differ diff --git a/buch/papers/ifs/images/sierpinski.PNG b/buch/papers/ifs/images/sierpinski.PNG new file mode 100644 index 0000000..1e57bf1 Binary files /dev/null and b/buch/papers/ifs/images/sierpinski.PNG differ diff --git a/buch/papers/ifs/images/sierpinski1.PNG b/buch/papers/ifs/images/sierpinski1.PNG new file mode 100644 index 0000000..91195f9 Binary files /dev/null and b/buch/papers/ifs/images/sierpinski1.PNG differ diff --git a/buch/papers/ifs/images/sierpinski2.PNG b/buch/papers/ifs/images/sierpinski2.PNG new file mode 100644 index 0000000..df57c13 Binary files /dev/null and b/buch/papers/ifs/images/sierpinski2.PNG differ diff --git a/buch/papers/ifs/images/sierpinski3.PNG b/buch/papers/ifs/images/sierpinski3.PNG new file mode 100644 index 0000000..055818f Binary files /dev/null and b/buch/papers/ifs/images/sierpinski3.PNG differ diff --git a/buch/papers/ifs/images/sierpinski6.PNG b/buch/papers/ifs/images/sierpinski6.PNG new file mode 100644 index 0000000..7990497 Binary files /dev/null and b/buch/papers/ifs/images/sierpinski6.PNG differ diff --git a/buch/papers/ifs/main.tex b/buch/papers/ifs/main.tex index 48c38f9..8ae0fad 100644 --- a/buch/papers/ifs/main.tex +++ b/buch/papers/ifs/main.tex @@ -8,25 +8,6 @@ \begin{refsection} \chapterauthor{Alain Keller} -Ein paar Hinweise für die korrekte Formatierung des Textes -\begin{itemize} -\item -Absätze werden gebildet, indem man eine Leerzeile einfügt. -Die Verwendung von \verb+\\+ ist nur in Tabellen und Arrays gestattet. -\item -Die explizite Platzierung von Bildern ist nicht erlaubt, entsprechende -Optionen werden gelöscht. -Verwenden Sie Labels und Verweise, um auf Bilder hinzuweisen. -\item -Beginnen Sie jeden Satz auf einer neuen Zeile. -Damit ermöglichen Sie dem Versionsverwaltungssysteme, Änderungen -in verschiedenen Sätzen von verschiedenen Autoren ohne Konflikt -anzuwenden. -\item -Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren -Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. -\end{itemize} - \input{papers/ifs/teil0.tex} \input{papers/ifs/teil1.tex} \input{papers/ifs/teil2.tex} diff --git a/buch/papers/ifs/teil2.tex b/buch/papers/ifs/teil2.tex index bfd1684..a3d5ee1 100644 --- a/buch/papers/ifs/teil2.tex +++ b/buch/papers/ifs/teil2.tex @@ -3,38 +3,106 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 2 +\section{Fraktale mit IFS \label{ifs:section:teil2}} \rhead{Teil 2} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? +Wollen wir nun eine bestimmte Art anschauen, wie man Fraktale machen kann. +Zur veranschaulichung dieser Methode nehmen wir das Sierpinski Dreieck. +\begin{figure} + \label{ifs:sierpinski10} + \centering + \includegraphics[width=0.5\textwidth]{papers/ifs/images/sierpinski} + \caption{Sierpinski-Dreieck} +\end{figure} +Wenn man das Dreieck genau anschaut, erkennt man schnell, dass es aus drei kleineren Kopien seiner selbst besteht. +Es ist also ein Selbstähnliches Konstrukt. +Diese Eigenschaft wollen wir uns zunutze machen. -\subsection{De finibus bonorum et malorum -\label{ifs:subsection:bonorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. +Wir definieren das Dreieck mit kantenlänge 1 als Menge $X$. +Ausserdem bestimmen wir drei Funktionen, welche die gesamte Menge auf eine ihrer kleineren Kopien abbildet +\begin{align*} + f_1(x,y) + = + \begin{pmatrix} + \frac{1}{2} & 0 \\ + 0 & \frac{1}{2} \\ + \end{pmatrix} + \begin{pmatrix} + x\\ + y\\ + \end{pmatrix} + ,\quad + f_2(x,y) + = + \begin{pmatrix} + \frac{1}{2} & 0 \\ + 0 & \frac{1}{2} \\ + \end{pmatrix} + \begin{pmatrix} + x\\ + y\\ + \end{pmatrix} + + + \begin{pmatrix} + \frac{1}{2} \\ + 0 + \end{pmatrix} + , \quad + f_3(x,y) + = + \begin{pmatrix} + \frac{1}{2} & 0 \\ + 0 & \frac{1}{2} \\ + \end{pmatrix} + \begin{pmatrix} + x\\ + y\\ + \end{pmatrix} + + + \begin{pmatrix} + \frac{1}{4} \\ + \frac{1}{2} + \end{pmatrix}\\ +\end{align*} +$f_1$ bildet das Dreieck auf das Teilstück unten links ab, $f_2$ auf das Teilstück unten rechts und $f_3$ auf das obere Teilstück. +Wendet man alle drei Funktionen auf das Sierpinski-Dreieck an, entsteht also wieder ein Sierpinski-Dreieck. +\begin{align*} + X = \bigcup\limits_{i = 1}^{3} f_i(X) +\end{align*} +Man kann sogar noch einen Schritt weiter gehen, und sagen: Wenn wir die Funktionen auf eine beliebige Startmenge anwenden, konvergeiert die Menge gegen das Sierpinski-Dreieck. +\begin{figure} + \label{ifs:sierpconst} + \centering + \subfigure[]{ + \label{ifs:sierpconsta} + \includegraphics[width=0.25\textwidth]{papers/ifs/images/sierpinski1}} + \subfigure[]{ + \label{ifs:sierpconstb} + \includegraphics[width=0.25\textwidth]{papers/ifs/images/sierpinski2}} + \subfigure[]{ + \label{ifs:sierpconstc} + \includegraphics[width=0.25\textwidth]{papers/ifs/images/sierpinski3}} + \subfigure[]{ + \label{ifs:sierpconstd} + \includegraphics[width=0.25\textwidth]{papers/ifs/images/sierpinski6}} + \caption{Konstruktion eines Sierpinski-Dreiecks mit einem Schwarzen Quadrat als Start\\ + (a) 1. Iteration (b) 2. Iteration (c) 3. Iteration (d) 5. Iteration} +\end{figure} +Im Beispiel der Abbildung \ref{ifs:sierpconst} sehen wir, wie das Bild nach jeder Iteration dem Sierpinski-Dreieck ähnlicher wird. +Der Abstand zum Original wird immer kleiner, und konvergiert bei unendlich Iterationen gegen null. + +\subsection{Iterierte Funktionensysteme +\label{ifs:subsection:bonorum}} +In diesem Unterkapitel wollen wir die Erkenntniss, wie wir aus einer beliebigen Menge ein Sierpinski-Dreieck genereieren können, verallgemeinern. +TODO TEXT +$S_1_...,S_n$ sind Kontraktionen auf die Menge $D \subset \mathbb{R}^n$. Es gilt +\begin{align} + |S_i(x) - S_i(y)| \leq c_i|x - y| +\end{align} +für jedes i mit einem $c_i < 1$. Dann existiert eine eindeutige kompakte Menge $F$ für die gilt +\begin{equation} + F = \bigcup\limits_{i = 1}^{m} S_i(F) +\end{equation} +TODO Text diff --git a/buch/papers/ifs/teil3.tex b/buch/papers/ifs/teil3.tex index 23fabbc..bba6e32 100644 --- a/buch/papers/ifs/teil3.tex +++ b/buch/papers/ifs/teil3.tex @@ -3,38 +3,24 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 3 +\section{Fraktale Bildkomprimierung \label{ifs:section:teil3}} -\rhead{Teil 3} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? +\rhead{Fraktale Bildkomprimierung} +Mit dem Prinzip dieser IFS ist es auch möglich Bilder zu Komprimieren. +Diese Idee hatte der Mathematiker Michael Barnsley, welcher mit seinem Buch Fractals Everywhere einen wichtigen beitrag zum verständnis von Fraktalen geiefert hat. +Das Ziel ist es ein IFS zu finden, welches das Bild als Attraktor hat. +In diesem Unterkapitel wollen wir eine Methode dafür anschauen. -\subsection{De finibus bonorum et malorum +\subsection{Titel \label{ifs:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. +Bis jetzt wurde in Zusammenhnag mit IFS immer erwähnt, dass die Transformationen auf die ganze Menge angewendet werden. +Dies muss jedoch nicht so sein. +Es gibt auch einen Attraktor, wenn die Transformationen nur Teile der Menge auf die ganze Menge abbilden. +Diese Eigenschaft wollen wir uns in der Fraktalen Bildkompression zunutze machen. +Sie ermöglicht uns Ähnlichkeiten zwischen kleineren Teilen des Bildes zunutze machen. +Es ist wohl nicht Falsch zu sagen, dass Ähnlichkeiten zur gesamten Menge, wie wir sie zum Beispiel beim Barnsley Fern gesehen haben, bei Bilder aus dem Alltag eher selten anzutreffen sind. +Doch wie Finden wir die richtigen Affinen Transformationen, welche als IFS das Bild als Attraktor haben. + + -- cgit v1.2.1 From 1bfb8ee184dad8fec1aee19cd7d57f62374f9c2a Mon Sep 17 00:00:00 2001 From: Alain Date: Sat, 5 Jun 2021 14:00:27 +0200 Subject: chap3 a bit --- buch/papers/ifs/teil3.tex | 68 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 65 insertions(+), 3 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/ifs/teil3.tex b/buch/papers/ifs/teil3.tex index bba6e32..d31eee7 100644 --- a/buch/papers/ifs/teil3.tex +++ b/buch/papers/ifs/teil3.tex @@ -11,16 +11,78 @@ Diese Idee hatte der Mathematiker Michael Barnsley, welcher mit seinem Buch Frac Das Ziel ist es ein IFS zu finden, welches das Bild als Attraktor hat. In diesem Unterkapitel wollen wir eine Methode dafür anschauen. -\subsection{Titel -\label{ifs:subsection:malorum}} + Bis jetzt wurde in Zusammenhnag mit IFS immer erwähnt, dass die Transformationen auf die ganze Menge angewendet werden. Dies muss jedoch nicht so sein. Es gibt auch einen Attraktor, wenn die Transformationen nur Teile der Menge auf die ganze Menge abbilden. Diese Eigenschaft wollen wir uns in der Fraktalen Bildkompression zunutze machen. Sie ermöglicht uns Ähnlichkeiten zwischen kleineren Teilen des Bildes zunutze machen. Es ist wohl nicht Falsch zu sagen, dass Ähnlichkeiten zur gesamten Menge, wie wir sie zum Beispiel beim Barnsley Fern gesehen haben, bei Bilder aus dem Alltag eher selten anzutreffen sind. -Doch wie Finden wir die richtigen Affinen Transformationen, welche als IFS das Bild als Attraktor haben. +Doch wie Finden wir die richtigen Affinen Transformationen, welche als IFS das Bild als Attraktor haben? + +\subsection{Titel +\label{ifs:subsection:malorum}} +In der Beschreibung des Verfahrens wird sich auf Graustufenbilder bezogen. Wie das Verfahren für Farbbilder verwendet werden kann, wird später erläutert. + +In einem ersten Schritt teilen wir das Bild in disjunkte benachbarte $b \times b$ Pixel-Quadrate auf. Diese Blöcke nennen wir Range-Blöcke der Menge $R=\{R_0,R_1,...R_m\}$ +Im nächesten Schritt teilen wir das Bild in alle möglichen $2b \times 2b$ Pixel-Quadrate auf. Diese sind die Domain-Blöcke der Menge $D = \{D_0,D_1,...D_n\}$. +Im dritten und letzten Schritt wird für jeden Range-Block $R_i$ ein Domain-Block $D_j$ gesucht, welcher ihm am ähnlichsten ist. + +\subsubsection{Finden des ähnlichsten $D_j$} +Zuerst braucen wir die Transformation um ein Element aus $D$ auf ein Element von $R$ Abzubilden. +\begin{align*} + T(x,y,z) = + \begin{pmatrix} + a & b & 0 \\ + c & d & 0 \\ + 0 & 0 & s + \end{pmatrix} + \begin{pmatrix} + x \\ + y \\ + z + \end{pmatrix} + + + \begin{pmatrix} + \alpha \\ + \beta \\ + g + \end{pmatrix} +\end{align*} +Diese Transformation bildet den Pixel $P$ auf Koordinate $(x,y)$ und Graustufe $z$ auf den Pixel $P'$ ab. +Da wir mit Pixeln arbeiten, sind die Transformationen in der Ebene Beschränkt. +Diese wird durch die Paramenter $a,b,c$ und $d$ bestimmt. +Mögliche Transfomrationen sind auf folgende Liste Beschränkt: +\begin{itemize} + \item Identische Transformation, keine änderung + \item Drehung um 90, 180 oder 270 Grad. + \item Spiegelung an der vertikalen, horizontalen und den Diagonalachsen. +\end{itemize} +$\alpha$ und $\beta$ verschieben den Pixel an die richtige Stelle. +Da wir ein $2b \times 2b$ Feld auf ein $b \times b$ Feld abbilden möcheen, müssen wir zuerst $G_j$ um $1/2$ skalieren. +Dies erreichen wir, indem wir alle disjunkten $2 \times 2$ px Blöcke mit einem Pixel des Grautones deren Mittelwertes ersetzen. +Skaliert und transformiert erhalten wir $\tilde{D_j}$ +Die Parameter $s$ und $g$ beschreiben die Änderung des Grautones. $s$ verändert den Kontrast und $g$ verschiebt die Töne auf die richtige Helligkeit. +$s$ und $g$ werden mit der linearen Regression ermittelt. +\begin{align*} + z' = sz + g \\ + f(\tilde{D_j}) \text{, Funktion um Grauton von Pixel zu erhalten} \\ + s = \frac{cov(f(R_i), f(\tilde{D_j}))}{var(\tilde{D_j})} \\ + g = E(f(R_i)) - s E(f(\tilde{D_j})) +\end{align*} +Mit diesen Parameteren haben wir nun die Transformation vollständig bestimmt. +Um zu beurteilen ob der Domain-Block $D_j$ mit der gefundenen Transfromation $T$ dem Range-Block $R_i$ genügend ähnlich ist, berechnet man den quadratischen Abstand $e$. +\begin{align*} + e = d(f(R_i), f(T(D_j))) +\end{align*} +Dieser Abstand sollte so klein wie möglich sein. +Die beste Kombination von $D_j$ und $T_i$ ist also diese, welche den kleinsten Abstand zum Block $R_i$ hat, und somit am ähnlichsten ist. +Am Ende des Verfahrens haben wir also für jeden $R_i$ einen passenden $D_i$ mit der zugehörigen Abbildung $T_i$ gefunden. +\subsubsection{Rekonstruktion des Bildes} +Mit den Gefundenen Abbildungen lässt sich das Bild generieren. +Wir beginnen wie schon im letzten Kapitel mit einer beliebigen Startmenge. +In unserem Fall ist dieses ein Bild derselben Grösse. -- cgit v1.2.1 From 668b065f377691fde6727ba10fc979a82c1e5c7b Mon Sep 17 00:00:00 2001 From: Alain Date: Sat, 5 Jun 2021 15:15:57 +0200 Subject: La Reconstruction Text. --- buch/papers/ifs/teil3.tex | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/ifs/teil3.tex b/buch/papers/ifs/teil3.tex index d31eee7..bc848bc 100644 --- a/buch/papers/ifs/teil3.tex +++ b/buch/papers/ifs/teil3.tex @@ -68,7 +68,7 @@ Die Parameter $s$ und $g$ beschreiben die Änderung des Grautones. $s$ veränder $s$ und $g$ werden mit der linearen Regression ermittelt. \begin{align*} z' = sz + g \\ - f(\tilde{D_j}) \text{, Funktion um Grauton von Pixel zu erhalten} \\ + f(\tilde{D_j}) \text{, Funktion um das Bild eins Blockes zu erhalten} \\ s = \frac{cov(f(R_i), f(\tilde{D_j}))}{var(\tilde{D_j})} \\ g = E(f(R_i)) - s E(f(\tilde{D_j})) \end{align*} @@ -85,4 +85,11 @@ Am Ende des Verfahrens haben wir also für jeden $R_i$ einen passenden $D_i$ mit \subsubsection{Rekonstruktion des Bildes} Mit den Gefundenen Abbildungen lässt sich das Bild generieren. Wir beginnen wie schon im letzten Kapitel mit einer beliebigen Startmenge. -In unserem Fall ist dieses ein Bild derselben Grösse. +In unserem Fall ist dieses ein Bild $f_0$ derselben Grösse. +Nun ersetzen wir jedes $R_i$ mit der Transformierten des zugehörigen Domain-Blocks $T(G_j)$. +Dies wird verkürzt als Operator $W$ geschrieben. +So erhalten wir ein neues Bild $f_1 = W(f_0)$. +Dieses Vorgehen führen wir iteriert aus bis wir von $f_n = W(f_{n-1})$ zu $f_{n-1}$ kaum mehr einen unterschied fesstellen. Die Iteration hat nun ihren Fixpunkt, das Bild, erreicht. + +TODO Bilder Beispiel +TODO Performance und Kompressonsverhältnis -- cgit v1.2.1 From 74bbee4492a76486091554e24625767440018056 Mon Sep 17 00:00:00 2001 From: Alain Date: Sun, 6 Jun 2021 14:03:33 +0200 Subject: typos --- buch/papers/ifs/teil1.tex | 16 ++++++++-------- buch/papers/ifs/teil2.tex | 10 +++++----- buch/papers/ifs/teil3.tex | 22 +++++++++++----------- 3 files changed, 24 insertions(+), 24 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/ifs/teil1.tex b/buch/papers/ifs/teil1.tex index 327a082..f02aff6 100644 --- a/buch/papers/ifs/teil1.tex +++ b/buch/papers/ifs/teil1.tex @@ -11,8 +11,8 @@ Bevor wir die IFS genauer ansehen, schauen wir uns Fraktale genauer an. \subsection{Was sind Fraktale? \label{ifs:subsection:finibus}} Über die genaue Definition von Fraktalen sind sich die Mathematiker noch nicht einig. -In diesem Kapitel orientieren wir uns an den Eigneschaften welche Kenneth Flaconer in seinem Buch Fractal Geometry beschreibt. -Von einem Fraktal $F$ können wir folgende Eigneschaften erwarten: +In diesem Kapitel orientieren wir uns an den Eigenschaften welche Kenneth Falconer in seinem Buch Fractal Geometry beschreibt. +Von einem Fraktal $F$ können wir folgende Eigenschaften erwarten: \begin{enumerate} \item $F$ hat eine unendlich feine Struktur \item $F$ kann nicht mit der klassischen Geometrie beschrieben werden. @@ -24,10 +24,10 @@ Von einem Fraktal $F$ können wir folgende Eigneschaften erwarten: \label{ifs:subsection:lilkoch}} Diese Eigenschaften möchten wir nun anhand der Koch Kurve näher anschauen. In \ref{ifs:kochkurve8} sehen wir die Koch Kurve. Wie man schon erahnen kann, besteht die aus lauter kleineren Kopien von sich selber. -Den Konstruktionvorgang sehen wir in \ref{ifs:kochconst}. +Den Konstruktionsvorgang sehen wir in \ref{ifs:kochconst}. Gestartet wird mit einer einzelnen Strecke der Länge $a$. Diese wird in ersten Schritt mit vier gleich langen Streckenabschnitte der Länge $\frac{a}{3}$ ersetzt. -In \ref{ifs:kochconstb} ist die Anordnung dieser vier Streckenabschnitte ersichtilich. +In \ref{ifs:kochconstb} ist die Anordnung dieser vier Streckenabschnitte ersichtlich. Dieser Schritt wird nun für jeden der resultierten Streckenabschnitten wiederholt. Die Kurve besteht also aus vier kleineren Kopien von der ganzen Kurve, was auch unter Selbstähnlichkeit bekannt ist. @@ -63,7 +63,7 @@ Die Länge der Kurve lasst sich einfach berechnen. \Rightarrow \quad \lim_{n\to\infty} a \left( \frac{4}{3}\right)^n = \infty \end{align*} -In jedem Schritt wird die Länge um den Faktor $\frac{4}{3}$ verglängert. Somit divergiert die Länge gegen Unendlich. +In jedem Schritt wird die Länge um den Faktor $\frac{4}{3}$ verlängert. Somit divergiert die Länge gegen Unendlich. Die Fläche unter der Kurve lässt sich folgendermassen berechnen \begin{align*} A_0 = 0 , \quad A_1 = \left( \frac{a}{3}\right)^2 \frac{\sqrt{3}}{4} = a^2 \frac{\sqrt{3}}{36}\\ @@ -71,14 +71,14 @@ Die Fläche unter der Kurve lässt sich folgendermassen berechnen A_3 = A_1 + A_2 + 4^2 \left( \frac{a}{3^2}\right)^2 \frac{\sqrt{3}}{4} = A_1 + \frac{4}{9} A_1 + \left( \frac{4}{9}\right)^2 A_1 \end{align*} Wir sehen, dass mit jedem Schritt die neu dazugekommene Fläche um $\frac{4}{9}$ kleiner ist. -Daraus resultiert eine konvergierende Geometrische Rheie. +Daraus resultiert eine konvergierende Geometrische Reihe. \begin{align*} A_n = A_1 \sum_{i = 0}^{n-1} \left( \frac{4}{9}\right)^n = a^2 \frac{\sqrt{3}}{36} \sum_{i = 0}^{n-1} \left( \frac{4}{9}\right)^n \\ \lim_{n\to\infty} a^2 \frac{\sqrt{3}}{36} \sum_{i = 0}^{n-1} \left( \frac{4}{9}\right)^n = \frac{\sqrt{3}}{20} a^2 \end{align*} Wie wir sehen ist die Kochkurve ein Konstrukt mit endlicher Fläche, aber unendlichem Umfang. -Zu guter letzt bestimmen wir die Dimension der Kurve. -Es gibt viele verschidene Arten die Dimension zu definieren. Diese können dann auch unterschiedliche Resultate liefern. +Zu guter Letzt bestimmen wir die Dimension der Kurve. +Es gibt viele verschiedene Arten die Dimension zu definieren. Diese können dann auch unterschiedliche Resultate liefern. Vor allem im Zusammenhang mit Fraktalen findet man in der Literatur viele verschiedene Arten. In diesem Beispiel werden wir die Ähnlichkeits-Dimension. \begin{align*} diff --git a/buch/papers/ifs/teil2.tex b/buch/papers/ifs/teil2.tex index a3d5ee1..a728340 100644 --- a/buch/papers/ifs/teil2.tex +++ b/buch/papers/ifs/teil2.tex @@ -7,7 +7,7 @@ \label{ifs:section:teil2}} \rhead{Teil 2} Wollen wir nun eine bestimmte Art anschauen, wie man Fraktale machen kann. -Zur veranschaulichung dieser Methode nehmen wir das Sierpinski Dreieck. +Zur Veranschaulichung dieser Methode nehmen wir das Sierpinski Dreieck. \begin{figure} \label{ifs:sierpinski10} \centering @@ -19,7 +19,7 @@ Es ist also ein Selbstähnliches Konstrukt. Diese Eigenschaft wollen wir uns zunutze machen. -Wir definieren das Dreieck mit kantenlänge 1 als Menge $X$. +Wir definieren das Dreieck mit Kantenlänge 1 als Menge $X$. Ausserdem bestimmen wir drei Funktionen, welche die gesamte Menge auf eine ihrer kleineren Kopien abbildet \begin{align*} f_1(x,y) @@ -70,7 +70,7 @@ Wendet man alle drei Funktionen auf das Sierpinski-Dreieck an, entsteht also wie \begin{align*} X = \bigcup\limits_{i = 1}^{3} f_i(X) \end{align*} -Man kann sogar noch einen Schritt weiter gehen, und sagen: Wenn wir die Funktionen auf eine beliebige Startmenge anwenden, konvergeiert die Menge gegen das Sierpinski-Dreieck. +Man kann sogar noch einen Schritt weiter gehen, und sagen: Wenn wir die Funktionen auf eine beliebige Startmenge anwenden, konvergiert die Menge gegen das Sierpinski-Dreieck. \begin{figure} \label{ifs:sierpconst} \centering @@ -94,10 +94,10 @@ Der Abstand zum Original wird immer kleiner, und konvergiert bei unendlich Itera \subsection{Iterierte Funktionensysteme \label{ifs:subsection:bonorum}} -In diesem Unterkapitel wollen wir die Erkenntniss, wie wir aus einer beliebigen Menge ein Sierpinski-Dreieck genereieren können, verallgemeinern. +In diesem Unterkapitel wollen wir die Erkenntnis, wie wir aus einer beliebigen Menge ein Sierpinski-Dreieck generieren können, verallgemeinern. TODO TEXT -$S_1_...,S_n$ sind Kontraktionen auf die Menge $D \subset \mathbb{R}^n$. Es gilt +$S_1,...,S_n$ sind Kontraktionen auf die Menge $D \subset \mathbb{R}^n$. Es gilt \begin{align} |S_i(x) - S_i(y)| \leq c_i|x - y| \end{align} diff --git a/buch/papers/ifs/teil3.tex b/buch/papers/ifs/teil3.tex index bc848bc..c3e8a65 100644 --- a/buch/papers/ifs/teil3.tex +++ b/buch/papers/ifs/teil3.tex @@ -7,12 +7,12 @@ \label{ifs:section:teil3}} \rhead{Fraktale Bildkomprimierung} Mit dem Prinzip dieser IFS ist es auch möglich Bilder zu Komprimieren. -Diese Idee hatte der Mathematiker Michael Barnsley, welcher mit seinem Buch Fractals Everywhere einen wichtigen beitrag zum verständnis von Fraktalen geiefert hat. +Diese Idee hatte der Mathematiker Michael Barnsley, welcher mit seinem Buch Fractals Everywhere einen wichtigen Beitrag zum Verständnis von Fraktalen geliefert hat. Das Ziel ist es ein IFS zu finden, welches das Bild als Attraktor hat. In diesem Unterkapitel wollen wir eine Methode dafür anschauen. -Bis jetzt wurde in Zusammenhnag mit IFS immer erwähnt, dass die Transformationen auf die ganze Menge angewendet werden. +Bis jetzt wurde in Zusammenhang mit IFS immer erwähnt, dass die Transformationen auf die ganze Menge angewendet werden. Dies muss jedoch nicht so sein. Es gibt auch einen Attraktor, wenn die Transformationen nur Teile der Menge auf die ganze Menge abbilden. Diese Eigenschaft wollen wir uns in der Fraktalen Bildkompression zunutze machen. @@ -25,11 +25,11 @@ Doch wie Finden wir die richtigen Affinen Transformationen, welche als IFS das B In der Beschreibung des Verfahrens wird sich auf Graustufenbilder bezogen. Wie das Verfahren für Farbbilder verwendet werden kann, wird später erläutert. In einem ersten Schritt teilen wir das Bild in disjunkte benachbarte $b \times b$ Pixel-Quadrate auf. Diese Blöcke nennen wir Range-Blöcke der Menge $R=\{R_0,R_1,...R_m\}$ -Im nächesten Schritt teilen wir das Bild in alle möglichen $2b \times 2b$ Pixel-Quadrate auf. Diese sind die Domain-Blöcke der Menge $D = \{D_0,D_1,...D_n\}$. +Im nächsten Schritt teilen wir das Bild in alle möglichen $2b \times 2b$ Pixel-Quadrate auf. Diese sind die Domain-Blöcke der Menge $D = \{D_0,D_1,...D_n\}$. Im dritten und letzten Schritt wird für jeden Range-Block $R_i$ ein Domain-Block $D_j$ gesucht, welcher ihm am ähnlichsten ist. \subsubsection{Finden des ähnlichsten $D_j$} -Zuerst braucen wir die Transformation um ein Element aus $D$ auf ein Element von $R$ Abzubilden. +Zuerst brauchen wir die Transformation um ein Element aus $D$ auf ein Element von $R$ Abzubilden. \begin{align*} T(x,y,z) = \begin{pmatrix} @@ -52,15 +52,15 @@ Zuerst braucen wir die Transformation um ein Element aus $D$ auf ein Element von Diese Transformation bildet den Pixel $P$ auf Koordinate $(x,y)$ und Graustufe $z$ auf den Pixel $P'$ ab. Da wir mit Pixeln arbeiten, sind die Transformationen in der Ebene Beschränkt. -Diese wird durch die Paramenter $a,b,c$ und $d$ bestimmt. -Mögliche Transfomrationen sind auf folgende Liste Beschränkt: +Diese wird durch die Parameter $a,b,c$ und $d$ bestimmt. +Mögliche Transformationen sind auf folgende Liste Beschränkt: \begin{itemize} - \item Identische Transformation, keine änderung + \item Identische Transformation, keine Änderung \item Drehung um 90, 180 oder 270 Grad. \item Spiegelung an der vertikalen, horizontalen und den Diagonalachsen. \end{itemize} $\alpha$ und $\beta$ verschieben den Pixel an die richtige Stelle. -Da wir ein $2b \times 2b$ Feld auf ein $b \times b$ Feld abbilden möcheen, müssen wir zuerst $G_j$ um $1/2$ skalieren. +Da wir ein $2b \times 2b$ Feld auf ein $b \times b$ Feld abbilden möchten, müssen wir zuerst $G_j$ um $1/2$ skalieren. Dies erreichen wir, indem wir alle disjunkten $2 \times 2$ px Blöcke mit einem Pixel des Grautones deren Mittelwertes ersetzen. Skaliert und transformiert erhalten wir $\tilde{D_j}$ @@ -72,8 +72,8 @@ $s$ und $g$ werden mit der linearen Regression ermittelt. s = \frac{cov(f(R_i), f(\tilde{D_j}))}{var(\tilde{D_j})} \\ g = E(f(R_i)) - s E(f(\tilde{D_j})) \end{align*} -Mit diesen Parameteren haben wir nun die Transformation vollständig bestimmt. -Um zu beurteilen ob der Domain-Block $D_j$ mit der gefundenen Transfromation $T$ dem Range-Block $R_i$ genügend ähnlich ist, berechnet man den quadratischen Abstand $e$. +Mit diesen Parametern haben wir nun die Transformation vollständig bestimmt. +Um zu beurteilen ob der Domain-Block $D_j$ mit der gefundenen Transformation $T$ dem Range-Block $R_i$ genügend ähnlich ist, berechnet man den quadratischen Abstand $e$. \begin{align*} e = d(f(R_i), f(T(D_j))) \end{align*} @@ -89,7 +89,7 @@ In unserem Fall ist dieses ein Bild $f_0$ derselben Grösse. Nun ersetzen wir jedes $R_i$ mit der Transformierten des zugehörigen Domain-Blocks $T(G_j)$. Dies wird verkürzt als Operator $W$ geschrieben. So erhalten wir ein neues Bild $f_1 = W(f_0)$. -Dieses Vorgehen führen wir iteriert aus bis wir von $f_n = W(f_{n-1})$ zu $f_{n-1}$ kaum mehr einen unterschied fesstellen. Die Iteration hat nun ihren Fixpunkt, das Bild, erreicht. +Dieses Vorgehen führen wir iteriert aus bis wir von $f_n = W(f_{n-1})$ zu $f_{n-1}$ kaum mehr einen unterschied feststellen. Die Iteration hat nun ihren Fixpunkt, das Bild, erreicht. TODO Bilder Beispiel TODO Performance und Kompressonsverhältnis -- cgit v1.2.1 From 021d83730d896b7cef1050fbdd4c4c766992a9b0 Mon Sep 17 00:00:00 2001 From: Alain Date: Sun, 6 Jun 2021 17:36:05 +0200 Subject: ifs work --- buch/papers/ifs/images/farn.eps | 2372 ++++++++++++++++++++++++++++++ buch/papers/ifs/images/farncolor.eps | 2666 ++++++++++++++++++++++++++++++++++ buch/papers/ifs/teil2.tex | 26 +- 3 files changed, 5063 insertions(+), 1 deletion(-) create mode 100644 buch/papers/ifs/images/farn.eps create mode 100644 buch/papers/ifs/images/farncolor.eps (limited to 'buch/papers') diff --git a/buch/papers/ifs/images/farn.eps b/buch/papers/ifs/images/farn.eps new file mode 100644 index 0000000..597745b --- /dev/null +++ b/buch/papers/ifs/images/farn.eps @@ -0,0 +1,2372 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (MATLAB, The Mathworks, Inc. Version 9.7.0.1434023 \(R2019b\) Update 6. Operating System: Windows 10) +%%Title: C:/Users/Alain/Dropbox/Dokumente/HSR/08_fs21/mathsem/buch/SeminarMatrizen/buch/papers/ifs/images/farn.eps +%%CreationDate: 2021-06-06T17:31:01 +%%Pages: (atend) +%%BoundingBox: 0 0 1152 562 +%%LanguageLevel: 3 +%%EndComments +%%BeginProlog +%%BeginResource: procset (Apache XML Graphics Std ProcSet) 1.2 0 +%%Version: 1.2 0 +%%Copyright: (Copyright 2001-2003,2010 The Apache Software Foundation. License terms: http://www.apache.org/licenses/LICENSE-2.0) +/bd{bind def}bind def +/ld{load def}bd +/GR/grestore ld +/GS/gsave ld +/RM/rmoveto ld +/C/curveto ld +/t/show ld +/L/lineto ld +/ML/setmiterlimit ld +/CT/concat ld +/f/fill ld +/N/newpath ld +/S/stroke ld +/CC/setcmykcolor ld +/A/ashow ld +/cp/closepath ld +/RC/setrgbcolor ld +/LJ/setlinejoin ld +/GC/setgray ld +/LW/setlinewidth ld +/M/moveto ld +/re {4 2 roll M +1 index 0 rlineto +0 exch rlineto +neg 0 rlineto +cp } bd +/_ctm matrix def +/_tm matrix def +/BT { _ctm currentmatrix pop matrix _tm copy pop 0 0 moveto } bd +/ET { _ctm setmatrix } bd +/iTm { _ctm setmatrix _tm concat } bd +/Tm { _tm astore pop iTm 0 0 moveto } bd +/ux 0.0 def +/uy 0.0 def +/F { + /Tp exch def + /Tf exch def + Tf findfont Tp scalefont setfont + /cf Tf def /cs Tp def +} bd +/ULS {currentpoint /uy exch def /ux exch def} bd +/ULE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add moveto Tcx uy To add lineto + Tt setlinewidth stroke + grestore +} bd +/OLE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add cs add moveto Tcx uy To add cs add lineto + Tt setlinewidth stroke + grestore +} bd +/SOE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add cs 10 mul 26 idiv add moveto Tcx uy To add cs 10 mul 26 idiv add lineto + Tt setlinewidth stroke + grestore +} bd +/QT { +/Y22 exch store +/X22 exch store +/Y21 exch store +/X21 exch store +currentpoint +/Y21 load 2 mul add 3 div exch +/X21 load 2 mul add 3 div exch +/X21 load 2 mul /X22 load add 3 div +/Y21 load 2 mul /Y22 load add 3 div +/X22 load /Y22 load curveto +} bd +/SSPD { +dup length /d exch dict def +{ +/v exch def +/k exch def +currentpagedevice k known { +/cpdv currentpagedevice k get def +v cpdv ne { +/upd false def +/nullv v type /nulltype eq def +/nullcpdv cpdv type /nulltype eq def +nullv nullcpdv or +{ +/upd true def +} { +/sametype v type cpdv type eq def +sametype { +v type /arraytype eq { +/vlen v length def +/cpdvlen cpdv length def +vlen cpdvlen eq { +0 1 vlen 1 sub { +/i exch def +/obj v i get def +/cpdobj cpdv i get def +obj cpdobj ne { +/upd true def +exit +} if +} for +} { +/upd true def +} ifelse +} { +v type /dicttype eq { +v { +/dv exch def +/dk exch def +/cpddv cpdv dk get def +dv cpddv ne { +/upd true def +exit +} if +} forall +} { +/upd true def +} ifelse +} ifelse +} if +} ifelse +upd true eq { +d k v put +} if +} if +} if +} forall +d length 0 gt { +d setpagedevice +} if +} bd +/RE { % /NewFontName [NewEncodingArray] /FontName RE - + findfont dup length dict begin + { + 1 index /FID ne + {def} {pop pop} ifelse + } forall + /Encoding exch def + /FontName 1 index def + currentdict definefont pop + end +} bind def +%%EndResource +%%BeginResource: procset (Apache XML Graphics EPS ProcSet) 1.0 0 +%%Version: 1.0 0 +%%Copyright: (Copyright 2002-2003 The Apache Software Foundation. License terms: http://www.apache.org/licenses/LICENSE-2.0) +/BeginEPSF { %def +/b4_Inc_state save def % Save state for cleanup +/dict_count countdictstack def % Count objects on dict stack +/op_count count 1 sub def % Count objects on operand stack +userdict begin % Push userdict on dict stack +/showpage { } def % Redefine showpage, { } = null proc +0 setgray 0 setlinecap % Prepare graphics state +1 setlinewidth 0 setlinejoin +10 setmiterlimit [ ] 0 setdash newpath +/languagelevel where % If level not equal to 1 then +{pop languagelevel % set strokeadjust and +1 ne % overprint to their defaults. +{false setstrokeadjust false setoverprint +} if +} if +} bd +/EndEPSF { %def +count op_count sub {pop} repeat % Clean up stacks +countdictstack dict_count sub {end} repeat +b4_Inc_state restore +} bd +%%EndResource +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 1152 562 +%%BeginPageSetup +[1 0 0 -1 0 562] CT +%%EndPageSetup +GS +[0.6 0 0 0.6 0 0.39996] CT +1 GC +N +0 0 1920 936 re +f +GR +GS +[0.48 0 0 0.48 0 112.71998] CT +[1 0 0 1 0 0] CT +N +0 -234 M +2400 -234 L +2400 936 L +0 936 L +0 -234 L +cp +clip +GS +0 0 translate +1920 936 scale +%AXGBeginBitmap: java.awt.image.BufferedImage +{{ +/RawData currentfile /ASCII85Decode filter def +/Data RawData /FlateDecode filter def +/DeviceRGB setcolorspace +<< + /ImageType 1 + /Decode [0 1 0 1 0 1] + /DataSource Data + /Height 936 + /ImageMatrix [1920 0 0 936 0 0] + /Width 1920 + /BitsPerComponent 8 +>> image +} stopped {handleerror} if + RawData flushfile +} exec +Gb"-6dAnijH&)@U#Vul$M'.Z]q*OR;Y`gRl!==o6&W%Xm,3"k5LjC3Q&hgm'H=]>JJQt0%*!lq'+sRufY?llXj) +\=:/1`bWnMmBat`rh$mYHIPS@^[TCH&(Ss,^\MHSs2cpBCjgC'o>0VhFJbUOkHu?1R?";,XS]2Lf'Du[ +bsA>F[>4$IDmtV$@^>02>EA?+a'';j$31&U4=UC4!5L%&;ZQjuE'q;;`bSHOmde\$QG2qT6\"aM07?O^ +GC;3@>@iZYCir]QiQ?C\TCq*Ls35Pc*KUgRm$$QtgY/(gfY(&Z'&f?meOgn`!&ie5&HDe2:4\lA!!%Ne +?@)F$=HgD>lYjH0i,aDEr7=+o,Dsr^"74V$SZT9'?cN6pEi[LY46lmMY5P^,Cef]_p36ceS19'^3G-'978Zo,.Pd(d'8L!!'e` +E)Qc;!77Kq8F/Bb@#QIKIFS@j[oO)J\>@arfBfX%NMJ1pFjDn=[IMu/d].\dQd<>Nle]q*4p(d)L.=Z4 +!!"t^DCPVd!1MDPhS&U.CCA\8mOI4]ViA[8[6`njCpp*"jRH]/21E+4>Ko_jITG$AXaEmsc?iR_iD"3^ +fF7h2$fOqp!!!!oJXZuH!.ZD=rOuRVZjK^^\pK34Wp>>i(J7Q=.Up%ojlZ9bb:d[t:Y/CkODFCXg2++? +As%-q`Oq"5O4mh54hjl?!!"k7;%Wd.!)A*7$31'Vb3NuY4p+Q +4_)gu;MOMBHdA0R^9t]gPu[P5/A9mTVK'CHO5&9>TDO$:!4[gRW!EA'!2mV,"TSNfV,t8jha3R@1VRtD +O$?ooM.q)(TmPsH&M!ajV[sT8a)`DR!,V[9q@p#0[\qm])_nN$9Td>!!'e`E)Qc;!)Vo[ +/FRVK1M+nHTm +!!&q49a(Ls5[ps2TOmHubn,rGIJ'(:p'QGAp:)SZMqJr.*1O7/eu.'a`qGn@`p81NgPBl0m^tKHH*YkF +YJJeYK:6NG%It> +m1hj(Sm;PIEb3&Ja^XV]h9tB*,gWjU6-TWua41fZhuEc0KL\H2!!"t^DCPVd!$Wj;\Ot[LgSqsq,nfYu +?#JrYJS-%:l%"e/H@&0$Il2mRKcW1nIDh],6;$t88`j=Oc]aX<;*HYoDZBc2^nW(R!!&Mj2\c;m!0POE +N(MtWs/c1N2E)"i373Sri:`ttKHs7m`K!!)FC4=UC4 +!5L%&;ZQju&D7c:1Q1$o4]t9,Kj.bV`q?0p?`9709g?:iC<(X'd2]PjH*\rl]%I=(hR'S^%%O@HQm1U"( +7l:P5h,9#nqbb&6HFSEg#1AtVeW=SHaln]8hfu7No*KmN!18=-70!;f3!F1L!!!#C9Mi_a*Pml(m2NF0 +(latVd;uYS71tsQ>Rjgpqd9(f(0;Y&K>Qt]QYOBlVJ_`@Y=$qngRe&`KBp%]J*FEF!8r=AUET[di!!(6=IpViE5gMhZ-QTlLCcC+5qi/Kb?3A^!l,Y!D,[Ss/M@=)3U^F/?aRUSYR;q`OAf9&#_qfH`Z`!6i?U+ohTCS,tVa!!!!cTuuu7 +\=4'Md\g0qZ-oWM9p7^5_eJ;s^\1eF$+hugLQ2_qb6Z,'%374f;VX:Gp/*UZWs"KkPNsQ<5Fu;?oZ9`a +T:,f]!*;94!WW598T7T/!!"-Hr&j4"a'$?a^[[c#Vu1M_h^4Pg(TR8$=4=Itrj9[/0;\;B(!*YZe>sUo +j%VU.kJmA]5nS-YR"L6<-?`D9ZKMOnashcD!8%I9M?!VVE!kB"!!!!))rpa2>Yj[M#t8C#HK0RP*A=/= +oZurQ0@:td"onY@UET["lCB=Cq;4k:k5+6fB39,g-oQ5Ip%#;[KfA:E!B4c8nC8QttaF#$h&$3ho_0oPfhu`j13s!.3[%&HDe2 +:4\lA!!!#H1Rs)d?nP_C3ir?FKGM4c^JhJL>6^3]e2MjP8sHn +[^1Xk#4$C9j13`Y\.&7$q)iTU!<=7YUET[K7K`o/>g@MQ2ZNi<_4r1S!!&Mj2\c;m!+NZCH#JE(iHSm'K!!!"s^eFt4!.\dLnns=]Xmn?Sd(LRcag?rM +O4LY8[13qfn]ImCp!I0g/pPrbRXr/?'o,H&iuDC^8=CVMT)epEJO`-/!!"t^DCPVd!3RAY=K1$2dWf8G +\o^i:PqSgIRk#F9cS?_Wf6pQWphp(Z4#dkc0Xicrt(92N+>r+Z33keX#Wl,eo;]@qB(aKL(:REM4n,^2P<"Ngc%9@3B/`#_b0Fst/:L?N +du'XGl@DNuYNJXNI'8%V/<*CdPPGUeE!e]W!WW59.<&2d!!"-RnqY9RoT`K"VM5&_^G;N`0K^,rl()ts +R-d#2C1GZ!#;n,bG#pWaXX(7Ml#B_L>^O1+GRML:o4ou\!5JRU'`e:7@)-]0o:&72*mO&n9a(LsJ5Ci; +cYCHnM4XX0K8j<_Xt,MBG#Q;ue#b^`7X@6\p.ZI6^=,GD%30LBhH#@%rTpgmd4!k4Md6R:i,eP<\l,s7hZT(a$Uh"TSOQ)3dD4XFDTpS19L'OWD+n'r7r# +$7Y2qc@bfh<0j'2km^l\D_@aIRAln/CCa>TLF$o1aVfY:&"-;Gg.gTjq$R3'E0&sT&HDe2.NeH$#M,At +pV$$Ds7hZTq#'a0^[5lV>Q=WP\%X^ZKUW;K!._,j`P#XWk*H/=ePO3$d +^uT3VL/tlF[K/G\)&'i/feHagEEf^+!$ +S*AK(!3d7\'`e:7+RtlGHtL&Zpr58,&`6PVoWN`:X56_/;ucp6SO)eh%OKtc]H.J@g@7M?bRD"6L?ggAY\IZN?5`$/]QKoB]B@WBrT<.`pFK42#_KT'OOOlg%l3 +L6@kcI<+[_-RnFFGOH$jBi#o7MVET8Z +$4g(!=jJk6g7Sp_q`J$F^,\*=%kfp>7U9'O?B'jK^5Hd/e;cL.T0=iT<@iqj?>"I!fH +3_f(%Ln=7bragX1BE3R.GZ4eG!.`"+J,@trIHjbW4S-c=ro"rJoV3N,bJ3tuB:jVG?13*kGJ<[>_,5-> +j46[#!!'6].ZFsl5F_>uYu[E[Y#2>cs0^0&0\IK''[G6F41mnTCBf;`HUJQucllA]/#j0`m^7pMrFVH'QoHZ7CY``)]<269k#m$[?(3i?pBruAWe-+9UhD*dVP,'u#c +EQQ(/B5r:hkP/ZiJ6hZC#QOi)Ol-*!2s]kI+8sS/V=u&qI(6ojZ&e"cL($!U!!)N\dRu&Rd$0]THd]F7 +c03WQZbiAgW^O+-Q"-YtNN3DXfC#bFdhiTFOPO(IoT4f-YK!QhWS*Zd&Ue]+Klt^D;dF`-F4,05aWD=f +L%1U'!!&C>7n!CX!(ad&rU4+^&70bS`VAS&rRG8WDuS3MrDW/5DCPVdi$kL([jiOon:;)YNoHo;!!&Tg#.jT^13:^7fqsBr!>ik$ +ej!)Qoj7*eOZG\;C>RgHHWs25(^GRj0:hYmej%b=2&@n3H0icnNit>fQ"TF]\=5+e3q2u%6*I=qB2E*n]@u1fOpU"G!8%[?M?!VVd,PqWpr0_WrU'''s8.iu4ke\Z +RgK,qGT-*mJN`7D\E0&`Ic57JEj%8TaW?Y8e8BpXEjXM'$*bgDVo&`CaTD^K +,p;@a1BqV\HH:lV&c_q+'-7kh!!(pk\>]H.J>\O7d?PX+gST\&QMKjS>a9#_5-Fbk)B?eA$p*<'$p!1s +PA6n'0lnhRNlrPG)f34STP;AS-lHMG^c/=4a+KqnLeRnV#=A1i!5MocN%4LkS?`QnMa +#N/Gk!!!!oJXZuH!-mdj.mCH'eSRpi%]X9E6!\\pC[c2p@ms(eSZBV%RESP"7fVgcA,5(h9E(b_VIlZA +'m1_@*rDfT1lt[\IE.AZ-r4nS)S&\J-5;>#QOi)Vnc"1!!#-(N#*Rp>'O,TdBC]Ef!@3>11#;& +Kj$,m.*Z$Zf#t6l!Qu+m1;2'ea!D"TIu]:G]t(+WA$L-7J6kP_pc?q`bd#jbLRmq9cDN_gR0X;1\K3&\ +5JHcZ;9rr1;gM9Gi2d(cJ#P.6?b#$%,%RtqBP[J +k%"%<,CqD.CM@UO/tFWdh!:ck[0i1gQ.pok'-AV55?XMX$M-=VnOE(*!5N#fmf1<7;u.E3CtnpbX# +lJdGoDsE2*k^r!SRYd4IaVt3[Qc#RB!!!"h!]Lho!:Y*8f0:p8lF!E)m>u'h2[+!8 +;lG-35H2.O[hS$,!!('t;%Wd.!)A*7$31'N\emuc5rJ"fJq!ZXfl^noJ&U0Va7^c=jcm2I7 +S/o@LrGA'jUo@AlS3i^ASL64uh1=EJ#5VC)fQDp3KG\$d1:/]scT:aCkPtTj%$-8G!!$sFgf+7R^f,oE +TBAk?XZ&28X8T@fm8^nD3TaM`i!U:rSs"'!VRlrbl3`c8AKd2:N@;T6s2eQp-/[*2Qq_hC:gPhUcO=&r5$l;#Vj5P#3Z3R30 +%rqi!?j['rGT"=SKK)YBlT=da3&?b^3PQs@)$&T:GZ4eG!.\#+V?-_tSg%ua#8P4I +dW22tpna70&>=]TV2P*5=a=V]'c>hh0q#S?2e)*eCR2&aA,*KY^3QE/I0K\]+a?rh!!%OJi2-PU!1kf$S`FD8nlNU%jiOn9k7r)[aZR2m +>#!hsib5de#\X`rd^\`$5@nWO,^T^4e3-N6]bUjI;.;r8r3;F8LI80E!+6H]'`e:7i"W]#!!%PI$\_6t +eC+p*o?n.dck;*LS)_stj.-O'eO[iXnGZb+E6u*X\SHgF(DG:i-gRUmqiuR&7lB0!W[sFF9UPkBQ1CAu +PO_k'7Qh4]!&jq>M?!VVE!kB"!!'f5K\#(>.1LV_GtYhgg<7'8?S`R0klaCFX*T7q03\T=gM(8>`2[3f +,ORHgdQG)2@'bepmB?+[VcoA3FWbC?Bnm(G12(RD4p(f?-p/s\!!'e`E)Qc;!)F3TTed%%`bIF1ZWiIO +[GrBi_+KE%UbsECgdm[=Ymu&co?Ffam*gp+E+VWslK"2k"gsG$Wjl(^b05Rgc3M'J!!"\`O,GlXXV7_A/"]!\[@31-Yhn;V#\\U='^hT18dN-I@+`C0Tbp!a3JT-aMMesZ^AJ-:pj +!!!"<$J\S\!5R(&j=5HTm!!&q49a(Ls4C&?uW=*8b*OX(RfDX0$RaK0>D(9Bi +9-qjtC_+Ok>h:Z2-*Cd>hCQb`DpD\3".@U26W*X/nNCa_>J+'M'utV"Z3Spq6B7!._cPW!EA' +!2mV,"TSNbFUZj9X$1SEHsqGl$>UADEJZW?BU+Ta3ec$?9=\36XlthC"UM[OZLHsmh^ +5#nS$NQ&,O:6)eD9?lr8(F3(#]EAs6=ZYCYAibY*Q`IONg[a2Y#Ho1Apio:+1B>3sGZ4eG!.\#+V?-_t +Sg'^#&>Ktd^3=XV'"_:N43m[>TniYc'9@QNCa"n4V,&GEVe8hS< +[SYKuJ:kSTV?Tm4jqGZlDm,b3)s+h&BE)F07[mc+qtDa4tL5\p3R7;SO(DB)mIqn>HTm!!&q4 +9a(Lsg^]XQQS]>Ao4pfq<1c/daNc>Y?kKj)_t>I/RdGuCVXYMn]Ug@YoSPMZ`t!<@WN4=UC4!5L%&;ZQju[t"j7O2WP9 +-Bk(8gZ8A-cV&'8^6i8)-#d_$^)?gC2PWo@rjeFt&^>:ea`0M0=Y8Ip''n91)M0^4V/%u3NT6>"Q@+]a +.@Y@lcLA"*7P?E+n%sbY!-#oP+ohTCS-1bc!!$ue`0?,%:#J].ZXXuDk-fJ5Cg#^-8aY(YhphGFS&mn8 +A;h@iOc4B]WN#F?8I]t$7jcdnb`hl^WpeFrmuXhL1bF?5P?L"2l+6Wg<08eWh!3m^!!'50O,[`_NScqjN3#-rT*JUI`Nd3oos&N8S[ML1\GD\4Mou^V?XTJR5Dt'\2!!!"s^eFt4!8JPKHf7Bm]J>o6OHL^* +hDc:tqEU>@``$fY8D%1.0+$pEC]A3NhX#<@T(`.t!C>&?5*GNp>XgE=;3B&0&#tH:VfgZYa&D;G1Wr&o +hNrEBRh3=%5EO2a.np0I!+t.d&HDe2:4\lA!!'Mh;EaCrQ)H@Lr5'tf5-/@C`d*RrF:Bsb`]/9A'f.Kd +Tq^-D*G^.?H`U($qj,eT*-Bj1G\36h,;3Na`ji'Q/heVjGYT5@;Esibk"DAB^/d^\r]R\DAM#f_!_-S.,d/-"CU]/,_Jn_WOXg:cD>i*A-eT[<".;=]7%=Wch/ZfL=MCm6fBE +YEKfm;WhoWj$;a4o^\eoT.barmds3MQ`kT>!,ul8;%Wd.!)A*7$31(9$$uCa(PX*ORV+!"pT/BJTaD-5 +SkPstD"Eg2lrWSr(#kpEicK>]h)Md5qKCG0r&:Tk&$Q7IUkKD-B8e"a]eg6-hHfG0p9q>iiddH&B6Ta& +B)mJ"n>HTm!!&q49a(Lsg]Tc]H[-HH/ZTqr4_J&g,jj_@!IKZ+NS,5Tr7GUC=l7Im"''\Qc$$("aCQ/t02H?GWcO@)G$K*)3SAihjMAukEE[\b\p!PZ8Z4^$#^Z*:4%js&:G2RB +!nI +hcSX\Rgs^=e"W8[H(-,AZ%tHC=#fH:H[BM?E@&ZqGA3T<4h,kUIa%immQ!BZ!WW59.<&2d!!&oQ[Y:(F +kGp`Q\pDd!k;^*6fNAEdhs#:5dECQ2jO`:69ub^\cZ[(J1?N0ga)W3DXANXS73Cj"$bPgPNEqa\m\Uoe +Wm,n^)2I7tlR8$/:MOO54beXV]b$MX]`8&fF*LXe!!%OJi2-PU!)@1nT?eu\h5lGR#8*$!VTOWl@;qL7 +Ysd7uk'^t9gT`M=Ap>;hglp08a50qpf29kc5^DT29PmEB'laYcp<9W8%'%Hu/hONApW?+FVf`MoD5[*X%b0nI-Wq>*1,KG]9TY(r&h]_)iYl%K.lL0%fe:dZK.0g@dbEg@Hr>W`KGW$8PXeP55[hJ1B(&Rc=!.\:.7n!CX!&t." +.KBJ,>\5`A0%#=&R"!jJT2DQ\&J)_Es:XqeTYNiMICQ*I4p!9W/nR#G\1nq%k6G=4L]*LFJ:0UFG>>#<di!8q,%2E6TLA*pH)>(j'AOq@%!b9URLLS[0"rk5fJDlVV6 +f6F39pQcAm*!;V2USHl"(fU<,hXI0&Ilpc2g7%rHE8f5cl)Bnn1/*&MaJKhMCBAfK;T/2R)p'$!!,'-C ++ohTCS,tVa!!$s^QG]3HiDg.^q6;KXC1q6JW.el*s5obo<=s.]N2/Fk<3GS9UAe0FKuW0T'*"Rlt*FOlRd>`A&"F:BUgc6JJu*Y2oPjs681?RGgR +W:6_k!!!"s^eFt4!1_+_Qh^L15'pBt=+*,>.@9?7i`%q.r:?QnH-WdXE\4$bD4]JDeof8\:iV''karmj +*)iNZ5+^:B)7qfjrZq**!^l7/["D#Z2pW5j(/.TOj"JW(TF/jP!W\`#O,LI@ASgU[[i4eXa]>MfGGr1ULXoLMaIlUYWGS3VH4:9=9+^29$:M=Jeo) +9UEb6HJDKtBP,N*EQg9?!$$_`70!;f3!F1L!!(q.iZ`^?S!/L91JlF#bF89H'k3%*/lYib[0?G<%q#<: +D7W&9bO]S28;^Vl?Ad9m`%E'2YA&F&9u20!<[AN"gLb@2kHrR."PO5+*Z.'@!6i6R+ohTCS,tVa!!$sR +$:^VJ9o.Bj^q$Oo[J&K[U5f=7S5c#%BVm`S^a)n8RFm>Vn1dAu'TQ;qlr=PGr[%7qVH(s,)=P/*eSe7K +mMXESVS#aci>DUqJ2'/9!WW59.<&2d!!$XDdjK>7B<0a3'm]_d,0# +L/T6(IabP:aVF,1arcqdoh'U5Xi1rRj;^g`UN;HB\f9$]?aq_[LSLI<'WNsM"$_a"lua&0:ua_<*C933 +26eE%j()`oJV`QsAcMf2HLRj=!!!"s^eFt4!1_$oDnL702*g=,cRWZh=M*%K?@G2\Y4't+<3'`0m'ZO$ +?9M,[@mTBHg_Aa&=D)RWF\2Sc.U*"fY[sLn%gOP]`=;42CTP">Vjk\Tf.r%O5#36&I-Jh0%fcS3GZ4eG +!.\#+V?-_tcGD4.J:cWnCR%2JA>[uRgKa#=^02].d^_rS`gl3dq5iBt^ls73&8dtmWLh1ma*GBQI%s9% +3j3J#)!X'k>"EWe_j_`>HImR'Mlne\!!'J1O,gD/mu@*QOEM;7^dNFt<= +AEMunKZM]-q&/)^q17nOH0Fie(_rR[M>5?CC&feUWlZdd0aQg;P%ICWCM;PuNnmbuGe9 +O)"4\bd=u>C&)9,)ZL3GE'*Qf#QOi)Vnc"1!!&NX1Q\5AfJ"#P@<^tkiIU\kbU"#4t`SO7_RciOa2,Qg9$^VVY\;N%6p6>[P7@l'dPf)14gF%NbZN +%`"h`!!!"h!]Lho!,s-7U/m]=8M*'.B4#rWi@tMlFJSb7iPmL-DUq8.`UX4qaS*pqe1o9pEajI:>q%(B +;95-;d1!ko+N^TJm$g/>>o:8"K'+pLZCsnTbA/lFJR/CM/e^:\E/m<;aBhNQKi)l>'+4mjrTC&6e'2 +5Zn0h*.paM!!!!Y"`>di!8nP*%A?5V2V435ph0KD?"`UXAiF%MYh9]C;/'>O&,Vo;43a_blCVQDo!&mh +ao,/lZSma?joU-T`A9_&CsIm8@QdT[.j<6RH$-L\TF8hbiOBL71]Y;lGZ4eG!.\#+V?-_t:;P$bN^TJJ +^/6uhS\<1NVk>uFG<5D;?#?VP-rM92lN'&h34d]'8Rjc)XO^\gT-'qV1/g&91H2=]DU+M&0eQg'1(LO4 +Y/+\t%iJ!o\>4Z.E@AHAklCcLn>HTm!!&q49a(LsS4,)ZU+&Df-)\nHG?O-AiGLHb3P"SSVk%Jkc`[0< +;/n>)_8'!%eHp.pQp=Su@\""K>!3UQG"98FPPMi;> +!!(;RIQ=sGEaNld4nE9>E;DEEf6W`b]j*_&5E.2cV5>T?GuNbscZPO#*P9TYhK_8B1j,oS&1e;cg]ohp[qCVk/"d#Q3:S,U)D:8p$+;S:,K +a,XMoc,jZp=$4ZW3#;Ppi)('d!!#cFRgK,q30@OU6aF*s$kCkTdmo&/A%Q!$9:07!2o?`3MiQ(@`AQ7( +#t`aGpl2C9!i#*C'BuT9$tS]c'n\plV76bu-dA)mm2n,@P+@WLf@?q&L%WsCHgaSc31To:7SZ$9K +:8\H^EU7kTA+?sIT$t)/J6+sO:-JXXbep2"!!!"h!]Lho!,r8P-sj(BO=*\-#GsPjT^lL@=/YZ`&jKVj +ldF[&TsBAeX[&1K9i9=pAi7!b"V'#XVQq6J'W\UN.8eo)07@"[Ya"elRoK2IsR'Ea3J>T'b<;&'D@S!E[4DnP3im!8]R +"!(\-4qtjR"%1N7Ctc`H#_%AmEBeNThbLRAjNn?!RD'E7bm9lG,'SW;MPm>m@r'T/W)47Uf(\tL"*'u*'^i?mF>1:!^*H#Ps@8Kp"5D,SQHi4 +fSq$3K_=i;Hl)OE(Ze_R7rD3bD;l@(V['`RGt1e3uqhop-_b^AfRgitAgp./[A +b'K^6CG-3/o0OPoib^#M+(u;f!-hHG!!%Pf48XEb';+J/`D$L9!1_,("`,j9@;q%n1&P[jSCR3%n7Lq= +m#7rlorgD45$_IDYEf`t*Lc$:6q'2>ZR_#G0Q1G_4ZG-`HoYVNnCW=OFZs-\Z06)fR2i8ThMcCsr##Lm +(d'8L!!#:D/M3QBp=],I!WNQ.!4TtD#OZ<_hTjMced.<+W@-53.f)lm)@CHW@X6+SY5S(UY'V5]rsFcM(=DJHmD1`ZpMBp2J2'/9!WW59-9qM" +O5Kfb\,O2cr4t%8nVc6fgf+7R^kp-4DPhCFQLc%Db31_g7^3_:7h7_\E,O7mef*\HJsTLQZu#QLeQ@lC +UmGK"F]9iAep<$BOB>kjJi]K#.F:ff>F-A3Ojm6,2o@[5e\7]!&]:2]hK7.ch3Sg'c\0"(X?HUaCr2qk +!!!"XH1^=JHf+_WB:aD2iPSMY&N:F)!,r]\rT9GHa>t1A]rh6-f[X!]M^#H?_9>5,( +-Tuhm!.]D+O,J*q'P2:OkZs1[$ig9'44,5+9FgWE +;i^BqP(U]Pig44NHi8f3'@@#^(JTDF>Rn;C4'8-#!kdcH;d`-:TJJiZb1-78QEIAUm`e`PPVP'nJ4;Sd +r3O*/Ec('9+'-4'1F>/RH@FUKS@m$-O1uM3!5N(e!!!"(_Z0P[s#g2FZgW.Z4+?djhe_`)9a(O44m2Au +KLj@P(c^TD/_nQ,*ihs2BDnghfK,Oim6'6)L0_\C@U=g@X2J^')dZ.aDjlQTYYE#_n9CqK1mtTt[A1TT +a*mTW0"%>$Z0K@%X$K@nG4Mup]D<1n0BP&UH<5T&%dUTYqEl1]PHaS0-4_1m^[T9mTUAFFFKKbP,s-VR^kR=C!4WR]'`e:7 +TZKuYnrr`1iK+$6O!j\bV?-bU*YOBCk:9EmM*VSFNBE;[eOB6!@WOQE-t$%[*BWCOk]$j%#`,Anbk!ruR9 +O,E8O3s`&CXB>#"-%Z(]=X:%;>$HCO6L.A7rCkSX&&4WAGo;U''" +IO*P\OrW;]@mK#RokDZrNl+P_W\QTZ8KGOiZd7X0%=P6kl<%^?1Ui]Y]ON$qXRGq!f(>%!RV,^%+-t5- +_ZTr>%`>%c!!!!Uq4#.pS+Su(V3bMWgn1&C!.]Db%9l"ZI)E#=*A45fl8QJjH$GUcBE"hDR670325R0G'"X`,nh_[=SDSi +bB)@s,rkKQ[.L7+oMUjm^,D/)0lZ.cs%N1l!5L&QW!EA'!);>Hf!hgV$'-,jRbXO)$35VR6S3ancH^o_ +FfoJHHRGpZ2T`iNk.I[pm@PclY']:k7WVPV)ETB>DP8(&[+qkNNKa!0J^!@Wa^H.Hpod%Fip1i^0;Zgh +Sa,PWCnB+b,0lRXpproa55)Z^fP%.!Dgl?KcTrJkpq!A!Oj="-B>L>e!!!"h!]Lho!;D7\D=G+83MmmJ +nk1'gQ>@m(=7PT;@B84t!a2sQdp4WGIS\O/VhP%2/pU`PWXt>lVL>shN0d:iL=26Sau<(Xl]#D(UAL3R +N^hX.cuiL2FEM&r@Q6rMZp?'^@-q(8hL8P[o:Rf:`%NnH^cdHC70!;f3!F1L!!)EnK0&'44\H6BB_Fa; +Fp[iKP@`'Ms#d&2S,R\3QmYNX];oA?&m3]!)LJTKNZ$5!Y9Tlh`&F6i>Q[.KNsLop9kit1\uD-c*UBs` +:W$iQ@96&kq0[Fp_/pDer%\?SgiI^>"98FP;rFMS!8sG&Yd3FEei'^]PGOMJFhVkE'p"oib,mdi!:C-q/Na]p]8O?/bV#!+l/`_E"`EAma68G2K4*uF(g;,7-< +!s%+hGZ4eG!.\#+V?-bU4ts,H5.t_'5S8#nT@"(fQ2!6rV'7j&:8PpD\\Rh]mchtF):!2-6<&bF9E$r; +0h8M8EA]Ui$:XK:J?`1!][$IXXp_J1XQuj4^3?gEhCU?CRD'=5"iLSsHbUMP:&b(GY;$$m4blNr!!!!Y +"`>di!:Bs>asOlIqAEeJl_J#a`OA^%:,\Bc0\kC?n9Bab-UfSk/FfbU#.:A2pi9Y])ln853e5VN`pDeD +`YA:i96jM[m8Ken@Vb-QPUO."g:@(:PR^t8(7Yn_[\).c`UA=N\>,XD85.mMI+.GQrWNK+!$2jU!!(pk +\>]H.\.3KD^C9SM'BI4TiTLgdmeE=G<]qdt9RjOWWdr.\&G +$ik6-4=UC4!5L%&;ZQl;k8?c6=)3++;2SDrBdK7EE@gF@H<#rEFM,_LDYiOslU'V$<\lAp:AmNY=Xr(G +eb7b&FP/Z"rmVP)0n2Q'8L;_58lqX%]U'uLISID0`RrS7muk7'PgA>,:fk&&A5E$@oTd\Y%[qg5.HTm!!&q49a(O4S]<;IP8rKD/\`T1>dE4ISA;X1(];s88#_,sGpPE_e"S\bst2,_=QRe%Z04##"'fl4.C2f4X< +h7I!uP'e/0KQr9ALlMK9J1DZU!<<,X,e0fR!4_Vo`pKA*LmuSiUUp)_KhW'_9ld&W"o1##ap +Yn:W!<2X"`<`=qLVQrKe`[hSb7c["?a8Kp-jGl5GELk%TXC60m^E1r!=0nI[@<2o!]+M6Pc++#t@lJ57 +%pZ3XNS%kDJ=D9`70!;f3!F1L!!)FLPA(4Kjqu%,$.ZI/jc\aCI/T_E!okp)lq(NTXD1LAgV#UCL#7O9BL[]O@r8,V:6[r%-/Z+'c7M=G!s%+)4=UC4 +!5L%&;ZQl;kEuXILa)@9c=gWG#c"i\<:"Q4Obbc6VJ*Mt@O^*t8Cb#)BJX,O/]>$u[Efuk6/#HF]$#6$ +oQ"4PXA\":Y$,2g>[D@_'gG?MV]t:\QEaVchjdVN'<29R3`SdJSh$qn8Fcrb^l?4++ohTCS,tVa!!%54 +`'XEP.f\n,-(T:p6<"N8NC+:(g\S1pjlWXa@2."tiboCGi2p14<,^9ng/``i'20MW2 +01;3*n0NeP:(%qH!rHWTmJN"ZojZI%nQf<[L6h0eOC\Xt!,`Jl'`e:7i"W]#!!'O`eGP*<-38@KK&5V& +X,p;o[-VZ=WE;K?o"=@S=0MUK$*LlX:VBoO4.*'Nj;\o8oWj@QrApf^c_kV:R4fqJ-f+GYM=Yf=$5hYW +ake2-Q43DT1CnehGc(>r%%!!!!oJXZuH +J@eO^kkB8uo@7(tDQ7?PW>a%P>/qs#_DgIi'94:F%Voh +gU+[5Dk1X.C/;9#QH:k7ADG8/eJJ;ei"C96"98FP;rFMS!8qbT`U`.MQ0+ZYp9Y05&s%BFV'Td(\V&_t +4#$j_m2=r]j!6T"6`&'83^+ZN>uiQ/]!`_AX@Nm;>3hu^,bKm[a_]#`+jZJp.jA1Hh";#o9/$YDNii*a +3Jm9jH$HKUHt<&A,=^ZZP+lJ;gjFc)EQh7J7p=).^aoJR$@obssQY5b)lkQ(Zk%$-8G!!$sF +gf+7RggL\GD`"T_jk\RrNin4u'sPBs>LfaL3UP_*e;XX@.=sOV?:<1eiX@6P3lZom$?M3d-8LQlO!S_J +*ZO@Rf&77-4&dqXo$$As;a*uljERa_nuaXAK]H.\D)rU%gL"O%P,9SlnL)cWM%]XPK(A7N:f.13QqEZ*udQi2`^&AIU>!OlfXb>U*8j"9>rCGZ4eG!.\#+ +V?-bU%\pH!HId;Aq^bANT3]PFWNo)6m6Uf'?1=cu!!!"s^eFt4^`DR&=!&bhfFtIk!I.2l +WS@I<2np?e;0d44HZ&OUImtH\_Ii&N<))cN>4"*e]AE;]mTA<4ggk#>bedM4?8BX-bW?.&VL8)nI"@_J +oFeJ8OkMFXDZ7SI/S.`h^6=nQBAmWP$OPPf!-\_j'`e:7i"W]#!!'OH]`,od1R6:UfuV4>$^<1Scf--N +mEkHs[9#,=l[_YdG%GeOR5Uf*qr=dBjiL,/gYh3k2*ti%k7X13:TgtDarY>2m6`O,_^DJ%d6=/Ak01c0 +`sL'b8D%%IK1#p+0/HtVbCdj)PAjrm3<6jCK1A?1!!"t^DCPVdmPa*/e!U1=eK,fjU$/''$.$9g#Fk]Q +icsa'6(8R`_4g-R0saX$*K;o%l/Kn[lYBFBMsrp#4b\kN+`. +`@E=99`">LPN^XP&(q-e\6&0u#QOi)Vnc"1!5REf-6XAuc\L?49EDT7ERgb&XZDe3>PZ;"k<[C7n*Dg+ +d9TBHp\'[0\6_Yo&d>DkD[l2$X`$#D3O[BF&m;AqT6ljL]=o-4o;BIi>qPA_4/PBW?#GU2BCO4I!5%/d +&HDe2:4\lA!.[.i$B3G;IX=#Sc=;tBa/WQ`+4La&2aY\Q>6c3Gn6RFUYs_"M339Pg:=FI5iZB +NN=_u3bn%p;a.gL3\Kog7]kOMZSVq8koJF3;niUJ&"`B!nbK=^2Z).^HEL/$=b71b?lg@(!<<,X'Y(+B +!4]qfq^F\gYkth$]MPtA\>@aDP[EB!=aT*"?PdPQXCh%O(:-l'f3IF9/lSdf0rlbZ]dmQd=3Vd*M)ust +h"rFoIhdA;Ylb0e`l56T:8j*bEFg9Bh?@@fr\e#G'#mC\!WrOIgkb*HR^J` +^B1p9e<=l!N7p9GV3,NHn]q18]AQNu!!!!oJXZuHJ31u&p;L,?g+L,3ndEK)O./G^4dit9NTQ]k>`7pi +J(AYtBMDudPj]3.Y+8,rd&G\#F!]H.\D(g8*ma"$3&>h]A45LC+HAb^U:jO.D]4Y:UQm'@X_P22 +VBWI17U>ELhV$8$B.@p,@bJp7VBlD81!VXU_uUeMaiu+Pj+;esL[2,Md5H>ga*I9X^7A`)YPNt4X?Qsj +YR;Ke!<<,X'Y(+B!4^c?$]gL)*7t-is1B=GS5@3oYbB2T&_=tpVW;g"j%UC'ot7R. +qWY.C;$HW'7;e!tW$c^ro1V`$9Pf`44mh:ciqq0jc'496iPqkEI\E\LQ)r;-h3_M:p2]@U!W[cJ%$-8G +!!$sFgf+7Rghi:h]U>lVj.Blj03+@Klq(5WVrbelO\6)KhmFf +X4Xr]5`i".P7Vn7G?kl$\^%^Pq(eb&;Z1Q/!pS6=%g#,LJLBi4MLpih,BZ)K^)@"0T"q*F!!!"h!]Lho +!-]9*8EKB%.oBsWF0q&G7N"%`TVLDI-`sf!d7@=@D!c$NWY`p6nD]@@H>Tco"E^t4G^e2URIFk6;X-^k +ZBe57C4LG'FU2tfj6PjR'Cttu8Fs$ZnT[p"m5MdQ3_IjLgFRWQF:jMod'r9>S'l;lbN3LX!W_"+GZ4eG +!.\#+V?-bU%V+t-XQ+l#CF[B0:6[k'ljQm]^$20@rcko`BV2gL=T;-R1no0kj;0;\ha4h=$ +o4?mDZ%L^K/3)jR8`&/'V[Vb)[>U5,YfG/bb7`PQVshaO)4U$6;dA=S2fiR`C``Z8*l=Zr!!!"h!]Lho +!-afDDC8@BWemiMG.Fb&Q+WY:.od%%IC!'F*9C`'S1+q73>+r\NeP!kN7C.jF*ZTTES[^ST9gqcRPhQ3 +Dg>qQ`o57Lb+$-^..@!u=?3XS[]qsZm:/;#3lI5DCLg5M^=K6lu' +Iut_JNH[Eu-=h?@rZ#!79V[LJO4l_=jQ=tf9i#of=]S[73TXjg.b%lC]uOJ=lAHTm!!&q49a(O4h.AGZfBt@Bk['FV2lC:>'?-eF&usfr=UQ6OgmcucR3%6K;#PIb +[WS:WhAGQrNk)ANNm4F:->e,dN]?-m<2H\D2.^\^O?"4k#<9oWCL!%W?N/:BQ]&+@5Yh=eX3a#;$9^T9&'VeCi't#O+6GlCfZ#PP-RGdG,+O9D<3=qrVNJiK',7uccs$n5-BY6YX4_0T-? +d/Ve5d@I:%N9p\c6LqbC;1VEeRZ"39F>?C*Q +n+0P8.%/irhZ*X9#*4WA!!$sFgf+7RggOaY<,9'H6!&hEV/cE3B8I82G%S'gF\m6#V5R`o50#]j%pta;(Nk,3[naM?WCrjZPhaW&>%/9B;]0/&]^KQLXEmrV_3[Ge8f453Vm:*BWDZ8#H'qen%`JU +ECqeP760I64hjC^7nra_!5JV[ml]ubN2 +MHdE/Y5$PTRucCpI,^b!!"Qf>+ohTCS,tVa!!%3[`C*g3mW*MC88`;P7WnfLchPa14=;<-gcl,.3j,9L +ntWd9"rNpZf$3N/kSS3S`sdd`#&h]9/?I*60Z:)p?39V"53+Tp#Vf3LA7gT@2-PKDT9N +T%5i"Q+0WNA#!7'R3$M)B>3G7`?b+rQHSKDA&m1o(Veu]5W&;hY?H8Mql?JY25oojb'?NI3 +XiCKZn)IsjFUAT@6!0GXBnPNSHbOnjiIfA_*U`mk*Y@/t@dQ3$!!!iW'`e:7i"W]#!!'P#Uj1imh^eB2 +KUUY`_]M!IjY6,5WW&@F`j+M^fh48>R2kfBR[m.L7,@-IlkBI@KlAhpg#]`H.(6@^1!XLS%Y%dqM0#`L +G4JKiVgm_s1!eN#XTI9ldd[B!%U."Y`ST>+I>b!u(F99$UkF`iG=1u1l[(]gT:X^GB2&I.^_Mof!!!"< +'&6Fd!8IgB)4l'"o:KdB_>);LdR)9>V^c&O'C/F%e_$(_!d-K/p5D=?NMs[di!:C0AXcqIaq1Jg6%8A+'^I2Qc:(B +=+,32WAV)JCn86hMLB5BF>"HoI]i(jbU4q/o;7cj]e.hngWkh&D0[+#]fIs=>1f>R^-#^`7U/"_d0"LPfOI(B)*Ef +7D/2!m,[4dTjHr/G0dLEm+=tE*1(Ioqe)mE2-c]aFnFfJbCIbG9Ee<3_;*iW_VIAp.)1_9+Ed_F$@Lh7g;?Gu\QD/O4$ +%O"Dpccri^(ffr>'"f9GlaiqJ@m=8U*7_;iTe0T,?F>(/]UEAR8[7--l^T2+:bq`Tdm&oTF0#?H!.[`# +;%Wd.!)A*7$35T<:JEWYk!(-e*();e"E>-F4]NG4i74%j=[lTSE?#SG[%gVip8W27KN+qQ$]/.H*F6,Y +DR2L1hbj4'c$Hs1:L')'%u_+If%2Y/3JgegChj<&-PiPj"7";q[n=>odq,fa+=q(@K0DDrk''2+)HT#H +Hg*NfR99#O47+52!!'M?*Ye\U!8nR$W;lq.o5'^F2g(`0/"M! +e*(2+a0?f4QL0%&63N'*>VeX.hMaq2\pAS?J'*GbWDcl(7BA;bg?FuBXad+HQgVqUWqKqTmXX%` +_L0i)C/7oBCU;]cdD&OBDuS+foRGdi?N?GY:]6%L!!#B2(+"anP]a2='V]+:@:pQ1B>4In>HTm!!&q49a(O4mi851 +O7SGd7)neb<4',n07%tGeQdO1NG-W^9#aJ)b"-;gr,8oZ2FUEb5J,M#MH^bR+R%;HUj4\lY'SjR-kGZ@%pAB.[UUQ)a+:?()F/G`:r! +j>h'm>rc_^m@F3<>>G-R7F]S=ohpWdd6ii[,qM,+;NaUgdpX/dB:#&kl.6#96*ch(*:K&nsQACSmRLY7e1 +Z%Q<_4=4km\\^G,kZTUjfc%S&ED8p%f@Uc:>N7\P@R`3/Z2\]b4ZkdU<:XmYr?*Z)k6bs:Q,KG\p5]k% +`W#dr'OH-+][UHhc5a@@it?$,O&Prb!,sPQ.KTSM^aX5$!ZW-i*;E*N\;.YMhehXn"AF#:7DBU6Hu6qO+*+aD].2^s(OR;.SLi1ZHbp;*JY +c08F+ht7)iq#+gLZe):kHLg56NGJN[Klh<]^Jj>4OI2pT!!$ZJUET[A?EkT>WaAF>0J]p0e&!(k_ +;T/+Td^CV]f&?%01YZHuD^Qc.#$4XLHZPH>m>ud'l$_[Y7*Q\Dp_s/@!,sPQ.KTSM^aX5$!$!('-Kmfp'mEI@Nr=I=ZDiAeG%mId&^.39JQ%1'h>M'd!n+W!;@6M +'`e:7i"W]#!!'NWC@Un9_s%3Lrl*LmX35+OC\2s&DF/qs;Kt+W[uB.-NIsjijk;hp[I(tf^@Dgluk9U?YF`ePd0G3ZQ5B,RqBFAi6m$CAJ"1Fugrea)S(iG9F#[ +W)%j,3!40K``L_;c"^KjL3;6NMP%1Z'`OWJ4.5tSV=1IkH'F&&_LE^/!)VTN&HDe2:4\lA!.`g:]HlAD +d9C`G2R^c'5;?0.`5(g7Oc,ckF@OPq1'n=kAXa(<0B7h4+04Li\6Y*U]:G">at +'>rqDR\H$`'$I:$Co-#8X(rD=Z_1C9dBVBggBSN=I[VmrIteeA36+5$'aE.].Ya%\n'@YRFeW>6GI+l- +\Lr6#lo"hD*.UOJ!!!!Y"`>di!,e32&8kEnT#bjj/ehA/Pb>od+=D@XRnEVnQuP+M8blfph4^!!"!n7n!CX!&t.".KBHdRDD4+.ZT +e:W4J=/Xd,<%?\QQ)[:p*%SK<di!,e"jEdK_c!BnneEVKATR94;hTA811hMXVXbBlu9_kcpk(-*YpA'U;iW0BGWI+K8H5fP4.:E6*)_UGF_`!JW:lalFE8<9:jVl1b-sd8@#Z@KfuUce"1a(N\sSG1e)G_HN>B8?COf>\"fV"3`W7QoLT7uN7iu^C^8!9BT0@W?)P]s)&!9.2]VNT3FGOH;FF]7b7Z]^4S7$e)K0r[<)5od>Xec!Y:AX'@E8!!"\Z +O,G*bruX@lPn(`\_u]S"s4[CG'Fb/maL*Gob:'%3SP<=[(K3Q?e) +V1t6IYl7caK-G04;S5[9KXIV:]ErC)]flR+C^hG9tJ9fq*k&1M(5%k!\adYLdgtGO[ +!!$uWUET[^JNfg3)"2C!p!!"_2dA'4HrU"N9p>i(P!8uFAB(e,A]A.Ia!Rsk/cpt7mXf2]Q5@&)1"_KlN,:UW] +ZMBV!1i0a"%r)YG>UuYOK:VPY>-:`ZhKi>5fs)es4hIH.=/ul +fCrdJFS3s76:BgW$*2R$>t+4S%X3`Lr7!`=`$$'S'I)7U04=UC4!'oO65Pib`cTLgeGJF$A^\jqbq=Uq@/Hrh:e2rPW +$35V2@9cmhghs"m]'&q0CC&'b.X/a1YV'+W*W0Nq79aB$&7`sM;c0F?jX<6\"&.gda5"DL+q*dO@f'f5 +Z.qZDKPK,f<5]YFY-iN]F9Ui[UO,kdXt!M\Il%,#pPg)0WmX+C`qG_4!s%+\GZ4eG!.`"c5Q0j>%cP%W +rGI#S?iK.o55a@M^\mZG]q`*:!!'ML']@?eCX%oXa?R:?pl\?,3U1(o/0m4n_^Kia_JUiGXKGbD?h^F! +inCI(\[;5Jhj>CqcVciG6fH@$;W7B@A-PSCrgdI1olBuD+PQ]2j6X)@plVH0hi/J8h2I:6I*Krr0hDE+ +!!(Au7n!CX!(ad"h=#gIgYTC5-uLL7!,`$S1@2%:]HK_0QE-M.U5Ec!01=pc4]D>Lo;$9+f&%f-RSN,o +o/sqikiUBhmCgt;oHN^u52TW?o4HmK;q,#sd-Cf-/kt'Qb=\WP@cBoU@3S-ibU7Wbr'`e:7+S+aDU\4?=,9Qa&e`3+]O+7)flg)=_]>+75O+08UOIHRWJ6P:iX-[#:gU."\:DEG3cVn/W +P]BCTW3%orQQAge3uo&+'Fj>eVCPd?b)UdF5GQ&dIc7Z0?n]7(/oV\PX(j\uSER!;Aehm]McMidW[JJr +4Soi<'),YUI#GZ;\J'5\jGt!4_]/XV,!7=V!!#:FkEUhPLQ($]HN.&4,J8P@;V\^Bh!<<*B +nt#5sB>$HQp=X*9q9F25s81^*S)="\2qE30ns6c_lt8QK*VcKlDJL3l!-aaNb0RYqCkm(/(%clRFu)7S +GIWq#?kRct1:g3WcQlAQl5[j-)S+7G?R]YgGK4Tk*r_Z:RqqP8>3!qmA%=W3^Y18Gf"q)(3GRknI76$n +ontQGpXZTBpq8q@?N5/"pPB]kIf8c^!,ul80b=usmsRuU#iGXT\)[A35QCZXjqkf-`SQ1$;ucpR +%L42E/cBQ>#lt[$Q76r$.^;aLh)3e:luaj;*i".s_i5!m%HL!rT4?Pq;a.*" +4E1%p:.o]DXstMub3"tK-e4P>-@#.mlrCgt$fJ4A5<UARD]^k@*??p]I)8cN^lKAorC]g1o8DKFr)^Mn.L%DfI +EE\g*ogVTIYHFWYU2<(Er42eZYl;0N]A\q5R!I+a02e@%#q(@Dl-fAf5Uji1hn->$GNDO@F^k,>o=IEh +1B>2j*Ye\U!$LjrdA(?GH03@iIWKi8]ANSTHJ@r:O++H[+?(#8!4RJn@ZMfbqiDb>A^0MehBkn[K%4NT +7>&.kIg;[c(ODK@gB!Ym``m4on@(6X/,'qDR"+7 +PhTPqFSOL&&*3>=^U_j1(2_Pc!rrbf;%Wd.!"seTB7IAH+oM(as*&k^`>;ldhu(]251;TNRgK.G>G.n/ +-:Q^l\MAs.2S1+Y)!bm9O_\%b/-mUTaB1LQ[jGo^X/<5A('[4f;PnG;WfO8Tp"dQ^`L^79M/^r7UH;t4uWOQ3"/o,Sl*tn7S(6;Zd +8qp;d8pIckNQ:`LGVu!g<&X\u9n?XN<%u9oV9t_7l.HGC,FXnDFU764&mstkCR6l_C$O\$l-ErEGPj;s +.,b'sVS3B5!FkOuf-01^37G0rQd_uJ^Zfu^!.^sf*Ye\U!2/oGJ,\Ws9u;ZMr8E/(f7/5=`>@G3rqEUG +Ie&\p*#ugi"TZ@*0Q:p7kdQ!T^#FmB"G::VUhX`bVcjqJ][U3`^;paJh.q +3n.K=R<>`WfY2?>-!0h5A)/o^#>S#cs\5Ib\G^9-o@%X +)aQ&ZNe_;D1&Ri)k[mG1S;ic.U@2=20\=V[qGbH0\cfEBRhnqZqfEe4/1-FQ550.!!-\hm'`e:7TZ:u# +qqLRfms?_&r:9\nF(]A?!!$m;RE6.[Z$3NG42mP42*f?%7Jis1#"?KcW&`#WC([R84Tk[bWmcHpF!]Ef +6Q>VU>]bBOXFFP[$N`fpI?oIca7^Q#gYYXmNq,:np?#-Nb#E@hF)8crTm;NoK%I?=5ITJB#DdW`e;+ic +Zh1hCJ8MN/JoTu`rYY]D%$-8G!!$sFgf+7Rg]CN+j)j)H,p?GrFAa> +:d30jV9Elp0%5KF^$5QVl5f\!0B&8T'8DX+B!R%G\p%hB%NjuPLT9lV=0HH2#Ig4 +F\FmlS[?>2a-*`&Q=0\j#O9ir6."mje]pd&\T%Nm1V`LNSi$rWE6$m6&HDe2:4\lA!.\9]CjM;H)m!$& +I8g2o\Nnnkh=KI2hMd3t7\L$\5"lC^O:$j]ZDgG#$btf(<9N&?>iW?PK^8fGhGd2l`X5 +!@H(6A:*5q'm5#XV5LXZgGst%01A8^fClh#N>)BPdX$\%qZhgeEm"LUNLK[khH]_2!5RE@7n!CX!&t." +.KBHdLJ?5ZT?EofKrA#;0m>>.okns2g!bmuRf;WFA?Jh",:,9AJ5?rVH:&h^kl)V5f/$euO +`1[#fc=D!.C7TG7$9B(O/WhJ*X<7n_A`lT;44b@OdQ>-@f8)Q/r-q5706[[%E6$m6&HDe2:4\lA!.`g4 +*4%?M\TKi4G[=\X4k$[X?H)8b\ceUhVXlP?689Ke`6b:FQ0bA+>tnU?M,Q!DNSpahZBnZiF_lMVX50A@ +3;4=UC4!5L%& +;ZQl;$`K)-5)!LdSt2h--5H0(cM-C7>`-orLk,u6"hR^4B('>I*CGdf1ooG,]"V;jHu)E_pu%rt>:S$DAi^0JTBb0UgG3@X\XW$dT(YE9H1W&HDe2 +:4\lA!.\9=mSo)1EWr$#hcZqh4U$7*LJu$+W^^"iE&<.:lEr"*bS$U%%(:)UbMK'O3qOYW]'5iJe`+k- +5,aj,<#/fPXYIgDP#rp"6C=)eQ`Z47cg"UpKjFY0lW"spL$MB60!L(Tf,k]mil5Unn6*"8HXgUUcN!s7 +n>HTm!!&q49a(O4/`7Psq%Cql<'pN3X1;Ng8_N%l\^EQ^D7fR?/W3=Rgf4S-0:JU\CeBt,gmjdIP+>Z: +Y`:2:Y1it+WXd6TbpnUOIoZejj(E27m3Jo-T#KRd +ZTni^VjnY*i"!Z"+ohTCS,tVa!!'JnbS_IXj_4$Z%)p!g.u`JP8:e,L?13_.",XY/lK'EACSe9nZH?k: +)$LU"NuHcPkn?pjg>B(#7.FC2p%+fr0(J^2R9Q)IAZ&-8?-e6BRFTi66a0nKNbkOWN13BnVBS\tr8=+@Uk6:kK-=EFLq)#GMnK +MWj,*SE7oNDsn\o,>U_ipZD&YI,l4aEFPPg:4,GlBB@h_]TSB0AmG&Hg=a0U\SK.eAtCp:XLFht>J7U0 ++,[fb1=e#jR;JPWT=;:"TJ_8=r+d*@H*[1@jHErjhj(h8Z[Mi>!80SP;a++YU%`8s5h8fU!Q^&jK`&ZE +.=#/tTCSkiST3Q8RDW\s!!%-9WX&S)!2mVf$35V>O:g]aG'5h59]F=pF4[tsTk`\_0Xp9u2L'S>^U"WR4O5DU-opq/ihJCe3.'b?\lF$Y4)SLPl<0''6F>:nX25uH^(9-Pb#NTWMl!qETT1<+c0Kd3MBp,;4 +AOXI@X&0cq]sf@or\j.fDt*733G)WQFPK!nCuHr:/.TClqS:0:!rsMp*,=@iK1+o8VbHr8m8)Fbq[tdk7\lkc!RG=6$_0Q;+VS(_u+StFmFhC'uAVL@e-kh +,@Bu3M*eKl&]Um&:5UR(h!lIhct*R7H)f4CK*]hmFM +];Rh/PeFX&?oD*=_"Z.>4IR-\c9kFn3+c>rI_MSE]Y\;S\4_:lh#HDnf5/Qsg7!e0'BqtSD +!8oHu<=o32!)A(U'`\6[5pGasrVulq:`I-J7(<'VI*Ci$Xg]8YRk@SI)@`rF3Zr&D;d.QYJ(Cj^Up[4cXfX7iB41$.$*n7 +CV%ZgKk>N.S+,+F3!U4253(N#!3h3]M?!VVE!guk!!%6F14_3u_sm.^5,X7.$,E];?XE%mV$H:5*^8]I +=))+ap+Z-DQ$[QLP+p[!XK5*0->&Mhm]-eomEClZ?3*nsEorAC82'j,J`UpfYdO8Im-0@4CardTl`Z\X +f[t[22#JX&mMW?bmce:)?h^(TM"RtXH?`WUFEt\jSO.`GgaN1$I[FG7Eq=r8^H0%:"9@A,Ks-@6!!$sF +I&I#FGQRGt%Z%]-ilFhhDdh1BAl\(r^YJ>kY4^^lfR7-RO)8=8(lri+YO84S:p)E%BWBQ[7P+_4)mk)I +Y-iLU#DUi8-ArC,"hR+3X>?fmlKn&lda@oV['S81cVA+5p9s/%I>oJ\X:q@nAs[=ZVQXVur?GB>ZH"2t +q;)&'QS!)Ik*lGtrsSmH&ABUq!!'e`n=]m`i!GX>#MHkE%Sb'n2]9&>UkfPY4l(e(/j6WI/0X*5m7hS0 +D9$E+Alj0/NaBENIAC:\,0eAELde, +QoHZM<2so"'J2[Ulq=49(\Z/_*Qi*."aXst':QKhW5DlI[\KpBWKMF*\N&5YP5AN\SYj!e>/nP;4IgU* +e\-b!U[QuV-CJp"QH&c(09fDumLfE!65A`uO25&ir"n&@gS*MHH]NR"\&3Q1aCbL'2o/Qa!!!!Y"[5lc +!'CJkN"7u1QcH"2m>Vm>>C'%g:#'8m(DS3]MpC_Ng4EQ$/YqOb?8":J7I""SZRB^J@_JK^ZX,u1@kVS^ +C=QR$cN[V&=@Qj4=hLmZ +>P)VTj]Os'-\j,q/UOQb.X'R=DKY<.PROdcNAUoY5qckBX8DRaIG_Z2/D8k-e01gWkq/BFE-g8MofNh9UZ2 +(c3fLhZs2^+S_rB!!!"s^kW6sJ>]Xf]L/N]@FUbRcF6K,DJr\Mm7ds5*ZS'lc]Hu-SmbhqC#64u/iT*# +4[i2\%%!!&Mj+"@6jSk1E>[gM!"lUqUe +6Ggbn33I0+C%ms#LqtpZ:3R6?db3Yhm@4iW<]4__*%EQ^eM1S6i"0qCf(Q\>gV7b;GW8u?nNi4KB_&J0 +,[3&%J<[b(nXM!dEd2CLGZA.GFq,$eRb`l=jq6#"[a=a@%^5VnKdXo(YU900oB\:&gZqiabE86aB'\@2 +2]_sL0+2,%!<<,X'_kK*!:XNVK"bAp:jt$X+!uHKfbKek#igM=<6`iB@R[MlbKOd55I5b +98b4l9j(iFgQ]:eT4],5D3fZ(M[t-a^FW-Bj1W[g9Q].$[&1@O,?qAC@;3\l_TS6dn]J.cqTZF9;VL)5R8,>Aof5CW"cR^:7 +]$&Nk7CY:7TPsh6IVsGD/T_2F1BQr%L)d"I3/4_^TAQF)O%bP +"M2+iFIpJM3m4'/b3jb`arV=63(Dcf57=;\)L:(Q9G.`f/>LK2pM,4bFYOD'Y!QgVgh/T`p(g:.H7D$J +Kt[0S]Y=TRF(0q'-Y8BN6,j?)^[k0ndIqnO`>O-r0n,p/^;BC.*%Cs((PJuL!!!"<$@JcP!-eu";=)GW +,;Ab)p,]4tZJWF]=-l,UX/#s"kJPcFB+6/<(/nGMgBFTc?3=_/pu +C0JpY3PHJG3Ksc@6MMDui'-q9#QOi)Vne&p!.\^fa:cg:Nj`-?\X$Z4mCH/ZcR`9a54V-HFloqd:7K]" +GdBd^a5cGs.qln2V7uW(e@u@;H;gY169;S+DYr'M=*d`5p@9c(b`nO+^gHN&FtF0-G@?F-Z[.JiF`hbN +[==H!-%Y)u@q_bF98[NejV*og,>=KY/s%!F:@/lpHTZRkUtFfnHHc)QMlgol=GMXjrf +k?tTsUF8WL_+uLoiF.;G'mHX-c?8lg9e5G57p1==lD$ur\eK/V=LDMTr>Sn+?.L+IChT1,kbOCq(HuH> +H#XJ"mjY/55BD4"YB?c]WYA&a5J*mab2kfC^/`_94[$FKtGN3F+gN^.2\S'au*R +pAUAbZeIL1oT+"**K@;C"p$+/69!6hg3XI2p3_Wf-7o/`3Q#9piJ0s +[KJ4>ETa:Dn5;b,U[(g69.UQdV/61E2?.S"m][r\.%B[n=&0Dh3!Zf@3)4>YCn +S*`5.N@0'D8hGn_Hu\_AL6.m#nLWdI!WW5p_,j&*!!"t^5#_L^Hk\M@oIEsZ(k.bX^=e40$i0HI>^)[K +/VC-Y@Eu7>#r)=C4uW131WG"jn577E5BXl/d2Pcilgp:;jO&h=n2.l_@UbAqiq=Op1k['B',>/R[r +h\h^".=%K5^Vg +M\b,[T$-\_C"I^OIaRRm=2-q$I_79T*&!lN_ct'`4f\fdf`2"k"MQ>e!!'e`n=]m`i0b:u.O0/DhdG1p +W4@jmpWl2s]tRc];8:nlmB4[rc2Ds6r6-8.r`L-Sj>/Rn4i7V1H/M>s)lSa$G<)0bj5*Cjb1[Al]9]65 +L3;7,9CN_%kKD`LXASYh[U7,OlJZ1".sa+D[FP_r +&ULsVRAnIANV(56\_]CW.8L%QR.)6I[r7J!PaeS4Si&@No'Q/!3ZmqSL@sTg!^qoi*Jbr?H!&")YX8Tp +!#G'(&HDe2:4Woj!!(=jII(NPW)!'tD.dR3aMmhR,%ZUZO8iFMU7:skVf9h[bHh!77oI^:P.#?NMTsh+ +FFN]kH0EZbHfe#M>$]iNDp]*.m1J%=Femf0%pAdkfjNp0LF`4hRrl +Edl!BafS_8DNWu(MM>Hu]C:%tZ7$5^69?8?(OBUd[pa=-@Gq'#f@7?ISCd5Qeb=)2ZZ*eoE=#E:71m;k +.0l#!R2L?pJ@UV'%o`;+e&[rA/huDF*+iA60.qL\apXL!.[054/!hrE__,0WH_`AINceYhak2!t;C;.< +NA:p?XRhZ?;B2g6adRh^!,',L70!;f3!DKF!!#-L74RtdABSfPYTUDS.h!G(&V/Kb>n+Nm<_/IClqZ33 +oN8k.NnRq"1:E-_>Io-eI>u"#@G?056sEj+B=ejDCd5k$*S/K#'m4XKENkEk-VknURaMHa%%#XAdp!`\1lYKm2q=F)Lm^maT^]4@R*53m(!!'e` +n=]m`i;"A_bVLoM?mr +g1QDr9)6'%es?p:dEMTL>fX)0W;YNL_.iCZ*'FL/kf[;:Hjr)ca(\dZ(f^:@[%2$Fk?jk3\W>Ko)5Rad +G-^@TD>reW!!"td^+'0a!5L&QT`P5P6b(hC]J.?lBR%gkhmC*V.s#d<16BDoBXE]sKNY>Nk2Ra)MfnCS +FGllPI%pRYg/iuQ2;2JSZ*p8_gVjtl`q$h>B,59$YN:7/:6pu$X6dmm=?(4Mo5(,V(Db5;qCK"_B_Ei9 +hWp:sN',E(3TiJE_O@!2XtGk!oq`"rqk6^/LjRg/p$(NF&:%.8Y.#VU!"@ed+ohTCS,sc^!!#3?isN@J +ggQn-(#O-m`\W\-RkAn9go-&*Xgm=tAHZinSHQJ&]( +Fn'L4cooL!jh%f(TQd3EKSJQFl)Y?a7V9U^f@M3mMp`+dlg+r2RZlV=7,N&>ZIA+^[!P-J?(heTKLLT> +5=NcJ1gOZGm^Ol*]]&nk!:PKBM?!VVE!guk!!#iYp7n'd91!bJ%#b$g4NeLXQrl!6]L1(J?772d9hNd[ +hgEi"U>.i&B9p0MUie2uANt4oTka$t^K,miAgKZ_[L&/u,3OfW/8c6k_]Bt&O[e@$$0Gd#\XJn$mW`L'Y8_4APpS00+]S5Hj'%ls,Z>X*q:TXHshV]ARZM_.st#"/I$NbMJ*34$(eb0=&rC](n0"Fu>W5q!^uKBrn:WW7u$$ +mq,^.EHYsVfVmU+!-eWo<K=Z[e3p.^>o3<(jo'X +Bfk$ucG^IgM;"CS^%l_MD9*?f@3/`L(fj,hZ@fU1\jls,VH8EBU4ah(m<&WF&:W*-,mUS@\&P'A=H%U, +F07@Xik;JFLPP-h/^q\V%"&RY02@Q[=uarB?X>C`G]8`L,NSn*E!Lbj"98FP;rC"H!.7q,8UG'&;@DHK +*agX)GL5B8Z'P$PS[HbJ +WW,9YA0$=FOD>l&flPkP:Q`9_mVCm%3]BZh`O9F5?ac/8df!,o#MMc0@=7qH9i'Bno%96%:(cO^o[M0Q +f7bKH80jgMZYWmE_&_u.!!"ta?PNSA!8nRd:]UQ'P?rP)bjl3%kk=Z23XD9^**FRbEhlU:QDjW;oRZt5 +>qKsQah*$D.a9fcZDP@bh$\PbU8&`=Q;:NofZapb^`&:*a\F1pK%Q[$.qn<:Q+7Z/iABB9?^3W%#[rn=t#MYf4h0g+9t4gqj4Pm'ou+/%?Q[&;:=;8^G:r]mppRBiQWGBZg#c_n6#gSn +ZfFKAep?;1Du+*R1`;ke2\XA`=;H`QE3@sbCbM]\Ak"SRV%W6aC&e5n!acZC!!(pkpeUtk?]\]W`03Vj +GI^Ik>.;dfDu/=/Ys+gIUsadAS[btfTk>FLrTF+M0TmpAHF#23gXkBT0XSStLs^]`gO'GFm+m/:J>9G2 +EYVV'9AFU0Y%[O!qaE:ADCM#X3(lIu1G/cTCXmJl0B>0Vlg'#j9@S\)Vpq\aDrcr2F$KMtP@Phlqepnr +5Y&ui.K(O9r@2OHgf%"PO*E+Y!<@W`iN".&!!&Mj+"@9K$SkpRm?qH4&a1k;>i'gAA\T\X*"PdPSb9t@ +SYd?2f-qEO4I\8=?mr1iailK\8ZHT8gQSnjk&RB1f2BGOf;6=/9<3=_.ikd>N-s91@:u']<;B`eVRIYM +7pPb*'1^3g:pU2_^;>k]!kf(OYHK'bE>`54]ng2r]195LY*mr"(Zgh)c&.m;L6P$q2r-=jI1aK$Q)Fcb +^kqP\&HDe2:4Woj!:\O+eHiZrib9B8cEH!8@Mbk(-08B+OBZnama,9X&Zf7H6VYk4a*8%WH/P0Dna_"b +3Cd:2cKi1YU\@^pe90,L(M%<>*PLl6%8'p'V9F8ECnf5=ppLFKS_',<0"[dST44CG*P9A#a=n-G_WA6c +IBQD8P&U+$Ai!f>T+Z24B5@m]HggO8^]/J$e]A6-^7;]!!.Z.KHrU:L!.\#+6NmI;2.k61#Dk[_?uFgn +>=J(5)(Nr3>!rl)i5,gn;9g5Qd;d-[DiVK+Y9ahKKJVTRlt]aldGELfBZWUl6of,YHe9j[<]Xke"&L%C +%k*>`H7d!]DCP"&5@kqmR(YITHHpf'5TUsPmGi>W`_S6n/nE2/N"dM=dj')(aRF*(Z?bRHFFE+'>.,%D +i+p2270!;f3!DKF!5MZGU%4fDT8RX#qc4,s8gJ]q)kc*"2P)#A(e6>g? +eJkr0$P@\$L@*uL9R>`A-&Anede+[BF]((Q>OV.Fm6R;hH/7OKr`9("nCca#+ohTCS,sc^!8pMTY$CrS +l/\FkTqg@G,W,gC"50fLA\0FV*>s"IKR]JV(Y]JN'A`;`Q#]LT?KPXXlY(9XcGLZHF[e*jA[D\`YhEH@ +>Xb;A*pdKQRs$q[&,+(-L.@jch&EuU\sV,4PTHE_lI4>\fp1Y6ZW[bXJtf.69NZt328_3175C3qkr8G$ +;WWPitT]MJf]X"`Y +ni8Wa4LKPlPiXl_-n]9s/hRq7+M+d<(G=3%0Df4@GlfWK7*<%LCmZEUabFGfTC%6uXB6m`G[ju.&imQE4"115M]^X6OX+mh^orXR0babR^[!1J'69#^e +.^JG7]ikV0`4>pUE;T>-dU7%0?u)?-]btq +eGn_$;4"!W!'Up@<1R*!jOrE!p+A-[+>/l's`Bh:Zrr:>\KTm.H6DWT/aaGLq/SP'a8V;9+AkC.`% +Er+1u7#Uj0bk1\65F_`IdR2R?4$[nZ4F2bZ>^bP,-iecn!acZC!!(pkpeUtk?\d<$CnE3O\6(G&()FN,?Ejp="lmmNIF-#%5X;8pNE^'I4:Zt[^00>O1+kfl@Q%&$8r?ScZ +]d'B"n>oSo1Zk.o1@:oEg\26Mc`TOTm(EXid:e7-jikoFMTYYW<6Xso7.ftE&+ImF!.7cL!!%OJi'RYJ +HkH4LGdEkjfosJ-mofDQcH:0uj0chN>dTdM0Guq\3N%2:H1R'?\ua(1KdAHh]rZ>kV:.5k>=KpJH/HH\ +q@8i,q\F1jd+gEX;qonQR3aA]6^@5q2-Zi^u^_=,WK* +[0l>jETZnh8Y)RJ^),PZpIGZChL24C(MAuu[eB(eq7<1_rVkt9%-qNGno]&&_,i-4GdGEN''hZ'eQa#g +qh5P&drMnX%pjb4$G,tJpsP!P"K8=H#Oi!H]NG%%o[a-Epi4,O70!;f3!DKF!5R2pd;Q\+Gn3?DY[iC2 +\tl)#m/P4B>uR'&UA_Ka7O\j#,E1S5lCA'b5P"ULBK5N0J4 +NgbWa3[ +=4a7/_lG!("8CE4:@oHM]e$X[A8>]p>31FDKqkgt=5q\!eqWMifuhgLmCo-o^M)NF8$q7a4(n'/!!%VSM?!VV +E!guk!.Z`>>>pmA-LjoY0t#HNrRH\"brK1B7n7i;Y9heh8l3XX&dBERm:$[>%+h^"Ze\Q]2XoJX<\;kg ++!,_NS1rQbWu-+?q2\b[Y1-_K?L)%e7R'bnbkD*H91QsG+g&+5bgngGpSRt5YB^"58TpP5)K]$<$K +;nq_E)`g-:rjcB]kqB05mmkTLEW5n^J&I6H!;qZ2X!.ND!1X*4.KJCb+NO7;rUVSog4bnfTO$GaNte70 +c%6S(),BmgE*36YT3M_tdiR\)Maau\9p+)9G5&%+4?g.7@Rr,(f[I8alAtG\>s8e,B.ic=PJOM@4[tbc +DOsCF8r9k:&,i\I"57k119F'2JpfYGPYRSJhd<78O4=jdc,mjBa=1J#lL)7ALDeE,nb"9"f^V4/tmY%(_161\,'EI'l_,j&* +!!"t^5#_Nt=$ZcSXncVcT$mahrP9Si8O99R[6H5.pGpZ,,\K;1'd(k\dblnrfjD5D[%5Y./9RAln"tTk +T%LfK..uCL3lh;nR*&I!aq`n9V67B''iYdJsR_-\X\ao:%aSm +A^o$:i<'(-2Ya9X!!!"s^kW6sp^2,VH2RA0%FkQc1\%u`_)%-8;o`%!+Z5^Z^#`D'[H+D8rEIJ.+s(+Z +)&?JASc'*#W508\/G4=`%j*]Y%p*@JLP4,@pCjD<4'uS6o'`NJl(ii_W0N>d@dS$JLcK,4f`lsGH +O$S'F4qdb:Q^^@T7>fBF<9eu1?MC?[+V!2j$g5)24h/J(^tY#n`urF8t(*p4cSTYjXi5(V#UAj*YG"2l9!_LA?:Rd1.C/KLYbk_1 +a,I7&MI_W-F/m2#IdUBXMnj2_fn4V%O-cnp>^M*(djmWU5)+FI@o5.U1L0dKbFAu"X'ariJgD?&,3V.% +nc7d)pQZ1(=)'Kohh0:e<2"A22eBi`_ApS[rcqPF5!)Ep+*Rqip^Z5_+ohTCS,sc^!8oB3E1=oHZde<) +Zach:G\I#06a^3AYJO+Mk&6%+Yq&Ym9Uj6?cE7Toc=FE5WUq!]E9gqDrn+R\_lsA\u-4AC8%R-aSc.T-7@0P)@mPq/XuTa3Ja6gXh%!Q$U2!Ytde2]]fP\ +iNV_5/:Hi_nBV(7=2$-c!!'fjJ,=0am;J!Zj$3P'fi.ZB!Kr"kBIl'IZoW4#7%'NT?q*rr>Pjq#cq]Fj#JX^9i@[K5\6JO.[lf:&_\nR/d4o(;;7"!!#:IgUD)S*tnR^ +`rGfUs'ta:5#_NtGE:1eWSR!S=`lp>Jn*rWPWj57[8]L(]/V'V]gQ6hjF"N_YO^F+]j$E?VFJ"^m&%$M +72tcIrOO&;?EQ\A]9sYa8LZ#I]s_#Aq7b5QYiDIFiQTudZ2#"qhQobZpXfC)6glIZ(Y'Uo=Ii9lV=@[e +]3a5FP\&cW>f\nqcK\>j5JM$tFR+:[G%2rH5NH`&!!#2+HrU:L!.`@5roS.uj6"5pL"F"^@Z*XW*.A7=,,eF=Q[pU>g=O3j +8>Ohg#A#50b7i3eLIs5WdDh8`7lkm"Ft/L;b7>opS?BSZaW8>rgYD[%PaX5rPE+?]qeX[EkBj:aFmE$K +*aZjmHVLm5a+jnDIDXl3(8nq3Wmg!c>Q=bQFRW9B!!!![J*,)TRG[e!hg!UKpeUtk?\.7Lgs=morDUZ(a3 +2$lj?aUb"-t6eQP1 +_`_;KkL4j_hApekK;]Z_r##K"n5U&#!!!B+nN[#nQVRn%o/j_YVJ#Fm!W]q9V57UkIN46Niqh_J*ta0L +>5O+J<>Klt67sIn>JZa"P@g&5gS2L"FV&,eZ:`gTY<:#Z*qjR`rH%3-nbp?3mgK'AO`1ZN'UQ`,#HlU:pKoMR)Sf0'M'Vd\0*'pc:Xmcis.HVJ.u#m[G( +I\-9!p[[fT&,cS8!.Z.'HrU:L!._r$r0RHSjV,Kqp]piWGCJ_!Ie?cloiHV(=8p?Lq("]0q9R[=i^3kL +HkFpAkd%kTqW7j474H0%khQD_IDaZ/MccQN`*./52RIn=g:NNO(8QXkZ%+pE-'R_*7/;"(k9f!!$@;^+'0a!'oLeJ+n0ee.;KRYQ+IVp`"_C[smYPrq)i^ +dkCb!qg\Y70:p.<$39iFoR;GQ8o!L\\&YR=3(n$K)>ep]?iPHkC"74eIbh;W5T[4EC26;pYI&/,_7KWO +Y@*_\%+ufZ7p)X1pddJKl-Sj[LU(+?ZHq1maI^hSTTL=GI-P1]Q%pjiqUg'CL'>leF`!hY`oIcWcZrfh +[""Kga$n*=fK\ps<8Qf3.9C$p2HFmi@s5O'BGAGVS4QmDS'J!5NdY?PNSA!2/i9^\un?T+M"l +5Q8^;k81o.`NT6oYJ&`eqnN1.ZY069@m"<5!!"'oXkH(YHrEpS/+4\e>e1FA/N':*`dQ[PiNoTd't#W; +HEfJIb.S.*OtXSuSY[!HBT09a\-ku7:&RnCHAUp$De.MQ0V#LcRIT;ho+#i>o:"jDRq>u9)>'hP]QY'?!Al;frC$2Q9l99.N +1F42M&m.6oAp9WK_tm-e.K=e.UH!$J;?H$gP`B=A4>5D?Z:lL(WUFiiZ[/N4Fm]I[9X!=` +,qM2AF#:*`6S>PY2dF!iI*LZEJS3r]P/Y%F4^-1Ris[pJ^lJu>.KTSM^_*q%iG\Y6Dp09L;.S9E#or4"e*K:*&W\nF2f+,4;8"5Ze@s%Du]p\aWl +I4<'P-WP+-R=&6;qq`#59`B]"!s&6Ii2\%%!!%-?jA5cNh"+$coLCPV)h.Y4T?a%FLC+%V$C&L"g-k1\ +L!hMJ=!'l9I&G=q.?5pd`?T_sf%P*:PUncWOmh;:HfA3p>g*-[hsL*dBeoQL0)Tc$j^-fK7cZl8CoRF$ +or +hV[@Ch(ZH(kg(+H!.La5<=o32!0U^gns;T:a\Vp&TDc+Xrh'5gk:[nrrm'Es40p=*T`P5.!j`X?\o+oI +479E0*V"s$kHNCCX4l71edjCBZHKqAfX^)`U#Y5`Jc13_%5^^FSZW4if$5sFnCE!-!b,B5b"B"gf8C,#\>puh\TTDP5[q*4oB?i5h3n`A&Gs6llCo(Z#^!+1DK/,Ipb\S0uY +Ze`J_Do]F-mMPcUXgZ1QGF@.Q:BTKcAiGKG`u_/=c1]/`[Gfp'OceI:O7hXFA2p\n92>0BonE:'M[$N] +cRp81gT4\(dPrUBrk,^-kL:5L=rK*%&SkoOSIUN`0ooo^)J>Ssna%mMBBRCreB70go3"-.2_S^P]e>U& +'Y;SopNF`DhqT"`*s;Qln5U&#!!!@UpkO@o/&1X*5P`DsIeL+?rTet3YQ)SVp_SGE0E%`6cO>t!+1E>FiqU%bSDg+O\S!m7h"8MhW$@CGA!3NmSCseLOP:)_,E_C3b?""p_g]6]Frg^%s0T"T\_CqC@([mR1C1m;4o=_sB,od*WmbW@T_//_[?bBft\BSM<@'"t2% +\"A$.@DB5>6+QEQr`QoJA[T\6q4eh968.cV2RW9JVeF=!mQ=Ubb/;e9N?omDDX!\q1*5WJ4R(\dG:;?t +$0/--0AJPX(sVu@ndkeOY6J>K!<<+-`dde;s5j!(n+V;$MdIHL0HVbEi%(IBk]N\oNsN,c@reE_a8+oa +XlTh$qrO[Y);W^^S/tRF"u_n&iSaCn[[&5b@!Sqqn?`&!M[nOgOIg`p4j0D85MLa-D8Eru%upMY//Bb, +C\-?EI%`SA2U4fR'E5:3X)J"f+7-\)c.:;4ChK-ge*G+/RCH>6JHeJBZhZf3Ut!tL:]j%;[\Ah0RJZtYP'fNbL/RAdEX5.mL,AC\0X4j +]Jf1lf;Y7qd5hh:ZFY5;8Ts#P2dXMg;3_R&"5$%jQT)dN0'-a`n%UoIaXO-@HUYTR*dKKgg2#f3F!&SNV(2`F>?-/` +o>\7foh7m#FcV=V126Sh!'d`5qpKcFiqi>8p1W3YS)j%;?Ls="Z,WKu:I6?"TAN>NXD:/kZRlGK&9bOcA4d?c(ODZ.OHg +4p)`!_$UHbE;8A`mMWe,%IX0Dch,C%pgdBq>XrQbcApC?s6N(5Ei4)hS4N5?%Y8ro%gMT3m&gVm+H&+!rBJ+-(PhV:Dbb_,o>??`?"m?VBUo\"_3YLa-*9pK,R +p,\;*mW=B<%Ok>u9Qr/N':n\Gc,i!;\Y.ff?QHX:g[`Zn$S;=W=6tM0Tg/9JLMkn^Z4kM!CSdIWT5Gl& +,P7dCnl^82=Y#Cgie7tUV"6?-[Rlgp5gJ?8j]\S>SDJm_M`=5Tf=o80I^!\%%b%3Q63.)E7g`T^CRtiAGK>]B]mR8Pc`6^$#jpfLB4h."B9KacFI!MX^cPNpIN"t8QrZB/)9QD]6V[BENo9$fW:`/1G1Djs3(I[$L7#$[+0HX +P*C.;7'WV0XV0,Hg$UJ.rRY9&,M0Z:ph-3TfonO^S:3I_3/)FrG3sm!RQq[#3%jX:;3")[`fV8[IRRo! +(X[ZWG)qRUBeN3.-^IhEJVhk3*oZW9C@+I#mZ8X+4SNhGKE;/Of\rkT!!!"h!Zrlli/?MYl1G;1p!t=I +D(diXrie06:kb1_M7gr@ar+MpftN(ehj_XPi"h>(fiC52J!J;X$PDZ)7&\nBX`DMfk6cOK2VG(`//dln +F2`eYWa8HlBb?oV<*`2&"ILcn:8pU5*;?`YJpig>@A6(J/`'`\tC.iVU;^UmiPb>oISR@$GBi-aSeP2IN=" +fBbMSSX]<1qrt*iB#`T'X"Q`Nl+B/M?EgrRDLV9^/faF+Ye>:jT%d9T!:]s'=%*)h!&t-G;uj]M+fc%D +#QF^Ls+Nop&$WT-W1DCo?!hs4\,Op-=jsUf\ok._IU+e$+]ZY%@>.6e`f)+RarolIW+Q":oLj[le`_#R +'%`!kV_?Rd.GY\E+g.b4%4NC`@!Rbd]kagp\ETVmDZ6R3Vd;4/bLr`Y-3),hVTs=A]+!QFQ.6c/flX$M +=?C0`UR<"gZ4LP,E*6g^Z(I6HlNMTk7lOE.FbauijV^6Eo/40*%kackr[73^r;luoZ,9X3!!!!Y"[5lc +^_`^*Q7^e@%2I\7%R'=+H^pWZpUkVbelJpJ[o*KZM%\s)QRbc?gE,.8(n>a6AqPc=i,BM16]%IcCT@\4 +&^.\MoPtF;,-gL<@c<_Z/pl<17*7XH5MOB5ImIF_u&f4j`unbV%a6'a9=9jg1lg:Lc, +M!*?ki3S=R^@#t+N?@r4N?qaDL-WMhoYaE0WiK:"L0lG;_hK=WTTag]?u>INkO6p;a\Y/B>^O`$9+b8e)@?*;Z.(>Z,A.>M#G2*4Baale:hLmLNZ +<93GX#OG__Z5j>HVpd7JIZa4D^/*?ldDK`PaCbL'KCDkQ!!!!oJI`Iqn9)7Yh`CTaak!;((T0V2[dD$8 +n+:#^m=Kg9l/aao4Z/Zgl>3iKY%%dggdp.#"a#N2f:!$ceC=BMmY;eh0'hD?<86j1V5_XklZK\!3q`pj +AZ6p!gE)PbjK>W*p%.9f5tA@??hV?LYEkP^f/n562&s;RhdWEK2jsQ7Oo]aE3fdGcTOMS-J+=f-?_[5N +g1#c&>AJ"h:[R,a4$rrB:$6[PY]rQ@qfNu[A.8P.4i(2g!!!!Y"[5lc^mF%O\oMK@AB`Km]kKR_%meHH +'Q?PED,rL.FYA&&`7d.fbplp^g4EZ*0QZ-]6d'm2,T_k<[=WStE8&SojKc2HWa/lqp,YlO=sb4C*m2oq +U9^#iKQ+*^B,g1mC(JF!NpF!a38eq_,0

(Tk5"_0^)Y2fd`LaR8fJ.d;=]pWp1ZHdb";M-Zab*g.kY +>YOBlmMYnB-)+Wj=Ua'@j-lT1QWaIkHjB.@&HDe2:4Woj!:\OK4$VL8lU''CDs!-rrlQBX7q%JF67EJk +="KK`RDa/coZ5t"k&7`\*>+]'9nV^IlFUHEgIie;Y-33?2flE";s/e>I%q4fWT,OKp:t3#qq+"e3birb +U=e2V#[K4*R:4\+Q'r8f^j(iS,+2?S@(BjJ%` +X1:Z'G$i;_#KuLH&kBHSUi`S&7qYk#X_7<)([kFs!7"mEMZs(M8iC]3HooPGrpY_^5?p'j\S#$e>m>BA +I:oNCH[P8jpPF4WNt8T*R:]=aJcGkq;E9-q"*JSG[FF>n1t'[&br@3 +!!!"s^kW6spp(=1g7+%eqg35s11+A^f&k3`=E!8tbqkdeS\8o%7ZSga&?IB\4F6\6ZBF#ZU:;%8kB.NI +[?D[nhQl.4#NIA?fAO:-eKmAhmJ?&6[<'&M]nZLWj`O4N?W$]f"7$lV#2XR$_(M9+V&r7Zae8B@A^(&6tcReq;g['oYHj0R1%UTqO!!(pk +peUtk?OBA%s3mO_$]DFfXo!IsO3AGXs-5HO)V!g/!+&I'O.g7,r+D)-AdI)=UA/WZ\9j1Df1+Js>Ec.D +ac=Z4q6TfJQIm?nD,s$0l2A%D7sIsl.[oZTH`]Y"?/#;k$UMp"QVjRfc\2F37'kOVb[_XDZL?NYQQAb) +Z_)L3coWuMQd/b)0p3ik:X2,G_mdmeF?a])#PH8`'WPM.Sb&RFH)EV[J)hV2*<5Pe3rf8r=%*)h!&t-G +;uj_c_.k\Fe>t[=a(9US61N:ep4-Q^D9Bup/<3b7Q\YI$:,S6K.5:.][D4+D0`ecF3SP\&H0b'rq?]++lB +!&ODM#QOi)Vne&p!;KGoG00+8c>6QagbM]@Vg$rY&<8#VO8J*6j;u5PGkR#o7dZKnoL^2lmZE!\'6XR[ +!qtB_Q.aim[A@q2':3[ZVAZoIlS7JrrAnX?j`BUu_\K"O>@gu+YVg\TR +YM?$gjW4ju_KoMdWY]PW/=4Gh&(rfI[(jR(L*]o+:52XR>op5aH?+jkO4fpM)m@:tOSuJ@%^,8*T<;c" +rC$+q]#:B1qn]Wt!!!kM.KTSM^a\cH!W]qKV(MMK0:=aM;BB#O<*k`=b,L]4>RSYB`70jtfSZZ?0<Kre+)C7tTBfFps""s/r,T-6YiU$WNqQ-,/pr"Oc0Z'\Wa3fu/?dW"Q2#?e[maoCN8[;LFWST^gJ(0` +2>-e\1ZU+3m^eQ+Q[:hT'KuU!g]q1$!<<,X'_kK*!+1Tr&5f")Ao]f$9<>PQo;1#m;Ldn;?p[%M"\#_OYV)i>'n]q18Dh>0M!!!"<$@JcPJ1nu?C`^5(IFgX7 +/Df&s>ACEO.f7t,%=K7^lQ0]$KcW]uo,\3*#u\ssI(DK+&\2NXm0?:s/(uJ\CX_Uae-pVtkSNXphP`k2"_Q6-58TMEjBGqPOir52b1%W06>>4$C5q +jI>YmMr(*g8W$=#p.Hu_Z!d?Uaf@EhM>Zo#BFuD4WV-FA=dUjW0]9nf;XS\+2'EtW;dL/(]/2o(rIb?52ZL6@S=g*;1 +9:/?ff*reW7cq)\8#)!/p."[XIRX![jH)M!i?W[G)GJ/HHhW?:XI&?*nbK`%b6m"]igKca.TqZeY>.&n(pN\X +q!P5l2l0[2c8Tl3$T/Qq_;KPID[rl'Brb53E,\blb?6Qj]bq`[;pCZB52%fo(\L+DR;G^:l'2:-jmk]tYT-TN-+gCUe>0bA'[d]+K1-Kbm>[Hj +.C8=V)H^Ug4b8#)`LF:&_`+%QUj3%Bi"#O^#QOi)Vne&p!;O^l?,X!mQ;(EmCY`LT-m%'q2>m'satDP^ +1uW8KqO2E1-3WFo9.Rl!bNJ5m2D-LaN,akV^WeK(<9fSU-YG%m"md#5hkRmOboJ=DoG'qqRU%;\aG/$8$qb>^TGDB)nA@$ +q0d0]P0X+.pVBp"!!!!Y"[5lc^_`nZ?\be#O_"G,X2!=WCnPC#5q, +.#eca&mT1,qnDr]F;k]7;pa.PMH`T_XB;K*fjhWsc]!W&Ds9j%_=kOPe0;To(/+=c,:*`bRhrE[N+E8W +=#nL$%'sB[6!p&Fd`AOR[?FD +mVeNHRgAfu!,sQ<<+h-YgsWTWY^X,-Qai-%-*4`G +@GpS7LM\1QW]!aEkd7[]WAM-IUb$$8;i9 +Cq7a_mAi)om>0%Q4mTCt?i.bl`cZILiY'egjj_ftE[f!i:5lj*@EG%CY2c"cqU55[F))haIo+IJY<.u, +"ePGH4*2mCms@P)!.a".+ohTCS,sc^!8n5/-^h9IVkDYNCeH1q]U!o&%Aq],^2@_ObB@Qq2oE'[H_G*< +h^rf)3)sVB@e>!3Du2#8WB_b_rT_;Vn,BX-0B\m;JNSq1Ja+f&nT\kfV8I@DKCMO-)>:o>U6EJn/*Ao/^9hI:]Zp9bpS)a=S+8dRfQ['8hgAIZT1eb4B15&?Mp5iS +9ti8cL##7$7.`#9:$2]\^fg/,&HDe2:4Woj!:U.`@9\?1kltdh0"%/is(u,R0-ej>Y]',%#)A5A"EZN0 +m[pUoB::c5n3J(3$U&=Y-r*YZ0:`UhN:)pRp:,cZoirl[9A3NE)3.j")fhNSK[9T0(?s\9S@g/M25\BT +kJQfN^?mEll9K%7Z521V38DAeS,L"*g!5,Wk?2EOr`L+`/+d_64X"US]YVcF'fd +?rcWB`?J,3SSiLBgL7PnDRSgFE, +EkD'aCjUcipUH8.?VVR1<,7g`JKFhBp,p8D.f'_K/f/kT#Mi[HS0K[7oB[GIWr2Y:B4*dlX^.2?Ib9k5 ++.VS.bt!uYbK(<^Vu#?>hY)EG$MX&a-[=g\SM&D.kH&jH;ehO +i7:fQ:1ChsV!Okbq5,rE"7sJ>a*2*793\eSUNb9(SlhVWph'SWpV9j!!!!!Y"[5lc^t5A-3P1['o]`)2_[Fe%r3EBc&e?&K_.$6ae$#P' +h(8d)HB2t#dS(F7gFK84Aua<.c6BRi'%\5$Xt?ngY1k"c[Xt(k5/1PZi$afR=LFVou +;apFkag3qi9)rlkr@C^Wqp((3aOuHYT.i9G#I#k._8Y59d/CCd+R`sj-+ZgnrHX"Jp1Ggu54PrY]tj!B +^?s*BAn+L]Y%K-.qp>FRM*h:+[:0^Pa?Fug5akho4rVMP/^fSE4[Xo +I,,0:b/rRC0+/J3HTd'PCDX*Yb?J9h(p3scj>[Vki*Mj7Luf@i\oBsX/L$e^rf3BE>dg'P/@tA#ga[u; +h`jkU!s!]Qpo4T"!!&q4LC+%VarKcdk\=m[Xb\bhXA!6rLCU3,H9]!BbF>$_Cj;A_mHZ.VXBatka;H2X +U5jI]8BKN;"&a]9V.ji&o"Ld$=RkqH-uTkD'YmJZP<%o%'rm3jX&&j*@gabo\@.`@ESD/ +R$B5q!drTAS>90M[_(YSJTD$QNkEh*5<>+#IuH(>kQ:g4#Ok_*!!!!oJI`Iq!!d;' +f1rDhcYfr:Zr]UnM1OGf2@h?:b"h?t48mL"6eBl>ZTB0H/s"4QmM9q+u#QKf)EDTI+'_6eQqrTAH"Jbla]ueAi1+k0Z\\6 +Pa2:d^+'0a!5L&QT`P3ZbR0Yo-(ap:M:nFmq.aY +Ljr(tgs`:0?+Z%2JBRKg-'M7NQK@_HID*D^>AtUfgT\kIH)fT&P>o5JmWY(?MVmA9F*9T]VoS$cC?N/c +74q:%NnmI\I3UK`a+Dn8#B/MG1nUV[`VlqB0!lR^SOe4S+&&uXG'=Go!YT# +5@=k)m&0"bInKDam;/D2WT[moYIiWhp3K.oD;7&(n`->BbpJE%._%-YKsGJQFMG8c=-r#Lqh1ljbo!VM +kh5N*k\L"=KQFo7T-psdEbMnn0.k`6C$)hlV;S(`iS8YnCO?&/:p.FColeK3O("*o\l;'FhW`'o7^'Z] +mlg`%mfpKU!WW59.Ia#4!$H:BF`Aq?E#?bLXTD^k`4A))g["P-L9f5&>H>3kO=icioQi0r0OZr:fhEFU +.YQP%7Va5#=fl\T-ocphP[aoS0+j,ARM+on[%#ZtJ.9\sHfL@e4R90b16geE<8"ZdBt^rp=:chtEc9Z#`Up$$k.,UbKPd`h%5J +dDr1A*8Ya_VZ?dh$ss_M!!(pkpeUtk++jO4rt4>sDaGMHgf`X91]:lp\\ToN7rQbtKQ552-%]]N;/:f0]X1`JgYM=0pdbM@7mj2#c9:tGWZ_pZ@fLFTO],WA=f$h7E(B+rT +hkL-R2ntY2Js.Re`+Kp2RA5pVquc1qe2>h>[iDn__WK)ug%r&]c`F%3 +j\(N#lb*FhCL-_ul_M=>G&o%>6`LKs\tifi3tV&L-$d,i;I,aCU$-Ti4s*[!4!e[7lpu(:/Dll9_WG3X +d7k,+_q%%0o=9u2?P%3.]^16i:l_=J5fs\ON;BelVf)3i(]RaKl,iSZP()-;:?rn@W;P4-6\a%!]Q\C/ +LF9)2dQ&WR2N6qpZUHhIId&de@3ufI4fj#'=i;6o"A2(]^=f()Ol?!-1!)f/Cf,H,^Nn2Pc37R@HTk6 +8c,>AeDY.d+&WAC>]Fpf=R(4ng7<>oC\_52XrgKWlFq/q:2dnGlSuPnEcJp=qQ^pAPS7Z``I?BjlPRm@ +puP9X]X28-;hs*LI@*XW$2teB^3fXT#QOi)Vne&p!-fhCYdIs:E;s0BXW1C[eM*fQ:"7FdVgEF,&nXM; +h.>3TdFl6Kj?mpXrn3M\145?,jORkR`*fHKAIDcKi@9f197+lX7isj">sUP\Sup'tC,mGpdV>n]U6unB9[UXlJVJc)-i"[Ik2_[]d8%44=uBGhin& +:V8%p\Ab(,=R6+iHr'63&HDe2:4Woj!:W[.+mk'^k@%)9/6jfgfZj5nMni3UY?\"WW#h/BgUUc$bb=V+-sZ>uh\tbK(YUYe +;pGrHcRHGR&5*_jG8>=+re/+CZ7LL9W2dp:Rc.tnmDUXUgOW&Pp[dt_2*N>=hqnncrkC2gJCEJX+ohTC +S,sc^!8qQ"Z]:YDg_"LY.k(#"LboY.)Tn`kg@^(Z +g5>sR>IqDVLsqb.4\/Z$QbB9KK6P#KF`4N]Lg=&fB?Q(QpJ]I8e6sFffsRp/coe?6@sAQCH-ZD%hd?BI +F4+Q;IE0Pr(WeddjSDjMm5`k[FUpV1B)q]ZiN".&!!&Mj+"@9KBacTBB/"eJdpVRZAkoEYX4M]i]cpe7 +]XFefQ+(1an+O=tf4OJ4?X>G,en8C!fCn:i$$3\ZcuV]0Y8:X>:>+]$JU73;Zn<-uXba(!PM'P@=#EY' +6G#a^kgRjL5;@K(^:;rk1d(ZFpJi>aYk!p%T_$$U+6/$b?d$@.M=j0,]p3JA;H_o6<8MXS_eWmr(lo^? +!5S3bX!.ND!1X*4.KJBebQQ4(BKWe"C+*uVeqFsd!;FY%RI8AnqbiDc6UKI0&X)E-(lH%][iG8->Z+D$ +]B!Jn^V-8U]75+>b+T/-gs2$TdCkg>TY8F>Ru4UoT1>'b\es$p^4+ikY1tD,4RDXMF]nV*'dmkpTEa!/Rq/^<*5!]VYXkIS/Qb*$qsQ^`RoZ1i%mu`Mf31B +3e_1Dk[e+jo"&1@af?Hja'2;niA'.TLAN]C/C1V8^QuJnHBA-a)sq?botKSKnFjuqo)Jdb_,j&*!!"t^ +5#_Nt'3M`A4t"9nOQ/bLMtj6Vb1T+CP0HYj=iVtVRNBn?E+\1l"&g@h<5YeRha5_^_dfJgq4p8u;g@&L +>c>3m`pK]F:sGu/[4kB97fHnN,QB]I_KZ%\Sd\s@!<<,X'_kK*!)I!>F?`>#[)paHiFoj5 +bFVr6YtPX7@Z`PH[DYulZj=.hP?\==?S:dr +[0^!t;'&P+)#U^.U0ho=g/Jtq-7:%tV-:h)el%_N9M+4*c`5&GbPdaZD&,4rqLaJj2#7fK$NufEn\kF2 +Iem4:Q@k@@DAXaEr]JepeA9T3%OtglY8CC>YX?nM0^D%mY5DCNYc7']fl*C.f%N5No.n.dHtI!35MJU` +!.\#+X!.ND!1X*4.KJDS$s-4T[ng#?@?.EN[_5Fn9"J1Z>D+Kq>Vr`1WKrG;dbR,(eXS);5*C;e55BY0 +:AaB3%25Yfb8PmIrj*R9,'R>JV6#,kp!\tKmY+_;e51r"H!S[73b=Is_.#C(E]G8'FZr4pk*u?1h6kSZ +'Z*W<&*l;nolY8jb@6e2ms[+d?sf8b&aP.u/MI(`"X4bFo&1]UkPr?u!8\#h'`e:7i"Yr_!`UKJj`>Ft?3mjHjl'FF +[&H0UI$5V^OadRcmh3>a!WW59.Ia#4!$9CI'_/$M&UtkWB[I:\(4joe""np@ZuhgeaPI#C6'i;Id"(@8 +gF3*gLije5G&a;Xba2O=-CDb6;j(ob]\0R@,WndHb&]%pX7Z]rP*]I!NdpKenlb@=Y:gT"Cffsn0%S23 +C%KcqU9iqoNA5m>+6-:!(Ler2M_UgRGC)icoOBIqoA-5B-[a#8(5Couph'U%K()bP!!!!oJI`Iqn5(*l +]I@e`o,k3;j^8ZMpWQ56@3`DM9=`[?WQRM]-EuQCA_PrK +/BR]]o5';9Sk3NSdYA;c(Las:T@\LrcE]QD:3(6_+4F30q5f$kki`F,oX5"teZ=q;jWq;7W?)fANioKt +WdR=27,mflgte)KUTJsort#qHrn4EdPlLfu)u-E=!!!"s^kW6sGUQj[c#/DAIe7kd'MDKNZe]ZLN,m+T +;5$,(_GIhI7pDf$Xg5Xk?8om#B;:^ZqBf#%gnp+]iaTankS,WKW=EAeBZ89oA)trX3p'DXGr;9[dV[,) +$qY0'O.SS:ph-4,Qe0FY=TW5;L*'Y-@CB9<1L5*/EQAk-qg6)Jl<@5npkRNXOW)-JLSiN^;MK,Bnk[-K +!:[\==%*)h!&t-G;uj^$ED,e`gLl=-/+tt:P)cf3M!2L:1,qjtOGbe_CD)$!Fq0oTVlG0B,N*I@ooGs"OKRIamje&HDe2:4Woj!:Wg>L2(=r5Jnt( +&l@m6Dr7PRU5(1,VkYoKQ]UN;Q7jgr=!?,<79]k[E-37,3bnWBV:I:al_XQ#V$Asb0QbLO\DoAM7keh* +(lh5#q9YHlGb.!HSdmd4%4qL(CR5lC(g`fq;_F,.)W6Prqk'].7'B_p%cR/kS'%AR +?K03nqWc))H"27+D1-O2!8p?V?PNSA!8nRd:]UQW6bU*M8eNcUqYiKWdja-6dn5KM4,033$,[JaSb[BA +F?KWWk'WoCEt(Q]1K^71#"=l$'>A?V=U_o,nP_lLYHNjDnpZ;a+69&bUb*pC(<4Y\D;*q'L^o`S6$Q*h +5AQ0M+_.I;G(NfMo94.Z-66]H(SrCF,'I(84q[]j90X4WE.I5YcO$k(H^k?!:S.b24Bg +FgI6R,!(GL(3/Pl!:35O;\_T*G6M8Q6Ib[j7p+$T!d7kppY+e=B%W9qVl8Zt#s#Wi6S>hRi@V3njLLCc +]:N#-I;^>`r`S:GDhMQR`dNmAEOgBc`tniFrUrSX1B;g;n5U&#!!#cF%i#*6:eEacOkYY'?KGA +n:P*Il0+u\:ikI\A[;6+S>St;gc4[AQTcMs.n:"C[M0jG"YH+J,$Uq\PH>\MLoi&8; +>k]ja"j;%L7..Uf05?5?@pIX1] +H`2>;Y4Xl2qAEIh!!"&C?PNSA!8nRd:]UQW_ts#8FHUbEfK5s2mW@l ++(ahqO/&5I+.RHhN^h@+>VZtao%E2\T<;BOQS'oB-gJS=cJEZ(5*7rrZO9Qe2tFPV#6<]&%UTqO!!(pk +peUtkO5n;g[1@-#k@oK238c$nfaDi,kI(XTFY]2ZgJ>D)g2=GP7H^:Kr@qLq:/>u+eX=rV*H"ZIAnfA. +$@D6]h%\JSEo]W6.$N>f%ce3Q:[uqGlo>T<-e$ZuMLS\,K=5%U`oWZ+(-uLPHC\ZYoON4Ll7taf-hF-V +A$_eVH+a2e.4Y,\P8!L +G'Al5@la3mBr6e^WR\P,-I>0A,k,pe8Qu: +_uF?Q!:V-+WX&S)!2mVf$35;j1G*l?msKAUd&jNj*I6%Jh$Vk,%o$PW*>H79=4T6@2KG$6Cd3TL/IZ]! +\ThA:e"Ymh2Z<8sBGLtMISMsP9rcqs)_A$Kc>7556`KP"UQZR**sbO"oY((=Tbb'fokE@M%U$`D1VjB7 +05`21XFkE(X@jUPK5p__[T?Af[?Y43O5*tfni/JCoej$"A#B8D!5;tp*aWPdsc8H;NUG85$I,ZEt#r$kdFcIY8)/^^%aE`COA`A +8=A+=b=!fU;"us7.It%7=)iYJ-*Y\uT*>WYkB2amgQu++INIWDK$N=^?d!*<0,s8po5_:(Sre?[I%.3o +\M2GBmG&9=cK?t.`FI3\DZKk5D"(F:!!!!oJI`Iqn2P6hDL1$1f]fR3q:mN$(i$F@2kE/TlS&22;QA(q +hp=U"9-Hg%/d38I^+c9'lm<)>C9\>>7p[OBFFBK]?5uI0YBq<3EYM$V][g45=O6f0*-12!Kq"g=qD4B( +hrY(>i:FCsS3>*@3L@`b+J,NkRu#JA`!\MXd+5c<)tqSiQ+hr5H]`?a%S"7l'"hL6qhHq]1.D0+Zg#^859]f:FFLq[s890b^4>&$FhbD'A\T3$:IXX;$kIYE@EJb6 +Er!Khg!(I"UNB)Ei]=8q.*&KgbRR#iXL#,S-n/:/b+ohTC +S,sc^!8p-o3e<@LcDp&U-V?]![Y08tka(PKg!gc:jqP(:SlUcm:%_E>,1Eo]1lB8+C)FCnMOScV=H%?? +.PBk#Q6Z(D(MYZQD"2T?.#SB9qG +Y"Io3asE#%prqq_0E$QH.OErd]j>Ps2QHHM]DP_1QVUb&%KLG`HrU:L!.\#+6NmHPNqM+4eo$CRU^ZN9 +0g'K,6YD\;k&0?mX+jb[fe?2g?Zdto'""Xt#+[P'5#"7D(j`N+jOeX8>[k0fBXU')?&W%?DT/GjHOAAc +QX?<.D6]O*:scMOn'R_@rl`"l=.-8OL&AA-IrH?]bFJ7,]P>eFXsV<2h?!E=o`Y_gApCl(lX&VQ@"1bV +Y7HgKG<+Djmu,ki^0arDmQLbl68Oh'j_T2-s)FmrVuIV7^2NeH#QOi)C]<6&rnul?_r(IJIs_,J5#_Nt +iu"rV=%qGpN3j;Pdj3J4=VjU)^`jr.F2PH5h7Qq70:c50%8MCgY?OIrQB99;8i(d0dXD+3q.G3)/QT80 +M:Pi/H.Y=>_9=77<%'ss6$rV"hLZ5BOn51EX?H+,gWNB?@^m2kN>]:7@:X]=(V!EH7^;o;ig#XA(g4]6 +Jr]/';P@#g2m53?4280L"hh;Vm*BAp:XPU+1jSDkG=I]6ZR">]S50hjNPa+r?a9m?aE(dZ3>1)4/#i +3d4L+cJR?%QT:Yo.jB\=PoY;1f/K8Q1>#B/C[rCq7umB-Tm7\Ci+[>q!!")B?PNSA!+eXq*RFn+"_aYNL"mEpmITYIhGiBnh%SM505q,&9$jPiBU>*q+$Nf:CF; +Xo[um.oKsAkrK4/qtqoA0Ko&7%X2%XnY9o;^-NNcs)R;VY3Va1aR0$.4:T"S!WW59N1^.Jk:[nlrmp!' +>PMh2pctVg>ro5kcjRtUT0JTj^?uUh(#7#HA]-D=h3Q7pKpEKcX26G$Wld,1JlL1(XK(CsCUPrjA*/m$ +o]A;[U%3"TL\>s.R%B:XLqSmZc@EpLY]eh*5#+E0[I-#RI"@rhaC4[]Arj8"_K23-?Z`!r>%dGZPK^0@ +[s?OeqjKs6hhps8;o'Ffq$pZH_@f:\\3i@+B(mRfsho +KhC7n,o2H_,m^iR+XRQ0l5@-$!fN2_.ZP=@$TS[PaLq?V)AIp(c[EEEuo, +@99WgBJ5\W.jq,7`%Kp6='[4[a<:6H"F06`Rj%h0V@+:,]?"*$R8l],F26MDlS=@+blc@!I865CXN[e" +$FkMqS(09(\alC_lf[uCF[,;PpZ[f!!!!iIeh/o +re8,V(Ol>7J,PH.plBP.rYY]"**:WBUsi$mPnn6aefKfPM`[ZS[+EHG3r,1j](UB8B^N;Y80'h#YZIc_?]Nm?c!a\]/=G1VfGD_gq9ab>J@U!:gNE/tbN/5@bPIB.j`lug*',IKSN:5SlCIbWIkFB6sK +?_YDcY#9&%KAu25RRSBk=-!02WJD9Q0BC/jh,OakGDh]P.@Y*Sbc0lT`5TJ8_=!q[?:% +%00`9^+'0a!'p+e^\bVr*tSA05Q$<:cd"cO8,qf7T&9IjhgG7q&-),0B2@SU"TUXj0951;le\V@E[+AG +5A@C`)im*sOlj?iY(e!4`Y>66E-SqdaJD56kr+GIpYp:CSO53A`bELaRH +bJRK/_^V9X]ujQ?UEsbP?qs[Ij%Haikd25!#'n_4`TiOK!HK)!^t//^cUPXO2j/Ncb7M8"7ApD8+,\\mLjj3Kas!<>;DHrU:L!.a.6rO'DKW9sHKhk#!@nt?*b*e_dBWC1(M +SDd]\>?/WPII&3B]u3fKl?lo#d>Dk#g1N&XQi.,WV6kX7\?+)R%Eke3H0\S6jKMUogiXCkHMcA">bkgE +7!jPhWSu#-%RTnWlpu!%(AP:L;a#5Tk=4@djI^iICEG-.]gdhJishp +n%(s_fm;-,0h%MR4fmIs4nbr/Z9$^>a!dK_6ENFRHE`_eo]h!`/M$asc]8aL!=(dIj8!j%n_e41qTb_?ifrI?-\q!+g.U(G$"Tbc-nTL+C*^#H##V$#p,gWlrWGQ9(&=jlH0@BfkTmd"?[1?)lAk:6hrpG&0-. +h?1?;SqfD.0td+PK-]`uNF[ingEZPTao-a)KQ?)I*F<S)n;p_jb)3VZ]\^',PKXR>Pk3uB9S/clcS[u@ZUfHom$iFqHQQrj;^[AXV +8(4q1CT[;qD?$(,#P'I4D6:u6o^rHEJ%8B2cQ:r*9293BhapD,pT%B%@(+h5O5G'/hEPTPJ0,AN<^WR1f6-]*236K''h[5&J+?da-Wj&ac1K +lb3AVCe#aSMg-d2>r2Q^pb(O++ohTCS,sc^!8u6ECuKX)/`#bLNR4m8H?d'><;0X>C1mS)hWC>ZnoWP[)8a*(:?9!)g#i=h +^-8*q>IHn0JV,Ol2DFogo!c'JQBU38@D6S(JS-J0s(Cg!?)2c;lL4c8$bIt%/4R7^R98?2^qa>NKEX^T +$?JQ>;9TJ-'@Fm;&IcmB(0NAVa!Z-@A3gusIQi,hp#>W@IFZk21GpsOpO*Orc.kJ4%qD?CXk"VPKpEU1knRVsZ10='7 +T7Zb('FRZ\,(0+!!5dIaheO-%T:O*?[%*OIWs_c=71ZPKr_#p +:qtWdI?QmB`q!kYcc)N87t&"P,:WO#+E_2#??4^D:ma$40_6cEXj2Z.HEdH_hkXXjmUW,biOi8ab&sn- +ah?9Wj?+d.)fr@l?R]oD`oj5lRe?#2p8:q2Zi$BQKq.>u^-kg44f7dI0oD\RMP=%62\f1(]q'g)LBtIi +bmoZof#kj;L#tcthk=hL\n6ZD'j'nP@3+bFM4]iuq_h)F['R'3j4(3A +csC7$)c\%4.DB&)Bg1UEq;-tX\2h;,JFIM]]C(pqLQb1+Z]?oh?KQ22!J!u(1Ouj9B8n2'>&E2HfriLm +hAck@:DHOccb9URdnY'OauVc]IUk1n?KUr'](E[9bSom#J:!)o\MsCTR/WbLfV9jPU.86J.Rm8L78\/a +ntmUgU:1fsl:r/&o:c;?DE^1_pO*VFcu8.q=Q`aU)7)iop*SQ.#BNH%3>IY(FVOh&\]/h\B(#SbFCO/a +3sus^hT%AQ]rE)_Fd,VF6a%N]2]UiCS'nf@fJToW@!VR9'q"@"!1nUE==#uO(m5c8VsA)VcCa>_E?'B] +lZkBn(>Go6Q3>gH.T,c?pQ9t?hc!oC\M9T9*P%h)n(#LLLha3Ml^['taY:D=rm1d2l\5'PbG-JC^'s+u +@MD7.'LeoJD^qJ0H98ZG&oK^bX.UW>6[-jDQk!U!4s%ZL<:=/9UJ-O;3kTYsT[;a(/@tr5_65P]ULO_5 +6dY,b\faE8^'YdB!"=bW&EDWge`&Q=cR#K@E>T1%)5!aVI3(&/20+b=%WDDS0RdHOS!E:)(fkn1]>1rP +`3C,_m?Jt\qkC9)pGml0l&edu2J+&?bmI'hi5T?3'?XbQB:e@cE]Z#%B\B>F0:83MPkhH;URjW&gR%Hk +YKbWbbATQGT;*h2g6@YU;%uGr'V1u2WJI;4m8UeEJ'Za?q8(n+pFmeb+h6Y2=J.Xb4*C2R$b:=!\+\K[pT3;)h`"2`mc9mK@to*=/o9^`\m.unIIpmh55=$(OA:`:[AT3NNPX-NVK#&inP0T96Hq!?Jm)aKi1O%b+.Z]I.HpG;Q/ljihM +`O!p3B!$"JPRQa6b+.@Mo=m)_JLHDMY=eVh(e%:97F +cMQfnb:08)TH(p#V?Wi%XpsI2E%;F__rX*MI=!:p";jrA;$8tIaC:(qcZ;%O:a8V^cp&c57Ssjg;07]dVBUnl\(3_! +hu\9GMr"24nZd:/".6,'-1iGi#DUSucP(K_$Oh,tM_uE>ZmA/8J]D62#E(qCGS;]2-!A:1gF@L0/)UU1#(26&CH2J/f1;!ODErP'oVm"6U@L +/NFar^7]QQpjOFu03Q0.8CHRTlu^k3,;.gYpGm*kIDebII2Ur0MG`-)*MZU?F+) +4t9$!'Lbl@MXmVgMPBjmZWrFMd/f]ba9`Fnq\&jVk60Cn:UThqR(Zp_6='XN@Y?J_/lnrJ^l\,.lX"B; +8BXXgBj&FA4J:=Gk.:i`F[aA8e8Cn%#4(e%P@="7JVlP%ARr@g=rRnf^Mc_Wo4J>A&GB`F9-ZU\R;mmo555V'pDtCOF6&QBQ>SBp#$]Htsf4K0f\o\h!oAug<3/#(0pOsCk6LifUDZ:bA +YJJ_=Ze'8?&k:g$C,N"/iQk@8I>,g6`@-V<.#LbshGcm?oVSA4g70/upeuX-;fq5,F>IZEe07FO8\B*g +ZreX%$9c"G].R.i`@XXthDI&IT[7Z$@2Q1<,s\@G#+'q`_dH*KtRJ^pjX<3KTfo=mj5eWK."erOJ6nd/="Pu\ih2F&4p8^1% +?EREoZcoK&Rjbu.C]`iG2a@%$"obN!\-dm^MFsP/FNZ?[JJng"4\%S4R:1NcW +Us=D5"od"5g?&TCpHKHh +X'Z/d1P5jEDcWsdB,3+'VU?tZH@3(]hDpG4YX^X=7P6dK0=Oia#FB>6q`sA#cnmrt:O!D\jY$^u(HjRM +<$jd)MrFOjY\7lOa=-Il\GY/jCAQf-bq;C]'Rb8L8&Zm6U*tmo;;P8?;=o#UemPcOZ^4A;,:`"V#+#q= +m;W1*+_p)Kd-mLA+Uttb+j;kMUnhEYXN&n<:LbA16hNUK)@X]S(ZsM`V.WgCgGU(mkZ`(m_6(;U=Cmn< +OuE`uK_I53pN1n!+XG6;+)nd9rP8-n[c+MF^p(nN97&M[h-*Jt7??&t(W?hi;Op8Ih,FnoAS7^di[cV# +TBsL@p_(&B+!!@hgp8TlgE0T!rhmYPJb_H,3-eXY4Gk_<3&p$DmhR#f78`\Rb"'E!MP;MV:/TkI6rETR +.`f]uL%di6kib0Lb"(gAq=@,P(hL?*caa_R3Qg[[[JY7%1EZ%!N8UK?V1Pa9A4'1I0ph30Fc.tVDf)2= +`DB_L@Lql<$28[t1-!pXHPEolPPb=)^'n*b,*O(jmI6Oo]33R)af/CDbTbL:8j,N>)H,QP8f(%c-@M?2 +O3?1XkJbsIm+Z4P+\`YKXL +d#oJ5/1L5Y$VAIm$dPLqqs;e&a=It:2U$]KT4NS2S5GjTO&R-q9W5Ma%U13GZPF*-"!*hFFh+l[_GnM!XgHj)2s;[_XQ<"RA0 +#28%tN\&#r'*RT`-d4hmH^-WXe:KV4]?cd7;;q^Z?G3eO=i[4V4q@[:EScj?Z0_D!7i^E=$8o]30%8DQ +lt55&H;uWP#]-E^DP%\-k-`DmPN$+TIJN#4!3Asg_4ag[oU.$("&u=PATNE6;bZ5cU7R9X-[,IcCCWBp +p(?`UTAT5**dc3T]pm!pX^5@( +6/ldO58nD3NkCL4EVRCY0d2Dl^PW@IJeLAMI=]%KqPBD%XKI0H^_\<^#(m^h&)@YldXE:3ZYF4t;KOTLE +ciDRS'(\HJbf%c/M=@O$S^;[HM&P0YEn6PMm;'_&F<3V9]0P;D@N9VXO73"9i9g:3j7[3MkP,#T=lOgh +U+#k=q5>-!;%uIH.E\-;.#QkO7ph,q,-3$WjIG^q)O4riKaVm(68)\UFR4RiA6.JM32H=YfXI6!"4C[h@4.<%G8+(]lCtXd:qkXD[IbR&% +o;1?3)E/0ApWI^R[BDF"pD<_@K-t'Q\$X<8OCuPs6r=YH_9,9e.#O`IMG@%*<('UUDK=5e6"(F)"Aa[= +'`uDN+]h&1N4IFukDT6!(?cpb,2**ubR92="2l3g6g/D@LZckm_f-dO*?0S\WHe`t)j5Itb-F9Z!C:AA +TPX1V+dj>r!aUl4"u$;XHIp_2X[UJuR]Jh\0*Xa/\F->NE^QGSF3Z1bfmRn!c[=R?NA$Ut]^1d+mP2Fs +ePVm!n^2ddaW!'tD$>ucp2oM8YG17Znn#HNjR6mT-8R$_Uo^3*T=H%l=o(+EMgB0jDt?kKAu:_/4SijB +s+Ve?,Dr3$jeH9!78XafV^QI5U*t=`3HppAOalpEe)6gMLW"PI#S*YM'P*f&'&%rbMR\,k5hEn'H]boqP] +RFr\_l-ii,2r((LJ?oW&K^2^?`d$1O%cBa!h/f(S?ZJ>qi+4dReFeI$X7?%[qtBnB/o.>f5[iN+mFd]+ +3NV,NSqSrqqnS#Qp1k3FKIQ]PgH<$]I/41(O.n'!3gGb`;%uGr'V1u2WJI;4XX-$n0uDbX4@HSI^S7Fg7Tm6nGc;L!o9YPK0GtN9:iP\(@U[#r1E[:VqrYqN5,Zo0P3/%i*jHk)@%l\34WuB;Mdk2BTA9\7=MS7:3Jd?JBsVPQE-$m-u_/mJA7W +MPB=X;a)[#;%uGrFGfXd,)W,((4cdPT]bb),64e-Fe0h6IAa2NS?PCo]I*CG\MY.`Rba_C3bg0B]`l4e +'"dNc`Qj@MlOn>odZYrh*;H/>L`RtV>T0>`fjV:-.hA@7S3WBdNhp)t&#mbCI^>=[h&lHSbD9RG0#h(- +T$VL%SRLc)PL15MNMjI%,-71'/C2GnOFX:@Vf9C4H=bIG.e<@Mr[imGh*Jb8Ep'"Q;rd96-Ps\p2L%%S +r_ZfDX:TP$PihLXSSd5eX"c'R+h98oT9La]U+]F?W#.s#'LgCub+"8:MV_M_dhSH7VmUD80!&&Bas6n5 +:W2m7r4-4G426uK>/I8E`^;XC/KSRn;t!"hP>$4:;j,D)#4Fg&M\B#HVT +0_*!sh1o6al\n^4kjciZo4LTF,T/cS3VPrMp\'ORJ(8R5AQMMPel_Uh%K20?%/e=SY(p(4Tk\"-D][V\ +LL1_YQM[G"8A=^Z[tA$+^j?asn!bOl="gmbNaYlHZ6u\gKbrBJ?H_k%OrXH)&ZoHA^kV_kR7C]p+-Xkq_L0jTLW)%kNndBs1o_XSn6l5 +J(.D@QJs!@,'"EMOZg(&hg.*>MD&RX)R&E!RY.2Pbggtj"WSOK]CV>268FDm/O9r>Xe@-$R>`L:hTP?E +*j5NS:Nu=@#"i7rSI7Z'It0o.No'K"'6ij?^`I(CPW$`%f[F/io''2;6'q$bppSJq(E^Tkn%<4Zo>TJ1 +A8Tp9j-/(9%J[98\>(I0^/X3h@MD7.'LeoJD^qJ0H3Xo$&h%f"Q2eg

Pf8c+67Im,[-glqmbd2a+n! +"[-Sq&>Mt2"XMR`/g<_3(Wp].F:bJZVX@9:1Hu@*]mW>d(W$d"0/TP`AT'AHUs[4RLN=O +lO]N@fel%iZH$&s"L*(oVMjtWJ"aJVH\TFRqV/]\,oiQhfCE*@9-+-nTfJ*43RTM+V#fLK=K[Du:I&0o.k`u9p'>6K +9'@`C:Wh`1e'Zq4mADZa-a.m2"HHqs`>8qngDdfl`b@o8bS5U:R!s/^bg-d%q8"Rt(4hhLaSXX1^d?F_ +N94(dD5Y"q0eC?8^8e[.*#l'8F!n?CR&T83f^>JH$HatgBqDO(^)jr?*r=]RGqjL9S*4!\NhRru;O*<# +;%uGr'V1u2WJI;4IIuOiI'>]jC'ea#icN,2qkZGQTtITG,C9HPE^Y*CJC&W>1#d@;9u\hr![%ZgHAo)# +G'H=q*&U4`fa2hYYUFSXaHrO.]f_pYo\9b\D;o`91%'ehVXdpb^oNUcXQKFuiHDgghKu7H/j&X#4slNk +ZEnWTN$7&_np\$1EMbN)Y\/Gr$XWs52CW!1MS:e+ULFp+;%uHs-uUT0.!dhc+IJn].?NI"OZRS[]?/X/fJ">tBsTm>TA/7u +o\JAEg?.e@QHWcF8]SK?,61USN7Y`qS&Zc>ZoTB*>&Y!&03\WNI4%*C^p=Sja7r%QCDhAcpL7>8M]#lK +l3JsUH\;KJbPN3Fo4N8>K6+H@_.[==-;rKIs"]RLcjL_7+>[lS/'^3-1K9-7Y,Sh4;I;4qX-ooE\eCYQ +hl]>-*B:gXnF->C7$ld@mnNhm/9T9ok?fi@m*ij:07DTO?b2cg`I3fA./NM!O,?dK78XbiU:dI]U?F`t +FM5EHZ!%@KP81ju8%ST)*)P"P^B=[0J\nt=o--Pbr$E%@L8p*aNcJ;]!N1(JV:W7fXe3NNI$phk\%B$H;[?Yq/6"?2P%>Sd&hYHZk.OLr?]q1[gufLYfj)%)`iq-^C/htgjS"r]c1X. +=jMPg,MMKG4.T>H2A)Z3MS<9UULFp+;%uHs-uUT0.!fM@hUl7Q7r%W#G#h;:DL-CS9MtcZ4je!i^s?&j_/d$/LG40BEEjX((1'K,>UWsYQ<3V9Z#)XiQn*_Z0\9T +=mL$ieP\.K/pmH8d1Tn:Hn%.Aqnm,u`_$>+B!pC7ofQ4g+dkjug"Gh/W@?S.f!#Bm'+*+?/D%a^5//c# +.Q:c4b,:@T=OK^m/D^6:=J#4snLq>Oi\rCTeFDnQ]VLONZ@Uo]L_4ph^q$]%7m[*&u`,3"h +)(=r8=kqAK7Z!bnNSj37^'7oVY7sE&oYi=&'r*17U*r&kGuG;Dd>)CKPoKk"H[b;4nAGjP*-i%N,9T!?gCkqk>jMa+d@-)JRL,b_ +8.+o?@'Ft@(hs5;,>l7^W&6FMQeai"N3h\Ni26a&?ZrMCS!cPD7Y\89mV!$Z*dP"o5RLP8n#tL(]jG@C +T]JZO?@;`'^?Y35ZXDsSh'Tl6I"S1uduTsBWcNMLj'Qs4auK:8p2OEn(EuriVi4:`7F;pNHrQ'!.#Ob_ +']i%X'La)i_5.HK0)n\P3'^n>X?AsIKgk_@aKBc'LIoS5da/8*=sEqPO9EnPoF%*neaHe +FAfeTmC$jB+6Egkc_NpQ?Spn1m"2s"?93WgeJ5J5$8&0.:OC&G][38.m<7/1MZi5.5g-(kP'/%kR&`)F +]$SEt[bsb`k\(n:pG27TT'\dG^qu^hQ!\4X%H3so?'j<^F%`%8QcbtWcbhd&ab8+7qn5*=P8H_c'M8,!(e%:97FFlO#:1G27sOU,P>WMEPZ#8:*_X6JO0T*SYU-T*K\i1NfcbqoWFN:(l=(o[r.kC+6*X@1 +[=i&F+MCl^Zhq+X:*"/6b2VosCdY@:^@tTPXNe[*MSYDbu.T.]b$diU&B5Ud)V-[ +0M5n2"/TGmp\TEq@I?'^=jKT^Z.kN[F1ck+qu&_6Hh'%e=]7ht$,VK5O*u:i(;B0a%#^.?.-erF`@-V< +.#LbshGcm?oPVN>lVEE9%.0(/Tb[L5>aojBL0Z@_ftEUREt&Ej:O5)a*.GR)R_F.Fn`8*NSVKUXdN,A`)DGO0_44e)B=i:??mg\um`p]A2$37>?D\ +_E%%!H^9Dq8%F,k/6UR(d.05'W%h'ig%CVo/-.#QkOq5>-!;%uIH.E\-;.#QkU`HfYuh-f"e'f,R%`U?iKJ:+'/UtJF(c\pJJ$bQ*eJ%$n\*_$&l=,`k%HC=>$0oD\R +MP=%62\f1(]pf?8"=NKDV#GOTk!-a,0=uEH3%8`JO<'b)c\62Ne_t;%GO]&Gd8NMbFZs/fVk-HHY/@28-UXu[QT2"\@@-aho&l, +Fqf>W6V)aO5#AfteHo[*E,U_`O/a>3fp;q=BfECTFPCpF2djB;aNO)`p*VfHlQ:hoH_,Dk&9C>\]QZIu +Uue$c\[(abZb3PXq]4tV;@]rhQ//Y#;>L)[q_a:#F%9(A4f7dI0oD\RMP=%62\f1(]pk&1Sq25`$g.r, +6Q<5Vk"NnMfDO%DR=NiW[Gn#fSZBDd@LWW+bq$58-e1uJ!P`O0m6jnr&U[c.FQ[JCf*1_1Kg[4?4%uLZ +*gcqVA4$Ai=[EjZr7)(>9^)Up3Ct;gn1ltl*XO/l;/tDj14ZsMlZ'13M;ecSll96V\>4W4EsAIU*8!"H +Y%"c8-,R3a'^_SE1j'b&+QOBjcc`!RqJ?g0FCa$9`,OiThE,8eX&WOY'>7^"@/E!Qgb7ERXmL*PrGTk@ +F(!lPHgZ:u78`]Kb"'E!MP;MV:/TkI6rETJd[01\L_Z"r'+VWi(V!2F0#[`VF#q'*Qm=^O9T +@^F]iec(R`414D$Y5h%Ql0prM0\m-3)cZqWE5k2Jd6T:LehUX!Bb`=f#(%K!Y6oL(![jPT@X]rE>qBKZ +f38s2/5B]9`?7solTF#;Tg6mj?ZJo)]feTlXt7[R"`te]mH?J'DCY'IjTn]?Hu'Q^;nd.rf;C:.Z9,kT +fIPW+0V&(RY:*Qm]NutIgtD\chgou0+le&aMVn$j;%uIn.j#M$.#O`I3^n\$8#K'+'e +T%:_W7p(tIK`mI`s;"lLAmqMp*/?A>MR@/\[tbG9+@S91'kKL4Ic@SmKe'b7ubB1J2el^Y?,e#K,$ +RtYcFG;aGnbJ,WZm#u\$S)A1-c;9+ZQT]Kos)tY:h_YYsBd*211\G"UR'@#B05^2?DRGXiQZ)\@am1@5 +[QE5N@-:kjd.ld!jX\kk@8?W>&OfQ=](/]QMP;MVU/R:8'i>[Y^H?,e=hL[QhZJt2BL1e]R*J6nM3[+H +eZ^h&5#`H)O[e2',cBHfX'$gqdFU#AB<=?A$;'F"tYJF;W,!8m0?@CN&3W+'g4XPMa +[F0rh>3[SDpA/bT&7`,<#9<*L'n=^5XiXJr&BsJ!jBV=g;gI'T.U=8)RQ4ZVPG3Dm9#"r[ZpL\fI<"H; +G'&ZR;)sB.qFUO4#Lg$sTJ!R'kM4nO]d(E!+)Pq=!rl-*s*C!VCI3BB.#QkVq5>-!;%uIH.E\-;.#L2V +Eu4Jn_uOc?&1a$0i8&O5eW4g1.@>+<(=HW'3NZ4PP+5;c\gK#P='A&!4$4m?UR5Y[*Me%bY8=WWOPM;p +];*puhI,NjhMaIE??QsnmV*_RVnbf`/I^X?$iFNKU#]1;fPmIUp"L[@N%gj[eP[r)CmPl5V1>3L5%P1G +;n/Z2#P4+$%oMl1&ff;lradJ?S>X`uq*Q-NGe?gi:]KXWSF1W;q4V_\piMaIZeV[H>JBRF%$)rd0(5ZG +BM%u?'Le(^HrQ'!.#Ob_']i%X'La+?+bD=!boqN#cHd`R<$6/UcMhEEgrc&^V2$V&d)aWUB1`:X]H0?p +DQBVl6:Z``4gN]F`6i$cJL9'f?.KKYHf&s.C!7P'BudcdTq6?uN=g_`SkKM@:fo1a168#cYr"\L2f'@# +r]4"3AJ"[r2*o&"cf47kbKoS&c>;$<3_o/MhJY8O:TFAPAH-D[*6HXL?6lnFl5?k`UU;Cacmere*dB][ +o4J74o.uT2f<,@Pht*ru>4mHZpS\;^LVWC-MP@ZP;)*s&.#O`tPW'=S'RcVWeg/u][ +eEVu5lmu>@?k?eJYmgf3\PO0iFcUXaqn69J\\)P75UUXan7igcgRcnh;rOuFO*JMj1<9PNEDKt+qK>,2 +l>2IhdoUo[CH_I;aO\B#Ws[rZ7\bWNE3g6k[;Q)MY*dn=U%On`kDqJ>++9t0&^XAh4eV@C0oD\RMP=%6 +2\f1(ICLUA(EJVY\XabD3f3/"\\")]^e3b;:1]>NHfBN]bV*-pL$uSU.DLg(cXGb_`YmB1%B:5U-El8YHJ`jjD:o`e^B2O:g#,?a/an>;7f'g23[%!)I1?H]f\+r +I>-ugV:m7fdD#VWbO:#.:=m1RAN:(p)-XaZo4O]lTedRI2[J4U*oYc5QM7F62.^BdS^5XZqoYmc]dC9W ++5XFSMP@8$W(iI"pJtIK#;9!!MJ>s-?m)6DlO5t[0Z:`&gUW^WN5L_AB.!-L_ +]!VA?DdHRq(kD9_??M,UeQ^=^JFp"r.204d4[;ABg&9R@l#p][^O>tK:KB$P2"bOU?EWbJjZ3Bs>H-Kf +d.M9dk00902i$]iDu"Q^iXccJ@IIu)!]bJ.k@H^FQ88S>'L`P/HrQ'!.#Ob_']i%X'L`P,mcPQR^e.@k +1$+:"3H+Q.g/?G%E'M3j$WS_7lgGgs=(Efj-H4sc1TGX.f;l,*&C2S?]@YPR0S"M%Dl";CpZ6*BjAucH +IZ4<8A9Yg[bO]UOS^0JQ&_ZlD4)L:+=V$(2!5&%aI#G1h.)kn=Wd;\lgY4ZFfIf-2!II&_RN0e+bWO(F=2aplG8,(E:H`\C.>s,t# +iQk@84eV@C0oD\RMP=%62\f1(I>Gr[/l0%^pJ/ZfSnG^_U7aJgFaghlKHnF%l.GI#S(\?Y?p738S^/15RPJA')N$s +)0^(EU:srh0__DJ*b@g`_X<=SK+(0@c%R2C;I3!aN-Br%'B=N8!-:ZVn!&9D]^^D&4t;9HSnsT=MP>l( +4t9$!'Lbl@MXmVgMPBjss82ip5>X=PZ\\+%+c[Lja5=/_ALDr&juNu(IUKq;OD_0PVkW\DHP2ois2q`2 +_,-0YDB:]%E8CBo%ph>)'dAY,7\Oos1QKTo?d`]hmHR4cIkP)-]_OWnF5QJ.Z'(o=C&ZCE_A5M'2%Z2E`75$["IJGmnfHS +IYaHrl-gE26`VD9k,V;=Da^2[FEY)RgrQ?MH=+7Y^EcX,F^J6m$,\Ib*Psb9KJR'G]`)@MD7. +'LeoJD^qJ0q@F+2P24`i_b*M+*]m1>8'XR4Q3G_Le1a#>0N+R158-"+"L">hJFRM9>n5NXd5daqo!@@N +pM%6>'b+\88\aq&!;l_Ye^Idt +6Bf<6Ti:]\eOA.c^C/nEY'V*7J$g-#GA^Cp7F=ikULFp+;%uHs-uUT0./G@:4i$AiXc+5(WnJI6O+Wnb +=.GB?U>2gORKKol[$GK[j`1@:@EZVs=q2K`gE-$!(ks`?E;k5FXI+S'-?L%o0q>\VCW;7Jf?[bn%uBUL +Q[K!cjn/+W8a'uZn^:V8BbTV/=1ip=B>qtMYj7mn_56,:@,%1<3F-%j`BqXoGlZ16&u(LYl0-#k@.,2o +>T?f83d`)6mI_e(f(4%D,^e@q;4R8fBYWp*97rr.-)ZHnle1*09/u+YRUp?;kcT\QG>%s51rl)C3;WGX +]_>Zg;%uIn-m'2!.#O`I3^nT3R$1B*jV^5Zr]B& +I-YSbJ&]S]'Y0UI\>3HpK_(MBS`ligO=?J#=N;-1Ij)h%_:Rc;=rc+q_D#*c#Zr\RfSQqBl_-.,UC@Q: +XuC?&9=2`T(]&TB+('''3ToI!_0VYP56%DJrf"=9?/fkX(.D(W=$A*';%uGrFGfXd,)W**<0)7;kKt_u +H#d]>"PrVu?K\-kEU#U.*Tgi_NBcIE*EjHGODl6Dh+:elD2&q.3t?Uk%IoeMq/2`LpH\3cg3bVN/E+9[ +(^C"dBJ[aU:OC2DZ8dB8,\B_4W+:4)TW'`G",Q3OI-Wd?b^nRT[ErE=I67P.DmZP5OW1W^=;]9M/"A?d +AM]"c]R74-r?W.m/-i[R*4G<*FP=Co53LJ%624Hpf$eaF:FFT6T"a4!S\sW'4l.Q"VUSt)b``Il6LosmAuC0RH[)uAoujc'=sMts_Lt*DTsl7: +Yoc>t"?-7br@rtko6'/In&5Fgbf`;ccDS?ZimW%W3;e'T;qBXBn`FOtMsD;mIs3RClJ4r"3(N`BnF7[k +q/SEDrfCNL.#Ob0nkh-!U*tnn;j93U;&"GgSqWi\OelHR-cC1Y2Xt>j/a@`X<)H^mU-A)$IWTG_Iqg5Lm?3](:61QZ!b:0I_PlSWSdQ?Zp,L_@sXd28.Ni +,i\7K/@M"rHDId"pZ]7!j+h/_9]UjHQ@!_XB=oem7`4`:m]:TCl`]R^r9+Bf.0!`/2f[Ut?+Nu*2p,%U +X>XY#ib$TqhRo3RXnWJ&>b((<+3EDrU?L!hO,?dK78XbiU:dI]U?E221Es4\/&t9"j1AO$dk*;]ma!FB +l&nhH+P=,h9.T0iZ=Fd2H;oK84qsSnbmA*@6e;gE!R$Mh8_t$'?M@8.SHiDYpDBAV-cC#,@n>HqNfBsj +#Hca/M0*^@aUd<4chH@)ou1u:b.bYY_.Vh_o8ZMK`T"U:7n/iO%G)"='_rDe[Sfk*\@+75jY1eR5!o;VlZ=`]rHj15:1lo7t"d#\?\e,=j22*LbQ)\]^p0Vs0D"=bp?eN-+*'m +i4Q'XST)6=WKccA2A>(5>YFC*[D`'BTWH90S"siUDq4Q,M4uDE*9Er)'Lbk57AhPP.\\>;*6GNJ_4/WU +)qdg7O:7Hiif:>P&;CCU;\_Xb9`iuWEH1gCP83kVMT`IKH$#Y7_I9A+NX!P-$S^3(Z7b0D(;0EA)rcbOX::mQ_\ +<\)q&<]P5-G%^14r2bMoJhC/Sh1M@TmP8cU);OegkCa,:HaLsDc.C:+,3XD5L;nLA>6T\OulEE-!;%uIH.E\-;.#K'? +Wa7Vs?]H+!Pd,\gQhR2?&2qT?&^%dNRPS.qGg!KlR>\Z$f^[Q)c#s"J5uQe9:7S9#@9HgunW;Uk3@t(Y +UGB8jpa"0j%%',B-g]i(!Oe4AoNI=faMk[c[RXQ*H]eRVeNTMVV/>)aS)2YH]>Y*8 +INVekeY:MTE2X+9`i*ljmHp`_d2[`-n;eJ"KFje +'Rd(R;)*s&.#O`tPW'=S'KrP95?hEoT):]7Na6,^a&ro/Z\ +P`Al3E1G`T$qr99\bNsg*d'.;lu6Q$i!<%5[^o\J0jjYA(#K=Dg1t0?U:fjTp8>SdANBe8h%mR+#(PfM +l8kBAGt5;DS2?+tkei[HMGY'V;&#Rq]W$^]k`H%4>g+6La&'::@:+^K.q]S^Xi%rV"lt!$K9P[GN[n@P +Lm6FJpgGg2GV`r?(m-DI#Jo^c\fAAip^XMap&9&./C:!&lS6&k2?!C9#&/Cl#5\Q@X]Gm6.A[b@eUK"H +N3.:*9,WWd(n.(X%X*rWCuQotlNd>lXOKUn>#HU7X6Z(^(jnMN'l#W-04$*U019<)pH-+Q7gQjX8j&]$5]sL*/GPIer`g$ZremRK-SJU +.'FP$FS,-LL$\?*>$(t3IU;eLkH;K+`O]Nol1(e#gWO:X23*;(_(_@HaS*Ml-=ipce>3-1c_ +"WG!O)N[$kGIhmWXkm7G_dTn?KO&P2Y:*KIZa8b)a7rJ!/=lR=$"rbc?OcI,2H1[M!lt@2R;>#M6HFRq +;'#/bRDhup2GhQC_7^oq +gNmt`Zf(Fe,r.]r'2]H4=3=%P.#O`IMG@%*<('UU#_JH&H9F;e7d+08XH5.j09teakn&(mEW"6+I+NGF +"=o5g(5uLsYHBr<L-:BDt,387b"[+t$> +%>>;n\Wa=O2udbHWBV4gd6fB*'r*17U*r&kGuG;Dd3GSl6cGCP5]j8ocG9uA[m7]Wk#-^?Q`lTQ;?_fn +X?]rC>&PuE\];Vcc$=1:)@se!OBBs0eUC[BgtUaacO>Ci2Cg0,-gmd!ER?(cTIK-Xl0Bp +V^TOWFQV!UO14eS`R'A;fme0sh1)JTJTBLf&\r%1.8O75r-:e"E\ZI#f`>7"57F+&b$LO425;0-Fr\['aJA](DL6?6D[FN+>lrd:N"(e" +%W/mUHO]qWJR1;XD,.^UA)`CF&5>'/mbuLTDVRWW'V2(J +@G1;#J5dV5QL]VY?sh>mS+e_/'gd@JXNZ%"c]0&bZ"k"A;07]d;)*s&.#O`tPW'=S'KqJ:*4Za.m(Y#Q +&4bkMrTlff*Y@`2b_[k2:hE@?Y]'M`R'u?Fda`qdnOmpWm*Y>Gh]\LP_Q&"b0Y+""P]UTJg`P??"mTuPM858VUW("8o`:-A;!e`, +'$_hUh_I^(ng*MBf*$K>hTbtW`VmdRR60VB94ULh'Fg=gMGY'V;&#Rq]W$^]kb0j'6bWQe3%5j`BENW& +R6p!rQBeg6[:;84.)@%ccR"/Fo4RM1R(@C;qk"7F//7U[#kr-HGb>^(O_5c%5-W4*KAX__.0Rnki.bNt +q(n!%*Lc0YS;c"&OZq8bMqQ"?A[\KZTP%O!6dO4`p.u7./!G)6lXAHKT7&S?qRp-PQdD,YQO(6dMsY_Q +0-g+q4mT8#:\]=B]4k/jn7HIF2[E0>U*r&kq5>-!;%uIH.E\-;.#K'?`IV9Mn]Mt:18=9@ofD@R1TF-o +`$TgU(CMYTNb+:1m6/SNCt;4%R&iXE]CfTI$Qe=ObK5L>@Pn"FS4Id9XNZO3:PO>ZT_'#Ulc,=#j*;L:HGl98J-PN0'1o&b#+ +qpkN=_pRKkP]dt;#`^TJ(#[=5CZ!^ER3OlU/W8O"Br\[N[T2-26#i]*HdMr$&[>fCX!S':Tiq=e$X^&mIl +m3t:j8&!^jNM7hIQL[m-MP;MVU5=?tlX0\S2nuodaLnL.U?H#c\=?J-; +`YgIRdMV/&9CnhQ_$)\B"*PMuH0""**]]#K[hGbSni?RLJ.#K'Hq5>-!;%uGrdJs-js8;S/s7SBi +')q*Uroe;#p2Butci3895PW&*J,$ogrplD>=63.F'L`P8cA)eB)ZGV-=hu2@RukTg0A!C`"b8/?>rb]# +6%#CoPQ#(fBXI\/aiAaE0?Lq+%Ib.<-Tr6qX/?q"Ral[-/DNbK+<$l] +mZB/lNd6]*h];:'9XiK;#9E09&)c>`H:eI_;5d+o>Mf(BRj,u3>fC2`FB[S=d&g8l36POGrj$14)c1t4 +q8lFPAq.2.1gf#+n'(N0NK[(l4!3fK]Or%T.#RFo4t9$!'LbkuoR"@IHf+YEGCK4c?homMpq[KTs8DC^ +?BmGa;&"Ec$!RjSo6$k89FZb"29:i1!XK6cSdCXDAl(`:H+BK5l-+aR,^ttCh'9d;OELSg2rhsd>Fq>q +Cqn-U!b+hk8!+^O[mQCV>34+p59*A6U03@M=idU]5\SRP81Ab6kco:ooYM7=ib+#EHI0#=cGMII+$Gpp +Y,.0JAHA>5r_/Wcf@a+brOW'D]2X1*o@r=n^.8C&:@!u6G:t1.cX+X"Y@8; +TAk0eK_E$[HJ>dT^!pFsI\di%2pF-i!O&7pB^QRYHGA:C(27tXRo;7/cYPMa8[UTShnu(].!eSKULFp+ +;%uH?rT[J!qVsg>j)qp'E"o9Xt&Qh,k$VBUnl:TC2Rj,u4V<8%5rmV6q'[dE_p +9:gYqR>%;*rUg^(nM+K3GfdOph9PUNFRhbZiSO&b&=c6.oFp5+?)B't4\ln;q+c!VP!&G(cY1,Ok]/ht +`.q)$d@K>bZ=V6_+aUqT=hTL(B\rq+11kl6$cZdc%t:tHNTX9.TCGA9TuIN.jXtRgD,$>jY_A-'BK\lI."#OWk5H1]kW\sDY!l4[Pq*pYUF;"o-osfs +rpTmdUEBHuS$rk,p2BtSFA1Oj6rET\P#(Y?_hPnDSqQ%d(-S5K:5B/iY1(SW2hc.&$(Dr5AQJ[>hU4_:FaV\&#T!/Q)EI^WF7`amS(eTu +o@%RH6rESV.3B;".#O`I\jq8A2h1GDgP.rkdm#uV+E&a(.!f!4fB(=*)PWg$&?Y^`$i:)>MtPo=gp/%W#R_lUHWe&,U7,h-q%]]cXH*G$NdRY9#2B?U5/-(_()/pFrLWo2#SU>!Ze<_b +YOs^e1+qM2AJR,)9_<)!17eQlUm&FM>94[fZD5Omd&A"f6LXB"h4S,moaI$+hP%#f#OfA:5J/JXc;UB!Nd/5Ic$fd(p]>.I +gc:kM&nC#jKXKI1UKj5s#k;6H6P2ur^D%I5WZE(8AS^J!j=1raN"91FeXBJ/e-s%ACN6ZY0c\""h#o2? +Z6N;"TSH;AZ9DF)fXB+s\EAalK+.33QKJ&dT5eKkMP@:Kq5>-!;%uH]ldroNoln.ASKIgo8*0PrpkO@o +k&&#.r5kQN]eF@SU*t=i3O!g1ORFG-)(t*Od=_oZ]A8\UJAR0m>&6f5YHUN11[\1T?9u3"SQJdD"?k/a +;'+i^P^D>[f]>0FURZ_BcL,Z1K.YH>f7#[fI"=,5-ak">45:WSY$J4OotrSDGM6++kOHNp]`qO%H6!48 +G(Z*ZDnZ4GjT?TNqdmI1*u1P!MP;LKqYf=OrGUO9r8$9/*RFZPs8MKUr6FbYoAm[abJ,%1.W6f2.!eu-^?UgCSk)rpS8an; +RkQT#WM_%MpuL^oa*O,mjVfNC@>#R*pL-2XkI*%k8.#K'MF/jlg;[?$WMhM8s)5/<*$r4o.9goabO/ueWSj/lSfJnX[FncRm1.P"L3>J*iaAQFu!k:AD*I!eR[i[@pC=@^]\b +b>;l^\#)_%5_D3)7d1[)j.D5E+p?=,cE&O*Ckc,/\bbs_,b@._*$lYJX^cPCY<[;m=SEs(Z@52`o`YJ* +T1=In6ZL((g>26dPg5K9pC[=)Nqs-108DRKk:V4A^-kg4SYCL2N1q_XU?G/Jq4I]_:]L&_^\Gc$Ie0&d +gcRQ7.\\>;E#"H(ZQ@rIlf=trM*7qMZ1$1dCTAC:Ufk +/GpPX;=sk18&Zm6U*tmo;;P8?;=sXP5cso*h3U[jD)oB`RZ<13SfNE&LQK1onE8e0,qZrC$:H>(Gd<\[ +W#RupS8[XRS8d;"(Co1X+2)*\ME7C--mS@]ipdE+UO[dUU23ViXTuA=k)54[6@-hbolYC3$acL9_>*iZ +6bue4PTCS^o^sHEXu#:c=IgnZ$)_?%AG@0r@G6Gh#*5MkNn+_eVXXD*@(*dfd_h]3.sW2e@<@9l^.S]sch5Dm>BrP^:)-O8b:r-L;i1s-G4WcVYB> +^@G,UMP;MVU/R:8'i>Zn$AnOPT[5A*Tc[2u=\m?loFFtl\?1[) +jBurq"]o();MH5#b`SG\(]Q9+)nXAlSeR2K;]\O#5!!_1h_2s0@iAtgRJ4"?YQXhl=YTCQGDED_B8uu) +%]G^g6JP]qXeK";aPJmq6oZ1,_h9kun +SVkVZ$Ld8oAT:HnG:2dK5?\]WqZe/bE3.%KA"`Gec@nnZMnPY1'oR*ft2Qqa3!`eR8%@hA"']ncHqb"P= +2a,SZO2O4P;=n"UO,?dK78XbiU:dI]U?HYi=NjoQJO8[F1@l&C(TQ'4"+^(Eb$k]pj(DpSpj%mYRcJB$ +]EU\:=GBojZf'G@G2m@h=p9JWS)q_Js-`2!Pf++M%[.lmc;l"3B&?d\\C[7EA=JfL=Kf'Ifc2GNb=7+; +7;("3i9jS-Qsm"IFsVtA(>F%tm@+TVg]GLcp>^#@6T+XhmA0h7Q/ObD:AqNc_>Tne_Ikc?L0q$$RsN-5 +8&)XM0-:g^*^rru!p-1d'Lbk57AhPP.\\?fFRi,]TcJH8^YGbj:`+H%_-OND$e%+T_m^%//nX5iY>&&4 +fK#EFfNCU>,]INf##!RZ!O^rRYi4\JP4,32;$D;i@l]TsCs56SoQhO=r2+cdJ&^(-%pr_oRbTG/)7lcR +BB#6u15dqe-'4S&XPe`E7/QP:%u\;l0STH8k/jUA(BEsc2.Fo=V> +]Jn@kq/_>h\B6Z[U:pdeC.NKCrl1*bg8mCgcm:+IVrbU47ficLM\GH:Dhra7h%Y./Un&\E;=*[$';Iu3#$tRmKp\OMtYUd,F:RR +GIaj_L_5sel@k/lX80U!UD$?aU2O=eNBqpECG-INi;EDm$:b/^Uq5O&J.5eYt55tYnrd"%GI/PGO;R61_h$[d;Q28K1-WO-uVA7Nc)md1rM +*d%t)k.Xsk*>"sLrMot:"[)V2>==1Wq0C^nB]f6gkbdt+D>9Hn^Vn;6^@h>`U*r&kq5>-!;%uIH.E\-; +.#P_=ocT/!p2os$A9A!niZ'1qUHsJc4abPth1]>.Eq)12j%]2uEJ5(S8C$.[F')Kt?,uC:L6+jj6cAMK +5&!tV +VO.@C6D!kMP0W#,nRji6$P@,fO]+s]1md.8^-9/aR:W-_hK0.?h88Xj&Zq&O(PnGq.#Lbs4t9$!'Lbl@MXmVgMP;ahDX#(=EDr +N;>9PSf1n_)bSPa*84rIWXXZ*p2C3Jf.qY>mr!]No;S.BEdJZG^4/_ei;?Dt0.[BAep*LoM8cn6W+Y;J +'-'e]2M8R-RF5Z^[H)^j67\.50qm;e!#I^pp=TH\'DTeoFRq:/n[6DX.^M@uY+#UKGT]#;m07(?K[?4; +j`O4a/H8XfZq=cnN.r!mVRUOW1!>!<'#"rHdAKf).Rm8L78\/antmUgU+]*/5Popl>V.Lqs$FWYLC$c5 +/3[,88uPH8)A=Ps#%4LT%`)Oj\6&cRF9+'JdREa7WHJ@nf%d1:$D)TFLCjd`DA\$7@YH"lQg=IhN6M+h +nn,98?cJ_OkT7EDpZUXq0h`*d@'$_=MGY-iXSMEgZ$0%2cn)LYmgc9Z/jg:lYnD`5FgX;3dA66tN+`h" +cRa!!'g/"Pe(UG]eMBd_0)&Z)HsqEZPff;?U9Zj7iQl(Y\38O=R]l40:VE=d5Dl3!>ih_i'Lbk57AhPP +.\\?f_M#2C]pFr'H6$t0R%8B)0BmD%KgDXd:?e6B!oXdBb;5KuC`EEmdce4`6Jj*f^mQJ3Ns!2X@-XTa +:;t&"IQ]"3#GfsS.k)Q-*CW4TdsDH=oZR$94*@+claJk"SbY?a^0F0g\@%^Golpp9TZ-$,m1g%$"c$E9 +G.F=cjt;'fQVd4Anr4XM5XXu7P38oYI3qLDH +H2aQeMG@5:.Rm8L78\/antmUgU+]E`S(_TJd.ca)9X&J#O'((]?/09L#L8YVKaD3USoIR?QMY1r%E80+ +%`59ZiJWFZ'Ai&&gEGagf3\XY*O0'[9.qE4JEY*C$uOPVRFBia>cBC7cT]G:@`WK3#a`8AHQ]Y@U%*[W +Q`q8h[%Y9(+k:J4?bQ^@Ph4u:\r_@e$HdU&94mH*X-e02@a:Qg%b?BNdN7'9EkRshUH+?`VTmGXgj;FN +rG)]#\jq5oL3J2E4ZB5[4MgA(n4(eL;%uH;UjQ.#U*tnnkS3,Q72/0tW]Vd6mcWL6`opsT]tU>?)d(G. +*n9_W*'o45FU@el@Yf/Kbg2;7*N>;VLgdkZF1X&O\![%2r&Z>DkePlFpJ(X7Bb;=+^Hd-@:F$L$IdUp` +n/j(m-,QK$7uZs@@PBm41=!uJIBI#(%#Fds"dsedihG%=HNjakL1trLoCRAt$h%Q02HhojHso0"+nrtu +H%T0kp:)J:quuY.*?n*:%JHJ70$?#n8!nV41!rjA@Q1#0qK0kM`@-V<.#LbshGcm?oJMHO!%5lmWs_sU +_DmXJ9mN6a"T-JV33qk\%Gk9=\RTB9RfD:Tj+f"_PIU$\k@EXdBSlLRE+iU]i`S8K?9;=kXH8&Zm6U*tmo;;P8? +;=mHA#mN=gS@rB+j;@Mr\XCqFda"IJo\`lsk]Z9P8`b8@7(hmDqY-.r`OlY$',"P$f#*[t";SWBTn_Q_ +T&Iu^R0.\^-bUS@HB`$R^%N0)UA$oJd'qAA0u4VJN+89n1eeCRk;g.uHF:*qdQF,(ZbFC=Sa,O_@C'$. +Oo]uE/+!!9O2E?!SMuHFQ33OM%C:Pn]f_f` +9n%V-WW@G:@a8;RYYJ4^M&Kdci/uNFFcS!.Y&faR:smPEIU*2D@/4FdJuS2!cV+TCn0]_&\F#"D(cpTi +S'jGP_tc*+A.i8Ule(n:AbRd_^Td+90$D*!L/<.u&&'dW,Td4`J\k0j91_N&oY1&#J+acP>RS:kSm&PE +pFuY0.qT@&?TKT!E\dMn)iBEcS)KcT!jUXtj&$LZDkVPXN1q_XU?Eo'aei$j"!t;TO$b6QHSYT[^Uo8XHj@PdB7_\S?!rJ +"Dk#kl#MuTK#6`[4nVm9#NcPdh(RUSVDH+g5c&dNP@i"-%I_7Tm%`im"P!DQ3I9^CP.V/$%&W_jJso2b +\jU24QJF88%F(,lYtQdc'?>6`6uElT_IS`&>iX`("rU/RiTfP#B72r%'`#Je@T>:6JqdS#"8iT(X5Y#T +IA>s2?YdRs@GLPE4=3o>7B]QP.Rm8L78\/antmUgU/.e_Vm4V,S'mGJgW;/s?d'p(.WJ%jtFZ#4WVLAp`o3:HT\eIdpUj65Fsbe=E7YWWqeH]>blSc1VnIDCU,L +fIT!cCr<[DcS4D&olgH5X]0a%hJs/'IciGBU*t>Inkh-!U*tnn;j93U;&"FV3EGDr8-I.>TBMmgNls'4 +;E1l5=--Cr`+DI:L;2.Ch<\<)Q)>fW]:J`&f>:aPK-PKN>$`+=X8(A#TF5gIbgB%5L8.0B`>TU2XCFh\ +^*(R,Z\N(p;aIqclS4sAG*>/f2M#cL;#cY$&ukk +hi6V@B.-jUB=M +W@_6j4PqTs_o&6%@s%u'(B,b\CDe,d_(JbaE4,P!6u$sCKq($jX5>e3-K*E[X1 ++EZP`WErMZ:a_YQ__+1TM9JY[rRpE8;+L?W@bJpU^9UG.H9k&m`F^!/g/)[D@\E42GdK/3Ie6,;=DUA'bM)9Oa0c(SlFG$_]@Y_kX*nmT[ +KCth;Ca+=<+jeX@b0p*RI;o$6La^!i19+cN+6+^/D@$N,P"DtIR1.?3:K0S;?mc-G3 +]Gs]Lgd/%Zj8ts?SL;lWmgaaK9e-jh\F`GLa1=@kEU7K7]r>>ho3q_FA[EgV,@-n2;l7/X+k!CZq$Y!h +6]%Aurq7-jNj]Rp.#K'Nq5>-!;%uIH.E\-;.#P_=%EkITJa*eh%a"4eP[!LgT""(4P@FU\F'g4G9$4`U +.s7CP:Z+Bj-Z^#QYZI8tFuqNC%@E);gYoIL7:CB?jPm<7<8hb!Y%nbi%-]>]-4G\D5E_4;"7D3EZUP-= +3h5DVYI`pUk1-1@(e3Cfi)RK.ggR@U$8GbDb%+uVVT,FlN:=.9#n%c;j6cSmp(pha`S&EIEhZ2b9;1QF +/L0(-5^\C[4;l6$OS#7/EPFHbj"FfrhIXHTO4CQ!U6L#8hr*A:VsAAnrAH\446)CDf,:;2MB6$uW#.s# +'LgCub+"8:MS9LA'CV"j3F=6?k43Se8\N3>e/78DD_'rr@XOg%\:jq7dWSiZQ +d);'MicFMa'EINq7IE[/^-[EAnM#%?^/gSK>=;#pN'LMYoBi%CO[lA$n#SV6eG\&!Wh\=W7+3jPIBO!) +s&%h>h'iHl%rKZUJ,Mi6'Kq-?;)*s&.#O`tPW'=S'R_^)B0gb)/Y:2SaR(A^SES!5;(52Ul^j1\8EaS$ +]I?g<06bKU>u3:OlT[HYLHh+rB/`SPrYE!q,HD$W";1-DSq"'"G+BR6IU@d6bPSUF6o;am?X_QQh0QE>"tgKOXNo`__o6q!:8MLTInbJYP

g%j[(qG0"p[Y-IE"k\;ntuJBqI@ +CH=BXX]iu8c]WJ"cBDh[U#-GL#Q+H1NS'eC>*>::I,bJNqf5jlYGNj;ilZ9*QSgeafR45'h??)5;=rP, +O,?dK78XbiU:dI]U?Dsu&\E*F1djnFXFO%UmeiUEfI&0RkEnol&T.f:F=T5AfJ>74NC*j9\Ie7@#Dj#& +FUt75eWq`fILBrap(U^dNJEMB"b8Df%h@L>U_M^c"3f;YX8?R8XFT.*CLA$*CRqW?fbKII`Bu+1dE3$S +&s]PbXF'1mNO+*-C\d<1J\keM!q>L'=lQ".p8hcVZg\jq\l:e&Y1]W?jfS.K?&?;GEeIc^2d3b3\:*e; +e,Il%q")b[S]qd]r-n/\4V+()omMMVdWOAfpTN3tMPA-j4t9$!'Lbl@MXmVgMP;b%6W[fL8B'?:XfZJk +"SCY]((:mjEXW?J/*RD$PkA7)U?Y^($*h01NkK5bCp?M!/1ji%]HWsAcL%9BA-Gm6m`6f,>EU5I5f&QH +;/\8Kg**eDf0[bkaP1$+mnOnnBD8n4[0R]`1Bbn-^YhbZoFYI)B$o15-[m>ne+X4cMh>D>H?]"%mAdB) +h,CF.POZLLK@BKL/(n"$A,f;,I1O3(;9DTi`3U+hq^hMig%SbLb_6o.a&.&8?Z!UYbT4Xi^ij!qZ!XI- +p:4rrMPBgZCj`p!cdK$it +(3_\c:X/B"!Q!a_YjHshD/gQ\Na'>F3KY#Hrfr$dfGp*ZqpOGG_L6NO\_\7_.edR5%/D[Z('r,<1?P6V +)Rf&g'PoN!cX%.oi64bTd6_>0;"JGl-A&LkYL7#6ei9pW2QZR_W-*R9ZsUd>]`$8h;nE4eS_c`6ll-(p +]).U[_"Lq#fn6Ig1V`JqfYR,U)bT_O*psaAD@CHFUH]t3SPMb5%n9FgWKiO%;%uGr'V1u2WJI;4b>sIZ +mHhor^WX%LG;4.iN"LO&4DhF[?liEJh-hgIM/iC_/ORthoBKdB$:tXYrUO-:V1T70iQl6L_'$]P?,joJ +T+:D4VI44#^4>F-h6=,,AF1NQF:.jL>(7iJQFg-$@iWJUa6mro_OL=X=3E)0"AVHLO2[08c)Ua#r?hti +eg7t]`.Mm`L*W*O@lm%2fC?T54ZfC>/tL@UT1ftQgH*,]IC +UK#SpX2o4)*Q.GMc,j==]j,K6oHoh@]^3H`6-rICI9u$1@MD7.'LeoJD^qJ0qVie;@WtZb<)mrC85=-A +Wmbe:([(P6?YmCrmD?1$.Yi/,6_VjnJq[Z2GRa_fm#KZVqY!ls\,PYHa/tAXbHSdhFZ,-7H&4S+gT$AG +WseZC:>>S)H+shFmmi__IInn0*YI#0EPPITFs$Kja0XSnlRRT[,$@4/<+O2CLnT8muUf9)8HGcQ"sIm<,FSdNcH[Sbb5'C!acFI%?E +BsZS0no2+(r(_H^hbUtFWXU^%iQk@8I9u$1@MD7.'LeoJD^qJ0qFX_]@\"hd3B#L&kahl_S?%<$E!\([ +%_JB]_UmF=ED)J3iM9>S!qY]I-)gtf:+nlo^d-<_FKehYKIuL-9'Loth"qG+eo*904-0^*6TFaGBP5FR +U#eFTQQmOFD51q.TemA!$u5O81MFsS."pbkJDAs$XV'2:-JGL-lFNYE6I)j_3s&]h>Tf^=kuN`s#r>B/ +U"Sl2m*Js?+bJ9ah4->Rr=3j2m@4FA3G_g^Z9M^U7i:qIbKj$ZMMQ?lS3jcW +f[FGQ<0"J1'LgCs;EcR";%uGrFGfXd,)W+u7rD:L(0\GMmsKrlN?O_p?j\G``sp'E0FD#5TaK,g+t*^8 +.-`h1:Y3G%`TPokS?Osn.>I!I:T'Y8l#@QQESWE![QSs?k:1#s&,*i[Hi>FjZ^W7Q/A!iF&/G4'<.EYtW\s.);Qkr!p;G:[ +CFg7nb#C,pSNljJMP8g\mp-m0`%Y5@3O_$k3O.E&boOaidmpf!q[W3\cFp^\rcsHs.!e/?ULFp+;%uHs +-uUT0./F;4c:3RjrQFlO_J6lb_VEp#]NDlNoWfJ1/7Tqj%%FVfE-O,hnZig0GMD,;`m!dkgA1>\m=R"! +@7RhV4CfBt%Y%ff3PYTqp2nYed,MBNrNb1XMc\K7ZX[r.WQ(?hJ(VO7%'1Pd226(Aa7\hf&iqVsT9O8d +0+Hk<$feO>k'\8M@Ce)DffMjEoI?S74K/EPbna"+2<_Y1m]4qopU&f[4oD2@pF4:T'ii'?jM!f57Bbt7=+D@c>'CQC=ai-dn7:e.:-3Goqm\X.f(h%[GB/KU +pEk]N5B#.na$'PNM?2HiNb,(&41BRCLN&N9Gb2L^RJefDR;Ia-MroK)WaOe"Vh=VU6%3hn`o563+-=C5,Mf:,lc,i[ +*Rssj%,7:W#FB66=^*7kdcHK_?$`1\HEd"Pa+08=iDc!W6A'D+emdS5">(D]WfrYLi4!M6gs`I%-/n#q +<40gLKeAQ5la?Jf5[$tW?M4ha,L#Jc#pg:6Y#6"aP<+`l8fHUU.CZ^O44g6Gh"f_A/U-`@Un&ospd%25nS7#K?H_s4=riB) +npi7U=#=El\q*XXdLhXF!Y$.JXaB[p[+s=f]lU7D\sNGd&!?]dpp1WVh]mYiK;OJ^.1m+&91EF*O.Z\U +OmmDY]lt^hbH`&=O-#!\TOqI-:R8%dG#IhU(Sn_36.TW)U]]fNjE(&ob!nb7mh>]%9o@e>5?0FS"5sVi +p04hHF84RHZ5tjQ&gf"'Lbk5SYEcrLnZ +]KfF"06j]Q8KATTZ;;No1YBZ_hH3@?EYE9j7!7#DSTQ:TA;SZ^,[GBa8T4fl_=^u,3uf?70-0C>'qAWe +hQn[#K^4NV%"l]B0B8CB`*K/CX6".8XEu2u"7e5Bm'^s^<.fqiSNR[q-TW^L>`lufhS/RX$T71_!:HgB +=9cgL;OFSAEXXW"FAQM0`qrgP#]D0TA8QMn4[8c'amJL_R8FYe&$C:ZN1q_XU?E(id4XTbMeJo3qHkWjAIIklP75R*1rqVfkMWo-(#%%p^.F3Ns: +:og7@JuF\mFUVZ'cC[Dd(pe@-[0dV)6eG86T%Ebt!G88jfL)bgoU&tK?sSo/XF%BI?\)eFLN1J^o.QCj +6ADoZJrX8V(Pk]$L4#9#pZJ0lS5Dl7./^XBATXi]1Lr)DUD=JC_[uX8dC'j+lnmHUN0[[SBQ)YK"sf)# +kQ-s0MGY'V;&#Rq]W$^].-g@+#,!7P:CjPB4Y+l\i0@58J^%Z./9#iiZbXbtOU_d+Pi,+.>pk;%PgXum +6Smn7#mPoY:Db]ik$Nq=>2h!LrW?X\-FrMts4m+V>1U_TWr;+$1.`BBSo)-S=MtU%UpV=M7Y'+%#C\GF +,_65OHh,:amo_=\lom*/(k'(,AHAlu;p@(=8,'T]L@g!+TB--!rLCSI(_]s(CHVLukPDmM)aNcAPb\f( +ok9^G0L*AA#er"H5XYQm=[M5(6hpSJ!K!O!H9gSe@MD7.'LeoJD^qJ0qLWj#pO2SbH>%8+B^j+R[D7;T +;iIm[;TE#G@LL`GL39$-!T]%"KG,It3e[F'=L^LuK.]6:>eWq&^h-8:1F-4"Eq=@GLtuquoNGoU.'h=L +a\6i7kiMMc`;Eg6>o>m.??RM0;Z4gb-6lca.fMHho<;&pr&>slIXX5Y1Y7&314B-q%n#J\%^@$Qqpf$U +>5M@DKKo@O-dG#bDKFf3$GQ3u!aL&bcFESEF^fm*,3MU*tm_U[h8:MP;MVU/R:8'i>ZnWKKob +=@QZ!P#Y`-SsU82'&2KYV_n;B%]o0uH:ftqX=*O!4='oX1Woh,jOCpX:.SgrM'?ifVT9nD'fYon=810" +DC!5DWZQ>*La#4&!uE]!).r3B&IY#!qk"lGdTS;-kDin]_%1&(3S9i"1FlQfBo*c.Zkk-4o.:Gb:JG9# +9/$WEW9:EF%V6gBRN>@3Da:S2q\9G-.'L5RI[S9l52_di!&%@:9UMYS+S0%KgZ:=rRR%ra\u1I-:-iSl +;i4YHA^bS>;uXj+;%u0^nkh-!U*tnn;j93U;&"GXnu1:Z'M%J%_]__K5XC"@::]#DpRNK<3VHq(]pHb& +b"L=OcjrX):gt%bDYftAo,\9L$9[Ut`%2H2!O'C?$o2CYBI\ibNXC8JeJh/;0c3q#n3hui%%g4Z+,R7j +#]?R%<9;S/"J7D2_rRN-,WX>4q=(\%HM[AFeK3=*d).HLi(u?:PN0IcR3nHhgE)YYc3@B__0@M)=^um: +-Y_YfP2g,g6hT1HLZ0#Zs0qK+B@K\;Bsn[k:$uWHdHh/&^Vsc4o[k_b-AnP]$WB5=7Ssjg;07]dVBUnl +03C@G[aa>!7F\be8iALX"7\LdU?'I[4$hR&Zl)]>LXX57=V3p#QpQ`&Q33?H\\p8],0!2,E9H?YE:[BE +n[\\Qo+iIFX+^toH$e?L0t-BdKp\^Ab6k\%qWE<50WZ*HNSH(3R7q5m0B99>#W'//Aa1\BJ=7g'FW6FL0$J+"FI^qQa79jiDJ@!e^jmf?4?=hIQ>l# +Za!j=c`OuENq&b/-02`2+X#JFm7gNm3o7c3SS9ac#Jo?6ag^U$GeT'XeG'np*eR%_9BcKc`\#c'fGA0m +\1>9E^L<8LS,Ct"0,O^sT57*GCCX_[V?F[/:`%a^C/N0$s$M;iZP]a8YDdr4@*N=+Zn)j.*g06Donkqq!?\Q +:gtHKE@V63Vk]8JI8n%5pi:qa3WQt0R)'Lt2t$1$6&'[%c`sf3HL?/5B(`^Dr6iAB>7#URrFN&I+1gg; +ecR,/GM3WG>*jY?C@:_5X1Zd%=X_gI?+'smi*@Ccr3Brl7.g+k[<-)"9XZjLD#_]dC\gUFr4ljh/QkR% +)k1F-GjdI$+js4%I7_RO`@-V<.#LbshGcm?oOY'>41k<-\dRaPp^?,bj$(mI)utl:(2-qYS%F'YQKLAT +0*KGmqS-OgJlpX,jRX2cW"=qd4%i=,KK["=SEL>)Wn$N7n2U,WRP$$^E)`1 +3;Y!Y"3dnXQ8n40./;VB$?XSah#Y6E_#1J`]TL)^*neCf?cdn[U?G6J4t9$!'Lbl@MXmVgMP;b18"S$: +716UE@P6hU4jBY(0B^bmO1]5b#)r)j"qj6=`d#hS,DL0k= +%@E1bTbb#8QrNU6l@]5+:g)5QSNO)V=E(Mf@_LQHj[=+ClSB<\s0O.H]0Eq.I)i8Hcb,dHMT`EV)#L@? +72m'QE%sWrMj4dBS"D.$aNaheP6;V=Tt$p4<#iGd$Q#lsRjhTu#jZNnEq$:ai9OC5fR;diR/G0QP(i>b +H$HBUFi@%VHQ\1&H6.ZDg>b%.LZ^$ +!I=ab@^aBRVk#(p[Gr+u4E$Ni>E$C-DO923$*JqZhDAc+l7>hg,8YN\+..:WlIgHG6Q[DZYgSn:Yn;U= +p=.VjQ_4!:KNuAI1s+Vtb6#/W0"pZ*bOe,l,+/J@]Q!<=ceeQ4b&SP8])RaT3]b[lHk=\]?t5-4-Fi4_ +f_CC[^@2aF+p1:YfW:"ALbU\,0Pj.)E>V#ii@#gU#R9=!*#XrJ8.[[+),.7h1B]$h`]1sD#@f$*Rf1YF +n+s&q=79J'IeA.2(1QZ;eQ#sVf@m6NlJ:pL16e!\_fm+sCi^Q^:9+&`#7NgDZen2V]UP+14OG\$d2TH? +^'4V00@#udqpHXKN>s"*)'&*a%]h;5mjRJq-MS$STNCaZ2#D5Abl6^\"ZX,XaP8Oo,;)e+Wl?-)==kX01'3K1Ti+a3Vh/c\[ +aXt1Je;SXClD1!QMb=Y%+0JA)[VX1a>L@Z,!Y`BBi;;p&P?6LDoRlP\KY9IKp@[fPP%9V.p2#G)2!#\/ +@hQjq(YaT:38<:jIiMVeKBc[d@T[WmS2i@B-eQ-i@N=XdRIEC/?f0-43B^$gYC*i*X8?&>rc9F(g\"6Q +=MsG@kLMc-fRh!1++A3cF&.9mL']Sfjg:R'LniF``_0t^L#&J:-on=i6; +*\1i\30*d&7Zdq62:V,u[_9rQP?6MWAk"Z-?a)eb[)']j*fnFm&8m7OB`..qo#[Fg*I9U\,VH[o.D!$6 +2Z)>%.LrZCBOk*'OO'rM\",FpQptqj3g!p$??6ArFh92V1cV*Ph:f!7VhYjKglhiK)lMtscP?pL28pQo +:9^LU4*08j[^u7tKP^/Eo9>qO@Q;$QBm,ojFD)0;oeju5&&ri2/LO[#C.-?k%\,=iGRDokR7A*BG4FL` +[l>DVm&t[VY!$.@^(Cs>'>Rg@&J5UX">;5mjDgrq%!JV\:,id?)QR]o1NKZDOmSdq2n%$X<(Y@n?C,27 +.lG&&Z0bh2LPSW66GSV-10NS=E+XJE7FOC?*\'&;?'`Sb%s?>3[RIeG&*[QOUog:oN=t2fs1I1mUO\tl&@0970Qq`^L6KFd/`/`b6YYkl2T +As1HumujU[W]4SdUu5/8]'F/$o:9<-@EqqIpsjQ!`aPBc[LDWd=CM)0VHYhPi*Ue@V?^Q0!O6o;6r"A5 +'h(MYA.cJQ&js%H5P!6cMM'1VjO;1Om?UOnao?lW/ZSYd'iT`ums?p;mi(;+bCr-WG]bCTB^.cu"6#sT(2k=BV? +1F2s"!Y87I[$<6lo,peaAJX +%e7V@VXu,V?&(o)ZY^4l>>X$'n=9:u5eGa9,\NP<[\];Jl[s%WoQja4ges.>JuDX"0"KkB"\j_p?2AH=B,9&Qo5i.R`?;L4>dZm?O6M:XOKp0"RN5"p7>Cm](<< +KR;%FK9r\KK4O(L=kkX:-d1h@'?XTF'ZI7_S>m*_9ZG"o8/62@6C=>Ik1=rVD9kme8?=a?/.9c24a]*h +`osj#mT=KO?M4YoS]u*Crl-U_>h')98ejQ0XaTj\','u6_5p0IdQNpOa17_Q$ +#ApK<1Obp#$o-\V^@hmUbZ.+sdb!ELVb_SMs4EqmY;?/XrA0+,jd,f((a^aqX"Kr/6r/<]4'+Wt\S"^E +M+@P<7muG;i2r`0LkmU6(DS.bQo!fDpP>\4j\^+^e5N_r-+Z[a7I*8;mJ40k\8)t.K]l.ARU^[8dk!u7 +E'uOOH<=TW>P'93SE-LO&)"sLa@P>C+)GTUlU-H/*r;TcJ`L!]U:o-:?/7b6RD$e*(bchDB!3FLh9$Xu +99O[9hW>AhE;H5))3H.5$h82iclG7hE%31UeGOVdFI8WaQum6j>@bO>%+BlT+3$I)='Fs7>kpW$4fj$U +HGZEd%fYs2A$qkOZMcQiDYQJ0T+DGB;ts16(;Q>*m!2A>qlIrj&,EO&=[Z"+D\Y]/6t?nBW"9R*MV95e +]LtD]%=:[*1d)ANTr4O#g'pNSX"E'"[^[@_L,#Q0Gd(g4h!!ibAIf"hmL]WVIDpgOIsjBj@7P:k%hnb& +X*G$C?F&RC8R>E50-<][.kM`R23fdp/`NF8RDND'e_Nt?d()Mr0"[0^V82nS>Ka\9)XR0E/QsAlEMRm3Wg[sBU0s&9>t;9M +*C2227rJ[CU?IAnWBWubaEjnCg#%0E[(%pZX)2g(GScDC/rdW?UPZBS[:`/$rigW#[^4RZ1n%4?2(tR0 +IeuE*ZT+?)I[4u`ADX(o4#alhIp]BN*dQAA[VdtcX$uR.5HhN7,h+'b=5N_D<#ZiY5>lCQb,NF +XCeNoeDcGSJ!D]NpjF()m^o#/,4\jpXeLW-Lb+,o'd=j.+N+KSeIfr);RB-)_M[4:k]5E6e212>@lDD+ +(2J^$qKC0#j*C\rch=dO>>#5^cC'B#lG1>]=iV'hV=s_dk"k>rQGq.Lc@WN5+:3::Yl(T6UM'PsHU@a[SH@N](Zgd=%[5*p/UO:]0S= +I!j&L:]9\MldP;Cf%*VU,rUVj" +3EXj5J$&M:Kl%k<"F=e-I5=\Ro9>bK`j.tSjkT8Gl$C^03#uWYt',[@sr]0H7*,!=YEC=!i2rWA3VurTiF\@kW.'ch>\1*CnrY.K$VP,LaE6>uoEM0rAGb +R=#d4`tE;*779OS&\P%R&_R=.]JLIIT0oZZ_,_#)!G<3AASD6[=4ZMnN%opN`CO>`6VCe)dBQA5CFj.c +ki-2!m]`7eb1%QsNBJLp>Ng=iDUfd@dB@I9C-:8EBi$:B@m4FpL\,E[bRXSXlCX3Pq2!W5Ma8D#>I`q< +GYlZ>9,YgZg!mIki9/aeH$MF^5tVqc%RSH7L/#cZ_HL/d>Pi,`Q9 ++OWis3'OmrU3A'##8c^*4"5L2Y-ij&3^'^B6SAQOcYPFHf?X$NMu!62:/%t)/L$&/IcG`Y5i'C+_nd^& +hBML\j4LK&8,3-XYJ!LccT3B]YZ$K5L39%g"^p3&j9OJ'Ws7ICc[j +=YnRD+h%\?YPR\O#J/Xg6NHg+17>W@&7f(+gh.H'%DmGGABq_OQ,durpDeaLZ"FYo]^]$"6psEY_2AX4 +O[DYh[H#:QFf13=ZVmj+i334,E8!o=eC(M.TiTkLaQO]4T@[:Ua<4X?K5ISFH5u;l6ea-U.Gj8!l1N(3 +A!l"AYI=t_&%9q'ArH:>e$IGZRfgMIJfL`fq\p'&<_XX)aS-fJ(GV!l)ofMLo@\i(.\2#b;sE7;NY^ED*ks+m&F6b;cAu!8ki?"1>5/0'[gJrQV"*P9q[shFN +0a)SQbgU5RdG3Ck.?krUg4AN?7RJpkiRPgp!nZ1W1n>K%dA%S+^-_bhm!/"m#$k\$WJTMbHm6c3$3lRC\lP5B+peFID-.D%W@jY]flAuJ1j*f5q*K1cB*eAF/Qk/W:Sk@HLltU +\6'S3*:Pl=;q9[^-1ZJmXU=<=kLIO8$6E*lLr(o[gFeMbpc`O!=j:88QqTT_8N:k-rA?*JVjeNteE>T.#DY;8q6mH= +7iKuT1.g\^fs5>&J8.K0.K@XN[(s=KJOie +Wcl(L9(% +B,@JNMdRe?NQ`C?oB[U+EaI)EYf$h"V2?)K?-fr8#nifr3V#5Zgh-m9?GpZCiL'OK!kB'+fR(]Y]mP*pOPp)@8`4naK%0>:.e3m)@2P/1%&ocZl&13t&MJic.Y7;uZ^d%R0EEQ'Z +PGl7;I/83]aq/SgN&F&?7M5uFhqj@D_l1/t,9L'Ca'LD\j]oie4*Q\.+-+87[OAa4m[Pbs'ci8TcES/U +dhOJ56:3W"SuP,C+fpT-4Pr&&0*k8akM$mE17k(8YWr'r +HOmitZb[Y-*YQG_PFp+YA+C0&c[9JUh@dqBlS6^G)`pX*g*Z<7,9Ju8 +^8=97h$mN6U!4^K&Ne%F0YmUQ16"qf"sIOJ`lR>1j>N);%':G)l(2a-PL$[s^,X,kkBoA7?Gtu@OoZUn +`=Cn"LI!OcL.&QZKe;U_>S!G7Z?O@rGNQFtP6_-C/'N0lr:"H*TJ>c)V[%bX(4FmFC,[MKT0fSqi-uZ8 +mLu1Ec^GqT@iN8i1LkmU6(DS,< +0Uj/u3^YR@X=Io)f$mVS`k6ZZ2M_!\W@jsTGs)r]?#:N==?53SI#mCTfbJkAHg"a+g_=%a'p<"fFUeS] +&178m]c=#mVK%ddZ%mtEbT1V\453f;UNI +=_)B%\K1<\53mUB8_#kM;!Y0!A@ajmf,&'^Coc?h3^S(9C@e*U_>?Lbs*`SnKW*5UlT8*77.(uM.Z0%< +a*]*tXg:C\n"@`M0'I$EVTQ.o*6p`T(XP@BF#fB[:U +FBguR)gt=Wh`^:/#QIItol*m04lNBVl=+.m1GEHC54jg-CtffEY+9L/=WBW)UqO4"Qgh[j($bgS19u7Va3_O:/,G,bsC"=fVaZ;?<)>ne2hb3a)dVFOg9nO +WX&"Din6AN4fRo/;8o2=LBf#JB$NPe11/]f:9\.DoOFu2+m2#p4QAEUQ?>%[;*4T[m;/A,e`JUMkZ+IM +Vh7!+2%PJ]g'nX>4RlHL6psG?r:HmO4[2/\k*]kRGfU+Spq]2kUHdK4(,%.*7%g<<"@iu:3Bi$C`-gr, +@.A1-<"+rW_05go-tVOSRs*Y[?(C%qYg$]N0qqP)4^hgc].A,u]O`QR1cWL(W`%497B\=%'%;FFAtN=un"(G<.+@CeE;nL^C!Opt.AMgcIc96S +5FC[44RZS+]S([lXC3tf4l,(3f$hqfqH![!h4a\E@..$sO2+SO5.p2.T14Zng`=%-'G1q>JY2o-B.ppe +_WE'$V3bNbP<\l,f3Wgk`>;n:r:+j#qqRceGu5_/!`VN\-c&9>q^/' +P6h`2OAKpIk]Y?i/*7_1NU#jjrq`!%QjA\M`1KO?\%msr`([<`l,n#3kV")],2[%fH>:#B3)K"1abO5= +iU_N(n"!jYqUK#iK+XXqq4VqAfB7ar*OINX%r^eprc2m!cY:VemH/KNb\V9YQUY#"Ba3jI)"@$VK"X7L +[dZ3Nr4_MPc\!2"mG/"&rUjO]_\WoqB6^I*+sJ35J+*\mYdm*q_a"&d?MW\9J,.j6rS*eXJ+/)]\K*=Q +6q!L."EoEV,3k#Oc54.s6PLEog(bAkNb:d>96Si;D%'QIB0JC?MkB@$8,':fr_`Q->U\jrFZ!5Vm3';. +cp)$!q^_-[?oVDY8a8:fH3_i=W/%g:D@*0S@T?.M8BtGcZ4>.'K+@93jieT)C=d50TCj8554he_L6dKQ ++KNh(9$2VV0jPO#7cnt**s)@dLr$8Er]SfEaC/!:_cbds3@@]HY2P3D>JYmb8qmQOHs+'),*+P:.Z0%< +aM80:]^YRB:VZY\Hi;sU^@ntZA]&;e]sd64?;u`:1fQL]*u^FL*Q@s--(W +HbqsQltC(1JgoME6+:GOA=F/ddpHnI"'mO7'_`ICR&hi+AROh@TU/4@fqckPp9KbQ1ZcOghZ?=F,-(5>B>_jA$Ou-)CgJ$2flRXBL0Nir>oSf90Wo+F@0Z0Zte*"D]1FBg=?l! +qrh(djXo-6&Nt8qBA6T#P2"T;l9%,6-QDrjs1M?T]k8F^EsMA!Zs31WVe$mLD5qm6mNB<#qIM4%Ilas? +oIn(c^RV8$p=\UXq/D`Rn\!RfL5>ME[!R80Q-UWuhC=D=Lr^`enro^$>W2NUTE"_i"h^cF&XbC3Dcj!l +W8o!]^#*g(h0$JD=9*2b3P\Eph/a7 +UV;@ml(.rp2:;;`PLk6.>_P^S50=k/rC:ukm3%^DQJ#3Jf?a_h7g$hCK)0,Df&\&Ph"&"RYj=jaPWuY1 +SrWOB@fHk"*!)Y'B%WV9Tg5kh+*hPm(JM,&BE)JSgB0]0RLKK[7p&Aa(K^%ne$sH?<%nn[NTqJ56:!>NCaG3!->(4 +gHT2_q*jLBF_4)''T.0*L(C%?hmTEVr/&=0d*QC2m)LS"Ee!U[;+*f?p@Hj>Da!dC;t#(jqu6$Prbg%k +:E7B6%9l6]mP#S7h=\0Gc#r4dK,P9O`jcI[-_J"i+DFWa.s2^TP<7_`BP2pl*DFGq0ju%2#*HJ&^hDS@ +RN:Y/>ag8i$Ak[(,=f3!7mMO2Iih3c]jdF\=]\g>b_D@#_/;;8]"tW +>9+6Bk?/1`:NjFB8T;(SjCV!7_l',HAha1&KS2SQI/d+:0-05!5<\9/p2lh3[G7*='d=i'a4iik&J;Pt +DnPV[k%`kckFVS:^]*Qt96sGY,-lu0?-n4R6cna/EJ%S8ZTW!;X3,n#"$b[$#r=)=Im>AAIiKa[e!"Ou +>Ni@0W`N5d(2d2L;`':%X9uO?gKZS-@gh7(/"AM7]]5)d#LBU.nGCa"]ZiGI:&:[F&^:5jp98R4D\3Q^ +D\Y]/6t@++s8;%=QO:M#>JKipTD[cuKtXDr&_TtSbtb[sXPKjj;D'=LYiUVE+3d6JVX?+Au/NcBDZC[+q]o?PYYe5c`k'7*K00'tcjQQFVEnu?Jk5i^HmG+u3 +S,)hI7.(lJ.Z0%6iHKb6GCK7lT,mJ<0.K@X/d9_99DoGPm`!na[AN6kMY>8-[tnBl +*[s76HC9T$seDZ*S^QUNFaqRK*q*amu"4k,2@L +h4__s3'N[0;VsPsNB[^0?.iN;OuYu,#_mYk2V=QW?>UqZjPF%u&2U3`UmFAJGK@;u11s82[R[.Vm-;V, +q48&#;'%t2s*!=:;OW#[-]*Z#Jp==E+sJ40?@(k4bsfLI5Q0hRrT[Gh^;Z!;&WoGRLj76I7mgq(c>-`K +;Tcq%n]\,I&_+2e%]O0\@q7?+c?*hU7iR@tF'YAf?Ck3UP*)W$)geSfU8k.E0.kNUprk!r;#l +I?9a$Y>R^(#B>'4$F0?3!TqZ$ZZ"fMkTphUXeSr6B)q;]!]d=Q#UAX0CccKFqd)J/_=XIp0tmDHF1*ba +jJDEm]kmq62!.A(ei#*W?WCLG?_JC,g6q%d+q]r9_coPA&J5oUns@,(\O(Q*V3`7f?!^KdL`?]n&_$C: +XR&"&:6RV-@k%Q$PR`.Y]hKqGZpr;_WgVp\bHq\@'Qc/VlF;9/F;dHr1GiL@\)Nqbrn=`4MV/Y]:rb8lIHKSP-mAWf>T3I,o@&)m4KW97cD-TV#;0<^ +dPFG"!5DS3j`BUiHPXInBWj%SJTT(*Dt1ck%2"`g_coPA&J8`+rpuaHrUeR..tit2jm.a4YHKV/-g8c\@]#[q%u'5i;X:2JV,C?,7@Y9=bDeW(8SME\XJ%picm`G=6WY +#:i(k;ju+[9c3'm&n]#\&]jmai1E"J]k"0a#'O_81FM@j+.%f)M;YM1LkpjDhtkp5T%M<`q>%0PH;Ph0 +nu+t'FaS:tikt=1>mW=I80a#^GUVZ+m);W,ZgA$6gIUJtgGL%h["H<_5@SV6Q*nUc+%!G1pZo1OG7at[ +%XiTT=\ZWC)9IqL?`uQ-\'*a^\PZ29#]A[2>WA;usq<[[F5kikig_#p+n'[;7 +5:dWm&9N#>qQ?N)UK]C5ah>uko!/r.S7Aok'7N-;9Y9!.i^;5m7'=h:_O0P5];EMogpulSp;Dl8H"TdEp$uSE_:1;#2.91Q4-6 +N[$.96A^(GD]M>[]kmjh+h?>#Dqnq(S55+TjjIu@["iqRaKq>"UXuF$e/7pfEoKehg8p/:)9cf^(Pa1, +,_O!e!sUHtYkufSB6uk_`.Z0%a'15KqPUZXDGFHa!9J7GBY:hm8)R7p)<25elPCZUDd]cCr +fL]m)-V!`U4"]9Zp!5uk6l0+SP%P?DBnM9($lN)tllFq?'Q2:N_FjZe8,M88&tF))V0i2-KQbYDBja+l +b"5.Io]fo5#9tK.9uTa)qV]884lnt75M/a!M2guon+np&QZ;h^?UWrriiSr2LkmU6(DS,<97[fE_V;'G ++uhWrhYGJ`'b86B3&+jeog?D1!Ji`u^Gts0U$.li,YlHY1H#l>e)'4;K)NlCWHe.D[dm(S4H6GL4roC?CS`cZ]kEAashJ7-+@,XeLW- +Lb+,o'd=jR!L:)*L6N3V!o'"-M.1X?F`fFUg1aFtTub,paO,4]FEC3F[A!T2hd]jYE-5jjN@=3ek@j$Y +ASC=X35jM,63!JOii2"os/t%.r:HDro[BLKHe@>>3Z]V5>]$D7)bs.'N..:ZcY.:47'(V*;6T*hW6sis +"F='>k5JuFKc]FHi+CTmV*DXl-]a))XlHOXLkpj@3*;?n08RAK>cfJPV(qokjQJ^[eicAR@7J4(U!"QA4-.fWDd)@ +rUZl>p9+4($Clml#FE/e15b%Y`ScI0e<:obiipc1$#;=rrdko +1g;E4/f%8*,*iO[&&/UdhK%p0N/5QG`EPbC&J8.K0.K@XDMr45DjTIlUYD&aNJe_oF?A,8.(F/Ja<0s# +EK;\HH2D^l\k[J073b$\rQ_VXm!l`lSN&__kZX8M].apVcTZ..`sjVIo;Q;5^u9?&`hJ'sLgtS4-b3eD +[Ga6_^`LtSd4t+C]u,EaF@)Ip!=!rmXaO5-c=F'ST*>^b.f'G2[tcT)4^Zg-m2$?p%D5[T&J:-on=i6; +j;+/LEqE/*o!tNh?"G]o/j0qhrQ"]H-oct/DoXfn^i;W5'=D+a4/0'6LQj(>L&CP(%3AEZqo=G@*pT3a +X(^AKF5]ChC:@uN>7T\iZ-(n$4:IUbA^aV7GF/)Hq<8s^6\uO*Qq[\,fu7Y^3AYB7Tr\+(k"K\7/#ZCU54V]/:nZQ+sM5jcDaR@ElXH?Na#EmriHj-h:rs%QVCj1cYF:VepM!!Z=.W0KAjd? +9+K&B2.U??8;q[YupM/HT9W**\$qTPN5G#puM!<&Zei=2\anJC_aS*Wk +WKIpRJGh1O]Jh=0ZP6P:;+u#XoKq$V_5behP7P+#T@V(sSjc&-^fs5>&J8.K0.K@XmM`E[)Uljdou4<* +e5WW[%0K1o;P]8'9,_u@Z45oBo/ke=FrCN[&:2[WDl,*s(V$o210-YFg +GcN5:+sMs'7>6Q=*JD.Y#Wh7DH^SE.Za@2d_[#C*r<\B[g63d`E>d@gLh!Nk2*^48)X#,>a*ni;k:!Fk8sHd +c:G.>/:'kXF.RTYHe1b!EII0Gi$'B>#]CGH6ptPt]VlAR\R,d4^+J-EKsYpjQ7,%Hh:,VlQbM:h$eRm! +CWtjgH$EQm3EgR0a+NX41NN>^Vd\h;f!A,Z5H/A\Qi7GkfZPD`-562LCL64;mVWJcnbl(G).rDKbZJX] +a:jb$H\Y-M96(rSX0i&Y:9R4>fah*f;1IN%+9H_*W9`grL99T!j,/E3 +HZ*\tVNA,IHrRT:T*KMO.sX5R?7JILcn0L!qsk&fD>R9"(j#"D2R2,9jf-5_M$W_HZ^U;9q;f!A3C=G0 +mR/n>bh3b#)+=4e=Hib?IGs[&RQ[$B0Vcec3uZAMM.,D\ks8_0RV*4p,Oe`26psEY_2AX4Oo#<)%>7^P +b&"OP)L$Du&mu=?k&bE186"l'i_H\(<)\P9o7jj=rIr/=5"DFZes@q0:YV4if39Pjc`[-n=CFuG8-jJZ +JYoN$6ua#eoR)H^q/]dq@;J-292kI.Z$XX4ljLjbI>Q"A]q!]B>nK:si->U#0D]C@Lce.OX!f/9,)bAJ +Ko!h76.bO$k<$r/hXOiaa+H%1jOr"O)&R0Z3)iIkmDH=R@ITC%pc;*[2dMAMnBEZZ+h(8g^@q>7S8bBsnZ.K!rX`S)n_Qi-'-Zf#ju0eB(Uoq^ +4HI@uEhdmlg16lp!.$bAB1b2X+#L;"I@u>)1*+ck,Dh!n(*47',;nU-,53*r'h(MYA.cJQ&.pocW(fP1 +0s01nmD?h6mS_F%W&Ikf&BR.9?6E4Z-=Y:nVNqsPN*gEBc#Li(ZMk7Z5><=?780N^jVp4=/44\Bb>Z"n +q&`=jE6c>QEdi+7I[$<7-#VMB>1:PH'\Cb'#quK +=R_Sb&2Yi,'hml%g9tYX%F`G.KJ?r)0< +T9=Rch#&r?+l+.epGV`9igpAL#A`-#lKY"CLkpSjMBX5gZ3Xc9Lks-#!G5lN9LOu,j +cV^mnY_-D]D'OY$E:<:kfO4V5"WDJo&8rU..Yd0no1Jp4M=)pe!ALQ!>9S[D=B,9&Qo5i.RZ\c*g+Zc6G15%2s)9YJ(lum,97+;VHjbOSgf.aJiDrUHkX+2 +a\:qR'E>2DBk6eP3?WU0#m>7kUnA=@?0fTVdf!LGcPQ4 +79Dc4q[e'-+sO<7D\Y]/6t?nBW"9Q'qaHAeY`X2c9bB=GIqI/.iS:d:m4$q#b.fQ/N`;'c,reWtE_e*O +IEX3`@^HQ)r^BG_X20EnnIQ`g]o5#?rU&8fo0rr;nel`0p"(1OXNn2B&WB_8D*gj.D2_>o\P.Vg7bP[!4XW:/s_I`\FZcG)STi+m]9kS^A +R\#7t3@;\Kftfj9bX+9nUYS:#iaX0G4e9N1ZeF^TabttF%,NIkLks+rGYoV.,53!Ljpgs$%)p2<&Tbnh\V=V'mD=m(k`+4b'!=[_=i]N#XX&WoNOU-_79:4R-)5:?3[I2BuQSenT"-2-D9Z,%H$7MNlL +-f1BX!a-ZjG?r=$[[7X:$CYpYa,DJ/a;2lRcgH$RN&^$+\tII5BPe72W[9m!H>1+XNpCl`Caf63/3J:e +_t(FRCjm-3GpL%&'G1q>7I[$<6pse#C\?"NWUr*X-D_H&R"$f8k$`oKfP[5#)^B:Q&*)I2Xmp"SKR6i^ +H!n'UiC;ZmS2``mA=cD$,0d`9H1K(`EgR'qQucH"Vs3WX`5?,Df]aQUgq=SXgMcn8Li__E\602.6lp!R +<>6#WO[\c66:=4:J/e"(6XQWu-E)6Z+1L*(9HmoG=;^Fu<@n"RNU-Fr0TXc'M/Hn7G5h+\oTc#eNm +AO-cW@7 +7qF0`Y)a_$S8O,[EBfq +&&u^49s`ikEn#`mT"=$bG1L0lZI@9;md$I3;FKRknQ<6pqg,M[C%.36tG.^Hqbak`$*rg'MPTNc,c:5sD+_ +pP5C8.-O^b_cIK/Mk:_.,*)i_.Z0%9BBBP[l)"/!"rIB1s*!H? +>FQp#Y0?Y9,:i#De&e*d%AToO'[lk7dJ<)#_`0Tm)`#j#/R+X6-'/pU)`DknU(:VZjKjZ` +d/IXW#8to%!,G]?#RIO`2XPSSc=P7m7G9 +ID;Ie-Ga"-]7=B=;bagCOFP8mpF["(hc6,MVg)`JZa@he&Wm7e<`)7Q6l*Us$5!k1!>bFU;5q2*F8Tcc +I95/iN*VVXi`'E-Z*O.;d`[ktjEkpdm9li#i%1MFYtQ-RQ\TZ6R7R$npQ6Iu.ph/0-OjUkam9 +S^*VS615L`KSp7:a+sJ4hi'i?ULn"IgqWBim+_Q`#`2lG,G(VNP\`n`)7W&*,hp:]O`0ubf,=_D7ur]*Inq\&(^XE&E&hDe`ROd0Q4Z6Lc2_U$GiR%o3jn(AHG^dCgQ +&tV5WTUi^^A@Amu"#AX/S?[p,a;+5G;+*f?(;Yn9&J7#(QM&R,>F[:")5]XeZMc8WX=V"ZphV@V> +gIY"-s&.=N=khl,o1(o[pFspJT/2G-#AK.SVWrI*:eG@H9So.Mkf>TMc3bf*OnkCB5rDS6#WO[\c66:=4:J-GmmF>:4F3p0n0F=cab"_).NNm:(Z`\$rU?%AGuE9?`W_IoZ$p6`">hL5T6"r8QV*D8MsViK"CAecRK4ilfH@H3k+3!3[e_Dks*a]'n!7DA$W%;&S8-CXoC +o%r^pqpHp5Cc6DRC^$k%D18AZR[q;R%oX7H0(tpuMkOJU6Pg>s.GcP3Lks+rGYoV.+t(0Xr](=0BOaN. +7a,I9r%in7-LAW71DsPHeBS'gMaPg3hA^l+e554e8D4bDo1$_bY6D68;W*MB76Y()oS0=R2m7=#1L&)G +R3=;SbBBf7]urnA:pb_Lb%%C:cod5B>V"Y\MMR)0,'Zs.+sJDMebsREBk6ZDgr0Kh(#t`9P0_5%oeo4_ +H90Urf1OS7:[L)71700BML50384RcTGm9lmArk@RdX*q&30T@dnBba]@[d[WB+/e*=W;c-FHRog4TqZa +eRpX.l+u#Y=u+a:P:)6DaF\Z;-mBiZMr7$XLkqQ$=7jgEfA&+:mX.9KG"S0@>!B.!d:bkc.-QIclD$F& +S\X_kP0?\+6FrgOr(N!X9lb&hreNS\)Y2nHalbia'SCM,#j'SFM9Y-P=dWXld?n\3U#DC]R<]P[\OjG6 +'G1q>7I[$<6pse#/,JG3CW8TJA5:jEFS'Arh%qMd)TR=B1CV3,8:gug13,"LRnU54V]/:nZQ+sM%/>gYd" +_X3q*-II_fNA9kl@?`PD2t!$O>-TC_9QZ\Z"nU2"9/G6C[29LdA;2PI+:(]53Vo(glE99*hsLn2dH*kZ +@RCfOQ\sksN3al[lp5gmS(HE(YA,g_%U+%X$`c]ajC[m^;+*f?(;Yn9&J7#(Y3qqB59kNC/<;drfA!k0 +d&L%e'AmBe[!^HHSOGqa$Z?bK6ptPt]VlAROV?Y&r]0?]#h=1IUj4p!bq^PngE[iNSViULIu+:cu`WjLH3OVaF'M*cDET]&aW34a>$@h\I1Hc5d6_:=uAfcpYitg ++#-:u&Qo6T'h(MYA.cJQ&.t$i$f6n)%o_Ls;d$hM3oXcCdg0U9n[e!:P%r!`B+8[A04]bLn'Ol]+5C4B-/.`Qn#"PZJM[(D2ea_HTG@&J8.K0.K@Xj93!( +Ir:ND5P&95]-`,`Bon-[NB$;c"Hh?AY???[lfS(tLV'*%ef't3q.f1PB$%]@ZplEBS09WX=nta$"r6#W +O[\c66:=4:J4K:YZ*.$IoKRQ")+C(IC!=Y/KaC<1Q8-p\J*u1R]J4=JMN"k/=EToq!opj@;*SR#bhF@p0NLEpqr_s*ERP]c!@h6#'n*'&PiIFb_HU54UVNjjli+sO;u?;u`:a9h@7rg@I$ +fA$3ZalG9LO9$^#97D,QVQg*A17eE@0dCNP-snNI?7/1s;[9UnGjkV1RIOdV]+uW07%9s3gU'n,S\ZSn +gtinDSC^su,G2<6%UeHR[Us0'X2"sa`V#%Ca=Q0tMMR)0,'Zs.+sJDMU\\WAn+r`RNH\ZHKe:.$N[mW> +7T5NM*TeuMJto*d<)W3#,tiVHHBt]-`.(p%r@mQ,IGCT%e(p./Xrlq3p**l1C_l?jkA2agk$ci[QL3?d +1E0)Ac+Ln:Kp_9"59KD-2goN8cQXRbKXZg_+sO;u?;u`:a9h?,rY]ED>r1=pR[mgnpSGsDMMR)0,'Zs.+sJDMUZS2JPsEG\n03Ot^6kR6LS&3H^FUI*b++4N6f,JBoP`;Pl8Y@q.:n0I +Msg#[fX"LnSnVg)[Z+]cOO)$h1Oro^5\dHKT#&sc<]W<(Uo#lp8G`hd_#/8>ahgDha'cjsr5;#ljAGGJ +;+*f?(;Yn9&J7#(*m$XU?cstmb4h92EbX1d+-od +\ofWK3eM8!9RN97GE1+u.@l+BnsQYD@9UPg_sD)j4AF3`m!5FSY\3hrL8kn!&\07$<>6#WO[\c66:=4: +J4K1V4f;WP;o5o`gbM=VqI)c0q\k*E+O(fcruAdG8TKc-2FfVp2d4RtOX8]W]'>_emJd'!Dk'+*'@G!> +[mupm;-TU9Z0sEb*M5e_p\]u&mN/[\3CG]<1Kbk&SF:Z%Gml]S`cf>M7RTZlW[6rS>_K1#V2V)oYM5leEN3lULTE@]b?9eB2,\Y+S\MAqDG9gX3aI[o:H:n=`S%k( +\;VRg)M;\B'k\>ME\Rmc6"2Xe[cKjg8)*1BPIFtlSc*MBUi"s"&\2el<>6#WO[\c66:=4:J4IaH:CUq< +\d@f%3.gDj0Xj_G\Cu+D`5HPB3iuZT"pm=CdV2AmEam/\W$sdQ=,Z:6#WO[\c66:=4:J4IaH:G]I^9r@q8:>F-\g5Y<- +@`(QV2m8u\Bj)QIOu5&7?G:%\Z.?%hpZrn@)R80SeO6'WC.3m,ZQ+-&Hn`Rn1bi]$EYjB#nX7C^>?MJl +rg([%g(p0o_t6]de;&1X?.+S:,fI-C]fHo^A_LrbS7XeLW-Lb+,o'd=iB +!^)Wq:=hn@l;14!%"L>#Gh4A'mZbd2L8]&jF7aK80Ei7[$$1tcOO_%$QG%+!\FKXVHVhjF+K4>]['PD/ +V:Z19an*KgaDbmj#toI_#;>f+N]dC5eU)nmqn7(]psi.T&J7#7D\Y]/6t?nBW"9Q''4AS)NXG3.j$H<@ +G;_Ei[ehB)2XaMHZpUWb"0:4`'.3EHEH^N.31. +)uH(eNUFVJ%``1j5,E+KXUlk?2'lCbf;0@[M`]Po5MD=ublXlu@,f$Ojd>*SY-Z*@X#Y*'u5;+*f?(;Yn9&J7#(p@r8=0ZXG3!02BEZD)`A +D$^a9S"@92a@1;[FB!517LM^^hO!\XEklLCmcZ9`hNdtL0=!T!T/.nQ<6pqg,M[C%.3<:c*c\UADg[o,H<'Xc]Hq@Wh9#Ku),@\&Z8t4=%8J:C9\V@T2\$fZgi&&/VE/3e7FlQoTZoR?9T'/\ +Id"<07ZOHqVP.0]6uE0H'h(MYA.cJQ&.t$<@$c@<'Uc+_/2/n";qfGhHkE^\&J8BmTA03c0R0OT`op;# +65Z)%k+:CiQ"5):PVMM7PPQGCC%bpt]h\Er]*

Tic7!9b>U@(a"-JYELX):p0VA&J:/KnQ< +6pqg,M[C%.3<==!k@BW8c^\o%RY^*C$d'01H#L!uPXQ6qVO9HF7Dn8Ie6d;4#*q5Yj,[/\9K1J_(m!ro +ZSkE0OQ?1[g8_bK3dZFucK6hSK3)tIT@"/A)P,.8:nsS:5]t)ZbR#F:,$2cg71g+D=TgB-6q$)=f]A`P +-GDlh,E:_bM)8/%JS!s1KU.Cj$f]>!W0+QFh#')]+c>(&jd*fK:=G8docp*@RcA@5Nl':TO@JYYNuSCn +0kf>*TlrtR[B7jE#m@m*R2m/;Z\R?-A:.[3R>7nW/JP?[")uXrWnEU*so(fd?6d^!70R"IZoQ&803/iE.7_*/_SfY/7BH12> +VV_eF*qZ'E[s'#?Ed`25-mBiZMr7$XLkqQ$Hho\bb!:MU0p*PT0bG3?VqRuodC)UYj0"e`00XPbY+%:V +S+GL1>b\V[607=c+o.Z$+*Uh5[R$uMm[&Zf#]RZ&'MWct8.K-R2+Jm0hMuYHf6=ZKg,mQ6/DLdK\[-O] +-mBiZMr7$XLkqQ$qt&,Nd25gq`HcmC[\S;_A>?2sWL1J5%oHbWlZB9pg+_Ml;nn:<:9HQGQV?ttni:L2 +mN^.iSoN':OQhShXE&J9Q5D'qY0ir6U?m?td'eM)mZnAuYsh(ADW7dmLkpjsA!TZHe-+8Qk*%UQ1P#VGq*7]fF7L.3JQDb*iDrrM`fC ++sQabD\Y]/6tAM8^%B`#5P`Do(\=@f6pscMr,XE,928)8\d>q%1V3./=U:F,O)MVMK>n>.E_)i^B"OD- +n2YO!4o&+=F#S"kg:2>VSZ1XWJM*T:jqI)kePTsghF$3]#D^=cXHVKO&J;PiGcN5:+sMC/_ABqj\Q[?E +MhoGa!ra&^Rb':!"Ii>>d@jelg*>5i4c=fMGK&[L%!*4_Bcr8-o@h@gFI5Dt?=@m^)L_;.#A#ZAg; +j+6Hc@%t=EmaAb1f+HD0Ht4c'A#/anrY[F3:S(s5r%f#amIJoR?.f1:9P/Uh?C8Ma$9E*^#,d#_a>Qik +2mVuthFs1k]d7bp%uW%2l&(;" +0D"g)r3iD4bo#0.[H!>\V@%ql;iEghT;-@8J:$-<"uA)A9Z8l_jW"`p8$_/sAbXu3A=H/=PLF.&C!Ja- +eM`>AS/C*4MMR)0PlLa?s8.03]pJ3\cQXS(pcs01.;3b4jG2cEUO4f?4iJK()]2bU/<&B0>HkDtArpca +6Y?2\=#ugFdQ"F#5'PV#"Rf`WZe4X,;?9MR8D6:301Wu;f--V.k1uUhM/aFuL,t=sO+<%Bgb6 +r>b6t&)d]s/0Z9Y1pgK6Z[jj.!4cUZM%`D*G0$*I!OGI+M>5'CP'0=[o#Gt717/&G0NHD/fbj5#2d&Lp3#GU<(U#!dBRGp\:bQt0/;:Qj+sJ5:+8rO%Lcdl>5GMbOZnso>e:*gH05kA:_CUe7N/1VAEN1Cb;f66+ +(>_8A)qKs/O=%Y0X5.82&ON*CiKB0M+)[/K$mI]9U_CEkjFhH +=<-1Qh"&"`2K]d,/1:?8GofHrm@8`=fX-6,F,eGi)?uhh@QF:rCScdig/2MA`BPepTsqZ/<^]@:l?K?X ++sJ6.d6EPFaQ(1"J*nq&PUt;NFbqh/!tI5V[.AV0W3[ttE7T;*E0i7:^,dd'g$Sq&ph_Q@;B:Hd2b5^J +n^[Hq:`.V`lR[lWDaDV[MsG7Lhi6!felVZtG"M.rG?RC&mLJ)'MMR)0Ie:r1,4bLos)YY7@q_W>e$g=5 +9-\OHDR."*;Wr@2C6nJ3]UfoMn^!F^dr(;5ABfb^-5)i6GO5U>jDNpA9s`m5[@U]d]q_R%^VN#C>+":] +-:>_AB6[Q,/'h#_$55M`^O&l3Ribr)R3=B,9&Qo5i.RZ\c"QJ7d8-8+Z/1C'qde(rV1392XD%GRqAEuIf?5K$"JfL1K=,'"[[.Z0%< +a>%ibT($e@F]V7L!;RhDS0>9FNdkY5_8u6A`mMsI2M5]Yh#;T,D=cu8G)d*& +S*$@?Rr5:`AYbBQc\GJ4MhoG+iiSr2LkmU6(DS,P:.dNp&boQWpre^BS<:BMP'Q8L:/!SRRXfD/ +51sOg@_oEKA84#R=:4iG07[\P84XUE`1/!J31P/Aq(*_1?gq)n6psEY_2AX4 +&NKm]cYYk&$IaZe,>A[Qig6`e*,JS."j=F>DXc:7'%W@GdDCHF7LQD7G/>YI.]+r3,eDal;Hl9uIIq8/ +n>gE.oFPW[mP&,ql0(ENpJGeHSX!,HJpa08@)uFCjVlGI&J8.UD\Y]/6t?nBW"9Q''-O/2nojVYmA-)$ +-0&AX6E0>8b3/tbR=C;JN*+Xo[2[=kaG\^2Ht>#>RAkgNH%OV<5]/BJZ"4>H:R\>`"MnL;@ePKb;\p?0" +X=8lo]?r1Y_2o%!*\.JaOBdO.1=> +fX$CT]u+&C&J5UX">;5m7-"KDl(VhM9C+Q;2Le*r'5X82I#uL2]GU035K9pA8sMJV4Ir&S-(YB!d[Nr> +9cEYWbjI.'bON]5E4q657nRDnH*R7:)-^0ri5o]-mf&35kC2m,M0elr$V<`Sj6#WO[\c66:=4:J0Fr_&rH;4''#1fDLusbWYq@s`,G4^6OQCLoD<6$CRZN..Wt6E;AukH2gb5/0],lnQ<6pqg,M[C%.3kf(_c2KG(7q%i;FXBCF\bCr1cgDG"Sf2kXKBssRie>jZ^t^*4/tFo_kZNR#3E1I +a9ge,U54V]/:nZQ+sM%/i1JWOeP)ZV/1sg7/%^6YW6+HSLRa;[;E#)OpNDnB'uq;nS*q"HcC0M`O+a6Q +(Q4F57eu&NUU?6.>qIh>do"[qF7c0$jE[31Nh7C-o[T"ZLksh,]N#XX&WoNOU-_79:4W&al\@M;$VdB" +$cb7@ON,Z,Cj@$%Rl(i`?:;/`asMa88TjZDIS,qa%3`)q%$Mq`+ItB#SV]DjFl(:CP[G0!*dX_UHI%n% ++LEr/4gQGlLrb"_>=B,9&Qo5i.RZ\c";q&XkTYrDFi(`;eFD'VCGCt0/;\a\gp1OT6itBucNnS=nr*1; +K`aiiS;(<^*>+i$Ak1;?0c4E_1i1K#>;s6rF/-^gLkqQ6hC=D=Lr^cb;'@,--bug5hF2fF',:"3KPa-L +&F60X@O_+H=*$867?$8e2-9cI%LF`7_1*<6q$+S +n5`CS6pqg,M[C%.3<:2C5KBPEc76oZK5%ecW#2_MaAc&Go=V/P?>i8VG;uLORHioo +ACN>.)Z="-1(m7"5HhO^mafSBWs>]\hfma2UM>kG9<+OO6llTG<>6#WO[\c66:=4:JA_=AN>DJ%oP]o+ +m=u:d$P'Qheg\t%?L@k(d`t7U];$TW`q?8)"pc+P-#;/cG12X)BpAGBCT#"6psEY +_2AX4&NKk5aZmhR'&lVE7Hu=VORV9#H*aWUa@M"RMEV:q7h-2'*b9Lp3Sbft`R?;tmWmra]L]+bn*OGA +Tc,u(hZmo46QmWtG8tN9779OS&\P%R&WmabE;pnjgEdJS?OVq7$dLZ_FT*0:S.3G+1Jo7qk,@F9WIlK7 +D;LFtFRK^nH'h^6PRS,eW2T=]IqrPnXs +2E::'\qc1$mJQR%>>IEJRI^c89E_qTErMHSN9hn^3L^kcU"`jC2;>>Y+sPsIU54V]/:nZQ+sM%/*:BGo +C>1tNi])#T7Fb`1:h,7?HR#03aFOOkr4"*cll(j79HuASk@%!!IYEmTAiEY34k+KD1=s,++sM&gn5`CS +6pqg,M[C%.3<9W^c^B0Bq>5D"8p9aX#%pM#7WR)pA],GKQ-LtFPTGd'oJ/9BH#G6[#Ge[rX9ZEY&Y1Xe +4ZOkOT1)-N]N#XX&WoNOU-_79:4U7\oBUo"a76=Behf_NN-t%J`&r6]3EA.skU_frBBC;+qIa,Cn-O+K +KUs[]=imaj((lZ0D\Y]/6t?nBW"9Q''B&BZN<.JB2a>\r]Jk:!rg>H]1ig/n(b/P3=f)pUmm=P2&c9&@Q>n$=DIumUn*^**X\G;l(@u!Da@<7 +rMH,S7-%7Y<>6#WO[\c66:=4:J4K:YRjI*AYC!^o98AWjkRK)k`n[8$l8:KWjGTW?^!O(j+c5F\pL\VH +6q$GnhC=D=Lr^cb;'@,--bpu&kL]b#O7.[JL1)8mAk5<[a%-a0l;[@OYHdnc%3$K8E^dW@'G1q>7I[$< +6pse#6i;",,2_$hK82hP)*L/cjWV4jh&93(4VVmlLkn/ChC=D=Lr^cb;'@,--bpo)3DC<0]Q[2uVB"X4 +)uk2^f0CeR)YW8@g5)o,ZH +&J5UX">;5m7-"L'n"2PB7m:kjH^EhMr6mn1!tj`4dJ;hb^\;1j6q$*Bj/o&3LkmU6(DS,7I[$<6pse#_*@+DYQ*8tgK#IA,'"[[.Z0%ufN779OS +&\P%R&Wm_,s*OmS%>ostg]b>j'G1q>7I[$<6pscM$9'kMS*t9B3$KOjpE"5f779OS&\P%R&Wm_LrqZKl +qi$6T+sJ4hi2r`0LkmU6(DS,6tBH5<>6#WO[\c66:=4:!<'6[LrclHX!f/9,)bAJKntPT!;^=? +&WpYp<`)7Q6l*Us$5!k1!VF\^+sP4iXeLW-Lb+,o'd=iB!pH7F6q!?[>=B,9&Qo5i.RZ\c"OKAkLkmU? +[u)@R,-hJ\6PRS,iCu&J:.:nQ<6pqg,M[C%.3;5m7-"Kt5Dt>R +/;pup+sJ5:#[UJdLr]mqIhiV.=Vboj779OS&b]R2Gf_+!j2iOdiL(q2TmrB/i86Y;*1f022#$"j\JKl4 +&J:/;O8`:b#u;U&%aQ+T%fN_="om_Ij7(9TUU_0gcb10kLkplBIItj+9mH6MEHpWeETj%V.ekr`*/A0e +*6l/VH1&Wo779Q)m\>8tCVl9*Nl*YCN^Ngt=2DXsj>]8CjCmu#a`B*>.3]r[G9?di>SE\kEZCZ2EZFpg +\I/>\,KJc2,=cf.:7cee8.cFG\Li:/lX.F$hKt#/WIL4L_NRKM__XfC6iS]=_7t9V3';9CB^Wj]F"[_H ++sJ3ic^2EEjl`4^DKDfHjHEAglsh.7i=CFJIsM"!>SE\kEZCZ2EZFpg\I/>\,KJc2,=cf.:7cee8.cFG +\R@\r\^,+F&jGlKO*pW$?iAt#^\I0%cT^sE1I(``O7p4Ts")cT-]]7&B9!tP>Mo>X5P1q)XacYsn8B@. +%aQ+TRX9&Fgl"IULks,Ho)8$,Irg>5M,/Mn?[;4a-U7ITO7%:[r`QB1:EDM+cQ"s*J,8>XGlHU6n$Y_0 +pD*_jOlPrTOe]H'-dTICUkjh_ga!1j^]!l\rSl!R^V"j^a$9RnY'9-&jdP]"OlPrTOlNZq6`u#jo>kor +k/bs*Mj*=1$rTJ]6uJ.uI,G*&4n[;YmGOW9l(;iG)r>i"NEu#$5KbqCaWnjbR3TbGJ!R.nh`Pp!SiLgJ +pYt8E(PFWfjoCMQZDq%"p2;uY%a5NF2a72)Qq8*+&Tmu`2s83D: +4V5/jpc"6RLM)Vec+Q)^m_p;;6q$+Upm6L+Qd+X.V`sdQiUst\MndoWrp$PfmX!n,+sJ6*T7?O;s6o.N +h>@2TJ+_l>%n&fRjE.oo]3#XW&\1^8ns@,H>TUQMdS%LDhu2te2m7_n1S;4C;2L*bg^J](P97I:B7Fas +=[YYG6psH(3_96qlCX8iIcZhrDIlck+sJ3T+sJ3T,')Rdn%JIeGiFPr?[Qj8O$Z5U0A_,uD3%$O%DVo8Y;cKj]'WA9]u7[&7-'*mp.@_@6j17"c#8(+ +_]O?e+i!iB^\NY7pkQ=A,.W2NmsEsHS3OdgqnIX8"-NJs:Oi5ioCMQdSp;Z4o6g%[+8hluqP2ddPh]ue +r8fRrpY9hZZfT:VTD[?^55)l9rp[?d,khE@[ZO#J3_(4tDm)Ps6q!KII,ulJl_4o;hufHQqp"m8p>>l( +bo\lgC:?>Y\PKm0c9(KEs80J_P6:X6c[PT)$SQ:L8D8[231tEV%5sII;0c4Z'^ECsJ$b +)=ioNI,q>8rTY36pr-m-r4sKQ_<,Ru/C6&"q9.[pmGHd5pk'[di"cPEGE_KFs8/:,itJ'[ +7)-&'T@ZRtqU&LeQ.ucFgI;splPqo)Dm)Ps6pq6nn:`N3Y(cl?YPtP/r,;W&^]!ThrpKNppV#<"Q/"%, +rq3I5cD"BIIF\3M3KP%`Gi@nbT,q0`^\5(=D,-eV?@2(J7O<8EKV..NqsAk&jd0?2]_LM/s7j#l-2.K@ +[ZRWNFcJQshHl%pLklJPpu74X4nm`KO$`7hs7hZTpqHL9n+V;"pV-O\ms8=f#P-GMDf'CTLDSiqo?GN/ +oVF3hkuNNaGF8thhucb=3n\uNW2(H-QppZ5f&[-9:;=X?P6psG=g"abh/u2j'q;q:e +L[qX]o#g+lc[Yrcs7:a>ceBM0g`&HVnW3_4DuSnFJ,XNXbN+P.nro^$S3h`)kC7s8"-L47k'pB,55F:: +huE]7os`e(b;r?X%f`u"_socX*XQbg6psF2#(HEtT5H9C2V1AN^%Bb8S)="#hg"kJB/e^1o?9#IPfY*H +fDk\S\V9dl9Wg_]3W+Xsr8HBOLtk#ij^8!uF)HBj;kFt7s,4YeMu8M.>8`^]?i8YJ%`dlTGuVGi&eP]f +)>MCir6*@Hcr3_'oth(iI/j*$c\p]U`]#fZCbD%Qp](6M[lZ^_j8A+25MDVWs7&>Qa8F?^1-(f4hKisY +0"p_%n,'`3qn(T(Mqg=Aq9*,_rbgEEa:GK;n!q^OjtjJ%._2JP[uDAff/[jShHl%pLra)O5Q9\-If1I? +o/D/_\\'k&e@jpq#7i^GIeh/o^9+*O?"83OCgR#us5r3dkX-HgeZXFeA\9[[=f*Rmk*992NAo_HS2nnY +pY9-Uoj?V-+QY5>r:AE&-ia+e/$IaNW8p/%h_oL7^]*o0^!;`bGl-m;]tG$j&Wt,%DggqU:L#.]85DJK +oWY-b1)ZIN4J2T=B/fj=mBtQ[ZXn2H]m8]QTD6@eq]Gh,LUTEW\LU?LT$8e`o^e^Tr8s:%qQ8ZOa\RA+ +Mh@8+9Y*&fI.>27ol#?Wg\*kTiV9mA4;.\U^\enOF6!V`H062dY=(cHjDj=3rNH7o`^Md=55F9'cT_6m +YiK0ieR*/GOT*.Ip^ahg9Y$'T:S,hqn\f=X\e^[)4I]D1YJ9u&]:])pV`/83n,1K"r9S&\]Bs%LS`]b2 +T:au`^\R#]S+GgD?iB8l$q]k!rbWlMnFFaUH^uBOO?%Bq]b1nh&S_7C^]4%tCSBr7puXNM\U!^0rMT[; +>GI@ncfQ_Rc&3hroWaI*D"IV[Dng_T"-gDmk2lF2Va&EjD&1gDB0PpTc.V[J+9/iXI.c#k2_WU^.C'?] +[ZMg(3_,4MgFEjJ&WqXg!l):(kEYeuHgd^OrTNB4s(S/h')!NliT+?#:E+^NAkCOmB0Z8r?MXK5s8-H$ +IJ-#MqTpgS9'ul^D'M^4FcIGt[oXat+sKrLq8lEM/r+oMGCT?khtkn_^\Q-8II(H%C<@-5?R?$Ko:Q'\ +l)101S1PiYa@BR*nYs7Wq:]t(P#iIr(+J,IT9^2r&hOunYQgW4tkSKipMm?NK` +LrdB8IeB`pI,PH/4nVbmm5B0'?i&3;DL53#s7!`r%V.UF@H613bjp[!r8NuC?K""lrqY`lnVqJBp7UKL +j52c#+C=6PiHT\q+sJ3dbId5WqtAc_J+%aAgO+(s@hB:bRGj]\hYHS`^\bKiqmX$t&.oM:9CVXI6psF2 +6psF26psF26psF26psF26psF26psF26psF26psF26psF26psF26psF26psF26psF27-+BT#6uLS!!!"N +rkIkkVuQetzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz0G#7Xp%e~> + +%AXGEndBitmap +GR +GR +GS +[0.48 0 0 0.48 921.60007 112.71998] CT +[1 0 0 1 0 0] CT +N +-1920 -234 M +480 -234 L +480 936 L +-1920 936 L +-1920 -234 L +cp +clip +GS +0 0 translate +480 936 scale +%AXGBeginBitmap: java.awt.image.BufferedImage +{{ +/RawData currentfile /ASCII85Decode filter def +/Data RawData /FlateDecode filter def +/DeviceRGB setcolorspace +<< + /ImageType 1 + /Decode [0 1 0 1 0 1] + /DataSource Data + /Height 936 + /ImageMatrix [480 0 0 936 0 0] + /Width 480 + /BitsPerComponent 8 +>> image +} stopped {handleerror} if + RawData flushfile +} exec +Gb"0;0`_7S!5bE.WFlEbTE"rlzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!_"1Z=E;u~> + +%AXGEndBitmap +GR +GR +GS +[0.48 0 0 0.48 0 0.39996] CT +[1 0 0 1 0 0] CT +N +0 0 M +2400 0 L +2400 1170 L +0 1170 L +0 0 L +cp +clip +GS +0 0 translate +1920 234 scale +%AXGBeginBitmap: java.awt.image.BufferedImage +{{ +/RawData currentfile /ASCII85Decode filter def +/Data RawData /FlateDecode filter def +/DeviceRGB setcolorspace +<< + /ImageType 1 + /Decode [0 1 0 1 0 1] + /DataSource Data + /Height 234 + /ImageMatrix [1920 0 0 234 0 0] + /Width 1920 + /BitsPerComponent 8 +>> image +} stopped {handleerror} if + RawData flushfile +} exec +Gb"0W:MXOnR4mK:'6&*J`&O*A]:ldBn`10X)&Nl6)21!$K@":@BLKoa&5pe!2=RD2$6EkWq#Cam?jMLJ=JrgAfIgVHE0IQZq9A!<<*"zzzzzzzzzzzzzzz +zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +zzzzzzzzzzzzzzzzzzzzzzzzz!!!#'?s`p7i"c(A^]3X"HKT'XqmUKm4`0Zcf>%?X-iZ8Fl%eo_s81^R +Oa!ZIe+PG%HgOft19a8TokY?CGR2HE$:>;8oC=Sr2i$)!4Nqt50@.o1FkY7Sa/;F_cO\Itm)@HJ5CW1u +J,V8'XP)$al,7[t\.l-4Is.2r&MMHS*YJJ*II_$Z`66%\hAg/!nhAh,?_5HAMe=]755q2S4?bpNRIc/; +\qh'sQ1N<3ZRt1u=i!-Y"4R4[t"0TS/Jft9Gkf&Yr']XgX@l*n/`2fikFWc,>K"^kLkc*5G+\]#/b/Bc +O#MjI]KFEHq9'H%c=tJ(2KJfP4E+&>8[gZ@5=tTAIqlgi$Me=ifbX,K/E.fRJDDT&AkTd!bi?rV2D5TI +c$4O)@Y/h(>jZodHIONeDHlTMf5LWPREn)ZbdN=oB+YX\!:2oF1L&l#@30=sZ[$h`D69/&]9qM^-[^q; +gF.;A>IoaC#'Z/YG*m+Y0@(g`&cgR4nn5DLbJQI!*+ng50O+M!dp5Z:q"3e:r1k8kGI-MAiNjlW]?*9! +bdN=oB+YX\!:2oF1L&l#@30=sZ[$h`Xmkn'qeUAlkP%2iP4nVOkN9qqVX(/I^:jg&k+K"^kLkc*5 +G+\]#/b/BcO#MjI]KFCrp%%0D"XAWeVTiiH+L$`hV;H3dcU2V/[]oMf>%@SJT^d$LY3I5ngrcD!J&uRIqD?d4Nuj1@5]bLZOL95j3sdY9]PL; +ACtX,gYoJnc\p_R*G/NobHm"["9%Zpb+GF*l`DD'&,u;Z<0rdrTF$5X!+9a,Xr;SJ_-sDM?#mT"r.-RId/h:NqNB@9:a[L^+lDA7Vq>'.\D9_@]B\61gs2]!:6Cce/Ym:l-Bf3S_#HZ +Nn,;W`8Rcr8c\jIW?M>hKL#bAnDN-X?M=NX?;Q#pFcd0d][]Ks[+?d\(-Vg^aA``OBYpDD!-m.V:QH!X ++64.@mp=R*p[[:M-iJ5+n@>#T=6@i6k2<<=IK2j*.KTTE(fUJ8&(kiT_7N#'oAc03Sqil/\%5$!XQMCD +ZV2)7J0k[S!.]j)]6%HW3HgG63Bql\F@Q8Bf$]5bn@;ba%BtIY'`ih3$n;7-#AJ:6_.5B8Y4%b*,_(g[ +>5ers1/gUATF$5X!8p-]XtY)Z#c0KKTb5uNn`eH*VfZ??VrTr[?oOK'!WYq3;ucn/cS,fgr&O._'gBsu +T"TApI!V#=;$6/9;ag\Z$%iQb@*pU10$_adC\ERITHM*Qmr.;9c-h0!/o=,A?O.Kms.Q%(!6&dGsm2=B;u4;1gs2] +!%c=rM?#mT"r.-RDS!Bl^:_&@/h@i$7i2/__i@NR2N3Y@b$K:/6/aWhnl'mh$T@9Dm4^PTA +3ZW.`6"&)6'`ih3$n;7-ST8n&P%3SF6haY@\(=Q(n+#X>PJ5:edD4t8na+6DW.1s74]:UQV%;!i*WiPg +VMY@='*]0O^eX,p)BV.-kl.U;hRQ5,jr"JKSE,D)SZ;dW`DdELBYpDD!8%n$Ge)T/ +\_@pH__!MO\>A]jnG.XS#D&^-<F)GF6CX"S6F^,dr7r`S@Q6#4Aku29-!B^@ZM?#mT +"r.-R/sqN_f?0`;.Y5<\\Y*@@Y1&u[k6ILKj\YXZ4=$e]!'h2%'`c$%R-O&YM=/XUFk^*]aIhLi]jArD +P[hKL#bAE,V>]G^=a`'\REVE94pK75B79FjVmjNm";87]%388C*CkS=Q:R[>n[# +-Vf_`(4QKi3`AHITF$5X!8npRgg9.Nk@'R36>qk$k6H!Qg\a(CD8Zt*VakM;=24e*PB;0tcfrPuVot]` +LVZq%!,06B!W]_83IH;Uj!V_k($53L.[/W\hq7F5;q9TaQ305LVMY@='*]0O^p\AI._l#RPMlO@c(?*X +UK9pd%+quk](qX5;XlR4@$iDF!)4;0!!$5GG(.l!NedH%n``n2>L'o;R[5N4T)kgV.KTTE(fUJ8>Lfck +*d4J11k3gHF1FP^1iQ2oX9Nn[Q-\\a_knUXMe8sp!&S+\!hNbMkGWVa&EWNBYpDD!8*$qgZthrj_husbH$QKrYRGkSYu&AkjQo)pFtu1gWFXL]3?gtQuhC\ +T(A/hT7Md<<"T+D_Opr1fS78[J)*0H_rh8!U?9kjo'560oI+!0h'IrEUKi)HPWN&l7+[H@[Ut\S< +WuUiq(=:gWK\%\lhIJ]qIPCHb!LD#1&HHL]TE5+\iRs-eOm\56YW'&CUKsG^Q_7E5SF>:!5Mcu:QN*'n)uJ`2dmJ0k[S!.[\Z?ocq#Y<8nJkk5)F +qE!\Zl^S1*]1DmdmaZ/qSaJ"a"s,m*70&teK*hUOdV-id9OcJBb*L?#6Y!KMF3PG?.u\09&ZO_j;\AZ5Ws>NBLaU:fE3?\l9nmTmU]3f0P%^1Zq+0c.FOo.@8bsS;ZU[ejr!_oo +;ag\Z$%iQb@&7+9>UVqa2X.]@KB6P24"Q8L>@1]B`:6]]Sc8!KWEtuWk:>06?2)no"F-k='`ih3$n;7- +Pt"grbZhPJo&\CjPT4TY60E\5KhFiTEb*AX$)?F(?7V*5Vojo=!^(:rM?#mT"r.-R9'$br)p(S>oDQ&S +LdoXM.k7&nL!SI:"8fu8&HHL]TE5*AMn7ng%\+'d]_TQNJae*E9A9n`YF$d@!)4;0!!$R\,NZQJi8)S\ +HKe;uE-q<AG2kZ`-M0"HjU=TJUM.1#QQ\i:]URnW>e$F)`[Rk +p2`u1LaL5(^KiAbbm29EIqRpl\a.46pQ+/_2Cs"=4\RMSNYWpFs%`^#92$'$J0k[S!+6=C?"i$ +<+W3O+a.b;;)kWSX5;Y_$aA6obL@:bcb45BBhr9q\j-@E`DdELBYpDD!;96m7<9W%T'Ch\9R!7JGi`Cg +.mr?=]BJC>T:tuZq3Y9N0\nH-iXP?IYLr)0qUP=-=G(BM,W0m"k0s1:$L,*2>QeDQGQT5!,06B!W_r=0HVp#X1_-iQ.t!faX0l(cD\@; +Gk@XMma#cgYLi0M&Ok3[HobU^rB.Z?ib1djn:6oV!WYq3;uj^?)=H2$\HYO_t&T1ft#J0k[S!+::E,N[Gd8X5SF>:!3eZpc(%:.*#J22)>S>73#Z?r&T[^&o\0YAj5>#gX:3`DA/7?2N&"B9!1GU?!.[40 +?DR&[6jr4!jL]<[E>0nSjNhOumaI5t]1Fs:d\djE"+/7f1jRrIZ.So4`;Xb_DYEf +S3O=W);&T!M?#nCjNl`_p:#DG,C_m:31)bSTE5+Zlgj68Y7Y#nsWX&Us]_U]ZNugI\ieoJ$4+I%C+/WJaLECt) +Fd>;s!%_).;D,/DGB8,eCN`Pg60FEqR_n*MWs"H;^"o^TWQ0q/pWB0;a-X:![P:tZI!0terKujGRR.,R +bZ#/SkkXb0J"/t6htbQAEXV*W55X]oUIT%]#9S=IFk0XZgt.;]!35\VREJ09\^SO](59mkj"6&".r1F1 +JnO6o]bJ'T@,3@sNpM1mFMQ%`HY#`3%-l;IN_b^j!IHiT#?Wh35QG2H0>IGU^%^AVK7pFWorB0^nA.&t +nW!24dEthfo=NoYmaPAD'`bI+lW3;RgGq9GieIDtcd#>G;0rmsg`hp?Ep>_rD8D%0UZ6GLcqZeq_=Ql% +F-C?h]k+2L!"Ai!YCHN3P>Apgc#:>lk*mHApu/E+rTc]Gi=BYTnBj`J9q>`i!-*oVYUm(fULN +iXFkrErC'\WOGoW)okI2nB/Wu6f9pZ4oFg0`30NIDgIS3TlCcDk>XPFmBf3rs(_WdQDl&.cuXGVQpq@rpr+oWT$KY$r3b-_HhZ??$YL>V!5Pn!k0N.$`T8$#_KP_P+<#7\ +/@Q2j(;f%e!en=cNF*-]-B)L:]4#s<1G;b2s1I&L!sDOk!2/M!^\cjQYJ:(f>Anrdl)1/%p=]'#cbKJP +YJ9VI)o)@=D[U1q;uj^c7(;6"oB3)2cB[MJC) +!OfpG&HE[EeZXGpp=jM8jWE?+n%Ec:HtQ7V!/iV_$DX*S%UECHN)iZVQ-HJu_@]M6HY8>8`8(RtUIB56 +I_3#=3RaS2:;\Yh?e]4D/lP1=@*7$MeLuFJbXrr/b!cM)KA?%"bKC8'Y>Y^mVli8QZ%mNV<'Ef:lHoSR?pC&/ +!WYq3;uj`%]=GVXXR@1<2=;5Tf=,Fb8p>VZE;J*uSb(!I+5O972:&sbeF?)CaEkj(M?C@ +^g`Z\!WYq3;uj`%]=b^Wfn6#\5F8F5&"arn#J[fKGj<#jDRu>QVi*sXMjun"j`@UR3]^ls>FdHC:H(nl +1Y($$fT=%_KE.F>+oouC5m78T^.<#iMge1.*-_#2d8T?%kF>^G.ua7s><,s&fB@O7UT&L_$AO8::s9o) +Id_%9G1I`QO(I*sMY;`rBPq*^&kKf40$E`pe.^,/i"RL;>DXs=Fc"$NVKgch9hZ2jq +<E!<*j*M'uCs=k+=<1/uB]"S+63`C.-u"Oa-VbI-#L;(X/F2il]/n)sOP? +B;'D>A&Zao"/^qU5SF>:!:[#<#G.8`(W5UHS>PFf3+D&mE1uoJG^@W<,"?Qk6KX\VMY@='*]0OE6l*I/8E=FF"MB[TUH7Lmp;:\GI-V(Mc?!6 +8$e,`jtL#"&3D9&j\Iq=Iia$`aKa3jij/CCkeE6YrO"PS2ZQ=8.KTTE(fULNIHku!:-[6u;SSaZ0NlXZ +XXjRWc_$uh3#>X,98I)s_t^IlIaj'iVZ(YUPp:J/AA,itUCmR<9GISY-4D@(i8-jI43WI].L3gh!GmFi +;;Ac=;N=r?#_?b`OWV=hC!NFBk\&#P/[QBeNu)RV`jTcVg^Wl,%A..D_Kl/1!?O@%70&teK*hUg2n]d4 +ZL)W'1nKi5`[Pno?M%M_V*=m[!!T6W!'h2%'``2;]'B>3 +C5.KfUn-,j\=3nNZl=^Yg5uX!IuL*.KJBJ%#^`f)tp?M +b,)uJ;=NcMOUp&6d':GqTanWB^DEdYMkAJE_c+,u3:caO)EpY*%mZP^+oouC5m78DK;m]D2>M;SVAuO0 +jj1hLp\=A/.Zd^QRIfM9.(EJ\gadgp]kJH_IZii_[Mo439GISY-4D@(@+u$(s&I(4Kqd[bE6D8+^"*tH +CjBSkS'L;bD9#'Pq/EgG3#=gR()\+kE,Ss.lE1"T#'afT'`ih3$n;6bgSUEX<9DLc\(BjORfp/WBlf;g +]=jPXD4+IC;9k_jT*rJ^Y6FRJYKArYg4mcn!`3:)#QQ\i:]URN +dM@]6eFc?+kPieQ_8L1)3R>44"U>'?0NA5URP:Z?J?:nSsuOfUS"CFY\oB`_W1k:!3fH\]pDf$iKeQ@qX,-H8p];m3E"b6EsjK)a&YnD)L9n^4d=B +!2E4&!IuL*.KEk'0!?mBU=@*D#DJ)kgg6n\*'mY\[l'H!UG6d7jJ1$THGS6:)2SmAkMt$dZu\\ekt&/( +s$_6^XfY>(0Zm?,!,06B!W]YV$AL'X*KOOck4UhKgA#*Y,^-](gZDu;J8QfVpNH(O_clKe7CpP3Y&JQ5 +1>;Q7VU`]UR+uO'^:j0dd^NKfPLH_`0tln;PCJ+2AuZ+:1gs2]!8DR9HX.^0Q`lMBgQg`7Up?b>l0^5! +ioo2B*Sd\8*drS!e"^1DgtSGr+4`GJ[JQp&dV@>N]R0H=!_+-&BYFL$`DdELBYpDD!4M(Wr1l)Q/Mr(# +WG`J;YH3>9jqUg=l2Efq*[Kp[l%&[DEmNhAD6@F;?6L?ED64dj(%UkdW:aLpiN"IcHlbILh@r0V'UU?O +!)4;0!5Omga,Kk6FXi"22U-J/h9@25+*O'>g2]uMdGqj4DTstZF6UPFKYn9:UVEr,#_h:$kdF@6lI,c< +r6GnXE2JKm5SF>:!3db.\(BqHp.e&U22_\$\@"*aNju^5_I0NZN^E&LrZ$p!F"Fu0&P!=ddo5q2^ZO>1 +(6=]oT6.oJR\&g!T0SYP+uV].,I6+2C>M]/'6.\d(G@ +/7f[gp!gP:!3dcSZJJdH^2a'M>D]bnja?BnB1Q)s:H/c*$_iA9 +0%b%8;6D4:n`5Db3MPPUa7M'j\Db"&eV0),JBUt)!,06B!W]YSMLK3FS*5!GNfM/Tr?Vfor2iY:UH`gD +IrsP7lDo=,cR$rK]"=i*\?[VU,hnFlV_92sH).)((7Fd*D+8i@[a+q29GISY-4D@(?qYeT/*aTMU)R6N +qXa+s2:YW:]u003D + +%AXGEndBitmap +GR +GR +GS +[0.48 0 0 0.48 921.60007 0.39996] CT +[1 0 0 1 0 0] CT +N +-1920 0 M +480 0 L +480 1170 L +-1920 1170 L +-1920 0 L +cp +clip +GS +0 0 translate +480 234 scale +%AXGBeginBitmap: java.awt.image.BufferedImage +{{ +/RawData currentfile /ASCII85Decode filter def +/Data RawData /FlateDecode filter def +/DeviceRGB setcolorspace +<< + /ImageType 1 + /Decode [0 1 0 1 0 1] + /DataSource Data + /Height 234 + /ImageMatrix [480 0 0 234 0 0] + /Width 480 + /BitsPerComponent 8 +>> image +} stopped {handleerror} if + RawData flushfile +} exec +Gb"0;0`_7S!5bE.WTRt%TE"rlzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +zzzzzzzzzzzzzzzzzzzzzzzzz!!!#W#$rcmOo~> + +%AXGEndBitmap +GR +GR +%%Trailer +%%Pages: 1 +%%EOF diff --git a/buch/papers/ifs/images/farncolor.eps b/buch/papers/ifs/images/farncolor.eps new file mode 100644 index 0000000..6639f93 --- /dev/null +++ b/buch/papers/ifs/images/farncolor.eps @@ -0,0 +1,2666 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (MATLAB, The Mathworks, Inc. Version 9.7.0.1434023 \(R2019b\) Update 6. Operating System: Windows 10) +%%Title: C:/Users/Alain/Dropbox/Dokumente/HSR/08_fs21/mathsem/buch/SeminarMatrizen/buch/papers/ifs/images/farncolor.eps +%%CreationDate: 2021-06-06T17:21:24 +%%Pages: (atend) +%%BoundingBox: 0 0 1152 562 +%%LanguageLevel: 3 +%%EndComments +%%BeginProlog +%%BeginResource: procset (Apache XML Graphics Std ProcSet) 1.2 0 +%%Version: 1.2 0 +%%Copyright: (Copyright 2001-2003,2010 The Apache Software Foundation. License terms: http://www.apache.org/licenses/LICENSE-2.0) +/bd{bind def}bind def +/ld{load def}bd +/GR/grestore ld +/GS/gsave ld +/RM/rmoveto ld +/C/curveto ld +/t/show ld +/L/lineto ld +/ML/setmiterlimit ld +/CT/concat ld +/f/fill ld +/N/newpath ld +/S/stroke ld +/CC/setcmykcolor ld +/A/ashow ld +/cp/closepath ld +/RC/setrgbcolor ld +/LJ/setlinejoin ld +/GC/setgray ld +/LW/setlinewidth ld +/M/moveto ld +/re {4 2 roll M +1 index 0 rlineto +0 exch rlineto +neg 0 rlineto +cp } bd +/_ctm matrix def +/_tm matrix def +/BT { _ctm currentmatrix pop matrix _tm copy pop 0 0 moveto } bd +/ET { _ctm setmatrix } bd +/iTm { _ctm setmatrix _tm concat } bd +/Tm { _tm astore pop iTm 0 0 moveto } bd +/ux 0.0 def +/uy 0.0 def +/F { + /Tp exch def + /Tf exch def + Tf findfont Tp scalefont setfont + /cf Tf def /cs Tp def +} bd +/ULS {currentpoint /uy exch def /ux exch def} bd +/ULE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add moveto Tcx uy To add lineto + Tt setlinewidth stroke + grestore +} bd +/OLE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add cs add moveto Tcx uy To add cs add lineto + Tt setlinewidth stroke + grestore +} bd +/SOE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add cs 10 mul 26 idiv add moveto Tcx uy To add cs 10 mul 26 idiv add lineto + Tt setlinewidth stroke + grestore +} bd +/QT { +/Y22 exch store +/X22 exch store +/Y21 exch store +/X21 exch store +currentpoint +/Y21 load 2 mul add 3 div exch +/X21 load 2 mul add 3 div exch +/X21 load 2 mul /X22 load add 3 div +/Y21 load 2 mul /Y22 load add 3 div +/X22 load /Y22 load curveto +} bd +/SSPD { +dup length /d exch dict def +{ +/v exch def +/k exch def +currentpagedevice k known { +/cpdv currentpagedevice k get def +v cpdv ne { +/upd false def +/nullv v type /nulltype eq def +/nullcpdv cpdv type /nulltype eq def +nullv nullcpdv or +{ +/upd true def +} { +/sametype v type cpdv type eq def +sametype { +v type /arraytype eq { +/vlen v length def +/cpdvlen cpdv length def +vlen cpdvlen eq { +0 1 vlen 1 sub { +/i exch def +/obj v i get def +/cpdobj cpdv i get def +obj cpdobj ne { +/upd true def +exit +} if +} for +} { +/upd true def +} ifelse +} { +v type /dicttype eq { +v { +/dv exch def +/dk exch def +/cpddv cpdv dk get def +dv cpddv ne { +/upd true def +exit +} if +} forall +} { +/upd true def +} ifelse +} ifelse +} if +} ifelse +upd true eq { +d k v put +} if +} if +} if +} forall +d length 0 gt { +d setpagedevice +} if +} bd +/RE { % /NewFontName [NewEncodingArray] /FontName RE - + findfont dup length dict begin + { + 1 index /FID ne + {def} {pop pop} ifelse + } forall + /Encoding exch def + /FontName 1 index def + currentdict definefont pop + end +} bind def +%%EndResource +%%BeginResource: procset (Apache XML Graphics EPS ProcSet) 1.0 0 +%%Version: 1.0 0 +%%Copyright: (Copyright 2002-2003 The Apache Software Foundation. License terms: http://www.apache.org/licenses/LICENSE-2.0) +/BeginEPSF { %def +/b4_Inc_state save def % Save state for cleanup +/dict_count countdictstack def % Count objects on dict stack +/op_count count 1 sub def % Count objects on operand stack +userdict begin % Push userdict on dict stack +/showpage { } def % Redefine showpage, { } = null proc +0 setgray 0 setlinecap % Prepare graphics state +1 setlinewidth 0 setlinejoin +10 setmiterlimit [ ] 0 setdash newpath +/languagelevel where % If level not equal to 1 then +{pop languagelevel % set strokeadjust and +1 ne % overprint to their defaults. +{false setstrokeadjust false setoverprint +} if +} if +} bd +/EndEPSF { %def +count op_count sub {pop} repeat % Clean up stacks +countdictstack dict_count sub {end} repeat +b4_Inc_state restore +} bd +%%EndResource +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 1152 562 +%%BeginPageSetup +[1 0 0 -1 0 562] CT +%%EndPageSetup +GS +[0.6 0 0 0.6 0 0.39996] CT +1 GC +N +0 0 1920 936 re +f +GR +GS +[0.48 0 0 0.48 0 112.71998] CT +[1 0 0 1 0 0] CT +N +0 -234 M +2400 -234 L +2400 936 L +0 936 L +0 -234 L +cp +clip +GS +0 0 translate +1920 936 scale +%AXGBeginBitmap: java.awt.image.BufferedImage +{{ +/RawData currentfile /ASCII85Decode filter def +/Data RawData /FlateDecode filter def +/DeviceRGB setcolorspace +<< + /ImageType 1 + /Decode [0 1 0 1 0 1] + /DataSource Data + /Height 936 + /ImageMatrix [1920 0 0 936 0 0] + /Width 1920 + /BitsPerComponent 8 +>> image +} stopped {handleerror} if + RawData flushfile +} exec +Gb"-6_5h,4=gl*FP`.Mj6Qh0i`#q>X7fh"7E"\T^,)Ch1prk,h+b]b9&-Z'QRW,4]RG^H_M. +2ns]\p\1Zeo;Q*qs*jY/_0>nS4*g)P:LDsAR@!@@]mDUA]_IC$GK8LPOd"T!2huhCs8P\UJ+qijp?ocQ +hq]7?rgUC[q7B;T4jF(PDnPtZHhHf+3B1*QHbe[34Qg.DgH3Q?3E<9G1qAOV9BX.I8a[YTrAXV;ZQ8te +NO*uE-2Wuek!nd1a^:XmT'+a#M26tDLks+STmmgi&U>L*rq'cEf)'Y9pD^Ns:-KUP6ubHRe[rl4mP.Fa +iq_Br\Y#[RLkpkCLn'>$=[YYg&(.$coB +P6>dB*I$?8@8bbb9.uRQ5+QQ9V;Jd+\a(Dfo3U3mN&4S',]g&3gZAX4LM,`bNeuu4WdGQo&J5TeGnfns ++sJ5/M*328]Dl0(:R!MPht0IX5GOmN_T8d+Xc>Xoe]b$Am`=(UT^Vl>]T'/7"*;]UiH]Hh]bTTr"\2P] +SkU/EqsKt*45([$S9(tZ=W@ANTA9AamB3qh3Erc'-U^?j6psF2Y)*'[6q$)=_kZ)S]k!2oU/WZ+0/=Ca +S4#3)`^BcdgbRjRY#*-q7UkCrj._AG7t>*%o29sV892Wk%]nE>hj^bJ`p,dbL=4Xgndk3-7 +XSD"/c6YMY^&KG^&J5Te&J;Q7qI^BPOV?Y>cff=]G*YE'DF'.bbE0JTl+sJ3T,*.QZ=[Y[=(aGf& +L<7B;[ML7=gO\36KoVWs!]fO'B5/\i6bS_FWb0CpR)P'*oo$-L.c`NYH_4E?:AnRIM96n.; +B+Y^f&J:.L"T>Z_Lr_lL`-5Pe3VG>,(-Ne$9Q*FT&ZW`J'.V:;c5a1(XEir7=Ia6S0cXaC>WjUu=udt6 +,)Z8piiC12k8E>:dgVWrfOfAu\Ru($;)*o=XS&NomV)7fDbkVRc/\eq\VQ&tLkpjl)?$mtLrbm!DY_$B +k@j%gjYje(U.H9`I_553cSI:p/0Jhu!-A.o\`,SNl7_Y34X.*LVgHW03d9@7i]9#cHR/XH`>;h>d5)6D +Ht/C`E0$6(jGr`a$&!6aIJ0RE]!WJ$+sJ3T,4>g6B+Y`N_#^07.KJsVQ_8B +l;!;FB:u>)SIsIJ5t<"a7QN:es6WC-4XCZag[k;'r6,kl%Q<@tC&C4CEsWaO7^kr>pG$BEXlqq/"3UI] +k1m\mB+Y^f&J:.L#Q:ubLrbm!pj)L,loteS[s`9:DpJZIQ]=J1,J"C&?8nT9,p>[1j0>SiM#KieAlXMV +oA@3LK=g@lU,_?&gI\b3K*qu2ZW_86@$u)mR&c:$3B"V#e2^N0dRW/qD:2]eZ88/F2;d_@'G1oh&J:/3 +d6EPFL^`9$;4V!]EN]`5*Sfb1L3?/Od^e;P82qeZlgn.m]nfl,pg$p9;D9k\c(96M,`r$oU1FqH3N\Ui_Y'A@,ee +FCmTn3/hi>3Od5XFAk#%*;nQrE))u.^[^?WoL&X0+sJ3T,4]p(5Dt>R%(=^)k>cIHDbQgjTPs`Ul!J`a +Q<3@`%ib?-IPT1aq93&@L_1Lt9*Rt(En#AQr%iehJVhPgEmC\hk]D#&)/sC%H0-BNOick7(od'^(;J4+sJ3TE\@3$&J:-P;;i+m`IDK#i1BPYg!\!t@:lD'%BJ94'Q'ri?\i@_ ++bk89q$&;3V$]IW%l4g]-sR+UUU'-!-IRj7VfO'fGA`f]N;OKch6NBSEt;gB>s(oQRsSSf@Ll&s8G3u? +l#C>MMMR(ELkr\aoZn^*,#)<^qrap*qaP5gfSL0#>3#-CNs'd;1Ve"R.,"SQ,+:iTW*0s.+\&)cM1i6H +N'cZ3ib"`8QkbX-k:Z)YeoJ3DojP25\#=Ps8L6n[h)ugXphhNpNP)0O3t_,a2eY=m_dk@[*0tT!Q-L+sJ3T+sM&GoZn^*+q5I_/4)a<,/g5g])=E4T`Lo=6&8"N1G>r5E__NONY]pr+`BjQF1a@(8/*$g*GHM^9jG6t(Ca,# +\d&pIg5NZ+Yaapu*r\1>HV@Cdj3Hh"\"@(%@K.]'+sJ3T+sNAHIhiV.JbH[;Y)#nbDq^]TT&r>Ad20_0`#J<@Y;]kCsC.i6/h +GD#PDBh'F1'c'2kBpOeP`S#:Br0J%TN[Q9?h#mP11o%$AEH@UHpYD=pc.+XqOI)hg3q$O?4O\H"3t%[e +TA.3lb;VgW6psF2*XhqQLklm,I?pk72O)oV1[+r-#N#%tZQu:8`%1p69]XLkpkC +Lr_rVIhiV.#qpf)Op^E+Ge7e&"Y!K?0nRH=Bc28FZ^+/&Sbg+*$b0Hc>%NQ+cHQ"]@7a3*_i33&L61FV#/aEG,CJgM#BIU+sJ3T+sJ448,k+a+qe&k +k5h@M3Xe\D0s_-]8D7UA3I&'_9]@#_qp;J;?1<$+W*)g"`9j2/mUOQpdnl$Rc2r0\,T1O//%*UKcJ0*I +)k"'(j`R2Na2FZ5hE3"2]oE!V!+jYC5B5k(LkpkCLks.&d6EPFL]jUPFge`*,ga=$eYq3NL,/n!UiD&; +/K%h`O[A(b1Zs;d9;?N3ef:3F`#EneHfluqr9;B1gGDdjadd"A[Z,.L+0qHGNKHRt9okGHb+,d]Cf0(% +6PXZ#5*Y#u7n2=>K-DK`+sJ4lMuHjI6mQk[F,,b0UZ-_aL\sVAgQFR8_:`:n0s3Zn0SRWJZP]7WF@"CU +9Y#9Bk;V*rg-o[n^3P.rhbIXbgE(Rh1\Uh#?Ol#hKX'5";7ghS[UF(n;$^Z12gsR&&J5Te&J:-UU43pj +&IB_BZ'pLb-\mWgh5\tB)E,#a%u:@4VK^cQ +9Zb1,B?LRqW*idjP%l>l9SZ)*0")XE9X6Ti92:j)G/ZsQ5bj$/qd`kuihFa)5Nc@9H01u5SoaQ?qn5aj +f7ncsDKj0IP]H8(T/jN'`a+CVLkpkCaOS[&Mhm0?Y7)oS1(>(?Vj';f(IUKEs4e+NUKtDFFPJWT]B^mo +6cLLo5BfclZDqpj1\*HM0YT4WjZKI0*ETnO:8HdWrU3c68%,`p`[9^%o@G!$@o+CoZ(2%Y1=`afm(8kjgJ.ger6nSFH)!FW;:B^UYu#k0hEkA'TS'=cT@KIA=*iD!-\c +g!^PsFH>K.Ha\h6l;;Vb>:,Z+Q&p0L@uhnUPNP4eiS!fBeLJ99W\b=X&dYOZ5ELANH+KlMD[?d3@Zfpli*$UdBN +6psH(.0'('s*/m;qkYroM._;4_]O?s_$?V0guhGF9E-Oe,0u4s/JH0tm5Z1!KPW*O+JTmjg'Tl13hhl? +K$C7eaD(7c"ILX/LsbUJFq$uICK#'2_5IB:[*:mH2cG696j*`#.rr\m,2( +Q(s-sq901eXdg'L:4Sbgc;eQ4mQVU_\gcA&Z\XEnLks,Vi33.FYAS8ss5G^2U7_A]k<\O"IqPn?,"<>)*o,HLDYk>1`:iWuo.ilZLIatDE-p3#+S,F0!fmTaalb^-iq +q4N>r:*.XX[e4LH+#?#K#Bkmo(l:5hbkZeC6>,g6]s7MU^e.Gh<+57nXF%1HLkpkCLkqS;^]42GJ+V,Y +^\l9ir.?*h+O>H4gY]`Y^&=-Zq3)K\dQ`YGa>9K#l.Ke'c67DfER%/G@>SFD=;GK]XC#W0LF#PSmG4As=)H"8n;*]qW`\h]_(=^D0[3:dp8=Sg*RCd7fI\DI8- +SsZZ/+sJ3T+sMC/i=CG5KeIi4p@e3TO$*J'q%1Wh$kpt4jUec:Xc_%fo^+5S2)LTJXk^Ns,6g+/]KJ7W'+%qT +LYmr%7Otbo(;NFj3R=T\]hD=AB?n)fh<=C?nAAW2`EsU%)h7H< +Irfs`qe(EPB?/l-IhiWY-VYCd>`s*'^OfU;4gkmggmuGJM6A_H`.R[TjDSO/0tm,!f[3Yi,g;b\BX^6! +'6Rp34Ho@jatO(lhCOUTke?B<:7"CnIgD4*TJCF5'V1^^GIME9CQ1u"-^"50pQ=W+25B1,?/UZK(Ad@% +m6VBs&J5TeOe)F%J,S!dmHsB@hX?Hes5Q?Cj6l_-pk(djp.#"eLkn0![cJH-8XscMqD?nUa,WWi%O9eM +'l/\*-+b*2ghODP-uUI>S<\'a\CpeHe236X(HoCCZKPT(_9fuM!LhuE]Mn"0R>5Q9\QDq%"0Lre%V +)h-X%?0nIZpe_0VNef;6k22P+o#OR9L_(j'4"Ck[j.> +k%qT'XFX"/]VV/Nq;fhMoCg7]d[.[iH[GY/07NH0]CaDn +,4\,^(k03'k*M;c\_k+.r>85]j"6KIPAR2Y3/d#X02_#+YLd:TniY%WR,2(#eienXX&-WPp[:"hN-Aj/ ++RL'!E]Pi,7eJ,\WL>P-5c,4ZGAq3`s\D&U_;<6&\bTqmK!dYTo,&i`pXnqs#*Li)R]1/G?P`CT#a +F%,L@B"/N+h5q8\bCc:l^mT1qkZebD,_QJ6GO%-SI2%W^P'Jlfj?e508E2,g0!FDX`3]?T3h^t/%`Y(n +De0Lm&J5TeOho@mp9T8JkC6=V+e9cZtcM?UVZ2Z88U-Nc,oQaUj!<)mZ(rJ)^O:1S"fSe[tPL$o?krK7Z^9L@gN!->Z7Ur +!h>ttP]]c-h"dplJ:.6ac7[>p[aJ#\oOQe2[3!F)l#lWLIKSe:?UIks:1iV3/2"RQ]$d +-g2&+nH20Dl/Y,B&J5TeOiKfg/0Z96NjrP5PM83`H9J#m(bn[S"oTBG:Veh3>oY4S,\lZu4jS4]F9>!= +bptePrCIS, +58\ejiTINTV+!d?6psH(EqI[%,4af&pu"]S;J;S5mVK8HWleK9QMa=gn?=hhubAC;!&4><;B*`t$ +&XlMl40V`3X@N(;+sJ3T,4^QRT1)0/aUrZ@:c\7,)<-e;HLsN8mYuE2V8P+I1i.7dR`U1&3R3gcb37V]eNX_#)c2k:/G9XWM(7Erf!V,mE\%0sO"$phYTrH"%LIV$10EI7MjtVe?DGZdm4cC0%/J#%6luQT[ +@WuUpJ&[\]f\`*r((h,j&J:-16N8S\,#=6Eern54MWenU`(mmt,O+;\fC$8DMds+H1Reo_b:LDQ=#.Zt +7nQ3kY012=CJ$(jn +qJ+I(dC)#47f2;O/?'@F*?%(A&*:F)Pi> +rB)8b1)>ih"!$bj8u.jcaBM1:0@bfnnW[3.lYOKFhX,'?m;^>EgV3V;4#p`hs0\oRoAe&#nNf5neK8;r +@m5f%RkT"%M0'MZF?st:>!U0B+Y`$=tmK?Oqq9VJ_8?PI%H4k +ZC'i2\f3Lir,XMH$0Nju!b^"u&(0^k$qce+Q"Xgie+(c=gW9MkF5(UH/LIDYFp88#@NTX9/g8=WEPef@ +IcbMRkn7h+OBrOEcN4[-6TC.AhE]diq@Y])LkpkCLkr\gkat:3jN5eiP!j2pjKOmCMSbN_c@5Dt?='-\K?N6FZA+sHh0'"0ktNmm.d#ZrDR`ih/iOI.YA +"7n-UFV]_N*G#hMgUmn?H\OqJd#QAJ(kfm#scPh,=S.qQTZr6psF27-'n*s"#?<:Q*Nmp2E'?k*W4dICaJ,+m%.C+/Y?l>]b($LRIaP4'm4_El+?" +0mqJO:`5C2-3&@eC?+sGUMBDXmT%P4mX%:G5ck9&bK47%%7a\Qo-Ge%S_WJK6&HbM^%OJE(%*/P&-nHKUUQ4;e=IW^^qd +@Gn(`U=AqkS/un,4*Gh5qjsqa,j1t<]*B[+(Wm&D*!q[fcSLkpkC]K>>L +77?4YdH7u&Eti2]BM_K/ojYeuW2!RD)(f$[d$H8#NUD'M2);Tf#**/S +qnc(h2X*G_1[eq7TohF':5?ifm%Er\r(C7:J(A^9o5b$5\\m8J+sJ3T,4b/pIhiWY-U\Y^(H(58a'?L/ +"VG+aCr+RGKZkM^]%]"H"6[EU59PFP,^ieh)s>Gh0jN92&E:E:C_=rTl_,TbN)Qu#3$+cdt/K"<-.(uS2/0Mh;@n1TZ#Gaj$H?l?F0sQs0kJm8:Tf_b6*P8tOU/s,HSAu*4bX#u# +E;1,2dhdG=%WGsr&c6su.FT>(oJYZ_T1).96psH":%ZaU,4^D[r4*auLaXKmBl)pO@`eNGo25o6c^_`/ +aAV(WiSIh61X`u';'MQDQt)N$H4jQpjs4X$SJ<@=\'(hTP5X4gI>3Am+b>#>,9#gb^_LA>,E9bC&"24) +\d(ju+IbX+]c0'^)nFSVM26tDLks,V6iS\],#8J\B@!@u8__5$UN.5f]&-M./c7CN&fnfJBO+s5WG"H, +XKBdMJo_uZ4E?1HRIE+9b^-d]4c@?^hqW;D@*_F"G*V!FM*6%d$JQN;g]\VpMa3cpN_V"g^Wc6psF2j;gYg/0Z96$`]S^C=g#U2UA1]>?[1Qh@h0314hd[ZHC^Be5Tu>JE<'/bqlme$C@`D +<,.MiNa0g2l9ol[)X!ro0(,^CNn2KIp.l_t04u/-3qnF8mc60i)ekhOU^i+PBnd-r[F$9M=SGZ%h7XeU +JsV^3Mhm1FLks,V7fP"`,#=,mC-)kD1RZ$qC,*;((dZua!cRS5e-1f1Kk +kLN$h6psF2j:Td(MhoFfJh_Y8P?m)XHT?\`A%#Z9d@Tbb/ho-$Z-!3+,Ej!\8F8lANl\&'@p/ELPSGEH +&a!AXN!(16?X.K(U/17.T"Y[SD_(c=$0eBKqqO,$m$q_JLT*FF+sC/V[kgb13Ib*t\#/Rh&0l&ZZ\XEn +Lks-aO8`9M7%Ot>)D>+/6+hJ"1Uk%C-;D/HKRZHio47T6`1X!!K&2I3!)q?47Md;o,X.H/gXj_AD_!/\ +!8jC30>Zug`t/`Yk*d6eK=Y"(oSpd"a-QHr_W6pX7QRcEYW'&9\PmaN)&l:Q`9#$?Uad^BQ(D-(Q%&CS1Ud_ojs+kP8918,pqGhqIiXd]f\m&"o:/NjijFS +/BR0ej=]m":)lML2-Y`]N]\DgA9OF\%H>VXW9LohXI:>n4O\LEZ9%/]6t:_&fatIW]_u.m#9?Vh+sJ3T +,4^QRT1)0/$%XjCJ6bLJ'Ol1O7[FYK)(HZ*c5:EETl\]gHQHWmo/M&aQ[#$ae)];l'eQA2)0^jE=^u6Z +l5=$BVZOG^i`g)7-9Y,`RSYsB3NFH#S^VJS5iU4Y[3gSqGQ(5=7lPm=1`AeIr%erK+lrBZCDiER&J5Te +&U>r"cQXS([%On%Wu-XOV]u8(RKL.S\3#Ier3dc:/8f*BGr7?;P*TQiN9_%Nps8lm,+:t2AGEG7We[S9 +U4!EI9l(;'=;+CMS*>]E?k/j=Uh`5YA0t*$;j/:bR7pYloAOt5C:";JGJaUp4DPmW$-A0*J[1mNk3pT7 +YBPhZLkpkCaL0AZMhoH<@gp5lB?$gg@A_J(NXO:JX`0+aDtC6glngAX_2]+egnl-\!IRK4G24mM2[:R> +HW&h.3nn4_9-uPZQ?:!^Sg`KhIO%QtZm'6Dn')1Od0s%9(225^3(C-=LJQ2I;j"bQZL^@9pTQli':%Co +k[J:23(-/&6psEa"oYc`Lcd\l5eFLVPVO;I&V9=']+KVsW0h8H:dJh7>>$q9=r78ZgJ!TJoP)Y6U]#gD +[0l=?&0fdAFO8XU8uPHJ[Qb#?2^i+SSC>g2QC%G0kRFM7`dRADkbs%Dc`CciH%,8%I@;YP +DW.8Dj,D2<\(p;aq`Eg`+sJ3T+sM%fqI^BPGsYn#8O:C9p=MIfF2T:=[)9d5?jRIdM[l^JRYoM0EMol= +.?2Ls4&*9((cBri'KUD)@\82B,)["Wk9G!VYsC^FYlDo@>(/s"cGTl/Eh&hU;ZH +^R.sm<(EJS)./Q0IHE0-30/lOLkpkC>`Sed6q#lA8`$&+R^_l6*Qj@$AV=E75#Xu,&S2G!QV5U^bn;u$ +*5cdD>U\Sg*jq3aan0a+S+2*dnprafP7oFC/VKcSnGk1_9TFo +NK;AHDLq5sFGHoD@O(H3_@8ioD"p<4I[[BdhX7q1LkpkCLqGV;cQXS((*F08XKm(86utGO9OgH1GOa*Y +\:fX47XJHJeF'WbgOm0T1d>K#.>VBY*bp!\gKsTiY)aE9N^TeOIT"F1d7FURXnt5knU;fK3H)k%EXPab +h9aC,]U8BmsYT+Z&oaG%UPeZaa<;JKiApBSsf#O7qfM&)NUj +:jLFt(bD/@nlBQ#B''rA9#r^L6JLaU<0$$lke`O2&A9#ma1<\r?=/Yo8K$V/%NcAs&J5TeGqAU6+sQTN +oH_%ErLZkk`<>=nUU6^&0'IRG9uj"Q2Fl9*RlX*a``+%mHC&d8pfQ+MSetB0F5pEU3$At6BNHNrSbe6c +k808-C`B\\1Hig5l$5eruPQlF*#&!]k&S>,-^lc_kf:Zs^Y#/7%XO6D#QF,n@?]2n%-4Y=$gF=Q/< +B+Y^f&J:-q8,k+a+qI2d+5.'.lc`m]]5os/Yrd_NEG9R8S[P9R]s450E-/i_';p_,N\AY";:E_B5!^7r +&aL$4c@=lBGnmO+H>!oDG&HrOfS$o")NZKM?/OZG\I1%.77i49RmYlM_45]CCbt7:qMtP[Z9N/A>kG_D +$/<>[iL_^Z&.oKd&J9:VoZn^*no0[I^1%__"`J%Fo/Q;aRrD-f(hqdc#W]!8]ZAX*L.*5_n=cVr3M=DD +dVHZT\]P1?7gKc!?Iko/.jPKsh=OSKbNq,Wdd6<4b[Ng9[[H>7%dB,.G-ucU/<\19qmZV/7=W#3B0a/J/q$?.iBE$8 +3_j +9@+#4R0e5m?/-957!*50rB]Nr@.\:))opM+`^N9`6psH(D"Q$t,4[u=Cur@c#84(LDB0tnie11O;63;u +W]=5s0<_0e`%7'3X2W>lfH_IX3?2Ic#B$G3M$LZ/IrW>)KuhU7:.S:poO\b48m+sJ3T,*.Z]=[YY!Li)t-- +_Meceb]B9",^$*K(t%4qp9$pYFl@CGoW=&>B&h9`N4($cS>@uXn7F8"`]SGpQlDaj3JZ_S09iJ6Cq6Crg@/,$T,UU%*'C3n,A%&/?\*Y0_c>424G)RG0+Ob0o+?U02di=F;maQ6bMaD+r9ODdK'tf.)#MlXh/<8Dq#`1.H\9+IjIF^mR(h1c.VsYlmI.F +cSoe$7_/n:s$tiGSGhpINQWYuJmO +6F$tULSm&!_:`eTYa6VFao*iqQSWjb((X);FM$+G7-)#uhKiq4+o:^o7\"(rdB_ +%)SD>kic&"`+`p(_728"0Y>gj&msX\;gU(Ua4[>)3EaKFWhPW]$1TQZ)GF$0\6F8X\(40^>06+=$7Q]SrY7L!t +=;@YY96p:b&#Yc+$aJs+*rXD4.RZZm6psF2jAF8gMhoGsBg''[J%iRIUMGY4Y^#<;-\2"Ir\ +4g^U +:1e[@Kor-*i-alqV"aZ2aYr20>No'iEjO>Odr_.m,H"6hLWpb^+sJ3T,4?HHB+Y`d,0@lKX72Jca7Es, +T)#6)`^^gJb5NbX7`;t,Q>78F)GabB!fQrQVK&%2AU"#;9#lBH\](u0Xr]U*e@sqmg/cLc-IRX+sJ3T +mje0H&J;Pt4_q5/HRVj+07C8YU^rkdF?MCA>#[\EIAimucET.A(&/),mjVqtRpIg(W-tHZ8L?^rL*jo!hZtE-) +*sJS-N,DE(N,FX/*Ht!jHWcQY]qj';rdrF3)pO@@BinR`#Q>uTR)GQiI=$UE!q.YA=_HlV8N/3:GLkpl":%ZaU,'$,nX:>V$RMJ_sQY=:T +DPJ_]7jaJTeJ;\VUQLlmIu(0I4V+'HdKsOZF`DNkZ%[.%BGW,XEbS9\OU#f^4'GZlN=*s@mX91UmgM>Q +mObX:;(l_KHKa-:gs-D6-]us61\YX0H_0KcGV6oNVXGfm^jsDo6Un87*;.Sr(D.5k&J:/7M>gXG7'9&s +,Lae^0FLV"mj4;fFlj379?G)W7XX[-82Wd\C)/Tp#ElVD`m"%ajeS-Q@"c.b1-5GP)4hHOI/""Fbg'V/ +%u-q&?ls304q/j/_Wmt0(D9\:itFYS^n`KpA*L=!K^bAZaM$JI7L.e_5&(Wdh21?eBt4+1_sk!gLkpkC +a?,=Z=[YZ\8@L*G9oQmSQa"CE?4grkA_K#_W+.U)PSbXALUuP_6S*:cEPgHS&`0,6`3nb*e6KBL4`Nt? +BHCt_Q(uCGlTL9^m79-P)j/R]`7.?OP7iffIsk)S#%mJI%)Mot,*'67F)ILT":.YAQ-P&@LkpkCLr_Z6 +r`MWWXp*&_h9!=2[PIuk/S//GbHFPD7?=C*Tk1eW6/Q8H\#jU(eZG;;?.;K.o%c2g`(ig^FpCH3khC/K +0s3O.C(]=W2'$PFE\lje90!BqLY9`i=6>t2<@eV@]Ng^,r^GX'$o`/GqUrj%%skc]S3jShJcV0)7ac +s5cR86psF26lm9FZ\XEB$VH][(K];9TI]823$ZK_5M>mqlu"`ppF&962]/'Oj4ilT>Hi1W1"^[t8K9ce +%Q2t7\?k(*K/TVr\SjBa]]Au6>+;@KWJeq\Og%=ek'0i]S(u7-,;l%<,1d`c.D*4(X#?9qe(4gnGHQ)a +-A[J6Lkpl._kDPq&WnTl%3&i1&\g&^nWoP9_QiieQB1Rm36_<>SPh;l_O8gYRP'm`s%H9ZQXKIQd*%P@ +LsG`IX0D!2l*E=4#3hN-TeARG&.nX.Y$CJ:&%1cn;l2kL%%YP`IF0Y]ANXkPbolEf60Dt%6> +(#5cC)1U.XYT=Ag&J5TeH,n;sMhoH^+S=D#k\.l:k3,8EjE$p'Q`\5L[jGD3#)q-POdWJU4ii\pIQ'-r +OHG>m&u8D-"WCN)C*N/SIIMrVQp-VgRE4bg:4(u@ACQac882hPfh#cW,*7(3g3ei+jQ&O4AW/hJ&B,'p-);"/F()iu=&%7:M +LkpkC]]84J77?3?cl7p\-8!Ho\2`>_sjKQ'\87f,U*?]Xu(UiG!JUWjCo*E;HHNVUb8&3-S]\tdb6lb#P*:k?ImAdr%g +_:p]sqI^BP&J5V;-\VJ%6q"1KX4R?;ro]ZpY)-bt*;ScEajl&_'8u5Z&2'O:aYm'kS]>tb3]%]I7n3e7 +j;+\Ni68=,0r8E\=Y5'IpU\CYp8HfKJ,alm%)(j&;AMsf87&,(]3@-hr>dacCK!5[V_lj>8(S+13LcFR +@2pOYCRRDtXi9F8&J5Te&WnGor`MWWY"7^(OZFQ^b_u]FPn#oO'Xl2TpX#JKGYq'eP-'`7`K]Lg;9]C- +%enEC&=(u+3,4nnO04X8T/'9+`2Q9&8%fcJ_2GMO_SQAs0];KDf'Oh5EOno\!$!h +401)tBBY%];I7edGZ8E%7Qh"^7(Q86NH"mrJW)1ufm,?m\c$n4R!H>!O8FRl +,\([O!7+G`2BD"i]U\U]4*fBS+LaHS;ZB(A!l"r[cSkn*WJgq)/Dt%\gsQI\;)-2:*facA)=S3m,*o-]H3d4m!6'N +Z_Vu#ft+8N8nSi$rgE^Q(UG(V'k"C0F3Be^;mO4m&NL0BgLgoTr]ndkK8>>>LkpjlM#LOF7'6ToO)]2B +BLF8;O]cpfU;IC`#l23QW?rudq*ptE?#!82jG +%/"u-Oe"GV>B&r!MOZ]1d^IR&3?LtUagUig`cgfE&u9l-d=ap%q,sCa4Qu+.iu2E'gWBG#C1r7)\3iYP +6psH(Z-Y^nLrd!fH4>08#dX.l_?f*;b<5!kN:ZVdb8PpYT,_4,QPbBG5.QT9@nO:c:<[`(Zh&3dU<(5p +05DBrZ&s<&d@BL9g\\u/MG>LBS*O?$`S`>\G*WJR;&q!F/RRRR_V^]YO +R?H_"P2rS4npr*_MdGM*.VBJR9rd`r%=S8-Z7^hl?# +dM.h"EZAeRmq?V<3f6UkRf>,]O(:,s$+l[YiaNmG>+g4fh7q@.(oLeeiossm^qT4U@38T$'*_$#a%eFN +O>Q`g[F=\0U>:5m)G'_-q9ZHIRTND8ffd=nnd1lg?Uaq"LkpkCLr^g8IhiWY.miuN:UTL>CK)nZ[3l.k +(e-T2(A]0G0Q/Nq\p,[g9kA<4/#2W()9$:#8346[\64,0:u&=i9JF]PL>:q2Ol:66fKJ=8=Utreq/<_a +;\_VORXp*UBcr)Vodtilik)1B>JlOYa)JDGE%:K;JWY>I_]F9Y_.NF?h;!1:O%jQMh[!CoT3kd;VQC%/Wce[n4E*g[k +#Y:"7&*,<"aJX/rg+#j^844/Qh'6XH<'PG1c-?thNqF]T4\E6k58,O/QNC(H.,TDSlj:;E5"%eO_79[V +c6=nrccc/N[s[TH\;5rsLkpl"Ab=:m,'#9H9EPaFeA(ducI9d5[KTAB(^l4s9tL+m=RMl>:7u +9:X<\kGQ[r"n:dJMZZ%10Up)H/8:%Z]U!pdam,ECgEIgc+sJ4OFnF!(,'#8+bXOC_5kBNREp,e'm`=(i +;l.7gKS/Bt4XlG*DN5l_gch78E9DnRFH5%7^!*OJGpXclUD6p0.r3/u@=Y?J?r'P,5bBHScFo18q+]-& +6Q2#*MJ[%[E5K`PC_%r\jE>F5)34%c]?u>YHlm$/iVUuM-LJq$TF4uDhk#Q9&J5Te&J99ooZn^*E\1Gp +&p@h1+nP%EI[P/qn_L!l\"lps6jEmJp4u^I7Y0El%lkhuWX<8c:7)fZ(suYT6ol[*74pJU9?KndoBR!5 +M$G8D8Je#gcai95!5*;HfY&0XBqFQMleD[5jFBDMb)RqP9ZWVrk1*'@lNiZi]X'A=>#DN*/8F^4AKrj*ai^ +*4$]lhgK45aKah`=#1GOTK'[loS-:eOs@RPRi`HFHL?2."O8'KaSOSUQmDC1n?_3q+sJ3T+sL+I(Couo +LEGC0hWg_%7-(J4(61phlu+jlko]-Lko;opsnJkX/)kl$Qnrs +/mF.uN?R@:@_K-`6s]5[;kSoV.ukj!WLLuGHG1Oi$&Rp;.P9"ll/=E1j#r3[82,\lW0J]1*EV$IiGJ7- +<&Ul1<+HQsAq`5VS[2a@)qKC=8ik-_aV?U$.YPCiHalltG5gM+T*T?BNWX4if:" +F=a1s`ngYgLcUmbR>qhgM3B._8kgZYdsKH.,*VWUDRsL#N!s?@@'=k1'LB:MZ5/DG'/Ead.0,41m[HNE +7ic*_LWQH\K+G5214-F1l"b`3T_*jjGmee9k.H!kk'\oZVhu/0B?Qo96psF26lqA,J,A!0\$o`EqU\Lb +VLK?nO_]M!m6!0COT.'>00RFA,Z*'3pKfV^SPkK`>[AjU/pBuCid3,R+I:5Z6$t>sQ$DdPgLPrC!%pRX +nrV1'-diU^f&4*He*Y*;l_PRY<^.BEa +i1e9ioAuOk+sJ3T+sM&rTD[atTDnJ\5Ps-[rqCpBpZWpqcQXQR/Q)aG/iTYi8Fo^[l.F;VdOpG!0j$-b2c!?:"B+iT4nF!9*D6s%V9PbN(:kFi.H"/pUUb8RiP.I0o/!mkP +S%]:$d\CPe7$3!WZDXa_)u&J5TeGmOE@5QC>m%mU!YB0Z:``ui(d@,8,EaEu4oI0e(7#o=E# +kdkXr:6r:,Tdc5ibk&-k=V/j&!DCD6e&b94`3J&jA=)P94^J[Wg1au)gNetUj$%pg$NTHO+?SY1R6J-c14!Z)5#-4j7)l%/$0bQ9C7 +CFCAN+sJ3TVtopKs7>""gM_N+>C-k25Dt?1\);_=Y+XN+G!Bpr6t3jsAuUiO6;3)%#EmJn'P3qA%gIH/ +"e8LkpkC]TKu+]>(tk^&@(P^U`r\rNh=$qZ`JIr&mkM'Q;YRkbNKDOsjmH,18Hk`2VUpUC?\41e?*\ +cll_5%C:p3mN(5F&\6tdq^n@7DDHa'\VHR)#[T'"mL^>^!(=!E1\c\H7_8^(VUKlc6Hl9o%nKVkf4+4Kjq,5gdmTIFUC/16#Xt@,kpR`"+sJ3T(\4JRqPUg3\,Yq. +s02*>rNh=$HNiL;r*?dZA&uY27nDi)!Z;$n]u8Dp/8KM7n`G);&X2W&Cn;N=1'_clmTX9i+3$:,m^D:q +314D-A>Te<>Dr&hA'E6Z<;CH6?=^IfqkJC]H+e3d4/2]u-]aO0RuN9LgU#3oQ[9Dk;.o_dqD1QLs6Ao; +,cU5Lm3RG!chRL$/aoA*BR](gmas=N*R'(mLkpkCLrd"!h;A1egY:JTr8]4eO4QUSLqHfb$i>nZ2)>+/_IrPR5UH2 +U$9PoZ\XEnLks,Vi1l>s]"PfUjHEA_*j:&/&UAjCnR-ZhYBUB7,c?WMm?rS0G:C?ngQ#0iD085:YuGR. +RC3u>Wk"iCUq:U/Z\7r03.s:Njns=dfAE0Ba*b+K<1&'2QuhRfXc^g +o!,%7X7S9[oMO2e%4^2/_?j)ggGA<'e%D5*1Z;t11>I,X!E7g4=$DOuLkpkC]Mn$d77>uSHK8FoEkCJcqU<%X,b1:17g1_jo]TrOmL/)j-aAfI\S`\X_23M<$>3caE\'%=jrT_QD&d9WAaNnQ +&r_!'p2YNcM/u2"e5b/WMO`j6](V6%([L9SCb%d9;*f2gHV!(;cAC$hsU;j(iR\R^)l@ZQhm6 +9[u&u_l&].pc0I?R`oi>V=[83@cUhb_9W-uk4X^qO1lWTVk*]IHp+d\riP-]N;m#UM26tDLkpjL,5Ppa +OnT!AV-T.4e\(b?\k8]dS>1/;k*IfS*#8cPdPrTo)O?8;N]jj:*gc5W(VC(G_BT8%LaqtL\ +Y.,DrOKL#DAj*[Q_.NO,@V*#QdCg)^Af@A`%b"M7cZ_R@(2H#pjjeWPX7c7kJ,[?f[SKYpf4=V-p +%0+Tq/ls;@9oI(nK=BY(h953X"@FY2\jD(0NBQ]#p9qGuE&`7m[#=EC5.J>L=>3dDOc_Ze=)'!lQUTg1 +bF[2_9N_V<-p&duL#*obLkpkCLkr]Zkat:3Sim[??+-ts5X0pO?>>e`Z0DiD[B+>s:rN+VK0`#t;D$@n +LmM+*e$2U2`)6^:DJI05Olh;^mm`4t4WZ\Tl]/pP5r_l2Dr_ZpVVVb$'Ja_p9^KU8C&0u;Am%LQ&]g>D +`%T'C5%kL^7#/Xc]6/R?>g*@Ee'_d@J?2ZO;W>OoZU9kjF/%pZ#A2"$2e(p%!DW3q&p"R8/]\L=WeC +ll_'P$[4u2Z3kQj/2DtKZj.Z@,t$PN($l%6SioIRGH8h\\gW1KLjYZ`HfoqLgI*F;4.K*F]>(K_G;sbB +6psF27-%WCs"#Abm-.J$c5-A'oa(2'&*B94R6S9LHfA?? +F3c7N_q@c0\Pq'N:IqCM&*Bq)"aXIuJ::a>jUV +mSA+U$1[;&DKP[YchFEE>mK+K6psF26q$+l62rJ[o'AZRo'a!pH@Kr)*XF[!-+e"R=%qZl+W4.6`U,3r +kAmO3mLUq\S!IG=qrk?LDW.bALlBTB3*;KuDsuA5XHQ%/IEpoMdHkA$&C-EI>rmNC-O/?pg&&mfGo-JU +i-MmKI3ZEBRSVYTGL$KJ_@I*$L;imGNJof_+RqYH&0'N)`Bs=.912096psH"=nL#a,0q;7[h1bdp_WUL +Pq0:]jI@r^LrLb>aD3_3i.8GlS_)`&QO5;A7'mj=%nq1I"af'[O,>#m&, ++nU5TN>E0=&J5V;7m[/+,4b(d,S#aB#pET%Ye:SMnl=A-IsluS[q5HE +l2D6C=a3e2)nW\,[%f=2O=p]^S/)T`3[(]`D't4iF,4`AiDE=Mf"AiS0>OGcI!hF<$[S)/iB9M4%m>i +*SpZ7j-KqfFaq6u9LnM*gUn?ub`<&-IR-6q\f2q>+sJ3T+qKA+=[_=r6ThdR2rXp$i7bL,>5gPX>J)J7 +^K=`=_&\)E9o=uPS]j)@2Nk=h?.qQ-",4Y2J;7KkoFA6RjPULna'H1!hRNqq)oWrUQFnfH^:I>k\\5)< +ipOb+mWBO?[pJ\;(AoT-2OKnefkojj;OPrl`D6\JHm-W**$:Zpa2H:>rOI`?LkpkCa:go?/0aYtM:NoX +3qCVQjbm3QQXAPNB1D'Y*4tVuC,aI\#W^J&HKSk!ookNU%HXGa)'r!]C$GkLkpkC +Lr_rYIhiWAhK7c\T!g4mk>A3-^A<49*$]'b_Vn`P2DU^UlfeRpFn>>&%X=1Y-9/]O8f-YK4/7^CmF6.4 +4#5I?])BA;1&CCN`d:s:ggL-jd1SG91[;K:[?lM?j*Qr:ob^Lb^."TEc:[qs@ann[3W?QRL!E+KG#1Rp +6psH(Bq^"l&UE4E8aQlKbf.KmFV2YB9YM\VB4f@">,M1@=gProBS=[U%SrQjDPq5j>--toL8_EnGnBS+ +#j#meVVjdB/B#WkP(N,lJ%TmZnr89`#0.AJ;B+koj^[ZK0?tGNh=d4$FUmhJJiR754/lic+niN@@(N8I +V>!>qObegLLkpjl(]C[raRc8BVk$5Pk]jI%hn2-$nEQ"O.*A6/UIO_O-03k#$VO47gU_CAZ$BiTj\j(@ +ajA%Nk273sZ.W\5(g>_Z'lP2!5P!-'r"Ul,$jrN2N:$d^JP7'^i(7DQZT4hJPFZ=C#YXonaaDZ"q,4K_ +Ac6)2SOpeEF1CdD6psF27-#ekIhiWA`__(WGt%^L-(%cS`&Hrq/eP=_j`jp1]T8&c$. +,EGiICBmS]GCRf)/++=2f#tVB2HAL\PtPHfei&9N>q=TtT*u3Uj*4r7I]n;+FB"h?F1.=mka[;J/@')6 +qInOFee`YREuoX&ih$lGcY'Ve,p.-sqa/]Nfk1j.&J5TeOgEG"MhjK*nB^b'@W_."7"X1jF^Xn/X&EfH +RYs:?OrY$uqI6>doqb1M_f`Y(6u2\km*^T)-b5@liUEZP1V;6P +$1ebUJ<:kq?$DJ=-9phBK@(mklCO&q+#qr!kTF2OS(,,)d@TE#LII.DcJM/bGL\i;];,MUI78kk +c3JHJ@dWICD<@AG*O8OYh6OIqnBkXJEQ,&9RGl5@`m/\BFn3sSGjO@1RqMV=Spme"h&SMag +&J5V;[u^Mk7-#5LXD*SV">"[8;1`)f&LSG*aEY3&YE#%;""7A=BeC]#F%fWO$(!O894\7F%QT9rG1PQ) +'(+FNOjUL@7R:1qYlo<;FLE*aKHqqU0UgaM'aMYA4_uhl64TDaND@Q=;OU'mR[K#Zk??AQ/?];hA+fGZ +:,N]k-Yn.:Ne$IIFOkX/SdZTG-mBiZ+sQT6kat:3Si;ZlWLkpl.H0Ckh7%Q>#&!!#3 +).6]b1gj,@UTo@gkOTI>&13$uNeJ=k>af0d7aA'Ua^oUXW8M*%j#e3pf>Z$K:JOYA)XU*?3c"'K@]\O3 +9.u]kLKEr6]%=*.)trLKNl1>\2i2E)8qo?en]t/eA(M$'kO!Pbooks/dN(F4(QBEY]=MPVQ28\k@SklF%4s)`-J`0?K7&`fM^FN[]%B)^L>u=j?J^-Hd7?[gO:4 +"m)/TIE9*GqR<#:SnFgCH_*7MFaSJ12KJ\$Ddcrt>M?1t^s<@@QLgETRZARqL\jLe\#Eu1feJZ]bPLVk +4fcDYm]QM00$V=" +Ek,<]Y:aVK3K'RW,?`eaaMA2N/iD!0(Ibnj@ZO4O\3pRM.>:kRb1e`L3&t%2lst@@Q1&9e.1`*Q"..lR +co[X+1%-;ANVLKkOuDc=\1#Y5pV.Y0pmiV0U-58MpN1rTflc%-?TG\r/f['B0+SA.rNh<9Lkpl.US*)P +&UDAmEBoKfY)c0^AeE$#[LeHKUhetQPsdVFF[ft4KQ_&c]atIt0puptFBL^n$+Y7tA2rF*kF?9]VKGJ^AknE5etYV+msd(-V,Am#7JO'hlQDeo*%DWk)T`/gi"slgNE5V6:s7-&P%3=2Wt#S +^(:2&a;LJXV5)Q&T1).96psEa$iRDfa>4%>b+Q5PVV#1SP'ab[V9ljYT6];K]r5a"*Hd2bk"0;3+ts=2 +G9E46iOd.XVpmnk%clCTF7GRH1K,\V<--?Th8g)eJ<@fFFIA[^0*7]VhOjA`^$r#?*b1/>I==7#Bft0+ +[ELXiCbQrW2f`lSD$.oT'k>`rPJka`k';FQTW+^8f/`WCfQ66plL'kHr6-?/+sJ3TE\I(2+sP@&Y/$l. +Jkh.>f48#GClB"n@;rK6Q[$.qJ*m[-mT@IGA&@KfT`7#qOk__C[-]/N)R7aO>8G$EQr788ak7??kZ57' +fKX;/@.%pYOo<`/s3ckN0fLu\YJkjI3[ns,UmcoQ4Af`0=uoJCWh0#ajbo7&.HM[u9g(B5S3$(%_mNt" +b?>`<^@qD9&J5Te&WoRLs"#Ab]]f\Yp(FPJKc;BZD](K)SOIWErg?+8o-2Q)RY#-(hXW/3N+$>h?r*Q8 +.X)"V8i_s3&8?nk5m4H-Nm@bd&&OVI`]mDZJZJ5YTn7nlUVa`d23]9LJN@aB5& +7I530ipl,=Z-b0+sJ3T+sNAHIhiWAp(.Ig=O(D3W:>k< +2"'UT&W)Wp9V&dlj\aj(s5jqriWr4_.m[_r1,odc[G._Y.QHhHUeJL,bhs]Q5&Ro`jcj'+ +CD1k,GHbnP6[F&$LV6e;4CWpL\eC]JDjOJ@O!/qiaRT(R>I[p>K!YJ%5Yeis+!93^45Z.SgqS1`p8X>& +6U@@CUPXe_LkpkCS;mMN7-#4QoT[K%/1[81Z(SHPUMWLc6^im(QCc]Q%)c]pEYk-8+U5p)=Z4Ek"/s;V +<,[13_NQ6!Po@19DsrX,[YU.10j!_TmFmHpqWC$'c_QdS"6l+`DOJjr[l;ca:%UA?o(hk6;8ShF,P$9( +DN*X4@hA8)5`_\8M:VEW6TRKbcdClpH1NiSr7IY@=[YYG6q$,'UOO$kH,^EQm@Z+=&_e;18K@pC%sUW? +dQV_T7IbY=,Gn,g!s1KWEiD$6B6RJq.[:[UL$mSLEsC%D*5hC$LE)fhh->N+m_,Ikj,A;>2jQZQId':p +aI8_6335KdX?S?]MVH&3NCuuUj=Zh53&\;p)mY39@N#.'e<9=?bO+fh76'nna5+N-GAdjRZLDuWo(g/o +Mhm1FLks,tkat:3ShY=$'1PD'7O5EiNi7p-V$DW=F`]1qO"QHq+?mK%D>J@=6B#epZuGpjL!2)-lE^A0 +f/TP\o3g58kXlK&bA,k4bJoMT/aa?+'a&?O]$nZsr:u"qmX$o-uiTT*6*N[YkPM +)ie$4%>VHspJk6psF26q#qE+6;C9j)G-NM=X7XQs*Um8tBKpJdoDq$=4a<.?T[0K2F-#F4#akO';R.Z_ujb\n%E +fXIoXa!4*7G*IB:psk#fB8Scs3oQZ)434l%Gm'gdnga5?779O36q$+Mkat:3Si9UsO&RS\*&L;b`f%Fh +eRaa;P*A^?7muI1l=4;1D7gB#fp1&M-#i&G;U_nPNR1rN:#)(EN>Lob`K?3%JS0#`UYg]TH:7b,Tb +*aCq#'ts5:*'f8`eJq^r'JX'BgS[1CF+5^[-]#f4kOq*D/UV4#ab7kMdHj(6jnj,p1r,FESU'We)04d6 +B+Y^f&J:-q62rJ[o'F1+Fs;%X'VO\O7+uA'1ARQu0.N3:nVO02a=$o"e+Oe6-N?lRU4VAJ22'q*&%2X-5=A]S*X@666moQ[U(fo"8#hLjq94ZAI) +11n.F63oUGVKKI3b*lQo^Et(5H^H%m+Aeq$O`a1+)*gcI$\J^6lg?DC?OqV;3;M+72me^;p8AKu:e&9#R5k=F17Q)NcASQ[\C>\F&0VdhAY,CT\.8NK\2UW=KNYmiWbW59\DSRAc9EZ9oaq25uPK$/R>4Jtp?6e'rEb%_j +^-j>tBqIQn)Lm-4XIKDNX*q6JHfTfpdn[:S&jDr2Mp9U6IU)*/(qRnblUmHm_/A5X=+Us=bI&^)N`UV# +9n-m30TSX##Xqt3+X/*S+sQT6kat:3Si9&)@jC#S,FjnBEHJQQk:KPkUYLBPl&-Z_*N;+7nWl0"G(U2j +lnN[^d:J:T[k:,me*YN-2WsNjALQE6HHol^GW')s7HYp1:%WdX(YodI=lf@1p6F!L5Jn4Ce1a:63'J59 +h*34X]L]\NT$2iSe[nUe.47o6o16)q^\\C+'6ojdO<-W[S_mOEEWWC4l@(7UqZi?*HstF0LkpkCLko;l +r`MYMH.*YYaB/Yp;,`#B74H]44ENEs).V@+$b>'DHo?qmbN6eUF(rj,f22)>5/uROY$NnulG!#\Fros8 +;ib@@UDK@-E:0m,*6)gX!>de15"GE)B4JLpc.donWT2&7=^eb$4lg*Ae8O_)H^L/*:'<>+,YTRr5P'Dn +K=j@UR3)^uKr0c\g2NKA:4G2t5\uq(Pju(N>A/I3Z$A])6psF2jDiR3MhjK63cEfZ1$4R[H-;W]NhE79 +JN3'/M8W5#;t5`eo:B8dU;Ffp-f!G`\$NBrhMgA]L==l(VkUI!90C)#\`HQuj,NXmTl-YV$11J4+)GFN +GjjAq1Xc>LM=H1'#Mlq.KKL>Zr:R2F3NUJM&W]r#kVrePLmWA-6Y,5_$Iq(-5LR_\*'q1< +@G9*t9QtSr!@-;M)0:l$IMH&GIIoN%Nq$<_)sA!UkC[W;^%^;25!B5Q`ePHut"F +[P#:3a=uN$SABi5OakZm,cg`)n7?;!S*PO$ju+tbo#0XM60AG.%C`(DZh3!'[/O2r6psF2jDiR3Mho"V +Ul9nk@gln[go*klP'_-eSoaN^dn5c&&u[uKK!:q?K?E3A(@Ks5JQqu@BijM`/?]TT>@)OB2k-dr/:5"; +>_R`WUJc`=A"<%[>9;nP7'*`W(="1b&^L:cctbgi?.q!@$_VI6`@RW@48,56d^W9%R>U@6Woj$];Xs_Q ++qK/m&+b^J:cTGc]/k\R1TDE>XaClr&J5TeH$&])+sQI^EKtcA/FeX@@NagAkI\])U*t:ElApAuC)KR7 +mSqOmAuKLFbGLEQk53'JJ5>Qk&nZH"7b':,CXVu`+jS^.N1pgp&J5Te&U=ZS +cQXS%$!iH$RnCp/oDU.!kYbm\Y0=tF,K7fg9#YD'SQK)HmejOA$mp-ZEm]Q%EtUO1&!f=V$I//f +MA[tt.jQ:^[SU^uG0]\PRH135.h:D_C,A#o+?t%"GV_f-+cdgZ*8s`I*&BLHMc7^(o+K5SgUlFT2gh-= +Zu(jYO_8Im]Wib@[mm5UT/A,@l"H%SIBP7I+sJ3T,$.;7/0aYtl2HQ*ZUC-c`371@&pn4E+%!7Ha0`e8PC1]mli;.LG)SfB?24CV +i+uRt\2CkMmq"B2&_Ed=K9.cee\14J/>-d?M)5mFjnrJbH&G=\E\,a>4`6AF3,e%k\3&.'m-:kC@`L1o9=a.j.Q9oG$>Z;k +L$o#IG8-)Lr*HD:,TgecU[8QK$_l/Lj%,M!GD/S;Hb8:,nn7R?+sJ3T+sQIWqI^D&k=sb#cuG2*rVUj" +*8Sfo)Vl"e:?P(H`^n-gO!0$a=a0_aSPW=T>gr"t(uBuJ3k*q"sZ +n>c4dH_4SDHgc$gofNqT3kP)l5<`l5*B`XfYP0q?r^u@tG$',a5<&iO0=HuiJBdrJXhu#.IhiV.&J5WN +I*b*9Lj\USmbcThe2u],]ChL/KR>&21/`49m@l4[Q=%?If!0`^,b-WSE2e\C3,lGg&>sn34rZ(IG+->: +TCu](bBZlAg]!Tbigap_m_a'hB/7ZR/3iEg]AA4WK)!l$$hhGqgE$[HIApE=;38(_5B@U""qM&+[[ZZ. +p1\Ofcg,^pmk*iGdKt<\c#c$g"-^"1Q=hpt_hn,TLkpkCLko::rNh=$f:F&17V0EA`d74`/]"Q+R7.r# +g3Oht(J*tF,7q?5506(%(5*!:jHT$&T/ZTJ#cC:0.ka:c3iSf>*_hV_tns8S*0q45+EaGFa +,+n-UlC9F$D&/*FqDe#rg1Yb(QoPchP32nRoU3)Cmi."ilJiZVF@Vl`.OWZR-n9\qC[fi+q]Y\Q +[ha$@:YE@9LkpkCLg12`Z\Z]S*`BEA_UMFcJ7+=Fm1SRF9kMUl-ZBk9\&ob']ZV4l-H1l-]K80:&Gq=i +cAl'0oBb\)t'd$?]@-s8$^gWXlD#D/;<2tIpOlPL'YgHO\g48Ir4+B'A5KdMk?L1SP6ot7B#]BA\n +!LmRG['j!DLJB4.Dn +Au_>?h91ApAFdOh?u+)9[StQF9+46_F#AgoboY9Dc1I$NN@]Q9A`\$_5t6DB3bq +Pj&jA[-URs`CE@<-Z$Eh\0K/khDVk!f?q.a5.:BF16%m=37MhAJY[OYhW_b+W,`;`?SraqBau#OfGo:b +2l(5cK@V%m*Z`G"TZK`G3unYLkL.`FdQ-K.CZ0`c5I56Q:[]_#b_t74oOa#;LkpkCaCg5+=[_?"JsrJ% +p2Z7!7acJO1ML01+36Z&k\]&p6%;>i/n&J.#hG/V-$@E^D'L8fnVnO@noRK3hV8=)"SJ,d8CSM1SbF\9 +ON1ZK+'cm1HLN!\[7a/YF_W(^ln0n3]"Xdu@">`NDViaK2Wr7]A5gFr7iHZOqlY,aH_D)t7u0M#rY)TX ++,q8\_m;ODZcC>>,p#a&`.?gKXji;Ij;-9.Mhm1FLkpGekat:34s<(7m@tC'kLsF4!-`F#2s\K_0huUs +9mc@L_E$"EHo3:*UIJW8Z1F_kckK<#:Gj;45)ZK.=ETXff&]*:V2Qog1I$jkD97(Y5LV,Lk]^1CEUT.[ +&R$q$mkde8'Ul[Ya5D`>*_Y>.(T\c-Q$8CgmQM*NcRd.Voh-UH3Ek:clU9=mN_Y[@enfgGO%p;hbZuBt +XNt@s^j!1Gr?OMfTV`YqY([W'&J5Teq$bY8Mhla1>,$1#_hHac9Ni,S#mmT*VX],+IEhZB'_u(H2=Q1m +-Tr4#+cPGu"4,$8cBLPdQ`7")QKQmAf(k'&KpPg>;FA\HohqHmF/Do7N7I79J:1>OWknGN;E?,DAgn-3 +GE#$us8t*2@!>TnY%;@'.%$L-tX`rF/hhkOa&P0t,bP-R@Z[Z2D4V +C*ZIKINAE$$ME%sEOUu+l\KK2)NT/t=d)\c4n?B.,Z/48E'?o8a!goEOL?/AZt+7s4FVG>[ni]5 +8\0YfZdT&r3OQK,Umg@`bQ#k(03(G9^c7t2Kc:90Kknr8`=nP$6A"rrIWLLS7k-UAV>!J@(n^-"/b^"m +&J5TeOj=1/Z\Z[MTp9Q1/mA5o0fYoB"GuA.L^'ZMR".#e@O;C6fRGfTplje?-d3)nKm=?oFE`U;-KX4;pbb]3@ZO +^7\YtA^'lFJE-R6[Q,enImieo7\.0OV<_'g2a=k@X:e%X=m.JqiBFeVbJjuUMhm1FLkpGMkat:34pe"Y +psT!$e/FECc&59T6h-ir.JrKB%?*.:]VLZ74PKm7*K55:Xqa1SLI!5/#@]b^S"7tugpJ3V:/6Hb1mqlB +1t!5E4&XisTQ$u=Cj_8#;d`VQnnjPrSr`2r`=JU.%C.>Vg0Q<5D#8:63QKTccQ,$kBBeX$-0siTNhC#r +OODWcZaCHb95ZG8fc5L-W-(/W)O-+Xi-`#ZT]B]%anC1SW4^5b&J5Te&WtBTrNh=$p$&^E[M&BK;#!:S +!k*I@ciG2'YTrlW +dY_\cD%HulcWkMr0C5eL=!$MO?']q926[poZRYBV&&o*AZ@HT[lHE0WLj +:Gt;4K1/:>+'Bm%&J5Te&c&NT5Dt>&RE3][s*X&b-S<@E^eU(?=GsF0Z+TbU87RDBiIU#:8a92#N%Q/G +c3t@s9tHt-4+p,q1V0'(D)91JMN3]LYMQDmFW%*8bqXSW2iELS'Ljl:e]P79i9F+kn,""CaT[Q*B42)] +A*1=p\R`XbH!YIf%ciN>;KFL2,\ZT=ceMJ6ET!lZ%SaO(9@h]RG6/9e[SIl26psF27-&DVs"#@7AVU)q +=p=Or&_V(%+EAH/MXbK6(Z!+[3n,IZULBL(9BP7k;2d5N9+FTU"H3pE!&_@H5bj]6r^8HX'jGA8E^tq^@T" +IMk#3\'ZNs\McUQVtjbglCjRA`SNq>g!6"paGjFf +eFS&K=jPrF>kGI1KZ3+pGK@E!q)gY#B+Y!I;u/Lu/e.e?(SX:BS1g`X3PX&gL+W\VD86d,1`B^qPKXE# +:..K<6psGGLAk=DjI4Hb0^:=^hb3.)3JO[?-@C^e-=".L0(-)&m1"&uq-_ET#@\"@U1CknJsHh^eQl00 +"uW,NnX2nQY=R:5*n\MlT)3'Sm:69dcfBC[I8Fkrb>94-u_SJ$gmNbpn +KeQBN]D;@7R58oG`rTJI9rA4Vq.7f>O/l+-=_mdZ-#@mRaLkpkCLreb?r`MYMRN*g7GZb?jCC[*Q +WY*"nL@K]qF??GV!sFt]QE;If,dTSp"u;jUBB2LoP>@3&*Fnd3cfB3t"rRadZV!KlH`&kp%ZemE$6g%i +9K$-V'7QnIJW1'ahD'&hqn#qRc>1Bnqf.oM.ta6[q4_W9m?oF4*:c)fXba\sk<^ed9CE3(ZL6BXZ1`BW +HZM=L(kY@^1_0c0'd%96oO_In2ap,&6psF2?A\Ya7-&+$g5U&#s3*E'ZYC)h]A:,pDRW.&0qN:d;n(_& +HuD4$NR5=nM/j37n^uN2DsDL%&htRE^"aAa>?KHcLEfE`aq:Ak0tJ'=ZuKAP"[,I$*n^\6ZaEi08\[:=TY`NrsY,#PD8H1oWhY!ij,,r*AnY.%"nY, +3?C"h?B7Q^n5Fa70-4P'3WA]9mJB@hPWW:CpO-\QP?4C;b>Nm'upGPO$. +'&2JkInRhOZhSf1:G)q'UU%M^3>[L0:;&HpS*fhH="^/%LkpkCLg1hrZ\Z]Q+L^"XR5X!h7%i;T7[&;r +07-4``T!UH;81GLGiMZ'gfs4+jVU`rTM_I49'4q!rM]0mENlXK,(%Kn[bWh-nrQDlNsajSWQQ23mc12U +K[BDZ3qTXHpiVAcCS8Ng5/.W0%59i0&!E:)Vmbi$DG+#nKK7HPAQ@D'"pt!.,8sas[j4ItA01F%^]mrK +DQYf#6\/dDU52aRb+=K +Es6Un#j61lO/meeVFQ?XVR`-g9Qpj8%1d%(779O36q$)l8,k+aE](H,TSm[-f/=On0&dq]HBu:$D?.tC +HEnT[f]B*TN\0T0KK6Zia&9?".[P/,*Cq6,f7W\'6NB\te$i!ZGZRjb$E'3sF-&puVB9gegJ:8NTsAL^\k^Yqn#e`WIGZq\Jf_B(94te#T"Db7RWPW?[bCs7?GV.QR\umPYX-(P_9T"cIlbFA*dSFp6!kslTl,DSrNMLg-7XU5,L.XT8K$- +@Qg'8b3)rILS1hhCN=!1\LaeY-K39/Qh?18>OL2S9#u54[>9WpLkpjlT-+(%LHkNS5Bl]65Q0%qrGV`' +^HMRFrNh=$FW`ZdX??Wu"@mf>h1\1eM4=4!7]gR[+LIQ45^7LBO8nN#VpL/SC,A.AMUEE6NOR:&!-<(N +oQ:r^"22OGl(SP0kR8=b$;Uo%Mf\;aM!`?\[H""Qnlg[,;1h"jO@"nT3e4@TFkJlXa;a\Ko$=[OUT]"\ +Glq%uK\i%.f//AG=caYrk%G'/^T6mhQ>_S8LkpkCHpW;VGCTALk2p<*k%B/?[t":mp]("1s5OXir;QH* +J)hjNB+^9l5gKGaE:i8c/&UJ?pFo)*7g(/m&r`b6Q&9-iLUj7@CR7@D/8qMj#'=j<,\e7J*65Zjp))Dm +/_8iCrHc4FP]qE,*:bX/3Z`Xo.ZG7>lRs_\]/b-n/]U)"S'!G/'L[0.oFs5]H;r8]5&cl[^YkYq=j&WuC@ +(iTfbkhk$`7EFe]Ma4c,lNZ8g5F5>*s,B5_g6O)Hr3O@S:E)\a`_j3sB#%YPVTYAf(ilk!DF\un;DSZ" +fC?#2e[EE;m2%>0[T-hh5@:,^q$:,_h(BLY0!NCNQ-;;PP')eUTnclXXu1cFXpumr=u^R&n8+g,;R3ne +H0-OaGK@<1B+.$>&J5Te&Wmb&_%2!6F*$rNJ,6)Aid^les7)G)l'MD9ci3:XVtA:Z,1hAILG$+X;,?bT +Q_(N!dF[Nkj/ahoR8lbFnCUL:4Ba^*XbpYd(BOV.LBCQ)ajtK?][B[E6P\9[0>,f)5r_LU\I0nt[R*AtpBaZ[Md.;&]UZkbR+hMMfcqqHj>/Y$d?6XaYh_((D='o_".uF/UAZ?- +Kpg8t@j?c4hX/ZLjN5_@ln48DUHj1:9)8'%=T<5lbG\G*!q9b1+m3%iV\-]B(h+G7c\%0ojPWnPp>WN+ +Aj@NadT!XHZ(:hSnn/5g1)(<4&J5V#(12Odjiu&p0E:Sr04/:^J+Zlmou$P(nmDC>s70OrbOH,.T1)/N +!"HCC;VWqqA$W_;OhP(U"29oYlBi?RdKBD'oa"-f7SD1.g`7(hm&b^'d=_Xr8""ED,^%A&[N,ergN`=q +qWIJ$2/M5ddO)5'#'(jlION1[F+LK>kr6QW/o-Sl(5hi_oh@5@+9'0-pud/+kBZS.s6pO`]^hW^ +I-6"WO8j4`K/]]JXn*)9q:\0$\CD[-RdLP5TWdBQEr]Kk&J*)?dt*U2la!Boo9#?S]R^@Vp;gaqR:b(` +=^EI[9>im>&k,A'H<]j^nn'tMDW05"83qm#EC\j6Z5)ihLFKt*"?;`m>h1O;LnKbYm\_>@Pkg&pDk@<. +UUba+Ickt&bClCr!P%,P*ARl1/)+E)LS+7c+sJ3T+sP@ma$9QC7.H=eoV6m6[smYP5.p[F^\uoB5,_[$ +&\/BKC->lW$@;$V]"aSpKZg@EG)t%'BYYZgQ_UB?3$6h=baiY-7[,,j)/5FSU9aA8EkEf36J(b+3M*@C +A6pFbqP&S(T&b>T.em9)_T7+&`7t$."ZHl9r%qS:St,Jo$0Rpdc-->gpV$#9qOmgj7-"]JR(:t(!Yh"pEcA9-pb +CX0;jc5DBJ`q5:cN'R]f\TMZk2tf-IcXW@I8Kqp,'!i`XFt*DH]cX-U>(hC3Bj/Z +cNR3$>.Dg5_rF;!55qb+*+?3e8#DX'7eSCDYqHaAq-X98h;Q_Wds2$!_YH_5aD6Kc^@&jnMlp83[.?o8 +qNYNR9K8Te].P,Shn:YtQs"#@7"gH6Ngl>"rSGfDc+j#is+4=dr:8$\qG7.ULDU!UYQ!h6VtA:Z,$1F-ZSCg-g'$IR_9pPC14tW' +Kl\9_DS@rf0es;c(fO6N\4jkg5j@G0s-ik??1o +,KL'"[5=K]albC"E;R'p/9-!=6JHr=0=J:C?-D">Lg3!=ee95(8;JmB5<4&#j7.=NDN[ra\)"0M2pXR) +OQ5,]cY&a[.3]r[+sQSI\@]Ab\[hO4?i$T`qP-:Oi=CG5h=#ge_`tp9rU1j(M#LOFj>p,!gKtPXr!6pS +2)du97cg0kd#4JYoEJ4'C"nG"4LFj-9.HB70_YE4:66N2KQB=M"*U#@7n_8c_&g&q\ORb8&A@J1Z,(M7 +:/]"`G1p5LEVFQ/jiDZ[#fl?ce_n][@"on@3`d:)4cXnm07%NTm0VXO""8Mcj...o[kVqL\Ul'eTC:*1 +\1s#!^"C(C+sJ3T,4ZY$nro^Di!2LAieoI-^>bX>r8qqsk&2=@M#LOFj>o[510BX`"Ce;4=hF[-MkK[: +f67T-]\JW]Bo8@I3nK+j)kiTUHTZ`qgIZg5(J=9o1a^53\84QE:T98cbaWUAIDCg#UV(%t+`UZV_n=r> +CUb[:p19kUpr1_ACjW:1p*)ZA?)*r`5S46b!U5a7^1FH#@m*@kCo?fM_T1)/N5Wm])=u[KNAJ)FT$4see3%bg9 +G8=*n?.f9u=2RN!7f:^)RidW-kFnZ?3'\sIa'hff5SnFA.IJ,#8YhZ+)AUVib8pNlgI:G$oa;OSQYd'& +.58"=92#nC4DnQ;(^7EKBh!;s:fkO,,tZAqOBs"]AX7akOE>nI$cA&%=TDfnbj\FOOr4X%D91g"])*XG +5L%lQJr#5=Lkpjl#lV)ca;(@WJcZ9?-$V.B0!Cp;,6f%:p21oCG*\n4O6iq1",7<@k.kHn\d]MHGfW)_ +jm=uL*m$2_P6jR"rQ&)4A17Ok*%W*E'N"6V/J(E:*WeQs'U?==;\Y:SB4dOhLm0Qnp?,*Ucgs2CAoob+ +"`s9W__t6F[!ZE9e3J(UJ`pf,EjU>YSQ+a7gO+DV)X6'0+6[V!6VB5WA."hU(!1gDcuqIZpXOQRS7W9FA@#Q.P0G2^]=<*2 +>5Aj0M]ejK3bu?e5U07?Mu,Aj@>h$N@0IhGD;%*2!4N!fn@XD1bWY@RPsEEnO>/g +ar68p[n7]JFGC;'+k\UU[TbA4?5q+0LI9>4kP@7A&J5Te&J7$`r`MYM$K.O$^>e7YH+6lnICgj-1Q8)h +coXl3RTOB1kUt"#KfeE?U3RUta6>.?GO9fU9$FI8pp8GGMLrHIU=7D5><^p")B8hoe(k_Ooo2@M3Up1R +-PlHppW).b+?rc`/b;?mU1nK_=mMRi,/'2^b?EhO>B:s%LF.eKX#W)`F,GF\5U?eD.,;LPQF6,@56W'D +S4="N.[K>6-K#CD7LR8mq*n/;LkpkCLr^2#cQXRbJO&@:bL@Qj9<":$^.Z'>iFFDS?@Q?^:Leg>MXj[' +E4_,u,^E%;(?\AN1L1uFm*S\#?$"T?.[aM&DFH1IV9jiI#X1o@GKf""e\]O"`500"-*oe592lZelbENG +HcNM6XF*d)>Gs1U8tU.jm"1:W`pXm'qNoAgecA:3CW@`'

pLFne+B5&r(.aCXK2,5p8P:SFdFEIO8X*hpXG$Qmj4)Z6M]0+=o +ZQ8m$[R.8i'B3**eeg>0lB+/IgT^Z6T=i08`jME;ISOEV9/%d:fUdORH.nP\p;"6Qq'K:XXKK1IUBs'G +;nH<]\8_]YNp24uIn-&r20;"R163dom+nuUig:bAZ=@-dq*'R.ZnqB4reRh&!I?PJ#$gm87#5sd!d!-f*I#5^ +V"Apo"Ak-N6H%t0OLmN(Y%)c'OHs"tCpmQ:QR[U4C@isnTQYG^,+8Klmr)>l2R8S>7R?KdHF2i_=8[ZH +j,(QAhoXkg"X;L/pUcnR."Xo&kKXr\6LAjWW!AQ-0ZGgT`Q1]d*bk[!5+a(d:iQ`co+C+(@`phIrN<`M +G:Tb%9\3`tCCRJ.p7(Z63tr8=&J5V;6g1.27'8ea;NTpu,""HP+n7+ +hD'@0iiu]L]'"@_`PZaPA?ZRe:@RDD7!o:L[p6ltGAYG">-C*7[qcjNWQ;D2]H;VB&`m>!9J=^= +\5e9WN"--_#.SdUT)7NXT^R8Y>$:L6*6JeMZKip4_V+M^M%1HN+Z +$9F0+RC[Lt!V>Oh*-g3t7,-lWW+A\K&*# +/&ReWD&_l%QZ\N.q +!4*^DE#3_nN`!q@/Kl;$c3&l-+MK#FT1tGX-f0?Uk9fPdV&8b@'2A^$57.u7&J5TeO\;I!((n(e"IiW6 +`PiEJD1d_X_i>@omD3PEoq!ngfjj:9gDi5Qlt$p'\4N0X7d=.EDp]&n`U9 +[^J+f06-GuFIpEN^*&d>dG]]tf_o"AN>(_'J;@m_0Qe8V)VFK?E9oDodC_P[W'M2q?/D-&.oKd&J;PlqI^D&lTg$mBVt0:Cio&6cc-a[ +ds+*s26TO9;;-D`UIB\XlUW/Uf5s,M/I+t)_m[@3/2q0]H0U1<'U9A32_;$'*#h:$[slZ[j'Z(l1Il@? +7JDI*QMS,mh/)8aJ'KMU67.T6lK(I3$M%SVE%gCkU#+B,8CGT&;qFa5$L2sh4)Ng_m)sD>HES^`)<@F] +`>.j3G(+Q01-QK]4h1N;1rIc[F=m2?p0!oAijSfe#'Mq7RE]n3SZ6<0T8A8?X!b1nmRA,$=^,dY(?Smrh:_%?O=(I`kn +!-VkurJL/K6psF27-'g#T1)/N#uYZjdSdkB_PL,5'FTtX/H*dINFs?7eiW8j$Js/'(gg!]"A)mf7^A./ +a.U#;GFE%qm1#kgang0iR7;ur&iq>M!ZKrX:@hm7GF4BNl9*6fp2bdjkcAH1cANY]K*?6Me'AMK2KARKT#glaCX#",)JONC@/lP[?@2.CL9cJ,+B==5KiS$S[h[eg,s\W*nDD*qeAqL$0MdbF#?H6Mhm1FLkpjl#Q:uba;*ps/(s&r22sbl +/M`F?0N'a1O(^$j1E)R/;W?([j%^aao$Bm_&GL"QV4+$%0eRZdVaY]O1:K%+U0tG'YRY)P-=`BnA6!X0 +gB2=68oV7piq4q8i#85;iYk_54^Q0FF,d+!TeU%[4$Z=chsX8G*!P&Lah)\`YV]W01nS^jQW;=P!;m+l +h="l?qNgGdrr"mOntW7mHX>$P?Q]8XTHCo;gOXOF?_,V]'srdQLkpl.2:4XHLg0tTbE6r;NQ0k]n,b^-5n"7lR9F@,hl-jbsXhVp&U&#AdN*S>i;lr*4`(:F>\$caFST@Ka7_ +QIR>npNV@I7nPZL]krSeS-AQq,GMjJWC(dBnVAU6B6JMZHPlm.7!<95mThM(DgR-O>[qFR73=bb4;$52 +ePX.&0X"DTJT`@\h4;YblP,i8&AD+i]\hL;EF3beqt+s1nDEYKk1D(]alt%`HP]=<7N'Te;YjpbBuYC# +4%D4+Y]c`3N.C&Mh"LZ0mZF[4TY'=i#9Y37+sJ3T01Psm,'"]#BAM<9okoi=,6uDJ2d.R),?.6ICGZZG +GkG2OBTf);C-!V#jgmSkDej6O]>lm5G)Z^([:@kRmdA./nI;<@#_1@iT`nj*Z^;0l4(Y34G'*VVSp6'4 +-D-f,cI-]6YSqVQ@)^6=F$D@OE9oD3_`13Xn?dT4&>WSdg)8YX4<6/eX;PgqRWRWp[kq%`LctKrOlnKk +EV*YTG3o1VY-[6jN^$VX&J5Te&WmHpIhiX,%TE[T)_D6=,b0Y0m%A1#d.)Pq:Ik:N0N*[qf:VC-HH[?8 +dNbR>Y9?C)c1ErA75t^=4r,c."&c^X%S$23^hle:&k_R:]Ne$XCmLKgM>ZMf& +0[FcNEQCT/T34`,8^Ls0EmEb,\"Vfal/4s+n_5:I''EH&>WG.#F;I5A*CK,+]4-):j6;U\G'R>*C[sH8 +bEQM0VZk].L!P1;QQD)6+sJ3T+sOY_T1)/N7Rs,H:OA6C't&;'Lpd/Efm1M%M*o;u,O",:WH:+o7L,\n +(QV'Up\:^"[Da$39oXb%kFq)/ol`:uK$%W@M;@`Bed[0mP.K^^B`l*,N%%/5,,h8R);`Dr+$0/TLNt)Z +@:]8kDN.kt1Sj?!gIq/%Tj9f?_tJXMT,OutgWb,c5sGamjlY@oL<)),(T\SU,nqADSU:#eig5C4>,HYr +@'&pINU6#h,:^".>pU[=+sJ3TE]*L8+sL*@G(Ql@VP:M+6)N%MbSMao8qBN(U+sJ3T,'#R5cQXRb#>ZE*)i<&6hq1%Z,pgS' +94/d>@a79J^#Z![:F%XAen@aQG73\'$!r5%UBuVQ%JgrUn=Wm1=VWb$gP6#((@Z<"HnbH7HY4A1,6_YI +K-;h*^Vp_-np+@$D#DY2;,u$*eLe@Pp"Nde_Y1V):*;d1ATss*ei_4/QsQ4W#g$$;5ra?V.-X5[.-p7r +?[PBg+sJ3T,4]48cQXRbVrtdV1aX-c(\qJh#hVK1?Xu"pdG>$f[p:1IoZ4;F%7]k"\0ZCT$?pb6:.AW7 +%g-qc*7$=;jI+a`7N:KTh5kO5F3%.aF6@R^f?oR7,dYc:p-/FQDMJac&>lEgn_j:e+Q-PM8OTq/ZO5<" +G7J$34P,"^H2H:5LbodLn%0dUjuk^M<]`f/cBf(tcUUh.4>/[B!I'U>lT=O+NZ*k7mXT`CY$=TUG.aY> +6psF26prYer`MYM3lKh%_a%`hau#iO_WTm&d;EVSH7*Ccm@FH,Ti'Lr0@K`m$9HTS"l0@*?,kXP@m5q/ +D3pjgoRUF7ES;rF$BZQ'__u%p&\4\7JKnT3Zeo>Roo]jSE:U?tjX$W`3_%K2q**u\=]6`n:[-#0\IMo0 +],J\u/Mt2FDXd$BoWFN\pnPR0!kBI7UKkao6:^$V3g=-EV;3?9hp!W%k5-(,8NV,tWUiL^]h_/=lOQZW +6psF26sbWI=[_=3`721N,\u-4^bf"EqQ2&"Q+[')"=X@B\m(mj.)=[FK@O$_9F/V'&$mF$^rchs& +qNme/:=s/9Lq2NtM'D!@[gMY%-lVP8RN`qla.Zt]gO=(SmLc`m]tp;ta"lN',X1XL*"3>]7ZMeNdjtmP +s*capOjh8HDc`g<2%Kbe+6eP'@h$IJaJJ(EB/.^pS*9aFgRcg9G>G9e=V1G(q4dr7Z\XEnLks,"8,k+a +EZJ$l9PQC;P2#>>E9nH*b_09lS=T@!_FjFekTW81pG&190gQ/8*%;3Q]L^pKVeRB1KO9]L>ZSn::D'.o +Xb'^b2N(tuDZBKg4KNT(aceAR>EjIA+\mJJN:/b)p]0&BCW&-)]r^VY]V16aqAb9$7Md^R9/Dn!`9;`" +#FN&=-r4/a(*q3T.)$NQq[oYGEVEP_[4U2'XQSVFiuR%-5g8Zp?mmBsj#"4V!^Dns(D.5k&J:/kTRR^h +\IJpYif+g97h#OR)8StYZOQ1tC,b8gm?omXY":pg>`GCPP]YZ/_IZWUL3?h +Q@=tKoC`IE5;2=+jf$nmp0m^B_oq^SjP]ReA(okY3_tt:TAL4f5Zh-+L+\ABrqZ'@9,t^&LkpkCLn'(r +=[_=cOBY2[;2i/hQBFE7nuEHpG8Wa!7n9t\%8"H\rrrgjlKQco,!MN/B%f$^C2+fT#jmN(jmjVY6HjRr +^JmA_.Ra+]8Fqit68("R>!'u%FiM=MWHgJa6PU8FYZl`uUY:-4pGIZ/(%cD*72GgJ6KQ#Z%Eh[_rihe3 +\37[KFke7S(q7QM;\`R:%^m^f]B)^*p"=]b!"gXLDfM9 +b)%@\R9/%C%`GS3[:L!jm_+SE@g)8ahk3N.J+B[LW.`hAS.r"uf*^L4\DOPuqF5WKClX:BMYoCd +G1T@S.#KeV^09*#"PFS#bhLV2o,:[X"Z!Uq1qiAt6+i_Aaq8g0R;YVX;gs2qS2l`V+sJ3T,'"k!cQXRb +#FgJuA@>ZkZ]qLY3KEfFZtCaT8^()FN;4I5S*^XIH&.LRDKF"rB=',l_JO_57%,H[8BrB-GJ>4M3=Ku! +.VmJQ7^3&Pj]93#\n*\RY7!))2Y!=-W"83e`_lN$2eT[el=<)ck/4lV^Ifm.a*$@F=U0gJ#Vc!EF_q:0 +Ou)L"R&od_%CPQ9F;siA;Xr0*d6e#JM)l$s0n'TTpJl)M(8Nb4[l&$o\^+;E6psF27-$\uT1)/N:OH?X +m/E5*krUWaC=T6oDV]Z^.0Gqm&RUJ84Tq6oGV/-Oo3s?mU`f]4>3@p +)@t&eMF_#ZjCGmhi^h_sELja6$-ZZaYNu=MCl1_%h5\k"mJD%I,7DT_kKDMaLkpkCLreb3r`MYMP;)iR +EJuW-Xc`3"6tN[!jA`+\^r0.3RrSoR7d8rDHrf(-6_K@^O5]05HXdiLK9H"3u17O#09= +PXl>i*XBSs[Wq-MCc"=bPH&.oR%9C2n*T9@M+isFUVUHYDL&(Be_,0`/8qq8ID2<5%jc:E<]aedrC4EN:13)<#0R_jn3k.q'Aq2nWp6%-LKNq;E9%lKoAKA!q66psF26q$,4kat:3 +4pbm],VZ5Y>*AFZ)MSih#We]OF=C%^bWfggV*;JsXR.Asc$T:iFGE=lb_^GmRU+ubGJhYp[(Z3OW$"Dh +hUtm_QC[0cuIHGEf>(XUi^pN6BTNJ8S.$/FYPaC-Ps]#'%0E^<3-H`6`,,1'[khKX7I?b>Fie+!dk#Y%tk=B06*DDT$'J]P/a +o(c\VQC/B,*W*'aS%&"P::RKaKXi]'f?oK3Qd,g4p,;q%+sJ3T,4[aeIhiX,-II@]D8mMnZ[bCir61YB +C881Ij=7PVW4=N_?o2(#Ulfn=6+_-GK>a[X(Ceo^`bcm=`!Vh*p(p)=1KX>Y)JmnF)m"j!GBHCQkk +,^iXel%8blNd29Km]m3a_QI*hGCFnj"t)!mRtN;:[giu96KqaPh6rEAXr?^k?THfq,p`UUdcgn7\N371 +me4XIk=cS[9'<8d>p$a&<6*eEgr%3JlDD1_RX1&:S%*fu+sJ3T+sM&=oZn^*f*"H&']64mdbQ+*Nmp7o +;u&K?bV?07Z$hU`1PhAqXW[c`q#nt^fI&dforj!n&a: +Taq)B2p6L[[I'OI78hfUrg0PU.DrHOA+&<=4K@$C_oL;O@5p2>hNmKN`j\%kQKt/4k$s6h4T/Am$c1sX +-UA[BcidWMT:$_cg0uYN+';l_.+p/Afg4ODU$PoDS0r +N3ks0NcGO8Zo`%t;+A"36\2nD"4_48=]Oii"gdQ$K:K!^#D[dufB4'[J'RaXRE;lLAZ5n)^:p\pTq:PS +"^7IRc$)ebbE@d;m\X25]46-NEp<+GG^*t'3j*tFh-*376psF24sBc8&WnRW4%FCV!9^X+=/9h(*+Eu) +DQ+!j[#@@!8kn$-flk$#1c=Q*q&B!V/qF8\L(2PmE6@6_idp\%5`BBsRoRYAM0e/iW +_e&*Jk(;$>6E)j(0`7,)$#!kDd0P4oYXe80r!&"6LkpkCaQJnoJF@LEb!$,/G9 +WaiQ`ns"\PNIIsjdr58V_eu&.oKd&J=iocp*GEHkL*Ek]AQY)&Lnn\sn7beg81j +Kj2\VpA;HB!nWtbToSA2kh9YZ[3O%_B#Hr4L>7J(b8T]CiL):\fJk)o2TYWQ/mmVP\!ngh`-QKJaQd'm +Mk]RN1ci*?lkj6!,:$7De]P\t;h'5ZlK=^$FK[LTH)uO;cMF29F$]]?d<7iT9#n:._oqmui1\.S^.-c' +!(H,E!= +,=gLsc!r!clZuL#Nm7iCH\cl7h\#9n+,g(bQq)V2"]F+q`soQHB:YBFLkpkCLg1ksZ\Z[M,gnZ,%;QboN/R*p +-W*tcAu$_=inep5@5a#YlimcDEl-&jRGEEJ'$-VnVN(cMgeA/mQ4=Ah6tfXk[o*W$(Bc2Em7B21C3iG) +\F+f"kJ^2QdGe53S+A'e88#oO/mKF`."ZOT?_^2J*q.H2L4!4\_#\Z21?ZNSp3q(,EDkPCP`J.D9BX4! +5m#0!IqE,7LqqOgnsrk9>'IiUrXbBrDccWl*-__W779O36q$)l62rJ[nd-I@9V`>3N2*-iGaj6N,2DVZ +mHp\G#W_'pKP*J8!h&QL:l[O?FC4?"Ho2Y`<#4@m0/U^=^G.*fHu<`R[M(IP@X5VaXm[n7B&LHBD"m^H +-t2agpHK3[k,c$Rb!o4)1a,e%4i[M=5CU@][iQ?m*t[q5G5Ek'\!8<$mC.Mq]8S!'gFk4C?10$):Z7^' +[#Zg%;k8=(?5/V]D(US-If)J4bOO$n&J5Te&WuCSIhiV>:Ad]#PB"mHd?_\@c:tI/W%^@Ih8.j"\j0g0 +DR9:YVk*DgV9iNH_4cl5k\cLMp&jr3/)m(52F?mj-^ClQr5^)OrTuXfO33K"]a"EV8%P$K4?Qf98Sb7& +K-Fli]idBImdAmtfXjAu'(tmDCqEs=@eX`_->VG2ianZ*M7N!hDA)_,_WXa/F?0ZRb*ON$f2LS1ZQ3`f +a2[08q^cd\\\6$do^;5Kh:-G%9,A0P&J5V;:P/RK7,BmDir+O[]T5W2$dGW[]6-pm_Q\rMo7l6#HHY." +42bqGrhB[c_Vo($3lc?QLe#T9n>fETe4TIDN0#q%3-'&o9!OUN4XKCKq<^ONZeM0thh+iR(;?mA$CA/& +)eV5J1RFu>79HMO$IW7`IUpgM)acTKjlTqV#qtCqZ2OU-K>a<57e#YO[ZdnBKT&'3TE"W, +Z9CC2=e8Yfo8&(5kPIU_;+*f?6psF,'D0Tpns7,/*?&"'3=_luER'\nSQ!KG4cDA1`[e$2!ob2ZDKqX#3\-au>"'TRA[PCHoi[H71M2>t-=-b3T^ +8^]Q7]Y$Uc)]sd_hlS25=nq8Q4BH^Ih@X3ef2Jt0'_Edmkt?N)]sqf!Z-qVHCHtae"D\D+.7OCLr8-AGfei>%8Sb +".W)YRjSAm +T3lN."&6u!W]dGI,"Gj1hO-H\0'/3VVSWE%9LCemHN\](ZRs,J(,)uq1"+bPD%.nhT"8Q8G2[L<-[`"P +K_._-2@hs!&.oKd&J:/O%K3Vh]M1q2IM2ZSLic2>AMon'Vm1F"cc3gFN@D]blTHVU@K]Zh[XslYO3TO[ +q7@Yi2mu1B'rd5+jaatO3^9>A!sQATfGK4FHS^\DNPE:-FuVTR'XO73r%oc\g0,o@V?LN:lBfm-eQbhs +_HDBB9=Ua1hOpOR$S/g^R:L>bh,_HK^mkZh(f*D1?r#'0s$YZVi2O&"pO_!YOsrb5GT +o?[M(9oh-im@g:0k8h4])7@KQe3+j:gQ+hD&+bp"R>r)P1rcB\8srFNk:H0eZ1G]5XPaX%&J5Teq975N +MoZijL4o!*]lKXKqeTd?QDa/U-NbQ\]=DB$Y/?X1a$ug&nBVe:7.*o8rSaAAg#-c$V6cKpK;0?:8s?Em +TE(cH9?kNpM9'l:m(2ld#`hcZ)%mW*ml@58K;:577ln61kq2q];@:gfDj'2ZFKF!u$njJ7OsZ8cZ_MRJ +bgU#aj>4rfe*l*dNf_#VM3I"aklW$*LfV&J5Te&\0apB+]EA`6`tM +r,Wt_gm&.N`S?'-nm;/%[S7ZkmbBFW==WT0(mPS;-3Fm"4d6LI(lg^7d,]_YmW!K`[X!(.W!2<[>D+c( +N`Qe;=EJkkH^4)g7h1/?_`:XIP!Cui'pKlV^?V+l^O&#XYV/E20h:(,k@OaINe0=(mXi2?n +(V84O&f']/mqOgicR\&d*!pK[Frn/8;[3n_r%k`%m$dog:;m(:LkpkCLra4hr`MYG+LL2&fCac\S`.NF +oiLlJ'41&-hI0GH0MJfjcQC@HQF6^\m3&d&$AUETY;L6B6k`ZCPPD^])ODLN9T-k=lU*SB%rYV<1`9oN +V-?74V`F'_EOW,.g#,C;j5*?AG@C'Q*aTEUV@^?M[0JJ8!o4n]&>rmd>Fg"[#Q>#lpGp["Ofp[tgoG[6 +''B)rEM9^nUQ))<%2.f>T<$0?\bc5=OPJt7j=JL2bPTEb]829!LkpiqoZn`Pf%:Er7jMF@?t/Ud[>T2q +W8dZpLphWkj/mTneJ9nT/g'?3kC3$.Q:PCg.<$?u>)Xk"3%?m9F6NFD>pOHbI*N?R_]8Cfqb$fUpD&l77%O;V9o4fkc5eKM*W/H&=nH\I2Mcro:;]UNqqe[B-A$WZ:bmbQT%6psF26pt@;PE"6#q5i$M;CP%=ro9tCO0WQhZr&Jt$/X8rd.9.g +Mhm1FLkr]ToZn`PVI4us^95H2-d4^drhR.Kat@S9j]gS2[IUWC;e&k?\%*0nL[9>BMCFmba+IiS*f&@B +pQBCMDOEe2\AtESG+Wod2h,p1+^s)b8Y<`<0rnHU/m-C`[oM)@j2o>Jq&r1EL+FZA8Fo<2ZW$h?<%h$Y +F^GWO%D.OhGL&+\5$>AiAF;D9c.#6:0bG4(u_-+/=l6psF27-#o_ +T1.g86)(ZKcSRtE0p3>R.F3Z"\Y&s)Ln6DjX(+oaOc_(,4P_b-OLks.(%/mMg]H(01%G0,'p!Xs-enuHKIZFbM<,.1T +R3'GR3?!3fHRGa(B&i\7HB@W;&)ccFiAe_Brj`L`81@toaX,LnT6hS9gM0+9?0J>5F@*$ +XCAG&RW6+&V]BHsC%g;;WM>Tf3eOHqD0ZND?_6*hgc_O)&U?IF@VXLO^Am8G&bSYK)1RIt98GF^;eo'T8+[gQ;N,D[KhX.a$H<4sn1_l7;9P'"G2'uU +$8%lo"5's]UIdOYh2W3Fa[eM%n?Nd@D<^TSl%e)@h;haeo%O7mbho,`1L2V]0=>Ml5)$&0%sIopmXgO4 +k6X]BiB%c=$Dfh%c*J-S'=*bf1Pj5Vr8TgOe,Bdg&J5TeOgCg4(6LNWF3n)FOi-N%Y?\<9*"Zlt]P,`1 +EjaAo%"gq=1Ard;1<,SXlR%V@32E8L"%a0CZ8V5rk'caI7p84YdSE1sOh^'=#GX'cXat3)h[ptfY&PmImARsgkb.=4F6p^Ek8'8E,r-c'4 +V(\')mMZZ.cQXPW+sJ5o7K4n_DhfCR7gT1W)kT_c&Ha)XUQ0]j?[(J'@=&L?0['g`SdNMeM*7&TA\).' ++8beA,FF%Bj7M+2]s2:"$1'L'RNO2$FZrc9J"&J5TeOfp)- +B+]DNN;dGkS6Pl4:&dnd`U6JMq!G:65DgaSdg]eV8=3P#gLMs;)t[NsW&#(q[ggZj#Ods7ABUdS%kT4b +mg_m$:"hhpOP6iZ?.>(2\ceq"A(]U^%d@^e7^nC7SH+`>h-F6jjZLNGMXQpFQ8d^-c%tJoGiYGA5L8Z^ +AX&0u#bQ3emPk!dfl-m/`j'U>?YJtRjn!-XX?f6B6psH(mksrS&U>UC%0]m2FP4`"^V8R`FLl,FO@tP9 +@pWBbAQ31[:Mc3\*Jn./e'%"efho\(f6#p]o:G@T?IkR*CmJUS4DIBf[s#6U]\Q(@:8``SkCV29)ZNXE +a!`XP"BiMkEX1D>`W[tp]eVq=]uV46B1[G\,SE;X\KfQs*lJmKojhL20C@;LQ*W]Y"Y;Z>2?,mdWeG=Do/EPuRMEE[R_"KqDnuU/TYt6Q] +O(dTTa`ZdQ>\eZ5]*b<+^\NVCFM@!G%^nV[7inO<;uIr$X\2W\R#)6$TRJ"&ho6psF2 +j:q74,4\32`#'*DGO,/m%-73Ts(a+2n`Tq:='u*/GK*C%g[k!$8K1OZ6i1?"*8Sdma]f5/mEJ%i;:*u= +L,0q7@,A$W#J4%<-b2AoPiMGMhc<$]hfH?eK++(l5CBC0,RQKrT4?aSHlaI_27epk3eeLq][YsGjo[B$ +OH;72QlC\>b)nBuE*5>LmSDsjEp)p5*,eRZ4l1[aE7*Q/f$OC*&J5Te&Wt81Ihn/*!]:d"pe8@Tl!-!l +QZc_1<&"0,l3%#Y!s\5?pP8K796JB,\I#h:q_/m5K2[NTnjONWIr0fJGR\ogS9%hT0VpZ&XPQZ&J5Te +&WsPTr`MYG!XWBm2f6%l'a7;@_W<6`%M:MPJ]nUa[`"(hCN2jo"i40\(=7K)1Z;0\6Q>/Ik:BdEdeM$@ +0X8%E(kG2Ba6j5MCnJ'/,lW'l4$^6G3MQ2*6F,?FGXcZ9XN="SB+d5m%1`En%ki1q^dQ6r?H,N+;q&)# +J`h$H\c&sP6323=Ps+hG`I*[A$Z>hlN;bq=qqQZFEO?+K+sJ3T+sLB4oZn`P7R5X(/(('2:-\pD7;<[m._?.*PKf&'+J?k8C] +*QsTJ4/3G/s(@VfUgSP`?(oJ@L+Ie/T/lI[Ia5ie&SU>k8IKjYcSs'2ga9;Z!ZN$O6c3k1*&#;n)p]>8 +?_d2O$GUKVQF1\of8VH^Z\XEnLks,Tcp*H0)keY=7K)=ds1@uU;J:g$`B%<]Mjkr*'p\r[rJOOK90(N0 +6X>jKNX"hWKm,CSNC`F[cUR"L17V5DAfYJRrK4adLC%S-N0ZP)DEoI,)s!J=_tj!Cbkp2>sf^hb@]cV:`ET?R>dr4I-Oh@+-E#q@Xh8`CaCkX%%04*0BTtR7o4lp#; +"s/O1MMR(ELkqQ/rNhUQ`7cJN:d,@u-b9 +bfmf*VX^'I"`ug3h1Zf4/S*Hbq8XOrQ$G1A'^&]P;],r=_`n[6dL-n'aN)Jrl/1ou0Gf`S#<`qY=,i7% +D,j5I\SX$OADZ4LRRV1TG!,6O#tR:^5r^+#\aJ;!EJ[``,EN29!t1>m'(PH6Vbe^Pg35.u.d9QPDSj%@n5;=PCLT3kBf,(0'M3NAu8Y"cKBtO8!uMPK=h($N5b,nOI!8a +%B+ZjSF`D,Eg>[GEl_Y'Ekr"ZFG&J!jSoKM+7DW7&J5Te&Wp_"Ihn0U5aO^qiY]1[M5ACi'f;H`TBb@H +KV<`0\eYC3ecd)MN3Oo*LnoK!Yd_qH39NdpSWI9**$Gb">sk15*YD=u42^h'9t96^1k_C3Q7q4i"lNP` +DB1)r^0C9W/'L.JMO6L^3h"'RClf1%WOqH.CJpNdfZuOsRZeWOmc&)/Ku:tI\dF1B2pXJ9*G<do$%Zm'h:-`'.bSI^_u>tp1at=+);_a%7cAN# +3IM^SV@!"fBV6%0jS=)TZE+-8#r(rNK#R22^Kj?*nfkB._@>cu:u'_c2:Mc_hlgNH7n#Eq34i&cf/),s +\1Pbi4""M;Z\XEnLks-_cp*H0)^3oK$f,m]:n?GAg3H4-,d(JW]p(+-hkN"Q`ctGre"8lu7]0JZ2_tRs +SI!"c="Zt&oIMG2FgTDm^C5!mV82QQOVId!MS/"(*'5g""$o:5;pBcLuV\<5R(=l96U$DNfo44lc]JPMIF@f9;VZYA%@; +-\RRA(LgVG4;s]-COkI5B#h%+TkIp,jQ*Sj4b&Q@q_n(>ECU8f]CZ26^+Fop%u$jhQFcn83aOZ-&#!TPB,]A +*q8U`?0R;>6NUbGG<\iC2**\Y0`UOAEd(6^YE=a?_3j@nC5pW"jC;n](]t+BO_n.(g`6pfMB#g#QA9*3 +LSO54=nJXVRP^b0,@J!Mm3.i;enqD0JT^uaQB=e!m^V2(c:(,Yo-:CJ=.*R\GlcN4/,?`W\TZ.7ET]ff +r<%9"^KE/1?a.VliF,7%F9lOI>7T\f=aCYl&J5V;Y6"[iTDc)L^A-^20>BXJ,Pl$bq:^IqUhLTm8qf\q +W&QUXRf'RBnuKBV]k7InHi.aU??4ks:BS2mGM*?p@u9aI;2%RCGHA&#KLkpkCLhunL2o#.r^[MWWqM>,R +7,A"$C_0m,6R.jgckN>-&P_hdG;]$[6AKkZRm[a@<&7j#*#6H?UegTu6^sqCQc>3UHO.t.kM1@IXU=3- +pr62+E50]Yl`G/X:p7LO1WgBVG\K_K550]7\Ga6ekrIF6rs#C9X:CX'"F+4`9h6on7rmAb"Pk0N=b0h? +qjJAC+ecNg'*ju&o-4`t>k`)0n7:#kO)MJo+4OZQ*Z-O*9))TjSg[Hbnuh,4P!\?[j;[^:+sJ3T+sOYs +fDk\SDf0HAmFQgS=eF,,Mo]*&Ze'\?hmsG9RX]L]/Hl1aj(mn*p-U..I:[ZHDWN9&1pmh(Y9P +7WDpA[KZNSZK+Q^9o;k=K*O1Do/a>r2YapnF`u"jpE)87@[nf9KAV%.E5;nK[/:fod":kWQMDeH`F#s*%bQsSDSo&^`NlX]hCo9tG5ZB3id;<8NF&K0A"1F)TK>+4M*dSi%XqQj +PZ14qmI"cdA1RB^r<33>k5NmJ&"[g=h2B/#\V(S3&J5Te&c$bB)o(n^2dc*9rmrNOdJ*'[+ +K?#_=`&`onRtrE$],R<;bITpm@\6"n^5?[S\IjURO^;(XI;$Te.#3I?<$(U8EYV?!5CmZ&3_p=Tf27U) +kjoBc/K;gRZ9E@fpZ%E;]?=ed$)R)+/<^XZ>t5PT_oVn>/\B5\FLg19\/G&OJHf36> +,L,dOoGW4?ha-K'FZ(>,\X,;6&`'7J+pTp0XGhpmNU.L$cBQ!3j#U2EHP4=&6epg#b!_TnXEe$9BPa]n +k>:9]8NO?&XE&kG\&W9bQ\qtV6!sY6i5Q:kCS&"p9l\aS(W@!1+2g&jCVH>SAj0TM +cc<"JY+l1MS`XdrIBYG-"A6;BQkfsr@j=t#=dP%gP*ffW>'n-`FYXt3d:8&C\)#%s +GQ5\68Tl`l[LcS9[DLM+@tmKaHMa:Nd$J'VhVUWeS2bCB)aEC;]AS9^I&0]aiLPFS,CU6_'Tuk.@qD!1 +SA#b$-0]kjC*GX@>b*UKYX]ILlc+]%197A-C`N&]X>^+l4't*ra?S?>NuklbKu;PdM-kj0HKU6qjVp4N +rb]6MZ%M,][Ep*A+sJ3TcQY^_J)M2miQrP9cQ_oq5U.LlaZq&Ckbd:/_Z8_;j1#AT/t6a9o,`1HA0c"> +Z)Mgf1VBeaEWhQ;b[CWTgHT0dgZBM:c)_Y._TQ\'OeO+8[k/7RN'?.r)PZu9N]R[$eKZEC/S.j\k6([>[k-b?ZQGKB&Lqh^a-(LH9*b<`o\u_2\5)7XmrWM#;fQE::>5B +jOc-QS:MUfn]ijsfDFF7?\^",gX6m2s"#?<+sJ4OKJ1+,@F1Wa&5XKW:E:Wr*aHOB!^=4nRD"!a5?U#%Sn?)c;T7p1MX:lc?ZZ63SO(KT6$5YMg8Nl +g*DmR*c;\qntC)B*iAGhpM7B#2`\?>/mk,/cTB-`frZL&=n9Wp +Lks.08,i4#s7V@(^A.E2^HGp'K0T-`S"#mSs7K_`oKiG^LqEncqteY.]@*+iggiD)X@SNbSMah>0&AZ)2bV.i@kDG"lk_2aVKenSD__LW?]C;+gbT3,?h'UK_-W*aKHONBG]9^-:m7GWuPWdZH8]1*pjH0i?3K/GCs[R];e;X%ng$iO^/A"6qF$ +2]LMI!/).mO)OKQO"T&%VF(2l[/02kB65ut1&VfC?^Zqs;m6/B6P9tC&J5WNHLot]IeW!ek4aB*pNbk= +roS.uaZoSK+("l'^\E^ST@,r^a;Z9TO[$jHKc=kJbW%=(oG;cM,Vi$ERF8$/\B^/h)\5KoIY,0 +%lO8;DnpXA7g+eYpffk.[k$7b&A;K^WS5.DdLEL`Y*e@2S4*pKZnSZoZ].]H,MV)Y<+_gqmh\V[N'4Ej^.5l=IrPb^L,#LhU\bqSnmEcoPBIu +Q*ENKnbKkFV17X)bqfs[bLlCRNT$.?Vs43`oGoG++sJ3T,)>ro^\Y!LIHt*EI.>0orRPocnK7f$J+sQS +iTG[XkAG0TIdht3*;Piu=[_*V/Z)''`dAESNRYg>Oc?.j[]MEAo6q_(GL>Fu@#TSQnXK!h%$ULGNJtDr +=N<'-"C3L%9YCX9d"kLnI!\ik2C(9f7W1jW)q,IPCE7?OH[\ARotrgAEZ>1J,O`1D$&gNTKK.@DB=Whn +o-0?c,:&:5%"Fmc-`%p9VXaEHbX$D?NgI@%02emV4:R1s`R.+),EL[(4qopd%c5e[_L0h#Hn%t^s(&dA +]]`uP0B6Im)s?j=.+=64ni3;=G<\is.>?jYCCWp(6psF2jGiYqJ,,Eqs78I)Zgq$Zoi&Ws425k7,Pl$b +GrrZG-P*Y8mP7o8bgc74h]&af%gMK@:O#K5_^gfJ[K`QkXOH^\0]V&HRr\FS&F6rTW:+M4@>^C]'KQ+Z +A]S/uJ:CnVaDRLCpZkepQCi$_alQtkZhG]"]r^M2em`,mPKc]R-[Yjhir`)T$62&U,5u?AfEreEA=14YN18r8^bl<-g$?0H<4mZmFWd3t'lP +^$M\A:$Ql6LkY86p9E_MA5,.H]k`?an2u/QJ/o`-,9h&6II:n'iouAkHfg.JVLNjF$F4Njkh6\Jc+LcT +[AM'!/9-.NC#Ag1=^uuge+!EL]UrdHIQBMW*ii97UFuf'`f#Y/Lkpl.l0+a.jGhLiYXg/@&t^jg`"\&AKH''2 +fI'Rt2aq&a>66F!7[,ShY+=+dC/'J!]jF:cTmWhr?G6chdWF:mS+"HWB9fFAh(%V@he;,]Ff-Y:/7=t. +pGHINrAo&(:RQ$<=*F)d:1@.Gbip+i>43)HH0D.NMVLoNXS2P!5^TJmH+f@;[C7$=3qRI\,0kE,?5b3a +YYIO_B\u5oW^#7]]<$W-a+_Nmo-XXrimImU>Mep+./I&[>"0hFU;V=ddOmS9h0E_Y1V_H8SMg3o+sJ3T +,'$QQcQ_q'\>qW0KMG*Zo$u_6s+].:HTLn\pZHl)cO<=U6Ef`CohgpBm@SQ/7t01B*(+--M_n'heB#;( +!/c$qOBB!Cg?@PnV\@rWC\7LHN$-=#a4C*,GOHfU;5s?X>j`7?FCb9BT9;/$HA_X!`VB>._]20b8ZrX2 +r-lP39`R;Y8Or:F'W8N:Wb6TuXgr.9kaLR[hu"Lp-f"^K"#u!fr,6@;./'$mh"N-Oir +_4ufrpF]p?30LPrCl7V!HgIb6>lFFL(oJ>a9]7eDE[k#5Q$h]u\6FmBURGnAjpr$7*;a_mDSKNdX7K9D +X[e$9V&p5)LkpkCLqIa"cQ_q'5XXM&USO""Pfe/QGaM1KB7+;"C?/SWQ$r2SrTF"Zrt?t%Sdbc>e_03N +m_RNcc?n3f*'?VZMjMt8DDc-@R-B_Uc:V@Ka4;3Gn@u1&ECUEt.GR%$TRQ]FXntX`9WDTibO"h(\A3h)6 +8Et=39q9N+Fh$:b-eSA(bA)5UEq,#?5+%'n@.3KrBdVf[]1$.29kbCLO6tu"F8T"+Cl^]-\89mFo('ZPNm2KIZ^b?H@e1;V`uPAF+%[+k.rr_ed+uY1(Dd3Is0QG2#j<#DjF!0AO0Wdho^<&cN7;5nm*RWSR +=6LhP+sJ3TZ:4dE,&`.5-Ti@%\QbMbEr!Gm,5=6JUfQ>DU`!Un_[T*op&-oQmfeisR(&YAf.@G%T_@>@ +LI6F'(8jOOGE_OIeYAA<6>q4@,Zi*UkEVa-+4_$ZbN_sb90963q:4-Um[BeC+qSYLeZDQDf)']JD*P,` +ePmi9Ggp!V_r''"b(lnFd)28):W7[-qgJYc75M#4V>eL=kLH$=/eAu>F:_pVVRT#n^X/3T=``tmE' +meqU*jN&pq'9I+WTg$'BFnunQo.2(0+sJ4O*V@Z%nj^F6&a:PENHR\!;&C6Bc!Td,/[j$DRaQ1A'`d6O +kV^cFh$2o#6H''KQiuc465spe+]266T_)Z`bLXef2TGPPiUE\`eSWWJ1iI3pWI2lYP%V?%c.c&O-h:*O +#H@C[Q/N]ii1H.%fd<&KB+V1^aX$UJMHmPqTD+iNGJ2[@I7c9Cd8[*(f=;%_,=:,V;.k;tX7KGE8s\oA +GcWglMaCPR2r!.LfTBb.Y3Vu>*%1<&q'rgI`Z$/YJ"a[R?K'C%6psF26q%&+,&[_an8Q8.ed-$=_X.>u +YX\>/=e.5gkn#DnBIYu\i,-f3Hi1gj4(oYn8b/1gEP=CE@\U4Ij>cC[kVZLX#2HZ[!]*Vr#@8*7rO>U: +ghlHBnq9kn1;_I!=SCL`3a\\F.:+-Ar*7_G\@-6m?[l1YW]:obOLsu@[Y@irH@N[YfoA$4rg8JLc$")lLkoW4nL$D.6Z5WG;%(S:;1H#qHC;W_*g(!o)Bi)^$>SF:aOE?2#2+sJ3T ++sK>Q/0]"fSnLRoC_ni<$JkCaO(;tFDF[L>_pc/C=P7MJq"1M>30EV?kTYTg7H;(n4J]Y=qE;-EF5NOu +2nD1Bj$\9)X*>%;DKFD0GJos;E00Hgn]uGu]^FDp3UJH;fUgS_af!jfZBB;qN5c9$P@kkP8,;rJ,&h_= +[I#\=Wo%`Pb$,[SU46>8**#0q9a=D9pJkMUkAk7TfZ5L=r/od[Y.K'+V`B&ondW@Bm?@"i;2j;&3.LAi +I_$dK+sJ3T,$./3/0]!>rmF#<&*r;d:.rUd[M\B/E'D^8"j$agX?%D]9P1a[OIcAa"iN#1:1DP66LY>% +suPn>!$=)E'P7os$h2LDhF0]#fi=ioK0_`sno ++4cjCKY#h`M0I`hG=Sm^:*B9q+4k4ZLGI1,!n*A,5rc44%UJO@$6S"5.@)j'Sfcp3n^$!2P]c`+E!LCk +mHtn$N@Wi,S7b"?dU`%HXlM1IpEnd]e`VJq^V;UGN13j96psF26nXJu=[_*\rTF!0<4? +Goce&2H/<@X[`]8W/i'LqQa&8XUYa9n!XX@ehT@gd0Dn9-eQ9o9AIQGij(SVmBmeca)e!OGL$Z#cLKA<1#C%35?-l(iV&9[G@AH6%nsi) +L:dmQBF*j;Q\QKNf\uXT$G`,AXlifhD!H#2+NYi1*dmT3brn`G4,:aPoL)H'#>rb7f7B3h]0"^u+sJ3T ++sN@Cs"#@4%5PWX4M):G$VfOm72D$/:V.qtMN%:.M_TDR\5%WkgD2!^:/"(9haiOZY(Q5LID(&+qmp7p!pTo-,\pM6,gnM;3:GH2B[I'+sJ6% +1A&m:nn-S?.K4@[1iN:2)*M28I)jAO;RP6q:\Gk?J1D0_`ne>qBd6Q[c`Q +JW/CeF(>Y_nB'F#c*;C7b^Ia&jN^o.oRgK^6LVC!8,C-W*.H%]4]ZJ]M=J1rHC0&?e#2RnVh5E@.ZD,. +GZ[&RHh@Y/F#qD*'E?EE6psF26pt@Br`MYG/GJJC]M;YM=hS/IlGZ+[5LO4rY9(ZtSYOJ+BrkUS&oL(< +ot7^S]Cr>4T]%m;fUNX"0#rKrH[IkLEB%'@`O'8#QFfccd#fGeZO7DP]+UA3ol1W^YB]qd>[?)oP1q#O +`PX?USK$X(H1Ue[Q]LEJU=pUV:p8Wm,Y5RPX4$Yf]c_TM*9i;pG:CAbc-N/0,T@^eTDP6!%3i_1Is^52 ++jX/u,k1&_?8`#J5_`Vtb*Q$m,:;BaGnD'5EOWkY>N4LE^gY4ho7!@&,@n00`i*fHoaW\O*IK#OfVdoLF +hp;PAbGt*[P1aPuMH]@el0V')`QbrS>6=hpV\55@N)Mta%t2-m/ip0X8q7G?:[&#Z4gHDe(@80D40QAF +AOkuWkKh1hj]8pmH%4.$6N5?ih)_3M=g-$)e)>pY3j[u'4/DKDUsOAeO^0*Oo6j]eR!]Y]&J5Te\MF"o +&U?H[['a9-7-1^t'QaXu6t2YH\70h+[2VJ[P(4kYg#^PT*go'@,80b_3JHf\HfVpIkD+2?)j/Nq^H@JY +^TZmTa*5!S`/U]I-SfF+RaFF;@F,V6qN5`5)p@Z9i0'(Ylf2;#1]hs01hW'Z?*i4d]Y.[m/92(.2=6M1 +N88QiIl^[$IN16VcNdptp!8![; +*XOjaer\7MY'rOZcGW80N.LG[TgD].oZm\=q0Wu%g^0`6)AuDEZ +GW0Jd$3Y>T`-+fgQ$Tp"MPJFH+19[0.0q`=^3a*4mQKutr1gRX'T^LZ4g(Om&X"BB:@NDuA'hL-`=[M8 +4nGg0)2c%Sl2B>Qh(&D[]$)232RdPU><6TUh%YX=n(iqBij/shpA9!X+BNiej'4d\pVY^7hS%9d]JHaCC?^%8R7Js +*j*;tDVILuq@;E+MaXOa@f-KRLkU1e7IB+r*NqPpLI[=R7#CLVo_XGrkHN].&hDdt#G6ID"GV7L]16=7 +;LS<>ZZjDOP!*Z)s*k#u!G@ns+!=&h#mm']%?MQl]b5q=?P=OnU&+qRJV5!ch2':+*?[@_>=\l&OV/5P +.2`-m,1pq^S?:\?I]Dh,St>37g"g`!>4p[b[r,4%l4&2bqE2Gd,5u>7mL_CO;/jD9f0*6C[7=coH6pBp +0,DYl\8rM@YPBV1CdY;2CM-f0DWcI2/Op)>`bMY(48!W8nm]!RI0RiOh4FmP4+?r%).5,]GXF/qB)Bs_ +"hNH\q=K=O%+;4<%ru*L^mt?m4Dm)Q'56uHc_DnGU*tnn.#Obb.Ju2`U*!!F2^M7mn4>Ri!]HrN@FK(a +JF.[e^qHQdo<1+:!?J<61f#0;$T)q"1-i$^9@3FjRg9cjADcqa-LgqKh%TuZ6n=J2M2,C@aNhkMHiq?0r[:1LZs6/k#mep04pe^l&OgM&E!ia)\jcI/U( +N\),u]75L?rClS%]g`h4d`Y-AJ(EF=E.cipRE\PdO;YLN4Fj1a$;Zh1kS6O77@dr0O.n%[U*tnn.#Qke +iQk@8rFci."[S&U3@P,?OiG&be@t*4o;@dY9UJ6(3`IBU!1lYn/XFcc"tuW^lCg^A36Z3)?-pfTm$EpU +J>p/&WHblA)j@kKgcA3#G.$gPG9D6^i6QMBFM%&9V,mckK:_/^:%?;pAsYOJ8p8k+%i1dXYZd$]h"G"2 +p2ZVLbpC[8\KenULTAVA1E)h:^-r*5-ZRSA3jaM'(M0fmTMA?%?*?6sQdbtaGt'!ZYUU#C(4'(9fj +^+\EV,Z,7E;%uGr'LgEo'`K(@d1<1(cZA7Crm3?=7H!cn9VIJU=_'MPaE?Q4g9\kuQT-89_VsH`YA?0Z +J`3H/*GP%^n#]Jrlbp)^lT3YjS:kU +>TJI(c\&)]Cmi#&Xb>fCJg%`XXg@b-Y??-j8k]pf;%uGr'Lbmk(54tC;=n?j*"2m"^?=I[`+A/GY4?69 +r2WY*:ED^l3+W?N(lniOQX6tZK\KcCL`S;/Y*UoV31!"A.lLl=3gu>joD"=I>,Q`\GP$fA^`a+0oFVh- +/);/([FferQAYj'5]T8f0!8SMS-\^Bk&3?WpNVQN-k?EJ4sL\GMP8a&4+&)=)m]WW6Cu`/5KE?9YTLLA +rNV]YA=c<4Iu`a*^*u7!8#p3X_n"]Cs#TpE5jOI81sPb/4$>!]h^K6i38lRGjW1*EMP;MVU*tnnX"+$- +MP;1nMj60,lQId,$q3TRO0-AI+*( +aCg*E8'oIm1X%?fl*7qsIaqZkN.^4Z:TGgQ=OX+48+X&WObd:Al-BAiMkP8Km.%q(EZk)0"2a[o2//E& +&:ip2JoJ,cdpdg66es)=0bqu_>02'r2AiMFKq1@g1pbO)D>0g`!n9!/%^(,TP +?N_Qge:G;uolN]GEB@rVf_7u.Eth&?'Lbk57FAd_rZ"ASO"BiD$=\-2-0Pb9jVXU_*/?U-rOAcZHK@$# +1m'`)$./9K?TJCU]/YM>)+=-k#*DSKjA^i+1j7+sb\4jUJ +Z(E@DN47I^8f:/k/-3WiJN;\.)ApbEJ^XF%&5X0h,0/!o&*btW0\rD&5/W_tSZs84e%`kK$VMie6X\T\ +ar[YC72X'9'D?*/UsHuFP(cm)AEtE"3JsOZMP;MVU?K;uIu^8e#M5Z9%WnG'-^4C<3WYP&-PjHRm&NB< +%m>HU/QNIEjBDkD!64#Zoe9TfjNcELLYPWTjlt@.e*;2$BmDlpG:^u%VP*B3<;f1Zld_QG;cp%Pq%:jX +Ynb&qhA7-;?OQc:@hSQ5mNQj9:Sb(XV5Jp3`^tL]OHp?0&fa&06F/qpS?Lnbg#4 +]KF4i3\99,>O]%0rl_^\WOnoqX1[/.5<0ZAH<:uQ]q[!5U*tnn.#OaC<;:MK71l1*>XiB\0alK-Es1)U +8`T"6*khY#`9'+X$?12C08smq=Sj,,PAG)iq7-jHY5M:_!r\^+do`8>gP$V&\2D^f?:KsG_+3X/+tnZ +JT"*HYiNq2%=Vn)Y`Da:2^c4iR^LCaUfhh59iTeSiPKcLO+[HP,43,71Ii?P;%uGr'Lbk5>u0G*;&&tZ +&tBs/Rb0(bBg5GG_`.K+De)8D#:n+j4Z/q>h.[lm#TG>9$ikF")(bNgA/Nb4adZf%O`UFP:/ZGD6s$b(.`GADkR_[rA$jK=lQ"(7;GOWB7jS^dbIk=V^k9^qWp/ +mUEMH'Lbk578Xaf;=s8`Iu^8e#Ll;-,mSE2/^(&%;Dc%N(FP-Xkn8s%_K6iaE&at6Li(e8]pqYlEC#2@ +>/L>fJcBfO'!0B=*7[1r'\q+'1PS=3B5LpkI;Q9 +9/k9iFDIM%[Ial(Xe,o(DO+1@kSZ.%,'pNT@*Ul&6=V!0P@&m3R,$iOEt/k$AmOO2_"7@;OH8?$jtLa. +qp*>GdPpkNfHjB*fdbteaYqV'(e%:978Xaf;&%hmiQk@8rIDbu\Rq*h%#N?l(l4;@a[!S598]^2'&]k> +WLt.Q97b.l\1:P344Xg,HCqIu!YR6@QFr#j3p07M!5%!!8PXfd"5=?m0^WJ;p"$E.MVJ'UPHd(%aDR?p +KL9*>CkX6?1ipDf/Vfq.]i!Do7`qg@e%h'cdoqqgWbar-;]"tYSFlAY@jh"<:EP`q[L<]aYj>N8cCA$+ +,CfEk$RuH8]sK!<+8S8(5b8/Dl/MR'd;!R1DnPH$1c%ub;DpMk(dSg(;%uGr'Lbk5>tO#$;&&tr'$(,? +O&6Gc`h.bNHo`RkI>W`DbQ38PBH'IshFY+::puQK?l`O)0m_DjlX[U1i=^@me/(s7\eDR^I'GGPGYgu% +LAP[!=GZM2d_8(eYiIWc_>E]JGWSR7dhiGB5?L7XAq"K2VQ5#")X2ujgrE.tgim6i@pA"nmnW0iH:j,C +R;mKT$Ifkgm#MnYZmWY6KStW'n>0OkG\FG0)sj$djur8-WKg/)%GNLgLT$iHhDL&Sc]lXd[H;]-ffO7" ++GumAMP;MVU+!UQ_OmSOqD"hR@I0PPDrIXA.o%J9#S<-OY,^(+]e,,iAg#6phZM\'$2Z` +l@.R:s6Pi/cj&Z^FHqC_nW>]&B#uu^aa6'gJYGif7[A`=LN>TNQQmI.)pYM71!_BC+1LC*F,`7RC +ndp`F\AY2U<]IQ]\dSG(,]Mn$ltD\#)9bAqsTuH+nYf@+5\"4TND2ZJEDV%BHhOUF>tI[I<5T4Ah'FUsS(I.QeB\h'W5?au*DVfOFmN,Xh5`4)p&fhu?B,VZH=#nH0XI`f3gle7) +,?*A;cMk]1V6$ZF_\s+>_dlbTRGP17ShCr[8F3V4'Be@:,7hIoUaF?c/A]NthP\7%Q4`LkKSNkm&?Gj! +1]lLbVcP6faNqju),B/C`FBF=emLYoL)%ngNI0JqQ6j*_jo'?C:5`CI;%uGr'Lbk572lS`NhY`mQ!bNh +[%n@#m=b&G]_pES2mDCUGo\.skg'lh!<[G%W=rZeU^n4A/Qh1Jm"\o9X["dH@Ysp"N9W.Cl7GsTNnlb& +h=[0$2WSlm:?[*SBMKr@4iE`_kjbA)iuLWk,^Snhl?:<.d6itX(;+4SDMNC%l^*h/^uL1L:U@,U'3c+0 +(^XdT:hu#9\2]-Xb=8ATHLDddKJ4(ci[[rkT[tqLdn-2;l^X68[C;Y11/FN_1P`t,j+@jaO?ki+kJnNoD]!J2GTtc5F;fiT6r0bJ-raZYmm%aPV?F6)c +J;AA@R/OCI?HUV""m]2YoJD/e>;/:%lebA']68kq!RBsXkHfNPRN^+Im?6&`r39=JABTT?Lte=G$l6U8 +(imZnk?[[4G%acAI*9E)G+l`W].o`Kp@\3Rc1Lq]_V!\-]c0kohcEuAAHs]BU*tnn.#O`IRO\4qMP;1t +TK/(k+?ec$9&PhY:]d%n\SfIk%i/t0(atW(#FID@<$9!-_`'8N4(`k&Xb\@P'/).sI@;)i8dqZ:N3/sJ +Gjp@^;uPCj3Zrk)HUp?<)ICFeq]agbVL2d)jp6XQFQ;nu7cDG[F^.G,iP2S*p+Y"A43(Ju$3[sX%Zktk +lk,?8_)`r.=aL:_BaJMD9a?j!3LS,.?ZIi/>5$^uH+l?kbPb6on6i6RFOJPtM'B0A^WVlFJ%f[?7heBh +'Lbk57FCk'nE23WU=MKF,'CDaQQFGRF73NZei +Aqc./KdDHTPH*e^5W&ol/HHb"fZP,")(a?4ppPm$HhPaIPN9EBZ%K!%MD*p'V+WpUT)Q@k`dP$B86St1LBu,$2D+1qnbOT +rk14;DLGTO<2W!E!+)b)lGd>;LZjDQA;6os"9\]39!@@3NnG5OK2kY\3-E:7ITGU7L^n6n[W-T'"nTi2 +!Do$F)V]PEH@50M)Ds@Cnp"qTm_s62ST>E:a9a";fi)/.O20UZp(U'5As:(ZE+e.m`R7Np8F*=.L!9sH +[a1rmJ\TsAfcqWpL*2K]95E-Op*c)>CMtZfkG6$a;%uGr'Lbk5rQ#=qNhRqb`5LSV:bO"JTPAhS-b-YN +Dk'V-YhPF5KM/Ysg"aL0R2[D]3&[;DB1]J@Fka@-Fh=O73Z_\gF5bQ=1(>N'4#6LarF>IgPIYZC`?jqs +Ctsa!p/N!Cbbt?12*&WuN-G$0CsQd0oQC0fa5&!=cmrW&=E_BLj5)6fP'=a>L-)$ZFq[-NZrSO@nML99 +V1njblTWe0n*/(u.^YS)9o66It@ZiK/A4(?+o +:#>I7K/fBe3uha]\Ih$Xm5AD&M\SV7>KejV,<\6Pd1WeC="G)qc*N>e9>qA0=LHg,+Ai8>c)1\.'<^>O +*+P=_gBD4LK\T;mRNc*<`1AbGec9k".>^E)i&l1;%uGr'Lbk5IA7.! +NhRpO_?`li!3$[n#mbg5=ADe?F[QI+iU@MYHu +I+U*Oc5ZAimkNj/q[runMf[dN^VR[4Wr@7S\=:(o/\IXp.]D[QHiJ9Y+RiHB]tV2SGj31%rH0p^FVI8A +'Lbk57F=&lnE23Wm\Tm]l*W):m`/"=#52F-E@6X:6&\*cdqf9K3'=_QRcekF2/ats),)NO%*C(CcM=g, +@]C3l#CNZ'O7S0>6En:A7$Mq`F3u`WcJ-DHR9o;E<&^[&QtV_*q"%[>L<#nTLe#eY%%VSBlq_Ck3[ikX&qTTRn"6AQq7Qc8&@,t362bb+;3>dV8(Ql,#)f[s +XOUOTe8WohM>oSnU*tnn.#Oa4:#XDq'\u3ih<0QKcThC#q=4"HI=(NoHE]b!0eq"M,m[SNOAoEp0n=4( +/osN2f/ +DGQDT(^WN)E/#2.ljqp9*/\t7`mVcA9^BFVP$c$hL]d6(1Z2N?(:>jA'$'\'fFo\[&Uho>QM>.N9-s/# +TPn;c%p%h5li<+$j'i;*fiomp&n'QUeJCk4]YN_"k9u4^.#O`IMP:Q65=\RmHgQ!K5CIj0cc=Z-rI$aP +!5$5i`P..;E$trnhXsKd@'mnQg?EXeYdOS\_@cmO?LWuJO/5pEUViZ;?"bDJ%NB-hpL"]"*TS=O&F].i +N2CK'VKR>'<`_T9r->NPHDNFA:HPE4J5+\.:QGH8L5ObT@[lCfd_L;0lq\kKVr\KkbNrS0(BF7\ +bA#p(23.^i_dO%@F5@="X!oUBc.48Nq/OnWcWA0Gn)#S&=#aj'@@b53mQ^I"MehbW.#O`IMP;MVU+#q" +MP;&*=W6f*puZP*F+6T>`:l_7USeP$`:/RDC2T?0^u^Y[W%upuOp>CBC*/?_+:^6+'/3o4#3alDiWmPn +]2-I<0Z(O?)'gn%k+L'\`b%J<4E(]?PS[.XNKu +8M"G3/@dM4`PZ?`$FgH^H)aR6VQbN&C0U^un9Y1S6%dV>``gT2oib"d\P3V?#r^i0mY`HMU*tnn.#Ob_ +_^bREMP=>?E-O-&$U0J5hn)Bc%DWJ,`m[?FYk<PdN`d,Ba"ED61Bh.Ak1`)5,,/jc$G:kY#iE$aOETo:?F/Jaeq6JN +408-PQe(mpi4[F(4_.#A\tE[/7u@niSSkG%-$k^*6.QDBFuR`gZFcbm#NKEAh>A'$rZ"@('Lbk578\0@ +_OmSO\sX%`k3uNW]B=+>%P!)Fgs.Fk%X04,"!(@%nLbXmQ)`)U`P=I5!1>s0UmF\iN\d@KF/`>&@Y'6Js'p7VGn2^:`;%uGr'Lbk5 +75$.g3JsQ#aceYI:B%T,n$VO:2jU+<^oWlFULG/;(f4e*0:\,s$*:$-o0V!?L!`?U8D+Xe$Fo4h!TpLc +\=4gH#j8e$P`giE?;OLY$_b?!pF^Y-A#h78q*u!OqW8Q8%:hOEgQ15)@pZ7M`K**kF_U3Pkh0#++H*oJ +J)ib[QhYQm'>G.&M^F:#sl/.N,iSje3)b<()$qk[oHjS7NbZ"9N&k-mHHq`bF7!m!JRrgGE6ul +Dq3rQG7fnpcU-EsNWh,76,tZ]9V1@s"X*r_WDU1VeaZ,2-SWos`Sh-MHT5d+Ge]?dWU$$+I1uD_<:MJq +b2jTM8$\u.IL=k4m0MRSFlL?2B^q'PUNZQJ!i;s3,Ic'4.>l,>CU/d8saH0D/*'d3/l\F[$+B,O^ep=9+XHNY2mtj4%XUV^]+s +VD5N?UXfAI7H,Pg"i*!+%!4t1`cr_Y\_]"I]\MOP&I&;K**N-H_"Hkt15bFSdZ/[GI=B1"glXg>PT#cK +[KSneP]h@8318i,!;'N9:6S\LFb38Yh%m:s!5^"d&3O8#aa"Z_D#!u256l^]qrM"Xm52Y3T*BPV_4*S@ +I:k]ua$K>S><@_:.#O`IMP;M>Kg/()F9=,<,^eW>PorI[1]36lD"sNOJ]]JSj`C3U_-"b"ef[FIIu`2& +`T6Ao*Pb$\t7j@3iJT.WWoU@cDUmI-rq&mt<^VIF6#?4L8m.(A@%2GVu# +ZFMXr2@dgIc!K*Q],8=uAQk#CP@oXcbHGD(e%:978Xaf;7*4ik9u4*TX"'\^HPU"LEr&FIV(R27pFo3LA*`(`9KpKJ:*Mh +K=&Nr,H$6KbDFAi!Qa=UHQ"]"!;D;PKpIe8e,?*GK1r6_VHL2IQSCGU??.%MP;MVU*tnn./L@drZ"AS%7Kut>gVnm5/'71qU'u`PPA^hZOs2G +>Lj*I;Bpo?\-"bs6h[g?CK(bC/5jNjeNI)WU?EEQ`7AX)VF;`QOR^/%:o#1lPCk*%KBrA-iqJ1i''?Fo +**t"uTKV[.h:q.k/pYKT]I;*I(k]4.oce\:Ued4J$M,(Nodp0g4@/'Q]ct$/H,1NESc[`>mTe+0)3,K% +AtB!8P!(d";MSSm[6\KM>lZOa6.&'gN'li6>-anOMP;MVU*to53JB[f;06[BG#':-d,oqQFlYnYE$1f. +mS+[jY[>hA4Xo)*XeJp,JAg=09[N;f?M!r!:FEpk45qp14ZjG4"+,s6[<3liI`M_0Cu#H1(2@in>)g^0 +<9E")/.Z45S%HT()4K0M:f +i>A]9\9@*=]_r$K&Jqg8FDWQ9-b55GQ2hA=jr1U;/b+W[L"NS4XQH0D,R_`Vk/fde3uVW;bNVaVQ& +PgpFZ`dt?cTmgaI_k1.Gf:9VmNF*$/bgKK;]/]a48K/XD),U9Y@ltf$;%uGr'Lbmk%4V38MP=m%^]20C +jaqXe/J`d4p\<.VZp6Q#&gu%*\5V@V?5lWV9SFsHRhG0CNEL= +>Cb%K%S#b>"0I2hIN?7U#O/UqO3F[(.c +_0\L7:Z![*)l$BH6!'6(Sp:YoD[8Q4;g^9VU*tnn.#Ob_7>3rr;05eY%ZS8`!h]GaEN0RZ1S0&QPLI_T +aW]mk(LXlI)LU"!"5Y\3-I7<%E1FL`>3?0'!qC@KmL,'+9-,M4@QcAB`3l@;Y&]:Rq[pOOi`F2o\7G%@r"2>I:^dS=#rE3IjTd$/YMlH]KD/U*tnn.#Ob_#?U\A'Lc*RDKisfO7.dkSOIVh,G]:/ +rjF%gE>2n&eOKc9MJA%/D&;baOmQE/eD.2i,?)EPBHCh^'O%Y@-Y$JXYk;+ZP+Ou>!WaP2\bMZJ>bce+ +"QAE_7X?j&,Vje@9]e4.Glq6%0rNLagD6k4I7-4g2m*rY]c(MmBNt\Z!(\P#kU@M,_Vsutl1[)ag$"Gu +UX]V:@_fc^)[*f=e2IHKRpkU:3/uI0I0Y$THN\T.omf.RrMglrU*tnn.#O`IqKFT*91.sNq\eiDK;,+G=n +=g0\KKF8QDT+0q6$D*:;FWi?@\&+`XG%eu:V$U!HnNXA[_K!g\mV(I)Zosa(MP;MVU*tnn&#JdY.#P1- +a2]i@=`9?#ieZ_>dEjr5^)co^EW!t.j*X0Ii)D!T_u7\ip7W1QF5s=L&'4DYUVe43XVB]mc?j^k0t-(U +,p>Q5K!nPHYRPTdAJ0Y$_06tNKqn;QPt/r,^AI:[3nk%m9f%u;T7"'g887dR%,X@t,^TeW%V,PmhKsHs +PG0Ua4]WpU-G&ir>GKO2FSIh3KIHU*tnn +.#Oa[VXWasMQWsjBqE*0q"XZ07+cdoqoYNsd!,4K\"4r*!O-f+7q]"1hSNu"i,^'i7?6Wr!+E4q6<\JF0MmY0f:Iqas"=!;ttDJ7G$";s2:Ojs#O\>I/JpP=r(d):agtgI=n1]m/Vm&.)Ko]MJLdG +_@-8d7V73e,cI!05=`4XRV6Pca"WI3$<"E_i2f[_kGB"W8GDWf#C:cZ$].,3"I+SR`sMl0_q;l8@E7D&"4 +Y\388ooAMQn4r%"89l+=h>.g_ +=]SO9KJ]p7gj@!F;TeQftNE7>PK!OsIbk,P[*r]MQ$K:2?Z6@\X@+Dlk:kEU?178Xaf;%uGr +oR/.c3JsQsBto/7b?13%Tm;-8#uG,bL-Hc`\p*&(FQeGV8->M!R^a5l[bbV2m]dS:.ll.V&Ibi=f<*ls!hCN$;ApP:!SB&mr#=i?6`Rg*TT84JO@eGmK1ik-TNEp4 +o4c6;TXQ$;Qj_`4g_fJp$\2Qg,uO*r&^t,iU6l`IJ*B(f8Ese1fH=a+&V-48CUS.P,J!_\S0u$d`U/UO +S)6=&@j72,YP^luR>IXdMP;MVU+#kO$@e)1kc,8(Q4)D`c`0=1ZtGC$U36%sS@]1$$IeV=>)EhWn1].) +U.RnQmn\U]Jl#cZZ/.9eT&6":$e#`FbK`heEUoW-0h&f8q_Zjs&jk/n,SJ0k,(I5)Mq_%#22@a8P +pCJ'&^(GGpHX`/iMW-WW/hT)OcBZre!R$N>;=:6hogdnUc/@8-pEf7[4%\W=hZZVnqETFA?EarQI`\!$ +<1-C^]d,F"nheiZ`orZmeK5ELiBkD,0)d9h>.a%N)79]qORAhN[GH;_ +KDc9cL#;l;72>&\1#`"1%WhCt%qS,rkf3Ko&-p#+Io,'"g8cr7];ndC78Xaf;%uIV]#()7.(YQOLF/1c +S;mK]H-QVj#'!-pTZ/P]5qLBm8P=ms2j$"V5nK9%2?bCE4]%JCJ5F/r^u?aX%9kVmdL@lKaU-4.eYV[T +fa+6>mj`ccmgN9W%TPH=j1C%dDbMhSaKI)%pib&u[l5T7lri5qZbo4:/n(LHQrl.PJ,K"bcLiW8Gd9:c +o019O?JQ5i[CY=_A"o$T*YS[i]kcQPaPj7ni2`DeO99Gdfb6KnSF\[sfF9c[PHEgDNq#3[#9$$.'Lbk5 +78Xc$.Ju2`U?cO&q\&-EN(b"o>G*!)HYGg;E,=LYA*EJG!US0CM)=sqHC=k*YWX3mdOb`uSO-W+`Zgg` +rna8^J:oC;/3*`;.e69<][h.DWIIu1UOJ7$%ERf,gA)b&Y7VMlbt#K> +JJ5Qd//6Fli6uZ`C_Z,D]:iKhR2^V%IEQ9KJ-ULI4-VqI$I2Z[/6^6rbT"6$>/:-Ne&l2_M80QpIL5!V +Mk_PQgoUNQ'Lbk578Xafhl+DaUF<^FpA5%f?C"(1#&f0l't'aHKZ,9d4EGhR +'uI2f(U!BSK9U2i'O%eo!KY1F^5-DfC=En:9q0dWahO\K)Z_0%9>>n4Tk&FMV2,]!b*dmNO5#1kl;o@oa[ +T)%4Tr[\K'Cp8JB&KMOsScWM;=us&E6C?T2miqOb9TI5LV>9i<,YZ +iSB]N(8oAWaGs-8\"2Pr;e7/JeW"?+@l9R]J8Wf)r?.fV-.A4pI%LI@:MR6i+[#HLXaMiWl.D=#Me6*3 +=K./An.(QU9O'B&pi9sc2FP\YYnOH[oR<7iN(][XPT.ZFk_Tt:EdY:?V6MuV*X\#bH<=u$]GQJ=78Xaf +;%uGro\Jh?s7K_@*Zi1jUF<^cTZn/d>a?`i%=BLG_qi_3$`su$&&OqbJ2<:QjQG+3'C_Y%X,]A>Ie(8G +.Y5P63iXdr$CFK".2Xh^cX9"\&oY)p=(b(3,qB(>8]OBkJ;nn`F`Gss:[X/&gEViiB,+Y^)h7h(3EMZk +2tBc<'O$!*oGe+Ahni;mHnWCT2\68Ko:P]7BG4=L5?prqm?MSdO"W4u;.u%H +AHrsU_0[B!FbrFINX,#9TIR12i#BJSZRe$$[G]!S"+_J("8'6FRmcL.DecOLLnJYr$G3i;f!DIB5>f`f:8ns,&RJndM +l!hi.p0VT#%5OGcg#G&[knri12I&A`=slSnEPLD_.SP4!?RWcJfIf2Vb*s[qV>Nf50DGuS@\P9.U*tnn +.#L3crp$]dlK=dhrhD^SU[[FpMXDm4@i:jQr[cAOR2b3LX2pr)ohddMpsS9@dDn3?*R6'P0c!Bd5t[Mq +D>b+A9KMDa4*T;W%?c_/2o8Bs0W)bQ0bHb/@o&W7V!Wm*"QBdS,eR+]ug`\Omq^?--[ca588(,L1!CJ +H&ak#Z(ST*/=_*n4Bb7h^.5Ep^h9\#)K>S\B?3?*FUQ3F_0`G%I5msPiFeU49;qOGSISXCLfiF +Ip4;5#a-]D'i`R!]Gu*rU"SQhBjb@pJf%@4%:7Qf)\hooN5oH[DV0=.*WVu;%uGr'LbmkKBOuf +i\,c[q<,Nllb>Wt5G(04URQ?iMPBQ6,0WmF@Y%S$7O^aH$,#4qnRj.7hd0s$-;R^_.B4BJWVsN40m2dXNCl*"\K+@J)\%I%44j.-(oQfho_[W4!H?W'lNuj& +glJAp(Z-DG?iAJXoj9*Y'LT`oVLnWAc6/#Vs$+%TmmtWs.#O`IMP;MV^(pV,5Q9]HrS"IBG!#X?s)SlC ++%3W3GIt%pRBhHAjl7;n=)^!oH&Y,rp5LZN4"KX*/[>XE-?li6qY?6-6A]'^(RAP9NtC5(Po%FG4p=C7 +GofW%\c(0ESB&]X@ZX0dp5kC-L$b1Zl?BF#.+ic!n1;uEUfE>h_JF?MMhaB'(iGZ)9Eb"O,50Y)g=JV3 +W;kO%35rMs:V>>FIE/.S/jDL4dT7RS&9SM(Tel+`-Pb^IB7OJ_p:Z4(T#E+#N$lL)%\rae&-B=(ZeCPO +:Fop!QYg%s;%uGr'Lbk5IFJ&eJ,f9#qQ8ZO`@l]1Du]NL3YME37FBp;UG=s"'FqBZN6U9oPpoZJLL/"7 +h"-J!qSrG9-HV6(?'gac]W]]$EjCXm(RocfCEmR8Dhg3]ouIX&'FHGdG`?0C'e(I)JSQ\m7s%*iZ0':h +7Ws#I0Z#]aJR?Bgl+k.#"+$e4*6=(<07lB4UUbNZ4(6iZ*:T=@iSDJh`P.#`8lUD8QJY5O`i+bLfU:bdBB@Ssrmr0j0XkaC7R;t" +[+$*jiSA>d*UI2B315Wu+SK6'2_*uV``d*h_Qg#*>Tco\??JHqPmh3cTlnZ&,Wtc-O)F#2ITf86IP6KV +g_<\l5V@tPFi=H"p,H`LCOKIL&\FH6o3\Tc1qm'p9O1s_+S5ds%KA5@(>=&E7_X**cO?#!Eu(/;8f_E" +JZgZgZR9eU5#`4b;%uGr'LgDnVI0;e"aCTXN63m?a#60]&@Rk@V+6 +@@41g8T'2EGU%,-nd3;M=l&<&"bJ+oH+nO&H0=;'ikM$'``+#s@ +VO>ck<,\kj;H;'[.M$N3AMg[=0>01c2r],Y>cimYjQh@MJZ#`\.mD(qL +9m>=;P,GS)IK`A9imljBgD<7LYN`G;O`ZL9.A@O..oY_)-:R8&ke0pP;W)K)XT7Tk/96-n\UY!E]5IMl +&$o0!`*'DUJZBY)Z+^UaF:`B-g)r0S56$WTb)<*\CSqB.luC;8cXPEGa2r<;pTE\IF,Q#@TI>\l.#O`I +MP;1haa]>FkjI0nRqT-Eb_.uDRu\ZUKupkgK57;H$X!j<_l*m"DESJ5mr'eJVf/!n-W#[So`,/WX%hE5'o.]WG9*BBR(Lbj=$4 +DGG@!X_YuE$.:LIj1!L!k;$At+bJb$MuE$h,.E>D!:YgS+W1Am>s^Q/Z(GTa^R\VCFuPpUo=Wj=b]>%) +jF(MsG!/6!h`(i(Q?tAG5i4PtosMaQ%BS]S3I$$t_fc__;%uGr'LgEYX75:#MXE)ZbV85N&s5AL#+&Ap +L:kuU7k;!b4js2jGRdjQ2CTWA2oDTt].cR8SZD@CD[7>%9]s1_kKg+rGoGGL`h-K0(cs?VF1ME,"m#`X +j1RPbJr^0`-?km_n`B1c.D7Ue32Np>?'F=E&o0c3!`9X#S9QF1r;qS`Xd8i&4*H97^R\-LWK_=mN_fZ.1C[B6a)2>)6n'=g32Ien>b(8>Q[$ejEdE%Ij +iZ&nH?N_PEeDc)Gc^Bb%M*IVXZCVtXpK]F6=STGq051-L'7k&fb'lN?(>-UZ!q;S8NQ_W$]Ulh=2-kS$ +Y0o)-Z*W@.)b3&>"+@d?g\38_dTSd+>K!\"HH#=YTZt&$ho^An;:jpZ=N%)>;0uV+5Af=_n6RI>.#O`I +MP;MVU)ue^cVYB^>9IT/%(^@[W*+Zj3j/4_5`7rB)(d?rN7pW]DCctk"=-929/"C7+Qd:Z0g_2SCc'=L +4"GpFISmM0j`n.qP1^4*S3fahYSn*HG=O8K*)d-aoqcZ62<_:-,RXSbr/5?:NN?SS`ETB)ijaGa#/WCu +g"iu"cCL5$/?GFO@e%u/=G;0oOL]A8b)BGeGJ1e'>7XTiksL!oUtdp.i]J2Uj1[P598Ll[m-D?=I[Ai( +\tnNd36TQq]@]9oEl-o(hbE;h3833f(s[=gCn-"r^Xe$K@YBc9.#O`IMP;MFXhp^*.(Z"S2re>$-d)lL +ngpDSCL;^e3N`Vt0k[>%W"u)\e7*Dp-m/--0Si$sGGbVii,Xja#XE&dp&Rs$ZXA[(c"'&<6.UJ-$=QI +jm[NG5'EKO8(sNsnG.'NU@_9qg@b)PY!!F^[hWt,0tOQJQO"2r@Jh`;Im1o0rE?0&K#X6iU76:%99'-k +?[g3?2-MP;MVU*tnnEtnTn7FCcRBZthN@pI:$dh$eB^$MCCcn[_mB?7/13DT@U +@'rfhG>ZK!gIRQOZ-%/*7lc1)KKSUA:D4R.4G%7T,'BZ7%QM-oD=)i7eF[:nC,8k^jkdYN_a"-0jc=m)^WbrKOacS?S?L,/\I$,T>O3JbCKROLY%a>.FI_Wj?B$[sU*tnn.#O`IHEG&VUF<^F%YlBdZ^'Oh_+nY/#ZB.:q,DJ=Q>>5SX^i9oTe,jQT; ++&">mb\p'>i#-C%1X6pMZ(91s[.2TDk_4aLHi$"Nh,*R$VLZ@kMAgd-2#5)Uk]u1XFM+8MSR7ufZl;Za +oEOJbS;?a11e_pJ>'DOX:M)dRVks:o!:r;\R/2[7\![7k19^)Pn0j0g.#O`IMP=cOiQk@8>ueku9`DBF +Z2DoTF&oP4]b+["10V]^j1kH>j#@>.O9Jh,%<%X9/NK(2HZ[GKlb#tGE%>O%E\MHo&u*S2jq.+OHU[i,#c/!2=E8p.fg7';cs+)AQOJ=6K3Y[U5KU("#-VE@UNNs_OrbeaOWJf6$U'@#6gKY8WR9\ +".@?ni7Sl>p8(2m$:RCkH?#`.FsDm=.#O`IMPB['1\/ +-8-8m4?Bahka2Q6GZ=.#Qadq2"@@DL3FM4th2=qr-9LcB;Zp:u.H0XB2q(T +m^i%-ZLkB&K$akQbA'#[-PTYqlj;DK?6Z#JT3s'367`++&V`pU*tnn.#O`IMP=0$ +r&KY/gW5R58C\87ed:n6\+V-5RA,@`*7qQfd\(1qBYC*BR'Y)QE?[4Di52+QScW3C-eHs+GR:1b^kq[3 +:!nUu6e/j!)V>MJlpeI@=XMUJPR0k/bH*h#O3p,@=A8ZlNGD_9OSB)e8;`#V;'.OXi[!EIg0D6=cU*i. +Za,4AAS$cOo/MO8-'Lbk578XafQRVhmMPBG$E+gH>1,)@1aKd=S)]qj;r_"$6JiG^jK=%eHM-?V" +E])%s9_(!u*e8$/WR^QV-fBo=O)V;%T)eD6^D4gP9plP2h6>(_,$VRq2,D[BRT2mh+S;uX?>^cA(3&QY +@*gqEi=1REdLt>'4f1@UbZkHaeBn#7`j30bkW"=1_b*+Hd7FXfsab-&(Xg>ft2aY4fl-MP"YkA5< +j&$LZ;%uGr'L`T@Iu^8eWfe`tI-,#^ApL(]Fd?N?f_P<*?!3J*fpLllf!Si)O;;As(5mo*'-E2_qIW%? +/s3LM*!^s/[iFqu'KkB$I?cUPW/&7*$V5AE>`S\ITfh,:CNh?*]l[Y7Q]@U^Nl)I9>J&5'Gp**14H?>n +Db#aUC#@At!;J7l.FK"Z,s/t"V:WM'l[X:B]&J0'1Zea0Ws:r6,U]ok_P3<.h?,BPOSY>jWLr,CkuPu2 +QdcqfFH5S9?Lh"MEuXpa2%%N#&n4cLK$&Z$%,"-@Y@;s@U*tnn.#O`I\ldq;;&!;9'En%n$l&mZ0c"EA +eL\us5RjSSSrDWrPGqW^+HGJTZl()F\&0G=7gnsUJNmX*#\9X%Ub6/1L3gNdrc5b%8"='&0i9L-S4jHY +:;D[q&N6!P??V +XkE3G!R6I=]!4+(78Xaf;%uGr'V2#gk9u4j/b^M@A-9mC_o!:XXLJ\U3WuD?`er\N*/=TlQ.dCD)Qb6o +STR#b,CFo`r[`?f]lG*j1gXG'[!*m*L#mWfEpF;K`+tT*@ZD#.5km,]hAdHO/R+!ic%;qRLP8iV+G3&D +0tKbCG#j'36h8Ap3N`/?qZ)2K%50XFpJtq2@!7Qlh=4rUb@UmZnW?T`Y3$0#9nisb[DZj**/Ck- +7o9sh;%uGr'LcdE +Iu^8e"qis$29W$o&2\L_6^u9,1.;QnMb'&6ThoFjG> +/t=i0_.2;Y]N>KWZ.[R[!^]&&RYY?ic+,RV_,*Fg\a+AE]`jK?.3Em9()eh-3L6(3iuW/&P(+l@oMVVd +*1/[=5EFdI%dKs_F=c2uNPt,b!k7o)mBI+_.7FKB0DX6n-.3mp1>po=\l8Z?>'OB1Na'QMa0qdVY\#Rd +X%U*-!1F?K.S'+^=1mk9i4f-]*q-]>`TF:lnnDPlU*tnn.#O`IMVbN*k9u4*+R0/sQS:1G)p7@URRTp% +:nEDJ!mu$M6ajPdfGXc23_'Bgfr]t6hbiG@^X8cL^;3q?XRKQ*mp]9K(1hlt-)R>Khi$B_RF=6_Co@bl +RK`)8]=JRg[+M'VkLDa9-!0OO#RaF8\X8r1Ms[JX@C2#q51@n[jJ@uQ2VP:t`QFW]XK7*+UKmV\*_:cll]5Yr!Rb;R=;^cYp&B5:hIfijiV_gloYtIJV]\%<#kJ<&&PoF-poijLE/@WV&?#73! +U"B.IAd,(O6J7(\&o0Tn_9pQq7VFDZ]-F5=addMeY.NYkLU_X=#YYsd3o++sq!O^7Hg@Q1%7dV]cWVJ[ +,3qBJ7NBGP[+7Su4?LLonZKok'BDLT#$V)(*$Ne0F$/fXKFebb8=;*(,-N"['Lbk578Xaf;7*4ik9u4* +-="ol_1Y%"nhVDWS.4Fd\X.H!UnWP=L_f&jk.M=J3C.B-C-bm8dQB,qL.o9eQ,W9fE2Yhf_fG*H$F&jD +m>UY#=9Af4n8j1@YUGQ0(!&1Rh3YbGC4-8[dKc;RYg^#8AiJE>I5c`iVA[c6lJ.X=kV_knVHLC!41eN@ +\"VpI$#c@[@g`OE?Ef>R&%NHW2IYG'=mA&(L%p60CQ[tbDBQt;Li;U8R57:- +F,\[c/gMRNA@W6gU/*oUH>P;^MP;MVU*tnn.(WO>cVYD49`'6j%mup3^]M\Gd,N%HaFnR6O@e!\.^,+a2$VR>5bN/0>JJa31i.Z78b!6j7#R"(Nl+kjfFmD_>c&O7c/U;sN_9:g`_%1Ia]Z?d+W\pY):h73:.kRJ3TVj8uKT5EAA\ +c/A:UJj5=59^\%[oXp9)jaNhOh_?'qG?T@`!p=q;89(k-4[+Dik_c8WDNLG:OL/n[VrSr#rNK02dkC>f +%1+f6P%N";&0@%G:<#<_@2_-'I0a"@N8:VuR.`O<1-h#>&OfP278Xaf;=lIJIu^8eg*.qt5D>bkDtG*g +ZT\OG4(ga+MS30[GUPD2d13NpJ_%S8/QA1ZYr*FI!9>^IBMtLoO*O;Y(b`6*B-u%Bc(2LdK +JY*Fpi/M(.Y2D95YU*IUB+f&9)Fo_*d+o.f=Se/neab57EBA.HC7b!/oHK),1_tRa#%#.pe>4l)UKF02 +X`WUsFD82(Y*'n^>*mR_I\hjoBJ&bqgWp0)ll`lB2@.J.85!L63J80'ZR9RRmtGs`M\%6o(3+d2TS";Y +iO(+-*XH+0^3ZTnn='Tq7qH-C`">F8'Lbk578`\0$@e)1kh8pVL*LB3$Apqrm9(e!j$@ZmI4D\,In>Em +WZW2,ili7>>PhlVl"MY=F)/D#[3%iUs=!!*3oS'O\%0+FqDRVkaPk(V8!'E6&;2V?F,\tS5mBHVD@RMl20k/`qHY]c@Spp7K);f5:8Sg#r\j=t.t]PAm_CE<#t#Z8uL;il?d +"W,pta,0/0h*;u6VXE8:W`"nt[j:TNp-!Gd?j_;\B0LMl0*s,88X]lii^eoDk">`hf):gt#N]l^Q$Cf0M1 +dEi5YKXJ/ZVSdTsu%J;lnA# +l4(s^kQUE;s'a0B9]LSt"C,nN2HS3T/j43IlLH3U2P\j_cYAlYh=iCGdfHV>[%!K*j]u4D_l)[%B%$:+ +a%I\\.boBNnNh]/`I$jLf9G&p3;M3>[0]4?T7:H2`>ZfD%@[T^kM2i(2*#2)o.L3qEs*i=Nd$!u:hq*$ +12m?nXqs$M;'uW1MP;MVU*tnnkZno%*(A6a7*L>jYfC+XT&-Q$-(gTHF;84&*2K1!DF%g?c51bl$X+r_ +QN4:58"A#JpMV$#iQTq5(CUs@]PW*M;',@N%6cR;ooj3R.GX(` +B(Z<*7aP5_dhk/)7F5QiD`k`km4F3C*%%JJOE21"@3E.C\.@f.>$t).s.("uBF_^^BBt:nEHlXK%];`1 +l-^D6*CWg>78Xaf;&!<;nE23WDBP@2'luZt5^^`dj.k[S((Jhbm[D^p(mRON"c\S`'sF;MalH,,['6mR +2tSQs=i]X3G$jm\_Dr%A($YC)BUBWcAj!G1!Q""Pp/Z!IDlM,DR?uBkCX1E,j=u!an6$lOK0PQEHk*.1 +c\g)W;i<<sJrZtdke(DgZT@WauZ'FenYW,@9F"*4!74&)/o0fW.&Z\4!ZJ&Ac$]FYOL![-oEI3]R;1a^!Ue$:a*"es+jG+("@[4[,3([2Pnk33uY=&Z3i<>&&kNK\_icb9s* +'3HI]@0FG_NPfS%,p_fdhQ+$n$`eb&gkV0ed$'mLZ71m)X.9Q,]`taQB=J)*3,_bJ>Zq-&8:! +'(T]Tee<%,l]KdD.E0"_L.L6kIZ`3]X!AjTh?n/\a=Z$aK^2Eh87^[gpOrDl=9cQ@VqK"7i:UZm!:Q82 +NJ#VF^\!\=^2K`%$%cbP_#1*50dK!DJo3_`K]gPH&,S4&QQp0Ih@3I;lpi@-<2j6aB +GZHWJ*'16`P_R!dO^VCW.;4OfR@8c'X]i1F^7On.=f/Gh+&DK(eID(1?6rESEV=u^ogXn#e./[9k@ei\ +@r&mmDKmcMQJdd4VY0E`cU6?f6:f0"m$\Ulgn\i:D&nU&k1,(IT +iO=T9TOD9tNof#03:kXrlk1*-\qcliiP?a&`XXR._\51mms +jm=e_m)>'sc,/u=84c+p/U"g,i]-=i)UuHFegsR"-s_h,.#O`IMP;MVhFlhR;&%ha6GZcmKm^jsq,;4i +c[)c.4B7#t+iD?Q@bQoY&S[c`g\th?E&Hil'$YEI$bBL=0-4NDp5+9V^ZdRoS>Yq(:.8mp).MsW[V*@[@rTJOKIr"i&p7)A-YD[\J):VY]!M7' +OG]mTH8BqER4,Q^+0S11H`tFW&U"h<]&h$phe)V6T!7PNi]ot-Q]TduO>$J[hHN]*lQ:U@SsV6G.\^+TT&A]nkh.n3AM78Xaf;%uI^/,VDbU>$&OZH.)A57@)J"@['UWQBip,JqF% +eVNAJT)``;6gH5BaC&u%`UOE#W%#D4/ktQWb*\gkZKbd>Rt)ZCmOc^A4hf'#0.hr4dpO4c+WSBpSN#A +\%$?1rYgUs[_LY^H^JA+H^?-035TX%Ya0:NG/jN@%=Xg1RUX:jl-nUIIqsGh#=>RR.44j=MP;MVU*tnn +k^=3F*(A9B73DfBrre4a+,^c4:`tnG3`B+Z*Lt4tgY(%9o[6_BJB0K?N\o8p3I,GcU%F&6[U]\A0AN-e +&E"=YPX9'&,`-UYDtFlt6FjqLUYh@9Ge(DpM\M1#Q7Pj3GS'<+nHm=O3fiL^i\3,o);kVn0c2oAlHc2::V_=X'.#O`IMP;MVU1dcicVYD47:O$+^(_.6mjBF] +jF>a-AMsM[dhaVgYHm@H/\>@n0U_\G6#Z0[9F'aEf24ZYnjSmMN`QbEm'oB`<'u:,Hg6C<-^;S(OrX"9s^TVQR=DK>-/lWpjfEim@I.!5q]DU2qWNP]rBk'3]P+AjNC>)AEXSP/S[WSJgmO8dmRnp0[q ++Ck!9)LH+H@>sFnL8>cEKrMN+G^9.GD:bZN*!u5"ShU_nX%@VZ#$WHY]m:7T&fK)C1d3a_kJm!E(R!%[ +qUo"C8+i9hls29)):*@<78Xaf;%uIHD%ush7FB?_@^1i_#b9#Pm<8=GAanOe\_2:8H`Ko_;H,`i?J1P0(q*gEs523M*^rp? +78Xaf;&$RXT;*gGR@GtCA9]`b=*A.`B3co`9i-TDe-XEReJ\H/jCSZWX.CF:>>-!*[)Ymf!/P=^n^[cn +mjNRlJ6@)^H;Q]K.fb-\,]2f=pc'/\38PR`GCBl"L2B^Z+OjlXZ]kLK`N>#e]"!bDS0LoIfOV33.d6fp +P`dsl$^>rWZ+Q9AN3_Oi^"E[=`Z%S\_5T_H%@`Dm*X*.nS9:]T_L1Vgi3mhK)XN%6PlDs/L+!QTXkU'; +Fi80V>[;_Z6Q:)>b!IBo7OXa^(nN0\%rc#2nYDBn*8h'[\b:,e3M33F&0sGgF;6CRY?Tg7MP;MVU*tnn +ke7CRNhY`L=t:EAg(u7p:1eKR;-u(>`-uihh?/a[Ng!mW/&S^Mkd[9BeHS0p6XtP>k\uB+oK0MHKj^.%i,io+l)hGJn4\;STk"t +E?aDF,JZG6P(Ko12?JcbGj;dcI^p^aY;-&k)MU0\"SPe1h*M7s1FqZCCBGqBZl/cOJhH..+cM6$F1fbZmJUaX3T2@8Nng;GfXs5(n-tu[(`NM_^KDc$kM>=I5CNP/l15RBNhRqZ +U*tnn./Md8rZ"ASc*Z@m@:[&>Th@g=SBO#m8=?CcCs7@Brm^`bRXs3rQ[>/X@Eo!qpjGSuSWJb/HU1"P +O%<'Dkp!79F%,p&QHr9'%l[F6%DV<&?&i0b,9q)Dc=%`\K/ +-=G2AkFYZc5#QL4CI-GH*]d"&7+i8&'11_5I"/He^CW>#(VatU\=7RJ2`]niL8aE:nh-lfLERP5Z/]LP +jD"An*bNf9/qc7^-Atp4Y7kf5o6FuRiNVjX8t",(#F0@;pOoRdisJp?"b#d.C['3;pi@!g'Lbk578Xaf +5DI%IUF<^A4@"OKjWt[K/n^(*.NIKfe-kh%]Fj[Ear1o#+U^+ZCCcsO@J64(U-(i;V\(*Si$4T&9OqfJ +S;Vs)R#93`$rDR&cN,ppT#7TiM;`XM0TWmc?.i/-7S=,!lA0pH-//PU0O7#-COJ27)L:M8@(jY;>(Zfi +@ZC2*A&='l)&r2m9Jpc1V@'d)RXdeFX4qrORY_U'1\J+f]n,^>hWeX-0rS@'d@]RLj3>cMb%UK\\N3jD +"CcfBiU2",64uW;I98 +@]KDVZ$B;?ITB:"#VZCN&.dT#=WBDk4d$^A:@pC*C7QesXWEf-k]UU5ns=!gj#DR\VqPUW?%^I5aFIGB +M8Y)>Hf#&DPQlTldi2E;r[1i$c;6Lr4/A%XN*=Pr?N!7*,Z:FT!gFe +H5s#:UE;$q+Io*mnTo\\2aaC_oH;@\7V1BDKX'`O(c#7=b:G-5A7f"go/"K-(mWY0Mj*;PU'J^S%*W(, +`Y7dESY!I<)rN8d%=u9%oB!)prYu;f'Lbk578Xafhn-atUF<^YPi40SZ2DqMI0jIFkhaKbhM3!J<:.!(4k6XMqcN?:SXS31+pjG4rNJ@daR+a#Ko;Y5d']k +&ldG>lfg$>6ImI$>`c_Z.nu4(*6$t7nZ3-N"!B;8+gRjgDf"l:i-$a3(sG82i11>h;*l>33m>)ne!!7= +%A2BRjh\.u3>Ug,MP;MVU*to5GD/7O;07-k*Qr9#ct4iU325Mg(@MuNf(gB:/;nQ-fUfsrV[fjY8k9u? +;LD===Ui6BeJYbAHsNa#.c1>-r[nJFPRJ_g&q9/_^KtGF#]3ER_ +$7D7j;;d04.`*P^Y.&CXSOQG."'_IJ4V$uJWs7\&d613lL,60$!<0qJhoo".8#=r]*Y*TuZfH%LWBRLO +$+AAX6>gd2QR@ABS[Ae9VOn^-G?-WL.g(g+O`UHB4SRD_8`8PA0m'b2-_fBQForKYr6shPO'Y4O'Lbk5 +78XcT7cDZj'\u2MZk1EGjd=O*_;s"?/1+'$5QPEG):Z'/euK&@(AOLJO^ZXE@>+Bi4/>LsM'KS1d,M84$!b^5=\mmT\5u&;&]eanK[oqVBVn68tE4g+?gB

':IS#>RDRC5F-ogPO'_N/%2%AoUcH0F\Q&>ZM# +"oSc'Vrr.:'^Xt*:iKPYj?-qcAc^8q_%P.pV8sGRM_u*nRLO)`pO^^eiQi%"5:;%-MP;MVU*tnnmo\Pp +;&%hZ@_?)]\W6?FJ?[IhAUYus!hP?DfrGe/)@].?6q\)'WW_T&]Yog.A3PU)A%*LH2KT8%'cBd4AlMQB +Iacg>=G]p/Dq__a;7$fV"c?Q+1AX2ts"jgbK)fs?2\".%V[@!_s29p*.%i8`("I9h,38YOg^ +\\[FhR>d!a!<7%Z49q@+&Y./nFbKa(c=[dHnD)lt.=Y(q7heBh'Lbk57Gk;cT;*gGY8#A8W!fgER\l[L +B0kio6"VmE5CNB[Jq:p6p>?q4_`_DKR$mc6-kEgH8(=SOk%u2uc3KV]$AVh]gNqGhX(Ul8\e\]V#+sl[ +(;V6D6"!r1:2:PiP(jdZ/+Oemn)QD(D;B@$3*im//1KF^RaUS,8(30#HA[ECZ($cV`%:5a)p>Ds'F]#K +8g-_:CVd6JFo'=(M6'Se''MqYMiR!G!\q]3O_#s!aS^DZG.la>)ree!Y/FB^Z-R/c-^;c15j@>!dP6.* +@u&*1&%qaJoh=(f17u1un;YbdSmHX-;A;Ps'Lbk57F>*MrZ"ASI3m*1P(n`q&B(8-%-9\eNe..2Sn(D1 +*Vb_q="&&'<'TL0a+>dTQZ$`gtF.`jZ@1+j&'$KY&'5oI/BMoja +R3[bM9;4%\<(PJ`i0qj@Y8Y.B +8O6L_eH%sVonPYEO5Q\WEbg_9#YEtdRM0=TcY]Aim1c:td5+lEfaA9,MH>;9QEHje^1[iG"T>$%DkmTa03HarJ5W4nbH@fY5CfuGNn1ZlG6\3G@Yci!Uf@"*S(2uG[n +U*tnn.#ObfB59%Cr?9 +j\X1Vci4onZ('5kP\$*?!Kq0i*m^iB2trjmDdc6G_5EYnZ0u.4Kl&la/BHH!d;+d(&fEDb@p:nROoVT/ +9Ns#Ki=%@]:$_F#Nam0:Na[#l\ulZ9-8IK]GEYW^-)2l;sn>Ph=hh>`Or;oXsK_(+o;0>kZDU) +T'Yc[$sMW;'1JY+&n)jE=Z7)je[=bDYR$Y62F1HG_TQoYAZ.KNc\9SaSPN3B?sHteAp?<8[f-2;Wo4m- +T>0*R;h?]\U*tnn.#Obf<8l/#'\u2e^SBj?0?[U71h#M2NnrP_4 +h8A;)4#Db_@YgTe6LDY@l/EAdqo_FjA=TUV5*&",!$&u37T6HOR>K4^7%i`2K&?o7R$-=RJm4,iH2!bq +Ef4lKA!*=Rk3#Yd%Lhcchl0hifPB:mm"s)05-$&@:p;pWDG>,jmG>QXC>=T^A+aQS:HlX%-A2W%2eDc> +?@WQt9+hW5CMf#W/'g_11(]p#BDorHp!2kmqjnI-J?Wo`MMjqi5De+fiO%9i!Lp-/*&nj4WJBS]"u?+9ibffm9/]*mK.H>M:j7!e +q[j@KE2GcuWW'>GAfF&j*-AeT#_H%@i\'@&QSZb453m5e/?TT7:pQW`Y3'.)eD/8V%Yn]r_8:NY(?.)f +Xe?+Kic@YN$B*'_opDA.D/"ER"dncXF1*7A)Q[&%:Qn!eE>f(s1G2AT%%M_]!hqnIk!msdebR\0 +T6[R:Ii(UO'Lbk578`]Z/,VDbU>&=TcNG[m-*XJh%'C66V,F!LdV`cr:`osVd[j[`bK>O9=V5-eDXKh# +6"+E^:/-jLIJh]8,fq1ri?L>\+Co?M,Ks-@LHD$&OU`(W' +J5=?#5<,++"TYIV-pbdaVFc-Df*p!S\.=XiTH]t_:/Bmsr*F1?SDVFialc's+ljL3cq@Prf0dLP/LHQe\lFWmPaQT1LJ)/SYuPi[>]&Z3<=GA^A.>pF6;ba=u +<*=--a9A;B4,MciZcCO:l^CQH2p2kUr_L_d$3/tV*e(X)6/sgKVq3_I73Jj)2e.g61aA>+'c^N-/KE3A +AL$Lu;EG,Zc&B]q>$&PL +7?nVa5mnTbhE.f^69YS>:Pb&Lpb+`,\"r\CnNLs!P./Z-31Pi@`ImIan`N^,cVYBF;%uGr +'RdFtIu^8e?6Vu$Vk:\*K`uflIDp$9INOLbf/,3#U<78&dd=D&Td[/f-R]'i[\0mC!S1<*#.IOgFM:Mc +O6rnhe"g[FrWRWJk3m`p`?P.K(9oi')kc_fHPm>>nE38JpbQ@",`pfE4A5S#!fe=5>[jb=E;NSL(lonF3-rKjgj6D`cCE>:K*?nrHU5Y`M(VP^ +]g?1"8tkA2@ds./^$r(DJr\3TO?8NU+adG44BZ,\#TiLIo(s\!Hh[gEkM>=)jTrhtpNPh)'Lbk578Xaf +dBs_g*(A6q71'80AH'N#9QZ"c/`m!8LHY!u<#*?2/Cu_EAq-RkQ,iuUeg3;Y--g=t5KgY)ko]IYo;V.1 +V_gfTkfHQt57borq"1TlLS>K/,Nck"+2edM#`GQRgDXc/G]"Hd9:S?7DUieJUf.cIOYm=K)a?P?g<8-6 +nM2KOc^IG=`$Ff8_f/dc:_.$;o\O$l#"R:SS)gJ+&tO3IXX&l<__QS#q%AK\Z8gX)4mg&+QFRU1Ap&Rh +8]emT.I4^8RFMt./J?2lC:^8P6hM;FE?jkCP;b\Y9?_[;is:-pU*tnn.#Ob_]2\QH'Ld3[W"sES2fN@q +0Z\XmBqSas%b(kjZJOm[J@;@pkQR`IYur_K9G?bd;D^6Ej^cq4?H5kicojiA&?UnR;,9@Qcic4siOL)n(_*Ti;NNP5 +iUAK`Bmg#_"!um%0Q8pcp/X+N,8EGpfNGJ([Vr:ebg2?VjQB=\Iu^6OMP;MVU?Hr)pi@-a*5 +\HQ.j\\st^;?mFi,^J)pBcHtCfuc(Znf^*df6iJB2RCX>j?:iDPGMK7M(j;L/T$k;c<`_")>9F!\i +6UuCb;^_:`FQ.@jpcS:;5K@d!V0c&R78Xaf;%uIN:lUsUUeEiYDr&^@J`o)8e[kE1Tpkn@-f"YBs6llChECl&NoUW[e0TSE-L'/c85ReS +G1S:V)8,4m(fr#gNj9Z>HSWV5Wbkp1&Fl,%/Ve2"qZ*QiH2E"YW:fr(7u?,4Cu,G^TJ\H=rl$SXD/*Ku +C\BVFie]'0n@>)jZ1MuP60?T_IB%1d4_;*Jo+QZE1iB*&^tL)Uj.*'9CIuVeGb2qgKTCk\PQ)Uk;%uGr +'LgDnWpo1"MEZiL@:b"UGo0p>Opli[14;8?"j!f-TAe"r]:*l#isS+8D*ab(BJVnX#A&lA>hX)sJlXuk +*#nMCoNjMaT2>5g/jKBqCf4m1/M>FH&Ys+q5.V*[JRZOg&?0L?h8dTlWs+7%Xd'9J?bi4&8$RGMAf[34a +>k#.=VhG.c0.WG\W=9Zi!;C":/E6DMoM62+*BQ?4IP`_M_\W[9maKE/MP;MVU*tnnlRMfmMP?.V8daiZ +\Vp7h/krI`@Ya)A>t_K1NY!9aPjN^@P[ZAc]'03g+0F"42+U!>@Q/D2/eM"TDN$rK9c=]?;k*g[T6C6E +:LHM/4-SD-b4B-JYAI@f[*Y>1n-2F*E%N-0+9es28%o#o%dnE3G[>qhGGrqu2)6@hCR5D-H8mhB +Q^=DFpu&WuT@\`B=OXR\M8250hSlKpqW*b6m,h`^S_q"#kcbjL2aFIE:0n@@AWVbn-s;%uGr'Lc)&pi@-<+%INaeF1l$@^AD5E^u=5+m)Jf +Z7Nqc]\rn=3fPt1"b!n-GtjC`OWgcDZ9uO18UJIr%AQs&m^Ui@FHteU(QdKZTR]F-2$+"j]Hekd%_Xc^ +1\5OU*'3BWe-/.]BnaBd&@.G)d5lm9LkBS44iEN`+Lo#-(e)M1:?M.`7ApL6&o4buXXA%saW1>eQAt>I +:aM3_#u'UMG>QG$UqtsW!_[0B7>grFqk[+bENu^2EI/Za6+)2?W +_De2;MP;MVU+#kE(&f1Ad79B/_iKkN"`NLMQA&F0!27kDRK[hjf?g"L/JIKp?&mO&Es.\4,0AK,gFP3c +XbhL*Khs3<3^QakZW^4`4JiW7S!KdFO_JLA5DK`9k$.S%_od+rQl7^nPjuLc4q +FCm)N;%uGr'Lbk5I?t:jNhYaT8u,NB$ceeQ+9"3Vf]Cc4&!qrXX"ZpN5U+]&(#R)D1 +$pd8iJt,eM]*UlAS;'mmD`(K*:(TQ3+Y='6lkh!<&RLTq6GS=`,M38FP!))B";B4F5R?d8:9D+J\E7^i +1$5Q@lWNQ,ld(!aGcWcB?k +MT:dB0*13hnW=)c)R]r(1P.;=KZF*N(_0)5REKm7'QNW1NbIFp=>`XfgZu`Qc*m!d44GtLh0kj>F^Dt:us-c-.6X`>M=&hdpLGCnFoZ"#O'.O4'C(>o]8Q_ +-kBH$N-Ani@&3+nDZpb8:7!2TX3YgF'T[4lo!2'@5KDn"Ekc\A64u9WeMC2ZNZa;H=8ug(]Wkdc<4hZb +Y\:doYSq^&+k_mBAt!8s/XKc+T2AL"&W[j#ad?&&'A/>_1#I&lP34fPOI:`pE+A7u3$!:J2f=R/`Y`3E +0b8m7ZSCTV_/)F5B*<-H%SJ?Gi?EF/_9dl]T65gk1!LbkX)QuG#\UHobW=8:(sbZ#CN%a$H6QL0NC;iJ +"i"8oSb&Hqqiq$MNJ.?0&5ODS9f4a:]rBVA)d@C43Ftpe8$rV?n5Wl]U(hD)T4@`,>P[$-nqpN(gH@lI +na\\2?(#5kiGP=r"jsH0kAO9L<+X86S7Aocr_%p'1k-t)IlrKA'6?o4/$n(1gX/5En:2.mr)^fA/35DS +&o?R_#jR-HiN:e=I,^n):pG6onHBA4GK@T +hcPja)u7f[a@3:.iTJ+*]mjON0ub&?N-Q9,T8bSo3Q$qh:qM_-E;VWF2,hJQ+-%!@A'&fBnD'aZibi``k`?<%uM\-YBKWQRf*VgT%"iQf[Y(H2RB\BEEj01$\B@j+ +':3t,"fmn'>-?l!`,n"q.@j[;9ARe2?A2KhgRs\(3k7o-3E*0qDlOK1hg:kmptf(87ntiC8'aj4oX7_9['Adm.J-=foVi#JrQiJ#@uN.^ +QtM9SZSCSsTIfVZIASe\(0S_mgD(">kICF-m+_fu5[B-Pntl08kV`)E,cY2_llH_,AR'R(@A +Hh6*C@D@-GNImJQPa@k603UiY;@i]^jB8!h9ST:*!om#XZdFKJ'^ +gZZ'coB]I@>h?u5$N@`3H*B +O*d7Xk;jd#\!Wr1GnQm3;D-NX;pu?Ok&UG]Nj7Wc6TAC!&hZ+*0n%%7WWd1_^I6;Zr0WVDmC@8P>V:NOF1#f'+LM.Fe0EjcZmGD!YKoG*!mE[E +>_WQFh9MKf^2Z3$"4'p;SECCmYA(bk(h8LZ`Ye<9Z%"[O4;+T:erQ7GA;S^N'!i4fZG,n:o"CQgg16&t +(l-+.1\-T[Z\Y@VeZ]WQc?tZ0c4u)t\2GR/9Pm>^aeM5CEpIT3Yh]RD@h>&6(`PeP&S$L()[_ijPcL&@ +lfLhjJ#cE9lRCb/9kat!la-D"F[8.^-G)h5;nI%XO$X^lrN2cRp"),]aKGpilYj"bI*5]7%fO_"Yq1er +-?1'0deW:dj5kU8lE?$G%;Bc26"5TRl9"Z\pOu&tP1:39m=`^hA=j,chgA`Hq2BT*LX.a+Ym"=Akl'i% +Y;+$6@uN.^]OpN&NA6KL-rac=,ueGVdF%PW!Iu^?OMEk7?H7kLWk#m!a#&@_R"t*@?5erXgN#8C?+Cn)SD/q1T31GDH +:].O5X3CBnY$QT\.RN+_jfDC?MAUK;bF&P_c`Ap4E1LOI_T#RhG]`h'g6EOV1d-k"N;quNkDn@=9U;L9 +6[-pRCkcZ)=(5pUqQGq3o-L^`mhBKp8YI +Zau91M)!?I`i?Jo=7W_kbA#0sjr"n=LP/;m3S#aF^6T=:W1i@6E>o7$;p-`2c*pTt\8HJgB8f,o1q51, +DLf9Wn^"A>#0BOr6Hm]kC\sh\JQ3PPJF;e&mKkFUFg(#K>E7HbrVfsg6m=Ir;Oi/.$8]l4CYR:J<$Jf< +<:Onk>fo!7"\1X)OKIMkj8O0_C#8:8ZJM__'@LC1^BNa7l72_<$o8P$q%cK&Va`#RpSQQ@$[!BXIVaLX +7,nAi89LuQAe`EIJ*uS_Nbk`cc_p9=%(7n1(h8LZ`]Qo\T8bRd%9ZiV0iClk,bJ#Xa^bR9/(Z7d9b:K6 +)*5W:^^BmMUpPT93gR_P2Jg=ZK[S\HL-qiWRTes#0MNiOO/C086&]p[?0TbrbFrp%:-k($Q0On2FTeV1 +6TP*SAaIXfA4GCS1qK_-&3;F&Z>EO?**h+Cd5)4H[.0Pi/TS=\ssmbS17'P7^UE[ +c$3d%JQW0oB3r7PC7I;E8Cpo&\++b.Y@^`XbNb]=oJ31qk$M"-W/&%3OE.Dn+itmgfk*"c]+B`]3TjYr +YmTmFVt6I22T?SDN%r=7=6uQ=0olmBIqd4Os%Gt.!Cd_HJX)Qka]?QQ#3Hb[Adfk$k-e\#\Lm?pRYl&_ +A52D.?VMS'mMUEnpVTp/4k8)@dZl5BQpE9L; +kJFAXLbLl&4TaU*f/Ib)5AG(_^<&SMVdHo%.2.0%L7GS_4sUk2X#iB*U5^nI(h8LZk*]]YClEY0&3Psb +h^V\II4Xd.o$9?qQZ+NN(YE#!W(%9&eo:a66NC?T/W[%$*Db/?WKieAB'>p`e$e#-AA$rBXV4p9FelTF +c_s&gD7P-`*)GMW3e?cuFs1Qk]JfHRc`\3)P%1i:S.CsWIVir;nte+B\uuP06:4:YlF#B`j>QZ_qcYjh +-o9)75Q)nnYE-H@WotC)?-P<=)sp^hDD=$BQq*&e=rXDtVQ&]K_.chtX^u5-i:ZBCB`5IgR0R3fHsVm( +jr:A6$h=#s@NWI7p-:Nc=<-=/s5IA_g>Y(V3j5+j:U9Q]eY7Tk,ejcdum][EM``&(HYFnmY1U +f9u+`,jtR[mfcV9PT)7e?0H(VPp3j4'%=aGer*RS@kt_qZB`7ds#Qet(hR6sqWl&k.N0>6d+-EOZ*mUc +H"44)[:_Xqe8Yiq&0QNDPM#)1/n%;F?;CEr%CKs7:\MoRN:S$3:7S\9l!MskZHlOs2gUn^Jt#ZP+j[fj +c5bW)T/`K_20%6f(h8LZ`Ye:mpu)a5ppn_!mK4R+^t$ucqqqGQ:Oi5ihtu:)Q7oLm2T@k"PXCc!AK[WI +`c46e9"F6^hmWPOYS#bk70MNHH#lL^jcLUZ8::D1I"Y.Qo&% +h1Z`,1hL-P]*0OdKNY<8:-sp>rNJ7fRZt=R/ll!D`X(F2i3e'*XInoCap1G!k#8aDL(AGAoK#P*fX%is +St*R@&ST@#@uN.^(h:cgiP5Ei^OP2YIc9SWlF29?\,YT/roT:Apl@Z7_%2"Y6Qc0mGJCb/Q2S$Dk)gnc +.a:V;1Ke2`/uld$Nh_!&U'\A>au\$T5nKJ?%>e>$XXbfgN_Yu*[=iV6@m$18C54?HuTO)4LeRnS!s7Ge%<0878\RgB>2kRRQD.@]O8NUk.q:fm/+]Ac>Il>:` +@uN.^4;E>*2h'eH2r=>WO+%cRIdht3r4iP$Y],m+ZSCUA5cU6PB@RgIK0bt]2::W$\rj&5AqgiUV.1EH +rgD6h,&$CrF%.KL1@&8273dTXcZ-g0$<%Yl3MGkca1)/@^pljcd(H(h8LZ +`]Oubnro\F^V9aHn,LI!5-f-arNe6@Bq^rF)Y5=`8iO%\DAuQ8UB^8"'$I@TeMpW)*Eo8@?e0h_Q0t[a +E[o1A>dUrA?YQ%-<.l_35ohd#)(2KjN-gXI->SUHVV##Q]^>-c*^oH_-@bjP7u0LBXb'l/FtHkn5`e$m +*CYk6Wj,D"N2hku+D$Nbej5j'g#c6rF3HFM^Z1W9A66W+c7>]Y=_m;T0'A6ULPJblL48>-d0nQ).(q1H +/]5d;bVkT%*'WcCnOYIrjJ?4!3Vahtm5^LtTA9"^Y@O>:V=X,DNfNJ#_jnQJs&l7be?o1\0ub&?N%sHD +ntR<*k]_L=GHS*O^AR(G0:ZYSClEXCaN@--dYsmHYC(A[;JtkPZ8]e!5o(8r9XR<#M05[8ZAP!LYII3) +=[,MV'CiT(l,Ykc-@.^o=F@YGnaV*niMNJ]1 +\d2W1Bd&/mV2kO(T]a86j(]8b2(h8LZ`Y`40UZ,M8qUSkh^%LNWDnbb])diO& +(RIq+Il>;/?)1eHXXW@ZpTS,SCL8R2Yrm[I0<><@5,.HjAie"$?/\"h`GHSGu6.TI6].7`?U/m^67D2&q,G:(a3?s)a\ +(/\sZP,VoVXO^2%'YRas;,&sE#eG'=eUt(2b!T'HkqS>aGLP/pAFb$rP=p\NAB<^&3`^<4gO-@uN.^R&@t`^@@3/I-*5'^%KqqDnPV&O*p"1ro"q7:;4;uf=#s7N4BpSP*OYLJ3QV/9WX8T +[XrO0*LHQ?mTt-.KoK:q.trnPQ5bl4k`4A3(#G7U7To%-h#_pS`N1<3 +4S:)28tiX"/m!)E_W%NA6K[[K_!eq,1p;qN,4>QlZYc3)I>5 +fGGc?rCXem_Mo7A#guF!jGKuJ%IKQ!Ok:[K`H2GM+]Z.1:*VDDq5b+6F2U3m+;q?5&Ns_W'mXg^KY!+V +B/L`#6Rt%-O;:;+94&?9$g`9)cBnC"t,u6Z1u+(4)0oZA;hP3-d>BRZ@"RM(h8LZ`]Q9rT#%VkZ394H@2;N3?Zq;$I>NZLSaFBjn^NgJ7>4AODhn.6M% +ILP>1OgfD.a$SZ53*f,38n`9X1tB0k53j=+buLJT26@BM0&PDIMf)6@#5R>_I&7dV4,slI*ZIGu_"#Kc +9guZ3N/1?_=1A*SGSgpe2e+7"=bc`ko$8SU=(A)5:;.=i*80L]%U&+;i8Ac>F-(_d@uN.^(h:cg@(Y6$ +?!VmOX'au0O+7)fO+7)fa+OEici6+OQ2S$DjtVL?edmo*9A5>/D(@Oa*NUI!$Pg_&gF5nQh@Zqqh;p1b +L<$laGZ1V)3-ie6'BD@Vb1&l"+Jr&96(W@>X*S&t=PgJ+q!ms>COo4ki1K7ZV?B7BrY0hDNXPe)d`=2H +>'p7A0ub&?N%sHDn_NY_pHp&!d$nsfq1UJL +i>^\L`o$d_hgXPuT3)Rf-i7OdbbHQ^B0OMBBt`^?-u=_te2gM#6L0aa>o\&-O0IC49i>hVgWXa#_sa!+GgjoJVN&-$Y)p(d7A%^/Z^PuX>Z49el=+EU +pS](5cA\b@'@,FGFW#8H\GkhuQXeWO92'"Z'h;!KL:3eVUr4cl:;o^B +NZuMWB*mbWm[C:gg7dQn4DA$>s,gX-4B&@eAV1_BQ?59=BS4QpJgMTl@9\TP$L.1Bkte4r@>OcGc[rub +eY'hT=mn`p3a@q;e>k;iD2^3h(h8LZcQ;srA'Et'_-09K2'Ym'>A6tr1^H+B]L(d8 +7h>&L +4B?"V/dpY$.%_As(a"r_PX*56o4Y]hc6]:CRE%>R^`cm!l"dsYbp[sqJW_I9WIha=Ii_)kY,7rrKkd73 +V'B/N*Q$%:32qulBV#&DcXDbe`Y`3E0olhAB4K/L5VA;KG_DAS"Y5?ZCT7LjH"k.Apslp&1AB3C<+Noe +Em+^qD+oC\XulLILl.aC]F#UuFe]S_l3o_MI3L"CC2!V0icAFbdS%MOOdYY4Xq<&p_(66X]P2JB#3Y,_3oJQZ!Fh091[OpWe +(S]`+)o7W3F-!6(ZVQ?.%Z\0o;&N5sPD)8ttL3KHuqe?X +o&4o7W^B.I@KuaM,e@tu@dJ3;I$YpFDbSJP]NdP/D4_$?,lDprM=`qT@sO+C14;rIR)XtbL>7NIR1IqU +&6GqIZ&Xp4VMbQ*>HK.//=ii?YjTJE:e'kF?Z5bo;O*hu%aLg`RE(eb!SpU,L".@uN.^QtMEWZSCTV5m)ie +XaI5BB%9^DW@2!D`i6@"F+KtA)@I[Bpn$!U;j.T3?rck?QO\lYZHnC +h&F@<&SRW3@kmXCI<>-Y3-d&s2jjP_aC2g*$8J`BI9"FV.cs\U0ZRDt]V'c%WiT@Jn'aQ;9t.ML]!\'4 +@a*B9Ui1Z@gJ(@lO\;1 ++R`73L>J5AL"g(4:MJu3Eo*/)K8NRqni76Q+N>7.N%rq<1Z;X\UpC,29.i7XU:>,(/S:\&Ch6kJY>qBWOsM@n1X,]]>]`*2oQ=-X1g77^ +8+N&dOP!L6XE'Ss-N%,.([SSa7$UJhF18LZ?`c8[P?C^0hm7\O;YJ4!D9o7FE%no`dcu4TMta,jG"#=G +afI[cEJ8O+8tVQHq&ih2?*l?+(h8LZ`k3S`T8bR$%]hDd@-)iI@7=/<)!ST!IC*FE0kNhH(0BA&)I/Xr +/Mhb#3RYdfO!*F5_Gk88,gTt1ZQ;gV(K8Qu7RdO#^1FBgHq)&ahT=Q7`->JYUs!pEU3FJ?U8WQ)-tdni +b9]CCYu8V5>))J8D/(VA.d:<9FBk"X[A5>7)[(Si:(K7[VI]pc#q^4*-32%mX%/r3UT3.+`>rZ-i)1<7ti^R^aC-sqFMnX.FiU,9Q&n]:YGGX%s7o%bu:*(\>S2@Eg;hEAqXKX0! +$[4TFSZObiq_5>u@uN.^(h8MM^=YXhA"G(_5%C;.&%?SEAdgOf-mp!-QrT&1Xr+q-2DaY3Ad-2bJ_Y5g +BhYL[(=AGT#9B^<6[tiEV9i_="WN8?c"Q9ReD$Om+/;P>Zb?/-fDn"bR`f7\b_tPUoU*ZDYG$Y[q#6rM +m&R3QM+!eEEF]#)"VfAGP*]367N=&uX!F&[Lk\pl\Li)eFjSo=FVa&"8M"WhWgKj;FE1@?nM)Or3>DXW +FXQ-AgN2_2Q:U17]`]sSK#Ul-5E%SO6"KXnHcb(m>oD-I'5>bW3/tThA(q2rAes&&V*'_&kX.8S)!Q1Q +[OcJMNQE"3$g-^49CSuG*>ZaR9D+mu5IhC=XIU^Tj +"?;j`5EY=V.FeMcHT6J\KN^0L)Gs,UcN0ub&?N%pA+ +qe'E_P=>m\!gu?-r#-M7i[&SV?X'Ll;HDIqm*p,FUN:QG^K.t0-*@r(2>=>UE0$>bG*f1XLic4)mbW+c +lgaWt#ZoKTTa.dhX/DiVK04>Mpupqeesch#85\,tdh3a+6)-S]HXRMh/r56;%tP$ +9=Jsl=lN'@;N!h#)9kf`\S?\]KpK9OlC,7b>T_Fq&2HTf].\-k(""cWX#XY4Zqeu#+Na;*Lk"IVH-]C> +e8%:uZpF?Q6$k1mH!PO^Wl11SPH*e.SZj6S9TM]pdG*ZQ'mndOTrgg&MU;&&6=Ys/`Y`409>^\])"S/t +Y`8Sro$=RXR+sG+'ni+;3WtM/eA\^k3Y?Ke\a/I7;]>*g-brk@c:.q9D9Q'3T,\@S`hjCo8mOTNK#cDi +'oHm!0uc9?=T+qW=\$@/6@g*YkG5`Op)gXLqTf(#Wb2)OA8A5nZE.d4]bk%'`D3EqF![l0ub&?N%lsjqe'E_o0=dj.>6-sE<[LR +&/6@u/&W9GdkmGo +:iqua^/]`jrcNbeN(cRf?cN7gBE([#[Mn3SA9!Igl5Xi`Z%$9Beo<#Z/]t&O0@[FQlY_G;Y/<(`HnXLi +j3I;/-_u7Hr3.rcF@!;-2)Pg^K#ZgdGuSKm!nGNZ +M_k6@?YQ8&MW/e,.rHFqfji^kW0H>Gh7^'!ouk`s1Q8N&cdh6pQlhXV`0 +S2Sh,V5@h7Bl[N4K#[`KTCj=Cj&T%BbE79\0Wkd"Wmi6TR76Ilk%#+>eKRD5X7_;ka"t7HSou^sgreJQ +iltZ8\uE7oQK@^@,if\DNqODfhJP4%6!)c&DB&?,^;G;0-j@onl1dL=kA:M`Do+Laej*'T9@NK+YZZn& +lnj:Y9dl7_K[LB@N%rKVbI-N`)2V +B'EcN5I=iWJ8L=m;O*%$SZnbDEa49L&Pf+HR\>B?j=2B;LQ^D3X*l3V<_jjb+ShRiZ\WQ@d@RRn3`WhV;UZP%UBO.odmB\Oe(h8LZjs=L:ClEYB0PZ]X#K]u"LS\>=58X6= +.`ti\ZjIX'?W]U47f-1corQoE,&cKf7#kc'=c\)hDRZDHDf;(:2S3_kW3!;Ue.IAEhQ0KA@]FO!*,mk9CA[>s$.5,WZRXG;\: +BGnsnGt#%,qTP.Hh=^_clFrY\B*-3@gqPRe51BPE\].1$f9Yd1`,\U=DaK(HR8HMbH*qME,)`2S/i(C@-9=%B&-2 +Q_enMW1S6hR\g<7V2:,5/g16ZpU\l#X:o.,;j$#nAK@%\]_1BZhbiT`)dP2tlJ0WKV\0rg&*r0CrLlqa +j,IPO1fYB+iMrZ*Dc>'>Z*[ZNQH&'tjKg*iAK@%cQK,[Gm)@r+J#Eu>R7oB3idl#f`\kG%*e)XB8hA!:stZ3aMPLXAZU+EY04KcA#K@uN.^(huUssLn +2bNZOS8S^,95EiFkn/%8IT+U[qr]I!X*eh)""',b-Bf=ka!K+k9/=Q'1]Ef=W7k(l=?9V0GL#_"T2$oW +\dZ\nXjDJul/1.^_1H_a$>%i$73ZeA*4eN^SQ>"\f?WFD;te#c^\h@*>[l$i@3\`gE5Kl-Vs*]IJjX>A +Z>.ZT8ps2nXb?JgNdS/[UNXVO\\'&u[_.(h8LZ +`gE*GrNe6@.3aJ(\*PG^Q]Z&pYTV'ER"'!@\^Iogg"$clSo8'#qG["\W`pkX]Y&)edLP_]'?GJh;U^mo +f(m@)A#rjSR$MQ:7^L-mP5*&BmMt,e82eb#MOQ6dHS"0dcp+FiP[;WS',XciR*ua`NYN5Xii5V:pf24" +3Y!@PD%X-E'/#[AW``L,4Jn>X\rNEEOCL$]R[hhR,rZ`srQXCrt>07Ur-K!bX#>baI2,guG2>m+]Ido%qGua_eo@;9mXXX]HY^NP:Eb^-sPFq!4O\ +0\aetm-ao!W;kfhs*XUeJ`uZ0j>[LsD?P9gDcp)^$3SIb=&Ll@85p.C:;OQ:SL&Ml9'&M+];Sat6$M.!PmX[oTp5kc +r3HmYR97tM3\g8K(]%?!DergA?.2fg2#YWt5SJfOBO!GW$MLe0c>6L)Q`nsJQg.rApUDft"(.cfTG*"fi-qaBl^VkA&O +r3nm3rTFM*o/%V:'"O(E!/22Va,XJX8;[Z<\-8DMjLJ*$k/jL4-;:5he;X*tomS3eZ[G#B&s +`67gh$Hg&NU:?kVGsrF=YTW$H1lC)I27=q'HXZoa1;1`SM@*!B9D6Y*oLm"#a6r//#$:#RMLTYMe +CBU?pj,$2W-LXGNL+NMd4t4JDPKp&CQWkFC)UU3k0]o)$tWILCb1_=Ar(!!r`Ceh +^'*P<00-A]2Cg&3&X?hef;`sRPr`RbC-p+.6<@@f_H)Q#1D$r9jR\)r[Pbau"Q>3EIm&^E,U0DA%AJ$+ +HS!`Ebm4Ch01SA3X-/GsBh[0H7LhH>I43-lK*'T60hcJIYH>Aqb#c-Z6ZWS.=Z,@QRsHI8GRr%[`Y`3E +0ub(%!jI/4`]RsKb`MfM$V_EB_;JF_9R!k&.tS[P)fO-K:+IP0M_EeKFk(/&RI095FbZE7hDh^#;J!u> +=Q>A)jd`Zj(><3ilq3F2Dr3_^n`dC.R-jFErf6VIqGVkmB,8(/bPa4FSD5,N=H*oo^61Z[>$.]%MRdJH +es<'0ePur@a5a;6NbF6B!o=4A8di+c=>B:;/!uO*js)XH9QJU-] +(p].=oa!l_O%^t2]cFN&b#(eh@t5k8#oi3ug>Ui"6KP[0;:);\R)rs\5)klN5=aU;XkEP`_Uu,0Ual#` +.uf6(?/84^#G'DV,HWD.I!o\/[Vs-=rYb)PBe6gKMI637@YM*Oa&FiY\[BIuf@<1_hC0^7_me2ZRaf9ViMig^hI2ArIG*XtF72b&sN(fl7 +a`Mi&DR%O-4&6J?PoZX`hLs\W3ldq83a*]o>=iqFgX=Q+% +?;=lD?<]HVJin_/nl)lIH**O)Gj`=ZVl=,d\S^m(* +?mQhY#XGA&gdu"^"pjF)@GD +8<:pA6?DJ=ph._$k`?P"NVsKg>$5".Po7B8'9Lb%%I73_4/A">iIfrYB8gi[i*H@VF?)D:p>gC?Tf1d[ +a.P=YmmQ;@jj0ICPXC&OH?KAE1%lS70PY+/MT'_PjKhm&G;Y9kaAqhQ9$n:78Um0VW7S6a@_"mqZ^osN +aZ?DGlr@cV3(sMHl/XS^]UCZn@%joP2T?SDN%r+,aF7hs6JntMCV +-*Q(j?LF9@#SOZG/N +l4<80`h?lMZsJP$c8]>]1FelRUR"klLWF-,\WGgBV2QFbPZmEH+F/)M#QJ@R4QQ4uS5S3K[luf=L088; +N)H:l2F9JUmbRQ7`7O+bLG[lD(h8LZ`Y`3ErNe6@3>0T:)ED>)e]SQ*1K(KZMVuMMGO:j?;Y&8+heM#% +JUj7H-Wd.k(DLs@Po$aBS/dHag%4"s6ljkd4BM16'$HHg'U;MT$ri\Z[4H*7/tml$o*8c&8R!Kh>78.& +T2Q'pni?D"bF6Qg+'2;0=de,kQ%U`\=e?S.(XF?DX;+8f8,p5,&=lEa>A(D%.[V5l6eGW;Ok\(DF4Q!8 +aO/F;&#K4q39tUUYE1OD*@rMOXj1SOre9qN:CiNrE,N[Os%p!Ch/Y-a?lEGN.`RV^V(]Cl`M:K)cY>"k +VM-6J].KT"gEO=4j(IPINA8Ei@uN,Hm%97lcP:_&eMtJcB;MBFqU3k:c`&XQ.+VMA9G'e-Y_?iRY)/,V +[OR!6:=DVJ"\7AY7VoOj[g20TlEhtBGltEakl%Fn,;-#E,mrMB,=8!UD)m+42u]5YiO\2eXqt46cdeEj +'us]<1$4j*%9XN0iD^C6%)t]UosNPR2sL<0&mW_g'=7[1IT&HfntX +-,pd3N%r7b^2T@jt(h:#c,QCpJS'm[ONqF2VF*.ea$'4R9p0B3pT4N"Pb]kb4*7(5je>XnhLd`33 +C":!b.HQ9JI_%oT`b3]JnHNGH>1.kFL`sa_>#sdRMJ95Q?-j:?/4@<9q`gEsQ;Xk@_k_domEK[Lda$5` +bJ[GH(\P,$2"`GliIp9rDFY@_*-XBoh4\m*b]^I[6OV>]_&UAVT-^NE85ktZpRmY#*2JBX#MX.]M\o(. +`k"*SE!V.7X4"5WT1g`YETO-Wq<*_8f^PEe11(J>#G)%X&AqdF<\#:u*-e$%SmH;n0ub&?N%lssqe'E_ +o7gp2(-89H!f[GN5ug3@,Z\d'ht!h2^q,Ug$dQ\]&osj>)YIBmCCDdZQ1$m5UpB+7@rgCI/^8QN[S+,146WQV!>A=duj9_f2c+hYZ?'t'dqnnp!9u_a#[d$q^FGIjM>h#7AA3l+Uq($RQ,;2 +fO#@:^;Rjrdfp]E8$=\Wek["!h$'idX5[oXde&4:AZ+XmAZ,4LAF*=qX:8sS1=CBj4HK50lI3fT@iXr6 +,k,OuQK&CiI1@sS6>%7=5PISkn+*En**jUm9"qLCV+5i@YU-ulf3),r-6(8G+2]Tl]eRMD@uN.^4E^"_ +NA8a#'h?4/Z$^.'dYAgn&H]GtnmSM'G+o6i:08Q,6,:erKTE0e' +WC4a3j.c?Gc15WjFgXTE,tFT/D0%:XR-B1%]LYI<2b##r\R4UB4eU/bagP"'5PbJ]cB4HlT +`Y`40$ci8")"U(U,*"tN1ef+16AJ#;V&?PX=fH#T.lMXJU;>T.:@C"q&C9-^$\K>b,/5&^/>Ai7(n&rd#3s1CF"CFRET4Eq +,L5k\*-FmoA[q5ggkBSVk>lO_)L,05ZH(A:,MouCS?qo_]ee@1<%=uM0ofFB4jVhEL!jhc8"W`YE]"C^ ++5`A`o4G"D:Sf&k=MS4@^Y#H(=Q*(O=I&UBmIci`:5KO)?1*i,IpRo3otJAV,of5D2^3h +(h8LZ0+@_jA'BiTcIAW;\Lg^NlaqrV'X?7V-Flb<[_i+P8;hAqHLAN'=RrbI-JhuJ9[gP0oO+KA2o<[9 +B9T^CQ:\m4&D[WYVWFYAlY +Xq^CH:ft^pljO%3N"f;k1nO1inc=iBtoP^>ejb==`^k8_c2\hV2A@uN.^4EKk]NA3'tj_:Qa/+"2ZjE6qN@^.`R +?`H""1;KE0TlY*iXc6>iBZ4e8W9$].qH$,:.1@qAl6>=5`56#8F#BUEEr8NEfn>m'Ebs]rgnldd^6kDa +8%=oUH1J4?eT:&*RAj7nIWd*GGq>JbN)$`t=/>*H/nV:!V2='#biW3nBKa@89O=jd^T& +oQ?rbhiNt\lGU^Hj0?/Fq.o]P3?XeWTJB?W2\;fIGn9kam+TMJ(bD:cBhQX:T5BnmT)YV +2iZe`Kig)o=e-UN@C>1&:*c;;&2J/UT=`#+!ZhB[m0eP-7QpWGI +;*h[.ea,E,B>i(,=_3PsEl_5kM8$"T34+:3j7-R2"2bmQ#s>OKQ%?:Oc^M5.VTmPmM#=T$CF,A`NF#H% +,_!?P1JY +%;AKMYB">5)cg?:?LGA&LD7Uhkh=aLNO+=WuZ9>q&\U3S#`AM55j$:Vj +Df"+r$cR=d6`VDk.$bSVNo*IZG3ALoAk$35T%lbYWGH_t#Ukg^@@DM&p`Pi1*7qdi9`Y`3E0eXUFB4Hl$,cW]#;SgaOVp]IF6D$&DnlUH]+2U7?PQTZTX.Z2tV4DijLME6Xpp$Ek +Rn<$C%+H5+m,4E";i=a^ZMo1#;d3&E!&-9icPa6nj`h4-jU_dqHR6Kr?dku`]h +olaS+hkHQ\iA9:1.-T)L4Z7t04`Jab@uN.^(h7=IT8bS&6;8&m"'p>M$,YIt-7XFRckJBH-^QfI5LPDn0KPG7*PcJ2r +<%T+)\n\e',+@A5n@1XBo0Ri9$7]CRob8soE>kP"1_?hQV,(Srh93^Fq=$I":@tS(_F20+W-P@p->&d' +!1pLCFgptB2cXg^IC1O^qV+&q<;*\3"-oEO3$*EHc=ndsN%r#l]3U?P^,G8HYT5GurZZ/DnI\3TC8A^OIB=*KL>L(e%C>"@`CX(Pt]@GHfHHAk+57JGJ'[sB2' +ldd"7-%#<_`2kM0e]!ZJV%tM9CE6LBEn0VU&P[1+Ghh9JN`Ek3%3@HY^*[c'X[]?\qj>prX#P;2[m7&o +[8GaWO+4XIC6?3tFtBhq^)_!TLG>D`2DA'f_779me6k2SETJ@9Q9FpqPIh=tdHqFc:/<2XmRiAk(h8LZ +`Y`40'`2NQbVNkATD<@48tQ`X?=$tFC436aC)^@-astZ_TCc"Ef;`XIV/^OMQBf*/5:i)5?u*AWi[T7K +rA=gi.>P4gtA&F=FD^f^PSJhVsW^0coKd15kX`ErJ(&i^9]^ +:iF>s/A&Wn[:;m)=*J:6@2Ljmb=@lHl`m`?=$mp:N%rXshH):]tbC#RS[j',@\-UZ3E@p3=fP:mGOpTH9W,c;oXpnok]EGrO9Tf.sg=Fl*Abr3IYc +f:^+tELZ'JR"W:j"9m:0B!@RCgpTWU7^)NTe,hV,KHo8 +rYa2>.E^;'_DusN.[OWH)$sP['NTeJ3a'.e2K'R]*?^ee\@uR=ffsCri]@+$b$Ogt-Q6KR0ub&?N(N`h +`gCD`Aoj/6QF=KF>@'X]%B^fm/6Su2j4MktBbK#1Za.Vm(7Oa!8i`XE6Y)V4[\#lt(?EX8:=]PZA4)JrBEZ!P4%IC.&1QK'6lY+n/l_muia_1Rn2HPHBm?qls9:Vk6 +CufPXJjRZN1mqt_E;an54:#6MO)"*FCG])2hmO9Hq_XTgDi4#>AAaqDc,8dYT0"kV3a/R)RUC2VaHOkb +bE0R)R?PJs2F-HF]#:hbrRJn)@uN.^(h3pHcc2>bb]\?XW&mG1gUQgT6Pc*lB,[%8EP1)T/A8..Z)P"F +67]"(U=-0b?"Ob5!?;'n*\0SPpLgZ^]7K0,]b0ub&?N%sH' +p89A'elm5rnl@5?)SFf-_S!WCpb/I+h_8ftR!GhC/bV/=@K!e8YVDs0I^RPG +d;@3cPou>ler;Lf;(>7I6Y+1!^g'9kdD22sZ**ZoXp'ST`RZ9=0k$edj>S +1;f@n4Y@]PF6.PP'AYh.V(K48(8ts'85BiJ2_!jBEIQ\6)i2*eri.l;1fGU3h"b2DYBdCcrtr4_"aCGH +cNUP,?>SH^nblnhek35Le]P.$,G!V+CKAOlbM7:>1D/US-h4/i=`kKX`sO:t6C>pW.)m!W:8NCW9<:gp +euAAhI^l-gn*Wmhj5lg(mC-IFWgKh5LE_3!A$>Hknmo:B/jGRbO!;^rC;A^V$`tND1K,:@RT1sc:p&9pWbig]L6e,3jD[&DX@9L( +g]3pNZN[b$\i;1o9VJhb84UtjFAAmJ4*8)PgW!%o4*K5:#ALZe0]W0n@uSkd?ZpQ0`kVjfdH\IYul.$pP51%Ho>j#"QsjbM9m0oQp/*/[*)EmttLS3t]9&plg,Dfst)XS:#V +lpLeW@uN.^(h8MMZ.M8[A"GiJ5K(&ej8;`cPT`t]JLleO`]EqjX$Y!NR[5(*r,'Y<\$98-B9L[oMrs+N +*L).N9a:je=GllirYbZ=4bE+=RT2+J.sL%5*9>(R-Sb=rQ`9#IH&f(M?fjAg(Q7&";Y:?UJ*,?2Bk-=\ +qC(@1^8S.)$Rt?%V7.>7,08qlr4&Wp`g-,FE@RDe@%3"+$]=_(N\\of6F2173RcTb4Nd..\WQ0L+&o/n +osA5r`ibORmn9$.0/;0grlfQ^OP?.DGP&IGB<7ts+4=9=]Is2/dgJL'qjrW*d8Xm8@_(skZ('q!?`e[; +De"_\`Y`3EH1BNO)e31U.[6#RQEaEK=127l<483^0f`le`A,Ic[u<^l/SGk<5(;$?7:98o@X#d9Th64_C(^X(ZX9c!b?FGt>?1C_@PbAF/^]W97n +gBcUe:VIAHA-tRKHThaE=ubMj,fAAkC@,uc5P([#nW9i4Po@[RC;W6l=1>egZ1C*3p?lR:9,_t\1jt16st74iKaq76BPu0BfiP[mV#M@oR!6J8cM8n/9BR:_,k>im?$\>kgi\V&X@Ba"J/Rf>6h!_\Q61/ +dHcR3a9fL*?7'OAqHMl(OFJ=gZpC[?-->sQKZ\tGibtgGW4m#)QPCJ-^(Y(C#qE!>H(fgWOm+?DXX]:? +o@ouM*K5GLgM$J_F^^e8W9kTi*7*77_7?&TiXrc$DcO^f)l/P(>CU[A'7Sf`3*6X_.tT^8MMF$;cASPS +&Ui@@Q-j-9K(1IEkIe'BEQH%2R'Ymd$K8^pXJqn"c1YE^@uN.^(h8LrplpT?HSf"5BXNe,<4gXt`/a'4YGNWb*Fm+>35=KT;UB'_c*?L7 +T1l&KU(X"^T/0H-YF!^5/YkBp-OaQi@T=-U9;F"sVTrAfRS7j8f?"Q4RGm20.RV5;G,*%,q2!V1_'=PZ +Q2sH:.sn?Bh0FTmbB!]#I9"N'S29+b^Y@ZY:R3`d3(;r*dH5G@b\EBGT\F`O:*Sm +2^DV>$YFW>%5SOJqW>eV?!-9cPiJ3BECX,Y4COl%aE3R!j0Gc!01kEh*`UgX]Y'J4o0.h_#U>+7DP=RM<,XZiQsW*S9f^AY,a^AWO6SRi(arRp&&OB:Y\sV]QXGX&Jjn ++8aRXBD3pg4A9_E0sOm?Y,CC-E?([J0e\KQnPBkALXHR$69][B^LKH1-Y0cis,$+V@Tc>9X3S$TpLD`C +QI8msI5'1tk<'YsP1Z>?-"Dlg`Y`3E0fR`L)e31sQ%.A,6@DTT1TVfV[sT$I;6e-kij&q`A$X%^h(XuU +j_LV=O5&=U7lkB9UC\h*QP8?.2G0"_LjlQHG,Q*2^`DX6.:F +=sV8ImV,ju9gNPZ7$jsXg3ZDM'0k':o#BC#.](]WW:e7pbB<-EFFrp2Vi;*4%]sMXS+W/9B8PhJII'o$ +r7!g.9cfdlVi8?VhW>u@^:G"-:R[n7`=M8W+m25Xb2.LR2.Q,9NNW.jSO6ko4Qs$9A=Qi5/(s8%da%hP +oP`fVO4A?$U+sY)@uN.^QlbtI`gE*Lm&4a)qOa%&->\VoeX:0W81",5';FWcXb+FN$@8L$FKk.M]3QBm +K#,0s$Q?'N"egLulY8YdE3?.PIHAT2#-(.Q/ho2S8ll>u=e<&/+idE$CrqK'BV/+h``rd0n"G^<6QOLl +Ua)M[aB*/*">q?8SmBoN[npfXs.#)@Dsjr]4uG-?A8LeF +g$rssA3_?]V4aTrX@,*100#c4Nail!F^]+XfG#p]3CC>r;g1O.7Y?sr^HG7GdM!kMT:.dm5-H]\(h8LZ +`gD;TZSCU]K)\68`[Q/;8g9NTHmpm%lV@jKibUe^-;lS$MHHJcWXC5m*%RI21!/eiQeUse#Yh+_V&&dO +g@G$)oJoNUWhHh:/%6bnYD+:4(T$n>.FW%=*u,[CA],7(M%m,*/fbXs4\Q6Uj70[?BVNnV=AD;GF/H$W +Fa#..n]#R3+D*^$El=P^fkHC%92W)_/fL4]%9(<`a`>n#?eXlGhqa8Q? +5P)u-:Yo/>n7GN[H!qAnC^s4DRmN'Bg>F^"oL(.K=RJHmLpg:Bfoo!]`3YFX`Y`3E0ubbRs(mWKGgYJ, +%M/T=c4,V2e2.77l&f"o3f_=W+IZbML(D^TgpS)%+50H/^5KNS%WjYq=1a_5^3+%hA[kl;UWEp7rmB,#5ViUcJ`Z?+3%@uN.^(h8N8!;gD=N$1bCm2U8R +b+G(m=J_Ikc#LN@hN^P?r@+EiEQYI>%'7pBqph/+Yo)io=8-3MFW3#pgX_'5O0+[YDAO!D@;c`XH$jRJ +L<[2IBI0VMEk8G[Mki$@;Hm_eF$$1qROO6o"+diKZJ\/&,DS"S0nJ+LPkg2;MXL=_@PF^`h9:Iu(@:>Q +BsE(I'fR3&)#LHNNK/-$q?kuYT5l299ok`qV0,KK.#>G<*[5IJ#YN?^-cG:dUU'G.H%( +r>tlY'QbafcBmab+\hBfb-8`+`Hht+g*rl'D54I`jD'f#mpn96`Y`3E0ub&?(9r?I`Y_P>YX644TNL4/ +/\E0Z1F?/B\D+,/lW]Vqa+uMF`=HI#aXSgD/9Qo@NJ9GGNm;57C',n2jRuhCZh?Y1=Z_K+aSk\(FAqS2 +ND*D^l0A62(<"K1bJti)dC1MKX]n`cI3Z!mSJ^17Mt+MU2+R"e?7+6+/>#LhZXVJ@osN+H'JJfF$Wa^( +jKm>s>oDI(V.,p:VJNfOTluG8n,8aQiO=QFs7FoucfZ7ddcnZ9%qLVH1B]6.4JXNfMjhqBk>IX$R1d"[ +DL$:t?hC."3A.^X?Y)%!YkqGU)`%4c'%,KpjR]t\85OAa0ub&?N%r>>bHQIS`YbAB!k0.6e+ju1,Z7R[ +9R'ZS>->A>[8@NO5j$>mK%[CCqJtYMX)"cQB1ZB#DmIjB;oF)VP..P9h.Uo+RPm-i@>d\O==TBV<`WIfAu1r7Y5O\q +q"t\]/9E,Tqj;b32tEtZKD2>\ZO.roF*f-M=4<0>Xt&,eXFa7/=E6A=4'gb-OHAEA24^33L=8l^P"KNQ +W-4,1G=1!%(h8LZ`Y`2$Z%"[OQj':Valld%a7MK8,Y^.q9JW^jWAi<;Up\;`Vg243JukOoJj,),F=Vgn +X_tta*qaGJ +c2*HjVbRIrqG)q0`+DidL_&0C8F_ZqmN:A=U"dP[O)Dbi<3)?t:ZK)#O6s +(jO?p+uEm?i?2tVS,=Gqj],&M=->Sunp18*^H1F-\W0WR3[HPQbF7biX(Tk*JXZUbV)HJW(3iIC*?a1OC +ps'YD8Ui^+Q>5N#FlDG\b(Ju:SCYRV.2/5G>2Vq,Ar8`hc?J^as,T&hG89!q$TEdi- +HM,i]-f1Ud6FAh5*c%BZYC%BKI3,PcU55UGuH1RT_YM>@_*56f.WTf.0 +@!F(,HrDR?QQi6O&;0J +T3\H;6't8DRfX8BTju,6pDHopKYSH.Gs$P'R8e7k4kr$m;k(_r5*\93Gdo6_hujp$'gCNeI"n[$\Pg.^ +a>1chD&(8A]WGoYl8V\00Z\tEbQmQ/WCTc_s3g'!l\D\Do[h]e>gGPj`Q/a)N;g7paR.-\H^PPg4RYmp +o^9;s_EL\QoV(&g=8_YDG')ePe[$t5+0H,A\9=LaT=E0\fc9)0bZ@@T@uN.^(h8N8%JJ,f(ip!]'%k+"U-J.4uWVK?"Y<99lrKl)`'l^isbG]U8+.AfKQ^#11n"o +F\^XkWSlb4"!nf3m],n]'c+unh&6%U.%K>-5gCPQI,%C1OHr/O0Jd[0$%k"c\dM?@EP2OSdgJ2tbjC!cl'7SM7^aeh9dF@R/GLp=K +H5jfqB&^'C)`G\Q@uN.^)"S*e59"+V/#)S>8t4?IJ]O+C(6soo"Qo$Xd[Lo+!P\t>cts%kU,_H+]8\o= +&k,F(2jNI"P,HM,kSXFF!=ksG2Y=]l&D'il_[I(#R@'o@Xg8mKEYK+WhBEa`biM8KZ,66iY` +og):W7Fo'+nG2&/5Q18EJV1_J=71;-QXR4d +.@i?e9K2`+/s,r?74cn*&g-X#)_nDaFYCoYc?((^0ub&?N%r=WNr?:=`k2WkcBM^-cRPA&NV"Omj97D8 +qod4M7(P<6nFd% +73,_`]ds+&,rTc,R&3&resfOnqtP71+;'%so&4n;IJERr6Pb*ZMs^31Mr6H9.pNu*EcVh8sFWM:DEMm7Ja_ITFU#alGMrp`Y`3E0ub&? +,50@&)"T5qdZ!rek#N[-*]:B.Zn/i?32`snn(bo\.B,LXpW2kubmMs!.*`hRY?ZCtGV9Ui2c?m2g=U_" +o>;/SHo>-`V;$qL>Sol-KA*5Db8cQdCAk1'k:!f^ +0:f*&o$96jH75q@Fe,pZkN64>TG#Ffo&+sXf2%[W1i-h5LD#88`=Hn-)1Rp$cJH'Q@cV[a'h?Cm]pCg( +;s3*2-9kdbfM]YmCmug=a(^;%cc-f3N%rRXrFsRYM.GZVNrC]FX(0C&e%M2mB)IH#^R9gJWf"1CiR1"f7FMGKc4D0a_l,OWH +oEg],A%2%Qeag6k<]Gc4NJ?4k]e-YBj^E3Da@qH2\2'W*X-lAb0ub&?N%r>>)=3uT1$61mV+fs[nt32: +@_^6aoLT#ALZd6LU\`9#99_2BG+r6Hm\kPK&!G-g$7C&4Q+1/ac"NHD)R(_,c[39Yi7L!Zl\F8l +]XoMqh"T-'Rq!DWOI.(KCTY-$`gDP'$'UtDI1b'u^LfJROMfsl2T_GOa6(*k]O4KPmu+^4:DW;]=/So, +k;T^riUD"cU+sY)@uN.^QppA6NA9Q:5nP2'/;05;BVBBc<7"LO[OWH7d`J;dj]=,%J!Q>MBBeO>\?u`j +2jGupI*'`&mIU+cEJG1P^&/'G+\'rMq,`_cX(rhPN0QJ-(_HufbMR!;e]i=V:d*mDrd"< +TQAHNIbZV'ch[Kel1EV':JNp/S_`jc*.XE#]=K&5QBTb:(h8LZ`Y`2(m%97lk4M""KS6ADXF:pWTjuD) +6i&2!XBM[r%':p^l_`X'=pXiC7tI>q*B&`gh+Z/qZdZS6g)-GUf;1 +'q1at4T:Rol!3F,N0=f70&7@SN%rZ"hguIlK+3E +@ogmC\UfuHWutS%'.5g'I2Y:6%)4[b<;u(!-"kpr)e4h'OEe0Z +E!>(2[61H71R%SZO;2\o.::5iATZsMn^#7ZoIS29cm^6.(K/Dg*"&aY^!L%]`%cRD"eOm8),oPFPB+d` +W1S+FgHXCF7+mtdpn3>e?0%V21#C&e905Z,*6Xs#T8>fTc["^6mu0+96\"2;H]GjYZ@&77XLA]]\F`kd +\Ff?f]7W0.+cV*ULEMRZXXlGl-Ch`MZ-srL?XUsAhqoSa^'$UILZ79:\RZrb\h>Fm%97l"rNZ(MN!p&IL,-o7OB5GX1M"a,BtY\Nk[?QYY$HF +atZt4_.cbgVeJ'$MHHdLTT;<;lbtX#o=4g&.T/E5p!0VI1^mm$>95kpE;A\qs-YJO:d'Nno-KlU#aE&@ +&$"nT*he0Q0"S(4:`NY=cc9rgos%<+o2@%:]NIkl;C`@I4]Y8#p2B;TE%Y]B>W^4`/D'$1k94qb*6PA# +l2!C_/K;@%s)YdIG#c,?Bu!j5ON%dnD@6]a18AeQ]iK.:3-0%Oq.u!E`Y`3E0fT$g#=&"I7mD!`BB-oH&fiM0A0qp12o+([WbE@DauWP* +R"MN^Xi`SE:3U6BI!E&3'X[kPcp&bsFUN%rXp.9AG@*+D6T$!t6j:u-U+W3jY4L)>DIc1i?YAOkMn5R< +?L(Ze&o>8Rn[.>2e_5$@O`R[7gV^c7'"hlTO`o_+eC(Aj=cJ7NaO8LoeTr)=l3jEXEfDG(D7FTqs]6;(/@uN.^(h3o&n-=G^F`mAr +07K$.5Picg55t)5*tNhd>Mkm]b5U'2@k,u5Tb&u!BK8l4Vt=e*BKQ^2[U$>@asT[sX)RN(AddmEoWj;# +?em5]:g:4@DkAQJNO6%/bf?@N/9Cb)q"a4Qb?9';W@71X.Up#,M#&%i4HuOp3_in5MCe2$mtZH`kVh9+ +Z$bU,;ebN:3h@6>k5S:dPeGgj8]`IF%hUA\^(`OKb!BTt\^sYee`GCX9?&Y'>WD$46^fU:fT.fn-R%P1 +gi-VrnRge2lc0m3i3umbR;'_h;]>8Rl^:(U@uN.^(h8MMOaQer++?hqjpe^YJMn:eER +m%97lVF&C8r=DD`JsLU\YAtBD9uW[Ch@0A:l;hJWFYMB+l[2Hnl]0S;YH!_;%FF1kL6LfsP>`CCU:X%. +8mJ8m:0T4I%LTf5``'/:D%aILU=co+`4a:PY2=U3\"?:OZc;gsHFpA=gg#8b3k)6@$?,6T27kP8e5[/B +Y*[4a2ZIU6>%;r#D1IN^cE_XB#<,(n+/W[WDJP$#Mhb-X;;HX6*;+In_`j:dN=pSMPI!^/qahke:-1X1 +IL5@Uhc[r9@uN.^(h6l'?i/R/rr2Bd^,l&>YC?00lKV1EjA4p@Z@=dPQkh\X$!oJ19@)Uoop&9N4rN<. +s3)`SqHd^e*-bg1hkpW2EB>A@0P2d2"o +l[p*9c>XgbWIrC+d?InVo9+(WU/oW@GFu! +45Tj2SF[nJBZPP\fZAC$;"nDhY^%'0cXi%i`Y`3E1$0H*htY,;5-]'erNe5uFA_7'l"-,u@%ij)VEA"e +RaH\t.dC7V<9g6$@F\jmPr;.M*,.L)/)f:[D)lQ/\8J$%F;pHEe0RsFFr +79711=hV5kOM74$kPsAAZZlrg73FB5Da/S\NrE("Fe?[S%]THm<0a!8p,:fA/7'BTpt_"?aE890bC6a) +:*u;VLL\Rt8mV=rfQ0e:F0@t,<^kT/,-g/J_em,7%Wr:nHc&t15uLn4_W8Wi5&H65`Y`3E1$/POp9h*; +s8DEd?iTGArVOA0qnd&KQgregje!9jf!"Ii +@KlDW;N!B\"l0Ya]UWjr\gj%aO[a67d5sI;m3Rg=o69hpNMcKMn2\eYHThl6s(:0#m=g3<=PrKk-_.Nl +V;Z\T9JD?/(>joDjm'4Yjqt7]F8^iu=.+,=)+Yc./iV%KmU>Cl6Ss+*hH5R(NM2$=j0J#s=0g3-0XPh0 +m;._9`Y`3E0t62Hs8&q&Y-*6AkC2i+s7K`cca6n7`g?oD0NNL&`gEc:).rh>kCtOgr,\AR#kG>:5"dl! +.$iTSp+6C&eB>,UGfO]^HFXZ!D@sb?m=J?B\\#^4e;mWF3-R%BlL*qDHB%7:Y1K2LRngpeT* +mPq8s9k[(hUR:#f,Tk1i^@a?0*d++HB'QbH_7E$\gFK?BJuOb7Hb(-THMk3nI7t\9'R*7I1pGk)q#Pf5 +GK$:p6[W'!?]QZ"oC($C@uN.^(h67t&-),0YHG#lp9B[,msEqRHa^pq1qW.Kj\aHAH +;Sg>dNo_5OACh_5c7DD4o_,lVDlY,Ki2c+kBU:;f(gK&#h>$fmHaI)--#tE#;#S4ZB]n"q<-IW`TX-\o +W80>meJ#b_GikYR`Y`3E0udJ@s8:4CI/;6Z"B=2g-m4>SIF_cN% +e?P6*_E!(G9^a9m'N3h0pA""H5jC*W#sWLO@E;.fh7LVGR6t_;\MaRBO+2&JYXqbp(Tos4?@V[Zqe%0. +p3>$hN5PI$6cEYRfZ6^VH7J,GSm8dDm^il$h%m1enHE]GHZ^*Z1q%\*?7;6cL=M",7:KCic9G*/XN,c# +>,KILH2f6@XTji_dLp&K0ub&?N%mKPIf&N5X/f$GqU7\.nW,?9`;\F,@r;IT@B!=[d,^Vf,@sIgQp,/R +8^@T/[Km/$F: +ogBWhqsh,e2XdfL8UiTD2E[Db7f`<\k4B[kr>"-lB(FC)&gZ=nougi6o:ai5a_[$Y&%-mV%\J%E6V0?M +itTAPb$k<[EQ9a?n?EV%]#5FqN%rN,.RI6X3*&r8;,pDc +,HC3oK-g+/c^-f7l_ZKCWiIC!XWS.JR^n-Bq+q8?@c4Xc2-oOAoI;\iYrgj)e^3@4U6>:2]]AZgrVj$I +CUNtf2KsZ)`sdq@qdQ7cF1d:&>7]]NON.!QrQTm5=$G\`\X!ljn_hc`Fa,=J*4o)Xh'6Qt]DF.+Vut[. +N9)*Jftaa.20_ZU&eB]9=1tIC@uN.^(h8LZQgqs8rp\/khn6P3qR']-[C7+Si\1:?mR$e`@uRr#ZG&.[ +X)gWArG\Zn)N8'2j]tIO9&t.WNB'qs="@6c@3CcqZ=kku7YabEQpm#s'8iF&^!lf6P@D!1BL=.=&<^Wq[K5bjRCMGS5Iu#_6U$g*VeuHfo +C.=N*4BE15j(>=Jm"kT2paSuD4iND&]6pX#pe@uN.^(h8LZGJa@4(h;um`%kmBQ"VK//A"Q= +ZS&5CU-(H$5Ve3S(4FDV-\o963Y36BtkpTCL2T[XFj$?C4BAOI(QjX+Pjnr]-2jT08Mt01"Kc +o%dPp>+/mWl#?'7//MN[Q1Zn6CPO+";j\rb];[&sS&A?#`ba(JTDDFMl,jYk?a`"@]u/h: +'gp9+X3oW<@uN.^(h:djA,gA(0s:Z3ju?[$Wac4.WO#DNR.BL+nn]&G!VldG.LBO#!,=&"P&,Ynq^7,pC`S +OFJ=@0nsD97m&dH&%n<0L"oi;2cC3Q(s37TC8-\B`Y`3E0uhuRpG@/:"s?g0i+QnB^upY[*g+a+Z(F'a?k_33dpuik`ML +"0N,3[5$(D6P734O=Q@G4+u=I3%j\Sp48``S:)fhDWPq>0c`I-amEO%\uRUOZ]oP%q['Oj$ia)>(h8LZ +`Y`40L"JU/A'DW:;Qbm1i^CO@TTI;(RPElMC"U3];_EJ'/#r[D,oSdI?O]B8KC3'u7f2t,-es<_6sk^; +I4DGjr$]JO**.![G5pIfIPuWCm&-$> +gL1%tN%khPh&"mrA%F`m#Zil(.24bNM_>cU7)(mo2k?/$WJGUqb]cN<;%GQc3@:J?p%h_OSB#!=0(mQf +J(gMTml`u8ao#C'EGlp5ETqroV/%``Rld/7SPb$&X0nFVT=NdOe6a1^^j$MR5[rorTj3%;'.Frfc'&^^ +Z<9@5;EQs$m@dc_"Sha[6b-n\rd6+XH'Ll2C6@lG_is6'6,H:$(Tjf9G<7(t(h8LZ`Y`40X(20GN%kjc +JcS?>atq(AA%C9mMaKh@RSKg1>$W*MeT3)5\B\j>hqKGob]eSWN=sF"o[ZYHER/[Q:Y7lRE^9ii'k][B +[]-n)ej!fP4S6647U'(?$+ulOfhNn3Xb^$GRCYM7q3Y($\*([H:O@>Bq@&:u'i +#pQ(MGZC!T+EJ\l#o5jZE_8R>drsHH$L7:IsbPSRks6]."BO-*I2Zb+1?&; +_g5a>-cYLO4)B,NNP8@;8+*]:Hs1^,bqO=55Hk(#:Fj+#64.FJj$Y[E9:e;IoKo(fYW#;epW;]Tn`b4a +1Zp=nqb)WXEk(@+h*d`5gK'Y51XC]ii3o)LmSa%SNh:f8Bp^oX^,^WQV;&Q1N/ZVKAQ=Q6N9?f&@8UdfaM>p#[8XUspM`YOfErZ1?mZ%,^huUo9'"RscYp^RheK#RWi-,mKcA'aj>b3k"Y%jDbYIj7O +eFuW1>;<9BTRIRN\Gjo=]QpP<[/;r8*N-p;.hiB#>or3heIuRq`PdL(jZ#4!o-/[Ej1\r65e;W[eO@XW +o?_Wn[QIjNDuA4`01%TB`!Y^W3-gbYk#1OE+sdZD2bHL\YpH0IME'mRF1Lr6]Q@N4j39#2chf`B7nuu4 +^@!QV!!(puaI`JSJ3<>V-a%lknMF)0"6"\]\t9H"\*_@#)g9iaN%o0ZmTVHL.>@1'ps[^8>;a!oq_o!8 +Ih!biNqr8lHJS;M*!1=a/]PBJ5St8><"I!9\#hFB;#SL*gBb7Dbe;^r1%k=(WI=trRdoO.j9qek3`L1D +D7W.a>6g2#8+I$mQAiDUg7HKobO_60QiBsVmC)tS"onXR/!<+!4;bUWUK;r9ot(e/d<,B:Da[^r7@4=X +2bYlCZ^r`:DckU`pQ',HGeEVLEm0!sX-fIS*]a,PZ]e1TK`AXM\-Ja%5+fbeF`tC4[HB0b:i=KMgR+,C +iSJa&:>:aAj)FO2W:oIkX)[-rWgN4S1$3S(\OANo7a[")H.4jDB#X_OJtib^o=:V?k\7W_ ++#ur_lbi:Xota!nW>DH*k\PUp?_+fJ8r5$m[%Uf;sI9E.NG&% +A+QjT.>$t`+&"#:@D(Aj\i'=SRP\Wh*+m9eG@N?FfPUqRdt<5=;0?qpW#jH=1oXu\/]X*jcN]B[\Nr9j +Fc2LFf<5tj!.\i0Ig4PlIZh6[6LNSgAn0JrS(X\mDr-fg4o00[rZZJ5SHkWS+a+p$cB$J`R5_ieqT=rN +RkRI%l_]en!dsT^Q=!i;7/i^.id0H@Q4.]%IkGff?/.p=DHPV.@ObU9,_gU59EH2gFV\8NJrTkM8D=1u +8jYU(`dI<6`_WEDk5=LVoB0!+>t2=oEHFB'n%I?`2BNp'i9hfNc_7/<\^k7E^>#M7j%qnkPao9hnFV)^akR;O6Ip!h337WOPZP4l7E4s7V:Lcl +EjtSQj6S_&dnT,GBSN4)4"8=\"i@3_s-[Sk_\FRGUZ9jXWY +PI%PlA"J8n[:.+k3DWA)acul,!4X*@B7L*6Da]u92#;$6h*-78J398BmO+O&R;H4^S\sahZI`CW]KtHH +4<'%LF5<<]5Q0'[eXu/3hWgKgrm5gn@$h[COQHf!-jUd +cN"3KYFZRW_m@DEk3'H%\ZYLjmF)p6cdRj`pKPS`F`@b7eA]h]Ec8+VhK/\OVFWVi"3:?8jRVGm.)[`r +1+XGDK6/t7SHIN4>DG3(>A),*4mpb*F)I^c\iM2\D.m&?g"5E;Z-54V*L#H*/rT-FR7$d2%Q9+-WV_jT3?kp$0.!'D\#B7QHtQTY!uc[AdI-cq]%Zs-jdn+uSCH:PhdJ&p,g +oB3D"?7=S+`P?XXj]cN\TA1>JfM$84[P=_;SmB@Ab+DJMBm*'f;aMPchpI7#Fl0^/1^G,*T-'KF2OA6j +X[;\LWb?9K,(1(kjqr+$)N`G>r18"ECW3puiBX?=UV"?apU6JS!!!#N9`>H>Zh/)RMa^=2qjb)JXI)^q +qu$c3W`UKi.<"X=hQK+\lOH*AN=F<]S2f,<*-2&6V$OY>s#.oiI,\],(Q7TceQda5n,+[CEAm^Bg#JLrj>KH[Z]"'GNH7Wt%i_Xo.;a5( +W"9mJ!.]KZ56Dn1[dEnll+XQ8?Q0C@XPT*/OsBuWlmI:s-n(+DBAJhMofmAd_O]A$0UFBCh9kW6/q28s +FWBeW_lPh>\bnIBgJ*r:f14C0DghIb[J/Q,fq)M\SS9jL$:)V]f%k:g3kqU?IPL&KcHi@6$(h4u!;91e +$uj/1cL-Fr>L!a$VLD1V^2dc%W-7s>E;HK1B7G:%^_W5kFn8^UXEnb;So(Ni[bZ%n6(LH2@cq=(n&WWE +m+-OFG4hk%q0JP;LI!L]\Sn'tSpd$WnTS&]P.I*KeVd_)Y8u\q($6PD_t<^jWKNifij)4roO9Gh"onX2 +J)noU8$(UIn6d1n[^UPtI3%t6VNHf4kN1<]%rP*eni;K7D2M+VS1_O&5^V1,68a<6\ie5A[LR,b6.fBp +@(%PqedVF=R][11F19.3R\%2cDN2pTd:&PuO%6VH;4FTKC]rSWcco\="'SET'>JhI_6SDqIWdV)?%8h5NSKg4l$A]0E^2D4C9T.0bsbQ22lD#a5Wdh<0qMep +Y;sP`kB-mTE?]_ln2Umr6?;YP<.-+h_7$D.o2o;H<8H%(!!!uUq(i"07FU%/'Nm&$)FaN#q8)`Be-!;< +gmIWobm-a#kUie[3Q+C23=>d54Zd:baD8X$j3DSjchi]hX)T0%93Bl=[R'7RCgL_WXO8% +Ge\JF8ju>#Q1F4H;H0B0!rr>Z@*,#A\3]s3$(&j*NeHe\g65=&XT#s5'pR"!R+CuUcZo`)DI%/BMiRDm +EhBH,Xi7-Z3);WFAa@$L#BG8Chl\C_F\-T-iI*YL;7GBJ;gf`Y?Ud27h!=HTqAS\//'P[5p$LJ?Ybi?b +aeLgY?a)$]Hi/q4_ZH_$!<<,X!KoYLE3o0KFMG"gDARS;q/[VipNm:n'e.2=G&n`o'9A2E[TuIlqbcXk +_-^,8;qDHqD7,>O.N&`Hh]j*2kLnneb;lU=e"pZ8jnWT2[F\;QRsGZf$2pd/s1KX +!!!"D:uoq&gdHQ2F=uQt5l#KX=>88e:KrtY5kpLZ#MZVfhVpY9@T`Ic;QY&R91Vp$SXifVc6^Q6qj^"l +*hM5t)`2JLk]ZC*C(4h?mPuGomPUT\?H+q%oJVE9EX..cX0U=WkTGq7K?<(i=Qpg*M_%NH*/B`iZqo\[Zb!ogL=MA67fW?gHUhs,`gr.'bg]]jn?Z0PaWV`FH_/QQ43Cg]l +VkQ:T%mP!hPqP?@;K6f7YH(p:h=qI:.F_)bf7Q&lXb,OZ--W:OSOp#fm`LR%1ktR#5-_c3oZkCVra\!d +*E%^LV:"^p[)*eEk7Qps'h>5(!!'N)jNdfGKBp^Qdo>p466!L6>[5V7[W?/%4.5cdjigF[CJt/%ccY(b +1RG4:Su]n)#2\f;fYkPjgj!ZLp$`_OI*RAhF_aK/S5NZmrR,?CVY).&(tt/6OX)m#]rH3L=TmF?AjE%ij +Ws/P(i'*8f")n[OFoM2Y/ijJB0\b`$XP(ZJoiK@%S!orSo?XDm\^#Xs"PolsSdi+Qbi]InOd@NMDC.0l +@H5XcD&OnLoc7K9m-0u,khPr1O+N.)&='`\TZ!U/drKqZFk,e]ArL0p#Dfg]PRdQ)1eK+AhN0<7cR0M]=a4@*9ThJhF>p"'a^ZhllR.6VGOOCVnQ+?!Y +S^@kCRKq#,.iGEBUq!r%8r2:4#.A#lT*")$@SW1]In2W0*-4$n@5&3bkN`3M!3djAB)mt.[H>e@eQe4m +f_ft2Cjn=Xq-Z.OTWZ5uj!Ie`a!9>Zhg@\'gBb\22p9gVYL&P3jDdP0duCP-^#&Qu3g@Fm5'V&:C0S^B +$;5)V4n.7&On(?e?!9ae[/RcFjeRd_gZm%_(Y5`B63.&di5(R@")n\:HiDfr$K^Q9o5,5;P2pd=r!\db +2]pCIO_H;E(o5FTX`Ga,`i&PKCoN.!Esp(\eSY!#\k8&rfH;1ebAq5cT^+8"l=tHTS0'aS0CaClD@Ydo +re8Bp]*diH,In_=F3b-m!!!Oqr#(#pE52#-4B3=n,l.cCD=9fJI,iWA0KgJZ+q=L:>]^\4L.U?FS*H.- +1$rp.H?h\HT$(/bD5pjDl8%Asn?>W52Q%R6m?]3-]4$X\d`uFRTsSR!pSs^iOb@i<2PnlJR(OK:cIZuh +q0(YI;@Q%s!!$stjNdfGKDV*%Qg*9ZB\UVGa`l4]Bg"o;3$;K3YjJZf3)Ap"+bPE]5oWgfB]fVh8FBgjqR)7;g6LqE)^Eld9:!(QV3]ZdUYF:/072aRnSH_4ca3 +_mf\WhX"gkn?$@/3I-*THsQQ+[Zj=L-B5Up\rH/J]MAF:ROoFE!!!#O'DXEaa5HsZc_HKk;Bd,kjCpEi +>U!GXVaK^b.!6D?j*Z2#C*$,Wa*WMT9"D!sfCVK?U/OY)o]6LUi9J.GpZA"XgXp9Rb<6VP(d#JIrDR\9 +3t59S8A)UBPOhWQ5:W!@1i0O!C\6hmR#F;N1$RuR!<<+=:uoq&*/".&s'V1Fkbafoc-sZ)L3Lg?_Hch( +KN(S!V;gUce1Zr.$*?_:V#fW'Q0V+VVaoJ+Jg"adAPTb)WH!rLp7`HoDG)N#n!N.mH;D>R>V-^] +[oJZ`YFg_@g,3BmmB@26S*S`uM]\1RXLfST!!%d?rX?Rs\;'plNa@M88t4h:#WaO7r:1m9.S4>%&<&9r>*^3K124U1C-D0%P +93qQ1`bcbGC7`1J(fs)F>LuRoBjePK`FhfI>;OS*!!"s4r#(#pE6n?$9PD%QJ&"M,D(q5\`$s\nPIe-3 +STJEo0,rBbV%[].AWRko>NEobfb*="Bs&;E?M6XSS/s&MY8TU6_gMih$U2,D"e2[-\'("#T;6MlP;E;X +jr".!i+A-:")n\:4b)n+jf[lEDC8ZH/LJ(12Pk\/0W*TBVj:1[Z2T/ep6T!qT0T> +mP+H!m:r6J2!uhQh<6PoSI*WEcD<"d8X%m:q(i!N^eH,)#2g?RA,]_gV=dgZ837oc``hF!WDK>R[/k2- +h?P`0!iN*LPn`=p>r?E25tHLg*>5Csl[H%Qh.nt#hn>Y]mT3W@mnccLY5qe'>oi5o%@c>"R@FE\!5RQW +56Gj5mP04ZF4'.KuVYYAI]h)NA:fso+#bZeFbkLtp_N-dnF;PP7> +?o'g@+"TWJInnIIM:6;Z!<<,0C#mS?*.rU0Iu`:?[;.+TgFghEQ3=VO(flFa-XV/oCh`f\2I:.0R'=;G +UKUbP#-!ZBiU^lNoVKE0H<`ZR-?IA*okZTH-e4.HnfIu7!!"sJr#(#pE6nL/GI8Bm+1Ke$oB3\j\NcrZ +Y>&#[]WNs!NJ5f#7_2g](GJ'X%X*b\P,4Z4iEV%#1lBHIRYK$+mlAN1J?l2sXjJ(d]A95iqEnhgXY%B\3 +34Q-F\sN!Q&gQ!5LG]ZlgZ=^p9cEV]CraA4s6BG>s-idL!!!#O0DRC(a5C:pkIf8N43W&@FML>:4Hlc, +l/GNV&_Nq^pJ+YZ`i'!M0C`_2rQf>'WOBBehNdQh_6P)biYoMo,:!-P,0)lrUjo#Hp:/fW.#UN%1:Q5,@-pMX]d<,-=l0-T\]oTO#G=RidWV`-E +jV=eeqgn%HQK42IO=dlp]dEd[!:5dE)1Z5$6iK2/2Kr3'gFi!49ERc(`a%FlkLgVo<8H8<%qnr.SAd'0ujr`hn:\Pcr)=fFc[?M"f)PdN^`en+")nZlaIgf@p=ei?_cSll;W>e_BD*FKY;XpIS.-NGJ#f5"<9)Z03V"#Qi&+Q:^mWhR>?Z9;J*P,*]*"NP@%F9_LokX#'cVM8\6(9:3nKYMSu!kARY6M +j0Wu6^52N#;D`glGhd[c=nXo#X"EqkVrr]E\(*3Gl,]&?h@0Gb!"OYZ)1Z49^ZM/0L`3;Hh'U+Lm(lG:$SiJrlt!!!usq(i#k@#+Y?9/Fn*.(:(I]k(9Z:^+2u(4g<[ +7GPffiL0N,0_o1`P-Umj`SNLmlW0S&Tdg\S=40k?Y%KU@Ing[2EE7@,b\>W->STHc@Z<-hh8DVCfV]=9 +/^mF/nAq^PD7*aO!!$mBq(i#ki#_IP1(W0C]6KcTXtSZBCQM%a)9(MXbO#LX6e)4cU^22CM6SsaFRaPB +jg9(hF4d5BUJ#TH4h#f>Q':9%j]jjb3t<_t0%/l;p=rW<*[+74=0p[:ke>-@03K=r!!!6qrX?Rs\5N=] +cAX[mL2:WS%5(T+eTJmDqfV4sD6)g[Ff4<,RVINqKBjB#:-(4D8u2&6_YB8`_+.t@$ed@30^UV(0XN-L3PriDu5#: +bLlE6HUdEmSm0rsg:ZQZ`QWLK3]a)'[i%<;cV#X3D!P)XW\>LMC-VD_egr +Rh+ZK)XBEKB%&gA!!'fcPmup<7[iL_a&CI;5>)XD:\.?Y.kZG5_5;mbP+o\ZT\uPK +T+@j0HgLiBAg>:iG`uUqj`!8,HA`6Mdd;"C`=34#Y<&IgkEF>,P2EN.R?%S(Af=)MenkE^=;IbV$O\(bet +fcs1.)M\,"k0#Y3j_h[m'4)_uW`P;fT%!)d,BK^4!!!#S3:^\^NkqRjcdTQ/Rr7lEGX1.&0q;.eD9qh_qKI-DDq@1jf?R:FCHFsr!fEFZgRqVq.[c]H>^dEHI< +QrY0DkEA1DFI^UIXoSM&J/^rV%)=U-1k-Q`]f4c:YD\AR1S_ot3)Q2aP)dX=CtY7rEqat(g]RtPNGqR#P4"onY]=NI*8 +3!P`3cWuf]pA-G2C;r6/S@KN/R0S03Q@I.e&&E6%7t6kQ5b=Y:L*OslRck4W]:@)f5)3m!3F+ib/6=^P +V:/pWm2joFZXPja*pk$*AR'*.$Gu]$sEI +E>eUYVP2oHppM+8D::+jBBM:uNMk+BZRP4seE!-\4<%'[mk.Rh0#Y51nl0m^_kifAWQ>!?TmH=J0Sj&, +:]GJ:!!(q:aI`Jm#++GtK)t*qn*P2DP>VW?e'FP9jnO)SD(s6\T:VCiX#]@+Bii^J9K!hBgFKLfq]Xh* +g#2,)Ea+9d#NO^d`\-R0eqrI&Nd.P6ZXP%A%GOg(p*E!`!!!!XPPc;KA$ErOK73+>%h]BSdUj?-[].QH +H6hp@[lD^?]-V)rQ^p%j?mKu:T)5@fi4aumh6>)6(TK-W\\/'rl!Jm3j)b*>^/9=ubFJB"eR9*Qp,rNY +!8r[ST)gnU>P(-Mm::"FI_7[*gYVnDj$Ddg@d8,!gj=<<79;q/e%8C5kn_Nl$D6(`oi,:Z7^]^"aI?9= +I5fI_l*C+k+bfW8SpY\YksbU,s*\A=)#sZpprT-/3!NULcZqc7bdB&6PLr0%*7>PnZJ*^0fcj*2h0k3I +ituImnG++mg@k*2l]NEHDZ5ZiC(Y1'Q/f)jZfZ[Lis"IOD2Qo6P]F6SB)qu4E(&d5!$$W6q/]IDoJYr0 +=IVMcMD^^_oc/"b<(Ni!-g*9[d2U'iO3&<\^!Iqi2L&S4Of,&)P6Jla^"9+`g8aUfH!VC[R`Xf,kG@s" +,/0AlWhoju!.^R-cCI&c^]4;0LWQ.h3!L>mkC.Wf*25(;LW4bf*6LMC%!H74\Jaft\=K#92O!P(nrRfS +m!aZ7UI+)q]ppdhqt*%NH`]Zg]s0uSD-$f7p6%`*r6>i0?2ss*DR/GtIt"q5?@&":)1Z5$Tmn;_,)A@q +gTJ(X85Fs)Qt?sIGHj_L&DPLdH$&Sd!T.@hcT.WSQR(ITn@9K5FSFM"PW4o,n+'F>Y)1I(/4COQ\P%!-!",nV^beFmG@k)1[K2cC`iK;n,PGH)TI-%\DLbDp[2MWoM\I:m?#;kMt&QT74&LI\ut) +'_`ZVh1j-90(2CKl-DuX)Y*-:;AK]A!5MHVn%JHZrTR,8\fcJ,i*hc>kGF`P`Ft!9bjBYT3J,Qg1MsVE4;I81O5',!Fikl>;F>_BVk&!%Jf0f4R1Dl*(Y9aV'l7^nhZKpf, +!!!#SFK`IYqNF]=H0a%`c[=k2nn.qD,$"Z_V*ho#@!S!N2Vm3f"S3j`K"!oj<4Qd#go%?dCk]2W*d2+, +q!O=-'(=L)4YFHC4!DmECY(L^bN=ZSZHMBh_mAp"Mtt=%D@p@9]^)o8a2Ej2BlD8WcWqm]2@I*3i1W-j3L?B`T?J/3Ie2< +h+[h'`i!8e^.cKaUK)Gh__qs3!rr=?7/l:TroMFr48me%B)its)tkAtg,QGZ]/AT)>n!.!o>tENNZHR4 +VfS-K'D(#uFnhI[=GP"lgaM$RWD;,9Qk+sbde2CqEKREEh%K%%#"L9m`oE3UA[b&-!!$nsmITLX4FdS; +_!\YQT6%Bo$sSa]1s2:8OIPpbEu;8.h`\6J^UVK]/pP?Dm1f +_o=DNDUrWJfFhEb5:O!$_4p!"Y3#s7J?c:^#bW;<5acNg03#,@PE:F>fpC50pT>9DE4Y7pIZ'mD4S#Fbg%X=a-(Vel\!$Tor5 +FSt;n9$ru@p+B&)X;;H&ScJfkGj*8A!I0Fmq/[MCIN?EAbEpF#O7MS`7YDpJdYuM`65#d*lF^ukL+n'^dI0,Im.4oR'3BS +oPSDiH61+Zf4hiI%86/s]JuW*f5jg$;'qf'6H[NA8U0*8lVd%NQZ9IrQ*s]37mA5H>&?-abGAjtc)\D[ +0kS1lMZWqZE.-fn!'E[Gr:qn.U>mj0X_1W=E]\VcWH=/5D4'l'eJHJ1;V'C<]sbtCt0B(+f+bBRErn=29-h&<6m2K-cU"OTQm_"-n^tqNaGjhipPph +,rBi#S*0D+&#3Y-I4>pL.SJH:coLXAi`:,P_!5LrfrX?RsaSBm4BWF\gCPegQV.JZS896TRRKt3c +*CR"%f@qo/Ku!$"%:)+n4V#03fr01%DA]j#-WV3gH#bIJ#]!5(l2@QQRQN@3 +*T=U*j>u(6]($/Bd^/bf2U-U383(OY(pi=^:caV"2cY$Ln]mK,lSSUs[quNdC]FG8Nh-(cJ7HshcY\Jp +BWk,jlA#6?(ZU[V1E9i^q-H>Bo0E)^`<-)?E*VJM!$$X@^CeM18&C^CrC3:Qp&?!POODWV9JO6+oWfFUW`,J-V@^AA +7^)D"mBG)d,Ti>]$Z'9`7h1X@Zu]R7=UL.0/]OMqk%+Y82FZh(=8s`H$.^[JTmCmEL:u=UaBopjGln$H +i8Gi/#2g?Zq<)Ip)cBR[E^#AI9DNXUn^"Q#!MPEIERV`$1=IK<'fDhn,;s83h$N+?l0ET0BmR\Ol91Y4VZQo!E7Esp!$$X(s'RW! +bUuOp3pr-o,LaX-+D:,7c"ZHGR3eH8IQ!`m*mIb^O'eu\B?lF]d;^SfFWV+>:NYd%rPGf=Gqg1cY*Y7U +[P*Z%0n/=Y5tAVa7?p!u;pNYnF4[*)eNRn/3Xu,i^i>K$")nZhr]L3sb(8mA;pB@I3pm4.c?TWhngW\' +)p]n0#7(8K>p0W7WS@*fG'-EF5[H7$4Xf!^2;KZMc9ZIG,2Zsoo&jSq=+/=Oc$2/n]C#oqlbc>sa17*[I`="CBX\[BL:Q$lDe'F0[T.Q63O50\ +9GJ5I.;RE*Pn\X[*$a\#$as9`5Bj)@H,K?0mEBa/jiXPJ,lbPq2oEJBD&4^ne"?V#)lcG*9H.lD@\7dfJrZd>\qGu-CS*$ubL5m%)en.:dJ")n\6q<,!ER/ZWQ"N#<37R&anaIh3d_9pP8 +m;BjgOuG',-ZalMs?qb3ciP:M6-;p +;Un5XS@7/p!!!"ir#(%FORqXaYJBf8IDt1)U!Y:W83?iZS7g\BHl`USbm2F&EYrVF=IQ2C'U?/X=a +F:a_XHB%jcZp_qpIu]BXl#;*`WW%i_nl\QN#A[P`EG.M]!!!"XaI`Jm"t>&Y$BBSB4+5pL)]rus +m!NfD\@(=EGu"D?!&uV%B)mt.(%^U.iC;HLNfHEn`XVq88P#BhZWeirD[*&H[;q4QJ& +PYD6Q[N&aG4dpGPY8&ipp:gVo>u!pGBn&ao5Ju-8`n]( +l_a$7(qZQ@;S>Q&a=&3Q2_97"E[ah,LHu2)3e+- +.===KZs-dj.TjuWbf@Ai*&)9e#jL#c1=)Ka$CpM+c35G6&:0J9RR;5W,*k6Uamb3ma8!?^,6.]D +>Xn]$^bN?6r`m_?`dRUD07.UV!q%TJ^5aGY=6c>oX,F?i/@o)[YL-Ij7ZKdih,MYI\b@?C5MKTX!!%PM +O?Whd%'J*pdDX/i=Eg9JRmZjJhaDH&PNr%[i/Po1(!U%7T$^kf@]2=H7L-CY1X\:A*Z9'\<(k[5$ig:C +!/@6%Es%M,:VT:]l9'UkN_]qfm7XaC\macrA?B-A_ +6(aah(?fr0?HpJEC]FG8fRj#=J7Gg3rnMGTG;AO98:0sicKFLuCKe_7ibmm"S8(t6]c9d\\)!uY,Apb2 +=rioP*mAsLN\:G6!!)bSr#(#pY\!eRb!(,oh*fP&0,[!gO$]hb-ur1+=1(o]S +rUbKERpjO;qppmnlQ>^&!!(q#-@Z6X(i2G:geLc)E%quQEZV"?#9uq5kDQ'nP!A."k1!*gPDqN#/L8ka +PV!1<$L3=\($kD%JIZIJ@P!!'elP!9%f%(=BPo.4nCDF45N_rkniqn8@d*\8rQ:MJ9&To8dPp&iN5 +F_"F&jh+N#r*oBMKpfs]!!(r+OZrqe%(=KS:C$^eh0=+\*dlQh0;D+4nQE8Y\Z!0m(Mi(Ik]'s"\p.Sf +&Z;9tA*\rZ%0-A.*[LP;!68KZr&OHlpY$,Yble9lLQk,4jNm@tl&>ZC +!8uSPT)gnU>L#IBB`L*tZOa?_A"?Hp4fb"8XM1b&9"%tpldP0,H4']Q!4W7(B)mt.pA5ADEE%0p423qI +:-jY;YAnbWHemIt8C*$j*P1JFk]Hn+!:Xrk56Gj5[a(Ldpj%!!!L[r#(#pYl4QRLGnt@:4&*oLKIG[3]&`7g^?"X"98G[:ro703!NUJcZb#sIdD@/;$SG49bLqD +8(dR!!!!",C[u*mkAV$iT&,.GNN"h$BnVBY +]e9m&HX%*^!!$8Tr#(#pYV(EC]"9c92koee)e%V3!!!"LX,oOJE"$@MkHs"%h9KX5!!(r.Pk$\H)[1!.-)C#2g?Zr:sg>_'@WM +&-)\1DE.GJ!6:b$J(D.2!!!!(6N.D/0pq;l#QOi)m%+%lJ7B^O"onXR_]sX8i#'P-!<<,XnAq4&3!Sqd +!!!!Y4S!+bNe.*G!!!!/O8KlG@j$7*!!%Pe,C]pU(s&Ig,lQJAWU]#2g?> +T)eoli:+g[!B:;SB)ho33'?bE!02X.)#sX:%ZgN*J7B^O"onXR_]sX8i#'P-!<<,XnAq4&3!Sqd!!!!Y +4S!+bNe.*G!!!!/O8KlG@j$7*!!%Pe,C]pU(s&Ig,lQJA\]RJ!Nj91ERZ] +j-.B@g/e3sDLC2IB0JHEb_HE'G^.<%\L'L&m)CE.*LVCh=2+(+1ERZ]k/.9$4?V]N>SA2#G2ne(No\OQ +b-rC7k/5*^I!>XALPPeqCZ<7LDL?KWOo1VQq6n2dI!F;3%hA[0n;okU9mh3EnHNPR9fWs_p3XSfU36\!-$uR +\T?s-mG!Q<@eBF7DnN@Og#hmus89GAjj.0F+!,UcPJ`DIGj^(ZO*r[5)p,Q0G36][c?sj:J/d\'^]*ok +B:)JBiY/*-^\cjUXr`)gjd4SiGRFLh^-DSbs8@;Zo/fbJci:QEK`JpY\E;[X!J$[#=24U^lGnP?T7;=^ +pfh[M[4`Z<<3("!!$ueh77Ui +eu`0&4S-e\nMf?Qo@Cq\B)ho3!!([0E\ms@n3z*/XFHHge)GhYPW\I^JQtzzzzzzz&'g_ +-GM[iLrI(jNGdtD9@Ge-D`q\q>J%PRWMo;.7m?L+>8KKu_%6Oq?iANh=2`A +TK-1#!p%eF-B0NZjKlAjGlt8Q[r9$ijU,ZgnrT[IVGiFS1VrdX>gWr(\ljnU +@_gS_ES&':fmL)8BE$]tH!W]0IrTdftrET!ednd/r[9n@\#Cl4JX+.:$;qq&X\4PP(n%H\LiV,+9o^e^ +Tr2HTc>('eMJ,]8Yq4#.pb#c=JbVRSHrqX+NI;[q8j$9_1)llcU7mHjt='g1694.PDj,ZG(fOL!@pr>V +UpUW>+^>!U6pc4*[n`pni5V7Y.qtBF-mpa'0jY-L$Ie0&doKOS&T%`MY\4L"Ql(rjE_s_/Qj3R_kcW6[ +(H5>^G^\ZJ&ro"s%*rO'.r5UrQN5P;547B77)^#+Ta6Q5rs3L"@+8a\3=2g0W]++LgT6&YV?`sG07_\Z +:0qYp6(?U+=0J+n/ZqUDEln:MhLCK9.@J,f7m^\SYXr:8$[04RXN4n[="O$5U>nbqT/^Ua1HIH;t +dg"35`=T.a\gMai45PW)'02qUoUqU5t&hufV +NoV^SmlRfl8!!E%F'a7a`P&@1)p3@D[ccfnG2Ut&!8o$pe"?X +3mt^oOGkKT +g=.c!1Sp97erop'K[7Cd15Q8=kc\ropo?B5e5I3N1D7GbDpkuoVEt19Vn%JJnH3F:2bl6Wero;P&eUt>LhgYLna%&X +Ks81\\rIFMfJ+=ua==/f:qVbS*4Dq:aVe`U&LM-;$lLFW+J,b_)r8d.lnje3%7mI%LchG+H%bd+B4urR +IrjC?a>CCs,H0(=)/;Y=aG8k_p_@&$l3JSXIHfk1t$36ama++$-X.P+B3%4[T\%]7rnB_.4chFgs%c?Q +LkgtRc8YKdhI!VApc4*]q=P'p?u!5WY'qAee>GM'm;ILO>Mo;.Zd1h9;3N$q]o4QAiYT@So[-01T9bOeoV9`.I/WA +lX-fRr?$OqUPSEVk.)jo/kk*cG%oL61`oeqoI)DCsT:d!!"7Yq9f[=k3_OBB-R.\X0rplnP?HSn(-_GeWp"*R.pS'Wh^>!TKq)O5tq=P'p@+P5D^]4# +^Du\`#5?N?=n$N/2N;)1Un#a(UqU(@Q[-r\K^a8o)"TSN&zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +zzzzzzzzzzzzzzzzzzzzzzz!(YuI#8uCbIf~> + +%AXGEndBitmap +GR +GR +GS +[0.48 0 0 0.48 921.60007 112.71998] CT +[1 0 0 1 0 0] CT +N +-1920 -234 M +480 -234 L +480 936 L +-1920 936 L +-1920 -234 L +cp +clip +GS +0 0 translate +480 936 scale +%AXGBeginBitmap: java.awt.image.BufferedImage +{{ +/RawData currentfile /ASCII85Decode filter def +/Data RawData /FlateDecode filter def +/DeviceRGB setcolorspace +<< + /ImageType 1 + /Decode [0 1 0 1 0 1] + /DataSource Data + /Height 936 + /ImageMatrix [480 0 0 936 0 0] + /Width 480 + /BitsPerComponent 8 +>> image +} stopped {handleerror} if + RawData flushfile +} exec +Gb"0;0`_7S!5bE.WFlEbTE"rlzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!!_"1Z=E;u~> + +%AXGEndBitmap +GR +GR +GS +[0.48 0 0 0.48 0 0.39996] CT +[1 0 0 1 0 0] CT +N +0 0 M +2400 0 L +2400 1170 L +0 1170 L +0 0 L +cp +clip +GS +0 0 translate +1920 234 scale +%AXGBeginBitmap: java.awt.image.BufferedImage +{{ +/RawData currentfile /ASCII85Decode filter def +/Data RawData /FlateDecode filter def +/DeviceRGB setcolorspace +<< + /ImageType 1 + /Decode [0 1 0 1 0 1] + /DataSource Data + /Height 234 + /ImageMatrix [1920 0 0 234 0 0] + /Width 1920 + /BitsPerComponent 8 +>> image +} stopped {handleerror} if + RawData flushfile +} exec +Gb"0WZ&<1-=pFKm;^Nu5OG.+;-6$&\`F.@eK168m!X"Y>5bnHIKLniq0pkis24;fVC-`ap1"r9tUqfeG +((h;oUccjg4hUBWHZ)p1G#`a/rI/"/gZP1"STA^^%kl7QEruCBzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +zzzzzzzzzzz^_:m?If?Jl!J&\b!5"p>W+hgP(5m!!(qKO?WgI4G62B=0Jc5I.cLc&'ll +B^:8Q9fr-pio65O-^6V(f!!)IJq(i#d>PI-X(E`V:UPlSldsaT0/&eQJ+hu:D`r0e#)1f;E\A.I!!'h39`>G +#n>;ZNc=uJ.$omRDJ";>WK?80A4TGH^SdP9L!5SOjE5$^FH1Obt`ls4qDW!'k"onXp3r(Q3^cbu:\n]* +0nb'l_bKCb_DatimI,:/hndGKu4AkZ^!.\R^?XFnVgA($XcfRH=n?%a7B?D+m!8r]s56Cm*PVVDic.bI +pZ!`dSLR<89\H)[1Hq<>E!!%@e=2CAELX0VjPX"''D52Fi0(86B5/6D*!!!#W/W`1!!%_`jI/3>R?a[0 +;o0.HjrgZ'Rg.p;gW:1Z)!;J7hT)jITmeZVLb^6gKc89eCkIt[U]ap"pjVr-IE2/WF3hHEQJ.I_=)$"o9Y$PDYW&`Q +"_5R/tLW2MpT%tF]m+c:I#64b>LI_=P!.=:=?XGJ"b#bdLAe_oVF$!f"c,l:7hh+;>o@)dBo?D]8lYR6 +)cN!s\LJ%OS!.-A-MCBC,6NK1!rYXFO(:D"8GD!;Ne?T)jHQe`Fut7`6<'?CEhLkn6V7d+;rqNbF$@_s"4Cq +V!<@W\T)9H+p`M.M$spZ\bjg>_$#TuD1cD7*@gSGW^jMbOk@89GIKfcP5'ZX2!8rL:jNJ'[&*D(rq,dd +5*M62M:>0Q??^8pR(A4o7jk)"m.C!q]6-"O]RL^1I@:Q$h%'\i!:UK +>T)jHiB*ju5I.a3UmAH1qc4V\s,NA+EATiBfNm7XrG$<>\mRVTcbd0G;!<@Z58cB+u4?43b?d+K'ZS+Q +/8&t2``m2Wqk8>'h/^Oa3.6JA0kBJp*bk?k`B)hqiH'1Ao!)LeP@AEG?q],kO7`YCUG.`*I?+mgA^AXr +%c^0)>* +fpc5P%(nVX`hOgDG3^q:VXo02OUK76R2NaT!o6tJl*`)@.EruCB5lM/l]N6^m??XtG-GXV;fQb#CVUie +&0euQgDm:S0ae]Y.D[UHdN'Jbl5+"@V`fHX[k)es_L7\JHJ7hXV$imqAAhq$[chj7<)ujdt?$q'?E("t +3Grr,OF3iaQ7c.j7H4E&MfgaOQ5HQ%.!!(?2r##KZJ#)49C"53:ktHgN.F12;A"dnf8Xb(jaRl%,(2b\ +DZ^'L]q&KJ9!8\7WB)pjQEW,`[g!oK9r42!/DjEuWIAGXm"u?Frh6)_TpDe=is"!a_n)efs!!%7^aI`K +`pI&dI%d)+%[9/%?V8dd&?gi?51]NuejMoS?CWCnc'=%8Iq.ekE!!'for##KZD_,tN8UC9u;Z<3\9Ahp +Z0P6Mi''?`O@.N:!!#@b$impNNpSFN/2q\h#P7+":].gh^-=XREsk-/#JFE +4"FGWne+:mWW[5sk!!!E&1B?o.34?^Ut)^%U:'9=?riQS1"1DMOkY%F5:&RIeaj5Au%\7@I2"rcrkPT=mZ'2LfUUa2-& +\SC!\em;MEkq&'/4T]FE!^uOWHEUqtcjW")AGrp'<9tHfN30Eb_gt5-8gM.1f&!gh'.jHDeSaJ_'20d@ +.fe,jR^-,KbeMH=5!!!!FIg,lo_/*<3QW0acj'YoXr;#X.'hHeSQYJHdEV0%#*7s;rc?XGkC'7sP7fO"G!kE@3V/`S&q*" +@Y6t=1nG\S8!rri]l#B)E\^OpP]/&NEEV9`U=2m"oI.3;e;.%#J9&SJ>NX\G''om]aihcGg!!$D&rX8c +hW+BJTKDG+&:MqaRL5NU,i1,(!FsP;UF758=kA2o@O,e'aGb59<`2%JZZer_t$NL1r^6:b`!"YuYn=1. +ucFJ7DF`;GJQ9=WZQFdslOomXmmOj:lG)j"V,bmO_;giHhH?kGpgQ295!WW3_(%Pu;i8O$\S[4sHPf`! +7[QM##9MiB_Z4@/YXkK/gE3S`?)\F^Unk?KYp%pl+@rJRL?A\^_!0mC!!-fXN?J^IW1UG?qo0+&+q"g^ +VDhHrk.PFA68i\pcS^[-V[qK`OO1%.D2*[Ng3k[1Tf'-6I5m%)e*$]q;!$4[h23ui&CmWra48,2djJ** +)r?u^KS@?8(?;;h0qkA.'oB5OI3,cB6T'3dj'=L_`-I3.11H=3\3Hsp4jj*o,!!gW45oJT<MNL!H)H)#f\a2)c`,hqe +YLB[_YG`Tt=!J'Y$o&XFh#=!(+7X#K8EUMAXX.ImOkC^\#90SkHNQa*&oQUS`H$/l!rnTfY5',Qs6(`B +J%"FdS)ZTlr.?Zmt!8g(@jb!U#/:V!'Pa;`;lquD`")#6b]Wg/jD(YkH,N5/KSgedXT2Vhre3ktY:JVS6$2f9>iqb"=YJ)W[k`?+q<+R)O8G+C!!#, +]nn.s\ratqq5ks8OR=AOtT3I><2qq5uF&#g.gomr?[mQpu)eZX^bB[C.^/!88;NC0<3$0:-FN:EE7YJr +Z:SclN]Znt,!!(eGrX8e^?W5qto?R_r:VX1=iUuO&k/5H0)\+e6:>s39lNYG@2RhGt1_T7>F5AbDmVD:h:!lW1I5Z7&gf@aUk&scilu*=5!:W:956Co[Yr"\;aIfYC?gla73t&aG,UW`?^4H.j!AD1 +$a@@i)fM4s=]Y/#7S8RLp^4!SBngqDd8N03"jfZ//Fmck@4m./LQ[XJB(]XQo6R.'b!:F?2IVsJEDkb< +0np[MsS^.alB?7_+c]E4rk-K!p6J+5fE8F+B3UL3*gcgf(c4-geEHE6Tj48:Bm?&;KpU*f-!<<,PP?V-`=R$=nKO^BR:< +m!!(fh.l25fg\Tr*;gdK;U5[Ge-4,Vh]jmG@#P)WFL1_!c/h44o%p70:h`n-WXhD\Lh0mN- +C92=hHG];^_!!%P%jNdhASW`LqXW!aISp>,ci-Ar+kBUSUPFh0gae'5:Vu@k\dJM`.>Nh3ifZuSH;sP_ +o?WoWgS&J'C<)@1jRr +%KCo*tO+!a/j&klbh+RMO!!)McjNdhABh=I,jR0&u[Z>`T9/)e@-T>q+]W]E?>]ao6!p;2dqWP95ceO, +4Y.p$a;q$k0O?)LZF7'I2'0a1CT-"%5i!GT3"2H^:rVHA4Vf@H`pS5^PE\m+ke?G=+@H$-!Q41Dj +J_mb*>*=i<&@m-++?l`omkkpr5B$D.>!!.GsZB)m1b>1("]4]ZHj6KY, +l@R"e$U#g-R7`"t9kC``WF%6#mG3?\2a#CI6H,A_Q7JEp/u:A#Yb6QJ'O@==e3sq]A4K!\^.u=F3Zh[H_Tk5hIJ\sG;g_iRsi%nDm]Odp4k3 +VAI5!tX=+)L!8o!q1B9O5F7f3Kr]HZ)cGklqZ]:di*^)MTE[I3Dr?b!O91FqH^V4S0S\a>4rp:-c&np` +4nbHlX*1ZC<#=ktaZ016:SH(S\%0-CtVW?&'n-mRg2-KIS1U@DG^7f#(K&5?sOfMPbc#n)9G5tqILL9;gMMh+?kNh>,fX/J[O.oYJh4%VEnV!<<,6"8O_Q4?&7U)^(c?Inn\f_,?1 +:[rW*AHhP^JB1AGXN&GAqZ>LA(2Kg-H,4VJ[.1F=(QAGU7W[T-6$G9'p1#pomRVCphYu3lG\4fqYds;?LWl[N[2FbFqDl9 +nIEnt,Tj\1q]?B/^jSQlO2uipYa2jkRi)uK&%aIW=f_KSjH7;tA]Q&uhTMDGT=m-W+bVRSb/qhn@E,I, +W'D@L#**f)A&bOk[E-^eueT8Xk3Ld_NLjhu]56(]!o-/YgJ7iFXr1)^>=Lmsb=1;SJXiUCJNE0TN?F(2 +QT&1ne(7fueT?cWa%Y36lE-]+/Al8..anrk*H-X=RG3HAU*.2k +g4O`H$,1!7N-!kK$7E2%U_NAQq-Jf&X1C--J5*he"<]A>0C\r2umYkBE)]]?NpW!dS4O#bmqXjcQSHOGB<1Xji^c@W9:-YUVpQ].oK6b=Q)WdZ;!3sQ3HH5m=nHO/Ss:F +>br:WZoDF[C^B4H9nDTKo"2ONUdH,d&o!'bPk>6.cg;Lt@l9oL[S;U,VI/Wn&EH1"">ap@=Pb$j&O\Wu +f$0NW&?39;$Kc-0Mn$/mPAW[C55O*_/!!'e>8,`nscbpfPhG=%jX5KA-DsNW$*Oe0,m'b5c?h0_.>/&B +]kHiq>N[;V]XI\>5g"MRbAm@Gsj^ug:B\=6m7,c/bLsBW5!._OFrX8eQa2.?0'3u:9E:+G1g$RXJF,i: +%c5BLI.!81S41a4AN27M(M5.\3qjc-hYm`Y]h^=u?IHP?h:-L>=)k!-14p(cbSFF;nqnN1*J,a_b1Zcp +_n4_%]MLGNEfrbC&mLQh7;C&'/\SekXS=sitR5PrX=r6%l#rUc:L55FAkroXqrae&UlR:q>FOEQJ+o4HZqYN*R#c=hAaa/:_`4:a>&:8lq4k-TD +MJ%&Jh-Lj8=gD$78DJkil&h3Q0p&iN3m7("G-$E&=SZf\B8(\bPScJfk:A_@^qm5nco.RiQU.>4C5Q9] +l:I"fo%t8JlMaRIP!7/L:pb1+>qu2Rc^[nJm[+V2/pc'9C\D]=g4\5XT.>t8-lN'c+Fa!a?_*g]s5*5ChK&P_rpK6`j+$S8IrXgAq(i"5FkO9>97/@;OETCsSI)O!N?eGaf=!boU`k=An8 +9U1*`2h#MA2qa3CkSUA%ZdRfoi!o5MZn,NCUkND#8I.>1\9B=D!n.a-soN5^0C!YH+Cc!u?V9nUWcK9bcO(,XLq=@M6S7oL!bO,8l""Y\ +DSZ0p1`s0(eXI]76ZKO:67[B^lpR0TC7t.2\;S +BcZ:bSUq8d`,L&kVRi793A6HA:F"8o4!,kNa!e&'Ak!:GLQ"l-cDEq"u?^,S>As2?X?EU51N1B9Nhq^.:aoB4C9mtZ@Ui[,abXPIPKPJ\DHc5:X%\W:^ +aGEIu4N[X(j^0_qbY[9UFq=;9rg3Zc!70,dr5kS$T:c/$5Q!m0r8JO +-pl42+N?A/hLF96f56J^MEj3[]o_sKbT21-F1YSDiCkCG96)XCM@G1IJW3+5Ps-[IfAr2s4(KTeSkE;Dgh2 +u-i``js)R*Kq(i"5+\?JDBkeuJmse?tf`\OY^Gm"fG%*JbEp>)WC6?]cDL4L/;(!?$+nH,"QZe;cn8m? +a)inX;\g,HkZY+C8-^e>J%sB.i?7):ucN!qF-iE!hro4Nrnc93e!,lTA2@2sgJ9_0ls*:ZjWlBA_QY0[J=\kbVV +G7*imD8lP?arm(TF!.63omGIp1jia"jq4I\4T9JB_!:Wr-)e7_8'e`W7>b)IK1?"6Vc[P!oo?KhhSDWB +f+`K'XJdI<5RaL\c9IA*LH`#n!^[oc86O0raI1g1n7M!do/jIOLOZjUSpI6L%!<<*@K)?JdSr+Bt09a' +sG0RXJIGL3J3B!BQ\RWPQFMI1$Hui:_b=C:oadG4/I<4/kS6>&L<\Mj?o&kCk$pQ,pDPqS3k;h_\X>j! +5KCgH]me$1dE$Lu-Tl`']8,=kA!!%7UjNdhq<4)4jqXGMBqD<6sgj"QOQ(\\6I5ML0gHq$bH +Zo^['7bp;JhB)hp^#:4j(J0uL#mD5r^HfiY\7O-1(WQo/kS;d4/[\C=-`>si]S(oF3GEho]hh!!!"[5lM/l:I9-VK,a28b<:#cio9+-M2P<'YtQf +p>e)B260KT3?+,md]P=G:kj`pbn(<6UV5S\(b*\T<^.@;PStB`^3Q6D)2Cm!mAdnRh%g;q5^tU/b#(S' +EgB]\?hY1q.)hCcTSDoIH\]KpH&U,/(gD%(`ULE^WqsE$WRm#mfF'G;M#i%&rS=fO91V*?;Z()bEauWC +F]/Z+I#Q(GmpjDQY3nChbQNdEiGjFG:!:V7U!-mq82bPMnjNl#nE!r!'pZAoD3N7&FRBspSZ#3h%l/e. +SUe<]YR=g?MH_c5aluUIQ4!*7;RHb8?BBVm+crqcD$0iXHfC=)p=GkP3P/3.m=la0:+LIcXSno5!@,[24(EO;a:cl!5MeaIg1Gth]1* +>auX%bDW03@jeW,AiUE@emO3*VC\)V-,X@rl*^.s4G$d)>J)G31\F6Ub)dpL&K%--bj +[GgG.U1O!oX-$df%oJZgO!8or#56J^uYKb11J%aN6Z#igd-oEfumC8PNc-:T>Ls['JJTEd=bMIs-hZgh +CW\#+j\)jC,G&Fe(2X;`Nc@'V#lZJf$OnJYKM4NfTp;$t"mXBEMFaA[,!!!#5)u28i]IPB#gV&XH2D7e +a3kLiM(ann!Kk]C7:7E)Dk-l5#DZ+VHkNkO&X"lBa5W`K(mG^\1]78O[dtGW:$SeqddcikfY3iT;@cuD +^12AfY%PT8dcKdmhge-l/s'Ga+!,ta)B)m1(c$SmmHT%7.OP@Q2_ZSOW)B4C[=(Iq6g3N(Vs1E`7;)E#"k\T?Sd`93181[6OAr>'I%WW$#B2tFrFm/IRr!.as +/56J\GbPlo1+hmRGjMS=r\@!/0R%<2NNb@lbXk]R,RID1,hH"DbF+`B4[r%Y,EVHn4kFD:-SWpYEb'19 +E[mQnmhQu:R,LG]Ca:rifX)ip$4p(cb4<4/Q!'I.3"`\i6Gj6&kZY-%-a@Th[9$^r(R&(Z +@%rQT5;V^?E3Sl4NIQGZHF/.6,FLZW=0./(6K(o(PQ7hLc`cLRZe(siZbO7I_q3f>X5FpM@!!%Pi+b'] +H8$`mAhgb3?#0>%m1In"+[`NA:/2I6q<4Thc_qVV:1m2]Ao\AF[PoVFVRE9:e^(5C+]K,_W]cRL*l),D +2m[ARRA#7HK]0+h'!o7cOoB2qr)ZTkgLEM'NJ4HraaELZ_6k\4%M8V0u41!N3:1SnNk*pOP\O)dR3sOK +?N>^'NKK9)!G))WlDVrFL,*=sr*UN1i;_7OaSY4h83%ml&_3he=Q\jo^HO^)W!'CVa1B9P+NZ>g]r,ZJ +2o683P1Q5%)S9&^SqkDj9d0R<.dts<1H2B4_?"\=A%3%=*Po>LVRh["r''Z;ebe"na%YIKj;ZJSN\7ZZ +8k=K&FX0?4eaMF8??m;/Ik[3q2'*&#_43=)qi,S*rFRPV^\#[&&bkltJ$op!4eT93T$lEW-3RMhUgSDY +WQ+Kb!;rts7]hp!5SiQ,*pTqepQ^<'EA, +`434#pi"=9AMc_9bQG+LkC9BNl\N&OTmq$[6'n7^n/!:U9f)[Ic#]h]Et/GJMP[X*dF)n4*jkZ2??8r_u +]h5P>t]X+I[&(#A1+L`nJ)(hHUo@!P!f?CYiQgOt=/i.u`6K\*oR[3CEq>&#(5MA7^[fHI/GUqk$!:U8 +[k3%Abm@BRsWGF?EN%;@k3?u70GFMA%m]Fu0VVM^\1B0JKSS(M_g+`)rD8p8Y4'OmhIM^nuFS!F^5'bF +c\':[TA55=$Ke1mJHh*,dF0M,Zc8ptd9L$>m/H>bN8'.A(i1Y9@^A[@]j1#P+B*$!)D>eMHk>ltP[^j< +%C%,dQgWAXGm`Ct4=goV:,o'"Lqtpb=B2[QJk!mo>kFTT;D=_Gp4LY]7&Dcg*V4&kmm[f:3]Hg9:oBkt +BfPoTt1B7Ej4!B(XJ;9G4FC.k7=S;;K=!rT +kp!J2Oj6`1No5d!c]DfN0UIXlt3eP*[>bBj?^c6hZ2M!FTo@^V-Uq?RL!!!"[9`>G#%r/O3cO&[pW->D +koX/2Q\\),OcF/Tj?/.6jN@Nm:bBtQ^$4<\E)ok\OV9s\\S(sCJ;5J$#(Qq9$Sdh ++2CV@&HCk5o7*9Sk^$aA$coAAS8XgZ=2a'ohgEMZDEjS_S%O'0HN%U8sk4WrY8:.-o;`uY.F,QmkU]8O +EZ[?9.4LZ'$?_jZG6MlN&1P23bVtg,,YGrKZ!!(rNae&Ul5qRf7NIU,an!t'_p$:pHfo`?qZ1-$*#)-p +NR+97E9Q!tg!'GOFUZQ_Z2n@2L[Vb*S*n_&p2^*,07;=ZJIQ'E-R<)^5qK\l^IUC8nKcQ/E;1*hY"P5) +t5,$*,Jdqb\J;5A!#(Qs/^5E3+9E'=2&a8<%8U?T4k"TH3PJ/Y:_TeD0"(YGX50Q]l)`q\dllh`q\Kf. +SSJsQ7I01E>GKlr(1FI*]Su'#6@I'IsE]tG6kHshc@2X_n<.=]EAln.S#uj8(n-SRFAU!!(oEr##JU:>.10+i^%"mZHq:\!O`aRHbb&c@m^KfKO. +.`p@H3GA4M@['oMqX9<6U7T.q#dN,]d"3`R)DLe5`l8dmqCM/;aj6dC\GG9G%*OnMdr@SQ3o1ECSDfk? +4S5FIuni$N_!<<,p2Yf-/4IfrgF)Z=56I52X@mOdtT/2\d"?!0$-_GS2`Y +>2Fbt^SY5D@F'e[@h9l0X^XsNQ:<_Q=kd`e6SH[_MD4Wjs.CB?[!8uhWT)mm/m.\ep`PlmB2t?@QqM5V +YB+h]``X,`e"`dXk2<_9ca\Mrf[FeF'&L\#a"SG1R\$*e,18:*[LD%l0 +rnEo*mpnJk"H(I71SHf/q!$7U,)#t^KZe6YrCd%@;JUDWg,Js.^/5t$pB'(X%-_csp%VPaZc#%Sm)Dc! +WoFgF9=O&^8Uq)&%-b9gH:1r6_RZVNZbO]Mnh%F?_5(i^5P@<];G7:"\dDoShq>^Kq4=L"]!'HdI]8]f +H]=VmXf?rdq/KF/cQoc-CI-r8!hIOl+43q?qfmo4YM+f/g^*fZ24S^PHQsVP*-baIOoR-X3,Ng4_l,O4 +qRr:6kSqY^O\GNChl/;4527l?e56Clc49G=7!'H>O,VM4`*nprRDc0ANE4'$)]Xk@h6fp:7[$RQBph>eAL0lndfRA^S&2hTYK"d6b>VorjMDEHj0QNGT?9e!-fX +.BkJWYfQK``o:OiGmoY\+4TsLU4X8N'_!Toj-J[GU&esLE/[FRapZ\I:hL_/FDCNVs(O!5I(Ns#ur9Y; +-Eqm0Q@C#)ZG(5L^ZXH5rKCSq7Tp(uK!!)KojNdhq5WX6SkE]aARUP,T=L8rUREeNYSbD)HO.79RhP*[ +)?ujsh`,0be5(gC7C-?2.S4/GAi#.+6PBWe;4+E.5@lH74,^+7h5%3oOLc]m)P36BY`#1,ppN\k\s*UG +1DZBb;hA5oC!'H?G[?8OSm\uP0jgi?:_V"hbF09907+0\Aac3\i=$6@7>';WiU76'K5jh&4c)qP&0=OS +DIF$m8W>c?0Oh)?;m[dC'hEBbpTD!!jG?/A&C$2pABB9V#X*k0prZ;Kei_0~> + +%AXGEndBitmap +GR +GR +GS +[0.48 0 0 0.48 921.60007 0.39996] CT +[1 0 0 1 0 0] CT +N +-1920 0 M +480 0 L +480 1170 L +-1920 1170 L +-1920 0 L +cp +clip +GS +0 0 translate +480 234 scale +%AXGBeginBitmap: java.awt.image.BufferedImage +{{ +/RawData currentfile /ASCII85Decode filter def +/Data RawData /FlateDecode filter def +/DeviceRGB setcolorspace +<< + /ImageType 1 + /Decode [0 1 0 1 0 1] + /DataSource Data + /Height 234 + /ImageMatrix [480 0 0 234 0 0] + /Width 480 + /BitsPerComponent 8 +>> image +} stopped {handleerror} if + RawData flushfile +} exec +Gb"0;0`_7S!5bE.WTRt%TE"rlzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +zzzzzzzzzzzzzzzzzzzzzzzzz!!!#W#$rcmOo~> + +%AXGEndBitmap +GR +GR +%%Trailer +%%Pages: 1 +%%EOF diff --git a/buch/papers/ifs/teil2.tex b/buch/papers/ifs/teil2.tex index a728340..8a7f76f 100644 --- a/buch/papers/ifs/teil2.tex +++ b/buch/papers/ifs/teil2.tex @@ -105,4 +105,28 @@ für jedes i mit einem $c_i < 1$. Dann existiert eine eindeutige kompakte Menge \begin{equation} F = \bigcup\limits_{i = 1}^{m} S_i(F) \end{equation} -TODO Text +Weiter definieren wir die Transformation S auf kompakte Mengen ohne die leere Menge. +\begin{equation} + S(E) = \bigcup\limits_{i = 1}^m S_i(E) +\end{equation} +Wird diese Transformation Iterativ ausgeführt, das heisst $S^0(E) = E, S^k(E) = S(S^{k-1}(E))$, und für jedes $i$ $S_i(E) \subset E$, gilt +\begin{equation} + F = \bigcap\limits_{k = 1}^{\infty} S^k(E). +\end{equation} +In Worte gefasst bedeutet das, dass jede Gruppe von Kontraktionen iterativ ausgeführt, gegen eine eindeutige Menge konvergiert. +Dies für jede Startmenge, solange diese ihre Transformierten wieder beinhaltet. +Auf den Beweis wird verzichtet. +\subsection{Beispiel: Barnsley-Farn} +\begin{figure} + \label{ifs:farn} + \centering + \makebox[\textwidth][c]{ + \includegraphics[width=1.4\textwidth]{papers/ifs/images/farn}} + \caption{Barnsley-Farn} +\end{figure} +\begin{figure} + \label{ifs:farncolor} + \centering + \includegraphics[width=0.7\textwidth]{papers/ifs/images/farncolor} + \caption{Vier Transformationen des Barnsley-Farn} +\end{figure} -- cgit v1.2.1 From f0006b3ae7eb70a1fc33b26f482308a43445969e Mon Sep 17 00:00:00 2001 From: Alain Date: Mon, 7 Jun 2021 17:26:10 +0200 Subject: Farn und Compression --- buch/papers/ifs/teil2.tex | 61 +++++++++++++++++++++++++++++++++++++++++++++++ buch/papers/ifs/teil3.tex | 12 ++++++++++ 2 files changed, 73 insertions(+) (limited to 'buch/papers') diff --git a/buch/papers/ifs/teil2.tex b/buch/papers/ifs/teil2.tex index 8a7f76f..5e36f97 100644 --- a/buch/papers/ifs/teil2.tex +++ b/buch/papers/ifs/teil2.tex @@ -117,6 +117,67 @@ In Worte gefasst bedeutet das, dass jede Gruppe von Kontraktionen iterativ ausge Dies für jede Startmenge, solange diese ihre Transformierten wieder beinhaltet. Auf den Beweis wird verzichtet. \subsection{Beispiel: Barnsley-Farn} +Der Barnsley-Farn, Abbildung \ref{ifs:farn}, ist ein weiteres Fraktal, welches mit einem IFS generiert werden kann. +Wie man schnell erkennen kann, besteht der Farn aus Blättern, welche eine grosse Ähnlichkeit zum ganzen Farn haben. +\begin{align*} + {S_1(x,y)} + = + \begin{pmatrix} + 0 & 0 \\ + 0 & 0.16 \\ + \end{pmatrix} + \begin{pmatrix} + x\\ + y\\ + \end{pmatrix}, \quad + {S_2(x,y)} + = + \begin{pmatrix} + 0.85 & 0.04 \\ + -0.04 & 0.85 \\ + \end{pmatrix} + \begin{pmatrix} + x\\ + y\\ + \end{pmatrix} + + + \begin{pmatrix} + 0 \\ + 1.6 + \end{pmatrix}\\ + {S_3(x,y)} + = + \begin{pmatrix} + 0.2 & -0.26 \\ + 0.23 & 0.22 \\ + \end{pmatrix} + \begin{pmatrix} + x\\ + y\\ + \end{pmatrix} + + + \begin{pmatrix} + 0 \\ + 1.6 + \end{pmatrix}, \quad + {S_4(x,y)} + = + \begin{pmatrix} + -0.15 & 0.28 \\ + 0.26 & 0.24 \\ + \end{pmatrix} + \begin{pmatrix} + x\\ + y\\ + \end{pmatrix} + + + \begin{pmatrix} + 0 \\ + 0.44 + \end{pmatrix}\\ +\end{align*} +In der Abbildung \ref{ifs:farncolor} sehen wir die vier Transformationen farblich dargestellt. +$S_1$ \begin{figure} \label{ifs:farn} \centering diff --git a/buch/papers/ifs/teil3.tex b/buch/papers/ifs/teil3.tex index c3e8a65..fa4130b 100644 --- a/buch/papers/ifs/teil3.tex +++ b/buch/papers/ifs/teil3.tex @@ -91,5 +91,17 @@ Dies wird verkürzt als Operator $W$ geschrieben. So erhalten wir ein neues Bild $f_1 = W(f_0)$. Dieses Vorgehen führen wir iteriert aus bis wir von $f_n = W(f_{n-1})$ zu $f_{n-1}$ kaum mehr einen unterschied feststellen. Die Iteration hat nun ihren Fixpunkt, das Bild, erreicht. +\subsubsection{Farbbilder} +Dieses Verfahren mit Graustufenbilder lässt sich ganz einfach auf Farbbilder erweitern. +Jeder Pixel eines Farbbildes besteht aus einem Rot, Grün und Blauwert (RGB). +Teilt man ein Bild in die drei Farbkanäle auf, das heisst, es wird nur noch ein Farbwert benutzt, erhält man drei Bilder, welche wie ein Graustufenbild sind. +Nun wendet man auf jeden dieser Farbkanalbilder den Algorithmus an, und fügt nach der Rekonstruktion die Kanäle wieder zusammen. + +\subsubsection{Performance des Verfahren} +Dieser Grundalgorithmus der Fraktalen Bildkompression ist offensichtlich recht langsam und skaliert auch schlecht mit grösseren Bilder. +Man kann die Laufzeit zwar verbessern indem man die Domain-Blöcke auch disjunkt macht, und für weniger detailreiche Bilder ein grösseres $b$ wählt, jedoch wird er auch so nie so schnell wie zum Beispiel das jpeg verfahren. + +\subsection{Beispiel} +Kommen wir nun zu einem Beispiel TODO Bilder Beispiel TODO Performance und Kompressonsverhältnis -- cgit v1.2.1 From 6b86c10028987f4e08ca3e25ac13291f256375fa Mon Sep 17 00:00:00 2001 From: Alain Date: Tue, 8 Jun 2021 14:53:07 +0200 Subject: Barnsley Farn & Kompression bsp --- buch/papers/ifs/images/faroe.png | Bin 0 -> 987 bytes buch/papers/ifs/images/faroe0.PNG | Bin 0 -> 80239 bytes buch/papers/ifs/images/faroe1.PNG | Bin 0 -> 104146 bytes buch/papers/ifs/images/faroe5.PNG | Bin 0 -> 73790 bytes buch/papers/ifs/images/original.png | Bin 0 -> 138885 bytes buch/papers/ifs/images/rapperswil.png | Bin 0 -> 851 bytes buch/papers/ifs/images/rapperswil0.PNG | Bin 0 -> 66375 bytes buch/papers/ifs/images/rapperswil001.PNG | Bin 0 -> 93116 bytes buch/papers/ifs/images/rapperswil01.PNG | Bin 0 -> 81696 bytes buch/papers/ifs/images/rapperswil04.PNG | Bin 0 -> 60921 bytes buch/papers/ifs/images/rapperswil1.PNG | Bin 0 -> 82594 bytes buch/papers/ifs/images/rapperswil4.PNG | Bin 0 -> 60837 bytes buch/papers/ifs/images/zurich.png | Bin 0 -> 71780 bytes buch/papers/ifs/teil2.tex | 19 +++++++++++++- buch/papers/ifs/teil3.tex | 42 ++++++++++++++++++++++++++++--- 15 files changed, 57 insertions(+), 4 deletions(-) create mode 100644 buch/papers/ifs/images/faroe.png create mode 100644 buch/papers/ifs/images/faroe0.PNG create mode 100644 buch/papers/ifs/images/faroe1.PNG create mode 100644 buch/papers/ifs/images/faroe5.PNG create mode 100644 buch/papers/ifs/images/original.png create mode 100644 buch/papers/ifs/images/rapperswil.png create mode 100644 buch/papers/ifs/images/rapperswil0.PNG create mode 100644 buch/papers/ifs/images/rapperswil001.PNG create mode 100644 buch/papers/ifs/images/rapperswil01.PNG create mode 100644 buch/papers/ifs/images/rapperswil04.PNG create mode 100644 buch/papers/ifs/images/rapperswil1.PNG create mode 100644 buch/papers/ifs/images/rapperswil4.PNG create mode 100644 buch/papers/ifs/images/zurich.png (limited to 'buch/papers') diff --git a/buch/papers/ifs/images/faroe.png b/buch/papers/ifs/images/faroe.png new file mode 100644 index 0000000..183702a Binary files /dev/null and b/buch/papers/ifs/images/faroe.png differ diff --git a/buch/papers/ifs/images/faroe0.PNG b/buch/papers/ifs/images/faroe0.PNG new file mode 100644 index 0000000..7396ed3 Binary files /dev/null and b/buch/papers/ifs/images/faroe0.PNG differ diff --git a/buch/papers/ifs/images/faroe1.PNG b/buch/papers/ifs/images/faroe1.PNG new file mode 100644 index 0000000..b2aff49 Binary files /dev/null and b/buch/papers/ifs/images/faroe1.PNG differ diff --git a/buch/papers/ifs/images/faroe5.PNG b/buch/papers/ifs/images/faroe5.PNG new file mode 100644 index 0000000..50f9564 Binary files /dev/null and b/buch/papers/ifs/images/faroe5.PNG differ diff --git a/buch/papers/ifs/images/original.png b/buch/papers/ifs/images/original.png new file mode 100644 index 0000000..2932af1 Binary files /dev/null and b/buch/papers/ifs/images/original.png differ diff --git a/buch/papers/ifs/images/rapperswil.png b/buch/papers/ifs/images/rapperswil.png new file mode 100644 index 0000000..62a3564 Binary files /dev/null and b/buch/papers/ifs/images/rapperswil.png differ diff --git a/buch/papers/ifs/images/rapperswil0.PNG b/buch/papers/ifs/images/rapperswil0.PNG new file mode 100644 index 0000000..3eba43a Binary files /dev/null and b/buch/papers/ifs/images/rapperswil0.PNG differ diff --git a/buch/papers/ifs/images/rapperswil001.PNG b/buch/papers/ifs/images/rapperswil001.PNG new file mode 100644 index 0000000..7015fe4 Binary files /dev/null and b/buch/papers/ifs/images/rapperswil001.PNG differ diff --git a/buch/papers/ifs/images/rapperswil01.PNG b/buch/papers/ifs/images/rapperswil01.PNG new file mode 100644 index 0000000..067b08a Binary files /dev/null and b/buch/papers/ifs/images/rapperswil01.PNG differ diff --git a/buch/papers/ifs/images/rapperswil04.PNG b/buch/papers/ifs/images/rapperswil04.PNG new file mode 100644 index 0000000..7e946fa Binary files /dev/null and b/buch/papers/ifs/images/rapperswil04.PNG differ diff --git a/buch/papers/ifs/images/rapperswil1.PNG b/buch/papers/ifs/images/rapperswil1.PNG new file mode 100644 index 0000000..6c085db Binary files /dev/null and b/buch/papers/ifs/images/rapperswil1.PNG differ diff --git a/buch/papers/ifs/images/rapperswil4.PNG b/buch/papers/ifs/images/rapperswil4.PNG new file mode 100644 index 0000000..56d1331 Binary files /dev/null and b/buch/papers/ifs/images/rapperswil4.PNG differ diff --git a/buch/papers/ifs/images/zurich.png b/buch/papers/ifs/images/zurich.png new file mode 100644 index 0000000..bb70f7d Binary files /dev/null and b/buch/papers/ifs/images/zurich.png differ diff --git a/buch/papers/ifs/teil2.tex b/buch/papers/ifs/teil2.tex index 5e36f97..d25004f 100644 --- a/buch/papers/ifs/teil2.tex +++ b/buch/papers/ifs/teil2.tex @@ -177,7 +177,24 @@ Wie man schnell erkennen kann, besteht der Farn aus Blättern, welche eine gross \end{pmatrix}\\ \end{align*} In der Abbildung \ref{ifs:farncolor} sehen wir die vier Transformationen farblich dargestellt. -$S_1$ + +$S_1$ erstellt den Stiel des Farnblattes (rot). +Die Transformation bildet das Gesamte Blatt auf die Y-Achse ab. +$S_2$ (grün) erstellt den Hauptteil des Farnes. +Sie verkleinert und dreht das gesamte Bild und stellt es auf das Ende des Stiels aus $S_1$. +$S_3$ bildet das gesamte Blatt auf das blaue Teilblatt unten Links ab. +$S_4$ Spiegelt das Blatt und bildet es auf das magentafarbene Teilblatt ab. + +Wir führen im Zusammenhang mit dem Barnsley-Farn noch eine weitere Methode ein, um IFS auszuführen. +Bis jetzt wurde immer davon gesprochen, die Transformationen auf die gesamte Menge anzuwenden. +Bei komplizierteren IFS welche viele Iterationen brauchen, bis man den Attraktor erkennen kann, ist diese Methode ziemlich rechenintensiv. +Eine Alternative ist das Chaos-Game. +Bei dieser Methode werden die Transformationen nicht auf die Menge angewendet, sondern nur auf einen einzelnen Punkt. +Der Startpunkt kann dabei ein beliebiger Punkt in $E$ sein. +Es wird bei jedem Iterationsschritt nur eine Transformation, welche zufällig gewählt wurde, angewendet. +Da, wie wir beim Barnsley-Farn gut sehen, dass nicht jede Transformation gleich viel des Bildes ausmacht, werden diese beim Chaos-Game gewichtet. +Die Gewichtung erfolgt über den Anteil der Gesamtmasse. +Im Fall des Barnsley-Fern wird $S_1$ in $1\%$, $S_2$ in $85\%$ und $S_3 \& S_4$ in $7\%$ der Iterationen ausgeführt. \begin{figure} \label{ifs:farn} \centering diff --git a/buch/papers/ifs/teil3.tex b/buch/papers/ifs/teil3.tex index fa4130b..515fd81 100644 --- a/buch/papers/ifs/teil3.tex +++ b/buch/papers/ifs/teil3.tex @@ -102,6 +102,42 @@ Dieser Grundalgorithmus der Fraktalen Bildkompression ist offensichtlich recht l Man kann die Laufzeit zwar verbessern indem man die Domain-Blöcke auch disjunkt macht, und für weniger detailreiche Bilder ein grösseres $b$ wählt, jedoch wird er auch so nie so schnell wie zum Beispiel das jpeg verfahren. \subsection{Beispiel} -Kommen wir nun zu einem Beispiel -TODO Bilder Beispiel -TODO Performance und Kompressonsverhältnis +Kommen wir nun zu einem Beispiel. +Wir Verwenden dafür den oben beschriebenen Algorithmus. +Die Range-Blöcke wurden $4\times4$ gewählt und die Dommain dementsprechend $8\times8$. +Um etwas Zeit bei der Komprimierung zu ersparen, wurden nur disjunkte Domain-Blöcke gebraucht. +Als erstes Beispiel wählen wir das 360x360px Bild von Rapperswil in Abbildung \ref{ifs:original}. +Der Algorithmus liefert uns für jeden Range-Block die benötigten Parameter. +Mit diesen lässt sich das Bild im Anschluss wieder Rekonstruieren. + +Als Startbild wird ein mittelgraues 360x360px Bild gewählt, Abbildung \ref{ifs:bild0}. +Nun lassen wir das IFS laufen. +Wie wir in Abbildung \ref{ifs:rappirecoa} sehen, ist schon nach der ersten Iteration das Bild schon erkennbar. +Nach der fünften Iteration , Abbildung \ref{ifs:rappirecoc} gibt es fast keinen Unterschied mehr zur letzten Iteration, wir können die Rekonstruktion beenden. +\begin{figure} + \label{ifs:original} + \centering + \includegraphics[width=0.4\textwidth]{papers/ifs/images/original} + \caption{Original Bild von Rapperswil} +\end{figure} +\begin{figure} + \label{ifs:bild0} + \centering + \includegraphics[width=0.4\textwidth]{papers/ifs/images/rapperswil} + \caption{Startbild} +\end{figure} + +\begin{figure} + \label{ifs:rappireco} + \centering + \subfigure[]{ + \label{ifs:rappirecoa} + \includegraphics[width=0.32\textwidth]{papers/ifs/images/rapperswil01}} + \subfigure[]{ + \label{ifs:rappirecob} + \includegraphics[width=0.32\textwidth]{papers/ifs/images/rapperswil001}} + \subfigure[]{ + \label{ifs:rappirecoc} + \includegraphics[width=0.32\textwidth]{papers/ifs/images/rapperswil04}} + \caption{(a) 1. Iteration (b) 2. Iteration (c) 5. Iteration} +\end{figure} -- cgit v1.2.1 From 72c6e0954eb2acd262a7db6701ed1d04bb8943c5 Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Tue, 8 Jun 2021 15:34:22 +0200 Subject: created Hilfstabellen.tex, reworked codebsp.tex --- buch/papers/reedsolomon/codebsp.tex | 94 ++++++++++++++++++++++--------- buch/papers/reedsolomon/hilfstabellen.tex | 21 +++++++ 2 files changed, 87 insertions(+), 28 deletions(-) create mode 100644 buch/papers/reedsolomon/hilfstabellen.tex (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/codebsp.tex b/buch/papers/reedsolomon/codebsp.tex index 5b67c43..818078e 100644 --- a/buch/papers/reedsolomon/codebsp.tex +++ b/buch/papers/reedsolomon/codebsp.tex @@ -8,19 +8,35 @@ \rhead{Koerper Festlegen} Um die Funktionsweise eines Reed-Solomon-Codes besser zu verstehen werden wir die einzelnen Probleme und ihre Lösungen anhand eines Beispiels betrachten. -Da wir in Endlichen Körpern Rechnen werden wir zuerst solch ein Körper festlegen. Dabei müssen wir die \textcolor{red}{Definition 4.6} berücksichtigen, die besagt, dass nur Primzahlen für endliche Körper in Frage kommen. -Wir legen für unser Beispiel den endlichen Körper $q = 11$ fest. -Alle folgenden Berechnungen wurden mit den beiden Restetabellen \textcolor{red}{xx} und \textcolor{red}{yy} durchgeführt. -Aus den Tabellen folgt auch, dass uns nur die Zahlen \[\mathbb{F}_{11} = \{0,1,2,3,4,5,6,7,8,9,10\}\] zur Verfügung stehen. +Da wir in Endlichen Körpern Rechnen werden wir zuerst solch einen Körper festlegen. Dabei müssen wir die \textcolor{red}{Definition 4.6 (wie verweist man auf eine definition?)} berücksichtigen, die besagt, dass nur Primzahlen für endliche Körper in Frage kommen. +Wir legen für unser Beispiel den endlichen Körper mit $q = 11$ fest. +Zur Hilfestellung können dazu die beiden Tabellen \ref{reedsolomon:subsection:adtab} und +\ref{reedsolomon:subsection:mptab} hinzugezogen werden. Diese Tabellen enthalten sämtliche Resultate aller gültigen Operationen \textcolor{red}{(Notiz: nach meinem Wissen gibt es ja nur addition und multiplikation als gültige operationen)}, die in diesem Körper durchgeführt werden können. +Aus der Definition der Endlichen Körper (ersichtlich auch in den Tabellen) folgt, dass uns nur die Zahlen \[\mathbb{F}_{11} = \{0,1,2,3,4,5,6,7,8,9,10\}\] zur verfügung stehen und somit $11 = 0$ gelten muss. + +% OLD TEXT +%Alle folgenden Berechnungen wurden mit den beiden Restetabellen \ref{reedsolomon:subsection:adtab} und \ref{reedsolomon:subsection:mptab} durchgeführt. +%Aus den Tabellen folgt auch, dass uns nur die Zahlen \[\mathbb{F}_{11} = \{0,1,2,3,4,5,6,7,8,9,10\}\] zur Verfügung stehen. % die beiden Restetabellen von F_11 %\input{papers/reedsolomon/restetabelle1} %\input{papers/reedsolomon/restetabelle2} -Die grösse des endlichen Körpers legt auch fest, wie gross unsere Nachricht $n$ bestehend aus Nutzdatenteil und Fehlerkorrekturteil sein kann und beträgt in unserem Beispiel +Anhand der Menge uns zur Verfügung stehenden Zahlen wird auch festgelegt, wie viele Zahlen ein Nachrichtenblock $n$, bestehend aus Nutzdatenteil und Fehlerkorrekturteil, umfassen kann. +Der Nachrichtenblock im Beispiel besteht aus \[ -n = q - 1 = 10 \text{ Zahlen}. +n = q - 1 = 10 \text{ Zahlen}, \] +wobei die null weggelassen wird. Wenn wir versuchen würden, mit der null zu codieren, so stellen wir fest, dass wir wieder null an der gleichen Stelle erhalten und somit wäre die Codierung nicht eindeutig. + +% Notes +%Da bei allen Codes, die codiert werden wird an der gleichen Stelle eine Nullstelle auftreten. + +% Old Text +%Die grösse des endlichen Körpers legt auch fest, wie gross unsere Nachricht $n$ bestehend aus Nutzdatenteil und Fehlerkorrekturteil sein kann und beträgt in unserem Beispiel +%\[ +%n = q - 1 = 10 \text{ Zahlen}. +%\] Im nächsten Schritt bestimmen wir, wie viele Fehler $t$ maximal während der Übertragung auftreten dürfen, damit wir sie noch korrigieren können. Unser Beispielcode sollte in der Lage sein @@ -29,41 +45,63 @@ t = 2 \] Fehlerstellen korrigieren zu können. -Die Grösse des Nutzdatenteils hängt von der Grösse der Nachricht sowie der Anzahl der Fehlerkorrekturstellen. Je robuster der Code sein muss, desto weniger Platz für Nutzdaten $k$ bleibt in der Nachricht übrig. +Die Grösse des Nutzdatenteils hängt von der Grösse des Nachrichtenblocks sowie der Anzahl der Fehlerkorrekturstellen ab. Je robuster der Code sein muss, desto weniger Platz für Nutzdaten $k$ bleibt in der Nachricht übrig. Bei maximal 2 Fehler können wir noch \[ k = n - 2t = 6\text{ Zahlen} \] übertragen. -Zusammenfassend haben wir einen Codeblock mit der Länge von 10 Zahlen definiert, der 6 Zahlen als Nutzlast beinhaltet und in der Lage ist aus 2 fehlerhafte Stellen im Block die ursprünglichen Nutzdaten rekonstruieren kann. Zudem werden wir im weiteren feststellen, dass dieser Code maximal 4 Fehlerstellen erkennen, diese aber nicht rekonstruieren kann. +Zusammenfassend haben wir einen Nachrichtenblock mit der Länge von 10 Zahlen definiert, der 6 Zahlen als Nutzlast beinhaltet und in der Lage ist aus 2 fehlerhafte Stellen im Block die ursprünglichen Nutzdaten zu rekonstruieren. Zudem werden wir im weiteren feststellen, dass dieser Code maximal vier Fehlerstellen erkennen, diese aber nicht rekonstruieren kann. Wir legen nun die Nachricht \[ m = [0,0,0,0,4,7,2,5,8,1] \] -fest, die wir gerne an einen Empfänger übertragen möchten, wobei die vorderen vier Nullstellen für die Fehlerkorrektur zuständig sind. -Die Nachricht können wir auch als Polynom +fest, die wir gerne an einen Empfänger übertragen möchten, wobei die vorderen vier Stellen für die Fehlerkorrektur zuständig sind. +Solange diese Stellen vor dem Codieren und nach dem Decodieren den Wert null haben, so ist die Nachricht Fehlerfrei übertragen worden. + +Da wir in den folgenden Abschnitten mit Polynomen arbeiten, stellen wir die Nachicht auch noch als Polynom \[ m(X) = 4X^5 + 7X^4 + 2X^3 + 5X^2 + 8X + 1 \] -darstellen. +dar. + +% Old Text +%Die Nachricht können wir auch als Polynom +%\[ +%m(X) = 4X^5 + 7X^4 + 2X^3 + 5X^2 + 8X + 1 +%\] +%darstellen. \subsection{Der Ansatz der diskreten Fouriertransformation \label{reedsolomon:subsection:diskFT}} -In einem vorherigen Kapitel (???) haben wir schon einmal die diskrete Fouriertransformation zum Codieren einer Nachricht verwendet. In den endlichen Körpern wird dies jedoch nicht gelingen, da die Eulerische Zahl $\mathrm{e}$ in $\mathbb{F}_{11}$ nicht existiert. -Wir suchen also eine Zahl $a^i$, die in endlichen Körpern existiert und den gesamten Zahlenbereich von $\mathbb{F}_{11}$ abdecken kann. -Dazu schreiben wir +In einem vorherigen Kapitel \textcolor{red}{(???)} haben wir schon einmal die diskrete Fouriertransformation zum Codieren einer Nachricht verwendet. In den endlichen Körpern wird dies jedoch nicht gelingen, da die Eulerische Zahl $e$ in endlichen Körpern nicht existiert. +Wir legen deshalb die Zahl $a$ fest. Diese Zahl soll die gleichen aufgaben haben, wie $e^{\frac{j}{2 \pi}}$ in der Diskreten Fouriertransformation, nur mit dem Unterschied, dass $a$ in $\mathbb{F}_{11}$ existiert. Dazu soll $a$ den gesamten Zahlenbereich von $\mathbb{F}_{11}$ abdecken, um \[ \mathbb{F}_{11} = \{0,1,2,3,4,5,6,7,8,9,10\} \] -um in +in \[ \mathbb{Z}_{11}\setminus\{0\} = \{a^0, a^1, a^2, a^3, a^4, a^5, a^6, a^7, a^8, a^9\}. \] - -Wenn wir alle möglichen Werte für $a$ einsetzen, also +umzuschreiben. + +Wenn wir jetzt sämtliche Zahlen von $\mathbb{F}_{11}$ in $a$ einsetzen + +% Old Text +%Wir suchen also eine Zahl $a$, die in endlichen Körpern existiert und den gesamten Zahlenbereich von $\mathbb{F}_{11}$ abdecken kann. +%Dazu schreiben wir +%\[ +%\mathbb{F}_{11} = \{0,1,2,3,4,5,6,7,8,9,10\} +%\] +%um in +%\[ +%\mathbb{Z}_{11}\setminus\{0\} = \{a^0, a^1, a^2, a^3, a^4, a^5, a^6, a^7, a^8, a^9\}. +%\] +% +%Wenn wir alle möglichen Werte für $a$ einsetzen, also %\begin{align} %a = 0 : \qquad \mathbb{Z}_{11}\setminus\{0\} = \{0, 0, 0, 0, 0, 0, 0, 0, 0, 0\} \\ @@ -94,21 +132,26 @@ $a = 9 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 9, 4, 3, 5, 1, 9, $a = 10 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 10, 1, 10, 1, 10, 1, 10, 1, 10\}$ \end{tabular} \end{center} +so fällt uns auf, dass für $a$ die Zahlen $2,6,7,8$ erhalten, die tatsächlich den gesamten Zahlenraum von $\mathbb{F}_{11}$ abbilden. Solche Zahlen werden \em Primitive Einheitswurzel \em genannt. +Wenden wir diese Vorgehensweise auch für andere Endliche Körper an, so werden wir sehen, dass wir immer mindestens zwei solcher Einheitswurzel finden werden. Somit ist es uns überlassen, eine dieser Einheitswurzeln auszuwählen, mit der wir weiter rechnen wollen. -so fällt uns auf, dass die Zahlen $2,6,7,8$ tatsächlich den gesamten Zahlenraum von $\mathbb{F}_{11}$ abbilden. Solche Zahlen werden \em Primitive Einheitswurzel \em genannt. Für das Beispiel wählen wir die Zahl $a^i = 8$. Damit wir unsere Nachricht codieren können, müssen wir $8^i$ in $m(X)$ einsetzen. \begin{center} \begin{tabular}{c} - $m(8^0) = 4 \cdot 1 + 7 \cdot 1 + 2 \cdot 1 + 5 \cdot 1 + 8 \cdot 1 + 1 = 5$ \\ - $m(8^1) = 4 \cdot 8 + 7 \cdot 8 + 2 \cdot 8 + 5 \cdot 8 + 8 \cdot 8 + 1 = 3$ \\ - \vdots + $m(8^0) = 4 \cdot 1^5 + 7 \cdot 1^4 + 2 \cdot 1^3 + 5 \cdot 1^2 + 8 \cdot 1^1 + 1 = 5$ \\ + $m(8^1) = 4 \cdot 8^5 + 7 \cdot 8^4 + 2 \cdot 8^3 + 5 \cdot 8^2 + 8 \cdot 8^1 + 1 = 3$ \\ + \vdots \\ + $m(8^9) = 4 \cdot 7^5 + 7 \cdot 7^4 + 2 \cdot 7^3 + 5 \cdot 7^2 + 8 \cdot 7^1 + 1 = 4$ \end{tabular} \end{center} -Für eine elegantere Formulierung stellen wir das ganze als Matrix dar, wobei $m$ unser Nachrichtenvektor, $A$ die Transformationsmatrix und $v$ unser Übertragungsvektor ist. - + +\subsection{Allgemeine Codierung + \label{reedsolomon:subsection:algCod}} + +Für eine elegantere Formulierung stellen wir das ganze als Matrix dar, wobei $m$ unsere Nachricht, $A$ die Transformationsmatrix und $v$ unser Übertragungsvektor ist. \[ v = A \cdot m \qquad \Rightarrow \qquad v = \begin{pmatrix} 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0\\ @@ -127,13 +170,8 @@ v = A \cdot m \qquad \Rightarrow \qquad v = \begin{pmatrix} 1 \\ 8 \\ 5 \\ 2 \\ 7 \\ 4 \\ 0 \\ 0 \\ 0 \\ 0 \\ \end{pmatrix} \] - Somit bekommen wir für unseren Übertragungsvektor \[ v = [5,3,6,5,2,10,2,7,10,4], \] den wir jetzt über einen beliebigen Nachrichtenkanal versenden können. - -\textbf{NOTES} - -warum wird 0 weggelassen? diff --git a/buch/papers/reedsolomon/hilfstabellen.tex b/buch/papers/reedsolomon/hilfstabellen.tex new file mode 100644 index 0000000..10e4fd1 --- /dev/null +++ b/buch/papers/reedsolomon/hilfstabellen.tex @@ -0,0 +1,21 @@ +% +% hilfstabellen.tex +% Autor: Michael Steiner +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{$\mathbb{F}_{11}$ Hilfstabellen + \label{reedsolomon:section:hilfstabellen}} +\rhead{Hilfstabellen} + +\textbf{TODO}: gibt es eine besser darstellungsart der tabellen? (\& platzierung der subsections) + +Um das rechnen zu erleichtern findet man in diesem Abschnitt die Resultate, die bei der Addition und der Multiplikation in $\mathbb{F}_{11}$ resultieren. + +\subsection{Additionstabelle + \label{reedsolomon:subsection:adtab}} +\input{papers/reedsolomon/restetabelle1.tex} + +\subsection{Multiplikationstabelle + \label{reedsolomon:subsection:mptab}} +\input{papers/reedsolomon/restetabelle2.tex} \ No newline at end of file -- cgit v1.2.1 From d408309e04a27315a2ce8788872095334dbea183 Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Tue, 8 Jun 2021 17:33:56 +0200 Subject: updated codebsp.tex and decohnefehler.tex --- buch/papers/reedsolomon/codebsp.tex | 24 ++++++++------ buch/papers/reedsolomon/decohnefehler.tex | 54 ++++++++++++++++++------------- 2 files changed, 46 insertions(+), 32 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/codebsp.tex b/buch/papers/reedsolomon/codebsp.tex index 818078e..262297e 100644 --- a/buch/papers/reedsolomon/codebsp.tex +++ b/buch/papers/reedsolomon/codebsp.tex @@ -87,9 +87,6 @@ in \mathbb{Z}_{11}\setminus\{0\} = \{a^0, a^1, a^2, a^3, a^4, a^5, a^6, a^7, a^8, a^9\}. \] umzuschreiben. - -Wenn wir jetzt sämtliche Zahlen von $\mathbb{F}_{11}$ in $a$ einsetzen - % Old Text %Wir suchen also eine Zahl $a$, die in endlichen Körpern existiert und den gesamten Zahlenbereich von $\mathbb{F}_{11}$ abdecken kann. %Dazu schreiben wir @@ -102,7 +99,6 @@ Wenn wir jetzt sämtliche Zahlen von $\mathbb{F}_{11}$ in $a$ einsetzen %\] % %Wenn wir alle möglichen Werte für $a$ einsetzen, also - %\begin{align} %a = 0 : \qquad \mathbb{Z}_{11}\setminus\{0\} = \{0, 0, 0, 0, 0, 0, 0, 0, 0, 0\} \\ %a = 1 : \qquad \mathbb{Z}_{11}\setminus\{0\} = \{1, 1, 1, 1, 1, 1, 1, 1, 1, 1\} \\ @@ -117,6 +113,10 @@ Wenn wir jetzt sämtliche Zahlen von $\mathbb{F}_{11}$ in $a$ einsetzen %a = 10 : \qquad \mathbb{Z}_{11}\setminus\{0\} = \{1, 10, 1, 10, 1, 10, 1, 10, 1, 10\} %\end{align} +\subsubsection{Die primitiven Einheitswurzeln + \label{reedsolomon:subsection:primsqrt}} + +Wenn wir jetzt sämtliche Zahlen von $\mathbb{F}_{11}$ in $a$ einsetzen \begin{center} \begin{tabular}{c r c l} %$a = 0 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{0, 0, 0, 0, 0, 0, 0, 0, 0, 0\}$ \\ @@ -133,11 +133,15 @@ $a = 10 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 10, 1, 10, 1, 10, \end{tabular} \end{center} so fällt uns auf, dass für $a$ die Zahlen $2,6,7,8$ erhalten, die tatsächlich den gesamten Zahlenraum von $\mathbb{F}_{11}$ abbilden. Solche Zahlen werden \em Primitive Einheitswurzel \em genannt. -Wenden wir diese Vorgehensweise auch für andere Endliche Körper an, so werden wir sehen, dass wir immer mindestens zwei solcher Einheitswurzel finden werden. Somit ist es uns überlassen, eine dieser Einheitswurzeln auszuwählen, mit der wir weiter rechnen wollen. +Wenden wir diese Vorgehensweise auch für andere Endliche Körper an, so werden wir sehen, dass wir immer mindestens zwei solcher Einheitswurzel finden werden. Somit ist es uns überlassen, eine dieser Einheitswurzeln auszuwählen, mit der wir weiter rechnen wollen. Für das Beispiel wählen wir die Zahl $a^i = 8$. -Für das Beispiel wählen wir die Zahl $a^i = 8$. -Damit wir unsere Nachricht codieren können, müssen wir $8^i$ in $m(X)$ einsetzen. +\subsubsection{Bildung einer Transformationsmatrix + \label{reedsolomon:subsection:transMat}} +Mit der Wahl einer Einheitswurzel ist es uns jetzt möglich, unsere Nachricht zu Codieren. Daraus sollen wir dann einen Übertragungsvektor $v$ erhalten, den wir an den Empfänger schicken können. Für die Codierung müssen wir alle $a^i$ in das Polynom $m(X)$ einsetzen. Da wir $a^i = 8^i$ gewählt haben ergibt sich daraus +% +%Damit wir unsere Nachricht codieren können, müssen wir $8^i$ in $m(X)$ einsetzen. +% \begin{center} \begin{tabular}{c} $m(8^0) = 4 \cdot 1^5 + 7 \cdot 1^4 + 2 \cdot 1^3 + 5 \cdot 1^2 + 8 \cdot 1^1 + 1 = 5$ \\ @@ -146,12 +150,12 @@ Damit wir unsere Nachricht codieren können, müssen wir $8^i$ in $m(X)$ einsetz $m(8^9) = 4 \cdot 7^5 + 7 \cdot 7^4 + 2 \cdot 7^3 + 5 \cdot 7^2 + 8 \cdot 7^1 + 1 = 4$ \end{tabular} \end{center} - +unser Übertragungsvektor. Um das ganze noch ein wenig übersichtlicher zu gestalten können wir die Polynome zu einer Matrix zusammenfassen und bildet so unsere Transformationsmatrix $A$. \subsection{Allgemeine Codierung \label{reedsolomon:subsection:algCod}} -Für eine elegantere Formulierung stellen wir das ganze als Matrix dar, wobei $m$ unsere Nachricht, $A$ die Transformationsmatrix und $v$ unser Übertragungsvektor ist. +Für die Codierung benötigen wir die Nachricht $m$, die Codiert werden soll sowie die Transformationsmatrix $A$. Daraus erhalten wir den Übertragungsvektor $v$. Setzen wir die Zahlen aus dem Beispiel ein erhalten wir folgende Darstellung. \[ v = A \cdot m \qquad \Rightarrow \qquad v = \begin{pmatrix} 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0\\ @@ -170,7 +174,7 @@ v = A \cdot m \qquad \Rightarrow \qquad v = \begin{pmatrix} 1 \\ 8 \\ 5 \\ 2 \\ 7 \\ 4 \\ 0 \\ 0 \\ 0 \\ 0 \\ \end{pmatrix} \] -Somit bekommen wir für unseren Übertragungsvektor +Für unseren Übertragungsvektor resultiert \[ v = [5,3,6,5,2,10,2,7,10,4], \] diff --git a/buch/papers/reedsolomon/decohnefehler.tex b/buch/papers/reedsolomon/decohnefehler.tex index 6ca577a..3b709f3 100644 --- a/buch/papers/reedsolomon/decohnefehler.tex +++ b/buch/papers/reedsolomon/decohnefehler.tex @@ -3,41 +3,50 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Decodierung ohne Fehler +\section{Decodierung: Ansatz ohne Fehler \label{reedsolomon:section:decohnefehler}} \rhead{fehlerlose rekonstruktion} -Im ersten Teil zur Decodierung des Übertragungsvektor betrachten wir den Übertragungskanal als fehlerfrei. -Wir erhalten also unseren Übertragungsvektor + +In diesem Abschnitt betrachten wie die Überlegung, wie wir auf der Empfängerseite die Nachricht aus dem empfangenen Übertragungsvektor erhalten. Nach einer einfachen Überlegung müssen wir den Übertragungsvektor decodieren, was auf den ersten Blick nicht allzu kompliziert sein sollte, solange wir davon ausgehen können, dass es während der Übertragung keine Fehler gegeben hat. Wir betrachten deshalb den Übertragungskanal als fehlerfrei. + +Der Übertragungsvektor empfangen wir also als \[ v = [5,3,6,5,2,10,2,7,10,4]. \] - -Gesucht ist nun einen Weg, mit dem wir auf unseren Nachrichtenvektor zurückrechnen können. -Ein banaler Ansatz ist das Invertieren der Glechung +% Old Text +%Im ersten Teil zur Decodierung des Übertragungsvektor betrachten wir den Übertragungskanal als fehlerfrei. +%Wir erhalten also unseren Übertragungsvektor +%\[ +%v = [5,3,6,5,2,10,2,7,10,4]. +%\] +Nach einem banalen Ansatz ist die Decodierung die Inverse der Codierung. Dank der Matrixschreibweise lässt sich dies relativ einfach umsetzen. +% Old Text +%Gesucht ist nun einen Weg, mit dem wir auf unseren Nachrichtenvektor zurückrechnen können. +%Ein banaler Ansatz ist das Invertieren der Glechung \[ -v = A \cdot m \qquad \Rightarrow \qquad m = A^{-1} \cdot v. +v = A \cdot m \qquad \Rightarrow \qquad m = A^{-1} \cdot v \] - -Nur stellt sich dann die Frage, wie wir auf die Inverse der Matix $A$ kommen. +Nur stellt sich jetzt die Frage, wie wir die Inverse von $A$ berechnen. Dazu können wir wiederum den Ansatz der Fouriertransformation uns zur Hilfe nehmen, jedoch betrachten wir jetzt deren Inverse. Definiert ist sie als \[ F(\omega) = \int_{-\infty}^{\infty} f(t) \mathrm{e}^{-j\omega t} dt \qquad \Rightarrow \qquad \mathfrak{F}^{-1}(F(\omega)) = f(t) = \frac{1}{2 \pi} \int_{-\infty}^{\infty} F(\omega) \mathrm{e}^{j \omega t} d\omega. \] - -In unserem Fall suchen wir also eine inverse für die Primitive Einheitswurzel $a$, also +Damit beschäftigen wir uns im Abschnitt \ref{reedsolomon:subsection:algdec} weiter, konkret suchen wir momentan aber eine Inverse für unsere primitive Einheitswurzel $a$. \[ -8^1 \qquad \Rightarrow \qquad 8^{-1}. +8^1 \qquad \rightarrow \qquad 8^{-1} \] +Mit einem solchen Problem haben wir uns bereits in Abschnitt \ref{buch:section:euklid} befasst und so den euklidischen Algorithmus kennengelernt, den wir auf unseren Fall anwenden können. -Im Abschnitt \textcolor{red}{4.1} haben wir den euklidischen Algorithmus kennengelernt, den wir auf unseren Fall anwenden können. +% Old Text +%Im Abschnitt \textcolor{red}{4.1} haben wir den euklidischen Algorithmus kennengelernt, den wir auf unseren Fall anwenden können. -\subsection{Der Euklidische Algorithmus -\label{reedsolomon:subsection:eukAlgo}} +\subsection{Inverse der primitiven Einheitswurzel +\label{reedsolomon:subsection:invEinh}} -Die Funktionsweise des euklidischen Algorithmus ist im Kapitel \textcolor{red}{4.1} ausführlich beschrieben. -Für unsere Anwendung wählen wir die Parameter $a_i = 8$ und $b_i = 11$. +Die Funktionsweise des euklidischen Algorithmus ist im Kapitel \ref{buch:section:euklid} ausführlich beschrieben. +Für unsere Anwendung wählen wir die Parameter $a = 8$ und $b = 11$ ($\mathbb{F}_{11}$). Daraus erhalten wir \begin{center} @@ -67,20 +76,21 @@ Daraus erhalten wir \end{tabular} \end{center} +als Inverse der primitiven Einheitswurzel. Die inverse Transformationsmatrix $A^{-1}$ bilden wir indem wir jetzt die inverse primitive Einheitswurzel anstelle der primitiven Einheitswurzel in die Matrix einsetzen. -als Inverse der Primitiven Einheitswurzel. +\subsection{Allgemeine Decodierung + \label{reedsolomon:subsection:algdec}} -Nun haben wir fast alles für die Rücktransformation beisammen. Wie auch bei der Inversen Fouriertransformation haben wir nun einen Vorfaktor +Wir haben jetzt fast alles für eine erfolgreiche Rücktransformation beisammen. Wir haben aber noch nicht alle Aspekte der inversen diskreten Fouriertransformation befolgt, so fehlt uns noch einen Vorfaktor \[ m = \textcolor{red}{s} \cdot A^{-1} \cdot v \] den wir noch bestimmen müssen. -Glücklicherweise lässt der sich analog wie bei der Inversen Fouriertransformation bestimmen und beträgt +Glücklicherweise lässt der sich analog wie bei der inversen diskreten Fouriertransformation bestimmen und beträgt \[ s = \frac{1}{10}. \] -Da $\frac{1}{10} = 10^{-1}$ entspricht können wir $s$ ebenfalls mit dem euklidischen Algorithmus bestimmen und stellen fest, dass $10^{-1} = 10$ ergibt. -Somit lässt sich der Nachrichtenvektor einfach bestimmen mit +Da $\frac{1}{10} = 10^{-1}$ entspricht können wir $s$ ebenfalls mit dem euklidischen Algorithmus bestimmen und stellen fest, dass $10^{-1} = 10$ in $\mathbb{F}_{11}$ ergibt. Somit lässt sich der Nachrichtenvektor einfach bestimmen mit \[ m = 10 \cdot A^{-1} \cdot v \qquad \Rightarrow \qquad m = 10 \cdot \begin{pmatrix} 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0\\ -- cgit v1.2.1 From 73d5c3d4df0f73e96c1bac2ae1ce3b4dfcdc9d90 Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Thu, 10 Jun 2021 12:23:57 +0200 Subject: updated a lot --- buch/papers/reedsolomon/decmitfehler.tex | 292 +++++++++++++++++++--------- buch/papers/reedsolomon/endlichekoerper.tex | 6 +- buch/papers/reedsolomon/main.tex | 7 + buch/papers/reedsolomon/references.bib | 69 ++++--- buch/papers/reedsolomon/rekonstruktion.tex | 33 ++-- 5 files changed, 275 insertions(+), 132 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/decmitfehler.tex b/buch/papers/reedsolomon/decmitfehler.tex index 923c1c5..db6e586 100644 --- a/buch/papers/reedsolomon/decmitfehler.tex +++ b/buch/papers/reedsolomon/decmitfehler.tex @@ -3,52 +3,109 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Decodierung mit Fehler +\section{Decodierung: Ansatz mit Fehlerkorrektur \label{reedsolomon:section:decmitfehler}} \rhead{fehlerhafte rekonstruktion} -Im zweiten Teil zur Decodierung betrachten wir den Fall, dass unser Übertragungskanal nicht fehlerfrei ist. -Wir legen daher den Fehlervektor +Bisher haben wir die Decodierung unter der Bedingung durchgeführt, dass der Übertragungsvektor fehlerlos versendet und empfangen wurde. +In der realen Welt müssen wir uns jedoch damit abfinden, dass kein Übertragungskanal garantiert fehlerfrei ist und das wir früher oder später mit Fehlern rechnen müssen. +Genau für dieses Problem wurden Fehler korrigierende Codes, wie der Reed-Solomon-Code, entwickelt. +In diesem Abschnitt betrachten wir somit die Idee der Fehlerkorrektur und wie wir diese auf unser Beispiel anwenden können. +Der Übertragungskanal im Beispiel weisst jetzt den Fehlervektor \[ u = [0, 0, 0, 3, 0, 0, 0, 0, 2, 0] \] -fest, den wir zu unserem Übertragungsvektor als Fehler dazu addieren und somit +auf. +Senden wir jetzt unser Übertragungsvektor $v$ durch diesen Kanal addiert sich der Fehlervektor $u$ auf unsere Übertragung und wir erhalten \begin{center} - -\begin{tabular}{c | c r } - $v$ & & $[5,3,6,5,2,10,2,7,10,4]$\\ - $u$ & $+$ & $[0,0,0,3,0,0,0,0,2,0]$\\ - \hline - $w$ & & $[5,3,6,8,2,10,2,7,1,4]$\\ -\end{tabular} - -% alternative design -%\begin{tabular}{c | c cccccccccccc } -% $v$ & & $[$&$5,$&$3,$&$6,$&$5,$&$2,$&$10,$&$2,$&$7,$&$10,$&$4$&$]$\\ -% $u$ & $+$ & $[$&$0,$&$0,$&$0,$&$3,$&$0,$&$0,$&$0,$&$0,$&$2,$&$0$&$]$\\ + + \begin{tabular}{c | c r } + $v$ & & $[5,3,6,5,2,10,2,7,10,4]$\\ + $u$ & $+$ & $[0,0,0,3,0,0,0,0,2,0]$\\ + \hline + $w$ & & $[5,3,6,8,2,10,2,7,1,4]$\\ + \end{tabular} + + % alternative design + %\begin{tabular}{c | c cccccccccccc } + % $v$ & & $[$&$5,$&$3,$&$6,$&$5,$&$2,$&$10,$&$2,$&$7,$&$10,$&$4$&$]$\\ + % $u$ & $+$ & $[$&$0,$&$0,$&$0,$&$3,$&$0,$&$0,$&$0,$&$0,$&$2,$&$0$&$]$\\ + % \hline + % $w$ & & $[$&$5,$&$3,$&$6,$&$8,$&$2,$&$10,$&$2,$&$7,$&$1,$&$4$&$]$\\ + %\end{tabular} + +\end{center} +als neuen, fehlerbehafteten Übertragungsvektor $w$ auf der Empfängerseite. +% Old Text +%In diesem Abschnitt gehen wir genauer darauf ein, wie der Reed-Solomon-Code eine solche Feherkorrektur vornimt. +% +%In diesem Abschnitt betrachten wir das Problem, dass während der Übertragung des Übertragungsvektors von unserem Beispiel +% +% +%Zu diesem Zweck wurden Fehler korrigierende Codes entwickelt. +% +%Dieser Optimalfall kann jedoch mit keinem Übertragungskanal garantiert werden +% +% +%Im zweiten Teil zur Decodierung betrachten wir den Fall, dass unser Übertragungskanal nicht fehlerfrei ist. +%Wir legen daher den Fehlervektor +%\[ +%u = [0, 0, 0, 3, 0, 0, 0, 0, 2, 0] +%\] +%fest, den wir zu unserem Übertragungsvektor als Fehler dazu addieren und somit +% +%\begin{center} +% +%\begin{tabular}{c | c r } +% $v$ & & $[5,3,6,5,2,10,2,7,10,4]$\\ +% $u$ & $+$ & $[0,0,0,3,0,0,0,0,2,0]$\\ % \hline -% $w$ & & $[$&$5,$&$3,$&$6,$&$8,$&$2,$&$10,$&$2,$&$7,$&$1,$&$4$&$]$\\ +% $w$ & & $[5,3,6,8,2,10,2,7,1,4]$\\ %\end{tabular} - -\end{center} -als Übertragungsvektor auf der Empfängerseite erhalten. - -Wenn wir den Übertragungsvektor jetzt Rücktransformieren wie im vorherigen Kapitel erhalten wir +% +%% alternative design +%%\begin{tabular}{c | c cccccccccccc } +%% $v$ & & $[$&$5,$&$3,$&$6,$&$5,$&$2,$&$10,$&$2,$&$7,$&$10,$&$4$&$]$\\ +%% $u$ & $+$ & $[$&$0,$&$0,$&$0,$&$3,$&$0,$&$0,$&$0,$&$0,$&$2,$&$0$&$]$\\ +%% \hline +%% $w$ & & $[$&$5,$&$3,$&$6,$&$8,$&$2,$&$10,$&$2,$&$7,$&$1,$&$4$&$]$\\ +%%\end{tabular} +% +%\end{center} +%als Übertragungsvektor auf der Empfängerseite erhalten. +Wir jetzt als Empfänger wissen jedoch nicht, dass der erhaltene Übertragungsvektor jetzt fehlerbehaftet ist und werden dementsprechend den Ansatz aus Abschnitt \ref{reedsolomon:section:decohnefehler} anwenden. +Wir stellen jedoch recht schnell fest, dass am decodierten Nachrichtenblock \[ -r = [\underbrace{5,7,4,10,}_{Fehlerinfo}5,4,5,7,6,7]. +r = [\underbrace{5,7,4,10,}_{\text{Syndrom}}5,4,5,7,6,7]. \] -Im Vergleich zum vorherigen Kapitel sind die Fehlerkorrekturstellen jetzt $\neq 0$, was bedeutet, dass wir diesen Übertragungsvektor fehlerhaft empfangen haben und sich die Nachricht jetzt nicht mehr so einfach decodieren lässt. +etwas nicht in Ordnung ist, denn die vorderen vier Fehlerkorrekturstellen haben nicht mehr den Wert null. +Der Nachrichtenblock weisst jetzt ein \em Syndrom \em auf, welches anzeigt, dass der Übertragungsvektor fehlerhaft empfangen wurde. +% Old Text +%Wenn wir den Übertragungsvektor jetzt Rücktransformieren wie im vorherigen Kapitel erhalten wir +%\[ +%r = [\underbrace{5,7,4,10,}_{Fehlerinfo}5,4,5,7,6,7]. +%\] +Jetzt stellt sich natürlich die Frage, wie wir daraus den ursprünglich gesendeten Nachrichtenvektor zurückerhalten sollen. Laut der Definition über die Funktionsweise eines Reed-Solomon-Codes können wir aus den Fehlerkorrekturstellen ein ``Lokatorpolynom'' berechnen, welches die Information enthält, welche stellen innerhalb des empfangenen Übertragungsvektors fehlerhaft sind. -% warum wir die fehler suchen -Da Reed-Solomon-Codes in der Lage sind, eine Nachricht aus weniger Stellen zu rekonstruieren als wir ursprünglich haben, so müssen wir nur die Fehlerhaften Stellen finden und eliminieren, damit wir unsere Nutzdaten rekonstruieren können. -Damit stellt sich die Frage, wie wir die Fehlerstellen $e$ finden. -Dafür wählen wir einen Primitiven Ansatz mit -\begin{align} - m(X) & = 4X^5 + 7X^4 + 2X^3 + 5X^2 + 8X + 1 \\ - r(X) & = 5X^9 + 7X^8 + 4X^7 + 10X^6 + 5X^5 + 4X^4 + 5X^3 + 7X^2 + 6X + 7 \\ - e(X) & = r(X) - m(X). -\end{align} -Setzen wir jetzt unsere Einheitswurzel für $X$ ein, so erhalten wir +\subsection{Das Fehlerstellenpolynom $d(X)$ + \label{reedsolomon:subsection:fehlerpolynom}} +Bevor wir unser Lokatorpolynom berechnen können, müssen wir zuerst eine Möglichkeit finden, die Fehlerhaften von den Korrekten Stellen im Übertragungsvektor unterscheiden zu können. In einem ersten Versuch könnten wir $d$ berechnen mit +\begin{center} +\begin{tabular}{r c l} + $m(X)$ & $=$ & $4X^5 + 7X^4 + 2X^3 + 5X^2 + 8X + 1$ \\ + $r(X)$ & $=$ & $5X^9 + 7X^8 + 4X^7 + 10X^6 + 5X^5 + 4X^4 + 5X^3 + 7X^2 + 6X + 7$ \\ + $d(X)$ & $=$ & $r(X) - m(X)$. +\end{tabular} +\end{center} +TODO (rewrite sentence): Dies wird uns zwar andere sorgen wegen $m(X)$ bereiten, \textcolor{red}{die werden wir jedoch zu einem späteren Zeitpunkt betrachten (todo: verweis auf kapitel?)}. +Setzen wir jetzt noch unsere Einheitswurzel aus dem Beispiel ein so erhalten wir +% Old Text +%\begin{align} +% m(X) & = 4X^5 + 7X^4 + 2X^3 + 5X^2 + 8X + 1 \\ +% r(X) & = 5X^9 + 7X^8 + 4X^7 + 10X^6 + 5X^5 + 4X^4 + 5X^3 + 7X^2 + 6X + 7 \\ +% e(X) & = r(X) - m(X). +%\end{align} +%Setzen wir jetzt unsere Einheitswurzel für $X$ ein, so erhalten wir \begin{center} \begin{tabular}{c c c c c c c c c c c} \hline @@ -56,80 +113,137 @@ Setzen wir jetzt unsere Einheitswurzel für $X$ ein, so erhalten wir \hline $r(a^{i})$& $5$& $3$& $6$& $8$& $2$& $10$& $2$& $7$& $1$& $4$\\ $m(a^{i})$& $5$& $3$& $6$& $5$& $2$& $10$& $2$& $7$& $10$& $4$\\ - $e(a^{i})$& $0$& $0$& $0$& $3$& $0$& $0$& $0$& $0$& $2$& $0$\\ + $d(a^{i})$& $0$& $0$& $0$& $3$& $0$& $0$& $0$& $0$& $2$& $0$\\ \hline \end{tabular} \end{center} -und damit die Information, dass an allen Stellen, die nicht Null sind, Fehler enthalten. -Um jetzt alle nicht Nullstellen zu finden, wenden wir den Satz von Fermat an. +und damit die Information, dass allen Stellen, die nicht Null sind, Fehler enthalten. +Aus der Tabelle lesen wir, das in unserem Beispiel die Fehler an der Stelle drei und acht zu finden sind. + +Für das einfache Bestimmen von Hand mag dies ja noch ausreichen, jedoch können wir mit diesen Stellen nicht das Lokatorpolynom bestimmen, denn dafür bräuchten wir alle Nullstellen, an denen es Fehler gegeben hat (also sozusagen genau das umgekehrte). Um dies zu erreichen wenden wir eine andere Herangehensweise und nehmen uns den Satz von Fermat sowie den kleinsten gemeinsamen Teiler zur Hilfe. -\subsection{Der Satz von Fermat -\label{reedsolomon:subsection:fermat}} -Der Satz von Fermat besagt, dass für +\subsection{Mit dem grössten gemeinsamen Teiler auf Nullstellenjagd +\label{reedsolomon:subsection:ggT}} + +Zuerst betrachten wir mal den Satz von Fermat deren Funktionsweise wir in Abschnitt \ref{buch:section:galoiskoerper} kennengelernt haben. Der besagt, dass für \[ f(X) = X^{q-1} -1 = 0 \] -gilt, egal was wir für $q$ einsetzen. - -Für unser Beispiel erhalten wir +wobei dies für jedes $q$ gilt. Setzen wir also das $q$ von unserem Beispiel ein \[ f(X) = X^{10}-1 = 0 \qquad \text{für } X = \{1,2,3,4,5,6,7,8,9,10\} \] -und können $f(X)$ auch umschreiben in +und stellen dies als Nullstellenform (\textcolor{red}{richtiger name für die Schreibweise?}) dar. So ergibt sich die Darstellung \[ f(X) = (X-a^0)(X-a^1)(X-a^2)(X-a^3)(X-a^4)(X-a^5)(X-a^6)(X-a^7)(X-a^8)(X-a^9). \] Zur Überprüfung können wir unsere Einheitswurzel in $a$ einsetzen und werden sehen, dass wir für $f(X) = 0$ erhalten werden. -Nach der gleichen Überlegung können wir jetzt auch $e(X)$ darstellen als + +Wir können jetzt auch $d(X)$ nach der gleichen Überlegung darstellen als \[ -e(X) = (X-a^0)(X-a^1)(X-a^2) \qquad \qquad (X-a^4)(X-a^5)(X-a^6)(X-a^7) \qquad \qquad (X-a^9) \cdot p(x), +d(X) = (X-a^0)(X-a^1)(X-a^2)\textcolor{gray!40}{(X-a^3)}(X-a^4)(X-a^5)(X-a^6)(X-a^7)\textcolor{gray!40}{(X-a^8)}(X-a^9) \cdot p(x), \] -wobei $p(X)$ das Restpolynom ist und die Fehlerstellen beinhaltet. -Wenn wir jetzt den grössten gemeinsamen Teiler von $f(X)$ und $e(X)$ berechnen, so erhalten wir mit +wobei diese Darstellung nicht mehr alle Nullstellen umfasst wie es noch in $f(X)$ der Fall war. +Dies liegt daran, dass wir ja zwei Fehlerstellen (grau markiert) haben, die nicht Null sind. Diese fassen wir zum Restpolynom $p(X)$ (\textcolor{red}{eventuell farblich kennzeichnen?}) zusammen. +Wenn wir jetzt den grössten gemeinsamen Teiler von $f(X)$ und $d(X)$ berechnen, so erhalten wir mit \[ -\operatorname{ggT}(f(X),e(X)) = (X-a^0)(X-a^1)(X-a^2) \qquad \qquad (X-a^4)(X-a^5)(X-a^6)(X-a^7) \qquad \qquad (X-a^9) +\operatorname{ggT}(f(X),d(X)) = (X-a^0)(X-a^1)(X-a^2)\textcolor{gray!40}{(X-a^3)}(X-a^4)(X-a^5)(X-a^6)(X-a^7)\textcolor{gray!40}{(X-a^8)}(X-a^9) \] eine Liste von Nullstellen, an denen es keine Fehler gegeben hat. -Da wir uns jedoch für eine Liste mit Nullstellen interessieren, an denen es Fehler gegeben hat berechnen wir stattdessen das kgV von $f(X)$ und $e(X)$ als +Dies scheint zuerst nicht sehr hilfreich zu sein, da wir für das Lokatorpolynom ja eine Liste der Nullstellen suchen, an denen es Fehler gegeben hat. Aus diesem Grund berechnen wir im nächsten Schritt das kleinste gemeinsame Vielfache von $f(X)$ und $d(X)$. + +%Wir werden auch feststellen, das unsere Bemühungen bisher nicht umsonst waren. + +\subsection{Mit dem kgV fehlerhafte Nullstellen finden + \label{reedsolomon:subsection:kgV}} + +Das kgV hat nämlich die Eigenschaft sämtliche Nullstellen zu finden, also nicht nur die fehlerhaften sondern auch die korrekten, was in \[ -\operatorname{kgV}(f(X),e(X)) = (X-a^0)(X-a^1)(X-a^2)(X-a^3)(X-a^4)(X-a^5)(X-a^6)(X-a^7)(X-a^8)(X-a^9) \cdot q(X). +\operatorname{kgV}(f(X),d(X)) = (X-a^0)(X-a^1)(X-a^2)(X-a^3)(X-a^4)(X-a^5)(X-a^6)(X-a^7)(X-a^8)(X-a^9) \cdot q(X). \] -Wir können das Resultat noch zerlegen in +ersichtlich ist. +Aus dem vorherigen Abschnitt wissen wir auch, dass $d(X)$ alle korrekten Nullstellen beinhaltet. Teilen wir das kgV jetzt auf in \[ -\operatorname{kgV}(f(X),e(X)) = d(X) \cdot e(X). +\operatorname{kgV}(f(X),d(X)) = d(X) \cdot l(X) \] -Somit muss $d(X)$ eine Liste von Nullstellen enthalten an denen es Fehler gegeben hat. +sollten wir für $l(X)$ eine Liste mit allen fehlerhaften Nullstellen erhalten. +Somit ist \[ -d(X) = (X-a^3)(X-a^8) +l(X) = (X-a^3)(X-a^8) \] +unser gesuchtes Lokatorpolynom. +Es scheint so als müssten wir nur noch an den besagten Stellen den Übertragungsvektor korrigieren und wir währen fertig mit der Fehlerkorrektur. +Jedoch haben wir noch ein grundlegendes Problem, dass zu beginn aufgetaucht ist, wir aber beiseite geschoben haben. Die Rede ist natürlich vom Nachrichtenvektor $m(X)$, mit dem wir in erster Linie das wichtige Fehlerstellenpolynom $d(X)$ berechnet haben. +\subsection{Der problematische Nachrichtenvektor $m(X)$ + \label{reedsolomon:subsection:nachrichtenvektor}} -und ist damit unser gesuchtes Lokatorpolynom. - -Das einzige Problem was jetzt noch bleibt ist, dass wir $e(X)$ berechnet haben aus +In Abschnitt \ref{reedsolomon:section:decmitfehler} haben wir \[ -e(X) = r(X) - m(X), +d(X) = r(X) - m(X) \] -wobei $m(X)$ auf der Empfängerseite unbekannt ist. -Es sieht danach aus, das wir diesen Lösungsansatz nicht verwenden können, da uns ein entscheidender Teil fehlt. -Bei einer näheren Betrachtung von $m(X)$ fällt uns aber auf, dass wir doch etwas über $m(X)$ wissen. -Wir kennen nämlich die ersten vier Stellen, da diese für die Fehlerkorrektur zuständig sind und daher Null sein müssen. +in Abhängigkeit von $m(X)$ berechnet. +Jedoch haben wir ausser acht gelassen, dass $m(X)$ auf der Empfängerseite nicht existiert und somit gänzlich unbekannt ist. +Es scheint so als würde dieser Lösungsansatz, den wir bisher verfolgt haben, nicht funktioniert. +Wir könnten uns höchstens noch fragen, ob wir tatsächlich nichts über den Nachrichtenvektor im Beispiel wissen. Wenn wir noch einmal den Vektor betrachten als \[ -m = [0,0,0,0,?,?,?,?,?,?] +m = [0,0,0,0,4,7,2,5,8,1] \] -An genau diesen Stellen liegt auch die Information, wo unsere Fehlerstellen liegen, was uns ermöglicht, den Teil von $e(X)$ zu berechnen, der uns auch interessiert. - -Wir können $e(X)$ also bestimmen als +fällt uns aber auf, dass wir doch etwas über diesen Vektor wissen, nämlich den Wert der ersten 2t (im Beispiel vier) stellen. +Im Normalfall sollen diese nämlich den Wert null betragen und somit sind nur die letzten k stellen (im Beispiel sechs) für uns unbekannt, dargestellt als \[ -e(X) = 5X^9 + 7X^8 + 4X^7 + 10X^6 + p(X) +m = [0,0,0,0,?,?,?,?,?,?]. \] -wobei $p(X)$ wiederum ein unbekanntes Restpolynom ist und +Wie der Zufall es so will liegt an diesen vier Stellen auch die Information, wo die Fehlerstellen liegen. Daher reicht es auch aus +% darum werden die stellen auch als fehlerkorrekturstellen bezeichnet \[ -f(X) = X^{10} - 1 = X^{10} + 10 +d(X) = 5X^9 + 7X^8 + 4X^7 + 10X^6 + p(X) \] -ist können wir so in einer ersten Instanz den grössten gemeinsamen Teiler von $f(X)$ und $e(X)$ berechnen. -Dafür nehmen wir uns wiederum den Euklidischen Algorithmus zur Hilfe und berechnen so +so zu berechnen, dass wir die wichtigen vier Stellen kennen, der Rest des Polynoms jedoch im unbekannten Restpolynom $p(X)$ enthalten ist. + +\textcolor{red}{ist das wechseln zwischen 2t,k aus dem allgemeinfall und vier,sechs aus dem beispiel zu verwirrend?} + +\subsection{Die Berechnung der Fehlerstellen + \label{reedsolomon:subsection:nachrichtenvektor}} + +Um die Fehlerstellen zu berechnen wenden wir die gleiche Vorgehensweise wie zuvor an, also zuerst den ggT, danach berechnen wir das kgV um am Ende das Lokatorpolynom zu erhalten. + +\subsubsection{Schritt 1: ggT} +Wir berechnen den ggT von $f(X)$ und $d(X)$ mit +\begin{center} +\begin{tabular}{r c l} + $f(X)$ & $=$ & $X^{10} - 1 = X^{10} + 10$ \\ + $d(X)$ & $=$ & $5X^9 + 7X^8 + 4X^7 + 10X^6 + p(X)$ +\end{tabular} +\end{center} +% +% +% +%Das einzige Problem was jetzt noch bleibt ist, dass wir $e(X)$ berechnet haben aus +%\[ +%e(X) = r(X) - m(X), +%\] +%wobei $m(X)$ auf der Empfängerseite unbekannt ist. +%Es sieht danach aus, das wir diesen Lösungsansatz nicht verwenden können, da uns ein entscheidender Teil fehlt. +%Bei einer näheren Betrachtung von $m(X)$ fällt uns aber auf, dass wir doch etwas über $m(X)$ wissen. +%Wir kennen nämlich die ersten vier Stellen, da diese für die Fehlerkorrektur zuständig sind und daher Null sein müssen. +%\[ +%m = [0,0,0,0,?,?,?,?,?,?] +%\] +%An genau diesen Stellen liegt auch die Information, wo unsere Fehlerstellen liegen, was uns ermöglicht, den Teil von $e(X)$ zu berechnen, der uns auch interessiert. +% +%Wir können $e(X)$ also bestimmen als +%\[ +%e(X) = 5X^9 + 7X^8 + 4X^7 + 10X^6 + p(X) +%\] +%wobei $p(X)$ wiederum ein unbekanntes Restpolynom ist und +%\[ +%f(X) = X^{10} - 1 = X^{10} + 10 +%\] +%ist können wir so in einer ersten Instanz den grössten gemeinsamen Teiler von $f(X)$ und $e(X)$ berechnen. +%Dafür nehmen wir uns wiederum den Euklidischen Algorithmus zur Hilfe und berechnen so +% \[ \arraycolsep=1.4pt \begin{array}{rcrcrcrcccrcrcrcrcrcrcrcrcr} @@ -151,11 +265,16 @@ Dafür nehmen wir uns wiederum den Euklidischen Algorithmus zur Hilfe und berech \] und erhalten \[ -\operatorname{ggT}(f(X),e(X)) = 6X^8 +\operatorname{ggT}(f(X),e(X)) = 6X^8. \] -Mit den Resultaten, die wir vom Rechenweg des grössten gemeinsamen Teiler erhalten haben können wir jetzt auch das kleinste Gemeinsame Vielfache berechnen. Eine detailliertere Vorgehensweise findet man in Kapitel ???. -Aus diesem erweiterten Euklidischen Algorithmus erhalten wir +\subsubsection{Schritt 2: kgV} + +Mit dem Resultat das wir vom ggT erhalten haben können wir jetzt das kgV berechnen. Dazu können wir jetzt den erweiterten Euklidischen Algorithmus verwenden, den wir in Abschnitt \ref{buch:subsection:daskgv} kennengelernt haben. +% +%Mit den Resultaten, die wir vom Rechenweg des grössten gemeinsamen Teiler erhalten haben können wir jetzt auch das kleinste Gemeinsame Vielfache berechnen. Eine detailliertere Vorgehensweise findet man in Kapitel ???. +% +%Aus diesem erweiterten Euklidischen Algorithmus erhalten wir \begin{center} \begin{tabular}{| c | c | c c |} @@ -170,28 +289,23 @@ Aus diesem erweiterten Euklidischen Algorithmus erhalten wir \end{tabular} \end{center} -und erhalten auf diesem Weg den Faktor +Daraus erhalten wir die Faktoren \[ -d(X) = 2X^2 + 5, +l(X) = 2X^2 + 5 \qquad \rightarrow \qquad l(X) = 2(X-5)(X-6). \] -den wir in +Unser gesuchtes Lokatorpolynom hat also die Form \[ -d(X) = 2(X-5)(X-6) +l(X) = (X-a^i)(X-a^j). \] -zerlegen können. -Da die unbekannten Stellen im Lokatorpolynom -\[ -d(X) = (X-a^i)(X-a^i) -\] -sind, müssen wir nur noch $i$ berechnen als +Also brauchen wir nur noch $i$ und $j$ zu berechnen und wir haben unsere gesuchten Fehlerstellen. +Diese bekommen wir recht einfach mit \begin{center} $a^i = 5 \qquad \Rightarrow \qquad i = 3$ - $a^i = 6 \qquad \Rightarrow \qquad i = 8$. + $a^j = 6 \qquad \Rightarrow \qquad j = 8$. \end{center} - -Somit erhalten wir schliesslich +Schlussendlich erhalten wir \[ d(X) = (X-a^3)(X-a^8) \] -als unser Lokatorpolynom mit den Fehlerhaften Stellen. \ No newline at end of file +als unser Lokatorpolynom mit den fehlerhaften Stellen. diff --git a/buch/papers/reedsolomon/endlichekoerper.tex b/buch/papers/reedsolomon/endlichekoerper.tex index 8ccd918..146067a 100644 --- a/buch/papers/reedsolomon/endlichekoerper.tex +++ b/buch/papers/reedsolomon/endlichekoerper.tex @@ -7,9 +7,9 @@ \label{reedsolomon:section:endlichekoerper}} \rhead{Problemstellung} -TODO: +\textcolor{red}{TODO: (warten auf den 1. Teil)} -Das rechnen in endlichen Körpern bietet einige Vorteile: +Das Rechnen in endlichen Körpern bietet einige Vorteile: \begin{itemize} \item Konkrete Zahlen: In endlichen Körpern gibt es weder rationale noch komplexe Zahlen. Zudem beschränken sich die möglichen Rechenoperationen auf das Addieren und Multiplizieren. Somit können wir nur ganze Zahlen als Resultat erhalten. @@ -20,4 +20,4 @@ Das rechnen in endlichen Körpern bietet einige Vorteile: Um jetzt eine Nachricht in den endlichen Körpern zu konstruieren legen wir fest, dass diese Nachricht aus einem Nutzdatenteil und einem Fehlerkorrekturteil bestehen muss. Somit ist die zu übertragende Nachricht immer grösser als die Daten, die wir übertragen wollen. Zudem müssen wir einen Weg finden, den Fehlerkorrekturteil so aus den Nutzdaten zu berechnen, dass wir die Nutzdaten auf der Empfängerseite wieder rekonstruieren können, sollte es zu einer fehlerhaften Übertragung kommen. -Nun stellt sich die Frage, wie wir eine Fehlerhafte Nachricht korrigieren können, ohne ihren ursprünglichen Inhalt zu kennen. Der Reed-Solomon-Code erzielt dies, indem aus dem Fehlerkorrekturteil ein sogenanntes "Lokatorpolynom" generiert werden kann. Dieses Polynom gibt dem Emfänger an, welche Stellen in der Nachricht feherhaft sind. +Nun stellt sich die Frage, wie wir eine fehlerhafte Nachricht korrigieren können, ohne ihren ursprünglichen Inhalt zu kennen. Der Reed-Solomon-Code erzielt dies, indem aus dem Fehlerkorrekturteil ein sogenanntes ``Lokatorpolynom'' generiert werden kann. Dieses Polynom gibt dem Emfänger an, welche Stellen in der Nachricht feherhaft sind. diff --git a/buch/papers/reedsolomon/main.tex b/buch/papers/reedsolomon/main.tex index a7485cd..9822d25 100644 --- a/buch/papers/reedsolomon/main.tex +++ b/buch/papers/reedsolomon/main.tex @@ -39,6 +39,13 @@ Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren \input{papers/reedsolomon/decohnefehler} \input{papers/reedsolomon/decmitfehler} \input{papers/reedsolomon/rekonstruktion} +\input{papers/reedsolomon/hilfstabellen} +%\input{papers/reedsolomon/glossar} -> geplant zur besseren orientierung +%\input{papers/reedsolomon/anwendungen} -> geplant + +\nocite{reedsolomon:weitz} +\nocite{reedsolomon:informationkommunikation} +%\nocite{reedsolomon:mendezmueller} \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/reedsolomon/references.bib b/buch/papers/reedsolomon/references.bib index 38613bd..4c1d17a 100644 --- a/buch/papers/reedsolomon/references.bib +++ b/buch/papers/reedsolomon/references.bib @@ -4,32 +4,53 @@ % (c) 2020 Autor, Hochschule Rapperswil % -@online{reedsolomon:bibtex, - title = {BibTeX}, - url = {https://de.wikipedia.org/wiki/BibTeX}, - date = {2020-02-06}, - year = {2020}, - month = {2}, - day = {6} +@online{reedsolomon:weitz, + title = {Fehlerkorrektur mit Reed-Solomon-Codes}, + url = {https://youtu.be/uOLW43OIZJ0}, + date = {2021-06-10}, + year = {2021}, + month = {6}, + day = {10} } -@book{reedsolomon:numerical-analysis, - title = {Numerical Analysis}, - author = {David Kincaid and Ward Cheney}, - publisher = {American Mathematical Society}, - year = {2002}, - isbn = {978-8-8218-4788-6}, - inseries = {Pure and applied undegraduate texts}, - volume = {2} -} +% https://link.springer.com/chapter/10.1007%2F978-3-8351-9077-1_9 -@article{reedsolomon:mendezmueller, - author = { Tabea Méndez and Andreas Müller }, - title = { Noncommutative harmonic analysis and image registration }, - journal = { Appl. Comput. Harmon. Anal.}, - year = 2019, - volume = 47, - pages = {607--627}, - url = {https://doi.org/10.1016/j.acha.2017.11.004} +@book{reedsolomon:informationkommunikation, + title = {Information und Kommunikation}, + author = {Markus Hufschmid}, + publisher = {Teubner}, + year = {2007}, + isbn = {978-3-8351-0122-7}, + inseries = {}, + volume = {1} } +% Beispiele +%@online{reedsolomon:bibtex, +% title = {BibTeX}, +% url = {https://de.wikipedia.org/wiki/BibTeX}, +% date = {2020-02-06}, +% year = {2020}, +% month = {2}, +% day = {6} +%} +% +%@book{reedsolomon:numerical-analysis, +% title = {Numerical Analysis}, +% author = {David Kincaid and Ward Cheney}, +% publisher = {American Mathematical Society}, +% year = {2002}, +% isbn = {978-8-8218-4788-6}, +% inseries = {Pure and applied undegraduate texts}, +% volume = {2} +%} +% +%@article{reedsolomon:mendezmueller, +% author = { Tabea Méndez and Andreas Müller }, +% title = { Noncommutative harmonic analysis and image registration }, +% journal = { Appl. Comput. Harmon. Anal.}, +% year = 2019, +% volume = 47, +% pages = {607--627}, +% url = {https://doi.org/10.1016/j.acha.2017.11.004} +%} \ No newline at end of file diff --git a/buch/papers/reedsolomon/rekonstruktion.tex b/buch/papers/reedsolomon/rekonstruktion.tex index 8cb7744..89a700f 100644 --- a/buch/papers/reedsolomon/rekonstruktion.tex +++ b/buch/papers/reedsolomon/rekonstruktion.tex @@ -1,24 +1,25 @@ % -% teil3.tex -- Beispiel-File für Teil 3 +% rekonstruktion.tex +% Autor: Michael Steiner % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % \section{Nachricht Rekonstruieren \label{reedsolomon:section:rekonstruktion}} \rhead{Rekonstruktion} -Im letzten Kapitel haben wir eine Möglichkeit gefunden, wie wir die Fehlerhaften Stellen lokalisieren können. +Im letzten Kapitel haben wir eine Möglichkeit gefunden, wie wir die fehlerhaften Stellen lokalisieren können. Mit diesen Stellen soll es uns nun möglich sein, aus dem fehlerhaften empfangenen Nachrichtenvektor wieder unsere Nachricht zu rekonstruieren. Das Lokatorpolynom \[ -d(X) = (X - a^3)(X-a^8) +l(X) = (X - a^3)(X-a^8) \] -markiert dabei diese Fehlerhaften Stellen im Übertragungsvektor +markiert dabei diese fehlerhaften Stellen im Übertragungsvektor \[ w = [5,3,6,8,2,10,2,7,1,4]. \] Als Ausgangslage verwenden wir die Matrix, mit der wir den Nachrichtenvektor ursprünglich codiert haben. -Unser Ziel ist es wie auch schon im Kapitel X.X (Rekonstuktion ohne Fehler) eine Möglichkeit zu finden, wie wir den Übertragungsvektor decodieren können. -Aufgrund der Fehlerstellen müssen wir aber davon ausgehen, das wir nicht mehr den gleichen Weg verfolgen können wie wir im Kapitel X.X angewendet haben. +Unser Ziel ist es wie auch schon im Abschnitt \ref{reedsolomon:section:decohnefehler} eine Möglichkeit zu finden, wie wir den Übertragungsvektor decodieren können. +Aufgrund der Fehlerstellen müssen wir aber davon ausgehen, das wir nicht mehr den gleichen Weg verfolgen können wie wir im Abschnitt \ref{reedsolomon:section:decohnefehler} angewendet haben. Wir stellen also die Matrix auf und markieren gleichzeitig die Fehlerstellen. \[ @@ -82,21 +83,21 @@ Wir kennen aber das Resultat aus den letzten vier Spalten, da wir wissen, das di \end{pmatrix} = \begin{pmatrix} - 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& \textcolor{green}{8^0}& \textcolor{green}{8^0}& \textcolor{green}{8^0}& \textcolor{green}{8^0}\\ - 8^0& 8^1& 8^2& 8^3& 8^4& 8^5& \textcolor{green}{8^6}& \textcolor{green}{8^7}& \textcolor{green}{8^8}& \textcolor{green}{8^9}\\ - 8^0& 8^2& 8^4& 8^6& 8^8& 8^{10}& \textcolor{green}{8^{12}}& \textcolor{green}{8^{14}}& \textcolor{green}{8^{16}}& \textcolor{green}{8^{18}}\\ - 8^0& 8^4& 8^8& 8^{12}& 8^{16}& 8^{20}& \textcolor{green}{8^{24}}& \textcolor{green}{8^{28}}& \textcolor{green}{8^{32}}& \textcolor{green}{8^{36}}\\ - 8^0& 8^5& 8^{10}& 8^{15}& 8^{20}& 8^{25}& \textcolor{green}{8^{30}}& \textcolor{green}{8^{35}}& \textcolor{green}{8^{40}}& \textcolor{green}{8^{45}}\\ - 8^0& 8^6& 8^{12}& 8^{18}& 8^{24}& 8^{30}& \textcolor{green}{8^{36}}& \textcolor{green}{8^{42}}& \textcolor{green}{8^{48}}& \textcolor{green}{8^{54}}\\ - 8^0& 8^7& 8^{14}& 8^{21}& 8^{28}& 8^{35}& \textcolor{green}{8^{42}}& \textcolor{green}{8^{49}}& \textcolor{green}{8^{56}}& \textcolor{green}{8^{63}}\\ - 8^0& 8^9& 8^{18}& 8^{27}& 8^{36}& 8^{45}& \textcolor{green}{8^{54}}& \textcolor{green}{8^{63}}& \textcolor{green}{8^{72}}& \textcolor{green}{8^{81}}\\ + 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& \textcolor{darkgreen}{8^0}& \textcolor{darkgreen}{8^0}& \textcolor{darkgreen}{8^0}& \textcolor{darkgreen}{8^0}\\ + 8^0& 8^1& 8^2& 8^3& 8^4& 8^5& \textcolor{darkgreen}{8^6}& \textcolor{darkgreen}{8^7}& \textcolor{darkgreen}{8^8}& \textcolor{darkgreen}{8^9}\\ + 8^0& 8^2& 8^4& 8^6& 8^8& 8^{10}& \textcolor{darkgreen}{8^{12}}& \textcolor{darkgreen}{8^{14}}& \textcolor{darkgreen}{8^{16}}& \textcolor{darkgreen}{8^{18}}\\ + 8^0& 8^4& 8^8& 8^{12}& 8^{16}& 8^{20}& \textcolor{darkgreen}{8^{24}}& \textcolor{darkgreen}{8^{28}}& \textcolor{darkgreen}{8^{32}}& \textcolor{darkgreen}{8^{36}}\\ + 8^0& 8^5& 8^{10}& 8^{15}& 8^{20}& 8^{25}& \textcolor{darkgreen}{8^{30}}& \textcolor{darkgreen}{8^{35}}& \textcolor{darkgreen}{8^{40}}& \textcolor{darkgreen}{8^{45}}\\ + 8^0& 8^6& 8^{12}& 8^{18}& 8^{24}& 8^{30}& \textcolor{darkgreen}{8^{36}}& \textcolor{darkgreen}{8^{42}}& \textcolor{darkgreen}{8^{48}}& \textcolor{darkgreen}{8^{54}}\\ + 8^0& 8^7& 8^{14}& 8^{21}& 8^{28}& 8^{35}& \textcolor{darkgreen}{8^{42}}& \textcolor{darkgreen}{8^{49}}& \textcolor{darkgreen}{8^{56}}& \textcolor{darkgreen}{8^{63}}\\ + 8^0& 8^9& 8^{18}& 8^{27}& 8^{36}& 8^{45}& \textcolor{darkgreen}{8^{54}}& \textcolor{darkgreen}{8^{63}}& \textcolor{darkgreen}{8^{72}}& \textcolor{darkgreen}{8^{81}}\\ \end{pmatrix} \cdot \begin{pmatrix} - m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ \textcolor{green}{m_6} \\ \textcolor{green}{m_7} \\ \textcolor{green}{m_8} \\ \textcolor{green}{m_9} \\ + m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ \textcolor{darkgreen}{m_6} \\ \textcolor{darkgreen}{m_7} \\ \textcolor{darkgreen}{m_8} \\ \textcolor{darkgreen}{m_9} \\ \end{pmatrix} \] -Wir nehmen die Entsprechenden Spalten aus der Matrix heraus und erhalten so das Überbestimmte Gleichungssystem +Wir nehmen die entsprechenden Spalten aus der Matrix heraus und erhalten so das Überbestimmte Gleichungssystem \[ \begin{pmatrix} 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ \textcolor{red}{7} \\ \textcolor{red}{4} \\ -- cgit v1.2.1 From 82672c8b82f0d082daa05cfc212a1b05a7f79650 Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Thu, 10 Jun 2021 15:22:44 +0200 Subject: hilfstabellen updated --- buch/papers/reedsolomon/hilfstabellen.tex | 2 - buch/papers/reedsolomon/restetabelle1.tex | 190 ++++++++++++++++++++++++++--- buch/papers/reedsolomon/restetabelle2.tex | 192 ++++++++++++++++++++++++++---- 3 files changed, 343 insertions(+), 41 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/hilfstabellen.tex b/buch/papers/reedsolomon/hilfstabellen.tex index 10e4fd1..4e39de5 100644 --- a/buch/papers/reedsolomon/hilfstabellen.tex +++ b/buch/papers/reedsolomon/hilfstabellen.tex @@ -8,8 +8,6 @@ \label{reedsolomon:section:hilfstabellen}} \rhead{Hilfstabellen} -\textbf{TODO}: gibt es eine besser darstellungsart der tabellen? (\& platzierung der subsections) - Um das rechnen zu erleichtern findet man in diesem Abschnitt die Resultate, die bei der Addition und der Multiplikation in $\mathbb{F}_{11}$ resultieren. \subsection{Additionstabelle diff --git a/buch/papers/reedsolomon/restetabelle1.tex b/buch/papers/reedsolomon/restetabelle1.tex index a5055c0..3969ef2 100644 --- a/buch/papers/reedsolomon/restetabelle1.tex +++ b/buch/papers/reedsolomon/restetabelle1.tex @@ -1,24 +1,176 @@ % created by Michael Steiner % % Restetabelle von F_11: Addition -\begin{figure} + +% alternatives design +%\begin{figure} +%\begin{center} +%\begin{tabular}{|>{$}c<{$}|>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}|} +%\hline +%+&0&1&2&3&4&5&6&7&8&9&10\\ +%\hline +%0&0&1&2&3&4&5&6&7&8&9&10\\ +%1&1&2&3&4&5&6&7&8&9&10&0\\ +%2&2&3&4&5&6&7&8&9&10&0&1\\ +%3&3&4&5&6&7&8&9&10&0&1&2\\ +%4&4&5&6&7&8&9&10&0&1&2&3\\ +%5&5&6&7&8&9&10&0&1&2&3&4\\ +%6&6&7&8&9&10&0&1&2&3&4&5\\ +%7&7&8&9&10&0&1&2&3&4&5&6\\ +%8&8&9&10&0&1&2&3&4&5&6&7\\ +%9&9&10&0&1&2&3&4&5&6&7&8\\ +%10&10&0&1&2&3&4&5&6&7&8&9\\ +%\hline +%\end{tabular} +%\end{center} +%\end{figure} + \begin{center} -\begin{tabular}{|>{$}c<{$}|>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}|} -\hline -+&0&1&2&3&4&5&6&7&8&9&10\\ -\hline -0&0&1&2&3&4&5&6&7&8&9&10\\ -1&1&2&3&4&5&6&7&8&9&10&0\\ -2&2&3&4&5&6&7&8&9&10&0&1\\ -3&3&4&5&6&7&8&9&10&0&1&2\\ -4&4&5&6&7&8&9&10&0&1&2&3\\ -5&5&6&7&8&9&10&0&1&2&3&4\\ -6&6&7&8&9&10&0&1&2&3&4&5\\ -7&7&8&9&10&0&1&2&3&4&5&6\\ -8&8&9&10&0&1&2&3&4&5&6&7\\ -9&9&10&0&1&2&3&4&5&6&7&8\\ -10&10&0&1&2&3&4&5&6&7&8&9\\ -\hline -\end{tabular} + +\begin{tikzpicture}[>=latex,thick,scale=0.45] +\fill[color=gray!40] (0,0) rectangle (18,-1.5); +\fill[color=gray!40] (0,0) rectangle (1.5,-18); +\draw[step = 1.5, gray,very thin] (0,0) grid (18,-18); +\draw[very thick] (0,0) rectangle (18,-18); +\draw[very thick] (0,-1.5) -- (18,-1.5); +\draw[very thick] (1.5,0) -- (1.5,-18); +\node at (0.75,-0.75) {$+$}; +\foreach \x in {0,...,10} + \node at (2.25+\x*1.5,-0.75) {$\x$}; +\foreach \y in {0,...,10} + \node at (0.75,-2.25+\y*-1.5) {$\y$}; +% Row 0 +\node at ( 2.25,-2.25) {$0$}; +\node at ( 3.75,-2.25) {$1$}; +\node at ( 5.25,-2.25) {$2$}; +\node at ( 6.75,-2.25) {$3$}; +\node at ( 8.25,-2.25) {$4$}; +\node at ( 9.75,-2.25) {$5$}; +\node at (11.25,-2.25) {$6$}; +\node at (12.75,-2.25) {$7$}; +\node at (14.25,-2.25) {$8$}; +\node at (15.75,-2.25) {$9$}; +\node at (17.25,-2.25) {$10$}; +% Row 1 +\node at ( 2.25,-3.75) {$1$}; +\node at ( 3.75,-3.75) {$2$}; +\node at ( 5.25,-3.75) {$3$}; +\node at ( 6.75,-3.75) {$4$}; +\node at ( 8.25,-3.75) {$5$}; +\node at ( 9.75,-3.75) {$6$}; +\node at (11.25,-3.75) {$7$}; +\node at (12.75,-3.75) {$8$}; +\node at (14.25,-3.75) {$9$}; +\node at (15.75,-3.75) {$10$}; +\node at (17.25,-3.75) {$0$}; +% Row 2 +\node at ( 2.25,-5.25) {$2$}; +\node at ( 3.75,-5.25) {$3$}; +\node at ( 5.25,-5.25) {$4$}; +\node at ( 6.75,-5.25) {$5$}; +\node at ( 8.25,-5.25) {$6$}; +\node at ( 9.75,-5.25) {$7$}; +\node at (11.25,-5.25) {$8$}; +\node at (12.75,-5.25) {$9$}; +\node at (14.25,-5.25) {$10$}; +\node at (15.75,-5.25) {$0$}; +\node at (17.25,-5.25) {$1$}; +% Row 3 +\node at ( 2.25,-6.75) {$3$}; +\node at ( 3.75,-6.75) {$4$}; +\node at ( 5.25,-6.75) {$5$}; +\node at ( 6.75,-6.75) {$6$}; +\node at ( 8.25,-6.75) {$7$}; +\node at ( 9.75,-6.75) {$8$}; +\node at (11.25,-6.75) {$9$}; +\node at (12.75,-6.75) {$10$}; +\node at (14.25,-6.75) {$0$}; +\node at (15.75,-6.75) {$1$}; +\node at (17.25,-6.75) {$2$}; +% Row 4 +\node at ( 2.25,-8.25) {$4$}; +\node at ( 3.75,-8.25) {$5$}; +\node at ( 5.25,-8.25) {$6$}; +\node at ( 6.75,-8.25) {$7$}; +\node at ( 8.25,-8.25) {$8$}; +\node at ( 9.75,-8.25) {$9$}; +\node at (11.25,-8.25) {$10$}; +\node at (12.75,-8.25) {$0$}; +\node at (14.25,-8.25) {$1$}; +\node at (15.75,-8.25) {$2$}; +\node at (17.25,-8.25) {$3$}; +% Row 5 +\node at ( 2.25,-9.75) {$5$}; +\node at ( 3.75,-9.75) {$6$}; +\node at ( 5.25,-9.75) {$7$}; +\node at ( 6.75,-9.75) {$8$}; +\node at ( 8.25,-9.75) {$9$}; +\node at ( 9.75,-9.75) {$10$}; +\node at (11.25,-9.75) {$0$}; +\node at (12.75,-9.75) {$1$}; +\node at (14.25,-9.75) {$2$}; +\node at (15.75,-9.75) {$3$}; +\node at (17.25,-9.75) {$4$}; +% Row 6 +\node at ( 2.25,-11.25) {$6$}; +\node at ( 3.75,-11.25) {$7$}; +\node at ( 5.25,-11.25) {$8$}; +\node at ( 6.75,-11.25) {$9$}; +\node at ( 8.25,-11.25) {$10$}; +\node at ( 9.75,-11.25) {$0$}; +\node at (11.25,-11.25) {$1$}; +\node at (12.75,-11.25) {$2$}; +\node at (14.25,-11.25) {$3$}; +\node at (15.75,-11.25) {$4$}; +\node at (17.25,-11.25) {$5$}; +% Row 7 +\node at ( 2.25,-12.75) {$7$}; +\node at ( 3.75,-12.75) {$8$}; +\node at ( 5.25,-12.75) {$9$}; +\node at ( 6.75,-12.75) {$10$}; +\node at ( 8.25,-12.75) {$0$}; +\node at ( 9.75,-12.75) {$1$}; +\node at (11.25,-12.75) {$2$}; +\node at (12.75,-12.75) {$3$}; +\node at (14.25,-12.75) {$4$}; +\node at (15.75,-12.75) {$5$}; +\node at (17.25,-12.75) {$6$}; +% Row 8 +\node at ( 2.25,-14.25) {$8$}; +\node at ( 3.75,-14.25) {$9$}; +\node at ( 5.25,-14.25) {$10$}; +\node at ( 6.75,-14.25) {$0$}; +\node at ( 8.25,-14.25) {$1$}; +\node at ( 9.75,-14.25) {$2$}; +\node at (11.25,-14.25) {$3$}; +\node at (12.75,-14.25) {$4$}; +\node at (14.25,-14.25) {$5$}; +\node at (15.75,-14.25) {$6$}; +\node at (17.25,-14.25) {$7$}; +% Row 9 +\node at ( 2.25,-15.75) {$9$}; +\node at ( 3.75,-15.75) {$10$}; +\node at ( 5.25,-15.75) {$0$}; +\node at ( 6.75,-15.75) {$1$}; +\node at ( 8.25,-15.75) {$2$}; +\node at ( 9.75,-15.75) {$3$}; +\node at (11.25,-15.75) {$4$}; +\node at (12.75,-15.75) {$5$}; +\node at (14.25,-15.75) {$6$}; +\node at (15.75,-15.75) {$7$}; +\node at (17.25,-15.75) {$8$}; +% Row 10 +\node at ( 2.25,-17.25) {$10$}; +\node at ( 3.75,-17.25) {$0$}; +\node at ( 5.25,-17.25) {$1$}; +\node at ( 6.75,-17.25) {$2$}; +\node at ( 8.25,-17.25) {$3$}; +\node at ( 9.75,-17.25) {$4$}; +\node at (11.25,-17.25) {$5$}; +\node at (12.75,-17.25) {$6$}; +\node at (14.25,-17.25) {$7$}; +\node at (15.75,-17.25) {$8$}; +\node at (17.25,-17.25) {$9$}; +\end{tikzpicture} + \end{center} -\end{figure} \ No newline at end of file diff --git a/buch/papers/reedsolomon/restetabelle2.tex b/buch/papers/reedsolomon/restetabelle2.tex index 887c981..1a9815c 100644 --- a/buch/papers/reedsolomon/restetabelle2.tex +++ b/buch/papers/reedsolomon/restetabelle2.tex @@ -1,24 +1,176 @@ % created by Michael Steiner % % Restetabelle von F_11: Multiplikation -\begin{figure} + +% alternatives design +%\begin{figure} +%\begin{center} +%\begin{tabular}{|>{$}c<{$}|>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}|} +%\hline +%\cdot&0&1&2&3&4&5&6&7&8&9&10\\ +%\hline +%0&0&0&0&0&0&0&0&0&0&0&0\\ +%1&0&1&2&3&4&5&6&7&8&9&10\\ +%2&0&2&4&6&8&10&1&3&5&7&9\\ +%3&0&3&6&9&1&4&7&10&2&5&8\\ +%4&0&4&8&1&5&9&2&6&10&3&7\\ +%5&0&5&10&4&9&3&8&2&7&1&6\\ +%6&0&6&1&7&2&8&3&9&4&10&5\\ +%7&0&7&3&10&6&2&9&5&1&8&4\\ +%8&0&8&5&2&10&7&4&1&9&6&3\\ +%9&0&9&7&5&3&1&10&8&6&4&2\\ +%10&0&10&9&8&7&6&5&4&3&2&1\\ +%\hline +%\end{tabular} +%\end{center} +%\end{figure} + \begin{center} -\begin{tabular}{|>{$}c<{$}|>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}>{$}c<{$}|} -\hline -\cdot&0&1&2&3&4&5&6&7&8&9&10\\ -\hline -0&0&0&0&0&0&0&0&0&0&0&0\\ -1&0&1&2&3&4&5&6&7&8&9&10\\ -2&0&2&4&6&8&10&1&3&5&7&9\\ -3&0&3&6&9&1&4&7&10&2&5&8\\ -4&0&4&8&1&5&9&2&6&10&3&7\\ -5&0&5&10&4&9&3&8&2&7&1&6\\ -6&0&6&1&7&2&8&3&9&4&10&5\\ -7&0&7&3&10&6&2&9&5&1&8&4\\ -8&0&8&5&2&10&7&4&1&9&6&3\\ -9&0&9&7&5&3&1&10&8&6&4&2\\ -10&0&10&9&8&7&6&5&4&3&2&1\\ -\hline -\end{tabular} -\end{center} -\end{figure} \ No newline at end of file + + \begin{tikzpicture}[>=latex,thick,scale=0.45] + \fill[color=gray!40] (0,0) rectangle (18,-1.5); + \fill[color=gray!40] (0,0) rectangle (1.5,-18); + \draw[step = 1.5, gray,very thin] (0,0) grid (18,-18); + \draw[very thick] (0,0) rectangle (18,-18); + \draw[very thick] (0,-1.5) -- (18,-1.5); + \draw[very thick] (1.5,0) -- (1.5,-18); + \node at (0.75,-0.75) {$\cdot$}; + \foreach \x in {0,...,10} + \node at (2.25+\x*1.5,-0.75) {$\x$}; + \foreach \y in {0,...,10} + \node at (0.75,-2.25+\y*-1.5) {$\y$}; + % Row 0 + \node at ( 2.25,-2.25) {$0$}; + \node at ( 3.75,-2.25) {$0$}; + \node at ( 5.25,-2.25) {$0$}; + \node at ( 6.75,-2.25) {$0$}; + \node at ( 8.25,-2.25) {$0$}; + \node at ( 9.75,-2.25) {$0$}; + \node at (11.25,-2.25) {$0$}; + \node at (12.75,-2.25) {$0$}; + \node at (14.25,-2.25) {$0$}; + \node at (15.75,-2.25) {$0$}; + \node at (17.25,-2.25) {$0$}; + % Row 1 + \node at ( 2.25,-3.75) {$0$}; + \node at ( 3.75,-3.75) {$1$}; + \node at ( 5.25,-3.75) {$2$}; + \node at ( 6.75,-3.75) {$3$}; + \node at ( 8.25,-3.75) {$4$}; + \node at ( 9.75,-3.75) {$5$}; + \node at (11.25,-3.75) {$6$}; + \node at (12.75,-3.75) {$7$}; + \node at (14.25,-3.75) {$8$}; + \node at (15.75,-3.75) {$9$}; + \node at (17.25,-3.75) {$10$}; + % Row 2 + \node at ( 2.25,-5.25) {$0$}; + \node at ( 3.75,-5.25) {$2$}; + \node at ( 5.25,-5.25) {$4$}; + \node at ( 6.75,-5.25) {$6$}; + \node at ( 8.25,-5.25) {$8$}; + \node at ( 9.75,-5.25) {$10$}; + \node at (11.25,-5.25) {$1$}; + \node at (12.75,-5.25) {$3$}; + \node at (14.25,-5.25) {$5$}; + \node at (15.75,-5.25) {$7$}; + \node at (17.25,-5.25) {$9$}; + % Row 3 + \node at ( 2.25,-6.75) {$0$}; + \node at ( 3.75,-6.75) {$3$}; + \node at ( 5.25,-6.75) {$6$}; + \node at ( 6.75,-6.75) {$9$}; + \node at ( 8.25,-6.75) {$1$}; + \node at ( 9.75,-6.75) {$4$}; + \node at (11.25,-6.75) {$7$}; + \node at (12.75,-6.75) {$10$}; + \node at (14.25,-6.75) {$2$}; + \node at (15.75,-6.75) {$5$}; + \node at (17.25,-6.75) {$8$}; + % Row 4 + \node at ( 2.25,-8.25) {$0$}; + \node at ( 3.75,-8.25) {$4$}; + \node at ( 5.25,-8.25) {$8$}; + \node at ( 6.75,-8.25) {$1$}; + \node at ( 8.25,-8.25) {$5$}; + \node at ( 9.75,-8.25) {$9$}; + \node at (11.25,-8.25) {$2$}; + \node at (12.75,-8.25) {$6$}; + \node at (14.25,-8.25) {$10$}; + \node at (15.75,-8.25) {$3$}; + \node at (17.25,-8.25) {$7$}; + % Row 5 + \node at ( 2.25,-9.75) {$0$}; + \node at ( 3.75,-9.75) {$5$}; + \node at ( 5.25,-9.75) {$10$}; + \node at ( 6.75,-9.75) {$4$}; + \node at ( 8.25,-9.75) {$9$}; + \node at ( 9.75,-9.75) {$3$}; + \node at (11.25,-9.75) {$8$}; + \node at (12.75,-9.75) {$2$}; + \node at (14.25,-9.75) {$7$}; + \node at (15.75,-9.75) {$1$}; + \node at (17.25,-9.75) {$6$}; + % Row 6 + \node at ( 2.25,-11.25) {$0$}; + \node at ( 3.75,-11.25) {$6$}; + \node at ( 5.25,-11.25) {$1$}; + \node at ( 6.75,-11.25) {$7$}; + \node at ( 8.25,-11.25) {$2$}; + \node at ( 9.75,-11.25) {$8$}; + \node at (11.25,-11.25) {$3$}; + \node at (12.75,-11.25) {$9$}; + \node at (14.25,-11.25) {$4$}; + \node at (15.75,-11.25) {$10$}; + \node at (17.25,-11.25) {$5$}; + % Row 7 + \node at ( 2.25,-12.75) {$0$}; + \node at ( 3.75,-12.75) {$7$}; + \node at ( 5.25,-12.75) {$3$}; + \node at ( 6.75,-12.75) {$10$}; + \node at ( 8.25,-12.75) {$6$}; + \node at ( 9.75,-12.75) {$2$}; + \node at (11.25,-12.75) {$9$}; + \node at (12.75,-12.75) {$5$}; + \node at (14.25,-12.75) {$1$}; + \node at (15.75,-12.75) {$8$}; + \node at (17.25,-12.75) {$4$}; + % Row 8 + \node at ( 2.25,-14.25) {$0$}; + \node at ( 3.75,-14.25) {$8$}; + \node at ( 5.25,-14.25) {$5$}; + \node at ( 6.75,-14.25) {$2$}; + \node at ( 8.25,-14.25) {$10$}; + \node at ( 9.75,-14.25) {$7$}; + \node at (11.25,-14.25) {$4$}; + \node at (12.75,-14.25) {$1$}; + \node at (14.25,-14.25) {$9$}; + \node at (15.75,-14.25) {$6$}; + \node at (17.25,-14.25) {$3$}; + % Row 9 + \node at ( 2.25,-15.75) {$0$}; + \node at ( 3.75,-15.75) {$9$}; + \node at ( 5.25,-15.75) {$7$}; + \node at ( 6.75,-15.75) {$5$}; + \node at ( 8.25,-15.75) {$3$}; + \node at ( 9.75,-15.75) {$1$}; + \node at (11.25,-15.75) {$10$}; + \node at (12.75,-15.75) {$8$}; + \node at (14.25,-15.75) {$6$}; + \node at (15.75,-15.75) {$4$}; + \node at (17.25,-15.75) {$2$}; + % Row 10 + \node at ( 2.25,-17.25) {$0$}; + \node at ( 3.75,-17.25) {$10$}; + \node at ( 5.25,-17.25) {$9$}; + \node at ( 6.75,-17.25) {$8$}; + \node at ( 8.25,-17.25) {$7$}; + \node at ( 9.75,-17.25) {$6$}; + \node at (11.25,-17.25) {$5$}; + \node at (12.75,-17.25) {$4$}; + \node at (14.25,-17.25) {$3$}; + \node at (15.75,-17.25) {$2$}; + \node at (17.25,-17.25) {$1$}; + \end{tikzpicture} + +\end{center} \ No newline at end of file -- cgit v1.2.1 From d15eaa234f3f1622289e2486db54fe0ce7309b8f Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Thu, 10 Jun 2021 18:22:35 +0200 Subject: nachschlagewerk created --- buch/papers/reedsolomon/decmitfehler.tex | 3 ++- buch/papers/reedsolomon/main.tex | 2 +- buch/papers/reedsolomon/nachschlagewerk.tex | 4 ++++ 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 buch/papers/reedsolomon/nachschlagewerk.tex (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/decmitfehler.tex b/buch/papers/reedsolomon/decmitfehler.tex index db6e586..feaa027 100644 --- a/buch/papers/reedsolomon/decmitfehler.tex +++ b/buch/papers/reedsolomon/decmitfehler.tex @@ -97,7 +97,8 @@ Bevor wir unser Lokatorpolynom berechnen können, müssen wir zuerst eine Mögli $d(X)$ & $=$ & $r(X) - m(X)$. \end{tabular} \end{center} -TODO (rewrite sentence): Dies wird uns zwar andere sorgen wegen $m(X)$ bereiten, \textcolor{red}{die werden wir jedoch zu einem späteren Zeitpunkt betrachten (todo: verweis auf kapitel?)}. +Dies wird uns zwar andere sorgen wegen $m(X)$ bereiten, wir werden werden deshalb erst in Abschnitt \ref{reedsolomon:subsection:nachrichtenvektor} darauf zurückkommen. + Setzen wir jetzt noch unsere Einheitswurzel aus dem Beispiel ein so erhalten wir % Old Text %\begin{align} diff --git a/buch/papers/reedsolomon/main.tex b/buch/papers/reedsolomon/main.tex index 9822d25..fa20936 100644 --- a/buch/papers/reedsolomon/main.tex +++ b/buch/papers/reedsolomon/main.tex @@ -39,8 +39,8 @@ Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren \input{papers/reedsolomon/decohnefehler} \input{papers/reedsolomon/decmitfehler} \input{papers/reedsolomon/rekonstruktion} +\input{papers/reedsolomon/nachschlagewerk} \input{papers/reedsolomon/hilfstabellen} -%\input{papers/reedsolomon/glossar} -> geplant zur besseren orientierung %\input{papers/reedsolomon/anwendungen} -> geplant \nocite{reedsolomon:weitz} diff --git a/buch/papers/reedsolomon/nachschlagewerk.tex b/buch/papers/reedsolomon/nachschlagewerk.tex new file mode 100644 index 0000000..60b857e --- /dev/null +++ b/buch/papers/reedsolomon/nachschlagewerk.tex @@ -0,0 +1,4 @@ +\section{Nachschlagewerk + \label{reedsolomon:section:nachschlagen}} +\rhead{nachschlagewerk} +todo: auflistung von z.b nachrichtenvektor, übertragungsvektor usw. inklusiver erklärung was es ist falls man beim lesen den faden verliert \ No newline at end of file -- cgit v1.2.1 From 09ca369b5a078dae6d55cc21e85452ac04a4a939 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Fri, 11 Jun 2021 08:30:04 +0200 Subject: Fix references.bib --- buch/papers/reedsolomon/references.bib | 31 ------------------------------- 1 file changed, 31 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/references.bib b/buch/papers/reedsolomon/references.bib index 4c1d17a..731bd35 100644 --- a/buch/papers/reedsolomon/references.bib +++ b/buch/papers/reedsolomon/references.bib @@ -13,8 +13,6 @@ day = {10} } -% https://link.springer.com/chapter/10.1007%2F978-3-8351-9077-1_9 - @book{reedsolomon:informationkommunikation, title = {Information und Kommunikation}, author = {Markus Hufschmid}, @@ -25,32 +23,3 @@ volume = {1} } -% Beispiele -%@online{reedsolomon:bibtex, -% title = {BibTeX}, -% url = {https://de.wikipedia.org/wiki/BibTeX}, -% date = {2020-02-06}, -% year = {2020}, -% month = {2}, -% day = {6} -%} -% -%@book{reedsolomon:numerical-analysis, -% title = {Numerical Analysis}, -% author = {David Kincaid and Ward Cheney}, -% publisher = {American Mathematical Society}, -% year = {2002}, -% isbn = {978-8-8218-4788-6}, -% inseries = {Pure and applied undegraduate texts}, -% volume = {2} -%} -% -%@article{reedsolomon:mendezmueller, -% author = { Tabea Méndez and Andreas Müller }, -% title = { Noncommutative harmonic analysis and image registration }, -% journal = { Appl. Comput. Harmon. Anal.}, -% year = 2019, -% volume = 47, -% pages = {607--627}, -% url = {https://doi.org/10.1016/j.acha.2017.11.004} -%} \ No newline at end of file -- cgit v1.2.1 From 99d2ddf90c75e83fc8ee82f5d0145a17db9a6338 Mon Sep 17 00:00:00 2001 From: Alain Date: Sun, 13 Jun 2021 15:59:24 +0200 Subject: minor changes, refernezen --- buch/papers/ifs/main.tex | 1 + buch/papers/ifs/references.bib | 48 +++++++++++++++++++++++++++++++++++------- buch/papers/ifs/teil0.tex | 2 +- buch/papers/ifs/teil1.tex | 18 +++++++--------- buch/papers/ifs/teil2.tex | 20 +++++++++--------- buch/papers/ifs/teil3.tex | 14 ++++++------ 6 files changed, 67 insertions(+), 36 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/ifs/main.tex b/buch/papers/ifs/main.tex index 8ae0fad..cceaf87 100644 --- a/buch/papers/ifs/main.tex +++ b/buch/papers/ifs/main.tex @@ -13,5 +13,6 @@ \input{papers/ifs/teil2.tex} \input{papers/ifs/teil3.tex} + \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/ifs/references.bib b/buch/papers/ifs/references.bib index 716857f..790c15c 100644 --- a/buch/papers/ifs/references.bib +++ b/buch/papers/ifs/references.bib @@ -13,14 +13,29 @@ day = {6} } -@book{ifs:numerical-analysis, - title = {Numerical Analysis}, - author = {David Kincaid and Ward Cheney}, - publisher = {American Mathematical Society}, - year = {2002}, - isbn = {978-8-8218-4788-6}, - inseries = {Pure and applied undegraduate texts}, - volume = {2} +@online{ifs:chaos, + title = {Chaosspiel}, + url = {https://de.wikipedia.org/wiki/Iteriertes_Funktionensystem#Chaosspiel}, + date = {20201-06-13}, + year = {2021}, + month = {6}, + day = {13} +} + +@online{ifs:barnsleyfern, + title = {Barnsley fern}, + url = {https://en.wikipedia.org/wiki/Barnsley_fern}, + date = {20201-06-13}, + year = {2021}, + month = {6}, + day = {13} +} +@book{ifs:fractal-geometry, + title = {Fractal Geometry}, + author = {Kenneth Falconer}, + publisher = {John Wiley & Sons}, + year = {1900}, + isbn = {0-471-92287-0}, } @article{ifs:mendezmueller, @@ -33,3 +48,20 @@ url = {https://doi.org/10.1016/j.acha.2017.11.004} } +@Inbook{ifs:Rousseau2012, + author= {Rousseau, Christiane + and Saint-Aubin, Yvan + and Stern, Manfred}, + title={Bildkompression: Iterierte Funktionensysteme}, + bookTitle={Mathematik und Technologie}, + year={2012}, + publisher={Springer Berlin Heidelberg}, + address={Berlin, Heidelberg}, + pages={341--386}, + abstract={Dieses Kapitel kann in ein bis zwei Wochen Vorlesungen behandelt werden. Steht nur eine Woche zur Verfugung, dann konnen Sie kurz die Einfuhrung behandeln (Abschnitt 11.1) und anschlie{\ss}end ausf{\"u}hrlich den Begriff des Attraktors eines iterierten Funktionensystems betrachten (Abschnitt 11.3), wobei Sie sich auf das Sierpi{\'{n}}ski- Dreieck (Beispiel 11.5) konzentrieren. Beweisen Sie den Satz {\"u}ber die Konstruktion von affinen Transformationen, die drei Punkte der Ebene auf drei Punkte der Ebene abbilden und diskutieren Sie die speziellen affinen Transformationen, die h{\"a}ufig bei iterierten Funktionensystemen verwendet werden (Abschnitt 11.2).}, + isbn={978-3-642-30092-9}, + doi={10.1007/978-3-642-30092-9_11}, + url={https://doi.org/10.1007/978-3-642-30092-9_11} +} + + diff --git a/buch/papers/ifs/teil0.tex b/buch/papers/ifs/teil0.tex index d61c013..7cb218f 100644 --- a/buch/papers/ifs/teil0.tex +++ b/buch/papers/ifs/teil0.tex @@ -7,6 +7,6 @@ \rhead{Was ist ein Iteriertes Funktionsschema} Mit der Hilfe von Iterierten Funktionsschemata mit nur wenigen Funktionen, komplexe Bilder beschreiben. In der Regel sind diese Bilder Fraktale. -Wie es dazu kommt, und wie man mit IFS auch Bilder komprimieren kann, wollen wir im folgenden Kapitel untersuchen. +Wie es dazu kommt, und wie man mit IFS auch Bilder komprimieren kann, wollen wir in diesem Kapitel untersuchen. diff --git a/buch/papers/ifs/teil1.tex b/buch/papers/ifs/teil1.tex index f02aff6..54089ec 100644 --- a/buch/papers/ifs/teil1.tex +++ b/buch/papers/ifs/teil1.tex @@ -8,10 +8,9 @@ \rhead{Problemstellung} Bevor wir die IFS genauer ansehen, schauen wir uns Fraktale genauer an. -\subsection{Was sind Fraktale? -\label{ifs:subsection:finibus}} -Über die genaue Definition von Fraktalen sind sich die Mathematiker noch nicht einig. -In diesem Kapitel orientieren wir uns an den Eigenschaften welche Kenneth Falconer in seinem Buch Fractal Geometry beschreibt. + +Über die genaue Definition von Fraktalen sind sich die Mathematiker nicht einig. +In diesem Kapitel orientieren wir uns an den Eigenschaften welche Kenneth Falconer in seinem Buch Fractal Geometry \cite{ifs:fractal-geometry} beschreibt. Von einem Fraktal $F$ können wir folgende Eigenschaften erwarten: \begin{enumerate} \item $F$ hat eine unendlich feine Struktur @@ -23,8 +22,8 @@ Von einem Fraktal $F$ können wir folgende Eigenschaften erwarten: \subsection{Koch Kurve \label{ifs:subsection:lilkoch}} Diese Eigenschaften möchten wir nun anhand der Koch Kurve näher anschauen. -In \ref{ifs:kochkurve8} sehen wir die Koch Kurve. Wie man schon erahnen kann, besteht die aus lauter kleineren Kopien von sich selber. -Den Konstruktionsvorgang sehen wir in \ref{ifs:kochconst}. +In \ref{ifs:kochkurve8} sehen wir die Koch Kurve. Wie man schon erahnen kann, besteht sie aus lauter kleineren Kopien von sich selber. +Den Konstruktionsvorgang ist in Abbildung \ref{ifs:kochconst} dargestellt. Gestartet wird mit einer einzelnen Strecke der Länge $a$. Diese wird in ersten Schritt mit vier gleich langen Streckenabschnitte der Länge $\frac{a}{3}$ ersetzt. In \ref{ifs:kochconstb} ist die Anordnung dieser vier Streckenabschnitte ersichtlich. @@ -33,14 +32,13 @@ Die Kurve besteht also aus vier kleineren Kopien von der ganzen Kurve, was auch \begin{figure} - \label{ifs:kochkurve8} \centering \includegraphics{papers/ifs/images/koch8} \caption{Koch Kurve} + \label{ifs:kochkurve8} \end{figure} \begin{figure} - \label{ifs:kochconst} \centering \subfigure[]{ \label{ifs:kochconsta} @@ -52,7 +50,7 @@ Die Kurve besteht also aus vier kleineren Kopien von der ganzen Kurve, was auch \label{kochconstc} \includegraphics[width=0.32\textwidth]{papers/ifs/images/koch2}} \caption{(a) Start (b) 1. Iteration (c) 2. Iteration} - \label{fig:foobar} + \label{ifs:kochconst} \end{figure} Die resultierende Kurve hat ein paar interessante Eigenschaften. @@ -80,7 +78,7 @@ Wie wir sehen ist die Kochkurve ein Konstrukt mit endlicher Fläche, aber unendl Zu guter Letzt bestimmen wir die Dimension der Kurve. Es gibt viele verschiedene Arten die Dimension zu definieren. Diese können dann auch unterschiedliche Resultate liefern. Vor allem im Zusammenhang mit Fraktalen findet man in der Literatur viele verschiedene Arten. -In diesem Beispiel werden wir die Ähnlichkeits-Dimension. +In diesem Beispiel werden wir die Ähnlichkeits-Dimension \cite{ifs:fractal-geometry}. \begin{align*} D = - \frac{log(N)}{log(\epsilon)} \end{align*} diff --git a/buch/papers/ifs/teil2.tex b/buch/papers/ifs/teil2.tex index d25004f..143317a 100644 --- a/buch/papers/ifs/teil2.tex +++ b/buch/papers/ifs/teil2.tex @@ -9,10 +9,10 @@ Wollen wir nun eine bestimmte Art anschauen, wie man Fraktale machen kann. Zur Veranschaulichung dieser Methode nehmen wir das Sierpinski Dreieck. \begin{figure} - \label{ifs:sierpinski10} \centering \includegraphics[width=0.5\textwidth]{papers/ifs/images/sierpinski} \caption{Sierpinski-Dreieck} + \label{ifs:sierpinski10} \end{figure} Wenn man das Dreieck genau anschaut, erkennt man schnell, dass es aus drei kleineren Kopien seiner selbst besteht. Es ist also ein Selbstähnliches Konstrukt. @@ -71,8 +71,7 @@ Wendet man alle drei Funktionen auf das Sierpinski-Dreieck an, entsteht also wie X = \bigcup\limits_{i = 1}^{3} f_i(X) \end{align*} Man kann sogar noch einen Schritt weiter gehen, und sagen: Wenn wir die Funktionen auf eine beliebige Startmenge anwenden, konvergiert die Menge gegen das Sierpinski-Dreieck. -\begin{figure} - \label{ifs:sierpconst} +\begin{figure} \centering \subfigure[]{ \label{ifs:sierpconsta} @@ -88,6 +87,7 @@ Man kann sogar noch einen Schritt weiter gehen, und sagen: Wenn wir die Funktion \includegraphics[width=0.25\textwidth]{papers/ifs/images/sierpinski6}} \caption{Konstruktion eines Sierpinski-Dreiecks mit einem Schwarzen Quadrat als Start\\ (a) 1. Iteration (b) 2. Iteration (c) 3. Iteration (d) 5. Iteration} + \label{ifs:sierpconst} \end{figure} Im Beispiel der Abbildung \ref{ifs:sierpconst} sehen wir, wie das Bild nach jeder Iteration dem Sierpinski-Dreieck ähnlicher wird. Der Abstand zum Original wird immer kleiner, und konvergiert bei unendlich Iterationen gegen null. @@ -95,7 +95,7 @@ Der Abstand zum Original wird immer kleiner, und konvergiert bei unendlich Itera \subsection{Iterierte Funktionensysteme \label{ifs:subsection:bonorum}} In diesem Unterkapitel wollen wir die Erkenntnis, wie wir aus einer beliebigen Menge ein Sierpinski-Dreieck generieren können, verallgemeinern. -TODO TEXT + $S_1,...,S_n$ sind Kontraktionen auf die Menge $D \subset \mathbb{R}^n$. Es gilt \begin{align} @@ -185,26 +185,26 @@ Sie verkleinert und dreht das gesamte Bild und stellt es auf das Ende des Stiels $S_3$ bildet das gesamte Blatt auf das blaue Teilblatt unten Links ab. $S_4$ Spiegelt das Blatt und bildet es auf das magentafarbene Teilblatt ab. -Wir führen im Zusammenhang mit dem Barnsley-Farn noch eine weitere Methode ein, um IFS auszuführen. +Wir führen im Zusammenhang mit dem Barnsley-Farn \cite{ifs:barnsleyfern} noch eine weitere Methode ein, um IFS auszuführen. Bis jetzt wurde immer davon gesprochen, die Transformationen auf die gesamte Menge anzuwenden. Bei komplizierteren IFS welche viele Iterationen brauchen, bis man den Attraktor erkennen kann, ist diese Methode ziemlich rechenintensiv. -Eine Alternative ist das Chaos-Game. +Eine Alternative ist das Chaosspiel \cite{ifs:chaos}. Bei dieser Methode werden die Transformationen nicht auf die Menge angewendet, sondern nur auf einen einzelnen Punkt. Der Startpunkt kann dabei ein beliebiger Punkt in $E$ sein. Es wird bei jedem Iterationsschritt nur eine Transformation, welche zufällig gewählt wurde, angewendet. -Da, wie wir beim Barnsley-Farn gut sehen, dass nicht jede Transformation gleich viel des Bildes ausmacht, werden diese beim Chaos-Game gewichtet. +Da, wie wir beim Barnsley-Farn gut sehen, dass nicht jede Transformation gleich viel des Bildes ausmacht, werden diese beim Chaosspiel gewichtet. Die Gewichtung erfolgt über den Anteil der Gesamtmasse. Im Fall des Barnsley-Fern wird $S_1$ in $1\%$, $S_2$ in $85\%$ und $S_3 \& S_4$ in $7\%$ der Iterationen ausgeführt. -\begin{figure} - \label{ifs:farn} +\begin{figure} \centering \makebox[\textwidth][c]{ \includegraphics[width=1.4\textwidth]{papers/ifs/images/farn}} \caption{Barnsley-Farn} + \label{ifs:farn} \end{figure} \begin{figure} - \label{ifs:farncolor} \centering \includegraphics[width=0.7\textwidth]{papers/ifs/images/farncolor} \caption{Vier Transformationen des Barnsley-Farn} + \label{ifs:farncolor} \end{figure} diff --git a/buch/papers/ifs/teil3.tex b/buch/papers/ifs/teil3.tex index 515fd81..24f0751 100644 --- a/buch/papers/ifs/teil3.tex +++ b/buch/papers/ifs/teil3.tex @@ -9,7 +9,7 @@ Mit dem Prinzip dieser IFS ist es auch möglich Bilder zu Komprimieren. Diese Idee hatte der Mathematiker Michael Barnsley, welcher mit seinem Buch Fractals Everywhere einen wichtigen Beitrag zum Verständnis von Fraktalen geliefert hat. Das Ziel ist es ein IFS zu finden, welches das Bild als Attraktor hat. -In diesem Unterkapitel wollen wir eine Methode dafür anschauen. +In diesem Unterkapitel wollen wir eine Methode dafür anschauen.\cite{ifs:Rousseau2012} Bis jetzt wurde in Zusammenhang mit IFS immer erwähnt, dass die Transformationen auf die ganze Menge angewendet werden. @@ -17,10 +17,10 @@ Dies muss jedoch nicht so sein. Es gibt auch einen Attraktor, wenn die Transformationen nur Teile der Menge auf die ganze Menge abbilden. Diese Eigenschaft wollen wir uns in der Fraktalen Bildkompression zunutze machen. Sie ermöglicht uns Ähnlichkeiten zwischen kleineren Teilen des Bildes zunutze machen. -Es ist wohl nicht Falsch zu sagen, dass Ähnlichkeiten zur gesamten Menge, wie wir sie zum Beispiel beim Barnsley Fern gesehen haben, bei Bilder aus dem Alltag eher selten anzutreffen sind. +Es ist wohl nicht falsch zu sagen, dass Ähnlichkeiten zur gesamten Menge, wie wir sie zum Beispiel beim Barnsley Farn gesehen haben, bei Bilder aus dem Alltag eher selten anzutreffen sind. Doch wie Finden wir die richtigen Affinen Transformationen, welche als IFS das Bild als Attraktor haben? -\subsection{Titel +\subsection{das Kompressionsverfahren \label{ifs:subsection:malorum}} In der Beschreibung des Verfahrens wird sich auf Graustufenbilder bezogen. Wie das Verfahren für Farbbilder verwendet werden kann, wird später erläutert. @@ -114,21 +114,20 @@ Als Startbild wird ein mittelgraues 360x360px Bild gewählt, Abbildung \ref{ifs: Nun lassen wir das IFS laufen. Wie wir in Abbildung \ref{ifs:rappirecoa} sehen, ist schon nach der ersten Iteration das Bild schon erkennbar. Nach der fünften Iteration , Abbildung \ref{ifs:rappirecoc} gibt es fast keinen Unterschied mehr zur letzten Iteration, wir können die Rekonstruktion beenden. -\begin{figure} - \label{ifs:original} +\begin{figure} \centering \includegraphics[width=0.4\textwidth]{papers/ifs/images/original} \caption{Original Bild von Rapperswil} + \label{ifs:original} \end{figure} \begin{figure} - \label{ifs:bild0} \centering \includegraphics[width=0.4\textwidth]{papers/ifs/images/rapperswil} \caption{Startbild} + \label{ifs:bild0} \end{figure} \begin{figure} - \label{ifs:rappireco} \centering \subfigure[]{ \label{ifs:rappirecoa} @@ -140,4 +139,5 @@ Nach der fünften Iteration , Abbildung \ref{ifs:rappirecoc} gibt es fast keinen \label{ifs:rappirecoc} \includegraphics[width=0.32\textwidth]{papers/ifs/images/rapperswil04}} \caption{(a) 1. Iteration (b) 2. Iteration (c) 5. Iteration} + \label{ifs:rappireco} \end{figure} -- cgit v1.2.1 From e6f890beb3ad6030abc3f7082a7cd3ce0a8dabd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Mon, 14 Jun 2021 07:41:27 +0200 Subject: fix paper/ifs/references.bib --- buch/papers/ifs/references.bib | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/ifs/references.bib b/buch/papers/ifs/references.bib index 790c15c..fbf75f4 100644 --- a/buch/papers/ifs/references.bib +++ b/buch/papers/ifs/references.bib @@ -33,7 +33,7 @@ @book{ifs:fractal-geometry, title = {Fractal Geometry}, author = {Kenneth Falconer}, - publisher = {John Wiley & Sons}, + publisher = {John Wiley \& Sons}, year = {1900}, isbn = {0-471-92287-0}, } @@ -58,7 +58,7 @@ publisher={Springer Berlin Heidelberg}, address={Berlin, Heidelberg}, pages={341--386}, - abstract={Dieses Kapitel kann in ein bis zwei Wochen Vorlesungen behandelt werden. Steht nur eine Woche zur Verfugung, dann konnen Sie kurz die Einfuhrung behandeln (Abschnitt 11.1) und anschlie{\ss}end ausf{\"u}hrlich den Begriff des Attraktors eines iterierten Funktionensystems betrachten (Abschnitt 11.3), wobei Sie sich auf das Sierpi{\'{n}}ski- Dreieck (Beispiel 11.5) konzentrieren. Beweisen Sie den Satz {\"u}ber die Konstruktion von affinen Transformationen, die drei Punkte der Ebene auf drei Punkte der Ebene abbilden und diskutieren Sie die speziellen affinen Transformationen, die h{\"a}ufig bei iterierten Funktionensystemen verwendet werden (Abschnitt 11.2).}, + abstract={Dieses Kapitel kann in ein bis zwei Wochen Vorlesungen behandelt werden. Steht nur eine Woche zur Verfügung, dann können Sie kurz die Einführung behandeln (Abschnitt 11.1) und anschlie{\ss}end ausf{\"u}hrlich den Begriff des Attraktors eines iterierten Funktionensystems betrachten (Abschnitt 11.3), wobei Sie sich auf das Sierpi{\'{n}}ski- Dreieck (Beispiel 11.5) konzentrieren. Beweisen Sie den Satz {\"u}ber die Konstruktion von affinen Transformationen, die drei Punkte der Ebene auf drei Punkte der Ebene abbilden und diskutieren Sie die speziellen affinen Transformationen, die h{\"a}ufig bei iterierten Funktionensystemen verwendet werden (Abschnitt 11.2).}, isbn={978-3-642-30092-9}, doi={10.1007/978-3-642-30092-9_11}, url={https://doi.org/10.1007/978-3-642-30092-9_11} -- cgit v1.2.1 From 81d11a125976ab6c877b934cdeb79806a1105bca Mon Sep 17 00:00:00 2001 From: Alain Date: Fri, 18 Jun 2021 10:47:53 +0200 Subject: reworks --- buch/papers/ifs/images/farnnotweight.eps | 2179 ++++++++++++++++++++++++++++++ buch/papers/ifs/teil0.tex | 2 +- buch/papers/ifs/teil1.tex | 80 +- buch/papers/ifs/teil2.tex | 34 +- buch/papers/ifs/teil3.tex | 109 +- 5 files changed, 2331 insertions(+), 73 deletions(-) create mode 100644 buch/papers/ifs/images/farnnotweight.eps (limited to 'buch/papers') diff --git a/buch/papers/ifs/images/farnnotweight.eps b/buch/papers/ifs/images/farnnotweight.eps new file mode 100644 index 0000000..975c384 --- /dev/null +++ b/buch/papers/ifs/images/farnnotweight.eps @@ -0,0 +1,2179 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (MATLAB, The Mathworks, Inc. Version 9.7.0.1434023 \(R2019b\) Update 6. Operating System: Windows 10) +%%Title: (C:/Users/Alain/Dropbox/Dokumente/HSR/08_fs21/mathsem/buch - Kopie/SeminarMatrizen/buch/papers/ifs/images/farnnotweight.eps) +%%CreationDate: 2021-06-17T15:33:40 +%%Pages: (atend) +%%BoundingBox: 0 0 1920 992 +%%LanguageLevel: 3 +%%EndComments +%%BeginProlog +%%BeginResource: procset (Apache XML Graphics Std ProcSet) 1.2 0 +%%Version: 1.2 0 +%%Copyright: (Copyright 2001-2003,2010 The Apache Software Foundation. License terms: http://www.apache.org/licenses/LICENSE-2.0) +/bd{bind def}bind def +/ld{load def}bd +/GR/grestore ld +/GS/gsave ld +/RM/rmoveto ld +/C/curveto ld +/t/show ld +/L/lineto ld +/ML/setmiterlimit ld +/CT/concat ld +/f/fill ld +/N/newpath ld +/S/stroke ld +/CC/setcmykcolor ld +/A/ashow ld +/cp/closepath ld +/RC/setrgbcolor ld +/LJ/setlinejoin ld +/GC/setgray ld +/LW/setlinewidth ld +/M/moveto ld +/re {4 2 roll M +1 index 0 rlineto +0 exch rlineto +neg 0 rlineto +cp } bd +/_ctm matrix def +/_tm matrix def +/BT { _ctm currentmatrix pop matrix _tm copy pop 0 0 moveto } bd +/ET { _ctm setmatrix } bd +/iTm { _ctm setmatrix _tm concat } bd +/Tm { _tm astore pop iTm 0 0 moveto } bd +/ux 0.0 def +/uy 0.0 def +/F { + /Tp exch def + /Tf exch def + Tf findfont Tp scalefont setfont + /cf Tf def /cs Tp def +} bd +/ULS {currentpoint /uy exch def /ux exch def} bd +/ULE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add moveto Tcx uy To add lineto + Tt setlinewidth stroke + grestore +} bd +/OLE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add cs add moveto Tcx uy To add cs add lineto + Tt setlinewidth stroke + grestore +} bd +/SOE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add cs 10 mul 26 idiv add moveto Tcx uy To add cs 10 mul 26 idiv add lineto + Tt setlinewidth stroke + grestore +} bd +/QT { +/Y22 exch store +/X22 exch store +/Y21 exch store +/X21 exch store +currentpoint +/Y21 load 2 mul add 3 div exch +/X21 load 2 mul add 3 div exch +/X21 load 2 mul /X22 load add 3 div +/Y21 load 2 mul /Y22 load add 3 div +/X22 load /Y22 load curveto +} bd +/SSPD { +dup length /d exch dict def +{ +/v exch def +/k exch def +currentpagedevice k known { +/cpdv currentpagedevice k get def +v cpdv ne { +/upd false def +/nullv v type /nulltype eq def +/nullcpdv cpdv type /nulltype eq def +nullv nullcpdv or +{ +/upd true def +} { +/sametype v type cpdv type eq def +sametype { +v type /arraytype eq { +/vlen v length def +/cpdvlen cpdv length def +vlen cpdvlen eq { +0 1 vlen 1 sub { +/i exch def +/obj v i get def +/cpdobj cpdv i get def +obj cpdobj ne { +/upd true def +exit +} if +} for +} { +/upd true def +} ifelse +} { +v type /dicttype eq { +v { +/dv exch def +/dk exch def +/cpddv cpdv dk get def +dv cpddv ne { +/upd true def +exit +} if +} forall +} { +/upd true def +} ifelse +} ifelse +} if +} ifelse +upd true eq { +d k v put +} if +} if +} if +} forall +d length 0 gt { +d setpagedevice +} if +} bd +/RE { % /NewFontName [NewEncodingArray] /FontName RE - + findfont dup length dict begin + { + 1 index /FID ne + {def} {pop pop} ifelse + } forall + /Encoding exch def + /FontName 1 index def + currentdict definefont pop + end +} bind def +%%EndResource +%%BeginResource: procset (Apache XML Graphics EPS ProcSet) 1.0 0 +%%Version: 1.0 0 +%%Copyright: (Copyright 2002-2003 The Apache Software Foundation. License terms: http://www.apache.org/licenses/LICENSE-2.0) +/BeginEPSF { %def +/b4_Inc_state save def % Save state for cleanup +/dict_count countdictstack def % Count objects on dict stack +/op_count count 1 sub def % Count objects on operand stack +userdict begin % Push userdict on dict stack +/showpage { } def % Redefine showpage, { } = null proc +0 setgray 0 setlinecap % Prepare graphics state +1 setlinewidth 0 setlinejoin +10 setmiterlimit [ ] 0 setdash newpath +/languagelevel where % If level not equal to 1 then +{pop languagelevel % set strokeadjust and +1 ne % overprint to their defaults. +{false setstrokeadjust false setoverprint +} if +} if +} bd +/EndEPSF { %def +count op_count sub {pop} repeat % Clean up stacks +countdictstack dict_count sub {end} repeat +b4_Inc_state restore +} bd +%%EndResource +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 1920 992 +%%BeginPageSetup +[1 0 0 -1 0 992] CT +%%EndPageSetup +GS +[0.75 0 0 0.75 0 -0.25] CT +N +0 0 M +2560 0 L +2560 1323 L +0 1323 L +0 0 L +cp +clip +1 GC +N +0 0 2560 1323 re +f +GR +GS +[0.48 0 0 0.48004 0 312.25837] CT +[1 0 0 1 0 0] CT +N +0 -651 M +4000 -651 L +4000 1416 L +0 1416 L +0 -651 L +cp +clip +GS +0 0 translate +2576 1416 scale +%AXGBeginBitmap: java.awt.image.BufferedImage +{{ +/RawData currentfile /ASCII85Decode filter def +/Data RawData /FlateDecode filter def +/DeviceRGB setcolorspace +<< + /ImageType 1 + /Decode [0 1 0 1 0 1] + /DataSource Data + /Height 1416 + /ImageMatrix [2576 0 0 1416 0 0] + /Width 2576 + /BitsPerComponent 8 +>> image +} stopped {handleerror} if + RawData flushfile +} exec +Gb"-V_/"/[=[2EU-IA+-;@lI:N<+$m1j10>6+VnLIS^;md?(IE'1'jZ,$@IlQpnrI;OV(S67H#/,T,a> +&!!!!dnbhrW +*g\f%jY>L2NmA4H:A=Wk'`\46^k0Xc!<<*hgtl=$4PnER`oi\d]qaDiX-;D,"98E%YR'f/!!%N]&!-Ik +ji+]Qf6^$"1Y3rU!!!!MRCj@:!$Ik?So4#"c`U$'cOXZh&PcY;IeLK6!!!"LN^!I;j.HALk8cLI(BXX; +7(PtA`sa96adUD%(9ot%!!%Omhtu:)^A,Z#mX4"%?hhJ[ro"qoI#GWS!!(s9nc&7MqYB7;m-8-MB_UG, +s75:r?)c$5Gtd!bH$agHGqGM'/&1X*s7%32O]R#.e"7sB0)sGl7X6] +g!;'#m]QVH:.Z\W#RWZP_:Rr9M*UAVRp&G'm!3dI#qUW-!G'8?(K-)pWr6)kQbHH?]CNjuH/T6ji!rr> +6Icr-7X:A!PlLJE[fd-gifX;[u!!&[9^[`nio(gU]IYKf(MZEeXU/!GGYEWDgNcpK0&%bf!f;@+!!!!# +Bo^TsDn*KE=^]4'.?9bD*+Rg%jj,O+-U8J+<"-rpTIeu[]/nV,g7]Ka"h.F0BUV/02@?c(L +s!!!!gr9&S/kK_AuVa(.EOk7AJrU6*)%hIFoQ\E'h!!).GM-g!>\krdu!!!#7Er>ju5QB[QIs?0]=.XNe?="$?!:tP^]MDd7IU:l94MO"\H:@Jmm-< +ZF,3$g+G0p$e5SFAq;E!9M +UE4`,Eu!!!#'f&XdM!76YY]5(us)t3Ua.>*RpA6b_m*UT`8)uos=@-u$n!H'auKc'HG\4FAXZ!!!"$?h.Y+!,* +bUj\=j>3'KR^45/5-)uos==C:W.!!$\VH#lh(X'PrsFF/56\/52G!*F%-@K6CAGC+P9J.qt`!.^%S0*V +CVzfM;!Hz!!%Q:,VK?%z!8(';@K6B.[bUJte#J`7!!!#"+YO$"!+;9Z4Pl]9SVW4*!!(YHnmVS!!4LRu +j8J)aKtJ6&!.aG^0*VCVzfM;!Hz!!%Q:,VK?%!+=hM4Pm8f#ljr*0LYJ@!!!!WgV`(MnbHVhq>Bf*HZs +=+0`V1R<:XJu!#U=B]Bf#iodX?Z,pn(c]Ka"h;/6R?!!&:s(]XPj5[FlBTstp>!!&JK`;fl7!%N7K!!(69:2%opa_&*UT/B:!N5Q)FnG +J23J^j!rr<$CcQbq!!(7'm-:B/->n!RG?m*g5!M.hh1'A?AAigb]?-:9O'L^Nzkaf@'!!)/$HZsmW]&+ +g^I<`D#$J`?ufk0\d\#.1,8afra@JE`3TB@((^=r5[!!'g3Or"3#^cXZ$Fe5VDFODo:`GDZ=iS&2[#6t +5/!.#eA"os0BH[^6$]/j(dR;bK*UP`29br`AoP]-U&!+6$%@K6C1JlO\X9jqY2-SKrM6L$/-Lg)CeF3o +a^!!!!79jS5.!#r!dDTe)YDssiicOY_X)mAuD?1-7LX-81brN^(,VuZku@+"&S!!'7nSmS'%]e)%Rbs@ +\>3*)m4?$umg).&if2%A)_fe!1(!:V=\0`V2i[S0I\38NIRg3kb1/h^Pf>Y*tDa6h]jY6P%-!5LXY(BX +ZQ`k/mo8ASne9gNI;Noe4[!!!"'93r#,!8HGulD3R]R1Cej"onW'5[Fj!!8Cml%W&I+p#XGP:;Qu2!!( +bF?46f6gYh&\^=e.MalHS)!!%PO,qfH&J;s7J9<+j"os0223JH1,fh44Vr-i/h'72"Z047Y!!!#_Qb4.8!&i0@j8IZ]M<&Op/`N +c^m7qo4ll?'+!#RJ:0`V2iT%gmCnrOZkST<8,&,I*Ich>6oP77Kl!,Fu/$ig8Hk5"-'m-6uN[uSU2lb, +9%&c2\2!!"p3]GLVK2GE]$bF=F?0&tp\?=pn@K[Bc"!3knP`;fnBH#E)R%o2k#("[&LmFg#]=[RJ;/bT +B!fD#(:g6!0R!5QSk64<"`WtP +Z7K6;Nbh=&lC408CZbIpu[^.St:!!)=R?46f6)^AX]CLC58PZO0@h[La8jujS@gi$M("6eTc%KHJ//:k +GN!!"ps8/pjbI.(`MHHY'V64Ntq!1QA_$ig8HX>sUQQ!8YtJ>N2t\RA"i6Bi!qeZ5'=^!Pm'4?20k<<3("!*FI9@K6BFXP:AQ]qaEOO^' +A$- +67mTNuQj$>L$qVZH[h`XNLqVKV;DX8tjc1R'E/I;CW!9fud(]XQu2a]croW:cNQ=-jg_=C,WB7B6W.s6 +1K/fBUQYN;,%p7>4GhCFZ*^,8*'r@j8BrE-UEI>\(*!!%aI?46f6o:%1+(]XO?/j6&C'PZ.gZ5G`.KAC,YiFPW/feH +Ua(gEAe0!jq*!!!#G06o8P!3B4=ZAdMUGiR=)[H`JDYP++-I4:LB=';4O!!! +##(O7_8!3B5T25^pC:WCksqYJmqai*c#oV517EjKdHYP0oq\E2pmk0sc%-nU`@E]RQ>W*b!Uo\fcM!._ +f)MZEfcEOo5@eu$^\<=malcNgBFH)1''Gds8ihB[;VT?YG:K8dcpgL+#kUDI4R%KHJ/oLiL!!!%p5eMQ +$@]r$uE-OVPfZ`B;ahNc#5gSa$jlfiE=luICmYG6L9.ni_0SUmUXDLd_V!<<+M0''tO!3f95_rA%[mN1 +b,qh2poHN0if3SPXJ+-oEgoFgOCVq:H".b?g$rMgX;j>u1gDu-=-$3:,,!3?cX0`V3TCl2)CRB80d#KS#,68_pJ03(\g589oX=A15,M`,qC@WGI6+p8\P$'kGE)(lN$tc@'.P/!g/0mn\*%sHS%YTQK@Bdf$eMuAni/ +ft>aHMZ.93O5l^Jp'VnEk()t[CamH2I'0%#')no:eT%0HS1!:*Bd$imN>*Zjc/+BR8e=34QK"rXVVM:Wpdfh5F:H@7a(eDAbsf6+8Hm8@;]$KC39k*;(GhF2f+QT#_K':hD^q#% +?;,rtN]rZp#1!rr>:\r[^1!!$:e4PoNImFFgM4I7$Y;HYU>q[DRR-m(l0XtN9och#<=5(oG$6MVN82tQ +%?=o"s=[%mm+!!(T%]GLVKkbo9IAj5[&!of>WhrqNqEi*uWd<+&YmC]"+bmB:EPgUl[:,H3CnCm>W]WV +(T:BLRs!8pTB@K6C9=pZ\aOr(%]G.c6]4eek1eU&[/oJo@k$&d8[45HURcNQbEq5Dbm]",7Qm[[M#"1] +0I!!'ggOV\*"!$0TdEeYucTbri*Q?mM?-/!!$+4Gqf:!mI\0L2A7U`Ri@T=j7rO+1$);6[j]@&HO3\*D_@?Jc^" +r9ephYM?QT#p7r@$50*VCV!*[I%!mn=9dAO2W*Q&pb* +o'\K@Bc6(9>0;(RJ,ZX(_)j:%_Ys+0e;rM-nH$YFX"@?B4a(1m9nXd.B\e!B1KD#=/,+ZEb"8+$s,_-B`_ig(T/[$^Q`U?H94[*EPoofZhXKCBm3&@+prN!Oe`*Tf=jQ4e;F*hHpM;&kP%KHJ/gH +]'R!!!sM@TdBM`IsiOD,^LlV`'9@@6:-iu/@;_Wg4G8=G.d'o7Q,n40al +[>5ge;#_!!!#R5[Fj!!#oNZba3Y.BhMq,Y48#=L[-[Y*RSFFD\eZ$fSRf;@a[Gd@Y!]WB6%Rsi95;eK)4!!!!<9O8,-^oLjVZV3H([_4EgaHk(7bdHXo5.]9199:[PE\=?1:8U-.0*VCV!4IHk(]]*c#BT'D9Fg(?B(G-1e4O+`7$5qN,,82%DL$3N[':jkJajdp$7B"h:,I9Uc +*_&0-k*,mqpjbk'@:^3<0$Z0IM-#!!!\_@`-]3$AiAV&$W`GF;"ED8im[i:AjSp)Kq1;b75%XpM10u;> ++?)MGnHJN)1K!m`oe\k=buMG2bDP.):3-;GTX,3%*umV0;hbPkFH?1p0rZeC"8M*1h=!3f&U`; +fnBNm\F6blZ4e^o?pBO+WWUVbB(FGe9=+^=e[\m^>ao4-es@h:-67ZJ0E6[EE[8Tl[(O/!5TPnLjkB!7 +6k@(]XO?@]GBj]d7]Y3"JdY'6LrIHTJj2bHA-^q:T`sl-ETVM4Wa@^<<"(j7C1,\/cM;-Tk,*EGB42.h@^8Dn[adD%;]K83i\plDkJ@7& +Duj^Rt7@eN06]-ae-6X&7mW!!#8SnmVS!(ljobd51.SiUK*GDo1Ct.bYk$iFs=^>9>H=A):FbeRmU,rK +QKY#F@TN[r:ub:Ao2Gp''R6z"!K<%!.]XdX-WHBBl3hFTo!lNIIguY:[(OdY#WKLf!t.Gho2K#4-.ur5 +Fb-oA`X5PRleroOo;Ih=YTmV!5Pu&`;fllI&RgOiE`p:f+[%DGFk<]`Q7*5Xl,kH&r`4 +li]f:6Lm/k;hi2glc+H!!$D"aGU'!@/+ICE-DhRpW7f\%@Rrqem?p+]luK"K-q!Z584$>IsVNsc`U#`N +\r7\5/,BAD?'Y:J>&)A!s$.+btqbPlYn3UTHh!d6J,FA\I)oIh-44;1TcAQGo0Ni!!!"8/U9&N!,S#@r +[.GXO$RQ&juO;<4dh(.=Zdlce9(b2qoREKCUfn1\@cKS0`V1RYdNQ2!!'5pSmS(dD5s,n05iHUT'#2Ej +-#b4S8@JK;h&)bG3B-!3flefQX@_b9P\U$B5]:YHU64=\O*_3K(2rn +bHUVh\uKk<]\Q*0jXcm]Ri+5=iC.;!!!#MKtJ6&!&d(thjNBY$tmcTbk#+?m;4'*Uqg:,gh'dTk#p2>] +pX;H#$G7@!!!"83I*=Z!3EfqQ`"GbjVatP)O`",)7>$=c&9c/PT.)"hW]7?pSn5o!!(T/]GLX!IQbG.h;2F%4Pi#PaYH+1bKVnZ( +>G^pGE$?UCOL2^]Q4aH%lLL&1!>IU!!!#[`;fo1.nOaGkriW'=CQsYX!!!!MLqFQ)JDMSh'G_3Xo?nm>*agh[PhPUjjXoN%U:_PPsm%hXhCM$b+&@+hqQ8BGAQt5n=Ua$!!$C5jM_*!FL64$D0]'d^A.9]U +-)JgSeanQ%o2lB,A"a\ji,]k5'pEX!!!#7>*Ba)!:ZSuF3RcIemi0D +6N9,;iJn3anRK,/s`q42GCZDEYg%e/WU;n:2fEs#&T^]dbP0/!!#j;MZEgFulA,oM!5P8KMZEep\5`(%H5-iZ` +YOo5abu?':K05938Jd3Xd=(A2X-C$5^mAQ2uipY>>AK5!5QClM]$_dIX#hC?[hD`m<6-*b)K@Y!#U=NQ`&TMlWR"FngdD1gcQHVS;d76k$mdmfBoq7b(Y1e]O1=]!!!",/'*VL!1;Z]j8GM,:3la +,q-i)NIT6s%b\C[YH`9,i(U&a;V9Z5=r:pEp!5NWrMZEgFhrW,%r52r5ik4$XlXk_We#JQ#hU-6:\a&9 +1L%8RQq*"cY!%`o<(]]*^oc*>ShHaLF>Wb.*Q_1ie1QSlCPN9^SJ"M9$PEsi"o)\ml!:jS!!!_Q\jf*D +6IX&N/,A:LDB3-I,RklZqXaQ<3!!!#[`;flhe&6"8jMa!p8IaU0(:2AY1E3p!?r#$$:R=!V*@l_W]BKI=Dq=cM?'T8i&SJT78U65e#O$('RjS19!5LR>0`V2pH@C +-#]/iNfgEe^PLi[OHIsc]IhY>qc8X@P3QT#`&QUO+m=:8jF0XH.fV>N8_A6$kd`W,u=^oP*b!.[6Y`iX +C"m@-PtCh!1/)W[^6jfs$:4/bCOW:JP$S8WL[<,qn!e!sCom"Z)O!!'[SMZEhA:ODifoTYqa\)jl$rF6:G911C4`!,*N/"or%(gtl +=4)ro5p@Q2ia;m$W*?f`r>:.5Bf!!!d,?46hLEc`1$]MS"_ZJRKlRV:>?j\P@9k!Dp!!!!!mj_t1mDnl +.7TDnJ\/ani=!s#P.cS&(,="!+7l@f43U&;Cco&`981B7CTCZ5'`G\:[PF(>48^](:q?1MG)!1)R=jlu +RPc;gJ.*Zl +n@AfI!3]_j31kWUYLR/V[;!!&[e_o'B_SXi"AUHbc^r:n;srk]Jc:gX(Y%tE7&7VOLU!8FK@6TmQg?f# +&[RnT)qhVMQ4\3h++7FW,dTB58+q4U"s!!!#_mUnc]fuP[nqPShSZa4^tGhDR>Gqf:!^ui2@]=tqg=S4 +.U;/>dR(BXX;^molEPFq4.m!S%j?Y\7`?46f6Y^(-TY1L$?f1]]T!!&D2`ufdno#e`FbJ3E1m!SWP?Z( +.U]GLVKJ9Inm']Z;^9*Na]GLX!c1_)+PalNsb:%..dp]OYe]G\/?3gN2!&3\.5Pic?54b +2'55OL0m-LqUqQKqY0E0sh?i8p/cH`o5or[pHb)69#fPD(ZpLdPT/'j.*GF0p\cS&'e#`DX)/!.\ +e^_a"(:YQ+I&msOX#c[YqTs7hX&^.Vc@!5QSf4MeVM2_1%-COZcn!!"hMpOE5;mskB75Q:264)Q])"on +X2jjH3hi,l_G`!MH*].*d\!8)Pe@K6D:`5CX6b.CORms0A-3kIEj.4Eaez(/8*D!5LK`'NH3T?3p$Qkq +E);!%abT(]]'qp@*NZF +!3f/f@K6Bd7d:Y&f[S-=cE9p.RHkJ/=F-f!.\qUr:3f+;aZVgXgPNl1WN\kiC:t=(G0"Ta>Z.d]7$:MS,iTiTL\Q^!!!5_iU +MA:6!+2c6&e?.605+J_4#(-X1>'R5K#n;fWt+SroM@RGI3i3`q!Z..IAm['sfAI_d2Cj;k1J0mm!Tuoci[f?U+HoPXA.A\LjbU)?9a;[[ +FcF!._I5Z+`1LD3GdnhHea;\Cpn*3D8bf>aKTBjFP)=TF7bQ::5#'flE;lG(.^:olZp\:$&X([%!"65n3QF?dlfl@iG_U:RgGS90$tZ-5MR$al/n\Zc4mdq\Qp!!!!Q)gO.'3MD`(@!DQ[#':%4^+3;AcMf2=C:W.!!&=^9D$]H821"@'*6]9\7P/Lq:G0cS +!Ash6[@\'ekZ'aDp7H"9M<"Bda?nL$ig8-$RIG1!+9LnD_Bc8igShL8ViNU-2^L:gCc?@-$@lfiGsrV+ +.H,:r;*,VZ[R3]oPV*XEEC6i0"'?!.a_d0*VDa]fa%lV5JDU>nErlho`C7T['Cf;hN'COIp#8m7[!Rd>8*TmZ6rSmUfS^RXVZe#Zou-pMK-^TSp` +!!'gSO;A!!Y[3J/-`F&unZ!DuJ(3?)jl_!F1s^c];_HkAl2IEl%oD..-f?G_Pfe7OlZGM7CrS"tFTj'7,(-S\$:;Z'QHX0"L^6!!!#''(TK3!7o?b +b>[doSH@$$1>\:p':-fdCO:<=h`KPW%W@)a0tn$YJ@HXH(!TB"C9DTGjmPiK$ig8-Rn[2t!5McOG2dB4 +TH<6shV(H/B%\EhN!EH#:"-KD)mYBgphV'U80,]QJm +h2L41?XYqBEI+WMIgHS(8%s#J:oWFrg15.&!!$C=jM_*!d(=B1:?GY"j`tq0o';'f`r-rXqV7htYPt[F +e8&?>^9B>4O1F?P!!$C/aGU'!TQeH>LZq="5jdP#52CXN^+CO?>Hdm=H;X+2nI2lCR9Z7:go3%]#:d3) +1If^_n1>1%!<<+-"3?B$!+7]:3F0M0At#$7`J\M!>n46gB#renZVu%Y"Gpn1F?:ct/s#,pmX5&.QH!RS +ZFh"S!!(T@]GLVKg:\A]-2DtmUc7Q*GVS?4MMms)*oSC\?f;'p7)"5VLhiQ"44KfK+KdG=%?>d"/cYkO +YS-M9!!$^,AcQ"@3Bf[OK]8$h=[L&-;s?^mW's06YAaM8Ydd0LX-Jk,HkE*E?#K?3lQSf:!rr<$.jQbP +!.]622HXiTk0<8NJY\&'=iP's5jH'mdt,`7:<@mt!`>Q@D]L)V?;TZt!!!",jlFA\!&1<:ji&HF];i9A +_eh&kmd[*qrR3;(IriqorX@,U:A0]kO3\?CR.R/VbA5,:!<<*"Q:YBk!!"fG`&878%;0d$VU4I<=l.!Zrn<(7.o\-1 +L/TIr/\`pF\i.ZZXl1ir8+*+j/YMg+DSB5%/N:o1dB4P?!!!#'%HPJ.!&0$N`Mpd<]/iLum6^,(]1YBI +3ad0Z7D2*I_3gJ"PQ&\AYpAM-'!!!"$13kSS!6c[5=am7'GbMg/4"b68 +Q(]."?QA1?QJ%S7G,;?;\js6cQ$n\"RnbG=+5Mu[gR`?K%0-A.!8BbF$ig:fB#m6di-3;.[Yl3/9DNh! +emghUTMqT!GI3k9ho4]rj\_W1O^htPFZJQD-.SuR*_75n!!!",2Y(;W!#V%le*W:faM?KYU1X,b14)?1LZV4_H9dHerndJgh^\@ +^76.Ac7EiSDW5XL/%bNU!!$C/aGU'!?tQllf*A5N2=.@uhssiXJF&e,22+&cMFW9MEaPYDI0c/s.nlmI ++6d5tK]N47!!%)'(BXZA4]4]$j1sR8Q`"G\A]E#e?(LVqs,P5?NmA4F17h!"_j5o-m^9Oq90;e-hah[# +%T?+rS3Nb)n$baP'*&"4Qq1Nl!5S>DOdo2.R2^Wf+k?_6Y(1J>^WWrDX*"6pR=[sVHB_lS9deI)HZ!5Md"(BXXkQ)-p/1K])ih^O\kB*qoW7KU60X:;!!!!L-SGZ(?sT:.STK\l'/k^4*#&DU)(] +0jh%9?JP*P,"8]k\$+&Qo-D``por\==(\UESmPW2%_]`:h%U@N=jJ[(::s#r2a;Qf!!$EKjM_*!$qGZV +h2+GJl\G&NWkhdZX*.)X3DJrqYV-)K4rTW^b@7A7,>0 +lN4AHHpOK0;a:;R2t@=b!!!#'?KB'*!";Bm\QB/*;a3@*YW+eERq:s0QS.SEs,QXdQVY"8 +qI7-\bdg$_:JEe/BF!mdD1`VD^GkmAanf;\3+g^:Lr[ +J#aK<4"/5FPA00jkEQa#s$>XuEW2Un.OS-n0A$g:7#iauSh'JDK;b/;RLBP*ndfrcQGbCs0f_XaOW>,>Gh1ltVj +M,hGf2=_gG5(=U@6N@)d(^PCA!3j;rN%.pSaj-?c;QX81d,>T+E?&S95[RS0d!hsriJVg*:\\C1ZG +]i^U>dTil6h8gBXG>u_TlPC'Yc3msIXK?!X>:1GP2mQ37oKZ0/&a;ijl;[fa!3fGn@K9egbqQbqTkPV# +gSNqP\hSC;Ve44HP3\)qBuuJJ:A:*=^GP!/J_]r*c%ho"VW)a[Q+V7loO.^:PuUQOSW,S;*1?aWTH&uf +q5su'!5MWt(BXXVX?C>b34#D:q*M@$f@u\Q/'cmMT&k;'Y=f`&T@7I8oO%V`Z#&&&ET- +]0lJM/F/gn(GC*ZD\f>`:&^f3%+^2Zhek5Y0`V3h[ZM@.!&-5CLD6Xs\.5.%\:(q^B68'4Y*o`ZCmJMJ +l0$hV'J$eq4+Hj]8HA')iEk$Pr3[,R&+^/AD^Oq$eK$Th&2/?2MsdfeDl!!!!#O +*qEb?!![,:!k4"\Uf0=#E4V[ablkQ:_-_5`eAJ/EFEus!r6p"l<`8':'/"XWZ'k^`+sQ(0faYBW=_,dVP-S6]Me)!26QDQRhp>ptc3T="t\2u0%/D#!>^A,ro+(3_^U<_A.Skf5F7'1_Ve;9u>p8V0p!!!#C +93r#,^tS$Np":mF9U=D;U%HPROr#BD_]=BHS7=nH2a=%D43e%'/"0d@rGm3D2c$-EiQ]VfkrYL$Zou+c +=6naZh06P[Bi"^(aUOk7l9XON!!!#7Armf2!3gVn2Ssle]H9o^1EUf"cEh'p\kF__D/jPV'mC'@;a[)] +Z<@'-A'eh1G%06U>:q:lmqZk/`m`o@H>>GIF[uG1q+*9HCl_0FdPjkj8B!!!!WQ+Rq6 +J;ofKYa3t>C:Hq6gq4qo%,P:?nD]h8i\`$kWK44N8tg@LMT=3//i0040=Bhqgm9WDY6f6O*3]C,"fEb1 +f0,II$"Jn"Qs?`jXN>T:Cer#iD)T,To`+sl!*`*&$in'IX6l6\h]H:`m\HI^=0/;lIV5Xbal`fMN +9W'7ZrcN4Ydpr70MgQYH.rSbX)QDn`8PsXh8:nM$e@Sbb-caR)HGn$=cHts=:"01D!!$UX0*VDa_`U'< +f9XU`n&NAkm8M2r3oWPP#sE'q3.q^IitUG$X!Rqn.uB)rM5IA^=j=Ol-FP4MrT*71'-E'9;eKB+<&a93 +f2"Tnp<,VF8!cl1]K!s6D9qMup!d`+lj^I,!!!#7@*+<-!8&tCh)eWTbmVSbVna\!e*LUsF +SogK?G,7rcgaleQ6Ms!E7(lk5V/,&Za?\p#1[=CPbBQtOm[E$&W(1ZiKTDIKlU20^!!"R=]GLVKU/&8d +R*70WX[qj-ReZUE]%P69fi!17P/m"(YNoTUjri\fLcs:rY"c$r?#:5SnbLHf0@"$A0mee9BBU=!;I9q7 +!!(A@?46f6c%p3^>9&Z`rMXLgFSV?6UoZF"`^?dX*\%!R?*8"G\^'H;6$GMemX]2pc[T3&aEojGo)0j2 +\P.-;h60nd27L48!!!"dMS'c+!)dc>,IY"On=.Y,fmrql6^-fqo>?jSi8YKI;kdL:#LC02&TpE[SNpJ= +XNS@*]cHp)-6@'5V5EAI88WTTJg]Vr`mFNlB#sU[i]QTI!<<*"jM_,7<`sN!,O9+jGoUEu>[u-HD3>]r +bh,WT\WY(R2/-o&lqMSk;XW5(1bgXYk[0fSf>5;2ep+2^QZp^D'nRE@,V76DC'3aI(=Q%6DPkW<4*`O\ +!!"\TGqf<'-*ie"(8U&"S=RFMGIHe>cXZiM7I6qN6#'+e=HaB!&0PJ(]XQe66-3!?W1JrfY>g-#S70SEIF%%o2kg8Rc/ggnfX +_"lGiZ41"bSioYRPkEap6+YPH@8eH%MMTb+Qq;SQQl5Td(!*CK:@K:rQeBFjaa5)SQ\87%gheEu#R"!>D>!<<+Mocc$n!9dnk'W0da8iB% +G_2^Nom7!OP;cB4)1ZbS2:;X#/j.&bOlhS:9OT>$uU>#06WN_t,s7tF_]B@ok2(p"A2/`A%5cl,H\[(= +hb%Hm0flGK&4TGH^YVG4X!!'5ih#_Y;d2;9[c])]SN3cF[I8I +qB\Dc8H1=GN5-iJm1]\Gs.;i9mK($Xr$/+&t_q4oM(E3>S!8(oS@K6BFLb99GC1(gKCje&"V;8af02u* +#4F(qYeC)WcRTWauk1"15>n&JG9sJl4>l83)osh;=2Lb6j"X=6BeH,^N!+=pL`;fll"YA:V5t +^^ui=QicBNZ3:[q6E6li_6`rpk0t5>=3)@H]]Y.mJo$C9Z!!!#W4n<%^!#UsT]BeOR22k3+3\ni9FgB7 +N->Zt$PMq@DE<>.O&,!S,\l8CZbSK*j:D2)da04qGZ'K7(4ia!-f/u3ES!+Z7:p%Ai\^i5/:"8%i?-SU +ZiqE%#bpJdbV5&/shO4*K!!!!MPIq_4!#DA'BAdc$>&1b.o(1+s,kB-nei+(X)K,](Oh0-YW2>UMp&>M +>Seq]nO)LU<=_\j:f:D*Rb@(E,89]/XMk:lMe]#&%ujCZ8N2_>"0!3gY-`;fnbDZ4(G8L.pSSJ0Xe0QAm_D:Zf +U1/=iO?6s;@bnCa+00(]R?C%&\1sp12bp:Bj28AOAQ$5I5>,Bu$0ip&CkqN-LF.m[JgZs7ECR1R`8gaPo3=bZ +9!<<+M-'K,I!;*,b<)@0_OO&*YTrukYWs7&G?'dJda]N=\>[u.A`JKP?2MZLVI`4/t:(QXPY>bDMUdDW +h,4gXKVb#E3kB33:4&T?Jri[o?@&3F^2T]o`8Vdb5T$hPP8%3Q\a +AbBgneT:?M/2.g]CRJ?R%hTLi+]jGb"ZCI:Aq,`H']2om%k0i(P=*Iuk5j.`AQbV"&nk8ii!5k$^nPua +o!!%P/,qfH&?nEX9?$+!!"oKU>'# +:eP:Me`E0A]4WL!!#r[(BXZA@8\$!Sf$&K`2V$ +$hmiT"6I1M#C77&Xbd?\8.!O"+e'pE7K%#^f(-#sC,J-R0]'.5F\\.R3cDQdg&^S]/3C\$3m!S8GLR;DHInL1h<0Nni +igV`.8>FLsupYO:H0!7M088qg_D6C3Wdn9sHbAlj!;@;7MTF$>s3m +F$_1:qD+U9o/2N4U21Xc,[JID)YO?''!!!#C6XC0$coj&-Q?@N?S(i%a.V6$!$oj9sn0[HP5LTd^iq>5 +`D>&m*\]5>;Nn4Pt[$Y`6E6X=4Zi/:V47is(=cC;\=]e<'n9]X<$.*$D'G2]/cH>GX;ZsVE)CQ%D?fuq,HZ%82dDfMJM0i^1`YDSU)G +7J%cg)g$INSRhVI:9NA":a='H2?)"F%"_9ZY$j!_WS +^Jk7bO>go6:)AKl]n0>FtAPtFsQP4WuARa2M +DlE*rU%A.:H?E^^/1+&&l&d&eu'D:cW((42^j@Qe0E0!Rf1W$X<(=,-`Ge?GUB3ih['uZB,p[[=P;RkR +:H1/-)E-JAIb`b7E!!!"L7j]kn!#R.^QSA1%V7s>u,e)Tp:Hl5Hrp'N2g"t2/3T9>%::W)*p8pB+h7r2 +9SSrR[C,U)"S6jnAI$5Hr0CHQ'p@>32HN4$GJB>ok!HYX9RMh +71u016$Gl>7*2rM&:8#6A$f+TA7< +#.cd]o2q>a^O6YiGks=,`mV])9P=N):[(I4U!!$CRnmVS!\DDGeJ")u&ihG@I+^\<=D%bAnojR:><]P* +mA5dJ1:dZ8FMlYBOZKBfY9i5bE2A:ENX\QY +!/%koO0"7&^ms]Ks,O:7DXgkC81UFT.5^dT5\^/jlX8r;$!:GKP(]XOgoA0/up,YsHZh4#E[.B2SBj4_ +]Wg2&BH/`sBX]o43mt(?]o?B(.]2,=e\Xrf:]K"Hm-VKg-!!!#/J@l^!!&"!E_n.fSm?JWOgqjk7I\+b +?--"V)"sP->\_W9`S_^Rb!=qqMpt5R+cfc!!(R +r0*VE,KiL7"B$NtLP8>>,ah0q(U"u3NS>,8t7&Q"?qRj=Tdg^LJPKIh-N=Q!h_#9B3!s$-"P-H?2rU0Q +$e%duY]#?GB2fE&Gc`!F(p[sHrcR3P(h/0&6Fgt*55J4VIpHAQW!-^e:$ig9#8mYacW32V>X?e$sD^;G+tG2LOfiYpX +pT[Fe[!!">n0*VF/ReIo\AJFLb$XkfYl?`c>BqEDNh^1!oMi1M-SR5Y<*2d3?%LsN2CTkA&PjUZ[l(*h +8/oL^i!8t<,MZEgdk5C'ZieBO9EE]q2R9#j%/l*r/?H*b)[q@@d[dBj%TBG3hMm%`RAg`$G0WAeBIq?Z +NmVQtd*u"\T!8J?80`]!YA2NInhgaCho7bH3[,RUbPn`E4I@G:;h5$6d?.MSL?Hi+;eJ.$&[g<$7!*hl +t$imLDWPj2aiLO\bgklH[OpeauEQTP*GFYqE(Be1&p+m8*icW/g[b3&J!!!#=O;A!!Cdd%0=7j<%[8") +.C]*F0T-W9q2UpQtWAVC@0?ugn'phU0ZZD3/!!$CAnmVTLbKSHq1ik>uh^hI(HOIK2rOe#;P7DeLDcOi +%5=pHsdc68W@cd;WX#kG[DKtQ&!!!#7-HM)G!%p&S0E1D:DpOES1(Er7Fhr*E!HISp:"l)@35*nhh1"' +_bOloTGJ_Sr@@2*1jj0u$W*aeI!!!"@@sqr5T\kOWhmm[hBI[<:9*mW;&LI-ap ++NOuOngb!^\]\lZBLKQj:E_XhjA$rMql!h7,!!%P3jM_*!,7QJ"c*%Uh!TRB^GB\E(qKX:L0>@@3ehT( +M"k.ehp/O2t\>2AL[gOg>kdDonAj5&HWSeQm!!)*!!!(XJilfYH#^K/#DYj3%Ek+WV@8hq[`-*#/1Cq0A((F%82en$15+Z0g@n%49)o_/_M`n!!!#W!Qg6#!9X"S_n/] +/qkUfpAtnhph=f=Vo^^NbQ!9Aa\D!sLSB9sV`Qir5!!%NQaGU'!(@];0T;V=kqtJ(qk6D7&If7MmBkNu +6aLdLeakcnc:-aQajWs@OFA?!!'g9jM_*!$i'/eDf^9sp=9$NmuBhE.5"B*gth/4lf[( +U6(>%,gkr*eY(/L&V9dDE1D&6-%fcS00IqE'!5LAHIs>N'b5O`BsOF!hRCMckalErZ1?GVnu#!.Y5`2Y"B'F]5WZf%t[;'cEpOqH9#<1\1> +!Ui2VrGF!DbSZ19B!!#+qGqf<71=BNU`P'$3qs)sk^i6,<`m7sT4h&0#ZB<1HV='9_3B.!=!!)GA]GLY +,6"GN:g8j/j<+LC-l'E1RcIbXn@U.[T='76X!!&'O?46i'+Oh46Q>0)V56(#qeT4qsEsK94ABB#A[A.h +OE.%cf!!&'O?46ff\[7sb>1Bsr-1Nt?NJuc-IJ)sg;f.(-:eHZ_pos%C.X&)u!!)MmjM_*!PPb3GY?nk +jroWUKXT]8?>7V8+XN7o`>Bb/.5+jRCr4IC@(MJP"1U<8\!rr>ji8hiW!-@r3S$08d6$,bGoCc0g9U@H +9qtH"%5?E0T!ldaMabuKg'pk=u,^T;R09bAW,>hbU!!!#i@K:o`OY3gP)1V2:#0Dc(!$4Ocl(5S9RV:>5A(GZU19O*_$SRGDOV.2sNus" +rMn;o*JL9"L!!'5hnmVTL#Ec!Y1,u^M3&9oNq!@*@`Lb;Lq_2iUo1-4P#64aS7jBYk!-f&T;?pD[&/fu +fjl]VL%hn5'Wp]5rjQ00%q]n>'SS8'(!'E5d0`V3XMIVcgRKG)6A9)D-T,uKhI/3T9T7*FC2#mUVaGU' +!J@-AUN:R^.0ls;b.P:MI(BXX;J@l^!i%Cknl<9&!q[`-rgcMuV5;LNnl`Q+ldX<1FTl<2a$nMS_!.^. +I!s%,?biRXYOH1BO%(k.IWl;$m4\f`:j6s_^p=[WeT76LUg5FrcUlP5pgK2"J(XdD<='AMbHs:rK!!!# +'13kSS^chMQbKl@aJ+roNDr/33.k`M^J+H[7R<=k4p/PXniPeC_i(EeNb'DO.@i8D(rS)aiRnkC3!!&) +s!s%,WFmJ1i-+,^eOV/NrHhk%\Xa[5OMj^t+FBsZ`e@7TJno`r%`PhfW!3hY'!rt$9lAQ24Enm9)srV"j +TNubI2R/'@8P?+=R^oYi3-h!qA!rr<$gF"WY!4Zr]oX[:oS-m*CpAum^JO8)YA#aS"[aqsRP2-\!OXH*8p7-T-V`h4rm1mDs0PXI5(^%!&m2M$ik6B;M%u +\D>3G(QVY6J!h%#pC-,fiGPR9bT%#N^\,ZL/!$O!"!*IF\SuYrhilfY4rTo_?>Md#@eU=Lb([b)nl-[2 +V-iXV.VNF$9!<<+M$cn5,!*8XGpYW]1qs)/dkJsH(^Am]jK#*ee,2[8Gh(H".FjlZ#,[G6%Yr8iA]uR+ +ic)7C(^]4?70GA^d!5MbNpUkeKlVN4c=3m?f>eGUcoc3j/qd_5D:;-6uHO&\PE`-k#LW.]rDC)j9`CC.5!!(58?46hf`;fl<0IqE'!5M'74E3 +H)\>K[VF,)K5q6A:)iH"?kSQumN:Jtc:HE8nXZT_Cs%HlFU[&8"O]2DA$CP)%2&UCkCqtOCt!!%OlrQkN>5G(&`nur)d^QoZ`$5i*aL&a#$T7ND2P06M(nU*1G(!1X.nb's2aEfHhGg%jQBb$YK^3<:597=o43kCmE1N:4/QCe"hQ2pscGT; +5&#Cl6,TD[cRrp$]J`;fnIU;im-&(lG[V?XTC4a[!H,C+90Q(&Z-E&X)TqOMWJq(S4U^NVe\)?9a;HN) +*;q(GO84Sc#2&M)PET23\:U;!!( +rQ?i8n"5Q:26s4tHeGPUs6]_HgE4uWIl]CtnV?_*-B&tMu4lL'RC0;!-X_eQB#Cqa4e?tcse??j5(YIZ +[BS%#SeGqXAgks!\H3MH/6]Jr'N]sRk@!+LK"MYBD"GNcu_:CemT.be:#8eFFBen0;fD%o+qTecl*SJD[WqPO=[D_iQPT`(!5PhRpkuo^dpJH!j+$ufs)If+s8LpUHf21"@K:p_OkdB#Ol^3YO3* +;ErTo^aYFh_i3+^&D),Im&?H)#hNN_<qu5>G5Pl_8h8_55M_@;eWiUH\14+RVQT+0>[JA?`@)A0S&[&kEac"V,i2l%^MZEeXi#m;"!!(4>me^ +pp]mQ:FigREjq`(!cej)`R0oWJnb::qg\uf,\XRggiN9R^aI"MS&!!'M\nmVS!k)bPa=?kQ)/nRjuS)1 +$1X`;7_*P$i5pd0o2PM^f$jC>3;[ehmP&*j!baS'u0cNe"GnQ@FIjsZ>r!!%QH+>3p!@&,W?c+h:SVIO +be@N*mZ1k/9`kCM-jg:U3@^GpRV5=6(_-7L"h>WV1H4n?[Jabp0"!8n]>0`V1uV$:o56]*^t@I00$0SQ +j_pu$_?s0h+^ogrr.Kd=W;WgrqIr&c&Ml"N@/02?q8*]S-=Be,qZ!!(q0abp0"3*0"L:"AROMn*Q&S@W +Rfn,dOh1op*EmG=l35J6=]II[/Z.ZE4,`H!5O9K`;fn..ts),Q'TXPGGdom-HP%gP`m$6[9(3,jRS%2;cGjQRk*?!rr>:=ldO%!*lMC"NtJg"08>Z.B6[H\2^>QD707MIB_%lKf] +87!6e&A$in)RWn]7*%[jtS`Dt_$Onr[,V`oO2U"a_Wa7?i+-L#f"o>Ue2!.^KYMZEf;kj*0$HN2s[IR_ +fb,a4-:cUo/21q$\;R5ZI6T-[k!Pd]jmY@;)!agnDBZat4]gE[a=!!)GS]GLX!K+cX4EmuTfIe!8[<>2 +81Ye.7Wb_oQUHhX +tNY5$,?2),(2!.`25MZEepp>,K#Ai=WJ+",#&qO=\ZFn4P:G$7YCoYO0u[o;fR'3bBWlLq`Y2g+uRbDQ +B$!+9j<@K6C'HLpj\Vk8B8EE*)"h8]Yr]CkTr29E84]Pcg=PY$&1kRP[WZ8T3XpTE19hgh.Gh0lQ]%iG +?I!4Z>*@K6C'lK'mg([leY7UNfWrp8aq[K(Rf'a3tY,K7XPeTQKV`FS2k:&nG&m@[1]R?)5%2ghYNG0CP7`YNNm8k+OAjcWRX9gFAcKZdX:ijPMM&R9o;/=1ER*%0- +A.G=GmI!:ZAiroU7,^Lo\Z)-5K2G5"@-R_H1dCStM'hsL:$I8XEWbKJKnXf&RQ>KD6c*tk!E+a=9h(R7>dA/IGpVViV_VVU_)((]Spt/RaP%"Ck!4Z +,$@K:o^oW!,])Q2Z8!`G_apMrt@mhW7\Bp0'nrG*uidJs +7I!09BO$imM^ZO2SFV5cJR;nb57[t-!MeHiWh4A.WD>OSgQp#Tp5\4R1[[bsdG&`dg-3()hV"C"G57E1Oq+r/(q:@C)VtVt!!'5hnmVTLNMqHCPEAHeMdO +,GhCAp!h']1Ag>8^umD0"5#raZ'\:tTf[Hp[Rq]q)6-QmW&c-Ib5SZ8[X[%!W:p+u,,POnC70(BbH[s. +Ps4(VeG1SqSJp:L';muir`/F9S*imZPlz[Rjd6!3d%ACWKjSnF)`l*q=_GiH;;Jrh)f`0]K#B/DD.8[fD@V$&%20(%Cdt\oe$4E!. +\pL(BXZmSC@q-\`Xc9I\%f5]r;N3\(-OcpT`5Q$B=A;WPQXKP#sa/;T6n;^p;jU"/Z*!X#Mf1H!U<2SL +%kEEltN:ML"):Om"C>FWL-MY:#pfR9o]1?.S"G"onXR]-/g3!4XV;Dn=]E44e>BL9Zo7MK^TEX[^dWnP +CF<8tGZodftC1MmL:UeuDRf:d'9ngQRE_1!T7Bm>(ApD5Rg9?j$3bp9GbUmlhf1h8b*2m9<\*B`J,5\0 +piV!.^R1k3]43H1A$DI?(9.ci)(s_W!;d:n(0\fl)3V\_o1l0Wk.;g#P^._-Ke![ +Xen5^lne;P63Op9-(4^9/4SFe:CPemT!Kl2UeaX-4>%!8O*J^\K@#78MdB-4:@a284+Tr0sdi)Hgu1LQ ++F.$IjBIelgaq.J_-01jNpq,H[+o9pgUq,(Vbmb]oe\d;AS4HK`Ue^MtO`+d&9E)dS>Kuk?^i@`]i?E]grPI +j@B]H@DM8+1eX+&PcZf[_`gC!<<,8I?PHL!8P&Gc)VKseLf=*bH12ZH&`V[<>M*0XM4(NPq +gOIcOnI$fc)E]-M#$uOi_bo>HYIQ\Vo_V4o%\[Y,qnXGKXdbJ@CF;!!!!?KY/-%i%D_Cn1H#<.;q3f-oQ^]'XZ,h+85Jo:-ZP30,? +#Zo]B2GB]^*VQhqO-t$p+Xn!.^O`0*VEd9,EO,XfC,7DdQNO\@``nHEef+ruX-n/*7.QNkRbiI?;L+95SnDp*"jLa>m5?J_m5A8uE-B_]4eB8&[dAmbIgJV#jf4-?in +lb^P\VX%Ydh/sZ]a=h40.4OGp:qY9J`"9!!%QFaGU'!fR4_?g^AXEC=PD0Weo$^jYW`-M0.ROd]o4kcj +".;PR@S*lH=UYPbZO5R&%!dHYj^e0.,MH'345VX=Q>b]fB:4aK3j.\ihib^ZU@6H.@60/-#YMi-*5#!< +=0G77cl3]W4`._Q6b(ei0+6-1=T8>a:dM[G%(o=gPYlls%bn];Ikl"m]_H?V+62kE^o^&a,=\99+'cg+ ++hZhUa3nSZh^.WQEu`dn^^"PoF@roCs,r*>a/j"@#CF3<0$ZE".(I!5Ki&r78eF8WJ,QHIlA)hoSiu19 +?^'-EsNR3?>OE=QI<3ln;RX[[SGQY(Ga\`H?Li9K7;!bd!=qnKp4j3h40b7!I4p\Ai^T+RDlOcW_XOT( +Um>IJp]&`cG4G!rr<$(Q]F8!'I?_'3m]7)3Z!doc(D.V-r]H;IuB*/udMZ.;^9GXJAS%X1Ye[s15?J#L +92Ho!Ea>7%7\XOL2W28&NptS6KSe+M4]GYkFZ,lYIQ5(LK(53N$"K_b#XTD\eFQX)%H4><]+VHG)f&aE;Z!>&,Fjk( +XVtVondFJbdCq'#r*f>R>>V7^"`"\IH4?H6Ia.6KbMIipqcPD-ib,7:P0E!<=1rAYkt;r,pe?'B5DmtnJC4:_Dl!+7SQ@K6D:j5Bjmn%Sh1>3RAPh* +Sn?7Ukeo)>/mGm(V"_-mqZYHS=2rbf'bo+8M.b-Q5a&F&k&.A8p;=Gnh&'-QR)o=!oF\2QHXH3@2-**W +Z6@J4C_8"or$mN\q8`,H<"igSrL>OF48N@OF<4!4RYMCqo7Vq#r=u$[qh]4CN6@5hC)$q2jA1o]c`%@U +CeOC;n-%jb]LMc%Gp1!!!#-:L4G0^hq2tj-uEcg9!'8@_7-=BX_H\`>7@#V;#5212Aj]od\\k]`7IR*N +.Y4pm_jpEP2=5p-OAr?G>X75O+M#kDS<"$W;_Lmct2Co+XrkmHZr7!!!!a?46hLD0c0?h9"kq,:Xd/?C +W)i>h(ot(Z20&\l`>(=;7@52kALn+4;+84ZorqDH.02B&I^->A`f#e2Y;7_;gW-\6d+0M'J*c.BptR$X_X0-?W+qFc?J +aDBAeOpd?@*Ce!!&N90*VDab7Y@6MQ4D#BmZ>AVsJEZ71RQ#'ne.c@HHtZY=uM(G>helF"Ke(gJhhJDD +AheasS8do$17JS2^6994`_km_',2!5QS7`;fmS=Q6=H2FV]!G;IMWfL5B,e=/\4)4JOjkND?nB +%#i%C"FNCL))Q3JWfdjp]S><\Js*l.\dh7o$n7okr_^b69[%!!"rD?46hLQ6kJT28r9F=@L9pq-4r?Q^ +9_O$2Csa++(YiGR?IbQ"K0iK&QV$RO#*01ijg.J+M3Xd`$i_W$^&[^9&\mQ&4.24o@?$I!-.QC&FDO]QjB;"m,n=_+S+*NKf"W\q6rNYF +=H3P?3_0F'pLCmZs*t4<.em\YL9,pE-nd9dJWpn1MHJ[gW6:!8KDV0`V4>8h&khb0^(oioF&&=hTO1.> +d+CrHL8!fK5t>oC]`ZNn$#5[qu42>bd`co]2V(>:\$tD2XrbSM_X:DH5qk7?4I<:XO8>jl$J)pWNp6M3 +e\P!!&Nb?46hL]%[#?JL]%]/bT7CjM`R$gd:_!qTt-F^U:Waf7Hro\]dh?JmNi+WgYfmpAWXC>BS)5'2 +[7sh,q,6m<1hjMX0NKEN<*!5:tX>]ACp?n!VdF;pQ?^!!"(+]GLX!FgZL7pVjC@j-5Afc_(1.ZVM2OD] +pdZH7l6O:@=b/a.%?:OfMXlfQ0cd]I%3EEGqc4Xf9*8kgspjJGh/g\H#teFMT>[8CFVV69#BB1S'G#" +s1+<6=Be]Jq4c8[l2&VQ1p/=jMuTKoGE2V/\fe1s1jj*%"R!!!!]'R +;D5!!fpZk?65jG*;bXERfN">173WX,Z2Z4d?g2&Pe$lYMjP'^2@(bEkmBi?:q6$a`EY"-I'a7lhmP.Mb +fpqQ\CfgWN-erB0BhBoJS'3tYmVbrha8`[3TlZqe9c%nb-P9d63+4ssPgZ0.Y%_WV]l<;r$2CNF\K+W'Id'G'PGWP#+4BC+D6Hf" +:`%WNho:Z_X.7V="(ejmOG7(0:n-DGppJClh^YWU]s.1?46hLY_9tqs*3+)HP +u,Q]5HB^-@Kb^Nmio2RCp%(^2!**a[]or.:UR#;Zg6b9i^N^Q5Eu.VZ#(Al=;lT3VbF]AedLRVa9cQot +'&B$#nuRzYQ/r'!5QK5[or>,R:\,"]:c!A3]X,$E)htM1:eb`_A +lCm]Cc;m8TX;0$5"[XNkERDBYq,@OZ/#m +e6HgB_$U`EHPXG\=6SG!!!!QP.VV3?stLj4h!"a:\(B^8qY/SQ,F_K>3j(0O;2c\7Bi( +:A"sP&)OGep5oSa!rr<$$^2A/!8P9X`IPYKn>,=TI;g%hZ!AV4X4s"%aL/4i`!M-5$Z3:`PqB2/[E[4@ +Gp^WigFDHrXE]ck%?AE)1Wf:rX3?FGnDZKICPMMbW?tBrEI3f/`S@h_PJdJ%!8%R&0`V2"Z.euGZbk^a +d6J%3gSjkJG/pT4X`ER(2=<'+g);W+fI#59G1V'Vq;De%,t\$hqVq>%T,uen?h`E5l75jtHQ&0I.J+li +*\UgJgWA:-^F?@h](dbbSiiHsk-oLj)gJ$*t1Wf!IKu2XZEIHY0>TEq +3<0$Z!#0]5!5S:S@%&uBl31hV[r%8opn7-989'g/aoenbNC]WuIEPUF/0c>5Hnjpj`h,7k\=HCKQ#^1B +k`8lsZ+TiM]osV-ll>=5.IGT*X4lrG@aR9GFmpc;b5hSC!(N+f!s!/p5a?"lb&]M/ZH$9Z=!Mpi]QF&U +':Y#pB6(\er.9#AP;2YC;NdH]n#+K3`Hg&.0:'o$R?P7R.addsJ(q=j[hOHj^8-_[4aDG#NSW%c4C@:J +LUH^4WZ]U/d#Ll(Kh[#Nbk,?F!!!"C:L4G0E76G,1RiBe_f8ZqC";V'ernLY-hD9[<`R?Yod3Vl&$H3` +)K(9=1p2-V54obQ_Z]Z+,!8O`86_].Sc"aIfjd@Qe4dJ]Q%@*'Pg:&XX5.KpsAdN#mEQ;g-]oDuLeL1]99=h?4V-#e`Oi=KUXWL=-tfuSXeGRX_u$ZD,nRK)H1"IWIp?l%OZSQ*4u/.'5[E$ +S_KF=Tj\,jabss';cWO^3t$:6$1Z'k1Z<8A(Y8]0jTN2m]lP43)BZUo/+U>N2,-.sC`?<^f.^J$6F8^<3XjJRU> +pT+!3MFrm"*ipk\5TREE-fb"5#Pnuhu?Gt*)1Q#G4]PXmW2an+VEp#<,S.QB*o2.o8@e(aJf%Ub"W.GrEZ +XP)9l?B#AFYFNk+VUO)1IK-d!iC$mcSEAJ7?srd)VsZ`mX*qAdOk-e'$+h8Z!!'5aGqf<7h&G%*3)OU: +76WZ5D>RD,eKm:=9q^&qZJJOtd>$o+oR:!fAr^D"`SBYTLNi,!XFlU0i&M)7Kt.M9Wfm,!9qAo;iJSI$ +B5]$Q*0si2:^=4+[sM8SmDrW"`u\GX4h-V:e+Tel0dY/J>_>n/C[Mi?fzDNVRK!$8sq5p)?b<(T&,S4k7+9D$n4+$M4$C'XW +B;su`I$f4::Eji;iP8I>9i[!Pa;E`q6-^=9O-bUY49H8F\CmmK"c&:&'\giWa/OdF[Q#>%MrScIE1Yrm +2=&&;j#H@u[\%0&F(]XO9R%1f+!$4E-Q`V!=Z9`=W3[U@hp6UR,,.s,#bla/qk5H0`-Z<&JcaH!#X"lU +uae>b!_b8Pp?Q;7A_>AA_iu^Ij-Z]amm0tgG?Uc?9[hhRa5jM-SF(2Ac`$K/Y2HLM#u9t`[\7GGg\Jg2T^!q*V=r$"m\s` +#F@,9jAE8j)/_++^WWc/#=6E@*AL#+5H?_(`g[#5,5#74 +B_7_S8H*Y+s\C/.rEkSn/G4q:1nbn\:5L5Kj=e)b0.K7"gWC]sB+'>;1ld40Ai9o0&?nhRBaV1Z-q/_n +90*a(IKJpTJDUilUmgh/p,MT2V4139]80?Jf0#OVd1iMQ8?Ru0W!8nI1MZJ@!Z'Z'*EkpM14LF+G)Qm8 +]MtSbs:s?D?Iqf$ZqBW]m-+$aM>] +WA[c)f)m!,!mrgEqbhC&s7k=nL*OU:beonh-YrqSjkJc^lLG8_4$0BK?0)ttPE80Hm!!&(]&u+nV;&a* +n,>6#>R"-`]A7E^8D[Il`76;C\MPi=uC,Oe)ZP+#o%-E]hj&q_CRIg(]SVV^a0uWoS>^Do/eJJ_R8IXCp7Vq0TE]\8$mOBQ!\sDdd0tCK-F1kA'1(c +gXqK5HOiqo)-846SHMcot3g_9J.`c\1p?>f&jWe]9P]F7H^8n'@2p6RGql@_7TA.jY0D[TaG5qUC^oZV +9!!&)Hi[W$6b$L/^,r2V)gOs$QPSaoQq1PY;Aol+3UhIFo'kf6;W:KPUp@ZD8_m8SpN[dgG^T,g;=o\O&!*16r"p!Rd.G2; +1>-m591hocgCZ;@iW#LTe#%[[8Fq2U0BJ4Z$_.(`DH?CLf.FN!'e*6-i]kcX)8J[Vjo_OIHg(NjadaU= +]bP7CfbG_1>*R=r^o@dU`4_jL2a.lN>\[X/KIRpjlA^n.ddP;%1l6i:WS9K+@k1>3S=hm +kR?KU3Df^1Y!!!"!!'f_O;A!!(J>:qN8V@Bi_\4S[__jT]^Kl4:Mk9u(H)6n!!!Cj(BXXR959cg=Sfg`,Z\WO>/b=7u!H4gaD$$\c2]k-k.1[6HS23QJ?RMbai[mZk]Q6i1Cqn804$!!!",%e=' +/i#9(&&B_Sqo-Cm'h1SV +$dHDU7JJ:)3GQQt@-4djnD)ltY0BZ?l^N5EM3lV[E/E]47';@EifaRo]!;+?j!n0RmoM.%@]>3e^>Fcq;]e0ni7&,n-C.BrH^0R$gcq@gP9qC +;ELkYBQk)U8nmVS!!4Wd7@K6BfBg7tXR:j7:m&r?4GN?j'KiM*@E,_hQ3*Bn::643Y-*EHuX6m.II?FB +ZH:>h9WO:1PRT;`+BAR+h +;X3Yb5^o[cTaT9#]V0_dp*8C"QXo?YeilLPC3@n8"Ws8@MnD\8-K@0V2*2m%jcCDNkq>$C*Op_oJMJLt +i)ogZY2^2&Tg:>H_-\kq/!!)NHjM_*!b[eFB\?![bjpL>c]XIL,h6`nHJ:0BR7l0#:bYB3OqPo$OQk6^]8X +7!!%)mGj:N$mbEK#d_1Ns'=m7k#VVZA\`dLDJ^9Kg_u-"`kXcOMgus"W0e0jrT!#rtWlEjP@;uq@@s-% +_m;WW$(Y>A%CGGD=FhT/&*gm+2#ODfN:YpSa.m7p)h:"e;2bJKQ!!!#:jM_*!b[d2WBs`0U\a+YCiE_G +c9e;l2_MQ8Fs0WT^P8*MH>hE3V9&S>bQhECt4;9[:[Ph,[TmOOhGLqil5$(?lX3l-;?h["iVrY;[Sl]Q +'@s53@p15.Lq7CG%k/s.54LI4[&&'Y$msi1('`7Haabp0"!+=jJ`;oDc[M,FO>#$tRm\ssG$Go\bgl=: +1MdDaoMoVa#H.GQu'-jATpXj5-("nF]o99nAee(H'^7Q&#Y[!\>f%Asrk9cP!p=,A%[L5_N^8\9n=`F6 +nj`r.-*](>d&V",m*;5R,aY@L&j+gW=m-F\(n6ZS(!!$i-]GLVi=i(ll?Tbj`1-Jr!\7;q1Q#%dJhGdg +lqcK)O]JrR/$<)X^ji0H#X_:oa]:YZ:bMTMFMpmVGl#tM6Co?Q8o@s3Vl)j'48[S)3-+W]]L+b."99>s +Zb1Ldr#7?5"r[(dn*_2gh\arc*E,.,F2GI3)h9m#X!!%P5jM_,gaH!ZfKa0QB"uDD3Iem+<`@1u8Utm= ++Y9Pu1R[foB?%\BXkqKq=-@/&31^D[ss%+#nO^da^6W9bs$-l*f5iZQEt"%GJ2[Dk1_WL0lOOHo"qWU^0^j?!*Fug(]`1pNhOjd<=Zbmg7c3n?RUc-B+"_'riqD,up2A[42-\U12$-O&\#>a#uU[,Uf4[3&aUY.OXIaso$HFSfTFfH.U +d]R<4h*!T`$jG%H(l!q;A1R"#p@lNqD!<<+-54W._@->kTn56$,M+WPUfA3XVPAPeUKt#V"GqgbY*Kpf +t-]BoU\%\t*i[SE^YH#ol;WAaMiVhnh>S'q:e*09?#KpWK>Z,Ke'6UAkpu[*sX=rEp)s^&G(FQ7^>nlp +-7U?;]Jh[6*!9D*!5knP^dj)b@a?JJR +i?SB\t:$rJP`E@0!gj)fjX,;rg^hjI[:I^E^kJaEH5'S?:l"?Qr)iZ/tbMg]c5-*Y[=o!",jcLdH\S4! +Em0!Ch!:,da"2L]%#A!7,$=g9s80rJZpWUs!>jm,(=-6jnA+4?s`ANdgo&Aq/?.jEoM=]K?\1,68N];) +./fWoBWos>uR%,_Y^74qN3\A;5gHGT;!,u0'`;oC(`lqpE#A_mgc'LOF?VfG.FHWkh7lJI +\l5F +pB)D\g+kP?>YkfurRR; ++&mSJ;HkXM,eH8lnRK3Bg&Fs91i%-<-DA/"$+uu#XHgO*Sc#YO,85>TY[M+#Bpb`5Zh;.cLj8=s?3^C#iKTg%f$2l*Q)Sn.7I!!!#78Fg3i@(03*$*1+ukO%WlZVJot!b^_9qoo^+uOBf9NVqZii#2QgiM=HrBk#e2O+]HRoqm'ZQ_>jQ9^fog%nS_?e>ThK^YKF@pJS.ha;'t@JSjMK'e&hEZ\?I[:H%[L1&V5)AD^a +;%5C*5)BacPbo5j$)o#U +6lG;lK[ol:clgEX[0lAel"J&Ot]S.iqp=lt:*^4Zpl^i(3aj!?43P#'m^`!1Q!.YBtMZJ?N)4c-[P4"= +Ooe*j=+O-NW/=a&CC3[d;Taa9!LK@c#2-\A4(jS$:^p^uFe\JUFTG&V!h4?b-4En;VQCY[8_I\Z\4tj( +6k=Q?e!!%NQaGU(LFX78tHPKdsHu%_"B"`"N]8sAD.?Y_I_!]JsnkDm5D.129FCNCVn`t,pEnXc"=IbI +0gRKKDDML<7;16"@d,ct,r>nWtIki[[OjFn?RK``l!8q,Q@K9eAN@kb$73o +ulK658.r#B$E:JS?hA%u[45I#.,KCb:s4C`EX2Si'CkN^CK[Z;J3C?Y"QTcuk8G>uu#fDtrnr%E"s<:?R] +[HZc>FH^1mPfW9JCbu+?K!!!!^nmVT,?1%Q!/ZI>ZmI%;mW1`=cA[lOD!BrC^l+_Ql"pFe6H^\jZc-5!!&< +.0*VDaEbRg%*/=0=bN]HuVPGilA9Z?&OnH]7qXc>B,3-*UpmMW#([_]RLYf-obIEi6kW3V'lRVWLZ\<] +rV;uoHMQa@Kmd"aD]aFqBWOT)4z/!:\N!-$0$eST#E4C"l>.qc"#dj)n8VkgebicCmOUn$+JC4rpaO]s +e)>-tDr:OZJ)e-@p1Ja$@#EAIB6Z>d4*:S'YRd(>:)o;KfWNfNf>TF*]&]T!!$,m]GLWNQj0 +%h,(]4%YLgTYp#I1K<,p,7G"ngu\QtGH8T*g%7rG-SHT@A=.F_)Qh);dG*.35tdmh>7Q$DA\gM+i2'V( +HO:lKZOg135"X]&8jVk5BJo&=u#ZAWLi/DQl1/'TUL!!$D8nmVT,8`P^E=l"&l=P\]:VB4>kgQ?jLbq_ +K+E:`7&]1X;a/[@/"0l([qdqpJ+E:pV&GWU0@:DF`p_B'T38R>?!%&sE"osrgIQPB@hotVJtS@# +aGLjW6<;t4O%Z9K+MGWt[DO`Ah%O\`agDn!2d`&S,!mD2*.2>oPMc*OR"[V_se+,dXE?elM'l`B(->]> +\FYe3oq`;flD?TB)-nC%Br7,L6^%C6*6/kdDIUjE= +^l)HXIhSkE)8NT6,Y04g/Q"ITG7Zk2THSh<)d]B?c]ZT3r]#p,#>>T#\8U$)D2/JeT7YE4[4hea[ +&7K`D)Qn8RI-!5L'"plk]Bj**L4.I_;\>F!&?Q0-tV&'7J1L;o'c.p!ai3)34PNK,ZMHB[jLIVV%*A*^ +Rt[S;O`Oo7!1i9dW9bua1jD:M\=:+Nkm7grIWl.i2.>$dF5\%JU2g/TSAosj^-A-#.@!!!#7"m!W&_"* +fePCAB878t'_fk7]UWWPaNV5\_T.OcG&8=Z.(S/_@MS<'Mj],tAFb+l#(Enb.dQ)uF+<:tr_]1LU4CWj +97rW87BV@.Uu/8+EsCqe2pWmnTeNR-n,4`($%k2&6WEB*K+<fp4@0P0M`MdO&qbB"coeH]oGH@<9N1Pb;J9>:G!0"Y:Y#4n7:anK20qOJTJH;T=*e(4tH +1>Rs[@!!!#+qGqf<',fO,7i3FMqqk^A!2k/#G($IYXg-XDTH`7=aD.Di\oc:AmXKtW\X.Zt^9",ee,g` +_`Sss]L8E.(l\AJ)ce8jq,5M7^QcaS2@a9rDaCYB<%q8ODM-%:"lIf%`%*!-*?!(C3&!"WZ6TJe*OP+u +5\EQ37Rf=Iu@a(kdGPPqcP+mo'b?8(W.MpK?N24Skuipat:R9i(K!q!>Nqq4=)+LG!p4'fE,QOifg:0t +TpKH6*;rLYrGI;q=#f:2*-rusrkT>/T]@Ee[Bb\"jnJt0J^"P%l96 +"P1PnjVq5rVp-Wf/J[*GGp%=:;th>SDN7,BB#hL/(BcV9Y(C:Khp>Qr;f;sk&Fm`h5=%s[4WYC<_`>\; +PPG5(NaNl85?VtVd)(BXX;4:$3e!'HLRZJ#[Y;n48UKfUo<\13USDC.a8*d)%91;5Y,pWW%T-#%!9pI= +f3KM$88l5b.4]=[aAo'.Km<3$h+VhhiTZ]idLVt+:V-J,`V#>=f'\c+r,!!!#E,qfH&?m]`+io/ZNBk( +n>F/t]!iooHTK'7b[h:sjum?(*9I;Xgk[U_?:WSu.q_mUDp-;>jrYK#Do=p,$meI%sudX>DfG-&/*!!! +!?Nk?2/=@ML6D_$@u>\QPgk+4$jD(A^=PT9,:>'7Z\B$DBhFD%JX'H#26 +^L&TD'O?ARBsG3r#*c@/]\4i:3O)j]4XHsYpJ;t%tGZZ,=jB,[r^!!'gjP8=<$CWVgnR5-aO2W')h,3' +Ubmsb4hX(ZMr3_tPou/rj(#3FOE=PimS@bC%=%( +2hRG7L+lPi]fF(EsLYLNeUH(VOkW%Ok`IfE^o1]m^XnDNBH!5M`8CUsK.kdEHmUf:;f]"5Z2nuQ7Vj,K +"5F8dHOW1r5B;Ed)u37Yr)A[oIQP]KNK;S0)%olB55Zf@\N(=\T-[S/cQ^sHPe((!G5! +nX3QUc#B!l0YMR/34&'A;PC>PP*nH7OIE&i+`f^bC;V-HRq!!'euGqf;hPL/FKOeEi_X8/?(+6b6a51i +N=p[IH-SZK@kn^`-B'&soo;=d9#e'-nn3F$VQ8'-[C;r!]8mqF"h\96?E,aVhRj@K@P!3dL7@K9dcM1% +%X^0H+2,e#9+MqaZ=q76bG=23kX]_1[kG*8BHm+nZdcIZpbf%b+QA+iWr;W@DLVH?6 +!.P4%0Ye^Gs%Y#44>T$mo'3M&PiDGDg_W+H2^cX6#*?WY=Ub[LPP!+7;I@K9dceJ@rB!]=jgU6AQn[Y[ +Rbh\>'M5WP?6[_JrJg\0.a`cF/Y2Z$?Qp:^L,C-CBR:Zm.0UVkhXjjRhRfr;WO>EgWdWdV_!YjZ/qhP% +L&A]=6r*18Y;IXchM$'Q)smc]BngqS`8 +s-gM>ei[A6QImg0erMXLj1aFd]iW&>[be*'!km$LS6"lpS_eX$::!5SPq(BXZh;rtrTP*<==3E]:NF?& +CO\Ks/9b8q:lp')T\C^I]oh,7%/>AXV!G@.]la*DE`%r=sGo2JqH\c9:@8\s4hg@=8DR:X&-!WW3#\4c +C%!8r0?#k_"lKD(\YI9l;+]W:6SmA&!R(%Ui^6>`L[b(FGNBc@V%s14"#6B8g1or67.8s5bajJg]T0BT +_8qA#7-rI*B%!!$u)jM_*!(R#Z=,-b`A=nq"U[!?IkcDJaoo%%R0h!Xp6?gI[0='T(HlCN$#=FFaDFn4 +OkdUtOQb>nQB!!$sOjM_*!gmgrVgGH4=9dMpXk'5knoZ"PpjO7(.-OoOY:188a^8J\)-.l9/9257604m +C`NV'pK91Js^!2)hg$io(T[TTlMl>odGP,&P07AX]`I5g+sn*/p/-:G!PgblUPmZu54MN4l6ca0geM;[ +'[F*k,e[F;S'!<<*"gcB^8!,uT-IsC_PB:lR&=LF*"?`ImK]RJ_./]iFPJ(o#(h2V0>c,lTf2T]m/C^k +1Jh:ea]ac#ak]&k-VMn)L:4!eg,[2/lE!!(K0(BXY]k)1lWY68h=lgZ_%7M7(+5$3fY&`-/jZT'hhloCeF_)ZTkg]-/g3!:J'ThgaBR\Cs308!^N(HrXQ->eX'\eeN ++On`ApOgtX6q\O-G[C/pgJf%7QYOr*#l0n^T\2#mUVpI&,C#",@@<$Mk?M3j!jMfo`mbMmEN,J[r!8%?u0`Z0f^AI +oa0>@A>Cgn6bHb[4=ql77K97^#`>^`WUWA!Zt,qijJqd\rYh"Q]KEUr+IF"qqpMj_3)6jiPOUV?J>8^!%fQ2psc!&K`R!s!OQXjgI<))nQ>j+HI2BdK +<"j,<5]1CEs;LI5jrNmkV$7JF3?@uHHc!rr=?UZBAo^`E40bKjP.I]h0:`lk=?]Q*XpRm?e<^c1;7`Fi +HE@)qO"LYYalq97`gjkWroG@1-K#64aSRjKcm!:E,#KGUhaqkH<52]N]B3PTf'@Y9RbT5?gOF6YB!K'! +$!DNDo@]4FqjE<[)d/cl"QJ=@l="p")/(LMWo^)5-qOn!lQHt>\0?41,M;Q^D-CE),[GdgdIRqjD*[mP +LOX"OYW!8uGMMZJ?tp@U@OV7u;S00_BE'eYRbmb,d]]dk_ZgSW1=7pE`JaF'1r+l>F +B6QR@WK!<<,0C%>^5i2.eIrpKZ%Y6hYq_,Y%Dl"?Wq;csbX?ae4<58KtFi">P>mb+GH39OrKD0rG2VqX +Y;,hKFq8Zo\S]+0'h;JWrU!!'h%Or"3#2_A$8mm"HhClfsuX'T=aI9t^b-=%`5[EMVO[?os\$X=g=ZJp +LH\9gI1^CL;E!&mVY$io(9pE/8"K-S"3gV;'I;Q@La_j++ZRE/K:bSVd(?a@7gRq'3b'0+Zb/qN5(-X1 +$BJ#+n"+6B(-X;Cp;!3RFt"or8#:j$\jK-5YjKqO)$MIBda%]\'r+8JN+MQMFk?b8OEgs2!Rj09_ +b_IG0H@q5]YNaT(oKrbi/E!!)`7MZJ@=V,6L=ho#%Ep,)[e\`N``5&EW1+/]s:J,&[PR%Xh%WQ=jdPC1 +,Z4PYUsWoumb-Ssa_pOClks2`\+!rrVG/ZNTPEe.0d$/b\lHkl-RG6S$IJ-l2)?iANQT76X+^\O?pSili=O+7)Rs7nnZk*p +9a5"],i!).'"8*D\B*WMK"[%VC;Uu*b3JJ."M_X@+D&`^T*A:.F!knO"FS7Fg#-9Fd_RgY>C^T`*T2Uq +Q05P[Oe=_5[@abJL-k^\s'tr*oGPnmV +T,675uQB&%A"n$,a/RD^DA^"?7&.Z"-%84,YUn>O6g;/?X*)]B. +dP!S'ptmQIR&E68n`"3[(3n$K_E!!%NMDr/-Po&RoBr/^l_Ie)ZOro`*5rn0O5B>Y7E(BXY1W`mAOK8+ +H&jM`?"hsPARTA*PU\Z:[Q%Qmo7p1Vd=P$[\=,NHGWSM888TD\LGf-"A*[9VZes#no7_W(NL^A3RmnD5HI8mmC;Wdak[_7'mF8lahQMI[AR\V`u^Br'D_)Gg$ukK(Rp +Zi!!'feqrKJ\g&(K`5Q:3ArpK4b5>#5j!,PC+D,qn.Wq/9;0;eteP-!.tVUd;TQ$dX>a1@)u+N?pknmX +6#L8t-eEK]#2hACjPeB$ZD;AfE%AqB3d!!!#GqO>7qRm6bE5C2n]aaa<9s*=C2nmVT,)+g8dVRP)b\n4 +PEk>N*M[s^YclQ2uR/ki)kq?O#L]DL[KNJ6!(*N2fB\imO;9lGp5\DKjNR\gr?LbRukRKjgC!!!#7o"O +tcX$?O"5Q$Mupl-BokXY[;5Q.LDpQlZu!6[p/4*(+1WB\@_hb+DB:?\dn(a` +PFfkV/Hr?Qe=`a=&!N;S_mnt+kH--UI=!<<+E"@)e:c[P`>TDmdkro&oeoV:=Bh;A07Ds8LiW?PopBeFhb".,-ia_S']eorZ#m_4r&hkg&hhX, +ghFW^1\?J(HNp0=Op^!Prsh77:!pZ2?-W%S>T!+6H>otULX-Vp?3gOK*=#OWfi"p!e/DLHLO(O,mkEq. +`[?s_kNLL!i54<,$q[p(pF4Jn!pgVg>nqUs&i)f-#"c"X'mV]YT:A@@4/jF<7;=.&",ZZ^(a!WW3#F84 +:hIeB%Wq3Sc:rp48^Hh-7>:Oi5iJHs>U!J!mYs,*C7j/iK[eI]-JK6q0R(K=E/G&_=Rm-\Ak?#KbJQFa +GuhRUad\+\,/k#<%!hf^*#a+bDn6b(C-Q][:AmAFqZlf$1QK9b-j!!$tt?iKV_5PicgIe&\poR?d(rl> +%`o&Rp-q)A=ci3Di^!+8`Oh4?PBM'`UWnbRO#AafZhs-aSYiVMQm1jK*@Hr4!I0/DtP$Y^`rp:?VbpM/ +8Eq)"aNi$0Z5E[rUp:(c^0ho1OR;hNg47Fld)O7cgmbF\e8!8s"\Y1ocp!!!!Wjo>:os7^ +/Up1HViq9OQ`X'^js^UtB`=C%AdDPrc`8]`=-(:@@o$7]iidfq>Ue2@\o@:,H-GIOsr_H]"Lq0D_>5PA +&Xkl:\`^]T`9_uId6h>>@#?"MdjDg$X^+s[eZ!!3dd'1Cc7`0Sjc>!%B?#=upfhuj;u#Y[L8A-l!tDTT +c#'9YkHO<5Yl!`6YV\[:dKS6=[uZ`<>tqtb$kB^N4=X(PL8Q0!/?(djIn48PKh,_5)mLeV"LSKIhhj_P +kMhpL]?aB5?Z4Vs,`MlJ/POFQ_!I"R3E,Y=.E8^B(DQ6]$,EKIs/-SN1M5[8f[Gh12JI^.Rpl$?&RD9l +5HSK6ch.7o[J8WmD7H*JVddLZj_n(#eP=C1`Gs8:JD1mZum4lrj`JYSM)mNoK^9;3\'OsEWF0JA_;8\/ +X'(=Vk[Qh8hSIVO_EoKKd5Ktd<:XRbLT!1H,WG6316XujS6BI$04,Y<<:H*JVdd^abuZ_(iOo&]1BgL< +P7Kr#ggotLa"o=cIC`of"i\:/!G^r)l;OsEV^,\_pWYp;ohL`K\qha:CLT!4Tc$kA +s)K)8'$,Y=/p)9e!b8WlO_E*b6'aQG4k+?qp@ng(?rH7f!MO1r5#-YdCa+'r&-DVC`*@Z%7VQbG),X5[ +aWOX*M],jAm-(JBo:%?X$i:SdeB6SnICgAe`:j7AUE0Yu4`VU@Os=6^6$.sZ,U`T*E)pOE1+5@o$-#3u +;Hq+,1JOR'4u8Wk>jVdj$a8WqRod4UW7R?)XlB,[E1Mj;d+qta*dRS$c7Y[WsrB=L'1s80JOI@"a02XB +>5GC@j`>_aUsOsEVF-0E10,Y8G[l`U76&@m6q^UY=rQLT*+/1E;LToC2*%gTh8V[/-+7<7T93tjZCW75F)t329MbB3Y8WpFgo3t +:SUmo*pfhZC&E;etoIe;GJUBL0t8K1;5C;-D;F/B\%kD-gcf+j-Vne;nWFC7^e.5t"Imk3$:S,]c-Y,f_%i;9>)hUj&EOsEUs5P&>UOsH-Me]m]:1_:Q@dAt@*f[DoU!7*hoT?]_Ci,tX7F8SXV/99Q*+:A< +@_9$\i<5"*Uh5O+oSQYE$QAkCU@AqVR@nOQt[T!CYM,l%i*n(Y!GH5T3l^RJ[",EGuGc.!6T$Q>A&lbt +O[!]oc^RW0j?,Y=.E8ajI-=HXqhH_3O,2s%bWS9O='2Y!qt<::,Y=.El*/Bi,tZOp)7@'=Q(H!Frf]SFr8e`;A2" +b17i3FD6ouqA:=!&!_?S-'mYu:a=2b>U_5ki?)r/7%g;5_,gNE9>OEn +)V8NO&H#0<"Jg87'#S>&30T@=aIHXS3WVS8;33bBA\\U%0g/4ke +sq8b3o[fh@1aoi@HJ`Oo$<<_O$='',Xk]"&l*2I>>8S([+o,Y=.El!2Gj,tZN'g/*; +s.XECs*,p9AhW;3$4G,6*`jpln?nr*%G-*sHSOX.oA=F)7u*4D@5ge8/`j&NV-?!ef1Y896S"lp:ZZ5m +h\ao>I:>4!3^G>")E8Wkp"H*JVd>/RA*EO7)>1:S,$Uo]rRp\L0/[%>ct=r%V/mm3D4+ +=m#Omq:4&JX3.B[SF_U(Db]c]3(g$;:M,7Vc`V)tThDW1FC[Pmf9D1/Z78Wk@`XdBntP,'t^](t3$q.p +"o[;!"&mciS%b&Db_0l,tGW@oK6W1u.%+2r,gV98D6m!GSX9N&%$cTTg%HT>8hV"Dr1X#kIrE3@s+Ve, +D+E@XcnM\ush6Hq#U]$TQEh`427r-u7&8Wk>jH<'+HOsFaOjKOT@I$c@Dkj0skP_#.MP7gk:4Id"2.0G +T3$5_>ZpJs/T2K1*EhK:GY,l!Z^a\lb7A\sX71il+F]#Xb*Mg(7"L;fL?qgpSIJ1)lkr`eU?gl+6e&?EDg/=h]VSRE23%\#EO)Be+XrC_kZV)Gq+t^C?p[L +E9j^MbhjIXZMki?d0.eEmFOR>?Ed:*eqX%]kJlh>"s3pQ0sssC:8;6Ynoc!OsEWI!LX`sP,+l3O7j +9Mn]ea3YZ'YPOda1C&T\L$1Q7^fZKEn7U_RFk]F)!(CRRNUgTht4mu-DjR)q\^%EfeVjuT>;)d]L5;Ve +<5)LI?q)!.HHs\\/*5HYCm<1CLH-LK7iL`.>qCg4WuI:;ioS=3^?X.FE]AHsZMPdpSLmsENqH'jZOa6.s@uX(I_'M[9,Y;1*H*JVdg(JnZmqH +<),Vf9GFFHmI)0NYVNDf!cSM275`(4rc,&*WHMqtU^ADC`p +@(P,**[`KDK\A&JBmksI$-I^h9#L&#LK@I_6g-2k!1/F_H\:I^pH=A[%^Or@9BQ@D)'n-k4#25r!ooW4 +W[Ta!@%\a3O-S4_Y^&^J_OrP&*X)Je8WQs/ND$Kepg"F7[] +Y1G9Y;jk!Voh%28S]oBM4BW;jC/:S8YH0PQ`=K/iBu/'eD*/8?(L612]d^Cgjl +XqCZ::akGlCUS43Oinf78,'.GY2lJ9o[JXq;dBZIg2[>S_Tf):aW8WokO1,"q=8I%PL=Qd=lMSepQ=]s +(WR_RC:g?dRXFp(Z%9i/qMDFPf@C58.=*k"QKQ1VKpG\X/4oY'.bg@mS:F/GP;>Y?lZQlPhp6Zq\pqAK +%pCjC[Rn7\%38Wk@`@U:TWOq*+/q"OMh:31,q7#sQp^X>&@^djb.3?Ik!6^!)K)g;!7M3@UZ00PlAV-T +1r*jG2u6#G(j3^pb%YF4`:IJ(.Xo$7F+]piV=K'K8\ds1o(B=uS_OsEV^?BTT=,Y:%]T"i8Ue&fh/]XL +UEA_JIeXcd;GBth.p<\j6Ko.0Ck";WliAg87rf*F6oO:(71W;>Cu($C[=!M$n]'B#Ulfc&:\\g\pP[N9.O%B_JtDgL)%]&Jp%5J2K#Un7=0rFYue2YG +KgZ$-0-,tX7F8_T_\Yp;n%*WE]IE837X3(Pm)-DQJVl-/Z&FFk'ZJ12_4YA]2>gm>4^@c#TQ_=#$CYGH +LS>@PgnEd(#KhCUBNK[cD1T:]aNfDj\8Jk9Rb'^rY\$*79KY)q[>iVMHb8=trWdX',q,tX7F8`sPh/4l +"".XCQ[]!hM_s8(XArTLk@m?JKO>YfZ<.M1nsA$QaK:G#Z`qT;sJ[cssOsEV71G>%>8Z211c[M=thKPh3WT-VjkO^"T1%NCNbl2GQqO! +_1&7jj-jI^/2\l-a<*ds>":-(_C3A.#gEL'e3ZpP@6enoA+:LAgEm>asja=m[Imj#I]8Wk>jP4i?k/4l +#MKlg^;\'L9R1BNqW+S.tp9aYP^SY=7<+'^0H;e4-;dt3jLB>$5m%pK\_SHVN"N=h58aTe*,RgfT4]AU +Ahn@qMC1Uip)E]6Yid"eoUY+g*$Q6]%b,eZ#*@S)`)3`FLk>&fibJU]GoEqcB&2Gh)95I-mHY=OG:d@' +"RbrXO@DV)GFj$edP^'KXCB["k!FPU%=rrg"g$OsF`Xk/E +K/l/bd+95m/O=[Rk;,m@ZSm&,\)DZ5r8R#]Yn0La%:`&@gR@U+FW*l2WtPgc8Wk>jH=uBZOsK;RdA4,bn/aSA)R#`-?IfpB>Y6 +%2otSFdq:34EC3P`J[(UeRH[EYH\N,?7kkb8IcB]KGm0r$^3K+Cr@da-bc\@fpheDIq-59`G0Gm1/Jal@j(H`Q.;aLt3nI +Js,Y=.ENAE5R,Y9ZO33tdr+_1KBTD[s:0>I;=O1sAe*!]8&.,1Q(/+pR4q;H8\?o+XDKbiAhA1 +h@WQX2@8Lpnm]b9CHq+MRd!bapZeRGfse4B=4->:bj=fa2r"O&l[[ +\FrroR4OsEV^,g!]$OsI`4ZU>W50fOSNjI-S#q^+fD44'kuY_Lj?$U2aH+mg\A[BJI!eC*B*YP$rt'im +bNbW3u>LpL6[kI;d/OsEV3B3m,\P-gSG]_M)b?R.>Z0p,%Wm.&+mHY@Gq]oZVCr!4R'*Su<4!AF7bC3X +qbTibru6;F0KUr,jP-cA'@S)`Y6V4$E]cV[sqF+_3n=e'b3^%N(m"Z(B1MRnB9eCQPe-F +,IEgd1d!][/0D$9(dSp'P_Y^;p;f9pF0>V]g$]H6i/oQ^OsE +UQ0:!kTg>1Zbo3XH4Vir=p%Iq]'.jQZpeQJ`ENI.iqM](C+OFb%`+2AQuds:rh7=7c7b;\&G:oer5PDf +/*[D,$+Q/S0<8^9gtOsEVFF6:H),Y:Kk3h4!a[XS2?B0Z@OO1n8=1Rrj(!V1$+,<('cWRLXY8V0WN]]H +g-af5)Km3FsE0rO`bWu=KWc)QL_2dFf^3W@BH8Wk>jg4jmX,Y?Drr87PKJ*n'>eT%=19ekM=0N77BJn*bS[*@:8Wk>N`Oo<9,j@9DL:-h#]j]#up0*r-=D:%FajS +,28%@*#("-2Jht(ut"I9b6m_a^s2*kPrYM/>HOsEV^UqN-399LQ;mp;,$MSVpBO5V;23"S7hVGFI +AQZOocl,Y=.UO*RuU8^bTaL$s/WrP^F>:@%/5E*^69-82MV:uf.F\n7DpOtT$nZ4[@!)qbW-?k&'Z24S +taf;"6+R*V,Z\c;@'%abHD=Z4?hb=Tr1'E"Z4'D:@c)St.kA!!D1/3EO>>euSFo?ZUG-C`jbOsEV^Zkr +=C8Wom/OU.#/==$V?km7C8g0s;8JLe8]H_P,hnRkgUE0cS? +Q1qY5iHip=aG$Md[K(E`#eUes%NA\p2QjJ'T<8UG3tinZ,p,tX7F8^`gHM^:rX2V-@o'=g"M'bO,6@43 +io_YiEClB2np,`T`KA@4g8FQ+UogMk:7J"uHa?WePHB>7aPb6i +=5UkkDe^H(DJ%#ajs;_L_*,Y=0CM^:rX[[5:BQ]Ha4RMVl?1Bi1E_qL;,D565Tj@:a\X)7-dM4]#.n_* +VOVUEpql6T:<>\s$e$Gk^"CJnEoL+A%_A8ajm9=HXroH*[SnAf2sL*f^?"glKUl_reqFY"_:Ab=B +r7)&%_PS#r3I52_ILAiNr%DgQqVgq2!n,>T8(rg?X2l$G*u-i8a6D3h4qOsEWI%-GNl,Y?OFC;+<^b#B +%P/=1%XXs#TNCDl]:A;)lW-@8@4]]FI2I(=@Lek'F`p>-1FWO)5A=k?`N76j"ofom;]b[\.Rc>++J]*; +E$,Y=.EXiJ(VOsDKFjL7>bW==r%oN'3eAu[9nJ[5dUR`":,=-OP7ege3Cou5[hq3dQ#,ksi4B/b8J:k< +l8Z\ba0`m(m>a+00T[60X[n_4a#o/3;#dpBkR,Y=.E*KYQO,Y:m6o?A.i/]i;c4Y%[uXWtQ/AKs%`9o7 +c'ofTE6[*#[=J,'81CH>F-W:;e:&b(dF_A_G/>bl'crL';8cK1hp2Wr@t4`ti-Tlka(S]NF'Y(u@&f%K +Z7Rr/Oq,Y=.El%%!9,tZN(l>64K=XhS4-o#<6n^P4=k>J$Y;cb$%]XV\N]XH/:\No0Aao2[H'uo`/Hk[2]"8$ZgBE>jkQaJ3p.Dg9?#TE\6a0$G9%T+A$N""C4#Ntmk5G]O1=f6/?11idO8VXs];G'(_)(Gf1M_H:T=cF@OsEVf_7W +m5,TX]F[=4;jQq%]U;M@Va>k90QjEo;#bmYo[Z2BnaM%D&*@lK=)Z]aiuV9+XbL"4;j]-+;,NB5*)k@i +-,n!.iQbh*4IYgf-qfKOWZm-`O.f8Aq.bt]#m)Us[FC5m"Iq:]98iShfmlI@Q>.rO*TK(XJ&$j)N&Rse +;!,Y=/p=(5Je8Wo+lhuU[\$G4JOW,s[iC,2#qE[IZ_'92f7I@g7`p,e`.@@qB`T-!eq9Gg:qB8s^T&q' +.*51#q3D3#q&YktZUcRs@)?B5t!mR,U^?BC[djK].>HSL>5N.$1Aa; +H@[_I5]mqg[+,EaH-dKof7s-XIZK>Ab^0jB8lmYHt$e`gDU8q'L06CX0o!2Md +;*H.SUq=Wuk3.,:t"M,W&U`j^";"S(duNL`MMM`e%I7e@>";I%F)H,.ZlM^NO?V3a7kql4:NZK[i[,]4 +"3!r+//IlREhQTI*sdqVclnR_Z[9TgYmOsCL)(JBpeZUeDmHFKkX8Bl)9dkd.HRIA%+V%gC&pL.M$0N: +Y-DlWMcq+`-o[BiVoQU/Ep1ifFZk2dB931iaiW.]Rh%Z?B1Zaf#%g>I[p+/AFi<:$d!")7*qd<]\$i"c +(NDuhL@pL#7"^A6]\fn[MZYW-Lho?Hb>a4o!K4tgZR;\rjpUNFjpf3sS,&5`_^;neNan\lDj-C94".:qq< +cro)*maN%0:$2bU9QSh\5G@<$^)/T#C>P2T.co5DdP+1ADfHup"BE;&)4Yt1.bU#C?%]/RGL8Wk@4,kG +J:P&u)8JmJ@V9_:"O61V6:=FRb_Wpn#l]Ats4-E44BO^6<0M4^aA,IL*mf@0dYmq^t)QsDuY+SjjC^W_ +lHj]PegdAF[&/NZ+9Y/J.qr!pC[o;h<$*9XsGH#YXi]/e7c>rnQI;)@=[q47\XN&Xh`8\O`NLXUfe*s6 +Yk0IIcCbCq5eR!AZhd8M"$V_5KFnFt!fa[J:8bDa*b_^k!V#GdBZJ)l8.8Wk>Jb_mc=d_QM)oS89Kr54 +[to%[c]KK/]I8PmB9*\JcaN16!DT')i.5HZkoacYn4k^:!:@qr"jP:38(GNqYd\7_eUmBbtG[`1h*;"+ +07i-"LB4LXr-;keX7Ah?7)o@l.B?B7bBj>;%W>jl==3P8WmE(UqrD)6;7qO;AMe!O:6s9^sikOHrbRVZK5'T&SQ@5.]( +Fnc5n!DLPHHJX]Lj9-T]&_[;DEt<9S.WV +ZKV"8]-ZQn(Z,eQ"pjsH0]Vae?Bn_AVVJu<=K@A +?J2IABF;_hUdT,,mM\aaoMF+*;Bjaf>u#1lC4C#b`Gf_&PE\,78Gpg.K9BpLfo_6]BlT$&o!PPZYdjA8 +W\Dd$.ZHlE(-2;)cYgE\_&e:6W9R8eXIG.70kccJ_'I_%8p-CNT,3^<(o[b8OIGa\l@F:->2%';n=%1e +sa*7&sb8s1GkP0UnV=HXrC&jiWjbu?KBZR:9rgM.`]4Hf[hJk878%9o=T`"1`AD_9)\n132d8muCRV%c +Jk`l[FkH?:P.@a?mG?1ng+[dYq1cE.S509;3)VNL +c#HW7NJA`OQNeKZC![7`mM"SoF;?E'F'jeufn&$Xkc)+fu:8NI[Z@S)`)G-h3(9[Yb3`ap(Iern&Ca/: +G"mJBLFS?VcnJ(^tdS,iLoBkK"G-6_B@m(-1I^IYVhIQ"NU5bD60*,efnjsSd\Nc-*(qdkHa2IS#CD59 +gGe&B!JeBV3KqoQ3hWP78Q,Y=.ESW8!#,Y: +&)g!*\L;Bs#GRLsY-,dTBQQ2J+O9-u2RFi-nQ%T@9#`,GilH%S56Ofo]t>OJ,YH>od\Q/_sPDu3*:lV/ +:N`BAE_jRKX3os3Q7YXNWme9]\AR]aA&HhhrU<*,ZoqWNU@2C<;+=WZ5Yq8Wk +>jP&qo1`KDM2m,j!c[>jS'LnR&,VDsV'B,;oLr +9LonhFQ=l+qY5 +3CL?@_gS^!0W-"GCA1iVp"S0M&>99LPlOu/5FYp;ne2`4MVc+0/tePM+4OS!U/S`"In7uN467YY-J%Vs +1*.KmkOH!$%?=7-!51KmD%o8JY?#]:VQOb2C/fUA1JbOphPeCaObe*+:hWa9UgEG`%P]0Z3DXcdaWgtY +?9c^,RlP,fWO1/<6VLLn&659*$qHV138p%W='>l%+FU!0J9,p?_f,q[h7.qd"ArMK0ho3.\b?d?W[=Z")Re:V=`ksSYbnaoPS"K4%8Wk>jP17C^=HXrCO,Q?#3:? +?7"+)]>Bu3g6h.et;Gjpi3V,fn-DM#Qu8\+,_9JK9SERTl5d'M:?DU?!4'R9?7e3#pMa/VST;`/ujO&K +;2RF7mZ=aXNd5GM2iYBRTFNgAX5EWm<57GIu13h6'ML>hLe;Y**4\Pk.4Q]DX;1L<_;,Y=.EoeS7e,Y; +nu9j_ZYGV>1&Uo6_3.1f8Rpos0>YF(EYp2-te58lS$:C=+"@U(Feo>YQMn,?8L:QP5E4Ij3q'M!#O#cT5OsEV^UmG +Lr/4l#]`2$j*'&hop6mMnq42+6[ZWXadg81=-Elbm;Ff+ +3dWG@F_j-2KC*9O,P6euQDaFQu8k_q\S8q:P]sOsEV^,\\ +b"@S)`Y+d*H.Ab&bTNgfij0;\NN`\*#uaWrB41g.F^h[=];Nh5NKs'F0.68Wk>j#@Upi8Wq +S5;P'/q\Ko%fW3r3L"h_kdoeM6so(BouH6BARHR]43QE;0^@OCYa3W]nuNF(?jA/HNa'g*3_ +X'SqhI;4`M`S.1B"mpd:T][CnR.D1PZN0Sl[ho9WhR>>is +\'?p;NA?Z%>qiiPb7,Y=/pQ?f_\8Q(39-G>XVk=nND#^VrPGkVNT%nlgK#ttZdjdQ@%)[*?'J(9c!?9Z +fNVr,=&b&&D]B?=6e'j3sGV23g1&C\".Rl8Wk>jd]1NL,tX7.5Ui9CD'gsMu&Wa)c%XWjeHJZ@Ill"eZ:GFZ[897b.R]ln"N +02Vgg[,&lF])QA3KC3WM:b5](jI(2"mIeX`b,O`$#g3!6 +&Lo;):3qP8kS^D2Q#m,UZl7O*n_:6!Kl_E/MXu(`mee+>EU7'OsK]T0:! +kT=qD9ArQ,Z2SoL;O]Y66I\Vr=.?s_V15Gb#qm8Y_aOopUe@`-G1n_![EMk"O.aO%5+_OU8*KWqdBT@7ZPdYmn"JKs4krtuYkYffr4G$RH$@lDZfK)ld/r:P"F6@N+6lIm1\1=',Y=/p)9e +!b8Wjd%T1c'$2\^Dc%_>BJ-eZjdr^rgB9u=qDGC&r/&W51bG9liQp1rLYp'>W0g^%KL[>R#:?qjU9XmR +AHPLl,t(@'iHbK%/WBUG8D?E&u68Wn0tk/EK/8SY&QQ%(\P>uEf)b@W$cEE[mU%VN +p9g"_bpYd&*mn)YeCk7ch1V4"cm:duHDoN)Lm+CW?6%WOZXaG7JFo^e9mYHK$ali$jj._QnY,6+)oHjD,Imo-=#.qP5a[`"KCm>5SuX:c1&!;m!f+oS>9I +ZSITl'jLO!n>HV@bi!O-QM>RU.Y&S_M,NuUnRheD4+F0$F_0U][CT,Y=.E]d32Y8Wk +@T6lM?1e5R=KO7m:?9Ps%ao4%Q.?bVQ-kRr:7_9%BaV8Y(E+/,u";W#1bP&b?Sln.^`1_%d[FIE<8:'$ +rT*&WN>As.-E%lOcnF%kFY;?--m8m]a9LW\#Cj5,+t3]E)s6QOgB,Y=0ko$!"<8WqpAFdEU\7P]+i_/. +7Aai0:.(\8E`+t8j*hn8^WY7F1adop*P3.%/HN;Dt3H/ci`CT]`,",VtPC7JSSkESBi-OZ?O`.Ecbbk3 +?*%Nc"8lVYeGhYi)pYucXk?3YVjbe=Nup\FBC,Y=/@;Wbr],Y;pQh`3OW-,W)bDb\3?IY +t3c2!M)02Kn6D=.ieLXeI'T!nSdo_bnXj0L%'OsF`Go3t:SUc6eV;r`@hV\SgJaI(+Z!p)"d\R^L@+W? +1e/[]A8A('cBK^.T6VtM`ti8P2p +HKAe_u24PXQ\Pcp3h'9!E^TB;_u-`&B'kJ;;No3NLP)0bd>R\GugV]gF>UTR6a+oLI1QhHOD5'Q[q^4+ +`76'k6 +n58'nW.If<=gIaH3%;NJKNB?(oG#b/eDrKP!n?T8"dcfO)tIdqr0h4,V45Wad4`&B>M,A$Y5,Y=/pB:' +K.OsI`I<8,opbl$:Gpc!J-XC5X5M=HUcJ#C#&B$8W.QuDa7))8B"h6on@M=%aTpEWY,'Tpn.eU4^[V_^ +)6GN0J#I%'loWpfeX<2Si]K,SprQ42'Hk-bCZ1!WKk@ge:hg2bEhD@],3T%&oK8Wr__b_mc=P0SbJbGB +N*ei[`\k@Z8'M(e/sfY[?3`ht@Kc*Sk+.V6k8_$%[oQV"`0RU'S+nDN\t4'H0=^9uJJeMcGD9!J2PjMd +JYBCD_&oB#;a['O36g?K+RortEn(uJ/E>cZTE7P](4j7Q%a9032nNK>DWP,)BN(JBo:SI84p(Z+kMtMF#G="cGsH9V'JWq,Y?^KH*JVddU!Q/9e)+8PW>khY,'?H-,@['C?B +d:aQ?C78h&kRlfjX-NGh@:-Uk'Bp%V.#?mB@X:k,'_G'6j)C1"^cP'oud,Y=/pQY0VU8WpHI=rKD85])V'AbPQY!`I0*q+=aoQUJMt`q] +*=@UcY'?1R!4'i%@0ac#b>ai@?E8bu+\lu@Ve'(+bpjKQn1hB^p)XS"qc,>K9$Mkc$qc(O#C?^a%ZdPI +ELZL:;LPGldG^3kn8DNOmZQitsht.J_M-_ +dQXVIDK>BeDO0-BS\M'ben`ue*q9O2B[30VqTbn>`:.sB7sC(G/JagBGj!_[d\B>b`lHeIG)E@*,5;9M +1N5+Rh&bG8iq6N+Q1q"uh\?;F=R<"1e$9&JmekBt)L,_03rqmRhBOsEVF8`n!T,Y>UpVEJjT7Z$)q.4q +V5>LW=+H#Xi:>DnW)O;G5o8i8C]G!nrc'/aCR-/)j]BiVib]AllQZAe*.<'[?6Q%rpK0L>!XbGL3g]q^ +U?,T/67X@MWQ__lWqn-u!.n!t^e2`tpV8b)$Vi_ul7jMc7@0aAb\9W@e2bK.p1k/EK/8Wk?uPBjDY8^d +#tQ_)t<$!L'GB#i9ZHK8sScmch++BsW+2Kd'p92/uB'3U`aQZ +`rI!ND*h9:f+@%!(1>e<`Kk#[btQ9@J^IBA+I93h1h"A]e,ch;[k6%)FDI\$Wp7H0M;mb[!k7kI;q,Y= +/r1,"q=8_RGZ,0>jXA?WDZ17Lo7C!RP-M,G8F`50R1deC9I'nr8YQb< +o:eUKJ;5!PsjHF%;^?@?h!h>E.M_^R40FINE*7@o[Tp^!K%-X,5#2^_?@`p@(P&tI$`KDKJ]R7&8C^/DO=-HOs>0C&Q7b;41LBTQZU@L%$f(GY0-<9 +s2P3%g1*@*D3](Z\DC):kR"[6T,=)3TYg80'@p[[=;)J!Jt4YK+EldSb;SYWMh99g=3cEGL:Zda:O`A7 +UMS&:Wj2!QSLs.%,ue+^,qB?gI;j]AeQ[lB%a'CPUk(R\*/9?\/1:+hs^@V:oU7J*FgD- +Yq9YieTb^85,nRO$!$KB7LRiOD-k;;8en;]P6Sb%;/Pasc4r0[';jR`W3EOsF +`f292-][reo6JuASfLSmr_9QbCsCCWO/>[UY1&om_oFqgmq-QPQ>uLqb&$10(X6^drPN +qT)I,)hpej/sB7I3[T+B)8J?3C&A2^oo*;n)%8Wk>j;Is/c8WpG=ik.iYWKGZ*-D+"VCV!=5/,kt+mU8 +4WLU#EFj^IOeasZN7pPOoFVT.KQNF^W-,5%>E`90Rt2I!:1hS)DM?='.A]h,Bu/&KjWJ]+a;!*-E%i9E +&:2QpIFNTFc&T$q54::qQS:"b!7qKY>3D2*mGAc+5VX5S<[?&FujMqRptq>`0n,"TV8bDF6%,Y=/@,3H +k-,Y=Y^G/b39A!^_4;hHR*h=Q^SmHn.h1WB,e68!;Zc8O:Mc`-H9I=Rg/`Q]IV0euMG.ZK#d,&?,Ha@i +=HpBY&,S+433]9a>kPFE>.AFa/K%mu5j$(IA-ij<8l:-V([WptPW=V>]nl-cdg\3K +(Kc#U+ib=Be.oK]R&Y;.0e3gNt(*RESe)A0.k\olTA;SbD.eFc]p4h9al`:pgqJ<(i7\)bO(-ge!lM:2 +XADX-1.R.9&O$2nDdjbNNA27@t>HFN.OS`?j*m%ft]hYt1$@C`<^8Wk>jYK+:XOsHS4"gcAVA5f7b,Z+ +6$6,8_VS0X@_dqMC3Lj]ScPFA>LEocIa1@g[!*MfT.aGjUKnOWAbq^c6Q6Zr*8NVM](LOA=Ooj#a4d%1 +ti0W4]CT"I$-YR*Ra7dCA:F!!_PVUn<$rBn&H`;-]8j5nK]*eqYhTg?%[Ir&Tag37l..8XOHHK++IbW' +LNN6E>gSGr4O`Z"%$@S)_.8NIm`@S)`);U:CJI6R.6o$QqUjM$GGV=V +R`b=>>+eD'k(8ptV!.^aSNpeD-X'9;f7f,S_RM"'1M_K"=O)6"!=?;I:Yo`@\>I..598&5.FH!c+J8Wk +?iLj?6N8U=V=:&C>TBklI5C*u(F8tM23V+jV>c5"p^])M;5JRjfuTVc\6Q@IKNh;Jjs4Yj0c?^@$.j'$ +-OcPC +PZ6EXK&/'9k3lcG`]kPgrfGTe.+DTDHDg*X^CUnV4Z,Y=0+-1bS;P4Z1RrC556k=_1tB$W6HoZ_4>H0K +VC.kS&^%BaJ@jin.Nm3CZ`SPHQJ1d)n_-f]+?-ZN?bPKA_9hi-CEX/'uS8%a(I6:f@1pjS?li*^eA;\/ +KZ4H/*#G>@F9P8C+s5?5_LKZ0J;1S-\`cEPAK!H-&&lR@pMgO*aMs#qlPD>%)W?Z'$aIr;RY-\lJ%]L_ +_behenkq-+2-q/BR'e-9"V-HSZpqGXTfBY0ME0/Go7u-_KPf&#D'87ZK +FA8ZnNPa(^p2M7li3B$RKRV9eo.-DKTY*"E*!5#,VTr+,MWnB3apV@S1/,HVC&^UeJ@H*b.'#@;',CfT +`93EB7F,Y=/@O*RuU8U;Zn#7@5IC2N6T$%p5V=@\9-\HrFo,VRXjo$>U]4ke?T@%NWqa:Fo42d<2]f"c +(@A6@\/@;DDlbM,^SC81ELV()&#O`>R,_e-R!J1j^B.-FdMb"'nhRnbtM-:)!2XLV%d`o4si=TCJNo?g +?',gT4D3B3q^eE-a+?CZYGWEu2o)k/bGjPZB.5K>-eC`>C+L[fAT[QH3*9bi/kQt0UpUc6_lo!KA4#^0 +K[CJrl(q5P]3OsEUHAR6oZP$U^m)',i6Q`U?aJRKbYB)APnc32R!j?&qc;:!u*9C7ddM4E!G3Vh(hq64 +[s/?-&fDA)#W?]3uh4gf=sm?Bs#D5QcA9nY<8p@<3VnBq6VL`XFB;0j'-ATtcI^S+]OpBoS9gd4B-sIaht\+ih/eLnjeI_kG>7/fkhg`QY=a +s'8Wn0nk/EK/km^M.2j-YTbEu1i9&0#W$ai/QOmB]rK`j3"CdKH=+A,&B$UrNP2D\I)o#(;]?B@_=9sd +m#7+4i>DD9aHf(j]BQ[#[>5eDkplf?j&/VVrGP2,/%.B-'uQK5aNj.:+41tLgAonPL#7X]1A1Rt9K,$<+X"7bJ/8&f^MZ^0>V=7.h@7kjdhg9,'7h2aaD`X +NZeAZBA*'CrO->V3WicM3H*oJ053b1?AkVI)\TE[M[5;$"22Su<=RUQ_;RY)kWOsK9+b_mc=P(nd/k-[ +o)YFiKGf-W'fccF`i.;d4Pdg/"fhtZbuP7e2P`=S*-#]sAe]7JZ=4%"Z_>ERNsV!DrB6K6oADN_J@0+j +:'!V'bX>C#I:MOOc[&#AgmjWghNnhN(l0*9^;"u5l5`E>Z/MV]VPGuIFKp\8@l::^%,fho_(a>ibL%]S +!sq-57p1j/Y6*MtrAOo6rEpipJC>3aB0q`dW7,Y=/Z^qZn73DEB+&DH2Ral@12jK$q%3.;FImo.&G`sEdgr$Jjj;.iX]$G.+ca@ +QRZ^t^pl7m8sEiJRbOsEV^UiS7DQ6]&%de:6On[6#R7W^CCUT#!*bq.n1D1PV]RK_=.k5(9?r2H=Z;VE +SGW!?*`=mM";EKIaY%*c`O7G9`I6U[MA.eae0Eas8`8lKeMEb+aZ)X'(heR4*SBW)rhbL +oK=QRhZHl]jeEjOJGa$M*eO5I-=G?"1!gDg!Y;,dEV[A?-jBA`K)_3qh'fr&gpK_qs1M[ZnX,Y=.E/]G +A)OsI"],JYV9lPVULG0hKcoVA&JBChuY\MG2aFn8%bR-*.[S.6UL%8Dg3,/r7Bm.0$)X1C6GeS;.c`6D%s)h^eHDbg<';=jbM+i&?(W3&Yro@LsJbi +7#*'lc/mmM#4O>5PN;qGr*+e>R(kr_)9NI5$IN0i">3063$[t@mf:A6t0OsEV^oYSh1,tX83+OFj%6N/ +[E9JLQ>8a^+h5,4=uhN2m`gmj +I$h.3g]#iee]c.KM'3<47>%%G].%(c1tRUqOb.p*Y/fYb[MNeuB(-22o[(+)V9,Y?Ejb_mc=P%I5ghi. +EAKUYPm+-mQe)K*\1+829H,%s^Vj&AU"kF9qIGA1.%!lfk0+V@pfrVa+Mjs +.<9+;En("YN`Z=O[!]F4-73,`,^Oo8eBDU5'*uG3;bt'qi; +g-/g(P<,6eI3WgZ>G-k^LA9 +#lh]\S\K&R\0f+LhbAXa>!fen)`auD28P:A>rR#Ncl0%bN/ChfntG"oYe%V't)4V(2>i7gdOn\#/iHnU +nX?3^h84F-#]L,?nGQ#VhDOdA^Obg(]_XZ4^@nIEuHI+cb&SZ!W:>?Jo76H\u0kC8$-Fdbsd,Y?EeQkr +DY,Yc6b]]]783k8f#>!@'jA4(ap[`K'[dS<>4dp[9kVP!7d`_'-Mg/L8e!<$@"g5M&/_W>UHH-GlNSF9 +$lo8GH(/P\$9O-Ke71Cns5HS_B4N4<[pKNhe!`7qHL62W;#"SCiHf +chE[B.-51VPO*ff[M^co`>%\1phjiNN=<4XlF,lu3n@FEo&g)K#Ac&9o"Z(j[)[uiHD7CL2F8G2t5Hd* +P?RcSZ^3gi3[dEYisOsEV^1mN?k,Y?GYPFk,@))$2n-OLaU15&B0$HV)LB,;cLQbDY'@'XY/X.N*#AEDO,hB9V +)pYigdepNL3Y--qj-*CYI.cL(q-l+,39F7CgJ@@R!_QJIufE;d#Nm=YjNAM`X.S9EPp5bjC2OBu;kH]<5-fYDpCC/]aC9$6`APfa2re*eS#b.o<5J +=amuc6c$Kl(j1DqKH:GdA>+nM.AQl!r_hB7+6i^X@u=_=8&'"0585"eQh<:T.bUkS:!rd1=ao4D<699Rb&\d$(tP?r0jFSGcGkC:@IC?.Eqt7,Fcombs5gJ:rg?%6,pshMcoYb\!_ +QOKQ4CN2\V(*e]oqCR88^WcXGpLI994!8#f/t[mj[t(.eNXmiqKsS@\(c;Hc>,roOLId%-EUf'`1@1(6 +D>S(gWKmrZY6(qY1f%DMS2\]uJqk)%8&Ci;DYpdCDo,Y?Dnk/EK/8aArKqohONL?bDaRjt +Q>]IAo8%_"pIM'EPcBf8DE_fqR;`&0)@PZDuNl09_giZX$p2_/7=*j__ppQERno&?/g[BD@#Wm-`sB/L +:U_%X;j]B7Cog0pS_I/JuRdDNLR+9CollORn2OJ&Lnb.$%fh5mpZk'\nG,Y=/pI@1mEOsD%]IoK2j3'/*Rs6A=i\p"$H=lLn"7de5)m'N +4-e<3gd54as_#E(rD'Rol1%r6Q3'V(=mEK@rL(ZLS#k/GG*PE4>.33ag28t58Ho>nBAA<\tWBC-(4Dr+ +$ammq5-*gZ$&aa>0G)V:Gf309Sl:U@_.[*@dJ5pVnhGa,FL0i_2 +rjHu,[ZSjIo^R*OI.l12aF&cD?;%;Akga1'&mi.+B:lprs_01qf]R=:@d'-c&X\DHq@@j!Mln^TDOS<% +4KpL\IWnU>6Uq)[EGeeCmed$$b>:0jdkSJknfI]m$;$C+8^\3<(JBo:*D08u2`ltnj_Pt&RPN +*Ofol-#V9JY1Ros//Y\MA="JBI5I?lUV/=nXfD9gddpr*'BSn*+rPB!.Xm]<@jFX/,Y?`H0:!kT3Y#&`706 +]qT\=pb"M"i.3_LBP.?0d3>XcMs34N"enutg,A`rEhr!CHSCG87YBl-F9rlBlLq3a#(2Mi(20H!fd?#r +9fRhi\.?;,"o3bE]*(T5=Ejl8O['6P#(M,,fIBMHK,HLFQM*hK^Ge2l'N-S:'%`okV('hoe@gd].D-Uu ++=,Y=/pS'6d:8WjR8G_eKVq$`Ta%?nM)#K/u$LD+g,4SIpmgP"]pcY>;(j@I5IWSZ,Y= +.EBnUc:,Y?Dre=s21s.j"7cH^*%HnNOpZM.7D48^9A9e0Tm[UWBR(,NA$PGV\oF9rXXCJ"Qm9=bZC[;oj.0!L*;IVaDVHf908Wr +]Ub_mc=Oq(s;aH@H82Fp=,g*MN^4S)IJ\<;:f.8EiGj5YFV?5GG.r$u9Vo@?f.:>L#_m7T0VhHd^WP=9 +)4m\SEEZ^5u]#VYr5Y"MRW]U,)uUY`PADa$&Dh"+<*d$/RsWroJ:HLn[?Q]JTK2iii.:4XZ^OsK;JQkr +DY,e]d1q=GAT@g![qX>AmD',a`TR8CNA([+.*24i"SP-Ssh`#33*5)[!C4PgiYLF^A3;+F,`tt)'`GqMCJ +1p%"-p"40Qc:,Y=.E8U=V'`KDKF +SN)7[)VFBUi6A_q5)ilfBdiYodr$or/e+19Q2qd(&.)Z\`0/2-fY(#lRgT\03fQ6]%b,Y9@m?7\[2oJ0 +5*AVL:CAZPeD=qask2VD])OdYp6Wnb"9;i]'#nF)O15(UN +%hT2ah=GO)sp##Z)h?7-5O$@np-cNWg3S, +p*UQHfnOsF`_o3t:S,kWBnfH==qKla!9&dLRu +_J).$RWOO;;(\+#,\EU?=m0t=W`>$OO,f,<7ajLlg1OsK9$R28MZ,cMk7_e(Plb"5p`:tI3)?l;-*E!t +]gEH9Jpji%A:Za7MWA6b&#e$HX"lg1H>qmK(CV]r[s_J0VHpWQ44+33aF"Jd*oLG1j&D+lNQOsEV;cFd +8B,Y?%@BS3n>cX2,ePX]7ZXB@=hIQi_F#Xe'GX:cBm-S%bC2=G`qNg"A8q+<2B98W!&9#kk]Im8>.@0l\ +dd7gZ]c#-%Q`DVZJh8:!JO;8qVb[=Z#3D9nFKV`^ +C?>lT/pO5NhmRi\_6`T?LsLP&6_,Y=0=R28MZ,e^+p-P9]E=Jr>T=:7^MHegZ!U+`nkUH>1.p,@r4G!dn%AbH2j"p.C>rYohL%2gbi>;=MsWe^D2ba^SoK +o=8Wokmo3t:SV"^+Q[4D'l07Q.u_G5tPDdp..ji1$&CdQ>S2,62[q5@=@*_h:Q"6RSppJ+(ip/U5n5C@ +eJggOD( +3=P?>pEdoe^8W_JUlh/)IWh+YnlOl\=hihcjG$-q/3_`6e6:F@g0)&?l^[.qALpDLeqqH`^Cq5b!$XpM +hL0@#:-]/4ShYPJme+nOco2sHQn,Y=.ESUu-l,Y=0M6W-V#q4/W,FqU2\)(!8=,TS=OjhH2nf$.mnNb] +Do`mcR+JD'%,Ks`#qot?G'?^KRd.OCKg@sNG)'T%$_Pf(>ddR!4@(2kjH7S +-sOsEV&$"JZ&jsDCU5G,W#$KXfUq&ocSh.E574,f+)ZA1Y/%RTQq,>+ZO\<->$0oB:R4E,YOjtW)83'nL`4#Q,5JC;fYP]l1e[caF" +j^UJCK%(@]P;ICS3,21:gPae#m_3l@U>nuW4"m5MYuCAETIaleq'eCX_\N)#sa"+[bj/ORbTdbEna;W+ +1ZCNf.T5OZl88Wk>jd^X4FqqL$)f!kYAJ,ZAFnF-DVmlu6so]%%nGiX_D`KDK<\gd5!lSjL$oDZg,0jQ +h,?b^58Br#!td*"q]?[mFTAB2r>cr;se-bS"aJL/fP4#3Cbr@eYiPD0`2/KOnshq0K,N4hihcV*/3(gH +GtlG2qtUK_3\]LqVBg$C>OOh&JG=Wg;!,Y;1^='pCKO8o!9bn'j5+9(6JVb_g9B7Di17.X +kZP,*:U[AL?(s5@D;5iaXQ5#.+lS0hKr)LqbWMlEsk'2R\]]HT(GdtTpVc?+UWG[J1-4Z:_?E7tW`_h)>0=&63nZsHZL`?E2CK`.Qans'jKt6BY@6 +&kK$26sUDq+71%*-3;a&r)jH:c[P,+)bN;E9us7aPUp1Xif]H^"2,gDF@+uNq11BO/khu!deCL0TF3%5 +?9%?7?Q]bqSm\!_oB*-@ONn.J(JBo:8^^qZqWb+gqmBf.NSjMjJ,? +^))h4YtY9Z]f)5X'Nr*d"?NPFj>HUBH;i_6",ABMIABB9)dEi^q". +ftG)=Bg8Wk>j5P`Ds5(3;"S%ncgs8&r!qXD>``KDKYE]bWfksP^p:>$3.)N#in@p-Y3 +g'koeFD5<"%epVOW6!Sh1K9D\Fs+"82t\K*!j/3X$I,Y=.E8cAYL:]BG(Vbb)#>JKjS?iI@on`IfR,Y; +4?K57+:<,E(-@i>1^^],t_j:8PR:AReF>LTH/26%mj8q*>&V(=&!_S`,+)3rSeC.p4#';"bI`j`KnQ15 +:$1q]BjMte9-%SiR&IEV!0g.o:M]sRlc4rnN6a;3E9I:Rro:%s7HW0_4fS;V>u`2>ma?T6kS3npQ>6-n +EO/0',,I4ImP,Y=p'huEZ45PW&*5(3;"#Cl4J^\ZKa3hKti/4l#3V.O]6/o'*2@+mh02[*u2.,Bj'C]_ +Y(gUY$NcQ]8X#O1bE_p="!,IMRP&%I!T`gt@UB.SlF\E>;/p9hcHrg+<_&'1Z=kLO\6`8t\8?>Hg053L +C2%bbP^I-FJUh0lJ.?SG7"]c9G[<"2()ZRAn-N%+3uG+ERNnA.T6OsEV^[#OO(s8/EPIJUbjIdg_Eoj@ +[D1,"q=8Qo.%B(%ljpMc,9On>jqI=(c\(&S$>?RI99]-OHtfhR"A@aas1'8N'\WC>M7ieb&&cJ)%IlL? +(O@B\f@jj!nXcoD)p:>5I9&ljMYD1Z9G?N+*Zh\:^pJ^I3abl2%KnZ/Oo>WO`[=kW,;\JFj^nfPp&DoT +9fSs"X.is;MDG8`Ch)&Z)1,Y?GS4>je)/=GkGF*Tii=7^ +OjE`84Id7>9:5KS)s>!-;iZiA.+RTaVnlf?$UV1m@6EN.Wl^,U>@oNsE+e"9ca2<]GW^AiO-8Wk>jDrO +"\j$19NX`&Xao]Zndn.38un2Gjg2^?X+0:!kT=r'EeGW04A3W!GW:7cX.3QRsi@bMWH6<)>Za70==,07HCYs*=C\WW0"E8Wk>j>2):?dm&8ln+5_g,L85#Q6]&U?KV:]4I@ +nMSj2.3X@f&JGj[gCDs]5`VrID<]f^gqK@8RZ?i4H2?JRV!J"IP@crW6N@nc('"Sl@@R`Ka,Znql:;g8 +0/.I?uk"CZc#4!cE?GY@CmJo7lfH?@[De2=XP%Zf++0";.^f.\j24p!?SoBu=7,Y=.ESXOi/,Y?GSod@ +qIrHA1J^J:h';75/.oD+U:_PDFC*72oYrqkmIm2k?o#HO3D;Y1#Tt3W"%=nnb;'mOp +@9L)DYAp4Z1LZRo_I2?/!*U3M_@kh,Y=0+.e@+@P,)+Nf+BY['74 +B).)fcD&+Q1AV_kU6A@P@<]1??`.jQN]nmZ>9S"[jr)K%3q(T6SDc!b8ZVbJ:/I;uCgVUW2c+&=2']kn +lVb^i`S./Qk7cT=Gql7."seD:7@8'nSAXs&RH;j&CtP,'/]`KDK?G(2pig"*sG.[h_Lf0DFrE,?HK`a/m9T9[%)GRGJF:,Y=/pj"i?S,Y;1j0Nl"(#>k<>TB/ +Wi7lJNm`fl,BVMM/GRM9Nm`Aem34+lR^(\;g)H0`tEJXSY58`JH-mTTWnMr=/KY@N^W')jd,0gEE:J=W +oB,!:nVlEnE?Vq!j9VTR9Ei?qO$("<.Cc)YUjn@FO@)V;FJk"!iegkLq7ml?rL>[Mt,Y=.EBcH3ROsEU,,2he2dH[B5Em0XN-X>Sl<:UN+4["cr5PodS'5H%fdMg2MDBY:F:I`?jP!g\B,gp +OeJoB3Dhjj^NHVc(%5#)BHq8.Da/+2.!Mn+#l*MVDtA49rf4 +[_q4Ei1>TP1_OsEV71G>%>8Qo0XSB&f3>>.8_k9Vd!Wa]m1Kg57.'UR\%`/Z*k2n,E,R7o<@DJQWUY[] +R%:+,,6L'4n%O]f^Eo>B(\OpfmSpu*W0^3K-U>J-!S?"^qB#u^]uba@>SIMg)=257+%EdaY2*S6%rkla +afm$(DI+*fSbZ_ZEn87)3fHN?^$,Y=.G0e\h<8Ql4Q^r+[m?M!6OKXnKNo>os-i7Q9:*PN^@00/Ljn]a +9g?C)N!AfKg#?g4dh'C;/(PF8:W3a_,th(4Do@t&[Z\[o1b][g+J'7UPiK]h9-I`4g=fAa7bCiDfRb.6^EC;IZ/2hpdGrG# +M*Vp]i-m.QZF2]]6nA^KIajqQGeBaW,*h>,GWC+,SmaN*-'_pi@t:AitbBjN@`i0)0oms;_/XRmd$,Y= +.E*J&L@,Y?FE-B6C>01J^h7t#AT_XV?-ADDj$WGHFoNB_pg7H\Dg5a+:]mlQ0X']n-YLmtipVs?`6`;@ +g9bDpm.nFS'5Wb/Cj):ic<0osPp1X`u7qT'K*eTrbD4Y;eO$AOsEV^ZkDt>8WokiF\\ +l/@%*t;4^63QH"$s\ha:^DN0k3s9j$27DUbb/,hVM;'K**PZd+6`@GgG;pZLp3%<2X]NC=Bl1g&p*l`8h)GF1YI7f51c[/MU`eT +8i_^FU:Hr&[fOEXU,S)g#N28LTHGWi=rM-SrfYV_h.:?K_IErG8P3G3-8U%e&ZKB1!1X1#!IY'ZOIQks +NerQY$PEPOq#Qa4fdHXlO+8guQH7A#"*\6.>co`SJd6k-kR(h5#gH7nru.KF8&s`NOC@M^1lW,j@_@M^: +rXNbN[]/CA44:`2-[T#TeDQ\_'Da/#"8[n^3u=tAd.ZWfmtHV"*@e$h7&Z=e"IaQOi)oR]hES=4F!rUI +6Fe]Qq21?IT0,'Aq4o:$\3%8X`3BkqFPOBZ2&BnbBdNcRQ$DrRlia8124'Vl;-8l9utG7lW^5!q;J681?"g+lrb9=a?>TK%Y\oZC&< +;H]\'rAT)1RM0:!kTOsKG3]NC=Bl,A`-Ouj5`;P;`(rg:jfg<2O*N:1U,aX6P"mA8SH_^2;H$mh*!B7h +Fcp;Z]"kBXA#OTs<,n7sX@*])&Y"+H;VYth=0.=t2no,-2fDf\(`bi6j8\&;C3,Y=0+4nE,SP,-\s#h# +,&1eD/n?[>kQ-2#=jA1EC\,'D&(`l%/Q(+bNMMUK8/:EOJV.0meaF^=HFoatC:)PM]u=Xr9+D37kfF=r(amS^i2eSdCQ*8Won$?sY +BUP4Sg1P@pAq[j/Ec^TFW6C]/0`k0D$Q1O_9^EIV;"ham\i+_?:#!HLXTT;!`p0R\>JBb*C$aYSITQ5J +4dX]KCV?7`5$YZR&68WpG8o3t:SU_f+Q`PZ&ZK)":?Ll@P/P!<9Fc;/=QaA![0025SSAf3PX^9rI]Ubo +ElYM)4,8^0tdnQBm+G'HfFp%ZVj)St#WY89*Z(E^;M>=Wkh,]q46:"$hl\JSZQ3W,Qr8Wk>jX"l>o,Y: +&)']+j<0KgRM*LbZG!2iiiE3n0:cmkH*,F,J>E"c]D47i,!-d>T2_39='eG-V/4IloWN-XriHnHXjK1* +5+`VG6!,nl:0.HGPQ.JtqSeh]d5DV5hC(,j@Afaku6fW\J@,Y=0+4nE,SP,.]DN;*-YYg+dpDsEqLUt- +=qIgjM.aYD7:R](4R_'IqfG0Y9:fihjT)V]@M5%#'^@_@+G4-i],Dic12e/(%qWK[+\P^Jl8lPU\jH`u +E5(:MoHKCcHV%(VIklgc>nOsEVF%HbWm,Y=n'g3Br,FMA4fk+D6c'7-]WkfT''Nlfl9Y"UM1HeV+Fl]J +C:G3X&-RT#h2a%XnQpr]pIC*6j[;5]kPTuQE[k2sX/4_`EMfdh)(VZR%!mCb%Gp#hMko!NDN,Y=.E8Iq +4*99LQk*S%%5Ck63GBbHni`][,!s1Bs/Tl[5=Rh15aH)/A50T[6>Fda@J!++.`8nlp'=iJn)<9BT\T=3Fo6BPVS)BZmRllCs*4+2_6YYc?hd*m/fj-hV"R,2t'&I +3ki[p?OBa/l:FIl33E43E*E;aUMce"TI[E6>9PBTo*/kM3O8WnA(,Y?F2,%I17.F`mX))TPq.=EKUWS- +:D2V34lIA'gISZ^J?:.Z:&gscDW/;_',8^fU;EK_Upb0Pn,V6VfC"?:*JYP6G.R<#@P/p4[/5;Ot,hA^ +P334lBom(]2RqcK",8Wkp"H*JVddX,/n!0*5/P`stO2'$:`-E1utOMOl:9Ng>fRcW7Aq(cW_I9u9gg.I +f95Ij[!+H%FY9kAF76EM3OR&HS/1b-fn2B$kO!.=4#S688T>YC2lUfj&s71r(MC\XK"77oYtfkn;/S/J^ZjsR,5o +38jP9Wp-)E>=*]'c'"J$FSM^:rX,Y9eZ(JBo:Bc_#H$$khViEF:EGgN&'K:!ll#H_.4Rn>`3BtR/GhQ* +[Lg?`J72:jC(pm".DfgQ5)QeG^r^fX26f3E^5#9u0,O;I@CL7>t>feT*S"W=Bc[YM`2#Y,sL,^PD:['TZnZ[)BH*Q3Abm, +XFk"^kj=-#cs]\gXZ*8J`"o-gMRZ`jTLa_`DP7H?gX"ntV58Wk>j7poXS8WomKC+)bAnafm/m9#._YS? +(C$-eCr=<"b),3->n'Qht&c=mi<1K.&S]Z>DD>uMf87G8k@eb\;BOHmfdf,jq%#A1EDMr[p/B3oRD>k= +#_*_DM?8U>%3`KDKg\]ECH;im.3hs,MrWR!k,Pc)J@YH#XmD?7]AG/g0e,cTN +#fE:A3M>l5e0YaEH$c*[6AYg2j@J!%e<7")is8Wk>jdX*`&Q6]&M$qW;P-PSd5HdXsL2j#hka7[8+Z[N +/D_OZdHh/tOL8l7K$0a[;HGqkkm%=3+'>bLAi,*TjHs4q]Akn6ch/S?]6kOkJ&$Gq9/Dk94>oq@gO99L +PlOq,ID=HXq$;r%k$TAM!Q:eR:No3N(.bb4$\qZ#3[@i[M6m;/G6F!&9Xo`NuSOV9`0*%3O\U"mF3;lW +BV!^2&]cof/F",t]c#Eqj@e//&/Y7JU56*a(#)+T7D;_$CUKMp8_rO!!!#73-d4Y!,!/;Qo_OR9L,c6]9t +:?C,g@;]d39-QKFs7^;N!tFKM:q'Lc?B+0Nk9fQ#M\EM$83I6sL;32OR8L^3rYbu[4%Y*4-NICJD+J,A +J?E8GpB!!%6XnmVS!mOP8,%4mNV:>=Q[FI,/D['hHlgZ=\:^I!SGV`2'/:@cMJe$WTVjm@iB]9g-N7ZD +Khm@"WRHiVU>HdUdP!!%73nmVS!:.jp.lFZG!qGIDGPo,`:GS7=NX(#Ub0cRBD/,N?-s.]Ft=uS+;G0p +3&^<+..7K:!&o"T1ZJ:g#PlWC1u;[*4%@"[OZ!!&O2V-0F-T:)jO?\QIW<+OdF1Z"Io3/,AQ>iG&:o)8 +&M<#h='!Oj-j4Dshpe-V'1$p%,"X5#ZXouZpu]9g7YWV/LNeXBb+I\2$:S0ld3-$u+QK_7,+!!%6QjM_ +*!S90bYcu"PV5J5ZcEqBo@rAPf9\*KQ8VlSmtD%H3s8$Rb$@,rQ$YD#q4\\SRB)JuG=T4dOOhiPspT[[ +*l.6]c&34X,([bofM:*JkCNI[W(`:^;2R_n#TX:,(/_!<7!"p!Rf:8T;,<,qD$M.34T[`p:=CtjF$/"5 +.CKU$bB!`K8pHIsfN(9a;G='/_*SBSJ2&"eLBhkPQ`-TQ4e*+r=f(@Noarf't[nmn63GCESrU]pf!i1\ +8N!$c]9@`HrM) +"u55).fg\fg]e3sQA!8o$AMZEgfZ%M^h>j15"*tfqA]XGTSp.OZg00G-)R.I*R[QX%"@7T4=3&rcbhNoec?qpPrMa +XqFEN3RCXukmf$[j:(4>\4$,01N17*+D?=DXi!!#,.Gqf:!4Hg22:!uuYcrtS.abpBs*T<=4@QGUV@sN +(UXXV738W)u(-MItJ;uSoMQ5Z"Crspe:V:HHb'`\5a7j]kn!.ZG\i9YB3s(`'">q7SRA6&$8=j^ElXVp +(\PC)HL76\E\:;t?8Subl)Wmh;-3dNgqA)`*r95AC/uJCdJ$$ig9'.IgQ(+F,\#2VrknMLmLGNm2 +iUe[Pp5lh0rsdu)2hjQD::?WG8E'7pa\3Tja_?^Q4=0$slmEWZ:AE&7&o!!%7EBtBeH.HSR9mr5'P'9^ +R7;TOJ6ntL)E7"+E#T3K:@mFT"B&9d)@H`.OrGms\Il`Y8jDF#rV!!"CgMZEh9M'Y5Vjc`jb(n^r!HB,C8b":Ta@$&#^e66 +/k).sJ#.#pmpE73_EA!Y:0`1?_Q[I`Cdo6a'&VA31)lC%M(1k0E3X^9B+>N*)@n[X2E?4d/;!)H$i$ig +:2a2bAJUqZD19AI.nk(N6">F'D="Me_@Ea1W +8m!!'f5OV\*"^oNW%`Ub;6'KM&O2QPZ_$X8Wu+t7AXAf4`IKuc2W8RIS6^R0'%PBl[mei9\3V^<#E(N' +/!3]41B.4*,HrgZ=YIZD?n^GfKhQ5o3bSht0D,9_jBoainc(M8j4o!V<:'](EAAeHJ!*kSt(]XPBVjc +g1hSE<#bXl0UIBN#^[-+E!hc^;4:`c^Sr3sH@=qf;2u_DsZ*5IVGk-K"" +cc$ig8-2]saX!!#K_]g)Mo?!dG2DHnZ\i3bTnVnM[+4$<9.WIBYHf`2!PE$b'a!!$F$4mYgikcr2ga]d +H]`XAQ;%!I$YFt<$NeUI>fH),?VN`$X@lndPu;/COJ!!!#'$@+?+!"d8t&dh^*B`HZmGeM;SfR8ff(KJ +?Oo^e.@p[OR'd5O6$3+IjW?IebI[iaHT4U(ldi9A@A!<@Y5U==gXZ+Tl"g)[_Brd0B:L;gR#I+gBeprg +.mrG".9pu*hb!!!!M,qfH&!%'mYr?:3[qe!M3if2T&!kV"oft/4bhhZOWl!91SCM\3DI=c5B!!!!labp +0"J:0Z\r8T%X:?Pr/nU7h"Z1/=M-`'E-_4KgKco56+EH*&-R"rDa!!!"<#'hp'!,tb'`lX$L-G=FUm4K +A0K70DW1QclCMn>2jk5se(&FFc?RCkKqYeBW,e%9tW4p(cb^g5$>!<@X[WYdMm?REJCHVs]jI7raHS*h +$+T''GEG2hH%f,diV]R(Mu4H^NDJj3($%fcS01ZZLT!5OQ;Hi;^Vs8)H,)gUrh,h>XZjn:ft<6O-FBd_ +[p@*P#[17NX*9Kj&-qs2=79M=d??Z5uF!#Qk4"onWu9$5_GH0&A\(d,:frMOl()1Jdd1*-IoFSCfXEBA +9F=KYt[`U]j]73e'4(BXX;n204F!!'fjT76c:&)JmO\)>lqI`]o0QbM("))&=u`o_LC#dr\>>G%/%B5I +m3Nb>`**XnB``<$#>J;oa/!rr<`W21s+>(6>Da-u^kr-+;*f1>#!V&=_f4g].Bi8+._[YhBf25GE0rEQ +_=G"*]X4qj-&EX3*4PaIVfJLmj['ORVq;ONo+F[!rr>j`8nl;!!! +7(oZ9KYUJ/bW(FBB%j^Ot,D`8o:o5Rs0 +0]BD_C$lY->!!$7B;(]XQoTk/W@m>maZikB(b^Wt1*D4@@3[r$2m9Y#(/SYNYAI=g6=#0VZUl*sJsC\] +pi!!!Fj(BXX;4HN.YRagp%`N>E@(n6!!#:^n`T?[kpi2_Z9l@@ol5=u&e8MumW]u<%B:?:,eb`taDSGM +5:#O,d;p$;P3ce2<)gn(F=oo513I;MRC/4@JX!!&NZ?46f6&6L#mC-%E^)=nl2$EU$VTGqs'e +])cM)qOZBEeG:+QUKA!!'Y"WS]R"fWumrCob_Fh5m_S/['0(X!ZuNE,RGtG7kZ]?+P26g[f/+4gLH`9pI +*hG4[6Nr&5)5/:&T=53!EKf87)2+q4MP!:jS!!.`mkL)62@ZDN",[Dj<'rfG1n%_(chRTGWjn%QiP8\h +Nu<#uI+qq(-RQWE\NjiQPFIBr,2(cbjdKl9fN^7F^]!!!"OP`\>'qu_;cDn.7ZtB04nqQZo_b$t2Z>]A!!(rsjM_*!!"U6\]!odf#7(,I<402,2H0 +3om55soMj%3)ooqK:o^e.2aeFCEai^Z%HKcA%<(5%J(7JTJJ +IH.4EJ&'A'tsn0SmRo,2XE3aSgQiVr4I`an:P:9+74]Sst!ZfdPi-^[*np(SbGFj2/c+8f%MhY(X+W+" +7%q`O$34TGH^n4_o^!!!#kW[PB\APQfPjbu"kAcgZN7%KRNYOF\uh")FJ*t+!JgmgeZ`ArXg^pIt9hHo +NO%/j^bESd)'A76cGae7TtmC)V=]<.Sab>*EOq4fG^"onX2S@f[=!8u8,?7q[[1.B.7GuDgHd(r?;^&g +5>YuT>DPdA[s-Tg+S2)i(Z4\9GNdAb#X1:gn?kU&C(S@D`&^NZkO?FATAgb +"Wr^j7Xq`2!;K*UeeZ1h7u5$h5PP'?*,TY;6C!.]([@K6Dd[<[de]rD%6#/s4cF&,D0l3+'mM^r_:"IJ +@7SY(?%kC/ufY&1JirC;`a%mCKk,jB/gOKQ[77L%1d@+q6QS@RLAOF;T2,Fe?1^DLqW$P!.:^lsls!rr +>)9`i%acI@=Am?bc$)&'Z/EH._p'Yl%I9cfa]eebTg[;r+?2,3kN/oRn*7E.?A)I%U[mF?KohEFl!>R( +(8T=mAf!!%t>(BXX;Y>&#j?6a0t[`W%!-f1G=Pj1ZMHRX^JgY`$7H#ZH;;mDfg23D\),7bhDSZ]F50)* +h\qtf<2+jN!d.[97>V&jnZ\T\CiG:tbIf/aoP!!!i]0*VCV?Dh=]>=dtt-eKbMCb*iehQ(hMc;FF_3^I +_E$r1-!c#O/J=ViY@dIS.A640Rd@E161\3feT$-9`bl@0JcB>ej`\W:Sfh\-q/!!(:k0*VCV?EGfD[I/ +dE^`"VkM"Yb:s6Ip=ef6;@M/,_%P1,X1=!-RREq,f^gkFQWq/?cohS6_pUOc@K?>[8D`ai0#hREBRfs4 +uJkZIod!5L.20`V3hVBcYS5VT=HX5Z#8T@5(]#"`V$e'u/[7BHm8[6`B-Y]s\rn&EV-_Xh]iPtA!IM`) +78ee\=,];phbjO(#^2#mUV>Y\T6!!'YugSnm='iVOgDk@gV-Bd[efkfchREq@0qh`hO,SZhg?'E?`f#n##[8"MQm_lE-WT[h!k!4q`8EGh]=jrCLGmbQ;g+Wrr0D-O0VO!-@5?!!' +ej8_eLX<@j=n\0#0ad:$UQpI\L#moFMl^(^2-HcfJ[\F&I,b*cP3\2a$QG30gski)LD(PTODYcSqFn8lgMg'M6C5*GsosT95l@YG:`r7,-T'I/\s50]&MY#dYp6MR-+e/ql\rZ!!'5DnmVS!i5n)j0NY +*heY;lkhgS-^g!:&?Yn^p9[U%u_.YD&=[k#V`2B$WZl>5H`10l\g4blU(2CjYn<[JM#lf?NU,U0i:T!"Ju/!7*r;$ig +9d8AjL?LLp@.n_I:De'C6b=A.EBE9usL#WUf*7[bC]b3rZ^rU#A!=]L?Pldu*Eh#1h*PUY$PMDr.p#,'[oXsm\hLBk'*][&$hV/QZ%MfaS4OC=s7p.2>!!%tA(BXX;O5e?lcSNId-iW +o4p[f$BYJ:)19BoV$3\To:>o1J]M_@+"QRV&;N%_A?_jb,u>kTH6Fj8YbpN,;0r,?q$/U2!/3rf6\CmM^N!!%7!.fl>U`rUK7RA*p9X>a +J*:I"lHK=3/j`Ja+8eUY4o8KbXE'%^(u\!9oKl>3kWq&-)\149+*hS"$Q?<#sT-oQ?jhL>4*fU#%XW8am48ql)N`P!!!!?R_0I;!-iB!@=7raeGC +^jXU'&UC0/mC\MDi%1>Y>qR9Xud:@TUfY2RQ"()?uP!5P@n(BXX;:G;COG?dBpH;41Z^u(:81`:(@+/d +"tqjI03mHkj,:RsDn3OSSE:TCRC:-W6Kn$Gag!!(q2Gqf:!^f@5H3KFj^pYfi`=lmY;j.)_j-r)S`A?q +DU^_r/[pUiIWEIP@HmVe3'c!)TM"onW'p;r3n!!'/OM=;U:rgq=jc)$WqVGaqHEr1IJC-\>6[6Gt'9nI +cM1[:gtH,!F(<*"H'02@IT[:KC>!!%erMZEeXDCL3dP9;5hmGl\qj!K+I5[5aZ`W=u1TQm4%ir)\5A^Q +.L`GOY;7H"4H!:UoJMZEeXDBjkT2=S*R>"NN/Pd9:bO?^/9p%GC^hN#%9<#4pm]ubaOA"%&]TD?d!Uu? +%C]sUK9!!!!<-SGZ(!$5)sC-K1>gEp@pI\(ejGd3Fk"MkCH'=Obn[fY-0>4KVuD(@:-F7%eGYW/gf,2E +0^Pl0HHc]E&$nmVS!!*DWq$ig8iU4e/es-ljU=SZe@=-HCfm;(aXPP^d1lIrL@4'Y.%P@%*tqc8)LJat +(>h4Uip1:B/$AcKVBY')R3'u9kM!,u<9@K6Dd&LD@45HArec(+OGa!AX9ru3@6DJjgB:9M1X*%QgAo'L +Lp^bstmpQAlb=I`7-='a?+g)3VBT\Ha_L;e:flBUGLQP:.sU2@OG)ZTj<2GRQe!!#-47#1XWCD@Ypk@s +VE^ZCd)gOH'bM">Cd?KK-:&JjhA,4A-?gTmjhFcu9PKA2U`V`rJRq-KF)Vc`i5ZN't*JCdJ$$ig8iY.f +)Si*TE4>4%tAdeu/Ed>:g#U*P!5Q +LODURe(>ea#lX)?&Xpu)#Z"g0oMadh@dX-FJ3L>"ZX46E>AF6\-'/De'N_O!h)3m[,IN=05:YdsJ,T2e.d#Ms4&$Y)9h/;bL>UraJXB)3=,9/YLkE4Kc'R)(FmsV4O2M?N?[%O:KeuCq@'I^Hn&aeb; ++'!!!"D@e*t.!+82e5rVfH]B^@U-Upd-RJPKFWCqG[m=s/*8UYPdeZ*rV,56/?moB,!<<,X&]oq3!.[A)MW[m4>,A;89r<%,]Wh/hB(FFCC*(.8GAImu@<&%#WejIkH9\ +/bBn">g$Q_DulBgg#k)Qq:;j42]?l8qE!'$I\(]XP\35>Id96G/J2=$TIT9DgsMjm>Ja.6IY5K!5%&f, ++BnRQn7mX*^UrpEI3j7,As?O#^EQRdAWQ19*"rh(>;!!!#/!I6C"!&,U,JiAk)[:LU1:/Y?#VrmViJ,a +#_cQ,Ti>FGJq4nkSO<$M(-Y%nQ[n"7Vi"fDTM]b^YK!9hO_!<@W^.G` +fNi`6BD,[jA&lMTn,bIa>qm(HJWE>FZ6\+8PNLotS-m+*]O,COUY)3CC@F"bgP5)WrHgfL(]>ER9U_J#SA3B[(/6uJo!)P&.]Qc1:3JS +O^b3R4Q]9a$tHfLi=44IgH!!%Q4-8,Q'!1lYH`i:N%R4>-5j3QU5jLq?)].^Te<8)M";h4K2`d)QX`Mr +I2_8MVdpDq-"M7Tk08JOMBpAH.L8ocDJ:[Y?BO_\lf"jW=7g39/&%0-A.2]saX!!&V1:I"lH<:STF?i^$:L:[qQMHZnr5Oo/uR)bRED.*)iH!N@Xk,T$1g]]j`;fl<]Jf=i!!$DZ^3ohUp;e'5!DL +.11PM%mVO"bGG*PH"a-ktbWf_?Y.$!!! +"D#kDF)!+83hgD_+\;<.)@7<;h7)^F$O^PD/$H/a3tGb0SdFi6kC31(M[Q8U1/57=tnDC\IFGo&(dJ3= +Y`k=dDF:,:SuN_Z+5O343]ad"r#jb$-EameMonug`P48!;Z5[V\U3D/jR-,oob!'C^90`V2-,/og+.'& +l&cq`$87$bkKe!-;5Oo:T&N0C_W,O)7nZhc.!Y=s@[T1.>qeA1)"99j;SYZ50p)O]pg@ +3OE6rPgDR__uT6KK=@T''dpr7\!+PVt7ik?N-ac5n'J42KnjR)-D&HDe2Y"E"/!!%sKa5@oGiSAFeS/T +_"ERLt8Or#K+XYBLLp!F'Zqtr9ZEO+3gC/-hC?HKC!XBbG/K6/IBdi8'B_ +c`#Pe)QE`8-jf>X`ETd)!!"6A_KiK'.qQ8*cFj%hBjaqn-DK +m+e3[l%-*R\Vo7BQDr:X=%Sr3QHUHDP%a6??5,V[*G14p/(3=]8eb(b8PEJS4MPE3SA9rj2o +50)K&@C]?T;T^\ZC@IN\4*Rd2\WYP[>I1BqA34/9B\o1&o`!.[e+(BXX;,80M%/F][\1(j#\g<>"/.6U +F?D%bLpY43`sN!;HobH#'c)5aRKMhJ[ +8%ZJql_*^#cocar]-?Os*DiVAkc?fAhHd)ioGY3Z>m!.]EY(BXX;,F5bV^/1Gc-4`g_QTT8nEAHXoSaC +(I4F'$j*_Bt)8RORsT +U,W3X9nf9/P6/#RN5IQ_V\mNlnIqU3tZ479 +^&pUPIU*"O$i4a>u?"K>HaV__?BRMOBLk?AhlUbmFmg.*7OO'TTi_>!XjR3uG5bbq2lQ&jL@Mei@n!-g +Ko@K6C9`*,NK#Gn6'0*k9%>5at8h2LA>P'pEm$jEfu]!kpc/N@OkdAm@j[S4cs-`;CKn_gZMOIIVG$21 +7gPCiZ^;_s>%UAS8sh!UV6S6MUKb`!CaSER]UGNI$>.<%`.j'Bfm(]sa]n +;,'kQP9!%[IK!!!":7U?K'!/sHTI'^i<.@]_B`"\)0Y+"%RIF[V-*U&d<)!/mp-ge4?X*/i0P(&GX^Il +/nUN5tng[?IPaa@$#4MR)-r,TjTHJp-g,Q4A6;9Mt&I.HmaJ)k3PC3I@NNT^':!!#jV`;fnRLtg6/mRq +5Wa&O-tq_]g55EYYO$_*89-TCBR79f/bf?95VV;Tj +I^P3P>un4j/m=6r#9X'QFRVU.E@oZ2#&PTT^CorZ*sm>l:3!!!"DjlFA\!5OCY['u*-qfK5!p8jG-p=G +F,-2u)RM(c'Dk"I1p,fQ1US65:HhoD0p>kr3\&RMi.V!oh7::5,BZNkh[f/:l%@D9H8pG(?Cg7]m`*iuZna&k +Q@!!!#-:L4G0!0"Ej?C]]_8I#&^`I_)H[h6X +VSb.-2X/*]hOS+(W4-hXH0jmQT.H'7(=Gl3Hl2;S5lBN;qM!!#+pGqf:!0HsBMD3D3)W(fUI6J=JB'c6 +&rGR8"i:O8!68RC1R6e=@HLW_7)g?.#t.nHe#OSCfkO&P8Rr!Y'dE\A@Q +SilUcH(WV,0QbZf*@q@FME!!&U@]GLVK(ida3GlQ.hE@_$X%pSdPEgq?[Blok514eo1in;&:o!)J3%on +\g.&Fkq8Ut,kX\\lXk6T[gqJ,"R^ce[ck+,k#ct)PlGETGeQMgep!!!"D!qKe#!+<_coAY1`*mQ-Wa_F +`cHI\G&k=K=QA#GEogcSA#rbsURIcp*oXuZ$"%:CHdh0j3S?+G#/b=H2a/L,I(Fhrp=F56<^inA5H\,Z +L/n.=["!!'fj:$'@EcZst&WT!6b$MSUp2m/4)e'E=(UuqQSVV.7+^AmhCJ$Zu$[W:PgI?PdTqV:OPJ"P +D+p[XG+g&;li!!$=9Gqf:!0HqgG)p+"^hlB.@k,3((fd:Fn@g.R7,O;F\YS;:+Or*jQDah>EHZ[S][.; +mc\$,7*?2$1&Y.*T[!QQflqeJgLo;h$%!!!!A0*VCV7]]TsSF4b)/8>)3?bUr[A;HF!e?.u)*`pe'qjq +Nq,ClhYo9R^6pG0e"qFF[,kA!ncgpT[7cZ]b8B:X+i>Pa*8P6TFf@,ur$T.C'E!5L*.0*VCV7U0&&SFg +dp4nuWTOmbX?`4\@H9_[dnda!O''[g#m4K582IEHqE3Lr:5q1J_J!5Ol@MZEg.&Js"7=6&2-AXZ0m\'mTh7]o7E,XlEs7T[ZMp(%7^k>=f6dZDf.GP=K/\4+9)nqlG[g5Q!!$EFKmE2^)sYWsFNQ\_(Bl0 +$[8Mlqeh,I&i9\V'Ih+1Wf.?pt@\=,st>Eb.--ePVJE;^*6X("6hb]Q!JHp,5>_(boi!3_^$(]XOQZ.A +j4h>a$"Hf5CdA>tbUA8H/Sf)0jiR]e*_'uU@Od,)(]TX33S+b&Oc]9h9=KQk(SGeS)m*PAH+od,O?A$_L6!!!#%7pZT(!0!;5/\>[DWJ" +!\k`!#G?9BYn*m'H>OgW`TH1s)6\&RI*FS(`-?W@HB/(C_C)/5t=f_##U4B$-AcE"r&f@L+J06qPsB!* +^%IE]-IErc7@@/K$(!!'g-bCd@*V+kN@I]YrjC/VbB?6_R>2k%V3KW:6KGkVh=5")qp(>i/^?P=M/6;8 +0NT0cmrS>^kZ1R_5Jgja.?o5gM$!'I/dpH#K24dHu(!!!#Gqo:r#n\>,$^EZt*MZEg.6)t]?p&Shk'6u +eZSM-R/?[aE?CqA[&S!k-^),%(EmAG$.CD+:!B&thKM,8AZFb"::#8'f/AQT>m9HjTO\$&!8q +5aoj@a\?iFVI96i5l!&.m0K\8YjOKIO%^*iNW`%Ybu)=gudCNAS@X=GplH86tZ7MT!_k'A>7oP1NQgdK +/GH,gFCpS]/cSJulE0mGpqGk-98h9/k0*\1"k!!%OLr9&S/k?n5Z(O7_8!3i2)J,?'WJM3-,`H`^J9am +J82#6T68)hJ#(24;T9>a-@d>ge$CrH[l&+=+: +YZ!!!i3TE"_ZJ,f7ms3#WW@K6C97>X!*).B%mg(Xgj5.%WUWY]Qf*\99FgYqjP[dPHm`2j99pT%"I,pu +fK_c9)eabY#3OqdXnlBY4_>YR/[1"OmT]"V-_q&rdA.KBGK4Gp2C!)ciRciF$!Nt$5?=2KC_Kj +XGqc;Ho"Z#:%naZQYI77.:SF$%H13!9o!4[U[rpTmda$9QckON'^!+9)Jji.,n)8<_Lg=sc.gP`$gm^K +93`S!VUrFWC(G0LaG-Y:#%*U@5uEVm-Ze"06>H2=bTQeVHWc4g6Y!3U'6?@9;!T+1i$E-J;K>rQ7fX`5 +*1VXCrfa_rk6IcD^(eS/ZAaN!8p +3/MZEg.FfdO9\>0:JbqcF>^3tCAHYH9H^F!-T1iUao-B[W1_khj**VteAEDEFWjk*0T+s11W_+TmjqB9 +n?[`F5+-NF,HCn/-T!!$-Q\p8:l_#:@k[e!0FDN?WIhK@k;CM`Ni612h$ic^.3kC)Ga?NiQ;0$!.[Q_0*VCVeoe[=\,t,!,&qR=R=NV%6n\q7i5qQp1;C`6E +#b]TI7?!!!":6XC0$!3Bu/Ialna\M&T+jMdNHgp`t@)50f):7a<;$84@Ki+LgMi8SE9fm&s!?gGT:0H>f +dR_IPoQoO7:+GI?'"'?h2l'&s,\)[XF`!!%P]P8=<$!:-)Q02>ia-q[6b>9R_/8__h3 +7)ISK7dCN"83-a@eh2RA-NhH3jhb-%d^Fo/_Vp_j,4!+70-"onYCbg[Ht=21?6?Tq_3W,%%"f(dn)hu/ +g>Y*sOb>>%if#7X`iSk@s`RI79MIa$Wn/!hk#F*`/imMl3,!.ZF@0*VCV7a1V%?CFrmA9d\/BC@0-mH] +[#lBeiuUp3L''>cA*gJoQsXsGAQY;XmEd%-@peTRspgP^Ku4LocP6bTm<)uos=GR3kL!!$Cpb$\jKg\. +Q8QII>drqQ/A<6-*hG&+$rgLbnZEU>PrCeBZ`*nQ6U#M4-!=]H59A\qG.>uQT$-0l1<7NUa3RerVZGhp +cq!!!#7.j6PM!!!5J8$645I3*)?]t_n-M=a1Nd`r@VNYE:2=6HTsc!r![\&l@.04Aj0hu"oZM#0g'SC, +14lTELigIN"g!!!!],'bmC!&3Dn5C]]+`gDZ6'mt\k^**j +eGGMQrm]Uj2dR9lk]Ghq*Z!!!"8T=c!@!#UjL`s6+s<4O?oCl`^/#1oI02bO3V7C^H&#H&W`%=2&V??46f6N6!R+K6_ +H2+796do>VY$o'u#VDa1n68\QY$4Zi)E6%*`;Nk%=<@V4`P6bC[&F%N]LC:@,BI!-9tHL8:W'XJ\Y_jH158Qe+;pmQsB*pP2L`n[0m`!<< ++Mc&rkF!!"6mqYA2-]JtI_-4%(Nq_bqF2-4^'Z8eh'eIf8<8Si2>rlSaYF$6-[E,1PDHt@XV=:A!i[hU:/Pl4?Ve()3f:" +&A-cL^9@9ls0jqQEuC7c76cIfmXop.)hY)1K4n_LB/!!!"<*dKI?!&.k/02X,lqG +]l?IQNQ7`rh9oBW3Eo;3cam[Hlcnb`kIlMaGD^eFN.+!_c=KdelO82*VX:(_i(-r:MOS +Z2PLMRqX"jkZ!.[Qb0*VCV7NBU0P?1d;S/>V\Sk,^LAH.(ZT-QJ,UL)9Y7f$_h4<4D%!8tlX`;fnRLmbn8d:? +h#Pp,ii_7M=7bVn.ap6.PgMD>i(pT:@fHTNU$:7umh=QFU)mHl0>NItN9-]r;s:$5CogeTRLgU2fcqu1 +?^E9HRDJc#Xflp&mqcE&S[?Wq$cos,NY>PP9=\Q!c89o-*h7AcKm-_ +(EGgr4Wj(`+1GQ1d:%KHJ/gkEBX!!!ijT,76"O]jbWU;k>C'4N:BAXL;g +ckb]HarS'X8$f7T3'a[N@=dg9RZ#8"r6.--&oFX?@V-+dNk]\MLm9A`O142O';e2rIj/]-F%AMP1? +-dH8>>GMKGl8lO&^>Uu,C+9pV[8P=fHf!!(qLjM_*!^khg^`H``iXmE?nM(@jci0[-k4=X6&"7!r6 +ab=1eK)^_p;NdY_W:!!(pcnmVS!@)P`Fgil2ia2bAJe2D#V>d*L@*7h6QXgY]t1e'%$)cHu`6_<)d;s8FcAIr9Hhl4E5H0K'IQc7LHbZEN)3J +pACb\a? ++im]3c0fiRM.VE +PaS2V8ZR,m1h7(?^`W]Ntqg=K'ne\q9!b';676f+3``$rXMYu8qSD5`fh[K>>CTMB#^(oL-K-tc,"mI8 +?1jFXHM'CT6S1?VnS%__:C!rr<$*g+)P!!!ijfT/()WdREAZ\DE%=fm_uWp[H\`;:REa%M$uT%6f'&gk +P%[q'XUdV$1,K_OXD=$Q)o'][^"?'\_`>ganFeI$ZNV!0?/cUCL$]en5&YJ"uq7uq +#=X-NahhA.%1!!'H'?46f6N0qqLG;!*'o#F.Rac>[=fg>q6Q27=tGu>ftFD^\5l#ZFT`1U8W(+.T*+nD +mTC@lSL5M*4G3p2e-U=IKIV,0iBC9IQF4F4+QD;=p8$Aml"FQgS9\p.%.3pRRmT.jq3$)M?VKRcMFZM?a7I,gKOap"?LO$I%t47U9 +ZMri62YD`Mu^Z\O`+d;^')!!"A,`;fnRLm.Fgq^j>19THYj6/39rVO"Y$/sf&"#u#,saY(n!a">@]A41 +@9FSdRhOm_;L"Kr(!:/s,`LUGn%qjf(m/ +AnGTE[_!!$Cn?46f6N#9m!H\jg7kY*U39oftZ<<-3fW_4./l#=&CcH[6nB-Z-9.hkaWg?6?K;kheLJu] +@U_,IM@ra;_rpf-?9>:!!#!2]GLVK(bq0i='+H4/"S +Sd:+0?^XSr(PUk_Tu(\d=#.t'U"R.#2lWiZetAriQleQf!RGJF#sND#krB=kVD?*`Y^g;,S6D]@R$C^& +MPT8EmPOoPI^!8N^L(]XOQ0p3?NaL&Mfml+$;Qs8;m'C>`Ug#/[7ETP0i\iGoFj)uL3_qAP[N)L4VRc9 +MSBm*DQTDON7\lO`4dP%Bh0_=/$,-Uk,Hqrg^Joc!SVLuAKAj'8b\H7j>eSD7 +O;#C6>@p3&2Hm_eulH#_>je44*2;InkYdSfU*r/q$[!!(f.]GLVK(bsI"3YKuNm?8Gid;aLQ9^u"->X@ +HKT)8.6(!XjYq`$I,H+"ZR*ms@+Ej@-eY$e^C5S$oFf'V[rq*$@TchX,2R;d;dc=?c5T@"oH+1t +%QJ$.=SFs@4l!.Z#P(BXX;,KB?7813@gGY_?L="Wh=T+8#tYB?sao&:PKW8#gGA'U@P,QU\ARuh;lRg/kS,`Nh!)1Il!<@W^9Cq0BN?_k=@cb^tl#'eC?T(Gc=llo:171u$<#e +,RrEdqZ:X@nVdW*&-AIZ&>74#k=%]04gS[>TM/U[,o!<<*"B#ol2!.YYokJ`eOj3]-227Y]gj8SQ'@LmC^lm1b&7RG9JQ;lg<6hHBAn]kH_#7pu(r-Pl:=9WYad9q*r3Y`m=/m!!!"L)itj*q_TcU:(;?:IYs.!f.OWTD<&RZmC`hcZff%moSC3pG]q`sQ^N&/^iZ1/q4dP[C3Y.'Ed9 +0R!!!"D@e*t.!+<_coAYFm8JnMF1qtAeXNd>ECiN0sXqRmU[f3MS]7N1>tj$Tn1XHstsGrmgi64MbY4!!!#%6!as"!0"F-?Mrp>k<90SBR!E[SCk42iDp_>RmjK_0;I +CMM"`.S^0C8(g:Nt@:BKG')CLV0(>YjWFKHfgagp=SR<>7_C,"M9jD[-:OeL"lI=N=6jS"e40A7HI!!$ +=9Gqf:!0]L)tEUr#dcrF=U_<$,pRWfe<>.jA,jF/Lu*t[%ik[hJtGuYShTSghPksL7J-i?C\%V7E\>%TCV&Kf-`[`G#k(Ma7InC_i) +!oh#dWW_!<-s"onWmgbLNX*1Z`MI=>A]W7AI>%B*oki("*3GMcVD:DuatC[V(9f.>jDqs6-&>_K-Hbor +6?%lT.0Y@M\4MP5)9Em%3IgKB"h5C""E!!'h-aGU'!J.]94Mj$IS02@>V(YeWuWVP#JTtRkClK!?CAZq +hh?RI4*Xf><.SZFreTMO^PmJ>>?W[,'*pmR&0bdSZKHuOe)=_CaI(Xg1N<7kNZm@hOaZc*$RKXok%8S%F2cKWaB'h-TY +P7CDsK]`W,u=E-q.b!!$EFQ1Ep!rqsG:?)s2L%>sc/.]6"`R=a"=%dt\/I&nC=]ll"ga,4,CbptQpZ5!D[-7B!:EKd$ig9d\5H +X<]C#4L,fislgXk*Oc]`8o)stQ&F]WfD$![9W>]G%]q=aE9e&cn7VAr9qo9Q2o\YR?*',I2\pnjn],8P +J*!!'g8,qfH&!(L3N02=UgWZZ2?l:jG5W,snW\@oV`Wk.*<>".+%4o# +[_]E&!4i"_Ck!rr/'2t6'1SBrZ?W(R-Y2G/.gO:2cO>Hq;!5'fP@K6C9`0KoQrRo,;:[,T%EfJaHTNngIT-GmN..M +1Qf4;L929rfG$)$UtfmeV9G"LH[>iE$XEn(uhq6Soo!!!"D-LtUG!+<`&o&>OZ-W>lr2b7c]rmSJDrqn +p-RhHe9eZqstB3LF5eRGF>F^@`Jp7d!/nTscc^:r<@cLq0R +/@,fPTqqlk=a`GA9AG-4nE:Rt.`H`><9.t)@$7JEb/iS<>)_6r23p!!(L3<02D)-.cX*ujb# +$64tdOsFH\8c3_6/!F`,Ic;hG`EfA8,b1B7CTY]95C!!$EFl?RC'.DPoTY)8/#;rCX,f">9d_`:Z!!& +UU]GLVK(pSBnS>8-``UdMXD'LV"e^[3pgFc@87oa42!!!!Q6=('#!/t#C09Rlm33SS5(4HZ)u\o-n,]0q'LS6+DrP99r-!!)WO`;fnRLir +=K5Q:RD`PqFWEI.tLpU.&G/.6>Kp-m[*@K6B.@%P"J!!!k@DI/jH*Qs%!If1Fda26i4Or#K?()?uP!!" +CgMZEg.&aSSu?bUr+HY`MK]\`A^n`p^(5J3EK;p@m`r:t]OHL7CP2#mUV0Mc!`!!%s[2_Ro0nKc9$=Pb +l4()C8Oh5kc/^O5p[,rGZ&!&.2T$ig9d=>qnYCuYGZId6>NLNq'A?^rMYYr8l\r1o"qaeli +mj!!!"3P8=<$!$a,BMa)[hU$^h;Vg$!e!!!"LNK=qY!!"5rac"oc.P/()?uP!!#,0Gqf:!0VZmO^O5o`@I_%_"TSN&_"m +'1!!'fjb)=#^qu$0*)dtH$!!'eJO;A!!!$dXCB418a%r]10qg@iI!<<*"E%-&e!!"\sH#\2Ds7B&g$ig +8-n/UN.!!'fjjMgRP]up[kzSq+Hj!!!ju]X[pQpHei[!!$,\]GLVK(m2I5EA7Fn!5LCQ(BXX;,NQfD!! +!#F7pZT(!0!!U!rr<$4?46f6!:YBs`;fnR#^J-)!!'h+OV\*"!$gRDzcUV:M!!%t>(BXX;! +'D?K0`V2-6=('#!!)M9jM_*!^^,3?!!!#7o8sgk!!"8)`;fl8?46f6N0"hX!!!!]+*fR@!&-`G$ig8-n9j<9!!'e?G +qf:!!5S2g(BXX;,NQfD!!!#F7pZT(!0!!U!rr<$4?46f6!:YBs`;fnR#^J-)!!'h+OV\*"! +$gRDzcUV:M!!%t>(BXX;!'D?K0`V2-6=('#!!)M9jM_*!^^,3?!!!#7o8sgk!!"8)`;fl8?46f6N0"hX!!!!]+*fR@ +!&-`G$ig8-n9j<9!!'e?Gqf:!!5S2g(BXX;,NQfD!!!#F7pZT(!0!!U!rr<$4?46f6!:YBs +`;fnR#^J-)!!'h+OV\*"!$gRDzcUV:M!!%t>(BXX;!'D?K0`V2-6=('#!!)M9jM_*!^^,3?!!!#7o8sg +k!!"8)`;fl +8?46f6N0"hX!!!!]+*fR@!&-`G$ig8-n9j<9!!'e?Gqf:!!5S2g(BXX;,NQfD!!!#F7pZT(!0!!U!rr< +$4?46f6!:YBs`;fnR#^J-)!;sV*mcYtbX3CbAIkrd2YAU<^R?_5>819.-"!p5_Op_jf,)B, +2.D9C$`B\.!8hWe]9/.A^K!^>uX6l+PA:l)hKI^*P."9YHJh5<1T6Nk"It2$ZV1:4;V@ +r3G4rZbmsg>O*NG[!,re;`;fl +-PA;M_YMhsu3+r4;_!!&rql3FB>l_epI'!]Lj&W%1+a:_@;(DDqF6nGVH!!#ile.5TZf2(dq-";u_+qc +84OX6_U0.%lkM-+9p!!&ZaW?83>YFjMl9>i#I6mPOG,"k=4?;*c`'!]Lj!!#9L;En9[?9bhbQA@tqLe+ +%l7@&bH]U4NI-";u_!!%O!V1,X@]ma^O/.mdk&Wo$bM_#HoGqfoq9>i#I!!!"!9)W._HMu>'=X"Va+sM +"N(0Mggo3rolQ\\(r!!!#!Pkr3Gp%kX.Z:$7L6q$$&/@%YXk/B`a0+j*n!<<+!.J8M':#ljsu8uWo6;Ql_H+\T`t911%#`$.iB@9uVqq@^'S&c_nsPu9hKV-ZBo6^ENsQAA +)%LddVc_Ru7loHdt/,ldpqK6DH_9;U&[s#Kb)9<&l)$]c_$i"S/`IeCMI +U!Ci!?`?[qaT;En9[?9bhbQA@tqLe+%l7@&bH]U4NI-";u_!!%PTjlPTC7-a(&g:rfsk:^)MnEMBuI]u +GXIVOWh&W81POZ3r2/.mS]0bNYC`$.hS!!$TlMi7&[]=39pYHKT1DJX.%ieaWVXAZ6og*',-,"kL6t'Cq7/@P$a:\IQ5hX8C-OYVpWDqTdGiQf'E,M,5RX2pd;a4B\?9bhbQA@tqLe+%l7@&bH]U4NI-"; +u_!!%PB<%@#$q6m`?MY6f@q/C3i*?BRIF&P;*V-ZBo6^ENsQAA)%LddVc_Ru7loHdt/,ldpq@!d5^S<( +7n].;J$gpn*LLPCOin_>)a!5KcUgV2E!Je0+JF#KuN08jfGH`z!!(r".t@6anF5r +(b2^O'S!of"gY4Nc$31&+!!!"L2k[L`1RH8o%1Om?/5/i8\$i`"LPq(K=kZt<7>?f:^&-)\1zzzzzzzz!!!"t#J7U[V,Ac..]>EV55L1U3o/^dF#51\sdb1e,p_JC=js9!!!R`ZXGg. +^2q*@elL@uOg**Tc*k&=o4!_-jJT])4liNU^]3H@RpUR578m,`kY(7-lWKQD@\,c3g=k7!ZII@PF8bt. +naZ.uVb`)',9nF9QU\hE?bRLXA3.V*L!C?pF8l+5aiVZ0Z*EfHf%AX=V2Zth86!K%#ljsUZEC@56D<=! +nVCt"E3T6@Fn9(&iTeso+Zs+[p!qpAdaD%hNN%1VLGS]eSOlH8J[CbD%n)B(@ak'/pK +47i8q`O?hOYJ\M_,SJY]g)=;[.R"M'4Zsgse+i]_<`P9\\[f7[YulHh1S*L'aqklO]6A2n@UEJL=PVQ] +aJp`G6_``+k@\F? +.i)c0AjU_`0>p%=k:FXi%or,+R5;4Tgpo&*UGgph>KA8,dn.]]R?Q]=HJG"M`7!;ui:kL.O\ +qDp`$gt^]?f\#uH7ira60Z)dkG'9H:ET5ZXBBI1OZF.)?^38Y.Dna?)(@&`TM\eaNDVr1!FWi$mQX>3p +)to]FE$QSeq0]oYXfZ&\IXXIkBlnGRPH%0BNl:6nVZZu"n@#lJj\#?/=7,DBrVc]R@$o:'_o&aaZ)gSC +8`,!omG<0tk/C;Otfs>=t/qgU"c>Y&`gY3l-i>&J(rQ^rqj]ct?;AF=A +7j9-=,ldpq\'Vq+5fG$rlg*ja:7O:gHStRk+ZtHFiR:Re/O)'FVL"/YMg^#%h;-o_I(i]6rq+Z8=]\#F +k3(npRqchYIe`D@f!UStdi"0VCMPG2VPg>i@_KEW$6/P0WhOCp8Anu8"98EupRXKm1AdfMo)"!-KEg&3 +?h_h\YBDTp@IaYYtT'!-fI<\ofOtU9O3ds7u0C_sl9!kK^d"$;&=T3"6B/LS*Ve +j,rql0%?U+AIP;c_iWH`QO56(QPYk$Xtmlbpb+N#Bp_I<;(kmU'[ +.[<>4:7j^UZ+dHHi;U\p:Ih.*G"M`7!,m]aNuh$/.'3@Ga88pQs7t`tPAjLfkig*^9[[l6:At.i\X.BJ +3\U*&XXWn=K3.Xr/hVl0p%@uh;CAm@AM8,>rUsH6Df5p-LED!?o]ai+b9R*AbL1j:1E9E"=DVYaW*#RX +R0d#bS=Ig!,jL,E6oF=q!!!#UEkArqKgMK4WMs?TG'5d6(.Uh`19$.!h7\/Zk!`@S>Ub0l+T1YNfGn42 +:&029`/,-BlTbCDA,/aj9WB:B4ZtqO3PE,>Hf(,"eMEcTW!3G16>SP<2YJd6%1S$1jlPU*WhM]@86!K% +#ljsUNfK-=2S=>,k2+8Sp@an1B>WZNb"@DB;$YmkQt*aQnR;dMbfn;fb0J:-\M`3VHT/jZ85Au=nIOJ4 +'WP\)_bl]6H@#UhSfU+Fgsjj'hVOi4"?.K1B0[go"TsM'],\Le(.."OC +Vl*a'>JnAJ17*,h,YpqiGjLXp!!(Yms8Ms-558OS5-lgm/_@.2bIT+eJU'!#=C#4ghjWDMpYC[_M6)UZ +0t2&VHGt<_7n6(U/s(aSc>X3?ra()"M!!#9 + +%AXGEndBitmap +GR +GR +GS +[0.48 0 0 0.48004 1236.48012 312.25837] CT +[1 0 0 1 0 0] CT +N +-2576 -651 M +1424 -651 L +1424 1416 L +-2576 1416 L +-2576 -651 L +cp +clip +GS +0 0 translate +1424 1416 scale +%AXGBeginBitmap: java.awt.image.BufferedImage +{{ +/RawData currentfile /ASCII85Decode filter def +/Data RawData /FlateDecode filter def +/DeviceRGB setcolorspace +<< + /ImageType 1 + /Decode [0 1 0 1 0 1] + /DataSource Data + /Height 1416 + /ImageMatrix [1424 0 0 1416 0 0] + /Width 1424 + /BitsPerComponent 8 +>> image +} stopped {handleerror} if + RawData flushfile +} exec +Gb"-QYn=c:%)];d]`3^XmG<'5!gl5fq0`6>0f-!\z/:%I"!!#ij5,u!!"Qr"TSN&:nq(l!!!!VH3F9K!)TFlz20oE+!! +#ijB5d!!!"5oEkQu!$I8-!<<*"UsU[m!!%O+H3F9K!0B[ +Rzdc_DG!!#8&]`J06!(`kdzC%M`4!!".$?3($+!2S!m!!!"L1jT<*!!&*MY5eP&!7L'G!!!!a)SH1P!! +#QbB5d!!!"5oEkQu!$I8-!<<*"Us +U[m!!%O+H3F9K!0B[Rzdc_DG!!#8&]`J06!(`kdzC%M`4!!".$?3($+!2S!m!!!"L1jT<*!!&*MY5eP& +!7L'G!!!!a)SH1P!!#QbB5d!!!"5 +oEkQu!$I8-!<<*"UsU[m!!%O+H3F9K!0B[Rzdc_DG!!#8&]`J06!(`kdzC%M`4!!".$?3($+!2S!m!!! +"L1jT<*!!&*MY5eP&!7L'G!!!!a)SH1P!!#QbB5d!!!"5oEkQu!$I8-!<<*"UsU[m!!%O+H3F9K!0B[Rzdc_DG!!#8&]`J06!(`kdzC%M`4! +!".$?3($+!2S!m!!!"L1jT<*!!&*MY5eP&!7L'G!!!!a)SH1P!!#QbB5d!!!"5oEkQu!$I8-!<<*"UsU[m!!%O+H3F9K!0B[Rzdc_DG!!#8& +]`J06!(`kdzC%M`4!!".$?3($+!2S!m!!!"L1jT<*!!&*MY5eP&!7L'G!!!!a)SH1P!!#QbB5d!!!"5oEkQu!$I8-!<<*"UsU[m!!%O+H3F9 +K!0B[Rzdc_DG!!#8&]`J06!(`kdzC%M`4!!".$?3($+!2S!m!!!"L1jT<*!!&*MY5eP&!7L'G!!!!a)S +H1P!!#QbB5d!!!"5oEkQu)TkpC;T +ocMR&,CN-3+#TjXTc@Vm`@OlD=X +qL)!W^SDNj=mYQ70^''kB*$!,*cN=\:DAP[]pcZC([m1mFadV3iQ$0hV]'9E5&2b#+I&bS$b>V1NM1!! +!Ji-qc"$M,MPq5rKAVJ;/*/V%g7(.;#P%RgB'[6TN:eMHQYfZW*%2"9>*g*+^Smg#U]6EaT@q29[Eq//.)HTAV?+G!PofKj=UR@^FDR\C"Kc0pkr+f#$9aqO@*Vq; +0iSia5[p.IIBY(UZ[8s>Np$,PjJg9T'3p4h]YBpua!'m+OrViK4g[4_0pip*1U!^R?4?h(g>_,Okic]hgV%R +b_V3^Ih?uCR@0K +.F/f$+cCI%>0+@m]3,Yp,^RgpaS"6+PmKMY2j"FcRXF!Am9X!&`\(`i[hAlHl=)_[X$O_a(j],%,f[s= +!nD1^#2(f:;!3";C:S.jcJr_!43De#1_a/M&I&Z5ruG+Mj6 +h:TAcXN>jhA?3lNFp]CKoqtFIt@:a#HH87WH?2]%aCTHk,dWgD2E;HCS!!)LAZ+n&g]tJjX@otU;aEW3-+UZp-hlBA6:V9-j$>1NcU!$%nc^HXP31c@78kkXi5ci#Ubrg($3hu<1ZK5Y! +o\'+'_hDrCODt#9BLPLWq4^VDtX![-.p$9#e$31&cAhu5!eJ4ag;'%jQgY4f2k"PHP\q/GB0Ug;a.lai +VaiS:B<``?5T)ABRA+7%9\[bl'_>jRdA(0c:7Rfj.S^-0<"4*Q%4+$\&03@Z7oEpUpCMU!*mC(d:jlPT +*Y?i5s0&=*]X6ueb!!(';\f.)#GOFBh""-j6=BSe+HVlVk?GXt_nDV97IP.0RH1LLca)s$B!!&t6f<8Q +5f@RL?[f6,l4+LL^qt=l:A#%ZAe\)Lozzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzJ:E1. +!.kl@hZ~> + +%AXGEndBitmap +GR +GR +GS +[0.48 0 0 0.48004 0 -0.25] CT +[1 0 0 1 0 0] CT +N +0 0 M +4000 0 L +4000 2067 L +0 2067 L +0 0 L +cp +clip +GS +0 0 translate +2576 651 scale +%AXGBeginBitmap: java.awt.image.BufferedImage +{{ +/RawData currentfile /ASCII85Decode filter def +/Data RawData /FlateDecode filter def +/DeviceRGB setcolorspace +<< + /ImageType 1 + /Decode [0 1 0 1 0 1] + /DataSource Data + /Height 651 + /ImageMatrix [2576 0 0 651 0 0] + /Width 2576 + /BitsPerComponent 8 +>> image +} stopped {handleerror} if + RawData flushfile +} exec +Gb"-V_.t=X]"m;)VBEDO*\eIN&A\r["-0MgBAl2&L`d&@N?KeaL.N.I,Ikf]g/SLmEG#`&M'.D>P(qhL +dQ#IfVA4GsTu^X2eg:&#@?1%,kqB%4qL'EB0N6Gco-NR*S2rmKWk\N7zzzzzzzzzzzzzzzzzzzzzzzzz +zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +zzzzzzzzzzzzzzzzzzzzzzz!!!"49`Y4o!-Hb@5PqXBcYra5^Xh+F#b5#Os/-Y5!,sL"s0)1Pf2$UX,u +QHj,\3E9`@R./=X"TeFF7(o%Yjr8I+n9\3m&uS!!"Q!pD^0gf2$UX,uQHj,\3E9`@R./=X"Te6n2dT!! +$Cu\_gNN^4*Z2/:QmEA#:8D?b8B!-BMHM,]p!XpnM,_\3#oP*g0h\f<>=X"Te6n2f*<6PsT!5Ob<^Tkq0rH*ft+r.FP6H4j]bS$nB,u +QHjUgfVi!!&>G`X2\Gz+==c=z!!",g]bg_Lz+==c=z!!",g]bg_Lz+==c=z!!",g]bg_Lz+==c=z!!", +g]bg_Lz+==c=z!!",g]bg_Lz+==c=z!!",g]bg_Lz+==c=z!!",g]bg_Lz+==c=z!!",g]bg_Lz+==c= +z!!",g]bg_Lz+==c=z!!",g]bg_Lz+==c=z!!",g]bg_Lz+==c=z!!",g]bg_Lz+==c=z!!",g]bg_Lz ++==c=z!!",g]bg_Lz+==c=z!!",g]bg_Lz+==c=z!!",g]bg_Lz+==c=z!!",g]bg_Lz+==c=z!!",g] +bg_L!0XDJZ8pWF"TSN&4G7#L!!!#@Ughqd+:jH2riU0(W(Hf9Yp^ARQFLL-en!rr< +$!!!#[m\Q7V.Z36NeZ0d?oMMgDHi3ESS%jFOq<*[>dYe,+z!4)=;(LIkFnaajVh`p`2pYW0VXZc@,;i< +LcK(.Ic0#9OpKH27$m[C*Dhp[0WC:b +N"Qz!6Eki5Q.soZ15aG:ON',[teVQHgeYB.,K@Cc,CLa`;fl5SHKsh"^Ku:rOi$qlMuWhX +F@T>t^&8tn(]XO9]&:Sf)b!V?D/C:5*#tQ\IJ``%:Hj'__M'(\pgM!mC+fPe!2hNBN2jJ=MZEeXTQLJE +#OC^AO$33h"&GQgpu@EnU3PjlG8=Ga(BXX;zjQkE)Ik?Q;Puh:;i;Cncs4j,omBtO]>cSYCz!!)*GhS" +8);*=aBZO`QJNCM1gc-=K:fBU@3f$T\b^]&P#nrlj5=`C'@$ig8-!!!"\[I:j,ma +4NH]l;rI]C3K2q<+C-\om?#QX;A&ih_uJ>(!#M$ig8-!!!"\]5PI_p?L2/`W'.L?b^U@`ZK^.Z1of^(] +XO9!!!",2;GllpT(L3qW=8c%Lru/o6J"dz!!",g]bg_Lz+==c=z!!",g]bg_Lz+==c=z!!",g]bg_Lz+ +==c=!!!!/%>OiDBR:Ho!!$teoO7e#!'!s.ATP5l$31&+3'V^Dz!!#8XH8,C"z5YQJYz!!#8XH8,C"z5Y +QJYz!!#8XH8,C"z5YQJYz!!#8XH8,C"z5YQJYz!!#8XH8,C"z5YQJYz!!#8XH8,C"!<6Rl)-(h4p*p%B +!._DM(BXX;n5$'qm-X8ck0paT!WW3#S-ckG!!%NQnr:Ug?&g;-[TnIhP!!$&V?46f6^i>;\U[>`h:O!'D +!.\(D(BXX;E(i/+!rr>:MU@=_z!!$KVMZEeXz@a^/8z!!$KVMZEeXz@a^/8z!!$KVMZEeXz@a^/8z!!$ +KVMZEeX87a]O[_2eD!!(p[oO7e#!0W_oVnN&"W\3%4#QOi)E*R]D!!!"u<-:3mN7qSA!!!"<>^A+)!!) +1u2P4#ml/C.m!!(A,]bg_LJ9*W?N4/I=m6h-Y!.`Yb`;fl3(I`;flb>W\3%4#QOi)n2KuK!!!#E<)o8k?46f6!8XFe!rr<$!!!#;U_a+5z!5tZL!r +r<$!!!#;U_a+5z!5tZL!rr<$!!!#;U_a+5z!5tZL!rr<$!!!#;U_a+5z!5tZL!rr<$!!!#;U_a+5z!5t +ZL!rr<$!!!#;U_a+5z!5tZL!rr<$!!!#;U_a+5z!5tZL!rr<$!!!#;U_a+5z!5tZL!rr<$!!!#;U_a+5 +!+`43bOK,mp*p%B!.ZWb`;fl*`8!!$]gCd-\3gT9\Gm=bN?!!':f`;fl<>u9(J/]Ibj!5LVDMZEe +Xz@a^/8!!(*lCd,6a)ZTj<:/*AG!!"-Kj2kt]DmT8np-J`Z!$Fp\0`V1R=gPXU!!!!o9eQ\N!6A#;Q\/ +_]m8X,d!!%;nMZEeXEhjKR!!!#Bdu+5,z!+OB7!<<*"!!!".dYe,+z!+OB7!<<*"!!!".dYe,+z!+OB7 +!<<*"!!!".dYe,+z!+OB7!<<*"!!!".dYe,+z!+OB7!<<*"!!!".dYe,+z!+OB7!<<*"!!!".dYe,+z! ++OB7!<<*"!!!".dYe,+!,125190WFm8X,d!'iMi0`V2=0#j+&Cd)]_($S_@g"YCuNg9P,!!!"lbOf6D! +.],he`EcoBQN/+hW@FJ_JOb#_6DhpJBc]2quHfu!2-[j@K6CYo.chqQ41L.]"e$e@5%'9mkeD+?4-`5! +(/K+%WdMp\t0Ojq#W?kd03D`W,u=E-Ck_!!%OE3DQh"%/\Y#YAN`F-7lg#mDYYn%0-A.B1FTZ!!(*ci +ATc_]@WK]4;kQ?)uos=+BNkD!!#9u3k-1I!!!#?LgCJi!"d:h5.)[S!!!!YU_a+5!/+8#jn@Q.NQD/#! +5Mrf0`V2=0_Q:b!!!#nl,!!)(N0*VCVhuUOiSaF*bqhkIT!+=pQ`;fl<*&X3]\+_e-q`AXJ"98E%3-0 +C#!!(AKj2pM9\*e9#Rbtd&`;fl<&:n-r!!%+A+cZ6!!#DF)"t#ACjQls!!#8GoO7e#zJ=,t3'B-_n*d!WW3#YWDDc!!" +,LZha7imPVZp!!!!A+h\]m!6@K,QeQkV$[V>Z5#mdI!!!!o6n\`E!4m)2)>3]I(?aVnTKJ]>cYZY^!!! +#0du+5,JF4@P7TE_HDSc#_!rr<$S?_Ife;F>-JCRK +HATP5jL@Jg(*:9m0!!!!)kg@/O^:mnfKjG/f!(8LXp7%iE<<*"!!-H*FgUB+"2P,Bol+;0.0)1f?$ig8 +-!!!#'8e)=@SpTn9[C*EikTN_gdu+5,J7tso*";^9hD3l6PNKK&"uQA\!731`^%Yi1'K9seI-;sN@K6B +NRdjpQl:o=*q6[WGe,"ET!<<*"mecOp+"pm/E:Mr,hgYIiTc_jD!<<+cO^t(>!!!!a.W<*#G#8tPIfDA +L/lF[pT*PDszJ;=!_QXA=qf.UICGjjM&j*Y2#"TSO':KE!!' +*l_6C\f[s&Sm\1@?Lh]`8$4^fe0pq/T=HGOF6Hk3)DH!!$CQc0!KkYhpG3A-Z+W.HLX3!'kRKmbB +7Kiq_c05Q2sT0`V1bgh]/;I"$4m$OL?+)>Ssg!!#9)T76WN;&&K5qsNu-d>J#*JDdH=]Y8`00^PG(6LR +DK!!!![jfQ#K.Z0t#WoIH\(BXX;S?Dc254A>!ecPmP!,r;FrqF0cUA49!+-1o.?46f6E'!%$W&`R<"TS +N&_#N*?fI2X:i8EPgQfuBgz!!"b<`;flI+m?4)%?CZ0*D7T! +8o^+@K6CY;u=mI4J%Mu3!K?_!-4bL!rr!<<+M;q$X*!!(*c@+[^?g1UHd!8qtk@K6B.m`X^ke +BL$q=XjCO!-FW8$ig:CTrK`OG`d!P_SNJ6rH//A!'p;C`;fl<*#_UBP0!!"B( +RnpNf2Obr???f\GH4%[UU-EK`FbFEoHlc4hk>2e#64`(qF4d"!!(@fleQ;8)13:]7RfM/ +J#/q=q_*U$m9FA7:JM#m!!&6X?46f6cl`/&p;<3Dl0G,?f4$O?moK6Qb3?AeSaQse!!)s@0*VCVGXHC2 +/['B!ZpjDQhPC&`;fl<5W?cB!<<++[m+[FS(Va9.(-S[\"_]e<&@,$ES[Yq!!!"jP8=<$!'QHu +Xm+*b_eD1n;@2*]>Z^WisAI7T?i*q6@B[HlWu!oe%Xz`KD#>!!(g +/+1@s?YO79WE?HOoJe.5n(:'SJ82EGII@fQK/!-6/=!<<-!rNB*YWu%q +KQZoqnr-J]NBS:!!!!q#^J-)!'i,bX:C8pGd3[ +ue.)kE!<<+MU<&5n!!(tfojWgKpH'J!Wq.0(h\RC;!!!"H6=('#!'M-^E.s>fMn[[/h=gK^7e8:NMZEe +XJBu>q!3'chNoj^7h5]msz>p(d)!!&t:olf"1[V>V;B5, +Vh!<<+M!m-?$!!$bR3Zf0-fl/^60#t0Y^Zd7_s&'X;!!!#kLV+H(!.*aQ]<$3,",e*B.kse'H7k-#/H= ++nhbKMJc):XC!.^fbMZEgN=6.=0OWMGh9lY9CShA(J:!U5rK,[Pi*Zk@^!)OAT0`V2=`NH\n@PbWWL=7 +O!j`iW^b0P[7%,(,Z!!!"l..UgI!.aA%&)6tp3;kh,$tR0S!!#:'jM_*!!4CQ'[aX>?UM0].!2*fl@K6 +DlVpkI?R^H#:Pm.3g!3.D""os1&3h;=ibtLCU&DniRs0tj9lN$tc!.$t<$ig:@-%B`qLPa"]jSJoW!'h +F_`;fl(@ +"]!!)KmGqf:!o\=c%RP)W!*S51YfT,*$5DI&>kmSpAcNjLN!%=AM(]XP^0#+]Wb$8kO`FegR=6bU)Q%9 +#;!!%_:(BXX;1rTBt?#4+eH\dF*-e%1eY#PK&!!"#d0*VCVBTE%"qp6BHRSb#1$ig8-PX/Ua!!(@of@s +kdfOg99HFN`fXt]nV!5OBN`;fl!!!!q&pZ23!'i>/1[=4F>k^Pb!!% +PpOr"3#!&W9kHrO>Z!!!"`7pZT(z!74O4@K6B.!!!"LIZbKLz!!)YT]GLVKGfBZd?11g:Y6"\(!.Z98M +ZEg.=6pIP[+2hszMBjhZz!!)41Gqf:!z5X3AK!<<*"!!!#q8R;f*!.9"(?.QXSG#W\UrLq9%fcS0J253(!<@YShQ +?cV0-%[)b?GJW!!!"1P8=<$z!;)Jf(]XO9!!!"lTB*rkz!!)sC0*VCVWqWDWaT);@!0flX$ig9,luYEd +QXc.4!!!!amGu4d!'nN+\'+cT9s=*IHFHLN]h8D,!!)41Gqf:!:p9h+S$on0!<<*"cq!Y9!!&[<=`H.r +!!!!VOr"3#!9LcJ0&Ph+V[o]KZ'o,%!!%Q'abp0"JF]dcX2S]E:edI/1p\#Vjo>A]ciioK!!&ZS=afi> +YUq^T0)PDX/,`IAQfIPBk5YJ^5fMg'!!#7fjMfodhCe&TI99quL$GT-0mcjKnc/XiTKhMV!!!#+Oh;M2 +!!#210*VCV.^2-RdoQ2mzpj_AD!!#7foSWnR!!$[TGqf:!cnWq@\F*>s!!!#+J@l^!!2rQp8acS^*DQf +b?\`a47HXXN!'h$>0`V2MNU,se?&m*'E_kk.3e`YPXEU^3g46f-!!!#G0`V4GdjNUt:Zpba[q\H +Hl*Ll@2#mUV^jG.]!!(AMfA!.-bkH3CQ8AS#*Hn]U2'fj&][*3[H;`u5SehA,!&TAA(]XQ7_#CQtEot6 +F6M8;t>45L+qrA%I@AU^ANsl!g!#e11$ig9,j)dIS<`i7n1"H%]mT3X%!!!#D+YO$"!-1KKqr'j7LM\s +<35$EY^I6'A!!!!n+>3p!TNraeXEt\1EP5WnS(ZuRJPYIhE&*6.30*5H!WW3#1kE:V!.]6T(K]sL]+i[ +Z3^'n;+GJ;r^I[\N-HQ2>)E&$)!!#_<0*VCVo'HtBr/<<-2WEZek'FYP'%*S)dT;9H)%ccai>!!%NNabp0"J.G),l-]EE3#SN/\fBl9Jm"t`hQ;Ye'p%#Drm^32rihY_f&Fa)Y.b_ +Q!!&HW?46f6Hu=Gd/iL'#E]fj#*^\V.=a01&N=1f+Bo)P2Ld-O5Lo'eF!!(A>nmVS!TFauEqfL8+$ni[ +H^D<g+0cSinh--9%-\E^P)8t(&s3MQ#F(o)?BgU/Lb^GQ,=jq!H5 +Qk_%]H-f4,=N>20P;iYWmD[laI!#:\6!s$[oqA\&GHFo-u?aZ\trTS@XLF\A#eoe.t!!!#q7:$B&5aTQ +]lCp$J!!!"lNTA%Y!5Rc(R9U0pf"9H_IB!;J!.[thMZEg.c4`f.9h_a^0#rmpbgQRm!.Z!0MZEg.[QC% +@C!6>>@Pc3\Te4j-SWD7 +]GeI>#O4!8q[+]m?Du]k.6"D8#:c:&+tj-#!.`eFMZEg.%Z$S5LgnhKA#C% +X2,$#9A#["[fuFQMp%JXj!!#&R?46f6FMN43RP)X +'YG+)T_m\&5C7V("!!&Z>jM_*!z!<"/r"onW'!!!#_-[@EH!'ioAcGrhp9EP7p!'H>Z!rrV0!U[]Q?:cuAi?*-X`pg:W(T/`!!!#GI.C_H!2)c`\'' +*,)U6#XR<#/TMQf'Gj)?b%ko/#"dZN"E"k*ut88%C%*"N#L!.6.I"onX,,gsmB1t2@#@@O^:(KJ+i;3? +\OFhjq):A6?giTrFmk^-VU;0#O3"onW'RS7#r!!'CUl$OIG#2RI\ZPr,'6JHUP-s3&na7nh;'H2Hc9D8 +e&!<<+MhoL]V!.^A=moIp!\@fKLF?\7g7`Q5'FEL"m/`!8BB(g0qpP$Te!!#9&abp0"J/3tWb4.[MQ&s^r9nDRX[aVn+>>U!RLfH!5Ms`MZEg.`eoMmpT\=0b@[BBh\J34pU`%(WqV +WqH;e.q%KHJ/["u@3!!"E>']^$s6:N9f_ZA5IZ,ITm2nujbl)$n5m2s@a!rr<$4X;Zb!2,t8]2^GbL:c +inGdgdpE0'HT.Z4<-!.Z1F"ot9TNet+q98R&j,HVkdq6^%nJRg]8s!47?j(]XPL^AVIZ`QQpoj7M +AFr\^2S7)jpO[kZ^_FA!_T+,*U1!!!#_2L."W!76+U>2EnYf@slAR8'%.Y3*]#9O1d9I(GrFq:G@ai[X +I!!!&\HjM_*!5k@F#R9o@2bk/X/lIT^$?-S5'bAiemn\5F7%KHJ/BF];B!!#iYe+m,&4PY&>W/$@5eRb +916"IJiSu[f-1p_'\Ak%]D!<<+m1ZZLT!'j-LLM\qe38[*^E6`@K*r180EVa[d**6'oHf(tdbB'H&q83 +BSKm[eD?)@1tneViJ1j5p?@/p9-5^DG0!!#90?E>f/0j0NMGW6R/=I`^trGRd;H=&td)Ejgi$$K9,a6+ +P93pSt8DdFD"PnSO8W1@7a=o/U-!!'Yt?46f6PU*/XoCkCTXNul'bV0eWCq;njK=rE;r*!!!#K7:$B&!;tC5j+^o*?rgYS.<+##c&W0CjJn-_/-Zt^@<22ul?Uj>T.K +-=1\QV&R3TJlfccn7>QqLEEAsTn\u8FE!!!#WD=V-9!2'Bh_r:r7,?`;F7]oEAMgf._D_+)0SKBI08uFn1T` +G,n!"'u)"onXl+:F*;&oeTIq.>o;J,32(`]'XNJ,_srf`^J6lD=R^!!!?R0*VCV)BuK:W9RZ)Ake)?^O +$mo`d$KfPHH2EnFZQHSMC0F!'o5u`;fm'UI8VWokrpU$Fo#+&4@cU>BMtB)a$6HUOV^ZJ!<<+ML6EDU!5NO(]2dSM?:>r9S?ZZ>LNE0GcI,j"l" +E,KesWtF+TD@_s4IAP!!$[rGqf:!r$Kk-\l[9@Ohb"Ck9CA[T._/f`=WPDI/^f;3VlhSirK,[!1H\i$i +iPb8VHDmhu(%]qVpCIKJSa"7p#!J@sT0?^E0]@9SCUgZiC(+JEE%3!s$\\3?>"dalSB4^5]_;:M3\JRY +R*CB`8`dE4l4U._5Ds)ZTjbY/MBl6qQ9B,!!!"l;< +5[r!:Zb]"fHH9rm9WFM\hl9I6a:gU_lre^:V4`,!<<+M[Z +D:-!!%]$q%t]\5:J1F8n>p*!<3:uQ"\>~> + +%AXGEndBitmap +GR +GR +GS +[0.48 0 0 0.48004 1236.48012 -0.25] CT +[1 0 0 1 0 0] CT +N +-2576 0 M +1424 0 L +1424 2067 L +-2576 2067 L +-2576 0 L +cp +clip +GS +0 0 translate +1424 651 scale +%AXGBeginBitmap: java.awt.image.BufferedImage +{{ +/RawData currentfile /ASCII85Decode filter def +/Data RawData /FlateDecode filter def +/DeviceRGB setcolorspace +<< + /ImageType 1 + /Decode [0 1 0 1 0 1] + /DataSource Data + /Height 651 + /ImageMatrix [1424 0 0 651 0 0] + /Width 1424 + /BitsPerComponent 8 +>> image +} stopped {handleerror} if + RawData flushfile +} exec +Gb"0R_.gha&4F?NP^eGRK26hO%=3Z-1=4C@chi(izzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzpl?Hr.!b^1#QOjSi@2s-/[8bX6]MHQ^ep]/XOn.9[ +P['4!!"##.EdT#Z!p?nNX5^$;4b(pfFf^C1ut#(!$()LbDImV@S9(K#lqbB:#QOi)J1l3P!!!!qU +K7Eq!!"m&"TSN&:nq(l!!!!VH3F9K!)TFlz20oE+!!#ij + +%AXGEndBitmap +GR +GR +%%Trailer +%%Pages: 1 +%%EOF diff --git a/buch/papers/ifs/teil0.tex b/buch/papers/ifs/teil0.tex index 7cb218f..b8a678d 100644 --- a/buch/papers/ifs/teil0.tex +++ b/buch/papers/ifs/teil0.tex @@ -5,7 +5,7 @@ % \section{Teil 0\label{ifs:section:teil0}} \rhead{Was ist ein Iteriertes Funktionsschema} -Mit der Hilfe von Iterierten Funktionsschemata mit nur wenigen Funktionen, komplexe Bilder beschreiben. +Mit der Hilfe von Iterierten Funktionsschemata (IFS) kann mit nur wenigen affinen Funktionen, komplexe Bilder beschreiben werden. In der Regel sind diese Bilder Fraktale. Wie es dazu kommt, und wie man mit IFS auch Bilder komprimieren kann, wollen wir in diesem Kapitel untersuchen. diff --git a/buch/papers/ifs/teil1.tex b/buch/papers/ifs/teil1.tex index 54089ec..68e2e44 100644 --- a/buch/papers/ifs/teil1.tex +++ b/buch/papers/ifs/teil1.tex @@ -15,20 +15,20 @@ Von einem Fraktal $F$ können wir folgende Eigenschaften erwarten: \begin{enumerate} \item $F$ hat eine unendlich feine Struktur \item $F$ kann nicht mit der klassischen Geometrie beschrieben werden. - \item Oftmals haf $F$ eine Form von Selbstähnlichkeit. - \item Die 'fraktale Dimension' ist grösser als die Topologische Dimension + \item Oftmals hat $F$ eine Form von Selbstähnlichkeit. + \item Die 'fraktale Dimension' ist grösser als die topologische Dimension \item Viele Fraktale lassen sich einfach beschrieben \end{enumerate} \subsection{Koch Kurve \label{ifs:subsection:lilkoch}} -Diese Eigenschaften möchten wir nun anhand der Koch Kurve näher anschauen. -In \ref{ifs:kochkurve8} sehen wir die Koch Kurve. Wie man schon erahnen kann, besteht sie aus lauter kleineren Kopien von sich selber. +Diese Eigenschaften möchten wir nun am Beispiel der Koch Kurve näher anschauen. +In Abbildung \ref{ifs:kochkurve8} sehen wir die Koch Kurve. Sie besteht aus lauter kleineren Kopien von sich selber. Den Konstruktionsvorgang ist in Abbildung \ref{ifs:kochconst} dargestellt. Gestartet wird mit einer einzelnen Strecke der Länge $a$. -Diese wird in ersten Schritt mit vier gleich langen Streckenabschnitte der Länge $\frac{a}{3}$ ersetzt. +Diese wird in ersten Schritt durch vier gleich langen Streckenabschnitte der Länge $\frac{a}{3}$ ersetzt. In \ref{ifs:kochconstb} ist die Anordnung dieser vier Streckenabschnitte ersichtlich. Dieser Schritt wird nun für jeden der resultierten Streckenabschnitten wiederholt. -Die Kurve besteht also aus vier kleineren Kopien von der ganzen Kurve, was auch unter Selbstähnlichkeit bekannt ist. +Die Kurve besteht also aus vier kleineren Kopien der ganzen Kurve, was auch unter Selbstähnlichkeit bekannt ist. \begin{figure} @@ -54,41 +54,79 @@ Die Kurve besteht also aus vier kleineren Kopien von der ganzen Kurve, was auch \end{figure} Die resultierende Kurve hat ein paar interessante Eigenschaften. -Die Länge der Kurve lasst sich einfach berechnen. +Die Länge der Kurve der jeweiligen Iteration lässt sich mit \begin{align*} - l_0 = a ,\quad l_1 = a \frac{4}{3} ,\quad l_2 = a \left( \frac{4}{3}\right)^2 , \quad ... , \quad - l_n = a * \left( \frac{4}{3}\right)^n \quad + l_0 = a ,\quad l_1 = a \frac{4}{3} ,\quad l_2 = a \left( \frac{4}{3}\right)^2 , \quad \cdots , \quad + l_n = a \cdot \left( \frac{4}{3}\right)^n \quad \Rightarrow \quad \lim_{n\to\infty} a \left( \frac{4}{3}\right)^n = \infty \end{align*} -In jedem Schritt wird die Länge um den Faktor $\frac{4}{3}$ verlängert. Somit divergiert die Länge gegen Unendlich. +beschreiben. +In jedem Schritt wird die Länge um den Faktor $\frac{4}{3}$ verlängert. Daraus resultiert, dass die Länge gegen $\infty$ divergiert. + + Die Fläche unter der Kurve lässt sich folgendermassen berechnen \begin{align*} - A_0 = 0 , \quad A_1 = \left( \frac{a}{3}\right)^2 \frac{\sqrt{3}}{4} = a^2 \frac{\sqrt{3}}{36}\\ + A_0 = 0 \\ + A_1 = \left( \frac{a}{3}\right)^2 \frac{\sqrt{3}}{4} = a^2 \frac{\sqrt{3}}{36}\\ A_2 = A_1 + 4\left( \frac{a}{3^2}\right)^2 \frac{\sqrt{3}}{4} = A_1 + \frac{4}{9} A_1 \\ A_3 = A_1 + A_2 + 4^2 \left( \frac{a}{3^2}\right)^2 \frac{\sqrt{3}}{4} = A_1 + \frac{4}{9} A_1 + \left( \frac{4}{9}\right)^2 A_1 \end{align*} Wir sehen, dass mit jedem Schritt die neu dazugekommene Fläche um $\frac{4}{9}$ kleiner ist. -Daraus resultiert eine konvergierende Geometrische Reihe. +Die Gesamtfläche ist daher gegeben durch die geometrische Reihe, \begin{align*} A_n = A_1 \sum_{i = 0}^{n-1} \left( \frac{4}{9}\right)^n = a^2 \frac{\sqrt{3}}{36} \sum_{i = 0}^{n-1} \left( \frac{4}{9}\right)^n \\ - \lim_{n\to\infty} a^2 \frac{\sqrt{3}}{36} \sum_{i = 0}^{n-1} \left( \frac{4}{9}\right)^n = \frac{\sqrt{3}}{20} a^2 \end{align*} -Wie wir sehen ist die Kochkurve ein Konstrukt mit endlicher Fläche, aber unendlichem Umfang. +mit dem Grenzwert +\begin{align*} + \lim_{n\to\infty} a^2 \frac{\sqrt{3}}{36} \sum_{i = 0}^{n-1} \left( \frac{4}{9}\right)^n = \frac{\sqrt{3}}{20} a^2. +\end{align*} +Wie wir sehen ist die Koch-Kurve eine Kurve mit endlicher Fläche, aber unendlicher Umfang. + + Zu guter Letzt bestimmen wir die Dimension der Kurve. -Es gibt viele verschiedene Arten die Dimension zu definieren. Diese können dann auch unterschiedliche Resultate liefern. -Vor allem im Zusammenhang mit Fraktalen findet man in der Literatur viele verschiedene Arten. +Es gibt viele verschiedene Methoden die Dimension zu definieren. Diese können dann auch unterschiedliche Resultate liefern. +Vor allem im Zusammenhang mit Fraktalen findet man in der Literatur unterschiedliche Arten. In diesem Beispiel werden wir die Ähnlichkeits-Dimension \cite{ifs:fractal-geometry}. +Die Ähnlichkeits-Dimension ist das Verhältnis der Logarithmen der Anzahl Kopien $N$ des Originales und deren Skalierungsfaktor $\epsilon$ + \begin{align*} - D = - \frac{log(N)}{log(\epsilon)} + D = - \frac{\log N}{\log \epsilon }. \end{align*} Mit ihr kann man einfach die Dimension selbstähnlicher Mengen bestimmen. -Als Beispiel nehmen wir ein gleichseitiges Dreieck. Dieses besteht aus $N = 4$ Kopien mit halber ($\epsilon = 1/2$) Kantenlänge. +Als Beispiel nehmen wir ein gleichseitiges Dreieck. Dieses besteht aus $N = 4$ Kopien mit halber ($\epsilon = 1/2$) Kantenlänge $l$, Abbildung \ref{ifs:trinagle}. Somit hat das Dreieck die Dimension $D = 2$. -Die Koch Kurve besteht aus $N = 4$ Kopien mit Kantenlänge $\epsilon = 1/3$. +Die Koch Kurve besteht aus $N = 4$ Kopien mit Kantenlänge $\epsilon =l \cdot 1/3$. \begin{align*} - D = - \frac{log(N)}{log(\epsilon)} = - \frac{log(4)}{log(1/3)} \approx 1.2619 + D = - \frac{\log N }{\log \epsilon } = - \frac{\log 4 }{\log 1/3 } \approx 1.2619 \end{align*} -Wie wir nun sehen besitzt die Kochkurve alle oben beschriebenen Eigenschaften von Fraktalen. +Wie wir nun sehen besitzt die Koch-Kurve alle oben beschriebenen Eigenschaften von Fraktalen. Dies muss jedoch nicht bei allen Fraktalen der Fall. Sonst wäre die Frage nach einer 'richtigen' Definition einfach zu beantworten. +\begin{figure} + \centering + \begin{tikzpicture} + + % draw the background + \draw [line width=1.5pt, fill=gray!2] (0,0) -- (60:4) -- (4,0) -- cycle; + + \coordinate[label=left:$A$] (A) at (0,0); + \coordinate[label=right:$B$] (B) at (4,0); + \coordinate[label=above:$C$] (C) at (2,3.464); + + \coordinate[label=below:$l$](c) at ($ (A)!.5!(B) $); + \coordinate[label=left:$l$] (b) at ($ (A)!.5!(C) $); + \coordinate[label=right:$l$](a) at ($ (B)!.5!(C) $); + + \coordinate[label=below:$l/2$](d) at ($ (b)!.5!(a)$); + + % the triangle + \draw [line width=1.5pt] (A) -- (B) -- (C) -- cycle; + \draw [line width=0.5pt] (a) -- (b); + \draw [line width=0.5pt] (a) -- (c); + \draw [line width=0.5pt] (c) -- (b); + + \end{tikzpicture} + \caption{Selbstähnlichkeit eines gleichseitigen Dreiecks} + \label{ifs:trinagle} +\end{figure} diff --git a/buch/papers/ifs/teil2.tex b/buch/papers/ifs/teil2.tex index 143317a..5de3d4b 100644 --- a/buch/papers/ifs/teil2.tex +++ b/buch/papers/ifs/teil2.tex @@ -14,13 +14,13 @@ Zur Veranschaulichung dieser Methode nehmen wir das Sierpinski Dreieck. \caption{Sierpinski-Dreieck} \label{ifs:sierpinski10} \end{figure} -Wenn man das Dreieck genau anschaut, erkennt man schnell, dass es aus drei kleineren Kopien seiner selbst besteht. -Es ist also ein Selbstähnliches Konstrukt. +Es besteht aus drei kleineren Kopien von sich selbst. +Es ist also ein Selbstähnliches Gebilde. Diese Eigenschaft wollen wir uns zunutze machen. Wir definieren das Dreieck mit Kantenlänge 1 als Menge $X$. -Ausserdem bestimmen wir drei Funktionen, welche die gesamte Menge auf eine ihrer kleineren Kopien abbildet +Ausserdem bestimmen wir drei Funktionen \begin{align*} f_1(x,y) = @@ -63,13 +63,15 @@ Ausserdem bestimmen wir drei Funktionen, welche die gesamte Menge auf eine ihrer \begin{pmatrix} \frac{1}{4} \\ \frac{1}{2} - \end{pmatrix}\\ + \end{pmatrix}, \end{align*} +welche die gesamte Menge auf eine ihrer kleineren Kopien abbildet $f_1$ bildet das Dreieck auf das Teilstück unten links ab, $f_2$ auf das Teilstück unten rechts und $f_3$ auf das obere Teilstück. -Wendet man alle drei Funktionen auf das Sierpinski-Dreieck an, entsteht also wieder ein Sierpinski-Dreieck. +Wendet man alle drei Funktionen auf das Sierpinski-Dreieck an \begin{align*} - X = \bigcup\limits_{i = 1}^{3} f_i(X) + X = \bigcup\limits_{i = 1}^{3} f_i(X), \end{align*} +entsteht also wieder ein Sierpinski-Dreieck. Man kann sogar noch einen Schritt weiter gehen, und sagen: Wenn wir die Funktionen auf eine beliebige Startmenge anwenden, konvergiert die Menge gegen das Sierpinski-Dreieck. \begin{figure} \centering @@ -90,11 +92,11 @@ Man kann sogar noch einen Schritt weiter gehen, und sagen: Wenn wir die Funktion \label{ifs:sierpconst} \end{figure} Im Beispiel der Abbildung \ref{ifs:sierpconst} sehen wir, wie das Bild nach jeder Iteration dem Sierpinski-Dreieck ähnlicher wird. -Der Abstand zum Original wird immer kleiner, und konvergiert bei unendlich Iterationen gegen null. +Der Abstand zum Original wird immer kleiner, und konvergiert gegen null. \subsection{Iterierte Funktionensysteme \label{ifs:subsection:bonorum}} -In diesem Unterkapitel wollen wir die Erkenntnis, wie wir aus einer beliebigen Menge ein Sierpinski-Dreieck generieren können, verallgemeinern. +In diesem Abschnitt wollen wir die Erkenntnis, wie wir aus einer beliebigen Menge ein Sierpinski-Dreieck generieren können, verallgemeinern. $S_1,...,S_n$ sind Kontraktionen auf die Menge $D \subset \mathbb{R}^n$. Es gilt @@ -114,10 +116,11 @@ Wird diese Transformation Iterativ ausgeführt, das heisst $S^0(E) = E, S^k(E) = F = \bigcap\limits_{k = 1}^{\infty} S^k(E). \end{equation} In Worte gefasst bedeutet das, dass jede Gruppe von Kontraktionen iterativ ausgeführt, gegen eine eindeutige Menge konvergiert. +Diese Menge ist auch als Attraktor des IFS bekannt. Dies für jede Startmenge, solange diese ihre Transformierten wieder beinhaltet. Auf den Beweis wird verzichtet. \subsection{Beispiel: Barnsley-Farn} -Der Barnsley-Farn, Abbildung \ref{ifs:farn}, ist ein weiteres Fraktal, welches mit einem IFS generiert werden kann. +Der Barnsley-Farn, Abbildung \ref{ifs:farn}, ist ein Beispiel eines Fraktal, welches mit einem IFS generiert werden kann. Wie man schnell erkennen kann, besteht der Farn aus Blättern, welche eine grosse Ähnlichkeit zum ganzen Farn haben. \begin{align*} {S_1(x,y)} @@ -183,9 +186,9 @@ Die Transformation bildet das Gesamte Blatt auf die Y-Achse ab. $S_2$ (grün) erstellt den Hauptteil des Farnes. Sie verkleinert und dreht das gesamte Bild und stellt es auf das Ende des Stiels aus $S_1$. $S_3$ bildet das gesamte Blatt auf das blaue Teilblatt unten Links ab. -$S_4$ Spiegelt das Blatt und bildet es auf das magentafarbene Teilblatt ab. - -Wir führen im Zusammenhang mit dem Barnsley-Farn \cite{ifs:barnsleyfern} noch eine weitere Methode ein, um IFS auszuführen. +$S_4$ spiegelt das Blatt und bildet es auf das magentafarbene Teilblatt ab. +\subsection{Chaosspiel} +Wir führen im Zusammenhang mit dem Barnsley-Farn \cite{ifs:barnsleyfern} noch eine weitere Methode ein, um ein IFS zu zeichnen. Bis jetzt wurde immer davon gesprochen, die Transformationen auf die gesamte Menge anzuwenden. Bei komplizierteren IFS welche viele Iterationen brauchen, bis man den Attraktor erkennen kann, ist diese Methode ziemlich rechenintensiv. Eine Alternative ist das Chaosspiel \cite{ifs:chaos}. @@ -208,3 +211,10 @@ Im Fall des Barnsley-Fern wird $S_1$ in $1\%$, $S_2$ in $85\%$ und $S_3 \& S_4$ \caption{Vier Transformationen des Barnsley-Farn} \label{ifs:farncolor} \end{figure} +\begin{figure} + \centering + \makebox[\textwidth][c]{ + \includegraphics[width=1.4\textwidth]{papers/ifs/images/farnnotweight}} + \caption{Chaosspiel ohne Gewichtung} + \label{ifs:farnNoWeight} +\end{figure} diff --git a/buch/papers/ifs/teil3.tex b/buch/papers/ifs/teil3.tex index 24f0751..39a808f 100644 --- a/buch/papers/ifs/teil3.tex +++ b/buch/papers/ifs/teil3.tex @@ -12,30 +12,35 @@ Das Ziel ist es ein IFS zu finden, welches das Bild als Attraktor hat. In diesem Unterkapitel wollen wir eine Methode dafür anschauen.\cite{ifs:Rousseau2012} -Bis jetzt wurde in Zusammenhang mit IFS immer erwähnt, dass die Transformationen auf die ganze Menge angewendet werden. +Bis jetzt wurde in Zusammenhang mit IFS immer erwähnt, dass die Transformationen, welche das IFS bilden, auf die gesamte Menge. Dies muss jedoch nicht so sein. Es gibt auch einen Attraktor, wenn die Transformationen nur Teile der Menge auf die ganze Menge abbilden. Diese Eigenschaft wollen wir uns in der Fraktalen Bildkompression zunutze machen. Sie ermöglicht uns Ähnlichkeiten zwischen kleineren Teilen des Bildes zunutze machen. Es ist wohl nicht falsch zu sagen, dass Ähnlichkeiten zur gesamten Menge, wie wir sie zum Beispiel beim Barnsley Farn gesehen haben, bei Bilder aus dem Alltag eher selten anzutreffen sind. -Doch wie Finden wir die richtigen Affinen Transformationen, welche als IFS das Bild als Attraktor haben? +Doch wie finden wir die richtigen affinen Transformationen, welche als IFS das Bild als Attraktor haben? \subsection{das Kompressionsverfahren \label{ifs:subsection:malorum}} -In der Beschreibung des Verfahrens wird sich auf Graustufenbilder bezogen. Wie das Verfahren für Farbbilder verwendet werden kann, wird später erläutert. - +Wir beschränken das Verfahren für Graustufenbilder. Wie das Verfahren für Farbbilder verwendet werden kann, wird später erläutert. +Ein Graustufenbild kann man als Pixelraster mit einer x und y Achse verstehen. +Jedem dieser Pixel wird ein Grauwert zugeordnet. +Ein Bild ist also eine Funktion, die jedem Pixel einen Grauwert $z$ zuweist +\begin{align*} + z = f(x,y). +\end{align*} In einem ersten Schritt teilen wir das Bild in disjunkte benachbarte $b \times b$ Pixel-Quadrate auf. Diese Blöcke nennen wir Range-Blöcke der Menge $R=\{R_0,R_1,...R_m\}$ Im nächsten Schritt teilen wir das Bild in alle möglichen $2b \times 2b$ Pixel-Quadrate auf. Diese sind die Domain-Blöcke der Menge $D = \{D_0,D_1,...D_n\}$. Im dritten und letzten Schritt wird für jeden Range-Block $R_i$ ein Domain-Block $D_j$ gesucht, welcher ihm am ähnlichsten ist. \subsubsection{Finden des ähnlichsten $D_j$} -Zuerst brauchen wir die Transformation um ein Element aus $D$ auf ein Element von $R$ Abzubilden. +Zuerst brauchen wir die Transformation \begin{align*} - T(x,y,z) = + T_i(x,y,z) = \begin{pmatrix} - a & b & 0 \\ - c & d & 0 \\ - 0 & 0 & s + a_i & b_i & 0 \\ + c_i & d_i & 0 \\ + 0 & 0 & s_i \end{pmatrix} \begin{pmatrix} x \\ @@ -44,52 +49,80 @@ Zuerst brauchen wir die Transformation um ein Element aus $D$ auf ein Element vo \end{pmatrix} + \begin{pmatrix} - \alpha \\ - \beta \\ - g + \alpha_i \\ + \beta_i \\ + g_i \end{pmatrix} \end{align*} -Diese Transformation bildet den Pixel $P$ auf Koordinate $(x,y)$ und Graustufe $z$ auf den Pixel $P'$ ab. - -Da wir mit Pixeln arbeiten, sind die Transformationen in der Ebene Beschränkt. -Diese wird durch die Parameter $a,b,c$ und $d$ bestimmt. -Mögliche Transformationen sind auf folgende Liste Beschränkt: +um ein Element aus $D$ auf ein Element von $R$ Abzubilden. +Wenn wir die Grauwerte ausser acht lassen, haben wir die affine Abbildung +\begin{align} + t_i(x,y) = + \begin{pmatrix} + a_i & b_i \\ + c_i & d_i + \end{pmatrix} + \begin{pmatrix} + x \\ + y + \end{pmatrix} + + + \begin{pmatrix} + \alpha_i \\ + \beta_i + \end{pmatrix}. +\label{ifs:affTrans} +\end{align} +Da wir mit Pixeln arbeiten, ist die Auswahl der möglichen Abbildungen begrenzt. +Wir sind auf folgende acht Abbildungen beschränkt: \begin{itemize} \item Identische Transformation, keine Änderung \item Drehung um 90, 180 oder 270 Grad. \item Spiegelung an der vertikalen, horizontalen und den Diagonalachsen. \end{itemize} -$\alpha$ und $\beta$ verschieben den Pixel an die richtige Stelle. Da wir ein $2b \times 2b$ Feld auf ein $b \times b$ Feld abbilden möchten, müssen wir zuerst $G_j$ um $1/2$ skalieren. Dies erreichen wir, indem wir alle disjunkten $2 \times 2$ px Blöcke mit einem Pixel des Grautones deren Mittelwertes ersetzen. -Skaliert und transformiert erhalten wir $\tilde{D_j}$ -Die Parameter $s$ und $g$ beschreiben die Änderung des Grautones. $s$ verändert den Kontrast und $g$ verschiebt die Töne auf die richtige Helligkeit. -$s$ und $g$ werden mit der linearen Regression ermittelt. + +Die Parameter $s_i$ und $g_i$ beschreiben die Änderung des Grautones. $s$ verändert den Kontrast und $g$ verschiebt die Töne auf die richtige Helligkeit, sie bilden die lineare Funktion +\begin{align*} + z' = s_i z + g_i. +\end{align*} +Für die Bestimmung dieser Parameter führen wir zuerst die Bildfunktionen $f_{R_i}$ und $\tilde{f_{R_i}}$ ein. +$f_{R_i}$ ist die Bildfunktion des Range-Blockes $R_i$ und $\tilde{f_{R_i}}$ ist die Bildfunktion des zuerst Skalierten und dann mit \ref{ifs:affTrans} transformierten Domain-Blocks $D_j$. +$s$ und $g$ werden mit der einfachen linearen Regression ermittelt. +Wir suchen $s_i$ und $g_i$ so das \begin{align*} - z' = sz + g \\ - f(\tilde{D_j}) \text{, Funktion um das Bild eins Blockes zu erhalten} \\ - s = \frac{cov(f(R_i), f(\tilde{D_j}))}{var(\tilde{D_j})} \\ - g = E(f(R_i)) - s E(f(\tilde{D_j})) + f_{R_i} = s_i \tilde{f_{R_i}} + g_i = \bar{f_{R_i}}. \end{align*} +Die Parameter lassen sich mit +\begin{align*} + s = \frac{\operatorname{cov}(f_{R_i}), f(\tilde{f_{R_i}}))}{\operatorname{var}(\tilde{f_{R_i}})} \\ + g = E(f_{R_i}) - s E(f(\tilde{f_{R_i}})) +\end{align*} +berechnen. Mit diesen Parametern haben wir nun die Transformation vollständig bestimmt. -Um zu beurteilen ob der Domain-Block $D_j$ mit der gefundenen Transformation $T$ dem Range-Block $R_i$ genügend ähnlich ist, berechnet man den quadratischen Abstand $e$. +Um zu beurteilen wie ähnlich der Domain-Block $D_j$ mit der gefundenen Transformation $T$ dem Range-Block ist, berechnet man den quadratischen Abstand \begin{align*} - e = d(f(R_i), f(T(D_j))) + e = d(f_{R_i}, \bar{f_{R_i}}). \end{align*} Dieser Abstand sollte so klein wie möglich sein. -Die beste Kombination von $D_j$ und $T_i$ ist also diese, welche den kleinsten Abstand zum Block $R_i$ hat, und somit am ähnlichsten ist. -Am Ende des Verfahrens haben wir also für jeden $R_i$ einen passenden $D_i$ mit der zugehörigen Abbildung $T_i$ gefunden. +Wir bestimmen die Parameter $s$ und $g$ für jede der acht möglichen affinen Abbildungen und das mit jedem Domain-Block. +Die Kombination von $D_j$ und $T_i$, welche den kleinsten Abstand $e$ hat, ist die beste. + +Diese Schritte führen wir für jeden Range-Block $R_i$ aus. +Am Ende des Algorithmus haben wir für jeden Range-Block den zugehörigen Domain-Block und Transformation gefunden. + \subsubsection{Rekonstruktion des Bildes} -Mit den Gefundenen Abbildungen lässt sich das Bild generieren. +Mit den gefundenen Abbildungen lässt sich das Bild generieren. Wir beginnen wie schon im letzten Kapitel mit einer beliebigen Startmenge. In unserem Fall ist dieses ein Bild $f_0$ derselben Grösse. Nun ersetzen wir jedes $R_i$ mit der Transformierten des zugehörigen Domain-Blocks $T(G_j)$. Dies wird verkürzt als Operator $W$ geschrieben. So erhalten wir ein neues Bild $f_1 = W(f_0)$. -Dieses Vorgehen führen wir iteriert aus bis wir von $f_n = W(f_{n-1})$ zu $f_{n-1}$ kaum mehr einen unterschied feststellen. Die Iteration hat nun ihren Fixpunkt, das Bild, erreicht. +Dieses Vorgehen führen wir iteriert aus bis wir von $f_n = W(f_{n-1})$ zu $f_{n-1}$ kaum mehr einen Unterschied feststellen. Die Iteration hat nun ihren Attraktor, das Bild, erreicht. \subsubsection{Farbbilder} Dieses Verfahren mit Graustufenbilder lässt sich ganz einfach auf Farbbilder erweitern. @@ -98,19 +131,17 @@ Teilt man ein Bild in die drei Farbkanäle auf, das heisst, es wird nur noch ein Nun wendet man auf jeden dieser Farbkanalbilder den Algorithmus an, und fügt nach der Rekonstruktion die Kanäle wieder zusammen. \subsubsection{Performance des Verfahren} -Dieser Grundalgorithmus der Fraktalen Bildkompression ist offensichtlich recht langsam und skaliert auch schlecht mit grösseren Bilder. -Man kann die Laufzeit zwar verbessern indem man die Domain-Blöcke auch disjunkt macht, und für weniger detailreiche Bilder ein grösseres $b$ wählt, jedoch wird er auch so nie so schnell wie zum Beispiel das jpeg verfahren. +Dieser Grundalgorithmus der fraktalen Bildkompression ist recht langsam und skaliert auch schlecht für grössere Bilder. +Man kann die Laufzeit zwar verbessern indem man die Domain-Blöcke auch disjunkt macht, und für weniger detailreiche Bilder ein grösseres $b$ wählt, jedoch wird er auch so nie so schnell wie zum Beispiel das JPEG-Verfahren. \subsection{Beispiel} -Kommen wir nun zu einem Beispiel. -Wir Verwenden dafür den oben beschriebenen Algorithmus. +Wir Verwenden dafür den oben beschriebenen Algorithmus, welcher uns für jeden Range-Block die benötigten Parameter liefert. +Mit diesen lässt sich das Bild im Anschluss wieder Rekonstruieren. Die Range-Blöcke wurden $4\times4$ gewählt und die Dommain dementsprechend $8\times8$. Um etwas Zeit bei der Komprimierung zu ersparen, wurden nur disjunkte Domain-Blöcke gebraucht. Als erstes Beispiel wählen wir das 360x360px Bild von Rapperswil in Abbildung \ref{ifs:original}. -Der Algorithmus liefert uns für jeden Range-Block die benötigten Parameter. -Mit diesen lässt sich das Bild im Anschluss wieder Rekonstruieren. - -Als Startbild wird ein mittelgraues 360x360px Bild gewählt, Abbildung \ref{ifs:bild0}. +Das Startbild ist ein mittelgraues 360x360px Bild, Abbildung \ref{ifs:bild0}. +Es kann jedoch ein beliebiges Startbild Nun lassen wir das IFS laufen. Wie wir in Abbildung \ref{ifs:rappirecoa} sehen, ist schon nach der ersten Iteration das Bild schon erkennbar. Nach der fünften Iteration , Abbildung \ref{ifs:rappirecoc} gibt es fast keinen Unterschied mehr zur letzten Iteration, wir können die Rekonstruktion beenden. -- cgit v1.2.1 From 180789bb3f452a49dca3f3769630e0899357208e Mon Sep 17 00:00:00 2001 From: Alain Date: Sat, 19 Jun 2021 18:17:20 +0200 Subject: imporvements --- buch/papers/ifs/images/farncolor2.eps | 1137 +++++++++++++++++++++++++++++++++ buch/papers/ifs/images/faroe.png | Bin 987 -> 0 bytes buch/papers/ifs/images/faroe0.PNG | Bin 80239 -> 0 bytes buch/papers/ifs/images/faroe1.PNG | Bin 104146 -> 0 bytes buch/papers/ifs/images/faroe5.PNG | Bin 73790 -> 0 bytes buch/papers/ifs/teil1.tex | 15 +- buch/papers/ifs/teil2.tex | 77 ++- buch/papers/ifs/teil3.tex | 6 +- 8 files changed, 1199 insertions(+), 36 deletions(-) create mode 100644 buch/papers/ifs/images/farncolor2.eps delete mode 100644 buch/papers/ifs/images/faroe.png delete mode 100644 buch/papers/ifs/images/faroe0.PNG delete mode 100644 buch/papers/ifs/images/faroe1.PNG delete mode 100644 buch/papers/ifs/images/faroe5.PNG (limited to 'buch/papers') diff --git a/buch/papers/ifs/images/farncolor2.eps b/buch/papers/ifs/images/farncolor2.eps new file mode 100644 index 0000000..5d7d1d7 --- /dev/null +++ b/buch/papers/ifs/images/farncolor2.eps @@ -0,0 +1,1137 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (MATLAB, The Mathworks, Inc. Version 9.7.0.1434023 \(R2019b\) Update 6. Operating System: Windows 10) +%%Title: (C:/Users/Alain/Dropbox/Dokumente/HSR/08_fs21/mathsem/buch - Kopie/SeminarMatrizen/buch/papers/ifs/images/farncolor2.eps) +%%CreationDate: 2021-06-18T13:45:47 +%%Pages: (atend) +%%BoundingBox: 0 0 420 315 +%%LanguageLevel: 3 +%%EndComments +%%BeginProlog +%%BeginResource: procset (Apache XML Graphics Std ProcSet) 1.2 0 +%%Version: 1.2 0 +%%Copyright: (Copyright 2001-2003,2010 The Apache Software Foundation. License terms: http://www.apache.org/licenses/LICENSE-2.0) +/bd{bind def}bind def +/ld{load def}bd +/GR/grestore ld +/GS/gsave ld +/RM/rmoveto ld +/C/curveto ld +/t/show ld +/L/lineto ld +/ML/setmiterlimit ld +/CT/concat ld +/f/fill ld +/N/newpath ld +/S/stroke ld +/CC/setcmykcolor ld +/A/ashow ld +/cp/closepath ld +/RC/setrgbcolor ld +/LJ/setlinejoin ld +/GC/setgray ld +/LW/setlinewidth ld +/M/moveto ld +/re {4 2 roll M +1 index 0 rlineto +0 exch rlineto +neg 0 rlineto +cp } bd +/_ctm matrix def +/_tm matrix def +/BT { _ctm currentmatrix pop matrix _tm copy pop 0 0 moveto } bd +/ET { _ctm setmatrix } bd +/iTm { _ctm setmatrix _tm concat } bd +/Tm { _tm astore pop iTm 0 0 moveto } bd +/ux 0.0 def +/uy 0.0 def +/F { + /Tp exch def + /Tf exch def + Tf findfont Tp scalefont setfont + /cf Tf def /cs Tp def +} bd +/ULS {currentpoint /uy exch def /ux exch def} bd +/ULE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add moveto Tcx uy To add lineto + Tt setlinewidth stroke + grestore +} bd +/OLE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add cs add moveto Tcx uy To add cs add lineto + Tt setlinewidth stroke + grestore +} bd +/SOE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add cs 10 mul 26 idiv add moveto Tcx uy To add cs 10 mul 26 idiv add lineto + Tt setlinewidth stroke + grestore +} bd +/QT { +/Y22 exch store +/X22 exch store +/Y21 exch store +/X21 exch store +currentpoint +/Y21 load 2 mul add 3 div exch +/X21 load 2 mul add 3 div exch +/X21 load 2 mul /X22 load add 3 div +/Y21 load 2 mul /Y22 load add 3 div +/X22 load /Y22 load curveto +} bd +/SSPD { +dup length /d exch dict def +{ +/v exch def +/k exch def +currentpagedevice k known { +/cpdv currentpagedevice k get def +v cpdv ne { +/upd false def +/nullv v type /nulltype eq def +/nullcpdv cpdv type /nulltype eq def +nullv nullcpdv or +{ +/upd true def +} { +/sametype v type cpdv type eq def +sametype { +v type /arraytype eq { +/vlen v length def +/cpdvlen cpdv length def +vlen cpdvlen eq { +0 1 vlen 1 sub { +/i exch def +/obj v i get def +/cpdobj cpdv i get def +obj cpdobj ne { +/upd true def +exit +} if +} for +} { +/upd true def +} ifelse +} { +v type /dicttype eq { +v { +/dv exch def +/dk exch def +/cpddv cpdv dk get def +dv cpddv ne { +/upd true def +exit +} if +} forall +} { +/upd true def +} ifelse +} ifelse +} if +} ifelse +upd true eq { +d k v put +} if +} if +} if +} forall +d length 0 gt { +d setpagedevice +} if +} bd +/RE { % /NewFontName [NewEncodingArray] /FontName RE - + findfont dup length dict begin + { + 1 index /FID ne + {def} {pop pop} ifelse + } forall + /Encoding exch def + /FontName 1 index def + currentdict definefont pop + end +} bind def +%%EndResource +%%BeginResource: procset (Apache XML Graphics EPS ProcSet) 1.0 0 +%%Version: 1.0 0 +%%Copyright: (Copyright 2002-2003 The Apache Software Foundation. License terms: http://www.apache.org/licenses/LICENSE-2.0) +/BeginEPSF { %def +/b4_Inc_state save def % Save state for cleanup +/dict_count countdictstack def % Count objects on dict stack +/op_count count 1 sub def % Count objects on operand stack +userdict begin % Push userdict on dict stack +/showpage { } def % Redefine showpage, { } = null proc +0 setgray 0 setlinecap % Prepare graphics state +1 setlinewidth 0 setlinejoin +10 setmiterlimit [ ] 0 setdash newpath +/languagelevel where % If level not equal to 1 then +{pop languagelevel % set strokeadjust and +1 ne % overprint to their defaults. +{false setstrokeadjust false setoverprint +} if +} if +} bd +/EndEPSF { %def +count op_count sub {pop} repeat % Clean up stacks +countdictstack dict_count sub {end} repeat +b4_Inc_state restore +} bd +%%EndResource +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 420 315 +%%BeginPageSetup +[1 0 0 -1 0 315] CT +%%EndPageSetup +GS +[0.75 0 0 0.75 0 0] CT +1 GC +N +0 0 560 420 re +f +GR +GS +[0.48 0 0 0.48018 0 113.32318] CT +[1 0 0 1 0 0] CT +N +0 -236 M +875 -236 L +875 420 L +0 420 L +0 -236 L +cp +clip +GS +0 0 translate +560 420 scale +%AXGBeginBitmap: java.awt.image.BufferedImage +{{ +/RawData currentfile /ASCII85Decode filter def +/Data RawData /FlateDecode filter def +/DeviceRGB setcolorspace +<< + /ImageType 1 + /Decode [0 1 0 1 0 1] + /DataSource Data + /Height 420 + /ImageMatrix [560 0 0 420 0 0] + /Width 560 + /BitsPerComponent 8 +>> image +} stopped {handleerror} if + RawData flushfile +} exec +Gb"-6IuIo>Fmj\V^\n$U-9>i4SfeP.5>[^Z^'E=lkFi1C3C=E>S<8ef-dn7blpkRn?TSa:>B<(UaHe=d +fJ5\gntHq/V<,Y3&-IYQQ>G9D94(5O08U?F1#]$9A@Q^U[:/iqKC-5;!'>83e#pj] +k;pMap:B4\4_/30fC/XZ`p)2PT%?dsd!6 +;dj4[G51=J$6++i[NXrhD-O9N8U#2dT6ma2Jk\EKaa&giD"=+On7;1MS@kA_+Zs::CM246#*-\\45PL! +:CIK_F7nA"2`k_*mqYMXJ$d<1O-90OM+>#,ald],E&$.sD221ga.6@Wo!$G]!%s-"CQ'ph-M=8F*9s3e +gq%iA^FEL*dhRS,_5O.`XhPHjMs:g)cT+T[>)"=E-0s.qO)3@]r3p[.E&!l@e/5f=5M>5;95#:U\:=SV +)=BGPK]@WJ]r2rfpHpHPC?jCjm^/21Zg>*dHL+f-cbU+?MbsIKnWIKFR#+<?];AcsXo[:hDX!0O8hQ$tC"1EL%6lFsUT\Hp1)-aDV+3GX;`e2!;a8aiij)"795dL]e0Q0L +]I`S$=hhC-*ng;`Qcj-&7()rUO+Yp&,IVSl'H!b5kp.)A1P@V@d9`%N)J/7D1U!*seJls&1!cm1WQ+iP +4PdJ;?/j7p/Fb,k^U>C/Sbh-@QP#;&h3c-UR;W3]8bZtb-)fJ?q&nhFJ1X-LMAE)9:sVV8Y)Q)K63V`S +&7Z5"EE)RLrqR,GTBR81lTWL[)Ol`5+?47\i1"0'836T[d0a,X8T@\/to',CX +#qsP]i\!qihNW9GO"sSi!Pu?JYc`/:^*`)0VW0Q(W-:ls9%L0l*fVM&leIs$L#9+$&r4%>(BJ#=k8UbsSEi`mP#!\Vot'r1P/[QgPW[O8*QgN[-q6^']04'l(=#U>>JBa>;p9X2Z=fpf:n7mh?&1X@A9 +2s#*M7$2_90J2fC=hhC-*\CAreN&]G[s`H>+/JG;lK5VJ:gpB#6`TA$B5%r.b9CaB0HE*9U1B)V*.:d4 +T#Kofk/-I:)b92d9(b'\pJG(?-eY?As(ITB*[U.(QGfPnG8u#KnOV\_;efC3<:m,r^kigHT(n/$!?[2@ +&k"G2A/*Ksr*$jcCdKKPfO6a<2DkQc?*3om$7su,qQh`G2sE\1pic53f(gD)ZG`MKrS$geZk!MEXqk0- +H7Hjaal6TcgV0Oml;/_^"d4\bBi,LnT^9`$BZ'li?bJ1>j@"XmI*br7MK*jVG]:4#_K3]#(.bg);ndgm +(hW?"%]1Nn-0s.qO6TrYK8B+#-Fj-Lg/rd+'+*<_bY+V:dfbjBflReCbN3nSE +i\HE0+73D<`Cr$GZ`B8d-p%0*lhlf%=lN;aIVhY=asIME%cGcAfom15C1Ab8gQPVUVi;M&a7fET[c>qp +R<)Rh\n):J:WHbU0nN%R!0IQhB6n/6CnOBh(Np!8!4U7IQHPk_2U^[?V!Cf=3Zs`5PcS4r*fkWF9`%hN +fB'Cq:D^su:">C^AaH*rf6`^8+nMFAd/#!M]HDlXR.`)-+^tjfU_tS_.T0Pr*dco*\62d-M.??.I9%Ao +n7r[#l[dEcKU880d3_LK9%L0l*naH!S(hc86U8RQ*>\f*#^8P?5ITt64l?N,3Q"V^6jWUe`G1L+P3BuEBT>PLPU>+P1X\Pc,[BdFP(06gHXD&>DYkl +qR.^?W%1U2r[d=t;2[FaWD6[,#(s_PfC`aO-ih +GZ3ba9iBG#0?c_a_lR=VJ$d>+&s&4KD9Lkbg$bP]H1>Pn]h*>W0<7Hrh!SA7Veo9dg`HoXE>!RQ36^Kh +:Ef23"WH1DJB:GtLOpO7p(^Q=U_?#s&H9,T\hoAfg$p +3a-<,9'O\>c#`.Oh8 +_dHd0d5!9C-s=r-L5mQHA74b?d"&Rr3b[CPG@k1R2k&G7ah:i:'fG[;KZ,r2ZM13NaAhbL0R^o +1JNZRE`%?'dbP1)a([-Ph<@F2%rsS2DHh:+qa[,l/+G#jhmNq7XZ`r_ZJuN7*8ORo?)ARN':[MSG6SsY +`0c:=m9P.:;MGb9@?*,.j3[)31,q`+m_Rf.WmrXMo[IO$\&g@HG1GfN^01']lD:\e4nt8lD=T+FBGm+\ +PcS4r&s'V`bj5k$S.jt8@sZ&g9!6.Bo)_TLLZdZm$[-Ja`W`U(O,O&^)K]h@m,FutYc]RJ(F75PVA^>4(:ueaujIo,$7gI'IO-90ObM^e5_lF#n8*oD[ +*Uc+`\m(ugck)UdYKU(re;q0pV$uKrVF)CDa-dHL:ik0p!(GSjkfObY>pM#*2Otf.%)KM-:>oYX*(@\u +4iKEOPG36>XLUlY7gHsFO-90O9B&fM4j*K2n9=$;AC3*/^<*_7+ut9)DVoVA0k,YW(8&12)6FWQfS2Wm +oT7WIj]'1@,>2)=QQijTd`di>di*Q%U_'9d_WgH]>bf'O(]L/_A&j;fZC&J3([kJ99V8I# +"e]7iNJ9_*=B(c1O(;Fd-G4jFILs'uh?"L]M`RDrhItYZ)o\+2;kPr.j!lEMN(Q2nJLso +*Ja+[rQ?,nh!H3N+h!_DHKgd2r+2?B'9A=LCWkY`b$?M\nu1F![(Wb\+Oe$i88?q;d44)=&:(;aoBKa= +okVo.jAO,mXt#@/X'EZT,$H*M2lKH-Xg_Hk_MgJNXrUj`@7jOZ8_.=GJ6q(LXD\&O&#F^9.pmT!gY`"A +D(CM'^AI>fIXL-PZ@6X^4BgUNi\jJMHfJ@Me>JY`BaYDN/pN'tU+]70DLQ>G/9r4PZ_1O95#b//<@q%! +'U'`)Fq&#Q>J[.J,#lnpVnOU.MSg+2hWQ%U^SJfCIB_%Irpt[o^]*Q6IfKB@LYLEcF%uH&"!@pfhrN%C&Wh5*eC.b\]ih4*2]D=qIVk+diH%eq[[jTlK>cMG3-q?Ol/luf!1B5RiE ++[&mG+0CG=G]_V&EjpP*LWn&95QCT3^]&(gHeV>GqGY#hil-h1V!ua,B-eTFldqH=USE#Qm;#h7$Bc,M +/[%Zc..nj7+Z2ZUFLT^9QVu''5",*8k`E!fDe^TMLf\Y7EZ';n]JaoK>YL<9oK&7! +=]HPM85WCH;.'%EO+&q$jf,/LdQ>5=`@nsg4n&4?\%b)j=c#YjqR&]1UJX^pm*.sC.:Z,1Sr0(D*>>Q. +/Ykc?G]?KVSH_[Po0q,]48$&3HdW$q91B`Gd8&SQ&n`K=Mk"!>k,YHS)kRh^SGn(`o&nEf+715Xi#,g? +`>.u./+G#j^NR\C<#7?hX4$.pd);3*B%!92-lhb0?-ZU"1XLl:>ogKKU^3mA+))t3\TA`B';Q+><_Z=L +_Rbd_X!Z+1Qhb`e0#l\[`D]Fcrm;c6Hg.An!a0EOjd*#cTBQ7BIt,!,OcOnN?iTe+V`up+-s=:N4Ld/TS"%8e7AQIT&U9eSA$JOM34RT`mo92EeO>3F6f_d& +0$?/Zi+NW`9g"lfSq$b85aHqoRr5edh"\9aqmAAsnVuMI)rC(=`ufeYaqGGLP4`UGRn&GpBsWTH)s.\U +6U@iD[`YL*`hcsenBnbe\H6YFQ2)+Ghh>d]Td9#^'YB;K +@q-aFjg*&^]CO)p2`E\_cG07g^C0c=2Z;CFrS++q^2APif7bT!V;!0U;*D![2GH'"Ndt@a=P8SV\Nj>1 +qg"s46$Yj@MkFP,]'D4^4UPf!ZV:0]V][U+'ZC\9:g%&I5Sl:O25+jYO+l9$C7/]l;/4(fOYie]&T +rd4+I2r&]YrV'*6@RLq'*4c`2QmXr(i#GJ6-.b-R)0n7\Q4P +@%),3M?&o9n45blHJIbSj]!.\;ido\IF^.d5"_b!O6blGU@](af86q;+,S>O`D*t("7G/BY92JKh3Nk:DWiHq8BP.;c*q@R;m;Ykg +*bON=7&Yp$8X3O1"3BJLF)k%\+C\L&'1;KK`gn(^Oj_Z+S<8N0+c*L$N5IUZi\3h[YP+7#Rkl,1KMc$V +R.POEZh="a!12GX]8_/hdrb0Aa`-Fl:Hq#,=c#YjqR+Uo[._FAO$%1,f/]sR2CidB*D5#,2+D4(dS_+; +b^jfg;Pk7-pd5CC!1N_7mTd^WAHC=f%;gS]p9o5 +BQ"[cCBqSdk<8;0g=O%S4JV5F].Wc[96S*f)*DXYqV<5722:J-F38r6f:0UCHI5Gf'qXNlQNHnsSSUG] +k$5.TJLn],*C_FdZiriMogH>!X`0UcN"[f\s2Tg*ig]RKB!_?2nk%E)[G\fBLOZ[ddOnk=psG.OoWlXm +1TfKpQX>3f4nhX"9&`^RIdN6e84@OI6[#=]R''=cI@Z6,3("S#OF=6OC'O2@`uN%V=*3599k>7@^$K02^WiXYU'XdR]g5;B?(g +lCCb%KG!Ef+qWaYlHn(d27*,o%=ET30*Fp1g.t@(9%L0tK1Cj/-JS,9o<'$H(=VpK/B7>?Qn@.c&M:MP +\qgemm8^NEK1dAug8,u'YV9?N-DA3NDXT&`.9=uUHcf&'#,19&AKp,N4'n\B4A2r^D7uf\!MnO]bMcp9o62ackD5-lM)g*KE86$o8S(-+?C;!2]F1.DX@g2>VhtYBA-c;kH/%,EM%h?'!0?eMs.L +kF^goj>(,!r/hU$!htY:YAsq_3qF3fi(ESA#@rAPp$DG=FDAVi;L5W@)_/3lh;cE>h1)CbS2.@!_cV +.W1'")%7K7'`_Zc^Z'lEd>O:U.A\&W^0)l(F4E3#ib55]TDs#rBQ7ThimEo?nL.PTG0"o-=2DFDPr^I6 +e_RgJ:cXTU8']XO]p;Y32g!lL@fq'u(:A=UOFrfR:f>7@8@plgh(Cdd?:*b2;@UI4T;l4tX/<\GrlMeO +89Ok53:"_8mdQ8qR9ANHZ@8os*j+5*dNafh21A2"Q\MQG^-qWQ/9s,so2lC)O!gnth9`c_YKL\eoZ3,bZ=sBr5,bKCgp,RC36B=u]b.QZ$nG3"krjUfsck +0+t#T9iGOO*$^8.oWGbD#UE8I:Y;UR\\-L]g(ME;e7'PgJ_ZlM]hL>V#@. +^fo_pZ@6X.4BfDIEKT@9fbu3S`NY?/Sk.kOFemUC;fh(V(>Gj,c-F*ODqd@!);Y,=_1>3]SEtbE:%r`% +7uCJAO[;u8G7L'F]>Vad=+uO,W(gMP0d0??O$[3YNiET(X*",,S'3GR-s=<.pit<@s"eH5cDYQBN7d=q`l#Z2meohE&WP?VH>HLdb'5!o9M84Ts8VGK\)o) +5Nae0P^'PD90>htYBA-cCuIAUM_@"$[;hJ[5tLq^2G[hHM_>ZTK/Jn!)TBj&GG%6ld#.-tQ)C("b,"lV ++RMtHB.79JNqlqmfg0c/T=Y(e)&JWToOT#SS\#-81'n[VBYZL\TB6]fQaY +8=(ZmE&:B6e6gCH"FDtl#-Fij8AV5`5u/X=8.a.kV-JgUNfuL`==A:6C5&`5bYC]4N>J]%g_:rb3019" +Ud@41FW90(\qcPqF>,<:-s=<..!``8W4TNVk,Q@;oV$)J=(f>Tic\;nEbt<#9RO(8*0B,^k]dATDGD.d +bGctDHO'V'*eqRQ#""#SUU"We,@93fQr%Q@$RG2WVeX9kK]9PcS6XQ:L+fGeSAC +2,8WG`M9`GHLdUSQ87K#pKR-\YTPmC8I,M=&J0'r@$V?d+Ek\-I*_C&"@Eq,qh] +JOo0ea.BJB;?YVW9B(f8O_W;8.-.^)_'4n8*^tD;9GLEq%`PC$Fn*@@_RZDp(#8UQjb-r6M+7g"&s&4K +CYeRFm.\hLc6EdD[9jiP.]P;hE-&gP[Go<(\#Pb`BSrUW*)U%l;u%P';d/PWg9a.Q[&=><6/+pc;qb[j +(C<(TYM-9$B8mE)htYBA-cU8)Uo[PU4S#:-PhCOKk; +qijF>OX,--"/Ueaf4rFW@E!\[GIC +B&P;M"5C8#W?i0BnA8l_'SW;aCg4p)$tp0mp#$MBlX_el1l91^[1k[k[$9uJp!3kU9mbQE2K$Dr5"t_8 +PnX#M,p"(#90>htYBA-cH.ao`Z16,oJ^`UsCqP.*+2h%4,Z[0e#5:B59D?eQNoZ*[7bodS17".Jpu\a+ +[VJ3QjI4deXo`p7?nC;kd7aJ8=qu"]iB>0@X;"d&sqX/kn,W!k&bMqLQ9Q4 +]^"jJeT">&QK4KmW']*,VGhe[_NnOSl72YKUV8;L-s=<.@!Uh/`Uc:LM:p\,CK3/cmJN_cLO'aA)b;&*7eiiun+6X8Cf1KVg4'0'/Q$%8W"*;eWWbm;l*-trG5(&td5/d`QNU!1Ni@\Rg_qP9%L0d9HFXYo-!aM +>2=c^j?S8+hjZD_BHdQ?K".G$k$dq\M$I6%PlS+S>e8--eYe +UeBqg8!^06rSm)YWS2.q>"93NgRHuhPCOC-!G53":+T8_o)\&+2V_4iE%%KM9$u&t-MR@P>g?&:4R1N2 +O-90OSb$N78X0\7bn^8XPDHoWW3otOa;cCI79h>*+CnAOS&M1aqF:`74d5j6qq/[#]$)S3P9=!uC8eEIS>K^7%QfWe2:Mll$MA0, +RmS.)\;XGId6Y"TULa=,[ldj)CLqcRb3#4;mIUCch:A,qpKmb](r2U]`4k7-AsH2=rT',dBfo"FU_Mg1,Hn_F3(GRJl29GWUY[Tm-s==93KFrZa.L5D\R];iqc+H* +*X9Q&d(E7'V)P5mr8rk()h,L#cb+ANY2/S\k!uGo$Id#,$7oFTr<*>Q:Y#7iL,8Mq1fB+8WG^*;:+'ia +,F9TJrm=$9`1plA>.6UTHH4FPGuPU3mFaoH`SNo'OiA&L"d$aW\/9g<\.#`@!-r-u?k?2@Gq[fVSQ+*4 +":o'#L2qtACE=.G3U!Qt1#D](Wit?k#S'kkJ?#=ApB2;390>6pQ?\Xq?gF4PM`8s5-T&):j4ZjkE4nh]rhRYi!m^)3YfYGQ#0/epD_oV6MA,h9DO7Zmr[V]SSE'ATS!JYdHaF_NLV+"EOT@>LDM27tn=BI)=+ +?uL]qQLs#=_\/#nokOeo7kV-p\9H3p.U^6(mQmAdO@eIi9oEPecRLphHgZ2"19OeB$B>Zs'.;:JrX>!- +O//3.)"\$:_lcC]InC7T)\@9;NVE^_k8nQPhPi/pQ:D%FEgsNWE`?\JX],gX&1m?"=hiN>O2Aob/W]H/ +7@3V#GN`__QZF-t,*or@0oFs/[5O1^U^gtD9e52(H?hu.B8pDoR?B_ +[(Nc-ks':S;&@+RUN?Q7S'.CDUh5GL$LOT=AZ/s:.qRhkbMsjN77eqFcP:V\[RQ^mJW]efH['krd6:[l +;6kZ<_"+GoX1/Lq#OTMKfTo2"NGJtD%AteRM#hTVp0mi9DbkTFRqeXTfT78?.8/C#TSsm%ApORa[Dn3[ +0#!9=>S4$#7FI'e;L7#q-CeP>U0@/(bT0Cm3pJ*>L*fZSkLSL9H?AgMRg_qP9%L1gaJ8>k4MNk:7Q#U" +?L80Z^/qd(U"7:%CJ9C>N+;D%]V?OUNun9QE-fpF4p5gSpj*$U2K0T#pWb8O"Fd3 +TB3=`Sr90`i>BQ%()l:MPY&6=Zd%Rb*lN2X8'A-TULa=,[liA3Q\>4(a;D0Do8,#r[2YjJpqG-/0Q/n%^O5?0(d-=Oh^D/[dH6eYL0O!fuU +`,&CIOA/T)U[*!iU6Med]%(l`>c2n%WmK%fWlW0C.&SPjW(OC()B`lQ7rKg9cFH\oHZ.$$`1pmGi_d"1 +X]lh]o+0-9[#$f(As.X#.B$6R>#n#+.Z]4De2nf8`ZEDOfnO<\Kgi@^o#B8*YNY`=KdD%%!gujJ'8t:( +n)5Oln`/W^hDJ:iO?n4^m#5,hoNSq&9h=M/o-a[<^kugdUatUMZ/1/-EU>?'P^'PD90>htY8okLeOq5. +"%R\#>]"3U!W/nn!ef87WQLp\2E\i`")=5\`6MrH\*ib*,Mj$(>%<_o^/khU5SA3/F?8E5a_,Tb_`.Xe +&78T-BLGc)$iLgjVA#`%\tPj4Q4qGu;C6g_aP0]H,p)H7,p"Auf/hti=2W1;.6/bH_aeU>6`;^1jN&2' +M&t)F._!mp4_VsE#D-"H.#*t7W$=d:FT[(1q40trZ/H5Q>bQ^BenY\q=bmTj"[P%SjPKZX*<2AK+SA(> +hF]gTm%dE]-&?[bBqf@jHVZchb7]l!okOer7rBj+9h^I.h#ZoV1I+5%?9A)KCCq=lQS)i=Os+U`\ur>Rt'@[6ARVX[kY[T@$G +imEo?nL.PTFoZgK$7@]iQ:XA:@gK#](H'g8)ku"dXBeD7h^5=e`ntK'=m9Vd+D;q'+X=48GXGVNuIkXC(:T8#m0( +G/C"O[@sO?3h5Np2SJ@+]-9.Y;_%#L#dr('Y,Ft8&MV[>7mgJl9h-Y;nP\.ALl.60FZdf8lqP;.Yr-a5 +.]_JREZ(^IHr3<&'WtBl$YUL%#kc2+`,\at%Q`X[9l^XUO*\1OULa=,[liBNe/`K6T&J)K>#( +Qbsa0=)C<*9pquF*?T%m^DES1rKjO6@;n9CD#T"#M+>at`1plA>),4$osn"ln4;<(W[h%:\T0#c8M8\l +]C,<^Z]NaZBG*/UVE+au6'=20ksVO7+#K-M>Y^2WlhN2.arpCIeR43_5Tc#@::O+p!ol)d6ch_-5*.K: +A>].PO^aL*8W:sn90(s?4Z'`XYV,HZ)4#N3XC(:Z7r90e[IK$7O_7;@3YA1]%,hp%A[QZ-F8e'dbN/sJ@qC1XDiunC.[H( +lF!V#kW[X>:ID2rO-XX>8'1V8"3@67FXURE+"LhUVG#^S8.f-LlF^%(\Qll^c!1l:1/?08lT/rN@pH7R +:;WZ(+QY54;-?`uo.$=ObVO;o:SV#Z$5O5PG\! +$D-dDaPKCVI]e]c"osG,pQ\8if5-N%-`J7QD.YL;d_O30HetYr`NT6?ZN_Pf<"h5l+u+QCeq3e@OWUPVP*f"`3I4AWfOAc)t,\ +b8O4(A&G]:c>Rhg98W6(>NR3KfWcEb4&!0V*$=33&nLY`SGJEFO:!mfFcpD(jGu3e>2iDbI]YsY*PLKH +=$/ea5f)SJg)\[1B8o%%n+i/*5Xgi/^:P)?EsE*V,AAZ@YsD-=T[%DtH)q=hq]jCPa(>hL/J.+jFpHVg +eNpJ*5N7;<'\Bp"]6MT7fr(t-/7KXN-qY0G])b[!IV9(r]W)oPEcpqCd`ESJ1:>&qAGo]@4Bd,73T'#Q +a^(bbYCYFrp.-R9,q,)2>GIQe*)%HXQV1m%E$oba5`\!(3*imBM4nL.PTefg*[G&na//fi1![Q'Tq04L9V +9Vc[pT,K$p2Dra&@"O-u.6,9JR3m?..icB62)E:i_tB69&k/ +o)[9>:r'lbDJu^f(TBsJ@TupafC<*4I/$P#`P<_2&(Lg26ir2.Od_:J8E5DM\daIgNi31:m3H5#eA3D= +UmX+7O.uY,l3"o&%MbA%r6Zii90>htY8p^d&M@:SC#eLCOK>F"\SRkKD3iVg)c*K(0Uri"!F8Al.8&%@ +=t,.o+=WX3G!kLgjL!p&)$oQe#*Kq"7`eZgZL\a_Z^9]]TR_$;TH?07S2gD-LXfPp7`f)/hhN_[f;YAo +,5FO4X+h#8Fncd$aWG@T[D\hNrE<8b3rd+hh=:hq5S\BuUf&[I2"m2999sf.rs3g?_gNpEaNG!fcPtVZ +-Aa4(<9qs_[B.s8.-ub`)29smK,fKderI4jer'[qeZg6SFgF[h1oc.t`ud?k>?8&e:6Ji++;hZOMW +&PdFV3j-685EEaXAQ[qhZ@8oC*p'XKF]\R)DLI5goabNd*1%+3(-'F@\I"]*EP!q2.q?O3E%.WH82Xn' +0r6]4imFLS\mZGFdA[d6OELurSu<'96RDfq9mULTHL',Lh\op%b2CsP(.&g*)oPnH/io=l]eJp)]g6dQ +bGLkU;uZ%9*4bhdD),a\8'1V8"3[I%L^J5O*)ml@(=htXOr*PXJTR"&*S&[^Z#=9<&5adc$fIrZ;_G#f +er#*Ti@jjNm#j3:aLgKX.:.`4pBYd`k:WPk#oT<=o^ogIXDn@<84>+ +[D\hNrE<8b3rAl^7I0KFmFP1gA_.$(H)rCDmafYudNj_ak*\`WVTQoZoMOh:EEG6HOc)`'TGpH/(&KK" +VdO1$%Ud_`SR*8%d3eZu4qq<9CFF6Y8h$$**iY0*2$kbk6fWq3`8uj@IMQ]O=WRNQM+@GZM+>\a[Jf(3 +n@fu]I.tK!GiX$FV191h..)4pru]CV4[]ctgEa8fS1b$fmStT.JY3*;3PO%U`i=id\>WS0]4&ldr`-dFo7L +PB^&5s77JMnm_Te(\`Y0pH?0\a=(Mo&#$=,m!u"e'+MQnNtK2snC1/TGuR>:/%L*\BL6+(0I8me1:Ur! +PLpd$e>f-!RP[E_>U78+F4>E9EOPO"2M)$9*mH"k<.NTa(-/:lS9)&jC*9E=EUc9IABkgKP4`T2nu+:Y +&n$r8Qd1!N-`:nY=[5l(Pia/%iNIh)\CS:s>GOK-VfV6#GoR`?)&Z=%`:4NZ.SEfZJ.p,*cG@?"PSS4@ +(3.?>M17abH[-]=)uHcWYR]^lNFiH4BW=c797XR8qghtYB@gZ;kH.J4=[MH3/L.[,YKMm;)m'f<#9NdERMuPF`::m +L0'YZJNb\B7B\]\ii-C(,Uk+X@N]AWhIdtuHAJ0O\H&_E@7\)3@Z2mF&8?]Le"4d$$YP*DkRZ9 +`2!:?`1plA>3A!T0KSpinPUF!pt]<,Gm';aUm';$;R%2r,,\"%oOYWhq\p#BSQt)H;b5hB[nRK2K/hot +I6pSSkh_oM3?5e70!R'"%lK;4!I +1`+Y2eP[DhihV6]>l#o&k;/'Vls($6&GqRT#Hhq95egX@YVs\.jh#2JNfnn!s-@noXC(:N7k8ec%0#U3 +"'G\7)L3$%,ZJr65a'm`g^]XnUk?<`"&#.Y;b1K-(5W/--QGZQ4>qABWprKO>B=YuUZu@sSQ4(Ol)7). +\2JJr:sBG\OqD#ZVNXt[LN8ji*aq;KYnO_0=b(Fn:Lb#rAu;19s.`d2LS+O25K +Br8aU4V$:[Y?%uAs@iF"YTj&rThq47fY^%s&7hRG5]hlo8\i*'%Vn.b2lrKet +.m1,=3m:mIEDA]QIR@8a(BD$H;!kkR=0ZbArXA[?M+>\a[8(sgp?\*&k^krT>`I$b"MU/((gpRj+f4HUi* +-0+.)[/5sNr__\&5$R#DZ@6Y1*h>M[L/IZqCENB'VI?=K5AGfr'FsfE66qNZDWilAp*[$ZPN(L/UbO;N +<>jQI:tDYWi]LCI\MP..b&=fl*_h76oILWUZ)s,2UhA4l +#eH_kEIaVFR9dP`3E@Vei*"?dYhO&]6kT;(/]&b"MD1T=)`!3hUlM/g#bdImW!u^Y/ThRTWXW]BY"%iSSp=Cc>o>^dBVSFP0#ZCpVV^-sa9b<[!h<>(VLc?N92kkeoOt?7ZSPHfA?kK& +>?GQu'a^Ngp@NuJ]\jS&TI^]/H2Q?\Y\JD281!_1>-i8%(X;.I4m +.7eJrKkP.m!P0fl[N!.^WhW[3;oVCSl9=.dY^:-j4<05`.ZXk7iC"0gnSA^_3;r-!g4IQTK:B)CU>5Qa7^(_u:gMODG*[NoC[V$Y` +Y$T9B*>g5d>lH-*V(QZlpU!?:,_Z?XjQUI_J@Ih%l7t-c"JA:lT\LL+3TD_i7onFe69Lo&Vu&Z]dCf0D +Z4!80$#>K>-mN)=Lc!;=a+4g:\!GHZNs9oTQhi=ni2FTc.$&S?.:Cc!\W,DN28JF#RWu34?+=k4q!mD5 +IIDNTGiFRuULXVep;Wl6B=@r$2E#_d[.1ime3>]0"VNi/\,E[(VeEj"ZkXcTY7\593<#CfRpgHD*BAG( +:t:aYi+X;cn&j:DF;W%lBLA@XqS1R/RJ)ZYo\q*\E8Zn08f-Mq_e(j_E'mJ:5Q:26'9AOEWBrSatI.VCb+.Q.(ikjdA2>Q'dE4IVGL+',9jnY1]dp`,g"!MNm: +LH!$fRP"#CciH_kPh!\n=p9Z42A<\ikprp>ARjZ$V;&DJrt't+54b2g"MR"tpuC=VHQG&u^0GT^A97@` +eD1J,YgsnG&fs4,f^k*q7o0L^.BGF)4/[%:j[B9>?AdLSQZ137Y^7V_Jlu%rBq!-MmI6AP72pd0>#f76 +%[>_`Vsl*Q.Y_5iZ^,h\S/Fm#"As/#Lic'cGTR(_#1@:#&::Ih[L$Kt<"30@QDmZCj>GfC7a-s=1u8/q +TDn)\b:_hiG4L]W]e!tP*X*B$4aLg%XMDo%FR79dpd`IOk8\K>7IAh#BEq,DqFl@U%7PCNp3N7I2l[@W +j-tNF"gEgE80l"],\QV)l<K1".%.'9F6-^#Zr)5t*\Ck$rpTmdS%ncg^[W8XEUi$W]-m+sfuq7pifTKE3>dH-I/$"h;*A$Z +)("\L*QWC"QClF`-(PmEACj.U7e\f!B6*VuKoJ-S6R_`0?cJ*n:k0f*O.pT4l9;L0L-g&qmGX/QC8#-d +<`,t!`>O5?E'tucD!s`ZV2gJSfEf??XrqLC:8:(rTUgRslrkO5*nceP7?XhA'<)N.@+6sr[`nae05nJg +Y.Fa<55t)5Il#gWpYR(\q>K4NrG_YuVk9RQ`5JE]rE=OhWOf^eUD"_2Xar?r.Pd'amOK0B)Q+fS7+,#s +Nh(HRgY?`Q+:]@T+>sh[XVIr$Y39V+$,Idr)oPd%\5[Xd`lE$61lOopANGn;qs[FZ/CBMFUMWAd-`AUs +M9b);WK`t"Xc1/:q,gV50e(2`-U0a.aX?#4V]PQa,@eb:So56,DFP^@t?J@cC7jI]XoW +:7[gZ,KD$m+#rlqmPm`dO4mRS7DW/<`6/bFUf^2#Y7PE9ib9rijkgI*X,kB#RWu2q +4n[<'IoA5rR'+'h\o@Q%\T28^;kJO_n3s#aIO1bBYN-B-!F]E]CaGl` +dSA`gjAEY\'@(VeQar&PE1%g`*p>Qipk:*thZOd]eL'7mfKrjA,:@_7%:4JK<]NQSXUXKaD+^Sg< +&@c^BWlr/.e6W3#O[iQU.UqiM!JMr2O[`:B8UsRrFm-h:/ZJVtZSR\o?iaN4-^Im-6P?Rc;qi?\;`tls)TM +FkopBGhop'X@Z\+Z9KJ8PZh.:'p[G1%$%+o3ICa%)HLgn8r('Zilbe(na+./#?H.6,imK'9>2` +`1pir$_,#.`_rSOW'HTtHGL,?tR?.=m\4E&WEYYkq[8Z%n$gu9?E#?X`DS&*EAd-s(1'gkt +1lSd=ngJWM22>();1am6pJR9(j'3_]b@MYF%Z#FJFWNPoS-BU!Bs1#>a,mPY'+%P7iI;H-,i<,k#R7:5 +c\:]id_u\^3"cfn%?=6BO6bLA[+X]mfSD:I9GQ,Z@6X'Nrk9_Z5&>`4L04&eJ:.Ua8f`O3bu-, +=5qnm\H6u0Usjhc%u)A'Ip@gsqKUIiW8;u_E0L,I$3C3,`YLr:7n)d@UQ1)F7Irfj[?C\Tb.!:;NJ[L" +]I26qCD+eK&q#ql,tWNr,"`"*>n^Gk.&Eu^htY;Pla8uY\J +.R%sVnq`DAoO0FT#cB+&CZE22F_,e:D1gr2gc\/f5A!l8qqa#M&1)[ths_@PH$.3-f'd;3K6SLkbWpL0 +%:knpIFiUG3eD433ug^^8BZ;.d8R;<&aQG&&gCK!B@1MOO=B?fq)4=@[Hbgm4ba;.o]bM8U&?BTV-sbK +..LsgQ?\Xq?`Wd3F`fkb)36uSkTcN\Ee-4;=bi/k,$>Y0F$#m8E%PI58k(8F.-tHA5C6VR;0qU)J>D0F +O.)-&0$dAjN`+f1"f0G1TsK;*Mo$\9!h:1bq$H\mc2fdk=`&>[!Bj=U80B\8ooVRm/;Vs#K&IZ3%O5C] +8E$c\X=93,i].i9N"2\p])$)C<42m0cKoH4akK>N&s&>hM+>\a29-p\,V^*o_THf-6@!*g3$,?`EtYV_?OZQDL<0$Ib%Mb-*eD;M'TXj_UN='jQDib%(U>8>kW[b6f!0c:F"S:U +*\G8BO-90Ob+k9fmRA6\nu^/okOR#mKLPA>eejGd99\0$2NVB[?';Y&oBYZ\Ze)?oc&V5$K@nKN=%K.h +8B$\Lkt[&qJC#B.P*[%YIicIT_s1W1V?k"(r!k)O.q62oDV_^+38OO +:?$kDr)u]EQ!L18$1/-D#,d;k*X"cl_0a5;,KQkS[mJ6!b;am,\#+&*65K,=*qaE-8'1Tbj&,\OUW/R) +J&M.Q2"Yr`DnAMPa;T/*&5PZ@ghER"<7Vq;N'S5k$]>s68*T*^+r8)%<>MjC65I0TBK=C.S-JC*?tF07 +;oBOeW6q7?U,C4`>RMU87<5\b@@Tar:k48>c02LS'b78*]'))76`e=JHX,;R:7gQ`>h,Lu/![QDHt`$* +Z"=QF9ke33O)]EECWI0MHEkD`AGqteW-tYm,T_6-_7!QIn&\s]RS&.XSFO\N-(,_6G\$QuW>)uj!t[RM +4Im=\4L9M*32UomNM^YCADk16[;8PjZjeYu:EJ&1&i:"jhR3f#gnukpB7u ++YBi40gg(?f`*h_2O"4UK@l?=1Cmur\tUZcT@Aj/(n8YL)KK&B46S*B)q$:/k,kN$(__u(dh7_)okT+K +=n[i#"a)VHZmgY'?j](05rnhmP"heX-Wl/4J`E.\4"6^7*2O\P`4aIK'^du%doBo*h&kLQKf6;U6YKa` +FU:=KTX@FKcd2cN=Vll\36J5Gpp*jH2'PO/L^QR;308E5l:ItrYiY`/I6[Sm*C!7\>*:0Q-0rrZ=2Wno +K>HL6"aP4Nk2QnCK?q;?b9k$Y*"&f:dR4^W#32&IP?;uL%Gsl`$qR[cS^-[cpH0hAk +M6'mUB>`@kRkO\NEN0Z66-hXZ;>aUtEO5dl4#d$U'R9 +gJJRba%WLB2+CbN9h\_,YIk][oYTcu#X;[Dc&3CPH_Kp.5_m]!O-90FW4U6Y"!/Jpo0e4p&uF:_,$#cN +'FojI+@XdTDeQ1OK,"oY0+cXi,Xm#LUN9EV2l24Ab +BZgt6'4>qPbni&2cO8&`p3c@j_YX*$5O\LLclod7ULa7?WpX2`8&L*(Cug_%%E`FLprk`RT]iaHMprVg +l7"!Dm=e'NorsQc;pn5A,Q+FC%0jR]/:2X/>4IVCd6a&25rAm/*0SCaX'AAaDgDi&(^'qs$<35OOB9FK +&'bErLB;jHAp$nT-sn(7#tjKMBM_GKPB@oU@L#s^S/=fs$8'PG8YRaGE3JGcE3J!2.!S+opt]9[(b(N_ +lMJ?D+gf1_AG^0D7RrMG)@gt)dKtsO,:a\,^&UTLt:E^107PQ-b +FNC8c65Jme<:@YgOat`1pl?Cp)9$WB='3aZ2l`Z;W-l +DB"Xq6#J]c=dVsr%p=#"2>q^d&q]VDlD+sJ0eSh.VZ;bX^PPq2H>L+9k$6K+F]2\k^5ZlZd\f49Dq1or +^/\G]0n%q#Nhpd_Tqb_mh$_MnL(kqXh +>CMl_ZoguD9"(?m=*H[[BmDnI[;^V*uG@,bnuEbeQcg +Ek"d.EC(an#!Np!RMs=I5>-DKNR>/X)4?`7_'lCCDn_T`ZoguD9"&Y]l;U-MdGd8,XPJ=$JMWL[,K(#5 +*I'siX?&O)9ic4db)QSJ=0e]HR\^o9D>i>Ic?7m<7[>O0(nHp=fa[P99FsBo_+T+'.QasPm-#ciZDNRd +]*[0TFp`lmfP<=1_6!,mfq`2W]Q>+[)<*nrRW)96P\F5?7H*f*5ZZRsZ:fL\Ks\Aj8R/^<5t<+8gMC+A +V/mo&c;ETK1+_rDg&BXX>4WknV=M^MKriS@QF:JR)i2D>APbOkVb_O5E')CUKBrBIj4WOtH8^-;g6%l- +b+p^l).Xq18nDiC059ogIli`5f9p_R5k@5PDc@Z)$]f>mX\+H60TN*i4F2$JFLU^B5T:em3Xqiu)[+6\ +/rY*,c@I/M`GJj0eQV$3Ei#3cl?9MdJsAU\UrjpIdacr&IeOY87n^8.ULa70;gNX@cD0s%>:8qHrL6:> +QrIstDHl6mR6RNBU+]#li]MD&prVj!A<):F[oA#UBW2Ycb.5W#p:25ndFWkqSlc$b@RDA +"#0oBo2\?oY)mDld'agHen#W-DVau=e8uOAjA;BiUj]e\84%Lfie3Qa66\N@hOX=<hTCn!UZU(\U4Yk!)TP#F.":N_BTfO0*#H\9_'8m"ta"t>"$dG;=6 +l/UYU(WgV084:?q3]<@lA=9=a.l#&KkjFn)ol$E@`GVW,fSid./Lp6:Y,.p:I\eU%gOn,Z)g-]IiO3*D +bgqNm*s\R00[ff#NAM,U-nR4C]NY4@Uj,b=2CbO".kDp)V-a4%\B_*Il)"^O&s&>eM+>[RC,6)d/=T/0 +B2G9BN`&pF+@OL'Mhs"TIeq?=d@Yl.k0ebXh#KYUp +CBk!Ip/TE[HhX'lJV&Oe^64(Onn8;l%#f!!^HjK'L4&K@2ru7P&#\b-_`pg5B,=J,)o/l3itD?=^CTZQ=l%E +ad-Q?7V+TTGBYDsqUD:$9]qO0m'Q)1)_L$g9PC=cm8Kp3'?BEL$L!5UDuAq5Sj)]'3t*rUWC-0BDS!t- +'RV+#%OV2c57Lp\b^/q@!g6MWXW]7TGa.A685KPK?lI*'`"D08[5gTU9?.RRh@W#n+9c(CGek!Klq"]) +%:s'%1(!'D8gZB_eQ?lL8P1oj;Q!i!huCA"Td:a+>EZB6,dB=inlr8aaWkgtlIXNshNYik/C'DKf!#Y9 +ag+RHa&\$(V?-r:?t`/'Km[%)Gh'+!9Zg`J[Ec.S=]2iNL(#M;[qn]"9"#.4?#;[R +W"U5_@HELJ&T/'q6JZK=,F;'_VfBkp6l*n/hMC]DI$1@soK3o-)cn(tb7t)D:>GbY@o+LNAZ\#83+Yk6 +:tV"K;N8.Y+nbf+lk!@[;6nKl#"c1tao:eN@'N(Pm4__W%@qKoQJF##B-NKZV@-rpW]]!`X00bY +hFU/f/nM&7;,$qc7JrniR2]K$ +CPnX4k'KO5k(htX\Dl@07udJ +ogda*8=K[KCP/sgSrP],[X8_t^^V\cpJ^]\Kk.U#Y_bDD@Y=Gfs])@'edtJ`&Z+fU+&#dFe +)5Z6iauGq+F"$A)l/%Dk9-J0-#'"[mmcXH4>Y@Khpg6'SNu-n,^l-R0Aq)4Q/Yi[c_jCj=<##k<_ +jFga?:6mY;m4UjRXPHJ1LtE_:9^[W(^G`.!RE#!9lY2P8(kYM"B>5@S/Fd7[]WoNL.k_D#ph>(uY]UmT +!0I"$/I/)_Erm/C/#YFY@%GlmCA%ljiR&e>FsXq[oEN_e_GipYl,0&D:oYj&(h)mR]:sK_9;`OPX+o:ucer +S1Im/]kR/XmIu[rN5sKY4"6umnD2_og28E??N9W-g_g_]$h=QNBMr9$JqhQ>)Ssm-&))b9\sa.@!#*em +/G:hcZ&i&M]qW@'G["7`kK9u6n[4c_3q\F?6fBK6+ENI(Smg<JSH"9H4 +U^^.NNWTid3CB&p&M5s43A>"&5%(;24m`8FI;Z`OG-fmsin1m31rZ#*.bmk>?oY^iE+n\djjdd/L4FPp +U`BssWeLXO"+s#&W8>Lc10FdPObMMD11Ac,^+3d'&Uc.7fSc$(VAI$DK@*@Ah/j)nUT1$Vs'^]0&s&2- +eI5#CKC,1!l]47j(QUIij,f3ig67(]'@#k0!*"6N?Z<86$cgrjGWi3P"1ed2O78XK_OYac="R-l068:n +E`'2_k"#M<3>h9EDh!j[2So#^KCTMu% +<7]_0JF!+4efhE=UL_P+PCHA#-S>d?#jpO_j8== +<9g\j/X!E;cU:[SFHSX>$s^$]]KM+u*n1AD7N'J;jDjC9%Yd4g=N8IkFCoJ4q2"8MdMlHGeks\f4W.X+ +\EALZo>(F%Q;Tce)$Lj;kdVKDJE[==iGa*"dCl6*'(EVOi&AD)8#f3qiTFJ]eT<^#2&]`/b +j&G_%G$)HU@3`!gpR>*V76nf9F;8eI?6P<iu<%-$0:k7;gnUU,SbZE4#dk5p++/SNR60t3'q&(=g[c+PSHB(?5p5pi@ni!#l+'ItTF +%:mrhfi&;*UmCY+3)`MS^gkgD%>aFmBk_HdHg[Bdg2s04Ji\h>eOtl?O^o[*`1pmGi_d"02M\+,pQ)[8 +QKX`"$;d5mc]GLO($""APu+'llR_-#Qme-Z*g;!+F)fmW5uVm:M&;7:@!$GgTE&7AJlX\C*H8Qi+AcXP*q+#?Io<\'eFndNdpDd;7 +Z.3Ij,Rs5>;&^S$SAAih2,3q?nLghOL?O@a,RqkHq(fr7W`F+Si0lQS,shm/5a#`Sd,Y)t6\#($X.K9F +5Pg/i5'u$gcFbI)F&/?B)5_IGd[DD)^VM>R55SPsqu1MU#VGQp=YE6KTuD;!qLLGDn]50Q:52L@9o$aZ +-qtHG8)OlW4CH")S;J863.c,"2Ume3*Ur>t4.6YI>NaeWRA.;O4CZXg'T[Q-#iT%Z#_=oH\MB1>V]Qp2 +?:de(PAgkFELg(>`umSM<^+Urm9Y;$B:r.l8=e^o[#qW5rE9`bKh"B+KhqIAJ*7GIi_d"qbS1P4rnnt_ +.dsoj%m8R)o3Ru_"C_cQb`G82BD4b>]BpjKk1!M#N[UM_`GPYo_Kthh=*Mm=bYk<;Ii"(O]pT34;En*3 +Fb;ZBes-j3<-2ui^t:`EDKZlb'k6Vu-JmbWBG5DO6b#oT0?[Ht3^Q4OKf(Yg(J&(N,Ak)d#pYt8H71H% +':sR5JMV`S#=QJ%g$*!6cF +ZhE][Z_20lJMnOjKO>-!?GE0,fsaS[kmpQk3,ki$0D +S5EB<=)d^j!+b_!*hdk`1>BaBAQ[qhZ@:&CZo+ndckIOLlHr*;j:P^T[eNmYKmXFHY@N6,`WW-AF;Y-. +()q@X3eD1$#>&Fa\/D*8*a#L&(HPH`Z;a>WVNW>apND0o.8s[naAb?i`Sok@&;o+`Rkc0.CTG.$BZkp5 +VF-TTNJ!cUr4N!rgXfcDVJ2fh_ikUZoq@d^]!.cUm!0D*F1AJd/\]bjimH[IKsN'H/]/3^P4`V[BPYo0 +8[e1oY#q2a8gPH!it7/a.ZC#u4`mR'*Z-YJ*Y925HPV2r`mO(PCC_W%2EN]M%/#6XB@k/=h.BC?5g.Wr +jA@),?h%^ka[!)UE'mE#[!'CR8-[a%"Q*/mdJ2ufU^pal.!H$f3g++G83=eY[mH\i]:I",7HR':7V"We?g0k3n6:7gg!=tR$Yb9o +n%u-\GkI%Hf;uXHbZfZde>Bka2'&>em@61&jp-U49IDd8K=XhC);.VE>)"=E-0s/&O1&4&:0O/X@<8UG +%`3)!miYY#4t)=fPI(=UTA$l-+ariNI4./oh48,,W3.Fu7iQDRh,Fpsa#0*S+LeVp&./[6J6\.Q,].Eq +32K*A?=5%3<=bdETXc$d#BY:GoUEE8Fh=Sp;TXSBL4/F`A&0)kSl*])$b!h^`,QNqp+%_IllK47C[_Bs +a)=/ue,PfQCl([(qR&AFbZZ2>]DfkqrXl7LZuHZVN[BK;[=l]Jci^N922M$fb#3m@/+<*`sNLJ1hUL@b]Edhsh/BGm+\PcS5]`1sGL>G3K.g,"[GX0_V$&o]C^0%0Hng0+Nd +Kg6O2+VUZJXNDc)nZ=H4#6n!n.B^\Yd#*Gp3rij%<\7&1_KoaS#:+"f+Y]Vg9C'j9W;rrRfC3[b@$]03 +O[Yc;Qm8J3DGFb-NKU>\=q(UK%+(ObSnsYA=iK\1RBMChK2BB>8#C>maNa6MET]Z3M+>an`1plAg(YTF +8R%l7n]1]]hkA>LM$Hf!LcqPOapuT[1#[r<&&#Sl\ZS4TG+`!"im.[\kfe9j66CVui'=S2@8j +n0fh&h(]#K8:eCK?+BEoXK_l(Z3DG"8:<*X&nOee*tdTj0S(B.VM9lW?G#pmS%id2&aG'sfC-+2Ff+f6 +_oN0d$.e&N\KOHD1uVgLNjSf,;9;)C9,tMAa?KSVH)4X&;6kXf3fg_HMXEC:pY=ajg5Ma0f?16*A6 +Dob1"MOit\3RZ1]FT+!rM!'@SZ:-2N(oTN +1(6H$Fbo>*]#:B*=lN;aIVgEm[^MG8j-,<$]OS4B&H`H+AcMc6:+Ifp\RK<">S.3tE1OG(1F +n&CBC+?G1mM7:SciH]E+RIkge;Q559e?hMeZmfjG:bl_PL*E9Ac8e3*B=T/mOUuZI8=d3c+YcCJ"Le8oH8AIH7AK@6Z[lSQW`%`/!e@ +p/%"R(2T[cYk-5l5s%1Gm,/T&\l"O;"j">"9+nX`&^kPi"qc@6A<:A\llLM0 +\=Ac>R9O2.-@M0(Df$gB/]/3^P4`TBH"?'k$EZPljKUdBFN#Kr;eU]3@fd5bKa-"&_4gTe;Jcqn3jo1# +Ze;B%AhXGpcO2b*nZGa"LDl].%n8BZLhlSeK]Tqul8F\u$r7e&!gl`4p9l1rT?6!eR3E-#[3Ue&Ju/mT +Y="D%eA7#Ql0W!G"`ooe@ea(YImb804DOglNB$jC<0>$g_fXIS6*j#B+'H[FHk>tT'HHB-G%^Sa+L;Vd +33>d@1jKd[FN#h5/G$Wq/(>2mP4`U3nS"uW)Lpq(TA3=>tq4E01c]=Y[)Or$N0*M$i":Sr\/:Z_iF;=K[)KNU4=[*PKlaJ +'+!(:&m6LOP)dW==RJ#!&bN,>0M"a^$NcXEH$&Ds>Jfd3``I3C/V-WgqW^H,B0]AoSh&%fZMY::?F;pU +8d7re&F4,u6%j&MB,KN/McIVj!cg+q(3s)WX8a_+[SU?)I5%@ROO!g'?ET?,if^$kHXP^o6CM?H*Q +;*N/IBm4Pi)lY5PH%ZA($/a#9IJ"`kJ!m+Kel^S/*P2\e$BEQEJ\s>q[+BK&d:RKS$n/$:aE8\9WY$^B +I&fcpn`Ys6h["=/J1fU_X)Z:R3Caj76`$GsMbqYAB!?ZE3^3=>htYO.`J +_,_Xac/8Ac%Zt:kG%1P%R3R<"R7moO,Las>OHBU,Rq@0B:)k7%3FmB=7\)3&*Alg_-Vh^bH;lA.b6ZrC +4L,ZaqG$)u=^EQH.!tVG2SONhm\r5lag;D^'`p4lD/d@1D%CLjUQoUq*]s@ge[L:*JO^KZ6WQ.B7hCLu +mDFIpA2&&L%_3iZ,Zt8rZ:/oh6iD-0O)DYoekZ5e,TBtI;6kXf5ou#<5Bm$)Ru8o?,Ai&eW?8*_oeAR+ +JqOaIBBk.DRmhb7.B+C[=+;B.Mhp!$,H@7l@fau^>(]l$8_7sR!ft2RDoejkIYQUn;&Wg#B5\.g*Ei23 +p=_B@O\4jgA+f';9d;aOT$H!,+=*1o7o(3)i/%tJ'[@[B!t[=[Fbe%[FEF$/`IcXL)IFnI[=tAD_3&`[ +r$g6T6#RU9)EF10Zm8:,9%L0t_P:&%4([=%_\`),(DGPY[U3R'<:+:Ug/snJKP"F%9SOfrbi.R^$]W5A +cT8b&qB-2gFLYga_8Olm6\H4A*@N+k@tq/DCV`'l;>;$m'-J%X%kCI*g^ZR9Yjo;:V0L%Ug6E..*%gDK +c:uP\(2(98TU_TuiR)`(4SR'2cWkVA<@4OueXV?UVKbHtS-uSp.Qh/C\^_%d1;_&ueO#)@!<( +d[glK1Cp!I4BdIc*[U.((??(0dK5U&f6#ps+Ui<_/!=jpNla[j't-C/S1.qNc0."`#/ufj[-p1!]8i@9 +SBMQc)ii%YF.M"FcH.ruBalmg+q)bOTA4rqVS9C4dZImbL/)qBV)&q00ViisN7,U:,#!4BH`gV%e*?n@ +h]E\Wn+s`6'ad'l50rH92h.5pOZ*-J,lP:`5_^`qLo>YXCkX7R/3;KFT?'QVntD)>^n\NnmdB`I6*daA +*[U.(]&JhqWP&5n@38ee8_ODLfqba$E.VbgTIj:)`F^Ye6;Be4+bG7pDpW8rAHF5YpJ!MoLsh@+E$ZKu +e$31""]4^0,i;XMA2#e7\"UsO%H]h$;rPr+Rt1,`:i++(Rb8df,<7MZDc;"^kMrNXh.8'A-TULa=,LHI=;=ZU7/K`h:Y +g%Or"OL,TS,>cC-LD)F3Jg1^QG,KE@W4gaYd5fk4bgiF*\D`K:'g/4AKAFhQj(2(I^a"c_&Xp&%'$6p< +laUZHG,_QSQTk)hk)ntIaA*f,^2n12&ejnZ809XKZL(NLfACbb`TYN%U'Uo'L-R.#HZMG;fJC;=N4D/V +/nDdWeD2UE1M;ILYhT>8/;o0G7=U%`4]I\:%mKo!VuI9jN@jZK=hhBNO&k[PWDC,IDi`XDRSj:<#"^:; +5hA^`;k+H4*rI.b&I:shCH-k'?Yeb^Q'@k4ea5V&? +IO-d]^5lS#]'a&``Q:)^X?)p':3(YbbiY/H(9]O9\&$/.@lL160!(T^V44X1htibW8,aP_M=K^*8qh)k +s2&t54Sk(."-:Y.$9YV%S]SN=l0ZW$%7Vl"X9?j_mBp`L%c`HOig?]8jNSCpTS->SWh%$B,-n*OOF*F\ +bXt!$OsM.qldlp2dEt%9C=L>,:)"1!7o+Cu1s`Q]V+C;^Fh/[>(?h'WOYh`1"r\\(oZb;(g8n$s[jRX) +ZWS"p:aDm^mWR&Q[p@nT*sM)"hV0jqohIn%I4;ci?.$qA8t6.l08OpC1-;@MP/85Han`6JG.PMf^80J],uXqaIkmT +XDqmN"DJfKjs]1^N=WPtrbronMlc9$80&A+X=G<:,"i5FreN0liC5fN#4MdTl4`o@+rke+mIrj:X3\R+ +3ctNOK\Y;0#=USn-6dRnYFOMldKTOnf,^fP7o)>JA>fGfV_:QJ*-DY:$N +.++EBP>HB`4\/*a'<.U06,Idr:1mSZ1&@j;l+QI+fh5u41ED]Mk4P+#@<9%gectiu@Dpj9WReiZ4Hh!\ +*hg+@o?[EH8a-5:0h;P^>/?=MkQ24qMuoA?DQ!(KB_@!INa<''PajRjVkXIJ&0F2&]t`F(Y&PJsq0:oH +1+_rD=hhBNO2>cm*C`f_cj>lZd3*UV/.U]Mk^tlQL^eljLAkGXW4l#.k8_kQ_H"-e2B(o7j_82ISk_5< +*Kk:N]]5/+B4P;^X[U-&c-^]nDN_Ig]^JA_%RRY?qWT"b%6M3;)7`eHQ9R,qR>Z1M]C0!OmFjL*rJ_c! +]-09Nm_R/q%bm9p11:8"XDZFW%W@/4=748na2Mn;(,G +NA0)A(0?aPs'0p(Bm2XSOW+"h=p5h=WcZ(oG>H!>l"=ArX?kp*+8KC(QaJ_OjdQ8Sn&D#1A&Qb?W32V$ +`Ca/89?e&R")>'[:c7'%8j$iucThI-#teanfl@K>g@R^ +ilQ'C@%$bB?uHC5Na.&ZnS#MInA5Q7??p,?b=sqOoTt('QQQ8&a5?U![tS2X]^sDtcUp;lf!"IhhS]rN +L[X;FnYdtch5!KIXL@RE#D>^>GT?so1^-dL97)ClmRd_&pS*oCoS,k?UTXVE*%q-XLHcd:Eo2<>ER2s\rq#%DXksJ0IcifMRImT!ULa>W54`HpVm\qb.+ol,$'.RI +9%l^bXHS\!6Y3/&D1p\(3/$Y`N'MlqorpjI["Zp&$@h^dj3_a1;f'E\'h2+cLHtIe,-Pi#R=>qM/T/?# +p&H>.W>E'Sfcp$Q!i1G*A6M(dPoa7Ypp&k?Om[3C670``,4fJ-JCY(ii6XWPrX?.E+uH47L3cYa.6SO] +O63b+**n$hjY+=>P28q>D`la+k`5'o.SH/i,.Y]!b^(s57[p^3!^^,f +BMSgkccD\^+4#W/6ap&WdV`!nKF6__a1l+9]BpH!Fu+kkb$.50Vb",5F&F_CiS'[B6^LcJ$T.h5)Bu:A6L:hQ;T>\N@QKH+^U9JS1t02roP7+Z#;T4O8"(n#%Qq>^Q7ET/p0ciDHQ^VoO$>hmJAe3nrS!ig +[._GlJijsZDC_ON$0hRDL*cC['02M"dh9K^bnABE%3P(u<7F&O8ZmX$At43s7YW>EY<.!bp5c;W2iSWN +^\pV=ft)Fi`QtW5`WC7J+gU&=oE)W(pA8hp'Lk=p-rOh'ks,$"0onMGa6@q80g/r54HRZT\h8C)6@]Yn+(Gj&l7U$C4a8/gQB7-B,N,Ga +7+tUk&g;_PfLJSGXe6CMR<)>_OYM[N7kI:8O08H.[>@Cpg"4"9O.ZMr"^bJD^ga-sQk0qKP1b$UH9pVfb+":Q#$lqui2R1GWi^2cP%nQcG5qX)B!8?Ys6'pm+WN +=,51]YGkLh5UHAo'T_#BWA(&9eX/Zb"V_Hd(P6?j1t2nt'Nsu4B*X)5'W6=MI3O%+9EBdK:Oh?PM+;X? +?iAM^"f>OE`>*n&pO>F+aFp-qrS!ig[/09,=$.D/<]K$DBG5<$WN+7+3Bdi_GPD/$#f>grB9704]h&sd +\GNX,0NTW^fU\&%AQZtId;9pF]C#H_EfN^FHN&iKcZC\-Am5MpOVP/@cjHC6k7cN?lsLJh!%C&5;iPmj +OV/!rn\k,0E]b6N.o/9BB-6rj7fm8)^A@,Eq3QT!H#Vb?Z@6X&*k;J4Mm&G@]/+G1hm#0"%ZuBZr=+f- +6$1b4Yt5l8_'pD'a%Qi,_j[A$fARFJDo^h"\U.7U33j,c5J$;R8-l(DeLJ)'*c6LdW8#gDk2t$gNcYo5 +,'.L@i4*R,?r!,)^Klt!?+45+Vo5?Jm?bTcjh'FKmXU\^qn:m6iIr*%4=0MG=hf-QGVj0kS8I4No)7rNCO-/[,9\5B<@1>Xcmes/B5ukCY-T*dFuK:@+6U' +]6NF+2f)%>a6>cpf+7AL`m[m?Vn^YqmZIu(,$8KNdAB/u*-?BCqD/-)!VYe4<4*K_n`]DK]+^7&g\pm( +Dp9Sl_bah%W5cBZ(2e*'7E2+T^U2uct;RQ4?1@fIT'8B40CQ?+"PCZ5fWf7qI +h+gQIN$+.%9W/SuHhN.Q.F1.l!5aFE08=-ZjC8*Jm=:#f)4h7g^SjkfjgC21j,ThgCCd2YUGhi++92-, +b:aBF.Eh:ZRXP2,T:bbo`1plAg;2jtB`>G,<#+Y2,e>;K^rIECAjD`=V/uL3PGL8hUQ/q1M$P92QAEpg +>-P0e4,HIk?rWK@1$['OkCsU$"erHHZj6"!FPSeId:!S9NO+hqKE716^j6qnNG#0^4FN8'1V84nE@KY*GjSBXF[?I`u1GC8XA1HKbup81KTtRP_%Y-S6p_V+D9Qnm.#g +]A%M(d^rh#e0q/gTj0`YVbRm>+A0WbU._a92f9#:[C+f_(NFQ,#4(c&?EDFseK,3"f@#@QgG3Fe]=D<[ +4;n_\:HVg4,p"Auf,!>-p%)G^C>W%t,[&>cX'?7gRJ3L>,"@@;5ncpD>Ij1-->'>Q"[Vf[)]mP[h34XV +9R4-I*>2dP*:CiX,-$A!J_i[P7!M911:u"k@kXOu#=O*9aW,WMn)/dH#EkeR;FDdZFW0q=LJ3FP7*nb?%7D +!AYpAk1<]N#t6cb3JESUBN-R_`"'!6@WeDP4dsu/j/qXcSL5&2Q=PhBaniD6GdR#-`r>I@[+O:^lBR;i +<$X3PQ![sf7bdVjAtAW]()q?X3k!l/<-]01_l:96;EBVdBB6't)2F!"is$5A6Ep=r,).%?".?o6l30!Q +S0)>dZ/^/;Rl=t)5?7Hgp08+IGkC(W:F7,7_\/#nokQ2s*f];r/(=h1LnHLc']&BhE`8(n]MLT;dn`I< +H!'RW8r^^"Za\U9V/)%2C%B5N_8$=+=B3R14!:gh(2$PS+aBqe$).2r+=^qf&nb,Zl(X+ih]%Dg*P_Dp +imEo?nL.PT[V$Y8DtrDrV%);gC\Y<2XnD_.DTbL`GE/JE'b65kP0o&65#f^',eG1X5S>+)oR^oc/20sf +h5%2q(LlF7Y[3PkXY,i^+\EbS@SK>rqBT`fcC>madojo>K`SULPp::PGcaVYfEA0(3&RnBHO>hR_o`XR +Q=,P>aniD6jr^]gZ*sMuC07AtGKSLZ>q<@8pCrqN+$:#.t/.inTJf\9EJ5jh*gDK@'fm0ja_6cEoWg=[%V0sO7snMS_tV&r8W'g*VG1NG)2)'p=UgCfR1 +okSp:d9LkoLZ`LXMAaKO[D\IGc#Au^Bm%)1hsc])+#jqbR4isAeu'R;`7?0jg'k$q,L[fd)Ngp$[QF#j +m=='_^)n5OVK\j]$>7k]p?+bA,;?Qkr/OeaBe)3TSqa/D$Y)hp&*i<(Kj4F:kfahM+>\a[Jf(3K%>me8'`7T5G$'%IW2N7GBqN:[YbT$)chF2't1F6O4ZL6o5S!TmQ=qD`5bX-l@`h& +]s+(,hSYOcL"k_^5G'-r;s-^%g=gT+67`DJ!#e1AA-V8W(m&CeO:gFfEJc8hYKSMp4ZF&[We]qe1b)$Y +n<1.sFX-_3T5"d*[cc$T7YsW.Yf*;IrS#GH8!E<;q5pD^0+A,P7\d(7CZBcffiin'8R')f+1)bb`ct*GYAo_[`J51&(P%./6>el>1T_8 +8@/n:;N`V:1KQAtG][mUnL.PTp9Ni.ei&[dS[t'K1Q\ub!bW']cT'*sqp!fD]_.Jl414pb)p8K/g[Dj> +_!$XTjbZc_iR>4V#p@u/Rt5/.g;FYui.s:e9Q\gJ*s;f%V8l\'af7)W6L=V[nN@W:+hAn2j=4K\rP9M, +;g*H59(.7,RZ1[UNiARbL!M%7BR,ngPcS5=\asKM)bI*2@jGo-/.5#iip?A'Gl1I*SLol)rI8V/^?XBE +jeZ2M\^f9=+1g%S't7E[%LEE%9h>+;SioFI:rn-J)s7#0T[ti^NJ*SZB +:r'p!:OaB>p8'aX#ff@1-W'?50[_e>o@0-BCKT*/,>M5\Fb0/pq8AkqUVNYoaWqoZaV'YtokT>57qRLO +iNRe39j-fJ>=Z#4[tcXX%@ct?E,0*%S[:;p.kkbOMXfD(hn#%ZHLRI955=W":OMMcE0>2;m[NWnin4$L +!7hguo0f6RJ=$3QIYM4ur]fkcp8ur$)o)"A^[q6(4W](NaFF"V+PM1GI;`Lr!5qt=lW;=sqsO<)W@`Gm +Ni+aiKsP8S6-]`+'M7#b:9/IQP^E_^1%Aq&Q?\Xq?TU),$?l.0<^>*WFAe/R$6VCAG(,oN.tK6-?kgsD +\27NC7/8_cnp"Y`C%m-5Y/0n\SNF1Q`,,<`H0Mk(Gj`-B11"IGle'kKHLQt:$nF$t\c;W=5W!Q/mf'ui +2NZbkNa(E=gM[QcR^m,5@GtjDno7%_W[r?<%=`DO#NBj-)rV?0haO#f[Qu;Hj +UVNXDOblS$ZG`MKrRt]>d8k%:_u?j!NGTN'h7@]CRn*;S2?QF'RsZ/'ud$"eOu60!XkT:`M6j`J$rj/it_>em.a3HkRLEI[d]5* +cI"m:[Jc=15:[Q*C`dT)GFk0l*]Z0]LbBZ"As\[+KUk/8=ZfonoA%-h^bTjEf%k+cLG^B+`X3hum0kL@ +4Bd=_*[U.(%Ngb?%\CN\_!':j2N5WuB]1&8DilX*EH;?=N_eI"a*5Ng*.H-Bh1q/9D2Cd)qR&]4,I7K(U]@0TUR*SRh-n??*Z9U9 +(g\_:2te6rA^MCSG-MF2?!h1g6>[r:n2/9Hf^W3iT"aUPm(,FIrd&bCX69]F.hNWRiTBj6\8Mb:BZ_7. +Y@LpCi_d"1m1Al&.jCt5FAdAJQ#5\n=%YEB7iOPErf2o45"i/]ZJ,i2\Wi1=bKr'#JfR[%LD3)^$0D;a +8UMNF3^Gii^qm0O!hAWZX1Yf%'(('7.u?dP>N/McIdM+GBPT\QGNG+g+DH7Plc*a2@j'Oj<$"K$m!9ip +dJFbKC2CrGFr7]nj,*-l+pRd$_iAMrm@7VJ=*UF4]Z07lQE>))f<^CS>iLMMC=#;f^'K\7Mk3Np>)FUI +-0s.m4cd$t'&<^.X_(FB:t\]Y`TsNb!Q&`So\PG5PqeOk3XM+kUsBO`C;IJeXFLh7$L>;o)S^HLjhq\1 +8Kr1H9-hn5;L#>4^SetbM+>\a[9!Ej[e?Q"OKOS&X`#&8)K=/c7tmaoas`,d7dl2ffU/kqP.-)6?9@]ZcNW1A3ZBD_[$3n0I?PcS5=L%&bk+%:Ai$qhtYJ&A/['e,d6I0Rs%1c5)N2H)X,B!1l*D+/O66O-VpR\J'*O7oA +7ujCSK>%\]4hF&.o'Q>^dHgjDgZppI\%@>bA=tKG"Uti"/?<'l]IQS/+EP7(TUYGD\[U_mk80M56S4tQ4P=hjZfjj@+Q$AXPY(e.TfQ_%t;-YqcT"[7eSQ$Gk8lq.XF514!) +TpR4-8?_9+2\7X$6<\c,fO&;N3hH9gf`hmGGDGK6kPGj]7;+V6iq.#`DC(2:*P8' +pYEJ98lE6,/b(5l^Qs+T[YM:X(Ud6imlb^U_7?!I<-e-9[s.kU9jN5ga7G?+KF\>;V-tL2PVQE3.:^8f +7S6f\IulFJ%GI%DnHXQ2aDbX#N0V^"ZJlB86M#g`Uknf"8QhjrN"&0)>DH&F1D)(4,%?b^BlEE"msC7f +-FGks2Y["i8A-?rEkUijkM5el7i!88:sbc1>bJGheh`!A/")BY6nXjP7XE?W/pQ\0.u*L>r+F0`^FJ,O]6(m^u5\Yg=nbb10,/ +.]Il2SB2ur/p[n^LnF]uIpJ@*KORC<^*KT&b(]1s:Q0/g5q-)UO@O8J4:5f,kUr2Pom;Y2KW)+nC4AgTCXHh&%$]X;rai\3,_-sCe!8=e.@*i]9klh`PY;5F_q;Zg5 +Z$ECa6_o'/]!fFSJ5;PZ;LrC$MP;4uhN0dS8/Tkaq_elN?n-J+k(?ZMPSVpjU^PqaIWup +2H*3a9B6]?,*2Gn.ibkJP56BnH*`JF2Mh6#AoLHC\CM[pU)6JnD\<5F>k"fb3l3\'8i^nc8+.Lg$C&Gr +(T'T[S=Y'Hb.agpFLe*CM$?mN(L,r4g`hdtUlqZ_(mT;/EoJM*"d6h!I]]IN"Rmcc-9ChQR>Tku3:.&Dhbnd',q7gH#Ug2Fa_gIs9KQ#*/ElL^ZU4i<(R\jM'3Jm7<`!F$3F-IhK+ +Kr20PZ[U+N&n25h;f])paq\Yd8!6LFkuCN%XQ2d#KHDqS[+k5?j;N4tJFjK6I^);sn>2B;0HlM8(3t#[ +G&"eXoG[Au%)o6(lOGY_W">I"<.3Aqed,TYj5\IU%ErEV!EM.p9SrEI$j5h!(QCTT7sUH@Au[qb"9r'lc=Wr&,?4gs]28_aP:=]&KS/UrVfn(u:eXN$tMa +KZGCJ738j)S_A#8571D:l^=ugU`gHY,I>[V?=@(+B!/aCL#?:u'7nn-Ahd;r23RaBlu.Vr`qoTqP3Y6[ +HVd=Y30?^MM`ba:aP(R;SuPp$BK]JA2Jpm_lS/RClu_I4`I^/KK(+BF^>.dQLKN95H='`V^lU<1Q->u^ +IM\uG`>L)#41rWZ\4%IHb$%1L8WMEe0_2[b0BE8EOA#t)LKFR7@Xu`T/#;VO"Y1cH")_6r(8pU=(!CWJ +Y-P?0[PB;Re3`L^,Df=0_i-^0>NAZIe?8bQH2jfkAfg1XO<78`r_=\rp(RSI%&'"ejr]HQ]&aT!(TaBB +DE5ge-0g6tV0%J7Gm(UtUDBk4q]1qleb*t^&ugkFdCQj*FVLgh&V`-b#^]A9a26\i)kr_(G6!Jt3@qbo3K;njq)[eKrnnD;l\hjfY[c +V\d1ueTBg5<+%TPBp4'AmBoG5?2Ge+i"gTKKA=hdAfcfr=doeo:a`;O2Und/b7q59qfSdiA/1Ao++\jf;?V6\4%HAZK@L\*,dNo$A"LlGsb=___#PR2)QQ&C0 +*gG)!$$cZ_auP/b6t@5EE\IIQN$U8sae`&_nRkCt!YD[@t.3 +0VXdan]2rb73:,/nu28:k4Tm]dU/b6ukRX&GGp7"sk,ak'gl07G0.?dN)7n,rh5($K4q;`.C,*-Pua>uZ/r=."U'1S57--FBQM@,[`-Vh`-Wg>P)4C%&Lj:U/kO)1k\8%T_/ +\"\dK.:(AHSYN$X-$f"HfsBu%j2[4U?:>pO/b6uk3dF[W+8hjVPgUl+^q`3JB4n0%iS(\T.WOV6kG)?P +*l0H!aL:qjZs3E5RQ-s2U6I9m<",VPl2L\]d.,l"Dl^f:J,XiF$csX'73:-j89UTO.?`RF`l?"b`toO.ea`2"nYd6:4`G0Gf)9OK[g+FueTo#,(F`@11B$9*EF4d^PL>TAg8qFNj,!#> +SbVdP8(DnGooJ\>I+/PG,60Uf\+Z:h3c&_QX(3(d)@@M"F6=&-NrV"RXnbEQ.&DR"\$riIX"/;]qXs/( +ETZEGU0^80!N<-"g2BUJ+H2AB=&1]BS=EO`=&r@r?:>n9LpBtVh8l=6PgU_r)k*7bRaO]t5(/mAA-N8D +lb&*;!YD>ng2C#g6S5(.UL&)Pb,.M!d+?mIIXCP?]fIeiNr[\7Z_;Yd(Pu/V&7o?],G3ZDn>Y3;ED/nGm'cP +3uaW$99dkuFiYd-%IlpTm^d9?g)##;!/LaJ#QPD@j:MA7%`fjp5TGkU!.[$ONrT0"5TTq+ida,m!5nn` +"9=5[nd#4,#NQHs+:cI;!'hNc7f\'!+HHL&EBkQG!9/Mk!W^.>Gm",'"7c]t&-q8.!$Dcm,60tKO@K;$ +3$=7^!-(7F!N$5o\ua)o&eXE#pi2Kno8mE@PFoNW2)opoQE-o:U(Q4IcY9;\:Nsr85oADlkIY +#E;[@iB1eDMHFTQs,K!dCJEbMBUfD?k<\--`(D!KGI6mECC95jj&C7_%iV>i`UQ+/7;`G:+Vo$>s +co;cFEYJN#4P)g1!<<*"zzzzzzzBU.uPmC.#k\o%[\jR"SOX`3OLRlBX0_K@Baj%=hZ2fIP8If-^b142 +!LrUIoM?+7ngjlL&r2ST+[9@jVmi;*!-kKfdhmdBd$M%;fFi2<2rEnr.uAnGY$H@")q:T)Yd,9m^@5'5 +U)#IkCSg"!-)eWi$H0VH,\e^kmkoTB!P\d2TNbGEJ.c2R_AAEM9t(GGX]qUBj6)]S\MkF[8!iJ4,#+na +T2kK^VURQ]r\WjeMAjlY^f/ml>_a^ioIjOMd\fBol$.fksOB^"F&H:<4[FgLPPRfO:iIj%=i5QS)QA=4`'0&*1 +Q6Iei*LR5<%0bH>%1er:V-e2`qeS4mN9WK4u'?!X.n-A=cPSIP5ufi>(hniB9692"j6fs>>A_8hTY]5! +UZ>R@W.oo+3CHLc`=6&?G-'Z5QA62RPU_6UY0JWjia!Ic(g_&SN4;d[33hKtYa7X`\?h4;dUmE1\EqKn2ad_$`lj2[ +4mDMSb*?G06Tp@RUuU#Yn9htKT[S[9jn&p5M9Z=:);Y--'qcG%$,Q'E*Qi53?_3hiqEhgbZKgHn>uUj%`bm#>)N?cr/2]4hDISJj%9cq=;SRBtFbQF?p)aI=:W:i5PZK_ac_odT/,E7Q\*I;?lLU[/kWcb*nY/)8rql +0ap"*O\)ek^a;fube.!5C4SND\AJ!A/-!A1^n^-3X7%]7_>9I:F!k(Q#_iX"0[/Rrd"'PW08nj18;Jm9grcC?@@b.6)7"('1I?IW1Ibbbt$6l=VE"<*i!d.[2,nF3 +YCfWKj+%8+M9URJiHb3Booal*]R9he@H,>Xpqc"&S^K7aYdqltXop_XHK(8D?0^eCo^8!CMic'4jeV +$9FbPI4S51RQ)]O)46`%9$G@=prFec%t8q99IhnEB">$>6=AsX1HZamWG5*e + +%AXGEndBitmap +GR +GR +GS +[0.48 0 0 0.48018 268.80003 113.32318] CT +[1 0 0 1 0 0] CT +N +-560 -236 M +315 -236 L +315 420 L +-560 420 L +-560 -236 L +cp +clip +GS +0 0 translate +315 420 scale +%AXGBeginBitmap: java.awt.image.BufferedImage +{{ +/RawData currentfile /ASCII85Decode filter def +/Data RawData /FlateDecode filter def +/DeviceRGB setcolorspace +<< + /ImageType 1 + /Decode [0 1 0 1 0 1] + /DataSource Data + /Height 420 + /ImageMatrix [315 0 0 420 0 0] + /Width 315 + /BitsPerComponent 8 +>> image +} stopped {handleerror} if + RawData flushfile +} exec +Gb"0W_2FiF*Ph3Y[srrt#X'^a"=51D!@d>#6j,/oLfIsr,nQAq(p,A\Ru=).8:jr2.FKN/ikc`d&jjZJ +945XA)c&n[LE-g4L_bU'Z=nEQ^7-isZh)K1Ze9Qr2imS+Y_U?d*8VRqlauc$n,D1hX\Pe_BE$f[H[`FO +opM8;>$+njh[]"5r`XZb:7[g5eZ5,Zokg5CkBm(8Bn$F@q.=BS(qijA0/VJq[n6'A/IU+duf4+Sd5qP@,P;r]mA,=GS;+ +-qO=?[Nnt2Q9TpP#o98s:LHhIKkU8aSW[A(RUDg3q%MDD?m/_Q5c5l0LaH4P8H&b#,Zokg5CkBm(8Bnd +?qZ**B_`=oP$fG:rWKYT=GW8-cm]8:U'VSB,$66arlE#'=GW8-JLq0DU?,0Y97hk2q#d1N?m1tHTcj.E +fTKVc>5eZ5,Zokg5CkBm(8Bn$F@q.=BS(qijA0/VJq[n6".bT_+duf4+Sc]'P$fG:rWKYT=GW8-JLq0D +U?,0Y97hk2Jq\g;O%`6!KkU8aSW[A(RUDg3q%MDD?m/_Q"L]RXLmC8V/I<2ejUZH*Jq[liKnAA]?qZ** +B_`=oP$fG:rWKYT=GW8-cm]8:U'VSBP!=LL#o98s%s1EqKkQ'lK&f^897hk2q%MDD?m1tHTcj.U'9cfI +>5eZ5,Zokg5CkBm(8Bn$F@q.=BS(qijA0/VJq[n6'A/IU+^4jJ[Nnt2Q9W_F#o96A(()6f-qO?Y`$AH@ +Q9R,Z#o98sO%`6!KkU8qfTKVcRUDg3q'-Q:?m/_Q"L]RXLaH4P8H-]K,Zokg5CkBm(8Bnd?qZ**B_`=o +P$fG:rWKYT=GW8-cm]8:U'VSBP!=LL#o98s:LHhIKkQ'lK&htd9S.t3q#d1N?m1tHTcj.EfTKVc>5eZ5 +,Zokg5CkBm(8Bn$F@q.=BS(qijA0/VJq[n6".bT_+duf4+Sc]'P$fG:rWKYT=GW8-JLq0DU0Td(-$,_X +&hHFTrqZ-W+1&s],f)gSmR4NGe]iKI?m4+q^\IfOT7*+CZCWULLfGI(kC,;?h32uC'eI:,$hj=9h,ZJZ +DZ++^6EDZh`BQ#Qq35r^'eI;'^;/%mAM/+'pMdT']g]8ZKilk;p?(7M-QQ'\[;/]*l11E+-3Y>KC#A&*Fo<]Z*#.XHLoRu@!`.3_5g@`KifGro"t]amA+X#gHAQoXC*4&g1=#P +Bmm3MX?O%-Sh+!"FmRJ[S,[cl#eS2-*l11E7t1D-J$=Q#nH]n>.OQ&F88u_1BGrS`154`7d?+%B"FR$aC3?iQu2Q5'VrTYRkTn@+Pmo'0iQ^#o6ue*UL?FN!0To +:7OJPFg/PX4L9Wn?s1>&42iFHLm8qGh,?GB'=3:E5juq2P8S30Mt-AVEdOK#]ur+D[Lm='/[cGdD\E+- +DXO:1r*W=-:4,'aH^b#.ESCio;!ZKfiPj$q"9=G9DQqaTY@ZQ;!,1/qX4Od!D!#R9JAs`GY^*\a!#eop ++!r5bSD+/HNI/`S4'USh!,10*#J8N'!eBEEf=E]hc5*kq!1LB\?oPbn!78BL"hVln!eBG#0Nb5t?oRI4 +=JpCOpZt"EVg)V$1_OW\D$#7M2%j`'ju*6*o9p$;.3@+Fbm!DI%h)`r_)fO;_q&M*lYdF:1p>S?4"`4A +@;7pWHaa:]Rb)eg*N+-iBSI+8mhCi5-YV:SJouqUL13]io+>F_hJr.))BROi<@tUM?fS.e6k@5 +nN`k(*3<($d%k(TlN1R0d'/..E_[C=1Xoh$/ek?$)Df$6kO8E3c><+\KV+DN"aePPfte4.+kX2ndKH?VZ"C2.Kl@3KrX@>o&+lad7._*Y@X +CL+Cl/6E1d8ZdDB#R_E"%B?i($=Ub;YQ5-K[9!VA(4lut&?^Ga?m40Q"lWX:KjXuuKPLl0JdkfnXsI0U +2IJh\Q=(le[RN^l(1M,rA;"?a+G,(YU +^t*DY\1p!(q8O@l7.3[*bEjkHs8;K%5496+Ie4\t5dt[hSsl)dgL)[>\59m4Vk/5"r;#s7j6*"\ +Y57=NDn[+&?Vp4!f3[b`>fJJMG.YG3n(q]KH03k"^[5l@=]suH>Q(JH?%X%304(_DS?K^,qKN3kqXj%; +KjVTDIJq0H5Q:HAdA,7DKW)S9>$l^NeIt_@EU;>_`Pogd%(84**^"[$H7pDab:gWcC:.s8\i$(qY-+p. +YBjem-J^hb)-U7S%e)&);QS)9BWd);XqWleiK:_PGqsN-MT7-S# +VcQo"H<\BFfM=^,UpiHm^&7QXhgP7TC?,-]kG*2/eiRs89_Esan%JJpF\h\hXL>e4at)$&cT_4WH3\Z9 +mG#+N=1s+`rXIV/s8.-8eQ5-3$9"9>RFu-%o_&li,PSZHLYWbQGbNhN5$naI +cI`>*R@^"Q?Mi-F8$?1.;B8uB?Sbq[b_R5$?rpB0:7j_`Dr8:c=8;akpRaTq2L;9Oc.ojNVu#t5j2MOX +&dn[>zzzzzzzzz"o1B$R,7]~> + +%AXGEndBitmap +GR +GR +GS +[0.48 0 0 0.48018 0 0] CT +[1 0 0 1 0 0] CT +N +0 0 M +875 0 L +875 656 L +0 656 L +0 0 L +cp +clip +GS +0 0 translate +560 236 scale +%AXGBeginBitmap: java.awt.image.BufferedImage +{{ +/RawData currentfile /ASCII85Decode filter def +/Data RawData /FlateDecode filter def +/DeviceRGB setcolorspace +<< + /ImageType 1 + /Decode [0 1 0 1 0 1] + /DataSource Data + /Height 236 + /ImageMatrix [560 0 0 236 0 0] + /Width 560 + /BitsPerComponent 8 +>> image +} stopped {handleerror} if + RawData flushfile +} exec +Gb"/l;2ZI8Q%8am>aQmkKSTm?Qk@>3esJRQI0_AKZii*#Y6YC=,^HMZ4:Knnejp>c![7FbOU$MuLCcV* +YXDtT"+hAPLCaXt4F+J_8-Hr"L`gNH'cl_q1T.8=hRU+rX(V;+31/*a^3t>tmJ_4-:7_7H.f]PLzzzzz +zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzJDr]cgiKkV!<<*"*ruAW+M^JI!&+QF&HDe>!IP"M!(-`.! +X#$it_Y! +!#@d*ruAW&AUd9!&+QF&HDe>!IP"M!(-`.!X#$it_Y!!#@d*ruAW&AUd9!&+QF&HDe>!IP"M!(-`.!LW9K?"30[BCBS7,T:,&&C5hs.$b#^MdmmIIHI`0/k3.s*J#q*$`kDg.8;N? +]u%l=ec.kAW0[e-O)!EQX>4;`>;ll%X@jBBfK^e;rJr<&&B'u44@!'7u@PD4HS4kBLfr)/7UMY#%QT>V ++Y#s>KLg^iYT@SrqY`0APSdWFlC2k5Q0hBq,?5s(_=gcBZ913B508F"pk/-8KYYAk*t=6S"#o9] +^sFnRlAZb4o;XjII6'U5L,c.+2N1-O7*!qe/BLgTUS=lQ3=Imc&s89:V?@2)XZ&]qiHl-2)Gk%MV- +"KU1c_&OR'-G&8#g_As!3`Pm>"3QoF44c:1oAT,0)+ei4*U*td)R)D]TMiK,Y,WLrU9-3QS2\U00X^SW +9pte#f]5VIZDcFhG@*Ls8F3*iIHt+8:S2fA%.Cq-DE.FipYTmN/O"dV&0?A\. +9cZV5H7h6]TMHb!V48qr_Zr7q^?jXe>Z@c)]S3N_-c0Z+8tCnD5Y?C0HT`2Ym[GTL/702-Vp=e(LMU`< +HmMZ++>&5J,T&l1T)^CM#`HRE,]co0@hbZD>r/Lg]-k'0qPoOel@RO2`=%)s2V^jjPMfMS17*mlNW.NGOjJAg/]j0+0GS?qW??U5qEq@ru'e(q +5:kn=>Nb'ra0:d[,jf_O!Hs$G3rJq<(/DO?noNh]Y2#7cY%r]g$X6p;gf(33%cAlK/+8\"QY:!Im`_(Tm`")]ju;8WG +M[TmF/nZ3%q&i8&M]B/Wek,XA2]+%g.;)(b*=LI;PViNIm(I>nDV:/WJXq)^gc4H@L*Q&'Ef+D'[i_gL +@C0r:,CM500@rfOY-.Ve7)OIfL,!M4gOb+BcE(MSVeUd,q+L55X^#[;/sPII>n$HhZsQ4]Rnc" +BYqW6rXJT;7Int1Kl"!\S7*dT7?k9hVR,grr+)Hj!1KqDa$4,I"78I*Y1G[+N<(s+76"]nBl3j7o5O9I +2)ZD>lBdU<"'Y2P;0Z1*2F1ld)/R>2Xh=.V)KL`mdK/10uqi=Y%g;1FAAX\9Hh==iMIV7p^$05ViS\nW +;9GTkVK$nCA<.*nB$=5#O""?b=<(%mF]3E:m^$dFD(%P4rRG"K7]7C3BCme?#l`9cJQN64#ZR?e>5q_* +P9S=M,ckiM59snME-eo4R!Ke*cB]:JWHHVpk\,f<#3;9l4KL*,u^VY1FB_`h1f-;c1u%r1lDhYCj*.VA5CVsR#hDtc0)J&=-b_EttgpCPn+$j3/oF[RXT7F0!:iOlg+5-+;pW=Rh:Y>S[,<6S_oa*g6]&4eW+ +1@1^A@PASY*^@S\fkl:;6o9mq$+JpgpCPn+$j1Yo20bFi1jcu[KY#7.]&=P]B4p-M38)kM]_Kn0Kn3u@ +fmf=?2F1joqs<[UsM.`buq\jl7cjA]!R\m)%_(9p[%\ +4)\foPi9>%=A;$l,Q:!Nt:a-nI""a"QQZ +$@/M1FsA_LUt.M(@2-1qPG8Vp^$05O,r_qh8)TK%b\3[rtqdaHrjXu/ +7Mn)LSJIi1hjdA/q)3/&:=V'l-2_7<^,/tsBXr^9PGu9S6])`s?_ga!VB$iT#jR#&7 +NOTIBE*S;VKM$52f@VhnK!X#QZM_m]&4g3$U,JS\4&m9CgD6_8N$m\'m(W9f;^Hp8-M[tkVM3e7 +T2*pQaDpF>&s4&iOa-UE0<,_AHq[bFH_s'Bh&FmK"CU7UTN9Tph4=QO3>WLW +#9^ARs'JC,H+7R5%:khTgc8cH[7Yc3mtU5V+\O6_.79TI*ZI'b+Ug\L,Pm/l@/4OShV`q6YHV`JRM<;NI4+nu?.d +[Q;.DM"f"ZE9^(nN(MiA/('2oaL7*h:bjk,3Eo-Osf@VP`_IZr)ZN6Nq>](^1g(C5(^B2`h`]u/Hs0be\OaPQem,.B'$EE?L^'N9cdFZc#(FmK6pdtB +4WIV>;NTSnZno9VN=F-Zm,\q6!a!-ac:UM4c-\$[oJ0"`K44AX$_'h@'(0947SR5`$K;^dPpP!_+.=gI +XDj$3V]OF,ZhWR%kf\12G]EkV#9#0'Hr:s_V]:%F"L;?+B)-1r+MpFg(AptTJ!qRW;;^'KFrDeeUJ=44 +#6%r4R!NG2b5^#D&M-!dG,2RQ^6#5*u+bt6!a!-$'$uRdAi?52g`f1]IhQS+dlH7/u'jZ.KDYa](FpUK +?"5lW(P!l7(UCYNRqa3@\r+*T2ft[6[[?q1L/+_jVGOD`sFq]](G$XnEd1SE#rH+b0\93=cp(I>i]+`2 +I1eh[rG7D]38>\)'&6Q"N@4T$^&S,MuX[#FW7$ao4ZW]G99/EUQ[g0P:,l<$LVPSoEmb)IS(p=kap^$/:O +%qqC;ojDTp;OHM%,r'pF5g.I*lQNM7ao92(o.[pFJ"am=22Zq.[cOU.s@3=BSqiXJ<-?U4nsiXb);!d3 +mL64gQ&=t1C290FoFG:#VB%&Z#jR#&NdGHbi]73S3\Y*AIbJQ(jQ+-=>2CBo, +0A50B9DNdhU4W5d@5PP-b\/?Jl`$gme$go!C: +XWj=jIfc4+#BLoF&/k7pdK,TEIs7E0)bR$c,r[IliOe\a3G.%V(-P'Q-"Ol%m>cOb*,5PHA4_:O.\-#k +a7*j]%O=&B/c9WXa\uOUs!/R"+s>Nf`AdsNb]#.`&'?*>p8i$50n%mJ^W[=OB"O6#jURj,Bh5KVU]q +h;O/pdi[]rD%4uKt3%)UW2X,4.Qfb`pJ1jl(*:(Xfu%L$ +HZLWlEklZGL;n'SDYWj90YULZguBdZb/hnA4PB$dC-1NCNYisMTD>qk*>Sr'fsUhZqhqn2.XJ6ibtLR9 +fl,>&_$t+*RetC:>LM&D(+#Ej[?Db\)^.Bd:7t,lpj_BP\e0NY:%)_dcr9&d@5P+RE71sC^CiHrM4KUT8JJjP`sFq]](G$Xl;.(_)IeAELELHiPBm/>2Q-'^S +N=`$3d+pqP'(GZI3^7>VJ/i\Mcp]?+/-5=S/0d%] +".5!RT[a#=21B%2siT@7o5Q#5!!q9J<-!%X[[7IMLKc3kJ,MJbOV9M&Za`._HKE,(u5XE3nrL^F!=hXB +>6ti\[Bh%gSf-Om:a=+:mW5N'V8^_+7I6&CcQ^0+6@:Km2pJ;nCTp&,:@%5eftj7JZQN??;.5GSLqEGb +#,@WP9IPY2sk:p7o5Q#52+iM`CEQhhFH#u[Zdq(;]B$..Kb"=EBd_PgU<*C41!I9nmG\;+;7u/HOg[8" +EitF7k640+(<+$l/I@_b7te,j-)Ed^(PWn=M.42E_#]BCl9UQCu#6s*t8d/"EhON",sbaJh)r6n[H%jh +_e8BSW:eUf<,NXc-k26Y&1B6j@6FOG7X:fm"mqNA4+2sk:p7o5NnI)KXY7uasS$MG<@J>XW%9ksIK[4p,\DV^Dk:.8;#[ +Oj/T\1bR".0Y["NN`=c.X0@%(467-_+-kNjMjZoO6kMco8`.sXad^gO8PhfB2i/@'WWpuCJo2Q87%VnP +)=6"'m+Al^2B=r,H+7L+)Tok`^`Pl;)719F"t9*aK6CRjtH!E*MAVrL6H +VT+':9+)f&GQOrdY!Ul>m5N5UFe]F9]q).BeG`'3G8muo[pkbZDiLW>?mmV0mc\iTB0On,0@AK:6G+t% +eL.oT;PJWIei)lM]@S7TJ!'hZup^'*uuen)o$.?14[SV%J\9F`7SAO-4.a"acZ\f'%'#X +E$8eal(:)-T>u#4F?dgiKG]BYk;fjPL:.7eR1Tr= +_XN6ZsD<.(#YXaJ[JACVEGf%]Qc1+jo"rGn%S\ec[PSokF[5fr:0dbqjFqO,H(u6)Hu>g&_7Op"S2F(h +8oN>,dmM:ZBh.<]h`L>UtLb)bEA89]:lbu:[Fae8\=piQ+La+!$?UX6'08?YIpU54F6WJA4\GgpgWAkp +^$._g.**k2Xo+VU2;,qQY>S>;f]=FRFT9qT$ek$(HVDj>O3ZV"8+82+PWZ6ObgKj=?Xg_ZmUC5hKg]nj +kd[tp-m)jSih;Hp+C^qFm6_4*DRK2+YoNTfZ3kGC1.npg:="KO-_N$,:#LZj(Zro8':,Vk!HN3/jGTPb +j*;3s$`3bBhn`DqUMd$>]/H5D.!4dGJ4_gUo."\[_3%j6!`tWs.P'QacmsZ+uLDWPPVb5gMn7JF'mZ(i +ghX]'g&09l&Ro+HsuiBhG$LEPN/F5o%1YUopak:k5+rNrr0XEo(/LR4Qtq][;21Si?P9oBcjH_?XpE_- +_n+22a&;/FHRe/5r_TWh1=>]TH.[74DVX5>91iCPchC',_n:X]@5@K*MoBmm906(OX_FfQ="88!trag ++j@Z7OLOMkol1IoO6)ta\DNn4AjiS'@&JjX+dI6CX%qIW9?2?$q0,nLE+O#pu)"Z,I,,A/FuAha-[11/H7 +0sG2g!D[lnI7E<\$NCSN:W7*r1r_>p^$/:O8984PiQ=WHdfsE8XhTk4J`r/#MH<"7(.R![/nlq.'DlB2 +`pcEX)crg9N+#Id(c_?T7-E90[$:cQe^nVqqL#Fl^'83DL3TlK"Bm8hBHj%R]M+L)`6VGm?4nuq34VYa +V^I@;JaM9I$C`&eg"HdSR/3nrRmf3Qg;rqWUWi@KX<.pjlMh9G-Cr)%t=kg?b(3Rm>^lHl;H,%#EKDbO +[d!f-okfc'0Z3EDj-30-*F5roBV1S7$;D4Vl%PZ&2f5ujsHsN>r#.'@6,jcMi[,,91,DBp1/.$_M',!h +u<>Yp;PWiHS)o*lX0\'m9TJml;H>+;Gg+];nMBBB2URGEcl0naW5_''oLKsB_e1#_:+(Y*^?&M+E@[kd +nd5H?/^HS?'2eF%Z=Nuh6\P^O$EX=lX0\gR58K)qU;(n^OJJ(l'5=V$+dZlnRCWdp^$._e47.J]D+oAR +G]@BMT.5J-.?RLP=oP1WlRmIBu8kanm"fK`2&Y/F/p*4-L*]R_FJ\#hqsdn8&FN>Vf1A#nW/1t,P)[u" +Ec0\UTP@s*qs@&73\]V>n^a)$YpFA#Wp#3IWuOYk1O:)j=Kkrm+c=\gh[GMq3o:.BcqQT6n.F0H[#`k@h!1Q7?I$irBWH!P/r6.enm-#Q9lOpP<&[sTh +pR_C%;.PMAaGh-[B*Rd4#&@p::Ma7]QE2L]&NMq3AdoqADf.7*D:Q!m(W^!Tj@=+.4 +h"rN)9M=_g&S2#9fltV&_*YaO%Ki1*66-=arkl39%(+6ajmRUg=B;>ret1L +%KHX;amkI6-`Np='Fgb*AdHrl@P)nM.G6+3;_'TV8aW\iFXkgIF5/-P&:^!UAHIfh'LhklLJ/+2I3WL# +3D"$`bm9;2/o7YG0JkhW(Tu0D;F'c8,BTRo8C+b:)EKb&g9EXKh`\'[@7np?%lg)kGG5\@.b2p/QQr$P +$AYHR1IFNgr1/goN;O@HIsBnO.\,%I8oiGaN#^qi*0eRO#A5ja0-TA2a!ZlZDV_QCKg+u=!B#s?I0"Rj +I,$29p2^(O#*3k]B"DIEosNh<9U2"1\_7@Jrfa7X_hjCH*Ku1*o8Is*XB%%i5q^/3sT:dkG/uXr)'nhe +NG@E/\>;bp\Njncu$2$HXg;WfBm0tpo">j#jP=;7iSoqn<&C36h2,_VHn":"hV6@gjrmsC-&hA2Wb[*L +]qn):A^Sc\\ofU:.)Hd+g/5ZNU5A@9R\g/n.F0H[#[g14;hNtGFcqgC[8[o1'!XJBfCZhPV;8/OdDYBO +0Q]eIi)kN+Bp&X&gEZrM'$$F>h_5EEnurHCPRt*$pK9S'_Tl-osHOL84TC0ae15m:?Ft7.rMh9a`m)CF +HA*PP3!MmLDs$)AsIDjq8%BW/SrGfB"6QB,\N-+lq07KqR%-NBu^WGK"@3?;2=gD_[KbjSbZ^]hF%*X% +tA_l8Aqr!Q+@#oPoYm#B(^:aK[&&#]?DZf#.P^k_\\B``RT'..:J;(Yhl\49fltV&_$t+XVb(>R3+?ET +:p+G+_rCoNn,8-/@=rH*+L)injcDYib!DCFBkt)8AZim4rkZQA8[5SY`5'2Z:m]ToW +ih;TEMUFLA6j:>3tqK>1[u_`;f+lA6Ii28/s8BQg4nsW[FRpg`6Wp7r2*Y39HS2D"*1dS[eGC>Tr5$XZoZKTX +)gUa;`UDOb0)3:Bm_`Wn.F0HS<%jfG>GZ.g.LM]AkB?@/hY&e0*Teg)mtN?"/4t<%%q=&>[sXpo_`mq# +W[N<_+C2(gH$SF9cX5`bU]Yi\)rMFpl5OQ#jP=;7ia42*+6/8"`;Rl2j.dFebZj/^t*>@DYg"rg4D7FD +)@)QJ(nZXc"lZGa`:RS*80[MbJe%gWPM48\Li$50n3?R)1]/*2(-!OTomo%-7`X?r=:n2=Rj +\GYAgG2OEnSB(11RfsgWkgT:Ya#_h.e[ZL;?"%UNs5bOK";Zh;\lC +_icNfV7\D2Z"`j7/:gV>A,0Db5Xn$-%fDLCX8*7hQlEg0,D5%9&-cu#9Q6;nBl:8p+okt7C%7mfZ_<#&Uqg1FOOM49B;^3Ip@:,0\s!*IV+KubH])FF79j^Hl`'O-^a3mPOb8^f0'.JfI,(XLLM.%HkS\KR)m`ch.)*Vu5BFa[:ID'F.@/_qnV`(`=6n.F.R+ +"\LNr[@2bSK,%Yo.P+&Jod$]P1+t7L.u8F3g#ZN;Jl5_D=V2OhE8HaKk=QZ#bI70qJ?0Y(Msk1o0tUFH4rPdC#jP=;7jiPfnp(-^=l(:IB/PCa807,d+1[tcWZ0?:/),70&l!%Sj"=6dBK`3hd[EI3S#U+FAPb&\F0YIFLnRi +_ib35q/B0Z3,a123V05M!"3FQ9Bl&%r>J0UaO2QK*<>_?-;tVj4;3Vp5oWWM7*P-?gCYE[2tl,]ATY5, +_*'DFn$H8c)7YFln;U5hS_pIOm1.*3YLYZ;sZCsrJ4^1VU^*4P"SQAWT(7jAmP?MPdkEt%R,KU'_P=s7 +PR79?/ssCM53<^VG!!)_G:F#gpicPau(_m6Y*bJ8[B8I_Y%'Dn*)ATZ@d^lfcj[:$5JOQI<+dK(1:fWU +:+Enqg%_Z@)5?0QZ>8n]=rH?I5ILSf=C`pqh6!3djMT"(il#")-.QM3pF`75-Aa!c)JQZ5h\t)2m[2VU+VBkA#GW +Yh(S\J.N=0HI7$]ia=dGJg;5@B`RS%M1.b<]dm_Z'9o_eCkmO+1)X0&b@XXp]o>GB&14*'g&e +>8[rRdMYPX6=0`0s9jphCtmFi(cnY-0:8\W*7*s7d@>^6+cu,d\.=DEPlbIR)k6fl6)dKMjr_RGq3*(V +aoHb`C$qJSRs6TD\645VB%\l#jP=;8(G#Q>f]9]m`:P*DmrH?bT4F(kEk-h>H"D.[rj/j*qF2;WZGQGR +Ih>#_P_>"&dTKsN5tQ9ajOs\kFV<"-Z6CdKmQJ%In_5,g6%#KTJ$#\Khh0arPuR8$>:o"duEEV:],SU! +D/TQ2A';01[sYfaX4->d"reoXNfG0nL]H6,.BF*N@W(S9U* +BZMFN]s`Zn@:o0Fu(?j)V(#e`OW682eTKXgAtRBH?;tY3Y'h-MQgW'-SBje%HuRMOA>+$Ok-jQ[=\t-g +!.J&*0t?bM8Kf9g>U(sg.TpB+)QK`a]8qoN3)Wm`6N:)^dh4f69a,Zh`Z-HE`4cPbTF5egtO,D2Gpc[C +9)Vn%X0=Q6tK$S2_Er4W(T,mFgr'6Q +p-t-nNCY0X\?(cM,_X^TU?cERaAu@b7_a83Xm>uZE:R3.aQ\t8`HL7OFfWt$(&1D>G%PrBlt;prqLZ4c +MC1t.J^e=U\<_b,)_q\G7so\_H<%h~> + +%AXGEndBitmap +GR +GR +GS +[0.48 0 0 0.48018 268.80003 0] CT +[1 0 0 1 0 0] CT +N +-560 0 M +315 0 L +315 656 L +-560 656 L +-560 0 L +cp +clip +GS +0 0 translate +315 236 scale +%AXGBeginBitmap: java.awt.image.BufferedImage +{{ +/RawData currentfile /ASCII85Decode filter def +/Data RawData /FlateDecode filter def +/DeviceRGB setcolorspace +<< + /ImageType 1 + /Decode [0 1 0 1 0 1] + /DataSource Data + /Height 236 + /ImageMatrix [315 0 0 236 0 0] + /Width 315 + /BitsPerComponent 8 +>> image +} stopped {handleerror} if + RawData flushfile +} exec +Gb"0V+`88k(kuI+@t>qiAU=Ha3JEeN%!$lk(kkE4,Q'WmQ*h65PO']O4(cZIVEF +JcFV;nhp64R%hB38T+&K;7\o3#cQBnaIf9$,iU_#khHlcO/m(Y*Q0RJsbFA5b;m=_2Hm;b73_oA;,[GT +i6a0mR+_k0G+j'UWpW'7.kKpMB+`"7Re:Vl]m):%_Jq]l.ejcZkKkFlke%/]Ji>fEE/7c.qK3,nWG!!N +,:hQn^L$,,8f#*,BYRoD.m)?"5_*V18YkOdX"Uf>K_&M1ln#J:#?(G')'('`2)m+'i@_*VCVY]h2X":J@aKn4=MHhmM9YRoD.m).uk_*V18Yid[c"Uf>K_*39 +o&hIQ"('`2)m+I:Q_*VCVY_UDRKe1'W5^I19(>)6`OOb<9`N+n0/>VqA4"[\%?m2X.f\Pqt":Jp,_+kA +S-!3_(%/0PRFU8i3":G;D/.A=%fP*+G":Jq7_$rks6<\$+dq-?^Q=+,DS$gNLCaE1SlNq_QF=P* +ng1IS\!a>sHdX$M9#+\AjO="'HaC_[JA7>i\dX$M9p0gRtO="'HaC_[J!a>sHdX$M9#+\AjOL?%n]YIR +"Ks[FZVgXpF/>NRf#-o-5]YIR"Ks[FZVa73n/>R+e4"mh'?m2X"fP)G)":JpqKn4%E4"mh'?m2X"f_Mg +\+\T$n&Ac4Kg9iOLfLiB0-HU^7e@dLLF\kZ!.f1r7$o":G6u(ng;,Bh'2,Qk[MeEokZ!.f1r7$ +og;,Bh'2,Qk[MeH&Z="hKYV;/.XcHg1"UiXK44rYf;[F5f)SrQlfLiB0edcj`kZ!.fZpq:#"h#$pUpYh +\m_b8s+\f0pO@HIT"h#$pUpYh\%Q]k_+\f0pO@HHUDm'9OcUp:OjZZ?E(=E$rks6HUn%kdG_)t"$YbT.=8OZt=@a)V%-1Bl`sZ]0=@d31H[Ju#O + +%AXGEndBitmap +GR +GR +%%Trailer +%%Pages: 1 +%%EOF diff --git a/buch/papers/ifs/images/faroe.png b/buch/papers/ifs/images/faroe.png deleted file mode 100644 index 183702a..0000000 Binary files a/buch/papers/ifs/images/faroe.png and /dev/null differ diff --git a/buch/papers/ifs/images/faroe0.PNG b/buch/papers/ifs/images/faroe0.PNG deleted file mode 100644 index 7396ed3..0000000 Binary files a/buch/papers/ifs/images/faroe0.PNG and /dev/null differ diff --git a/buch/papers/ifs/images/faroe1.PNG b/buch/papers/ifs/images/faroe1.PNG deleted file mode 100644 index b2aff49..0000000 Binary files a/buch/papers/ifs/images/faroe1.PNG and /dev/null differ diff --git a/buch/papers/ifs/images/faroe5.PNG b/buch/papers/ifs/images/faroe5.PNG deleted file mode 100644 index 50f9564..0000000 Binary files a/buch/papers/ifs/images/faroe5.PNG and /dev/null differ diff --git a/buch/papers/ifs/teil1.tex b/buch/papers/ifs/teil1.tex index 68e2e44..385abcf 100644 --- a/buch/papers/ifs/teil1.tex +++ b/buch/papers/ifs/teil1.tex @@ -17,7 +17,7 @@ Von einem Fraktal $F$ können wir folgende Eigenschaften erwarten: \item $F$ kann nicht mit der klassischen Geometrie beschrieben werden. \item Oftmals hat $F$ eine Form von Selbstähnlichkeit. \item Die 'fraktale Dimension' ist grösser als die topologische Dimension - \item Viele Fraktale lassen sich einfach beschrieben + \item Viele Fraktale lassen sich einfach beschrieben TODO \end{enumerate} \subsection{Koch Kurve \label{ifs:subsection:lilkoch}} @@ -29,6 +29,7 @@ Diese wird in ersten Schritt durch vier gleich langen Streckenabschnitte der Lä In \ref{ifs:kochconstb} ist die Anordnung dieser vier Streckenabschnitte ersichtlich. Dieser Schritt wird nun für jeden der resultierten Streckenabschnitten wiederholt. Die Kurve besteht also aus vier kleineren Kopien der ganzen Kurve, was auch unter Selbstähnlichkeit bekannt ist. +Man spricht von einer selbstähnlichen Menge, wenn sich diese Menge überdecken lässt mit echten Teilmengen, die zur ganzen Menge ähnlich sind. \begin{figure} @@ -61,16 +62,16 @@ Die Länge der Kurve der jeweiligen Iteration lässt sich mit \Rightarrow \quad \lim_{n\to\infty} a \left( \frac{4}{3}\right)^n = \infty \end{align*} -beschreiben. +berechnen. In jedem Schritt wird die Länge um den Faktor $\frac{4}{3}$ verlängert. Daraus resultiert, dass die Länge gegen $\infty$ divergiert. Die Fläche unter der Kurve lässt sich folgendermassen berechnen \begin{align*} - A_0 = 0 \\ - A_1 = \left( \frac{a}{3}\right)^2 \frac{\sqrt{3}}{4} = a^2 \frac{\sqrt{3}}{36}\\ - A_2 = A_1 + 4\left( \frac{a}{3^2}\right)^2 \frac{\sqrt{3}}{4} = A_1 + \frac{4}{9} A_1 \\ - A_3 = A_1 + A_2 + 4^2 \left( \frac{a}{3^2}\right)^2 \frac{\sqrt{3}}{4} = A_1 + \frac{4}{9} A_1 + \left( \frac{4}{9}\right)^2 A_1 + A_0 &= 0 \\ + A_1 &= \left( \frac{a}{3}\right)^2 \frac{\sqrt{3}}{4} = a^2 \frac{\sqrt{3}}{36}\\ + A_2 &= A_1 + 4\left( \frac{a}{3^2}\right)^2 \frac{\sqrt{3}}{4} = A_1 + \frac{4}{9} A_1 \\ + A_3 &= A_1 + A_2 + 4^2 \left( \frac{a}{3^2}\right)^2 \frac{\sqrt{3}}{4} = A_1 + \frac{4}{9} A_1 + \left( \frac{4}{9}\right)^2 A_1. \end{align*} Wir sehen, dass mit jedem Schritt die neu dazugekommene Fläche um $\frac{4}{9}$ kleiner ist. Die Gesamtfläche ist daher gegeben durch die geometrische Reihe, @@ -81,7 +82,7 @@ mit dem Grenzwert \begin{align*} \lim_{n\to\infty} a^2 \frac{\sqrt{3}}{36} \sum_{i = 0}^{n-1} \left( \frac{4}{9}\right)^n = \frac{\sqrt{3}}{20} a^2. \end{align*} -Wie wir sehen ist die Koch-Kurve eine Kurve mit endlicher Fläche, aber unendlicher Umfang. +Wie wir sehen ist die Koch-Kurve ein Objekt mit endlicher Fläche, aber unendlichem Umfang. Zu guter Letzt bestimmen wir die Dimension der Kurve. diff --git a/buch/papers/ifs/teil2.tex b/buch/papers/ifs/teil2.tex index 5de3d4b..be3d354 100644 --- a/buch/papers/ifs/teil2.tex +++ b/buch/papers/ifs/teil2.tex @@ -65,7 +65,7 @@ Ausserdem bestimmen wir drei Funktionen \frac{1}{2} \end{pmatrix}, \end{align*} -welche die gesamte Menge auf eine ihrer kleineren Kopien abbildet +welche die gesamte Menge auf eine ihrer kleineren Kopien abbildet. $f_1$ bildet das Dreieck auf das Teilstück unten links ab, $f_2$ auf das Teilstück unten rechts und $f_3$ auf das obere Teilstück. Wendet man alle drei Funktionen auf das Sierpinski-Dreieck an \begin{align*} @@ -99,31 +99,36 @@ Der Abstand zum Original wird immer kleiner, und konvergiert gegen null. In diesem Abschnitt wollen wir die Erkenntnis, wie wir aus einer beliebigen Menge ein Sierpinski-Dreieck generieren können, verallgemeinern. -$S_1,...,S_n$ sind Kontraktionen auf die Menge $D \subset \mathbb{R}^n$. Es gilt +$S_1,\dots,S_n$ sind Kontraktionen auf die Menge $D \subset \mathbb{R}^n$. Es gilt \begin{align} |S_i(x) - S_i(y)| \leq c_i|x - y| \end{align} -für jedes i mit einem $c_i < 1$. Dann existiert eine eindeutige kompakte Menge $F$ für die gilt +für jedes i mit einem $c_i < 1$. +Der Banachsche Fixpunktsatz besagt, dass für solche Kontraktionen ein Eindeutiges $A$ existiert, für das $S(A) = A$ gilt. +Den Beweis kann man in \cite{ifs:Rousseau2012} nachlesen. +Hat man nicht nur eine sondern mehrere Kontraktionen, dann existiert eine eindeutige kompakte Menge $F$ für die gilt \begin{equation} - F = \bigcup\limits_{i = 1}^{m} S_i(F) + F = \bigcup\limits_{i = 1}^{m} S_i(F). \end{equation} -Weiter definieren wir die Transformation S auf kompakte Mengen ohne die leere Menge. +Weiter definieren wir die Transformation S auf kompakte Mengen $E$ ohne die leere Menge. \begin{equation} S(E) = \bigcup\limits_{i = 1}^m S_i(E) \end{equation} Wird diese Transformation Iterativ ausgeführt, das heisst $S^0(E) = E, S^k(E) = S(S^{k-1}(E))$, und für jedes $i$ $S_i(E) \subset E$, gilt \begin{equation} F = \bigcap\limits_{k = 1}^{\infty} S^k(E). + \label{ifs:ifsForm} \end{equation} In Worte gefasst bedeutet das, dass jede Gruppe von Kontraktionen iterativ ausgeführt, gegen eine eindeutige Menge konvergiert. Diese Menge ist auch als Attraktor des IFS bekannt. -Dies für jede Startmenge, solange diese ihre Transformierten wieder beinhaltet. -Auf den Beweis wird verzichtet. +Der Beweis für die Existenz eines eindeutigen Attraktors ist in \cite{ifs:fractal-geometry} beschrieben. +Aus diesem Beweis folgt, dass die Startmenge $E$, anders als in \ref{ifs:ifsForm} beschrieben ist, beliebig sein kann, \subsection{Beispiel: Barnsley-Farn} Der Barnsley-Farn, Abbildung \ref{ifs:farn}, ist ein Beispiel eines Fraktal, welches mit einem IFS generiert werden kann. Wie man schnell erkennen kann, besteht der Farn aus Blättern, welche eine grosse Ähnlichkeit zum ganzen Farn haben. -\begin{align*} - {S_1(x,y)} +Die vier affinen Transformationen +\begin{align} + & {S_1(x,y)} = \begin{pmatrix} 0 & 0 \\ @@ -132,9 +137,9 @@ Wie man schnell erkennen kann, besteht der Farn aus Blättern, welche eine gross \begin{pmatrix} x\\ y\\ - \end{pmatrix}, \quad + \end{pmatrix}, \quad & {S_2(x,y)} - = + &= \begin{pmatrix} 0.85 & 0.04 \\ -0.04 & 0.85 \\ @@ -148,7 +153,7 @@ Wie man schnell erkennen kann, besteht der Farn aus Blättern, welche eine gross 0 \\ 1.6 \end{pmatrix}\\ - {S_3(x,y)} + & {S_3(x,y)} = \begin{pmatrix} 0.2 & -0.26 \\ @@ -162,9 +167,9 @@ Wie man schnell erkennen kann, besteht der Farn aus Blättern, welche eine gross \begin{pmatrix} 0 \\ 1.6 - \end{pmatrix}, \quad + \end{pmatrix}, \quad & {S_4(x,y)} - = + &= \begin{pmatrix} -0.15 & 0.28 \\ 0.26 & 0.24 \\ @@ -178,26 +183,44 @@ Wie man schnell erkennen kann, besteht der Farn aus Blättern, welche eine gross 0 \\ 0.44 \end{pmatrix}\\ -\end{align*} -In der Abbildung \ref{ifs:farncolor} sehen wir die vier Transformationen farblich dargestellt. - + \label{ifs:farnFormel} +\end{align} +, welche für die konstruktion des Farns benötigt werden sind in der Abbildung \ref{ifs:farncolor} farblich dargestellt. +Das gesamte Farnblatt ist in der schwarzen Box. +Auf diese werden die Transformationen angewendet $S_1$ erstellt den Stiel des Farnblattes (rot). Die Transformation bildet das Gesamte Blatt auf die Y-Achse ab. $S_2$ (grün) erstellt den Hauptteil des Farnes. Sie verkleinert und dreht das gesamte Bild und stellt es auf das Ende des Stiels aus $S_1$. $S_3$ bildet das gesamte Blatt auf das blaue Teilblatt unten Links ab. $S_4$ spiegelt das Blatt und bildet es auf das magentafarbene Teilblatt ab. -\subsection{Chaosspiel} -Wir führen im Zusammenhang mit dem Barnsley-Farn \cite{ifs:barnsleyfern} noch eine weitere Methode ein, um ein IFS zu zeichnen. +\subsection{Erzeugung eines Bildes mit einem IFS} +Es gibt zwei verschiedene Methoden um ein Bild mit einem IFS zu erzeugen. +Die erste Methode ist wahrscheinlich die intuitivste. +Wir beginnen mit einm Startbild, zum Beispiel ein Schwarzes Quadrat, und bilden dieses mit den affinen Transformationen des IFS ab. +Das neue Bild, dass entsteht, ist die nächste Iterierte. +Dieses wird wieder mit den Transformationen abgebildet. +Wir wiederholen den letzten schritt, bis wir zufrieden mit der neusten Iterierten sind. +Diesen Vorgang haben wir beim Sierpinski-Dreieck in Abbildung \ref{ifs:sierpconst} gebraucht. + + +Die zweite Methode ist das Chaosspiel \cite{ifs:chaos}. Bis jetzt wurde immer davon gesprochen, die Transformationen auf die gesamte Menge anzuwenden. -Bei komplizierteren IFS welche viele Iterationen brauchen, bis man den Attraktor erkennen kann, ist diese Methode ziemlich rechenintensiv. -Eine Alternative ist das Chaosspiel \cite{ifs:chaos}. -Bei dieser Methode werden die Transformationen nicht auf die Menge angewendet, sondern nur auf einen einzelnen Punkt. +Bei komplizierteren IFS welche viele Iterationen brauchen, bis man den Attraktor erkennen kann, ist die erste Methode ziemlich rechenintensiv. +Beim Chaosspiel werden die Transformationen nicht auf die Menge angewendet, sondern nur auf einen einzelnen Punkt. Der Startpunkt kann dabei ein beliebiger Punkt in $E$ sein. Es wird bei jedem Iterationsschritt nur eine Transformation, welche zufällig gewählt wurde, angewendet. -Da, wie wir beim Barnsley-Farn gut sehen, dass nicht jede Transformation gleich viel des Bildes ausmacht, werden diese beim Chaosspiel gewichtet. -Die Gewichtung erfolgt über den Anteil der Gesamtmasse. -Im Fall des Barnsley-Fern wird $S_1$ in $1\%$, $S_2$ in $85\%$ und $S_3 \& S_4$ in $7\%$ der Iterationen ausgeführt. +Da, wie wir beim Barnsley-Farn gut sehen, nicht jede Transformation gleich viel des Bildes ausmacht, werden diese beim Chaosspiel gewichtet. +Je mehr eine Transformation kontrahiert, desto weniger Punkte braucht es um die resultierende Teilabbildung darzustellen. +Im Fall des Barnsley-Fern wird $S_1$ in $1\%$, $S_2$ in $85\%$ und $S_3 \& S_4$ in $7\%$ der Iterationen ausgeführt. +Wir sehen auch in Abbildung \ref{ifs:farncolor} gut, dass der rote Stiel, $S_1$, einiges weniger Punkte braucht als der grüne Hauptteil des Blattes, $S_2$. + +In Abbildung \ref{ifs:farnNoWeight} wurden die vier gleich stark gewichtet. +Man sieht, dass trotzt gleich vieler Iterationen wie in Abbildung \ref{ifs:farn}, der Farn kaum nicht so gut abgebildet ist. + + + + \begin{figure} \centering \makebox[\textwidth][c]{ @@ -207,8 +230,8 @@ Im Fall des Barnsley-Fern wird $S_1$ in $1\%$, $S_2$ in $85\%$ und $S_3 \& S_4$ \end{figure} \begin{figure} \centering - \includegraphics[width=0.7\textwidth]{papers/ifs/images/farncolor} - \caption{Vier Transformationen des Barnsley-Farn} + \includegraphics[width=\textwidth]{papers/ifs/images/farncolor2} + \caption{Vier Transformationen des Barnsley-Farn in unterschiedlichen Farben} \label{ifs:farncolor} \end{figure} \begin{figure} diff --git a/buch/papers/ifs/teil3.tex b/buch/papers/ifs/teil3.tex index 39a808f..b3dff85 100644 --- a/buch/papers/ifs/teil3.tex +++ b/buch/papers/ifs/teil3.tex @@ -9,7 +9,7 @@ Mit dem Prinzip dieser IFS ist es auch möglich Bilder zu Komprimieren. Diese Idee hatte der Mathematiker Michael Barnsley, welcher mit seinem Buch Fractals Everywhere einen wichtigen Beitrag zum Verständnis von Fraktalen geliefert hat. Das Ziel ist es ein IFS zu finden, welches das Bild als Attraktor hat. -In diesem Unterkapitel wollen wir eine Methode dafür anschauen.\cite{ifs:Rousseau2012} +In diesem Unterkapitel wollen wir eine Methode dafür anschauen, wie sie in \cite{ifs:Rousseau2012} beschrieben ist. Bis jetzt wurde in Zusammenhang mit IFS immer erwähnt, dass die Transformationen, welche das IFS bilden, auf die gesamte Menge. @@ -132,7 +132,9 @@ Nun wendet man auf jeden dieser Farbkanalbilder den Algorithmus an, und fügt na \subsubsection{Performance des Verfahren} Dieser Grundalgorithmus der fraktalen Bildkompression ist recht langsam und skaliert auch schlecht für grössere Bilder. -Man kann die Laufzeit zwar verbessern indem man die Domain-Blöcke auch disjunkt macht, und für weniger detailreiche Bilder ein grösseres $b$ wählt, jedoch wird er auch so nie so schnell wie zum Beispiel das JPEG-Verfahren. +Dies resultiert aus eigenen Experimenten. +Man kann die Laufzeit zwar verbessern indem man die Domain-Blöcke auch disjunkt macht, und für weniger detailreiche Bilder ein grösseres $b$ wählt, jedoch wird er auch so nicht so schnell wie zum Beispiel das JPEG-Verfahren. +Es wurden bessere Algorithmen der fraktalen Bildkompression entwickelt, doch auch diese können, vor allem in der Laufzeit, noch nicht mit herkömmlichen Komprimierungsverfahren mithalten. \subsection{Beispiel} Wir Verwenden dafür den oben beschriebenen Algorithmus, welcher uns für jeden Range-Block die benötigten Parameter liefert. -- cgit v1.2.1 From 8cb994306345986d642fd46759c92e7adee4e4ef Mon Sep 17 00:00:00 2001 From: Alain Date: Sun, 20 Jun 2021 22:09:47 +0200 Subject: Changes --- buch/papers/ifs/images/FIC.pdf | 2003 +++++++++++++++++++++++++++++ buch/papers/ifs/images/farnrightwight.eps | 1027 +++++++++++++++ buch/papers/ifs/images/rapperswil0.PNG | Bin 66375 -> 0 bytes buch/papers/ifs/images/rapperswil1.PNG | Bin 82594 -> 0 bytes buch/papers/ifs/images/rapperswil4.PNG | Bin 60837 -> 0 bytes buch/papers/ifs/images/zurich.png | Bin 71780 -> 0 bytes buch/papers/ifs/references.bib | 33 +- buch/papers/ifs/teil0.tex | 2 +- buch/papers/ifs/teil1.tex | 10 +- buch/papers/ifs/teil2.tex | 36 +- buch/papers/ifs/teil3.tex | 25 +- 11 files changed, 3092 insertions(+), 44 deletions(-) create mode 100644 buch/papers/ifs/images/FIC.pdf create mode 100644 buch/papers/ifs/images/farnrightwight.eps delete mode 100644 buch/papers/ifs/images/rapperswil0.PNG delete mode 100644 buch/papers/ifs/images/rapperswil1.PNG delete mode 100644 buch/papers/ifs/images/rapperswil4.PNG delete mode 100644 buch/papers/ifs/images/zurich.png (limited to 'buch/papers') diff --git a/buch/papers/ifs/images/FIC.pdf b/buch/papers/ifs/images/FIC.pdf new file mode 100644 index 0000000..1c76dfe --- /dev/null +++ b/buch/papers/ifs/images/FIC.pdf @@ -0,0 +1,2003 @@ +%PDF-1.6 % +1 0 obj <>/OCGs[5 0 R 6 0 R 7 0 R 8 0 R 9 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + FIC + + + 2021-06-20T20:23:48+02:00 + 2021-06-20T20:23:48+02:00 + 2021-06-20T20:23:48+02:00 + Adobe Illustrator 25.2 (Windows) + + + + 256 + 128 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAgAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8Ah+jaNo8mj2MkljbvI9vE zu0SEklASSSMVRn6C0T/AKt9t/yJj/pil36C0T/q323/ACJj/pirv0Fon/Vvtv8AkTH/AExV36C0 T/q323/ImP8Apirv0Fon/Vvtv+RMf9MVd+gtE/6t9t/yJj/pirv0Fon/AFb7b/kTH/TFXDQ9EH/S vtv+RMf/ADTiqfaJqOkaa6Cfy3omo267GK5020LU70kWNXr8ycUPYvJdj+TfmmErb+U9Ht9QjXlP ZSWFoWA7sjen8a17/eBirKP+VY/lr/1Kejf9w+1/6p4q7/lWP5a/9Sno3/cPtf8Aqnirv+VY/lr/ ANSno3/cPtf+qeKu/wCVY/lr/wBSno3/AHD7X/qniqWWvljy1of5laP+hNJstL+saNq31j6lbxW/ qcLrTeHP0lXlx5GlelcVeV/n5Y2V1+ZSfWreKfho1nw9VFelbq9rTkDStMVeffoLRP8Aq323/ImP +mKVG80TRltJ2WwtgwjYgiGMEEKfbFDrPRNGa0gZrC2LGNSSYYySSo9sVVv0Fon/AFb7b/kTH/TF KEn0bRxqdqgsbcI0cxZfSShIKUqKdq4oRf6C0T/q323/ACJj/pil36C0T/q323/ImP8ApiqD0nRt Ie2dnsbdmFxcqC0SHZbiRVG47AUGKE70xNN09gY9I0yda1ZLmwtLgH2rJGzD6DirM7XWfy21OLTr G/8AKOjadfPqNgpuoLK2WGSM3SCVXqlUBStQSQR1xV7N/wAqx/LX/qU9G/7h9r/1TxV3/Ksfy1/6 lPRv+4fa/wDVPFUh0H8ufy9l8weZYpPLGkvFBd26wRtY2xVFaygchAUooLMTt3xVPv8AlWP5a/8A Up6N/wBw+1/6p4qx78xfy6/L60/L7zPdWvljSbe6t9JvpYJ4rG2SSORLZ2V0ZUBVlIqCMVfPGhf8 cTT/APmGh/5NjFKOxV2KuxV2KuxV2KuxV2KuxVFaVql7pWo2+oWUhiurZw8bjxHUHxBGxHcYq+pP Lmt2+uaHZ6rAKJdRhila8XHwulf8lgRihMcVdirsVY1qH/kytB/7Y2sf9RWl4q8f/PP/AMmUP+2N Zf8AUVe4qwXFKhe/7xXH/GN/+InFXWX+8Vv/AMY0/wCIjFVfFUFcf8daz/4xT/rjxVG4q7FUDo/+ 8kn/ADE3X/UTJiqOxVBar/cwf8xMH/J1cVfQ/wCTPm+XVtIk0m8k53umhfSdj8T252X58D8Pypih 6LirHfLv/KS+av8AmMtv+oCDFWRYqxr8zv8AyWvmz/tjah/1CyYq+V9C/wCOJp//ADDQ/wDJsYpR 2KuxV2KuxV2KuxV2KuxV2KuxV7x+RNzJJ5TuoXJKwXjiOvYNGjUH01P04oej4q7FXYqxrUP/ACZW g/8AbG1j/qK0vFXjH59zTxfmUnpW7T10azrxZFpS6vf5yvXFXn/12+/6t8v/AAcP/NeKVG8vL02k 4NhIAY2qecW3wn/LxQ6zvL0WkAFhIQI1oecW/wAI/wAvFVb67ff9W+X/AIOH/mvFKDnu7z9J2h+o yAiOai84qmpT/K7YoRn12+/6t8v/AAcP/NeKXfXb7/q3y/8ABw/814qg9Ku7xbVwtjIw+sXJqHiG 5uJCRu3bpihGfXb7/q3y/wDBw/8ANeKUHqd3eGKGtjItLiEgl4tyJBts3fFDPvyl17WLLzrbC20m e4a5imheFJbdWZRGZOryKuxjB64q94/xF5l/6lW8/wCkmw/6r4qkOg695hXzD5mZfLN27Pd25dBc WQKEWUAAJM4BqBXbFU+/xF5l/wCpVvP+kmw/6r4qx78xte8wS/l75njl8tXcET6TfLJO1xZMqKbZ wXISdmIUb7CuKvnXQv8Ajiaf/wAw0P8AybGKUdirsVdirsVdirsVdirsVdirsVe9/kZZvD5QmncU +s3cjx+6KiJX/glbFD0TFXYqp3MvpW8kg6opI+YG2KsMs7qSb8xNFSRi7JpGsHkdzRrrTP6Yq8x/ PP8A8mUP+2NZf9RV7irBcUqF7/vFcf8AGN/+InFXWX+8Vv8A8Y0/4iMVV8VQVx/x1rP/AIxT/rjx VG4q7FUDo/8AvJJ/zE3X/UTJiqOxVBar/cwf8xMH/J1cVej/AJLWTXHnmCYdLOCaZvky+j/zNxQ+ hcVY75d/5SXzV/zGW3/UBBirIsVYD+Y1458n+cFLfA+j6lGBXb4bWSn6sVfOGhf8cTT/APmGh/5N jFKOxV2KuxV2KuxV2KuxV2KuxVtEd3VEBZ2ICqNySegGKvqbyhon6E8s6dphFJLeEetQ1HquS8lD /rscUJxirsVQesNx0+TxbiB94xVhum/+TK0n/tjar/1Fabirzj88/wDyZQ/7Y1l/1FXuKsFxSoXv +8Vx/wAY3/4icVdZf7xW/wDxjT/iIxVXxVBXH/HWs/8AjFP+uPFUbirsVQOj/wC8kn/MTdf9RMmK o7FUFqv9zB/zEwf8nVxV7v8AkPoTQ6ff61KlDdMLe2JG/CPdyPZmIH+xxQ9VxVjvl3/lJfNX/MZb f9QEGKsiJAFT0GKvMPzDYnyH5mY9TpV9X6bZ8VeGWU8ps4CSCfTSpKqSfhHUkZi4sEDAEgcnc9pa vLHU5YxkQBkkAL/pFX9eT/J/4Ff6ZZ+Xx/zQ4P5/P/Pl83evJ/k/8Cv9Mfy+P+aF/P5/58vmzr8u vy5u/MxN9eubbR42481RRJMw6iMlSAB3b6PGj+Xx/wA0L+fz/wA+Xzeqj8qvIYiCfotSQKczJLyr 4/bx/L4/5oX8/n/ny+bAJ/yabUra5udHvRFJBdXVultcD4SsM7ov7xRUHiP5fuyOm+kj+kfvZ9oE mYJ5mED/ALEMA13yvr+gzelqtlJb1NElI5Rt3+GRaofvzIcFKsUuxV2KvTfyc8jSX9+nmG+jIsbN 62asP72df2h/kxn/AIb5HFD3LFXYq7FUt140s1HjIP1HFWJ6b/5MrSf+2Nqv/UVpuKvMfz7tvX/M pP3skXHRrP8Au241rdXvXFXn/wCjP+Xu5/5Gf2Yqo3mm0tJz9auDSNjQybfZPtiqZ+UfJmpeYbqz 07T57gzSorOxkokaADk7Gmyr/Z1xV7jpv/OP/lG2tkW6vL+7uKD1JmmCKT34oF2HzJ+eKpB5j/Ij y5J5l0qy0/UL6za6tb2QyNIJgGhaDj8JCmh9Q1+LFWIeZfyY82aGHmL3F9ZJubm1kL0G+7x05rt1 NKDxxVh/6M/5e7n/AJGf2Yqg9K0/laufrM6/6Rcigeg2uJBXp3xVGfoz/l7uf+Rn9mKq9h5SutZ1 Cxsobm5CS3lrHNMW5LEstwkfM7DoW298VfTun/l/aafZQ2Vpq+qRW0ChI41uQAAPknfqcVRH+D/+ 13q3/SV/zbiqQaD5U5+YfMyfpjU19O7txyW5oWrZQNVjx3O9PliqdXPlHhbSt+m9W+FGP+9XgP8A VxV53568t+j5I8wy/pTUJPT0y8f05J+SNxt3NGHHcHvirypLC9tLOy+tQPCJ7eKaEupAeN0DK6k9 QRlWH6I+4Ow7W/xvL/wyf+6LkALqD0JANMOWXDEnuDrMs+GBl3AllHk7yXL5ov8A6vZpNHbR73N4 9PTjHhUDdj2X+GCsnePl+1an3j8fF71p+ma7p9lBZWcthFbW6COKMQTbKo/4zbnxORrL3x+R/Wip 94+X7UR6Xmj/AJabH/kRN/1WxrL3x+R/WtT7x8v2pR5aj8wG1vPQntAv1+8584ZCef1h+ZFJR8PL plGnGSjvH6j0Pf73M1oycUbMfoh0P80eaY3en69eW72122nXFvIKPDLbSOjD3VpSMvrL3x+R/W4d T7x8v2vLNb/KCe90yPV/L/ESyBjNphJC1Vip9B3JPb7Ln6e2TwzMogllCViywB/K/mVLj6u+lXgn /wB9+hJyPyHHfLGbOPJX5Narfzx3fmBGsdPHxfVSaTy+xA/ux41+L274oe4Wttb2ttFbW0axW8Ki OKJRRVVRQAD2xVUxV2KuxVJNfnBkjhB+wCzfM9MVY5pv/kytJ/7Y2q/9RWm4qwD87NPvp/zAnu4I HltrXRtPFzKillj9S6v+PMjoDxO+KvPcUrJbee5glhgjaWZ43CxoCSaKT0GKvov8pfJlv5d8q2kr 0fUr+CKW6l/lBQFYl9lrv4n6MUM3xVjuqf8AKdaB/wAwepf8StcVZFirC/Of5WaD5hWS5gUafqp3 FzEvwOf+LUFAa/zDf59MVeBWnkrzPawTr+jp7iJL7UIRcW8byxs0F9NC9GUfzoetDiqfeXvyv836 zOq/Unsbao9S5u1MQA/yVYB3+gfTir1W58n6V5Y8vaZZ2K85X1fTGubpwPUlYXke5p0A/ZXt86nF WfYq7FWO+Xf+Ul81f8xlt/1AQYqmmsziKyZa/FKeI+XU4q88/ML/AJQHzL/2yr7/AKhnxVlPlHS9 N1L8vPLlvqFrFdw/ouyPpzIrgH6um4qNj75Xh+iPuDsO1v8AG8v/AAyf+6KU+Y/yx8jWmhapfW+m CO6t7WeaFxNPRXSJmU8TJx2I8MjqP7uX9U/c6jU/3Uv6p+5m9lY2VjbJbWUEdtbp9iGJQiiu52FM ub1fFXYqkvlP/eO+/wC2lf8A/US+Y+n5H+tL73O1/wBUf+Fw/wByE6zIcFK/LH/HDtv9n/ycbKNP 9Aa8X0ppl7Y7FXYq7FXYqpzzpBC0rn4VFfn7YqxWeZ5pnlf7TmpxVL9N/wDJlaT/ANsbVf8AqK03 FVW78w6fpH5k6wLyG8lFxo2k8BZ2N5fU4XWpV5/VIZ+H2tudK706HFUu1GL8qdQlMtz5e1MSHqYd D1yCvuRDbIMVbfVfIGj6FqUekaNqdrJLazIZToesciGjOzTSWtePzamKproPn/Qo9D06NrXWCyWs KkromrstRGBsy2hBHuDiqP8A+Vh6B/yy6z/3AtZ/7JMVSHUvPeiN5y0ScW2rcIrTUFYHRtWDku1t TihtebD4dyoNO/UYqn3/ACsPQP8All1n/uBaz/2SYq7/AJWHoH/LLrP/AHAtZ/7JMVY95F89aJb6 JcxyW2rMzatrMgMejatKvGXVrqRQWjtWAYBviXqpqrAMCMVZD/ysPQP+WXWf+4FrP/ZJiqQ+cPPe iT2WnqltqwKapp8h56Nq0Yol1GxAL2qgtQbKNz0G+Kp9/wArD0D/AJZdZ/7gWs/9kmKu/wCVh6B/ yy6z/wBwLWf+yTFUt8ueZdOOteYrv0b5Yrm6gkiDaffLIFWzijPONoRJH8SGgdRUbjYg5Uc0Qa3+ RP6GqWaINb/In7gu1PzTZXVxVY7v0k2j/wBDu/pP913wePH+l/pZfqY/mI90v9LL9TGvOuow3nk3 XrO3huWnudOu4YVa1uEUu8DqoLvGqqKnqxoMTqIgWb/0sv1KdTACzxf6WX6meeQP+UE8t/8AbLsv +odMlh+iPuDt+1v8by/8Mn/uiiPN3/KKa1/zAXP/ACZbI6j+7l/VP3Oo1P8AdS/qn7k2y5vdirsV SXyn/vHff9tK/wD+ol8x9PyP9aX3udr/AKo/8Lh/uQnWZDgpX5Y/44dt/s/+TjZRp/oDXi+lNMvb HYq7FXYqpzzxQRmSVuKj8T4DFWO6hqD3b/yxL9hP4n3xVCYqgtN/8mVpP/bG1X/qK03FU50//wAm Vr3/AGxtH/6itUxVkuKpf5i/5R/U/wDmEn/5NtirvLv/ACj+mf8AMJB/ybXFUwxVjuqf8p1oH/MH qX/ErXFWRYq7FWNfl5/xwLr/ALbOu/8AdZu8VZLirHfO/wDvBpv/AG19M/6jI8VZFirTOqKWYhVG 5J2AxVhMWoGTXdfWE0ilmtyT0JC2yD7sqx/VL3/oDXDmfx0VstbEv8w/8cDU/wDmEn/5NtlOo/u5 f1T9zRqf7qX9U/cyPyB/ygnlv/tl2X/UOmSw/RH3B2/a3+N5f+GT/wB0UR5u/wCUU1r/AJgLn/ky 2R1H93L+qfudRqf7qX9U/cm2XN7sVdiqS+U/9477/tpX/wD1EvmPp+R/rS+9ztf9Uf8AhcP9yE6z IcFK/LH/ABw7b/Z/8nGyjT/QGvF9KaZe2OxV2KuxVjGo3bXNyzV/dqSIx2p4/TiqFxV2KoLTf/Jl aT/2xtV/6itNxVOdP/8AJla9/wBsbR/+orVMVZLiqX+Yv+Uf1P8A5hJ/+TbYq7y7/wAo/pn/ADCQ f8m1xVMMVY7qn/KdaB/zB6l/xK1xVkWKuxVjX5ef8cC6/wC2zrv/AHWbvFWS4qx3zv8A7wab/wBt fTP+oyPFWRYqkmu3TGVbdT8CgM48SemKsV0z/jsax/xkh/5MLlWP6pe/9Aa4cz+OiaZa2Jf5h/44 Gp/8wk//ACbbKdR/dy/qn7mjU/3Uv6p+5Efl/oZvPIXlu7OpX0JuNKspTFFOVjTnbo3FAQSFFaDf IDTf0pfN2+TtGU5GUoQMibJ4eqM8z+XfS8tatL+k7+T07O4b03n5I3GJjRhx3B75XmwVCR4pcj1c TWay8MxwQ+k9PJM/8M/9rbUf+kj/AJtyz8v/AEpfNyfzv9DH/pXf4Z/7W2o/9JH/ADbj+X/pS+a/ nf6GP/Su/wAM/wDa21H/AKSP+bcfy/8ASl81/O/0Mf8ApUdpOlW+mWhtoHkkVpJJnkmbm7PK5dyW 92bLceMQFBx9RnOWXEa5AbeWyMyxpSvyx/xw7b/Z/wDJxso0/wBAa8X0ppl7Y7FXYq5q0NOvbFWH Yq7FXYqgtN/8mVpP/bG1X/qK03FURPa67P8AmVrH6K1CGx46NpPretbG551utS40pLDxpv41xVNP 0X56/wCr/Z/9w1v+yrFUDr2medxoWol9es2QWsxZRpzAkem1RX60aYq7QdM87nQtOKa9ZqhtYSqn TmJA9NaCv1oVxVHfovz1/wBX+z/7hrf9lWKpDqWm+cx5z0NW1y0MxtNQMcg09gFAa25Ar9Z3rt32 xVPv0X56/wCr/Z/9w1v+yrFXfovz1/1f7P8A7hrf9lWKse8iab5ybRLkwa3aRJ+ltZBVtPZyXGrX Qdq/WV2Z6sB2rTfrirIf0X56/wCr/Z/9w1v+yrFUh846b5zWy08y65aSA6ppwULp7LRzdxhW/wB6 WqAd6d8VT79F+ev+r/Z/9w1v+yrFWP6tpnnQX8nPXLQk8dxp7D9kf8vOKpLo0OvSaprMTajEJ7ee JJpVtvhkJt43UhDIeNA/HqfHKTjlZIPPyazE2SDzTf6j5g/6ukf/AEij/qph4Z94+X7VqXf9n7Uq 82DW7HytrN7LfxzxWtjczPAIAhdY4WYpz5tx5UpWhpkZ45yBBI38v2sZ45SiYk8/Jmv5Y/8AktfK f/bG0/8A6hY8vbk28w2k97oGpWduA09zazwxKSAC8kbKoqem5yvNEygQOZBas0TKEgOZBUv0rq3/ AFZZ/wDkbbf9VMh4k/5p+Y/Wnjl/NP2frd+ldW/6ss//ACNtv+qmPiT/AJp+Y/WvHL+afs/W79K6 t/1ZZ/8Akbbf9VMfEn/NPzH6145fzT9n63fpXVv+rLP/AMjbb/qpj4k/5p+Y/WvHL+afs/W79K6t /wBWWf8A5G23/VTHxJ/zT8x+teOX80/Z+tV0C2uLbSLeG4T05lDF0qGoWYtSoqO+SwRIgAeacYIj uj8tZuxV2KuxVi+o2xt7t1p8LHknyOKobFXYqgtN/wDJlaT/ANsbVf8AqK03FU50/wD8mVr3/bG0 f/qK1TFWS4ql/mL/AJR/U/8AmEn/AOTbYq7y7/yj+mf8wkH/ACbXFUwxVjuqf8p1oH/MHqX/ABK1 xVkWKuxVjX5ef8cC6/7bOu/91m7xVkuKsd87/wC8Gm/9tfTP+oyPFWRYqk+v2x+C5UbD4H/gcVYT oX/Hf8yf8xVv/wBQUOKp7iqQfmD/AMoD5l/7ZV9/1DPirK/yx/8AJa+U/wDtjaf/ANQseKslxV2K uxV2KuxV2KuxV2KuxV2KuxVL9atvVtfUA+OLf/Ynr/XFWPYq7FUFpv8A5MrSf+2Nqv8A1FabiqYR 6jp9n+ZWt/XLqK29TRtI4etIqcqXWp1pyIrSuKp9/iLy/wD9XO0/5Hx/81Yql/mDzBoLaDqSrqVq WNrOABPGSSY2/wArFXeX/MGgroOmq2pWoYWsAIM8YIIjX/KxVMP8ReX/APq52n/I+P8A5qxVj+p6 9oR876C41G1KLZ6iGYTR0BLWtKnl3pirIP8AEXl//q52n/I+P/mrFXf4i8v/APVztP8AkfH/AM1Y qxvyBr2hx6FdLJqNqjHWNbYBpoweLavdsp3PQggjFWSf4i8v/wDVztP+R8f/ADViqQec9c0SWx08 RahbOV1TTnYLNGaIl3GzMaHooFScBIHNMYkmgnv+JvLf/V2s/wDpIi/5qyPix7w2eBk/mn5LJ/MP liaF4m1Wz4uKH/SIv+asfFj3hfAyfzT8nnukappUOv8AmIyXtuqPdQmNzKnFwtpEpKmvxDkpG2SE geTCUDHYik4/Tuif9XC2/wCR0f8AXCxSLz7rOjyeRfMccd9bvI+l3qoiyoSSbdwAAD1xVm/5Y/8A ktfKf/bG0/8A6hY8VZLirsVdirsVdirsVdirsVdirsVdiqjeTRQ27tKfhIIp4kjpirFMVdiqC03/ AMmVpP8A2xtV/wCorTcVTCPTtPvPzK1v65axXPp6NpHD1o1fjW61OtOQNK0xVPv8O+X/APq2Wn/I iP8A5pxVL/MHl/QV0HUmXTbUMLWcgiCMEERt/k4q7y/5f0FtB01m021LG1gJJgjJJMa/5OKph/h3 y/8A9Wy0/wCREf8AzTirH9T0HQh530FBp1qEaz1EsohjoSGtaVHHtXFWQf4d8v8A/VstP+REf/NO Ku/w75f/AOrZaf8AIiP/AJpxVjfkDQdDk0K6aTTrV2Gsa2oLQxk8V1e7VRuOgAAGKsk/w75f/wCr Zaf8iI/+acVY/wCc9C0SO10v09Ptk56rYI/GGMVVrhQVNBuD3GUagbD+sPvc3QkiUiP5k/8AclPv 8M+W/wDq02f/AEjxf805Z4Ue4OP4+T+cfm0/lvyyilm0uyVRuSbeID/iOPhR7gvj5P5x+bArbTNE n8y+YOFhb+gk8AhT0U4qPq0deIptU75XiAEpAd4+4ORqpGWPGSb9J/3Ukx/QWif9W+2/5Ex/0y9w ki8+6No8fkXzHJHY26SJpd6yOsSAgi3cgggdcVZv+WP/AJLXyn/2xtP/AOoWPFWS4q7FXYq7FXYq 7FXYq7FXYq7FXE0BPhirFLq6luZTJIf9VewHgMVUcVdiqC03/wAmVpP/AGxtV/6itNxVOdP/APJl a9/2xtH/AOorVMVZLiqX+Yv+Uf1P/mEn/wCTbYq7y7/yj+mf8wkH/JtcVTDFWO6p/wAp1oH/ADB6 l/xK1xVkWKuxVjX5ef8AHAuv+2zrv/dZu8VZLirHfO/+8uk/9tfT/wDqIXKM/If1h97maL6pf1J/ 7ksiy9w0g1u5le6aCtI46UXxJFan78VYno//AB3tf/4zW/8A1DR5Tj+uXvH3By9R/d4/6p/3Uk6y 5xEg/MH/AJQHzL/2yr7/AKhnxVOvKsXnzQ/K+j6K+iWU76XY21k0y6iyhzbxLEWCm1NOXGtMVTT9 Keev+rBZ/wDcSb/slxV36U89f9WCz/7iTf8AZLirv0p56/6sFn/3Em/7JcVd+lPPX/Vgs/8AuJN/ 2S4q79Keev8AqwWf/cSb/slxV36U89f9WCz/AO4k3/ZLirv0p56/6sFn/wBxJv8AslxV36U89f8A Vgs/+4k3/ZLirv0p56/6sFn/ANxJv+yXFXfpTz1/1YLP/uJN/wBkuKu/Snnn/qX7P/uJN/2S4qkr 2nnzm3DRLPjX4R+kW6f9I2Krfqnn/wD6sll/3EW/7JsVd9U8/wD/AFZLL/uIt/2TYqr+X9D80nzh a6vqllbWdpaafeWgENybh3kup7SRdjFFQKtq3fviqOvbPzPZ+cL7WNMsLa+tb7T7G0IlumtnSS0n vJG2EMwYMt2tN+xxVX/Snnr/AKsFn/3Em/7JcVQ+pXPnu8066tBoVkhuYZIg51FjTmpWtPqvauKu 025892enWtodCsnNtDHEXGosK8FC1p9V70xVEfpTz1/1YLP/ALiTf9kuKpbdp58n1/TtUGiWSrYw 3UJi/SLEt9ZMRBr9V24+j+OKpl+lPPX/AFYLP/uJN/2S4q79Keev+rBZ/wDcSb/slxVK/LkXnzR9 PltG0WymMt7f3vMagy0F9ezXYSn1Y/YE/GvelcVTT9Keev8AqwWf/cSb/slxVLtcTzzqcNon6EtI vqt5bXm2oFi31eUPw3t0pyp1yrNEkbdCC5WkyRjI8WwMZDv5ikx/S/nf/qXbf/uIj/qhkePJ/NHz /Yy8LB/Pl/pP+PJdff41upvVGg28ZIAYfXwa07/3Ix48n80fP9i+Fg/ny/0n/Hkps9C8929/qF2N KtG+vSRv6bXxXj6cSx9RA9a8a4cUZWSdr/UjUzgRCMCTwjqK6k95Rv1Lz7/1ZrL/ALiDf9k2XOIl 3mPy75/1fy9qmkppVjC+oWk9qspv3YIZ4mjDEfVhWnKuKv8A/9k= + + + + uuid:e882c6a4-b7dc-4cb1-95f3-adfed3b77c13 + xmp.did:ffdebe24-c43c-ae47-828c-2b9d14439d09 + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + xmp.iid:095697b5-5812-4a49-9831-4dc7409c36dd + xmp.did:095697b5-5812-4a49-9831-4dc7409c36dd + uuid:5D20892493BFDB11914A8590D31508C8 + default + + + + + saved + xmp.iid:6193b524-77cd-a94b-902d-4efe2151d74d + 2021-06-20T19:47:14+02:00 + Adobe Illustrator 25.2 (Windows) + / + + + saved + xmp.iid:ffdebe24-c43c-ae47-828c-2b9d14439d09 + 2021-06-20T20:23:17+02:00 + Adobe Illustrator 25.2 (Windows) + / + + + + Print + Adobe Illustrator + False + False + 1 + + 105.000000 + 60.000000 + Millimeters + + + + Cyan + Magenta + Yellow + Black + + + + + + Standard-Farbfeldgruppe + 0 + + + + Weiß + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Schwarz + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + CMYK Rot + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + CMYK Gelb + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Grün + CMYK + PROCESS + 100.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Cyan + CMYK + PROCESS + 100.000000 + 0.000000 + 0.000000 + 0.000000 + + + CMYK Blau + CMYK + PROCESS + 100.000000 + 100.000000 + 0.000000 + 0.000000 + + + CMYK Magenta + CMYK + PROCESS + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=15 M=100 Y=90 K=10 + CMYK + PROCESS + 15.000000 + 100.000000 + 90.000000 + 10.000000 + + + C=0 M=90 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 90.000000 + 85.000000 + 0.000000 + + + C=0 M=80 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 80.000000 + 95.000000 + 0.000000 + + + C=0 M=50 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 50.000000 + 100.000000 + 0.000000 + + + C=0 M=35 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 35.000000 + 85.000000 + 0.000000 + + + C=5 M=0 Y=90 K=0 + CMYK + PROCESS + 5.000000 + 0.000000 + 90.000000 + 0.000000 + + + C=20 M=0 Y=100 K=0 + CMYK + PROCESS + 20.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=50 M=0 Y=100 K=0 + CMYK + PROCESS + 50.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=75 M=0 Y=100 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=85 M=10 Y=100 K=10 + CMYK + PROCESS + 85.000000 + 10.000000 + 100.000000 + 10.000000 + + + C=90 M=30 Y=95 K=30 + CMYK + PROCESS + 90.000000 + 30.000000 + 95.000000 + 30.000000 + + + C=75 M=0 Y=75 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 75.000000 + 0.000000 + + + C=80 M=10 Y=45 K=0 + CMYK + PROCESS + 80.000000 + 10.000000 + 45.000000 + 0.000000 + + + C=70 M=15 Y=0 K=0 + CMYK + PROCESS + 70.000000 + 15.000000 + 0.000000 + 0.000000 + + + C=85 M=50 Y=0 K=0 + CMYK + PROCESS + 85.000000 + 50.000000 + 0.000000 + 0.000000 + + + C=100 M=95 Y=5 K=0 + CMYK + PROCESS + 100.000000 + 95.000000 + 5.000000 + 0.000000 + + + C=100 M=100 Y=25 K=25 + CMYK + PROCESS + 100.000000 + 100.000000 + 25.000000 + 25.000000 + + + C=75 M=100 Y=0 K=0 + CMYK + PROCESS + 75.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=50 M=100 Y=0 K=0 + CMYK + PROCESS + 50.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=35 M=100 Y=35 K=10 + CMYK + PROCESS + 35.000000 + 100.000000 + 35.000000 + 10.000000 + + + C=10 M=100 Y=50 K=0 + CMYK + PROCESS + 10.000000 + 100.000000 + 50.000000 + 0.000000 + + + C=0 M=95 Y=20 K=0 + CMYK + PROCESS + 0.000000 + 95.000000 + 20.000000 + 0.000000 + + + C=25 M=25 Y=40 K=0 + CMYK + PROCESS + 25.000000 + 25.000000 + 40.000000 + 0.000000 + + + C=40 M=45 Y=50 K=5 + CMYK + PROCESS + 40.000000 + 45.000000 + 50.000000 + 5.000000 + + + C=50 M=50 Y=60 K=25 + CMYK + PROCESS + 50.000000 + 50.000000 + 60.000000 + 25.000000 + + + C=55 M=60 Y=65 K=40 + CMYK + PROCESS + 55.000000 + 60.000000 + 65.000000 + 40.000000 + + + C=25 M=40 Y=65 K=0 + CMYK + PROCESS + 25.000000 + 40.000000 + 65.000000 + 0.000000 + + + C=30 M=50 Y=75 K=10 + CMYK + PROCESS + 30.000000 + 50.000000 + 75.000000 + 10.000000 + + + C=35 M=60 Y=80 K=25 + CMYK + PROCESS + 35.000000 + 60.000000 + 80.000000 + 25.000000 + + + C=40 M=65 Y=90 K=35 + CMYK + PROCESS + 40.000000 + 65.000000 + 90.000000 + 35.000000 + + + C=40 M=70 Y=100 K=50 + CMYK + PROCESS + 40.000000 + 70.000000 + 100.000000 + 50.000000 + + + C=50 M=70 Y=80 K=70 + CMYK + PROCESS + 50.000000 + 70.000000 + 80.000000 + 70.000000 + + + + + + Graustufen + 1 + + + + C=0 M=0 Y=0 K=100 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + C=0 M=0 Y=0 K=90 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 89.999400 + + + C=0 M=0 Y=0 K=80 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 79.998800 + + + C=0 M=0 Y=0 K=70 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 69.999700 + + + C=0 M=0 Y=0 K=60 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 59.999100 + + + C=0 M=0 Y=0 K=50 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 50.000000 + + + C=0 M=0 Y=0 K=40 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 39.999400 + + + C=0 M=0 Y=0 K=30 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 29.998800 + + + C=0 M=0 Y=0 K=20 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 19.999700 + + + C=0 M=0 Y=0 K=10 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 9.999100 + + + C=0 M=0 Y=0 K=5 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 4.998800 + + + + + + Strahlende Farben + 1 + + + + C=0 M=100 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + C=0 M=75 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 75.000000 + 100.000000 + 0.000000 + + + C=0 M=10 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 10.000000 + 95.000000 + 0.000000 + + + C=85 M=10 Y=100 K=0 + CMYK + PROCESS + 85.000000 + 10.000000 + 100.000000 + 0.000000 + + + C=100 M=90 Y=0 K=0 + CMYK + PROCESS + 100.000000 + 90.000000 + 0.000000 + 0.000000 + + + C=60 M=90 Y=0 K=0 + CMYK + PROCESS + 60.000000 + 90.000000 + 0.003100 + 0.003100 + + + + + + + Adobe PDF library 15.00 + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 11 0 obj <>/Resources<>/Properties<>>>/Thumb 15 0 R/TrimBox[0.0 0.0 297.638 170.079]/Type/Page>> endobj 12 0 obj <>stream +HWˎT9 ߯T*<j!ԋ00Ҝܢb9]ŭڎslߞTҋ}J^r3HƷoH/i;/kؕ7j/Y[P jꜞM jdw=3vjB)HWÛM֚gMfFU(S uXזt0k%4ûxeo\x8$ia5$wd+03WlYGUQVRHehUm'd!h(!&Y^ڃNh('"8&Y /a*"dVF%B `Xn.Ƅg˄{pa.M{ 02:- ~ ;v?7:~D]FznEe$''`EmGT @yd@2_1Ӛv`/d-Q}\$3 ۡ}V iȩ  zl z:p\<'q= + {s_*L 6pYB<"-l}5kWB3IG}X>Aҍ㢯ega+=oBڲ#jB3`z`tnf&B/"L&_$Ž s4F̗yC +`F]Gy8_Acd\#q}I2ϘPc G%B q 0C"p>p rKxtyOwdB7(4@F~@;w'I/^buqw|}_2ܑo|w?}qr.ȸq s1q*)N딀Oi):ڜx?LC~'yyhW +:fNY- ۊT}(΁7[ +Lg#d,0Ȃ#e0;-} +%*J<ŞG\f+˭zJ +endstream endobj 15 0 obj <>stream +8;XF2_%FR-$j6r9!TZZWr$[(j>QmjWcVM*4CF>9rfZ'><*tdEK_f@d@jPN9F"=9\7 +mE.?=]D[&B,p1C*,`Bo=p2A(oZF)fL1&.2T;DRH4&m'Z]X1,t[/tN:.$JL`sTHr!Z +jqp^HTfFf'!cI8XZ17^;kn'b7c+#G3D^VB>V[f8,`O/I@RsLVXd&^1Q]d_2P:nmfor-W@1 +YPnm#`-VJX.%=9~> +endstream endobj 16 0 obj [/Indexed/DeviceRGB 255 17 0 R] endobj 17 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> +endstream endobj 5 0 obj <> endobj 6 0 obj <> endobj 7 0 obj <> endobj 8 0 obj <> endobj 9 0 obj <> endobj 26 0 obj [/View/Design] endobj 27 0 obj <>>> endobj 24 0 obj [/View/Design] endobj 25 0 obj <>>> endobj 22 0 obj [/View/Design] endobj 23 0 obj <>>> endobj 20 0 obj [/View/Design] endobj 21 0 obj <>>> endobj 18 0 obj [/View/Design] endobj 19 0 obj <>>> endobj 14 0 obj <> endobj 13 0 obj <> endobj 28 0 obj <> endobj 29 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 24.0 +%%AI8_CreatorVersion: 25.2.3 +%%For: (Alain) () +%%Title: (FIC.ai) +%%CreationDate: 6/20/2021 8:23 PM +%%Canvassize: 16383 +%%BoundingBox: 8 -156 289 -18 +%%HiResBoundingBox: 8.16666698455811 -155.896331787109 288.781496063013 -18.722782152231 +%%DocumentProcessColors: Cyan Magenta Yellow Black +%AI5_FileFormat 14.0 +%AI12_BuildNumber: 259 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%CMYKProcessColor: 1 1 1 1 ([Passermarken]) +%AI3_Cropmarks: 0 -170.07874015748 297.63779527559 0 +%AI3_TemplateBox: 149.5 -85.5 149.5 -85.5 +%AI3_TileBox: -260.125987616111 -370.677156943973 557.793995294045 200.522855263057 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 1 +%AI24_LargeCanvasScale: 1 +%AI9_ColorModel: 2 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 5 +%AI9_OpenToView: -66.666666666667 34.666666666667 6 2256 1308 18 0 0 46 87 0 0 0 1 1 0 1 1 0 0 +%AI5_OpenViewLayers: 77777 +%%PageOrigin:-157 -481 +%AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 30 0 obj <>stream +%AI24_ZStandard_Data(/XF6 70OC?g ط Mk` $܍zJ)vD~nyCR +# +DKt8Dν%θ!CLta#دX^By<#Wu:bCgi2;#[}ޖ*"r7D$Ƚ,#yvF3}8Vn;wQ62EăGv7b&.L$tR݆Tܷ_.zA2bHES,+GI=bIJ.UD|4<^!Z7ҟ+v\""xIC.EF +GD`)n}0hl0kB644[K XlM^,ɓ.'@U%eeتYŲp˫Yr1]+#ڬAO2be)D3J]%|i&.-mf)mO;ʒ]0K򌄗uw1!,  AC h@ $@APb <0Pp!Cƒb "1@  `4LHd,(HApHlРAWͫ7%ЪcIblInhVJ +6( t DHT N@LA$ "Q ` <4Lz,2teٔJm#v%?f-椭 y D`,jU, PY +zac!C$" d(Q"ETͬzVX`,`( ˍ"q x, 5xp4DxqlWTNYfˮ GP$^!H, GcH$"AFc@$8C$≈# @$~8xV>Taxl3,ġ:UjeR-|!0!Vl:em ZDMrRk  @:t)FeHf2XudSnq   x781G5,,rŹԠQѐ*VS0F197543!v2JXPJ饮2N7ʉ)Cem̶M@$p0XԢ>b)v4 p  ñ@$"HG$TDV."8"qccV:CK49P\@FHУQRAUh&{/CEfe: zD}&"*CJs3eHe/C?s  ŏ@$kU]hScV +S`0 `<h8CX0<p4BD$L bØ81ӖVWlUtQFuѡ) DbA j4v|FofajQ^ZG [ZMa cX/笠1q{`XhxxT "@6ЁlR:+-/13\$#GtnqE~#yłJ +DeyłP<CPLeybX,cD A$*(рd0 ؋XsYjrĊjW\Up*1)A$*hp %x`A"X  Ё 2h, t)ID7e!:,ve,C*ka"2S2FYe "H0';Db GcX(̎q<geF$lS jPĠ-HA +:L&""146(*YjTj;}cØ,F1Mg@$ld7Ec`4Fp4G8ꨃ䰣09qt#P8`8x8ỵ>A?G=a{(x0Gx8QlN>Ё dxLD<4,41nqz0-La432أ(F-JQ,+*Ukafxa4!B"-j-CP4CP(W0E) Ex_\?~HG6T3Ҳ(RDbF:qsup4 FcP46ajA6`8 ` d0e p, b0"H "QDD bd"Q$4A + XpBC  Cd@&4\@ $Dpp *l` 0h4A"84HЀB$,H0 Lx JpB&L`.8lyhȀ:p +\h  +H$0L !p @(0HR (t CC 4@P@*xɠ.Dh@C.Dh $08D 0 O"g}@X0 + (8d@a +XP B@IJC .04(Tp0X C8@$*T@AbC #b +&!pRD*.0<\ Ă + d4lB\6,hnDW*ԞY7<*4dIs]3Ė]%TzYB%ZPk񋃅Dx"Jw٥^bM]*bk ֨u2*OTӕU2딮͗1 ˌO7Lt*}.KKUL3ٔ?toI:f DIk`V!4.cqfjn*S,6f3+8fETͱ,*W]֞26*%>XeWôqy,Y54onIBeI9sI,f-uWKs` ,-f>$DZ͑,+ e1m}U!~,+_tĖ yVedI7/vhc+nYVʲx +)^H_٣,9;[e$;,CİR*HYA#' ^&K9s..+sJ7"DwYج4M*r綐QI2ENjIZHWȤCSyeV'Rm:&TReI"y-'8eHZqeVA*-+f39^NRNbIbxx%MH9μ#gGN&d#,g')TOInb"Y,wy"DsKX'KܕIn]V]%EuFFG' Zi4Ҳ*BG\ k2;^:JW}.*H5U9IK9VfՔ#r씟4Ns^ ZX ^89Be ;;̖z@xzP,ʔ et;)-*@l,-HjlMQ]5\ڕ^_9{ +TL 8@$4X[U24+7uݎ-!4ٚ2H ,x6mlLZaUq bt]r ia݉]R93Ǵ—"|U%h'XjHxf|,3wJVI~StUD,j)+!gV3E{!Qr,Xg +ZItZzͽ\& 6C̤R,RxY]I,10m;1ѥYEeOZaJ'n3;3L*ZW2WrLߘG/WEiU+Kw,43L9DâՍI/"y*{֩L^<cH3wTJ|"4Rc$Օ_nʦ +Ϯ߱[!{!JeZM+(YxmFj߂MɥSS}9cs.ddل(Tpp&l!bh@ ("bN)_.,CR*imS*H}-=]ΗAs}i:gOm͕!vZ͖ fX̰N `U)\[8@ߔ/WtEL\T*c]/"CFd(#bLQ eүS4xtu+B0>i`SYZ!hKY1\s5G+8G.+6iEY*U,Ǭ^ ┺lB:*EY/.cU4rf$zyZմio=7JeYW).J^^QXb3tל }d/DUvg7T~߉jSZ:xΖ|RӶAlKuŮGUg4yJBW8W~GԖw,[/֏ˇl]T%t&,69oND.'I;MGs;ɢ1d*HֹC)ևάSh;eɰƩd ML{\6=2d0 jT0?hfNY*{;hǼ_oJe6*c^s̎,lkׇeOY7ʊY͔]}JWZ>JՎPwt)>oZ +Kv4DYYi +8uU/:+YB"X5Q=2NDY;Mt? 6E9~o%PR=+S=!|FؾftQE[–[{|5o**vM2T/W:<{钙yScwBd9Q U}lU)=;{mb/K,֎ Z冎~ބiXǡw~Z7szU_ =^ETfu+u"zȔDW&Ÿ/"X',{Oա[u_P"bVZBt[\,$zC7K5:XoDzt-):I4::g6IX{@.B{fOĨks6j>jϑ<%~uoDTkCwe\FI#+䳷|2G/F5̨/gEidE[ZRTTS7aϢ5o&BMLf-zbNI A4@0 +S:v—o +Y>7WS}ӊϹ*TVKʈ4X[;,-CUZ%e> 瑽-l< Qsf9sΫfr/oGDMKBS8gb-1C;gu3/~"Mb42xU6)2Zu6ħ!!NwT[3BIw9 ,}:SqyFs-TD|3[ОIΊbhSU>*6rrlWYuwZo=ď= хz\,&"8C˲3r=ys/S,s.iHmL-G|d*|`tubgJKJ{c͌ ;ɬ/GSh]7MţJk?՗Lx|Y]ljŵqe!QeF +~ly4[&Z9f[7s28Uww"B~83*+_:6dBNxLB -ٜ;sU8VV8Gƺ+DvΛ+'.z-M[ξ2_>;{19>#fm(MSټv6[ՈԼNVt]=T3;]0BjU{S{hXʎm +by>͝9&M䱥<4ki>KU/5";ȫuҋHSi,6gp-cDBeO^nJ'CjЦ9Aw6יܣOoy+d2X+,T.+#N!Vmv9Y6t_!,C;ƥg\gjܚ_nSvspjݜˆXhj1yTzns<%S~WVm޴DkhiN1">fŦIS3~[L|ܗJߣQXsL4JWJQ8/k;:!"11 '1cM^#T:VT|Ekck~eM53j +z愆"qtUXu.bӥ~d\WeV̳"/,vZ%fa4L–B +- Yg]DDϣl/e5dVVTr.e֔2љ|u8vYW4W~a3>%S~5ƚfb"n2UfZUf\ +fUj._Uu6U>]"γ2YYX*"LcI*JU 3f>E̜VL̾ IS4c,THL՚b}4+55{NkNfO% )HBS<[y̞V-t*lƯl>'=SĨ/CL4L[U2uU*sR뎞g)ʺk9T솙U'<\[,5*7EihC_VeR]y +Sy_]fG<˦LsN&*Qg]mg47;s?Ci-d4ِnj9ʠcF%ϧ:ܮS|-*e.yFotJ2+u֌.z6'ˍD8&g'ϹJdVHj7ұej].+%8tמ7xl90Ѫ%6ˉ8wsZƄ}W\v;,}=Lq]b7G}^Vkhf3*X&y3W%[j&*oBew)YUlXx%LZThE?WS4OԸeELefJnd=W.".=[Zww5휾yY|U^n"벝Y˶r6o>XƧ>᙮:enGt~~Aryn3Ws3=эBWCŰ,O.vu/KWʷ]!˻z%llqڐ\RtǃzAA$H hZ~|X4T6"Eq#Y AP<gLjqந k_pO%=8([X]R]mkbOq/Fs5? ݸ .䫔r ÿK,nߗ#Hl ?(k ~"& +Z! + 2=Dͺ1$Y1K>PP@:Ɨ;M~ m.@}BH-?DѲWH^įAWoou@' +6:)yAAW88}Ӿw$-w;QDq^ m(/(I`;nVɟ0W\Bߩ{Zs.e:=(fG_%Zx)m|?{c_R?oҦ:l;Z +@DߧOybيj< p@&Y)$O*CrwHuz}Krn!r%E7b"8$ÖI[ 5VC!\1XV߇'A^Eă,4U;яkgڎmV(G& E} v )RlCBuH5} +6QN/;}=Ycp4ȩ~}*F+ Ex9W͵֘#*j}\t着oцqy8 zCtBʉOoM{"4ZZz:M>Gg..)=׶hͶ$DXgFEdm#yD(qԋiM$~ +&˴|w,5AY ݶG'Y/F@Wq}ZV" +:h^Gstu_ 9.ǷfI r  P7\ % ]sЦ`{ V%*nA*?Y1ep̩\cD)[dkcxRs)VP˒I+ ֯{G5jzk}Ɲ6oN]l܇{6c-Yuh ͽkc:<Zj$*AUP&WaK1.xwZQ  iKwΙ-@A-Ŵ-M+xWW٪-ή$}|cU(|Uk~Mv*^.!Kߒja&\=3׻ou r$)Ed~ /ٲcD4` rL q؃sbkO;p@Z\%5+.3.x%TW< ʉDb}t=m_ǂWU֛ 78qgɎFlIp:q5 ︍~3n֮ + s%' [ungl˨c*NzU{QQ>;V7$CX݁8ᑮbg+mY]۹-mQN+ɼYUKŪ1^NJQTVlt:HİeY|͊~HB262hm8ZJK$b`/UdgD3S: iwIzfsxޡKjXBjރ;\(bFDi-SF,Dڢo 3v^gSnqyI@ Xł\HpKa/lX2@fu^5Dшm۩}eJr%wݺOS孴'J?>8:*S 6-V`#\vJjY't]p^5Hw}>:%U焈I_~B?+ ^kOB'Dw~ +M?Tz&XZV>`i +,`e\2సAХk!:hm^"q(:'7N7Ā@!*(;t٩+5(ں|ƅY@q>X}b +!| !A@[r9jvm*}[:ydP3VO5D'hhv. Eua2`TsȫRX{-6=ڦGUA[6o|*C-zשB/bI`X +>5IKn=PIucL4ҍKVD;/64@}39mX4 %OdC +DŽd&<#D8cpaF<]m:X: 8<] E..铲`fa0q] _#F锉_Ӣ!x=S_*\ʝ˯:/{bk)m,5y`ŲZ;=ges憎\^ +rh&< (< E 偅x*̂\2vOB<1Op^NJ ťV? +34av%>iAٮXJxyT.v,Q2j[< o%X)0؋Okc$Ah۹ >ƃi +ux3=o"IT-SfU[mTlJ)S q@+Y na + 5j(wI$;kΐ$Rzd!WU4:[bIJLⓘQb?vv ؆EbA>2| }`K sV +ǁ,tNipE pjP'yۓsaM '9 )c'I.CD!fܰLVrr.xcU!yAh07}MgRd6hGs7k1x45jH;]L( <#bs ]v5@nH=ZSBj EDs0H=bAB,$.E xlUDg;_V8Q:[p&T1D(DFd))_H%J +"'1*t}0UDb͂"%>k"N hH 'EJj +qt~Ua O1J@]Aׁ +=ɾcHAl boC<>i2 aO(G]P&kUz`QeT<\XxVG;+:e|:6DT$%\g\V6F0[÷HҨx38mkܑ$I+z%sBLqz{;VIx4|%Daf$6q~yKi  KӾvNz7bw4"<1y"tҒ oBiگZSى9v;›vd3!~mM=s\ng'nҺ",Ϗ Qi#RQ +yx)3uN!lB+{9"EiٷXJi{o> :@Bd!45]A M e!eDJ4j4>rjO=#  DZdK9g8,)ԉ)э@5'^"l)V!!1 =hzV}=OCwpR̼d%h +adP L"KO.@]ݱDڅ<*(]џTxakHBt  *fx;~vQL ә W^xqOi[:$NoI\HC!TmI#K[]l p"A1j`rCjwͳcO<|<`ޮVܲJ҇ ΔVYJ3c&nPhNxV܄Y%r<37B9.RB\Ʉ0:$sF!KI4fE a" u r +Ob|= yv R-W"Ѣ7k2 C9est 3dSάV=|WxS> *Jv +XudmǭAK2٠ +QOs>{3]is2Fp! 榹./0* Siw4H}+n_%+)7ӣ +`yg%(ȏם,?HqkiχHAڋ)x +v $P; h%MI}@6PI-TŤKKd@h[C30 5#$6?@UP[#eZ^s HaHC?BT\ıbS +(s&Vz9_k +7-f20u%Ԯ4vc&QP7$I~qt5._ u5鰝7\u(d3l",B~= )#,Id0?&lbg.M LԍP,^:*N$tAm0/ਢ}!~v TB +Mq,U8j +1À:|Cd/xv7)5J}nUQ4=e{Ioj P髭[Uو>X@|[uF#Z`+lAO +_ +t+k̘ +|JQu|r>6|j͆/q&8-\ЍJ=ǾIe0&GjT:]  e|=%_dK^C^v?1?ADhJRlAwT?]c'1 +9(N9ιzQq,ى2JEsDea'vSfۉ^!aDۅkM'!uO=4Jz7͐W̨zP,Nj,@9(Ta'9Ē,rb1g_'^=sO\xu9{dS(ٵ4iX?d=,pM7M}3=iӘ83Xo/Gk@$/5q- +<5!i\)M7.j"+~E;DaT}>O0 +]fMԥ֡gJɆ*kVE=y`A U4ԧa +'j\CQP׿/dòUPEePCh"]gP)~ct~B0qձӔ7YT,K% /~abހ41Oҭqtkt*[N5`zA;a+уWj[V>'8F$7ITNxٌ=B-ғU{¦iLDSLeSԻFdiΓ3φyrwa'OgGBorbEq+mjv59~=I(wMNbxr/SNP#%0k {icd$;嶬v5ݍ|Xcc<e +Iрg_d>#F`SqFp LW%H,S834X0tf?fdLSe( GDf6ډ-imKa˜"t-Ek],/+Wy<tHyTIJlE7X$ܿJa$sx)R/d,T?~OՂlx|_%TZ⸥q^+n&/ +pY`%yK,DCvh=2E>L>d]ïnC;\{BQ}!"?.1|"7qw@Ë>pa o4pB;I,y  ++N < +e?W?ɇ݂W0uHf|/Cʞi9U lwIY y} &.\3IkzO˓[$U3VVmDVkZ+JfK-F~ˎurb5x>xD/ʈP;0`%M@3yFhCA`m7o-c[iܲa { MH~0ۂ, + 'ih56c׏S3C!p%EX<7{:GT<Ă^+;,v nE4t!TA- +^'# 1/[1YצP  k'A݈Q;&ciέЎ4jb3٠K;jE{T]tw7AO g^ҲB*hp&`7t|;{5΅-<5k!q[,,(5:'!e}2s38?Yuމb's#d 'x9(M/C d<[|S)x)Aq1X/aQbXOC푢"]Ѡ^ꧼ +2QʬJLL,{\#H2uI~/ޗՂƃA5$QEVñǀ Db|Ѳӽ#D d/L'ejL&üi'o{Lze'%zes q563JMxK+5n&lMI8Ʒ aʉg;tقdoUԲnXJtrF>GstsCxdsvTT:*s&59U{8Dt"9#v+5NYϦpgP_r9V9Ր1&6&[Yv4FɂFZ! ~B/KTZd+e/SdlZEu(oر7VK )[[>Ug$!+{\~ >vsw'eB>  t/k_Z Sࠒg|")y caq̠N'O= R/ԍ̦#HEq`K.H JJy0*~3"/ݴϐ' Zxvfi5$!@f()d(@YO=#QH;t +?G`oOA5w CY_-.PS[cw=# ga?7$dWm`iUCIU(=yWM~^ 8@M<7e9F"hv\nup"Y~TnuF̽Or~s-bP.& + ! @L n a7&q0KjjU}1,|!IA'5@TƜ~YaXs5]{qTƌ!? L^u7)bT@uU=1) Ur!b#^t݃cIη4ō> 5Q< ?S(~:$Cϫi5?88f~R '\1ly ?:?m83*`.T[3++av65>z,_o3".z2tv-\5)z~(Zt8 =bsOJ9wx^$~Vi% qgA:T:dTU\,56, +qlLkbZn=WȚjR$z(@vRM5{'>с؋ +5BÖ́ANqc9‚Tje@Z4K쏛 '8+Fr01w5vRwUjd;.F#f޸Nqq 7cVY#vįwp\^uarЉy%E41lZUDފN_굦dN#ˤ*u2  Ptu-:1A;MT\p$epv.OT:MJ>P-׮|_qW;(6$Q1q\(k +Ds"PZĐK %;;(#5˲@*e8ݲuP5vką ! DF*FH ɊjSTƨ"J/%Lv&BߢH-ю9#+C AYro& hC&)8[bK1HXyh򗬗HF?XHƃ eHΉr9=Z/Eul)~W*FElߺm]dNt^Qxp +;/LOn5~C* +Ƴ8T#hl~WuH&>yʖP널3[PH?E"JQR;n:/_ATS7ChSꀫ0n +2wiw^F$mFI1 "6vZZꘃ`֭NjmPpݰ(s%h/͑Uͪ ۷r\=*q( +*zpָ*1d}nomfɃf`V[eENʛǏW1 _n늟6Kɷ AAM\UQt@T׉sY(`ߢ8Vf<dt!Hh9m,D(_r.+ Xt5fx +.L|rZld AXj$aވ$mDU6"3EQ$f;|);DoF[ ˦!̤+C舐ioCgDtKd%M +6UXx}}Y an:/ƇC:A0sZ +mVh*i", +>pƌC* ";Nk!A{88)~(1 1F*TV  FDς3?_T:}~G3NƗO|VVmv)*t>od'#ScqGv_<'&y ^vJvqv(OF@[-ؓF nSQ9)<4oYfIccnAP +3~`3 >yЙ> \ 3'Zɺd6=`iN\pepJ[nl#V%Rbc:s5U*1pb'Lŝ9_}<]J\1`[.$GzXiH&ʽ! [}S+$Ǔ $9 )uBm9JX**|D܊ +_^`p|h@eW`Tسy˩)XB( `*Ɩp}/Q8[?3Ͽ *M2((\"<lZ ) q9VX$}hC7`#ޫ ݼ;zu׃b/M,8ꦾ'Sm=·#5Pr=/$PQqtUvUjcJ[wJ؟ͽ:vf381QsA&D}cULѓ*|߄_ au2 &Nt."~OXQ g_AZԐMl'k}Tqw')o16Q>/5InP,wV:[-S+bxBO߂CD>Bܶ@AD䇙͉҂^U3)s"ET#i#I Τ#s Ly2EZRGĨqG2HMÂ3W -x['88rԙ^(Z40ZęUB!YngVCX*'WC@.\XF9AGI0hߪٽ4q.JG jp(CMPtk5v5v#v0nf9C4s2;Kof$_HE{J:_*|!@"Ek +rʑFh2-LJvfZTy`[yx/wpA NfY߬<$h -5b J9Wک_,φxbX[/}ԫֹFZ&(Oh:1n,J]ae,YyK0գc[%JwG7ڿX۩MdS𨖵ɏԌ3h!3\O,xB~ +$b{.ң?t<a[1O'# d Do\$Лعzi ׌IςaK4㖊6ow5Co [:¾o! Y/?ļ +LU[72d+`\> "Ϊ.T㦇D\_/y` +q2H%ieWjVhw!+z}lUG:Y!0&(T$iIf4G6ly8O^éXҡ7xE{t"T>8c#:W`6T\j=enJ -"LjLF[=&iitlVWȋLB<̭sN@0g",$Ge4M_F %=я:a _ʠɔ/f1\> +x8B!-71~2^4 %3 +%C^@߄cr(T:dsU+{ +ȨԡTb25!_^dFmͤmdP")IźGDRXsa!F`!uM9m{ x0հ'\GI|(%)@|)%/BҎ\(i&앢d)[Ed=}}_Myʤ%.q>!,]\Z#U +ѥ pdzü'.-=krp5>{ݕ~g ,Bue 8fC\wM5?Em`5|j,'<:;6ٳ>+m1 5{"/pҬrO %lwCXI,?Q `l&X8aXڐ䗵"*,nLj\.>Ϳi5F r >m9y..3F 6jBI\FԾ$,Fj!x[ >Mu eYxUI҂,d_p ~Q&Fً\5p*Vm ^ؾg8Q7yeM"`Â*!v,уM8yjߔIex0D@X'Yn{dO'iHeId$bDhK2E B`ҝAj)UJ|pGaϠI,Ine]X9"f1ਈonp0V"Pa͖If8-_M PFKejgoYeՂkU6ȯZcJ{ ؋kSʆ= /wGP^Q4u2,nϬ1ev,@B/븶Z*(pN+Uҝr,#`BR196mX=U|6Mq٥]O>?) 2/(&c8=BP@Og͐]f(dAMM<6b E=O$9p{)7 D7uI GҰ ‫P0R9f3 a^ά@i(:v_:H~:Ta7^@+ S:B OZ`ƿ"[<"*}7tR|в,(&.l3ND]i,76Y^8mX<ÇI+[(}h΀2H71UU^ud!}ѻ஬+q22&7TL&&{7 f[Sɸf^txN f}SY􅐟*bctND -*iO|qe^2+Dź s<$,!#DeۛN"V@;4~o{tep\rGk$ e0E]1ݻ CRA>gB@_?5oLB}kTG9Gv)P!Q=vT؀Wns֙k2 NQzMRB~s-l2 "z`4]Tr*֧ %LCW Q񵂡DTM!OQMs(rm+p, Ƹ0N~'H5-ў9,TjKFK=kXg|+#Ry}>UtFvu5*{uTC~Twa\Bjzvu#%jj&զ9 "V $3o,=fGާGh<GAHv+V{'ӥoBj. S>raPh&P+B/>4XiEowY7WO#$k1GȻx 1XH8p^B(#l&sX*}*B\2%:h" Ux,MGA*eJBAI.&I IM GHU{s֒_qqzPa p<# .3W(PU߼HzWzgJkdpP+G(i:Z7Tcu#R}kn</Sp# ЍM,Q7P4u@_, +LBbGjm!(ztpiDi, 1B {/6LcNgSjQ\T{> *>@%)S>0'GQQ0;F +0@c(H(6B:;K<,ۑu.̈́mo<"M'91 )TVF?mLLйSC&=m\(4Oj-tTCۯ@l)G0 D&(8h/{+ +.(ԓ<*p *+q!$`/۵ZCWI\/נ"Nb#]ߥ}r&]Y[?9Wָb2 +<"Z*4;nk^:JSLB PfKZِ>I<ܠ,JM52fJ"ځ y).^9VzXe`t2Xh4A>orgDOy_/J0XT@G01 t3UR=\vmVW۾mKcCwk ըﴤ7d@[q8;D}BO$2JI$ȋ@6]ED`cX[?\+*9rKF ,jgM+UY)mET-vޘIYf f17ͷ"k]l~ؐj;rqQD?w$F(Jx2wrW{ +x_Oíy fqky<ձY@%]skWr̭RWk:Js7;D(0&-pvDN'8; @9t +?`#qD:vmM3 +|D ,[Zq1TUh1۲P%zf)ߥHcg4M4[*5Q;p@Jـ"Q?RoO0yvnGU;\2"4@8܆Ӑ2"y!Esq-j&07v$|%ߌ6a7_"E^Eev,^ћo܉۽w;.}M\.ĺB"j6^AbJ "}SZF&՟Q0h)b ;w'1ޔ]b@8y YbORLӟg ꍆilOb}2 g@ {;AX +N^w2q{l2ԗ(}1>:x}8 -<iBMDknf9d9EY1DGNq$ex* ^Zb5<>_ *闳(\"2"lk,k'8/Ly o2^ xwwOk MǹSyQo~'HJVi2G|+y)pV0h`9hB(NsgmgdF7L3 +MC)siL؜L851-3L+2b{%S㯓-,ZaIev { n,FYɞΑM6dWo1R뒲GuQ-M ^`F[Mx.-QJ*"qM~bLⴣH9D6"R}[=/bRʣLG#D(\uG{$(DKo"w'0?@萃ey#{趹U}Mae=l%]SEK\13??7Ho\ԕk;+J0c3~Xč~Æ['t84ν}f "߮JrWh@d/H6 +G%Zi\eeulMnK[7w I7յ<!0]h%=>C^^7ЧjV̙9b1܌@"b5>9=Kѵ}2 +0-@n rx[<:׫cvU  Y Nni ** 0kxr^yK9a~N?}A7 +,oC#a24Ä w {MwFE.ۺqJĺa%^4'CqHd:D $%+e^Q $,>nRG62 tRF)h%u!FdzfkW$z!%4(P 2:ԓ,zd?'P,>)wg71_ OAo:ˠ`* $gr 71pMuEo<ӟ 8QػƵQ}8ݝk29 DIfkfN9ΖAL'X}p&їXϚ̜uЖV±,qtȁc¶ kiO'!NxcU\ҵ\ro?=FcF6NRQ+7|a?z=I=C~M|6=ȱNB6?QylYZدxMwo%rn3 +p9 >OVHAΰfLuG\R_Q0ߛ QN1Cˁ `&`D @ 6PDB} @#X%0*.( 0F6H.`@(AHD +` TP +Jp@ H +Dp XP8 h0DT `!h@FP @A(A8x0Ab ,̂=*/  ! DUcj'3-X`"X 4Akr@[H,b< NŘg2)áH""S:Y'MЮyԪVSy4j$+ǰS5~EXxCh8E_yS=XIE$,D+eRl1*Xm^ђb`c +CPI"%:qu plHT!m̲\E/suI3J(@D UScArDc) V%_:Ga,5ZGhR_/J5WT8i*ݐ6&T#VF*'~v¡J8cw,cϯ.rdqp4!cٌ=>4A"gtO D+:DqMU)%MTQŷq3y 5(^`*hF\1,J:îZM*Ѹ/2 T2wͣhkH< 0` ;D]y֝D`F1 x}h9$9I7!08 j3փn&"R#댋]MX݁ˬpfp/$CW[=8FQG)NYXȖ8M] D$!98*H# D2ܕSqQ<.V_UK$~ฎբ@#GNᔧksT$b3;"14 #)x$Hdƃ˅ B…%4-!$@GX*)xvI@^v;U?h'Df@#'DBE"_)N0^#eho5!&xv% +~׻$_I𝳄 S&\i)O +~.n*?g"e[IDQcl"UihB?UX^m5**66}cF]cnǖr3dkᰎImGY}^V RDdbb DgϤk^( P*'"dvO*P.f!yeE2!/yǩ[.Uj*X2Ɂ4zQ_ҤB&l&',r{"(HPъKA3Ty$,(̱,2Q(9HCrFCl [}6GAQdeHT5'0eۜLRjj;Fֲl/C'aձi()R&AR~HXSe\9Q)ŸfK;Z" Ut="*_$M+Yi0IMYx#BD:vnjJx^%{P!OnZ4%&lr$U(GZ4CDmj"5Dvt%3(ʸ-u1NiZjOIhsR}Pna4Bv }v9&a!EMd^#Z1o.bO."FxŒUG9xBȐb0*}(;EAEv)У$v*ИBDbq$T%2e%L62"e)1UTE|ժ@b*'ܧjAa=bWb (oAm+.&"J#NbNx9X؋&X# ŽK]pSѨ#C |03JYаhFM?7Qq,ijl8cI żԊhkȊzX|d&^%ǼARӏDĉfV)87c #kFszWu . ]q]QdYQzL*rPĈ=P(:DUԨLZ ZτsPDpA+C:|qM u)y=xȄ"ID؈g$CDL&@q":VH\2"SÁNrkSߗJDc +),2\E큜*G$Ji_"gM+#НP4kQg<|+AR#˃bV/DPM G㎐(LW\:;.^FJh>^G1TLr,Xz|D])mfdBv$=4H ))WCA5>b55A2A$3DSB![FbHV4&:<37>.rld(Ӻbeģl!BD̐ejZ-)̪oC~Iۋ:k`JA5 },}o }hIhp┼Z(r4uVc:({FaFi>AX_7)E:7רK*yZ~J8r +# <|}h_5_2$ЬL&F *Z`{a/G ÉQfpsP#\*-j4qD:bF0`,*J)A`Zqdꯢb5]y;(&B;N %A(#dצF:qTi$gwF(Uġ3,au88HNlӢAgCI8F<(HJ MEBPu>J<^3hJb㝩rgyXӃ&F$3 /t\UD2 R#PEE{,CVшe=K6DT$SD(!#VfD+r8:g0*H*hLT{PmE +.+ST['ج!&e=UQ gv9yV,tn:sS,SKfq)PͩVZ[ Z!2k$~NL;ʑ暡T_q +z]ZtufF"G:g<-ϰIR⢪&,!ҷSM72f=hoԤӴl`iyzZЃHdJ&CT=TibuK1=]B1$?oEEOvtjUstW$~4 jBE#&BDƉ8ϠDYY<̚&*x ]$zL1Ҵg<,EUK(Rxʊ!9h"# nͦE}2.RɎ:Jb#ibCjihFge'%Y%((f㏧H>ʕ*aՒ"~n(#!tƥ2rLWQu89hLAT4!g3%Ҙ:'{&C¬mA|!pٖ/mWBg@'Ld܀XF"ZT+Du;lpʏh}!AhI+a%qLPtP9>ƥ#ċb!wNgU_x>ڸ\6;X)0*v|8!@5]j\S=j4Eҩt2UC2u%t1aljcUicOULԸbEׄpH5H$Q +30SOPJ:q yHH+YY(RBN=)GYY:\9`u0;ܘB#? L?*{(A.pas@^@8fLյJt@N'w4>D<ja>3.UEj,]:ES4N9R*#f I!2N7cȬBߔ*JPyi+{I(4OG^Y&C,Ik S_\xvDhN:CY1 9f$4e}j,~$rH)\aMA[ǹUqa6'd$Mym}*^bzJ$NȤS|TqCTk*N2UEh +ʛ>u~Mu^-5CDr"@aϜ^^~EcoqHS<85xY㯰 =g9%$5a.IjNfr8 }N9&U"]ʮ͢RP(I"{˫~*^P4 +1*ۋ$:y +zIB Ջtb&fCN #nˈPvaݝE_Pl ndQ D(]N7ݎS\^"KbY3tYeѣ*> q ]!UWd9Z,E1h!씸?]eֈ<4(%rJrVisռ^_Iqdxb;WP_7B,ɤ9L0"BgNIV=;zӬxҾ(wE%O48O3)[ǬU>G!yX~_ydޚwȓ64h(־LɧW1b^}$VAs[4{8Ś|OPY9۸Ƅ">5όbE[ys~r[ wWT3Q=ET }HHOGQIo}TZ6^$YE&¯/¯qR7UƛVnf) ŏtj:Әt0=qeEHDOS7<.#V\h2!JmDQ(Ƌ"?xX>V͹/ +U3_PFy,2E) #j,H $׆`*L4;X?q2xࢊ$J" +ҬWlʼn=l_z*9)E>CoOy Y'e - 7,)or-"8)yKrtn!d\ *ZZH^9YdaJ1HVimd̋lP*ϤWEl)Ҟ0'SDrNC=bAAN6_PcVNmfR鄠UH[ۤ76G!KvWyJ:rӕG΍J[ׯ.R2(郻p喤N #Y\>hGm m`i;>+dƑ$ɠ W:A$&K%w/q.-HI8$%Dw&J&ɜ#ߐqW絼1MYO6Q7)MÐD5A*%JҖƊDYZA9j|P|5u!Z-T.'Ԁ_^ⲔJHSꚒ7 +k}O%ckHz`4&FfbAUuh:SerIĦp8U;UuIETeN .|g?ʧ +Q T+2'd8kr~"0Ur=p<"A>a[ljT0Ra]B&<m@\(SCQ.{S[ s]-H,$-?(pXQo0hæL3PP +CbAlPچ,00SeAX18/>Xf|cu:*x?#c=cd@fp{4(w& p45QjXEώWLX/ J#4X{=\XCO* &ɛ@XjDJKQئ`,&4SbXD:,mXT%B8c8c + lc%I9OJ|VX* ^1x8r RSkFXQޓ^_MaSc\Ð΋VN^pdGA|2G08n!}x`,>$f*)o8:^BcYk*'j hhCW`9[Y1 uz`&H#|0i.WoFeTώv+ :lD˂g=8c,I«ϻ1Vˀ]>oc-)~c묅iUu8T؏$Yg#UC~;ζrb .ڧP$|la-zH>+Rc9# cra-E +İ* #Z1`LcSa +hwPGtjt +ƒSԟ!Ɗ>{k>65@0 X h¿$=f+ ?WYh7"r` Z/I ,a}B@Lvj~>PLrb-gKi^,} Qv`BU!Ahz-4l'JXߕ +E/'J[PPջXŋE)tf۳jpg7Dͬa1yCؚg!c}yx))!jw X-dBjBKA1V0Gb郕 =` EVvCc,3^|3 +wc=`\aF ciJcHzncEE~kL hH҉wښX]eLW$NjJcH!f +bc, + 7rkPv8{p0bX3%#L'X3{Rvgio5X =imطK%Xa-RKݵcmt`]kXH]73wXŧp-X˩^mx5usMcRo1=33vX O9]~lUmx dK+[bYMe8Rc).r?Q$1֠Sk޵/1FcYMczfck>-$ jb,#}{o';X^Ն]_xRB |llg{q5z g<2*rp!|K Y#5AR5^p=]02t(GJȎÞӟ#c]GSXUR;2ֳ^'+&蘥1Ϸ|hb /ĥ *yY\DV ]aꊓhy"=X0oAc%04 C0ɣ*՘J` +x1灺dP^w#ȟ!]jѧ[zGXs8`H&RRcA(GVc S|Y d歶]kj,,#\P \PWƊr6kܢ:cҁ-֋ߖ%[OmƂS= +ВEhFfl,h\Oi-fx2tAUM40LhcKuc X6J¨7Vr*.+De8{)ĉaL,U raBčŸ {qꍕUZ |6ƪ,ݍ:fS#p#~KXns)Kt jj:C6;Vʜ_CqNy}kDX _Sù@gl, +e{vkr¨5VT rKbA]cη,$l",/r8ǟb<#Қ +, CF8cb6֮}:9ЃGmc-̿ un,e)^aI5QrcYٍRl\Tʁn*⻱0ow993l+RJ tW4/X>-7zA? (MmLz)RqEōEi·ɫ+Tާdj+.x7<4΋XnL]H%6XqPwz!ԲƪM0da-wč,aǹn,1eq_77U]xnHuc AnOH! .-B?갻sڹ eqxX_iwH(ǵDaI3˓vr>QoNc<[4]X'+WąvgͿKXޮYa_ƂxJ__qN,+g G +u94EcRNܜ1opK, qiϕܱ,AcW eNi,cj,sG_%wť2SbXagйP)zƺ+/W]U#X $8dHznwێn,.q&7?$c!86p,7 Xci= /R|y.?%I?pxM +YXq/ 0|zuP }EzbD!rn@#~D'~BE@ iI{Ʊ<ҧGo!13J8Y+V?@^3EfU9ȵaØq 66L>khrR쟽5\sw,jxTz༭*$ŢŘy_0=$Ÿ&U"p,5SͤFCɕ@_j C3`qwӴIN8.a蝮B_AsmkA/-rU_ o3K0 ⺝q B`K WS}L= 57QQ/yf,F [DX=<틈EY NaQں'=!N&T+Zz-:ܠA:Ϡi%QO=-ݯ0 &M{ [Ĭidĭ^!${.vx4c jH$J|q$J'/`:׾)~RhBUTG~ZH闩Shr-\Vv2U Љ@SgHHޝGp>Q4m jUQ]I?&Yx0GB(*;yH5~8(]B-LXxȐ[x!Y8c2 s1Zaϭnk<'͔U425"{ʍ; RD4hl.s3/8\.w2_c +6?W 1]-L4Jx=Q`V=@ `x/7`G)ZOjV~<q5ȥx* D,a CgaDJ=h.3frz. Kͤf~&bFˏ,.P m~m6qi:ڧPt_%YÄanuZ ]S)Z:Oح"͒Amhd#M0ġ`'N`sGqu> "[xOVqBIf¹v9-F&-WC05$ `;tޏJ [p7( D%B[ 06ǷV{5a;w6ގ2 +@Wga,)(hW [/~" 홰(ͯx +t5,[iDM?>rRHL1v &ʐ Ղ_qxԙݥu vQiŋe+]Ё8^#,l<>9>`VfpH&vŁ|yΫ&CلčQ NTmi(]4슶w|i"/ޱ_XPb4h}X*2g|de&Ig&=*ga;,TzQDx:ު _v0-Fƌ#[C:}"q* $s@[ys>KւwA;^ "J{67 Ij{m܍q/;="C@֕^\]hR`X}>nږ%;O 9"#U51~f{C_MxӋZnE?&NևF[ˆT黳QIKa@4sVgl[X,_;ŧ"~*` tATM(x/˻R+mK%dg4Z6?br{3 PqM")BH2P6;U^sh Q)-%;-;T(;OBH*ȝK?"U<<4F]@0l@'G1 +!Ό'+nHƠ ';4&C*]efid.~xUB\+g,% .okE* +} ^4֐6|Yਂf1*!jm@%GXwطѣҿjjI3t [S*CˬS'Cy_&ywy b^ q + Q~У%XO,uQ!5块xAV*ɧCCJ7Jgɉlk(\SvݶJҠE~=.5T5d]09I]l"2"/X.lD,ώ_ +@hX F,nlLQ!D\ ȟ){$X%L^M|ZDROvtRFzJIjE嗇S-Q&EE/skB7tId8y,ɵiS䚇8P畠svBPl sD\9}"6.kº=sELѲ9t[JIWSlVł;o HRdHAX-;nWoN!URY{-xݞH$[eN뎕ЮaliscAQ'qYa'1M2BZ)q+jb4bD,A%L[xpjbiɑPF01 zUhb/^›T8'P_ {f]D펅 ?CVUoZ0Gڦ +)JXϑ-:@[V[7 Tۏu9ǢƠ7q;/+XA˃e4ՎZ˻R@>;ը| plG #|f5UFqpD>r÷>Ǥƈyi렲>yȩ #x<#pEH*PgcK:~b %-ЙM4 %^Ĉc~Dߺ̬oB >0&R&cS3\H֗ov9_3HHano#*>DD6&pt g&;Fe +u¨T:"$49O-O " +I5 G;| l6/==OT*^34~m#M1FXDԙ5ZmPE=o  Sv?!S*봖}&悊jb<EC,dI`\F8LgO炆UZ,xvVHHSoT?QI$ѻT9tH?gmV.ߕH=r8I@ԛ!%9L$~<É:jy?/{pIx=3[Cث/N6%( ǚa +͘7 ]ZEDU.!Uឳm1t>H , +Y"UMu<ݬ5LAhy !MsYevI¬ͩk4U}*jjWQPWlH:PmnTБPy—K' =ʉs.r𝽗:od|Eя\kHV?]|b7ёm2p_֊@({+de=9\ Gj/QB&4 jsZ|R}bփP.mBe~V_nNLcmK!H"ALz%]rt3Jm %.ca4 &llqjBaO1SP ɳJqxu8y@RΫ^Ï6ΕYimw?hw&NJ7S6p6eNXZBLt Nu#G=B ;({(6G-3#lUwKBq1ۿ :.e?=L/`oSm-EJ/,='B{>W%/Q~E .2' ے2/:SJSR䋏E+%O;=MEt;::#Y"EnYWu-b0٧7IIv`!3`Ά/~ljFG!ڧ=8N*yf^"ɖ@a&Hp9BO7 ]#)E%T3w%GYVJHb0KM=XE—{ +Z< fnl@ #*2 ܣŃr\ m aY&YA!bVɃwxĵO2]8+ eGb+~d]I"kk&l&nۡKGCK%T?h86-,]d @@+]J^m}z(pI_ٵ|cZ/c62\[ ǛY~ԞUlk6F9>ֵ0i^rZ5ǯӇ[ML^GDu&dX?s.VDeg~"jy&3!d3؟<^ }st7{ XkB2{VF4Wiw׺KL $,Ebѹ1P8d@,ZX>SdQLGQN$DwHU_y0/j*Mytg}>6_GUAws^rVe%r+:G$45h>oF:a )I"Y-.zY ƴzOqF2rıt|ԂXN3 QMܞDN'Ǜ+T@@6_E5#B@R6 2 ַCz^#P63=?=t]Llf]lc _C T⾍2OD}; q& y5kU/54~zbM@ѻł3^qv٧bUalJ?1. x)Wry)}+ w5Ҩ~$ :P8!8A}iYoLi x\;W\F} c\: OGO1sn ΕcL1H&C)N"Ɨ[b7.T%+ Q=vbC_jE*fB:k+:J|ͩ;Q3YBɣy8ĺ?f#cUHGc]7SLDtwϜ ͫ>ԧk2%يV3=%,DQ2f*,C0\$uA>-\RSzB@|Uw_V/v ea ;\fFM=OAEgyiwE7IUM99uDX:K4&ߕ؄bQok (~u52>I̖Wgʼni02V .X 7'ȐcβxE)G' `S0GhZ*7%/g ӦLsj,$l?tlfg GȞyfv̯diURy571vQu45FA['^. =6+ ԄA+c@-3j+ғovnˈ}eՎk^jUl7PQ-e3ݣbR\~0Zmʈ-Y5c@J" uOq}4~$ +*%覽 4f*d]ZfH*P/=կ̆V8H]??Oo,W;1G:!UB>s b721b1 +rHA q +vE&9KR$E[WFk2wBS9FB+w'k ]!<:b2V9.ӱFH->5*%s lKW ;ӢuKb(V:U'& +{ X]J%d \/OlF 7kϏM=ΠPsI I"5; PXnM[Ѷth4 +~wUUX+ T7Ω K[,6NlnGYݜSa>|3((![y +^ rn%dN{q"هI QJC|w'̻ͷGy,0"m}\]G!`(Ec5$EfHK2.$k oZdU9WJ ?D ]W#v2P'xDi-v":D`~ m‡{^'VI;ơ]DzFG"I{D=Ԃqۨڟ*yОٜna&.֎?`.{jw yXŐX%  +p,n@}kAIVm@CU/<L)HDp0V)=ENHK,u?Bdh%9`[''Of5KR;;0*sF[d7Rq*I5|ϬxuX*9C3U}ЖtB! +w(k#-3% :;k|[VT( y_c0jvwTijyA&):n%[6Ab!eug\QU4)?sɨ]x.~|(=ns"EQًK骐 +88͎x}WAZ"Ծ`NqMgQ'D`.h΀GSO`3WDMLlb!=g;ID9a痠 +gwIM,)#Wh |UhhnL@+-| a~PFޒݰ lQpp@@g8vLDr]FGxiFzJa߁)ppbI3zXp)dus{"='])d_A)P f9"(+=jj:"!z9Gy::/">pO:e+uyi:_FH,EV2!{`3նZ\Q1Ԃ?%:loFv[UBm Љ'o"<;qC|lv1`P&A(h}UbOV|0eFQY xyf* +Ʒj- M\\AZTǀCU+o>Iv?)fCpRgʱ4NP혯ʟ +^3$ lϱ/q PV`Uui2LYIEm + ģ<Ϥ{'Ǔs^ʘN7aϖm\Lise4?L9ߌIy(]) 3ޒk A;#|*Fk9)&g~X+ k*Rȋ8-6~˥0zXE0+s)؎o|`:H0b bbn2sM<6o^9n)0muu6Jğsd#IkXq$ }dO4 +J˺1N?#¿NmM_y^`,pdHX`E`">O/ Gx.cF.眊$R<(xbtZ1J>Ng ){p0L626. Hz?Vb(.!rƾ-BH3&0Y)/:4HAPlӰn+$ ezZ[qcT(B9*_mdE5^T=9L +xX@bZ͚9B Wu剳\7J'Du ,ʉYx풁#J>??EtZf-*q"&G,^$rZtނE3\EX{51 'n&dtO]X$WkN w\tSz‚ +^<闰.1Aɀfِ7ZW>{xL9rt—3 {PԢC}9z#S4VG=0m4P,G߫xłๅM +Ȝ<ݷwBlR28 zs(A^֚bF?3[949hA-ۼT`i_x"T_qROXT]XלGu~ 6T wٰsX%.vr;WUO#L'W0 sM<px9%auROQK<  + z% !\ 눲zHF<?x0EI{х҂> +Ϊ{.Q>%=1G٠Ci\y=vJY~ +u ݗTGij`VXg_懝PRcYƵ\:%⺴ +{qZ (A)NzuN+'V +G~ߞJ8ߚb D/Ú@`=PˢbPs h%ME$e +OB!2+'Ɨot6$xQZ$W[fZ!;@WT%i۩ʡ#\p YQ7R}׺wW0S(0`/h54Q1 mU+M0jiñ(x&TvΒp(agOLX +~uc׹G?1q LgY<dr]Nqae$KxHεeް,#jMslɶSRXdT1~n9hOO|$N^g+񀨔8[P  l|3ŚNHUaiVA~ʞ6/اT-޿+%4Ui썗xIROOr?>~P+Q,(Hɠ_Sh,RUKJNb⮰ٍ@k'8]mujs A;RƧ|mD[/nw&O]Ƽ5>77]>Dy1a6Q.x9yZ2RUZ~&+z Bh&kȞ̓,>3NCLfmeDDC:x>1t(ݏ@1Pit&1UGq0)#B 1{Z3AcY 'f I/Ub+nYHtcHVM64MCx >xX E9.P#hqpmk+G\>p8V`\;ԍ1^>txbR-NSkIHu3kc+4 _ +Fқ[ ցzU 'Z%BP46b> +"'3TY:(( .Ϲ O~NNݨcVPHZhs@%J t[4ial/ +n`Zf* (%pOs6JfvQ{)flXDތj{9g.ccTc(>'$@Q_NM3lBk# ¤ҖL4'Z0'TDAdY-zGCa)͒T~v{%Dmh' 0K}Y /#.Ľie o|ٲbWDV@2ؑ =\:i`8'NhU)OŤ զ1;];x7wn;,/ a؋zk^"'\pJv}] V +%K%9x^5roUs(-6D8ldMҫ~8]z3,>౶0 +-# Pe(v.K8lɫ%7ڷDoK5D#h9;:y!xĄ"TF2 6,ҩA "HH_Qtr|78) A$K/Q'LV.,qbfEgt$ѣW⧏1F!xSJ:5DLJRv;1p6 - /p#>q J) H@v Qૡmt@Z9"Z e].ᒡ\j';ek)e i`mďe]p|JYir4Z{ɸ$%3_(o^Hh9wzdY I*ҸHJq +[h+*!kH5##%}hh( +r@j|~YX0‚|ƴP`k)NG@eXWcxn'=(ˍy +Vôߟ,3,Guv-v0il' F@/g;B=eZXJ'9`E$f1e5Y7F ~Lv/?D[CdCYrwtCjr t\).$Q4h@I R-9F-:qR\ R4\dV%-28۠y)fĥ(#6`ƵxDP HAӠʗd [Og\{+Vl$4&Vܱ V6 +²S7e,kDqJ#haԘp'̶h"kΕX4F$pBD٫*#5i@ %n7 +,ԟ7/}2`^*ubfCvM9&fn|K3`U,{eFTr 髌*]n2[U!,?@Dtt9ml5CHRT 2 }-d&ƙn~I5!_V6o$ fW+ T׌!ro bb3CjAa9;0k8dW2ӼWw˄`Gʀ=FHM;,YzFbRGYNǘ%']Wh(i [u|9+:.mٲSakv0hvUu;{7J(-HAG]t(B4-],TbOȌY|P c+> +nXr&QBLs;x@S^E@ǁ O.;Aeji'2$aJmǿP;O&rL3Tz Nr8dzvfjuFyߓA`/F?zBp1/j`gtc(_ 6ƴFQ=Ƅ`XPXDc )f ADVXtO! +,>Qƃ_aϩUB^2D 5ruеl +F_a/,+U +ρs)\L\ +ׂ~^?=}u}yaHHgw6k8ar߰%6$z5-99K]؁@'WRbbw7@Ȧ.l"@dN%Fe>ӎ!7c)[Cѡ3'6ބaL/,@[0w(AM`B|8Shxؙͥ=Q*R%fi;"m`}XAd5;],b9gvkplIv" +ل"ˡ9ؾ85] !@UdI8'dJlr A}_1q h.dc΢ե`[CTR2sB1RPT6XaЂSXΫLx#*#Nw,δߑe_=iꔌv⪞b꓃xF@P`B x ++⅃8ahnBg+Ǭ2-TjAWC~@e>I@"*\4A>Q €8h + f +A_'(sA;B^C|,OD+a-D@ %9B is(OS {xlšȂ_$侅bks )F0d {[v6A/o~5T/j;TlR 'I@DEWօ$SVo~?Ts +k2aֿvDSf Ba|7IN@B'l ފ@: ۓ+'8@W{׻#hGO&twߢ͛ /?*Na<vBjTbGy:x{O7 1Tj;fN|p쉔0ӊ'?~ az#sw/;u+ w(aNJX'&yˊkk<-Õ` Sc)JRRep] $"ms`Y a'`qa'n.h]5@ׁl :L;@}0]l 8QEHUM _CnJt;&ι\U_8\F yu|lޑ edpph.<`dJ` ((.+UgSdә×5pv0tCwcz XE\*wE{ `)9 Ǝ0Tn\FoDkUҜp]0TzxԀ\.1[[u}pG߰([nj^KRnMH-dj*hy~(J9ϕgHW(0X"ꋕRNcIxgdDU8] UB:%K\9`* E) +D"YUW/FON*h'_g&"U}ITׯq+MS _bD +=BI})t]/|[qvQx0Wxo)AUd_JރyCqteT~ ^ G"p}Qy*hWwb>( z7{)Rbp&u&*xz'K|PG9T05o]j$Ӗ|(j`?^i!sZO5 ++Ix! ^78k~/7k!1]ĹWf "jOu>ድ{vQ;sٵ7Ԁ߲+0`fQ^ Z$[(M~ 6څ 0vuaue %0tIXӥt!>ȵ&07 +3WJOB\&./Jmͅy37>sF!}c~O i?K`Tz]]GD9=~(ciӸ~Йz>stream +޵s"ݕ3KﶜЪvN5^žy=V'trֿ'Mo--Kw}GD+M棝[b>֤-+ nz[jֿ,>?;##k+韙&˨GgFI\Ȍ/k;c,)ѵo[GbTn$2&tw5 rGl t }-`O^vQz|60Y(繻e1)?ƺ-r1[T7lR/kӶ=֏rqQsqXR jmǕG^ZGXDڬ +Hw4Ǻ֡ +Vj;L5zQֺࠠ!D7bASdNZ6'iiKV)k1~Z5(njbfo`5M, a g'UjQ$5%(He9D/&uEɒl< `ڽeӹB?b#UïPRo@0$IPÃ+yrҫMhe jFpLx垦wT7HTa`g]R'tV׃o$fEjd -RZ&tE0>{A]jȐDepyBF,fQ'{poА4e_;gR0 q* +b@$`ps :9 t?})Buv-L1cвW61VRiS VV0,t# +ׇ +f F4)c|@%M/ڧ5pGi^tkЎ@Gݸ4 :m (g58ŸA%Z}V GOLeIt~c]7?>",ݲ];%¸7aƸK1d$ƸWF*7%7H_UtëAjdqs^=<4CMeDd!Q4Ly,C + `56L&;bt2X]?7(ݞe{fi/]Dz,CbÑ`:˜ŃF4u"sg̭Zv]VL5=:|8mB^@]o}o~2/F<y>΁c!OGp:qo擩Iq[ .̺s0,YFwO'n>s:ώ媻q=Q\>Kq&8"ۍDu>}QN4 niKcgM9I Ī3:T1:|/W8HpZ7+dU16q=0LAnrJs[[2>`4\' +~F +UE2^ZU]p̦ә1}aKgc4* m1ZgApQJyw)~A@"LUg\Ƽhߏ%)~aƸŠqU)`_F8in%uH/v;YsYv-=ڿ 'R"`"KmnaH^"qgM!EYGg.Ǩm)go&! No!{߆yYü}Ki +&rc@_;r3z(%BT: Z]jv].6e`B8L4:QfNhp?RoCD^Ő5"Q +wȂ(E}W_Kf ;`.,Et R4; +NFn]Uﳼ)DPvXW˅V'Pݨ02a˔m k(7ͷ.^F>A`gʚ"+ʤȓb+$=ŗ>ʼnAFA;|Hv{4'`|cxeWRpy;(`z"1Y 'qLӕ9^"O +IPV.nxȄSɱoJx .ƌ;0wYZp5z;,q t&^E]3BZ;#1^ǖ^WK:I,+8 A!wM϶?8 +\U OpQ/2IO]8T"C>L$^.ތ!XGԠk4izaR/>DJK\a!"|uQWȨTQGjG&T,d2 +E\P@/ns%Dw^{d2b9֤`wW0D,\x9/M%/P!FRX-z&TM1Z64R?mE=o 4u, {vV] +B>-,lbBh%&FE_<2 + aq]" +z('k$J{~A(n o$Ѷk69Z?lyq|l@?[y('x\S# =W ̉@ނu7ץAVqE@ +08XBT!bd'0[d~x>}F:wTE1?R7Q؜rޢ&Z1Jۛl} +. N&ED̃W^ߡlQ~"md HesG97صCM\Jj\DG1V& %\..w]D;hRsKݷ4D-^Y+G>3f'C̖d̍Q9 +%wI|0`rR t@+PHyBAߔ0<7 /f qfv02YrXdW,ChM"0ff|$kiɛG{`nDeƎsR$56޲d"% NŴ/-?cK `s=!Ob 60=b9a ;<ȹ0+h#v= -4vp$E:go4[D(/+ YFi|TjG>aГqU-m#Q7[r%堵 L+/(.d̩^`m_hqz./MKS-Oi3-׈tT +B~Ek-x$.vJZ ܍TO\hj[YAA^4)5.eC(CB;4R]?7%Q `~'+N =Mm=e g& Ҁ~{FhF;-@3DT C(`FgZԿ$2ImmmHvNlyyK%S`FPa( 1 x@rU-l}"I8nЈ xHW6ԕgLp DE+ƮٝTotOb; +6Ԡ"n)Jp[jXfgwX_#թsx^4qmtD +Rn3tD9 y#-Dt8Bv6WCWX{YM|x!jM%E"8YXaD/G۹[d:07nu(Dy8m4 $N"ߗV]GpZ!fNN~|Tؠ>^@Kj_X=a1Ҍ| 3p|7)!@.^ M&7G8ݘ>7&VU1h[Owwpyd +TkOJݿq+ފR [p&\4`mPXJտ$vT^=壨NrT_ȡUA6K-B &2dg2Y-fXA]nw&5nayt~02(sZط, ƻu:lv9ME-oXq"T:gN"TUY*I8Ч8Ea K9I`2L4q0%֑b# +x<+7d8țAKq4+oq3ɜnF|Opu<-Q$"}nB1Yʩ4>R|/Ń:4 =NR Uk2ŕp?9+)n,G!~=rkR9]97k +yd(rN$AVMN IE94?JD4?J ؅(Zpb/PHS/DEj.= %޳&m%3!HO/du 9^FY2R2 %LffSM2>s&γSOqӸA~-ԬJyFgL2N=Zٽx=t$^j)VDhi*#RIZqWUPS"{f.(iw启Gă攻HHCSěȟ'eUZV8D'̊:ďb83 `qu_"qT=*\OWEG'e&s<4}_37<|8ڞxTy1P̿0zD^e\lhj9{%xjIH~GՓ٪nj~\IwdQS 1fVWߺ[ѡΦKmtT9 [x<\;"|,%#LSǨU$cO#84bBӠ Yc}x&QQg(>tyD\& /:YU IµF>7w<:?;jFu*cȝ砗"FV,]CǚŒBUSBU˨H䰴CT, X,Mb9Ɗ(5@ +0䉖K;;E"HlL:WHDm҈^m +95U,NT1ǥBLNqWsnr.17t]1$! 4,Iz˖֖.]uj +E,B>?%}LE格D\Z1]%bN*I, )(qa?؉=N T.?H: "B*hj!GS(M֐h4Ct&ZAN8d!L1(O2J2bT*F)ҍ4Jڠ>=h*6q0dJwn!vN8{s%cKk]B#li"q }AK㣖bnB%! Z 6ӈ&FG"Xrcr& nbOWnn]D/j7GE)\/NJFP9BtB7X.r3,+W)^-!+[èENC "B9hrFC9; +̈!e()\mbϸ5[o&՛"T\3[]-fL|`b.]sޢw OȨUkeER +VdHXt-(-e ]d)JUE`8"2ŠlFJ i~B$6IQB3;MI&JgB-d~1Y?:BQ'Eϒ25D iTEu +.gΏC+^L[5UG91nf)( +18h(ZygsR( mh7҈J m(zmCDF;ǭ5k9[+9̵ʍˍ1UID>1♜{T P(,IXJGJ;J^R}-D\>ZN&&,=ZXJ)j=&K.zF.YvaS]^~x\02=R+"cX6O[wDYĨ9:'Ŧk'P,.udMsQ%#Bbtoetz~DŠ^^D\٢+7[czEf79QT&BEjUTgJgUm|V2#"+m2tϹ!7jAHi$iEqua((BF^^d%" 9PGB gT +].W*\iV?"]\. K\VD杮:HG$'fzg".MHF*."O3(O!ݨ[.XJJdDN*V%& 0ACXv$$zdM&I_I9(oJCT)f b7FYɥ05e,"'2S"kD8JիV;S{'1["L(M;J ; j*0(ޛPt{ +[S) D/М%3ԓ9%4mS"]8W֥䈐2呐PeI)B#YH#5[Eh _4"#KN$JV{,LBB!S|1  +ʌU4.LY-6?6CIdL͊ Ejnl(D٩O4}|-R¨uGuKJ}&2qh5Ku>xr4C%=+/PPd AuĠžA~[I0$_ı a+-%lSz!!V;[M4dDMn\H]xe1|QFA'+Ed3U'0U΃\i50{t!'8'\vs! +Bc~'Wo'tn_A&ZiK:!\2 \cℲ85&dM`TMd0&F PϨ ލ4( .6˄ +d'& +tpK!%s [Zz{8+@PW m2S«A)!w-J@.A < o 4 RaBЗ% +P[^vq{~cAQ`%6.}Sr&P0 =Eo>S`jO{ ( pY}K'&: #LmF@ +Id8 &a _)LdK =+Adn⁡$}$Cv$P(N{ `/EC D~_H9HhhG] @P;5O=B|G8^8`ZY!EhY4BIfVoC3DtoɃz +xN -h&D1 +cAp#n x ocv O88}AP`03 7A](Ysb mcƝM81=?c{A#P@f +AFw8Ls#;Xy)AD _3x +A$#n:W-۾O.B-Z?5X",| !f|E I2dB (KAINRAT7f(T)$Y`-Lr98y 0E04Lic'I A(#j3ɕ,Bx ]wJ"EP7X! Db|Ӏ`΁ \֥},Bb"@^؇`cP EȹY$#ZX~@pF17E8!+BI*Cpp)aQCn5/ Cj9p3R(nHTL(8J!xzSIOoO %Bŵ#XGx +J--|vjJ,#C0@CF +`w Hby(" {{y.$QA!g~>0/rAT4fBPC͆t~hZM45g(*6[BeNJ "!Xȃ@П3x>;Bp] > Am €8UsBaq*@W BpF\LR,5jXKA; -XW!J> +>:GA؋, +=$}l=(g0,؃ ۧS +͓N7,wNFV +UuU@DRTONiR+*( +،x +bM!dLA.H].V)(dI}H6$D60,2B +{.MxR@3D#R!H&K0( E +B8!XI{D +NQz2 +5EAq;+@4D(eE| +AC7"?P +VUI\bKLbC9y(O`ć}?DUDAavQ*#5C})t΀ +$C;u(@,C+P7o(Y:%|?8OABשpߣ hM"(@-"(orw +DpUZ@]bW !X* +x(CS)q!pphi +FK|r)/CG a ɞrOJ[)J Ս4%e6  JHIB =NH7 @~b"[$?S{,ݭn~ OFr<>@P +4d?+Zܩ Xry]C`V4=`]`2Fp|u#e|Q$YA2~d; X>ysa*Jk5ׁ֭=TY {sL  ^Am: B7D9`[p\XK덱@ v<_#\C'q@jXߤF 6E8P6x'V+t8P=7&5?E8v~!TlƊX @AfUQzZJm܀ 56ʄIly=l@nBd'c hZڴ^50;}IE .2 @ + m`\Aȋ6s<["V=@8ĮFqD3M5J\@r: PfMJ^| h0yen Dz$ZáW;0~uP .Y +* IAE/LCN-3 覘p8rFmhz T PI~Nꧬ[BO~>>TO0.䜋$- |zP]rjNGx JEy.ou# e\L\~=9|@ + It Wu_t p:KLȲD[Y>RP!<83xFl?whbbL!؁G xj`u - Bq@daBҬI8Uly.fhtlNJXd(*@)/zU]yκ axhE[U>g$ @@-0jpXZ >?,h#6Lb|}-c+}J-&_ nwoZ Mdn VX>MյLOW <@,3d\2*Dy-`?CK D&u0B~-,=TtiEQQ˿nڣ ( ZlcZ+Z|a j@TQf3/)81T쨰6Z4x-0b9HI ܝ/Bʎ?oZf2nY%V s^Y0RJ(D5ֺD7>T!zne@fY8ixX np1C:k6³1G Ii#3`-0\ԫ4u+X-yk9.5# +*I^W a Bi/ ĊG!0Q2R@*^-P-_"Z@vLKKx b#4%uY \آUŬ@B 6"88pDd7VRHn Z KN +XFVGxtu-hZFZ]_iz.{{- +-5eIU?>W @255>_ LU$# +Ҳb֯k`7nP;ܐ!ʩG(K* +V81GBYPGQz4DW'{TB%xحaڐ T0^33mu H5Z=7rX@'"@6Nk26hU`ipK[UW @r2m] :ޙ|Xlbe'f9r>GNC&KՖ&}2\ P-! @rĚVY, K6 + @|Ĵ>oK}G&o/cފ,1c) Pv⻊:Щ}10ñř8Ȟ(y#oDhX02CZ&]Hie sIhK!Jouucȣd哘=CA+HuQf #+pay(XP$\a aUȟu5P8ET0uS(tU-S [ONWJOfW@A +d]@μ|T,2ݞ:*/(=AbxS&Oכ裤r@]*'u57U;# l.Tl鈊ߤpXR`GWHAҡZwPSj0*qUC̎Nh|XRI@>JH ˂IwvCZ+ƫ#sM@{2$a#gOG&M#6ӿKGwϗMj0A6EFs!DGK侄*߼@({ҥ\r2/Q`T]\ r'rt`aW@)ab%끤IA0 ;TNsH}Or{-\v7󉯊ոҬk8S(((ޫ  J UGX0Hhy +s-E96Hm4O8@^6t2v 0spSpzh7d<t ;WhTAk_1%Q-5<y2[z`kr]nY 8\3]R4J.%À'|ng(Rju ` 7rW%4. '1PjT)586,ֽ(Q h.bdQ`CzĮSfM>l +_P+ h%+@G΋g6\:<2~q X:z%@&ٵes %ݤzl DՌJw ԁJ@Gw//}؟B1X5gD _}(ݓnݐb@öLV/_aN^`AuۨocqGH-Mj!C@M\>@ ]BT`p.<ޠy@e#;} Mm8/n̨;@n C><~gn:Ym[ktm2(Vۃ`]V-UYHfYJgG.7/ iw`ul Mxg,xvyp|nYA$g}Ϲ5 t/0ڇ3i&̃f< 9ed$VOT=`kiȼ43ch`186 pe`BQTV0D 8)A*<>cz8{: "B… رF),q~߮E5OA VDF+@n }MJ0+νKrsW +Pq W2<+D@Y! +P_&Eb,(5楕g#ਊ ]M`*{>`811@˯Zb0!Ⱥ_ܴSb`$$o"w cDP Z9{ ڣz<*4[cKTBp';L@TߙFQ~ӿ'aZF7a,4(C;[T~lb3pΎe8o~O4Z2Oԕ/Њ7/E.>\Z- +bؑAL ¨$j!Dxtm詶(* %/L*ɒ=-Lh,Q݀$|z& L^" +@}ZR +SP &˙I *"w&124|M!S-ÜV:$_бk%-ME1P0b^'´t m[tYBq(Q@ڈ05T|@@{\Iǰy)x 7W1N4Fjڂp5Ne3A#(xNu"eIs-A,(҄+:N6 +#a G'R(u$B]yPb OqOtBE4{|Tʩ%xp}W'B_ej;~TU` 70?*2E9 +>A*!$ X(ŋ1?I;(е @H] r- Lg4 D˂oR)`ÅG El/eqT0B>:&rA![iُÚ5–kFz[m(Q)cOo#P,ΛQv2I|3ۿQұp_ \iò$IxUTtKn*'6gx5dO(Jɨ#]8l[)FK }V‘_ˆ:'rR.0bHcBxǗLwܶǿȶd[[v؀%gJfa2 یu䖥Lk |aүllMbOSPp +5cBqh%j0F+G9 B]Gn :ᛅiiuCia@?R7&GXg/At(ڮ| =Ki^c@N1? ?LEےc'71ڠwP{&3_fiP"ۍL+lt/'D̕PʞȗGArV`YP +K쾚hU'eŴ u t9 'FQ쾫gC-uQ[n"Mz,1*Bf$>gEBL?p s{B"+a ۿvzʳ_|F0@S m5QkZ%ZKSahN8+!FKbS ?T!|+FTU[+&/QDowlrCu~iĸC`Ͽ~SSw-n}: O#eC$L(~`{,`NCwJ/_i& +gdHSIi U +oncu_./B}{W3svApV+z.Ws%i:LjBbݨ|O (ۆ 6SH})6{|ʹ:B:2 ~Uwn^]c 7u~M%kdpIbsBy|_ݠR1yu$\e-qTqz}}mh!UA٭οrkPz[R^}S7a緪 U[*`Vv6sZl^P) ?ԵfWC!Y~j8WL~(SK w Ym_L@aU"w~k>W3A^gWn dYy/1kQlTCUl切nuaè hɚ#ԥ~4NmEE2XS9>VhQ@ 7|:wt^x'zr ί'־A1һC6JG/Ko BxgaDhӞ 4r昵i; ]䑽Է3BH; ֹ)НEVIK@;}_vpAܩ JboiNSWafw! ` ?Tuv%_b\dwM==|z凒f2o +:p,b%6QFo"Nu(՗.(pޗQDf@re^U@32T{{P]Nu.6s)AJfԽ922.kh?n6T* +R[_bMbH3~o_)+,P/3#r_g7n% yx|wc?`~ݩDhH>'3sVi件Ly罨I0?Z23/RC)8*U'!VM7u9r1D_T0/ŗ3a~'k U U襖BG&2ga`'fu^AYɛS٘r) `Trl)G?Kt2Wa~t0,#_>{.8Ѽ җG{4!./1n˅BLb~fNJ&(v +$[Qz#K~Dz1?0.QaE.3syO1? +|**^~WKܶjb,![*nO5D%t}fFp=F@SB)I7SݘV N/B&~?Io吟뵏Jz/_9֦!^Nv`Ddqא?'KF +Hmsv"jukl(IO?;mYUR&Dl.8]!/_%`$&4xeMq+xGq .H)pǯ7^T7~D +"(X/JY OR0ЏkjM}C;_onK!ucfBNՈv;!wR$}.~OH</+O +zM s+b@o g UJdY[{fQk8Z WtIJ-lb ڶFo(u*'ѽ"k8/wk'4/(A|8_}O~r&?(x|?kq}_q籢t6G!D A!VJ' Ǐd 0=R=qjJ " _Tw6vD@>b* +!\?x 7][G'L{hVYVIK:*U5D/DL/;F8hevSI*1hT%;GTιIk#>o~J?'ZrUL/ +o_S~kdTK=s%~!F*O4@tg8oF#EqO}vI͉Sb'Ӌ ~V|u3HmYYa rgR$" aA b-Bߛ#A~E-V.`6=MbZST)jC_'M/X ^=qO(滹E'@tW&uW;w"=GE,/HΧ +@rWÎmw4)ݿw7wU1j3w^yܥѷjFWamCحe_F p{(dt/ sqzg_.%P-Y8V55rZVE$1`͝r!> ʶ? OCig#/4p=!2ql`xbBr{qMͶ}]gw2q"x :~8^>I};+S^x*fG>@0'UsiߜRnPE5jٛd=8;R ͝=/ B#cQyGj MКXد+GStd;ωq1[&%+!q,@Su8m,~55~l0ĞwԑxF}I0,BM}`#UʼB!O(_/ݔp B,8S߃\麾p>y+r){:~^}@o [i?^p=`JwFkkѦ!`TGQ~Gкu?U(\W1Ew +d׬h}:'g=: fPKFZ_,3ce3Y-ρGI)IB[i]e*u~RWimuIq<9\2iHI0PS;+͏T(v25Z=]OWA04r8vׁ03L[Q"_=qŷ#eg7E7L%Wooآ{BI9>N]_=W߱Z~T>>uuiZW?{퉣g3Fyګ~ScǔnIUp"#S9^2^<Dtsod}s+E \Wd cb޼`-WϳO3 'vf/+;WHiFY4>:_*/l\V3toV=zYa+r.zJJgk泚rE^9FIdc-ɦc+C@ssy0r9Gyso;aəטt ByQ:c42fn +פ}2Y2pWHٕU%I|_,N.Fss$8$Mՙa2瘱{.g]O;>+񵙲Z!s`nTv!ca"M\N圁VQ-,~Ao,1`Q쫤?Q0 mgIus"Ẕ]%ϱN7#*ͳ%e}g,5҆5g~l19ϡCtoÝV+SAեuaEHVs|~=Ĵu-G[L0Ԙ9uCyS:̹0aHI5)ix@JTa$$H*os@XaN`/D)I.\͙:!l v]|#"q;d\hrSR:{sBe&*vr9K 9KcJr$}~ٓyMM'&smFmqWUAA ڧנ6Ȝgǃ \4%ٕ zRszcgPA8Is!,S >nUķm$9d@뻔J\J3/^Qv-G樇?aӶl%=Yz[pm9 F}mJ`?2^@ +ÚUy>2g|A-/*ɫ1q?sH A'`ѩΡ sEyΙRhh`dzrZXÀKJfusz +Sa%^8E&SWeRsVƜcfXs@a)Hg’$'ta’ĠJmM=j Y9;=]DF93w:0DƈcIdtcKN4@%qs{4$}Ѥ<|AMoK:*kXrɒܤB9%˦gsv>"Cb9HAD9ݶ"QeI YUoνߴ9nd˓%W m99uJI qD~.[?=tܗ-6ѓti -i&mtؒ~Hb :hK"wl'bIן6Kꬤƒ9MbD@d KIb)r홎82’zd^ +d t gMsl1ӵ)w?M\,/|ޠ%)`XIpN~Q09 BYIPF+h Kzb1c 85-b`I`"T]$Z֡(=&-"PQ^Ɩdt&At! r&OI{:>(=}}R+oagGEP:gav,EhGzAjVv%ၓ75c-xv}-T: g) ¨9PA<')ոC +<ڂu8VҧIjP!  +N.dk=D8䎭R 6 huzB:!g ǙIg+' ieMr_%P8_vKx#&hLV[y<5:OwL"Trcn GAdoD#b>`|t9)`#x)(|\Td!agf2pR)C]'Ֆ-K_"43S)d~F@7~M?I +S6_cGAoKyzz Tsb2؜yY?tRV= )4e 1n,@&Lg›uXQ2i-`b@|.9O纻qg V2mbZP944rѠM $q8, +4pGl- $ew3ӣ@!ZrM 4LEo%u ֥1tZwۻ@!z(KfZP6ao?$qV#JS&CP֌xE2KBFGaڬY5M<\ Riڿ> oR-#vm&L)P=zC7Pa}{[f^&DH+BƳ8=Ux^9K3h>T#$d +cfT>["Ob >VQ&8\UH^)]:0 \@]6<b~d&je#UU? +t>a@^U e ;["dG #S/A$KW0ŀqcwU~A\L 5Oaۥy.:0 PlSLmǘ7q@YڗajLV)Y9` fCD~/ȋO=>”@cՋL' X W  7g¡͔Hގ-ff2N>Aq ?MnaڦL7ćZH=Illn S@`nR݀]0 w7 `z^(@ZHhRLNIMCJ _4ƒZ2X}b,~!(.i?I~HpHQ9<dC~;5QD1EdG? T*ӣw)Ot;]CYed$*OJH \yk$(ӓPG{2!V‹̻fZª`ӳݜ_;^qAg?q? Yu)ظvLz1əHl^T&Dg (a+˶4&@7g%l2Y<9i?I…#Cf0hV݁Rbnu;Pc5p&@Z(X6;mO/̈́V֨gCGq%݁x7yXefzJ$]D4݁:G&Dh9I((ƦK, +Mms',=vQ Y4.(u$ +" +"&~bh$yDHg + ݒ(48Tu8t88TRk @aq% 1W*zHALtұs}N +ʑ$FM\IӘ苂>-I-@ QMZA&-t 0Q'͈@ST`47h9F40:s)KԲ_HK/ +v$Vu=DAGhтD2Z5-yULMf8U+<>08[a,a(d6ש߻'F FtLx6 g +0L)am0A&\"`O5`% Px&1A`k& LG{&j#1Q˜2&H ž]2e1A(½~иSe4u-iIFK=S#5dY +$ /4<;=:9ntXA&# +FH6L(Kg-3A+  tW 2Av +\ +L34>|0U傸'0Aa&u$}AFIO> MjLLA&4h35zܽgjGvP,;P8–9e2pe@3%GF;h$EwLtX A3fJ$c}.$8! R.fKcuu}gOZ(]ʟ(VP#o {R<}:^A)خSh 9X&I } D> <ڂR+Bw#5W*~ߤ8)©j,*XwROz(3[)"B4VyR4W;O#WUPXW 029cųhAOF7X2o6B~̷!p[*&]zVee/(ُBTAu+Sl-.;_c$u4/Qhr۽5$6œt k@}A$!R4 +&PK{Y 5[TF[-!i D$H5;Htf1BMBtO$ 4G`GdidA%x֧AS~uTAXV9aރ~̷7JG[5}$u:)\v)L/66cb xL/lJ B6 Xz3X C-dz +=f m {8ma5wœ 94)!!T,N#@r- OGP +{**]ƥ~]FN<$Dй^h(&*'#hjİ' +o*)cQtE6iou(k?OxR799Ӱo&4iI%P2 %Nt%o&d0=dOShG|N&hN,mϴ+em*/OexCtam0#Eiԥ̨:)h/otQQiy@Ѩ(:` ^OEGOYM( +\QFJ +)Tٽ~CT$F= (N櫕5IXHbI +IDƦ݆@"Og N+W6p6$uV`ﮨ#(dīCSQ(W;dcH5amz!|. F%uL q5U*.Lr2D5JMuhģ0bcɈeKϒ=N\ Jfݒv%<\j슘k.eWTΝǠMH[.e`].C+V(rɢaj>),5MBttdtѕO?]bњӥ4k(Mt  #7԰R5T)_ӻQs^cbu H%.] EF +1l(5@rk\D??sI$aU {K KGW̥ZONAc-K%J1:EJgƛ(Su e qRƱ.tXmjiRJ|ec)SZ{kaU[BtZRR-}I-+-rT)чۈF,C-]"Kʼ扩]pҳRNe3yb- v$)1!P[ %-n;pKG (f|!#0qֵԌHS;nsb+;eZA*+aɼ]<%c$J|-lDkW݌쵤&?H@-qԛ%@`M| yi%1cBKvިUGQCIgI*TRDA揪_h/9(K\wx)KzΞpwqY"u "5n1 ++dj> )ItK&3 8;3+R ӅnG{vYTR=όR&-ɺJXڒHdHA]0<0+|jn)HZc-츦 U9'-UXK֥81k*HÕQ"!pHGåO +!\q*\2oQ{zdp~P atE' +gvL7g1Jl!tQa8Ҁu%Arj)`K 3 c]S?R:NF^kIy%|Z PdϘo;"e"mxk֜tj/@9£Q +c cj׶rL3UqV]NBtP W2SRl;[2STnFRgpT]6 7iS?M=lWL{H= +&AVM):6B8-nj$SSm6+~8$XG3lm{[jEIiM6[ٷy$_n0h*z$(Mnzd0ƽڔoFyZph +cK([8Xe|e RݱdAS5>MmtӀ@JҐu od~i}cI41܈yլJo:$wY^Sd# +u ̛rqu5eR1%
    ԽM5;ONXk` v?}V}ob|s'nc.h)$-ByܔtpvpIBx upbHƃt}}c=*hEMN˄TqD +>k&gD}0B +F Yb} DN>tg΂L#*ul儊g. 1Pz])HEj$ru(Nӗ/;|HX׫qJSPJW'e _S_Fډ Lzj NenXVUO#T@S=Nꇝ-grIA?hÌyZEd4f iDw+%rSbsvNW$0Jd@S%ON#ISj%heCU@HņIPIYGLcUPL mX}OeP>ѧ1'P2`?MsEDIU[Ƥzr,x4 AI@2N%RD[tdYiVNkY7+22, +Z I xMӁ\3k P6 *b,|>g88jRObf}1g2SؿXPBRcW[u{"@140y-S8e*LZ`}UPr`kY1U2 s)+JokJCU;_7,Scpm +4I3JeHV5Q;&,PɝvBXJtOH p\ui8mXB\b RjcZ~ R?3,S fKgw,r@/ץ>XAy,6;MMu0;pp|EX񧾛7X-p% u?EhM \$z.( H s3ZJiouJo5,m7k(c1wLܮt)Yj%BcU͔&cz>!_t0 Jw*Ha4Ǣ7S،{>VΗ@H*¦CN>H>HWЋCcUQbY$.VWc6*ml+XS5r\~cQ䉴",ܦ9]`OeK ܬR޽Ɂ}T,v!X&{B1A5~3YvKSaCvBQSqLgR=hmXWVPjB$ +$H fDG&Ue ikʨO_b_%(ƽ su&-XO48{~t-]?V$Mۭ{KK,\<$> b%QRơ_'+;++P!dǢޔߏo~oz gk[Gtqc6C)B.I'Ib~!1\|2E|,xA'&k~SsF-WX'w`j"?w >,zN*UPcǠ~gSJ5 c Nc hz+0_2LXX¦gr Y { c$C[ჺch2c}&Ӣ N"c*d5:A>xj磨Q~ÒZo(F .* <X67я_9g?G~cEJ[x6y~,6Iۼ $9-?V˨9M(&Z c_lPr.@V7- r kG]e= Eوx^$ +^;XWq2 cN8D\R¬Ę+N|Zcm8b^9.eLd19 k`:b_omv4rǚ)>Z?VPa?VbDt[pIJcՍ8}*X9Џ}: W +{xUX2K^mv:F?mCc9RNXc1 "jV^)c_\d;&(!^TOy݄|,a=V~U=jF[=U3[CRtd˄GȅlQơa@>Uz6=֚BiG{,.Ч8T{~jX.;H %?X/GK!^u9՗ 8'yIZ>:uvbeB]xKdhtIX\[$p!¸R秾p`=Vm(=zk fP4t]{4qQ< *U(v,r!X@cg u,ձֵť$E!5Xwgg3J k+gJYlA\9cyD0Xn5%O];V}f!t b}z9PctJtK2A|rxzA#nJzh>uxd5P;_5hc ˗Jowrlt\ږ=$z)"shA?^ϱrĊsnoz2c"NT𿦹*u9ncA ir}zK̝̀m;| #e[7b j)DЋL1,*VĭH5/49xo>l-Z0KA;E9IF7Zɿ7V50oB:I}rJ +VK z+Hjm #X{'vo,xRi^%WHIX h҅cIT:/}cIKH- A@R@\ 8~rm:קX1e FE);zc55EuoYV`+Unk}|y pD\x~n,l~D-kʻSX 43IAXIƢI~xo,n%84 +78I\mXat2j7[8+wצA ۉ̄x1GpjfoM0ؗ@\$@Ed8E h=o[ 7&o]Rv`ocI4xﱩ:UNrE͕p,Ǵ+ XxcU]68kBc*3F){يp,±0vL"+*,*|'`M8}xHQ$z+HK8Av8_±B㭋*^ A} +nhc!58i!(sgX˸p7Ӹ[zGu~j c'~qOEFPZUFQ\Xd-_."?TZo<3|bn#Z"z!k[^,r`hwX@`c3jciSџcr;.ee x݄*$܁V>)k3vH_C+TW݅X2v' EO/ DIKHyJeQ0P.`,*uށ̝w4 hZ)ZilH0ǴW*71SR)"#d'އdS%T$X: +R \Xfa@z!1Цcxd%WɈf:[ͪ1:Ǫ M&sDebBp@ZU~ݮwE'XZ>]FU7 +Jk1V=O܅1'Ҋ Y^- IfsVnXg"X4|u],0C,*M? Xԙ0ja,/Z:O QRX_l&Xl|r&jkǎ;U a׀#{evYG ,ZG y=AQa@0ֶ QEi畬7`,A; QI{ub1.&1ˊWO/V)fAiOwc*j{ K'BqKX}A]ڽwörl/7ɮ+fudn1D U0M<'Yr˝( jx( + I!/[T!p"MW#+N):xra0\0OЕP s#/T(:uk7ӊM3գ0f, + t&)aHRظذkY.;vq?wFFcBy]dF|I!H#EGZk8>&-eo&(D$tP*޸bݢi360QNk$ On3 )XhTDE b3#D3nEaOeeAx >{g<9)"?n} ,Mx9Kw\+% U0g#daC?#X{bs@0hо@dX]NL<$I(0M d}^hͬ\/,kd.\~nprXv ywdIHq1!N)Kg.EM! "a*#RЇ˰,[I H I֑M f W!}Ɓį:ae++#ʜؼٝͲh6 6֘m9߹Hcv#<΋hx>]Lt34Ӟa皞R%%*QRD"@JsU4'{k.hT^c02CPBNuy꾜$D>/YAZr0̸0 !aD^?±9|G7$FGp %"0X_eWX4b&)ƙ6-Dٛzf)wp)8a!$D¶P/\ĈMXѭ3ZW&D.AAZ*!:}} ^џ:2gἿF7i 9?%#|L +GMg1T?;t|a31p>/Ql ` $5/d$ؠ2K"@B +q&&C3 B;jSRVjf*a+%JrL=?С)>U">UtXh5/`<|_L1C~F_Oz"lixr9vBP/4&A_٩ @Q|j"pL(Bwp ++j#HOVDBdW6x#M I7R%KT^HD̵fBc1$42 +wz]Da$1!a~Й>;MqoმxrBHl~pEKaI&bXE_4NdCaFƐK& =#f~_= "ea.?"S2="h֘T&EQj%K@ND,݊ňt'7v|zpx +V\fS|6 t_ys2\Fe(WPf/ s1^R" 7q2Y T}9OqoXQ$ w@["a6L1G!*HnC"Byĉgm.Q0Ee-ޞO ᥉x̃t 2O?D)M| & ')haAQ(f6:/TxxOb6]8z4yW3pp@h v.Z + +F^02lBdO]oN`3A_|vׂ _=f婏((NҢV_ʦ9Za3ٗ>^ϵԀ̀f1 +Ȍo2iV"3QEf <S2V`CSCq<1{ z0U5>f,Xe?!N[Jis!h_u3.njy!d&5`)-ݐt-U!a8׆I3 2"Efs |*+h w2C+ W.:.rlzyAV`-c -$*r(H AFШ bF-$-f,hT֠+wg0*fS ֍"h_{7"vEd *fN|$f$3AY)UPD}~DrCpeh/3h1!h3ܗR bF!jZ0[1#?7MD bƊGį+f 2²%X+F?dBvY O4·e'#Xخ3fP8Ђdƌqm̰nj)-(yX3I+ccFD0J54t0>8fP"}&s3ZQy̐A:f2 6fs!>o!ȺW8J!3Dw;~Zk8[("( =e>fhdƞyDq} 3nj`6fhfnj_ +1CVWJ3^ I},A[dp'X3h"4Wqmc_8֒0W5m'FY\FctFgI)L?9pm4L@PgՍ]K(-.+PR阡P}5 ẁ|硅0DZ : +Ev_5X Qnj״)3OF0@*$N]lT*$!l̨=pc>"rqBktB{%:7f6(-5yaMtc IIl L;fVdnjaNLTcR DeaC#&aæ␫&Ňw:f;1nT$P!A^fcF ᆤfYl`2eĖjNWk38\ρӵ.;D. fߝooG*MQcFd SRGm48]6OCabq{89_;uS>anjKA> I`1;0W*h.cFz=fv̨0njD@wt$1T"mN<–H22):f}NץB棰[(qғ By8U'3RgX?9T=֡ܜv̹졂4 3҄)p;dF + \n1`K1;u +43FS!3z +q9jJqEf䦴#zlEfؠ Hʀ kEK2ǵ4Ʌnd]4dssV`!3FQܢ \y'Nks8`eЕ* +F/3p.NZ&-R+Xnҧ-1ku2 tH8pNJmgNp @ =](ݔIML_yf3eKW&O^xP̨=U2#9J̳ xLB Sf9I Qf`Eg,dOPm]Of0~2uY 9PX>)6Tu'3xHZ{2nP3Їg˾5)@4kPuU_'3>6esGeh]0C~^h}3ouKƸ!Q7kWǃ_>JE \{NfT)/3s2 +Ú-V`g7@_ЫYMZAYNt)30/|33~(3؉%}Ci8Q%WJlC>D:^\hCdo&Rf7rG vkLrZHNʌ_XjpSeFrGI.\I*3cw +~1:|p%`Siv/Xyp~ . 7" GD̹[eFr +QsR_~zJ9SXIeF׻v(Qe|Z"֓"AqVG{Ϋ2 Td(HYeFf$p[J "JJL3JȬq(xIΔf!4rhTʌ:! ʌj a2A5¸Љn>1]eF V:h]EVI zEHzkA*3^CU'o,ϒ0T24OFƪ$ ReFk],A+3x>,3G2#M/2ätoq>k@T0yQՙSU0eax EXf0Er^ +PM8ca"_YcGհ :"n=x8ۜF\fp[} a_Gh8gsҵ 3zacM̽[K` Q.@-:5- Dh8K +XhWfL3+XO0,zR'De2:`{K@,3)l4+2.Q64;2ǀ ѯe0pH 3bLV-3̨E~V88 @!e` *z(vs0*2p0Q@Pl )/|Q\N YZ78Ha`}ˌ\0HYa48]w]kqh]v0Aw}ռ.3|ë.3 +9ֹj΁0C $EҙŁ1xaBcND΢C\;ˌ;Yfq $fOa=7 44#= 5.?ߥe,=,L0݈;?X6mT=Чޮ%X 6J2bn#לX:+[ʡXT{VXˌ{-3lY>Dw|1y^f7DeƲJO!q +'I0\P>o-vJIedÌ78M )|7r04ҫX2j*/àu,<ˌ у=(m +f(ÈQ٭,F濄3h[f )l!1XjjecG8Yjw6Xf^Y0%Sa`MW/U",vHY *(Oh-6v74J %јõoTfewdᵗ}Sʋ~¯HQ1 u:#"6fi8xwV:-OiWfkk6h<#x֏V@&f? +M*W+3 idE4Yaca.mI/Vvj'BUP2S +KpJk4.7Tjzy%fxe q_$s{re˾]he! LD)+W:7'*SA\al?P#:eP#1VWf0/ _qd+€pE +9%CASڰ*3ZK |Wm# Eb5-cw*3ʏ/mMhQ/X0 l6,$ZeFn+%/:*32ؾB\TkB̺%Nv bIVfDg%(2!)YfQ3֫ż`0ˌr À\jB)g<še{,3hDXN0=Yt=D se`1kT,EDԵfe."@=ps0 alZ֕$CU2Ra`e +nPgOCt*f9嵵4|VfSRҧ7 +XUf(4@ej2c"2c,n¤> kdH, Rf;2qD.ACzUfOs7UfXiP)܅*3P&MYؐl68Ӱ_>)g2cP`VXиP|2cC'uaRO~G™f"ʌа(:$$L. w>QN! +3?ʌKz3iHSVȸ2C! l`XH5>Ȑe?Ń̘R{Ufd .̀u@we2;|4\Pޥ*3 *˨̐NO/L*3tg 2CN(KYf_>/BKD[y|_O,'NC,%kF&2~鳠zj̐k7;\?m`p3;qwf`d"ʾjL9ݎq48$aL9er6)8( P $dMӍ8.zma!H)ѠJo`w v>*) *ē~U7*CnimI'%3 pr"Hyg`Î:KD7PIDyYʇ D o$3NxE›1gɌx˧8XuKIf*qK/gPrw_ k#dƈAlw`$_x D8t0M:Lf%d@zd5et?y&3~򆡙d'4R51fFp Afd"6'F73Q-C#mX7e@c2xUŬM=0|=m2FtpɌ{p5"2.iW?t F)4 +T̘%8 dिDUL7ɰJc@1ѫh!328ثBS!?vTfD|q)-j܄;*31 ze[AeQ{E+Qc+Ld :mM Ufi@2ײQfXZYD *ߕMI oYLtd&?[jYOf028!j7g?mɠt0WNfai;S F}C EVB]k23*E*eY ][N* 9>NI-\-JΘ㤺 2h +|MĜ#4]O`ݎ7:s ͥ8ױ<14MrQ ]pi Oni2< ߉ FwqsNJi$i u>DaH\7Q&3X3R$oos#(љD4 vU lM*%AU7 U-yFdF7~:~2&jo=*ʌU<ʌA@/D2"aq-F Oz91,) D ,Pfњ<'BA\MΚԀG3'3ɑ9Ofry"Of$Ѿi `<[ Pf@X+7y@ /WM' Ld6iB$/aS3NbHou;cJe{љ+̣@ ˺7adH?'AA}T:bΓO +j2Hw%3ȨwN"]F4m!OSp{G %paqi{]4FuP8Cu~d>q)O66 0#0`P}ZF1ˎ s_d%Xꌉot2Sl|7dLc~!3޲{qiN8\O? -tX͞sS2c- SƋ̀WMKfh 0I&6& d+]^V Oog )|dH~CrZew_=2gFWۢvyC"cl/R\ a`, x4xG=@ !#E@zW ,^z ᜟ:k{ +c nxldFrs` UҖɌg[؎]W0p@o<` :K)ݧN`x@2DLfYHL` >AK `pۿzb#DbyWV උ9!o&3N˅Gc<49PzV1jaO 솒;.c1%3ZxAq0V\!dĸdBڽ%3pһfgdF8 +]f?oLx݉=rpkڈvdF큱t3Df>Yӿad%2~Ts%s&2c.R1RNd|~e}I":WE,\^c#<#CM<_%N t +'{^!3B J3 pDi"5o QnP;t?y0"?n2#B3)y r+ˢ + m~HF*{X#33<v s 0%BB3I/cK`|Aj 8$2d +x**RG"32gBs, =dV{~={ +]ֆjOYDȽ> O @:lO&F2ê&؊Hcb:{LAjƕ/hbqDg؁ܤLfy +/ +6()#E.yfwZ[M[NR`Ɍ]Ob3?> īAfgvCDȌT5d}˩ 1/=mO=2;'sd8`0_"Zv0C/5NdȌCaӌ@rS8fz# .-̘(г|r + #3̡@աmwqE҃T->/x&7e{Ǧ%\JͽV`; .@f~␇1Bˌy  xNEf\q|VTa*;1bed<z3*X: C ,/Ū_U1c4bTm4૙cHaU {*cg>fLeHufc@I)QkF`!X46Yσux]SizmOMr]nj&5+''=f&xs;PYGs|AqxyTяzh}Ȯ;|N{j>$аuw2c F6_jѹl0B(> +=.Hj*ִg^ҭ2h+0^_(uZnr/x g!%n9Ӟ ԛjʶ?󎙏nos{zHH{j+_cOÆpWrYVD2@jP|ɇ/!c{ʎjz8mm~q\Bf3% -MCglsEs!H WG)Ef@OQ樇1<-u0cZgk2A9d +}1`{V y$4dSilU޽~(kA[r޴НZ UZ _-Ⴟ>Pɀ*J}ؾ.OktT `7_?"2E51c`[Mc+źz;XYZT%i-=Y(cA46fjfp3ffڀZfN~.fݿ$2:r1# +ԄT|l}R1cp$3q 4$T1ci( "xbT|E{XhTHljr ͪ$1`Rޗ~Y7&bF̍5.Ajd-6J RM@/ä9ĸZA e^o%P>,_"ujO)f(QȇTʙ{p[UZ9js+Ȏ!?\ roӧbWHUL >FnT*1/X znČ]M&V J@q["fi!C̐W JǘJTR3h-H +Pzm <1Uyh/-⇢GJC &ft.d~'fGg7yckOnV-8+&BѱՅ{ 1 El/aey|׬JuW ׅonb?x.mw Wn ʈyTBLX;eRNakO}1:U!Č23yqLPF{?q3)AvD=C}3.8B3z^T̰xӚPLknTB4wSbF>+[qw. +~qosǐqQeΚWn87uߒ~(4mP*'Z1 ;z"ZΑV3 ;؟.Ō:ĔGO3 { ڲ +wPܱeH31e +qcfw@xZqʤ^g 皹5Ot09+0-<19̞AWQ^CϢRpg ;!/zR +QL"9.L%k⤠)R GZ'5P#69fzL9VRd!)]4QGśj s̨}qv((,fM3n7 +Mi @ѥ> (kAwKy >jpc=T7fؑL2[K4ӊLD ;]Jا]$jX(,RX3 {6flΞ5fƠp6KCɛ3C&F lK[?ɋQ& 3|%R;1':J>+y{A]7͋Bޑ^NjB}Ro9Լ(ܐu j5h-'3ˋ+1c>Q0"DQȭIu,|H#X_꣙( \@6hPf3)ߴ317{=f4'(nAMPDAyCi1C4 1=| L*ha0,0>Q=fD!UcJdXSsikU}ؒcH(ο3)R@P>yHVvbt Kq6('!(Џ=Tؘ..MWK +bei_blXƌXU㘑s48ڸD!0-|f&?Ck4DAr{OtrLNWq'vB$SyO kw^ah0Oy̨pnj`҇#*Q@ v1c $kO3Dg5 X;f Feh+X$qTړQ% + ?63`{BcCן0pC>m̨^T] {3J9@2$#a\_1ct"9DnP*b3HIL!LzLLeq *fd&0/+֫d0`1S:$PGF=l.=+&Y_OW, dchDci=Fx }ULcCӘV)ƨYcDQ312!rI6!Gf l cc0R#L5VgѫX ׊!Vb#:I1(vw0xg#"LNFX$ +k|-b?jY{E@)AR +~;q0T~a.00Š(xQ EDƇL @0>!nb ^`bk00`nx6Y*$ J/ΪZBߋͽ@g1Q{a +^d}F/=/$h^"Q/|/pbB ] 6Ng(7.bB|څ徒|PAKH`1[مB^Pvu/b[+]rbv +Tn I-IbFR nbX/, c{rj+Rƺol‘cNtl%Xiٞ=}@]+A;k$I9Kf +CLk(O|Cj'l(vgʄjaik2L}y[Yoe.`0ee[cr.a/WHyĬ՘42+e6sŃc.uQOLFu3톺43myX5O޴牺XVMc o#dXQiXw5e9֛մ\$jfi0 apҞ^*ᖺP*^qٟ6]HL]S /4{1C0-W@F"EL;.@pi +tANp06sѠE mJsB!%'.4H`.Mi ߂@d Zw 4-8MxlnPl uQ[,R-l;Ԍb-kт:`DQuLkFZľԢCf-)eYPa0ZG?E f/`Z,,dᝅKSsԖh9 BYX +K, +%HeAhʂޕ&d!dҴDY 47w,.cAKXpae @,Tid0‚ ! JXs43ú{[ H}V`[|W{_lB҄´^q'f\į,WO+`$PFîH릕06/ +qEj \ibb0>X+TVxrZqpъ" +wڍ*+rxe!+8,?gpMM^65M[M 8o+ؙ7 +#Kmũa7 +jj@T{ڟKcfsJfJ* R)8*x~5 +pX'*,d !kB*i +њbAcRZWm+?(oSHu\_Aǵ)g{pNQ| o;9>YQϦoUS篡3`kSðIELa +*6KhlZ +ǦR0X)ʓ?lQ +Pxjl0 +OgWR,TR0C@H +`(e\)D) QGAbZGڂ8 +^5e(ʳM6ߋ (06* +:oEQ~2p3@`#p Q$W>{dB(v ˜[CAtn~ +Xׄ?܈$NuȻninv`nR +[΁( +zfV@ b +J\DM'D'Rn'dHV''o{L;; o ˴}с7_<1y;A~q'c2ډ~iuӚNpfp> '%V8$%Y g* Ξ Au[F%X.nYtKM\rwvŜwߡQ%lns7olSDmJ R9¢Dgtlx>E >C %xq-œI-^On2'AmI@;lNgw<Y[GCك>}6-{%<1% KI ģ$&& $DߑHHշ *, ! #Ð@ww]A!SHȰSVSMkЏ0y r#G@0$yG`{)ͳnZ7􌎠k9qDiG8,!W'>QܓFPhfDe6_2f^D^-6Fh&1B5a[!EQ<ѕpqءE"y bQM`4Dr D\PEGRR,{D2ء;Q pz,B Tmy>!@'Ee88y_WBB +aS+B, `$4!WB$c$D!Y==uQ$,d jA}7 lGPz7. 2=Q +JyAlAH=,@DAsV Wz΢k awcUF=}a= +O`?ث?)߲e= F ۳ &hfo#Ù-g~ = Cg&`@}Gl'>}IYhꯆ^>L%_O3o>7َ !(N !AOJ9y%ǡEҗ5X6{跌8}Mp//MO_0r>zWf,}%Dl{z=gG[DY|y:v%C/T2SKGa,f>*>='o':=>}Η;k,=TA~ⷖlT_O`}u~҃aGazaGoe`9Z#/=ƿ=Ὺ7{߰43yIWKđ4 0Sz d&=0nʨpA"8yZ +ټx'aO*ao!e`ZP F@z ,=}qpW&BOz` hk _|xTz=&fk!R4 Zh GI:\ECè04p`7jEJKnaCYѠ㮬+:"֕Ⱥ@tEC"C0E6hП',EBk,Aۄ&nACe OhТ! rL3 3GyLrg0!r ѡi$Fi8 :a(f̀"x@"o؁{|?2$DÓ)N!RJ 5dhIz БAGy"hWȐW@0a ?J3b,T6J[ \1D)"'b`)bb ; G@6 Ɂ +EE +CʄAF f !A$$ _-/Ё9~A/~ x ‡=Z/I/m^ +@P/xw&\' YvAe)0 q""҅tszpoqA  \oa--굅-8hHl ٦!(UzoP c?\CApi3]Z浑ix#靿ӂ]qK ) 8S][ZXB [-|Z cA5g3ς: rܢ`lKls @P,`YQeAz~dA@yd kX(\ l`!9AL+Pu` G_Gdf#v 8 `A.S3`a` +Gouw Z4^ ++8Bgt땃B cWzSnST_~@&dePA?~ɑ DI}K7(ݠt~ߧef\*.r| +\@ y$ZGeѣ9P^G0lp !$^jj-1c%f2b#U]=]D!hl4B`:vCK"!0uCJH0 KH"86:8 `,!>`Fcb#2__}ivGjt.\ǭ[k$}[?~i:ۺ㶆Gb? r]kO3>]Wnkiו[viV???~)4pcvwᙦḅ_irgXؿr_p m_ne޷__oLǟ]xvam]mg~_i_=\}a˲ #4n ׯ}Ұ[îu {xk{_p˭i?1c/#1?؅]>stream +n۾K{m_ӭӭ[.6m n4z9Op3} ˵w_][޿оrg} n\ӯw=<˟n:~[oggzawr{W[ߥ[rL q]߾nڻeBݺ~*u=v_ϭʭ/a_V?]3 muߺV˴뾲춳_ٕi~ճ,2ӱۘvEVoeڵ~s;ϲ,皎}v ov_k_5+m}]!o~=e[k8nLm s[s[qLӱ|O1,/4 "q~#[~:neXzkyZdz9nv[ynkyvenٷ\mv~kߺpݙܺ޷. {׻֥k]Ǵ Ls[ӳ֥XiX~oӮog[O ~[u[m _4=-MLgY;rzڅ+ܾ4 ׵ۗ~_/u=> uo[4=ۺ[2=WױXt4M4,߾ߗvו~㶖߶gmYvim-ߕznZ?~nvߦ[ycwnZVv]wwc:pK_ݷk~ݖڷم+4,?uz.Mank׷.䷎gWdvᶆes6m6]B LZm<"]W~ >aV]_~gZZp[?p7oΰ ##}k 9L Rt?\2m7]8BF ]BdW`` !M r,!a4dU2~?"˝=zE6pzEDk˜qV7q-"CVES,( +:56$nc[333S45$n"nHI\HA,xN0밈k^ NH?4$^CjC9f`E嗙jHAH*r2*ySf 2'!'t(z̍ jl4hI[9^"V9MGtvmAgHAgh )8A/Q3 TT EBL 9f &6 )#j*?b=s3~@ qe8pSzPmn9ٍ2-pXBWPܐmhĆ"*LS T$,i|B;4zP2LbhzR05c.c3(1McCZQ $2N=!Q48bΧ`Ǚؘ Li2V7r+2#^U`G[[α5o`4B%16-:pyǩlLkNp8WnՔ^),$l=+LG\(Zq-o:è"V/9ĊVUxIleV']9.CS(uus2u[ʦF4R@?gvL}uk]-em:% ?c;&t@}/\t5mt8]!:27[4q 9zc[+1.Te|")\xt8q!`ʀS^mfIZn)ԒyN(qT#S8E8gԎl8!1wJDeAue:#XʫLG ,K:B 73r`'!䘀9,BBS$F~D*,S㍉C6DR nXbZݜR75@\fF?bjGk6DS9hڶQە2Eؚ{ -it}L(8B C7CS՜^} B *30X44С$ Ia5a5ÜY}M 94є;$.$jqAz"3rHC1d +!9ԄvΌp̍ 8GVnQ?# tJ̎J,pw 3DR 4!I'R]3k2r*AB;J=&p(vIʶp]@4.śD+tΝs^i$^/ijEECG8N^ƨY{R(.!H)]]N"CƦ̖UyVnvOo¡T%u=02.rcWbSba:>s3&"憼GZC̹nIY-R/2 u4Ź)yGIʅ{6]u[ +hEؘ8P0zAvI Lijv̔jg];B+VQ`HnS +R=0chs#$BO(q8N숖2B;butIl ̎6m̘mk<եFܒxˬH*z fi)2zP9|M,TMh5Sq_Y%@P7BZ PsN += *[dAL=}p M=JdBN+ +CC$U +jHh%MvN[xzGK4BC)dN…/ /2&1<<ƝC+>(hĎXAPf8؀* Q1PrE :(KN 9/p|̻KZHUX'y("눙 (@g ,! /#c^w?eU5IGRR3+ 0*!S;58-a;ڵ_ +zη]fEY*)AaLjlFuJ iA-V(5o|vj-16u%[4#DYjC>`jGN tM rjmfP, s'a⭜#d&E$,eunN{?Js32#R]fHRܱz`buQ7"-c$ Z T˼̹А +QbZ>4G+3c:殂yE\²&K赤UaEÅ{6s&@@}ǗtN|Cڮ^VWhvitΫ/x,Zbus[fBVw%M")bNtxɬ͈ԐVw ixnY 𙵱! yA㞁&Jv175ln*LW@-pҢ聖&N Vd0u!5yu +7zKp84@. &C[t6ltH\؊VVy-rbO\Gfa *=;58gQb;&CYM0L &D @$!z9E*8 ~TaɃ+wz`hŎySo%.3XA?VlӋH?2pG 8Yfi?΁BQBvt8`hbcS沝5:r-l׼~h M)p bds`MqXyxɛ;36aU5@bS>ÂT h䎪xi$0F Z#" i</#@%&7Ikme;*ynb~QU2;A-cv!HAe4pQ؁SR5AN&amܜR)."B5My~K\50I" psgüab林eB#>؆N,]1*|"4"dsJИ hSBɅK+R)WNMx"ZDiLi)o2W95UCq#jSc*ϱ5sΩ*aw;^B؊T ђVU.iO^H +"/y|F *>Z;m-8^SJ'rf@QCO$($h7drFVvF;G7 + ʸOpS77bhesh$FR#S#]EĆә^ٚ9n`9ՁET@u!GJF1x2x!U]㞓;g|Xb;R.H6Vխx̫"Y7 ŎPK87dU(T(N +`FQ($(xQ_c#l^}vWx^b1(`Ia!'2#\:8'nvY  $!mOiؔU*CKq1]Ҟ閹upH7A!!N̨@]@lLY{&΢i♯lF ,P`{P`(Ι̐T۱jX/aGI;DUr̜`k?kfCjjJ +MbHSYНk_SWA%)a/N vJ`o k"tzerHМ9wmhJ}")s*EbP9p/^2G!ZD*mv=&ȖMrНvSp82}AuWιnif$|^wf-?3g-oVٞך.թEpR JȡAԤCRIӕ*%m<Ď58R֎ 5 ]bFەcbP)wy1sB:HfW7]E@;MO4ǑA3LQI+tHؼЎM ,1SOI*kbU78irXϨxˬhxN)M&?HBX12|ЊG\CP#\FkYR7y 9BN5pII`GRِ2+!V} W!GBxǨ'1"W7V;`fJ 4(( %E[f}0'J `҃\@J:hV K&37 1oc>pM/7yYKГw1V2dP"cG+A<~xP)LĈ H:e4} `Y LRDؑ Z"VK̎7ĽU)~bCh唦VXL,7C 97>V`%T5ՈMmA#)Z64 HX(ڑAs]ihxU`DPq 45lJq̢uUxU1w]/56:<^T_1)ewl[9f[)1s[)y풰@%/̅'b]9e5vI:=Ix{?YڸԕӮ=Z.v~:8Aeă0#[Z댬;:DJИn$%EytQȗ#KG?:)J; (nlőZh.-~W/3C 疔|O;kFBq|`)on4G}CfulIR/\4 6sc'T'vWXIѓ]3fU5T Ʊ5oWiYZO$7-w@DĄ ybYEҖxPl$'gYէhzDLi];UXƦ,X&pp4U Ӟ`3Ӂ2Ș㍡dF"yhaIPq;cuĤ:=$iOz>Rcꦋ^kjKƖ܎Ԟϩ Y>Q)Ė#HujIjNywCz&OZ=:c[&.cuLk ˪ SƅtB +T9 +-~t?μ{^u\-ޱJA>S Bs`QZMhP7 *VhS8E!Lʖx@ ˙&H 9}6WnpJ !B45b6rBVFsY*ĐxL/Njb]$a}BLHC3q$DŽ%:R_pQAY.郟&g@UxKٝGM;;JX SOر>Vٚx,K9]9s̍(B xQ,y=&)%0'[3J9x̌Op\w|KYYe9MmtkOXNYg)_-e;Iʪ0aa#{#$L:#s?_Rvt'8Q0Ͷ̊#,Ԭ/xm0Va$F? "05hc(k0 ٜWIlΥ@b /̠4$Z͛zZB )Ȯ@!om! 4Ms''OnJi{.)m'֚G׷ 7]͟5V`"r;,/Ei\Ts81l({2?5;(=a ׏BA+]EGmQN40c?^8d]t/ -Sb PeHuя!@T<# x]Sۓ2C"2~C{4v"0l+qr,v h|4.STGOa(8T|*Ct]==@G^q_!nx" +TeglHQ)&ָ7!]vWL3I"A6{$/q +~p?.zB4vLWzvewVwGWyp ]$%^M~z(4%kC/Ih:!6P?KSt~_nz΍Cp,(.,U>)91~7HVIbr%XoIX]M:o-61H_-. X"QNL1z>K+לg.:Óܟ-Kui0uaﮕ;-;ŏc $sK,8Aa} +2jFvV7BY5.l5YK) _'a?Rªש)inDSegG:̒b0]GRxlcӯuϙ 7-eSJΦkf +F{YXFhH_C9e*>ʉt+G!*tTB7PĐ>JρNḁ8JuFzF[p7Hzwb.ˠӢ;},4ݞ.u +@8L_V; b[~RfuRm$Ez5ccɜ _>1 cB~Kx+vW͋:XNhg& m.n.1rEN;q*PƼ +?t7z:w!3W#NU[+ݬT=K +5ȝĤVD%2&7[M 񯫏??Ps A sx +Vˤ^HH)˞uW:z\'?a:hZ 3ZunS'-f M"Õ픴d9Rt%"|t>Nl}"qA.b)q)(YẂnb&|IwMZ=*#Ҷ-`w: +:kI=78]I鯄vx(wz&SC߿80V-]̚P J4vU0P$0sT(Y41;QﵚF"{)WgP4lU= +ݪ1K"aBG}K?ECd+E![;lPt:tOaY=NG{P +6>e -_ ݐ/Wѽ:6|m+-)3\'?N +iJiQO\tdk۬FbYA+iCt7 bp{J8U/]+y 0zjP0.LU.fUBt𤣠=c9::5'\{*(6ѫ~5Q;'wZt{&o+hP v|c]pg/t9 ErЛbY% _ ,Bv=BBA'R F9n־A?ר[D Zn?DB )P&sՕ(qh_zJ Hfѭ̦cnؙp,_LC]şU }^F8fu=J th **m0/fSueL I6.*@rVU@GDՍչV=2an~"n0Ϸghun[L0!;yf~:=s(c|.lD M<&}N-/ #c(k3%apڋjxzxH;:[v{x|CIKQȜ؛)M*FfOj=s9Dƭ OeͲBeoAosQ,֊# +yKW}.:ҹj،Qd&@ԣʭwx~7 +PNv:N$'^|b?]Ey bוVD.^F?79F:z] 'aΐ0+oaole+@o\ L ` Vu#}f[{Ȗ%;cW*ybUwNlHp +( 38MFql@8?# +&TB"3z:1\L*_rWVgYXJz.׻ZI'V~Vx?v:X#] ^ܘ=ۧ]H4pMA:"Pv4pnQ!LqEK^ i).i1ZI r/*V-ҶQӛ +n%baI +?x: [7C2&'">\~cTI"H%񠩠eH.Ϛ%pF $'Y|-*=WzA\I;?9hncH? ?TUTDs(Ղ)rؘ-D,@m +tWAtv:88R^X`'/2N6xūՈ׷C-BkMtzM (8|̉AB-G+X_8nq hQ9tN@d|.g_q$5uLGUdo2[x-dd]bIOWBFa蟣iO}sr1 [D_܀H\_ȯC:fQsM(גzn +0Cs£Z! cѵr_lEvh(}7!}=X 2GK 4)I`EЂ>=0T/@󠘓Eb'Ŭ +hn kK/(*uKnH97َB˚pn{&#fe q^ドL%Rj|O#Z5l\>BUD:&@ų 1:mT\ <n0>0}h +Lmqz0BhXbjr-#qlgL{ 0JHոiDC89DC o!2ْ{蟸Gf%AuT\@i{v +UbyKKbypbM^ D'k⧕4:$ IE +O`]nPYQ=4 M8-K>(.'A~tlD:Tbm0Qvf-o]ʤM{I0(xVāAK)P=uZnL\9.9˽)[sl~霺ãKt4vJHkws^SFzWpء{X =Bs|eɟCV:niP`iצ"IRt +%crEϬ|K؟l骄/3-DqzE;43 5>m*W^JR^ZKܾeA26v"i7|K*G9pPj +l\A(D|Yomͷj9 #F5YE_B(H =iFM׈~Li?AJ eZu-"i$Z +@|7&ŠH^=T;Vg[dIHGLwJʙ_q>__KʒEC{`eF1< + "U >x ̇VNE dsLc(΄_VHEt~ẇvN\F3Yj3T`m}xIxx"o_ +gf{_s͊qB*Bq~T ލBX2i*2wq4Ņrv;괏Xըu4 vX;hDJ. *U%b) =,wܦ?ZYԊXmCdl*Q|we*Do󏳹ě(u i|1-n3KR-W$29h\~*|'[lXslTVsks[e 2 i7Ѓ:gzkjT+ڪ𹢕x4ܦ%=u F9TI]2:o5A5@'tYNvYV{x>/٦?h[uS'@ +@*K$E\/E$Pb "/ +XY]V1tQf]۱n(L3$z`\wgܒl=* +4I(K*\ zT@:Qp7e;/]׿ZNj3݃ou2$l^@oUSA%CI +KE]w_HU)L9pZͮt]:Ga_&i*ђ4&̲w +O C"ɵ +btoQ6G<-cBԑ@=Fa?:e^#H}8vkǣ ZA'7cfzFmኋ aڔYm1-^GU!aVμ]lnekJ*cX|5 J[gkpolOא60r~!s$8<&[dzmP{[~Moi?wf|u~ȑLEPqOKk?hb (=cq=o0oӖ#18Tv79lmknB.o>ojgz)eSWW(#27sMPʤS`t10<;,S/yz \YURKEdʻ|n@͢pBgQVVLI^ !$Zx/kj0RVQi*D3Y֢[ +cqA; v0Ap8@ ,S~u4ĩ)kM2x{ 5JVC Oe׀z &H?aiVkG=Ap[Az5,:DQss kWwyم,1}-F1te; +'ob 2q1ʟd{ gϐf(X \H#DX/$f;?aM?LOq`Sb0<'@:>gܶq[è:jP?RR8Oߝ!DD<^O +υŽPMYDyW@>oAWXq?$\GNs,qeA2(=eɍdNW``fI3OsݥĘ6T4K`*̫&z+wRG WWvy.kd4PC%AJ ~]slƗغ`X`Mm]Quc湉]CTQ L?+Аl[?EnBgTcJ +RڔtѥmoM\6T +^kvwYZڲ TߙVK +pFbyBd *15VJ5Ɲ.guHBVQzg>4kowe)7K>U.ѿYZ"W$gD]Լܔo*Hj5|mc6?S:]:VGYڜI]X<+~ Txk{$}^/Sգ<-nR:}y#7WA( ZD~a01bhZc :ﳾAKp4ϮHTRm0 u7Tbgtwtob-?ճ1:-ףCxE!PUb҈="U꺅䀡h.fBe̖x-5ˏqI.ѺK7GL+ΙȐ{C+)"y V{w}9R#8}6}B'"- 8M] sKB,A1PHIڅi:۳ez8N(I0?\0ZQf}N_ۆOLCmtt(/']F6ʼ؃)oxP?2@Ż6t?.ۏߌ+/:%D!9=}mneb=Ȳu +:`(ᘩfܹAU(`Oŷ~Rz}+{dsc,8D1eJ"7jvG}?ѻX/?zϭH1׿q1YtuԨ ^ʧz$-~%pQ PR/|0( m ჋J:m8*R4ϰuMyYCt=HO(_i2xcc oT9ˆjA];LQlm}P$bWIi>9Uq*7D`L,t8ϫ7 SenI^#qvRwYpcVޢW_q[k[ׄf( 7.otԇƦdMKkcZ)`9J둯,q{?Z aQ$nElq? .knc"&nu}Pi)q6g$QQ[c|;%A +eDDx9 +#Ws +iEmcMt)DN쩋N.3 (1l(8'P޳fOߞZ$VN7祓h/-(!5M.ֵ{Jł&>ϲ)9ᤦdd]A"p̳FMRMD7Ýt1+C6R0@oG,ñ *Pa*&zG?  ټwhƏpS2ND,Җ kDAt:BYة$%,9v}G)~)veJV3I D9KW@ae +c)qFAV^ϊzlgh t42xRЎTM羿m]Dq8k|Vf!jDZev^/n2(8Q H.ҽ%nHE*w:hy6Z]D$DI(?tՙ vH%Щ^S#LpUsĭQ6E[H5Fn!us\unUd ;E dž ;D^Uhl7nG=MYG}*8|DCED'v$tx>oN&?{JpF7kp5kZD2K^/A/GR ?r./cȴHL>0W}t2 1 0HLW]5 f\P9fMJ|nqV0`Jͨ+NF lnэ gA?l$Pf+p%-x-\0B s]sNdD l\GE_Kft +X9.-3Wҳo82 1 ˊaPFD o'g$/-X$!kOdH^ZUq,"Ƞe'p>w#7sfصB$JyrܱUf#"> &IjG&J J:1wX{R" +ƖӉcu),k7gq`''C^rD +X Gtyy4JL_(y;ö + yiV#I(-U?V3)g,(q<WZ#;;?Б|<;eG1Ο1 L%c7O:77'+s1_)Iv-^ rYEa],qQ5-~/<|F0zucZv(\ M&qW΀ۿ |l%dTt=҉  w1℄h wW[6$Uf (68<`g-ZU:~.Ң>%nPV| Ph~~Jl=%` +OJT XSTY +CL\F}ڮ͖quC{3S-5<l1jkWq*}2衯Q >~7~KX,F0;RUFO*蒎n1I"֭y0ci#'ŦXn+G]/I.6.d:GU +qBK߷T9 /{ؑ ~(s9ڟ(&[r"SgzU2P>H7٫< +js4D/d/]6ϝ 䜐;paP5w_OmsjCqd:.6{:_˙3%DҤT?Bܗ~l\Hl$K7TG\4z{dc;^r'G3B䙜6K:gOO0s1i Hh_9ьvQ]D@//G1H,ϥ~alA 1vPySb] ?b +ʐK& >0f*`0`:71i{1j; )9XVby +7=^kyQȅkXZ&mb?N{_oSP죰yizRbEsK-+Bbea `ӌ(|?/iӌ5Uri1Xb$>2[\/vJj :#c8hԌcd66TbC5C0rj{A26-G16Q#%ƞ:w* +iab,ɘ +ndXb,3c3i21ÅRl.ݞCcyq[**DJإf{'ؘܘ,S:|:&6c4o}BI#!Y`9)<<@mp0fTuPXbɳR敧L᧲paeGQW6a \)[6Us R!W3 +R?wcezE#L5cx%)l#B +3[fٷV3 kV3f ,Z5i` 1Pzf HQL}ʙ휉>˄óP֌?CH - fpΕxY]E# 6~58ڏy4iOHk%- 4 6|)KR0- kee\i 锆A,3)7͇t4M vyfca5i5业1?BH6bNV3X,Dj/P5CQ[`5rGjBVj?Ռd(7xRj.RfESV2/lE˾O!dj~:wj`%PdC=jMfT Q a5WT T5Z#c5#fP(uzzB§jFjj(ϪfUExC\5CQ֗[ݍfZ5cZ :ߩV! }7S˦fy7^N͚کR3^f|-+0&Sw;jR!jԾ9"w@n˷ ?Fm~ef(nhX5]՜YՂ%֘UZts] +g?ެZtvhhO3iV-jӌIڲt5 +Lk[&5ӌߟ* ZK+ZuLZH\˹JiZ5CǛE=D 5B|M~͠lTzAĆ069 +j^fDI/3`F 6{ X6(8cŽRy8qjFry@H-p0I͘gF=?α "(\ݕ 87''ܙSj\:iN\^n&jIۡfФ1a鉚QjaĘS\ ʜ 5m2>͐5%&Cp$/Y'D.5jFYDZPj5CY\(5ӸJf6:I`s)Wcmt%7x~R ,0ENI`t(v;z3fA՞ +ƕi ,.4 DSxA ֘fL[:f"&f]RRHעtåf`Wӌ4ì_if4d:FH+5cw͇tQ̨ if0]6md] R'S/=# Y'\Zwۺ4 Jkn^?_WC~3‚NM3|4CK3f1ͨ#{⠬.]d_툀톗fdUO;`6{qv1~qx;'wi,irPidl~v0pw$B. iR̔G 3{)XNl*wY9]rWIt;7}$ @J3jN;Y;^Ҍ] +)A!:El;uYĀv͠ +A-_L?~Bh i2JQfhO3 pw/'KѠt8wR<P1bO3 x˸4t"RgӀWRޱC CiF? +/ xxBƥ/xNxI3&ݘ,Y;Y_\zA`,.o4üyʫyǤ7o9/GyfF瑿4t iFj,eH8jҌalsޘ_8 +` +yky357c!=+>\as}>o4|9#Gn8,dy/G+&L3,xhAkhh zOvЌa=8fL̐)MU3c2B}fһoXyό|IO36R蕨!KG̨hs YcǗkό3{fT>3J*^gl%b谞'Jz[zD FWѷό)PO9M=#Ќ0:`}$>'h_0eO.KwŴg_{I,:ܓ!͐{c 4y?/hN{vgnhohuk4$[|5A5(Z>=||NH3OAn-4#E9W3Q!D@جʔrz}G3h(W6(€%婒"P!{_lV0} +?G>M4~nE~ _HPF'Cf$>DJ3mcYg4~G3p*fV4#_z_? y1!_-:QYtd 1`Ne_f +A!,'0fD_S@R. j BRR`n +w@ +ŀ$o@E +^ ܏ Tp4F1 3T?فY=?PahF-,͐ޒ=1GFP<;ߑUGP&c +G1HXmPN>7@/1[|i=f\2hnjah1zʣP||<>Hp{g*1ˎg%xcͨ&`|"cF$h/Ll4![VY;EL*٨uK,tqt4x1#3`C'\E8LR0Yp4Y,^ڌ%R4ɌfGQEe*3:9eF^ f,CH0i5BˊeA>w$xyeƌbBR T]ԘAsCdzVE\S 0:OpT "oDV``Suk #y5Cyx?;#_ʻeF 'TOT+_flV5E2jt2Oᗟ#h̘CZA<!2)pQK xY?#]f`E~g5eZ2S@Ae&n'~ˌAnЖAJ)4.3 +aQϟbL/3}3Dp XftoˌFkN'y]fb +UPZAU\{2²p+3dDA` ˕xSyec$1eFtAPڪǯۄ(3T2#q:=ǟzO1 +0 +h=GM_6S+3 N_AE)"-6Mo88:KgR"`Ư2Apŕg'[/W08AнkAeAl[Jgs+3LR㠻pb/=\`e=-3BA2?Dzd+3v2` s|;ޖqyeF5+3Azkʌ۰@ЏtxZ9I:AjE6,NcA3pA2CFDꟁ[xy2#ٗ&3&H+oOmRH &1 2  +WAPT$z4m<`\$qӸwh 8̠<:2Pd!oAma1N. @\ ̗̐ v$q$bFdS%3hy-8dw+ hbO\26.q|x-Wh}@2[?=!n#Qf9eF\e@oWf p&m~)3._`2~0e{*S!d]2C`@0/8/8JpP&Γ28+eʌPPl":>qSf 'FQrOfH7XT ~Ɍ@PnAaAp1 +Of0l'@!Kfw:7Wu@pzҹ\!3z$ji eY@ͅTTTmL32|@p'׽"8hPZ|ۏ-iXA$*5#34jɌ&O%3|^VPD@ˢɌ{ῸɌ7tHf+&_@" :`՟+= Ne"3*Ȍ +BAA2A~dƫ&%nEfHnv!X닑ez8S} jM@"%{adFH]D-aluA;`wZ>'3YrF!i8 "Ϝ!iZR2X74EvJ2 ȌևJEK +!3ȌȌ!~9D)Fs.'%"3b*2wsh,;ϓਗ਼ir|Uu|tTCd2ϱcGIlHGtvWSE8"K v%P{μ4&编<~G`k n2{ %o9rO"#̺Z5[T1r}q Bq?x[y!N.6HfېVY2Q**s2j2\ +"lMteݸ\ ToQDt9S} Hiᔄr[Hrm/rf=~C-ׇ@bp.)Yŷma$`n>ViHtLUn~Q\Ԯ:Rt:ڮaM io:elI"Η^"՚chTPg4t(DK7g7ߵ$y;Zk&1'5Dܒ6>h/VE l- #s+i~8΀qۏkD~#"Rs6Hͷ<.l]pZĢUHn:q(^]aB:}ҘE`k!/3Rw)lDU&R;jDAi=vH슥%f緬ᖐ|wi~Ҷ?ʖa!$;v>.fؙ+UF#%!h"ћ.-vjܳ~=߉c6p8%XlyIr+G;B3;J 12n:)|*Pz: 8Kl;D:e>CX[%3 irZDrf"GAј+7פֿ}sUE] +&r`evT"Xbj'פXĐi\ 3{mUK*pPH8"7>Vq0=ǻe3ª`&٩G' J ӗMS ֋,vK$Ȣ[v.C(U&S ceonm:D> "a Yv\3FKg iOH|tFDQ*A{ 5 4Jc*oܺm%22ޙu$fxd$QJx(}Eޫ-wdU2cR9jW;N3::۽p^we+:T+nr(ԫ51)Ε2 *GP"|9"|݂1r' NoV(mm؎*QR%.5mTVZ )աJdbTM#2Q8-kD^[Z2}n|261XOc(Q,J'qdb\~ڱ $["7 $z$&G.+ +H:V x"F,x"0/ff@ͥ LRg5 Ihl .6Z~mpP|/Ila$hhpQÀZJr}ԣҡ./yyx boDSmԌo"kl5Ka>@q!Alb# + B"44=ίJQ֯hK%B}W-wԒ=m>:?OtFօPK8T *6H a +.lؠ"*-$}!X +7,r@J͒#nGfB|)G;0:Nl@lؘ#@8&Aǩ!jԎ A}M)Ib!eI]s'YUf:EZj%Te*,3%J 38' ~(? M2)H$X*aNeqX\Xe%,(&DN 15 LM +EVQXq\ @|AZ8dQʧY(Uȗ+UkD%ŖPF9$E 0lDaB8aب@a &%Db +LT +].\FTnӤ^6\yNXj 2#gB&` 4``6(haC *l4@ +"BDlh")NMTu!"sw)Mf{Uiv`D#gÂ*A `lXF#6H +4x@Ć-*P#FqDh!hDVy |Sg lW*>j +Ad#&l@0ظ 0a<AB$L6NXX¥zŸ +Kԅ$6  BDaf0pb8S݂(qb&.! 6$8аl,@BlAÊ$<p`Rq-JVuaf2(z2lj\v EF$, Pؠ *ذ +ؘ h QBc= l@)ԡ/{e22I;X1`ƆHX6(@† Z0&N6* F PqaÊ  blD`b#B/:d +0A`b4 IP9[uS4eu}\03Vߙ*Pu$A 3-DlTa6`XP/r @򀞎cApʤA %#A[ .7@`@@ +66(paB  @7j ⤂dr`36F!BːSBQ  ,lL A`"l\б!a bD`$XHYK!:ㅜz-L#5%4Ս&\6$` F 8ظDPac .ll Q ;]QQK#d* @0aؘ Xa# (lL`!#%<*S'u Ɇe}P5˃I^Uَ-`=0:PEN0L =Ps !{Q31k*L2 + 5ہ~|iNBi}jFg3󻏞.#`lDÆ8H 6h8(af WO%ʁb +;$ZE?atrXD=Wg:گ5O,P5Rp A9* DL0EQ+Z(9yⅯ,vhj bH'x#~Q)ܺY^&Cjv6VcKCA4|lHÆ .  #9_ +4LC,XWhean$N.ů5$xM)fIk:)H9-D +8y."h'p  + +pDQ{fqCi DB06c*ך!Ի'-ۍS~IYuxCj@j@ !L`a `#O=G +$k^BJ 9[@O*xV߯+TY4D@وd D +0&-L +t r-@BDxq.`t`RYRm֚GSl9e滆TFe-E 5B%4|8b1NtH8"CCT(Q| PTBQP^,aJ"1O%1 +eFzWcxU-]ƉMNVg (@ P *q!Ë$d +p2:K(Պ%[E:k^s( U=I$[*rQ%2XWk)hNPc 7O 6GhWZZ/ch5aݲHgxA[\(& ( OX 7}jacMm֢ӣ͟v 7Ǎa' r\n;׭##s>F)dzԜD_L/b=`4)MAʀ8^ ȕl +4"[b_kOqv,7Q8[g+NuHU,( tSаC3@)f&zζM:$-2Y^v%'=܎9Q(CJBh5gzF_|(.m7>'f)= OD9%5C;AFJfx!Fi9^f܄ֵϔ7Ajqb`nF.΄Kj[,,o*M0{>M*ŏ nB +faz'E,Ju=.>]yDPKN6|apǬ:O(E17=2/;?< @xl=MnҼCÛ)X.U1 +:^Պl$~sJeY4r@* !nb;B$4rJLzGٮ܊Qb{0S c8^%= 4Nc'xJ`qψ˟(Hz)Ь1On”BrHz]o7- + +)Ϗd eYr8x*Ԟ>k8cb! <] f ^jtBkd*^ٟHYzEk:˲ Y5Vbsr`ᶼ~}7] oytA]z%x(z :Qd&SfmiaRp!Du~R؅滚~q^K>mˎ[I(q/2~D&T71BYzވ섩U'!Rcy[r:DKxo{=Y)r; +D@k^sVbY=Q-fq|/FNJ Ŏ^ԖήYcHEMpHl?Qp"3uFӻ0ם%Ն"Tv5jۉKCS jf +烊T +0Bg8_I0' +$Mքײ~kw"rI`jYse_~OW`o>l8_ fV(n !r 61^5X腱L!M糚Z]p)ȫ)Xp%ϧ)Q\T`H`l0S5lPz/܊Y{ +kA.L}ء*CAs꺝85ϥ(&HcRhp$%ei> >&7 S F*w X@m)zSpr e\d9ګ/M LJ-Qo 1t}qJ̈́qZcnTގ\ toADhyq*S̺]@xfg!Z;j㉪nb^K -dRiLaw䖝焂vLDp;<^m'۟%KwtM[ry-ˍ1_PZjlPObp1W,IJ[`1"3~P F 7Re.7[ +Mr$J~9̪6 F^Xb'Rg%~Nc5[WH-'B;z4Faq*Zj,]jt|` `^J{N2~EMr34905tD: {Nydu& c 9VjE=_rDF`|?@UGDw`e5HeB8UցgibxƈAhTTBՏ?`ۦaܲ=i0l?cv/EGyL#!F"ܲeI˭fԚܱ\+ne0dڴ_Kj6Y8ݠ@qDϓZ":M:kEYG͂V̂.AL7MZ0M$Us (4B^.awDϩ{ֽTwM+-m >lj'I"7BxĚ7S1>gZ$Hd@c| .b@NrWBrO)ȩRcr#q#"')Q:vͩV, %pɞ- K\lz9ѯ7v}ǡ? /Rk/|`ߑ7͑/[6@ƨ6/\!],Bj8[tOރηQ\HgYDI$*K1_D vyH@u_;Yo"z\]p7p^PaĚPz 4Iq +1Ir=Wj!@1L܏yvʼn7~*.5"J(>MhïeriPI~ % +Xc 8H2Cq%i1<6@ LZ)qU[+a`\/H]aw.\4:ǙЉJВ4eMH2y*F  @#h]`\PXLnfT!ՙ !uil* *Jdj܂)x2 Qa{&#yCe{~%6"(.q:)eA鬂LAb} BzC)>KfhZb&Ъ3й噅_ъM JgQdԪI\p+ʥ9 0 3@6,:P[ď +2_#f}fX>1 +7Get%ɯ Xx Lg ߕۄ:!yJܟC,/A.V>IqE6 ;QkEɯ +mwŖEPl'zq2c@˃*78Y.),<0aԠD.4# T 5Co =DG& tʑ  +sIKV,)p"@vaq2pTqjтMo4T7B˰4i˭k [VQTDԠ.A.^z ZLY 88'RX?*kQŵjRf-3  ߠJ +W8ƂXǩ̃q +emXd3Rd,I6JR}g$?]eV[ $BHeF~ U/W|Js+,7A((4e*˦&ڳ#|QhqԂ E{p46Њ dfz3uV@`TJ-Cy5a],rj`MC3\!F+\7E=4BpqQto{J-0Fb| X8$e`x(. "'كɬ'xZ1Z +c0+` V +dY<2e< +ZXltF>[m=-[U,?r:!y(6 +6Nj&z6Mv]%qj,F0 DYZ ߔ +I'^vJn:F]Y*{ d! kyC 6[!31ʼnbb{%A +eAk.yN9BpbA^ 7Cr VF_T#-aG"DajJv r-KR,аX߃&C6 +@N>\:+уeCVjKV%հ6Fq1Bn =.ĎF\N_-_w 1I1Do0_.V144yI.bjũ@IN\!Ƚ4T/!JXf`>q<.xb?Xjky2sV֢cfzAl"S^s] 1JtEjM/W82=#9,aaJᳲ0~yb J 䎑2+?ҫ +<‡ X +A ( +-L 5[&p,Vr P{M<.3 ˗٪ R`n@LA݀J4HM8Et &'H+P1?p9RA5񼚣MFjA˒;.7 Pª2mQ4 +Rؘ)R8s%z( /4:`>5>SHl;/f!*z1f? 1=GAl=$ +m`'L0H 7Ep[PZ桔Kᷞ,ww Gʬ X/\ϓZ_J3,.*0TBAQO EK=GAZ'D+7E7A =Kf$~Ui$08*ZN8)d % ?D]zY 0 )e+&%H=hhu6rry'Z ?h)GY#ZkAr@z<UԚWn|FTkBT:-@/Dt>*4iV=G܆tXR04iz4(uƱZW[ 131Y$Qhjl)Yn-Vk1TpN5*|Lh,(@7 M0eA{$X((Pj ؄ 'w=Yo128:Lq@:[oAtfJxCiֿ~ >jM1;p=HV>4||y3j::Vm TnL|K|řqexh=(IR9cQ:C`EΰDƑbSQRYy"5O +zmd_NR(3.{=gb v*Vjrh!z@b,e8~t 3'{(˱^iWj7ɒ!eMX-- /CϔZ V#!S3*7uDq?@ZovzRgr\^Vahyd gU::8qQ*Db*hm9گlF NZDr.(WIv Rr(u8My^ r=B$sn]wZ;1R|*C!JSi01)H{fyK<)1oȁ2`wAk+A+xޯVneOQnPi=+5@]jܶ:4^L)GR0NdlU]3%eg?ǰmP-(0C|RMuUun/h=IaO=KS)UƢf$ԶP[ c +>f>Tl#Si#Th(Zn$Hr?kyv#z(K1+_w,[8oqj:W\uʳkͤ;"Syfc`Ȳ+ЊMp# ?QZ I.L'3AB?<0)"4U|> 8TϹ1g%ef9&YEq ˯,u/3O4Me4_.Y(g!yTzE*};uK܏q)KbֲTcz3mm:Yo5yZ =ײL8vIjN#H}Is=5۶j3:6 37gʕAxN +0IPMFUPڌ2 DžDsU-Υ(91< t>dfC皂zv d2ڱ<%Z -V1jSv8qBi\NzYi3۴N?j4jT՘Z]ZMKNj43d=L5008Fd$ydP A;lQw#Ipd)vB*O{màVk68t0:#yfTf3pu;g%Ѵ`ѐIĭ=u֬krץ% 뀼u;1;wTnZ3M+YvVFMѷw?s+6KӞӳٌu^5#Չ)阄愾?1UNFhVhFC,GjrKAcxA?YCNhya4`Cl5g3\E2RlY5Qaծ 9Me yjeml]5;FCMt& jlЏgSH:5G" ƨ3u!lFR|)tt<'5 {'}UsOCWFQBd4\9bft.zTodw͚uexI+z%K"BA& hΪãff5|;3-׳ 5Pi`RjOA']ƈ=Wadw\˭ik3XZAm@8j!>:Ŗ Vo?Lr.G$SJ쨂jDzoCՀ*+Ci۲$ 2:.#2ͧnkf \U/Ԗ9k>ҚﳆBфϴ 58e4ԹPJiXZCi4t*}N]a`$[1.JEr 9O^Y}UN~Q:ϓGas\ 穖Yvw(rE@WH@?:j[18aխbZ i2ZtbD*t\to0*r(v8O8IQw)e ve +n6\ufg+7ԪLOUˇUWz{ȱKZV-JK`GM ,˾O7ӱ[Rl0qF?u& KSrs6^E֠c䮠[vC&$"8DE)Ajn(r0qIQj.$skcnqJ{Ir|jx̩1i"@kO/) r<z q*BZmFi0-8 RYz[OvsVEcw_.ZcdpT~Yϼ0Њ^+ |Km$ǨL<HCE7 }8RɧY?(e],W[jG5˫ZQ @VqalέU]P`>Vhj4b!8TaBksJu;qJCN#;P|\rPZY1_EW 2 [R ΑǛvrٔ5ߘ=Sad8(ZKRm*/| %983DatZL\Qb:)W&arHB$H~Qj&n*/|D:Kc8@yrU@]K,~Y1{8,p>SlvfC*A9i7MGnE1NE +-&RN@!D%6R00Y*`"@&E V`Kq^'t`g)4ךZmEI8)v̎[F'y(SqY93CZ鮄JcvTF6wcKQH`oXpBfI2MED波1x HQ6Bf"B3eUզrәB+67h~'B$Y2 v댼g3S\nZbmhڟ!&̀8GAم!F_tGK e4L ŋ`D?b[aª[%BŊejv +j=9.Pu$?d + [1'@ej؍Xdvo˓Hg* r;8I^yKSe"J*4#t|2anq:={ѶږJtGj\y}t6;"Lm1N5}D 'r}+&h,Z`6i1;DŽDZz8Z.D5l3,f@ +L.DЩ.Sbܰl:#Zu,0̑g)`Iօ"wqWU*I*XCSe IK-5y/Bl?iFlj({.G`t㷮:*.,63 ibeX2&Ħ?f3jlBNL&(A櫆5BXZ?If!Ψ3y-d +rQ句dpr2?r;Gt_) 4Nt;Ncn.zhb$:IQj-E @ +Mw Jv `pCX\缗i BSr;I 0;ҵHn[NwCi\N?;s##Չ#vkV:F7vd.F3QRT,َ;gZik46GOI8GAbHazĦcsvL!pn hv~'.Z߻A7-o|-t-g!f LJi,H 0Fo=Zl0H4W|R` D9`Pfk ޗjf. %߰,=WsD fG!B!d21L{(ȖY9At0v,w= !%2>Th;1vbB)3EqZ3?HPBsGO +EDZeAu+ 3Eس^0JTLDNAADWqJc*]r>N%3)=F L!.ٍM]7?iq~+ϟ~uFzzEpZadDL\f>0[Pڎv^%+byjZ:G K~ 3-q m"|4(QHa⸜X&S<ΏH}B* /@m Db.|XlZ-]Fy"8b m܏~sb_TRyݓ*bu#̯4U4wܖ'+ 1R-0T-WsՌXu [`Dz<瞈u@@l.WBUhqZ3RwA )p:֚X5cQPDhBH]d!(Ѽ 2+LL:>Vq{~"j+inT}Gj6խ|[BˍxzK"K +hƬƋJDFA˖\j +@:W)ãv әU[ +ˎs _{P0]3Q7u:?XeߥZ:]u;)Վt/2ݒie6mv!/Y) +Z8B`-G+Kb/[+N|穞J:_$ XxP8P݅vPVLm&-%SB1fHJYr,q+B,H ng[+fzoUCew!TZ"j7δZKRu'.))p9+zʬbs*3$auACVE˙44U[TIMjiɱ9:ޓP=CA݆ӷ^@`X[.47`hDAhRkֳo/JNUEUe# & :np` +0Yb~"8xQKdeбDŽnoyBS)G,7R[EߴC8ȌYH(>^Mu?I73n]hm~}fֽ~-Z*MƎ|(ӪĞ4QM|gy|gpjΐXeeeGD +mi; +ˉ)崊$|0XP`4btN4fsZOT fi"/l%](?' +F\&JmH(}Dtj,Cr~Eo -eHA8xS?6gTN]9fau 4 jxt~w2GxцR ^wYʨd[ !y1rбS/i܆:U6 ;Jp2ۖ[bs&ErW#(kd2ˠY%vtpaSZB]jO*DJ09JCh]&j DUcO.狾4^%u ^Q,ة+vω)`,@QF0J>HRHt$=# -J ﹁IifI㌈7912SZyJRp g$7gAK +Cf'9Nd|0{Tq.P8dvMAj[As$00/,q چ_/}&1zCz۰lעuuKdzrwl ߳\]s3 UDt/7UwlSbij)B3>x!XQlz@]X6,Kc~L%nNم&2E/ ГTWi~뼎쾐_o`q&|Rc'GI&#j5@xw%* Kғƀ +(W%\%jq18]J2!% {6)QJpI{CUfJ$ bm)Ƭ3D*e[NWԞߪߔ.jq{~rjfnۡKJM ^[[j B)3Ҋ*_zX%ymJD~- BY⬢kA2㙢B@q>ܟeT +"jZxhu盄sTCdwG5h_R)ry$HV'TŠj˷˃̗fojۈ`Re&G]j+ۇly?}N:?Bj Cyi,\x6Fu5[tl9#nDcyF״hRye;7n7e$knf'R|9,m𹡔Ir7`ٖ5h_ *b s99an=Q4+2j9GD6TKQ.|FLCXh)̰)2Z +-= :Ab$U2 [4'$=OJȘK+]sl牺[oE4FE*lIoEЫͤqVg NJ'zCaWB܂V> DN 4,.j+Lq!~iP-\H(N'eo/v31-w @TW/ͨkPRU]ˁ. ǭ$S* 4RE +&Gm)$n 8d"jr#Db(7QoQI|)xFBp:!\[m\0JBw9Pޣ%\b`=T9!\s1 4Iu@2)fjRr)܏G:K!8ZT0:*v$$)Vɕg4``I@-aކW\h. ) Kk >fp8,;dmBbu﹨]W,EL:f:fFK@qj 2`JWn1^p)VjE+>Ug*Hru-ˆ/:C[SEs)=R BمuԚNXV~+M 6OԊشem`$;sQq'Wh&/7)w-7eǛ2Yn:c]dHvٖutn(~Uu-8=^]6 &3 FN%̬1b*VVnNΒZt^Mtjvg8b9CEi~I|iVNg\Kq~$nn R^F <č _["8T݆C +`#tEvALb $/&GN 76̊q$6U[)b;.[&>jd8Ps,ou= p`O$+Y$Gqs|0xTm<(Gr{Oxvc @EN$*V Epj%:PgVZEU ?NvϠ4`f`NrG?e3~v+zcq~nw7S_ysA[ЌVf Ic  b G$ K bԮj,M}gJ[:nHr k~IpYl1Kdf N]XZ_k") Sܣ9uiFSN(^7U4{RC,2͟*Q5D6IHnĺL{պH[m} WQ-\l%˰4OQrUI"3˲kj0dfot>iD)#-yr@MgMcg+Rv+lt6G-[1:OT\vO5-W-O_>C^~ +PT הAiE뀄vXbryi4qiT+ aԺs_ -7P)U bM`RLqЭD(E PӜ (Xr2dn^3}u:G0|GrSb+b1y]z$u m%gEÕ V|Aڅ0j Xevʴf.k ,Kn@LN^o(O.C( sI1NeuwA*á~~wKCeV0Ȱܯ8Θ%[^l,Yh?_8oj j,!/:Z!xH.C 2=,ʳݡe;`٢! =_oD]Ħ1AOo{1R9 [d[n~3_n{kͦFˑ Fp +[`y)6&]x=ϝZuةjY~b=ˮsruݯk]ٷ\UO^s^ n .WϳJ0DCLS]B'5aݖh3Ɂ%-.ä[W Ft l(E1 WBaPO 3l~Iu$l") 2*wbTu/nzjUZx -6;[n\Lh٣5 dVYIەik eX V+s+%\D@GBJ^q,, N'z:h^,3>u%r<`%ߴ:wל $9@ʲK#^o9U:.d(3 ՚ Sl#=4'Kp1JZK9#l:zG=~wխR9vzw7ϰ| 7P(6*L`"$& ^k:yJqV-Gܒ(R3vܶDax8RfLc 6Of\\%-~AGE`۳rY.4g-k<4Ki/K}i ?&lj.(5025;p2M_ 34uBrQ?lQ)Ljm݉[!&A5WiCA% Š\PZSk#phj7ձ./1T1G_q=Spz!e~3Qj8^@f1o:+".-A+Stfr~,r}y4UgZDE4`3p$z+aCcYHsilr{#gC & +#TYCB:d8)Qc'Qu`@",Y<ӱԾrvAYΦ +oS̟@"SC&,fρym:w=85f:bbLp1Q T|7-f 5Fq Vb[<4I!8%=7bl6$9c$)pܴ{'?}~zg^YI2lW^rY.D+FBs~ۉNݶ+Xe'G7eYscNgZo΃*+ћ:sy8V18,:.h 'ׂxњh<ۮ3fk7NܲE@r~K~>uj8V4Vao)p܈r-dYe܂V9 4PldXZe9(Z'uDs_4zuWo[Ny}/cNtnR۹~>"7 X|Pxh =! +MiBe(9"DZ~!zGLÖk"bݵ>XeZyp$4=PG|r"=:>0\ RVw \ X~/{)Bϸc[#бW$-Nh$.; $ڋUZJtmugy~u 2$ʯ]'4ӥ<(A=?`Mw2T TUMz(YRr3EQs +}@(:AЂ@l!G NB8yvj[qb#l'U-#9 K˭==G5?lw=B"rZ^zPEq +JBCU8q,~Xn vPT8Uv?&2 +R~!rLbLa 3be K_w>4gW\ Fis!AAj=,- Fe$; +} |7a18(#8iR#C@RCXgE-y?VnsV/QC;QNbDyu1 x;2ރUYp23Zy^k6"̲ 3:ZjM^Ë:Fp DC5 sC1~c;Ch59+j2 ?ƈ.&MLV0,PqTR-AK^h2εYM1c!$Ԗ=_m'Md(MZ &sr(>+xڅ'Yf)繚jX>v;˖2Bq4& T.s#QjT2<-̮\8u q6CSIQFrNAgxNBdv_wHoIV9S4[&9s3wZj} cevG_;g9EѪ&*rܲa:kQrp3Goyxam2Яg[u/ zT1{LTlwaV~)hNvDWäC#Kl-%5UvfJƣ4jb&8A zF=p +rxLAc42( +f F9#9zt8NXUu}KU(V*{밈d(xv47A69Ss;Yd x`xbqiW-\FOF3iX~DمD,J$TήWuMzmT6{A,vEfD?uMq +nT +][:ޖKvCM5qZz~#W 4n_?Qߵ ~ zz%5^"Bkr_B f݇Sv^*!45@mЁ@UF&*ԮZn.[&C.+~fM0cԎa[gr[i!R0P^l'Vt.4M (1/ $4g^>Rsb35VKVQY a,,藽Jֿ b4y +咆vRF:jRK-f +nSbcrہ4] XH9!s0V/M^8+)VgN?u;+3"H#$݅9{i6ѳ]O9΃ Uwc񋭃s~7e ABj|koPP{n*fY_d9k).ڵEwOVˍSZ#&9Zp0?e((W{&V S U3<-]!܏ *(.պﺟP`m+NGzփ,Ȝ5g.75DVS&754&=5@wbZ, di50b}bq&׋,P5h7NtJ~ +jQ*aӸuzl:s[{a2ۊqa< ,AKU (r0Ju_hU]6vs$cmYSZ1bv;`li:/NIfs1ʲ݄(v8 lω9X5ﺔD[OV=g阈vZƹNgO"ǫC-&+jw!?H>gb44T0|r(I3iq=X.Ax)YlTzO6M[ZdpLUk`P!Ns;7iЪf'dR[I'B;I~} ᔼj2\2#'phHy9P]I2ObS1R3a#M.;L +endstream endobj 33 0 obj <>stream +- yVcK2,ӷ '|Od$Pc=T~K'[|p$j$f$p=:O̗|8FA/{.d6"h#anF(3.T!鬂"%#yF; ƏhJL|]-Sm>Z"!K`^Q8DHZfD)39A7J 8Lg A!ap+Fqְ} hbΈP N|/1|X~ p@у M$rJN=W +)3$wM7cĦBn`tZ)|)|f"@f5H~bk9 ǥ8F$p(zMsA+6C'"6*R-*֯=301td#Fq~Ʃ^QGҋ!x/h L Th1Xhُ!^aFQh4J /4"y #wNme @4ϩ 8v-x`?0  +(̐L{cۃ |x,ÛFI5—e@ěHn EN~ ՛ԛ#K^@L'x +̓(52Hhxߡ> ď1 5XApQW9V}p9h^F:WJ.g$BhmZ2rIn)x$R`snUxzYQj8zőEM ƨ.7B8eHQJːD@Hހ(NnBQJ +_ns V +5W/(ډ 9eΫ2JnǬ3,N;RKDaTu_a%I#6ִ\ +v+O:Kx (1{riq}[  .$pDQR*4ix)YHY:AT&bǩgz$ -D~tPx~UED;2)p2H +ݠ{[ bC$q(d@A1O/5&^"0\<@" 創 ( .y\8Xm)nND9@+|YEϩ,ː;ŌZ+%;Ke-zB4my2a<0BLC ;P\k0B@Fe9Z {pu4@da ŰҜRcQZsaqhXojmC‹Q<W\ a$T65Sav9:ko1VhHD}h䊀$k.ѓ7b MT)X$f2viRťb`$b' +U EF TkˑJbXuV!f!fUE >DQ+zjQ9I\*| |$X H+{.+v%z !/a~] C#·uo0VK+7e83tinaS5_-[CZ FXkpa4@Vc Na@кB U ̏ahh3Mi:%#pGiCفz7KFCz}MraRGdtJnBW}(TV7{ӴpaWEww_"w%|:Du*1+AJp")B6C+7=Yv -Jt=Yg3Lti׃7NXN֛ )>6h繦CF1'0 NL<.0qBcHt؟݈4nIZʪ`d$=dtN='DzYNDoMbVH p0i> {6 q6@M`xDMK V|`KNۍϠc$A%y6 Yy{ck1bHG]] +%z2:Yn"^.0Cd0D. Rî6A +Xxn=rs!zNZ+^WqY;+u1bt]8U1:7pFjU(P :Ok t0 Z*W4,"d@ S.R+$ڇ4+0|VUZ 8/a&; Kc Atřu@Q_©i؞5߅9Ui )01oB0vq!|tJeZ$/ZNiҬjc n02eW#Q-reyWq*KY0GkfwK+{R}DTZrmӔ$}@sI@&Dr.Sl9Yw#=j73Ir$ɵvH瘝3(H<ӽ0oRJc#5!FD= M?"V4' EX&XvAʰR$z1jl `b"'I=slۍٺOXqBcbDio.iizwh1B/bG ?"'IQ + '9g]+ +_U}'ʞqJd=HJK̲ t~*B7Sh X|Hxt.PUi* AN ]opfDXyrȪn @D**J4?R, JL h1QPK2 Ĩ{{Y$tpQEK Heb3 4f$ӝQA`#ɢ#!z_RAfQj FSf"Ql CL\B +>D1hNCҘ![qMDAZQfy*GSG5/Cu Z!pb;鞑Q2R3uƑ/ 'Z|tNhd9N/ٵFBDu^d WYŪLuvi&mpMFSҏ>(1Ԯé3 +7G0J>aq9Xh2Ny*sb3\q\kƳ4o4M1ycQTM!D2Mc==7@0-"e7I?`w Z1kFPs4]H7H탸u}b +HR%luM:Z|<A[Ŧ8 +4I -D 4HqA*dEybz®7xOVjzDdb)G x!"{ZBڶ&[+*?-)h/Sc;HMwaB)Vi&0N6IK6*-eD'?rb롂QoĞ&Iq~)54[o8M7޶ q"&k>!3-7&Zysi]X]n˭8#`+UcIZ3,_ܺP^^HG0Ԭg~TوNɮiS6ݳ +c^Vm%!泤$RmF5Yv}e7m"듓ZF>zTh];Ւ Ny=DNڅ5Xi60Qw +Ȟ:FS@iv|څ: .699 mNhK&aT 1Mq6Ru?,3 7s:0$IԒYsTvA֐cDd6r { +2feaiwVh,{@ .H쓢o5Hp[GQ̭G !:;YjPژ8˥qIчVr4v'?/0I%W먌wlLsg1֋ߌ]ub$mLb9h%w8fיlfUyb](+'9.)q<n7܎+P04硦:5DI1jt+s)DFi7v|CM l?wq)ȳHuH:in4Vbp!0;^Z>վsGLa< &{Fp:(3 a t^lM-f{Œ6|' f e—GKꒂY]e[S߮/W1ɋ}IaxLl*e4% ^d&VJnm'_ ݱYk"4?]玨5n*]`F]xC-yb(p9*l_ 9O(l=s1]BSZh) V݂TKLx_n=U NHf=Rf-75w<+fY{TRW(*X9>(oɖ*"rLI1UsJ"4֠T^)ܸRܮ=C[ +ĪqEVy TI +VOS7*pEgYܡ+"&,"*1b8\UIZK?1 a"iH$- %ob*Q%ԡ)4}>qY#WZbk)Jw "-g4ٯz +fWKhz[SOC/+)(*%-VQWUk s yꌺk2ٳ(7w&ŧNL֕SK YIX%!#.#ҌR뚒Ze r7iqЖйUP.ζHPՇ tUc-uua })nccvխXbl;)&5zbxh[q*4DLDD>",`u +(a-6"k&TSe"d5bD003ט|dZ5aň@r9a %m +nV6ǎ7K- : rYR I*7d "QQ@I 6/Da#V0ń<0D.HCsTK՚)$,0 { J|] +!2aHOxt\"6f4\ђa6#/ĂbdرE1$;V" +m2mn +WX3Q)+d5jE`YrђF1k 6R4X`D # +XUF <`!Nz@_Ǝ=$j{>tDU`FTHL"4Â#BS' ]@W aѥJ=(FԕSE9]য.tPkQD~QG +jB4؞xp!Fذ0QE 68.xP T l y.0ҙ EB3$/Ĵ*X-ګ6QRMՑ(VBQȀXND  +蒴(@b'Ć1^*&+ !@U˜)T!J͢XY?P^i<椴>kl > +``= xqy`# 0` أb~efPNO8R$%OUI'J:L+9R+  )̇ !D($QÀE'm 3UBl +jMLT7%b))Zz`qKݦ;bmAHe,W6qI38WliQ-(dX 3C +TVВna|]0 !ve-HKlrݗsPVRU} 0!uY*B)Qb聠AQ .&datp"xah偘U¬!sH.81δv +FKb"#..lS O59$T=":/|% +^i1hGZ%ꈉ53[YѝK\. ߦJ, paɢU70|W^($L xPUT>"Q^QPJR Ӫ1+ +fzlsLّɁ!FR8`E\-(4Me$"\X*ZX"|;BUY†,)YZ,B j%8eVK)~|9 LK)H L55 +{.;b揹u9PDr? +SCXgڅF7а4J~ߎiE$5QS7i<%C+2Bߗ[MԼYoo 'Q*x uԒَ[Mߛ]+Bcֆ]uK.Ԏ|T4gUYs +fOoӑԮ)'*фڶL`pP,5"J\a2fBPl\EyʠD5+:y}R oS (D&VQջ7UuҰ?m=[y#>Zې+`Frt.ܪ7M֋n :1rybkuFJJeb8$as|gځLT(UWZɉ0ZRnωrSHn90t6?+z-F*6KniPEpTѼOg5f~%vĦߴ1pzb6Uf5 ZpIjF{vn*6ကy+IL ڒP9Vy!3h,(×6{qK:[kyz)6ї QaɏB`eȢ/<ϴ@[vz!ԦyoP%)5+mm!"6 +FPhC ih5ծ3i +nf k} +W;Uq܋`WZ9N$ւ6ۙ[4^8btgU[69)$FTNjBum 141u=7tXv^hX ug=S8'Rq$Z  n2sc͒V@bkLA@a؎d5p;&v>GnpF@uZr~KzkUNus_j)(wQޢ(DAP9N5۱CnTbl#ϭzKkMUj8ݯ*WC*N[8Npkb4`vIx,TIUOFE\ni ݆ŔG!㄄whc!S Xo)uggrۻH5"7&P*E$x\c [F$.;CMEV ZAXf*Lbu c:-B_h:?Y+9TB"2;qRٝVQY/@#Ӫwۇv;Nx9jiFC$=7̆ruvEPk  +.!G ݰ7\sVjdMm^C2*r9h.E,~3 céCX<*b5_cCJ峮 3ñ~d^Ze<[04sh8T݄NT6JlmX5q8YVmN빒\ඛ'c /M^sR^ ufoHx?V_l#Psj:3ug< oAU\Ί iEqFL㳧#7ޟs/xrX'|Q|j|{(]p)H06>We$~Qc$xzDjB ƣJkHjm:ȬP;HB߅]1PKNZv#V܊9x6,,O*-tMĮTb6W[sƃ%g7f&܎ۖ\g-:Ii:UԘ&Df=(y FyrjOU,Y,r]fäw*\J[t, ZpO Hhd6jdRm-B %o|Px^jů+n[ +Ϛ@ai=p0kfcj L]8(XGX qN߱Rf8(9_nޓP"c2{4@!7Ti ND~s +2"UlAlymHJۅ\1 +JCx縘'n k9VI颏Z40dp[ov=jDZO#Ie8h `6.S 3 =colּJFnTLTe:Z0&؛PİHMAcdHҫ*ֶsaoد;r㑌w7q޹]c ` fvjے7 5X%O"caJ]m/Vf{g4p=зH)rnr+̕jDV8bl'ΑLFMSfqmԲ$z@bt]?lD)%MPijkVX>Z Ke&3Xp^nNKF7CFg-~D^k b߯]]{W1 ÒDJqޏiu n3jWaU307|im-N윬X}ofճyEٮ_4 ]#'2WaDj J00䉲B2% āf*-U* X_#" +t4W\eH8,Qb;RbvMAfwOAd2^x( ACE#UV/F=H:В^q]YXDQasT/ċ bp,b|U\k^xp:0Be!tBR(.+6LIoPq5D!T*@ VK%7x AR@BfM( :%qh#(= +ܦ3X ZX^O7]Ml>OcQ fù8%I NZ +x^^a Z;ajm nCọR1L")@ry8\2ث1K25jLb`5 :5L H݇v|*9Vb4*cvKan8N {δ7s&!finIa X#+L1JVaǫ~tHj] 7?b. <ߛX\W>GeO!Xt-̂oZO&/ ZW̟q\Sib*XVIYGQo9QZl>]/Vȼ߹j\)Km + lP7=}jyy:3mFӏ;F~cxB2A[z^Wjs6PrRGWnݞ9PZ`Einۅӷ Zk-FQK 'ޓ$:SjF@5*Z@3F^o.[웏D5"Y^da"d@,Jb(So8A[):(l=IRJMDU ́ȲjT*j,SW eazyAC0y^1JC5*T,*#R:[lTT "R& Լn|PR^iY۹:r͉}+v!lOR#%Er9< u_i%H}Qyqex+ߡ22Ԯ)XYJlj`B&3rCfyQZ}}c5 A cVjVq!E5"oMɰYu61O[l)USk텊Jį]h|n88hPogQ*C)(\( 8` %ZbDnq"YThXKla $TZ,hUOq©M,'=L@*}iEӴETe6B+P"iu!<\^x>$; !R4 @|?T8ʆ6hBarM3Q"xq5ˆ +:۪ ;ER8!|`T/bSukr]E̓El*{!4T H1_~ @FIM;_!E'T$.J`q%Ŋ/X\X/L"R$!@*ZXA I@tqE|x`%*66) +!L +RN!ic+TP"x )`HBPE ).RXQ|IaX2lpOt[7(_hΒU:Y?(e{)Jܷ qh 03z=qO٦-i^\˽33ls&@/ +k Yn:7:]v=bhLNߵds608 +V`1ZeP@i5Z_8Y \ эUD6 $v_lb0΂ӷJSGl# Ez|Zm7Nȅ̶CA]"(=mFS~;{^w_ٌV-.*0JSߩ'L'Rwݎ0Zv>o}U[Qk@{&{EӁzjYNFJޟ4p\l"x@xq9l,.ڮMV[1=Grg͓-g8Nf8uVb9>{,eLx@sQXT8^(_+Nx?@oSu$0hF_0Rj*hM@%I0*-w\Q}rc-2y~ 5KJer+jV-wIJF<AMT8 r@~ݕyjQ:!DaUcˣe@(ɈVfXd3 4MӮzu8U-]ō$t7P0:&B(䶐Vbx*9֏Bsa.E;hCaqH4yߙ4NȾa_25v'Gvh $ZZ' /Sj,IjÉZ繚y'N#Y9jdx8~lhoE-Z߲L}xo +eis86xZ| 78_n&xr9k]̲n ՘^2x瀊%+sz +=L\a +FTHbq9PVu7R4D9jF‡\ r5p.O9rpUT gI1]WU8Hi5PO]gFj i l&~Qq«z2ڷ iOX s9k:zUhh&.6Z?b,}2cK~0B$i:8oCq=WmVc-Deq5Jx*{BVAд8I?'Sǭ}!/=I~hk? WiHrĪOĖԼc,D0-H4LsW/Fu2^i9@Nx&^sQ7P>h]9y}f@g3P [ u)ʬ5~cy ]X?݉ + eSewދ 0IwKr=E[n(xH8iL+r{'xpֳ 7_k#s逼cxj ՚W3 5$؏u`kXp0{+:7?S4tG\5{j͓='rMJpS-K]m׋9^VV{:A&>~7TqkKk0Iv] mb0xB^:~a^-GLY܀Mx]٦aPi?-N.\n`8`0}-Z1bxC)- ˈY,1l oUxmlٌ-]w]iuiwD^: aסF~CgmfT :4?HKfSW4d{Ej4~d 2KaT=xA_r$)I(Yܢ-O1Od4f<?t% 72LGsr[̳2<ω;JwN3.#瑲~Uu{"p[6ָD|5軑k(?#z/f<kÎ T.]29N*i8n*[d$ArƨaDxu< tmG jV1l?ZyUm^ci8A(M3. 5YV/ +Rff8r(|_mD1,IWhVf<7m睆~eUهʬE ~s Q6 mn`8[ $XKCS1?91<#U^g~d@eyA]3_n=Oyޛ{aYLm潐ʞk2` sڱTkY=\Iь'Iߎ׶ߋh zqfk-4^d:&zazCr+JrQZEPj棚x ĹvNa +%efTϹ$|e3e~k/] 8Zr2N^f{#0wOmu}trwLBu^-dᄩ#]1m;>'jn+1d(Y N_ R)/~a|!xq`ZXo: 4 %Qe%db/>YS-)璄4Ҹ]gg)|]q3kV-F-:O9R#%:1=5V3wM{Q7]RMB,c{%K^wP..Yq,>RLHuM7#]gN=gUS8ڮyzM,wĺ~]L_Y60Zj&.9$bAkIu=QvQY`k>-g. =B& +%[5 -~N.CI-e Iw5εJ$oᣥƢ#rߔ/V|(M3!0Tg!L| +pH4<8 dߜ岊rmY}쾊Pg#fZr"v^4رB]H?dy^EfxC.$s&[iacx\mY^1̾ ۽^ܔ8y$r\Ob{ߖ繖;!v9x"0Z0x0(Heq"0DvJqjy(Wbߓ5H&Q|r#!Hz~[ +Se(I˔Y1q_~~#3 #I-WBJCHԪtf V H8t/p>E_K<?ˍMZ GWp?Dk65K̺\by +1Jq`؛y/2vȜTc7eIr'|>Dq=YNն:el;3%b$Gl|*׽=%k ׫RsLF ]"#4%U]T] _)# !6=gֳ Q&tx8eM'aвUK?iNbSx##x@t6ѴG +Ru9G`VR\4x7Mʶ;B˔ +%Y9XR2=w$=^kVT dB͒Ì|XSdx] ,OH6ci1J<S$ %(2Pf)ŰhmE NꂸfwM@d7k9N9Z.F͎r|7zv6O0EV[H0=\:}ƙw,z F~ZsDkoDWh42j:q~ӵMLT}Yޗ|@&|(Se,ܮDorcUĞ;OsIPiu_Ѻp&|\jM*6R`iu0nm~}cg14*}r*|:Tkf`յ]ajkiz r?Q,[l0βE*v_jrŪ.Y4v3K]2=wRbm0]g5ұk}_v8!b҆-3XTlZ'^rba.L3]3 9GC7 U6#%} `eݢhņ帣6O~oDIe-tn:`X 3CU <)FJPyd,yg3R2Գ j;$Y e}L~'kBLT#@7\Sڶ3j(Vv3s_9j4[wc,}ey_s;(m7UXj&N UY +z;jnpy$q#|澩raT"tnr ̿yPdIqm#@lFO5/IEe͚͸i)|]l-`m07]k>ܖۀXCME ޢ&|Bk~m3׫ ˌ=ۏض>ɖ+eai>B[[!cyj@>sa7c3.F[Q(zߋB{-3US㸏`9.DX Nt<>QiW׳$9?@B#arT@t@2mإ {3-o"oA%*˔Z-{+ Cj<~}W,\hjYXJ{1zֿ^D%GjwbjmŐ+"HIGVv;Q5_I#I͓I|T p8ϴO=7Vh;`p$]=޹]ʏ$I~K\ֿ(tg<'mTuC&8!z· +,K9Zv +.Cj0I頴ݯq%xXg +SJu.DqDeCA 8Q=Xve,5~ĺs_zqMĪt@2Izw#Jw(t~$z=UseĻvEFz3ft'A(37CiϊzB4Bn q@Z&!H~z0q.tFD(z(ܖHGh>+MeԺ;P +;2:^v<]mvxe}[޳@h 2V ՃM=IrdX0k\ZNLHZm6/ ZS1~]|őzыJ0ZPl`noZsȞ(jMU#"uah}cI#-wRD95-oAJ9ϕ2 eߥ$z<]wXd1c~yCC~n9U>gET&#;v5L5ޥKcv,ڌ}7s~ (}$^wI|.YeyJj56Vm'5iNɡpƉ"y40~F Q RBڲ;P]TO1b+|ЀSm?[d.Ϯ?ն^a;OtUY uTn|ږ3Nv>:$Dsi8r/obpWoG%)!lU qiO,.GE@{ XЌ'cD$s@*z JAah-tV;bd 4;L 6K 7Pu'.# AuAZH_q%z^q!n\pY?Rq(nAmv z ʫూ0v_`|(X2"ά՘TAƩ ֚2-#UHr(zv%ή7:RgRq궃Vj,%WrQ+Cu53ՙx1= _)ַf(Z%e~:C@.XZ{r婅ցRi8Wy-*~Q;Xm"N Պ΂ִ˱\W@E 4FR+zmBJd5!%כ jMR} <i[.kѺKb㰒4Uo{7Q SqLu6Pu `XϡFkmOMor݇ߴY/ZR:ÆTl,Z^mvcwC߇f=Oq4ukhڌ.W^VJtkFkEv2nLoêOf52'=D)sqr; j7lf].Qu ;B*׬SceA +4CRh&:4̞Dv[~f罉ޗۇ2 2JsB,5+P1y\by"Xۍs([1R $Z -6W" Qd0/6oezBƁ&Er_yXY  *y8>EpD#gۂSQ%z]m.XDnSus7=ԸR-牮NJ-n7]+1I8v>+4 %_2&[q*3?0;OwT_k2Ѱ}Gz(rð`E EY4 y \dB)zI +xV—e,8r2B0I"WI]:Er FS4$94Y]lJ-#'aGLO +-E)~kqn4~ٰ'z>XnZa~1 ѳ:;12K]*ǛqnB@ i?ޔ!QH Eb\;0[ ΐCtVf($Sg,_9Wj| Z,6_vN-Nƛq@Zof*PMy"D_rc[a8\t EøuY_n2S-56ݲcbBF\Oڋ" aY#}저fBDiUYZ=xJwi#)Ee2v n(G]I՞a`<|\a =BkƦJLUkua%ꔴhI,}ce05,j:^E0l9gƋ_W/ˮ$+E X'+R#E"զ,{d0 cZ+A\z8^:Dz4n +6aj|*vs/z((s:e a.NZ $7ѩ‡nQZ5l9#-^ۏT\US +qYbav9Ph'zY.=~{PYUAX8XNugY)Un-[gվb$J]ly)zgJL rMlQ8YoT&R&1m~Ms'JlPJ':7Pj jDg~9ϻnxخgI4OMY\T4&(?@8y^PJ;k H.pvb$ƌլ1*̈́(7>wT+YjV Բ8Rӡ=R3R8Uf 0r4nf9D[n+0LweW!Բ<"J* PO+.D֛bכoAy-K?h]ۍ(8O 事zb/2 cNtWbu#Nd(,6(Xa%kVʁ+ >Rg7հD6(r5O~e!(>슃a亓$xd4̡FI1£(uaj#|*cqm' 0QdXxW\ h֫8Tu/R\>D3P?~h-C(KF,+ F|-|)E 7*H +F~ >ag7˖AL0킑*P;1pbNԊB )  A'(mj#Nx>eh;!R_qd^>&6KR-v+j<|Hbr2p +_$ƬA*3 7Is+Ep ,Oe(tCZ k@ +u 0*f9ᦩ-!fhaEh!FL0Rr@C qP 9I L ,F푣xOTg +nX(U!$rVHi89"D, +LU\PL%z/Xn+l:`yjq8zCZM|%DE'_vf^v@׍qD +N`x(J,ɉ]wL˥r$o(J6 5\,Y!yv9&MV\⬢78e<'uʤ:812Q6|mV}r{5N&l-u +л?:?(*/P!?HDX !,#8P6B<#x !8Ep!,Bx#0C(pG&aXGa!$CHp>BfCX>$P >L<H |!l=[cf263a53-5a54-4d0e-9cc1-eed59a5eb84d823a4f3d-b075-4d2c-936a-a7da92fc7102-7994610807262l0602371ll +h +WQ48gQHX6G0 cQ iiy$57 za;U\ 9pqRneAƅCFAՊjp=D<f258128e-5ad4-400c-bbdc-44fa700(8da527d8-d31e-4545-a3ed-30d438535577392563! ф)%0>kFCRSp>wT G Ǯe`!0 */Ɛ: aHbZ sBڃ֫۩A?8 XON^\t{.6}\ 5feaecb2-fbd3-40a1-a238-5090d8dc0789aadf8c64-6f5c-4d44-8409-82b7e3b05.382679035305023549664382977284b857958f-ef1d-4d09-a096-5b8552afbbceeafcfe2a-9107-472b-ac76-37e020b2e782324188ml10SVGFil/ : +/XMLNode1 /Int (xmlnode-nodet2;attribute(-28 1D>Fq"1w-tBAO +yB4 ƭG-`փZF5 <K Q)® U¢IG>49Ԍ`ؽfF-;BQ?8uXWKF1;}bԃQ]XCÛ[Ӣ2I&L!zmϮL:6@g6 景3A7h{#/ %f2GÉ` `@Sf"y8C > @xMEɏ@"':$'^4 ȓڀ"-P3'a&,!N(8Hx d8F&*ɓ piiT(P, Cĵ!pecP"xx" +XaNt !aa<4KJD%jq&1Ha B +diM DҤG0.x 8P|R!@Hh82Q@"Z>y$'s՚}ާ͉Usrߜ4sl]cղm.M~IYVqMbcji+0vXDVn'nw4^TWzv+?+n.Ίi[֮{ʖqkXԭ[XuNvNvv74]uoW[5uWM~۔is&;|v7[_vƖ{;i빬ں'dm~I9lȻ[bR:k|-~3[l1Xb91ZkJ5[kWMuuo]kkkY )_c{nٷ9+{*՝-U+X/]]ٮi.eK左_1wNs=۟xU6ޒ%ƛ9~giUR, SiXU/rj)\[-ľ^S-ZꖓJ_v?-KfN'?MOܶۤ+c=+*}*v]uӷV,`k򭿶dfNzlljڦ:'֪%[ڥnoۨTJDE +  c0$&#aV$ +&Ā@A0 t C_~z]Vp>4>˜ +gC7L^kKm8`#YeUdm6|CL\r;(Tp5Rޭӛ0*"4!$!XC1J%Z7BrI_rY f&H>s"-e eoG G)MYb+Z=+$%[C%pB_Dz?PTKωzRMGNHvwWu/$))"1(d7\[}LwKP)O9cȪl2pY|] RUХ1uRET Q؍e4w6h!E{k:=i9MJIrΟ\XMrԦ9h~P-K{'LjfSux3%[8?\BrGffH+J=HHIDB J) :J(]/0>]v6O +vn7,6UY}xV(:m?'T1PL4 g $ddA $Gy骺'Ǽkbg +~ oi'7 , +-qΧReI >cr5>`sU@`P!C:D;̒gIɡ%@ O^Vǵ\}t^o!CS@S(^!1(;9vA>MNn2" Ѻ2 ͽ0eJV,cy7UL<'8g)mav#цT^3ݝƭԳ7뭃c'PHx+fꆣ"HFGw)YX|HQ Cu{A h+~#8Y s\I%JQhI4\/ 47%otu3ER" rS+YS`",gZD4`ϧ8gR-sIlԋG?+fdUZ=6 @"c߈sZ2!пtNFz="+W"K#i_?G!0"p{*ֶ8LnQ]P<18_i/phR3 rH9ZN:Qo`izkXONq͙bN4?D5 -cR74Dac$yF,x`. e uc ?=#XNa5s$wc庑8Υr"g:5%U9mR>1+ :#&R &`F"$ -RUlh(u +ضPUp ZZCoYr>Ci"r8t=4L3*^Zޔ ^wz* 9lE߾CQ.|ď"qŮ)k=pz/p:~ĿplV뺘x*<ӑoVHe(8v; +me +^_ a"彛tX9^UbDϝnyyDStN\gl9cy Kt=F/a0Y\G *EM*OVw̶k-CL!]69E=[vQI."1J}Ng@~L\;@r-,kܫ%),}BN6 M]%(Ҁ: TxQ1-nN LbO*%ql*n +KYkDRFFNIo/ZKx!Ŗ0ov4u9>q'wEOxRQiPUu+1X}8}TCJB5Xbo)++`HPO8cY;z?s=`!|jJk*l,bhÑ#%|݁,z^3~8˟\;$zCb$M6:GH{(u/H2ڟ[s(Z6{ltjoQk$-$ʜcTWGNV8.v ?D4tLtQU$A2û }&^p}BK+ߞT5 7N%H6ldVbEca P3/ K9`j${P<ȫrd)F +8E<EŔhYx}F?^dQӧ+jU»'T_".K4JUdmj>+y ÆpAt<(Ʌ#-Fv]KM[o,lSY +-ݍ9/,#D\et/k9) xqUxWZa'f"w?\euݠ8G9g}Uه}9_g8)xyr0EͤLbWGvF[;dž$~}ftYh߅xb^p3 .ʸIyWA clap}Ǣ*t8NN!  ΠgOka&-65A cC:]V(S,h,?oD- KrӀqZS~YNhbVSLJ_=H1!s ',*HzUan%vnQ\"V1QNZE` +Z"[qqX[UIwBnU1sw5gQAHL_X!^9+zqG6 7[,v9O&I(Ȧc$)7M4?':MO bRϨX=0Jַx Rxj1dJN+1JaZ4r 0͠+U-˯Qg1wa_7;:-= &4Im0qϹh}!'un0#8"ڕ٢4EC~Ώ|a1%VO[4Xp*(VA7T;?_&N?1_.Rڥ%3K)۫D C +{LB9c?^R$ǟğ.S3c_Sߦ0tF6Ăpr.<уPK"}l|7pd(*\g C;P/o ٟY1O*_̷B,|KTӟꉾks3ME0):=(9/E4\.ELYy\rp05b5BhL颴ԛqDH#᥅ śE%%aPEܐeh4cwì~L83Bwn +[G#Z/4ш;)1Fkdo4WqQNJsFmiڬE]kwMC4yǣ)@@=/ؠPduO?M$nI~09jl"i,8~&6֫ӳaCȩQy9P˕f^t8p~#B"<A`aDx5 +dQ uĖUE&nӦcJvI'q_Z9}ZJkc%K&UL]*}H JS8EVgR?.LC$1-Ljh} mid' ~0[y4Vuେh!%4%Ll6,6d}*̙ hn^DsiYf iTuG+ҿH)OfyQ +t*o$ +4{Їs07/v+J-/cn1~6!.lw#)bm( {LwD$GU)UXtvaEQn1챮Ut+Zg^PsUtJLL5*O,+7b!cF3m(GMPWF5oh"a'Q,o1(/' E/֤ 8;'UVE 0˔VmHX*rB:|ǽG3Eg"n3BXb}Vk\,Mh@a6x?qVJ72in-G6xNJ)ys bECÏab%ǖ2f~#lе@*臺t-%cBvy˖UAbT6Ä" I z]T\ňFu љKnСFA5Ω7tAEH&}=zco{! l +}7skϢ/ٓbdE2Z7nc[F "ٱel=jKY:Ȳ=$7 26[[BwZ冝S*oJkY&Jw^!;\=oRֲlS*~lNl(b~׏Rzs(neOCn7F˴G\?lp7>E6)ua7+pwe{ Fp +_:lP6DzU{CՖ+ٷg +;^X!vL3PL!qbXt~C46kϗ{ѵdƥ`?,2ga$[>(3gO6g~y=0 9F\֭cp/R*9Je1lNca-vzٙ>\H|d.Fj? *)k-asdon]sU+tK\nioͅtl̺9ǔ5cord_P#l#䧚jfT6K)|?M_ø_~wkJssua|0BJF^1~!mG76l+U.7 J| #|=}B_)_>Fno;vt 9rgȐ2B(#1l5)]s_mmb˶~˕g{Z| >ݷokr9?`7+dȱ];ccl9J~י{23쐛A{{1lIwo+Ydݎ=zte毻+۶͘wor)l )7e+#Kbno_R?gg +fgJes.{csCaCJ5:t >itSve>ϲ|]Pv>Vwu0v?PB^٤3ػח?O>{RHϤsCw9l{KcvR*g +R컏l]Gaǰw{);篿4J~R3L|_|ŗo{-)r{T.P9n-\~zdw;!s>ee82Ǝ;k,at{ e*?(c1x"l/. /pu6%UQ DUI"K(;L #d~~ݻ _޿^:hϽskOBw^Z}cbȾ ^suJO9疁4?[s̹[c'AfҾ+JB~G5nsNjC2Gn[q:kKs۽ۯ5|zw}~_{ﹿ}y>cK^x~zߓ߾w3??33s3;3333;3333?;~~gg톚6K~ cvwG^R,a^>R_Y|$_r{7谛f9:!L߷\wݛ㋱cZGݱW"?9J,Y:2G'a'_LJvw͛;COK=ݼ ֐×$|0:^f#|a3uBaknȐt/Cݬ=6{d0]7;J:~f<2l7'PEUp( 9 +h +"8L :Oiʃ:ݰ@cQЦEM$=󮑉)UHMdi59G%UաL j2RFHiJɡròe] ҫù:*7,m&H4᨜"ᘩtU|X{sL@),u!C9F߾#HaAPGq:IaA[ +h\*pq +PeP*E}@:#1kJf8$z4s\p옯Dƭ +rIV3Qr=%2ݣV5CT5po*L%AVÁ* 'iP&գyJ Ǵ:QUY8J mwhs:@2D2$ +x`;DִL'FĽJ 'U皨v?)X՜*.e t󚚩SMhrTLsa;rB9]{p"asiJȅph`T"̦3iXDCú^Je ʤ#śch\lȈr" >8,"2TUea,, 8)ha8@1ƒ*y *$(VC +.01l@lx*ሐL 1@@.DA\Lz٤6\eCUTBMLQG \O ˞Le蚦fcn&c6XDE*c_t=Da\t@:z8>&ȢK?HUJ؏Eĥ|Bkjbw)1Ox6 A/82xB&'VJ*Mu~܈(_yetc+4(Ue"o *3ܚT.jVl147 +D2zQx%_2?A<glw40_:aPK-[UapUD`ͭf!M\D-EoT>qQA \X{嶔b\!y65㔿S^nya(,p])Z ~9Фz5 8Ip%3n D4_lfP62sTɝ4AaYCo^D2Ȗ'ZʑWpN3[YBbl g] ](1pU8EP׫<'3*b ϑԙ|* plMwn@*Q媤QM>miJ+Psl6윌Z_2=`G)$%rp <1Ӊ?di ^ WEn4Ό/Ce@d @#6W&rE6r8RSL2Q3w>!*M7 Qd"%EyF +@,7 gs˞Eˢ$lJQZWݬlhH1*-B9 śld^h&h%$9ݧTU1=Ah= ӧ|r)ͱlo.&ArMDPX׆dBXK->0Z]I`z5k[?MJ&(Иa"~ e8|/ϗyN8ZW:.FKT,GqyS`$wWq!l+a +jq aop>vmpfEM>GhJIO6h?J ͊ښ0.J}Z D n6 t Dmŗ؜'SPkx=$X}-+a L?ej]PABdlzo-$PFT5co%Z9jERu#%PDyIsZ8 _ۢϓm"X9KTUz"{Oao(ntΆ!y1x)}Ϸc 0tƮ +ݞQxYtz>S0|--r0?n?H+ +eBF+zj +*dIqpAEFJ\5NϘRAh + (=TTܩ xxGZ7GYF_u&AߣM Hs+&=hiÉ Q.<ҐVZt:P`me UeGWR ʂb`7lQq:,N0W/>t6 Ax'h~1Bg,ؽ.xIʥG5ϘE̦nP_ggU,ӋəP[-C=瀅b/D Հ[GNWkB)Xu C/.ƙV 5ccչ%NRu&*iٺ#?RГ`*:c6XD-pEΔ}:Gk%L7 +tS9Ybc|髯;LU˫$NFަ;:Rg%}C@~0Wxgk~;Yx<ˏ&%Aa/ !צ0f0{h+#v0|tyD#X(Πl i1NyL*]Y}<0dmȨb@jp%D }}b7sygmIT%m4*SjeM}ѼHj9_sBo!sPHn'gIhYhcV{$TOrZ=F/]Xt]FT>޹&cE?Kxؐ= ]Y,.5ݹlR0H Dl8NC;g/l3`ʫ3iek6RMj`*G6 &c%\$GX`~ F`T>* LyMrsç]ԓGkRC%%6K1٫%>Tް3JtVy _^O$]q;l[IAW g$^H-+Y|S d`eQY!AX@Ww { D.@PeFV7~:LLQaoxvR$wg Ѐ.]-8M_:o>4ʯxC1 .ixifY j xi/ۯ)O\Ո_rHgfD=  dDU:TT_@4m>d$'i$XR,`?0aޱTKT !Y0n$#Z >T*]vL(YnV[jTNrؘ+h,UY[|d6Ӻ3ȥR7vzhM*2 +S+E 9oҲ'5!尽3e.Ubp"P6;*IG3w9?wQ^<6atabCbzd{)sN` f0A9buǸRSI"k^=gm"pz9!o8Mm$K倀. p='ۃ@qMNydb.DЋ4I"  ra.]eZ6sw&OҲpΗGQP&5f1Kn%>MpPF)H|2W˨ؒ/Ld#F+r&˘&jq"jMŻ.a|f jLѓzP YD8 +gz&'4fCR75DZ_ +n׷^btKQHE)ߛvU>Ea3R#k/ܥ^5eĖB\ptپ HX~ٞǪ! Isa0Pp{OoVY*${3K{71Ϛ1/{H!)6CV2h7I-4AFHo'K^ j}4tB(7ȴ?(O')cʆzT@- +gǞS,/wڇAi? X1MZeiUWצ:]E],ҊIVzE \_ LVR'tj~ Q@yI'ײ?+f`2E#V]EA<αt+ڴrNev@\|@ԹS,D@1JPo)tag1E9㖋a밧_S~ hC8y^ݗbv3AayW}WdR7s+$U88I#QgI)cO^NYlC4c}|⇟IW['}R2IɋFI`1᠀% SI*pW!0F-p Z#~"/jۀ^=g5R cS .^آU<ɫR} /@%?UFhPh{pb~+(|+csPFw5™?H"j4T`ho`5`CZ!jߒ5MTsg!2y 6?*0 -@D`5䵊inrtZ:2 u(*"r 4gWU-@VƑtL] m,z0]xYHp ty;! $]"7(.C#ᥑHb[M.nZuBq\㒃!!.{;ŐΪb1#?x=jaMn]A- 6l^mz9 u+e^AUm}G%FtA D)9oXM4m덀nJAH:^>IԨSaz^%FLC8S8 Xe +R#E4x8p͂RB|B3 +^ nb +Y8z"g`ppז|ItOxig$"i *yVdC`dcơ  L h'3Y"k:25n^BCRWUB ()B6ףƎcT'x* ׫=o,fJ#BwOUdPjE9U4\ p|^lXD[vƈwxm +E/  )ۍIF1;lQ)"`0.ĺXqg?{Mh+pԛ%V& GqtnDИ6zqnfd#`#r$E9W W4ӻr)pABo~,M Os8kI tߜʣ.ıli:X^=F@ AŠ9,C&Y"q i? m8_4 <1 *OgVn1@v( +׭O!™"i3ЯL6:%qBC51qQkub-\ <] Hh}5 p@Dx=Ktg_,IDZ4=EY 03#\C879$ޅ^ЈxHȃ!Bfv~a^fBFVlv@$t6(RF T;J+熢Ԉւ 0q.ee~h'IR憅.IP5|isHAspfiA)8ņ#O.EA76渘1q鼦QlZi,$㘲&q\AVrj}?;$Pek ?n7 .1[7RfgIf9 LǻoJo59FmצZ<Ęr4zg!$)qDg)*;;V! v21] s297p` *u ZMXF[P0~-s}xđQs>\}jM^+(_iq$jq6٬.95nk [ox|BW_2IYX. CV#)u sxQ|#n6RdOl@huJ/(W*8@S] F|͏ fIu`:6Z{?t k+WUP`=<ڌ*jP5}Y2#n5@ʽ=<};{3<1 +XF{d7\wE#_jwn &pbح_o))37(>[B@L*z%;M'K0L`}}bڝZ sLIVQFԯ7rk"k$'Mݴ`Eva" +"\ldy6kt+9JLY!S8H[x6V\ZgSahhladF x{m'KbP +VH]ĦDe+Qe߄cKXAҎ`YܟXVQw9cfЏb=  '*(YT '╃-\$%)*R\\km? DgCV@m&pC䥰m!3*y,d᫭;f(&Y7'OA֚By*7 b@jX-&>F1f*AߎWo=P;X9CWǵaCJwqJvxq$݈ c͖b!,cBuzwM% 'yIVf]DWsy˚;: LZ?UzH Lׅ4ԤК=^?M[E>Fntu\T +!vgͭZ.B)d>X߅l1 [n_xCPCVl*T<{G羘 +PIkӼȺVOg}F!54, !t=S)|ӝ7RYfB1۴xP_(d0Fen =tj&UOF]71-k^OFGR_a\z0{AB +`x4s>Co.kql-Dd mJ!k@2`J +vX*A/q $dX7"B.^a@Yn9 t\tӴL\ZgBE`j%C]z>AGsy2]iUwkQrt%ŝc~K<2'ӹKaЉAx5tf hU@[=U=lιjNG צ[k9 1ڂ +l"bx*KbS3k-AsZEzXCA _>o/^"~;\Dۆ[_pBkhr)_-&@?8JED  +^^*bl u붋JnAZ;=^@5 qCKvAk,ǜ/ugY}5S56}As?#wyazP:e%s ܶ7CNQ ǽ?Z/ \_@WEcB[ݪ*Ӥ_1Ts%$lp$8ڈtFy)R1%-f~xIg; o}w#Aq! ۂFvN#*5jD@v,º8$mJZf?-Cxr}(a.o@cP״׵0McOqBkdi)֎s&FЅP3N}-`27$ݳ:߸HNKx1GB&Ԃ6gćVROKv3r; }z˜WI)wRφ +3ݩv$#aCԜM9SW-d_~7H#ؐ[$RZla(xw Gtnd$¸x't2 l7$Z$Q4š-cmO *Zb6Ʊ JjߌH¿/U^q A%zw1+<>PX=6]C16-gjpDZ}BpDۊF)>.Jڶ^wF [8 䞅 ~vV=۷_xC "N|2Xz pkߖQY|s{){H `ySgJgO!XPt۫zetMD&Ok}U.aCyH- x0Iq\xd +grf)nxqщZ:akiUǜ2FΑ38c6dvp&dZ;(|-g$-fX!;~б5\mYDA-MU4x. կY/j0_eMGdZ":-IeWLEax\ȍ[k^F2kNϑ\yyJ%t>lmDOfɜY b~bɲ:rzRg샃jG۵hb?KD?lDI\|Ɠ<˘vU/ 1'X?i"z?>Ȗ`ijΣaef!yh}!9X!-S(p^u}k:X^jvqt~ Yk&K yBЗmڅy j 5|xN%*xv6uVdk.\4?`L]p^(9(OXSbK'@y^X(yvV]ăз@m[qYc_A^Vx奸h[O{$K7UIrCyD" N^!0+g +@hr|ªvqHZyƆM֐VfX +S(L~IjhL4qVc@D>7G/2rr4T"I%;1qmSP ܾ?ԑ@BSd!{HQ 31:j`U6[D'j,KZkifF6=718pU\,5k&!cPX33+x'Z](>\.*8H AGTXAH%KH3mR]6X"&rY4{'yuR1fi);,i~OPUC52Ȩal[M<b?/}T[ΝmY̘R_kv<-DD}﵃AUɇj|K߄*c*d'JcVϖ;DN^Xo& m}x!z=j,S+(YyCc4,,)5rLØPBM~0r:j%0$A^iTcXx*K%ݯ=LC"GPS鴟Y]x +`U +:;Js(׮Iaޜz ;'bAӫnLuGI)joƨm@H:1@ĝF,JOu\`Gޫ7:ж{ E%#2xc _gͥ@*c(#uM$D0iQw$OK~nwxPC1Yg"]Z  ٠d$LT~\]ovo'e"rFN0,AFVYʊwgDߦCiZGf-+m mư/R\[Uɕ? n&˪65@}'=un"R|mB`D\FScK ZFൂ4v/XG$MA@/JZUi@}XVc[jL贤Ӵ(HjIRKAifKrUe;fpm0+5bKv ~yt.'k$@ї1\@s2aٷ9tՈtVrV +GWt/c|3$GP$S9P(C.@d*RC:q/n5k@"cE ?Di[|.;S?S;0J(䋯65(P !g{0fonC2H٣nSɟp[g[$dO%.|%eR-M*2L@'-gNeZ&Ap*v}Y/ X]=#詴b7 f/(QɾgR1NC/=GW۰\g4`kq@dB}͸-" +endstream endobj 34 0 obj <>stream +jLW#by`:Z6yM9 +:SW\KJC(w\ln^)GG 1eǶe"y6np Xa2`Ҳs&1BL6*Qt9ە~Kj̅g<-bioZtrKGsԭGLv*m>p\Z3h^OJQ$l(6`7HD'Os!O/ y{)HsB^ PW-l+f a ˊB 5FH%>Lk;<|4T (d>a,рIM0R\d|t`ת_-gGn쮬{X>=x_v]ӗkneOJ+?f8=Y*r8nhѦ#c燌eonZvxZ`$;mYv[, ԰SQoyܖ!̶eo@KpJ7dڭ +K"cCnܸ(unFKZ.uE O<0,C1TK@Rǁ +en%_ #^hX|g,gWsG=6x`0M;D!twG׶:( 6 +^ xpzͼq ֍iF *!2\8K^RaEmeA Df%:'`ʜus FU` +-ڥt}I ra`@r80\Eh]I%%uf Đ*wijJ\ΦN QoMVr*JjV.[i_8Ž(5mlVJ轢HBGcNqxhl )a~Bԕ # 3߂]an.df=#%ДĎ݌p #G!BH8:$r򜹓2 LGiW݁_28y#G0ON7,NG C3<S~1n9d)qd9,̮ؐ!)+ rOqV$Oŏ9E&l ++ssq2N9[BEEb8UmRK..>Ag3TjgZ:5vcՕHY>38us +оˇDW [i'"E!2TvGq+lm;J.S_"4c3懜ex%a0; ;/C=S!uš+{d4ֈcL  m9ᔀBdkDna)Ńp ڥ 'A Nֈccrk%(΄^886ʘ(:[JMlU9g#^ҹ.Z/_^$ iUߪVPSmy,POX8_B6@| +6q*n㛵̓*lB;Rj盲lw WtRmb;>0T'LYZw-*n@&UZZ͖"fF[~7ײWx"?h q,| ;WD//3mg}.`^lF ?SP C QoY*GEjdl@f 4MiؽqMAJ;_TnnZ ER!>r3ىv:HDP{2.Gu~8{ډ܈Vcܼe$tӊFol˭?zJQhfãD ïU$6#C:PyQ[Qe{Z`=]M'iu5>-FA"ޫ/7x @/㷸(dZdùrϕp~v v|Q%pĨ-y? H#Hr_`Ӷjz6XsfW%UQ8TQOwNS|-5D޸wa eLf)Z tK` y؆p>}/^bC Q S,Xy;5 K&ik< +9%ʙ& *MlTޣpv,g2ܔpdC6HAntic +.)IN hexuXf쳞7sudo.]trz3] \;*FjUč%InC֏ELynX1/ѐfBFFZ%|k5Lm8-#ВL~eOœ2k٠^TiO]gS1vɜi&1Zln6Y3J'a(!7@-BH2vrmƢKEZ,avx"[J8ʸ#<,AaIlszt) غ1TZ,*qœ:I-x\ i񫃤RW`Ks1n&QY7+HwԪz!}G9{- ~B*q2;ZCq<.>4 +33`!SIΎ]?C'lp)mpohѼldՀi! mn4KMav@+(hi0vKvD^a2ګ'n6 +?y׶2uSTܴSz֒*n!g; bhn^rW˪v#߬*Aj HiH)aԪQcN?&jƯA%W)XZڧf{5U _;э3L0 ZK<[S YGvX VAS'3ԑ4fhN <"0 +l 8u0b]Q;SNgzAi>S +UzBdE/Ǔ{Flh3O#E!SD+QIZ1*`C[h1,~yu؄jz?Ui2,S"Z:!ՎImx Ms[RjMN;-Håaq K4k۝ !)%6Pã)y0.C<5pjBb:<}1yPpGER' }qԥ +!258p>%0> 9=EZˍ0pHNK{ +qG0SHoJU<;B6ʼ,`xi|fez2bkdBL+ɭ{<k&H1Nm|j +@'na:'X,7vswwD9.]:5\d*jJd\4Vp +|ڏ>,nlA;-GpT/M Gv,7ԆӝJ9-?JhI6爸"Oޝ^e$'wNۯkפ\Z/N^|Hx@λgg:Z.o45lL!%}5FeHJ\.(& taÆ#ht$ԞeZqB%P>(0"X8?S={ JODQﶚȴ@WXX\=fpU%;fMR7&DV=%$QHbz4CF5""8-ze9bsu7c87wG ^sPx Y% +z' ׮YA$g}lPhWRÍ~%-nP0);UoxxI\Fr [,UK) oA)qժ +.̿>S sɮg7ezP & 9asY.ICGGՒ`!]Mm +P$b`J>.mzsNpvM:,VF }-0{"TIc@bip!Ҙ\N{2)Zs5gE?H X$^O%- z ;p] D^Ւi9ЋuD(s5n q~.MZbin/2ZNE#ؤd^8*^`H$WY:(ɆYҠT%〄RϜ7t@j\2n\U^kr\6I9붗z20q~&ͻ/}xW&L4CvAcn=ccm&EFƌnY6'ss#+(p<)%h!-"]@p`yA/EʥmK| hi +M ) +B o/."ݙ\WHgStb]5֍zDԳmuK|Uk'Ñ&Ovi+ -PrI00x3#c$q(%NK@l&VGb R53]gȸBF84ĔB  jx e-+U7-Uq(y;&8_muo[U]$hȈH(PZ_I'i Hg RCdȀ?վAPUN494TcPAjǿڿ" a/wSvfoiRhor4X#,^.J zV Ge :Aٟ>â [:A!QǠ6^T,_>qNU @k~oՊ8'٪kׇ0QЌ;…'1pQ$vⲹ" UJ@ނÁǧ0~wƬŘ 3 Du*pAŚ^]Jya v [" H L÷8\xB\-@f/EmI>R,5 +LUl_h(]=E͉~PJjk+@Kh CB?iD6:)2}W$H +YIkzR\|6uDRgBMc:# eT-wldp]%2]D<> ד [2y$+b눪~eS)O ۚyd g 7p%|*X&"fnމБҋܖ #Ҭ-܅%t\,% GG? rհ,2 EWEb)p#PMvywb\rwDU>5F-? Mdֱ R=!R@Pn<׽\uîaRPax0h 2sUㄪ6H /Kف8R8O +ZEI0ڴ@c8>B%Hn:Ԙ%Ir8sόNX&qFysEjݲo2~oX6#>yyYw6&z؅v(+RclNyjN 5 4 =gzĂ~%:9'=qcLVhQ Mљ((r|p +ȑ8NtXItKMS.G3{C:^$Nd &MVoyyT0cdPZ FHhb4 1qGRϟL߈{^gc2߮l +sY/W,'4Khoȥ]!NYk(X4jSF9b +ěn&c*m T8;U7\Ș]U^8e2GxPX#< }sA]f/zv!elۻ8{ T̿ C +Ȯh1Ў O\ *)$^Iʊ@w8|'B@r@ā3U/ lHҐp@}w1 M^ npcK!!AY2UQ8&V"tw|aAUAz^) b&wnK[h{YU)t2mFhw`ԥ`zn)B8k`JP)>PJ2C|x |rhKcZlF#)%:ꩠ\3%ꛝPBDk NF+q܁Ncl&b %L8Y#1TỦD 0S(Q/ yt3 itH?a8$B\UjQ4f3f+o4cPRy +L{ ,{P$K;'ykoi Iau\WGbl^K -IFVdV\*=hk~{+UɃqӒqq6`s``Y#f&*P0mTP1I{aiCh@ˣr34k_Cʸ8JoKn]ȫR q G'1!xHݥ]JSRb̈>E3PB +!C2\G[aTx=Fm[zQ>&+TlGA8: eY Х6xO,D;@ňL+q5(k5DDbV# +0) F=zx,Mթ4M0h2:V awڰ912S_>`IƦL/}{h.aWuCJy) ! ˔O6E(Gqvpi@(7S4o8BP7S:O:8ȗtG[Xz=xbE#*\ۥ ƳŦ~ol;}\cэG++[)ceצW?AkNKBh6}i+ Q.­D=y8XLJAu*aP[ƴ}֝!T"2&qUvr2_kve]x/$1WүG[-E²bшI!MuyM>E5hls(m {eo?V,4\;a*x+JnXex t  +͖>G:ɅyyvƲ95vBE7Ls*Jva5iSghG4>:AJ*/bU:OE/A98BqƊfzwpeWĶIs8 6b`_(a0o9:dY]! P}13%)8`` Z$<|7$'_Ff9L\Q?Qv7h;;㵬$ +EћNXhȲWP3r$S9Md&64=C`̈́w*S`/2X:DMv|fLfbww2hrˬw:6skwl)8D Rք4 :E/82U96pPq!* =CYo؜K8z6ͺus1;u׳Ԏ /LJ2uR dlVsٝ$y;6gKgd]*$\C&/%"0:t*zI.n87S%jVD{%[86nq +TI~^#xK'Y>uυ3R݅NFgF9.JW=?iJxKN?RUs={Vd"x5럒 +QNLq0d&H{@"DɧQrdh +ͣARtn(|Ef~ +:uo~ߒԓ(]cv}Kڽ~el*ևɰYlhYRK!#&f~a%wR( +Y*S%0uɣ_HO"W{uquLNiCrPfا\a@0 pr|th -aFŏY=/ b!B$clF:qV^6es$.fuf.E䑟0S9: + I_!'+'ɒ C+tj㝪) ,>LJ4(Uy346 JP3Gr8F[ٟ:9NcLyL Cb E#.{fIʤi\ ޯ=)6l|jGЙT- WJCbk U.(07)XS)h."2vԎW 5*8r?JOW )χ.ܠcܨԀ$oQv,WԞ~$} *̙H+ ITIR| RǟeUjA2aׅ5J:G!t*~(3N-N$.yl9FhuhTN u%gonɁEg쉌xԲb|z_ H m +J£[tl &0P:T wR&;^|`Ҕu7lܹp-g(Xd:e71lr/^qȼ ) {^"o߯ٯi~ʀqPvcgX<жPlvUzuC6y#fKKe!GtNɥZscn42 {EOeS;@3I\SMz{o:§aC5wE%-%GB>|?H[)B5\ DrS4tѶ~důeaBV}&wp8t29NfhĠHD-jU܌;?<8;[FF|XUfSb95*M"K%d"F=+!:qcVׂKtG+-k }%]ŜBŵjC;:xty"]镲1; "nܲ!B+,E wr*=1L^gMr=~$&Ct@3Ž,>7w/+'A2ْ +dO>SŠRK $)^|[0?/Y^%xplCt'ns!#,𱀤 YeǏ> e\ +—"qƿj_;{GxTѱxKhC"- EQ=vՂaREnbݞ t/{ o4HC|pɰGW@!!՟W=!C艒\:P~n+Ebt!Ѫоxya p͵Q>"!f`:f* r2:@a틢'333e[[QZQ@L"A"Fd̫ $\{ LL + N@<$L@)m;DB BS&QrXhjr*itK)|ZӔGwBivKؽѡD.vX v ۋPځ e7i0.,&MnyHGq\C⡐rCT$%H;Z^yhyy-/q؀ (ʬ ȫu0-߫H5}/҂(Po62i#62E##*biV< Y(^J媲Y:Tp;܍lm}q7 K6)2Bwynd0MCi4KCBG%ff ¹pN6edSZ{$boVLWK@J"`iT-tn(WE,Yw@xg-g-]7*"Jd+!(V գ [Ŀl%[,HQ*ar{پW +:R5 +*h#ڈ6݇\"Rڈ62Kpfp5U] p5jB}L4@qY-$uY- J媲2d}̒=I "I^KW,͵ŽK!fр,FM7q}J%&9IMÖl%4R(|z4$+OZq@w@ЊTʐphe! W\ Xks!h4|VX BfJLGeNx4ToHqW̄+!3` svL6=bmiTZHb8RĿ*`$F2K yke8RD".3Y̩z"r(M 1~\[H<FaE: F35aK]1r5crzY?"YVqdAh 1a <US%f/?I yj܍E꬗DVf,|LPr1:ƥ lȊcȩ2Kx^S D&ŸP0|\UR  +QIMc-Yg/kKgRr +@Sml4@ BEn7 A@^BL*H2+DĢ*PTaHi6%+k@ @ *m7DsFzRܢRsKr),[&P*ZJ4 ՛"%YM]ZZ!I# $d 8 L6-j&4q5ĕwP q)hS rR<)BmBbLQ%#;S0L<,R!LkNڲk_m#]ÑucS0Wt.Ӂ"]¸YAq2n)M.MλŠp.Cy,*!KZ! p(':€8%6:Rʡj'DŽ\$r^(cO +9+ + XˈKp"Z9⦬AV.7ZM!RD@ < \!3`+_8x1 fHd}Vۥ!A\\V/c|J r f`<$184PꀘHr;%Y# cEʳќL /9 +TլjB@PMFm1pG%ھ%p54P*W%F8Y_1#mK\X{,&s:*C'U <~qq-Rr7u:8mFV%; ,vX v;L08 o9Vi){Q-.vBY_,W˸ C>[E2n%"0m,յ(r #Ua,h^6w-m =![$)nKU6 }*@,JGuJ%%*bgCѴN FhR.5m1C41:QIyLu~]d@9HpA y-ʃTm}L"JM* AKoDIoHp9N:58S +L TXljj}Z5jE20cTVB*TvrYO)S'F#'H V @v ڣT=:hLC `6;Dm$'9Q|HLj cqd,5R2dΈ; + +fZW ȫyU] +P6 I< 'ʉJ>_#H5R 0oOpwf` fAn:E*WE\)kNNV21戈$SspI:D6/m^q^r7 %XjӐ80 ,5Y͸JMĝAX=w)liv>&8YKc|J1.}Eq)i ˔t!D"ᓛ +D]-882TZ&0  )Io]4SL%[( xXjAYXXcŲ9'er$\H iK2^rJFv2x'3Lc1gojHx( ǢЊ*]7]ʂWBJ|_iBFQc4%[j$F2-x=#PA}/5{HmO$"8I:H85tHrqdm}F  nX_\Xjq.Ӓ!IpŸ^uP +sBR bNq1'LA SHKPH( Bybܭ$\VNԀm@}ܛKNk5àrP.l 5b:t%:3`x2ŝ-烐Lo)`HOhPq|36̠;E1Ie< qJ#3e 8VU86&o~=BqZl]VluU#YqVdYM/iEŠM+ +V*R8%xādLA|)C*%^C!†VȂYo M1_EGCVC\'d5&(:j̓$1O_PHMi':5[ء-TB%J(X%hs+ +7[1kZje}]) +EByJiF*cLaEHh"bh V4l@K8̀T",2R!u4"Y<\DQҧs0Ӥ@Tm%; N6:,ս)<I#alzkj3KX0a e ,Aw2NES0a(Q ÒHnB=2'\td bcBDr >e `$lpd^8r2U0oK@<9(`d:,`x Zz IOW^ 3"@.19L3h ?b6,Њ]dR+lKOpwGؕ@3+08ϥ@MLF"x\@rMQsੱMp)O*xgJl" HLj1̪R%%cn,qoWek'lexHtX'Un)S{!l&9-. -ŶI8떡f}~%%(r%;#cdċA.Af!Nrr :8I!ZJK"zՁ}%;XEHqbk@^ og"7>HEi)`c2Z67TFJgx 2K0r **ʡ`T209H%)KTwGqSH<~TJ*: l-@*"&\gF$bd*vE, Ջ<̈́GQLTΚV$ըMal8JJYrCbr@q6)bDD\T +2fy9N.~y$PH.!RYS4ٱ!kN|2qlUOKf'G`4D{A.b[jnw3eGpRz)M +5BςL0LOI.,5YѦ"k:QV3Ww@4l&[d*d阪E f$hRp$ hY/ïV'˛ IkF̳ޡ2d:. +n$ۨ $FT2Ѫ7̓b.7n7Zv̼VQN<IY 1vÅ0Y ,VDYX\6r8 '%X +Dyw@T`iFåBkAUsT.҅ +T^3ޑ͵/mͻc3v{1wvݒ.lwj-轻v]oދ;b@uLuS}0wMp3wko-U@ŀci2 ƢTUA( +3M>\Z3 Ё@T*@T w@XuȬ}w۵Νx˰Ɨfb+ދׯ_-X9{]k_۹v~d}1V>}s-m[96s-\mzwƘ[kumk{ڟk n~ޕxԗg^{Z\9o{y:~~jk}}ߊUU׷:zys-ƙc8gsj7-ǖfw=㜭`uo[\ۺxܹ:k>.oǛg3wΚ[?{߽!m}םoTgoyX[nyyo5_cl1_Ι︻[[ָsn;׿{{=Zw\k7~oVXzkc/jG@X~_? ,sW{7ǛΗu{ڍ`8? dys^k5~@p-k#ck|y֏w\{?:g}w7]V[ֻx/|}+~-޸qΫ83W׻Ƽg{um1-m^ڷ]cn}9ۊuε[{߮^~ƿWkϯw{֎smGŀwvzy>~;}@Xxz|??]g1 c{yc}`k_/׻[{ן3yn{@l[|ww@:(ʽnT p`T$u<(8pkZ:T\V:Ff lO* kB$@@H$4 IC0$ r(FaAACW Yzf^%bHVW&)L\.0~"{:RSJH<Ld}f%Opؙ*Nucif#\dUeAoa(ڑs C>t"on_Gs jW"(5M~ЅktTKWtRNjâY`M] (i)*,:eԑT @ -윚X +w^Wc 6QPi"4YC": +B1ec!M^ި}f-jFBr >n@x¤baM?XJ{H)ƾH3W43_%Z?>|nm57gqr7 V4]W0rbnNdkai,r{TA-ޘmA%F2En{$q<'վ=!NW,ӳU E4h@9+&T5g5 O7Aw?;,A-DB7a +VK} +f>TrjjZg iM:&җM;闭m'1R-qӃaLFAHƄ9.jsq C +f=$IC]P͚ACa %;HʦVEO> +򩤕&BxհmǭNq X+Q={8=Y^r*Ny38A1 r[XA῿]*d~v QbIvo +P$7~/eF n6@%2krJjK1s? c-M|; aKBXi%s]+dUΠ vAMj]̕%뻴Qvaq)|b5el7؋CWϫmN.8>=}j3REK4BlNw֖M%ҋ` + jg5>*YGTy*K#(ŌaZ(bhW}>]!ZP` .[/t X5ӞSx +Z5E`Qtp?]鶣8m&{IKm&$·ݖ+9:>h6e_AS\PsSɄ?]>O{[J8dw /Z(zԙ< Z o%8bior;4=3k\kΊLMGOWpv{ J `ʲ5S4`2 ?aEڢ]'FuʊuJ"j.DïB TAImiNj^ti`:j9J6OޞmZ:BPIG}Tr-`Ac*@WX 2.7,]ޙS?%Z~m.^lzMFP{c5|yaUzM}#"eea#C8mjarAu>y4̦jt̲}Sf%ϰĶach5 rq*8]"WǰS݊c\E^Sft|6_*l'G |%]xa9IY uո^FiA+-P·COTC|&.A W:%T.{YgQN#4x*hIk lЦ(D+hRmȠfOs.6Q{|)c%놝B[igFu`|ҋ9l#U CROS[)0q?/5xg%[ T3\WAZ97#OkȀ4_. DrN2zR ,u'-B9dVgLp\K̨z mieG_'K^nΖ +瑜7/]̲P|L C3v0#~;Q ',|zWUS^ =B@Ȯ<ʵ46sڟ!*"S2OSɾ(Xa%_ڰly.>GבW!ijߗ֯:[фb" Ly6+Gױ> R@gxܙ'j,sÉnas*x,c:~-JIN8BL@w>Ц)ec"e#bgY ֪ȮQ ͜3:,MduK`鄊SNMv]5v1_$+ \*ڹVs_>3=ּy3Wlt ?q29 +Q!Z"&ܘzF>7}k_~r%{{c刁X u14^TAmAAg*ƼH~7@V!uɈɢֵlB3Mt9=Ldu,V2@-* Os&ˎũw晷(s"nfF-Ԣ$sYY;/~ qoPﲜfZ~ \k,jRIGOLp]3` ]fnc585}9,ǣ0|P)Ӭ(}DJ"=ڟu`'3-X7K`¬z-ϬCшhx,q</3Q*tyIVƞPňd><1^ `}mҾ?g6|cFqs}raH;Io\)[8o }kz+/]iDeHp}/? p }EtA 1';pfjk{!32mp6}>n:]^eSžG,tX,/$ 88N~EyU;Q5]N]ndU?`φvdT"t@nuyyf ]9lU+-p->ڡXi12 bw߬ dm]˽p0_؏-"!`aģ!sg랙 %7}Ft7>:~3P<#oo7&<|,>U&_2_`'7Y)bڹ~T|QC D&le?@_ +#&Z ܇ߐ2@!ڀBANP:1B|݈K8jcD| nSU.cPPs]}kW/!O?GnM4h:( +HYW8ao?{B0",駧yr8>PpI6y՟f5d&pW"^@q8 3c Τ<_GyJj+i +̥-8xZs> G w rz +? +AY胄?nDpYe']Ԫ(KS$]{N=E'u-K^2Q ዄw'#ZEoVA?.V'CeK~x""I}U"tS2)" k7&B79r-`c@D)Fkx6vB)bqLT*CNCHY['h~;' +>ޢ(Ok'c_I8_ϯTb"f9A_|T,!p0EOk-ۺ@H>mlv۷~S;۔)J (/-yIb]߫٨_s$CڷU*ʳg{ AV?<0b>&EפtŪpWrQ*5pݕ#l}1JXIw{fNjQbn)/vDy1ҎcALc&x$6LY!̾1E}0}*vPj:ƤDrO o,x- s7!'ͤvོH* XPYtׅ?%EsK2*$dT~U]ς >|%p&{Zh}>Ao+bI]̢]"%.' XFlk >x,v)|x~0; z!F G|r0dSiA8ݣd#^LVB|ʽR5FI:|Ƞ{kʓ߸3.vz;)9Y\(28.Е}[vӐ{TLvi=WN/ɓ2GR߷+Su׏d'c8cf[2  F zǖdV,{QT`. R\Pb汗yԋq@x j ':CoN:U&,-%-R* `z4>+i\d+η ͵~@j9hA*?oR:+?@l жX^p hBJCH#ˑⳒ^ =nks.tB% + j uҶWn3GG;EDQtڠ +w97ɑ3?&3? >jPiBc#$klSőO8fƅUY;89 b1àTUtcb{P׿;VkE}amU\LdxC~>|%FY%BC,cTd~I&zUyNՇ?TaE8A;Nʌֶx הՆlr#8m{Tg'#>v :=X+pq`JHby\#.Uaɥ*BCg_|w-O9_9ȑQ՚hGpW x] X6o{#T[&O\1 h+]A& z:AvB(pMT[=a+dɋ&%"!k{^tl-YLbRT/4ݖoV2/8qm%NLMq2MJdg;0&Յ?U?&EhUz6} 7^`1)Sf[1)Ф$D5 7Œnq:e U6i[fb՞ +Jzx@e+`α97 7޸2! +=' zjZb)S%4g:/gMpUwUXkpNTsV+5r%-Z9Bvuׅd ZdJs"TsI@5s\mjG"?E}>/u[Z{R/XOkdt1$HξfW(0cE(p^-pFo7+`Zۤzt87&;ΡƼaVEՒ>] +Rn* =MX ĺ> +9B*~قzx`8p_}kCf6Ƨ6_BjZ.&y |^-yuK`&_KݦF'=} !N8W88 /MoN=?5!^Dva˓o(kӡID9~fRyi.b7ʺt[U,.|kH6;SAЯR}IL@t(k;5F 3W +'øLU,]^XzVaq8_6A[2qTkTIn6E^ +R3:R}Zvo?gP%_laPRܳ v@x1n֚Er+/?e<=#GMHmI>Ã?c8zL|J5+0""iqt>bi.Ќ[Sy037a)=4V9ȣ/xjp2hmMt8rǽlNM hC_5S(Eו05g*r,y#f{ +PS`;Br"g]ֹD,g)bbH.L@&I0AZ~܃CB mWuJ^'exFAkC#@J!DBu}vmpzNMFMlBtʊ(|Zd?_c)Q29$ɰFRJw6yX55ױbTA׆u1lʚS)df# +Eܱo/\#e/7Ap +I$HHXWK7Aop9ATk")*W{ۄ ^8 w`XL%$lpK}[!JcsePsj,Kg)BoH]Z@Ě.%!lGvJr{;X=@x&qJrum¦3=sHeݫ=y3#Ȁ ŗjg8j6K*(L8(~TІ 16/y?Q}PҢJiU~2IG,NT/."8FҬl#W8缐Q~N: -38[rv] fEd3 YťZfA"OʿF8ng]Gj &RSwT{()!ڞdT#`PoZT˰?.[Q|E3R x,RIz;np|eS] ʊ/{Jۣ1ėۭHTM+lhƱe,#%k̂`?&1 b>~_|;0 +6 uԣ&M0IE6 /i% os:() HGD>/<6]'Uvh+>e;ʶgSƚ3 R|)/mqgӫnsr˚[S_M?lIb/R3PDMuٺ/N\4X@Xښ#&f`r{7mhƕ+<4ɀqP^|[JJ[\(K<V1y%\'oCY},p( ˾Zu#/Z<,/ oX6sY_ 0;Ъ>hD$9#8/ U+'tJ6hI3^:Fh1> 'nd_yNէ6%.T]3uuF N<,t Tq/4Q>ADZ! rSqiTի^G[:$]w/aGEUgbNؚXmCꢑ(?+*PkݫTؕh|EW@}.e Ǥ]^I|^+W77yITǕB,qMΣFw?Spy)om̈́B%fs;]ip/!$(C6e<+qqOfqNة&_] 3#5rƭN{Gd"(;бnGI<~)/I.i8w 6 wUإDϦ%\ҔU>2dHlOJڶVi+Uxrv#[A7.B\iąs*)M32 #@p ެgA5?s_kX[ˡ^ʹ;xpeͥM-{h P!$PT&s39atDuxfd b&a({m%oF>y"!.m =bh3)Qy}AξI/WO#iF*͹5oԷ/\u$rgG~VNO !MԃS_],7 НEE;W>,װ=~L;{<)dU_S*>8jx7n?VkѯY3xQ.4Fٛ1r`ﳵXyT`R 4_L Kʅ". .J̗cDA.cƦ.P4eV%j?YIIj!敢aX  Q*<Զ%Z՛U>Q&:MYÑ[ߚ *ԭ |[F(3TTg˙ ^QyjM'o@OvlT 8 D;yW٭X`Yv +G ^ N;= N#i& lύzօwzNkL(l:}㉺1;hK@ci'g.uŁk5*"!wƌ(w~r';˅gcPJ78#^PV{ `-5 >cQu[XCs({̧[˞DDẹ,jב*n% +EMydӃy +CL|qYstڥss3Kh(8m G4X G4)4|'0L>y3H6*7P)kכgLp +)ϥְ%ae +YkhlkDӌ bL(V::IԒt0rD̤X.̐^>(MbJ07(5$0 `B aFf;@"WC KXbR;Y`L ?~D )$*՗tB;B6|vN6ףּÂ}$N<@d?SKMߟCƏz VTrrrT + +Kp^= [&S>)'z %I C4T4h:ڼTlȈB.䫝*~JA{=j#%54(t;S-װ#u- ~Tpe|x,͘7Ve%ry8PSӻfn$:5aiӼ&^md\d =>-uC<3*ʖpB ^Ke=J:~]Ӡ-9]>Gk1gI^ѵt`vR^/0Q{z|CxQ9XA ӎR' ߦ`5H9S+Q3S xg#e+@CNw}\*sq'pE}'rnMPXM ]:z(AFЀNbS@r :5_ ʄ`9 +endstream endobj 10 0 obj [9 0 R 8 0 R 7 0 R 6 0 R 5 0 R] endobj 35 0 obj <> endobj xref +0 36 +0000000000 65535 f +0000000016 00000 n +0000000193 00000 n +0000050662 00000 n +0000000000 00000 f +0000053324 00000 n +0000053394 00000 n +0000053464 00000 n +0000053534 00000 n +0000053604 00000 n +0000351801 00000 n +0000050714 00000 n +0000051136 00000 n +0000054367 00000 n +0000054254 00000 n +0000052340 00000 n +0000052762 00000 n +0000052810 00000 n +0000054138 00000 n +0000054169 00000 n +0000054022 00000 n +0000054053 00000 n +0000053906 00000 n +0000053937 00000 n +0000053790 00000 n +0000053821 00000 n +0000053674 00000 n +0000053705 00000 n +0000054441 00000 n +0000054696 00000 n +0000055971 00000 n +0000121560 00000 n +0000187149 00000 n +0000252738 00000 n +0000318327 00000 n +0000351849 00000 n +trailer +<]>> +startxref +352030 +%%EOF diff --git a/buch/papers/ifs/images/farnrightwight.eps b/buch/papers/ifs/images/farnrightwight.eps new file mode 100644 index 0000000..667ec77 --- /dev/null +++ b/buch/papers/ifs/images/farnrightwight.eps @@ -0,0 +1,1027 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (MATLAB, The Mathworks, Inc. Version 9.7.0.1434023 \(R2019b\) Update 6. Operating System: Windows 10) +%%Title: (C:/Users/Alain/Dropbox/Dokumente/HSR/08_fs21/mathsem/buch - Kopie/SeminarMatrizen/buch/papers/ifs/images/farnrightwight.eps) +%%CreationDate: 2021-06-20T13:55:54 +%%Pages: (atend) +%%BoundingBox: 0 0 420 315 +%%LanguageLevel: 3 +%%EndComments +%%BeginProlog +%%BeginResource: procset (Apache XML Graphics Std ProcSet) 1.2 0 +%%Version: 1.2 0 +%%Copyright: (Copyright 2001-2003,2010 The Apache Software Foundation. License terms: http://www.apache.org/licenses/LICENSE-2.0) +/bd{bind def}bind def +/ld{load def}bd +/GR/grestore ld +/GS/gsave ld +/RM/rmoveto ld +/C/curveto ld +/t/show ld +/L/lineto ld +/ML/setmiterlimit ld +/CT/concat ld +/f/fill ld +/N/newpath ld +/S/stroke ld +/CC/setcmykcolor ld +/A/ashow ld +/cp/closepath ld +/RC/setrgbcolor ld +/LJ/setlinejoin ld +/GC/setgray ld +/LW/setlinewidth ld +/M/moveto ld +/re {4 2 roll M +1 index 0 rlineto +0 exch rlineto +neg 0 rlineto +cp } bd +/_ctm matrix def +/_tm matrix def +/BT { _ctm currentmatrix pop matrix _tm copy pop 0 0 moveto } bd +/ET { _ctm setmatrix } bd +/iTm { _ctm setmatrix _tm concat } bd +/Tm { _tm astore pop iTm 0 0 moveto } bd +/ux 0.0 def +/uy 0.0 def +/F { + /Tp exch def + /Tf exch def + Tf findfont Tp scalefont setfont + /cf Tf def /cs Tp def +} bd +/ULS {currentpoint /uy exch def /ux exch def} bd +/ULE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add moveto Tcx uy To add lineto + Tt setlinewidth stroke + grestore +} bd +/OLE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add cs add moveto Tcx uy To add cs add lineto + Tt setlinewidth stroke + grestore +} bd +/SOE { + /Tcx currentpoint pop def + gsave + newpath + cf findfont cs scalefont dup + /FontMatrix get 0 get /Ts exch def /FontInfo get dup + /UnderlinePosition get Ts mul /To exch def + /UnderlineThickness get Ts mul /Tt exch def + ux uy To add cs 10 mul 26 idiv add moveto Tcx uy To add cs 10 mul 26 idiv add lineto + Tt setlinewidth stroke + grestore +} bd +/QT { +/Y22 exch store +/X22 exch store +/Y21 exch store +/X21 exch store +currentpoint +/Y21 load 2 mul add 3 div exch +/X21 load 2 mul add 3 div exch +/X21 load 2 mul /X22 load add 3 div +/Y21 load 2 mul /Y22 load add 3 div +/X22 load /Y22 load curveto +} bd +/SSPD { +dup length /d exch dict def +{ +/v exch def +/k exch def +currentpagedevice k known { +/cpdv currentpagedevice k get def +v cpdv ne { +/upd false def +/nullv v type /nulltype eq def +/nullcpdv cpdv type /nulltype eq def +nullv nullcpdv or +{ +/upd true def +} { +/sametype v type cpdv type eq def +sametype { +v type /arraytype eq { +/vlen v length def +/cpdvlen cpdv length def +vlen cpdvlen eq { +0 1 vlen 1 sub { +/i exch def +/obj v i get def +/cpdobj cpdv i get def +obj cpdobj ne { +/upd true def +exit +} if +} for +} { +/upd true def +} ifelse +} { +v type /dicttype eq { +v { +/dv exch def +/dk exch def +/cpddv cpdv dk get def +dv cpddv ne { +/upd true def +exit +} if +} forall +} { +/upd true def +} ifelse +} ifelse +} if +} ifelse +upd true eq { +d k v put +} if +} if +} if +} forall +d length 0 gt { +d setpagedevice +} if +} bd +/RE { % /NewFontName [NewEncodingArray] /FontName RE - + findfont dup length dict begin + { + 1 index /FID ne + {def} {pop pop} ifelse + } forall + /Encoding exch def + /FontName 1 index def + currentdict definefont pop + end +} bind def +%%EndResource +%%BeginResource: procset (Apache XML Graphics EPS ProcSet) 1.0 0 +%%Version: 1.0 0 +%%Copyright: (Copyright 2002-2003 The Apache Software Foundation. License terms: http://www.apache.org/licenses/LICENSE-2.0) +/BeginEPSF { %def +/b4_Inc_state save def % Save state for cleanup +/dict_count countdictstack def % Count objects on dict stack +/op_count count 1 sub def % Count objects on operand stack +userdict begin % Push userdict on dict stack +/showpage { } def % Redefine showpage, { } = null proc +0 setgray 0 setlinecap % Prepare graphics state +1 setlinewidth 0 setlinejoin +10 setmiterlimit [ ] 0 setdash newpath +/languagelevel where % If level not equal to 1 then +{pop languagelevel % set strokeadjust and +1 ne % overprint to their defaults. +{false setstrokeadjust false setoverprint +} if +} if +} bd +/EndEPSF { %def +count op_count sub {pop} repeat % Clean up stacks +countdictstack dict_count sub {end} repeat +b4_Inc_state restore +} bd +%%EndResource +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 420 315 +%%BeginPageSetup +[1 0 0 -1 0 315] CT +%%EndPageSetup +GS +[0.75 0 0 0.75 0 0] CT +1 GC +N +0 0 560 420 re +f +GR +GS +[0.48 0 0 0.48018 0 113.32318] CT +[1 0 0 1 0 0] CT +N +0 -236 M +875 -236 L +875 420 L +0 420 L +0 -236 L +cp +clip +GS +0 0 translate +560 420 scale +%AXGBeginBitmap: java.awt.image.BufferedImage +{{ +/RawData currentfile /ASCII85Decode filter def +/Data RawData /FlateDecode filter def +/DeviceRGB setcolorspace +<< + /ImageType 1 + /Decode [0 1 0 1 0 1] + /DataSource Data + /Height 420 + /ImageMatrix [560 0 0 420 0 0] + /Width 560 + /BitsPerComponent 8 +>> image +} stopped {handleerror} if + RawData flushfile +} exec +Gb"07rMsJj[5Ig<1j%Whh+*KlVYcXO2`)-kfc%>5F)'4+#8EmP.A5n_*\ +h?m^',#*uk%MCfn66NhALf^BLR\i%:Y1o.Q0^AJ6B73b0WnLseOkjfV>4pD!gLmTJkEoa3(.->,G3mki +QQQS2K?7p/fBCof1]/0kcR8#Xc9M-'qZ$QPqO@>gqW->[s#PD`hs9asT@VoL570&Ds(M9/r871.l7]b? +pf5)[^8YI;T3Qm!"m`YhQ<1h2rDfK05I0ltH$6"_`noP&aftHi([qC\\J<\RiEK0/DelN-=hh0=[m%i5 +BK+:%QZiO1W'?hs-OX90X;g.D60JpR?3bWZ.AP`mlP&Q%lHOBiRrR`Rp%Po8HFmX7*%s6CZ>DUJIJ^<5 +g!5P^M6/JeJW52IO6UpGU9pbCX/^['o8Rgi(WK]oggN$MpX[CkKOR/\qC_L+n>O_"-P5!!HmAuG_)>*D +5=733^!q4SgHlL;fEq40p4Wl`ca5)#hkpN%gLcG"m!Q$o]e9F8j!/C>(4:E*ORF)Nd/4VP_[$Thdah=o22rgo7Bif1?r;VZHF-ufTCW@8+g*Hb*IqW_Cf%3^(73`BI36chWM:n +N]YfEf-dX1iZgbQ&KuQV'6+N,iYTrQF:2C\Z\[/h5r;j"8"IV*A^QSk-<`qAOI&?0J1DJK0l*G,j;!!p +h(+N,4RTFm#&fLBd6^KQ+TeLikOLUXM`25@$3PkS8.bV$9C/%8\7T/2WpPR<%bU2a'P"BMp1FM,d4^;% +^`CKj5noHbpi$Sf9A+S_4C$$ph=TiS"Z!_,$\3t08$V!_GY+5oE08\C)&,@g"4QI!'c +jEe41]!>=%bY\(XFu<.C"bnoYpIf=]/'0[K>u]+JcfL +n4'VPR)7tA<@b4%e&UWDT+j!8&[FK?`XKZr&H;4%0Y`NG`T:PEW(gn$,63r@-K4LOdKmg-uh-_Bi +&d/aC=Pi%?g9shfUdigHfGh`$JG2a="C$(PNNsX7lUEjabT8qR3cOW+Q(NaNNAnC\/)6XHad+@sE?GoE'2gK7%g,j:ZBu7Ah][Q-UgNRKYX6)9*si"dP9OOhJdf:Wjre:1 +D;27\#IFAs>AkW/`.MN>2t\)2Z3rql.KFrP)?Spfk"Qh'ha +Z# +coYQ_q;n&Pm^_MPbEjm6hgbOXhlcu>*fi*1&K_;\&<1@,V!Moi2o`reenhgS>4H!nK3.me].)nN)?O,@ +:;T4Y73?8&U]HmAuJa%&7]TMY^k1kB8e<$RS#G._mJL?r[K,=pX8L'"*1'_h,:L#H?mP-FMS\p'qf +D,htj@5/E6FgReOf$";m;^sJMJq`2";6o7eoqMuVq<+BRalS-c52_(.rU"MFHgJ#<=0JK-,sDqE6^[c1 +50]s"20^]KQV3T^D#YIYg2E`0gUENb(gE*sS20^ZJlO4q[uc-tY`ecM%156G&>0 +E.jEV;`Dl7>:=Y`]K<:\=ij[hSXVbO&8H4=We:XC8^'[B1V/.Q5+p^sG49Apo/7XkLsuerqs:YX=_\kd +Gk#8AboM#`EVf=lqO:E]:;-DYH^PZk9426[(PI>^b"!f*6:JV&eh5Ji4)n1E+9EY6W$C[/cpdO`+_,-X +YqODe[?+(;Kr"XjL`rFc60BpQK!:s<+tO42k@0JZrpY\-e0K(o`/2+o]'I6E5I?&]^%GESUunP(rpub] +(Q*MA_%>]Q<+I,YCJ%0,fa*fFWA@^V]l[NOC/@_o@V7tm8tOW?&8?2LE6)JgO?Q1/EA4l#?-n_6*9!?B5sfW6^(aId>Z>/u3&$7bh^\_C)qpEX +8!G]Z(GkW8%QIXVLNO`IG*Oi!_tE?ICM#SPnt^KBVPj:c'2Kl:+iQs'?qBMk?j)8Jn4&8-9Ok/ja+Kcj +6F50!_]DTLL:8:h3^0H\M`+1ZBjTbRD1S[U>mkm/78^kZ_/k1cgg-\q#)'tu%gI4]LPLZ*NupT7qQtJE +K+C/E)<^P1+&BRHHmAuPcq/B@\jq$*6HVP9KU'Whd$(a&$%EY;_Df0#SW'*Z7Kf;8*OLD/BWP9U2n1lH +0?f%Dn)4igG![$1c=tEB4CaAB6@p`(PU=7+IB=("6Ou=ZPKVk`rc^R$p=jN;#Cl[3+/`Ek4q[uca9_.e +``fuO=[*B7RLmbH@P-pT@X7[37Z`D912OL22_\q(G\=BGppHh.X3`jDEu!PnhMXlt(@<;!Hm0+bpKKMd +@-+8RZPg:JW%Yg_qWg#L4S@3&3)TuU%m9>HIIQ9X5>JmaHmAuPPjlIdB+QsX)IC52K\8]Kh?V[,b4Nn, +E$Ts,!u?j'AY/]*jkmNAVT'=4#HthNaYr>Nnlg!gVVlG.)CTF(M\DEm'4UfH0:_Z14&H+ +#N];?#_g?aG\jR9C(%1[.uDAX+)X0_6qOga_\rgLDF'Ri>%0.:dIJ\3`+#EK>tN2D742oCNu79D,D:=8 +KYVHA/SlLoBAfP.?LC,o2f@DqrqY_QS2aq\]9=UaE]R +$VW/!b1a^CNt\Nf>mc;B+[-MA6Upu3Ep]o4VEkN`A/i`pHpd--q#i85/-2"kh[ZhSEO4gZ%>Cj::]?[Q +b,jB3G@UV4WL1c4E,Z3*;ZZ=:aN]u`5p^IODs(O]oFCDR+;e"&Dt"@J\"J[$m7!!9._$lW0fPf)@6Mq5$`M9P&HmAt% +P]+4="jROr4sQu\L@5]U70*]/$7C+&UB +Y*(lWPcPf*`(,De@)HiB,A^G7!s",`Kd=m3Mt.#s@=0?h+9XI:oEU2gnjT0)"W,]UgIFffJ?N2$^nsSH +6:#OPpS%(=:a3F\cg`%_fYp20,/d!'@,Rp'<8nCW-Yb[u2ig&\`e/_?<'qEXiuju(j*bsE7;BjA1`?E< +Gnp!]>uNo*m[2PGU($A4/[?eH;r!WG]V>s':`_r;Y@QH#+?gD@6fj&]8(2%N]/G+($Of@tPQlZAN4^6& +.!\"^c-tN"oF^)AS/6&cSX#(VO:_#,A#&1/L`*(-p`N*fFK8pGE_&:MR$u>XL'TS^B]DG#WFXgM+?gD@ +J0f1$V(eWpj7)t4gF:"6W>j&bEb3hOV/gbs/V.Xu.Qd"7&/F+HXKWFkY]s/knaO&jC)q]_l+5QoJZXSV +.12%tHB)sV17kNT<15e`iij+@^"tuQciW2O5ldWjS["YC_$Mr/JWPdW'$3&acqPq$15LcM*"IR?Z/!\e +UWEe5PV,Y5+U52ONJ!AZgeZ)L4"RP8RS<[?+trOQ$tu8q7hL%bca+&> +K*T4,$'8P'i<'CkE;N(601$p[bRfcH)SKikQ&Q[tK#+ZAWdFYq\.W3sm^(VTLBI(/+95(N.>ckog#rhc +BJUP>J^>hl+ijp+7\lo3S'@10lG9iY2qSa2q2!!,Q(&`F?-H+[N-XNKm5EZk&B/lc[P#M7JX@Hd%=d]e +$N3;=,RAoJKF>PR+F%*X!Y'8uCiN#!.bRdD#U@#P> +FeVeL'T"fV?-:I`IW3_cr'P!O1l.1qJIsX@M[c=rYa>Uj1bQ]kLBa*:W2EJ+,rS,KE,pTUou_*nA.5+>>T>g,"%:O1k8##jhKo7u81@1t0X-Q6r5r,.lBP7r! +#m,Wj,"3.VI3J=C6B[$tfZ]I&Wgm^mOdFZ]_mT0S.*:26cs.7??0BD+>$5Wl'B"CoJJVWNZLF`b;`+u, +.Q>gb5n(8rGt,#A_J>iE*%cA<21ha'6fAQH9kla.+N-d%!6j9C+EXL=pYg'oH?lFD7ZB\VEbFc:uG9LDO:tW#m(3?TZi`k,-5*)3l'=h3\fb&DR:9A>rN_LQ'g:a-/bPUk+$a<],Ak, +8:>$UXEr/#.>2`XP.PIVL\o(bKLd[J^h\hoDXKXmEO+dI! +06/V)$P:'\J)gG;@M;LpfiHE^36:5VQfmhA>MY*7jiB;^n:G>sh?&E9kc)B%bG,%S50R`X@-2h^!:eB) +D*_$M\$qs+-?Z-Y#/8n"A]?upKd=e0Flm19JVa`0M?J%!\AB]ZDYC(a$1;/dsJqt$l(:.C>XtV\gO+b1I9+ebrB3759 +8ddc#?)[_aot[RG9fJT$WlW"66[\SBL1"C;Y6kB:?_\_U<@t)#]QOc,1YR$5rA/3`!uV3>^H6"GK,&1C +jl8LOLl[5&!>@s>52qlr`N%3+e:#2Y,ik`Rnsn9Y#f\X40RB2!Gt,$Sn]^"*@b+/%*5,"1Q[@A\DA%oP +S%(bk#jAq,=,&Ic@@G6U=:_ES9\HEi%34@P@6`]7[(GCH=T=*a;TK5>I.luQ;cr[:gEnRUcp,(#+CS_K#p_;mlW'W,:CJr%1BWHauV):]9)Rm8!u&j"Vm]mK4#bgCjCiV9(\LL +'ZqR_'(uFa(7c6nY=)LG$)8d4V/nT3I,oqi&0Z;0!luY6irao8fK61Yi$"=mQ987jJBe5ePd\E2J6eLC +d\n1/lGh"N"U\Lbi":0C7$A''^lI!2_PLk]1sUg#S-qCSPc)\,h[;/Cp7eDocB!mLS;b_:o/W9f;f+/=bj2,qBu=irX4RY?[p[m;U?[=kM:LUW#C/*YT]]6d,TrV0,aYR+e50 +(fBS+d>&Xrp*]3TO[993,@M)oL,4*R[1Ylc44%%Rj2A>KQA8VU^tUqo8C!o/cK:A;bbPJ"Bf^oBh?WR# +.3W:[@\_`h$rNYe09VEQQoGd`?dN6US.0C@\%u6*9kFkSLA49"cY^_*^_V&VABBC.:otsLl[3p +8$n2PH\fU/n8b?+3$RF;M49N_r`2+@U_];GO@->X5Sp!CLZcPUcS*-KraiTUi(1C>5SDuHJsDg,e[25V +kQp^@Yj7Y[Nni!iF\+j'IJ4rQ+G@t#+.2'qG8`;[X5Nr +\Z'=h)BbMKZn!3V(FhW&,fE3iXs\:RgS+SGp!Sb2UC4ip>%\AGpFo, +fFH]$6p.%ufO`gnW,3^N_)Zqq:6:"`Eqbg%cj8VU@Fl)+f5\!*]?>p0Oi8F\Z%;/pVJcB=FPDj'enbHL +(^H$VSs_Kp_cn?jgZJ;[asQ63*j6PAV=CkT9l?MNo[Nd*/g@ZQpdj%[6q]#"fBNtmH+X5")EVZ>ahYj> +6H)`G=+hg-pI:i%)taSW?U\\(bc,8T"&M0r:V_0$dJJ_ik,9R\p%r"s1n)^[^.)@I>>X8&DDR +g*MCXV0*Bd&5CLlcmW#NrQsnf1sqNl[cZu8N5E4A?f_Jejgdo+HHmJ&8;Ct3d.^6%h$RJ6,$tD4/!kpoR-pU8Io'_u4'8qe +[`"[,!cSj>Dqf>'F9[pB_TaX3gSdh)'[Ql8*M=F\l!$iI#FhmghaU%K[&cAc;%hk2FN&Qj1^[E# +Gk_Gl,-+0jlC-u$'\'+J;pq4\hKeD9WJ;O@ +kfl'DbeHbt,j[@f@+'^pZ9oG.nPQi^!J!9L*o.u7>FE3XTXn;apAn?-W>dT`hG+GR$nk_nktC,t4G*tD +]_Dc8J1.6[rW/XfG/%&[gV)=sAm)#+W&9%pPFii,NUu>Z5Q:H<(G8rPIf+HhcPKo4+nI2ROg+/-k0W%2 +!$*rHf;")F4.HiBY18J`&AGZJ20:ZDn\q*q^%V\aH#B[1WR(fX6(5KM:UbI18nl$VmLE?*DFCck`/IRl +@3`#.3dSN%mqr*(N]`nXiea+/IfAr2j2eWDf?TsN>9CLuj\"f<`tI%GOp.O0:c.^`M#0cSIUr$07b^u] +Jt_Rf;fbf24?%k8S2,07B#?_P#7+aoAB.>,B'V;98eal6+HuC,+qCVd>i<\k'98Rb6[*5I +SkgIdm+AWk(iJ3CkoG'BeQ6O,WMqB?&lF^oe$/cr2"4qg(Gn-UCbhd54GE6elA?TZUD$Bf"pojGXT:#b +clo%u2138r5q(_/00=qL'VWe-_JQD$I'gW+Phkqo22(K?iZQkXU>)_%-M#_JVAY;`YXI[_-?@1`m_hW4 +:*ZAf6];#I)Hn/N2Vhd#6aTUA\c][%9*:!,UFN5A1>=Z7%')gQ"Gn.jkG,/S,p$rI>7,;c`W-2JqnP>F +;c&]k-5SKbOMN(u.&isu6DtK>*e!nLV`!Kspu$e(Q\^]U?,nMcp\$'r$b,:mBnH%(0uu5)-makoZ3IrD +]c@"XSm%4&0Y`aE,o/g&r5eZS[ci@Zism^aXV-J5'RR#&(>,L57kBfPiAmhcRGuP&DV[7]dRMo3uW;f^X.35Ht1N+u/^5"GD'/<)184 +PogT+(a>6t$?[&0[tYJh@;oC%cSbi,pK74)#aY;-KSIPebDVFmUCMljEr#C3IuP[[J,T%gpYAmmr90p: +]bMUq3t4u=(2=.Fb=6OdB1=qYiLu5\&UEgf05a)[KLO&ldPe0P`0hQ5@JMj#T*4\-'oaR']PF^CreTQpJ,J>N^@N@Y[a1I(o?1M?1B/!WOg+."naM*KR`uVLpbIcPE\2[r +4;G0C+f,TCKaG0uZV>+4JIHIPN/sK7.S;bf'75'6M"[l9;IY[iTITFaUt=tGe?8J0h]haB9Z+0_)P;NY +q>9WqJ*kstP*$_U(JI93,MA'iN"pV)D=nZ +:!pPV)2O?,>mKgGdAkHU7^dkc:c5Hd+!d+)+2HY?m4`]'"d*ghiWpr)8_>qr<.[.=@^L+'[O6RWZ@t1H +UU>rl93Rt7Ll+7F!SO4@640D%@c:4:Yg02g?Th>''/fj\Og+/%7>$r`$1hb&+/heNdL<6OR9E9TFsu8# +#4'r"K_u*k"XNN?*j/t[:eS)2-_krsau`^sE.htQWgmUaLXW,SdhqR\F(m_mLaCjM^dH<6J3L\X*Gn.IKDhPoLY\3tkMmOY]:_.]$&qYng^)H(+sP`dMeG)S7^2d#9-laYtO- +iAL)JSYIX&R$]PX+nkU8d7Sboq3Si.aN1MBVP/n'=3(t+!`_@cLl\tPnWC$tW+(D&NIYhH`%H]S$2HX/ +"S-\S]h?=:ZaAaO(sj+48op?'#MM)GE$Ag(+**G0<*o9=:Q`A1To^X&hgj>u<#F0bA_Ms5ZAT&.S&.hs ++bI.lN'@j7la@;nOg#'u07mlf#+FLI`\qlOOUg/c$MHi:U)-qD3*cnG31%Hm/0ej>"(m( +5#->E$3At*'mQAAW_cMrOQ[Tkd@:D<6"#4@)X;)iQC#II7ZH=T6=J97+?gG3"!"57-j_=@0+.ml"4RhE +/Zk>:2U#mJ/0gFl__S_HM8.B@-[/*M5;FkoKdnbPKDH(77gKOWV8?-U7Gbo$cE@aU-W6(_8rRu,iYn2e +l,*"!2;Q@<)`*V[YSDtTK`+/L)&*9%aT%o*Ng(.:"HYHbjpBBUNtRUlKH>j33tt2pa*(3&;!2P:]*4Ii +m%738[E!XPT/lKMAu-n)(P7q)q:"gcbjo7&p]I2s,jUk3X#luI9E"^?+[CE#ljZ9R1'3o+Yr7UbR5S?B +K7H)uHhH0Ro +LN^=8O!/kGS;juX^a;:,S-1P]JXme2($j[S9M=K;i*:k*= +d>WJQg&^m`Mh53h/2lal&\Mp**][X!?oM5o\tME;,jYu5U%3dF%Z\=pZa=jiZjdd2-15'X^),U8k;:,T +,`-.:!V][Ps&5/8/tS>t4ETrJaqA\766#Q*c'JZDPbX?;+D,1Lg +;CZDCFcXD[_!;!+D&NA,mi2]Y+:hZZ8qZ[)&>)fnDMNFh*'%G,"j,3T8D2"WArG(:&3 +]S9Ms&IO>q?0j7h#'Yu:Kgr[Iog25$)TSE5*ZQo]D8c-EaG>_:L'I11YW)&&lm>l=DpH##+?;K2!,R6] +Gig?1Eh*KC13V^77]rT/@kLfK+`iH=(lfF8ZAh*c8ckkH&BalIaVJ/6gU-)To`[\Hc+`[?ksBHb2utp6 +gl.2UgC^&'&8R!p8D"k\_(^ZR+'AjO7D[d(,XQ8rB?')M>TQ]GdU2nU4W[N4H>VU,%JF4>JnU\)dAYts +S9]?p8j\p-R5oL]8Ln_%iS/Y35BOPar_<^Aj$09iaV+]Ucmq&I!^UV#=p_kn&.@V%\.^cY%O9kCrGtUJ;XK,$Q:%>qAk/^ +kTB/N^p\Wcb*-Fs\n+#:TN=,=,4d_G9VJkeckPIa@K2G[C@LL\Cnru3[dA.DaH"oe1g3rDc'G8qB;>nN +L4G?%oj]_MGeckpG4k'2m_ph&E-'`UUbW0TDULRDUUJoQaFau3QR*MJB-,h"h9,hn7gP'hZh4J<[nQo= +,-;12,@LlA]hD\Y&G&R%a`^)g'r7.N8e?2LNgAdPfUOa.PY^U>BT>*Ro&e+ji1,X]d[=2%noBf8)D*-: +F9EPRH/a*&*=!@1lU?jrH&>`SkPI*4H&LK9Ja?ndkZ*?WlZq#BGdIJf$)gunUiPo +2dt`]MO![#X=D8&?F!l$(Ce-@JKL/u(ii#e/GGDgCp>SKInej]+%IoRb7U##P5NO&Xsq4h2Nm($-ZJk!k.#Qu92pM2a&)]mNH4RnuQ_#o*1*Jl!FA6e"56GUMQG\"(VH&g?'HoVj9K`b.&!M[_STe]X:CX*>5BgVsHb<`c +)%JuOS[J&_,ZI!3#K0-L[c"QUp@t0E))ZZ4L\E$rFNg%@&M77!I'bH-")L'lG!@hSn3PXcL&&:g+!G4) +P-r[nS%1>:Gmm*DS.aIu^F[*kdeh+QYqO\B"YOn!\Yc5`'/Hg_N_%UAu\mRb$PYbL+Cr+mK>=pMu9_H$Z]0Rrb_[n2GB +\1s9Qail;\U/()`F6@P#L(phr'PT;Ij%Z%,OmS,^/.1Vj`E=_?9jg+\P%RSk]gqfY4:o`&-h^`$'u*7> +ICB;bmet*S?agN$O+aVXoR'k5;'T#I5m%T&-lUB!QSbVnVD.Mu1V"Zn?f`So]Y7Z>:JiksI)8BRNa3c0 +UY`t\@,6W2k#T2!3d_X&&BJtnMh6b=]nTPlTgChsO+aXNj.h'-OM!MUWGmJh^b`RDP[ik!j2+=0I7[]= +`_0Fd&Gcl2Q^t:m8+B'2UDG5%AZUo'PjZVSc:V^U".FfRr]l(VIo60m/sn7E/.oHYHmEMLTm6]$an5RU +lm!NFJjg40Gfl3T5;MBlH;u'9YLl[56,P3!F%]$9b$OZWljY95McNJ0q +Yq7]+%p[@)G+?76ds1Cr`Q+\Tce&otg!3DHEt^Z.ZA!.MO%cn-Z/6qXgH2:K(55!Q%Ht$Ua`1&r^Be8`?\2B8c3IE#/-++CkPk=4mcS'bYkXeA\&X.70Jja(E;& +YYn/^MBsD[l&0r"<[BK76Wl +aR]".Rp`AV[+0\`^US\ +I?Z.b)2@V'9(F[FK.$&jX?Up(L&0Wq\1$6_MsfE#gI$g-K7+q'\0Cs0fX'Tc%1P6=R2E5;I^$>.okM`/ +:I"f"r\X/-Y^'b?tIJ;RW,@Q*.`SO9%?:Ci[[nCEP->miD +Zj4%;=m"(p-1J6bWb,[Pg)$ZJGVQ;Zc4o8*/Hfln>OSrH@''U`;1tCKZ%ItM,TIkLlu<&Y$SZpp*Gl74 +,B,:%3(iP)KFgpCq;eg8&0D3G6]-r_-AS[+O0s_T;8[(XDh[dd/7sDp0=<$umAP&8Z6sPP"jWObBNIhc +H(WK-g@-7*]5d/6UqZW&GMjfpnL!JA+t!6L9S/snrUq3_gn^`\H!Ug<.g*G>K>jXk11_[lhMsR\FKfLd"0;3U;`?>ao2";q:6513IV]f\g:c>52<[7RdSE5E'<>'U#Nl]lZphB!`G3G#:1<]4&4O +hsRH%iJ/L=HhQeB?[O"\&r)7c9`g4COl]/rW,E[aADTI\e.AIPbfP-&Je5f/_pdc$EQHEg5/Lrn5)Q]2 +:nu?cYc5`7Gte@XpAF-8OFjfC"Sj%m[R2O4`+G7s&QLjFEKHiIl6o^k])GRH07NGLRU=oun%JSpE^#@i +,O6))-rN?gmEB63R^rOKh7I8]$$"h#J\Tj."r)]B.sIo%Ernjam=JMQNMjE3B^XYY+nc9sCHHUd6H6j= +-6H7$:>(9",gu`tdB*.5(Jf`dg^jo,"_@Pu50/l'[;4AhS2g&V+9'XdWVB"$/>As\[";K7#^r]DAbYO, +Y_Xjc8`n4V*`>98^A$3?U*T*F;&[FAC?l2FmMhJkrqq`p2sc@q8/N\4?bGmH&i(\PaIKhmX\`B6IRdoS/c"jPrYtt#^V%]NHk/2T#.mi6 +H+_*5dEH<&:RKDEg;(m/5GCWD'>"SLRLsBRp@mJcjN+:m6]2+6*Zs?DL!+`k*gPY25P[mq/2+a4ik#\e +041lC4S$Q:g>M,o5(`YC[OJ$71-EDa +hR3i24(VV>gDKN&:F/g'#SPnJ^j\"^7bltFEGr`rH$hHH_%Z2mfM(MVQ,%u=8qogFFQl]'&ldnJ-^#!/ +iZhn'aN#P!Im#:\>]!%YY?&MUH33>]4%@DJ7B+5]R-_k1RmL54`hI,oCq(Ob^>WgeoB\Ig"Jkh0M`.ZnRQ)Q:P#9S?_`\K)SHLS`UlgM#^\WV94pdj%";D#/D +G_+_@_hTkHLpLYsDpPk0jP4.QjlCr.=0X%M)S'9qTW4.i,2r\DH>t%NE$3JbRL:^GbA$(-c=hadL4Q.6 +826e+C>!#+m#1o[cRL_`PM;4Y(4k,mrb69OeI"'S]pf?M.B%\@$l6pFKolrplLDjaWp]?A-/q0N#L5,H +il4lkqpP1$P^Bnj'E2^@@V9`J]bNPGHW;XZJO?ZkQ06GG4TD9_jJ.qjNBMl*bCc5FDSF$,c$mVR`gWV: +GQcun"S0jKF"`bp?#,7WKOLTqPO_%4_NDt2&3W-Z,62F`9?Ob$5Z9CX12l4[Yp83>*FY1F*RO!^)JQ6O +@"j83e-lRf[j<(!]f-ao!1Q)q&5"i3*m:%7IiURV3ASS29LiF1BY2[G54]-n)M(:70'io,($&Rr-*c5jk!%5TgKlKE%\Jh!.,;3@V) +S1D)\`Ygd4bo!IdgEH/BK:$>W4A&2:FdmsW8D$$[NBa+Z)d7A\F[B98MnV.(&*pb\E"HY*$s$7dP<(C[ +*A;>0`EnOWAEpO\M#mAt'Ld8Ncc^^c7Bb>Ii"ra&6ZWP3I(=.!"[$(_VaA5'O!?D/lS\k8Og#RR5!5Ou +)ASPmbn$O-")j\u/'!-+h)NLT;3/oF!+Rpj>o:R:>2#Dn<#i3-+E +AGI>9q)fs0_*TIi1o*h.>+f'm`1&aH>h&ErBB%YD]nDX^*snFW +N!:nFp@Al!`^/.pGs$G2LAJ(/@Z8]4X;&go5tksC0pNc/Ymf@p6c(O4jitFf4p',Yau]lOY#LUaI=udQ +W"H\-QbU[YGI9MH2[A#5#TJ)S?@r:Ki%_+>IT&0*V6@?A1(YN6S&a;EVBXS^KdYNa=X"=jeq#X6ku(0k +P4B*`?K077F1;<>!?R5':b0kF7t70c1!tenea4eV@YTk. +HmEM3.l[J_%0qYHR!!'j4eklNr7r_,YHuB>TrfjqH0^7NRl;tlabF`PH-#1Vq,1.3p.M7!&9^LgM=OO/ +-FCQN0jp_Kb8:j].LkA#?oB>GF. +[cg=aDQqKUj3^#;M&.q#dEkq<)'Dn7mcl;)1l*.@B@%k\+OI9]6'*Z&9k;DoD$AoD@4T-'I&7J^1'?97 +H.U"fbt0DQRE\C@_Zm&r)\7MV;NOk"OfYj@BGj6aCr3,3[8-U`-mI#0">RI=>LZXDo?O$rSodBD<793C=U%0N`A00irHs*)X"p@,bF+fqO$6cp^^Of9t%)4oB?Pf8;*> ++[-OI!i0:%*JanBaOPNra'k=/75:(6nL5(67b-XG8!"4PT0ZARA^$]*_hb0;E,hM8)";h7GjArJT6$5] +D#_OV^Z^rD:rpgb%1BCi)GT8h)3(1RN9T/;qrL:m_*Y&C_5D^!BDrHM/CI[g*B`5Z(PmTJ* +/eB5\Q=i&.M5*qOkr=1kemqV]%X'GPUCR(pdj$Q=MTZ(e<#`Y'^UNEM]m4tD%3=s&K*@%njS9] +-#q`GFX9*k=ZH,;5XVBGC;UX*h6s8Ic^2\>7[4:RUqo6`EF3p2L6RoHH7"E\/<@`oKMrO*.WG.9[F:FL +Z>;l2:#MN]+eW\.hIL'N&0D3_KZ=8/aW&i>pHD\;:n>.Ji!7PVP>B!c3DRk<0;qe1^X+\<e\M +p@:tbfDrWJfH-q7;fSI6T%sD7k_kLp/gt-8&.2=+]Q.[S;!g<:R2rD2\.ZfEbXXHJIE<6eG(rX'k?Op4 +h<#kE'"3TGiNnO9f7BD#j>G5XG%3TQ[QZSnj4In*olaQdm$e\&AL^D_b)X73ae&aVjh7C9jt'pFNYi/N +(BAregtYfUmW+I?5OH5q+jFioGNm'*[9[0U9)Mf&3GK> +;`d13e!R%>d-+BTjCaOXO+q!KA1)VJ=k!6TH&.N7D4u!`WtRE,ZnUM/[T64c(D(Rd)KJ"oZD=q"b0>,Y +%$WlG)EGim)-M&N8LH00nFB5Fm#p1fdpc?=.Bh$<4b`3&)q_"MjOD\S3tMLVj+JbKnGQGYBT!ED$!Tg) +.5eNr,7*iIq?X8ObO`YtX%1ZlXbI3W;4tYM,(7LY*>Y9X".9T0''7g;_"9`#>C!kdpfbVoFu% +\#U=UFnCdu,)QJkX2QG/kLoC]Kbb4A$!Te7';Z=ci#iR?mhjCgUR?*?N30@HB1g'`%LP[&F-BHE);40@ +&K04EI#EC3c3U8/!c@@['e[SkYIlDA%jop]aHN;fJH9Nppb*fOLj%CB/GnJ4ptt+FX9A*KNpeU-KD8!i +0"cVeF$a9$"p@"dRO("k!&5Um_VhgVa-c0%14qb;aW2^;aASA*k@>&e@jR0[_`cgC@ +%W13AKbfokZdXlP1@'UH45-m&f4/b1YL`rqm7Y-ki-6>unO5*Ye?kE`Yq/_D]0R8FV-=qk1e6.MGo00) +4mNMP5U("ciZhk;8-uC10#?ERBdhO[GZtjX>f+b7_AqohLsDBWfaKg$KeKXZs +FAjdGmdXqsBP$6/#T>XA:9lNF6AH8^AA%5''9hub5QM?Ob0VI%r= +/8Q0_,@S4"UU;J//,ot2OX;oNM"rHqRRRr_84enKNQL^U!u\7'KU&XlnfT3RL\Ec$CA+Q*Kb@kgTWe-'0'ob:^`$FQ:H/iiGiR3BkbMoRsR0?Fu[GkM#/9JgtRn2uO/ +9Ai-JFVlGJ?Y:bL90s;4Qn`bLe:Z=LYF-(^rHZV?#M8K6GH$6@O=HJKiL7IjPgM3KKc8ju%l`0R&7NMS,#0Y.#fJq[`pKu9%C.B +.Uib+D#7T^rb!Xj!2F+7$;X2.(!E;*20T_R4%98'iAht<+:-.C02AW&DH]l"2Tgjf=/_!5"Gi+l+eT/H +:N-r-lOin(3apF8MI"i*hGXs&&1$2lN(b(uF!i')77/HPRo%$05:LNcWN+!j*"30#E)@[H/c3]a!o+[E +eBQaZ2cS(8H`cP]!]9[N-MH)Bcsg_Jg&U8RBYT:+cdM@^+9gjgI(@)5+X)Jhk47 +;ro92(_\+bPa?X=dh\,`f;c>)K4&5d5ljK9_p:iTH[3-81$QVZ.S7N3.#AC>-\XQT +VY5m#:gEVfgbi6_)s)586?tb8h+$8t;7r9tEoCWI?'u[bMV_:E*sEe!bOI6S?FdL(E/m,6&0D2\`$@Eh +,,?U9D@U+Xqn+G?>W_4-R!'901Sar$Nh2O%i?VX[0T2!8i&nn?!Cg[bS7Le/H*Fm(W:/`n&?moD*)XIN +7<:gUbZ&+05_tJSiIFpCq9@g?M2_Qmn5Mf+VBIU-i,0HnYUURP#OutGa)4)aB,`'VF?%.[gnI9&[(+pH +<.C1'3AdQ,_@n=e?\n,%-rlA<>cX/dkQp^@0G%@L-J+S9"h.BR4`Z5qp>5=_CmJ/=pVpD;g5*C2'l7Os +RR:VtilZS/GJlSa>:%!ak12(0=@,T@J!Bm9#)%rP+dBAZ!eQU?Wdal)0aSitKV:\Z,Rag37)mOPc&U,% +flkarhRcU!RF-7XM"/j5)(koT%c38>L%?A>H"#KP=VrZCA5nq#RjEdqH>+e&piZ>*[_jY`rkO?`;PhZL +dUAgWg7\-mA%>gRH1U1WiF0iriZhkk?u`Tn02idOPEAie";B#L&dZqP$V?gVO:eMJ==%nSb';'?G40Dl$ +Q?ebj8/N&81'U,['Cmf1SpBI1lbHP]mI.\C"Lb9ic,I!oltY2hgKTrjbp[1[(V\9Z(iDMaGO+`#VW+eE +81!\K)-c0s^@qJh4^E;9rZ(jA"rK/a)((P=9eJ[-g!=WurV,3QO'K>B1%QmbOYAU[2%3`T7P50"ROO40 +6IH'lVj/8ocj&MbHQ79KcI:8.5RP^aS28)CM.fT4Yq$J#ZKT.l!o4\k6F_.C-DA[8ShrR/Up*$Fr:%VE +O!"DeX0;;+*?q%8FXlu4nW>LjjMg!>2F95'p6c-f_'cM(%3?';YoRW&3%4-38nES+#@J<@(DW2g +mpd7VDengLTI.83s#b;\`49sP1+s4]$,]/>o-pU%U;762lHBIL +kofa`GRsM@]Lh&,%5NefK&@PuFfp?>U6LLTaj1s'4`*_AbIe-L2io^pU.f6$WU +TDq#pReTDj10,;NKR.?Z''@F\C4t*K==2'-2W;VF$hs#TFj'>,UhEsDfP94H2'F8GbpU::$AEr2pau(X +7[G!a7f'e54+1TtM2sjskg;mB4aHVZn`.YsHKh:(al4ORi0]^VGNt*#b=db=jeie;Yh[MsF5]Xbe/r^Z +d31oVnuQsUX-RChLR"+[_Fd#/@fRlp%qlg2aLO,9;e1+enF!pW?Fk6XVPKZAcCI&kp=jLu:-OuZ``=Sq +;0]\6]MScTqS:Bo7'i("*D`pHUfjB?leG3;R^g1*iTA-/]9Isk1sK5d;D@DL=i/M]/?'B$h1 +-U?68)G-pSBK5eYTDs<4m+Ih4rq**QV9T\G#Qk35;#-dO5P[QYZom6^gXborcJ2,SO#kf6#D`j:n#,Xn +8k!/B1>9MRRH_QPJp$[IOa_NWm=BrBJ7es"biA\Dp/Mq>rprASZY#a-plGGGSKL*/"pd"#(rcC[GlH+5 +0<_oDYAKZU<5.QlN=_kEYu[j/pSsP"QSTbngV@\e=EB32d&ifF5OGVJKc.=A85URTf,&-j-%bnhpZq9& +%M'(7rUa%Wi4JHl>;OR$9:&P[&g%Ft`0_n,@@t"N_'13E'CeBFa5CYIV'M:\;Xk.OFQ*L/K\Iism@oi# +kt!8GlS6.bI+4LqH/1_rP^6;Z14bq-3-U.N.B:C+G?7]p<"&4n(,p0g4F[5'fs>>)j1kQ[Dem@3Y1K;A1D<@_77AGAFg$/lhgP7Thu)UqpYUIM4uc`%O+^pd8kFh\->qb1V]nAk"MZ(`#n$W=\'.SNcNiFb3O^lg)mG1MVV$6$ssE";&l>^VEQb2h6sCGuGV[%KSph@iPP=,$:RnnI'.6CblJ; +!LsmbB*)mLp>=F',PI^i(@Gdhp:7jR"JpcsL"Sed"iNpJY$g[PZ)3m:,URn'G4S)[DJ*=$Q7ejV'G98I +B8l(ba8j9NMJ8g+O'*'(X,*"ae_sYYS%'!UJM\dj"(\V +8*1:pD@i;a=@R\eUF/F+I11PQihLW]HmJ&,jorKV*"Z8M"YU2V'0L<58d>!*TA#4m,G^]cAMVT[\84>1 +RQK-27f2QuQk-]4huOsHH^UeAm0cE21gp_sAel$p5"HAsV,H-6Hc*D!qZQGOYS08nKn7;,7Y)39Bb?"Y +;8ZCI]PST]bnrmq&Y(061e^m3ou"(Mtr1Zrr&:18,q$4 +aP8ehp[sOJ+?gE]!lcS7S.$q0$IoVekdO9,lGfCLeNum.B]re%;1),fWZu/LB3V=d;2ZfLa<'nD3GWNg +;*KjU0qg'"*lm*Smhu3Rb!U.,YfDC@I(E.n-]-ZJ+?gE]!k]tY4Q=!^?5O>12gL@tY2'Y;fk%ihH@@+0 +W^p!b]*0'p,5)>>&`.*XN)[;#g;ba)F5;Y<_"]%J*>Wb@gt;.Z)legrTD]GS:RbMeFEpFUqXbDPpdj$D +^u5N*GXr$Y^i_Fd$\pkH4*)V7LL+%Y;BtKHcGD0'96iAoA$MWW@%5k[D$)Vh/DLYN"#!pQG%&#le#00d +@cnVeWS/#i5+7!<+!`86S?:-MiZhl5i3<\9Fr5K\$:N_J:K2fp3JNo7mKOV]b@\q-.EY#@`H!:1WP>CB +OMM!par.l^G>u'\g%nX6ndsoXr0G'&5WB!S,/VlnkCId*F?GTT'#OU]Q`q#C$+g;?/;0EMgN`6G,&=f* +GrPsU%';mq$6`ZkSqa^ipE[s9O2aB-K,,kH8kAI8RlKa)Pm[ln#TZ&[5#*>5\96m@NLKBQ$I>];-Xk\6 +?'>KI$]Ujq<.)&"Ll[30!`ukE=:)-MW'nEf!VISd\\YG"P=8f%%$Z)jp@&rZ!XuVoFl9^?=u['cS\mO> +FB0_\1@b1KihN`1[4/uZ*)k1JL4FgBHhV%V[?RZi.A8DNO+c=U(aXG>'-qWQ/4IhhV@&SEil98%VfCd& +\[EtW,L9?l*j)L8lj3rhnW*J*n,<'BW#T6@rANic.qB3G'bcN&ucOHq.u,gR5Y13jsdUiWF=m7W8(c0O>t[mlO_cq:F6Ii +6krG#lMXE\nWC&NQmE`efgaLRc9iT0_`9(`E-s5WjiqL_d`T;IBXVarRl\ANHo,sjd8O[]?I@>okIAe. +;83%[([tYH6c,9IOIdF4IkWR1OIfl$&0D4jMgXqFA17.Pc(?'b-S.oVpSG,Hb<%[:*htNbH)@Q((?rjG +%D@bXR?3K0FUgE+n^3;-oqiFXL!<#,2`f)Fg,]?F;8=gsmk-c@RNOd,Fr_tGQ/q@8r]P9r9MgAJ:R^Z8 +:dNa%H%1S4Sm8,4kjT?NGLJCA_+8u\W4k&RO9JIMjJ*EJO3f$9r=fj9=14#na)c$7-fJhDkT7c^ShKa0 +K9a^M1rMo$*WX'0_E\ET`1`C^1Z4hf^(&%7\mnY(8^S*A_c:rc.Q6.2Lh,BfmdNtXRF'\BnduuC]--4o +P\/:s5s,ZG7;fdMKVqd.\fA?XM(N6i66h;IKY7BhE[A!=b0s6#$Cc<1q8ep89q?ur7j$s3[13phYgKTt +j.j#"SqV$lN6M)Kn7FjNTZV#\BX$0J'&0a5?+AVs<`3&,\T%@-.+5$0^nB)$L6X".QtM23`olll3#0HqW*jS/ +POR5Oj(tJ!6X:`i5J;:#GfEH +k2A+/ls),hEO/WJhZnBYUPoi!Z.M8mXlh!p(@1%V7@A/rrBW5P<,9Mt,!@q,!"2!P!apY^,dD7!:%$XU3u3@<[8`3)^HC=PPfdh%)8!<]-PlLhUNr'5?XT%%QG4Q3P9V +>A1WS%QLo!]Eq+PU<_:B++_.1HpAO_Fif#'&'GiiZhm0iO'[L6qS?P_(,LG +U5>??B,`h=9lLsdP3a/6R]o"D"Psq@R2RZB(ZN+?rXZHAQ+=UE/"&5^9:LKD:"uYEB5V&+qM5-r8,214 +]atCJ9%g>9MoVZ;"?uN(<93kkIR59Fg?mXgROc?IZbV56`n+UX +*r0Ks?Ruc.7--'A-RS6S#lJ;TDAEQX2SrgS,Rs'ipdj$>KTtP3\[g&t7BmRbT]qolXE/Q?$_s:Cn-4ZW +KD0QN?oBa8)LRLSn1'gm<9+*nG@NjX8em>Kn+X-8j*5H-fun%C-Yu4hEC:p5'(uEQ^E=fN-I0#G9I#3? +2akGpM!Yf,(4b9PWX3TNnuUI^J_pNLmdO-$+jZ_T)q;s;A)gUs=Mpe^0Xg^.UlbNkmf&t^Lu1;^1P\`b +UNJhL,jYu5,qf"F!WgG#oV+)A6*;2US=Tn::b-0_\$A&e6KLG_5LiaQ_ +=[d3j-9H%[7q!hg9?NXBFpI4M*&1Z@o.Jhu1VOVNCP[F/*1>]m"RKD_.58\1_Z!t5@j=lG7eeX\Jj:M$ +H)84se*I05R$ZII;c6_Q>*-6THsn@6@4h>m3O6*'DpdP\p?GV==@-#UJ<:ik_")0:/`ab3c&A5pE]#BV +bO?EsKloY.,jZi(FBOd:o@dBa#TP.qX/CY*-mb\?@(TQ*f+c4p;`?!\gkVdaT>J2G(H'R?g[(6RUtR66 +j;[F'kRR-FYfE[L#0;*<0T/4LNgL*[Ta?_G +bO=BpATMq>r),DZNt18aBWWbs66V<\U?FCA0J".p.'PJDKq*V[N8e';:PEs' +*sm:Tb$!&uq!qZlO\k%b?p6W=\Y0=T8t%D/Jh)UR*^V61l[!L%CqW.8q*m1bKr!TS8(SR(GD6::,YHMQ +9gX4Q*!N!5?S9.c;L.s>gq[?A#3pcAh/() +5sEOM[(\W^3Eh)#7IZeWA'rS8T`hiBUZ>,=O`1G#\J]A6QmfjNiGlLonYcu"(D@f4Fg4p]()ui0$V1W.FUQeiC[i2co,^F-Yqo7fk6q:a5^*r:*$s+Dgq;I +^\m1Ho.L[t#tGbIb5d6>#mY_^]fF>Hn5;;\;me8,_q.CMOJkn/KKF+59o6GS!7cZ!PATD@hE_B$88$r% +G-J,r!t#),MDN'\2j?bWJ`K_F;)pi?r:@Pg\uXt[M\e%\qWb+7^A-^$pYK-So@[cKc+HYr,jZhGH9kWK +k__)(/WDLtIYu:tFEsB)0$\/f0&lX)W@dToC&lS7Ts[-0Kl=BE1S!ue&jd94p`9SE0'OJDCj(b+Im<4O>o#Q +7\,@-kIlVL?LB:VH;*o>iUAXtGu>1tB&*DAFq"N[7UQb'Z;FQEB!XGRI+(1P`Z&jGN:YMjr\X9tnWC&B +M!!T2Ih#1efNWJbL=3Msg@"6+hRRFP$MP*gZ.US[C5`sRB<0h;UaROsj!4I8[4PU.mnj^1/=FY#DnD6; +loH)_!5@"I%Zjn#^US7A6HqLY^%Yju"S%VYYF#J,-nL..-f-RP/SAP0*Y*1AjkhP#qrsBedFNCN9Hlae +%rC@,*AWkt8@a.#>#6P*i??He+ +&BLfj4Jsm&btacgET`m:rp=WRbFBpE&b[.e-%UKS#f6WF43lijb)PGtO.nOMp.Zt2L.e"[5*B2Pb\Erf +=JY76i$25b69r2#O!!:YG\F;e;!8(d^%PW(1hY+(q;WRsQp4Ms,j[\2`*JUsYX,P8_=PII9BA)_0,0kQ +#JC-Q%>5N/3X],!p81`Z!gCg-Q1Si +LUtAqR/ofRGSU5pWX3V!'%2VCe2'mZ;=Nin8>&82Ian)A<2C!^$D'][>QO4<`%$WmHc3$j\%_n@n(/9F +h=#geo?TWSH&;;e3$Lm2">LKFqW@lRL4po!4!*ruoK)347HZ4#;P>36L8ARr?0CV1!hsiON%gMqA#J;uCp4U=qC@N#]PJ,RLuU$Ck"KL!:T@Z[ +Al<18;XmWZ64O+lD_Gtd\a$Sr)>h3C,>W1MP0U*lU:>UHZC(kRHBn7r3,5[qig"T]/B#>')6 +mi]pqOf^$:$Tu1p$jq.8iC2% +og822E&:E,N/m"5#gj*11gQ]VD%GL)f#'Lm-6J@%hT?SMJ$hBe!9NS`+'!2FCPs!pa:D+R/()YegglLd +hZJ%_%c2KoSQ$t6NU_7`HD1+)36K;YPqnd5O,QmD@Zri_+*9)S;5l5]1i"ticX,&nQ>?fnRXLW>ZV*nW +kU,0$K]hhJ4q`l8+A5B'GaGWLc4&$SJrts%6[U-bN62TVNRCNN>REQLnm>+8 +4>r,Uf7lJ-X_TY,7E1C+@nfjmS"DQQ@>Z76fgSA7K_S(L6GSui;M8`Y_srs-5\8Yf>7]1k=+ST<#Nul_ +fj"MWft=uc#[K2NgsAD(lKX)r6$sp`H%_qCcsIZR%X7l,r70:/.)\`36bQYcp(&71RqZ2"">C?>5MmD# +a=i>>+#Bq.HkrD;`(,E`&f$CdXk^_(BW28IQ(gM1-&i+$8js_pSJnY:*miT.E)]qb^*O(?3lHK(4A-]d +JUMnUTa-C7"JI8(p-CNg$#X/UYBOd2b"Y)2H&'Qe]7P&*$94kP@natSTp10Me&WDuUWdBMI]=.m$K<9r +BE9c+A.RO*G&F-09pZ#O7/`o1b$mR/c+B1U9niCCF$GA]P,RE4WVt"oYOS>X7iP;2"6Hau: +!j#kEj5,RQ&V8a%N'UP/9ieZ8Qk1>G6=8Bf6r?a%f.dN*N!d@6);]"ne+.?AB/B?f@8e)9U=k?#7'4MT(,c=b#?6cFbl(]@1U/.eU-ndT1[Q5n=%6G$)8d8 +<(SK^U`:rj%e5Z(lksCF>N"`Y3!+^u#oEjPnW=s\'93bKANlspAL;?2:^J?k1CcGi[qN5n4q`Ns_QNKm +0h>WYNY*#RmNehBRH3*tK+RBbbMiXV# +YO%h*5K\qQYbW7.I_`;8g`,hN-4C.=,=0s0lkU[sA&NpP*>d7c)\ZZRY5OPSpDQ3^apgAj&0D4q5%.Of +LhGnIcLK>&TaNfggh9_@ingQig\nj +ZJ\#r,RF:#hYG65?Th^,p8;6$_]33]3'Id(gr;<3>lmA>_V%C&UKrQJ8.bJ$^%5+i.Ba/rEIs4K]4*(R +6>dD>T")7Z;fRj@`(,E`:Y:O#;9AA[19s`4LJ#?l!N]8q@86#@n2k^0+[-NlIDSbK;%uls4/3tB`N`%O +l:9s@RuP\Cd(OutHmB!pKG$HUKk`t?ap&hK8naL7Qu[PL#4f&9b-Q!D&0D4q5,!XjCh)@)$ruN[SSE?X +cO")*]=t-45W\\Hup'm$;CGYDHR7^Q)<:NLlV[ITaE>pHaqhDF&Xq#lB8unBpCk +H]W`HOe"KmW7u"K+?gEkIDQQj.&G^*\69EW;RFF+PeA"Q?:f_gGuqV'UM"$hN#k.j;`6aPnP)KC$cZF#IaLhQCSg8_>`r +qnN1.nF4f=(EWt#&]D]a#RWMNBJR@C]eI.>no+E/nW"p]9SQtE,)daRcY!mA"n@]t*'nD"O3A$+4C)P5 +A$k6lktK\

    0S<'Ds^^:62kT(W&U[i$IKc>e[kG'<`/^c&hEcdmC[u%\Crs6K]T_M%h +NZ^6q7kH@=*O=$>G][Q>3Z\p]#_ct[@4Mm2$,R:m>58H44C(p'VH!VETOrij=tH9*04BAB*sodr`;98M +p3`(5p"8hf:86=ke2[$X6[U-b7hG"HUXkj?Q0@34%bX3D8c>eakRlf!5raHuCVF[_"WC>$_:)W1\fjFg +,R?mO6h'j,!%^WQ&ohLJL(Eg:+<3]64Wdi(&r_H"?"0EK4q`Ns_Z'(f!Kfqii2p2^ +7`%ncHmB!pK^O5PWQ;m,2"b$N?^H\[br^`NO1^qs.9g=cE.hEd/_EMBarcLBtqlj+0i;t4Pc<98M^:0>t$:an%nW=s\'/m`uTi$H- +QC>OkYn)F2WtlR9=X[g^,jE/XJbVbIp'I59H\^33m=@4_29am%jWP:UK5N4q1'5=W=RRQQ*^b<##lB9E +I+3JZ?-.&@q?6+c21Ym@HX>88.bJ$KmX#F1a,&'[HPR84US.i?H;3?h6$sp`qh,SG +ZH^-A)<$RffF"Aq^c3)F=VSjgE@WUYp"4kmiYE[c7$[\a\m(;_5IV3 +,#lB8akN`8E7u33/@@sbY4bFmL%e5Z(lk@<- +_X9a<,RF8MnWC&f&0D4q5!aQAln64HK!8#^*soOenW=s\'?!DXmQu:H#l=bpOg)G/*soeJ6$ssE0#U83 +YYPfP$+gT8OWa!(`(.]46@:$aqZQGOYe(Gg$,SklHmJ&2`(,E`:CnTS]*n.k+RBc[8&F[\HmB!p"S%VY +]+?%j_EL85,j[/%7tRs@W;1-)5G&K/$+gK5OWa!(`(.\kE:`5:_o'BT1W;k9YYV4nkhq/E(EWrN^u`b+ +c^[!oZcqt"`uf]u_2gh[3.HCu7q/EWcjf=Ih7tYAq<76r59iAW!rW;rJnL^([_@s_qqh'RH0(;-??kH$ +l-lP*S[s"3>37-jUY_[`fFb]G*V$oCbOKF&@CMrF_!_!e_[l(fprF\@n<#b(HJj>Z19V<4oa]fnNmJ7% +JiY[`QiHTjDgN52%K-HRLBU1LY$Bq&Es6KTXs$QUn0$ms5GMI8c +4XX!pn72sBqUMe7Hi)N4YGGPO53a0"JK:F'fEI.n\jLsu*Dt;4n`.[Y^ADg:phVjhn*P?^:;'JOe2qaS +4$km1,?-nm#lOpM`7J@G?/NOi++;X#rqkUQ^-;PG;bs5rGYA[%4i75=ra5*mpG4ZQD0mH'O#:k@4,gAW +qPq7o(GB+eNkbVnqt9J,Sp4]pWtGPD_jGrEdHp.JWI?+/&JcIBHt;cpP>=BQPuS-B+:(IHLPLXBn(`9Y +^#&;:rU+mMZLoG.&-P;_([')74*gCmGOUSNhPg86Puh;Fb)uln&;29a-_>SB=O:gTe5K/n#=&.U_elMJ +&-P9YC9Z4C1XA19,QIPZ5>Ih7IK'0?/Zq\W"@5#!Gkg6QO53i\fA-#pl`]2gf3S&6hgP7TD6HSD"@5"N +q!uT]T7$3$aQ(U;487<1Df'huJfk?9&]OG/fAD)XrBL8F:YT33+:*QA#_F0)Jfk>N+:*QA#_F0)Jfk=c +T/\qq]QNPk[T=Ul?/3#ND6IFCE:`3dD[;fY#l;FX']+<9mJH@eh\>*`c^oRLV3eX(U0YagX&nV6q"3$2 +DgNY>K[2jZCcic23d&UE!l+QUDuTCcl +0(-:5T)*B;rr1[0rjM/qgYr#%lZ_67\+lm656(P%CZ<'Qn`$UQ^A?iI0A_'E^%FU^IJ2?205]pODc(qX +^A#>0^%0;r0>-ekl-lQrXnCDUCYN1IDEr\r"2nRGnsB3pWr>G7q;mrdjMm/u7S396[^rj%!udBB8*0Nn +O+('c0b2=?qWb-Ym^oYdpsDSRD/itda+kac=PoiC*dNF"eGh0dnA#-1>h':U3jHK92cTV$X?iTuSD(fbHnF4=+T07PpM_DdU+8(3n(G=4Hn\+\R +g\*r@53a0grU55S8`QqSC=f.D]^=\hJ+uBZs6HW`Y.O,=r4]YsHE05-F43AR +q9SF\D^TMkg9pd#rU>S,["!so3hh)?YOCYFGM`/)^\r$(CDeb=qW]REL3^i,cgQ]ac0qZcd%p&]Jo9kfaUcs&!o&X^?FdNGQ@"%NKhtkq"oB1&I\7+QVO"puZ@"!](GjVojlFV9&baC]p +nW2F.jA*MMUQCNf5'leA-b$C]h1bjt2NN(=H0i\Yq._k`7H`qYK#"GYBe-PoggC!rZpV4JON;DK&j2Xrf54+p: +_$;(3^S&UhIs`3Y*%o)I=Poi_Bo(,!KK$,!ZFK;Qo)8$,^V448rU+kos8;J*069'kmbGAB8^c[.YIsGK +H?HmeAV=*14JeXT@C@<_$;'`^\<%AKG7*T;st,cHO;9# +5OF-+7b7Qn>-O*DrpYXHPE`9okOA!1JHm6p%k?Db!id>"Kk36];M^EiV<4@pjr#07a$9QCqXj%DkKe'd +uR&mitI]tXf +[WgVWGMDH;!U(&4Yc)'^kF[8'`/,..or*@7C/8^VnPLNa$3u;,MXpQ5b:d:l=QA2IF)Sbbf!ZC&)pf\` +^iA\kXXdJU>ePG`F$Kk:LN*4gp%g-$:Oi5i[ML+nJfk>N+:*QA#_F0)Jfk>N+:*QA#_F0)Jfk>N+:*QA +#_F0)Jfk>N+:*QA#_F0)Jfk>N+:*QA#_F0)Jfk>N+:*QA#_F0)Jfk>N+:*QA#_F0)Jfk>N+:*QA#_F0) +Jfk>N+:*QA#_F0)Jfk>N+:*QA#_F0)Jfk>N+:*QA#_F0)Jfk>N+:*QA#_F0)Jfk>N+:*QA#_F0)Jfk>N ++:*QA#_F0)Jfk>N+:*QA#_F0)Jfk>N+:*QA#_F0)Jfk>N+:*QA#_F0)CWHGV88g_G~> + +%AXGEndBitmap +GR +GR +GS +[0.48 0 0 0.48018 268.80003 113.32318] CT +[1 0 0 1 0 0] CT +N +-560 -236 M +315 -236 L +315 420 L +-560 420 L +-560 -236 L +cp +clip +GS +0 0 translate +315 420 scale +%AXGBeginBitmap: java.awt.image.BufferedImage +{{ +/RawData currentfile /ASCII85Decode filter def +/Data RawData /FlateDecode filter def +/DeviceRGB setcolorspace +<< + /ImageType 1 + /Decode [0 1 0 1 0 1] + /DataSource Data + /Height 420 + /ImageMatrix [315 0 0 420 0 0] + /Width 315 + /BitsPerComponent 8 +>> image +} stopped {handleerror} if + RawData flushfile +} exec +Gb"0W^P`im*QR^Mk("Yu"[N8!%>]gJ8hl4U6kE3,70jYe+sqmaU.);B_7YPJqY>!Kcku$+G,:iJqY>!Kcku$+G,:iJqY>!Kcku$+G,:iJqY>!Kcku$+G,:iJqY>! +Kcku$+G,:iJqY>!KcktQd_Ge[cb>/79+^H!J,dRHIefI?SGqpG^'=]I$$NR3]jCQQYCHPPT:'=0)Sn&* +-J=]eAf2If0C"[3Ob@]e5TC$2]Pf\c`)GC9u,4q[,_27NQrqG46Ep9F8.TEo^l(2TI?]3sB] +XOC:+6a31]LW!e,#">ahC,9[q>AJu$m_j&MG-Q3!>d`,k.p.NnYR@hK[4^[M:]&ScB:Zpq*.hIh"l!Y> +enI"r5&EsMK7a+9lsd*JRUka"=Ki3h@-9^[b,Ibc3e?[aL]ttp#^5XRS\o;:Xi7.5??9li[XA;%E!Wmo +.na`ZXW&Y!Guh-XLL=>do.Sn+mgIELh+l15#e';?dqDC^Y3C$E@I'lEAK?LmYcZBCX**f2bf1-gHYeR2HU(`/7nmLdCVCgPK +D:XK;_,:06c]/6TBh03u,:Nt)pDH*DA]NeG%;iVN10 +/m*^5k<<43X_6tbOLX`k_9rHj\i5Dr>JrDB0TA3IH6_tX-ZlrK==[,Td)^jAX0/kie4sD`gPMK=1/&o' +[cLXnG3[?PF^XR83X0B\_9UZGFj1(1#"u2V/]?I^:480/5&95qf%Fi@1=["Wh]m_+)0rH/`nGk+Jo'=s +K$P?\Yh^=VF[pHMWEBEuYh_ldpOB:1G=_3,,7h50J?H&jHDHRP)gS[D?,ZDhN]Rjk\<.$N?$i]]@V;kQ +S7&rJrqd`Er4%jogV)OPmt&9[N',`N]intkaN/uk[ut=`_*XHM#@#f%/.RkQjMBF'9ho1i1%J_c%>HDY +&(VItZA^nJF":B_*\:h6/-Hi9Yh"TO1@ehd?\0gR&(V-+aYNEp+cB_OLgVB^?m1>6+c'MLLgVB^?m1>6 ++c'MLLgVB^?m1>6+c'MLLgVB^?m1>6+c'N7a'2da+9V=,#$qRq=SG3d +_]JmGAAf<;ZS[Vad-X&lL5n%3c1C4Dg=ICeleZ-&UsEMDS$_(OWoVbbpG=gMVYN]1n5e>?[he/LCG1\ZnLasYHRm2s'JQn4B]:>m?obCl;,7!aSl#1g[8fXLUF;Ap=oN4QS)QY)m2AQ5a37ueSb_OIV)hLBfVs`P)Q\I*)9[n(V +"Fo^oL\@K?H/zzzzzzzz!!!",RJm:R;3uJ~> + +%AXGEndBitmap +GR +GR +GS +[0.48 0 0 0.48018 0 0] CT +[1 0 0 1 0 0] CT +N +0 0 M +875 0 L +875 656 L +0 656 L +0 0 L +cp +clip +GS +0 0 translate +560 236 scale +%AXGBeginBitmap: java.awt.image.BufferedImage +{{ +/RawData currentfile /ASCII85Decode filter def +/Data RawData /FlateDecode filter def +/DeviceRGB setcolorspace +<< + /ImageType 1 + /Decode [0 1 0 1 0 1] + /DataSource Data + /Height 236 + /ImageMatrix [560 0 0 236 0 0] + /Width 560 + /BitsPerComponent 8 +>> image +} stopped {handleerror} if + RawData flushfile +} exec +Gb"/lh2>k;[BBP!5hBmq2r,#R6-'YA"K)8tZ4jladQn0D,S2.o#U2*C"-Q-t74s2OKn2e9?&l-n)FQ7q +7tfqiCkCZ#5p^4jUld"K3ck2(?:Kq3a-p#oULmLh%h#@C28>:LeemHGNNlRczzzzzzzzzzzzzzzzzzzz +zzzzzzzzzzzzzzzzzzz!!!"8SZ`%o^qi%rQhLf^I&]SA1:Rd^=/A +BG"eqRcda_3LNKd%cT<"'cK\i0s-8f;/'>s8:LC0)tbsI>4["c]53o1k6Wa*$4%,n,V'n#Il,F!KJr-k +s,.o0cFWET;0!1'+B2oEHm"L_?4$V*oNL*#C,ocs#j!#ptm>dkg;:RO#@IYE(tS-CVg0YPQ1F(1Li\W= +GkN$.E)QUg'7JY$NOR@qk'3.4o\mLBDfTo1]A%Ng&^CL!.^.J[1[TFdC)?%!8o[YYC_5-#!#V;*pjU4# +QRUO@mDkcckmFUP2lc%ps55A&ULencm&NMS_1eB$IH3\pOB)S&:1]`cm&NMSN&'bg^E>n;1Tbh^a\6kJ +,F/BK>u6sX%](L`@VlQI\^=@I5`MboEYFl"4#2koiuSi9G&LR^(I.-JK=j-Bu$H!`^cd^)OV' +!h%_UVB_1b^=>B;r1l@9E59TLHaV5`Yp'3&8K,St.5l.b1F=*'#QJ;`i0^CI8Gk] +U=?ujT*ESD$0D9!0/(6G+QE!eRtUC7B]#qph7't>i0Npd`ue-jF\KS^p,*kN>,pQP`Ah=Dm!$Oj$T53I +:B978l@2`*PlTbFO2643-I]`Obb8iGAGTAgek&]BW+i^:,8W$C&Fm8G5?H9UOECp&G-5.NYa,PVc$8H1 +F1RWbIoTWe\K".8nI@aZUd)!ZAh/$dSW5`'*rme!6:#'4*TrTDX!9@aL.oh%$-2Xbb[]gNh$T]+5pkb# +3ZX!bSb!9gqU5-UrXPkVL1N(-oG5UM<&!)kW!HPrk7iKqPe?7oEYG/M^?1-s"Z5D%11.Q:lUX&Qh.EI@ +>Lqm=IL,_R6a>aipI)D`@1dM!e>P/f*&Vj6eRNXU&o&\*oV"3?>S2L1C'DNU;X\44k20&HL%:(^Ka,W7?PeZ-9H0c7L>?fuRbc=h*"[c +DL$^e4q0Pl:O%L[g.3^!&Gn"N+[i?'I*iNZ$p5-S0V^OX@=XJMB6[dObuYe0EMPDg)fGi!6gF#GN:S/^ +N[SKl=\TV#=PR3,u'3u.AFjEB'7s;_*QXL5+3,oH3=4hUGOR4#t$`/[53;;Q8s^_DVsifGZBkoa2pB#: +)#7]69;E-EXG'm!+9\Dr<[YZXo-+tg^9_H6Q5?lH;H`-)lm/BHmRFXG5upl!(ViE-5C)q54,`PaPXHB_ +n*sN$V;j+7?So2o*QfZP.(0'i."%R!8sepJ"A&%8T\c)B^(QSSQ8`a8f%rn6Frpc>r4,mEG)OLMiqIpT +LT!$,fItmWA-^sdRaguWh3rqO9W\d5LLm&?&5i.FTGMe)st9Gn^.h3Nr\*/LrQk?J<\:oPVd1?O]3PXI +C2.S#chDL*2t4Eg/-:oBU2J4cstEKE(BVt:(?D!!:6<,(,a[(>0VPsaZ:l,>GT7f7>m8)o1X4B)5eBe" +8h_bDo(\M.>9-O+7og=G#*/$76N,QTX`(AlL'\M>:h@`V6m(0@%8DaR?MPTRM?e'q-5A#K*-,jp?aqcm +S):H4T^/iP=3IEYj+3)fY+148TGii-qOeJ,s?6&d:0Y^8G_F8V;?=:k4r[)Nt0"NRl>iro:Oo_f3P/om +-X1'n\c(_Ie[?$(\@t5G"gS$@Joo0D*1P2RS\kU^7!o`k`]M_DfSs8MmcI +@Cgg@Nu\psn7M15a@rRWu$RX +]r8(Abkb<^RMrej,H";n"4sp\^lf)&HHX.1;rD#N)4PreLX7W][l^<7mh0el4Fb;!39*g?8/un`^EGDG +n$jM.b0g2VLp'UqVLt\QbJe-4n[<'e\)a^&HHVPa!iHOoLiqhC1PLPhN?HD5?fmj-nJJ8@9p)= +RaNZ#uFf5)qVk4rKaP@+ZOuNr8-;ec'pZPQWL=p)&;=k-_>#=osG"Y^Kpn"aZ,/LQ@Mko/3k6e;3`Cq/ +#d,kZ'.q.Y!e4g4I9=4AIXN4RaPRgGP7mc_r:C007GY@aMj&R>sc,OrVEHhj-Pfkrci33U^$lX:9,2XU +1UQd.t,i6f-jaa(b="<[!(d13ip&Pj7]k*aR2-VT.H=Ko\O'1WidYF0TfSKDE[R3,GVuC4aV>dTEcQdE +;]OnQX:g6qrEr:[e<%K!+<-$a$QaqAb@FYmr%BPqBrfL@nhfTbffga:&oT1a&"\SH"0pB/60<-@OIj +fQ#Kni*n*dOP77LSho!&d?8N_:NnFV_Ns)>:P8X/_?,gCB-rg?PAR8IBb&"tCcbqh4i,LfW\=3 +%0:TlX/OuqsD]os*Vu/kRdf2MO*$WRF]b12dT%U_"SjS66jeEQDn9%tnh<9)mU?C7*Wa&BBj''1?9g6h;,O3UKsNJdBW$6H<5\"Zi +5IU/P\Q,IlPp6l',W)h7)a.XcSE)Vk6H.V,60\7Ia=@D<#t?E*=E@Md["n(_g#9:"gTU<#ZAo<:@An9B +Lc2G]]`A\(7RMs`=cHpk3F9P3YKda!18d.CfegYV(YSXZ.PnN1O7ao(Ybd405H5V9VlM!q"?C4Q(4BqR +l2Pf,?&f>TLSu9&XR=V&49D;#js7AW_gmb&;MPl.Hbck3g'Epnf'"0)7Qkm-::54IFLc'F[l^`"99*T7 +]RFqP_3?'@Ns,V8s0lU-d.'^EAl;q^knE*klhc6OXiWdLtJ#E_.(?GfHUM^!e;_q[BA%+5?0jejX@R_/ +mWWTno@c*-3OQG2Tq?n?o?B;^=Q8;a2&*;V:P[>Pe.$:aUf4T^/!<7_SUY +X7)Da%=pi4TsAA/%Ogf9922PHnh=8eA$^I"=Yrk8t2sQS7!qq,61h;fm'3L/6^:tV'+'o>ZH!jeu;!i&\FsP$(h*9[YkYhs'Bu'E +E2Af+!4/Y4T^-tXWc^RAQPug`@X6aBF'p7c6k4hW`G,o#H=+tFDJoW'^c.cN^.1N'5nGch%>5[!C38TB +IkIiCHQa*)]B2I#tM@AlfV11UbY4Oth=`4UY&H2IWY2jX7)(\b])b%rJ3ML4H[="BP.YAk"dE!.A +iWqT<-<68bpTof\@65+P[!_;*Shej:71\SMs>^>JF_g\A2mc>,66q+:,Pqdbm"/n!7WYM)QHH*Jg<^Gd +BI^\fND:H7BZ+&agKpSo9Y0kob]W=uhp`h;6<#"l1N=8,G?F +Mqi>TLT![SCll/^Hp9aS)pFjncj2>2!?ob$.k4h3o3-bFXuoJhjT^K'"DT\G>RGMeY,b>)[&;*36ahpB +n[_\qN83fPd/k*7QferCgFA96/e3=ad&V\P0`2hl1td.42pI0LO23J5]+"AQj!7Elq^i&BSbHV< +7Z]M$<\b'>/??).fN@.[e*#YPa<^+9+s:!]"*A5!M!>VC:%=H*HBK\+2-j$\lEr'$WV@9aI-F?K`l:fA +@-^l;F[-.*#Y$03YfE,4uh1)kRkVpV!L_*EXl%Rm5_,M)n^!a>2:\H^DBO7MKUs\Rb#,A#B"O,XO\\o) +jF=(Grf%@oEaAs;XM%lNCU!S]47=Jd@O5j2c_0bQ7T)F:Ktq$b309karApq5HI:?XfP_\8(VQ?QB.T;55?1ejoEaAs; +U)=DVuO8U<*`^=++epseLeINen/j^kj5TR+QIP9f>+tc6ThtJ/bdh;_'h1]1G1@U%*)bVTLT![O>?++* +`YS'egabEMA8WI:g/[>KZPrJ.08l:PJ27pD6`H')V;Hqk!_If"KQ+1Z\ra0d_n75NrVoue_,5MPb$uc\ +%E&&=XQ@q?F3Jd:NH)AeS=aq<0h:@8fCkFo7SPJOp3?fMd>db))MTF,Ci]`.2MG2T&d\d[V?+_=S;eo` +CEFAEMq@Q>6:/:[>]EEM9s$ +aCJBr]F2!hP05L+Gm);BF\eTNQ'1dDC+p;.'V/1aR(*t46Y'c5`Yn?+Y@8^o2WJD-b5SLI#:+Xrpg&/[ +rFqP_qhQB@\hp.Q#^CC=6@aNO$b1H>&NYCRmcqhm=he<@Ip'$kRkTZUhmRQF(f-LOt2AjWeSQVl\mEjE8#"$[p=osijeYI*"pY>27SIK#_A$VG:kA1D0]U7Z8-QgeATOgUh(T!dG!DDBnqGL*B(uKO$,Ddb +G1+^qV0p,p?L2/?iTuSa+(i!k*qoIcm+(i7]YW;e>'N;aKP-6?dA)OPl%cV42scgT-OQF(//YVm95Zk- +f/%n_r/MB_?"&t_@AKIp$:4"EOg>aU;+6Yj2Mo^h0\V(S\`D_CMh&15a7nIe0'(jT?#U0SW--Dr5I"KcU8b0N@9#F9de:PiPX0M +BPdi[QgH(;Y_FV7rGf*?iJn`MW8D@\enM;>*iF[j>/OFVQs9>g44re2gk>PB,<1*\EBH1hLGQRIIlHV0 +91)Eiue<2ZPRojE0?ToXN#+&b)c6oS]L1ih0>j*C2$eYBQ2DGM)(^NWP:EWg_\b6".O$jMkWaA`=4#uo +LY3FSN!5BC=RBZ"*ej?0ud;BQ-oI0b%> +[kk3*LbWW_%m@ +F;#)pYUIMqYn2&hAa4ZlD\BA(-M^Y!L31#qC0$W5IrgG4O."KJqG]C,3rG)<*S(@7^G.sYSY?9%hkHAS +msCrS0F_Q5Xdr0ZKJR$NZ=BR9o11T&:EY&h\jDpNAo^M?U";HPN/"Es8DCjH_Eq0-\/4(Y4\5`0I9RE% +1/=G73^-Q?0qtO,I`X5EM]co+r\4u+I9eAIHaYYFE3G;F^EA,m'NT]<2E7CNkTc,,jVnT#9S>4mbG@ZB +@"<]_@(:rq;s)!(GB)7jlWhg*p`0H*W_c2>+JDm+d,Jbe0FeQX=oZ6&u#+4(Z1pQ)g#+m"Uh8_4uo&c:CGt# +tQH:Ehl_P+IBZC=s1LLX]ZrJ;E+VS=/+&55Bi]^+ulciV/ip^DVi&%p=jN#qsM'p7NeBp!6:YUr74n(W +jRd65& +>3jJi(g:)+YEC@&^lLMSg^gX`E%<8gS's/h'jCJ29IT4$sA?VQJMOf=9VM:0.KK`"?cfGmSrkX5BY9C` +2d/^/2W5Glts'KfTsnLqjgd#7W5`=[M@(ePB].#G'>/R-h15l3R/`CR].:O&G-7d\5Sr\BCA-o`:(DC< +Csb9VO",cL="":6'.!jp8ut6DWU/#;?fp4R\j`PFMVs60-9R"JfXq4GH-iL@b.\U9 +Z7UKOK,t%5G?V%G]fa@+Oo,Ml[SrGIpYkY3g +n"Z7<#eCL><5`M_+GWSiG+:kFF+6u]_#&c@&TPTkRkV8``!hN&ij>s=;8@Lq46kM:>&i/B(/Efh'1M4g +hkg#a=0u7q*?E5S:G4VG/JI.I-&*OV@EMkiNcOk`6H#Z$=^5m_tNYol20GJ;bU?FRAEa#Yg2 +PbP3ZJ4pduR3$f11g4K+us;G#E7V[V;b4T[V2<,4bq`lYT&'rfYq.#(/SLqC[;=&5nG\_i#2, +/*0I5sH3#$&<0:[^ME.WBR.#]P=F@8"PjjJ%W!Acm+'N9l,)Y.Z<002L`8bRq%Gb$7RV$E>D;Bu8M+gYFn0[T(&cAj^kRN(H&^hi8%<4kr+Ga&7L2`-=rZMTWqFW;^AimH1S` +>,TU-FRr#RB0U+k7?s#0?rnKJeu7T^87l^K7Y-FbS.ZtVu65En$F5)Lc'TL%5'?Rp`es">Su35>,;"Wo +hP0)cbE[X9@b*t"__5C4"Pa<3FCCldBiX"\/W(1=9nI(@#"Gn3T[I=E`m05,Zns>VVL;nCbKbD;mKkhW9UY +LgSD1?WdO;7p?SeefA9bD)r_YQ:\CjQ>4jn&>*H'6@V\U=?n=h-`)Wlko$I10_5*R'-+d9@+o6=]&eTV +Ygmq1aNK$CbFn"f@D08,%[,0@G/BLMbK=O^a`h+n\mJ7k2O\)HZq!i7492`bHrqel>fF&Iu8p(IdUl^N +M^_Q2p`e"q;B7S;&:Q_)Np1B-07(r1MQAab2$&2G7JSTR4WS"C'd2UUXo+mG?o[4#b?@=,>QB-c0DJgM +AIKhFuBu&pC'?K!9QYsUPUjPM,DL'`JT_6rkicXSh11.QV0Y"n>Rc5S2uc?WI2.aj(+N)kRkU(.(-j&Ya&@j-tH=@;Kg7PJ,A-9^rM/#Q4H+CU +SQ-]L[+3]/p,EfW(r.^4UQs53g&T"9V5Et6b"24Y6QeN/a*e^9^#1$Ro4`sP2pRr#f_T9,.YCJNR5Sk" +l<;3eG^oMpa;3HVX*_5[9LJ.2>VpME8j)QF,(dnG7ns1l&QD>Z\/CJ+n$)CD@?0jUBG+4;.]I_8?o +E\hO<3pFZ@I!@oe\C^XAT"Npb1cZqEVJ,`c#3#Q>$C_c=,p$I7JF*WId^%V?!YajL_3nBK9s0q8_Os'1 +6XO)&&[o=4T^uWWH4VQ,dhE'^#qI8n!*AmQ]\k'J\?#"SoeLWKK:AX0>JpJrjnn"OY4OWmp]hgcjpZ)Y +lHogQjHbUMJr:"(:Dr23k_Ki-;IK^'-81CH5%/YGn$a;W3bDqZ!>keEpghGETP7LKKBtYZN<8kQjG?o[ +HmDOU=4u`WfiTO%C&gk((JE7H.IU2%.U?&?0W,Ah!JaT&#t="dU(`o5cVS`(o`r7kRkU(-kgL$);0mZb +?6?0Am]Y*W7[b))&najcCVC3cm/E$b(ed7?*+'h:K&X<:OTX+Ht?EU"iupojo]o40GCUta6Mp8Gd$G?B +.U`7p!R_LP*F$g]'@0YRS>"k38e9DXE-!!R-4!rJ@Y*L>_oO'*c-mj."r,:h;"i8Q,Jl)Bq1*o#ogDns1?nOD_o#D-,T\a +pEAE"";@%)m71!fue)d9k[U7/KC!r2>6b;7`@ZS!9R(b[=X+M0nnN\;0m;pKWCi+eG!R(\uO&B6CfL0XTk +LkT$6O$1KF]q0j8og-,1fhrg;Nk\/DXbXE7X:tG68\eR%^Beb)=lF!k`N/LXQK&m-Ur0]-?nn5H18WTc +^[#ehKur?(Hhhe$2k:%#74P)*4&$>87mU@pPX@\)GjZ[CO*4bqq?'_Gb!m\-4K.g;i4'MH6ALs76OQ0- +n')DO`"]e*k<>I*pn[u?[QkCRcg8hY.kj#">Cp$%D$&];8%YM%838'(CeQs2(6&M,r@>n<=TjdJ%6_]R +92#@4Rnn83P?YWXcr/?eNhOp?iPW`mc(sJ)7Id;T6t\Qm+H<)iuA$pf>%/dU.52>_)$p?8b/3G#CFA\\ +on87J*OKm8$;Vk_AlTu65pm/@M2InZIiW(MUQnreJ_8QX>_]4mr!D0n_iMt?e?jS4S-cF1bZVV3cIQL! ++pfr:h=a4*7rK-3Me(3>L\mPi\(4/&ggbd=09q9>]L]6%5HBT2ueTj +XeNbD=dM:s*\g(D[_YDhnHdEj0(>m_0#gL#,ZU?WQpu(+2:&%3j:a2k@+CPTQ2#M236oaD_$_pBoQloX +ZG;&h7^1ZA-NtA',n>fppC(uo5=0GBP)!M(R&i$FFEL2\Q40J,G)c_/8g +CIbo+#a8d*4+.oIN*rBc1+mCI<4U_?!Jo@K=_S`(V72+hk`#2:d9%9^D,%naQV"]Gi4,X7[)]imW=QLeOU@>eH-M9]SF3?]00o]g,)8]1r,g:M'&_.7i=CDT-0Bmt?C85cH3CHl; +CB&4DbdD^NQk3keL6o6a-As="o"leT@RF\Dq/SQ#-1P,?RP!_8^h0Rc37BGg8Wm?I8:%(AlBB+)o?`^RMfRd*2/oLgXUPZjS4JKeE&>_/0A+;57e]*CJ#fH=0O3DdlD^?]N=U +VQ&-Qo:O:`CbXp7(BBVAI6ehIu0@qj""&4cD:9qUOILGNZQ.Kgb0k[+$W/2bo&`m)#RnMNogar"L(0iQ +L(:4@P?g,o_Na=,s!?JK+<(#$i7m2ZBbp,]Fu'sNgMjEFB$e)JiEW_VD/k8G;N31>u.hf;`U:&kRkT7. +J;oQEdHu7pStnT4G%8T +gZp&oE\iWPaO7-E$g<1Z$CKY6sW8RV:!SZ;5523dcG9D;pJ[j=rDT3l$R@J$ +s=1o3j$%Dp[*f3&ld,\E?b?8llQTp*HusONfKRUE*Ppns6?;&=D-]hMnm/hU +F0np?X0S%ePJeLF@2%afG^\Ld\uGhL_5^^I<"?\H?Y(o;SBek>iKSX&qqsIAo3LZ59Ro8YT +LSu$Uq3!P<^Wm:p/gKXN\2sidWr/SnkoVOVVK`ICSF1]"'s77ja8AP#7pT_p+^u8CBs_Y4HdhSn^s$Fj +pub@YUR`_$BAeSct6_J>R#sDBjOS-XL[N0:g:Hpf2GL?oOg:Y +S#5,J5+G]<6$3^8j.K;3I-"Hlau7/OPE7qS%Ab_TGWt!4DiGp1WMhFH^rB4khM(g1e!A#fC`P+TLT!O, +#-OEQ3R:[_8sbGCb\k422ihr"\PmTTq7)*`BfiV6S"m(4?=Ze]$Yo@.<#+>i3gHO'fg9k@DBPtNY(gg? +rOG$.O^]#gX,VgUnhdmgS=Bd=DiiXA(kPWk<+^#E*f[E5G8!f[P`WOrITKj`Eeb0ilfN'h8E,60$dPrUcSG62eY%b<$] +d9P/[:`iaE4k0p4QBq*cD#X+UYkRkV-E80bX6'OsIE4Bu7b.l.^c*u^pfum?CY +3OF4"tgo+1#C?>-9T9l%Eg^Zru\#/I +N/~> + +%AXGEndBitmap +GR +GR +GS +[0.48 0 0 0.48018 268.80003 0] CT +[1 0 0 1 0 0] CT +N +-560 0 M +315 0 L +315 656 L +-560 656 L +-560 0 L +cp +clip +GS +0 0 translate +315 236 scale +%AXGBeginBitmap: java.awt.image.BufferedImage +{{ +/RawData currentfile /ASCII85Decode filter def +/Data RawData /FlateDecode filter def +/DeviceRGB setcolorspace +<< + /ImageType 1 + /Decode [0 1 0 1 0 1] + /DataSource Data + /Height 236 + /ImageMatrix [315 0 0 236 0 0] + /Width 315 + /BitsPerComponent 8 +>> image +} stopped {handleerror} if + RawData flushfile +} exec +Gb"0VZ"dfL*5LOB$&Ajk#f6omQ8VobD_7:7'52#oPqIbDYXS6t('JF=`Ptt]%icR"AoSK>ah>GLho?nZ +OMG[TgOuuir +8Y\-+,omjl]9*_o%VL1qWdr2hRbt$n]A+55IuCnZun30RZhheb\qrV0`mkP+19,@]uj3apk<_%$iL/[r +r4_\Sa3POc8C&ig`[&k;hD]98%!Wll$.uqp%C%PnI+B)K"Zj;0ibE"U`N\:_Dn/q0B'0gFhHJbHHT)pn +I+B)K"Zj;I[Y@Xl`8Vj\)-T&=o?,rT3s>2SKi9Q3nD]:9@_1&$23uqpup,qM"eKQ0+fD\Im6XG@33\En +Y4^ZIL(,Bd+R[B#i]:*Wg-j%lo_:)3^#lW\0Y0+Ha@t$1X%j]n*Y,73fM[+4`a0Jik^WmH?q2`rk?p8- +?a(m?q6LRdrY,fiF0C!Q$lgufY^XbUN=:VmgIuhnR.FGKU4`I85D((YTF%j,\Gh$gW2M +[+Sg3&1G8e(39)pK0Q13F:mJ$-+=D^Vti=]>+#a*'tDOG/6tOPI>_?o:_?q_c/0.lklg*s6%nA-Ar*j: +][":HB)Kb2'eLgVAoYRi!\#SAV@# +So`0$R(+U&A^\h?m.qB&0b3^&M/S@(.&-3+bGD2]/d.hNdult/;+9E63IZ>JqXcP6AT"m7'I4H=9oKiK +Er>[":HB)Kb2'eLgVAoYRi!\#SAV@#So`0$R(+U&A^\h?m.qB&0b3^&M/S@(.&-3+bGCZ_*Wrc+[iOG, +$5*_/;+9E63IZ>JqXcP6AT"m7'I4H=9oKiKEr>[":HB)Kb2'eLgVAoYRi!\#SAV@#So`0$R(+U&Ac5Th +43,D8&.Iu(.&-3+bGCZ_*Wrc+[iOG,$5*_/;+9E63IZ>JqXcP6AT"m7'I4H=9oKiKEr>[":HB)Kb2'eL +gVAoYRi!\#SAV@#So`0$R(+U&A^\h?m.qB&0b3^&M/S@(.&-3+bGCZ_*Wrc+[iOG,$5*_/;+9E63IZ>J +qXcP6AT"m7'I4H=9oKiKEr>[":HB)Kb2);T&#phH:Pb<#o5i1$R(+U&A^\h?m.qB&0b3^&M/S@(.&-3+ +bGCZ_*Wrc+[iOG,$5*_/;+9E63IZ>JqXcP6AT"m7'I4H=9oKiKEr>[((^+W4E\c6~> + +%AXGEndBitmap +GR +GR +%%Trailer +%%Pages: 1 +%%EOF diff --git a/buch/papers/ifs/images/rapperswil0.PNG b/buch/papers/ifs/images/rapperswil0.PNG deleted file mode 100644 index 3eba43a..0000000 Binary files a/buch/papers/ifs/images/rapperswil0.PNG and /dev/null differ diff --git a/buch/papers/ifs/images/rapperswil1.PNG b/buch/papers/ifs/images/rapperswil1.PNG deleted file mode 100644 index 6c085db..0000000 Binary files a/buch/papers/ifs/images/rapperswil1.PNG and /dev/null differ diff --git a/buch/papers/ifs/images/rapperswil4.PNG b/buch/papers/ifs/images/rapperswil4.PNG deleted file mode 100644 index 56d1331..0000000 Binary files a/buch/papers/ifs/images/rapperswil4.PNG and /dev/null differ diff --git a/buch/papers/ifs/images/zurich.png b/buch/papers/ifs/images/zurich.png deleted file mode 100644 index bb70f7d..0000000 Binary files a/buch/papers/ifs/images/zurich.png and /dev/null differ diff --git a/buch/papers/ifs/references.bib b/buch/papers/ifs/references.bib index fbf75f4..817c5a4 100644 --- a/buch/papers/ifs/references.bib +++ b/buch/papers/ifs/references.bib @@ -4,15 +4,6 @@ % (c) 2020 Autor, Hochschule Rapperswil % -@online{ifs:bibtex, - title = {BibTeX}, - url = {https://de.wikipedia.org/wiki/BibTeX}, - date = {2020-02-06}, - year = {2020}, - month = {2}, - day = {6} -} - @online{ifs:chaos, title = {Chaosspiel}, url = {https://de.wikipedia.org/wiki/Iteriertes_Funktionensystem#Chaosspiel}, @@ -38,16 +29,6 @@ isbn = {0-471-92287-0}, } -@article{ifs:mendezmueller, - author = { Tabea Méndez and Andreas Müller }, - title = { Noncommutative harmonic analysis and image registration }, - journal = { Appl. Comput. Harmon. Anal.}, - year = 2019, - volume = 47, - pages = {607--627}, - url = {https://doi.org/10.1016/j.acha.2017.11.004} -} - @Inbook{ifs:Rousseau2012, author= {Rousseau, Christiane and Saint-Aubin, Yvan @@ -64,4 +45,18 @@ url={https://doi.org/10.1007/978-3-642-30092-9_11} } +@article{ifs:pifs, + title = {Applications of Partitioned Iterated Function Systems in Image and Video Compression}, + journal = {Journal of Visual Communication and Image Representation}, + volume = 7, + number = {2}, + pages = {144-154}, + year = 1996, + issn = {1047-3203}, + doi = {https://doi.org/10.1006/jvci.1996.0014}, + url = {https://www.sciencedirect.com/science/article/pii/S1047320396900140}, + author = {Guojun Lu and Toon Lin Yew}, + abstract = {Iterated function systems (IFS) have been used to compress image data. Because of difficulty in finding IFS in natural images, a technique based on partitioned IFS (PIFS) has been proposed for image compression. In this technique, an image to be compressed is divided into nonoverlapping blocks. For each block an affine transformation is found in the image. This set of affine transformations (called PIFS) corresponds to a unique image. In the simplest case, images are partitioned into fixed size blocks. In this paper, we investigate image and video compression techniques using variable block sizes based on the quadtree partition. One property of images generated using PIFS is scalability: they have fine detail in any scale. We exploit this property to reduce required compression time and improve compression performance. There are large amounts of temporal redundancy between fames of a video sequence. We describe a method to remove temporal redundancies effectively using a quadtree partitioning technique. We have implemented the above schemes to compress image and video sequences and will report our experimental results.} +} + diff --git a/buch/papers/ifs/teil0.tex b/buch/papers/ifs/teil0.tex index b8a678d..833748c 100644 --- a/buch/papers/ifs/teil0.tex +++ b/buch/papers/ifs/teil0.tex @@ -3,7 +3,7 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 0\label{ifs:section:teil0}} +\section{Einleitung \label{ifs:section:teil0}} \rhead{Was ist ein Iteriertes Funktionsschema} Mit der Hilfe von Iterierten Funktionsschemata (IFS) kann mit nur wenigen affinen Funktionen, komplexe Bilder beschreiben werden. In der Regel sind diese Bilder Fraktale. diff --git a/buch/papers/ifs/teil1.tex b/buch/papers/ifs/teil1.tex index 385abcf..70b0b1b 100644 --- a/buch/papers/ifs/teil1.tex +++ b/buch/papers/ifs/teil1.tex @@ -6,18 +6,18 @@ \section{Fraktale \label{ifs:section:teil1}} \rhead{Problemstellung} -Bevor wir die IFS genauer ansehen, schauen wir uns Fraktale genauer an. +Bevor wir die IFS ansehen, schauen wir uns Fraktale genauer an. Über die genaue Definition von Fraktalen sind sich die Mathematiker nicht einig. In diesem Kapitel orientieren wir uns an den Eigenschaften welche Kenneth Falconer in seinem Buch Fractal Geometry \cite{ifs:fractal-geometry} beschreibt. -Von einem Fraktal $F$ können wir folgende Eigenschaften erwarten: +Von einem Fraktal $F$ können wir folgende Eigenschaften erwarten: \begin{enumerate} \item $F$ hat eine unendlich feine Struktur \item $F$ kann nicht mit der klassischen Geometrie beschrieben werden. \item Oftmals hat $F$ eine Form von Selbstähnlichkeit. \item Die 'fraktale Dimension' ist grösser als die topologische Dimension - \item Viele Fraktale lassen sich einfach beschrieben TODO + \item Viele Fraktale lassen sich auf eine simple Art definieren. Es genügen zum Beispiel nur wenige Funktionen, welche rekursiv ausgeführt werden, um ein Fraktal zu definieren. \end{enumerate} \subsection{Koch Kurve \label{ifs:subsection:lilkoch}} @@ -74,7 +74,7 @@ Die Fläche unter der Kurve lässt sich folgendermassen berechnen A_3 &= A_1 + A_2 + 4^2 \left( \frac{a}{3^2}\right)^2 \frac{\sqrt{3}}{4} = A_1 + \frac{4}{9} A_1 + \left( \frac{4}{9}\right)^2 A_1. \end{align*} Wir sehen, dass mit jedem Schritt die neu dazugekommene Fläche um $\frac{4}{9}$ kleiner ist. -Die Gesamtfläche ist daher gegeben durch die geometrische Reihe, +Die Gesamtfläche ist daher gegeben durch die konvergierende geometrische Reihe, \begin{align*} A_n = A_1 \sum_{i = 0}^{n-1} \left( \frac{4}{9}\right)^n = a^2 \frac{\sqrt{3}}{36} \sum_{i = 0}^{n-1} \left( \frac{4}{9}\right)^n \\ \end{align*} @@ -89,7 +89,7 @@ Zu guter Letzt bestimmen wir die Dimension der Kurve. Es gibt viele verschiedene Methoden die Dimension zu definieren. Diese können dann auch unterschiedliche Resultate liefern. Vor allem im Zusammenhang mit Fraktalen findet man in der Literatur unterschiedliche Arten. In diesem Beispiel werden wir die Ähnlichkeits-Dimension \cite{ifs:fractal-geometry}. -Die Ähnlichkeits-Dimension ist das Verhältnis der Logarithmen der Anzahl Kopien $N$ des Originales und deren Skalierungsfaktor $\epsilon$ +Die Ähnlichkeits-Dimension $D$ ist das Verhältnis der Logarithmen der Anzahl Kopien $N$ des Originales und deren Skalierungsfaktor $\epsilon$ \begin{align*} D = - \frac{\log N}{\log \epsilon }. diff --git a/buch/papers/ifs/teil2.tex b/buch/papers/ifs/teil2.tex index be3d354..0c957d6 100644 --- a/buch/papers/ifs/teil2.tex +++ b/buch/papers/ifs/teil2.tex @@ -95,7 +95,7 @@ Im Beispiel der Abbildung \ref{ifs:sierpconst} sehen wir, wie das Bild nach jede Der Abstand zum Original wird immer kleiner, und konvergiert gegen null. \subsection{Iterierte Funktionensysteme -\label{ifs:subsection:bonorum}} +\label{ifs:subsection:IteratedFunktionensysteme}} In diesem Abschnitt wollen wir die Erkenntnis, wie wir aus einer beliebigen Menge ein Sierpinski-Dreieck generieren können, verallgemeinern. @@ -110,9 +110,10 @@ Hat man nicht nur eine sondern mehrere Kontraktionen, dann existiert eine eindeu \begin{equation} F = \bigcup\limits_{i = 1}^{m} S_i(F). \end{equation} -Weiter definieren wir die Transformation S auf kompakte Mengen $E$ ohne die leere Menge. +Weiter definieren wir die Transformation S auf kompakte Mengen $E$ ohne die leere Menge \begin{equation} - S(E) = \bigcup\limits_{i = 1}^m S_i(E) + S(E) = \bigcup\limits_{i = 1}^m S_i(E). + \label{ifs:transformation} \end{equation} Wird diese Transformation Iterativ ausgeführt, das heisst $S^0(E) = E, S^k(E) = S(S^{k-1}(E))$, und für jedes $i$ $S_i(E) \subset E$, gilt \begin{equation} @@ -122,7 +123,8 @@ Wird diese Transformation Iterativ ausgeführt, das heisst $S^0(E) = E, S^k(E) = In Worte gefasst bedeutet das, dass jede Gruppe von Kontraktionen iterativ ausgeführt, gegen eine eindeutige Menge konvergiert. Diese Menge ist auch als Attraktor des IFS bekannt. Der Beweis für die Existenz eines eindeutigen Attraktors ist in \cite{ifs:fractal-geometry} beschrieben. -Aus diesem Beweis folgt, dass die Startmenge $E$, anders als in \ref{ifs:ifsForm} beschrieben ist, beliebig sein kann, +Aus diesem Beweis folgt, dass die Startmenge $E$, anders als in \ref{ifs:ifsForm} beschrieben ist, beliebig sein kann. + \subsection{Beispiel: Barnsley-Farn} Der Barnsley-Farn, Abbildung \ref{ifs:farn}, ist ein Beispiel eines Fraktal, welches mit einem IFS generiert werden kann. Wie man schnell erkennen kann, besteht der Farn aus Blättern, welche eine grosse Ähnlichkeit zum ganzen Farn haben. @@ -194,14 +196,17 @@ $S_2$ (grün) erstellt den Hauptteil des Farnes. Sie verkleinert und dreht das gesamte Bild und stellt es auf das Ende des Stiels aus $S_1$. $S_3$ bildet das gesamte Blatt auf das blaue Teilblatt unten Links ab. $S_4$ spiegelt das Blatt und bildet es auf das magentafarbene Teilblatt ab. -\subsection{Erzeugung eines Bildes mit einem IFS} -Es gibt zwei verschiedene Methoden um ein Bild mit einem IFS zu erzeugen. +\subsection{Erzeugung eines Bildes zu einem IFS} +Es gibt zwei verschiedene Methoden um das Bild zu einem IFS zu erzeugen. Die erste Methode ist wahrscheinlich die intuitivste. Wir beginnen mit einm Startbild, zum Beispiel ein Schwarzes Quadrat, und bilden dieses mit den affinen Transformationen des IFS ab. Das neue Bild, dass entsteht, ist die nächste Iterierte. Dieses wird wieder mit den Transformationen abgebildet. Wir wiederholen den letzten schritt, bis wir zufrieden mit der neusten Iterierten sind. + Diesen Vorgang haben wir beim Sierpinski-Dreieck in Abbildung \ref{ifs:sierpconst} gebraucht. +In Abbildung \ref{ifs:sierpinski10} ist die zehnte Iterierte zu sehen. +Weitere Iterationen hätten in dieser Darstellungsgrösse kaum mehr einen Unterschied gemacht. Die zweite Methode ist das Chaosspiel \cite{ifs:chaos}. @@ -216,8 +221,12 @@ Im Fall des Barnsley-Fern wird $S_1$ in $1\%$, $S_2$ in $85\%$ und $S_3 \& S_4$ Wir sehen auch in Abbildung \ref{ifs:farncolor} gut, dass der rote Stiel, $S_1$, einiges weniger Punkte braucht als der grüne Hauptteil des Blattes, $S_2$. In Abbildung \ref{ifs:farnNoWeight} wurden die vier gleich stark gewichtet. -Man sieht, dass trotzt gleich vieler Iterationen wie in Abbildung \ref{ifs:farn}, der Farn kaum nicht so gut abgebildet ist. +Man sieht, dass trotzt gleich vieler Iterationen wie in Abbildung \ref{ifs:farn}, der Farn nicht so gut abgebildet wird. +Am besten sieht man den Effekt einer schlechten Gewichtung in Abbildung \ref{ifs:farnrightWeight}. +Hier wurde $S_4$, welches für das rechte untere Teilblatt zuständig ist, mit nur $1\%$ statt $7\%$ gewichtet. +Man sieht, wie sich der Mangel an Punkten auf die anderen Abbildungen das Farnblattes auswirkt. +In jeder Kopie des ganzen Farns fehlen die Punkte für dieses rechte untere Teilblatt. @@ -234,10 +243,15 @@ Man sieht, dass trotzt gleich vieler Iterationen wie in Abbildung \ref{ifs:farn} \caption{Vier Transformationen des Barnsley-Farn in unterschiedlichen Farben} \label{ifs:farncolor} \end{figure} + \begin{figure} \centering - \makebox[\textwidth][c]{ - \includegraphics[width=1.4\textwidth]{papers/ifs/images/farnnotweight}} - \caption{Chaosspiel ohne Gewichtung} - \label{ifs:farnNoWeight} + \subfigure[]{ + \label{ifs:farnNoWeight} + \includegraphics[width=0.45\textwidth]{papers/ifs/images/farnnotweight}} + \subfigure[]{ + \label{ifs:farnrightWeight} + \includegraphics[width=0.45\textwidth]{papers/ifs/images/farnrightwight}} + \caption{(a) Chaosspiel ohne Gewichtung (b) $S_4$ zu wenig gewichtet} + \label{ifs:farnweight} \end{figure} diff --git a/buch/papers/ifs/teil3.tex b/buch/papers/ifs/teil3.tex index b3dff85..ebae0fb 100644 --- a/buch/papers/ifs/teil3.tex +++ b/buch/papers/ifs/teil3.tex @@ -11,14 +11,14 @@ Diese Idee hatte der Mathematiker Michael Barnsley, welcher mit seinem Buch Frac Das Ziel ist es ein IFS zu finden, welches das Bild als Attraktor hat. In diesem Unterkapitel wollen wir eine Methode dafür anschauen, wie sie in \cite{ifs:Rousseau2012} beschrieben ist. - -Bis jetzt wurde in Zusammenhang mit IFS immer erwähnt, dass die Transformationen, welche das IFS bilden, auf die gesamte Menge. -Dies muss jedoch nicht so sein. -Es gibt auch einen Attraktor, wenn die Transformationen nur Teile der Menge auf die ganze Menge abbilden. -Diese Eigenschaft wollen wir uns in der Fraktalen Bildkompression zunutze machen. -Sie ermöglicht uns Ähnlichkeiten zwischen kleineren Teilen des Bildes zunutze machen. Es ist wohl nicht falsch zu sagen, dass Ähnlichkeiten zur gesamten Menge, wie wir sie zum Beispiel beim Barnsley Farn gesehen haben, bei Bilder aus dem Alltag eher selten anzutreffen sind. -Doch wie finden wir die richtigen affinen Transformationen, welche als IFS das Bild als Attraktor haben? +Ein IFS, wie wir es in \ref{ifs:subsection:IteratedFunktionensysteme} definiert haben, wird uns also nicht weiter helfen. +Die Lösung dazu sind Partitionierte IFS (PIFS) \cite{ifs:pifs}. +In \ref{ifs:transformation} wurde definiert, dass die Kontraktionen $S_i$ bei IFS auf die gesamte Menge $E$ angewendet werden. +Bei einem PIFS wird der Attraktor in disjunkte Teilmengen aufgeteilt. +Für jede dieser Teilmengen $R_i$ braucht es dann eine grössere Teilmenge, welche mit einer affinen Transformation eine zu $R_i$ ähnliche Menge bildet. +Wir müssen nicht mehr Ähnlichkeiten zum ganzen Bild finden, sondern zwischen Teilen des Bildes. +Doch wie finden wir das PIFS, welches das Bild als Attraktor hat? \subsection{das Kompressionsverfahren \label{ifs:subsection:malorum}} @@ -29,9 +29,12 @@ Ein Bild ist also eine Funktion, die jedem Pixel einen Grauwert $z$ zuweist \begin{align*} z = f(x,y). \end{align*} + +Wir suchen ein PIFS welches das zu komprimierende Bild als Attraktor hat. In einem ersten Schritt teilen wir das Bild in disjunkte benachbarte $b \times b$ Pixel-Quadrate auf. Diese Blöcke nennen wir Range-Blöcke der Menge $R=\{R_0,R_1,...R_m\}$ Im nächsten Schritt teilen wir das Bild in alle möglichen $2b \times 2b$ Pixel-Quadrate auf. Diese sind die Domain-Blöcke der Menge $D = \{D_0,D_1,...D_n\}$. Im dritten und letzten Schritt wird für jeden Range-Block $R_i$ ein Domain-Block $D_j$ gesucht, welcher ihm am ähnlichsten ist. +Zwei Beispiele wie solche Domain-, und Range-Block Paare aussehen können, sehen wir in Abbildung \ref{ifs:FIC} \subsubsection{Finden des ähnlichsten $D_j$} Zuerst brauchen wir die Transformation @@ -114,6 +117,12 @@ Die Kombination von $D_j$ und $T_i$, welche den kleinsten Abstand $e$ hat, ist d Diese Schritte führen wir für jeden Range-Block $R_i$ aus. Am Ende des Algorithmus haben wir für jeden Range-Block den zugehörigen Domain-Block und Transformation gefunden. +\begin{figure} + \centering + \includegraphics[width=\textwidth]{papers/ifs/images/FIC} + \caption{Domain-, und Range-Block Paare in Grün und Rot} + \label{ifs:FIC} +\end{figure} \subsubsection{Rekonstruktion des Bildes} Mit den gefundenen Abbildungen lässt sich das Bild generieren. @@ -144,7 +153,7 @@ Um etwas Zeit bei der Komprimierung zu ersparen, wurden nur disjunkte Domain-Bl Als erstes Beispiel wählen wir das 360x360px Bild von Rapperswil in Abbildung \ref{ifs:original}. Das Startbild ist ein mittelgraues 360x360px Bild, Abbildung \ref{ifs:bild0}. Es kann jedoch ein beliebiges Startbild -Nun lassen wir das IFS laufen. +Nun lassen wir das PIFS laufen. Wie wir in Abbildung \ref{ifs:rappirecoa} sehen, ist schon nach der ersten Iteration das Bild schon erkennbar. Nach der fünften Iteration , Abbildung \ref{ifs:rappirecoc} gibt es fast keinen Unterschied mehr zur letzten Iteration, wir können die Rekonstruktion beenden. \begin{figure} -- cgit v1.2.1 From cceb539b3b83de6cf4296e6062c8d2f6e31aec72 Mon Sep 17 00:00:00 2001 From: Alain Date: Tue, 22 Jun 2021 17:28:15 +0200 Subject: minor changes --- buch/papers/ifs/teil1.tex | 3 ++- buch/papers/ifs/teil2.tex | 5 ++--- buch/papers/ifs/teil3.tex | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/ifs/teil1.tex b/buch/papers/ifs/teil1.tex index 70b0b1b..a75b529 100644 --- a/buch/papers/ifs/teil1.tex +++ b/buch/papers/ifs/teil1.tex @@ -98,8 +98,9 @@ Mit ihr kann man einfach die Dimension selbstähnlicher Mengen bestimmen. Als Beispiel nehmen wir ein gleichseitiges Dreieck. Dieses besteht aus $N = 4$ Kopien mit halber ($\epsilon = 1/2$) Kantenlänge $l$, Abbildung \ref{ifs:trinagle}. Somit hat das Dreieck die Dimension $D = 2$. Die Koch Kurve besteht aus $N = 4$ Kopien mit Kantenlänge $\epsilon =l \cdot 1/3$. +Ihre Ähnlichkeits-Dimension ist somit \begin{align*} - D = - \frac{\log N }{\log \epsilon } = - \frac{\log 4 }{\log 1/3 } \approx 1.2619 + D = - \frac{\log N }{\log \epsilon } = - \frac{\log 4 }{\log 1/3 } \approx 1.2619. \end{align*} Wie wir nun sehen besitzt die Koch-Kurve alle oben beschriebenen Eigenschaften von Fraktalen. Dies muss jedoch nicht bei allen Fraktalen der Fall. Sonst wäre die Frage nach einer 'richtigen' Definition einfach zu beantworten. diff --git a/buch/papers/ifs/teil2.tex b/buch/papers/ifs/teil2.tex index 0c957d6..fd10634 100644 --- a/buch/papers/ifs/teil2.tex +++ b/buch/papers/ifs/teil2.tex @@ -115,15 +115,14 @@ Weiter definieren wir die Transformation S auf kompakte Mengen $E$ ohne die leer S(E) = \bigcup\limits_{i = 1}^m S_i(E). \label{ifs:transformation} \end{equation} -Wird diese Transformation Iterativ ausgeführt, das heisst $S^0(E) = E, S^k(E) = S(S^{k-1}(E))$, und für jedes $i$ $S_i(E) \subset E$, gilt +Wird diese Transformation Iterativ ausgeführt, das heisst $S^0(E) = E, S^k(E) = S(S^{k-1}(E))$, gilt \begin{equation} F = \bigcap\limits_{k = 1}^{\infty} S^k(E). \label{ifs:ifsForm} \end{equation} In Worte gefasst bedeutet das, dass jede Gruppe von Kontraktionen iterativ ausgeführt, gegen eine eindeutige Menge konvergiert. -Diese Menge ist auch als Attraktor des IFS bekannt. +Diese Menge ist auch als Attraktor eines IFS bekannt. Der Beweis für die Existenz eines eindeutigen Attraktors ist in \cite{ifs:fractal-geometry} beschrieben. -Aus diesem Beweis folgt, dass die Startmenge $E$, anders als in \ref{ifs:ifsForm} beschrieben ist, beliebig sein kann. \subsection{Beispiel: Barnsley-Farn} Der Barnsley-Farn, Abbildung \ref{ifs:farn}, ist ein Beispiel eines Fraktal, welches mit einem IFS generiert werden kann. diff --git a/buch/papers/ifs/teil3.tex b/buch/papers/ifs/teil3.tex index ebae0fb..78fb935 100644 --- a/buch/papers/ifs/teil3.tex +++ b/buch/papers/ifs/teil3.tex @@ -87,13 +87,13 @@ Da wir ein $2b \times 2b$ Feld auf ein $b \times b$ Feld abbilden möchten, müs Dies erreichen wir, indem wir alle disjunkten $2 \times 2$ px Blöcke mit einem Pixel des Grautones deren Mittelwertes ersetzen. -Die Parameter $s_i$ und $g_i$ beschreiben die Änderung des Grautones. $s$ verändert den Kontrast und $g$ verschiebt die Töne auf die richtige Helligkeit, sie bilden die lineare Funktion +Die Parameter $s_i$ und $g_i$ beschreiben die Änderung des Grautones. $s$ verändert den Kontrast und $g$ verschiebt die Grautöne auf die richtige Helligkeit, sie bilden die lineare Funktion \begin{align*} z' = s_i z + g_i. \end{align*} Für die Bestimmung dieser Parameter führen wir zuerst die Bildfunktionen $f_{R_i}$ und $\tilde{f_{R_i}}$ ein. $f_{R_i}$ ist die Bildfunktion des Range-Blockes $R_i$ und $\tilde{f_{R_i}}$ ist die Bildfunktion des zuerst Skalierten und dann mit \ref{ifs:affTrans} transformierten Domain-Blocks $D_j$. -$s$ und $g$ werden mit der einfachen linearen Regression ermittelt. + Wir suchen $s_i$ und $g_i$ so das \begin{align*} f_{R_i} = s_i \tilde{f_{R_i}} + g_i = \bar{f_{R_i}}. -- cgit v1.2.1 From f04279543c41d828b0684fe603e09cfb4f9ed8b1 Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Wed, 23 Jun 2021 20:00:21 +0200 Subject: several changes --- buch/papers/reedsolomon/codebsp.tex | 72 ++++++++++++++++++----------- buch/papers/reedsolomon/decmitfehler.tex | 2 +- buch/papers/reedsolomon/endlichekoerper.tex | 8 ++-- buch/papers/reedsolomon/main.tex | 2 +- buch/papers/reedsolomon/rekonstruktion.tex | 2 +- 5 files changed, 51 insertions(+), 35 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/codebsp.tex b/buch/papers/reedsolomon/codebsp.tex index 262297e..6ab792a 100644 --- a/buch/papers/reedsolomon/codebsp.tex +++ b/buch/papers/reedsolomon/codebsp.tex @@ -5,14 +5,14 @@ % \section{Codierung eines Beispiels \label{reedsolomon:section:codebsp}} -\rhead{Koerper Festlegen} +\rhead{Codierung eines Beispiels} Um die Funktionsweise eines Reed-Solomon-Codes besser zu verstehen werden wir die einzelnen Probleme und ihre Lösungen anhand eines Beispiels betrachten. -Da wir in Endlichen Körpern Rechnen werden wir zuerst solch einen Körper festlegen. Dabei müssen wir die \textcolor{red}{Definition 4.6 (wie verweist man auf eine definition?)} berücksichtigen, die besagt, dass nur Primzahlen für endliche Körper in Frage kommen. -Wir legen für unser Beispiel den endlichen Körper mit $q = 11$ fest. +Da wir in endlichen Körpern rechnen, werden wir zuerst solch einen Körper festlegen. Dabei müssen wir die \textcolor{red}{Definition 4.6 (verweis auf eine Definition im Buch ohne label)} berücksichtigen, die besagt, dass nur Primzahlen für endliche Körper in Frage kommen. +Wir legen für unser Beispiel den endlichen Körper $\mathbb{F}_{q}$ mit $q = 11$ fest. Zur Hilfestellung können dazu die beiden Tabellen \ref{reedsolomon:subsection:adtab} und -\ref{reedsolomon:subsection:mptab} hinzugezogen werden. Diese Tabellen enthalten sämtliche Resultate aller gültigen Operationen \textcolor{red}{(Notiz: nach meinem Wissen gibt es ja nur addition und multiplikation als gültige operationen)}, die in diesem Körper durchgeführt werden können. -Aus der Definition der Endlichen Körper (ersichtlich auch in den Tabellen) folgt, dass uns nur die Zahlen \[\mathbb{F}_{11} = \{0,1,2,3,4,5,6,7,8,9,10\}\] zur verfügung stehen und somit $11 = 0$ gelten muss. +\ref{reedsolomon:subsection:mptab} hinzugezogen werden. Diese Tabellen enthalten die Resultate der arithmetischen Operationen im Körper $\mathbb{F}_{11}$, die durchgeführt werden können. +Aus der Definition der endlichen Körper (ersichtlich auch in den Tabellen) folgt, dass uns nur die Zahlen \[\mathbb{F}_{11} = \{0,1,2,3,4,5,6,7,8,9,10\}\] zur Verfügung stehen und somit $11 = 0$ gelten muss. % OLD TEXT %Alle folgenden Berechnungen wurden mit den beiden Restetabellen \ref{reedsolomon:subsection:adtab} und \ref{reedsolomon:subsection:mptab} durchgeführt. @@ -22,7 +22,7 @@ Aus der Definition der Endlichen Körper (ersichtlich auch in den Tabellen) folg %\input{papers/reedsolomon/restetabelle1} %\input{papers/reedsolomon/restetabelle2} -Anhand der Menge uns zur Verfügung stehenden Zahlen wird auch festgelegt, wie viele Zahlen ein Nachrichtenblock $n$, bestehend aus Nutzdatenteil und Fehlerkorrekturteil, umfassen kann. +Die Menge uns zur Verfügung stehender Zahlen legt auch fest, wie viele Zahlen ein Nachrichtenblock $n$, bestehend aus Nutzdatenteil und Fehlerkorrekturteil, umfassen kann. Der Nachrichtenblock im Beispiel besteht aus \[ n = q - 1 = 10 \text{ Zahlen}, @@ -52,16 +52,16 @@ k = n - 2t = 6\text{ Zahlen} \] übertragen. -Zusammenfassend haben wir einen Nachrichtenblock mit der Länge von 10 Zahlen definiert, der 6 Zahlen als Nutzlast beinhaltet und in der Lage ist aus 2 fehlerhafte Stellen im Block die ursprünglichen Nutzdaten zu rekonstruieren. Zudem werden wir im weiteren feststellen, dass dieser Code maximal vier Fehlerstellen erkennen, diese aber nicht rekonstruieren kann. +Zusammenfassend haben wir einen Nachrichtenblock mit der Länge von 10 Zahlen definiert, der 6 Zahlen als Nutzlast beinhaltet und in der Lage ist, aus 2 fehlerhafte Stellen im Block die ursprünglichen Nutzdaten zu rekonstruieren. Zudem werden wir im weiteren feststellen, dass dieser Code maximal vier Fehlerstellen erkennen, diese aber nicht rekonstruieren kann. -Wir legen nun die Nachricht +Wir legen nun für das Beispiel die Nachricht \[ m = [0,0,0,0,4,7,2,5,8,1] \] fest, die wir gerne an einen Empfänger übertragen möchten, wobei die vorderen vier Stellen für die Fehlerkorrektur zuständig sind. -Solange diese Stellen vor dem Codieren und nach dem Decodieren den Wert null haben, so ist die Nachricht Fehlerfrei übertragen worden. +Solange diese Stellen vor dem Codieren und nach dem Decodieren den Wert null haben, so ist die Nachricht fehlerfrei übertragen worden. -Da wir in den folgenden Abschnitten mit Polynomen arbeiten, stellen wir die Nachicht auch noch als Polynom +Da wir in den folgenden Abschnitten mit Polynomen arbeiten, stellen wir die Nachricht auch noch als Polynom \[ m(X) = 4X^5 + 7X^4 + 2X^3 + 5X^2 + 8X + 1 \] @@ -77,8 +77,8 @@ dar. \subsection{Der Ansatz der diskreten Fouriertransformation \label{reedsolomon:subsection:diskFT}} -In einem vorherigen Kapitel \textcolor{red}{(???)} haben wir schon einmal die diskrete Fouriertransformation zum Codieren einer Nachricht verwendet. In den endlichen Körpern wird dies jedoch nicht gelingen, da die Eulerische Zahl $e$ in endlichen Körpern nicht existiert. -Wir legen deshalb die Zahl $a$ fest. Diese Zahl soll die gleichen aufgaben haben, wie $e^{\frac{j}{2 \pi}}$ in der Diskreten Fouriertransformation, nur mit dem Unterschied, dass $a$ in $\mathbb{F}_{11}$ existiert. Dazu soll $a$ den gesamten Zahlenbereich von $\mathbb{F}_{11}$ abdecken, um +In einem vorherigen Abschnitt \textcolor{red}{(???)} haben wir schon einmal die diskrete Fouriertransformation zum Codieren einer Nachricht verwendet. In den endlichen Körpern wird dies jedoch nicht gelingen, da die Eulerische Zahl $e$ in endlichen Körpern nicht existiert. +Wir wählen deshalb eine Zahl $a$, die die gleichen Aufgaben haben soll wie $e^{\frac{j}{2 \pi}}$ in der diskreten Fouriertransformation, nur mit dem Unterschied, dass $a$ in $\mathbb{F}_{11}$ ist. Dazu soll die Potenz von $a$ den gesamten Zahlenbereich von $\mathbb{F}_{11}$ abdecken, um \[ \mathbb{F}_{11} = \{0,1,2,3,4,5,6,7,8,9,10\} \] @@ -118,22 +118,36 @@ umzuschreiben. Wenn wir jetzt sämtliche Zahlen von $\mathbb{F}_{11}$ in $a$ einsetzen \begin{center} -\begin{tabular}{c r c l} -%$a = 0 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{0, 0, 0, 0, 0, 0, 0, 0, 0, 0\}$ \\ -$a = 1 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 1, 1, 1, 1, 1, 1, 1, 1, 1\}$ \\ -$a = 2 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 2, 4, 8, 5, 10, 9, 7, 3, 6\}$ \\ -$a = 3 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 3, 9, 5, 4, 1, 3, 9, 5, 4\}$ \\ -$a = 4 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 4, 5, 9, 3, 1, 4, 5, 9, 3\}$ \\ -$a = 5 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 5, 3, 4, 9, 1, 5, 3, 4, 9\}$ \\ -$a = 6 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 6, 3, 7, 9, 10, 5, 8, 4, 2\}$ \\ -$a = 7 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 7, 5, 2, 3, 10, 4, 6, 9, 8\}$ \\ -$a = 8 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 8, 9, 6, 4, 10, 3, 2, 5, 7\}$ \\ -$a = 9 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 9, 4, 3, 5, 1, 9, 4, 3, 5\}$ \\ -$a = 10 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 10, 1, 10, 1, 10, 1, 10, 1, 10\}$ +\begin{tabular}{c c c c c c c} +$a = 1$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 1, 1, 1, 1, 1, 1, 1, 1, 1\}$ & $\neq$ & $\mathbb{F}_{11}\setminus\{0\}$ \\ +$a = 2$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 2, 4, 8, 5, 10, 9, 7, 3, 6\}$ & $ = $ & $\mathbb{F}_{11}\setminus\{0\}$ \\ +$a = 3$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 3, 9, 5, 4, 1, 3, 9, 5, 4\}$ & $\neq$ & $\mathbb{F}_{11}\setminus\{0\}$ \\ +$a = 4$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 4, 5, 9, 3, 1, 4, 5, 9, 3\}$ & $\neq$ & $\mathbb{F}_{11}\setminus\{0\}$ \\ +$a = 5$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 5, 3, 4, 9, 1, 5, 3, 4, 9\}$ & $\neq$ & $\mathbb{F}_{11}\setminus\{0\}$ \\ +$a = 6$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 6, 3, 7, 9, 10, 5, 8, 4, 2\}$ & $ = $ & $\mathbb{F}_{11}\setminus\{0\}$ \\ +$a = 7$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 7, 5, 2, 3, 10, 4, 6, 9, 8\}$ & $ = $ & $\mathbb{F}_{11}\setminus\{0\}$ \\ +$a = 8$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 8, 9, 6, 4, 10, 3, 2, 5, 7\}$ & $ = $ & $\mathbb{F}_{11}\setminus\{0\}$ \\ +$a = 9$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 9, 4, 3, 5, 1, 9, 4, 3, 5\}$ & $\neq$ & $\mathbb{F}_{11}\setminus\{0\}$ \\ +$a = 10$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 10, 1, 10, 1, 10, 1, 10, 1, 10\}$ & $\neq$ & $\mathbb{F}_{11}\setminus\{0\}$ \\ \end{tabular} \end{center} -so fällt uns auf, dass für $a$ die Zahlen $2,6,7,8$ erhalten, die tatsächlich den gesamten Zahlenraum von $\mathbb{F}_{11}$ abbilden. Solche Zahlen werden \em Primitive Einheitswurzel \em genannt. -Wenden wir diese Vorgehensweise auch für andere Endliche Körper an, so werden wir sehen, dass wir immer mindestens zwei solcher Einheitswurzel finden werden. Somit ist es uns überlassen, eine dieser Einheitswurzeln auszuwählen, mit der wir weiter rechnen wollen. Für das Beispiel wählen wir die Zahl $a^i = 8$. +%\begin{center} +%\begin{tabular}{c r c l} +%%$a = 0 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{0, 0, 0, 0, 0, 0, 0, 0, 0, 0\}$ \\ +%$a = 1 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 1, 1, 1, 1, 1, 1, 1, 1, 1\}$ \\ +%$a = 2 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 2, 4, 8, 5, 10, 9, 7, 3, 6\}$ \\ +%$a = 3 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 3, 9, 5, 4, 1, 3, 9, 5, 4\}$ \\ +%$a = 4 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 4, 5, 9, 3, 1, 4, 5, 9, 3\}$ \\ +%$a = 5 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 5, 3, 4, 9, 1, 5, 3, 4, 9\}$ \\ +%$a = 6 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 6, 3, 7, 9, 10, 5, 8, 4, 2\}$ \\ +%$a = 7 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 7, 5, 2, 3, 10, 4, 6, 9, 8\}$ \\ +%$a = 8 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 8, 9, 6, 4, 10, 3, 2, 5, 7\}$ \\ +%$a = 9 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 9, 4, 3, 5, 1, 9, 4, 3, 5\}$ \\ +%$a = 10 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 10, 1, 10, 1, 10, 1, 10, 1, 10\}$ +%\end{tabular} +%\end{center} +so fällt uns auf, dass für $a$ die Zahlen $2,6,7,8$ erhalten, die tatsächlich den gesamten Zahlenraum von $\mathbb{F}_{11}$ abbilden. Solche Zahlen werden \em primitive Einheitswurzel \em genannt. +Wenden wir diese Vorgehensweise auch für andere endliche Körper an, so werden wir sehen, dass wir immer mindestens zwei solcher Einheitswurzel finden werden. Somit ist es uns überlassen, eine dieser Einheitswurzeln auszuwählen, mit der wir weiter rechnen wollen. Für das Beispiel wählen wir die Zahl $a = 8$. \subsubsection{Bildung einer Transformationsmatrix \label{reedsolomon:subsection:transMat}} @@ -150,12 +164,13 @@ Mit der Wahl einer Einheitswurzel ist es uns jetzt möglich, unsere Nachricht zu $m(8^9) = 4 \cdot 7^5 + 7 \cdot 7^4 + 2 \cdot 7^3 + 5 \cdot 7^2 + 8 \cdot 7^1 + 1 = 4$ \end{tabular} \end{center} -unser Übertragungsvektor. Um das ganze noch ein wenig übersichtlicher zu gestalten können wir die Polynome zu einer Matrix zusammenfassen und bildet so unsere Transformationsmatrix $A$. +unser Übertragungsvektor. \subsection{Allgemeine Codierung \label{reedsolomon:subsection:algCod}} +Um das Ganze noch ein wenig übersichtlicher zu gestalten können wir die Polynome zu einer Matrix zusammenfassen, die unsere Transformationsmatrix $A$ bildet. -Für die Codierung benötigen wir die Nachricht $m$, die Codiert werden soll sowie die Transformationsmatrix $A$. Daraus erhalten wir den Übertragungsvektor $v$. Setzen wir die Zahlen aus dem Beispiel ein erhalten wir folgende Darstellung. +Für die allgemeine Codierung benötigen wir die Nachricht $m$, die codiert werden soll, sowie die Transformationsmatrix $A$. Daraus erhalten wir den Übertragungsvektor $v$. Setzen wir die Zahlen aus dem Beispiel ein erhalten wir folgende Darstellung: \[ v = A \cdot m \qquad \Rightarrow \qquad v = \begin{pmatrix} 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0& 8^0\\ @@ -173,6 +188,7 @@ v = A \cdot m \qquad \Rightarrow \qquad v = \begin{pmatrix} \begin{pmatrix} 1 \\ 8 \\ 5 \\ 2 \\ 7 \\ 4 \\ 0 \\ 0 \\ 0 \\ 0 \\ \end{pmatrix} +. \] Für unseren Übertragungsvektor resultiert \[ diff --git a/buch/papers/reedsolomon/decmitfehler.tex b/buch/papers/reedsolomon/decmitfehler.tex index feaa027..1f195e9 100644 --- a/buch/papers/reedsolomon/decmitfehler.tex +++ b/buch/papers/reedsolomon/decmitfehler.tex @@ -5,7 +5,7 @@ % \section{Decodierung: Ansatz mit Fehlerkorrektur \label{reedsolomon:section:decmitfehler}} -\rhead{fehlerhafte rekonstruktion} +\rhead{Decodierung mit Fehler} Bisher haben wir die Decodierung unter der Bedingung durchgeführt, dass der Übertragungsvektor fehlerlos versendet und empfangen wurde. In der realen Welt müssen wir uns jedoch damit abfinden, dass kein Übertragungskanal garantiert fehlerfrei ist und das wir früher oder später mit Fehlern rechnen müssen. Genau für dieses Problem wurden Fehler korrigierende Codes, wie der Reed-Solomon-Code, entwickelt. diff --git a/buch/papers/reedsolomon/endlichekoerper.tex b/buch/papers/reedsolomon/endlichekoerper.tex index 146067a..19e5dd4 100644 --- a/buch/papers/reedsolomon/endlichekoerper.tex +++ b/buch/papers/reedsolomon/endlichekoerper.tex @@ -5,10 +5,10 @@ % \section{Reed-Solomon in Endlichen Körpern \label{reedsolomon:section:endlichekoerper}} -\rhead{Problemstellung} - -\textcolor{red}{TODO: (warten auf den 1. Teil)} - +\rhead{Reed-Solomon in endlichen Körpern} +\[ +\textcolor{red}{\text{TODO: (warten auf den 1. Teil)}} +\] Das Rechnen in endlichen Körpern bietet einige Vorteile: \begin{itemize} diff --git a/buch/papers/reedsolomon/main.tex b/buch/papers/reedsolomon/main.tex index fa20936..b4899cb 100644 --- a/buch/papers/reedsolomon/main.tex +++ b/buch/papers/reedsolomon/main.tex @@ -4,7 +4,7 @@ % (c) 2020 Hochschule Rapperswil % \chapter{Reed-Solomon-Code\label{chapter:reedsolomon}} -\lhead{Thema} +\lhead{Reed-Solomon-Code} \begin{refsection} \chapterauthor{Joshua Bär und Michael Steiner} diff --git a/buch/papers/reedsolomon/rekonstruktion.tex b/buch/papers/reedsolomon/rekonstruktion.tex index 89a700f..40919d7 100644 --- a/buch/papers/reedsolomon/rekonstruktion.tex +++ b/buch/papers/reedsolomon/rekonstruktion.tex @@ -6,7 +6,7 @@ % \section{Nachricht Rekonstruieren \label{reedsolomon:section:rekonstruktion}} -\rhead{Rekonstruktion} +\rhead{Rekonstruktion der Nachricht} Im letzten Kapitel haben wir eine Möglichkeit gefunden, wie wir die fehlerhaften Stellen lokalisieren können. Mit diesen Stellen soll es uns nun möglich sein, aus dem fehlerhaften empfangenen Nachrichtenvektor wieder unsere Nachricht zu rekonstruieren. Das Lokatorpolynom -- cgit v1.2.1 From 0359a35136adf760ebaea4d4719e7801532b7e71 Mon Sep 17 00:00:00 2001 From: "User-PC\\User" Date: Thu, 24 Jun 2021 10:37:48 +0200 Subject: Diverse Anpassungen, Nummerierung und Referenzierung auf Formeln --- buch/papers/spannung/Einleitung.tex | 6 +++--- buch/papers/spannung/teil0.tex | 4 ++-- buch/papers/spannung/teil2.tex | 31 +++++++++++++++++-------------- buch/papers/spannung/teil3.tex | 25 ++++++++++++++----------- buch/papers/spannung/teil4.tex | 4 ++-- 5 files changed, 38 insertions(+), 32 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/spannung/Einleitung.tex b/buch/papers/spannung/Einleitung.tex index 0cb1433..b1588ff 100644 --- a/buch/papers/spannung/Einleitung.tex +++ b/buch/papers/spannung/Einleitung.tex @@ -29,7 +29,7 @@ Belastet man den Boden mit einer Spannung so wird diese in den Boden geleitet und von diesem kompensiert. Im Boden entstehen unterschiedlich hohe Zusatzspannungen. Diese Zusatzspannung breitet sich räumlich im Boden aus. -Im Falle einer konstanten Flächenlast $\sigma$ (siehe Abbildung 1.1) breitet sich die Zusatzspannung zwiebelartig aus. +Im Falle einer konstanten Flächenlast $\sigma$ siehe Abbildung~\ref{spannung:Bild4} breitet sich die Zusatzspannung zwiebelartig aus. \begin{figure} \centering @@ -38,7 +38,7 @@ Im Falle einer konstanten Flächenlast $\sigma$ (siehe Abbildung 1.1) breitet si \label{fig:Bild4} \end{figure} -Mit der Tiefe $t$ nimmt diese permanent ab (siehe Abbildung 1.2). +Mit der Tiefe $t$ nimmt diese permanent ab (siehe Abbildung~\ref{spannung:Bild5}). Wie diese Geometrie der Ausbreitung ist, kann durch viele Modelle und Ansätze näherungsweise beschrieben werden. Diese Zusatzspannung $\sigma$ ist im Wesentlichen abhängig von $(x,y,t)$. Je nach Modell werden noch andere Parameter berücksichtigt. @@ -74,7 +74,7 @@ berechnet werden mit: \end{align*} Diese Zusammenhänge sind wie erwähnt unter anderem im Lehrbuch [\cite{spannung:Grundlagen-der-Geotechnik}] beschrieben. In der praktischen Geotechnik wird man allerdings weitaus schwierigere Situationen antreffen. -Ein Beispiel wäre eine Baugrube mit einem Baugrubenabschluss, wo ein Teil des Bodens abgetragen ist (siehe Abbildung 1.3). +Ein Beispiel wäre eine Baugrube mit einem Baugrubenabschluss, wo ein Teil des Bodens abgetragen ist (siehe Abbildung~\ref{spannung:Bild3}). Die Ausbreitung der Zusatzspannung $\sigma(x,y,t)$ würde hier deutlich komplizierter ausfallen. Dies bedeutet auch eine komplexere Setzung der Bodenoberfläche infolge einer Flächenlast $\sigma$. Aus allen zusätzlichen Spannungen müssen die adäquaten Dehnungen mit Hilfe einer Spannungsgleichung berechnet werden. diff --git a/buch/papers/spannung/teil0.tex b/buch/papers/spannung/teil0.tex index ffc9009..7647252 100644 --- a/buch/papers/spannung/teil0.tex +++ b/buch/papers/spannung/teil0.tex @@ -1,6 +1,6 @@ \section{Der Spannungszustand\label{spannung:section:Der Spannungsustand}} \rhead{Der Spannungszustand} -Ein Spannungszustand ist durch alle Spannungen, welche in einem beliebigen Punkt im Körper wirken, definiert (siehe Abbildung 1.4). +Ein Spannungszustand ist durch alle Spannungen, welche in einem beliebigen Punkt im Körper wirken, definiert (siehe Abbildung~\ref{spannung:Bild2}). Änderungen der äusseren Kräfte verändern die inneren Spannungszustände im Material. Um alle Spannungen eines Punktes darstellen zu können, wird ein infinitesimales Bodenelement in Form eines Würfels modellhaft vorgestellt. Man spricht auch von einem Elementarwürfel, da dieser elementar klein ist. @@ -27,7 +27,7 @@ Daher gibt es auch den entsprechenden Dehnungszustand. \section{Spannungszustand\label{spannung:section:Spannungsustand}} \rhead{Spannungszustand} -Im einachsigen Spannungszustand herrscht nur die Normalspannung $\sigma_{11}$ (siehe Abbildung 1.5). +Im einachsigen Spannungszustand herrscht nur die Normalspannung $\sigma_{11}$ (siehe Abbildung~\ref{spannung:Bild1}). Das Hook'sche Gesetz beschreibt genau diesen 1D Spannungszustand. Nach Hooke gilt: \[ diff --git a/buch/papers/spannung/teil2.tex b/buch/papers/spannung/teil2.tex index 921d2b8..6326eab 100644 --- a/buch/papers/spannung/teil2.tex +++ b/buch/papers/spannung/teil2.tex @@ -155,6 +155,17 @@ Die allgemeine Spannungsgleichung lautet nun: \overline{\overline{C}}\cdot\vec{\varepsilon} . \] + +Als Indexnotation +\[ +\sigma_{ij} += +\sum_{k=1}^3 +\sum_{l=1}^3 +C_{ijkl}\cdot\varepsilon_{kl} +\] +kann dies ebenfalls geschrieben werden. + Die Konstanten $C$ werden nun nach dem Hook'schen Gesetz mit Hilfe des Elastizitätsmoduls $E$ definiert. Da dieser Modul durch die eindimensionale Betrachtung definiert ist, muss für die dreidimensionale Betrachtung eine weitere Kennzahl eingeführt werden. @@ -208,17 +219,8 @@ definiert ist. Trägt man die Konstanten in die Matrix ein, ergibt sich \varepsilon_{32} \\ \varepsilon_{33} \end{pmatrix} -, -\] -welche ebenfalls als Indexnotation mit -\[ -\sigma_{ij} -= -\sum_{k=1}^3 -\sum_{l=1}^3 -C_{ijkl}\cdot\varepsilon_{kl} +. \] -ausgedrückt werden kann. Die Normalspannung $\sigma_{22}$ lässt sich exemplarisch als \[ \sigma_{22} @@ -308,7 +310,7 @@ und entsprechend = \begin{pmatrix} \varepsilon_{11} & \varepsilon_{12} & \varepsilon_{13} \\ - & \varepsilon_{22} & \varepsilon_{23} \\ + & \varepsilon_{22} & \varepsilon_{23} \\ \text{sym} & & \varepsilon_{33} \end{pmatrix} \qquad @@ -397,8 +399,8 @@ Somit lässt sich die reduzierte allgemeine Spannungsgleichung mit \] beschreiben. Die Konstanten $C$ werden wieder nach dem Hook'schen Gesetz definiert. -Dies ergibt die Spannungsgleichung, welche weit möglichst vereinfacht ist: -\[ +Dies ergibt die Spannungsformel, welche weit möglichst vereinfacht ist: +\begin{equation} \begin{pmatrix} \sigma_{11}\\ \sigma_{22}\\ @@ -426,7 +428,8 @@ Dies ergibt die Spannungsgleichung, welche weit möglichst vereinfacht ist: \varepsilon_{12} \end{pmatrix} . -\] +\label{spannung:Spannungsgleichung} +\end{equation} Im Elastizitätstensor fallen zwei $3\times3$ Blöcke auf, welche nur Einträge mit $0$ haben. Der Tensor besagt also, dass diese jeweiligen Dehnungen keinen Einfluss auf unsere Spannung haben. diff --git a/buch/papers/spannung/teil3.tex b/buch/papers/spannung/teil3.tex index 8d99733..3e456c3 100644 --- a/buch/papers/spannung/teil3.tex +++ b/buch/papers/spannung/teil3.tex @@ -14,29 +14,31 @@ Folglich gilt: Dadurch wird der Spannungszustand vereinfacht. Diesen vereinfachten Spannungszustand kann man mit den zwei geotechnischen Invarianten abbilden. Die erste Invariante ist die volumetrische Spannung -\[ +\begin{equation} p = \frac{\sigma_{11}+\sigma_{22}+\sigma_{33}}{3} +\label{spannung:Invariante_p} , -\] +\end{equation} welche als arithmetisches Mittel aller Normalspannungen im infinitesimalen Würfel definiert ist. Die zweite Invariante ist die deviatorische Spannung -\[ +\begin{equation} q = \sqrt{\frac{(\sigma_{11}-\sigma_{22})^{2}+(\sigma_{11}-\sigma_{33})^{2}+(\sigma_{22}-\sigma_{33})^{2}}{2}} +\label{spannung:Invariante_q} . -\] +\end{equation} Diese Zusammenhänge werden im Skript [\cite{spannung:Stoffgesetze-und-numerische-Modellierung-in-der-Geotechnik}] aufgezeigt. -Die hydrostatische Spannung $p$ kann gemäss Gleichung (Nr) als +Die hydrostatische Spannung $p$ kann gemäss Gleichung \eqref{spannung:Invariante_p} als \[ p = \frac{\sigma_{11}+2\sigma_{33}}{3} \] vereinfacht werden. -Die deviatorische Spannung $q$ wird gemäss Gleichung (Nr) als +Die deviatorische Spannung $q$ wird gemäss Gleichung \eqref{spannung:Invariante_q}als \[ q = @@ -44,7 +46,7 @@ q \] vereinfacht. Man kann $p$ als Isotrop und $q$ als Schub betrachten. -Die Invarianten können mit der Spannungsformel (Nr..xxx) berechnet werden. +Die Invarianten können mit der Spannungsformel \eqref{spannung:Spannungsgleichung} berechnet werden. Durch geschickte Umformung dieser Gleichung, lassen sich die Module als Faktor separieren. Dabei entstehen spezielle Faktoren mit den Dehnungskomponenten. So ergibt sich @@ -81,7 +83,7 @@ Die hydrostatische Dehnung $\varepsilon_{v}$ kann mit einer Kompression verglich Die deviatorische Dehnung $\varepsilon_{s}$ kann mit einer Verzerrung verglichen werden. Diese zwei Gleichungen kann man durch die Matrixschreibweise -\[ +\begin{equation} \begin{pmatrix} q\\ p @@ -95,11 +97,12 @@ Diese zwei Gleichungen kann man durch die Matrixschreibweise \varepsilon_{s}\\ \varepsilon_{v} \end{pmatrix} -\] -(sollte nummeriert sein) vereinfachen. +\label{spannung:Matrixschreibweise} +\end{equation} +vereinfachen. Man hat so eine Matrix multipliziert mit einem Vektor und erhält einen Vektor. Änderungen des Spannungszustandes können mit dieser Gleichung vollumfänglich erfasst werden. -Mit dieser Formel lassen sich verschieden Ergebnisse von Versuchen analysieren und berechnen. +Mit dieser Formel \eqref{spannung:Matrixschreibweise} lassen sich verschieden Ergebnisse von Versuchen analysieren und berechnen. Ein solcher Versuch, den oft in der Geotechnik durchgeführt wird, ist der Oedometer-Versuch. Im nächsten Kapitel wird die Anwendung der Matrix an diesem Versuch beschrieben. diff --git a/buch/papers/spannung/teil4.tex b/buch/papers/spannung/teil4.tex index d524f13..2f2e4ce 100644 --- a/buch/papers/spannung/teil4.tex +++ b/buch/papers/spannung/teil4.tex @@ -34,7 +34,7 @@ Die Spannung $\sigma_{11}$ wird durch die aufgebrachte Kraft mit \frac{F}{A} \] und die Dehnung $\varepsilon_{11}$ jeweils mit den entsprechenden Setzungen berechnet. -Diese Randbedingungen können in die vereinfachte Gleichung (Nrxxx) eingesetzt werden. +Diese Randbedingungen können in die vereinfachte Gleichung \eqref{spannung:Matrixschreibweise} eingesetzt werden. Diese lautet nun: \[ \begin{pmatrix} @@ -67,7 +67,7 @@ und berechnen. Mit diesen Gleichungen hat man das Gleichungssystem um $E_{OED}$ und $\sigma_{33}$ zu berechnen. Die Poisson-Zahl muss als Kennwert gemäss der Bodenklasse gewählt werden. -Den Versuch kann man auf einem $\sigma$-$\varepsilon$-Diagramm abtragen (siehe Abbildung 1.7). +Den Versuch kann man auf einem $\sigma$-$\varepsilon$-Diagramm abtragen (siehe Abbildung~\ref{spannung:DiagrammOedometer-Versuch}). Durch die Komprimierung nimmt der Boden mehr Spannung auf, und verformt sich zugleich weniger stark. Mit diesem ermittelten $E_{OED}$ kann man nun weitere Berechnungen für die Geotechnik durchführen. -- cgit v1.2.1 From fa0d3a4ead1df4b8587035b8b62b42375f970ba9 Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Thu, 24 Jun 2021 18:47:13 +0200 Subject: all files updated and corrected --- buch/papers/reedsolomon/codebsp.tex | 6 +- buch/papers/reedsolomon/decmitfehler.tex | 43 ++++++----- buch/papers/reedsolomon/decohnefehler.tex | 115 +++++++++++++++++++++++++--- buch/papers/reedsolomon/hilfstabellen.tex | 2 +- buch/papers/reedsolomon/main.tex | 6 +- buch/papers/reedsolomon/nachschlagewerk.tex | 4 - buch/papers/reedsolomon/rekonstruktion.tex | 9 ++- buch/papers/reedsolomon/zusammenfassung.tex | 15 ++++ 8 files changed, 156 insertions(+), 44 deletions(-) delete mode 100644 buch/papers/reedsolomon/nachschlagewerk.tex create mode 100644 buch/papers/reedsolomon/zusammenfassung.tex (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/codebsp.tex b/buch/papers/reedsolomon/codebsp.tex index 6ab792a..0339d9c 100644 --- a/buch/papers/reedsolomon/codebsp.tex +++ b/buch/papers/reedsolomon/codebsp.tex @@ -147,12 +147,12 @@ $a = 10$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 10, 1, 10, 1 %\end{tabular} %\end{center} so fällt uns auf, dass für $a$ die Zahlen $2,6,7,8$ erhalten, die tatsächlich den gesamten Zahlenraum von $\mathbb{F}_{11}$ abbilden. Solche Zahlen werden \em primitive Einheitswurzel \em genannt. -Wenden wir diese Vorgehensweise auch für andere endliche Körper an, so werden wir sehen, dass wir immer mindestens zwei solcher Einheitswurzel finden werden. Somit ist es uns überlassen, eine dieser Einheitswurzeln auszuwählen, mit der wir weiter rechnen wollen. Für das Beispiel wählen wir die Zahl $a = 8$. +Wenden wir diese Vorgehensweise auch für andere endliche Körper an, so werden wir sehen, dass wir immer mindestens zwei solcher Einheitswurzel finden werden. Somit ist es uns überlassen, eine dieser Einheitswurzel auszuwählen, mit der wir weiter rechnen wollen. Für das Beispiel wählen wir die Zahl $a = 8$. \subsubsection{Bildung einer Transformationsmatrix \label{reedsolomon:subsection:transMat}} -Mit der Wahl einer Einheitswurzel ist es uns jetzt möglich, unsere Nachricht zu Codieren. Daraus sollen wir dann einen Übertragungsvektor $v$ erhalten, den wir an den Empfänger schicken können. Für die Codierung müssen wir alle $a^i$ in das Polynom $m(X)$ einsetzen. Da wir $a^i = 8^i$ gewählt haben ergibt sich daraus +Mit der Wahl einer Einheitswurzel ist es uns jetzt möglich, unsere Nachricht zu Codieren. Daraus sollen wir dann einen Übertragungsvektor $v$ erhalten, den wir an den Empfänger schicken können. Für die Codierung müssen wir alle $a^i$ in das Polynom $m(X)$ einsetzen. Da wir $a^i = 8^i$ gewählt haben, ergibt sich daraus % %Damit wir unsere Nachricht codieren können, müssen wir $8^i$ in $m(X)$ einsetzen. % @@ -164,7 +164,7 @@ Mit der Wahl einer Einheitswurzel ist es uns jetzt möglich, unsere Nachricht zu $m(8^9) = 4 \cdot 7^5 + 7 \cdot 7^4 + 2 \cdot 7^3 + 5 \cdot 7^2 + 8 \cdot 7^1 + 1 = 4$ \end{tabular} \end{center} -unser Übertragungsvektor. +als unser Übertragungsvektor. \subsection{Allgemeine Codierung \label{reedsolomon:subsection:algCod}} diff --git a/buch/papers/reedsolomon/decmitfehler.tex b/buch/papers/reedsolomon/decmitfehler.tex index 1f195e9..a46d7da 100644 --- a/buch/papers/reedsolomon/decmitfehler.tex +++ b/buch/papers/reedsolomon/decmitfehler.tex @@ -10,12 +10,12 @@ Bisher haben wir die Decodierung unter der Bedingung durchgeführt, dass der Üb In der realen Welt müssen wir uns jedoch damit abfinden, dass kein Übertragungskanal garantiert fehlerfrei ist und das wir früher oder später mit Fehlern rechnen müssen. Genau für dieses Problem wurden Fehler korrigierende Codes, wie der Reed-Solomon-Code, entwickelt. In diesem Abschnitt betrachten wir somit die Idee der Fehlerkorrektur und wie wir diese auf unser Beispiel anwenden können. + Der Übertragungskanal im Beispiel weisst jetzt den Fehlervektor \[ u = [0, 0, 0, 3, 0, 0, 0, 0, 2, 0] \] auf. - Senden wir jetzt unser Übertragungsvektor $v$ durch diesen Kanal addiert sich der Fehlervektor $u$ auf unsere Übertragung und wir erhalten \begin{center} @@ -73,10 +73,10 @@ als neuen, fehlerbehafteten Übertragungsvektor $w$ auf der Empfängerseite. % %\end{center} %als Übertragungsvektor auf der Empfängerseite erhalten. -Wir jetzt als Empfänger wissen jedoch nicht, dass der erhaltene Übertragungsvektor jetzt fehlerbehaftet ist und werden dementsprechend den Ansatz aus Abschnitt \ref{reedsolomon:section:decohnefehler} anwenden. +Als Empfänger wissen wir jedoch nicht, dass der erhaltene Übertragungsvektor jetzt fehlerbehaftet ist und werden dementsprechend den Ansatz aus Abschnitt \ref{reedsolomon:section:decohnefehler} anwenden. Wir stellen jedoch recht schnell fest, dass am decodierten Nachrichtenblock \[ -r = [\underbrace{5,7,4,10,}_{\text{Syndrom}}5,4,5,7,6,7]. +r = [\underbrace{5,7,4,10,}_{\text{Syndrom}}5,4,5,7,6,7] \] etwas nicht in Ordnung ist, denn die vorderen vier Fehlerkorrekturstellen haben nicht mehr den Wert null. Der Nachrichtenblock weisst jetzt ein \em Syndrom \em auf, welches anzeigt, dass der Übertragungsvektor fehlerhaft empfangen wurde. @@ -85,21 +85,29 @@ Der Nachrichtenblock weisst jetzt ein \em Syndrom \em auf, welches anzeigt, dass %\[ %r = [\underbrace{5,7,4,10,}_{Fehlerinfo}5,4,5,7,6,7]. %\] -Jetzt stellt sich natürlich die Frage, wie wir daraus den ursprünglich gesendeten Nachrichtenvektor zurückerhalten sollen. Laut der Definition über die Funktionsweise eines Reed-Solomon-Codes können wir aus den Fehlerkorrekturstellen ein ``Lokatorpolynom'' berechnen, welches die Information enthält, welche stellen innerhalb des empfangenen Übertragungsvektors fehlerhaft sind. +Jetzt stellt sich natürlich die Frage, wie wir daraus den ursprünglich gesendeten Nachrichtenvektor zurückerhalten sollen. Laut der Definition über die Funktionsweise eines Reed-Solomon-Codes können wir aus den Fehlerkorrekturstellen ein ``Lokatorpolynom'' berechnen, welches die Information enthält, welche Stellen innerhalb des empfangenen Übertragungsvektors fehlerhaft sind. \subsection{Das Fehlerstellenpolynom $d(X)$ \label{reedsolomon:subsection:fehlerpolynom}} -Bevor wir unser Lokatorpolynom berechnen können, müssen wir zuerst eine Möglichkeit finden, die Fehlerhaften von den Korrekten Stellen im Übertragungsvektor unterscheiden zu können. In einem ersten Versuch könnten wir $d$ berechnen mit +Bevor wir unser Lokatorpolynom berechnen können, müssen wir zuerst eine Möglichkeit finden, die fehlerhaften von den korrekten Stellen im Übertragungsvektor unterscheiden zu können. +In einem ersten Versuch berechnen wir die Differenz $d$ des empfangenen und dem gesendeten Übertragungsvektor mit +%Alle Stellen in $d$, die nicht null sind sind demnach fehler. +% +%In einem ersten Versuch könnten wir $d$ berechnen mit \begin{center} \begin{tabular}{r c l} $m(X)$ & $=$ & $4X^5 + 7X^4 + 2X^3 + 5X^2 + 8X + 1$ \\ $r(X)$ & $=$ & $5X^9 + 7X^8 + 4X^7 + 10X^6 + 5X^5 + 4X^4 + 5X^3 + 7X^2 + 6X + 7$ \\ - $d(X)$ & $=$ & $r(X) - m(X)$. + $d(X)$ & $=$ & $r(X) - m(X)$ \end{tabular} \end{center} -Dies wird uns zwar andere sorgen wegen $m(X)$ bereiten, wir werden werden deshalb erst in Abschnitt \ref{reedsolomon:subsection:nachrichtenvektor} darauf zurückkommen. +und nennen $d(X)$ als unseres Fehlerstellenpolynom. Dieses Polynom soll uns sagen, welche Stellen korrekt und welche fehlerhaft sind. -Setzen wir jetzt noch unsere Einheitswurzel aus dem Beispiel ein so erhalten wir +Durch das verwenden von $m(X)$ stossen wir auf weitere Probleme, da wir den Nachrichtenvektor auf der Empfängerseite nicht kennen (unser Ziel ist es ja genau diesen zu finden). Dieses Problem betrachten wir im Abschnitt \ref{reedsolomon:subsection:nachrichtenvektor} genauer. Um die Überlegungen in den folgenden Abschnitten besser zu verstehen sei $m(X)$ bekannt auf der Empfängerseite. + +%Dies wird uns zwar andere sorgen wegen $m(X)$ bereiten, wir werden werden deshalb erst in Abschnitt \ref{reedsolomon:subsection:nachrichtenvektor} darauf zurückkommen. + +Setzen wir jetzt unsere Einheitswurzel aus dem Beispiel ein so erhalten wir % Old Text %\begin{align} % m(X) & = 4X^5 + 7X^4 + 2X^3 + 5X^2 + 8X + 1 \\ @@ -126,15 +134,15 @@ Für das einfache Bestimmen von Hand mag dies ja noch ausreichen, jedoch können \subsection{Mit dem grössten gemeinsamen Teiler auf Nullstellenjagd \label{reedsolomon:subsection:ggT}} -Zuerst betrachten wir mal den Satz von Fermat deren Funktionsweise wir in Abschnitt \ref{buch:section:galoiskoerper} kennengelernt haben. Der besagt, dass für +Zuerst betrachten wir den Satz von Fermat, dessen Funktionsweise wir in Abschnitt \ref{buch:section:galoiskoerper} kennengelernt haben. Der besagt, dass \[ f(X) = X^{q-1} -1 = 0 \] -wobei dies für jedes $q$ gilt. Setzen wir also das $q$ von unserem Beispiel ein +gilt für jedes $X$. Setzen wir das $q$ von unserem Beispiel ein \[ f(X) = X^{10}-1 = 0 \qquad \text{für } X = \{1,2,3,4,5,6,7,8,9,10\} \] -und stellen dies als Nullstellenform (\textcolor{red}{richtiger name für die Schreibweise?}) dar. So ergibt sich die Darstellung +und stellen dies als Faktorisierung dar. So ergibt sich die Darstellung \[ f(X) = (X-a^0)(X-a^1)(X-a^2)(X-a^3)(X-a^4)(X-a^5)(X-a^6)(X-a^7)(X-a^8)(X-a^9). \] @@ -145,7 +153,7 @@ Wir können jetzt auch $d(X)$ nach der gleichen Überlegung darstellen als d(X) = (X-a^0)(X-a^1)(X-a^2)\textcolor{gray!40}{(X-a^3)}(X-a^4)(X-a^5)(X-a^6)(X-a^7)\textcolor{gray!40}{(X-a^8)}(X-a^9) \cdot p(x), \] wobei diese Darstellung nicht mehr alle Nullstellen umfasst wie es noch in $f(X)$ der Fall war. -Dies liegt daran, dass wir ja zwei Fehlerstellen (grau markiert) haben, die nicht Null sind. Diese fassen wir zum Restpolynom $p(X)$ (\textcolor{red}{eventuell farblich kennzeichnen?}) zusammen. +Dies liegt daran, dass wir ja zwei Fehlerstellen (grau markiert) haben, die nicht Null sind. Diese fassen wir zum Restpolynom $p(X)$ zusammen. Wenn wir jetzt den grössten gemeinsamen Teiler von $f(X)$ und $d(X)$ berechnen, so erhalten wir mit \[ \operatorname{ggT}(f(X),d(X)) = (X-a^0)(X-a^1)(X-a^2)\textcolor{gray!40}{(X-a^3)}(X-a^4)(X-a^5)(X-a^6)(X-a^7)\textcolor{gray!40}{(X-a^8)}(X-a^9) @@ -174,7 +182,7 @@ l(X) = (X-a^3)(X-a^8) \] unser gesuchtes Lokatorpolynom. Es scheint so als müssten wir nur noch an den besagten Stellen den Übertragungsvektor korrigieren und wir währen fertig mit der Fehlerkorrektur. -Jedoch haben wir noch ein grundlegendes Problem, dass zu beginn aufgetaucht ist, wir aber beiseite geschoben haben. Die Rede ist natürlich vom Nachrichtenvektor $m(X)$, mit dem wir in erster Linie das wichtige Fehlerstellenpolynom $d(X)$ berechnet haben. +Jedoch haben wir noch ein grundlegendes Problem, dass zu Beginn aufgetaucht ist, wir aber beiseite geschoben haben. Die Rede ist natürlich vom Nachrichtenvektor $m(X)$, mit dem wir in erster Linie das wichtige Fehlerstellenpolynom $d(X)$ berechnet haben, auf der Empfängerseite aber nicht kennen. \subsection{Der problematische Nachrichtenvektor $m(X)$ \label{reedsolomon:subsection:nachrichtenvektor}} @@ -190,20 +198,18 @@ Wir könnten uns höchstens noch fragen, ob wir tatsächlich nichts über den Na \[ m = [0,0,0,0,4,7,2,5,8,1] \] -fällt uns aber auf, dass wir doch etwas über diesen Vektor wissen, nämlich den Wert der ersten 2t (im Beispiel vier) stellen. -Im Normalfall sollen diese nämlich den Wert null betragen und somit sind nur die letzten k stellen (im Beispiel sechs) für uns unbekannt, dargestellt als +fällt uns aber auf, dass wir doch etwas über diesen Vektor wissen, nämlich den Wert der ersten $2t$ (im Beispiel vier) stellen. +Im Normalfall sollen diese nämlich den Wert null betragen und somit sind nur die letzten $k$ stellen (im Beispiel sechs) für uns unbekannt, dargestellt als \[ m = [0,0,0,0,?,?,?,?,?,?]. \] -Wie der Zufall es so will liegt an diesen vier Stellen auch die Information, wo die Fehlerstellen liegen. Daher reicht es auch aus +Nach der Definition des Reed-Solomon-Codes soll an genau diesen vier Stellen auch die Information befinden, wo die Fehlerstellen liegen. Daher reicht es auch aus % darum werden die stellen auch als fehlerkorrekturstellen bezeichnet \[ d(X) = 5X^9 + 7X^8 + 4X^7 + 10X^6 + p(X) \] so zu berechnen, dass wir die wichtigen vier Stellen kennen, der Rest des Polynoms jedoch im unbekannten Restpolynom $p(X)$ enthalten ist. -\textcolor{red}{ist das wechseln zwischen 2t,k aus dem allgemeinfall und vier,sechs aus dem beispiel zu verwirrend?} - \subsection{Die Berechnung der Fehlerstellen \label{reedsolomon:subsection:nachrichtenvektor}} @@ -294,6 +300,7 @@ Daraus erhalten wir die Faktoren \[ l(X) = 2X^2 + 5 \qquad \rightarrow \qquad l(X) = 2(X-5)(X-6). \] +\subsubsection{Schritt 3: Fehlerstellen bestimmen} Unser gesuchtes Lokatorpolynom hat also die Form \[ l(X) = (X-a^i)(X-a^j). diff --git a/buch/papers/reedsolomon/decohnefehler.tex b/buch/papers/reedsolomon/decohnefehler.tex index 3b709f3..0470db0 100644 --- a/buch/papers/reedsolomon/decohnefehler.tex +++ b/buch/papers/reedsolomon/decohnefehler.tex @@ -5,7 +5,7 @@ % \section{Decodierung: Ansatz ohne Fehler \label{reedsolomon:section:decohnefehler}} -\rhead{fehlerlose rekonstruktion} +\rhead{Decodierung ohne Fehler} In diesem Abschnitt betrachten wie die Überlegung, wie wir auf der Empfängerseite die Nachricht aus dem empfangenen Übertragungsvektor erhalten. Nach einer einfachen Überlegung müssen wir den Übertragungsvektor decodieren, was auf den ersten Blick nicht allzu kompliziert sein sollte, solange wir davon ausgehen können, dass es während der Übertragung keine Fehler gegeben hat. Wir betrachten deshalb den Übertragungskanal als fehlerfrei. @@ -33,7 +33,7 @@ Definiert ist sie als \[ F(\omega) = \int_{-\infty}^{\infty} f(t) \mathrm{e}^{-j\omega t} dt \qquad \Rightarrow \qquad \mathfrak{F}^{-1}(F(\omega)) = f(t) = \frac{1}{2 \pi} \int_{-\infty}^{\infty} F(\omega) \mathrm{e}^{j \omega t} d\omega. \] -Damit beschäftigen wir uns im Abschnitt \ref{reedsolomon:subsection:algdec} weiter, konkret suchen wir momentan aber eine Inverse für unsere primitive Einheitswurzel $a$. +Damit beschäftigen wir uns im Abschnitt \ref{reedsolomon:subsection:sfaktor} weiter, konkret suchen wir momentan aber eine Inverse für unsere primitive Einheitswurzel $a$. \[ 8^1 \qquad \rightarrow \qquad 8^{-1} \] @@ -45,7 +45,7 @@ Mit einem solchen Problem haben wir uns bereits in Abschnitt \ref{buch:section:e \subsection{Inverse der primitiven Einheitswurzel \label{reedsolomon:subsection:invEinh}} -Die Funktionsweise des euklidischen Algorithmus ist im Kapitel \ref{buch:section:euklid} ausführlich beschrieben. +Die Funktionsweise des euklidischen Algorithmus ist im Abschnitt \ref{buch:section:euklid} ausführlich beschrieben. Für unsere Anwendung wählen wir die Parameter $a = 8$ und $b = 11$ ($\mathbb{F}_{11}$). Daraus erhalten wir @@ -76,21 +76,112 @@ Daraus erhalten wir \end{tabular} \end{center} -als Inverse der primitiven Einheitswurzel. Die inverse Transformationsmatrix $A^{-1}$ bilden wir indem wir jetzt die inverse primitive Einheitswurzel anstelle der primitiven Einheitswurzel in die Matrix einsetzen. +als Inverse der primitiven Einheitswurzel. Die inverse Transformationsmatrix $A^{-1}$ bilden wir, indem wir jetzt die inverse primitive Einheitswurzel anstelle der primitiven Einheitswurzel in die Matrix einsetzen: +\[ +\begin{pmatrix} + 8^0 & 8^0 & 8^0 & 8^0 & \dots & 8^0 \\ + 8^0 & 8^{-1} & 8^{-2} & 8^{-3} & \dots & 8^{-9} \\ + 8^0 & 8^{-2} & 8^{-4} & 8^{-6} & \dots & 8^{-18} \\ + 8^0 & 8^{-3} & 8^{-6} & 8^{-9} & \dots & 8^{-27} \\ + \vdots & \vdots & \vdots & \vdots & \ddots & \vdots \\ + 8^0 & 8^{-9} & 8^{-18} & 8^{-27} & \dots & 8^{-81} \\ +\end{pmatrix} +\qquad +\Rightarrow +\qquad +\begin{pmatrix} + 7^0 & 7^0 & 7^0 & 7^0 & \dots & 7^0 \\ + 7^0 & 7^{1} & 7^{2} & 7^{3} & \dots & 7^{9} \\ + 7^0 & 7^{2} & 7^{4} & 7^{6} & \dots & 7^{18} \\ + 7^0 & 7^{3} & 7^{6} & 7^{9} & \dots & 7^{27} \\ + \vdots & \vdots & \vdots & \vdots & \ddots & \vdots \\ + 7^0 & 7^{9} & 7^{18} & 7^{27} & \dots & 7^{81} \\ +\end{pmatrix} +\] -\subsection{Allgemeine Decodierung - \label{reedsolomon:subsection:algdec}} +\subsection{Der Faktor $s$ + \label{reedsolomon:subsection:sfaktor}} +Die diskrete Fouriertransformation benötigt für die Inverse einen Vorfaktor von $\frac{1}{2\pi}$. +Primitiv nehmen wir an, dass wir für die Inverse Transformationsmatrix ebenfalls einen benötigen. +Nur stellt sich jetzt die Frage, wie wir diesen Vorfaktor in unserem Fall ermitteln können. +Dafür betrachten wir eine Regel aus der Linearen Algebra, nämlich dass -Wir haben jetzt fast alles für eine erfolgreiche Rücktransformation beisammen. Wir haben aber noch nicht alle Aspekte der inversen diskreten Fouriertransformation befolgt, so fehlt uns noch einen Vorfaktor \[ -m = \textcolor{red}{s} \cdot A^{-1} \cdot v +A \cdot A^{-1} = E +\] +entsprechen muss. +Ist dies nicht der Fall, so benötigt $A^{-1}$ eben genau diesen Korrekturfaktor und ändert die Gleichung so zu +\begin{equation} + A \cdot s \cdot A^{-1} = E. + \label{reedsolomon:equation:sfaktor} +\end{equation} +%\[ +%A \cdot s \cdot A^{-1} = E. +%\] +Somit sollte es für uns ein leichtes Spiel sein, $s$ für unser Beispiel zu ermitteln: +\[ +\begin{pmatrix} + 8^0 & 8^0 & 8^0 & \dots & 8^0 \\ + 8^0 & 8^1 & 8^2 & \dots & 8^9 \\ + 8^0 & 8^2 & 8^4 & \dots & 8^{18} \\ + \vdots & \vdots & \vdots & \ddots & \vdots \\ + 8^0 & 8^9 & 8^{18} & \dots & 8^{81} \\ +\end{pmatrix} +\cdot +\begin{pmatrix} + 7^0 & 7^0 & 7^0 & \dots & 7^0 \\ + 7^0 & 7^{1} & 7^{2} & \dots & 7^{9} \\ + 7^0 & 7^{2} & 7^{4} & \dots & 7^{18} \\ + \vdots & \vdots & \vdots & \ddots & \vdots \\ + 7^0 & 7^{9} & 7^{18} & \dots & 7^{81} \\ +\end{pmatrix} += +\begin{pmatrix} + 10 & 0 & 0 & \dots & 0 \\ + 0 & 10 & 0 & \dots & 0 \\ + 0 & 0 & 10 & \dots & 0 \\ + \vdots & \vdots & \vdots & \ddots & \vdots \\ + 0 & 0 & 0 & \dots & 10 \\ +\end{pmatrix} \] -den wir noch bestimmen müssen. -Glücklicherweise lässt der sich analog wie bei der inversen diskreten Fouriertransformation bestimmen und beträgt +Aus der letzten Matrix folgt, dass wir \[ -s = \frac{1}{10}. +s = \dfrac{1}{10} \] -Da $\frac{1}{10} = 10^{-1}$ entspricht können wir $s$ ebenfalls mit dem euklidischen Algorithmus bestimmen und stellen fest, dass $10^{-1} = 10$ in $\mathbb{F}_{11}$ ergibt. Somit lässt sich der Nachrichtenvektor einfach bestimmen mit +als unseren Vorfaktor setzen müssen um die Gleichung \ref{reedsolomon:equation:sfaktor} zu erfüllen. Da wir in $\mathbb{F}_{11}$ nur mit ganzen Zahlen arbeiten schreiben wir $\frac{1}{10}$ in $10^{-1}$ um und bestimmen diese Inverse erneut mit dem euklidischen Algorithmus und erhalten für $10^{-1} = 10$ als unseren Vorfaktor in $\mathbb{F}_{11}$. +% +%erfüllt wird. Wir schreiben den Bruch um in $\frac{1}{10} = 10^{-1}$ und wenden darauf erneut den euklidischen Algorithmus an und erhalten somit den Vorfaktor $10^{-1} = 10 = s$ in $\mathbb{F}_{11}$. +% +%Um $s$ eindeutig zu bestimmen müssen wir $\frac{1}{10}$ nur noch in den Bereich von $\mathbb{F}_{11}$ verschieben. Wie sich herausstellt können wir das recht einfach bewerkstelligen, da $\frac{1}{10} = 10^{-1}$ entspricht. Daraus können wir $s$ mit dem euklidischen Algorithmus bestimmen und stellen fest, dass $10^{-1} = 10$ in $\mathbb{F}_{11}$ ergibt. +% +%Da $s$ jetzt ein Bruch ist brauchen wir ihn nur noch in $\mathbb{F}_{11}$ zu schieben. Praktischerweise können wir $\frac{1}{10} = 10^{-1}$ darstellen +% +%Da $\frac{1}{10} = 10^{-1}$ entspricht können wir $s$ ebenfalls mit dem euklidischen Algorithmus bestimmen und stellen fest, dass $10^{-1} = 10$ in $\mathbb{F}_{11}$ ergibt. +% +%Daher nehmen wir an, dass wir für die Inverse Transformationsmatrix ebenfalls ein solcher Vorfaktor benötigen. Dieser Faktor hat seinen Ursprung in der Gleichung +%\[ +%A \cdot A^{-1} = E. +%\] +%Sollte diese Gleichung nicht aufgehen, so muss die Inverse mit +\subsection{Allgemeine Decodierung + \label{reedsolomon:subsection:algdec}} + +Wir haben jetzt alles für eine erfolgreiche Rücktransformation vom empfangenen Nachrichtenvektor beisammen. Die allgemeine Gleichung für die Rücktransformation lautet +\[ +m = s \cdot A^{-1} \cdot v. +\] +Setzen wir nun die Werte ein in +% +%Wir haben aber noch nicht alle Aspekte der inversen diskreten Fouriertransformation befolgt, so fehlt uns noch einen Vorfaktor +%\[ +%m = \textcolor{red}{s} \cdot A^{-1} \cdot v +%\] +%den wir noch bestimmen müssen. +%Glücklicherweise lässt der sich analog wie bei der inversen diskreten Fouriertransformation bestimmen und beträgt +%\[ +%s = \frac{1}{10}. +%\] +%Da $\frac{1}{10} = 10^{-1}$ entspricht können wir $s$ ebenfalls mit dem euklidischen Algorithmus bestimmen und stellen fest, dass $10^{-1} = 10$ in $\mathbb{F}_{11}$ ergibt. Somit lässt sich der Nachrichtenvektor einfach bestimmen mit \[ m = 10 \cdot A^{-1} \cdot v \qquad \Rightarrow \qquad m = 10 \cdot \begin{pmatrix} 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0& 7^0\\ diff --git a/buch/papers/reedsolomon/hilfstabellen.tex b/buch/papers/reedsolomon/hilfstabellen.tex index 4e39de5..b006f21 100644 --- a/buch/papers/reedsolomon/hilfstabellen.tex +++ b/buch/papers/reedsolomon/hilfstabellen.tex @@ -4,7 +4,7 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{$\mathbb{F}_{11}$ Hilfstabellen +\section{Hilfstabellen für $\mathbb{F}_{11}$ \label{reedsolomon:section:hilfstabellen}} \rhead{Hilfstabellen} diff --git a/buch/papers/reedsolomon/main.tex b/buch/papers/reedsolomon/main.tex index b4899cb..4e2fd60 100644 --- a/buch/papers/reedsolomon/main.tex +++ b/buch/papers/reedsolomon/main.tex @@ -1,7 +1,7 @@ % % main.tex -- Paper zum Thema % -% (c) 2020 Hochschule Rapperswil +% (c) 2021 Joshua Bär und Michael Steiner, Hochschule Rapperswil % \chapter{Reed-Solomon-Code\label{chapter:reedsolomon}} \lhead{Reed-Solomon-Code} @@ -39,9 +39,9 @@ Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren \input{papers/reedsolomon/decohnefehler} \input{papers/reedsolomon/decmitfehler} \input{papers/reedsolomon/rekonstruktion} -\input{papers/reedsolomon/nachschlagewerk} -\input{papers/reedsolomon/hilfstabellen} +\input{papers/reedsolomon/zusammenfassung} %\input{papers/reedsolomon/anwendungen} -> geplant +\input{papers/reedsolomon/hilfstabellen} \nocite{reedsolomon:weitz} \nocite{reedsolomon:informationkommunikation} diff --git a/buch/papers/reedsolomon/nachschlagewerk.tex b/buch/papers/reedsolomon/nachschlagewerk.tex deleted file mode 100644 index 60b857e..0000000 --- a/buch/papers/reedsolomon/nachschlagewerk.tex +++ /dev/null @@ -1,4 +0,0 @@ -\section{Nachschlagewerk - \label{reedsolomon:section:nachschlagen}} -\rhead{nachschlagewerk} -todo: auflistung von z.b nachrichtenvektor, übertragungsvektor usw. inklusiver erklärung was es ist falls man beim lesen den faden verliert \ No newline at end of file diff --git a/buch/papers/reedsolomon/rekonstruktion.tex b/buch/papers/reedsolomon/rekonstruktion.tex index 40919d7..04e748c 100644 --- a/buch/papers/reedsolomon/rekonstruktion.tex +++ b/buch/papers/reedsolomon/rekonstruktion.tex @@ -7,7 +7,7 @@ \section{Nachricht Rekonstruieren \label{reedsolomon:section:rekonstruktion}} \rhead{Rekonstruktion der Nachricht} -Im letzten Kapitel haben wir eine Möglichkeit gefunden, wie wir die fehlerhaften Stellen lokalisieren können. +Im letzten Abschnitt haben wir eine Möglichkeit gefunden, wie wir die fehlerhaften Stellen lokalisieren können. Mit diesen Stellen soll es uns nun möglich sein, aus dem fehlerhaften empfangenen Nachrichtenvektor wieder unsere Nachricht zu rekonstruieren. Das Lokatorpolynom \[ @@ -21,7 +21,7 @@ Als Ausgangslage verwenden wir die Matrix, mit der wir den Nachrichtenvektor urs Unser Ziel ist es wie auch schon im Abschnitt \ref{reedsolomon:section:decohnefehler} eine Möglichkeit zu finden, wie wir den Übertragungsvektor decodieren können. Aufgrund der Fehlerstellen müssen wir aber davon ausgehen, das wir nicht mehr den gleichen Weg verfolgen können wie wir im Abschnitt \ref{reedsolomon:section:decohnefehler} angewendet haben. -Wir stellen also die Matrix auf und markieren gleichzeitig die Fehlerstellen. +Wir stellen also die Matrix auf und markieren gleichzeitig die Fehlerstellen: \[ \textcolor{gray}{ \begin{pmatrix} @@ -47,8 +47,9 @@ Wir stellen also die Matrix auf und markieren gleichzeitig die Fehlerstellen. \begin{pmatrix} m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ m_6 \\ m_7 \\ m_8 \\ m_9 \\ \end{pmatrix} +. \] -Die rot markierten Stellen im Übertragungsvektor enthalten Fehler und bringt uns daher kein weiterer Nutzen. +Die rot markierten Stellen im Übertragungsvektor enthalten Fehler und bringt uns daher keinen weiterer Nutzen. Aus diesem Grund werden diese Stellen aus dem Vektor entfernt, was wir hier ohne Probleme machen können, da dieser Code ja über Fehlerkorrekturstellen verfügt, deren Aufgabe es ist, eine bestimmte Anzahl an Fehler kompensieren zu können. Die dazugehörigen Zeilen in der Matrix werden ebenfalls entfernt, da die Matrix gleich viele Zeilen wie im Übertragungsvektor aufweisen muss, damit man ihn decodieren kann. @@ -183,3 +184,5 @@ m = [4,7,2,5,8,1] \] zurück, den wir ursprünglich versendet haben. +Wir möchten noch anmerken, dass es mehrere Wege für die Rekonstruktion des Nutzdatenteils gibt, diese aber alle auf dem Lokatorpolynom basieren. + diff --git a/buch/papers/reedsolomon/zusammenfassung.tex b/buch/papers/reedsolomon/zusammenfassung.tex new file mode 100644 index 0000000..568356f --- /dev/null +++ b/buch/papers/reedsolomon/zusammenfassung.tex @@ -0,0 +1,15 @@ +\section{Zusammenfassung + \label{reedsolomon:section:zf}} +\rhead{Zusammenfassung} +Dieser Abschnitt beinhaltet eine Übersicht über die Funktionsweise eines Reed-Solomon-Codes für beliebige endliche Körper. + +TODO: + +\subsubsection{Schritt 1: primitives Element} + +\subsubsection{Schritt 2: Codierung} + +\subsubsection{Schritt 3: Decodierung ohne Fehler} + +\subsubsection{Schritt 4: Decodierung mit Fehler} + -- cgit v1.2.1 From be7fe5c9223560b784944a1701fc5204378091fd Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sun, 4 Jul 2021 15:52:58 +0200 Subject: Add tikzfigures from presentation --- buch/papers/punktgruppen/Makefile | 17 +- buch/papers/punktgruppen/Makefile.inc | 8 +- .../punktgruppen/figures/combine-symmetries.pdf | Bin 0 -> 14414 bytes buch/papers/punktgruppen/figures/lattice.pdf | Bin 0 -> 27886 bytes buch/papers/punktgruppen/figures/piezo-atoms.pdf | Bin 0 -> 35693 bytes buch/papers/punktgruppen/figures/piezo.pdf | Bin 0 -> 16865 bytes buch/papers/punktgruppen/figures/projections.pdf | Bin 0 -> 27953 bytes .../punktgruppen/tikz/combine-symmetries.tex | 56 +++++ buch/papers/punktgruppen/tikz/lattice.tex | 39 ++++ buch/papers/punktgruppen/tikz/piezo-atoms.tex | 121 ++++++++++ buch/papers/punktgruppen/tikz/piezo.tex | 71 ++++++ buch/papers/punktgruppen/tikz/projections.tex | 257 +++++++++++++++++++++ 12 files changed, 565 insertions(+), 4 deletions(-) create mode 100644 buch/papers/punktgruppen/figures/combine-symmetries.pdf create mode 100644 buch/papers/punktgruppen/figures/lattice.pdf create mode 100644 buch/papers/punktgruppen/figures/piezo-atoms.pdf create mode 100644 buch/papers/punktgruppen/figures/piezo.pdf create mode 100644 buch/papers/punktgruppen/figures/projections.pdf create mode 100644 buch/papers/punktgruppen/tikz/combine-symmetries.tex create mode 100644 buch/papers/punktgruppen/tikz/lattice.tex create mode 100644 buch/papers/punktgruppen/tikz/piezo-atoms.tex create mode 100644 buch/papers/punktgruppen/tikz/piezo.tex create mode 100644 buch/papers/punktgruppen/tikz/projections.tex (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/Makefile b/buch/papers/punktgruppen/Makefile index 0274594..15c0aa0 100644 --- a/buch/papers/punktgruppen/Makefile +++ b/buch/papers/punktgruppen/Makefile @@ -4,6 +4,19 @@ # (c) 2020 Prof Dr Andreas Mueller # -images: - @echo "no images to be created in punktgruppen" +TIKZFIGURES := \ + tikz/combine-symmetries.tex \ + tikz/lattice.tex \ + tikz/piezo-atoms.tex \ + tikz/piezo.tex \ + tikz/projections.tex + +FIGURES := $(patsubst tikz/%.tex, figures/%.pdf, $(TIKZFIGURES)) + +.PHONY: images +images: $(FIGURES) + +figures/%.pdf: tikz/%.tex + mkdir -p figures + pdflatex --output-directory=figures $< diff --git a/buch/papers/punktgruppen/Makefile.inc b/buch/papers/punktgruppen/Makefile.inc index b6a76c1..8cde9d7 100644 --- a/buch/papers/punktgruppen/Makefile.inc +++ b/buch/papers/punktgruppen/Makefile.inc @@ -10,5 +10,9 @@ dependencies-punktgruppen = \ papers/punktgruppen/symmetry.tex \ papers/punktgruppen/crystals.tex \ papers/punktgruppen/piezo.tex \ - papers/punktgruppen/references.bib - + papers/punktgruppen/references.bib \ + papers/punktgruppen/tikz/combine-symmetries.tex \ + papers/punktgruppen/tikz/lattice.tex \ + papers/punktgruppen/tikz/piezo-atoms.tex \ + papers/punktgruppen/tikz/piezo.tex \ + papers/punktgruppen/tikz/projections.tex diff --git a/buch/papers/punktgruppen/figures/combine-symmetries.pdf b/buch/papers/punktgruppen/figures/combine-symmetries.pdf new file mode 100644 index 0000000..13f7330 Binary files /dev/null and b/buch/papers/punktgruppen/figures/combine-symmetries.pdf differ diff --git a/buch/papers/punktgruppen/figures/lattice.pdf b/buch/papers/punktgruppen/figures/lattice.pdf new file mode 100644 index 0000000..6565be5 Binary files /dev/null and b/buch/papers/punktgruppen/figures/lattice.pdf differ diff --git a/buch/papers/punktgruppen/figures/piezo-atoms.pdf b/buch/papers/punktgruppen/figures/piezo-atoms.pdf new file mode 100644 index 0000000..63da7a9 Binary files /dev/null and b/buch/papers/punktgruppen/figures/piezo-atoms.pdf differ diff --git a/buch/papers/punktgruppen/figures/piezo.pdf b/buch/papers/punktgruppen/figures/piezo.pdf new file mode 100644 index 0000000..ca6192b Binary files /dev/null and b/buch/papers/punktgruppen/figures/piezo.pdf differ diff --git a/buch/papers/punktgruppen/figures/projections.pdf b/buch/papers/punktgruppen/figures/projections.pdf new file mode 100644 index 0000000..c9369b2 Binary files /dev/null and b/buch/papers/punktgruppen/figures/projections.pdf differ diff --git a/buch/papers/punktgruppen/tikz/combine-symmetries.tex b/buch/papers/punktgruppen/tikz/combine-symmetries.tex new file mode 100644 index 0000000..84e0a76 --- /dev/null +++ b/buch/papers/punktgruppen/tikz/combine-symmetries.tex @@ -0,0 +1,56 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} +\begin{tikzpicture}[ + dot/.style = { + draw, circle, thick, black, fill = gray!40!white, + minimum size = 2mm, + inner sep = 0pt, + outer sep = 1mm, + }, + ] + + \node[dot] (A1) at (0,0) {}; + \node[below left] at (A1) {\(A\)}; + + \node[dot] (A2) at (2.5,0) {}; + \node[below right] at (A2) {\(A'\)}; + + \draw[red!80!black, thick, ->] + (A1) to node[midway, below] {\(\vec{Q}\)} (A2); + + \node[dot] (B1) at (120:2.5) {}; + \node[above left] at (B1) {\(B\)}; + + \draw[green!70!black, thick, ->] + (A1) ++(.5,0) arc (0:120:.5) + node[midway, above, xshift=1mm] {\(C_n\)}; + \draw[red!80!black, dashed, thick, ->] (A1) to (B1); + + \node[dot] (B2) at ($(A2)+(60:2.5)$) {}; + \node[above right] at (B2) {\(B'\)}; + + \draw[green!70!black, thick, dashed, ->] + (A2) ++(-.5,0) arc (180:60:.5); + \draw[red!80!black, dashed, thick, ->] (A2) to (B2); + + \draw[yellow!50!orange, thick, ->] + (B1) to node[above, midway] {\(\vec{Q}'\)} (B2); + + \draw[gray, dashed, thick] (A1) to (A1 |- B1) node (Xl) {}; + \draw[gray, dashed, thick] (A2) to (A2 |- B2) node (Xr) {}; + \node[above left, xshift=-2mm] at (Xl) {\(x\)}; + \node[above right, xshift= 2mm] at (Xr) {\(x\)}; +\end{tikzpicture} +\end{document} diff --git a/buch/papers/punktgruppen/tikz/lattice.tex b/buch/papers/punktgruppen/tikz/lattice.tex new file mode 100644 index 0000000..9c05af3 --- /dev/null +++ b/buch/papers/punktgruppen/tikz/lattice.tex @@ -0,0 +1,39 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} +\begin{tikzpicture}[ + dot/.style = { + draw, circle, thick, black, fill = gray!40!white, + minimum size = 2mm, + inner sep = 0pt, + outer sep = 1mm, + }, + ] + + \begin{scope} + \clip (-2,-2) rectangle (3,4); + \foreach \y in {-7,-6,...,7} { + \foreach \x in {-7,-6,...,7} { + \node[dot, xshift=3mm*\y] (N\x\y) at (\x, \y) {}; + } + } + \end{scope} + \draw[black, thick] (-2, -2) rectangle (3,4); + + \draw[red!80!black, thick, ->] + (N00) to node[midway, below] {\(\vec{a}_1\)} (N10); + \draw[cyan!80!black, thick, ->] + (N00) to node[midway, left] {\(\vec{a}_2\)} (N01); +\end{tikzpicture} +\end{document} diff --git a/buch/papers/punktgruppen/tikz/piezo-atoms.tex b/buch/papers/punktgruppen/tikz/piezo-atoms.tex new file mode 100644 index 0000000..82a2710 --- /dev/null +++ b/buch/papers/punktgruppen/tikz/piezo-atoms.tex @@ -0,0 +1,121 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} + \begin{tikzpicture}[ + node distance = 2mm, + charge/.style = { + circle, draw = black, thick, + minimum size = 5mm + }, + positive/.style = { fill = red!50 }, + negative/.style = { fill = blue!50 }, + ] + + \node[font = {\large\bfseries}, align = center] (title) at (5.5,0) {Mit und Ohne\\ Symmetriezentrum}; + + \begin{scope} + \matrix[nodes = { charge }, row sep = 8mm, column sep = 8mm] { + \node[positive] {}; & \node[negative] (N) {}; & \node [positive] {}; \\ + \node[negative] (W) {}; & \node[positive] {}; & \node [negative] (E) {}; \\ + \node[positive] {}; & \node[negative] (S) {}; & \node [positive] {}; \\ + }; + \draw[gray, dashed] (W) to (N) to (E) to (S) to (W); + \end{scope} + + \begin{scope}[xshift=11cm] + \foreach \x/\t [count=\i] in {60/positive, 120/negative, 180/positive, 240/negative, 300/positive, 360/negative} { + \node[charge, \t] (C\i) at (\x:1.5cm) {}; + } + + \draw[black] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1); + \node[circle, draw=gray, fill=gray, outer sep = 0, inner sep = 0, minimum size = 3mm] {}; + % \draw[gray, dashed] (C2) to (C4) to (C6) to (C2); + \end{scope} + + %% + \node[below = of title] {Polarisation Feld \(\vec{E}_p\)}; + + %% hex with vertical pressure + \begin{scope}[xshift=11cm, yshift=-4.5cm] + \node[charge, positive, yshift=-2.5mm] (C1) at ( 60:1.5cm) {}; + \node[charge, negative, yshift=-2.5mm] (C2) at (120:1.5cm) {}; + \node[charge, positive, xshift=-2.5mm] (C3) at (180:1.5cm) {}; + \node[charge, negative, yshift= 2.5mm] (C4) at (240:1.5cm) {}; + \node[charge, positive, yshift= 2.5mm] (C5) at (300:1.5cm) {}; + \node[charge, negative, xshift= 2.5mm] (C6) at (360:1.5cm) {}; + + \draw[black] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1); + % \draw[gray, dashed] (C2) to (C4) to (C6) to (C2); + + \foreach \d in {C1, C2} { + \draw[orange, very thick, <-] (\d) to ++(0,.7); + } + + \foreach \d in {C4, C5} { + \draw[orange, very thick, <-] (\d) to ++(0,-.7); + } + + \node[black] (E) {\(\vec{E}_p\)}; + \begin{scope}[node distance = .5mm] + \node[red!50, right = of E] {\(+\)}; + \node[blue!50, left = of E] {\(-\)}; + \end{scope} + % \draw[gray, thick, dotted] (E) to ++(0,2); + % \draw[gray, thick, dotted] (E) to ++(0,-2); + \end{scope} + + %% square with vertical pressure + \begin{scope}[yshift=-4.5cm] + \matrix[nodes = { charge }, row sep = 5mm, column sep = 1cm] { + \node[positive] (NW) {}; & \node[negative] (N) {}; & \node [positive] (NE) {}; \\ + \node[negative] (W) {}; & \node[positive] {}; & \node [negative] (E) {}; \\ + \node[positive] (SW) {}; & \node[negative] (S) {}; & \node [positive] (SE) {}; \\ + }; + + \foreach \d in {NW, N, NE} { + \draw[orange, very thick, <-] (\d) to ++(0,.7); + } + + \foreach \d in {SW, S, SE} { + \draw[orange, very thick, <-] (\d) to ++(0,-.7); + } + + \draw[gray, dashed] (W) to (N) to (E) to (S) to (W); + \end{scope} + + %% hex with horizontal pressure + \begin{scope}[xshift=5.5cm, yshift=-4.5cm] + \node[charge, positive, yshift= 2.5mm] (C1) at ( 60:1.5cm) {}; + \node[charge, negative, yshift= 2.5mm] (C2) at (120:1.5cm) {}; + \node[charge, positive, xshift= 2.5mm] (C3) at (180:1.5cm) {}; + \node[charge, negative, yshift=-2.5mm] (C4) at (240:1.5cm) {}; + \node[charge, positive, yshift=-2.5mm] (C5) at (300:1.5cm) {}; + \node[charge, negative, xshift=-2.5mm] (C6) at (360:1.5cm) {}; + + \draw[black] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1); + % \draw[gray, dashed] (C2) to (C4) to (C6) to (C2); + + \draw[orange, very thick, <-] (C6) to ++(.7,0); + \draw[orange, very thick, <-] (C3) to ++(-.7,0); + + \node[black] (E) {\(\vec{E}_p\)}; + \begin{scope}[node distance = .5mm] + \node[blue!50, right = of E] {\(-\)}; + \node[red!50, left = of E] {\(+\)}; + \end{scope} + % \draw[gray, thick, dotted] (E) to ++(0,2); + % \draw[gray, thick, dotted] (E) to ++(0,-2); + \end{scope} + \end{tikzpicture} +\end{document} diff --git a/buch/papers/punktgruppen/tikz/piezo.tex b/buch/papers/punktgruppen/tikz/piezo.tex new file mode 100644 index 0000000..1d16ab7 --- /dev/null +++ b/buch/papers/punktgruppen/tikz/piezo.tex @@ -0,0 +1,71 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} +\begin{tikzpicture} + \begin{scope}[ + node distance = 0cm + ] + \node[ + rectangle, fill = gray!60!white, + minimum width = 3cm, minimum height = 2cm, + ] (body) {\(\vec{E}_p = \vec{0}\)}; + + \node[ + draw, rectangle, thick, black, fill = red!50, + minimum width = 3cm, minimum height = 1mm, + above = of body + ] (pos) {}; + + \node[ + draw, rectangle, thick, black, fill = blue!50, + minimum width = 3cm, minimum height = 1mm, + below = of body + ] (neg) {}; + + \draw[black, very thick, -Circle] (pos.east) to ++ (1,0) node (p) {}; + \draw[black, very thick, -Circle] (neg.east) to ++ (1,0) node (n) {}; + + \draw[black, thick, ->] (p) to[out = -70, in = 70] node[midway, right] {\(U = 0\)} (n); + \end{scope} + \begin{scope}[ + node distance = 0cm, + xshift = 7cm + ] + \node[ + rectangle, fill = gray!40!white, + minimum width = 3cm, minimum height = 1.5cm, + ] (body) {\(\vec{E}_p = \vec{0}\)}; + + \node[ + draw, rectangle, thick, black, fill = red!50, + minimum width = 3cm, minimum height = 1mm, + above = of body + ] (pos) {}; + + \node[ + draw, rectangle, thick, black, fill = blue!50, + minimum width = 3cm, minimum height = 1mm, + below = of body + ] (neg) {}; + + \draw[orange, very thick, <-] (pos.north) to node[near end, right] {\(\vec{F}\)} ++(0,1); + \draw[orange, very thick, <-] (neg.south) to node[near end, right] {\(\vec{F}\)} ++(0,-1); + + \draw[black, very thick, -Circle] (pos.east) to ++ (1,0) node (p) {}; + \draw[black, very thick, -Circle] (neg.east) to ++ (1,0) node (n) {}; + + \draw[black, thick, ->] (p) to[out = -70, in = 70] node[midway, right] {\(U > 0\)} (n); + \end{scope} +\end{tikzpicture} +\end{document} diff --git a/buch/papers/punktgruppen/tikz/projections.tex b/buch/papers/punktgruppen/tikz/projections.tex new file mode 100644 index 0000000..a763e77 --- /dev/null +++ b/buch/papers/punktgruppen/tikz/projections.tex @@ -0,0 +1,257 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} +\begin{tikzpicture}[ + classcirc/.style = { + draw = gray, thick, circle, + minimum size = 12mm, + inner sep = 0pt, outer sep = 0pt, + }, + classlabel/.style = { + below right = 5mm + }, + round/.style = { + draw = orange, thick, circle, + minimum size = 1mm, + inner sep = 0pt, outer sep = 0pt, + }, + cross/.style = { + cross out, draw = magenta, thick, + minimum size = 1mm, + inner sep = 0pt, outer sep = 0pt + }, + ] + \matrix [row sep = 3mm, column sep = 0mm] { + \node[classcirc] (C1) {} node[classlabel] {\(C_{1}\)}; & + \node[classcirc] (C2) {} node[classlabel] {\(C_{2}\)}; & + \node[classcirc] (C3) {} node[classlabel] {\(C_{3}\)}; & + \node[classcirc] (Ci) {} node[classlabel] {\(C_{i}\)}; & + + \node[classcirc] (Cs) {} node[classlabel] {\(C_{s}\)}; & + \node[classcirc] (C3i) {} node[classlabel] {\(C_{3i}\)}; & + \node[classcirc] (C2h) {} node[classlabel] {\(C_{2h}\)}; & + \node[classcirc] (D2) {} node[classlabel] {\(D_{2}\)}; \\ + + \node[classcirc] (D3d) {} node[classlabel] {\(D_{3d}\)}; & + \node[classcirc] (C2v) {} node[classlabel] {\(C_{2v}\)}; & + \node[classcirc] (D2h) {} node[classlabel] {\(D_{2h}\)}; & + \node[classcirc] (D3) {} node[classlabel] {\(D_{3}\)}; & + + \node[classcirc] (C4) {} node[classlabel] {\(C_{4}\)}; & + \node[classcirc] (C6) {} node[classlabel] {\(C_{6}\)}; & + \node[classcirc] (D3dP) {} node[classlabel] {\(D_{3d}\)}; & + \node[classcirc] (S4) {} node[classlabel] {\(S_{4}\)}; \\ + + \node[classcirc] (S3) {} node[classlabel] {\(S_{3}\)}; & + \node[classcirc, dashed] (T) {} node[classlabel] {\(T_{}\)}; & + \node[classcirc] (C4h) {} node[classlabel] {\(C_{4h}\)}; & + \node[classcirc] (C6h) {} node[classlabel] {\(C_{6h}\)}; & + + \node[classcirc, dashed] (Th) {} node[classlabel] {\(T_{h}\)}; & + \node[classcirc] (C4v) {} node[classlabel] {\(C_{4v}\)}; & + \node[classcirc] (C6v) {} node[classlabel] {\(C_{6v}\)}; & + \node[classcirc, dashed] (Td) {} node[classlabel] {\(T_{d}\)}; \\ + + \node[classcirc] (D2d) {} node[classlabel] {\(D_{2d}\)}; & + \node[classcirc] (D3h) {} node[classlabel] {\(D_{3h}\)}; & + \node[classcirc, dashed] (O) {} node[classlabel] {\(O_{}\)}; & + \node[classcirc] (D4) {} node[classlabel] {\(D_{4}\)}; & + + \node[classcirc] (D6) {} node[classlabel] {\(D_{6}\)}; & + \node[classcirc, dashed] (Oh) {} node[classlabel] {\(O_{h}\)}; & + \node[classcirc] (D4h) {} node[classlabel] {\(D_{4h}\)}; & + \node[classcirc] (D6h) {} node[classlabel] {\(D_{6h}\)}; \\ + }; + + + \node[cross] at ($(C1)+(4mm,0)$) {}; + + + \node[cross] at ($(C2)+(4mm,0)$) {}; + \node[cross] at ($(C2)-(4mm,0)$) {}; + + + \node[cross] at ($(C3)+( 0:4mm)$) {}; + \node[cross] at ($(C3)+(120:4mm)$) {}; + \node[cross] at ($(C3)+(240:4mm)$) {}; + + + \node[cross] at ($(Ci)+(4mm,0)$) {}; + \node[round] at ($(Ci)-(4mm,0)$) {}; + + + \node[cross] at ($(Cs)+(4mm,0)$) {}; + \node[round] at ($(Cs)+(4mm,0)$) {}; + + + \node[cross] at ($(C3i)+( 0:4mm)$) {}; + \node[cross] at ($(C3i)+(120:4mm)$) {}; + \node[cross] at ($(C3i)+(240:4mm)$) {}; + \node[round] at ($(C3i)+( 60:4mm)$) {}; + \node[round] at ($(C3i)+(180:4mm)$) {}; + \node[round] at ($(C3i)+(300:4mm)$) {}; + + + \node[cross] at ($(C2h)+(4mm,0)$) {}; + \node[cross] at ($(C2h)-(4mm,0)$) {}; + \node[round] at ($(C2h)+(4mm,0)$) {}; + \node[round] at ($(C2h)-(4mm,0)$) {}; + + + \node[cross] at ($(D2)+( 20:4mm)$) {}; + \node[cross] at ($(D2)+(200:4mm)$) {}; + \node[round] at ($(D2)+(160:4mm)$) {}; + \node[round] at ($(D2)+(340:4mm)$) {}; + + + \foreach \x in {0, 120, 240} { + \node[cross] at ($(D3d)+({\x+15}:4mm)$) {}; + \node[cross] at ($(D3d)+({\x-15}:4mm)$) {}; + } + + + \foreach \x in {0, 180} { + \node[cross] at ($(C2v)+({\x+15}:4mm)$) {}; + \node[cross] at ($(C2v)+({\x-15}:4mm)$) {}; + } + + + \foreach \x in {0, 180} { + \node[cross] at ($(D2h)+({\x+15}:4mm)$) {}; + \node[cross] at ($(D2h)+({\x-15}:4mm)$) {}; + \node[round] at ($(D2h)+({\x+15}:4mm)$) {}; + \node[round] at ($(D2h)+({\x-15}:4mm)$) {}; + } + + + \foreach \x in {0, 120, 240} { + \node[cross] at ($(D3)+({\x+15}:4mm)$) {}; + \node[round] at ($(D3)+({\x-15}:4mm)$) {}; + } + + + \foreach \x in {0, 90, 180, 270} { + \node[cross] at ($(C4)+(\x:4mm)$) {}; + } + + + \foreach \x in {0, 60, 120, 180, 240, 300} { + \node[cross] at ($(C6)+(\x:4mm)$) {}; + } + + + \foreach \x in {0, 120, 240} { + \node[cross] at ($(D3dP)+({\x+15}:4mm)$) {}; + \node[cross] at ($(D3dP)+({\x-15}:4mm)$) {}; + \node[round] at ($(D3dP)+({\x+15+60}:4mm)$) {}; + \node[round] at ($(D3dP)+({\x-15+60}:4mm)$) {}; + } + + + \node[cross] at ($(S4)+(4mm,0)$) {}; + \node[cross] at ($(S4)-(4mm,0)$) {}; + \node[round] at ($(S4)+(0,4mm)$) {}; + \node[round] at ($(S4)-(0,4mm)$) {}; + + + \foreach \x in {0, 120, 240} { + \node[cross] at ($(S3)+(\x:4mm)$) {}; + \node[round] at ($(S3)+(\x:4mm)$) {}; + } + + + %% TODO: T + + + \foreach \x in {0, 90, 180, 270} { + \node[cross] at ($(C4h)+(\x:4mm)$) {}; + \node[round] at ($(C4h)+(\x:4mm)$) {}; + } + + + \foreach \x in {0, 60, 120, 180, 240, 300} { + \node[cross] at ($(C6h)+(\x:4mm)$) {}; + \node[round] at ($(C6h)+(\x:4mm)$) {}; + } + + + %% TODO: Th + + + \foreach \x in {0, 90, 180, 270} { + \node[cross] at ($(C4v)+(\x+15:4mm)$) {}; + \node[cross] at ($(C4v)+(\x-15:4mm)$) {}; + } + + + + \foreach \x in {0, 60, 120, 180, 240, 300} { + \node[cross] at ($(C6v)+(\x+10:4mm)$) {}; + \node[cross] at ($(C6v)+(\x-10:4mm)$) {}; + } + + + %% TODO: Td + + + \foreach \x in {0, 180} { + \node[cross] at ($(D2d)+({\x+15}:4mm)$) {}; + \node[round] at ($(D2d)+({\x-15}:4mm)$) {}; + + \node[round] at ($(D2d)+({\x+15+90}:4mm)$) {}; + \node[cross] at ($(D2d)+({\x-15+90}:4mm)$) {}; + } + + + \foreach \x in {0, 120, 240} { + \node[cross] at ($(D3h)+({\x+15}:4mm)$) {}; + \node[cross] at ($(D3h)+({\x-15}:4mm)$) {}; + \node[round] at ($(D3h)+({\x+15}:4mm)$) {}; + \node[round] at ($(D3h)+({\x-15}:4mm)$) {}; + } + + + %% TODO: O + + + \foreach \x in {0, 90, 180, 270} { + \node[cross] at ($(D4)+({\x+15}:4mm)$) {}; + \node[round] at ($(D4)+({\x-15}:4mm)$) {}; + } + + \foreach \x in {0, 60, 120, 180, 240, 300} { + \node[cross] at ($(D6)+({\x+10}:4mm)$) {}; + \node[round] at ($(D6)+({\x-10}:4mm)$) {}; + } + + + % TODO Oh + + + \foreach \x in {0, 90, 180, 270} { + \node[cross] at ($(D4h)+(\x+15:4mm)$) {}; + \node[cross] at ($(D4h)+(\x-15:4mm)$) {}; + \node[round] at ($(D4h)+(\x+15:4mm)$) {}; + \node[round] at ($(D4h)+(\x-15:4mm)$) {}; + } + + + \foreach \x in {0, 60, 120, 180, 240, 300} { + \node[cross] at ($(D6h)+({\x+10}:4mm)$) {}; + \node[cross] at ($(D6h)+({\x-10}:4mm)$) {}; + \node[round] at ($(D6h)+({\x+10}:4mm)$) {}; + \node[round] at ($(D6h)+({\x-10}:4mm)$) {}; + } +\end{tikzpicture} +\end{document} -- cgit v1.2.1 From 8809b53a6448e5d54cc38ca4a688bd71f9c06301 Mon Sep 17 00:00:00 2001 From: tim30b Date: Sun, 4 Jul 2021 16:21:36 +0200 Subject: Write Intro --- buch/papers/punktgruppen/intro.tex | 20 ++++++++++++-------- buch/papers/punktgruppen/symmetry.tex | 2 +- 2 files changed, 13 insertions(+), 9 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/intro.tex b/buch/papers/punktgruppen/intro.tex index 10dea79..24212e7 100644 --- a/buch/papers/punktgruppen/intro.tex +++ b/buch/papers/punktgruppen/intro.tex @@ -1,10 +1,14 @@ \section{Einleitung} -Es gibt viele möglichkeiten sich in Kristallen zu verlieren. -Auch wen man nur die Mathematischen möglichkeiten in betracht zieht, hat man noch viel zu viele Möglichkeiten sich mit kristallen zu beschäftigen. -In diesem Articel ist daher der Fokus "nur" auf die Symmetrie gelegt. -Im Abschitt über Symmetrien werden wir sehen, wie eine Symmetrie eines Objektes weit -2.ter versuch: -Die Kristallographie ist ein grosses Thema, Symmetrien auch. -Für beide bestehen schon bewährte Mathematische Modelle und Definitionen. -Die +Es gibt viele Möglichkeiten sich in Kristallen zu verlieren. +Auch wen man nur die mathematischen Betrachtunngsweisen berüksichtigt, hat man noch viel zu viele Optionen sich mit Kristallen zu beschäftigen. +In diesem Kapitel ist daher der Fokus ``nur'' auf die Symmetrie gelegt. +Zu beginn werden wir zeigen was eine Symmetrie ausmacht und dass sie noch weit mehr in sich verbirgt als nur schön auszusehen. +Die vorgestellten Symmetrien sind äusserst gut geeignet um die Grundeigenschaften eines Kristalles zu Beschreiben. +Mit etwas kiffligen geometrischen Überlegungen kann man zeigen wass in der Welt der Kristallographie alles möglich ist oder nicht. +Die Einschränkungen sind durchaus wilkommen, dank ihnen halten sich die möglichen Kristallgitter in Grenzen und Lassen sich Kategorisieren. +Kategorien sind nicht nur für einen besseren Überblich nützlich, sondern kann man aus ihnen auch auf Physikalische Eigenschaften schliessen, als spannendes Beispiel: Die Piezoelektrizität. +Die Piezoelektrizität ist vielleicht noch nicht jedem bekannt, sie versteckt sich aber in diversen Altagsgegenständen zum Beispiel sorgen sie in den meisten Feuerzeugen für die Zündung. +Ein Funken Interesse ist hoffentlich geweckt um sich mit dem scheinbar trivialen thema der Symmetrie auseinander zu setzten. + + diff --git a/buch/papers/punktgruppen/symmetry.tex b/buch/papers/punktgruppen/symmetry.tex index a3ccbed..aa3f7fb 100644 --- a/buch/papers/punktgruppen/symmetry.tex +++ b/buch/papers/punktgruppen/symmetry.tex @@ -1,7 +1,7 @@ \section{Symmetrie} Das Wort Symmetrie ist sehr alt und hat sich seltsamerweise von seinem ursprünglichen griechischen Wort -\(\mathrm{\sigma\nu\mu\mu\varepsilon\tau\rho\iota\alpha}\) +\(\mathrm{\Sigma\nu\mu\mu\varepsilon\tau\rho\iota\alpha}\) \footnote{\emph{Simmetr\'ia}: ein gemeinsames Mass habend, gleichmässig, verhältnismässig} fast nicht verändert. In der Alltagssprache mag es ein locker definierter Begriff sein, aber in der Mathematik hat Symmetrie eine sehr -- cgit v1.2.1 From 115678917f285ef45928510f61fb8cd48c6a46b5 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sun, 4 Jul 2021 17:52:10 +0200 Subject: Create standalone make target for faster compilation It takes around 20s on linux and 45s in WSL to compile the book, which is a lot. The file `standalone.tex` is a skeleton that takes the minimum required from `book.tex` to compile only our paper. It is intended only for writing the draft. --- buch/papers/punktgruppen/.gitignore | 1 + buch/papers/punktgruppen/Makefile | 18 ++++++++++++++++++ buch/papers/punktgruppen/main.tex | 6 ++++-- buch/papers/punktgruppen/standalone.tex | 30 ++++++++++++++++++++++++++++++ 4 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 buch/papers/punktgruppen/.gitignore create mode 100644 buch/papers/punktgruppen/standalone.tex (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/.gitignore b/buch/papers/punktgruppen/.gitignore new file mode 100644 index 0000000..6827d9f --- /dev/null +++ b/buch/papers/punktgruppen/.gitignore @@ -0,0 +1 @@ +standalone diff --git a/buch/papers/punktgruppen/Makefile b/buch/papers/punktgruppen/Makefile index 15c0aa0..3960d76 100644 --- a/buch/papers/punktgruppen/Makefile +++ b/buch/papers/punktgruppen/Makefile @@ -3,6 +3,12 @@ # # (c) 2020 Prof Dr Andreas Mueller # +SOURCES := \ + crystals.tex \ + intro.tex \ + main.tex \ + piezo.tex \ + symmetry.tex TIKZFIGURES := \ tikz/combine-symmetries.tex \ @@ -20,3 +26,15 @@ figures/%.pdf: tikz/%.tex mkdir -p figures pdflatex --output-directory=figures $< +.PHONY: standalone +standalone: standalone.tex $(SOURCES) + mkdir -p standalone + cd ../..; \ + pdflatex \ + --halt-on-error \ + --shell-escape \ + --output-directory=papers/punktgruppen/standalone \ + papers/punktgruppen/standalone.tex; + cd standalone; \ + bibtex standalone; \ + makeindex standalone; diff --git a/buch/papers/punktgruppen/main.tex b/buch/papers/punktgruppen/main.tex index d88e221..31ed6a4 100644 --- a/buch/papers/punktgruppen/main.tex +++ b/buch/papers/punktgruppen/main.tex @@ -3,8 +3,10 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Crystal M\rotatebox[origin=c]{180}{a}th\label{chapter:punktgruppen}} -\lhead{Crystal M\rotatebox[origin=c]{180}{a}th} +\newcommand{\flippedA}{\raisebox{\fontcharht\font`a}{\scalebox{-1}[-1]{a}}} + +\chapter[Crystal Math]{Crystal M\flippedA{}th\label{chapter:punktgruppen}} +\lhead{Crystal M\flippedA{}th} \begin{refsection} \chapterauthor{Tim T\"onz, Naoki Pross} diff --git a/buch/papers/punktgruppen/standalone.tex b/buch/papers/punktgruppen/standalone.tex new file mode 100644 index 0000000..3317318 --- /dev/null +++ b/buch/papers/punktgruppen/standalone.tex @@ -0,0 +1,30 @@ +\documentclass{book} + +\input{common/packages.tex} + +% additional packages used by the individual papers, add a line for +% each paper +\input{papers/common/addpackages.tex} + +% workaround for biblatex bug +\makeatletter +\def\blx@maxline{77} +\makeatother +\addbibresource{chapters/references.bib} + +% Bibresources for each article +\input{papers/common/addbibresources.tex} + +% make sure the last index starts on an odd page +\AtEndDocument{\clearpage\ifodd\value{page}\else\null\clearpage\fi} +\makeindex + +%\pgfplotsset{compat=1.12} +\setlength{\headheight}{15pt} % fix headheight warning +\DeclareGraphicsRule{*}{mps}{*}{} + +\begin{document} + \input{common/macros.tex} + \def\chapterauthor#1{{\large #1}\bigskip\bigskip} + \input{papers/punktgruppen/main.tex} +\end{document} -- cgit v1.2.1 From 3db817e0a6575dea79c01906afad5460ef60006a Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Mon, 5 Jul 2021 13:42:45 +0200 Subject: Externalize tikzpicture in symmetry section --- buch/papers/punktgruppen/Makefile | 3 +- .../punktgruppen/figures/symmetric-shapes.pdf | Bin 0 -> 12790 bytes buch/papers/punktgruppen/symmetry.tex | 48 +---------------- buch/papers/punktgruppen/tikz/symmetric-shapes.tex | 59 +++++++++++++++++++++ 4 files changed, 63 insertions(+), 47 deletions(-) create mode 100644 buch/papers/punktgruppen/figures/symmetric-shapes.pdf create mode 100644 buch/papers/punktgruppen/tikz/symmetric-shapes.tex (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/Makefile b/buch/papers/punktgruppen/Makefile index 3960d76..f92dc95 100644 --- a/buch/papers/punktgruppen/Makefile +++ b/buch/papers/punktgruppen/Makefile @@ -15,7 +15,8 @@ TIKZFIGURES := \ tikz/lattice.tex \ tikz/piezo-atoms.tex \ tikz/piezo.tex \ - tikz/projections.tex + tikz/projections.tex \ + tikz/symmetric-shapes.tex FIGURES := $(patsubst tikz/%.tex, figures/%.pdf, $(TIKZFIGURES)) diff --git a/buch/papers/punktgruppen/figures/symmetric-shapes.pdf b/buch/papers/punktgruppen/figures/symmetric-shapes.pdf new file mode 100644 index 0000000..03a05ce Binary files /dev/null and b/buch/papers/punktgruppen/figures/symmetric-shapes.pdf differ diff --git a/buch/papers/punktgruppen/symmetry.tex b/buch/papers/punktgruppen/symmetry.tex index aa3f7fb..e173f8e 100644 --- a/buch/papers/punktgruppen/symmetry.tex +++ b/buch/papers/punktgruppen/symmetry.tex @@ -16,50 +16,7 @@ ist das Konzept der Symmetrie eigentlich viel allgemeiner. \begin{figure} \centering - \begin{tikzpicture}[ - node distance = 2cm, - shapetheme/.style = { - very thick, draw = black, fill = magenta!20!white, - minimum size = 2cm, - }, - line/.style = {thick, draw = darkgray}, - axis/.style = {line, dashed}, - dot/.style = { - circle, draw = darkgray, fill = darkgray, - minimum size = 1mm, inner sep = 0, outer sep = 0, - }, - ] - - \node[ - shapetheme, - rectangle - ] (R) {}; - \node[dot] at (R) {}; - \draw[axis] (R) ++(-1.5, 0) to ++(3, 0) node[right] {\(\sigma\)}; - - \node[ - shapetheme, - regular polygon, - regular polygon sides = 5, - right = of R, - ] (Ps) {}; - \node[dot] (P) at (Ps) {}; - \draw[line, dotted] (P) to ++(18:1.5); - \draw[line, dotted] (P) to ++(90:1.5); - \draw[line, ->] (P) ++(18:1.2) - arc (18:90:1.2) node[midway, above right] {\(r, 72^\circ\)}; - - \node[ - shapetheme, - circle, right = of P - ] (Cs) {}; - \node[dot] (C) at (Cs) {}; - \draw[line, dotted] (C) to ++(1.5,0); - \draw[line, dotted] (C) to ++(60:1.5); - \draw[line, ->] (C) ++(1.2,0) - arc (0:60:1.2) node[midway, above right] {\(r, \alpha\)}; - - \end{tikzpicture} + \includegraphics{papers/punktgruppen/figures/symmetric-shapes} \caption{ Beispiele für geometrisch symmetrische Formen. \label{fig:punktgruppen:geometry-example} @@ -91,8 +48,7 @@ Mit dem oben Gesagten können wir das \(n\)-Gon Beispiel formalisieren. Wenn wir \(r\) eine Drehung von \(2\pi/n\) sein lassen, gibt es eine wohlbekannte Symmetriegruppe \[ C_n = \langle r \rangle - = \left\{\mathds{1}, r, r^2, \ldots, r^{n-1}\right\}, -\] + = \left\{\mathds{1}, r, r^2, \ldots, r^{n-1}\right\}, \] die zyklische Gruppe heisst. Hier die Potenzen von \(r\) sind als wiederholte Komposition gemeint, d.h. \(r^n = r\circ r \circ \cdots r\circ r\). Die Schreibweise mit den spitzen Klammern wird als Erzeugendensystem bezeichnet. diff --git a/buch/papers/punktgruppen/tikz/symmetric-shapes.tex b/buch/papers/punktgruppen/tikz/symmetric-shapes.tex new file mode 100644 index 0000000..b2c051f --- /dev/null +++ b/buch/papers/punktgruppen/tikz/symmetric-shapes.tex @@ -0,0 +1,59 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{shapes.geometric} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} + \begin{tikzpicture}[ + node distance = 2cm, + shapetheme/.style = { + very thick, draw = black, fill = magenta!20!white, + minimum size = 2cm, + }, + line/.style = {thick, draw = darkgray}, + axis/.style = {line, dashed}, + dot/.style = { + circle, draw = darkgray, fill = darkgray, + minimum size = 1mm, inner sep = 0, outer sep = 0, + }, + ] + + \node[ + shapetheme, rectangle + ] (R) {}; + \node[dot] at (R) {}; + \draw[axis] (R) ++(-1.5, 0) to ++(3, 0) node[right] {\(\sigma\)}; + + \node[ + shapetheme, + regular polygon, + regular polygon sides = 5, + right = of R, + ] (Ps) {}; + \node[dot] (P) at (Ps) {}; + \draw[line, dotted] (P) to ++(18:1.5); + \draw[line, dotted] (P) to ++(90:1.5); + \draw[line, ->] (P) ++(18:1.2) + arc (18:90:1.2) node[midway, above right] {\(r, 72^\circ\)}; + + \node[ + shapetheme, + circle, right = of P + ] (Cs) {}; + \node[dot] (C) at (Cs) {}; + \draw[line, dotted] (C) to ++(1.5,0); + \draw[line, dotted] (C) to ++(60:1.5); + \draw[line, ->] (C) ++(1.2,0) + arc (0:60:1.2) node[midway, above right] {\(r, \alpha\)}; + + \end{tikzpicture} +\end{document} -- cgit v1.2.1 From 5c4dfbcdd88224d7565d8ed4a4ecb1d480486e4d Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Mon, 5 Jul 2021 17:27:43 +0200 Subject: Write about generators --- buch/papers/punktgruppen/symmetry.tex | 46 +++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 16 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/symmetry.tex b/buch/papers/punktgruppen/symmetry.tex index e173f8e..683c8e6 100644 --- a/buch/papers/punktgruppen/symmetry.tex +++ b/buch/papers/punktgruppen/symmetry.tex @@ -2,7 +2,7 @@ Das Wort Symmetrie ist sehr alt und hat sich seltsamerweise von seinem ursprünglichen griechischen Wort \(\mathrm{\Sigma\nu\mu\mu\varepsilon\tau\rho\iota\alpha}\) -\footnote{\emph{Simmetr\'ia}: ein gemeinsames Mass habend, gleichmässig, +\footnote{\emph{Symmetr\'ia}: ein gemeinsames Mass habend, gleichmässig, verhältnismässig} fast nicht verändert. In der Alltagssprache mag es ein locker definierter Begriff sein, aber in der Mathematik hat Symmetrie eine sehr präzise Bedeutung. @@ -44,18 +44,38 @@ nun eingeführt wird. Komposition eine Gruppe, die Symmetriegruppe genannt wird. \end{definition} -Mit dem oben Gesagten können wir das \(n\)-Gon Beispiel formalisieren. Wenn wir -\(r\) eine Drehung von \(2\pi/n\) sein lassen, gibt es eine wohlbekannte Symmetriegruppe +\begin{definition}[Zyklische Untergruppe, Erzeuger] + Sei \(g\) ein Element einer Symmetriegruppe \(G\). Alle möglichen + Kompositionen von \(g\) und \(g^{-1}\) bilden eine sogenannte zyklische + Untergruppe von \(G\), und \(g\) wird ihr Erzeuger genannt. Die erzeugte + Untergruppe \(\langle g \rangle\) wird mit spitzen Klammern um den Erzeuger + bezeichnet. +\end{definition} + +Mit dem oben Gesagten können wir das \(n\)-Gon Beispiel formalisieren. +Bezeichnen wir mit \(r\) eine Drehung im Gegenuhrzeigersinn von \(360^\circ/n\) +um einen Punkt. Diese Definition reicht aus, um die gesamte Symmetriegruppe \[ C_n = \langle r \rangle - = \left\{\mathds{1}, r, r^2, \ldots, r^{n-1}\right\}, \] -die zyklische Gruppe heisst. Hier die Potenzen von \(r\) sind als wiederholte -Komposition gemeint, d.h. \(r^n = r\circ r \circ \cdots r\circ r\). Die -Schreibweise mit den spitzen Klammern wird als Erzeugendensystem bezeichnet. -Das liegt daran, dass alle Elemente der Symmetriegruppe aus Kombinationen einer -Teilmenge erzeugt werden, die als erzeugende Elemente bezeichnet werden. + = \left\{\mathds{1}, r, r^2, \ldots, r^{n-1}\right\} +\] +der Drehungen eines \(n\)-Gons zu definieren. Das liegt daran, +dass wir durch die mehrfache Verwendung von \(r\) jeden Winkel erzeugen, der +die Rotationssymmetrie bewahrt. Hier die Potenzen von \(r\) sind als +wiederholte Komposition gemeint, dass heisst \(r^n = r\circ r \circ \cdots +r\circ r\). Wenn wir diese Idee nun erweitern, können wir mit einem +Erzeugendensystemen komplexere Strukturen aufbauen. -% TODO: more on generators +\begin{definition}[Erzeugendensysteme] + % please fix this unreadable mess + Jede Gruppe kann durch eines oder mehrere ihrer Elemente generiert werden. + Wir lassen \(g_1, g_2, \ldots, g_n\) erzeugenden Elemente einer + Symmetriegruppe sein. Da es mehrere Erzeuger gibt, müssen auch die + sogenannte Definitionsgleichungen gegeben werden, die die + Multiplikationstabelle vollständig definieren. Die Gleichungen sind ebenfalls + in den Klammern angegeben. Die erzeugende Elementen zusammen mit der + Definitionsgleichungen bauen ein Erzeugendensysteme. +\end{definition} Die Reflexionssymmetriegruppe ist nicht so interessant, da sie nur \(\left\{\mathds{1}, \sigma\right\}\) enthält. Kombiniert man sie jedoch mit @@ -66,12 +86,6 @@ der Rotation, erhält man die so genannte Diedergruppe \mathds{1}, r, \ldots, r^{n-1}, \sigma, \sigma r, \ldots, \sigma r^{n-1} \right\}. \] -Diesmal muss die Generator-Notation die Beziehungen zwischen den beiden -Operationen beinhalten. - -% TODO -% Die ersten beiden sind leicht zu erkennen, für die -% letzte empfehlen wir, sie an einem 2D-Quadrat auszuprobieren. Die Symmetrieoperationen, die wir bis jetzt besprochen haben, haben immer mindestens einen Punkt gehabt, der wieder auf sich selbst abgebildet wird. Im -- cgit v1.2.1 From 8cf667a6ede8589baf56e223a8583472ccff9756 Mon Sep 17 00:00:00 2001 From: tim30b Date: Mon, 5 Jul 2021 17:35:35 +0200 Subject: write Translationssymmetry --- buch/papers/punktgruppen/crystals.tex | 36 ++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index 6de2bca..fd0ba13 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -6,11 +6,33 @@ Die Innereien eines Kristalles sind glücklicherweise relativ einfach definiert. Ein Kristall besteht aus Atomen, welche sich in einem Muster arrangieren, welches sich in drei Dimensionen periodisch wiederholt. \end{definition} +\begin{figure} + \centering + \includegraphics[]{papers/punktgruppen/figures/lattice} + \caption{ + Zweidimensionales Kristallgitter + \label{fig:punktgruppen:lattice} + } +\end{figure} -Ein Zweidimensionales Beispiel eines solchen Muster ist Abbildung \ref{fig:punktgruppen:lattce-grid}. -Für die Überschaubarkeit haben wir ein simples Muster eines einzelnen XgrauenX Punktes gewählt in nur Zwei Dimensionen. -Die eingezeichneten Vektoren a und b sind die kleinstmöglichen Schritte im Raum bis sich das Kristallgitter wiederholt. -Dadurch können von einem einzelnen XGrauenX Gitterpunkt in \ref{fig:punktgruppen:lattce-grid} können mit einer ganzzahligen Linearkombination von a und b alle anderen Gitterpunkte des Kristalles erreicht werden. -Ein Kristallgitter kann eindeutig mit a und b und deren winkeln beschrieben werden weswegen a und b auch Gitterparameter genannt werden. -Im Dreidimensionalen-Raum können alle Gitterpunkte mit derselben Idee und einem zusätzlichen Vektor also FRMEL FÜR TRANSLATIONSVEKTOR erreicht werden. -Da sich das Ganze Kristallgitter wiederholt, wiederholen sich auch die Eigenschaften eines Gitterpunktes Periodisch mit eiem +Ein zweidimensionales Beispiel eines solchen Muster ist Abbildung \ref{fig:punktgruppen:lattice}. +Für die Überschaubarkeit haben wir ein simples Motiv eines einzelnen grauen Punktes gewählt in nur Zwei Dimensionen. +Die eingezeichneten Vektoren $\vec{a}$ und $\vec{b}$ sind die kleinstmöglichen Schritte im Raum bis sich das Kristallgitter wiederholt. +Wird ein beliebigen grauen Gitterpunkt in \ref{fig:punktgruppen:lattice} gewählt und um eine ganzzahlige Linearkombination von $\vec{a}$ und $\vec{b}$ verschoben, endet er zwangsweise auf einem Gitterpunkt, wenn nicht wieder am selben Ort. +Im Dreidimensionalen-Raum können alle Gitterpunkte mit derselben Idee und einem zusätzlichen Vektor $\vec{c}$ also +\[ + \vec{r} = n_1 \vec{a} + n_2 \vec{b} + n_3 \vec{c} +\] +erreicht werden sofern $\{n_1,n_2,n_3\} \in \mathbb{Z}$ sind. +Sind die Vektoren $\vec{a}$ , $\vec{b}$ , $\vec{c}$ gegeben , ist ein Kristallgitter eindeutig beschrieben, weswegen sie auch als Grundvektoren bekannt sind. + +\subsection{Translationssymmetrie} +Da sich das ganze Kristallgitter wiederholt, wiederholen sich auch dessen Eigenschaften periodisch mit den Grundvektoren. +Sollte man sich auf einem Gitterpunkt in einem Kristall aufhalten, ist es unmöglich zu wissen, auf welchem Gitterpunkt man sich befindet, da die Umgebungen aller Punkte Identisch sind. +Mit anderen worten: Das Kristallgitter $ G $ ist \emph{Translationssymmetrisch} in der Translation +\[ + Q_i(G) = G + \vec{a_i} +\] wobei der Vektor $a_i$ ein Grundvektor sein muss. +Da die Translationssymmetrie beliebig oft mit allen Grundvektoren angewendet werden kann, können wir auch sagen, dass alle Verschiebungen um eine Linearkombination der Vektoren $\vec{a}$ , $\vec{b}$ und $\vec{c}$ erlaubt sind oder kurz, um $\vec{r}$. +Verschiebungen um $\vec{r}$ bewirken demnach keine Veränderungen, solange wir ein unendlich grosses Kristallgitter verschieben. + -- cgit v1.2.1 From 95c75ecd68ad6c741d5aa99b4948f6b5ed3a96f3 Mon Sep 17 00:00:00 2001 From: tim30b Date: Tue, 6 Jul 2021 11:33:46 +0200 Subject: Beginn writing Lilmitierte Kristallsymmetrien --- buch/papers/punktgruppen/crystals.tex | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index fd0ba13..9c8f6b9 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -14,11 +14,11 @@ Die Innereien eines Kristalles sind glücklicherweise relativ einfach definiert. \label{fig:punktgruppen:lattice} } \end{figure} - +\subsection{Kristallgitter} Ein zweidimensionales Beispiel eines solchen Muster ist Abbildung \ref{fig:punktgruppen:lattice}. -Für die Überschaubarkeit haben wir ein simples Motiv eines einzelnen grauen Punktes gewählt in nur Zwei Dimensionen. +Für die Überschaubarkeit haben wir ein simples Motiv eines einzelnen grauen Punktes gewählt und betrachten dies nur in Zwei Dimensionen. Die eingezeichneten Vektoren $\vec{a}$ und $\vec{b}$ sind die kleinstmöglichen Schritte im Raum bis sich das Kristallgitter wiederholt. -Wird ein beliebigen grauen Gitterpunkt in \ref{fig:punktgruppen:lattice} gewählt und um eine ganzzahlige Linearkombination von $\vec{a}$ und $\vec{b}$ verschoben, endet er zwangsweise auf einem Gitterpunkt, wenn nicht wieder am selben Ort. +Wird ein beliebiger grauer Gitterpunkt in \ref{fig:punktgruppen:lattice} gewählt und um eine ganzzahlige Linearkombination von $\vec{a}$ und $\vec{b}$ verschoben, endet er zwangsweise auf einem Gitterpunkt, wenn nicht wieder am selben Ort. Im Dreidimensionalen-Raum können alle Gitterpunkte mit derselben Idee und einem zusätzlichen Vektor $\vec{c}$ also \[ \vec{r} = n_1 \vec{a} + n_2 \vec{b} + n_3 \vec{c} @@ -35,4 +35,8 @@ Mit anderen worten: Das Kristallgitter $ G $ ist \emph{Translationssymmetrisch} \] wobei der Vektor $a_i$ ein Grundvektor sein muss. Da die Translationssymmetrie beliebig oft mit allen Grundvektoren angewendet werden kann, können wir auch sagen, dass alle Verschiebungen um eine Linearkombination der Vektoren $\vec{a}$ , $\vec{b}$ und $\vec{c}$ erlaubt sind oder kurz, um $\vec{r}$. Verschiebungen um $\vec{r}$ bewirken demnach keine Veränderungen, solange wir ein unendlich grosses Kristallgitter verschieben. - + +\subsection{Limitierte Kristallsymmetrien} + Die Translationssymmetrie ist wohl keine grosse Überraschung, wenn man die Abbildung \ref{fig:punktgruppen:lattice} betrachtet. + Was nicht direkt ersichtlich ist, ist das auch wenn die Grundvektoren frei gewählt werden, können nur Rotationssymmetrische Kristalle erzeugt werden mit Winkel $\alpha \in \{ 0^\circ, 60^\circ, 90^\circ, 120^\circ, 180^\circ\}$. + -- cgit v1.2.1 From 3255155e9fdeb5ae8429656dce0a790126d1347d Mon Sep 17 00:00:00 2001 From: tim30b Date: Tue, 6 Jul 2021 11:56:52 +0200 Subject: add suggestions for continuity --- buch/papers/punktgruppen/symmetry.tex | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/symmetry.tex b/buch/papers/punktgruppen/symmetry.tex index 683c8e6..a2c36e8 100644 --- a/buch/papers/punktgruppen/symmetry.tex +++ b/buch/papers/punktgruppen/symmetry.tex @@ -26,8 +26,8 @@ ist das Konzept der Symmetrie eigentlich viel allgemeiner. \subsection{Geometrische Symmetrien} In Abbildung \ref{fig:punktgruppen:geometry-example} haben wir einige Formen, -die offensichtlich symmetrisch sind. Zum Beispiel hat das Quadrat Gerade, an -deren gespiegelt werden kann, ohne sein Aussehen zu verändern. Regelmässige +die offensichtlich symmetrisch sind. Zum Beispiel hat das Quadrat eine Gerade, an +deren es gespiegelt werden kann, ohne sein Aussehen zu verändern. Regelmässige Polygone mit \(n\) Seiten sind auch gute Beispiele, um eine diskrete Rotationssymmetrie zu veranschaulichen, was bedeutet, dass eine Drehung um einen Punkt um einen bestimmten Winkel \(360^\circ/n\) die Figur unverändert @@ -37,13 +37,21 @@ Rotationssymmetrie. Sie wird so genannt, weil es unendlich viele Werte für hoffentlich ausreichend, um die Bedeutung hinter der Notation zu verstehen, die nun eingeführt wird. +% Vieleicht eine kurze Einführung in für die Definition, ich habe das gefühl, dass in der Definition die Symmetrie-Operation und die Gruppe auf einmal erklährt wird +\subsubsection{Symetriegruppe} + Ein Objekt kann mehr als nur eine Symmetrie aufweisen. + Als Beispiel, kann das Quadrat in Abbildung \ref{fig:punktgruppen:geometry-example} + nicht nur um $\sigma$ sondern auch Diagonal gespiegelt werden oder um $90^\circ$ gedreht werden. + Fässt man die möglichen Symmetrien zusammen, entsteht eine Symmetriegruppe. + \begin{definition}[Symmetriegruppe] Sei \(g\) eine Operation, die ein mathematisches Objekt unverändert lässt. Bei einer anderen Operation \(h\) definieren wir die Komposition \(h\circ g\) als die Anwendung der Operationen nacheinander. Alle Operationen bilden unter Komposition eine Gruppe, die Symmetriegruppe genannt wird. -\end{definition} +\end{definition} % ich lese diese Definition ein wenig holprig, vieleicht können wir sie zusammen anschauen +% Nach meinem Geschmack könne es hier auch eine einleitung wie mein Beispiel geben dammit man den Text flüssiger lesen kann \begin{definition}[Zyklische Untergruppe, Erzeuger] Sei \(g\) ein Element einer Symmetriegruppe \(G\). Alle möglichen Kompositionen von \(g\) und \(g^{-1}\) bilden eine sogenannte zyklische -- cgit v1.2.1 From ef4c8a9c83e0663e103d46557a7845b0e6258dfb Mon Sep 17 00:00:00 2001 From: tim30b Date: Tue, 6 Jul 2021 21:18:18 +0200 Subject: describe the geometry lattice --- buch/papers/punktgruppen/crystals.tex | 56 ++++++++++++++++++++++++++++++----- 1 file changed, 48 insertions(+), 8 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index 9c8f6b9..f8bd9b3 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -18,25 +18,65 @@ Die Innereien eines Kristalles sind glücklicherweise relativ einfach definiert. Ein zweidimensionales Beispiel eines solchen Muster ist Abbildung \ref{fig:punktgruppen:lattice}. Für die Überschaubarkeit haben wir ein simples Motiv eines einzelnen grauen Punktes gewählt und betrachten dies nur in Zwei Dimensionen. Die eingezeichneten Vektoren $\vec{a}$ und $\vec{b}$ sind die kleinstmöglichen Schritte im Raum bis sich das Kristallgitter wiederholt. -Wird ein beliebiger grauer Gitterpunkt in \ref{fig:punktgruppen:lattice} gewählt und um eine ganzzahlige Linearkombination von $\vec{a}$ und $\vec{b}$ verschoben, endet er zwangsweise auf einem Gitterpunkt, wenn nicht wieder am selben Ort. +Wird ein beliebiger grauer Gitterpunkt in \ref{fig:punktgruppen:lattice} gewählt +und um eine ganzzahlige Linearkombination von $\vec{a}$ und $\vec{b}$ verschoben, endet er zwangsweise auf einem Gitterpunkt, wenn nicht wieder am selben Ort. Im Dreidimensionalen-Raum können alle Gitterpunkte mit derselben Idee und einem zusätzlichen Vektor $\vec{c}$ also \[ - \vec{r} = n_1 \vec{a} + n_2 \vec{b} + n_3 \vec{c} + \vec{r} = n_1 \vec{a} + n_2 \vec{b} + n_3 \vec{c} %maby Problem weil n bei $C_n$ auch verwendet wird \] erreicht werden sofern $\{n_1,n_2,n_3\} \in \mathbb{Z}$ sind. -Sind die Vektoren $\vec{a}$ , $\vec{b}$ , $\vec{c}$ gegeben , ist ein Kristallgitter eindeutig beschrieben, weswegen sie auch als Grundvektoren bekannt sind. +Sind die Vektoren $\vec{a}$ , $\vec{b}$ , $\vec{c}$ gegeben , +ist ein Kristallgitter eindeutig beschrieben, weswegen sie auch als Grundvektoren bekannt sind. \subsection{Translationssymmetrie} Da sich das ganze Kristallgitter wiederholt, wiederholen sich auch dessen Eigenschaften periodisch mit den Grundvektoren. -Sollte man sich auf einem Gitterpunkt in einem Kristall aufhalten, ist es unmöglich zu wissen, auf welchem Gitterpunkt man sich befindet, da die Umgebungen aller Punkte Identisch sind. -Mit anderen worten: Das Kristallgitter $ G $ ist \emph{Translationssymmetrisch} in der Translation +Sollte man sich auf einem Gitterpunkt in einem Kristall aufhalten, ist es unmöglich zu wissen, auf welchem Gitterpunkt man sich befindet, +da die Umgebungen aller Punkte Identisch sind. +Mit anderen worten: Jedes Kristallgitter $ G $ ist \emph{Translationssymmetrisch} in der Translation \[ Q_i(G) = G + \vec{a_i} \] wobei der Vektor $a_i$ ein Grundvektor sein muss. -Da die Translationssymmetrie beliebig oft mit allen Grundvektoren angewendet werden kann, können wir auch sagen, dass alle Verschiebungen um eine Linearkombination der Vektoren $\vec{a}$ , $\vec{b}$ und $\vec{c}$ erlaubt sind oder kurz, um $\vec{r}$. -Verschiebungen um $\vec{r}$ bewirken demnach keine Veränderungen, solange wir ein unendlich grosses Kristallgitter verschieben. +Da die Translationssymmetrie beliebig oft mit allen Grundvektoren angewendet werden kann, +können wir auch sagen, dass alle Verschiebungen um eine Linearkombination +der Vektoren $\vec{a}$ , $\vec{b}$ und $\vec{c}$ erlaubt sind oder kurz, um $\vec{r}$. +Verschiebungen um $\vec{r}$ bewirken demnach keine Veränderungen, +solange wir ein unendlich grosses Kristallgitter verschieben. \subsection{Limitierte Kristallsymmetrien} Die Translationssymmetrie ist wohl keine grosse Überraschung, wenn man die Abbildung \ref{fig:punktgruppen:lattice} betrachtet. - Was nicht direkt ersichtlich ist, ist das auch wenn die Grundvektoren frei gewählt werden, können nur Rotationssymmetrische Kristalle erzeugt werden mit Winkel $\alpha \in \{ 0^\circ, 60^\circ, 90^\circ, 120^\circ, 180^\circ\}$. + Was nicht direkt ersichtlich ist, ist das auch wenn die Grundvektoren frei gewählt werden können, + können nur Kristalle erzeugt werden mit Rotationssymmetrien mit Winkel $\alpha \in \{ 0^\circ, 60^\circ, 90^\circ, 120^\circ, 180^\circ\}$. +\begin{figure} + \centering + \includegraphics[]{papers/punktgruppen/figures/combine-symmetries} + \caption{Translations und Rotationssymmetrisches Kristallgitter} + \label{fig:punktgruppen:rot-geometry} +\end{figure} + + \subsubsection{Translationssymmetrie $Q$ und Rotationssymmetrie $C_\alpha$} % Müssen uns auf eine schreibweise für Symmetrie Operationen einigen oder sicher am Ende überprüfen + In Abbildung \ref{fig:punktgruppen:rot-geometry} Sehen wir Gitterpunkte und deren Zusammenhänge. + + \begin{itemize} + \item $A$ ist unser erster Gitterpunkt. + + \item $A'$ ist gegeben, weil wir $A$ mit der Translation $Q$ verschieben und wir wissen, + dass nach einer Translation wieder ein Gitterpunkt an der Verschobenen Stelle sein muss. + \item $B$ entsteht, weil wir die Rotationssymmetrie $C_\alpha$ auf den Punkt $A$ anwenden. + Dadurch dreht sich das ganze Gitter um den Winkel $\alpha$. + Für uns bedeutet dies lediglich, dass unser zweiter Punkt $A'$ abgedreht wird. + An der neuen Position von $A'$ muss also auch ein Punkt sein um die Rotationssymmetrie zu erfüllen. + \item $B$ ist unser Name für diesen neuen Punkt. + Da auch die Eigenschaften des Kristallgitter periodisch mit dem Gitter sein müssen, dürfen wir $C_\alpha$ auch auf $A'$ anwenden. + Also wenden wir $C_\alpha$ invertiert + \footnote{Die Rotationssymmetrie muss auch iin die andere Richtung funktionieren. + Genauere Überlegungen werden dem Leser überlassen, da die Autoren sich nicht explizit mit dieser Frage Auseinander gesetzt haben.} + auch auf $A'$ an. + Dies dreht $A$ auf einen neuen Punkt. + \item $B'$ ist kein zufälliger Name für diesen neuen Punkt, denn wir wissen, dass zwischen allen Punkten eine Translationssymmetrie bestehen muss. + Die Translationssymmetrie zwischen $B$ und $B'$ ist hier als $Q'$ bezeichnet. + \end{itemize} + + + +%"beweis", das Rotationssymmetrien auch immer invers gehen? \ No newline at end of file -- cgit v1.2.1 From 388ac18afd8b05321414afeab183ba2bbe414de5 Mon Sep 17 00:00:00 2001 From: tim30b Date: Wed, 7 Jul 2021 09:52:46 +0200 Subject: Finished 1.Version Kristalle --- buch/papers/punktgruppen/crystals.tex | 59 +++++++++++++++++++++++++++++------ 1 file changed, 50 insertions(+), 9 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index f8bd9b3..ca1bfc3 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -19,10 +19,11 @@ Ein zweidimensionales Beispiel eines solchen Muster ist Abbildung \ref{fig:punkt Für die Überschaubarkeit haben wir ein simples Motiv eines einzelnen grauen Punktes gewählt und betrachten dies nur in Zwei Dimensionen. Die eingezeichneten Vektoren $\vec{a}$ und $\vec{b}$ sind die kleinstmöglichen Schritte im Raum bis sich das Kristallgitter wiederholt. Wird ein beliebiger grauer Gitterpunkt in \ref{fig:punktgruppen:lattice} gewählt -und um eine ganzzahlige Linearkombination von $\vec{a}$ und $\vec{b}$ verschoben, endet er zwangsweise auf einem Gitterpunkt, wenn nicht wieder am selben Ort. +und um eine ganzzahlige Linearkombination von $\vec{a}$ und $\vec{b}$ verschoben, +endet er zwangsweise auf einem Gitterpunkt, wenn nicht wieder am selben Ort. Im Dreidimensionalen-Raum können alle Gitterpunkte mit derselben Idee und einem zusätzlichen Vektor $\vec{c}$ also \[ - \vec{r} = n_1 \vec{a} + n_2 \vec{b} + n_3 \vec{c} %maby Problem weil n bei $C_n$ auch verwendet wird + \vec{r} = n_1 \vec{a} + n_2 \vec{b} + n_3 \vec{c} \] erreicht werden sofern $\{n_1,n_2,n_3\} \in \mathbb{Z}$ sind. Sind die Vektoren $\vec{a}$ , $\vec{b}$ , $\vec{c}$ gegeben , @@ -45,7 +46,7 @@ solange wir ein unendlich grosses Kristallgitter verschieben. \subsection{Limitierte Kristallsymmetrien} Die Translationssymmetrie ist wohl keine grosse Überraschung, wenn man die Abbildung \ref{fig:punktgruppen:lattice} betrachtet. Was nicht direkt ersichtlich ist, ist das auch wenn die Grundvektoren frei gewählt werden können, - können nur Kristalle erzeugt werden mit Rotationssymmetrien mit Winkel $\alpha \in \{ 0^\circ, 60^\circ, 90^\circ, 120^\circ, 180^\circ\}$. + können nur Kristalle erzeugt werden mit Rotationssymmetrien mit Winkel $\alpha \in \left\{ 0^\circ, 60^\circ, 90^\circ, 120^\circ, 180^\circ\right\}$. %format error!!! \begin{figure} \centering @@ -54,13 +55,13 @@ solange wir ein unendlich grosses Kristallgitter verschieben. \label{fig:punktgruppen:rot-geometry} \end{figure} - \subsubsection{Translationssymmetrie $Q$ und Rotationssymmetrie $C_\alpha$} % Müssen uns auf eine schreibweise für Symmetrie Operationen einigen oder sicher am Ende überprüfen + \subsubsection{Translationssymmetrie $Q$ in Kombination mit Rotationssymmetrie $C_\alpha$} % Müssen uns auf eine schreibweise für Symmetrie Operationen einigen oder sicher am Ende überprüfen In Abbildung \ref{fig:punktgruppen:rot-geometry} Sehen wir Gitterpunkte und deren Zusammenhänge. \begin{itemize} \item $A$ ist unser erster Gitterpunkt. - \item $A'$ ist gegeben, weil wir $A$ mit der Translation $Q$ verschieben und wir wissen, + \item $A'$ ist gegeben, weil wir $A$ mit der Translation $Q$ um einen Grundvektor verschieben und wir wissen, dass nach einer Translation wieder ein Gitterpunkt an der Verschobenen Stelle sein muss. \item $B$ entsteht, weil wir die Rotationssymmetrie $C_\alpha$ auf den Punkt $A$ anwenden. Dadurch dreht sich das ganze Gitter um den Winkel $\alpha$. @@ -69,14 +70,54 @@ solange wir ein unendlich grosses Kristallgitter verschieben. \item $B$ ist unser Name für diesen neuen Punkt. Da auch die Eigenschaften des Kristallgitter periodisch mit dem Gitter sein müssen, dürfen wir $C_\alpha$ auch auf $A'$ anwenden. Also wenden wir $C_\alpha$ invertiert - \footnote{Die Rotationssymmetrie muss auch iin die andere Richtung funktionieren. - Genauere Überlegungen werden dem Leser überlassen, da die Autoren sich nicht explizit mit dieser Frage Auseinander gesetzt haben.} + \footnote{Eine Rotationssymmetrie muss auch in die inverse Richtung funktionieren. + Genauere Überlegungen hierzu werden dem Leser überlassen, da sich die Autoren nicht explizit mit dieser Frage Auseinander gesetzt haben.} auch auf $A'$ an. Dies dreht $A$ auf einen neuen Punkt. \item $B'$ ist kein zufälliger Name für diesen neuen Punkt, denn wir wissen, dass zwischen allen Punkten eine Translationssymmetrie bestehen muss. Die Translationssymmetrie zwischen $B$ und $B'$ ist hier als $Q'$ bezeichnet. \end{itemize} - + Mit den gegebenen Punkten lassen sich geometrische Folgerungen ziehen. + Wir beginnen indem wir die Länge der Translation $Q$ mit jener von $Q'$ vergleichen. + Aus Abbildung \ref{fig:punktgruppen:rot-geometry} ist ersichtlich, dass $|Q| = |Q'|+ 2x$. + Ist $Q$ ein Grundvektor so muss $|Q'|$ ein ganzes vielfaches von $|Q|$ sein. Also + \[ + |Q'| = n|Q| = |Q| + 2x + \] + Die Strecke $x$ lässt sich auch mit hilfe der Trigonometrie und dem angenommenen Rotationswinkel $\alpha$ ausdrücken: + \[ + n|Q| = |Q| + 2|Q|sin(\alpha - \pi/2) + \] + Wir können mit $|Q|$ dividieren um unabhängig von der Läge des Grundvektors zu werden, + was auch Sinn macht, da eine Skalierung eines Kristalles seine Symmetrieeigenschaften nicht tangieren soll. + Zusätzlich können wir den Sinusterm vereinfachen. + \[ + n = 1 - 2cos\alpha + \alpha = cos^{-1}(\frac{1-n}{2}) + \] + Dies schränkt die möglichen Rotationssymmetrien auf + \[ + \alpha \in \{ 0^\circ, 60^\circ, 90^\circ, 120^\circ, 180^\circ\} + \] +ein. + +\begin{figure} + \centering + \includegraphics[]{papers/punktgruppen/figures/projections} + \caption{Kristallklassen mit zugehöriger Schönfliesnotation} + \label{fig:punktgruppen:Kristallkassen} +\end{figure} + +\subsection{Kristallklassen} +Vorgehend wurde gezeigt, dass in einem zweidimensionalen Kristallgitter nicht alle Symmetrien möglich sind. +Mit weiteren ähnlichen überlegungen gezeigt werden kann, dass Kristalle im dreidimensionalen Raum +\footnote{Alle $17$ möglichen zweidimensionalen Symmetrien sind als Wandmustergruppen bekannt} +nur auf genau $32$ Arten punktsymmetrisch sein können. +Diese $32$ möglichen Punktsymmetrien scheinen durchaus relevant zu sein, denn sie werden unter anderem als Kristallklassen bezeichnet. +Eine mögliche Art, die Klassen zu benennen ist nacht dem Mathematiker Arthur Moritz Schönflies, +welcher sich mit der Klasifizierung dieser Symmetrien auseinander gesetzt hat. +Auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} sind die möglichen Punktsymmetrien mit deren Schönfliesnotation aufgelistet. +Als Darstellungsmethode wurde die stereographische Projektion gewählt, wobei $5$ Klassen aus Gründen der Überschaubarkeit nicht gezeichnet wurden. + -%"beweis", das Rotationssymmetrien auch immer invers gehen? \ No newline at end of file -- cgit v1.2.1 From 74c4242210c2383f22f8c8ad389b580d9ee1d836 Mon Sep 17 00:00:00 2001 From: tim30b Date: Wed, 7 Jul 2021 14:40:08 +0200 Subject: =?UTF-8?q?Write=20Piezoelektrizit=C3=A4t=201.version?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buch/papers/punktgruppen/piezo.tex | 72 +++++++++++++++++++++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/piezo.tex b/buch/papers/punktgruppen/piezo.tex index 7ee4174..f3c1cb5 100644 --- a/buch/papers/punktgruppen/piezo.tex +++ b/buch/papers/punktgruppen/piezo.tex @@ -1 +1,71 @@ -\section{Piezoelektrizit\"at} +\section{Piezoelektrizität} +Die Piezoelektrizität ist per Definition spannend. +Sie beschreibt die Eigenschaft, dass gewisse Kristalle eine elektrische Spannung erzeugen, wenn machanischer Druck auf sie ausgeübt wird. + +\begin{figure} + \centering + \includegraphics[]{papers/punktgruppen/figures/piezo} %das Efeld mit Naoki disskutieren, müssen sicher gehen, dass es mit jenen in Abbildung Piezo aufbau übereinstimmt + \caption{Piezoelektrisches Material in ruhe und unter Druck} + \label{fig:punktgruppen:basicPiezo} +\end{figure} + +\subsection{Polarisierung} +Piezoelektrizität basiert darauf, dass zwischen den Oberfläche des Kristalles ein Ladungsungleichgewicht entsteht siehe Abbildung\ref{fig:punktgruppen:basicPiezo}. +Dieses Ungleichgewicht resultiert, +weil durch den mechanischen Druck auf der einen Oberfläche des Kristalles positiv Ione näher an die Oberfläche gelangen, +wärend auf der gegenüberliegender Oberfläche sich mehr negative Ionen Sammeln. +Das sich die atomare Struktur eines Kristalles unter Druck genau so verformt ist nicht bei jedem Kristall gegeben. +Der Aufbau und somit auch die Symmetrie des Kristalles ist daher relevant für die entstehung dieses Effektes. + +\begin{figure} + \centering + \includegraphics[]{papers/punktgruppen/figures/piezo-atoms} + \caption{Kristallstrukturen mit und ohne piezoelektrischer Eigenschaft} + \label{fig:punktgruppen:atomPiezo} +\end{figure} + +\subsection{Atomarer Aufbau} +Die Polarisation resultiert über eine gesamte Oberfläche eines Kristalles, entscheidend ist aber der atomare Aufbau. +Wir wollen dazu die verschiedenen Kristallstrukturen auf Abbildung \ref{fig:punktgruppen:atomPiezo} diskutieren. +In Abbildung \ref{fig:punktgruppen:atomPiezo} gilt für alle Strukturen, dass rote Kreise Positive Ionen und blaue negative Ionen repräsentieren. +%liste oder anderes format?.. +Struktur$(a)$ zeigt ein piezoelektrisches Material in Ruhe. Struktur $(b)$ ist das Selbe Kristallgitter, jedoch wird es senkrecht belastet. +Eingezeichnet ist auch das elektrische Feld welches entsteht, weil mitlleren Ladungsträger weiter auseinander gerdrückt werden. +Als hilfe zur Vorstellung kann man $(b)$ zwischen zwei leitende Platten setzen, +so wird ersichtlich, dass mit wachsendem Druck eine negative Ladung an die rechte Platte gedrückt wird, +während sich die positiven Ionen weiter entfernen. +$(d)$ ist nicht Piezoelektrisch. +Dies wird ersichtlich, wenn man $(d)$ unterdruck setzt und sich die Struktur zu $(e)$ verformt. +Setzt man $(e)$ gedanklich auch zwischen zwei leitende Platten scheint es als würden rechts mehr Positive Ionen in die Platte gedrückt werden +und links umgekehrt. +Dies ist aber nicht mehr der Fall, wenn der Kristall nach oben und periodisch wiederholt. +Struktur $(c)$ zeigt $(a)$ in unter horizontaler Belastung. +Was in zwischen $(b)$ und $(c)$ zu beobachten ist, ist dass das entstandene Ladungsdifferenz orthogonal zu der angelegten Kraft entsteht, +im gegensatz zu $(b)$. +Daraus kann man schlissen, dass $(a)$ keine Rotationssymmetrie von $90^\circ$ besitzen kann, weil die Eigenschaften ändern bei einer $90^\circ$ Drehung. +Das fehlen dieser Rotationssymmetrie kann mit betrachten von $(a)$ bestätigt werden. + +\subsection{Punktsymmetrie}\footnote{In der Literatur wird ein Punktsymmetrisches Kristallgitter oft als Kristallgitter mit Inversionszentrum bezeichnet.} +Piezoelektrische Kristalle können nicht Punktsymmetrisch sein. +Kristallgitter, bei welchen eine Punktspiegelung eine symmetrische Operation ist, können keine Piezoelektrische Kristalle bilden. +Auf Abbildung \ref{fig:punktgruppen:atomPiezo} ist bewusst $(a)$ ein nicht Punktsymmetrischer Kristall mit einem Punktsymmetrischen $(d)$ verglichen worden. +Als vereinfachte Erklärung kann mann sich wieder das Bild vor augen führen, eines Kristalles, +welcher unter Druck auf der einen Seite negative und der anderen Seite positive Ionen an seine Oberfläche verdrängt. +Spiegelt man nun den Kristall um den Gitterpunkt in der mitte des Kristalles, so würden die negativen Ionen auf den Positiven auf der anderen seite landen, +was der Definition einer Symmetrie deutlich wiederspricht. + +\subsection{Vom Kristall zum Feuer} +Piezoelektrizität hat durhaus nutzen im Alltag. +Feuerzeuge welche nicht auf dem Prinzip beruhen einen Zündstein abzuschleifen, +sonder ohne Verschleiss auf Knopfdruck einen Zündfunken erzeugen, basieren auf dem Prinzip der Piezoelektrizität. +Drückt der Nutzende auf den Zündknopf spannt sich eine Feder bis zu einer Konfigurierten Spannung. +Wird vom Nutzenden weiter gedrückt entspannt sich die Feder schlagartig und beschleunigt mit der gespeicherten Energie ein Hammer, +welcher auf das Piezoelement aufschlägt. +Der augenblicklich hohen Druck sorgt an den Piezokontakten für eine eben so Kurze aber hohe elekrische Spannung. +Die Spannung reicht aus um eine Funkenstrecke zu überwinden und so eine entflammbares Gas zu entzünden. +Sollten Sie also eines Tages in die Situation geraten, in welcher Sie zwei verschiedene Kristalle vor sich haben +und ein Piezoelektrisches feuerzeug bauen müssen, +wobei Sie aber wissen, dass einer eine Punktsymmetrie aufweist, +versuche sie es mt dem Anderen. +Ich muss aber anmerken, dass aus den $21$ möglichen Kristallsymmetrien ohne Punktsymmetrie einer nicht Piezoelektrisch ist. +ein wenig glück brauchen Sie also immer noch. \ No newline at end of file -- cgit v1.2.1 From de9e1f96cfbca8035dc87474ef55c7e3feba68a4 Mon Sep 17 00:00:00 2001 From: tim30b Date: Wed, 7 Jul 2021 14:58:15 +0200 Subject: small rewording --- buch/papers/punktgruppen/crystals.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index ca1bfc3..99b576f 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -46,7 +46,7 @@ solange wir ein unendlich grosses Kristallgitter verschieben. \subsection{Limitierte Kristallsymmetrien} Die Translationssymmetrie ist wohl keine grosse Überraschung, wenn man die Abbildung \ref{fig:punktgruppen:lattice} betrachtet. Was nicht direkt ersichtlich ist, ist das auch wenn die Grundvektoren frei gewählt werden können, - können nur Kristalle erzeugt werden mit Rotationssymmetrien mit Winkel $\alpha \in \left\{ 0^\circ, 60^\circ, 90^\circ, 120^\circ, 180^\circ\right\}$. %format error!!! + können nur Rotationssymmetrische Kristalle bestimmter Rotationswinkel erzeugt werden. \begin{figure} \centering -- cgit v1.2.1 From dbf10d224849f5400e7554dc6fca9552613bd48f Mon Sep 17 00:00:00 2001 From: tim30b Date: Wed, 7 Jul 2021 15:54:08 +0200 Subject: Apply word spellcheck --- buch/papers/punktgruppen/crystals.tex | 12 ++++++------ buch/papers/punktgruppen/piezo.tex | 34 +++++++++++++++++----------------- 2 files changed, 23 insertions(+), 23 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index 99b576f..5f38570 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -27,7 +27,7 @@ Im Dreidimensionalen-Raum können alle Gitterpunkte mit derselben Idee und einem \] erreicht werden sofern $\{n_1,n_2,n_3\} \in \mathbb{Z}$ sind. Sind die Vektoren $\vec{a}$ , $\vec{b}$ , $\vec{c}$ gegeben , -ist ein Kristallgitter eindeutig beschrieben, weswegen sie auch als Grundvektoren bekannt sind. +ist ein Kristallgitter eindeutig beschrieben, weswegen sie auch als Grundvektoren bekannt sind. \subsection{Translationssymmetrie} Da sich das ganze Kristallgitter wiederholt, wiederholen sich auch dessen Eigenschaften periodisch mit den Grundvektoren. @@ -66,9 +66,9 @@ solange wir ein unendlich grosses Kristallgitter verschieben. \item $B$ entsteht, weil wir die Rotationssymmetrie $C_\alpha$ auf den Punkt $A$ anwenden. Dadurch dreht sich das ganze Gitter um den Winkel $\alpha$. Für uns bedeutet dies lediglich, dass unser zweiter Punkt $A'$ abgedreht wird. - An der neuen Position von $A'$ muss also auch ein Punkt sein um die Rotationssymmetrie zu erfüllen. + An der neuen Position von $A'$ muss also auch ein Punkt sein, um die Rotationssymmetrie zu erfüllen. \item $B$ ist unser Name für diesen neuen Punkt. - Da auch die Eigenschaften des Kristallgitter periodisch mit dem Gitter sein müssen, dürfen wir $C_\alpha$ auch auf $A'$ anwenden. + Da auch die Eigenschaften des Kristallgittes periodisch mit dem Gitter sein müssen, dürfen wir $C_\alpha$ auch auf $A'$ anwenden. Also wenden wir $C_\alpha$ invertiert \footnote{Eine Rotationssymmetrie muss auch in die inverse Richtung funktionieren. Genauere Überlegungen hierzu werden dem Leser überlassen, da sich die Autoren nicht explizit mit dieser Frage Auseinander gesetzt haben.} @@ -78,7 +78,7 @@ solange wir ein unendlich grosses Kristallgitter verschieben. Die Translationssymmetrie zwischen $B$ und $B'$ ist hier als $Q'$ bezeichnet. \end{itemize} Mit den gegebenen Punkten lassen sich geometrische Folgerungen ziehen. - Wir beginnen indem wir die Länge der Translation $Q$ mit jener von $Q'$ vergleichen. + Wir beginnen, indem wir die Länge der Translation $Q$ mit jener von $Q'$ vergleichen. Aus Abbildung \ref{fig:punktgruppen:rot-geometry} ist ersichtlich, dass $|Q| = |Q'|+ 2x$. Ist $Q$ ein Grundvektor so muss $|Q'|$ ein ganzes vielfaches von $|Q|$ sein. Also \[ @@ -95,7 +95,7 @@ solange wir ein unendlich grosses Kristallgitter verschieben. n = 1 - 2cos\alpha \alpha = cos^{-1}(\frac{1-n}{2}) \] - Dies schränkt die möglichen Rotationssymmetrien auf + Dies schränkt die möglichen Rotationssymmetrien auf \[ \alpha \in \{ 0^\circ, 60^\circ, 90^\circ, 120^\circ, 180^\circ\} \] @@ -115,7 +115,7 @@ Mit weiteren ähnlichen überlegungen gezeigt werden kann, dass Kristalle im dre nur auf genau $32$ Arten punktsymmetrisch sein können. Diese $32$ möglichen Punktsymmetrien scheinen durchaus relevant zu sein, denn sie werden unter anderem als Kristallklassen bezeichnet. Eine mögliche Art, die Klassen zu benennen ist nacht dem Mathematiker Arthur Moritz Schönflies, -welcher sich mit der Klasifizierung dieser Symmetrien auseinander gesetzt hat. +welcher sich mit der Klasifizierung dieser Symmetrien auseinandergesetzt hat. Auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} sind die möglichen Punktsymmetrien mit deren Schönfliesnotation aufgelistet. Als Darstellungsmethode wurde die stereographische Projektion gewählt, wobei $5$ Klassen aus Gründen der Überschaubarkeit nicht gezeichnet wurden. diff --git a/buch/papers/punktgruppen/piezo.tex b/buch/papers/punktgruppen/piezo.tex index f3c1cb5..3c40aa8 100644 --- a/buch/papers/punktgruppen/piezo.tex +++ b/buch/papers/punktgruppen/piezo.tex @@ -5,17 +5,17 @@ Sie beschreibt die Eigenschaft, dass gewisse Kristalle eine elektrische Spannung \begin{figure} \centering \includegraphics[]{papers/punktgruppen/figures/piezo} %das Efeld mit Naoki disskutieren, müssen sicher gehen, dass es mit jenen in Abbildung Piezo aufbau übereinstimmt - \caption{Piezoelektrisches Material in ruhe und unter Druck} + \caption{Piezoelektrisches Material in Ruhe und unter Druck} \label{fig:punktgruppen:basicPiezo} \end{figure} \subsection{Polarisierung} -Piezoelektrizität basiert darauf, dass zwischen den Oberfläche des Kristalles ein Ladungsungleichgewicht entsteht siehe Abbildung\ref{fig:punktgruppen:basicPiezo}. +Piezoelektrizität basiert darauf, dass zwischen den Oberflächen des Kristalles ein Ladungsungleichgewicht entsteht siehe Abbildung\ref{fig:punktgruppen:basicPiezo}. Dieses Ungleichgewicht resultiert, weil durch den mechanischen Druck auf der einen Oberfläche des Kristalles positiv Ione näher an die Oberfläche gelangen, -wärend auf der gegenüberliegender Oberfläche sich mehr negative Ionen Sammeln. +wärend auf der gegenüberliegenden Oberfläche sich mehr negative Ionen Sammeln. Das sich die atomare Struktur eines Kristalles unter Druck genau so verformt ist nicht bei jedem Kristall gegeben. -Der Aufbau und somit auch die Symmetrie des Kristalles ist daher relevant für die entstehung dieses Effektes. +Der Aufbau und somit auch die Symmetrie des Kristalles sind daher relevant für die Entstehung dieses Effektes. \begin{figure} \centering @@ -29,43 +29,43 @@ Die Polarisation resultiert über eine gesamte Oberfläche eines Kristalles, ent Wir wollen dazu die verschiedenen Kristallstrukturen auf Abbildung \ref{fig:punktgruppen:atomPiezo} diskutieren. In Abbildung \ref{fig:punktgruppen:atomPiezo} gilt für alle Strukturen, dass rote Kreise Positive Ionen und blaue negative Ionen repräsentieren. %liste oder anderes format?.. -Struktur$(a)$ zeigt ein piezoelektrisches Material in Ruhe. Struktur $(b)$ ist das Selbe Kristallgitter, jedoch wird es senkrecht belastet. -Eingezeichnet ist auch das elektrische Feld welches entsteht, weil mitlleren Ladungsträger weiter auseinander gerdrückt werden. +Struktur$(a)$ zeigt ein piezoelektrisches Material in Ruhe. Struktur $(b)$ ist dasselbe Kristallgitter, jedoch wird es senkrecht belastet. +Eingezeichnet ist auch das elektrische Feld, welches entsteht, weil mitlleren Ladungsträger weiter auseinander gerdrückt werden. Als hilfe zur Vorstellung kann man $(b)$ zwischen zwei leitende Platten setzen, so wird ersichtlich, dass mit wachsendem Druck eine negative Ladung an die rechte Platte gedrückt wird, während sich die positiven Ionen weiter entfernen. -$(d)$ ist nicht Piezoelektrisch. +$(d)$ ist nicht piezoelektrisch. Dies wird ersichtlich, wenn man $(d)$ unterdruck setzt und sich die Struktur zu $(e)$ verformt. Setzt man $(e)$ gedanklich auch zwischen zwei leitende Platten scheint es als würden rechts mehr Positive Ionen in die Platte gedrückt werden und links umgekehrt. Dies ist aber nicht mehr der Fall, wenn der Kristall nach oben und periodisch wiederholt. Struktur $(c)$ zeigt $(a)$ in unter horizontaler Belastung. Was in zwischen $(b)$ und $(c)$ zu beobachten ist, ist dass das entstandene Ladungsdifferenz orthogonal zu der angelegten Kraft entsteht, -im gegensatz zu $(b)$. +im Gegensatz zu $(b)$. Daraus kann man schlissen, dass $(a)$ keine Rotationssymmetrie von $90^\circ$ besitzen kann, weil die Eigenschaften ändern bei einer $90^\circ$ Drehung. -Das fehlen dieser Rotationssymmetrie kann mit betrachten von $(a)$ bestätigt werden. +Das Fehlen dieser Rotationssymmetrie kann mit betrachten von $(a)$ bestätigt werden. \subsection{Punktsymmetrie}\footnote{In der Literatur wird ein Punktsymmetrisches Kristallgitter oft als Kristallgitter mit Inversionszentrum bezeichnet.} Piezoelektrische Kristalle können nicht Punktsymmetrisch sein. -Kristallgitter, bei welchen eine Punktspiegelung eine symmetrische Operation ist, können keine Piezoelektrische Kristalle bilden. +Kristallgitter, bei welchen eine Punktspiegelung eine symmetrische Operation ist, können keine piezoelektrische Kristalle bilden. Auf Abbildung \ref{fig:punktgruppen:atomPiezo} ist bewusst $(a)$ ein nicht Punktsymmetrischer Kristall mit einem Punktsymmetrischen $(d)$ verglichen worden. Als vereinfachte Erklärung kann mann sich wieder das Bild vor augen führen, eines Kristalles, welcher unter Druck auf der einen Seite negative und der anderen Seite positive Ionen an seine Oberfläche verdrängt. Spiegelt man nun den Kristall um den Gitterpunkt in der mitte des Kristalles, so würden die negativen Ionen auf den Positiven auf der anderen seite landen, -was der Definition einer Symmetrie deutlich wiederspricht. +was der Definition einer Symmetrie deutlich widerspricht. \subsection{Vom Kristall zum Feuer} -Piezoelektrizität hat durhaus nutzen im Alltag. +Piezoelektrizität hat durchaus nutzen im Alltag. Feuerzeuge welche nicht auf dem Prinzip beruhen einen Zündstein abzuschleifen, sonder ohne Verschleiss auf Knopfdruck einen Zündfunken erzeugen, basieren auf dem Prinzip der Piezoelektrizität. Drückt der Nutzende auf den Zündknopf spannt sich eine Feder bis zu einer Konfigurierten Spannung. Wird vom Nutzenden weiter gedrückt entspannt sich die Feder schlagartig und beschleunigt mit der gespeicherten Energie ein Hammer, welcher auf das Piezoelement aufschlägt. -Der augenblicklich hohen Druck sorgt an den Piezokontakten für eine eben so Kurze aber hohe elekrische Spannung. -Die Spannung reicht aus um eine Funkenstrecke zu überwinden und so eine entflammbares Gas zu entzünden. +Der augenblicklich hohe Druck sorgt an den Piezokontakten für eine eben so Kurze aber hohe elekrische Spannung. +Die Spannung reicht aus, um eine Funkenstrecke zu überwinden und so eine entflammbares Gas zu entzünden. Sollten Sie also eines Tages in die Situation geraten, in welcher Sie zwei verschiedene Kristalle vor sich haben -und ein Piezoelektrisches feuerzeug bauen müssen, +und ein piezoelektrisches Feuerzeug bauen müssen, wobei Sie aber wissen, dass einer eine Punktsymmetrie aufweist, -versuche sie es mt dem Anderen. -Ich muss aber anmerken, dass aus den $21$ möglichen Kristallsymmetrien ohne Punktsymmetrie einer nicht Piezoelektrisch ist. +versuche sie es mit dem anderen. +Ich muss aber anmerken, dass aus den $21$ möglichen Kristallsymmetrien ohne Punktsymmetrie einer nicht piezoelektrisch ist. ein wenig glück brauchen Sie also immer noch. \ No newline at end of file -- cgit v1.2.1 From bfab86988888aa4980f70338e59b7cddb693bbe0 Mon Sep 17 00:00:00 2001 From: tim30b Date: Wed, 7 Jul 2021 16:13:27 +0200 Subject: add comment --- buch/papers/punktgruppen/crystals.tex | 1 + 1 file changed, 1 insertion(+) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index 5f38570..d984c21 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -1,4 +1,5 @@ \section{Kristalle} +%einleitung sollte noch an das ende von der Symmetrie angepasst werden Unter dem Begriff Kristall sollte sich jeder ein Bild machen können. Wir werden uns aber nicht auf sein Äusseres fokussieren, sondern was ihn im Inneren ausmacht. Die Innereien eines Kristalles sind glücklicherweise relativ einfach definiert. -- cgit v1.2.1 From 30eb23bfa08b5119e29efd1e4a3cbfc6ff9d81c7 Mon Sep 17 00:00:00 2001 From: Lukaszogg <82384106+Lukaszogg@users.noreply.github.com> Date: Thu, 8 Jul 2021 19:56:31 +0200 Subject: Update teil1.tex --- buch/papers/erdbeben/teil1.tex | 228 ++++++++++++++++++++++++++++++----------- 1 file changed, 168 insertions(+), 60 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/erdbeben/teil1.tex b/buch/papers/erdbeben/teil1.tex index 0d21f84..d6f5638 100644 --- a/buch/papers/erdbeben/teil1.tex +++ b/buch/papers/erdbeben/teil1.tex @@ -11,12 +11,15 @@ +\begin{document} + + \section{Kalman Filter} \subsection{Geschichte} Das Kalman Filter wurde 1960 von Rudolf Emil Kalman entdeckt und direkt von der NASA für die Appollo Mission benutzt. Der Filter kommt mit wenig Rechenleistung aus und war somit dafür geeignet die Rakete bei der Navigation zu unterstützen. Das Filter schätzt den Zustand eines Systems anhand von Messungen und kann den nächsten Zustand errechnen. Typische Anwendungen des Kalman-Filters sind die Glättung von verrauschten Daten und die Schätzung von Parametern und kommt heutzutage in jedem Satellit, Navigationssystem, Smartphones und Videospielen vor. \subsection{Wahrscheinlichkeit} -Das Kalman Filter versucht nichts anderes, als ein geeigneter Wert zwischen zwei Normalverteilungen zu schätzen. Die eine Kurve zeigt die errechnete Vorhersage des Zustands, bzw. deren Normal- Gauss-Verteilung. Die andere Kurve zeigt die verrauschte Messung des nächsten Zustand, bzw. deren Normal-Verteilung. Wie man in am Beispiel dieser zwei Gauss-Verteilungen sehen kann, ist sowohl der geschätzte Zustand als auch der gemessene Zustand nicht am selben Punkt. +Das Kalman-Filter schätzt den wahrscheinlichsten Wert zwischen zwei Normalverteilungen oder auch Gauss-Verteilung. Die eine Kurve zeigt die errechnete Vorhersage des Zustands, bzw. deren Normalverteilung. Die andere Kurve zeigt die verrauschte Messung des nächsten Zustand, bzw. deren Normalverteilung. Wie man am Beispiel dieser zwei Gauss-Verteilungen sehen kann, ist sowohl der geschätzte Zustand als auch der gemessene Zustand verteilt und haben unterschiedliche Standardabweichungen $\sigma$ und Erwartungswerte $\mu$. @@ -43,10 +46,10 @@ und für die Messung: Diesen werden nun Multipliziert und durch deren Fläche geteilt um sie wieder zu Normieren: \begin{equation} -{y_f}(x;{\mu_f},{\sigma_f})=\frac{ \frac{1}{\sqrt{2\pi\sigma_1^2}}e^{-\frac{(x-{\mu_1})^2}{2{\sigma_1}^2}} \cdot \frac{1}{\sqrt{2\pi\sigma_2^2}}e^{-\frac{(x-{\mu_2})^2}{2{\sigma_2}^2}}}{\int {y_1}*{y_2}\,} +{y_f}(x;{\mu_f},{\sigma_f})=\frac{ \frac{1}{\sqrt{2\pi\sigma_1^2}}e^{-\frac{(x-{\mu_1})^2}{2{\sigma_1}^2}} \cdot \frac{1}{\sqrt{2\pi\sigma_2^2}}e^{-\frac{(x-{\mu_2})^2}{2{\sigma_2}^2}}}{\int {y_1}*{y_2} dx\,} \end{equation} -Dadurch gleicht sich die neue Kurve den anderen an. Interessant daran ist, dass die fusionierte Kurve sich der genauere Normal-Verteilung anpasst. ist ${\sigma_2}$ klein und ${\sigma_1}$ gross, so wird sich die fusionierte Kurve näher an ${y_2}(x;{\mu_2},{\sigma_2})$ begeben. Sie ist also Gewichtet und die best mögliche Schätzung. +Dadurch gleicht sich die neue Kurve den anderen an. Interessant daran ist, dass die fusionierte Kurve sich der genauere Normal-Verteilung anpasst. ist ${\sigma_2}$ klein und ${\sigma_1}$ gross, so wird sich die fusionierte Kurve näher an ${y_2}(x;{\mu_2},{\sigma_2})$ begeben. Sie ist also gewichtet und die best mögliche Schätzung. \begin{figure} @@ -59,14 +62,13 @@ Dadurch gleicht sich die neue Kurve den anderen an. Interessant daran ist, dass Was in 2 Dimensionen erklärt wurde, funktioniert auch in mehreren Dimensionen. Dieses Prinzip mach sich der Kalman Filter zu nutze, und wird von uns für die Erdbeben Berechnung genutzt. -\subsection{Anwendungsgrenzen} -Nicht lineare Systeme %Noch nicht Fertig + \section{Aufbau} -Um ein Erdbeben kenntlich zumachen werden in der Regel Seismographen mit vielen Sensoren verwendet. -Ein Seismograph besteht im Grunde aus einer federgelagerten Masse. Wirkt eine Bodenerregung auf das Gerät ein, bleibt die gekoppelte Masse in der regel stehen und das Gehäuse schwingt mit.Relativbewegung des Bodens kann damit als Längenänderung im Zeitverlauf gemessen werden. In modernen Seismographen wird die Bodenbewegung in alle Richtungen gemessen, sowohl Horizontal als auch Vertikal. -Wir konstruieren uns eine einfachere Version eines Seismographen, welcher rein mechanisch funktioniert. Zudem kann er nur in eine Dimension Messwerte aufnehmen. Würde das System ausgebaut werden, um alle Horizontalbewegungen aufzunehmen, würde der Verwendung des Kalman-Filters zu kompliziert werden. Für zwei Dimensionen (x,y) würde der Pythagoras für das System benötigt werden. Da sich der Pythagoras bekanntlich nicht linear verhält, kann kein lineares Kalman-Filter implementiert werden. Da das Kalman-Filter besonders effektiv und einfach für lineare Abläufe geeignet ist, würde eine Zweidimensionale Betrachtung den Rahmen dieser Arbeit sprengen. Für ein nicht-lineares System werden Extended Kalman-Filter benötigt, bei denen die System-Matrix (A) durch die Jacobi-Matrix des System ersetzt wird. +Um ein Erdbeben kenntlich zu machen werden in der Regel Seismographen mit vielen Sensoren verwendet. +Ein Seismograph besteht im Grunde aus einer federgelagerten Masse. Wirkt eine Bodenerregung auf das Gerät ein, bleibt die gekoppelte Masse stehen und das Gehäuse schwingt mit.Relativbewegung des Bodens kann damit als Längenänderung im Zeitverlauf gemessen werden. In modernen Seismographen wird die Bodenbewegung in alle Richtungen gemessen, sowohl Horizontal als auch Vertikal. +Wir konstruieren uns eine einfachere Version eines Seismographen, welcher rein mechanisch funktioniert. Zudem kann er nur in eine Dimension Messwerte aufnehmen. Würde das System ausgebaut werden, um alle Horizontalbewegungen aufzunehmen, würde der Verwendung des Kalman-Filters zu kompliziert werden. Für zwei Dimensionen (x,y) würde der Pythagoras für das System benötigt werden. Da sich der Pythagoras bekanntlich nicht linear verhält, kann kein lineares Kalman-Filter implementiert werden. Da das Kalman-Filter besonders effektiv und einfach für lineare Abläufe geeignet ist, würde eine Zweidimensionale Betrachtung den Rahmen dieser Arbeit sprengen. Für ein nicht-lineares System werden Extended Kalman-Filter benötigt, bei denen die System-Matrix (A) durch die Jacobi-Matrix des System ersetzt wird. Einfachheitshalber beschränken wir uns aber auf den linearen Fall, da dadurch die wesentlichen punkte bereits aufgezeigt werden. \begin{figure} \begin{center} @@ -76,36 +78,20 @@ Wir konstruieren uns eine einfachere Version eines Seismographen, welcher rein m \end{figure} -\subsection{Optionen} -Wollte man einen 2D Seismographen aufbauen, ohne den Pythagroas zu verwenden, kann dies mit der Annahme, das die Feder sehr lang sind erfolgen. Da sich bei langen Federn die Auslenkungen verkleiner...!!Noch nicht fertig! \section{Systemgleichung} -Da das Kalman-Filter zum Schätzen des nächsten Zustand verwendet wird, wird eine Gleichung, welche das System beschreibt. Das Kalman-Filter benötigt eine Beschreibung der Systemdynamik. Im Fall unseres Seismographen, kann die Differentialgleichung zweiter Ordnung einer gedämpften Schwingung am harmonischen Oszillator verwendet werden. Diese lautet: +Da das Kalman-Filter zum Schätzen des nächsten Zustand verwendet wird, benötigt das Kalman-Filter eine Beschreibung der Systemdynamik. Im Fall unseres Seismographen, kann die Differentialgleichung zweiter Ordnung einer gedämpften Schwingung am harmonischen Oszillator verwendet werden. Diese lautet: \begin{equation} m\ddot x + 2k \dot x + Dx = f \end{equation} mit den Konstanten $m$ = Masse, $k$ = Dämpfungskonstante und $D$ = Federkonstante. -Um diese nun in die Systemmatrix umzuwandeln, wird aus der Differentialgleichung zweiter Ordnung durch eine Substitution eine DGL erster Ordnung: - -\begin{equation} -{x_1}=x, \qquad +Um diese nun in die Systemmatrix umzuwandeln, wird aus der Differentialgleichung zweiter Ordnung durch die Substitution \[ {x_1}=x, \qquad {x_2}=\dot x, \qquad -{x_3}=\ddot x\qquad \mid \quad \text {Substitution} -\end{equation} +{x_3}=\ddot x\qquad\] erhalten wir die Differentialgleichung \[ m{x_3}+ 2k{x_2} + D{x_1} = f.\] Diese können wir nun in der Form \[ {x_3}=-\frac{D}{m} {x_1} -\frac{2k}{m} {x_2} + \frac{f} {m} \] auch als Matrix-Vektor-Gleichung darstellen. -\begin{equation} -m{x_3}+ 2k{x_2} + D{x_1} = f\qquad \mid \quad \text {DGL 1. Ordnung} -\end{equation} - -\begin{equation} -{x_3}=-\frac{D}{m} {x_1} -\frac{2k}{m} {x_2} + \frac{f} {m} \qquad \mid \quad \text {nach} \quad{x_3} -\end{equation} -auch als Matrix-Vektor-Gleichung schreiben. -Hierbei beschreibt die Matrix $A$ die gesamte Systemdynamik in der Form, wie sie ein Kalman-Filter benötigt. - -Um die lineare Differentialgleichung in das Kalman-Filter zu implementieren, muss dieses als Vektor-Gleichung umgewandelt werden. Dafür wird die Gleichung in die Zustände aufgeteilt. Die für uns relevanten Zustände sind die Position der Masse, die Geschwindigkeit der Masse und äussere Beschleunigung des ganzen System. Dabei muss unterschieden werden. um welche Beschleunigung es sich handelt. Das System beinhaltet sowohl eine Beschleunigung der Masse bzw. Feder (innere Beschleunigung), als auch eine Beschleunigung der ganzen Apparatur (äussere Beschleunigung). In unserem Fall wird die äusseren Beschleunigung gesucht, da diese der Erdbeben Anregung gleich kommt. +Dafür wird die Gleichung in die Zustände aufgeteilt. Die für uns relevanten Zustände sind die Position der Masse, die Geschwindigkeit der Masse und die äussere Beschleunigung des ganzen System. Dabei muss unterschieden werden, um welche Beschleunigung es sich handelt. Das System beinhaltet sowohl eine Beschleunigung der Masse bzw. Feder (innere Beschleunigung), als auch eine Beschleunigung der ganzen Apparatur (äussere Beschleunigung). In unserem Fall wird die äusseren Beschleunigung gesucht, da diese der Erdbeben Anregung gleich kommt. \begin{equation} @@ -134,7 +120,7 @@ Um den Kalman Filter zu starten, müssen gewisse Bedingungen definiert werden. I \subsection{Anfangsbedingungen} \subsubsection*{Anfangszustand $x$} -Das Filter benötigt eine Anfangsbedingung. In unserem Fall ist es die Ruhelage, die Masse bewegt sich nicht. Zudem erföhrt die Apparatur keine äussere Kraft. +Das Filter benötigt eine Anfangsbedingung. In unserem Fall ist es die Ruhelage, die Masse bewegt sich nicht. Zudem erfährt die Apparatur keine äussere Kraft. \begin{equation} {x_0 }= \left( \begin{array}{c} 0\\ 0\\ 0\end{array}\right) @@ -142,6 +128,8 @@ Das Filter benötigt eine Anfangsbedingung. In unserem Fall ist es die Ruhelage, \subsubsection*{Anfangsfehler / Kovarianzmatrix $P$} Da auch der Anfangszustand fehlerhaft sein kann, wird für den Filter einen Anfangsfehler eingeführt. Auf der Diagonalen werden die Varianzen eingesetzt, in den restlichen Felder stehen die Kovarianzen. +Zur Erinnerung: Die Varianz ist ein Mass für die Streuung eines Wertes, die Kovarianz hingegen beschreibt die Abhängigkeit der Streuungen zweier Werte. Kovarianz: Cov(x, y) undVarianz: Var(x) = Cov(x, x) + In unserem Fall ist der Anfangszustand gut bekannt. Wir gehen davon aus, dass das System in Ruhe und in Abwesenheit eines Erdbeben startet, somit kann die Matrix mit Nullen bestückt werden. Somit ergibt sich für die Kovarianzmatrix \begin{equation} @@ -183,16 +171,16 @@ Q = \left( \end{array}\right) \end{equation} -Die Standabweichungen müssten Statistisch ermittelt werden, da der Fehler nicht vom Sensor kommt und somit nicht vom Hersteller gegeben ist. Das Bedeutet wiederum dass $Q$ die Unsicherheit des Prozesses beschreibt, und die Messung. +Die Standabweichungen müssten Statistisch ermittelt werden, da der Fehler nicht vom Sensor kommt und somit nicht vom Hersteller gegeben ist. Das Bedeutet wiederum dass $Q$ die Unsicherheit des Prozesses beschreibt, und die der Messung. \subsubsection*{Messmatrix $H$} -Die Messmatrix gibt an, welcher Parameter gemessen werden soll. In unserem Fall ist es nur die Position der Massen. +Die Messmatrix gibt an, welche Parameter gemessen werden soll. In unserem Falle ist es nur die Position der Massen. \[ H = (1, 0, 0) \] \subsubsection*{Messrauschkovarianz $R$} -Die Messrauschkovarianzmatrix beinhaltet, wie der Name es schon sagt, das Rauschen der Positionssensoren. In unserem Fall wird nur die Position der Masse gemessen. Da wir keine anderen Sensoren haben ist dies lediglich: +Die Messrauschkovarianzmatrix beinhaltet, wie der Name es schon sagt, das Rauschen der Positionssensoren. In unserem Fall wird nur die Position der Masse gemessen. Da wir keine anderen Sensoren haben ist $R$ lediglich: \begin{equation} R= ({\sigma_x}^2). \end{equation} @@ -203,17 +191,14 @@ Nachdem alle Parameter aufgestellt sind, wird der Filter initialisiert und wird \subsubsection*{Vorhersage} -Im Filterschritt Vorhersage wird der nächste Zustand anhand des Anfangszustand und der Systemmatrix berechnet. Dies funktioniert ganz Trivial mit dem Rechenschritt: +Im Filterschritt Vorhersage wird der nächste Zustand anhand des Anfangszustand und der Systemmatrix berechnet. Dies funktioniert mit dem Rechenschritt: \begin{equation} {x_{t+1}}=A\cdot{x_t}. \end{equation} -Die Kovarianz $P_{pred}$ wird ebenfalls neu berechnet, da die Unsicherheit im Vorhersage grösser wird als im Aktuellen. Da wir ein mehrdimensionales System haben, kommt noch die Messunsicherheit $Q$ dazu, so dass die Unsicherheit des Anfangsfehlers $P$ immer grösser wird. Dies funktioniert durch multiplizieren der Systemmatrix, deren Ableitung und mit dem aktualisierten Anfangsfehler. Dazu wird noch die Messunsicherheit addiert, somit entsteht die Gleichung - -\begin{equation} -{P_{pred}}=APA^T+Q. -\end{equation} +Die Kovarianz $P_{pred}$ wird ebenfalls neu berechnet. Da wir ein mehrdimensionales System haben, kommt noch die Prozessunsicherheit $Q$ dazu, so dass die Unsicherheit des Anfangsfehlers $P$ laufend verändert. Dies funktioniert durch multiplizieren der Systemmatrix mit dem aktualisierten Anfangsfehler. Dazu wird noch die Prozessunsicherheit addiert, somit entsteht die Gleichung +\[ P_\mathrm{pred} = A P A^T + Q . \] wird dieser Vorgang wiederholt, schaut der Filter wie genau die letzte Anpassung von $P$ zur Messung stimmt. Ist der Unterschied klein, wird die Kovarianz $P$ kleiner, ist der Unterschied gross, wird auch die Kovarianz grösser. Das Filter passt sich selber an und korrigiert sich bei grosser Abweichung. @@ -223,41 +208,164 @@ Hier bei wird lediglich die Messung mit dem Fehler behaftet, und die Messmatrix \begin{equation} w=Z-(H\cdot x) \end{equation} -Die Innovation ist der Teil der Messung, die nicht durch die Systemdynamik erklärt werden kann. -Innovation = Messung - Vorhersage. Dies ist Intuitiv logisch, eine Innovation von 0 bedeutet, dass die Messung nichts Neues hervorbrachte. +Die Innovation ist der Teil der Messung, die nicht durch die Systemdynamik erklärt werden kann. Die Hilfsgröße Innovation beschreibt, wie genau der vorhergesagte Mittelwert den aktuellen Messwert mittels der Beobachtungsgleichung beschreiben kann. Für eine schlechte Vorhersage wird die dazugehörige Innovation gross, für eine genaue Vorhersage dagegen klein sein. Entsprechende Korrekturen müssen dann gross bzw. nur gering ausfallen. Innovation = Messung - Vorhersage. Dies ist intuitiv logisch, eine Innovation von 0 bedeutet, dass die Messung nichts Neues hervorbrachte. Im nächsten Schritt wir analysiert, mit welcher Kovarianz weiter gerechnet wird. +Hierbei wird die Unsicherheit $P$, die Messmatrix $H$ und die Messunsicherheit $R$ miteinander verrechnet. +\begin{equation} +S=Z-(H\cdot P\cdot H`+R) +\end{equation} + + +\subsubsection*{Aktualisieren} +Im nächsten Schritt kommt nun die Wahrscheinlichkeit nach Gauss dazu. + +\begin{equation} +K= \frac{P \cdot H`}S +\end{equation} +Dieser Vorgang wird Kalman-Gain genannt. Er sagt aus, welcher Kurve mehr Vertraut werden soll, dem Messwert oder der Systemdynamik. +Das Kalman-Gain wird geringer wen der Messwert dem vorhergesagten Systemzustand entspricht. Sind die Messwerte komplett anders als die Vorhersage, wo werden die Elemente in der Matrix $K$ grösser. -\subsubsection*{Korrigieren} -Udpdate -\section{Anfügen der Schwingung} +Anhand der Informationen aus dem Kalman-Gain $K$ wird das System geupdated. + +\begin{equation} +x=x+(K \cdot w) +\end{equation} -Ein Erdbeben breitet sich im Boden wellenartig aus und bringt Objekte, wie zum Beispiel ein Gebäude, in Schwingung. -Diese Schwingungen pflanzen sich im Gebäude mit gleicher Amplitude, Geschwindigkeit und Beschleunigung in horizontaler und vertikaler Bewegung fort. -Wir möchten herauszufinden, wie gross die Massenbeschleunigung infolge eines Erdbeben ist. -Mit Hilfe von fiktiven Sensoren, die eine Ortsveränderung des Gebäude messen, können wir mit Anwendung von Matrizen und dem Kalman-Filter die Beschleunigung berechnen. +Dazu kommt eine neue Kovarianz für den nächste Vorhersageschritt: \begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{erdbeben:equation1} +P=(I-(K \cdot H)) \cdot P \end{equation} -\section{Erreger-Schwingung} -Wir möchten mit einer gedämpften harmonischen Schwingung ein einfaches Erdbeben simulieren, die im Kalman Filter eingespeist wird. -Die Gleichung lautet +Der ganze Ablauf wird nun zum Algorithmus und beginnt wieder mit der Vorhersage + +\begin{equation} +{x_{t+1}}=e^{A\Delta t}{ x_t}. +\end{equation} + + +\subsection{Zusammenfassung des Filters} + + +1. Nächster Zustand vorhersagen +\begin{equation} +{x_{k|k-1}}={A_{k-1}}{x_{k-1}}+{B_{k-1}}{u_{k-1}} +\end{equation} +2. Nächste Fehlerkovarianz vorhersagen \begin{equation} -x(t)=Ae^{t/2}sin(t). +{P_{k|k-1}}={A_{k-1}}{P_{k-1}}{A_{k-1}^T}+{Q_{k-1}} +\end{equation} + + +3. Das Kalman Filter anwenden +\begin{equation} +{K_k}={P_{k-1}}{H_{k}^T({H_k}{P_{k|k-1}}{H_k}^T}+{R_k})^{-1} \end{equation} -Mit dieser Schwingung können wir ein einachsiger Seismograph simulieren, der eine Ortsverschiebung auf der x-Achse durchführt. -Die Dämpfung der Schwingung ist relevant, da das System beim Schwingungsvorgang durch die Federkonstante und der Reibung, Energie verliert. +4. Schätzung aktualisieren +\begin{equation} +{x_k}={x_{k|k-1}}+{K_k}({z_k}-{H_k}{x_{k|k-1}}) +\end{equation} + +5. Fehlerkovarianz aktualisieren +\begin{equation} +{P_k}=(I-{K_k}{H_k}){P_{k|k-1}} +\end{equation} + +6. Die Outputs von $k$ werden die Inputs für ${k-1}$ und werden wieder im Schritt 1 verwendet + + +\section{Matlab-Code} +Um das simulierte Erdbeben auf die theoretische Apparatur zu bringen und mit dem Kalman-Filter Resultate zu generieren, wurde in Matlab der Algorithmus programmiert. +\begin{lstlisting} +%% Initialisierte Werte +t0 = 0.00; % Anfangszeit +deltat = 0.01; % Zeitschritt +tend = 50.00; % Endzeit + +% Standard-Abweichungen Prozess +sigmax = 0.05e-3; % Position +sigmav = 0.01e-3; % Geschwindigkeit +sigmaf = 1; % (Äussere) Kraft + +% Standard-Abweichung Messung +sigmam = 0.01e-3; + +% Systemparameter +m = 1.00; % Masse +D = 0.30; % Federkonstante +k = 0.10; % Dämpfung + + +%% Kalmanfilter +% Initialisierung + + +% Anfangszustand (Position, Geschwindigkeit, Kraft) +x0 = [0; 0; 0]; + +% Unsicherheit des Anfangszustand +P0 = [0, 0, 0; ... + 0, 0, 0; ... + 0, 0, 0]; + +% Systemmatrizen +A = [0, 1, 0;... % Dynamikmatrix + -D/m, -2*k/m, 1;... + 0, 0, 0]; % Ableitungen von f(t) unbekant. Annahme: 0 +A = expm(A * deltat); + +Q = [sigmax^2, 0, 0;... + 0, sigmav^2, 0;... + 0, 0, sigmaf^2]; % Prozessrauschen (Covarianz) + +% Messprozess +H = [1, 0, 0]; % Messmatrix +R = sigmam^2; % Messrauschen (Könnte durch Versuche bestimmt werden) + +I = eye(3); % Identity matrix (Einheitsmatrix) + +% Filterprozess + +% Initialisieren der Variablen +N = length(t); % Anzahl Punkte im Einheitsvektor (= Anzahl Messwerte) +xhat = zeros(3, N); % Matrix mit geschätzten Zuständen + +% Index ':' bedeutet: 'alles' +% Index '(1, :)' bedeutet: 'alles aus der 1. Zeile' + +% Anfangszustand setzen +xhat(:, 1) = x0; +P = P0; + +% Kalman-Matrizen konvergiert. Vorab-Berechnung in 'genügenden' Iterationen +for idx = 1:100 + Ppred = A * P * A' + Q; % Prädizieren der Kovarianz + S = (H * Ppred * H' + R); % Innovationskovarianz + K = Ppred * H' / S; % Filter-Matrix (Kalman-Gain) + P = (I - K * H) * Ppred; % Aktualisieren der Kovarianz +end + +% Anfangszustand gegeben +% Erster zu berechnender Wert ist der zweite +for idx = 2:N + % Vorhersage + xpred = A * xhat(:, idx-1); % Prädizierter Zustand aus Bisherigem und System + % Ppred = A * P * A' + Q; % Prädizieren der Kovarianz + + % Korrektur + y = xt(idx) - H * xpred; % Messungen/ Kraft aus System - Vohersage + % S = (H * Ppred * H' + R); % Innovationskovarianz + % K = Ppred * H' / S; + + xhat(:, idx) = xpred + K * y; % Aktualisieren des Systemzustands + % P = (I - K * H) * Ppred; % Aktualisieren der Kovarianz +end +\end{lstlisting} + -Die Ergebnisse dieser Schwingung setzen wir in die Messmatrix ein und können den Kalman-Filter starten. -- cgit v1.2.1 From 7ad1f062b8b34fb5ba4b99fc0a34aba0567090d6 Mon Sep 17 00:00:00 2001 From: Lukaszogg <82384106+Lukaszogg@users.noreply.github.com> Date: Thu, 8 Jul 2021 20:04:43 +0200 Subject: Update teil1.tex --- buch/papers/erdbeben/teil1.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/erdbeben/teil1.tex b/buch/papers/erdbeben/teil1.tex index d6f5638..98bbd9e 100644 --- a/buch/papers/erdbeben/teil1.tex +++ b/buch/papers/erdbeben/teil1.tex @@ -245,8 +245,8 @@ Der ganze Ablauf wird nun zum Algorithmus und beginnt wieder mit der Vorhersage \end{equation} -\subsection{Zusammenfassung des Filters} - +\subsection{Zusammenfassung } +Zusammenfassend kann das Kalman-Filter in offizieller Typus dargestellt werden. Dabei beginnt das Filter mit dem Anfangszustand für $k=0$ 1. Nächster Zustand vorhersagen \begin{equation} -- cgit v1.2.1 From 6fdb95a0d5ec6c8f8bd016e5343a397a40a18c9e Mon Sep 17 00:00:00 2001 From: Roy Seitz Date: Sun, 11 Jul 2021 12:27:32 +0200 Subject: Remove '\begin{document}' from chapter part file. --- buch/papers/erdbeben/teil1.tex | 4 ---- 1 file changed, 4 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/erdbeben/teil1.tex b/buch/papers/erdbeben/teil1.tex index 98bbd9e..bb3bdd4 100644 --- a/buch/papers/erdbeben/teil1.tex +++ b/buch/papers/erdbeben/teil1.tex @@ -10,10 +10,6 @@ % - -\begin{document} - - \section{Kalman Filter} \subsection{Geschichte} Das Kalman Filter wurde 1960 von Rudolf Emil Kalman entdeckt und direkt von der NASA für die Appollo Mission benutzt. Der Filter kommt mit wenig Rechenleistung aus und war somit dafür geeignet die Rakete bei der Navigation zu unterstützen. Das Filter schätzt den Zustand eines Systems anhand von Messungen und kann den nächsten Zustand errechnen. Typische Anwendungen des Kalman-Filters sind die Glättung von verrauschten Daten und die Schätzung von Parametern und kommt heutzutage in jedem Satellit, Navigationssystem, Smartphones und Videospielen vor. -- cgit v1.2.1 From f68aab72ad65f596a344b3369e9fda3fd3dfe1b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Mon, 12 Jul 2021 10:57:54 +0200 Subject: add missing pdf files --- buch/papers/ifs/images/farn-eps-converted-to.pdf | Bin 0 -> 178140 bytes buch/papers/ifs/images/farncolor-eps-converted-to.pdf | Bin 0 -> 205982 bytes buch/papers/ifs/images/farncolor2-eps-converted-to.pdf | Bin 0 -> 69201 bytes .../ifs/images/farnnotweight-eps-converted-to.pdf | Bin 0 -> 166218 bytes .../ifs/images/farnrightwight-eps-converted-to.pdf | Bin 0 -> 59191 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 buch/papers/ifs/images/farn-eps-converted-to.pdf create mode 100644 buch/papers/ifs/images/farncolor-eps-converted-to.pdf create mode 100644 buch/papers/ifs/images/farncolor2-eps-converted-to.pdf create mode 100644 buch/papers/ifs/images/farnnotweight-eps-converted-to.pdf create mode 100644 buch/papers/ifs/images/farnrightwight-eps-converted-to.pdf (limited to 'buch/papers') diff --git a/buch/papers/ifs/images/farn-eps-converted-to.pdf b/buch/papers/ifs/images/farn-eps-converted-to.pdf new file mode 100644 index 0000000..e2c6ddc Binary files /dev/null and b/buch/papers/ifs/images/farn-eps-converted-to.pdf differ diff --git a/buch/papers/ifs/images/farncolor-eps-converted-to.pdf b/buch/papers/ifs/images/farncolor-eps-converted-to.pdf new file mode 100644 index 0000000..fd81802 Binary files /dev/null and b/buch/papers/ifs/images/farncolor-eps-converted-to.pdf differ diff --git a/buch/papers/ifs/images/farncolor2-eps-converted-to.pdf b/buch/papers/ifs/images/farncolor2-eps-converted-to.pdf new file mode 100644 index 0000000..b50843a Binary files /dev/null and b/buch/papers/ifs/images/farncolor2-eps-converted-to.pdf differ diff --git a/buch/papers/ifs/images/farnnotweight-eps-converted-to.pdf b/buch/papers/ifs/images/farnnotweight-eps-converted-to.pdf new file mode 100644 index 0000000..35bff32 Binary files /dev/null and b/buch/papers/ifs/images/farnnotweight-eps-converted-to.pdf differ diff --git a/buch/papers/ifs/images/farnrightwight-eps-converted-to.pdf b/buch/papers/ifs/images/farnrightwight-eps-converted-to.pdf new file mode 100644 index 0000000..3652e8f Binary files /dev/null and b/buch/papers/ifs/images/farnrightwight-eps-converted-to.pdf differ -- cgit v1.2.1 From 7b8b052a67078cc85f2c992f93ac5fea94692326 Mon Sep 17 00:00:00 2001 From: Andreas Mueller Date: Mon, 12 Jul 2021 11:03:08 +0200 Subject: =?UTF-8?q?Titel=20f=C3=BCr=20Arbeit=20=C3=BCber=20Punktgruppen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buch/papers/punktgruppen/main.tex | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/main.tex b/buch/papers/punktgruppen/main.tex index d88e221..04feb25 100644 --- a/buch/papers/punktgruppen/main.tex +++ b/buch/papers/punktgruppen/main.tex @@ -3,8 +3,10 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Crystal M\rotatebox[origin=c]{180}{a}th\label{chapter:punktgruppen}} -\lhead{Crystal M\rotatebox[origin=c]{180}{a}th} +%\chapter{Crystal M\rotatebox[origin=c]{180}{a}th\label{chapter:punktgruppen}} +%\lhead{Crystal M\rotatebox[origin=c]{180}{a}th} +\chapter{Crystal Math\label{chapter:punktgruppen}} +\lhead{Crystal Math} \begin{refsection} \chapterauthor{Tim T\"onz, Naoki Pross} -- cgit v1.2.1 From a985b2cf0c5fe62c9f8eba3ae71b2aa6ac12c776 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Mon, 12 Jul 2021 11:05:07 +0200 Subject: Fix typos and add TODOs --- buch/papers/punktgruppen/crystals.tex | 20 ++++++----- .../punktgruppen/figures/symmetric-shapes.pdf | Bin 12790 -> 12790 bytes buch/papers/punktgruppen/main.tex | 2 +- buch/papers/punktgruppen/piezo.tex | 7 ++-- buch/papers/punktgruppen/symmetry.tex | 38 ++++++++++++--------- 5 files changed, 39 insertions(+), 28 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index d984c21..1aec16f 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -11,7 +11,8 @@ Die Innereien eines Kristalles sind glücklicherweise relativ einfach definiert. \centering \includegraphics[]{papers/punktgruppen/figures/lattice} \caption{ - Zweidimensionales Kristallgitter + Zweidimensionales Kristallgitter. + \texttt{TODO: make wider and shorter} \label{fig:punktgruppen:lattice} } \end{figure} @@ -52,7 +53,10 @@ solange wir ein unendlich grosses Kristallgitter verschieben. \begin{figure} \centering \includegraphics[]{papers/punktgruppen/figures/combine-symmetries} - \caption{Translations und Rotationssymmetrisches Kristallgitter} + \caption{ + Translations und Rotationssymmetrisches Kristallgitter + \texttt{TODO: make wider and change color (yellow)} + } \label{fig:punktgruppen:rot-geometry} \end{figure} @@ -61,9 +65,9 @@ solange wir ein unendlich grosses Kristallgitter verschieben. \begin{itemize} \item $A$ ist unser erster Gitterpunkt. - + \item $A'$ ist gegeben, weil wir $A$ mit der Translation $Q$ um einen Grundvektor verschieben und wir wissen, - dass nach einer Translation wieder ein Gitterpunkt an der Verschobenen Stelle sein muss. + dass nach einer Translation wieder ein Gitterpunkt an der Verschobenen Stelle sein muss. \item $B$ entsteht, weil wir die Rotationssymmetrie $C_\alpha$ auf den Punkt $A$ anwenden. Dadurch dreht sich das ganze Gitter um den Winkel $\alpha$. Für uns bedeutet dies lediglich, dass unser zweiter Punkt $A'$ abgedreht wird. @@ -87,18 +91,18 @@ solange wir ein unendlich grosses Kristallgitter verschieben. \] Die Strecke $x$ lässt sich auch mit hilfe der Trigonometrie und dem angenommenen Rotationswinkel $\alpha$ ausdrücken: \[ - n|Q| = |Q| + 2|Q|sin(\alpha - \pi/2) + n|Q| = |Q| + 2|Q|\sin(\alpha - \pi/2) \] Wir können mit $|Q|$ dividieren um unabhängig von der Läge des Grundvektors zu werden, was auch Sinn macht, da eine Skalierung eines Kristalles seine Symmetrieeigenschaften nicht tangieren soll. Zusätzlich können wir den Sinusterm vereinfachen. \[ - n = 1 - 2cos\alpha - \alpha = cos^{-1}(\frac{1-n}{2}) + n = 1 - 2\cos\alpha + \alpha = \cos^{-1}\left(\frac{1-n}{2}\right) \] Dies schränkt die möglichen Rotationssymmetrien auf \[ - \alpha \in \{ 0^\circ, 60^\circ, 90^\circ, 120^\circ, 180^\circ\} + \alpha \in \left\{ 0^\circ, 60^\circ, 90^\circ, 120^\circ, 180^\circ\right\} \] ein. diff --git a/buch/papers/punktgruppen/figures/symmetric-shapes.pdf b/buch/papers/punktgruppen/figures/symmetric-shapes.pdf index 03a05ce..0b3ba54 100644 Binary files a/buch/papers/punktgruppen/figures/symmetric-shapes.pdf and b/buch/papers/punktgruppen/figures/symmetric-shapes.pdf differ diff --git a/buch/papers/punktgruppen/main.tex b/buch/papers/punktgruppen/main.tex index 31ed6a4..a6e246c 100644 --- a/buch/papers/punktgruppen/main.tex +++ b/buch/papers/punktgruppen/main.tex @@ -8,7 +8,7 @@ \chapter[Crystal Math]{Crystal M\flippedA{}th\label{chapter:punktgruppen}} \lhead{Crystal M\flippedA{}th} \begin{refsection} -\chapterauthor{Tim T\"onz, Naoki Pross} +\chapterauthor{Naoki Pross, Tim T\"onz} \input{papers/punktgruppen/intro} \input{papers/punktgruppen/symmetry} diff --git a/buch/papers/punktgruppen/piezo.tex b/buch/papers/punktgruppen/piezo.tex index 3c40aa8..e6b595a 100644 --- a/buch/papers/punktgruppen/piezo.tex +++ b/buch/papers/punktgruppen/piezo.tex @@ -20,7 +20,10 @@ Der Aufbau und somit auch die Symmetrie des Kristalles sind daher relevant für \begin{figure} \centering \includegraphics[]{papers/punktgruppen/figures/piezo-atoms} - \caption{Kristallstrukturen mit und ohne piezoelektrischer Eigenschaft} + \caption{ + Kristallstrukturen mit und ohne piezoelektrischer Eigenschaft. + \texttt{TODO: adapt figure for paper with subfigure markers.} + } \label{fig:punktgruppen:atomPiezo} \end{figure} @@ -68,4 +71,4 @@ und ein piezoelektrisches Feuerzeug bauen müssen, wobei Sie aber wissen, dass einer eine Punktsymmetrie aufweist, versuche sie es mit dem anderen. Ich muss aber anmerken, dass aus den $21$ möglichen Kristallsymmetrien ohne Punktsymmetrie einer nicht piezoelektrisch ist. -ein wenig glück brauchen Sie also immer noch. \ No newline at end of file +ein wenig glück brauchen Sie also immer noch. diff --git a/buch/papers/punktgruppen/symmetry.tex b/buch/papers/punktgruppen/symmetry.tex index a2c36e8..1dc6f98 100644 --- a/buch/papers/punktgruppen/symmetry.tex +++ b/buch/papers/punktgruppen/symmetry.tex @@ -39,10 +39,11 @@ nun eingeführt wird. % Vieleicht eine kurze Einführung in für die Definition, ich habe das gefühl, dass in der Definition die Symmetrie-Operation und die Gruppe auf einmal erklährt wird \subsubsection{Symetriegruppe} - Ein Objekt kann mehr als nur eine Symmetrie aufweisen. - Als Beispiel, kann das Quadrat in Abbildung \ref{fig:punktgruppen:geometry-example} - nicht nur um $\sigma$ sondern auch Diagonal gespiegelt werden oder um $90^\circ$ gedreht werden. - Fässt man die möglichen Symmetrien zusammen, entsteht eine Symmetriegruppe. +\texttt{TODO: review this paragraph, explain what is \(\mathds{1}\).} +Ein Objekt kann mehr als nur eine Symmetrie aufweisen. +Als Beispiel, kann das Quadrat in Abbildung \ref{fig:punktgruppen:geometry-example} +nicht nur um $\sigma$ sondern auch Diagonal gespiegelt werden oder um $90^\circ$ gedreht werden. +Fässt man die möglichen Symmetrien zusammen, entsteht eine Symmetriegruppe. \begin{definition}[Symmetriegruppe] Sei \(g\) eine Operation, die ein mathematisches Objekt unverändert lässt. @@ -85,6 +86,8 @@ Erzeugendensystemen komplexere Strukturen aufbauen. Definitionsgleichungen bauen ein Erzeugendensysteme. \end{definition} +\texttt{TODO: should put examples for generators?} \\ + Die Reflexionssymmetriegruppe ist nicht so interessant, da sie nur \(\left\{\mathds{1}, \sigma\right\}\) enthält. Kombiniert man sie jedoch mit der Rotation, erhält man die so genannte Diedergruppe @@ -112,7 +115,7 @@ Punktsymmetrie. Wir haben nun unseren Operationen Symbole gegeben, mit denen es tatsächlich möglich ist, Gleichungen zu schreiben. Die naheliegende Frage ist dann, könnte es sein, dass wir bereits etwas haben, das dasselbe tut? Natürlich, ja. -Um es formaler zu beschreiben, werden wir ein einige Begriffe einführen. +Um es formaler zu beschreiben, werden wir einige Begriffe einführen. \begin{definition}[Gruppenhomomorphismus] Seien \(G\) und \(H\) Gruppe mit unterschiedlicher Operation \(\diamond\) bzw. \(\star\). Ein Homomorphismus\footnote{ Für eine ausführlichere @@ -152,19 +155,20 @@ Um es formaler zu beschreiben, werden wir ein einige Begriffe einführen. \circ r) = \Phi(r^2)\Phi(r)\). \end{beispiel} +\texttt{TODO: rewrite section on translational symmetry.} %% TODO: title / fix continuity -Um das Konzept zu illustrieren, werden wir den umgekehrten Fall diskutieren: -eine Symmetrie, die keine Punktsymmetrie ist, die aber in der Physik sehr -nützlich ist, nämlich die Translationssymmetrie. Von einem mathematischen -Objekt \(U\) wird gesagt, dass es eine Translationssymmetrie \(Q(x) = x + a\) -hat, wenn es die Gleichung -\[ - U(x) = U(Q(x)) = U(x + a), -\] -für ein gewisses \(a\), erfüllt. Zum Beispiel besagt das erste Newtonsche -Gesetz, dass ein Objekt, auf das keine Kraft einwirkt, eine -zeitranslationsinvariante Geschwindigkeit hat, d.h. wenn \(\vec{F} = \vec{0}\) -dann \(\vec{v}(t) = \vec{v}(t + \tau)\). +% Um das Konzept zu illustrieren, werden wir den umgekehrten Fall diskutieren: +% eine Symmetrie, die keine Punktsymmetrie ist, die aber in der Physik sehr +% nützlich ist, nämlich die Translationssymmetrie. Von einem mathematischen +% Objekt \(U\) wird gesagt, dass es eine Translationssymmetrie \(Q(x) = x + a\) +% hat, wenn es die Gleichung +% \[ +% U(x) = U(Q(x)) = U(x + a), +% \] +% für ein gewisses \(a\), erfüllt. Zum Beispiel besagt das erste Newtonsche +% Gesetz, dass ein Objekt, auf das keine Kraft einwirkt, eine +% zeitranslationsinvariante Geschwindigkeit hat, d.h. wenn \(\vec{F} = \vec{0}\) +% dann \(\vec{v}(t) = \vec{v}(t + \tau)\). % \subsection{Sch\"onflies notation} -- cgit v1.2.1 From fa98365df7c1cda53ce96152c65a698c3474d049 Mon Sep 17 00:00:00 2001 From: Andreas Mueller Date: Mon, 12 Jul 2021 11:30:40 +0200 Subject: fix error in Debian, triggered by tab before \label --- buch/papers/reedsolomon/zusammenfassung.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/zusammenfassung.tex b/buch/papers/reedsolomon/zusammenfassung.tex index 568356f..3624f16 100644 --- a/buch/papers/reedsolomon/zusammenfassung.tex +++ b/buch/papers/reedsolomon/zusammenfassung.tex @@ -1,5 +1,5 @@ -\section{Zusammenfassung - \label{reedsolomon:section:zf}} +\section{Zusammenfassung +\label{reedsolomon:section:zf}} \rhead{Zusammenfassung} Dieser Abschnitt beinhaltet eine Übersicht über die Funktionsweise eines Reed-Solomon-Codes für beliebige endliche Körper. -- cgit v1.2.1 From c1f1ba0cadaf2bd9e3e541890a4188ab35a6f44a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Mon, 12 Jul 2021 17:16:10 +0200 Subject: Name angepasst --- buch/papers/clifford/Makefile.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'buch/papers') diff --git a/buch/papers/clifford/Makefile.inc b/buch/papers/clifford/Makefile.inc index 8cdd02e..e168ae8 100644 --- a/buch/papers/clifford/Makefile.inc +++ b/buch/papers/clifford/Makefile.inc @@ -13,7 +13,7 @@ dependencies-clifford = \ papers/clifford/3_MultiplikationVektoren.tex \ papers/clifford/4_GeometrischesProdukt.tex \ papers/clifford/5_PolareDarstellung.tex \ - papers/clifford/6_Dirac-Matrizen.tex \ + papers/clifford/6_PauliMatrizen.tex \ papers/clifford/7_Reflektion.tex \ papers/clifford/8_Rotation.tex \ papers/clifford/9_KomplexeZahlen.tex \ -- cgit v1.2.1 From 240e1143007363a796ec6fdf6438186de778e002 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Mon, 12 Jul 2021 19:00:39 +0200 Subject: divisions created --- buch/papers/reedsolomon/dtf.tex | 40 +++++++++++++++++++++++++ buch/papers/reedsolomon/einleitung.tex | 15 ++++++++++ buch/papers/reedsolomon/idee.tex | 53 ++++++++++++++++++++++++++++++++ buch/papers/reedsolomon/main.tex | 6 ++-- buch/papers/reedsolomon/teil0.tex | 22 -------------- buch/papers/reedsolomon/teil1.tex | 55 ---------------------------------- buch/papers/reedsolomon/teil3.tex | 40 ------------------------- 7 files changed, 111 insertions(+), 120 deletions(-) create mode 100644 buch/papers/reedsolomon/dtf.tex create mode 100644 buch/papers/reedsolomon/einleitung.tex create mode 100644 buch/papers/reedsolomon/idee.tex delete mode 100644 buch/papers/reedsolomon/teil0.tex delete mode 100644 buch/papers/reedsolomon/teil1.tex delete mode 100644 buch/papers/reedsolomon/teil3.tex (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/dtf.tex b/buch/papers/reedsolomon/dtf.tex new file mode 100644 index 0000000..00281fb --- /dev/null +++ b/buch/papers/reedsolomon/dtf.tex @@ -0,0 +1,40 @@ +% +% teil3.tex -- Beispiel-File für Teil 3 +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Diskrete Fourien Transformation +\label{reedsolomon:section:dtf}} +\rhead{Umwandlung mit DTF} +Sed ut perspiciatis unde omnis iste natus error sit voluptatem +accusantium doloremque laudantium, totam rem aperiam, eaque ipsa +quae ab illo inventore veritatis et quasi architecto beatae vitae +dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit +aspernatur aut odit aut fugit, sed quia consequuntur magni dolores +eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam +est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci +velit, sed quia non numquam eius modi tempora incidunt ut labore +et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima +veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, +nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure +reprehenderit qui in ea voluptate velit esse quam nihil molestiae +consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla +pariatur? + +\subsection{De finibus bonorum et malorum +\label{reedsolomon:subsection:malorum}} +At vero eos et accusamus et iusto odio dignissimos ducimus qui +blanditiis praesentium voluptatum deleniti atque corrupti quos +dolores et quas molestias excepturi sint occaecati cupiditate non +provident, similique sunt in culpa qui officia deserunt mollitia +animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis +est et expedita distinctio. Nam libero tempore, cum soluta nobis +est eligendi optio cumque nihil impedit quo minus id quod maxime +placeat facere possimus, omnis voluptas assumenda est, omnis dolor +repellendus. Temporibus autem quibusdam et aut officiis debitis aut +rerum necessitatibus saepe eveniet ut et voluptates repudiandae +sint et molestiae non recusandae. Itaque earum rerum hic tenetur a +sapiente delectus, ut aut reiciendis voluptatibus maiores alias +consequatur aut perferendis doloribus asperiores repellat. + + diff --git a/buch/papers/reedsolomon/einleitung.tex b/buch/papers/reedsolomon/einleitung.tex new file mode 100644 index 0000000..809f58a --- /dev/null +++ b/buch/papers/reedsolomon/einleitung.tex @@ -0,0 +1,15 @@ +% +% einleitung.tex -- Beispiel-File für die Einleitung +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Einleitung +\label{reedsolomon:section:einleitung}} +\rhead{Einleitung} +Der Reed-Solomon-Code ist entstaden im ... vom .. um, +das Problem der Daten Übertragung zu lösen. +In deiesem Abschnitt wird möglichst verständlich die mathematische Abfolge, Funktion oder Algorithmus erklärt. +Es wird jedoch nicht auf die technische Umsetzung oder Implementierung eingegangen. + + + diff --git a/buch/papers/reedsolomon/idee.tex b/buch/papers/reedsolomon/idee.tex new file mode 100644 index 0000000..497e2d5 --- /dev/null +++ b/buch/papers/reedsolomon/idee.tex @@ -0,0 +1,53 @@ +% +% teil1.tex -- Beispiel-File für das Paper +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Idee +\label{reedsolomon:section:idee}} +\rhead{Problemstellung} +Das Problem liegt darin Informationen, Zahlen, +zu Übertragen und Fehler zu erkennen. + +\rhead{Idee} +Eine +\begin{equation} +\int_a^b x^2\, dx += +\left[ \frac1312 x^3 \right]_a^b += +\frac{b^3-a^3}3. +\label{reedsolomon:equation1} +\end{equation} +Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, +consectetur, adipisci velit, sed quia non numquam eius modi tempora +incidunt ut labore et dolore magnam aliquam quaerat voluptatem. + +Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis +suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? +Quis autem vel eum iure reprehenderit qui in ea voluptate velit +esse quam nihil molestiae consequatur, vel illum qui dolorem eum +fugiat quo voluptas nulla pariatur? + +\subsection{De finibus bonorum et malorum +\label{reedsolomon:subsection:finibus}} +At vero eos et accusamus et iusto odio dignissimos ducimus qui +blanditiis praesentium voluptatum deleniti atque corrupti quos +dolores et quas molestias excepturi sint occaecati cupiditate non +provident, similique sunt in culpa qui officia deserunt mollitia +animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. + +Et harum quidem rerum facilis est et expedita distinctio +\ref{reedsolomon:section:loesung}. +Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil +impedit quo minus id quod maxime placeat facere possimus, omnis +voluptas assumenda est, omnis dolor repellendus +\ref{reedsolomon:section:folgerung}. +Temporibus autem quibusdam et aut officiis debitis aut rerum +necessitatibus saepe eveniet ut et voluptates repudiandae sint et +molestiae non recusandae. +Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis +voluptatibus maiores alias consequatur aut perferendis doloribus +asperiores repellat. + + diff --git a/buch/papers/reedsolomon/main.tex b/buch/papers/reedsolomon/main.tex index 4e2fd60..ec8fa22 100644 --- a/buch/papers/reedsolomon/main.tex +++ b/buch/papers/reedsolomon/main.tex @@ -28,10 +28,10 @@ Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren \end{itemize} % Joshua -\input{papers/reedsolomon/teil0.tex} -\input{papers/reedsolomon/teil1.tex} +\input{papers/reedsolomon/einleitung.tex} +\input{papers/reedsolomon/idee.tex} \input{papers/reedsolomon/teil2.tex} -\input{papers/reedsolomon/teil3.tex} +\input{papers/reedsolomon/dtf.tex} % Michael \input{papers/reedsolomon/endlichekoerper} diff --git a/buch/papers/reedsolomon/teil0.tex b/buch/papers/reedsolomon/teil0.tex deleted file mode 100644 index b7ae971..0000000 --- a/buch/papers/reedsolomon/teil0.tex +++ /dev/null @@ -1,22 +0,0 @@ -% -% einleitung.tex -- Beispiel-File für die Einleitung -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 0\label{reedsolomon:section:teil0}} -\rhead{Teil 0} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{reedsolomon:bibtex}. -At vero eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum -dolor sit amet. - -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit -amet. - - diff --git a/buch/papers/reedsolomon/teil1.tex b/buch/papers/reedsolomon/teil1.tex deleted file mode 100644 index 0aa9b41..0000000 --- a/buch/papers/reedsolomon/teil1.tex +++ /dev/null @@ -1,55 +0,0 @@ -% -% teil1.tex -- Beispiel-File für das Paper -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 1 -\label{reedsolomon:section:teil1}} -\rhead{Problemstellung} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. -Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit -aut fugit, sed quia consequuntur magni dolores eos qui ratione -voluptatem sequi nesciunt -\begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{reedsolomon:equation1} -\end{equation} -Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, -consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. - -Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis -suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? -Quis autem vel eum iure reprehenderit qui in ea voluptate velit -esse quam nihil molestiae consequatur, vel illum qui dolorem eum -fugiat quo voluptas nulla pariatur? - -\subsection{De finibus bonorum et malorum -\label{reedsolomon:subsection:finibus}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. - -Et harum quidem rerum facilis est et expedita distinctio -\ref{reedsolomon:section:loesung}. -Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil -impedit quo minus id quod maxime placeat facere possimus, omnis -voluptas assumenda est, omnis dolor repellendus -\ref{reedsolomon:section:folgerung}. -Temporibus autem quibusdam et aut officiis debitis aut rerum -necessitatibus saepe eveniet ut et voluptates repudiandae sint et -molestiae non recusandae. -Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis -voluptatibus maiores alias consequatur aut perferendis doloribus -asperiores repellat. - - diff --git a/buch/papers/reedsolomon/teil3.tex b/buch/papers/reedsolomon/teil3.tex deleted file mode 100644 index 91a8d4e..0000000 --- a/buch/papers/reedsolomon/teil3.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil3.tex -- Beispiel-File für Teil 3 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 3 -\label{reedsolomon:section:teil3}} -\rhead{Teil 3} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{reedsolomon:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - -- cgit v1.2.1 From 5aba69d709332033fe6d90b0c8fdc502d6eb208f Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Mon, 12 Jul 2021 22:23:53 +0200 Subject: Change arrow style in tikz figures --- .../punktgruppen/figures/combine-symmetries.pdf | Bin 14414 -> 14372 bytes buch/papers/punktgruppen/figures/lattice.pdf | Bin 27886 -> 27858 bytes buch/papers/punktgruppen/figures/piezo-atoms.pdf | Bin 35693 -> 35662 bytes buch/papers/punktgruppen/figures/piezo.pdf | Bin 16865 -> 16845 bytes buch/papers/punktgruppen/figures/projections.pdf | Bin 27953 -> 27953 bytes .../punktgruppen/figures/symmetric-shapes.pdf | Bin 12790 -> 15846 bytes .../papers/punktgruppen/tikz/combine-symmetries.tex | 1 + buch/papers/punktgruppen/tikz/lattice.tex | 13 +++++++------ buch/papers/punktgruppen/tikz/piezo-atoms.tex | 1 + buch/papers/punktgruppen/tikz/piezo.tex | 4 +++- buch/papers/punktgruppen/tikz/projections.tex | 1 + buch/papers/punktgruppen/tikz/symmetric-shapes.tex | 1 + 12 files changed, 14 insertions(+), 7 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/figures/combine-symmetries.pdf b/buch/papers/punktgruppen/figures/combine-symmetries.pdf index 13f7330..31d2a2e 100644 Binary files a/buch/papers/punktgruppen/figures/combine-symmetries.pdf and b/buch/papers/punktgruppen/figures/combine-symmetries.pdf differ diff --git a/buch/papers/punktgruppen/figures/lattice.pdf b/buch/papers/punktgruppen/figures/lattice.pdf index 6565be5..4436cdc 100644 Binary files a/buch/papers/punktgruppen/figures/lattice.pdf and b/buch/papers/punktgruppen/figures/lattice.pdf differ diff --git a/buch/papers/punktgruppen/figures/piezo-atoms.pdf b/buch/papers/punktgruppen/figures/piezo-atoms.pdf index 63da7a9..17fb179 100644 Binary files a/buch/papers/punktgruppen/figures/piezo-atoms.pdf and b/buch/papers/punktgruppen/figures/piezo-atoms.pdf differ diff --git a/buch/papers/punktgruppen/figures/piezo.pdf b/buch/papers/punktgruppen/figures/piezo.pdf index ca6192b..e0d7db4 100644 Binary files a/buch/papers/punktgruppen/figures/piezo.pdf and b/buch/papers/punktgruppen/figures/piezo.pdf differ diff --git a/buch/papers/punktgruppen/figures/projections.pdf b/buch/papers/punktgruppen/figures/projections.pdf index c9369b2..e7f8f86 100644 Binary files a/buch/papers/punktgruppen/figures/projections.pdf and b/buch/papers/punktgruppen/figures/projections.pdf differ diff --git a/buch/papers/punktgruppen/figures/symmetric-shapes.pdf b/buch/papers/punktgruppen/figures/symmetric-shapes.pdf index 0b3ba54..e4539a5 100644 Binary files a/buch/papers/punktgruppen/figures/symmetric-shapes.pdf and b/buch/papers/punktgruppen/figures/symmetric-shapes.pdf differ diff --git a/buch/papers/punktgruppen/tikz/combine-symmetries.tex b/buch/papers/punktgruppen/tikz/combine-symmetries.tex index 84e0a76..f4ac52c 100644 --- a/buch/papers/punktgruppen/tikz/combine-symmetries.tex +++ b/buch/papers/punktgruppen/tikz/combine-symmetries.tex @@ -13,6 +13,7 @@ \begin{document} \begin{tikzpicture}[ + >=latex, dot/.style = { draw, circle, thick, black, fill = gray!40!white, minimum size = 2mm, diff --git a/buch/papers/punktgruppen/tikz/lattice.tex b/buch/papers/punktgruppen/tikz/lattice.tex index 9c05af3..391ef20 100644 --- a/buch/papers/punktgruppen/tikz/lattice.tex +++ b/buch/papers/punktgruppen/tikz/lattice.tex @@ -13,12 +13,13 @@ \begin{document} \begin{tikzpicture}[ - dot/.style = { - draw, circle, thick, black, fill = gray!40!white, - minimum size = 2mm, - inner sep = 0pt, - outer sep = 1mm, - }, + >=latex, + dot/.style = { + draw, circle, thick, black, fill = gray!40!white, + minimum size = 2mm, + inner sep = 0pt, + outer sep = 1mm, + }, ] \begin{scope} diff --git a/buch/papers/punktgruppen/tikz/piezo-atoms.tex b/buch/papers/punktgruppen/tikz/piezo-atoms.tex index 82a2710..1811392 100644 --- a/buch/papers/punktgruppen/tikz/piezo-atoms.tex +++ b/buch/papers/punktgruppen/tikz/piezo-atoms.tex @@ -13,6 +13,7 @@ \begin{document} \begin{tikzpicture}[ + >=latex, node distance = 2mm, charge/.style = { circle, draw = black, thick, diff --git a/buch/papers/punktgruppen/tikz/piezo.tex b/buch/papers/punktgruppen/tikz/piezo.tex index 1d16ab7..736dbad 100644 --- a/buch/papers/punktgruppen/tikz/piezo.tex +++ b/buch/papers/punktgruppen/tikz/piezo.tex @@ -12,7 +12,9 @@ \usetikzlibrary{calc} \begin{document} -\begin{tikzpicture} +\begin{tikzpicture}[ + >=latex, + ] \begin{scope}[ node distance = 0cm ] diff --git a/buch/papers/punktgruppen/tikz/projections.tex b/buch/papers/punktgruppen/tikz/projections.tex index a763e77..64ab468 100644 --- a/buch/papers/punktgruppen/tikz/projections.tex +++ b/buch/papers/punktgruppen/tikz/projections.tex @@ -13,6 +13,7 @@ \begin{document} \begin{tikzpicture}[ + >=latex, classcirc/.style = { draw = gray, thick, circle, minimum size = 12mm, diff --git a/buch/papers/punktgruppen/tikz/symmetric-shapes.tex b/buch/papers/punktgruppen/tikz/symmetric-shapes.tex index b2c051f..688fb61 100644 --- a/buch/papers/punktgruppen/tikz/symmetric-shapes.tex +++ b/buch/papers/punktgruppen/tikz/symmetric-shapes.tex @@ -14,6 +14,7 @@ \begin{document} \begin{tikzpicture}[ + >=latex, node distance = 2cm, shapetheme/.style = { very thick, draw = black, fill = magenta!20!white, -- cgit v1.2.1 From 60d4a3350dc813cbd17c8dd8cf0a4b50b0f84346 Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Wed, 14 Jul 2021 17:01:21 +0200 Subject: various chapters updated, zusammenfassung filld with content --- buch/papers/reedsolomon/codebsp.tex | 26 ++++++++------- buch/papers/reedsolomon/decmitfehler.tex | 18 +++++----- buch/papers/reedsolomon/decohnefehler.tex | 17 ++++++---- buch/papers/reedsolomon/rekonstruktion.tex | 7 ++-- buch/papers/reedsolomon/zusammenfassung.tex | 52 +++++++++++++++++++++++++++-- 5 files changed, 87 insertions(+), 33 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/codebsp.tex b/buch/papers/reedsolomon/codebsp.tex index 0339d9c..5661d26 100644 --- a/buch/papers/reedsolomon/codebsp.tex +++ b/buch/papers/reedsolomon/codebsp.tex @@ -7,11 +7,10 @@ \label{reedsolomon:section:codebsp}} \rhead{Codierung eines Beispiels} -Um die Funktionsweise eines Reed-Solomon-Codes besser zu verstehen werden wir die einzelnen Probleme und ihre Lösungen anhand eines Beispiels betrachten. -Da wir in endlichen Körpern rechnen, werden wir zuerst solch einen Körper festlegen. Dabei müssen wir die \textcolor{red}{Definition 4.6 (verweis auf eine Definition im Buch ohne label)} berücksichtigen, die besagt, dass nur Primzahlen für endliche Körper in Frage kommen. +Um die Funktionsweise eines Reed-Solomon-Codes besser zu verstehen, werden wir die einzelnen Probleme und ihre Lösungen anhand eines Beispiels betrachten. +Da wir in endlichen Körpern rechnen, werden wir zuerst solch einen Körper festlegen. Dabei müssen wir die Definition \ref{buch:endlichekoerper:def:galois-koerper} berücksichtigen, die besagt, dass nur Primzahlen für endliche Körper in Frage kommen. Wir legen für unser Beispiel den endlichen Körper $\mathbb{F}_{q}$ mit $q = 11$ fest. -Zur Hilfestellung können dazu die beiden Tabellen \ref{reedsolomon:subsection:adtab} und -\ref{reedsolomon:subsection:mptab} hinzugezogen werden. Diese Tabellen enthalten die Resultate der arithmetischen Operationen im Körper $\mathbb{F}_{11}$, die durchgeführt werden können. +Zur Hilfestellung zum Rechnen in $\mathbb{F}_{11}$ können die beiden Tabellen \ref{reedsolomon:subsection:adtab} und \ref{reedsolomon:subsection:mptab} hinzugezogen werden. Diese Tabellen enthalten die Resultate der arithmetischen Operationen im Körper $\mathbb{F}_{11}$, die durchgeführt werden können. Aus der Definition der endlichen Körper (ersichtlich auch in den Tabellen) folgt, dass uns nur die Zahlen \[\mathbb{F}_{11} = \{0,1,2,3,4,5,6,7,8,9,10\}\] zur Verfügung stehen und somit $11 = 0$ gelten muss. % OLD TEXT @@ -78,15 +77,16 @@ dar. \label{reedsolomon:subsection:diskFT}} In einem vorherigen Abschnitt \textcolor{red}{(???)} haben wir schon einmal die diskrete Fouriertransformation zum Codieren einer Nachricht verwendet. In den endlichen Körpern wird dies jedoch nicht gelingen, da die Eulerische Zahl $e$ in endlichen Körpern nicht existiert. -Wir wählen deshalb eine Zahl $a$, die die gleichen Aufgaben haben soll wie $e^{\frac{j}{2 \pi}}$ in der diskreten Fouriertransformation, nur mit dem Unterschied, dass $a$ in $\mathbb{F}_{11}$ ist. Dazu soll die Potenz von $a$ den gesamten Zahlenbereich von $\mathbb{F}_{11}$ abdecken, um +Wir wählen deshalb eine Zahl $a$, die die gleichen Aufgaben haben soll wie $e^{\frac{j}{2 \pi}}$ in der diskreten Fouriertransformation, nur mit dem Unterschied, dass $a$ in $\mathbb{F}_{11}$ ist. Dazu soll die Potenz von $a$ den gesamten Zahlenbereich von $\mathbb{F}_{11}$ abdecken. +Dazu ändern wir die Darstellung von \[ \mathbb{F}_{11} = \{0,1,2,3,4,5,6,7,8,9,10\} \] -in +in die von $a$ abhängige Schreibweise \[ \mathbb{Z}_{11}\setminus\{0\} = \{a^0, a^1, a^2, a^3, a^4, a^5, a^6, a^7, a^8, a^9\}. \] -umzuschreiben. +%Jetzt brauchen wir nur noch eine geeignete Zahl für $a$ zu finden. % Old Text %Wir suchen also eine Zahl $a$, die in endlichen Körpern existiert und den gesamten Zahlenbereich von $\mathbb{F}_{11}$ abdecken kann. %Dazu schreiben wir @@ -116,7 +116,7 @@ umzuschreiben. \subsubsection{Die primitiven Einheitswurzeln \label{reedsolomon:subsection:primsqrt}} -Wenn wir jetzt sämtliche Zahlen von $\mathbb{F}_{11}$ in $a$ einsetzen +Wenn wir jetzt Zahlen von $\mathbb{F}_{11}$ an Stelle von $a$ einsetzen, erhalten wir \begin{center} \begin{tabular}{c c c c c c c} $a = 1$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 1, 1, 1, 1, 1, 1, 1, 1, 1\}$ & $\neq$ & $\mathbb{F}_{11}\setminus\{0\}$ \\ @@ -128,7 +128,7 @@ $a = 6$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 6, 3, 7, 9, 1 $a = 7$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 7, 5, 2, 3, 10, 4, 6, 9, 8\}$ & $ = $ & $\mathbb{F}_{11}\setminus\{0\}$ \\ $a = 8$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 8, 9, 6, 4, 10, 3, 2, 5, 7\}$ & $ = $ & $\mathbb{F}_{11}\setminus\{0\}$ \\ $a = 9$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 9, 4, 3, 5, 1, 9, 4, 3, 5\}$ & $\neq$ & $\mathbb{F}_{11}\setminus\{0\}$ \\ -$a = 10$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 10, 1, 10, 1, 10, 1, 10, 1, 10\}$ & $\neq$ & $\mathbb{F}_{11}\setminus\{0\}$ \\ +$a = 10$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 10, 1, 10, 1, 10, 1, 10, 1, 10\}$ & $\neq$ & $\mathbb{F}_{11}\setminus\{0\}$. \\ \end{tabular} \end{center} %\begin{center} @@ -146,13 +146,15 @@ $a = 10$ & $\Rightarrow$ & $\{a^i | 0 \le i \le 10\}$ & $=$ & $\{1, 10, 1, 10, 1 %$a = 10 :$& $\qquad \mathbb{Z}_{11}\setminus\{0\}$ &$=$& $\{1, 10, 1, 10, 1, 10, 1, 10, 1, 10\}$ %\end{tabular} %\end{center} -so fällt uns auf, dass für $a$ die Zahlen $2,6,7,8$ erhalten, die tatsächlich den gesamten Zahlenraum von $\mathbb{F}_{11}$ abbilden. Solche Zahlen werden \em primitive Einheitswurzel \em genannt. +Es fällt auf, dass wir für $a$ die Zahlen $2,6,7,8$ Mengen erhalten, die tatsächlich den gesamten Zahlenraum von $\mathbb{F}_{11}$ abbilden. Solche Zahlen werden \em primitive Einheitswurzel \em genannt. Wenden wir diese Vorgehensweise auch für andere endliche Körper an, so werden wir sehen, dass wir immer mindestens zwei solcher Einheitswurzel finden werden. Somit ist es uns überlassen, eine dieser Einheitswurzel auszuwählen, mit der wir weiter rechnen wollen. Für das Beispiel wählen wir die Zahl $a = 8$. \subsubsection{Bildung einer Transformationsmatrix \label{reedsolomon:subsection:transMat}} -Mit der Wahl einer Einheitswurzel ist es uns jetzt möglich, unsere Nachricht zu Codieren. Daraus sollen wir dann einen Übertragungsvektor $v$ erhalten, den wir an den Empfänger schicken können. Für die Codierung müssen wir alle $a^i$ in das Polynom $m(X)$ einsetzen. Da wir $a^i = 8^i$ gewählt haben, ergibt sich daraus +Mit der Wahl einer Einheitswurzel ist es uns jetzt möglich, unsere Nachricht zu Codieren. Daraus sollen wir dann einen Übertragungsvektor $v$ erhalten, den wir an den Empfänger schicken können. +Für die Codierung setzen wir alle Zahlen in $\mathbb{F}_{11}\setminus\{0\}$ nacheinander in $m(X)$ ein. Da wir zuvor eine von $a$ abhängige Schreibweise gewählt haben setzen wir stattdessen $a^i$ ein mit $a = 8$ als die von uns gewählten primitiven Einheitswurzel. Daraus ergibt sich +%Für die Codierung müssen wir alle $a^i$ in das Polynom $m(X)$ einsetzen. Da wir $a^i = 8^i$ gewählt haben, ergibt sich daraus % %Damit wir unsere Nachricht codieren können, müssen wir $8^i$ in $m(X)$ einsetzen. % @@ -168,7 +170,7 @@ als unser Übertragungsvektor. \subsection{Allgemeine Codierung \label{reedsolomon:subsection:algCod}} -Um das Ganze noch ein wenig übersichtlicher zu gestalten können wir die Polynome zu einer Matrix zusammenfassen, die unsere Transformationsmatrix $A$ bildet. +Um das Ganze noch ein wenig übersichtlicher zu gestalten, können wir die Polynome zu einer Matrix zusammenfassen, die unsere Transformationsmatrix $A$ bildet. Für die allgemeine Codierung benötigen wir die Nachricht $m$, die codiert werden soll, sowie die Transformationsmatrix $A$. Daraus erhalten wir den Übertragungsvektor $v$. Setzen wir die Zahlen aus dem Beispiel ein erhalten wir folgende Darstellung: \[ diff --git a/buch/papers/reedsolomon/decmitfehler.tex b/buch/papers/reedsolomon/decmitfehler.tex index a46d7da..c7c86ad 100644 --- a/buch/papers/reedsolomon/decmitfehler.tex +++ b/buch/papers/reedsolomon/decmitfehler.tex @@ -16,7 +16,7 @@ Der Übertragungskanal im Beispiel weisst jetzt den Fehlervektor u = [0, 0, 0, 3, 0, 0, 0, 0, 2, 0] \] auf. -Senden wir jetzt unser Übertragungsvektor $v$ durch diesen Kanal addiert sich der Fehlervektor $u$ auf unsere Übertragung und wir erhalten +Senden wir jetzt unser Übertragungsvektor $v$ durch diesen Kanal, addiert sich der Fehlervektor $u$ auf unsere Übertragung und wir erhalten \begin{center} \begin{tabular}{c | c r } @@ -127,7 +127,7 @@ Setzen wir jetzt unsere Einheitswurzel aus dem Beispiel ein so erhalten wir \end{tabular} \end{center} und damit die Information, dass allen Stellen, die nicht Null sind, Fehler enthalten. -Aus der Tabelle lesen wir, das in unserem Beispiel die Fehler an der Stelle drei und acht zu finden sind. +Aus der Tabelle lesen wir ab, das in unserem Beispiel die Fehler an der Stelle drei und acht zu finden sind. Für das einfache Bestimmen von Hand mag dies ja noch ausreichen, jedoch können wir mit diesen Stellen nicht das Lokatorpolynom bestimmen, denn dafür bräuchten wir alle Nullstellen, an denen es Fehler gegeben hat (also sozusagen genau das umgekehrte). Um dies zu erreichen wenden wir eine andere Herangehensweise und nehmen uns den Satz von Fermat sowie den kleinsten gemeinsamen Teiler zur Hilfe. @@ -140,7 +140,7 @@ f(X) = X^{q-1} -1 = 0 \] gilt für jedes $X$. Setzen wir das $q$ von unserem Beispiel ein \[ -f(X) = X^{10}-1 = 0 \qquad \text{für } X = \{1,2,3,4,5,6,7,8,9,10\} +f(X) = X^{10}-1 = 0 \qquad \text{für } X \in \{1,2,3,4,5,6,7,8,9,10\} \] und stellen dies als Faktorisierung dar. So ergibt sich die Darstellung \[ @@ -173,7 +173,7 @@ Das kgV hat nämlich die Eigenschaft sämtliche Nullstellen zu finden, also nich ersichtlich ist. Aus dem vorherigen Abschnitt wissen wir auch, dass $d(X)$ alle korrekten Nullstellen beinhaltet. Teilen wir das kgV jetzt auf in \[ -\operatorname{kgV}(f(X),d(X)) = d(X) \cdot l(X) +\operatorname{kgV}(f(X),d(X)) = d(X) \cdot l(X), \] sollten wir für $l(X)$ eine Liste mit allen fehlerhaften Nullstellen erhalten. Somit ist @@ -192,14 +192,16 @@ In Abschnitt \ref{reedsolomon:section:decmitfehler} haben wir d(X) = r(X) - m(X) \] in Abhängigkeit von $m(X)$ berechnet. -Jedoch haben wir ausser acht gelassen, dass $m(X)$ auf der Empfängerseite nicht existiert und somit gänzlich unbekannt ist. +Jedoch haben wir ausser acht gelassen, dass $m(X)$ auf der Empfängerseite nicht verfügbar und somit gänzlich unbekannt ist. Es scheint so als würde dieser Lösungsansatz, den wir bisher verfolgt haben, nicht funktioniert. -Wir könnten uns höchstens noch fragen, ob wir tatsächlich nichts über den Nachrichtenvektor im Beispiel wissen. Wenn wir noch einmal den Vektor betrachten als +Wir könnten uns höchstens noch fragen, ob wir tatsächlich nichts über den Nachrichtenvektor im Beispiel wissen. + +Wenn wir noch einmal den Vektor betrachten als \[ m = [0,0,0,0,4,7,2,5,8,1] \] -fällt uns aber auf, dass wir doch etwas über diesen Vektor wissen, nämlich den Wert der ersten $2t$ (im Beispiel vier) stellen. -Im Normalfall sollen diese nämlich den Wert null betragen und somit sind nur die letzten $k$ stellen (im Beispiel sechs) für uns unbekannt, dargestellt als +fällt uns aber auf, dass wir doch etwas über diesen Vektor wissen, nämlich den Wert der ersten $2t$ (im Beispiel vier) Stellen. +Im Normalfall sollen diese nämlich den Wert $0$ haben und somit sind nur die letzten $k$ Stellen (im Beispiel sechs) für uns unbekannt, dargestellt als \[ m = [0,0,0,0,?,?,?,?,?,?]. \] diff --git a/buch/papers/reedsolomon/decohnefehler.tex b/buch/papers/reedsolomon/decohnefehler.tex index 0470db0..fd616d3 100644 --- a/buch/papers/reedsolomon/decohnefehler.tex +++ b/buch/papers/reedsolomon/decohnefehler.tex @@ -33,11 +33,12 @@ Definiert ist sie als \[ F(\omega) = \int_{-\infty}^{\infty} f(t) \mathrm{e}^{-j\omega t} dt \qquad \Rightarrow \qquad \mathfrak{F}^{-1}(F(\omega)) = f(t) = \frac{1}{2 \pi} \int_{-\infty}^{\infty} F(\omega) \mathrm{e}^{j \omega t} d\omega. \] -Damit beschäftigen wir uns im Abschnitt \ref{reedsolomon:subsection:sfaktor} weiter, konkret suchen wir momentan aber eine Inverse für unsere primitive Einheitswurzel $a$. +Im wesentlichen ändert sich bei der inversen diskreten Fouriertransformation $e^{j/2\pi}$ zu $e^{-j/2\pi}$. Zusätzlich benötigt die inverse noch einen Korrekturfaktor $1/n$. Wir erwarten daher, dass wir auch im endlichen Körper $A$ die Zahl $a$ durch $a^{-1}$ ersetzen können. Mit der primitiven Einheitswurzel ergibt das +%Damit beschäftigen wir uns im Abschnitt \ref{reedsolomon:subsection:sfaktor} weiter, konkret suchen wir momentan aber eine Inverse für unsere primitive Einheitswurzel $a$. \[ -8^1 \qquad \rightarrow \qquad 8^{-1} +8^1 \qquad \rightarrow \qquad 8^{-1}. \] -Mit einem solchen Problem haben wir uns bereits in Abschnitt \ref{buch:section:euklid} befasst und so den euklidischen Algorithmus kennengelernt, den wir auf unseren Fall anwenden können. +Mit einem solchen Problem haben wir uns bereits in Abschnitt \ref{buch:section:euklid} befasst und so den euklidischen Algorithmus kennengelernt, den wir auf diesen Fall anwenden können. % Old Text %Im Abschnitt \textcolor{red}{4.1} haben wir den euklidischen Algorithmus kennengelernt, den wir auf unseren Fall anwenden können. @@ -76,7 +77,9 @@ Daraus erhalten wir \end{tabular} \end{center} -als Inverse der primitiven Einheitswurzel. Die inverse Transformationsmatrix $A^{-1}$ bilden wir, indem wir jetzt die inverse primitive Einheitswurzel anstelle der primitiven Einheitswurzel in die Matrix einsetzen: +als Inverse der primitiven Einheitswurzel. +Alternativ können wir das Resultat auch aus der Tabelle \ref{reedsolomon:subsection:mptab} ablesen. +Die inverse Transformationsmatrix $A^{-1}$ bilden wir, indem wir jetzt die inverse primitive Einheitswurzel anstelle der primitiven Einheitswurzel in die Matrix einsetzen: \[ \begin{pmatrix} 8^0 & 8^0 & 8^0 & 8^0 & \dots & 8^0 \\ @@ -102,9 +105,9 @@ als Inverse der primitiven Einheitswurzel. Die inverse Transformationsmatrix $A^ \subsection{Der Faktor $s$ \label{reedsolomon:subsection:sfaktor}} Die diskrete Fouriertransformation benötigt für die Inverse einen Vorfaktor von $\frac{1}{2\pi}$. -Primitiv nehmen wir an, dass wir für die Inverse Transformationsmatrix ebenfalls einen benötigen. +Wir müssen also damit rechnen, dass wir für die Inverse Transformationsmatrix ebenfalls einen solchen Vorfaktor benötigen. Nur stellt sich jetzt die Frage, wie wir diesen Vorfaktor in unserem Fall ermitteln können. -Dafür betrachten wir eine Regel aus der Linearen Algebra, nämlich dass +Dafür betrachten wir eine Regel aus der linearen Algebra, nämlich dass \[ A \cdot A^{-1} = E @@ -148,7 +151,7 @@ Aus der letzten Matrix folgt, dass wir \[ s = \dfrac{1}{10} \] -als unseren Vorfaktor setzen müssen um die Gleichung \ref{reedsolomon:equation:sfaktor} zu erfüllen. Da wir in $\mathbb{F}_{11}$ nur mit ganzen Zahlen arbeiten schreiben wir $\frac{1}{10}$ in $10^{-1}$ um und bestimmen diese Inverse erneut mit dem euklidischen Algorithmus und erhalten für $10^{-1} = 10$ als unseren Vorfaktor in $\mathbb{F}_{11}$. +als unseren Vorfaktor setzen müssen um, die Gleichung \ref{reedsolomon:equation:sfaktor} zu erfüllen. Da wir in $\mathbb{F}_{11}$ nur mit ganzen Zahlen arbeiten, schreiben wir $\frac{1}{10}$ in $10^{-1}$ um und bestimmen diese Inverse erneut mit dem euklidischen Algorithmus. So erhalten wir $10^{-1} = 10$ als Vorfaktor in $\mathbb{F}_{11}$. % %erfüllt wird. Wir schreiben den Bruch um in $\frac{1}{10} = 10^{-1}$ und wenden darauf erneut den euklidischen Algorithmus an und erhalten somit den Vorfaktor $10^{-1} = 10 = s$ in $\mathbb{F}_{11}$. % diff --git a/buch/papers/reedsolomon/rekonstruktion.tex b/buch/papers/reedsolomon/rekonstruktion.tex index 04e748c..38d54a2 100644 --- a/buch/papers/reedsolomon/rekonstruktion.tex +++ b/buch/papers/reedsolomon/rekonstruktion.tex @@ -4,7 +4,7 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Nachricht Rekonstruieren +\section{Nachricht rekonstruieren \label{reedsolomon:section:rekonstruktion}} \rhead{Rekonstruktion der Nachricht} Im letzten Abschnitt haben wir eine Möglichkeit gefunden, wie wir die fehlerhaften Stellen lokalisieren können. @@ -49,7 +49,7 @@ Wir stellen also die Matrix auf und markieren gleichzeitig die Fehlerstellen: \end{pmatrix} . \] -Die rot markierten Stellen im Übertragungsvektor enthalten Fehler und bringt uns daher keinen weiterer Nutzen. +Die rot markierten Stellen im Übertragungsvektor enthalten Fehler und bringt uns daher keinen weiteren Nutzen. Aus diesem Grund werden diese Stellen aus dem Vektor entfernt, was wir hier ohne Probleme machen können, da dieser Code ja über Fehlerkorrekturstellen verfügt, deren Aufgabe es ist, eine bestimmte Anzahl an Fehler kompensieren zu können. Die dazugehörigen Zeilen in der Matrix werden ebenfalls entfernt, da die Matrix gleich viele Zeilen wie im Übertragungsvektor aufweisen muss, damit man ihn decodieren kann. @@ -78,6 +78,7 @@ Daraus resultiert Die Matrix ist jedoch nicht mehr quadratisch, was eine Rekonstruktion durch Inversion ausschliesst. Um die quadratische Form wieder herzustellen müssen wir zwei Spalten aus der Matrix entfernen. Wir kennen aber das Resultat aus den letzten vier Spalten, da wir wissen, das die Nachricht aus Nutzdatenteil und Fehlerkorrekturteil besteht, wobei der letzteres bekanntlich aus lauter Nullstellen besteht. +Wir nehmen die markierten Spalten in \[ \begin{pmatrix} 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ 7 \\ 4 \\ @@ -98,7 +99,7 @@ Wir kennen aber das Resultat aus den letzten vier Spalten, da wir wissen, das di m_0 \\ m_1 \\ m_2 \\ m_3 \\ m_4 \\ m_5 \\ \textcolor{darkgreen}{m_6} \\ \textcolor{darkgreen}{m_7} \\ \textcolor{darkgreen}{m_8} \\ \textcolor{darkgreen}{m_9} \\ \end{pmatrix} \] -Wir nehmen die entsprechenden Spalten aus der Matrix heraus und erhalten so das Überbestimmte Gleichungssystem +aus der Matrix heraus und erhalten so das Überbestimmte Gleichungssystem \[ \begin{pmatrix} 5 \\ 3 \\ 6 \\ 2 \\ 10 \\ 2 \\ \textcolor{red}{7} \\ \textcolor{red}{4} \\ diff --git a/buch/papers/reedsolomon/zusammenfassung.tex b/buch/papers/reedsolomon/zusammenfassung.tex index 568356f..b4050b8 100644 --- a/buch/papers/reedsolomon/zusammenfassung.tex +++ b/buch/papers/reedsolomon/zusammenfassung.tex @@ -3,13 +3,59 @@ \rhead{Zusammenfassung} Dieser Abschnitt beinhaltet eine Übersicht über die Funktionsweise eines Reed-Solomon-Codes für beliebige endliche Körper. -TODO: - \subsubsection{Schritt 1: primitives Element} +Zu Beginn soll entschieden werden, in welchem endlichen Körper $\mathbb{F}_{q}$ gerechnet werden soll. +Ausserdem muss im gewählten Körper eine primitive Einheitswurzel gefunden, bzw. bestimmt werden. \subsubsection{Schritt 2: Codierung} +Für die Codierung wird die Nachricht als Koeffizienten des Polynoms $m(X)$ geschrieben, anschliessend wird $a^i$ in $m(X)$ eingesetzt. +Daraus ergibt sich die Codierungsmatrix +\[ +A(a) = +\begin{pmatrix} +a^0 & a^0 & a^0 & \dots \\ +a^0 & a^1 & a^2 & \dots \\ +a^0 & a^2 & a^4 & \dots \\ +\vdots&\vdots&\vdots&\ddots +\end{pmatrix} +. +\] +Mit dieser Matrix können wir den Nachrichtenblock zum Übertragungsvektor codieren. \subsubsection{Schritt 3: Decodierung ohne Fehler} +Im ersten Schritt zur Decodierung muss geprüft werden, ob der Übertragungsvektor Fehler beinhaltet. +Ist dies nicht der Fall, so kann die Matrix $A(a)$ invertiert werden mit +\[ +A(a)^{-1} = \frac{1}{q-1} \cdot A(a^{-1}). +\] +Die Codierungsmatrix ändert sich somit zur Decodierungsmatrix +\[ +\begin{pmatrix} + a^0 & a^0 & a^0 & \dots \\ + a^0 & a^1 & a^2 & \dots \\ + a^0 & a^2 & a^4 & \dots \\ + \vdots&\vdots&\vdots &\ddots +\end{pmatrix} += +\frac{1}{q-1} +\cdot +\begin{pmatrix} + a^0 & a^0 & a^0 & \dots \\ + a^0 & a^{-1} & a^{-2} & \dots \\ + a^0 & a^{-2} & a^{-4} & \dots \\ + \vdots&\vdots&\vdots&\ddots +\end{pmatrix} +. +\] +Daraus lässt sich der Nachrichtenblock aus dem Übertragungsvektor rekonstruieren. \subsubsection{Schritt 4: Decodierung mit Fehler} - +Sollte der Übertragungsvektor fehlerhaft empfangen werden, so kann der Nachrichtenblock nicht durch invertieren der Matrix rekonstruiert werden. +Zur Lokalisierung der Fehlerstellen nehmen wir das Polynom $f(X)$ zur Hilfe, welches wir über den Satz von Fermat bestimmt haben. +Berechnen wir daraus das $\operatorname{kgV}$ von $f(X)$ und $d(X)$, so erhalten wir ein Lokatorpolynom. +Durch das bestimmen der Exponenten erhalten wir die Fehlerhaften Stellen im Übertragungsvektor. +Für die Rekonstruktion stellen wir ein Gleichungssystem auf und entfernen daraus die Fehlerhaften Zeilen. +Im Anschluss kann das verkleinerte Gleichungssystem gelöst werden. +Als Resultat erhalten wir die fehlerfreie Nachricht. +%Aus diesem Grund suchen wir nach einem Lokatorpolynom, welches uns die Fehlerhaften Stellen im Übertragungsvektor anzeigt. +%Dazu nehmen wir das Polynom $f(X)$, welches wir durch den Satz von Fermat erhalten, und berechnen so das $\operatorname{kgV}(f(X),d(X))$ und kommen so auf das Lokatorpolynom $l(X)$. Durch das bestimmen von den Exponenten erhalten wir die Fehlerstellen, welche wir aus dem Gleichungssystem entfernen müssen. Übrig bleibt das berechnen dieses Gleichungssystems. -- cgit v1.2.1 From 7f6814025b2f4ca6a2cc04488a92cd484444c4d7 Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Wed, 14 Jul 2021 17:31:13 +0200 Subject: file description updated --- buch/papers/reedsolomon/codebsp.tex | 4 ++-- buch/papers/reedsolomon/decmitfehler.tex | 4 ++-- buch/papers/reedsolomon/decohnefehler.tex | 4 ++-- buch/papers/reedsolomon/endlichekoerper.tex | 4 ++-- buch/papers/reedsolomon/hilfstabellen.tex | 5 ++--- buch/papers/reedsolomon/main.tex | 2 +- buch/papers/reedsolomon/rekonstruktion.tex | 5 ++--- buch/papers/reedsolomon/restetabelle1.tex | 6 ++++-- buch/papers/reedsolomon/restetabelle2.tex | 6 ++++-- buch/papers/reedsolomon/zusammenfassung.tex | 5 +++++ 10 files changed, 26 insertions(+), 19 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/codebsp.tex b/buch/papers/reedsolomon/codebsp.tex index 5661d26..8430ebd 100644 --- a/buch/papers/reedsolomon/codebsp.tex +++ b/buch/papers/reedsolomon/codebsp.tex @@ -1,7 +1,7 @@ % -% teil3.tex -- Beispiel-File für Teil 3 +% codebsp.tex -- Codierung eines Beispiels % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% (c) 2021 Michael Steiner, Hochschule Rapperswil % \section{Codierung eines Beispiels \label{reedsolomon:section:codebsp}} diff --git a/buch/papers/reedsolomon/decmitfehler.tex b/buch/papers/reedsolomon/decmitfehler.tex index c7c86ad..598cf68 100644 --- a/buch/papers/reedsolomon/decmitfehler.tex +++ b/buch/papers/reedsolomon/decmitfehler.tex @@ -1,7 +1,7 @@ % -% teil3.tex -- Beispiel-File für Teil 3 +% decmitfehler.tex -- Decodierung mit Fehler % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% (c) 2021 Michael Steiner, Hochschule Rapperswil % \section{Decodierung: Ansatz mit Fehlerkorrektur \label{reedsolomon:section:decmitfehler}} diff --git a/buch/papers/reedsolomon/decohnefehler.tex b/buch/papers/reedsolomon/decohnefehler.tex index fd616d3..50bd8d6 100644 --- a/buch/papers/reedsolomon/decohnefehler.tex +++ b/buch/papers/reedsolomon/decohnefehler.tex @@ -1,7 +1,7 @@ % -% teil3.tex -- Beispiel-File für Teil 3 +% decohnefehler.tex -- Decodierung ohne Fehler % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% (c) 2021 Michael Steiner, Hochschule Rapperswil % \section{Decodierung: Ansatz ohne Fehler \label{reedsolomon:section:decohnefehler}} diff --git a/buch/papers/reedsolomon/endlichekoerper.tex b/buch/papers/reedsolomon/endlichekoerper.tex index 19e5dd4..1d196fd 100644 --- a/buch/papers/reedsolomon/endlichekoerper.tex +++ b/buch/papers/reedsolomon/endlichekoerper.tex @@ -1,7 +1,7 @@ % -% teil1.tex -- Beispiel-File für das Paper +% endlichekoerper.tex -- endliche Körper % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% (c) 2021 Michael Steiner, Hochschule Rapperswil % \section{Reed-Solomon in Endlichen Körpern \label{reedsolomon:section:endlichekoerper}} diff --git a/buch/papers/reedsolomon/hilfstabellen.tex b/buch/papers/reedsolomon/hilfstabellen.tex index b006f21..24fabdf 100644 --- a/buch/papers/reedsolomon/hilfstabellen.tex +++ b/buch/papers/reedsolomon/hilfstabellen.tex @@ -1,8 +1,7 @@ % -% hilfstabellen.tex -% Autor: Michael Steiner +% hilfstabellen.tex -- Hilfstabellen % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% (c) 2021 Michael Steiner, Hochschule Rapperswil % \section{Hilfstabellen für $\mathbb{F}_{11}$ \label{reedsolomon:section:hilfstabellen}} diff --git a/buch/papers/reedsolomon/main.tex b/buch/papers/reedsolomon/main.tex index 4e2fd60..6676670 100644 --- a/buch/papers/reedsolomon/main.tex +++ b/buch/papers/reedsolomon/main.tex @@ -40,7 +40,7 @@ Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren \input{papers/reedsolomon/decmitfehler} \input{papers/reedsolomon/rekonstruktion} \input{papers/reedsolomon/zusammenfassung} -%\input{papers/reedsolomon/anwendungen} -> geplant +\input{papers/reedsolomon/anwendungen} \input{papers/reedsolomon/hilfstabellen} \nocite{reedsolomon:weitz} diff --git a/buch/papers/reedsolomon/rekonstruktion.tex b/buch/papers/reedsolomon/rekonstruktion.tex index 38d54a2..b099e68 100644 --- a/buch/papers/reedsolomon/rekonstruktion.tex +++ b/buch/papers/reedsolomon/rekonstruktion.tex @@ -1,8 +1,7 @@ % -% rekonstruktion.tex -% Autor: Michael Steiner +% rekonstruktion.tex -- Rekonstruktion % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% (c) 2021 Michael Steiner, Hochschule Rapperswil % \section{Nachricht rekonstruieren \label{reedsolomon:section:rekonstruktion}} diff --git a/buch/papers/reedsolomon/restetabelle1.tex b/buch/papers/reedsolomon/restetabelle1.tex index 3969ef2..b9a0e59 100644 --- a/buch/papers/reedsolomon/restetabelle1.tex +++ b/buch/papers/reedsolomon/restetabelle1.tex @@ -1,6 +1,8 @@ -% created by Michael Steiner % -% Restetabelle von F_11: Addition +% restetabelle1.tex -- Restetabelle von F_11: Addition +% +% (c) 2021 Michael Steiner, Hochschule Rapperswil +% % alternatives design %\begin{figure} diff --git a/buch/papers/reedsolomon/restetabelle2.tex b/buch/papers/reedsolomon/restetabelle2.tex index 1a9815c..3b13ea2 100644 --- a/buch/papers/reedsolomon/restetabelle2.tex +++ b/buch/papers/reedsolomon/restetabelle2.tex @@ -1,6 +1,8 @@ -% created by Michael Steiner % -% Restetabelle von F_11: Multiplikation +% restetabelle2.tex -- Restetabelle von F_11: Multiplikation +% +% (c) 2021 Michael Steiner, Hochschule Rapperswil +% % alternatives design %\begin{figure} diff --git a/buch/papers/reedsolomon/zusammenfassung.tex b/buch/papers/reedsolomon/zusammenfassung.tex index 9b8ea1b..c24fcf3 100644 --- a/buch/papers/reedsolomon/zusammenfassung.tex +++ b/buch/papers/reedsolomon/zusammenfassung.tex @@ -1,3 +1,8 @@ +% +% zusammenfassung.tex -- Zusammenfassung +% +% (c) 2021 Michael Steiner, Hochschule Rapperswil +% \section{Zusammenfassung \label{reedsolomon:section:zf}} \rhead{Zusammenfassung} -- cgit v1.2.1 From 2e3eb61f84ec6fda9d74e2b71bbb680b6a5640f8 Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Wed, 14 Jul 2021 21:19:32 +0200 Subject: images folder created --- buch/papers/reedsolomon/anwendungen.tex | 93 +++++++++++++++++++++++ buch/papers/reedsolomon/images/Compact_Disc.png | Bin 0 -> 938930 bytes buch/papers/reedsolomon/images/Voyager_Sonde.png | Bin 0 -> 272068 bytes buch/papers/reedsolomon/images/qrcode_h.png | Bin 0 -> 840 bytes buch/papers/reedsolomon/images/qrcode_l.png | Bin 0 -> 608 bytes 5 files changed, 93 insertions(+) create mode 100644 buch/papers/reedsolomon/anwendungen.tex create mode 100644 buch/papers/reedsolomon/images/Compact_Disc.png create mode 100644 buch/papers/reedsolomon/images/Voyager_Sonde.png create mode 100644 buch/papers/reedsolomon/images/qrcode_h.png create mode 100644 buch/papers/reedsolomon/images/qrcode_l.png (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/anwendungen.tex b/buch/papers/reedsolomon/anwendungen.tex new file mode 100644 index 0000000..83e0f94 --- /dev/null +++ b/buch/papers/reedsolomon/anwendungen.tex @@ -0,0 +1,93 @@ +% +% anwendungen.tex -- Anwendungen des Reed-Solomon-Codes +% +% (c) 2021 Michael Steiner, Hochschule Rapperswil +% +\section{Anwendungen des Reed-Solomon-Codes + \label{reedsolomon:section:anwendung}} +\rhead{Anwendungen} +\textcolor{red}{Platzierung der Bilder? Quellenangabe der Bilder?} + +In den vorherigen Abschnitten haben wir betrachtet, wie Reed-Solomon-Codes in der Theorie Funktionieren. +In diesem Abschnitt werden wir einige Anwendungen vorstellen, bei denen ein Reed-Solomon-Code zum Einsatz kommt. +Obwohl alle diese Codes nach dem gleichen Prinzip arbeiten gibt es starke Unterschiede in deren Funktionsweise. +Dies kommt vor allem daher, da die Codes nur Ressourcen zur Verfügung haben, die von der Hardware bereitstellt wird, auf denen die Codes implementiert wurden. +Diese Codes bedienen sich daher verschiedener Tricks und Optimierungen um möglichst effizient zu arbeiten. +% +%Dies kommt vor allem daher, da diese Codes an ihre Hardware gebunden sind, auf denen sie implementiert worden sind. +%Deshalb wurden diese Codes stark optimiert damit sie möglichst Effizient arbeiten können. +% +%Um diese Hardware möglichst effizient zu nutzen wurden gewisse mathematische tricks angewendet um den Code möglichst effizient zu nutzen. +% +% um mit maximaler Effizienz zu arbeiten. +%Es überrascht daher nicht, dass vor allem ältere Codes im binären Körper $\mathbb{F}_{2}$ arbeiten. +% +% um den Code mit maximaler Effizienz zu nutzen. +% +%Alle diese Anwendungen verfügen über eigene spezifizierten Eigenschaften. +% +%, wobei bei allen dieser Anwendungen jeweils eine unterschiedliche Version des Codes implementiert wurden. +% +%Dies kommt vor allem daher, da diese Codes immer an ihre dementsprechende Hardware gebunden sind, auf denen sie implementiert wurden um den Code mit maximaler Effizienz zu nutzen. +% +% eigene Version des Codes implementiert haben. +% +%Bei einer Technischen Umsetzung eines solchen Codes werden wir auf eine reihe neuer Probleme stossen wie Ressourceneffizienz, Laufzeitoptimierung, usw. +% +%Hinzu kommt, dass für verschiedene Anwendungen verschiedene Versionen des Reed-Solomon-Codes zur Anwendung kommen. +% +%Nachfolgend werden wir ein paar dieser Anwendungen Vorstellen, da sich herausstellt, dass Reed-Solomon-Code sehr +% +%Als letzte Frage stellt sich jetzt nur noch, wo diese Codes eingesetzt werden. +% +%Bisher haben wir +% +%In den letzten abschnitten haben wir uns ausführlich die Funktionsweise des Reed-Solomon-Codes angeschaut. In diesem Abschnitt möchten wir dem Leser ein paar bekannte beispiele vorstellen, in denen Reed-Solomon-Codes zum einsatz kommen. Es sei jedoch angemerkt, dass diese Anwendungen in der Umsetzung oft ein wenig anderst funktionieren als hier vorgestellt. Dies wurde vor allem wegen technischen optimierungen realisiert. (technische tricks und finessen), von der logik jedoch sehr stark an unserem Beispiel orientieren + +\subsection{Raumfahrt} +Obwohl Reed-Solomon-Codes bereits in den 1960er entwickelt wurden fanden sie erstmals Anwendung in der Voyager Raumsonde der NASA. Die Daten der zwei im Jahre 1977 gestarteten Sonden werden mit einem RS(255,233)-Code \textcolor{red}{benötigt das weitere erklärungen, wie z.b. 255: grösse nachrichtenblock, 233: anzahl der nutzbaren daten ?} zusammen mit einem konventionellen Faltungscode übertragen. + +% +% Die zwei im Jahre 1977 gestarteten Sonden senden Daten mit der Hilfe eines RS(255,233)-Code für die digitalen Bilder sowie einem konventionellen Faltungscode. +% +% +%mit der Erde mit einem RS(255,233)-Code für die digitalen Bilder sowie einem konventionellen Faltungscode. + +\begin{figure} + \centering + \includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/Voyager_Sonde} + \caption{Voyager Raumsonde} + \label{fig:voyager} +\end{figure} + +\subsection{CD/DVD} +Compact discs verwenden sogar zwei ineinander verschachtelte Reed-Solomon-Codes, einen (32,28)-Code und einen (28,24)-Code. +Beide Codes sind in der Lage, Fehler aus dem jeweils anderen gelesenen Block zu korrigieren. Dieses spezielle zusammenspielen dieser beiden Codes werden auch Cross-interleaved Reed-Solomon-Codes (CIRC) genannt. +Diese Vorgehensweise erzielt eine hohe Robustheit gegenüber Produktionsfehler oder Verschmutzung auf der Disc. Bei CD's sind diese in der Lage bis zu 4000 fehlerhafte Bits am Stück (ca. $2.5mm$) zu erkennen und zu korrigieren. + +Die Digital Video Disc funktioniert nach dem selben Konzept mit grösseren Codeblöcken. Die DVD verwendet einen (208,192)-Code und einen (182,172)-Code. + +%Beide lesen +% wobei beide Codes auch Fehler aus dem jeweiligen anderen Block korrigieren + +\begin{figure} + \centering + \includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/Compact_Disc} + \caption{Compact Disc} + \label{fig:cd} +\end{figure} + +\subsection{QR-Codes} +Quick Response Codes funktionieren nach einem sehr ähnlichen Prinzip wie in unserem Beispiel, nur dass QR-Codes in einem $\mathbb{F}_{256}$ Körper arbeiten. Je nach grösse der Codierung ist der QR-Code im Endeffekt robuster gegen Beschädigungen. Bei Low Level Codes können 7\% der Daten Wiederhergestellt werden, beim High Level Code sind das sogar 30\%. + +\begin{figure} + \centering + \subfigure[]{ + \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/qrcode_h} + } + \subfigure[]{ + \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/qrcode_l} + } + \caption{(a) High Level Code, (b) Low Level Code} + \label{fig:qr} +\end{figure} diff --git a/buch/papers/reedsolomon/images/Compact_Disc.png b/buch/papers/reedsolomon/images/Compact_Disc.png new file mode 100644 index 0000000..7e3f870 Binary files /dev/null and b/buch/papers/reedsolomon/images/Compact_Disc.png differ diff --git a/buch/papers/reedsolomon/images/Voyager_Sonde.png b/buch/papers/reedsolomon/images/Voyager_Sonde.png new file mode 100644 index 0000000..e4dc400 Binary files /dev/null and b/buch/papers/reedsolomon/images/Voyager_Sonde.png differ diff --git a/buch/papers/reedsolomon/images/qrcode_h.png b/buch/papers/reedsolomon/images/qrcode_h.png new file mode 100644 index 0000000..4dc5779 Binary files /dev/null and b/buch/papers/reedsolomon/images/qrcode_h.png differ diff --git a/buch/papers/reedsolomon/images/qrcode_l.png b/buch/papers/reedsolomon/images/qrcode_l.png new file mode 100644 index 0000000..69f807f Binary files /dev/null and b/buch/papers/reedsolomon/images/qrcode_l.png differ -- cgit v1.2.1 From bf17b6c5ecf720f5db68889be8bda10130004121 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Wed, 14 Jul 2021 22:34:08 +0200 Subject: Adapt figures and fix typos --- buch/papers/punktgruppen/Makefile | 6 ++- buch/papers/punktgruppen/crystals.tex | 4 +- .../punktgruppen/figures/atoms-grid-force.pdf | Bin 0 -> 1496 bytes .../punktgruppen/figures/atoms-grid-still.pdf | Bin 0 -> 1307 bytes .../figures/atoms-piezo-force-horizontal.pdf | Bin 0 -> 15334 bytes .../figures/atoms-piezo-force-vertical.pdf | Bin 0 -> 15377 bytes .../punktgruppen/figures/atoms-piezo-force.pdf | Bin 0 -> 15377 bytes .../punktgruppen/figures/atoms-piezo-still.pdf | Bin 0 -> 1643 bytes .../punktgruppen/figures/combine-symmetries.pdf | Bin 14372 -> 14372 bytes buch/papers/punktgruppen/figures/lattice.pdf | Bin 27858 -> 27849 bytes buch/papers/punktgruppen/figures/piezo-atoms.pdf | Bin 35662 -> 0 bytes buch/papers/punktgruppen/figures/piezo.pdf | Bin 16845 -> 16842 bytes buch/papers/punktgruppen/figures/projections.pdf | Bin 27953 -> 27953 bytes .../punktgruppen/figures/symmetric-shapes.pdf | Bin 15846 -> 15846 bytes buch/papers/punktgruppen/piezo.tex | 29 ++++++------ buch/papers/punktgruppen/tikz/atoms-grid-force.tex | 42 +++++++++++++++++ buch/papers/punktgruppen/tikz/atoms-grid-still.tex | 33 +++++++++++++ .../tikz/atoms-piezo-force-horizontal.tex | 47 +++++++++++++++++++ .../tikz/atoms-piezo-force-vertical.tex | 52 +++++++++++++++++++++ .../papers/punktgruppen/tikz/atoms-piezo-still.tex | 34 ++++++++++++++ .../punktgruppen/tikz/combine-symmetries.tex | 2 +- buch/papers/punktgruppen/tikz/lattice.tex | 4 +- buch/papers/punktgruppen/tikz/piezo.tex | 4 +- 23 files changed, 235 insertions(+), 22 deletions(-) create mode 100644 buch/papers/punktgruppen/figures/atoms-grid-force.pdf create mode 100644 buch/papers/punktgruppen/figures/atoms-grid-still.pdf create mode 100644 buch/papers/punktgruppen/figures/atoms-piezo-force-horizontal.pdf create mode 100644 buch/papers/punktgruppen/figures/atoms-piezo-force-vertical.pdf create mode 100644 buch/papers/punktgruppen/figures/atoms-piezo-force.pdf create mode 100644 buch/papers/punktgruppen/figures/atoms-piezo-still.pdf delete mode 100644 buch/papers/punktgruppen/figures/piezo-atoms.pdf create mode 100644 buch/papers/punktgruppen/tikz/atoms-grid-force.tex create mode 100644 buch/papers/punktgruppen/tikz/atoms-grid-still.tex create mode 100644 buch/papers/punktgruppen/tikz/atoms-piezo-force-horizontal.tex create mode 100644 buch/papers/punktgruppen/tikz/atoms-piezo-force-vertical.tex create mode 100644 buch/papers/punktgruppen/tikz/atoms-piezo-still.tex (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/Makefile b/buch/papers/punktgruppen/Makefile index f92dc95..47affeb 100644 --- a/buch/papers/punktgruppen/Makefile +++ b/buch/papers/punktgruppen/Makefile @@ -11,9 +11,13 @@ SOURCES := \ symmetry.tex TIKZFIGURES := \ + tikz/atoms-grid-still.tex \ + tikz/atoms-grid-force.tex \ + tikz/atoms-piezo-still.tex \ + tikz/atoms-piezo-force-vertical.tex \ + tikz/atoms-piezo-force-horizontal.tex \ tikz/combine-symmetries.tex \ tikz/lattice.tex \ - tikz/piezo-atoms.tex \ tikz/piezo.tex \ tikz/projections.tex \ tikz/symmetric-shapes.tex diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index 1aec16f..abd0c27 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -12,7 +12,6 @@ Die Innereien eines Kristalles sind glücklicherweise relativ einfach definiert. \includegraphics[]{papers/punktgruppen/figures/lattice} \caption{ Zweidimensionales Kristallgitter. - \texttt{TODO: make wider and shorter} \label{fig:punktgruppen:lattice} } \end{figure} @@ -55,7 +54,6 @@ solange wir ein unendlich grosses Kristallgitter verschieben. \includegraphics[]{papers/punktgruppen/figures/combine-symmetries} \caption{ Translations und Rotationssymmetrisches Kristallgitter - \texttt{TODO: make wider and change color (yellow)} } \label{fig:punktgruppen:rot-geometry} \end{figure} @@ -97,7 +95,7 @@ solange wir ein unendlich grosses Kristallgitter verschieben. was auch Sinn macht, da eine Skalierung eines Kristalles seine Symmetrieeigenschaften nicht tangieren soll. Zusätzlich können wir den Sinusterm vereinfachen. \[ - n = 1 - 2\cos\alpha + n = 1 - 2\cos\alpha \qquad \alpha = \cos^{-1}\left(\frac{1-n}{2}\right) \] Dies schränkt die möglichen Rotationssymmetrien auf diff --git a/buch/papers/punktgruppen/figures/atoms-grid-force.pdf b/buch/papers/punktgruppen/figures/atoms-grid-force.pdf new file mode 100644 index 0000000..0b3e084 Binary files /dev/null and b/buch/papers/punktgruppen/figures/atoms-grid-force.pdf differ diff --git a/buch/papers/punktgruppen/figures/atoms-grid-still.pdf b/buch/papers/punktgruppen/figures/atoms-grid-still.pdf new file mode 100644 index 0000000..d707258 Binary files /dev/null and b/buch/papers/punktgruppen/figures/atoms-grid-still.pdf differ diff --git a/buch/papers/punktgruppen/figures/atoms-piezo-force-horizontal.pdf b/buch/papers/punktgruppen/figures/atoms-piezo-force-horizontal.pdf new file mode 100644 index 0000000..09ed727 Binary files /dev/null and b/buch/papers/punktgruppen/figures/atoms-piezo-force-horizontal.pdf differ diff --git a/buch/papers/punktgruppen/figures/atoms-piezo-force-vertical.pdf b/buch/papers/punktgruppen/figures/atoms-piezo-force-vertical.pdf new file mode 100644 index 0000000..ab2996f Binary files /dev/null and b/buch/papers/punktgruppen/figures/atoms-piezo-force-vertical.pdf differ diff --git a/buch/papers/punktgruppen/figures/atoms-piezo-force.pdf b/buch/papers/punktgruppen/figures/atoms-piezo-force.pdf new file mode 100644 index 0000000..456eec9 Binary files /dev/null and b/buch/papers/punktgruppen/figures/atoms-piezo-force.pdf differ diff --git a/buch/papers/punktgruppen/figures/atoms-piezo-still.pdf b/buch/papers/punktgruppen/figures/atoms-piezo-still.pdf new file mode 100644 index 0000000..9a888d7 Binary files /dev/null and b/buch/papers/punktgruppen/figures/atoms-piezo-still.pdf differ diff --git a/buch/papers/punktgruppen/figures/combine-symmetries.pdf b/buch/papers/punktgruppen/figures/combine-symmetries.pdf index 31d2a2e..12a57ba 100644 Binary files a/buch/papers/punktgruppen/figures/combine-symmetries.pdf and b/buch/papers/punktgruppen/figures/combine-symmetries.pdf differ diff --git a/buch/papers/punktgruppen/figures/lattice.pdf b/buch/papers/punktgruppen/figures/lattice.pdf index 4436cdc..803da2b 100644 Binary files a/buch/papers/punktgruppen/figures/lattice.pdf and b/buch/papers/punktgruppen/figures/lattice.pdf differ diff --git a/buch/papers/punktgruppen/figures/piezo-atoms.pdf b/buch/papers/punktgruppen/figures/piezo-atoms.pdf deleted file mode 100644 index 17fb179..0000000 Binary files a/buch/papers/punktgruppen/figures/piezo-atoms.pdf and /dev/null differ diff --git a/buch/papers/punktgruppen/figures/piezo.pdf b/buch/papers/punktgruppen/figures/piezo.pdf index e0d7db4..e0f5450 100644 Binary files a/buch/papers/punktgruppen/figures/piezo.pdf and b/buch/papers/punktgruppen/figures/piezo.pdf differ diff --git a/buch/papers/punktgruppen/figures/projections.pdf b/buch/papers/punktgruppen/figures/projections.pdf index e7f8f86..828f03c 100644 Binary files a/buch/papers/punktgruppen/figures/projections.pdf and b/buch/papers/punktgruppen/figures/projections.pdf differ diff --git a/buch/papers/punktgruppen/figures/symmetric-shapes.pdf b/buch/papers/punktgruppen/figures/symmetric-shapes.pdf index e4539a5..c5e42e7 100644 Binary files a/buch/papers/punktgruppen/figures/symmetric-shapes.pdf and b/buch/papers/punktgruppen/figures/symmetric-shapes.pdf differ diff --git a/buch/papers/punktgruppen/piezo.tex b/buch/papers/punktgruppen/piezo.tex index e6b595a..3c3957b 100644 --- a/buch/papers/punktgruppen/piezo.tex +++ b/buch/papers/punktgruppen/piezo.tex @@ -19,10 +19,17 @@ Der Aufbau und somit auch die Symmetrie des Kristalles sind daher relevant für \begin{figure} \centering - \includegraphics[]{papers/punktgruppen/figures/piezo-atoms} + \begin{tabular}{c |c} + \subfigure[][\label{fig:punktgruppen:atoms-piezo}]{\includegraphics{papers/punktgruppen/figures/atoms-piezo-still}} & + \subfigure[][\label{fig:punktgruppen:atoms-grid}]{\includegraphics{papers/punktgruppen/figures/atoms-grid-still}} \\ + \subfigure[][\label{fig:punktgruppen:atoms-piezo-fv}]{\includegraphics{papers/punktgruppen/figures/atoms-piezo-force-vertical}} + \hspace{2mm} + \subfigure[][\label{fig:punktgruppen:atoms-piezo-fh}]{\includegraphics{papers/punktgruppen/figures/atoms-piezo-force-horizontal}} + \hspace{3mm} & \hspace{3mm} + \subfigure[][\label{fig:punktgruppen:atoms-grid-f}]{\includegraphics{papers/punktgruppen/figures/atoms-grid-force}} \\ + \end{tabular} \caption{ Kristallstrukturen mit und ohne piezoelektrischer Eigenschaft. - \texttt{TODO: adapt figure for paper with subfigure markers.} } \label{fig:punktgruppen:atomPiezo} \end{figure} @@ -32,19 +39,15 @@ Die Polarisation resultiert über eine gesamte Oberfläche eines Kristalles, ent Wir wollen dazu die verschiedenen Kristallstrukturen auf Abbildung \ref{fig:punktgruppen:atomPiezo} diskutieren. In Abbildung \ref{fig:punktgruppen:atomPiezo} gilt für alle Strukturen, dass rote Kreise Positive Ionen und blaue negative Ionen repräsentieren. %liste oder anderes format?.. -Struktur$(a)$ zeigt ein piezoelektrisches Material in Ruhe. Struktur $(b)$ ist dasselbe Kristallgitter, jedoch wird es senkrecht belastet. +Struktur \subref{fig:punktgruppen:atoms-piezo} zeigt ein piezoelektrisches Material in Ruhe. Struktur \subref{fig:punktgruppen:atoms-piezo-fv} ist dasselbe Kristallgitter, jedoch wird es senkrecht belastet. Eingezeichnet ist auch das elektrische Feld, welches entsteht, weil mitlleren Ladungsträger weiter auseinander gerdrückt werden. -Als hilfe zur Vorstellung kann man $(b)$ zwischen zwei leitende Platten setzen, -so wird ersichtlich, dass mit wachsendem Druck eine negative Ladung an die rechte Platte gedrückt wird, -während sich die positiven Ionen weiter entfernen. -$(d)$ ist nicht piezoelektrisch. -Dies wird ersichtlich, wenn man $(d)$ unterdruck setzt und sich die Struktur zu $(e)$ verformt. -Setzt man $(e)$ gedanklich auch zwischen zwei leitende Platten scheint es als würden rechts mehr Positive Ionen in die Platte gedrückt werden -und links umgekehrt. +Als hilfe zur Vorstellung kann man \subref{fig:punktgruppen:atoms-piezo-fv} zwischen zwei leitende Platten setzen, so wird ersichtlich, dass mit wachsendem Druck eine negative Ladung an die rechte Platte gedrückt wird, während sich die positiven Ionen weiter entfernen. +\subref{fig:punktgruppen:atoms-grid} ist nicht piezoelektrisch. +Dies wird ersichtlich, wenn man \subref{fig:punktgruppen:atoms-grid} unterdruck setzt und sich die Struktur zu \subref{fig:punktgruppen:atoms-grid-f} verformt. +Setzt man \subref{fig:punktgruppen:atoms-grid-f} gedanklich auch zwischen zwei leitende Platten scheint es als würden rechts mehr Positive Ionen in die Platte gedrückt werden und links umgekehrt. Dies ist aber nicht mehr der Fall, wenn der Kristall nach oben und periodisch wiederholt. -Struktur $(c)$ zeigt $(a)$ in unter horizontaler Belastung. -Was in zwischen $(b)$ und $(c)$ zu beobachten ist, ist dass das entstandene Ladungsdifferenz orthogonal zu der angelegten Kraft entsteht, -im Gegensatz zu $(b)$. +Struktur \subref{fig:punktgruppen:atoms-piezo-fh} zeigt \subref{fig:punktgruppen:atoms-piezo} in unter horizontaler Belastung. +Was in zwischen $(b)$ und $(c)$ zu beobachten ist, ist dass das entstandene Ladungsdifferenz orthogonal zu der angelegten Kraft entsteht, im Gegensatz zu $(b)$. Daraus kann man schlissen, dass $(a)$ keine Rotationssymmetrie von $90^\circ$ besitzen kann, weil die Eigenschaften ändern bei einer $90^\circ$ Drehung. Das Fehlen dieser Rotationssymmetrie kann mit betrachten von $(a)$ bestätigt werden. diff --git a/buch/papers/punktgruppen/tikz/atoms-grid-force.tex b/buch/papers/punktgruppen/tikz/atoms-grid-force.tex new file mode 100644 index 0000000..05742cf --- /dev/null +++ b/buch/papers/punktgruppen/tikz/atoms-grid-force.tex @@ -0,0 +1,42 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} + \begin{tikzpicture}[ + >=latex, + node distance = 2mm, + charge/.style = { + circle, draw = black, thick, + minimum size = 5mm + }, + positive/.style = { fill = red!50 }, + negative/.style = { fill = blue!50 }, + ] + + \matrix[nodes = { charge }, row sep = 5mm, column sep = 1cm] { + \node[positive] (NW) {}; & \node[negative] (N) {}; & \node [positive] (NE) {}; \\ + \node[negative] (W) {}; & \node[positive] {}; & \node [negative] (E) {}; \\ + \node[positive] (SW) {}; & \node[negative] (S) {}; & \node [positive] (SE) {}; \\ + }; + + \foreach \d in {NW, N, NE} { + \draw[orange, very thick, <-] (\d) to ++(0,.7); + } + + \foreach \d in {SW, S, SE} { + \draw[orange, very thick, <-] (\d) to ++(0,-.7); + } + + \draw[gray, dashed] (W) to (N) to (E) to (S) to (W); + \end{tikzpicture} +\end{document} diff --git a/buch/papers/punktgruppen/tikz/atoms-grid-still.tex b/buch/papers/punktgruppen/tikz/atoms-grid-still.tex new file mode 100644 index 0000000..4e43856 --- /dev/null +++ b/buch/papers/punktgruppen/tikz/atoms-grid-still.tex @@ -0,0 +1,33 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} + \begin{tikzpicture}[ + >=latex, + node distance = 2mm, + charge/.style = { + circle, draw = black, thick, + minimum size = 5mm + }, + positive/.style = { fill = red!50 }, + negative/.style = { fill = blue!50 }, + ] + + \matrix[nodes = { charge }, row sep = 8mm, column sep = 8mm] { + \node[positive] {}; & \node[negative] (N) {}; & \node [positive] {}; \\ + \node[negative] (W) {}; & \node[positive] {}; & \node [negative] (E) {}; \\ + \node[positive] {}; & \node[negative] (S) {}; & \node [positive] {}; \\ + }; + \draw[gray, dashed] (W) to (N) to (E) to (S) to (W); + \end{tikzpicture} +\end{document} diff --git a/buch/papers/punktgruppen/tikz/atoms-piezo-force-horizontal.tex b/buch/papers/punktgruppen/tikz/atoms-piezo-force-horizontal.tex new file mode 100644 index 0000000..e4c3f93 --- /dev/null +++ b/buch/papers/punktgruppen/tikz/atoms-piezo-force-horizontal.tex @@ -0,0 +1,47 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} + \begin{tikzpicture}[ + >=latex, + node distance = 2mm, + charge/.style = { + circle, draw = black, thick, + minimum size = 5mm + }, + positive/.style = { fill = red!50 }, + negative/.style = { fill = blue!50 }, + ] + + \node[charge, positive, yshift= 2.5mm] (C1) at ( 60:1.5cm) {}; + \node[charge, negative, yshift= 2.5mm] (C2) at (120:1.5cm) {}; + \node[charge, positive, xshift= 2.5mm] (C3) at (180:1.5cm) {}; + \node[charge, negative, yshift=-2.5mm] (C4) at (240:1.5cm) {}; + \node[charge, positive, yshift=-2.5mm] (C5) at (300:1.5cm) {}; + \node[charge, negative, xshift=-2.5mm] (C6) at (360:1.5cm) {}; + + \draw[black] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1); + % \draw[gray, dashed] (C2) to (C4) to (C6) to (C2); + + \draw[orange, very thick, <-] (C6) to ++(.7,0); + \draw[orange, very thick, <-] (C3) to ++(-.7,0); + + \node[black] (E) {\(\vec{E}_p\)}; + \begin{scope}[node distance = .5mm] + \node[blue!50, right = of E] {\(-\)}; + \node[red!50, left = of E] {\(+\)}; + \end{scope} + % \draw[gray, thick, dotted] (E) to ++(0,2); + % \draw[gray, thick, dotted] (E) to ++(0,-2); + \end{tikzpicture} +\end{document} diff --git a/buch/papers/punktgruppen/tikz/atoms-piezo-force-vertical.tex b/buch/papers/punktgruppen/tikz/atoms-piezo-force-vertical.tex new file mode 100644 index 0000000..892ab42 --- /dev/null +++ b/buch/papers/punktgruppen/tikz/atoms-piezo-force-vertical.tex @@ -0,0 +1,52 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} + \begin{tikzpicture}[ + >=latex, + node distance = 2mm, + charge/.style = { + circle, draw = black, thick, + minimum size = 5mm + }, + positive/.style = { fill = red!50 }, + negative/.style = { fill = blue!50 }, + ] + + \node[charge, positive, yshift=-2.5mm] (C1) at ( 60:1.5cm) {}; + \node[charge, negative, yshift=-2.5mm] (C2) at (120:1.5cm) {}; + \node[charge, positive, xshift=-2.5mm] (C3) at (180:1.5cm) {}; + \node[charge, negative, yshift= 2.5mm] (C4) at (240:1.5cm) {}; + \node[charge, positive, yshift= 2.5mm] (C5) at (300:1.5cm) {}; + \node[charge, negative, xshift= 2.5mm] (C6) at (360:1.5cm) {}; + + \draw[black] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1); + % \draw[gray, dashed] (C2) to (C4) to (C6) to (C2); + + \foreach \d in {C1, C2} { + \draw[orange, very thick, <-] (\d) to ++(0,.7); + } + + \foreach \d in {C4, C5} { + \draw[orange, very thick, <-] (\d) to ++(0,-.7); + } + + \node[black] (E) {\(\vec{E}_p\)}; + \begin{scope}[node distance = .5mm] + \node[red!50, right = of E] {\(+\)}; + \node[blue!50, left = of E] {\(-\)}; + \end{scope} + % \draw[gray, thick, dotted] (E) to ++(0,2); + % \draw[gray, thick, dotted] (E) to ++(0,-2); + \end{tikzpicture} +\end{document} diff --git a/buch/papers/punktgruppen/tikz/atoms-piezo-still.tex b/buch/papers/punktgruppen/tikz/atoms-piezo-still.tex new file mode 100644 index 0000000..2eb78ba --- /dev/null +++ b/buch/papers/punktgruppen/tikz/atoms-piezo-still.tex @@ -0,0 +1,34 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} + \begin{tikzpicture}[ + >=latex, + node distance = 2mm, + charge/.style = { + circle, draw = black, thick, + minimum size = 5mm + }, + positive/.style = { fill = red!50 }, + negative/.style = { fill = blue!50 }, + ] + + \foreach \x/\t [count=\i] in {60/positive, 120/negative, 180/positive, 240/negative, 300/positive, 360/negative} { + \node[charge, \t] (C\i) at (\x:1.5cm) {}; + } + + \draw[black] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1); + \node[circle, draw=gray, fill=gray, outer sep = 0, inner sep = 0, minimum size = 3mm] {}; + % \draw[gray, dashed] (C2) to (C4) to (C6) to (C2); + \end{tikzpicture} +\end{document} diff --git a/buch/papers/punktgruppen/tikz/combine-symmetries.tex b/buch/papers/punktgruppen/tikz/combine-symmetries.tex index f4ac52c..fa669ae 100644 --- a/buch/papers/punktgruppen/tikz/combine-symmetries.tex +++ b/buch/papers/punktgruppen/tikz/combine-symmetries.tex @@ -46,7 +46,7 @@ (A2) ++(-.5,0) arc (180:60:.5); \draw[red!80!black, dashed, thick, ->] (A2) to (B2); - \draw[yellow!50!orange, thick, ->] + \draw[cyan!40!blue, thick, ->] (B1) to node[above, midway] {\(\vec{Q}'\)} (B2); \draw[gray, dashed, thick] (A1) to (A1 |- B1) node (Xl) {}; diff --git a/buch/papers/punktgruppen/tikz/lattice.tex b/buch/papers/punktgruppen/tikz/lattice.tex index 391ef20..a6b1876 100644 --- a/buch/papers/punktgruppen/tikz/lattice.tex +++ b/buch/papers/punktgruppen/tikz/lattice.tex @@ -23,14 +23,14 @@ ] \begin{scope} - \clip (-2,-2) rectangle (3,4); + \clip (-2,-2) rectangle (7,2); \foreach \y in {-7,-6,...,7} { \foreach \x in {-7,-6,...,7} { \node[dot, xshift=3mm*\y] (N\x\y) at (\x, \y) {}; } } \end{scope} - \draw[black, thick] (-2, -2) rectangle (3,4); + \draw[black, thick] (-2, -2) rectangle (7,2); \draw[red!80!black, thick, ->] (N00) to node[midway, below] {\(\vec{a}_1\)} (N10); diff --git a/buch/papers/punktgruppen/tikz/piezo.tex b/buch/papers/punktgruppen/tikz/piezo.tex index 736dbad..56e9463 100644 --- a/buch/papers/punktgruppen/tikz/piezo.tex +++ b/buch/papers/punktgruppen/tikz/piezo.tex @@ -19,7 +19,7 @@ node distance = 0cm ] \node[ - rectangle, fill = gray!60!white, + rectangle, fill = gray!20!white, minimum width = 3cm, minimum height = 2cm, ] (body) {\(\vec{E}_p = \vec{0}\)}; @@ -45,7 +45,7 @@ xshift = 7cm ] \node[ - rectangle, fill = gray!40!white, + rectangle, fill = gray!20!white, minimum width = 3cm, minimum height = 1.5cm, ] (body) {\(\vec{E}_p = \vec{0}\)}; -- cgit v1.2.1 From aeb1ccab21bfcd1ff7a9a171485353c78cb94495 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Thu, 15 Jul 2021 12:32:38 +0200 Subject: short changes --- buch/papers/reedsolomon/einleitung.tex | 4 ++++ buch/papers/reedsolomon/idee.tex | 15 ++++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/einleitung.tex b/buch/papers/reedsolomon/einleitung.tex index 809f58a..3d40db1 100644 --- a/buch/papers/reedsolomon/einleitung.tex +++ b/buch/papers/reedsolomon/einleitung.tex @@ -10,6 +10,10 @@ Der Reed-Solomon-Code ist entstaden im ... vom .. um, das Problem der Daten Übertragung zu lösen. In deiesem Abschnitt wird möglichst verständlich die mathematische Abfolge, Funktion oder Algorithmus erklärt. Es wird jedoch nicht auf die technische Umsetzung oder Implementierung eingegangen. +Um beim Daten Übertragen fehler zu erkennen könnte man die Daten jeweils doppelt senden, +und so jeweilige Fehler zu erkennen. +Doch dies braucht schnell unmengen an Daten, wenn man nach vielen Fehler absichern möchte. +Der Reed-Solomon-Code macht dies auf eine andere, clevere Weise. diff --git a/buch/papers/reedsolomon/idee.tex b/buch/papers/reedsolomon/idee.tex index 497e2d5..7200425 100644 --- a/buch/papers/reedsolomon/idee.tex +++ b/buch/papers/reedsolomon/idee.tex @@ -8,9 +8,12 @@ \rhead{Problemstellung} Das Problem liegt darin Informationen, Zahlen, zu Übertragen und Fehler zu erkennen. +Beim Reed-Solomon-Code kann man nicht nur Fehler erkenen, +man kann sogar einige Fehler korrigieren. \rhead{Idee} -Eine +Eine Idee ist mit den Daten, wir nehmen hier die Zahlen .... +ein Polynom \begin{equation} \int_a^b x^2\, dx = @@ -19,15 +22,9 @@ Eine \frac{b^3-a^3}3. \label{reedsolomon:equation1} \end{equation} -Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, -consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. +zu bilden wie in der abbildung ... dargestellt. -Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis -suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? -Quis autem vel eum iure reprehenderit qui in ea voluptate velit -esse quam nihil molestiae consequatur, vel illum qui dolorem eum -fugiat quo voluptas nulla pariatur? +abbildung \subsection{De finibus bonorum et malorum \label{reedsolomon:subsection:finibus}} -- cgit v1.2.1 From 84b45ebb3d4788db314796095ddcca2c901d406d Mon Sep 17 00:00:00 2001 From: fabioviecelli <80270098+fabioviecelli@users.noreply.github.com> Date: Fri, 16 Jul 2021 16:13:27 +0200 Subject: Einleitung und Schwingungsgleichung --- buch/papers/erdbeben/Teil_Fabio.tex | 110 ++++++++++++++++++++++++++++++++++++ buch/papers/erdbeben/main.tex | 5 +- 2 files changed, 113 insertions(+), 2 deletions(-) create mode 100644 buch/papers/erdbeben/Teil_Fabio.tex (limited to 'buch/papers') diff --git a/buch/papers/erdbeben/Teil_Fabio.tex b/buch/papers/erdbeben/Teil_Fabio.tex new file mode 100644 index 0000000..63b9648 --- /dev/null +++ b/buch/papers/erdbeben/Teil_Fabio.tex @@ -0,0 +1,110 @@ +\section{Kalman Filter} +\subsection{Was ist ein Erdbeben?} +Für das Verständnis möchten wir zuerst klären, was ein Erdbeben genau ist. +Das soll uns helfen, eine Verknüpfung zwischen dem Naturphänomen und der mathematischen Lösungsfindung herzustellen. + +Unter einem Erdbeben verstehen wir eine Erschütterung des Erdkörpers. +Dabei reiben zwei tektonische Platten aneinander, welche aber sich durch die Gesteinsverzahnung gegenseitig blockieren. +Aufgrund dieser Haftreibung entstehen Spannungen, die sich immer mehr bis zum Tipping Point aufbauen. +Irgendwann ist der Punkt erreicht, in dem die Scherfestigkeit der Gesteine überwunden wird. +Wenn dies passiert, entladet sich die aufgebaute Spannung und setzt enorme Energien frei, die wir als Erdbeben wahrnehmen. + +Ein Erdbeben pflanzt sich vom Erdbebenherd in allen Richtungen gleich aus. +Vergleichbar ist, wenn man einen Stein in einen Teich wirft und die Wellen beobachten kann, die sich ausbreiten. + +Wir möchten nun mittels Kalman-Filter die Erdbebenbeschleunigung herausfinden. +Die Erdbebenbeschleunigung ist in der Praxis zur Entwicklung von Erdbebengefährdungskarten, sowie der Ausarbeitung von Baunormen für erdbebengerechte Bauweise von Bedeutung. + + +\subsection{Künstliche Erdbebendaten} +Nun möchten wir anhand eines eigenen Beispiels das Kalman-Filter anwenden. +Wir müssen Erdbebendaten künstlich erzeugen, um sie in das Filter zu geben und somit den Prozess zu starten. +Dafür nehmen wir die Formel für harmonische gedämpfte Schwingungen, die + +\begin{equation} + y = A \sin(\omega t e^{-lambda t}) +\end{equation} + +lautet. + + + + +A ist die Amplitude der Schwingung und beschreibt die Heftigkeit eines Erdbebens, die Magnitude. +Omega repräsentiert die Erdbebenfrequenz, die in der Realität zwischen 1 Hz und 30 Hz betragen kann. +Wir wählen als Erwartungswert 15 Herz und für die Standardabweichung 1 Hz. +Lambda ist die Bodendämpfung, für die wir 0.2 wählen. +Wir haben diese Zahl aus der Literatur entnommen und ist für das Bauwesen bedeutend. +Je grösser Lambda gewählt wird, desto stärker wirkt die Dämpfung der Massenschwingung. +Die Funktion ist zeitabhängig und wir lassen pro Sekunde zehn Messwerte generieren. + +Die Frequenz soll im Matlab als Zufallszahl generiert werden. +Mit dem Golay-Filter glätten wir unsere Werte, um unser Output näher an die Realität zu bringen. +Zusätzlich werden Ausreisser nicht vernachlässigt und wirken geglättet in unsere Datenmenge. + +Grafik einfügen + +In der Grafik erkennen wir in den Sekunden 0 bis 10, dass die Sinuskurve gezackt ist. +Das deutet darauf hin, dass die Frequenz des Erdbebens einen hohen Einfluss auf die Masse des Seismographen hat. +Ab der 10. Sekunde bis zu tend, pendelt sich die Masse in ihre Eigenfrequenz ein und verhält sich unabhängiger vom Erdbeben. + +\subsection{Versuch} +Um den Kalman-Filter auszuprobieren, setzen wir nun Werte ein. +Für die Systemparameter wählen wir m=1.0, D = 0.3 und k = 0.1 und fügen es in die Differentialgleichung + +\begin{equation} + m\ddot x + 2k \dot x + Dx = f +\end{equation} + +ein und erhalten + +\begin{equation} + 1\ddot x + 0.1 \dot x + 0.3x = f +\end{equation} + + +\subsubsection*{Prozessrauschkovarianzmatrix $Q$} + + + + + +\begin{equation} + Q = \left( + \begin{array}{ccc} + (5 \cdot 10^{-5})^2 & 0 & 0 \\ + 0 & (1 \cdot 10^{-5})^2 & 0\\ + 0 & 0& ( 1 )^2\\ + \end{array}\right) +\end{equation} + + + + + +\subsection{Resultate} + +Vergleichen wir die künstlichen Messdaten mit der geschätzten Schwingung des Kalman-Filters, stellen wir fest, dass wir eine gute Methode gefunden haben, die Erdbebenbeschleunigung zu schätzen. +Obwohl die künstlichen Daten mit einer random-Funktion erzeugt werden, kann das Kalman-Filter präzise Vorhersagungen bilden. + +Für die Differentialgleichung zweiter Ordnung brauchen wir im Matlab die Funktion ode45. +Mit dieser Funktion können wir Differentialgleichungen auflösen. + + + + + + + + + + + + + +In Matlab fügen wir die Formel und unsere definierten Werte ein. +Die Frequenz generieren wir mit einem Zufallscode, +Mit einem Zufallscode und einen Zeitraum + +Matlabcode einfügen + diff --git a/buch/papers/erdbeben/main.tex b/buch/papers/erdbeben/main.tex index 83ef295..8f9c8d5 100644 --- a/buch/papers/erdbeben/main.tex +++ b/buch/papers/erdbeben/main.tex @@ -29,8 +29,9 @@ Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren \input{papers/erdbeben/teil0.tex} \input{papers/erdbeben/teil1.tex} -\input{papers/erdbeben/teil2.tex} -\input{papers/erdbeben/teil3.tex} +%\input{papers/erdbeben/teil2.tex} +%\input{papers/erdbeben/teil3.tex} +\input{papers/erdbeben/Teil_Fabio.tex} \printbibliography[heading=subbibliography] \end{refsection} -- cgit v1.2.1 From 7e4e9082a566369ac00a27f3e3f6d36505907ba9 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Sat, 17 Jul 2021 10:26:02 +0200 Subject: start first rows --- buch/papers/reedsolomon/dtf.tex | 48 ++++++++++++----------------- buch/papers/reedsolomon/idee.tex | 66 ++++++++++++++++++++++------------------ 2 files changed, 56 insertions(+), 58 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/dtf.tex b/buch/papers/reedsolomon/dtf.tex index 00281fb..025be3a 100644 --- a/buch/papers/reedsolomon/dtf.tex +++ b/buch/papers/reedsolomon/dtf.tex @@ -6,35 +6,25 @@ \section{Diskrete Fourien Transformation \label{reedsolomon:section:dtf}} \rhead{Umwandlung mit DTF} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? +Um die Polynominterpolation zu umgehen, gehen wir nun über in die Fourientransformation. +Dies wird weder eine erklärung der Forientransorfmation noch ein genauer gebrauch +für den Reed-Solomon-Code. Dieser Abschnitt zeigt nur wie die Fourientransformation auf Fehler reagiert. +wobei sie dann bei späteren Berchnungen ganz nütlich ist. -\subsection{De finibus bonorum et malorum -\label{reedsolomon:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. +\subsection{Übertragungsabfolge +\label{reedsolomon:subsection:Übertragungsabfolge}} +Das Signal.... sind die Daten, Zahlen welche übertragen werden sollen. +Das speziell ist das wir 100 Punkte übertragen und von 64 bis 100, +werden nur Null Punkte übertragen, dies weiss auch unser Empfänger. +Nun wird das Signal in Abbildung... codiert... +Somit wird die Information jedes Punktes auf das ganze spektrum von 0 bis 100 übertragen. +Kommen nuun drei Fehler... hinzu zu diesem codierten Signal sind diese nicht zu erkennen. +Nach dem Empfangen... und decodieren ... erkennt man die fehlerhafte information in den Punkten 64 bis 100. +Filtert man nur diese Punkte heraus und Transformiert sie mit Fourier erhält man die stellen an denen die Fehler sich eingeschlichen haben. + +\subsection{Diskrete Fourientransformation Zusamenhang +\label{reedsolomon:subsection:dtfzusamenhang}} +Die Diskrete Fourientransformation ist definiert als +.... diff --git a/buch/papers/reedsolomon/idee.tex b/buch/papers/reedsolomon/idee.tex index 7200425..4a7716a 100644 --- a/buch/papers/reedsolomon/idee.tex +++ b/buch/papers/reedsolomon/idee.tex @@ -11,40 +11,48 @@ zu Übertragen und Fehler zu erkennen. Beim Reed-Solomon-Code kann man nicht nur Fehler erkenen, man kann sogar einige Fehler korrigieren. -\rhead{Idee} -Eine Idee ist mit den Daten, wir nehmen hier die Zahlen .... -ein Polynom +\rhead{Polynom-Ansatz} +Eine Idee ist die Daten, +ein Polynom zu bilden und dieses dann mit bestimmten Punkten überträgt. +Nehmen wir als beisbiel die Zahlen \textcolor{blue}{2}, \textcolor{blue}{1}, \textcolor{blue}{5}, +welche uns dann das Polynom \begin{equation} -\int_a^b x^2\, dx +p(x) = -\left[ \frac1312 x^3 \right]_a^b -= -\frac{b^3-a^3}3. +2x^2 + 1x + 5 \label{reedsolomon:equation1} \end{equation} -zu bilden wie in der abbildung ... dargestellt. - -abbildung +ergeben. +Übertragen werden nun die stellen 1, 2, 3\dots 7 dieses Polynomes. +Grafisch sieht man dies dann im Abbild //TODO +Wenn ein Fehler sich in die Übertragung eingeschlichen hatt, muss der Leser/Empfänger erkennen, welches das Richtige Polynom ist. +Der Leser/Empfänger weiss, mit welchem Grad das Polynom entwickelt wurde. +\subsection{Beispiel} +Für das Beispeil aus der Gleichung \ref{reedsolomon:equation1}, +ist ein Polynome zweiten Grades durch drei Punkte eindeutig bestimmbar. +Hat es Fehler in der Übertragunge gegeben, kann man diese erkennen, +da alle Punkte, die korrekt sind, auf dem Polynom liegen müssen. +Ab wie vielen Fehler ist das Polynom nicht mehr erkennbar beim Übertragen von 7 Punkten? +Bei 2 Fehlern kann man noch eindeutig bestimmen, dass das Polynom mit 4 Punkten, +gegenüber dem mit 5 Punkten falsch liegt. +Werden es mehr Fehler kann nur erkennt werden das das Polynom nicht stimmt. +Das Orginale Polynom kann aber nicht mehr gefunden werden. +Dabei sollten mehr Übertragungspunkte gegeben werden. -\subsection{De finibus bonorum et malorum -\label{reedsolomon:subsection:finibus}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. +\section{Fehlerbestimmung +\label{reedsolomon:section:Fehlerbestimmmung}} +So wird ein Muster indentifiziert, welches genau vorherbestimmen kann, +wie gross das Polynom sein muss und wie viele Übertragungspunkte gegeben werden müssen. +Durch ein klein wenig Überlegung ist klar das die anzahl Zahlen (Daten, ab hier verwenden wir das Wort Nutzlast), +die dan Entschlüsselt werden sollen den Grad des Polynoms minus 1 ergeben. +Für die Anzahl an Übertragungspunkte, muss bestimmt werden wieviel Fehler erkennt und korrigiert werden sollen. +Mit Hilfe der Tabelle.... sieht man das es bei $$t$$ Fehlern und $$k$$ Nutzlast, +für das Übertragen $$k+2t$$ Punkte gegben werden müssen. -Et harum quidem rerum facilis est et expedita distinctio -\ref{reedsolomon:section:loesung}. -Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil -impedit quo minus id quod maxime placeat facere possimus, omnis -voluptas assumenda est, omnis dolor repellendus -\ref{reedsolomon:section:folgerung}. -Temporibus autem quibusdam et aut officiis debitis aut rerum -necessitatibus saepe eveniet ut et voluptates repudiandae sint et -molestiae non recusandae. -Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis -voluptatibus maiores alias consequatur aut perferendis doloribus -asperiores repellat. +Ein toller Nebeneffekt ist das dadurch auch $$2t$$ Fehler erkannt werden. +um zurück auf unser Beispiel zu kommen, +können von den 7 Übertragungspunkten bis zu $$2t = 2*2 = 4 $$ Punkten falsch liegen +und es wird kein eindeutiges Polynom 2ten Grades erkannt, und somit die Nutzlast Daten als fehlerhaft deklariert. +Ein Polynom durch Punkt mit Polynom Interpolation zu rekonstruieren ist schwierig und Fehleranfällig. -- cgit v1.2.1 From 04b1cb248d2e559814dd6551cb331d95b9df9fdf Mon Sep 17 00:00:00 2001 From: fabioviecelli <80270098+fabioviecelli@users.noreply.github.com> Date: Sat, 17 Jul 2021 15:19:58 +0200 Subject: Einleitung, Schwingungsgleichung, Matlab-code --- buch/papers/erdbeben/Teil_Fabio.tex | 216 +++++++++++++++++++++++++----------- 1 file changed, 154 insertions(+), 62 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/erdbeben/Teil_Fabio.tex b/buch/papers/erdbeben/Teil_Fabio.tex index 63b9648..9f5d092 100644 --- a/buch/papers/erdbeben/Teil_Fabio.tex +++ b/buch/papers/erdbeben/Teil_Fabio.tex @@ -1,15 +1,16 @@ -\section{Kalman Filter} +\section{Kalman-Filter} \subsection{Was ist ein Erdbeben?} -Für das Verständnis möchten wir zuerst klären, was ein Erdbeben genau ist. -Das soll uns helfen, eine Verknüpfung zwischen dem Naturphänomen und der mathematischen Lösungsfindung herzustellen. +Für das Verständnis möchten wir zuerst erklären, was ein Erdbeben genau ist. +Das soll uns helfen, eine Verknüpfung zwischen dem Naturphänomen und der mathematischen Problemstellung herzustellen. + Unter einem Erdbeben verstehen wir eine Erschütterung des Erdkörpers. -Dabei reiben zwei tektonische Platten aneinander, welche aber sich durch die Gesteinsverzahnung gegenseitig blockieren. +Dabei reiben zwei tektonische Platten aneinander, welche sich durch die Gesteinsverzahnung gegenseitig blockieren. Aufgrund dieser Haftreibung entstehen Spannungen, die sich immer mehr bis zum Tipping Point aufbauen. Irgendwann ist der Punkt erreicht, in dem die Scherfestigkeit der Gesteine überwunden wird. -Wenn dies passiert, entladet sich die aufgebaute Spannung und setzt enorme Energien frei, die wir als Erdbeben wahrnehmen. +Wenn dies passiert, entlädt sich die aufgebaute Spannung und setzt enorme Energien frei, die wir als Erdbeben wahrnehmen. -Ein Erdbeben pflanzt sich vom Erdbebenherd in allen Richtungen gleich aus. +Ein Erdbeben breitet sich vom Erdbebenherd in allen Richtungen gleich aus. Vergleichbar ist, wenn man einen Stein in einen Teich wirft und die Wellen beobachten kann, die sich ausbreiten. Wir möchten nun mittels Kalman-Filter die Erdbebenbeschleunigung herausfinden. @@ -18,29 +19,47 @@ Die Erdbebenbeschleunigung ist in der Praxis zur Entwicklung von Erdbebengefähr \subsection{Künstliche Erdbebendaten} Nun möchten wir anhand eines eigenen Beispiels das Kalman-Filter anwenden. -Wir müssen Erdbebendaten künstlich erzeugen, um sie in das Filter zu geben und somit den Prozess zu starten. -Dafür nehmen wir die Formel für harmonische gedämpfte Schwingungen, die +Da wir keine Rohdaten über vergangene Erdbeben zur Hand haben, müssen wir künstliche Daten erzeugen, um sie in das Filter einzugeben und somit den Prozess starten. +Dafür nehmen wir die Formel für harmonisch gedämpfte Schwingungen, die \begin{equation} y = A \sin(\omega t e^{-lambda t}) \end{equation} -lautet. - - - +lautet. A ist die Amplitude der Schwingung und beschreibt die Heftigkeit eines Erdbebens, die Magnitude. -Omega repräsentiert die Erdbebenfrequenz, die in der Realität zwischen 1 Hz und 30 Hz betragen kann. +Omega repräsentiert die Erdbebenfrequenz, die in der Realität zwischen 1 Hz und 30 Hz beträgt. Wir wählen als Erwartungswert 15 Herz und für die Standardabweichung 1 Hz. Lambda ist die Bodendämpfung, für die wir 0.2 wählen. -Wir haben diese Zahl aus der Literatur entnommen und ist für das Bauwesen bedeutend. +Wir haben diese Zahl aus der Literatur entnommen, denn sie ist für das Bauwesen bedeutend. +Lambda ist ein Materialparameter von Böden. + Je grösser Lambda gewählt wird, desto stärker wirkt die Dämpfung der Massenschwingung. Die Funktion ist zeitabhängig und wir lassen pro Sekunde zehn Messwerte generieren. -Die Frequenz soll im Matlab als Zufallszahl generiert werden. -Mit dem Golay-Filter glätten wir unsere Werte, um unser Output näher an die Realität zu bringen. -Zusätzlich werden Ausreisser nicht vernachlässigt und wirken geglättet in unsere Datenmenge. +Die Frequenz basiert auf einer random-Funktion, da wir das Erdbeben unberechenbar gestalten möchten. +Mit dem Golay-Filter können wir hohe Frequenz-Anteile in die Berechnung mit einfliessen lassen, anstatt sie abzuschneiden. +Die Bildung eines üblichen Mittelwerts wäre hier weniger geeignet. + +\begin{lstlisting} +freq = sgolayfilt(randn(size(Time)),0,11)*freqstd... ++freqmean; +\end{lstlisting} + +Mit der Frequenz erhalten wir die Winkelbeschleunigung und damit können wir die Amplitude berechnen. + + +\begin{lstlisting} +w = 2 * pi * freq; +a = Amplitude*sin(cumsum(w.*[0;diff(Time)])).*exp(-lambda*Time); +\end{lstlisting} + +Mit der Matlab-Funktion ode45 haben wir eine Funktion gefunden, um die Differentialgleichung aufzulösen. ode45 basiert auf dem Runge-Kutta-Verfahren, einem Einschrittverfahren, bei dem die Lösung ausgehend von einem gegebenen Anfangswert, in einer Näherung gesucht wird. + +\begin{lstlisting} +[T,Y] = ode45(@(t,x)ErzeugteSchwingung(t,x,m,k,d,a,Time),[0 tend], IC, SolverOptions); +\end{lstlisting} Grafik einfügen @@ -48,7 +67,8 @@ In der Grafik erkennen wir in den Sekunden 0 bis 10, dass die Sinuskurve gezackt Das deutet darauf hin, dass die Frequenz des Erdbebens einen hohen Einfluss auf die Masse des Seismographen hat. Ab der 10. Sekunde bis zu tend, pendelt sich die Masse in ihre Eigenfrequenz ein und verhält sich unabhängiger vom Erdbeben. -\subsection{Versuch} +\subsection{Versuch (bin noch dran)} + Um den Kalman-Filter auszuprobieren, setzen wir nun Werte ein. Für die Systemparameter wählen wir m=1.0, D = 0.3 und k = 0.1 und fügen es in die Differentialgleichung @@ -62,49 +82,121 @@ ein und erhalten 1\ddot x + 0.1 \dot x + 0.3x = f \end{equation} - -\subsubsection*{Prozessrauschkovarianzmatrix $Q$} - - - - - -\begin{equation} - Q = \left( - \begin{array}{ccc} - (5 \cdot 10^{-5})^2 & 0 & 0 \\ - 0 & (1 \cdot 10^{-5})^2 & 0\\ - 0 & 0& ( 1 )^2\\ - \end{array}\right) -\end{equation} - - - - +\subsection{Matlab Code} + + +\begin{lstlisting} + %% Initialisierte Werte + t0 = 0.00; % Anfangszeit + deltat = 0.01; % Zeitschritt + tend = 50.00; % Endzeit +\end{lstlisting} +Ein natürliches Erdbeben dauert zwischen wenigen Sekunden bis etwa eine Minute an. +50 Sekunden genügen für unsere Daten. +Pro Sekunde erhalten wir 100 Messpunkte, die für den Prozess des Filters eine präzise Anwendung ermöglichen. + +\begin{lstlisting} + % Standard-Abweichungen Prozess + sigmax = 0.05e-3; % Position + sigmav = 0.01e-3; % Geschwindigkeit + sigmaf = 1; % (Äussere) Kraft + + % Standard-Abweichung Messung + sigmam = 0.01e-3; +\end{lstlisting} + +Wir vertrauen dem System und geben kleine Standardabweichungen für die Position, Geschwindigkeit und Kraft ein. +Bei der Messung erwarten wir auch, dass die Sensoren genau funktionieren. +Jedoch hängt das vom Hersteller ab oder muss statistisch ermittelt werden. + + +\begin{lstlisting} + % Systemparameter +m = 1.00; % Masse +D = 0.30; % Federkonstante +k = 0.10; % Dämpfung +\end{lstlisting} +Hier werden die Spezifikationen des Seismographen definiert. + +\begin{lstlisting} +%% Kalmanfilter +% Initialisierung + +% Anfangszustand (Position, Geschwindigkeit, Kraft) +x0 = [0; 0; 0]; + +% Unsicherheit des Anfangszustand +P0 = [0, 0, 0; ... +0, 0, 0; ... +0, 0, 0]; + +% Systemmatrizen +A = [0, 1, 0;... % Dynamikmatrix +-D/m, -2*k/m, 1;... +0, 0, 0]; % Ableitungen von f(t) unbekant. Annahme: 0 +A = expm(A * deltat); + +Q = [sigmax^2, 0, 0;... +0, sigmav^2, 0;... +0, 0, sigmaf^2]; % Prozessrauschen (Covarianz) + + +\begin{lstlisting} +% Messprozess +H = [1, 0, 0]; % Messmatrix +R = sigmam^2; % Messrauschen (Könnte durch Versuche bestimmt werden) +\end{lstlisting} +Tritt ein Erdbeben ein, wird die Position der Masse in die Messmatrix eingetragen. + + +I = eye(3); % Identity matrix (Einheitsmatrix) + +\begin{lstlisting} +% Filterprozess + +% Initialisieren der Variablen +N = length(t); % Anzahl Punkte im Einheitsvektor (= Anzahl Messwerte) +xhat = zeros(3, N); % Matrix mit geschätzten Zuständen + +% Index ':' bedeutet: 'alles' +% Index '(1, :)' bedeutet: 'alles aus der 1. Zeile' + +% Anfangszustand setzen +xhat(:, 1) = x0; +P = P0; +\end{lstlisting} + +\begin{lstlisting} + +% Kalman-Matrizen konvergiert. Vorab-Berechnung in 'genügenden' Iterationen +for idx = 1:100 +Ppred = A * P * A' + Q; % Prädizieren der Kovarianz +S = (H * Ppred * H' + R); % Innovationskovarianz +K = Ppred * H' / S; % Filter-Matrix (Kalman-Gain) +P = (I - K * H) * Ppred; % Aktualisieren der Kovarianz +end +\end{lstlisting} + +In diesem Schritt wird die Kovarianz vorhergesagt, mit der Messung verglichen und nach jeder Berechnung aktualisiert. + +\begin{lstlisting} +% Anfangszustand gegeben +% Erster zu berechnender Wert ist der zweite +for idx = 2:N +% Vorhersage +xpred = A * xhat(:, idx-1); % Prädizierter Zustand aus Bisherigem und System +% Ppred = A * P * A' + Q; % Prädizieren der Kovarianz + +% Korrektur +y = xt(idx) - H * xpred; % Messungen/ Kraft aus System - Vohersage +% S = (H * Ppred * H' + R); % Innovationskovarianz +% K = Ppred * H' / S; + +xhat(:, idx) = xpred + K * y; % Aktualisieren des Systemzustands +% P = (I - K * H) * Ppred; % Aktualisieren der Kovarianz +end +\end{lstlisting} \subsection{Resultate} - -Vergleichen wir die künstlichen Messdaten mit der geschätzten Schwingung des Kalman-Filters, stellen wir fest, dass wir eine gute Methode gefunden haben, die Erdbebenbeschleunigung zu schätzen. -Obwohl die künstlichen Daten mit einer random-Funktion erzeugt werden, kann das Kalman-Filter präzise Vorhersagungen bilden. - -Für die Differentialgleichung zweiter Ordnung brauchen wir im Matlab die Funktion ode45. -Mit dieser Funktion können wir Differentialgleichungen auflösen. - - - - - - - - - - - - - -In Matlab fügen wir die Formel und unsere definierten Werte ein. -Die Frequenz generieren wir mit einem Zufallscode, -Mit einem Zufallscode und einen Zeitraum - -Matlabcode einfügen - +Grafik einfügen +Wir erkennen, dass wir mit dem Kalman-Filter eine gute Methode gefunden haben, die äussere Beschleunigung zu schätzen. Die Schätzung der nächsten Position der Federmasse liegt immer ziemlich nahe der tatsächlichen Messung. Man muss aber auch berücksichtigen, dass die Federschwingung ziemlich kontrolliert verläuft und das Kalman-Filter somit präzise Vorhersagen treffen kann. -- cgit v1.2.1 From 20dda3d0a116d5b4126f9b1210c3f7b2c1bab097 Mon Sep 17 00:00:00 2001 From: Lukaszogg <82384106+Lukaszogg@users.noreply.github.com> Date: Sat, 17 Jul 2021 16:02:04 +0200 Subject: Teil1+Teil0 --- buch/papers/erdbeben/teil0.tex | 97 +++++++-- buch/papers/erdbeben/teil1.tex | 439 ++++++++++++++++++----------------------- 2 files changed, 269 insertions(+), 267 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/erdbeben/teil0.tex b/buch/papers/erdbeben/teil0.tex index 6e89821..8ac5d6d 100644 --- a/buch/papers/erdbeben/teil0.tex +++ b/buch/papers/erdbeben/teil0.tex @@ -2,21 +2,88 @@ % einleitung.tex -- Beispiel-File für die Einleitung % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% +%% \section{Teil 0\label{erdbeben:section:teil0}} -\rhead{Teil 0} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{erdbeben:bibtex}. -At vero eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum -dolor sit amet. - -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit -amet. +\rhead{Erdbeben} +\section{Erdbebenmessung} +\subsection{Was ist ein Erdbeben} +Fabio +\subsection{Funktion eines Seismograph} +Um ein Erdbeben kenntlich zu machen, werden in der Regel Seismographen mit vielen Sensoren verwendet. +Ein Seismograph besteht im Grunde aus einer federgelagerten Masse. Wirkt eine Bodenerregung auf das Gerät ein, bleibt die gekoppelte Masse stehen aber das Gehäuse schwingt mit. +Relativbewegung des Bodens kann damit als Auslenkung im Zeitverlauf gemessen werden. +In modernen Seismographen wird die Bodenbewegung in alle Richtungen gemessen, sowohl Horizontal als auch Vertikal. +Wir konstruieren uns eine einfachere Version eines Seismographen mit eine Gehäuse, an dem zwei Federn und eine Masse befestigt ist. +Ein Sensor unter der Masse misst die Position, bzw. die Auslenkung der Feder und der Masse. +Dies bedeutet unser Seismograph kann nur in eine Dimension Messwerte aufnehmen. + +\begin{figure} + \begin{center} + \includegraphics[width=5cm]{papers/erdbeben/Apperatur} + \caption{Aufbau des Seismographen mit Gehäuse, Masse, Federn und Sensor} + \end{center} +\end{figure} + +\subsection{Ziel} +Unser Seismograph misst nur die Position der Masse über die Zeit. +Wir wollen jedoch die Beschleunigung $a(t)$ des Boden bzw. die Kraft $f(t)$ welche auf das Gehäuse wirkt bestimmten. +Anhand dieser Beschleunigung bzw. der Krafteinwirkung durch die Bodenbewegung wird später das Bauwerk bemessen. +Dies bedeutet, die für uns interessante Grösse $f(t)$ wird nicht durch einen Sensor erfasst. +Jedoch können wir durch zweifaches ableiten der Positionsmessung $s(t)$ die Beschleunigung der Masse berechnen. +Das heisst: Die Messung ist zweifach Integriert die Kraft $f(t)$ + der Eigendynamik der Masse. +Um die Bewegung der Masse zu berechnen, müssen wir Gleichungen für unser System finden. + +\subsection{Systemgleichung} +Im Fall unseres Seismographen, kann die Differentialgleichung zweiter Ordnung einer gedämpften Schwingung am harmonischen Oszillator verwendet werden. +Diese lautet: +\begin{equation} +m\ddot s + 2k \dot s + Ds = f +\end{equation} +mit den Konstanten $m$ = Masse, $k$ = Dämpfungskonstante und $D$ = Federkonstante. +Um diese nun in die Systemmatrix umzuwandeln, wird die Differentialgleichung zweiter Ordnung substituiert: +\[ {x_1}=s \qquad +{x_2}=\dot s, \qquad\] +Somit entstehen die Gleichungenür die Position $s(t)$ der Masse : +\[ \dot {x_1} = {x_2}\] +und +\[ \dot x_2 = -\frac{D}{m} {x_1} -\frac{2k}{m} {x_2} + \frac{f} {m} \] für die Geschwindigkeit $v(t)$ der Masse. + +Diese können wir nun in der Form +\[ {x_3}=-\frac{D}{m} {s_1} -\frac{2k}{m} {s_2} + \frac{f} {m} \] +auch als Matrix-Vektor-Gleichung darstellen. +Dafür wird die Gleichung in die Zustände aufgeteilt. +Die für uns relevanten Zustände sind die Position der Masse, die Geschwindigkeit der Masse und die äussere Beschleunigung des ganzen System. +Dabei muss unterschieden werden, um welche Beschleunigung es sich handelt. +Das System beinhaltet sowohl eine Beschleunigung der Masse (innere Beschleunigung), als auch eine Beschleunigung der ganzen Apparatur (äussere Beschleunigung). +In unserem Fall wird die äusseren Beschleunigung gesucht, da diese der Erdbebenanregung gleich kommt. +\begin{equation} +\frac{d}{dt} \left(\begin{array}{c} {s_1} \\ {s_2} \end{array}\right) = \left( + \begin{array}{ccc} +0 & 1& 0 \\ +- \frac{D}{m} &-\frac{2k}{m} & \frac{1} {m}\\ +\end{array}\right) \left(\begin{array}{c} {s_1} \\ {s_2} \\ {s_3} \end{array}\right). +\end{equation} + +Durch Rücksubstituion ergibt sich: +\begin{equation} +\frac{d}{dt} \left(\begin{array}{c} s(t) \\ v(t) \end{array}\right) = \left( + \begin{array}{ccc} +0 & 1& 0 \\ +- \frac{D}{m} &-\frac{2k}{m} & \frac{1} {m}\\ +\end{array}\right) \left(\begin{array}{c} s(t)\\ v(t)\\ f(t) \end{array}\right). +\end{equation} +Wir wissen nicht wie sich die Kraft verhält. +Deshalb treffen wir die Annahme, das sich die Kraft über die Beobachtungszeit nicht verändert. +Diese unzutreffende Annahme wird später durch einen grossen Systemfehler kompensiert. +Da die Kraft unbekannt ist, wird die letzte Zeile mit Nullen gefüllt, denn genau diese Werte wollen wir. + + + + + + + + + diff --git a/buch/papers/erdbeben/teil1.tex b/buch/papers/erdbeben/teil1.tex index 98bbd9e..a4e2220 100644 --- a/buch/papers/erdbeben/teil1.tex +++ b/buch/papers/erdbeben/teil1.tex @@ -7,132 +7,107 @@ % teil2.tex -- Beispiel-File für teil2 % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% +%% + +\rhead{Kalman-Filter} -\begin{document} +\section{Kalman-Filter} +Da wir die äussere Kraft nicht direkt messen können, benötigen wir ein Werkzeug, welches aus der gemessenen Position, die Krafteinwirkung auf unsere System schätzt. +Dies ist eine Typische Anwendung für den linearen Kalman-Filter. +Unser Ziel ist es, anhand der Messung die eigentlich interessante Grösse $f$ zu bestimmen. +Dabei wird durch eine deterministische Vorhersage, in dem der Zustand \cdot Eigendynamik des Systems gerechnet. +Die Idee dahinter ist, dass das Kalman-Filter die nicht-deterministische Grösse $f$ anhand der Messung und der Vorhersage zu bestimmen. +Für mehrere Dimensionen (x,y,z) würde der Pythagoras für das System benötigt werden. +Da sich der Pythagoras bekanntlich nicht linear verhält, kann kein lineares Kalman-Filter implementiert werden. +Da das Kalman-Filter besonders effektiv und einfach für lineare Abläufe geeignet ist, würde eine zweidimensionale Betrachtung den Rahmen dieser Arbeit sprengen. +Für ein nicht-lineares System werden Extended Kalman-Filter benötigt, bei denen die System-Matrix (A) durch die Jacobi-Matrix des System ersetzt wird. +Einfachheitshalber beschränken wir uns auf den linearen Fall, da dadurch die wesentlichen Punkte bereits aufgezeigt werden. -\section{Kalman Filter} \subsection{Geschichte} -Das Kalman Filter wurde 1960 von Rudolf Emil Kalman entdeckt und direkt von der NASA für die Appollo Mission benutzt. Der Filter kommt mit wenig Rechenleistung aus und war somit dafür geeignet die Rakete bei der Navigation zu unterstützen. Das Filter schätzt den Zustand eines Systems anhand von Messungen und kann den nächsten Zustand errechnen. Typische Anwendungen des Kalman-Filters sind die Glättung von verrauschten Daten und die Schätzung von Parametern und kommt heutzutage in jedem Satellit, Navigationssystem, Smartphones und Videospielen vor. +Das Kalman-Filter wurde 1960 von Rudolf Emil Kalman entdeckt und direkt von der NASA für die Appollo Mission benutzt. Der Filter kommt mit wenig Rechenleistung aus und war somit dafür geeignet die Rakete bei der Navigation zu unterstützen. Das Filter schätzt den Zustand eines Systems anhand von Messungen und kann den nächsten Zustand errechnen. Eine typische Anwendungen des Kalman-Filters ist Glättung von verrauschten Daten und die Schätzung von Parametern. Dies kommt heutzutage in jedem Satellit, Navigationssystem, Smartphones und Videospielen vor. \subsection{Wahrscheinlichkeit} -Das Kalman-Filter schätzt den wahrscheinlichsten Wert zwischen zwei Normalverteilungen oder auch Gauss-Verteilung. Die eine Kurve zeigt die errechnete Vorhersage des Zustands, bzw. deren Normalverteilung. Die andere Kurve zeigt die verrauschte Messung des nächsten Zustand, bzw. deren Normalverteilung. Wie man am Beispiel dieser zwei Gauss-Verteilungen sehen kann, ist sowohl der geschätzte Zustand als auch der gemessene Zustand verteilt und haben unterschiedliche Standardabweichungen $\sigma$ und Erwartungswerte $\mu$. - - +Das Kalman-Filter schätzt den wahrscheinlichsten Wert zwischen Normalverteilungen. +Dies bedeutet, das Filter schätzt nicht nur den Mittelwert, sondern auch die Standartabweichung. +Da Normalverteilungen dadurch vollständig definiert sind, schätzt ein Kalman-Filter die gesamte Verteilungsfunktion des Zustandes. +Die eine Funktion zeigt die errechnete Vorhersage des Zustands, bzw. deren Normalverteilung. +Die andere Funktion zeigt die verrauschte Messung des nächsten Zustand, bzw. deren Normalverteilung. +Wie man am Beispiel der Gauss-Verteilungen unten sehen kann, ist sowohl der geschätzte Zustand als auch der gemessene Zustand normalverteilt und haben dementsprechend unterschiedliche Standardabweichungen $\sigma$ und Erwartungswerte $\mu$. \begin{figure} \begin{center} \includegraphics[width=5cm]{papers/erdbeben/Gausskurve2.pdf} - \caption{System} + \caption{Zwei Normalerteilungen; Die eine Funktion zeigt die Vorhersage, die andere die Messung} \end{center} \end{figure} - -Um eine genauere Schätzung des Zustandes zu machen, wird nun ein Wert zwischen den beiden Verteilungen gesucht. An diesem Punkt wird nun eine Eigenschaft ausgenutzt. Durch das Multiplizieren zweier Normalverteilungen entsteht eine neue Normalverteilung. - +Um eine genauere Schätzung des Zustandes zu machen, wird nun ein Wert zwischen den beiden Verteilungen berechnet. +Nun wird eine Eigenschaft der Normalverteilung ausgenutzt. Durch das Multiplizieren zweier Normalverteilungen entsteht eine neue Normalverteilung. Wir haben eine Normalverteilung der Vorhersage: -\begin{equation} -{y_1}(x;{\mu_1},{\sigma_1})=\frac{1}{\sqrt{2\pi\sigma_1^2}}\quad e^{-\frac{(x-{\mu_1})^2}{2{\sigma_1}^2}} -\end{equation} -und für die Messung: - -\begin{equation} -{y_2}(x;{\mu_2},{\sigma_2})=\frac{1}{\sqrt{2\pi\sigma_2^2}}\quad e^{-\frac{(x-{\mu_2})^2}{2{\sigma_2}^2}}. -\end{equation} - -Diesen werden nun Multipliziert und durch deren Fläche geteilt um sie wieder zu Normieren: -\begin{equation} -{y_f}(x;{\mu_f},{\sigma_f})=\frac{ \frac{1}{\sqrt{2\pi\sigma_1^2}}e^{-\frac{(x-{\mu_1})^2}{2{\sigma_1}^2}} \cdot \frac{1}{\sqrt{2\pi\sigma_2^2}}e^{-\frac{(x-{\mu_2})^2}{2{\sigma_2}^2}}}{\int {y_1}*{y_2} dx\,} -\end{equation} -Dadurch gleicht sich die neue Kurve den anderen an. Interessant daran ist, dass die fusionierte Kurve sich der genauere Normal-Verteilung anpasst. ist ${\sigma_2}$ klein und ${\sigma_1}$ gross, so wird sich die fusionierte Kurve näher an ${y_2}(x;{\mu_2},{\sigma_2})$ begeben. Sie ist also gewichtet und die best mögliche Schätzung. +\[ {y_1}(x;{\mu_1},{\sigma_1})=\frac{1}{\sqrt{2\pi\sigma_1^2}}\quad e^{-\frac{(x-{\mu_1})^2}{2{\sigma_1}^2}} \] +und der Messung: +\[ {y_2}(x;{\mu_2},{\sigma_2})=\frac{1}{\sqrt{2\pi\sigma_2^2}}\quad e^{-\frac{(x-{\mu_2})^2}{2{\sigma_2}^2}}. \] -\begin{figure} - \begin{center} - \includegraphics[width=5cm]{papers/erdbeben/Gausskurve3.pdf} - \caption{System} - \end{center} -\end{figure} - - -Was in 2 Dimensionen erklärt wurde, funktioniert auch in mehreren Dimensionen. Dieses Prinzip mach sich der Kalman Filter zu nutze, und wird von uns für die Erdbeben Berechnung genutzt. +Diesen werden nun Multipliziert und durch deren Fläche geteilt um sie wieder zu Normieren: +\[ +{y_f}(x;{\mu_f},{\sigma_f})=\frac{ \frac{1}{\sqrt{2\pi\sigma_1^2}}e^{-\frac{(x-{\mu_1})^2}{2{\sigma_1}^2}} \cdot \frac{1}{\sqrt{2\pi\sigma_2^2}}e^{-\frac{(x-{\mu_2})^2}{2{\sigma_2}^2}}}{\int {y_1}\cdot{y_2} dx\,} + \] +Diese Kombination der beiden Verteilungen resultiert wiederum in einer Normalverteilung +\[ {y_f}(x; {\mu_f}, {\sigma_f}) = {y_1}(x;{ \mu_1},{ \sigma_1}) {\cdot y_2}(x; {\mu_2}, {\sigma_2}), \] +mit Erwartungswert +\[ \mu_f = \frac{\mu_1\sigma_2^2 + \mu_2 \sigma_1^2}{\sigma_1^2 + \sigma_2^2} \] +und Varianz +\[ \sigma_f^2 = \frac{\sigma_1^2 \sigma_2^2}{\sigma_1^2 + \sigma_2^2}. \] +Dadurch gleicht sich die neue Kurve den anderen an. Interessant daran ist, dass die fusionierte Kurve sich der genauere Normal-Verteilung anpasst. +Ist ${\sigma_2}$ klein und ${\sigma_1}$ gross, so wird sich die fusionierte Kurve näher an ${y_2}(x;{\mu_2},{\sigma_2})$ begeben. +Sie ist also gewichtet und die best mögliche Schätzung. -\section{Aufbau} -Um ein Erdbeben kenntlich zu machen werden in der Regel Seismographen mit vielen Sensoren verwendet. -Ein Seismograph besteht im Grunde aus einer federgelagerten Masse. Wirkt eine Bodenerregung auf das Gerät ein, bleibt die gekoppelte Masse stehen und das Gehäuse schwingt mit.Relativbewegung des Bodens kann damit als Längenänderung im Zeitverlauf gemessen werden. In modernen Seismographen wird die Bodenbewegung in alle Richtungen gemessen, sowohl Horizontal als auch Vertikal. -Wir konstruieren uns eine einfachere Version eines Seismographen, welcher rein mechanisch funktioniert. Zudem kann er nur in eine Dimension Messwerte aufnehmen. Würde das System ausgebaut werden, um alle Horizontalbewegungen aufzunehmen, würde der Verwendung des Kalman-Filters zu kompliziert werden. Für zwei Dimensionen (x,y) würde der Pythagoras für das System benötigt werden. Da sich der Pythagoras bekanntlich nicht linear verhält, kann kein lineares Kalman-Filter implementiert werden. Da das Kalman-Filter besonders effektiv und einfach für lineare Abläufe geeignet ist, würde eine Zweidimensionale Betrachtung den Rahmen dieser Arbeit sprengen. Für ein nicht-lineares System werden Extended Kalman-Filter benötigt, bei denen die System-Matrix (A) durch die Jacobi-Matrix des System ersetzt wird. Einfachheitshalber beschränken wir uns aber auf den linearen Fall, da dadurch die wesentlichen punkte bereits aufgezeigt werden. \begin{figure} \begin{center} - \includegraphics[width=5cm]{papers/erdbeben/Apperatur} - \caption{System} + \includegraphics[width=5cm]{papers/erdbeben/Gausskurve3.pdf} + \caption{Durch das Multiplizieren der blauen und der orangen Verteilung entsteht die die rote, optimale Funktion} \end{center} \end{figure} +Was in 2 Dimensionen erklärt wurde, funktioniert auch in mehreren Dimensionen. +Dieses Prinzip mach sich das Kalman Filter zu nutze, und wird von uns für die Erdbeben Berechnung genutzt. -\section{Systemgleichung} -Da das Kalman-Filter zum Schätzen des nächsten Zustand verwendet wird, benötigt das Kalman-Filter eine Beschreibung der Systemdynamik. Im Fall unseres Seismographen, kann die Differentialgleichung zweiter Ordnung einer gedämpften Schwingung am harmonischen Oszillator verwendet werden. Diese lautet: -\begin{equation} -m\ddot x + 2k \dot x + Dx = f -\end{equation} -mit den Konstanten $m$ = Masse, $k$ = Dämpfungskonstante und $D$ = Federkonstante. - -Um diese nun in die Systemmatrix umzuwandeln, wird aus der Differentialgleichung zweiter Ordnung durch die Substitution \[ {x_1}=x, \qquad -{x_2}=\dot x, \qquad -{x_3}=\ddot x\qquad\] erhalten wir die Differentialgleichung \[ m{x_3}+ 2k{x_2} + D{x_1} = f.\] Diese können wir nun in der Form \[ {x_3}=-\frac{D}{m} {x_1} -\frac{2k}{m} {x_2} + \frac{f} {m} \] auch als Matrix-Vektor-Gleichung darstellen. - - -Dafür wird die Gleichung in die Zustände aufgeteilt. Die für uns relevanten Zustände sind die Position der Masse, die Geschwindigkeit der Masse und die äussere Beschleunigung des ganzen System. Dabei muss unterschieden werden, um welche Beschleunigung es sich handelt. Das System beinhaltet sowohl eine Beschleunigung der Masse bzw. Feder (innere Beschleunigung), als auch eine Beschleunigung der ganzen Apparatur (äussere Beschleunigung). In unserem Fall wird die äusseren Beschleunigung gesucht, da diese der Erdbeben Anregung gleich kommt. - - -\begin{equation} -\frac{d}{dt} \left(\begin{array}{c} {x_1} \\ {x_2} \end{array}\right) = \left( - \begin{array}{ccc} -0 & 1& 0 \\ -- \frac{D}{m} &-\frac{2k}{m} & \frac{1} {m}\\ -\end{array}\right) \left(\begin{array}{c} {x_1} \\ {x_2} \\ {x_3} \end{array}\right). -\end{equation} - -Durch die Rücksubstituion ergibt sich: -\begin{equation} -\frac{d}{dt} \left(\begin{array}{c} x(t) \\ v(t) \end{array}\right) = \left( - \begin{array}{ccc} -0 & 1& 0 \\ -- \frac{D}{m} &-\frac{2k}{m} & \frac{1} {m}\\ -\end{array}\right) \left(\begin{array}{c} x(t)\\ v(t)\\ f(t) \end{array}\right). -\end{equation} - - -Da die Kraft unbekannt ist, wird die letzte Zeile später mit Nullen bestückt, denn genau diese Werte wollen wir. - -\section{Kalman Filter} -Um den Kalman Filter zu starten, müssen gewisse Bedingungen definiert werden. In diesem Abschnitt werden die einzelnen Parameter/Matrizen erläutert und Erklärt, wofür sie nützlich sind. - +\section{Filter-Matrizen} +Um den Kalman Filter zu starten, müssen gewisse Bedingungen definiert werden. +In diesem Abschnitt werden die einzelnen Parameter und Matrizen erklärt und erläutert, wofür sie nützlich sind. \subsection{Anfangsbedingungen} \subsubsection*{Anfangszustand $x$} -Das Filter benötigt eine Anfangsbedingung. In unserem Fall ist es die Ruhelage, die Masse bewegt sich nicht. Zudem erfährt die Apparatur keine äussere Kraft. +Das Filter benötigt eine Anfangsbedingung. +In unserem Fall ist es die Ruhelage, die Masse bewegt sich nicht. +Zudem erfährt die Apparatur keine äussere Kraft. -\begin{equation} -{x_0 }= \left( \begin{array}{c} 0\\ 0\\ 0\end{array}\right) -\end{equation} + +\[ {x_0 }= \left( \begin{array}{c} {s_0}\\ {v_0}\\{f_0}\end{array}\right) = \left( \begin{array}{c} 0\\ 0\\ 0\end{array}\right) \] \subsubsection*{Anfangsfehler / Kovarianzmatrix $P$} -Da auch der Anfangszustand fehlerhaft sein kann, wird für den Filter einen Anfangsfehler eingeführt. Auf der Diagonalen werden die Varianzen eingesetzt, in den restlichen Felder stehen die Kovarianzen. -Zur Erinnerung: Die Varianz ist ein Mass für die Streuung eines Wertes, die Kovarianz hingegen beschreibt die Abhängigkeit der Streuungen zweier Werte. Kovarianz: Cov(x, y) undVarianz: Var(x) = Cov(x, x) +Da auch der Anfangszustand fehlerhaft sein kann, wird für das Filter ein Anfangsfehler verwendet. +Auf der Diagonalen werden die Varianzen eingesetzt, in den restlichen Felder stehen die Kovarianzen. +Zur Erinnerung: Die Varianz ist ein Mass für die Streuung eines Wertes, die Kovarianz hingegen beschreibt die Abhängigkeit der Streuungen zweier Werte. + +Kovarianz: Cov(x, y) und Varianz: Var(x) = Cov(x, x) -In unserem Fall ist der Anfangszustand gut bekannt. Wir gehen davon aus, dass das System in Ruhe und in Abwesenheit eines Erdbeben startet, somit kann die Matrix mit Nullen bestückt werden. Somit ergibt sich für die Kovarianzmatrix +In unserem Fall ist der Anfangszustand gut bekannt. +Wir gehen davon aus, dass das System in Ruhe und in Abwesenheit eines Erdbeben startet, somit kann die Matrix mit Nullen bestückt werden. +Als Initialwert für die für die Kovarianzmatrix ergibt sich -\begin{equation} +\[ {P_0 }= \left( \begin{array}{ccc} @@ -141,229 +116,189 @@ In unserem Fall ist der Anfangszustand gut bekannt. Wir gehen davon aus, dass da 0 & 0 &0 \\ \end{array} \right). -\end{equation} -Diese Matrix beschreibt die Unsicherheit des geschätzten Zustandes und wird sowohl für die Vorhersage als auch die Korrektur benötigt. Sie wird nach jeder Schätzung aktualisiert.. Für einen gut bekannten Zustandsvektor können kleine Werte eingesetzt werden, für ungenaue Anfangsbedingungen sollten grosse Werte (1 Million) verwendet werden. Grosse Werte ermöglichen dem Filter sich schnell einzupendeln. - + \] +Diese Matrix beschreibt die Unsicherheit des geschätzten Zustandes und wird sowohl für die Vorhersage als auch die Korrektur benötigt. +Sie wird nach jeder Schätzung aktualisiert. +Für einen gut bekannten Zustandsvektor können kleine Werte eingesetzt werden, für ungenaue Anfangsbedingungen sollten grosse Werte verwendet werden. +Grosse Werte ermöglichen dem Filter sich schnell einzupendeln. \subsubsection*{Dynamikmatrix $A$} -Die Dynamikmatrix bildet den Kern des Filters. Diese wurde weiter oben Bereits beschrieben. Dabei wollen wird die äussere Kraft des Systems ermitteln. -Da nichts über die äussere Kraft bekannt ist, müssen wir annehmen das deren Ableitung 0 ist. +Das Kalman-Filter benötigt für die Vorhersage des nächsten Zustandes eine Beschreibung der Systemdynamik. +Die Dynamikmatrix bildet den Kern des Filters. Diese wurde weiter oben bereits beschrieben. +Dabei wollen wird die äussere Kraft des Systems ermitteln. +Da nichts über die äussere Kraft bekannt ist, müssen wir annehmen das deren Ableitung 0 ist. Die System Vektor-Gleichung lautet daher: - - -\begin{equation} +\[ A = \left( \begin{array}{ccc} 0 & 1& 0 \\ - \frac{D}{m} &-\frac{2k}{m} & \frac{1} {m}\\ 0 & 0& 0\\ \end{array}\right) -\end{equation} + \] +Dabei soll der Kalman-Filter in diskreten Zeitschritten $\Delta t$ arbeiten. +Die Übergangs-Matrix erhalten wir aus der Systemdynamikmatrix mittels Exponentialfunktion: +\[\Phi = \exp(A\Delta t). \] \subsubsection*{Prozessrauschkovarianzmatrix $Q$} -Die Prozessrauschmatrix teilt dem Filter mit, wie sich der Systemzustand verändert. Kalman-Filter berücksichtigen Unsicherheiten wie Messfehler und -rauschen. Bei unserem Modell könnte das beispielsweise ein Windstoss an die Masse sein. Für uns wäre dies: -\begin{equation} +Die Prozessrauschmatrix teilt dem Filter mit, wie sich der Prozess verändert. +Kalman-Filter berücksichtigen Unsicherheiten wie Messfehler und -rauschen. +Bei unserem Modell könnte das beispielsweise ein Windstoss an die Masse sein. +Für uns wäre dies: +\[ Q = \left( \begin{array}{ccc} -{\sigma_x }^2& 0& 0 \\ +{\sigma_s }^2& 0& 0 \\ 0 & {\sigma_v }^2& 0\\ 0 & 0& {\sigma_f }^2\\ \end{array}\right) -\end{equation} + \] -Die Standabweichungen müssten Statistisch ermittelt werden, da der Fehler nicht vom Sensor kommt und somit nicht vom Hersteller gegeben ist. Das Bedeutet wiederum dass $Q$ die Unsicherheit des Prozesses beschreibt, und die der Messung. +Die Standabweichungen müssten statistisch ermittelt werden, da der Fehler nicht vom Sensor kommt und somit nicht vom Hersteller gegeben ist. +Das Bedeutet wiederum dass $Q$ die Unsicherheit des Prozesses beschreibt und nicht die der Messung. \subsubsection*{Messmatrix $H$} -Die Messmatrix gibt an, welche Parameter gemessen werden soll. In unserem Falle ist es nur die Position der Massen. +Die Messmatrix gibt an, welche Parameter gemessen werden +In unserem Falle ist es die Position der Massen. \[ H = (1, 0, 0) \] - \subsubsection*{Messrauschkovarianz $R$} -Die Messrauschkovarianzmatrix beinhaltet, wie der Name es schon sagt, das Rauschen der Positionssensoren. In unserem Fall wird nur die Position der Masse gemessen. Da wir keine anderen Sensoren haben ist $R$ lediglich: -\begin{equation} -R= ({\sigma_x}^2). -\end{equation} -Diese Messrauchen wird meistens vom Sensorhersteller angegeben. Für unsere Theoretische Apparatur wird hier ein kleiner Fehler eingesetzt. - -\subsection{Fiter Algorithmus} -Nachdem alle Parameter aufgestellt sind, wird der Filter initialisiert und wird den Zustand der Feder vorherzusagen, die Messung zu präzisieren und laufend zu aktualisieren. Das Filter berechnet aufgrund der aktuellen Schätzung eine Vorhersage. Diese wird, sobald verfügbar, mit der Messung verglichen. Aus dieser Differenz und den Unsicherheiten des Prozesses ($Q$) und der Messung ($R$) wird der wahrscheinlichste, neue Zustand geschätzt. - +Die Messrauschkovarianzmatrix beinhaltet, wie der Name es schon sagt, das Rauschen der Positionsmessung. +In unserem Fall wird nur die Position der Masse gemessen. Da wir keine anderen Sensoren haben ist $R$ lediglich: +\[ R= ({\sigma_{sensor}}^2). + \] +Diese Messrauchen wird meistens vom Sensorhersteller angegeben. +Für unsere Theoretische Apparatur wird hier ein kleiner Fehler eingesetzt da heutige Sensoren sehr genau messen können. + +\subsection{Fiter-Agorithmus} +Nachdem alle Parameter aufgestellt sind, wird das Filter initialisiert. +Zuerst wird der nächste Zustand der Feder vorhergesagt, danach wird die Messung präzisiert und laufend zu aktualisieren. +Das Filter berechnet aufgrund der aktuellen Schätzung eine Vorhersage. +Diese wird, sobald verfügbar, mit der Messung verglichen. +Aus dieser Differenz und den Unsicherheiten des Prozesses ($Q$) und der Messung ($R$) wird der wahrscheinlichste, neue Zustand geschätzt. \subsubsection*{Vorhersage} -Im Filterschritt Vorhersage wird der nächste Zustand anhand des Anfangszustand und der Systemmatrix berechnet. Dies funktioniert mit dem Rechenschritt: -\begin{equation} -{x_{t+1}}=A\cdot{x_t}. -\end{equation} - +Im Filterschritt Vorhersage wird der nächste Zustand anhand des Anfangszustand und der Systemmatrix berechnet. +Dies funktioniert mit dem Rechenschritt: +\[ +{x_{k|k-1}}=\Phi \cdot {x_{k-1|k-1}}= \exp(A\Delta t)\cdot{x_{k|k-1}}. + \] + +Die Kovarianz $P_{pred}$ wird ebenfalls neu berechnet. Da wir ein mehrdimensionales System haben, kommt noch die Prozessunsicherheit $Q$ dazu, so dass die Unsicherheit des Anfangsfehlers $P$ laufend verändert. +Dies funktioniert durch multiplizieren der Systemmatrix mit dem aktualisierten Anfangsfehler. +Dazu wird noch die Prozessunsicherheit addiert, somit entsteht die Gleichung +\[ {P_{k|k-1}} = {\Phi_k} {P_{k-1|k-1}} {\Phi_k} ^T + {Q_{k-1}} .\] +Es vergeht genau $dt$ Zeit, und dieser Vorgang wird wiederholt. +Dabei wird in den späteren Schritten überprüft, wie genau die letzte Anpassung von $P$ zur Messung stimmt. +Ist der Unterschied klein, wird die Kovarianz $P$ kleiner, ist der Unterschied gross, wird auch die Kovarianz grösser. +Das Filter passt sich selber an und korrigiert sich bei grosser Abweichung. -Die Kovarianz $P_{pred}$ wird ebenfalls neu berechnet. Da wir ein mehrdimensionales System haben, kommt noch die Prozessunsicherheit $Q$ dazu, so dass die Unsicherheit des Anfangsfehlers $P$ laufend verändert. Dies funktioniert durch multiplizieren der Systemmatrix mit dem aktualisierten Anfangsfehler. Dazu wird noch die Prozessunsicherheit addiert, somit entsteht die Gleichung -\[ P_\mathrm{pred} = A P A^T + Q . \] +\subsubsection*{Messen} +Der Sensor wurde noch nicht benutz, doch genau der liefert Werte für das Filter. +Die aktuellen Messwerte $z$ werden die Innovation $w$ mit dem Zustandsvektor $x$ und der Messmatrix $H$ zusammengerechnet. +Hier bei wird lediglich die Messung mit dem Fehler behaftet, und die Messmatrix $H$ mit der Vorhersage multipliziert -wird dieser Vorgang wiederholt, schaut der Filter wie genau die letzte Anpassung von $P$ zur Messung stimmt. Ist der Unterschied klein, wird die Kovarianz $P$ kleiner, ist der Unterschied gross, wird auch die Kovarianz grösser. Das Filter passt sich selber an und korrigiert sich bei grosser Abweichung. +\[{w_{k}}={z_{k}}-{H_{k}}\cdot{x_{k|k-1}}.\] -\subsubsection*{Messen} -Der Sensor wurde noch nicht benutz, doch genau der liefert Werte für den Filter. Die aktuellen Messwerte $z$ werden die Innovation $w$ mit dem Zustandsvektor $x$ und der Messmatrix $H$ zusammengerechnet. -Hier bei wird lediglich die Messung mit dem Fehler behaftet, und die Messmatrix $H$ -\begin{equation} -w=Z-(H\cdot x) -\end{equation} -Die Innovation ist der Teil der Messung, die nicht durch die Systemdynamik erklärt werden kann. Die Hilfsgröße Innovation beschreibt, wie genau der vorhergesagte Mittelwert den aktuellen Messwert mittels der Beobachtungsgleichung beschreiben kann. Für eine schlechte Vorhersage wird die dazugehörige Innovation gross, für eine genaue Vorhersage dagegen klein sein. Entsprechende Korrekturen müssen dann gross bzw. nur gering ausfallen. Innovation = Messung - Vorhersage. Dies ist intuitiv logisch, eine Innovation von 0 bedeutet, dass die Messung nichts Neues hervorbrachte. +Die Innovation ist der Teil der Messung, die nicht durch die Systemdynamik erklärt werden kann. +Die Hilfsgröße Innovation beschreibt, wie genau die Vorhersage den aktuellen Messwert mittels der Systemmatrix $\phi$ beschreiben kann. +Für eine schlechte Vorhersage wird die dazugehörige Innovation gross, für eine genaue Vorhersage dagegen klein sein. +Entsprechende Korrekturen müssen dann gross bzw. nur gering ausfallen. +Innovation = Messung - Vorhersage. Dies ist intuitiv logisch, eine Innovation von 0 bedeutet, dass die Messung nichts Neues hervorbrachte. Im nächsten Schritt wir analysiert, mit welcher Kovarianz weiter gerechnet wird. Hierbei wird die Unsicherheit $P$, die Messmatrix $H$ und die Messunsicherheit $R$ miteinander verrechnet. -\begin{equation} -S=Z-(H\cdot P\cdot H`+R) -\end{equation} - +\[ +{S_{k}}={H_{k}}{P_{k|k-1}}{H_{k}}^T+{R_{k}} + \] \subsubsection*{Aktualisieren} Im nächsten Schritt kommt nun die Wahrscheinlichkeit nach Gauss dazu. - -\begin{equation} -K= \frac{P \cdot H`}S -\end{equation} -Dieser Vorgang wird Kalman-Gain genannt. Er sagt aus, welcher Kurve mehr Vertraut werden soll, dem Messwert oder der Systemdynamik. -Das Kalman-Gain wird geringer wen der Messwert dem vorhergesagten Systemzustand entspricht. Sind die Messwerte komplett anders als die Vorhersage, wo werden die Elemente in der Matrix $K$ grösser. - +\[ +{K_{k}}= {{P_{k|k-1}} \cdot {H_{k}^T}}\cdot {S_{k}}^{-1} + \] +Dieser Vorgang wird Kalman-Gain genannt. +Er sagt aus, welcher Kurve mehr Vertraut werden soll, dem Messwert oder der Systemdynamik. +Das Kalman-Gain wird geringer wen der Messwert dem vorhergesagten Systemzustand entspricht. +Sind die Messwerte komplett anders als die Vorhersage, wo werden die Elemente in der Matrix $K$ grösser. Anhand der Informationen aus dem Kalman-Gain $K$ wird das System geupdated. -\begin{equation} -x=x+(K \cdot w) -\end{equation} +\[ +{x_{k|k}}={x_{k|k-1}}+({K_{k}}\cdot {w_{k}}) + \] Dazu kommt eine neue Kovarianz für den nächste Vorhersageschritt: -\begin{equation} -P=(I-(K \cdot H)) \cdot P -\end{equation} +\[ +{P_{k|k}}=(I-({K_{k}} \cdot {H_{k}})) \cdot {P_{k|k-1}} + \] Der ganze Ablauf wird nun zum Algorithmus und beginnt wieder mit der Vorhersage -\begin{equation} -{x_{t+1}}=e^{A\Delta t}{ x_t}. -\end{equation} +\[ +{x_{k|k-1}}=\Phi \cdot {x_{k-1|k-1}}= \exp(A\Delta t)\cdot{x_{k|k-1}}. + \] \subsection{Zusammenfassung } -Zusammenfassend kann das Kalman-Filter in offizieller Typus dargestellt werden. Dabei beginnt das Filter mit dem Anfangszustand für $k=0$ +Zusammenfassend kann das Kalman-Filter in offizieller Typus dargestellt werden. +Dabei beginnt das Filter mit dem Anfangszustand für $k=0$ 1. Nächster Zustand vorhersagen -\begin{equation} -{x_{k|k-1}}={A_{k-1}}{x_{k-1}}+{B_{k-1}}{u_{k-1}} -\end{equation} +\[{x_{k|k-1}}=\Phi \cdot {x_{k-1|k-1}}= \exp(A\Delta t)\cdot{x_{k|k-1}}.\] 2. Nächste Fehlerkovarianz vorhersagen -\begin{equation} -{P_{k|k-1}}={A_{k-1}}{P_{k-1}}{A_{k-1}^T}+{Q_{k-1}} -\end{equation} - +\[{P_{k|k-1}}={\Phi _{k}} {P_{k-1|k-1}} {\Phi _{k}}^T + {Q_{k-1}}.\] 3. Das Kalman Filter anwenden -\begin{equation} -{K_k}={P_{k-1}}{H_{k}^T({H_k}{P_{k|k-1}}{H_k}^T}+{R_k})^{-1} -\end{equation} +\[{K_{k}}= {P_{k|k-1}} \cdot {H_{k}^T}\cdot {S_{k}^{-1}}\] 4. Schätzung aktualisieren -\begin{equation} -{x_k}={x_{k|k-1}}+{K_k}({z_k}-{H_k}{x_{k|k-1}}) -\end{equation} +\[{x_{k|k}}={x_{k|k-1}}+({K_{k}}\cdot {w_{k}}) \] 5. Fehlerkovarianz aktualisieren -\begin{equation} -{P_k}=(I-{K_k}{H_k}){P_{k|k-1}} -\end{equation} - -6. Die Outputs von $k$ werden die Inputs für ${k-1}$ und werden wieder im Schritt 1 verwendet - - -\section{Matlab-Code} -Um das simulierte Erdbeben auf die theoretische Apparatur zu bringen und mit dem Kalman-Filter Resultate zu generieren, wurde in Matlab der Algorithmus programmiert. -\begin{lstlisting} -%% Initialisierte Werte -t0 = 0.00; % Anfangszeit -deltat = 0.01; % Zeitschritt -tend = 50.00; % Endzeit - -% Standard-Abweichungen Prozess -sigmax = 0.05e-3; % Position -sigmav = 0.01e-3; % Geschwindigkeit -sigmaf = 1; % (Äussere) Kraft - -% Standard-Abweichung Messung -sigmam = 0.01e-3; +\[{P_{k|k}}=(I-({K_{k}}\cdot {H_{k}})) \cdot {P_{k|k-1}} \] -% Systemparameter -m = 1.00; % Masse -D = 0.30; % Federkonstante -k = 0.10; % Dämpfung - -%% Kalmanfilter -% Initialisierung - - -% Anfangszustand (Position, Geschwindigkeit, Kraft) -x0 = [0; 0; 0]; - -% Unsicherheit des Anfangszustand -P0 = [0, 0, 0; ... - 0, 0, 0; ... - 0, 0, 0]; - -% Systemmatrizen -A = [0, 1, 0;... % Dynamikmatrix - -D/m, -2*k/m, 1;... - 0, 0, 0]; % Ableitungen von f(t) unbekant. Annahme: 0 -A = expm(A * deltat); - -Q = [sigmax^2, 0, 0;... - 0, sigmav^2, 0;... - 0, 0, sigmaf^2]; % Prozessrauschen (Covarianz) - -% Messprozess -H = [1, 0, 0]; % Messmatrix -R = sigmam^2; % Messrauschen (Könnte durch Versuche bestimmt werden) - -I = eye(3); % Identity matrix (Einheitsmatrix) - -% Filterprozess - -% Initialisieren der Variablen -N = length(t); % Anzahl Punkte im Einheitsvektor (= Anzahl Messwerte) -xhat = zeros(3, N); % Matrix mit geschätzten Zuständen - -% Index ':' bedeutet: 'alles' -% Index '(1, :)' bedeutet: 'alles aus der 1. Zeile' - -% Anfangszustand setzen -xhat(:, 1) = x0; -P = P0; - -% Kalman-Matrizen konvergiert. Vorab-Berechnung in 'genügenden' Iterationen -for idx = 1:100 - Ppred = A * P * A' + Q; % Prädizieren der Kovarianz - S = (H * Ppred * H' + R); % Innovationskovarianz - K = Ppred * H' / S; % Filter-Matrix (Kalman-Gain) - P = (I - K * H) * Ppred; % Aktualisieren der Kovarianz -end - -% Anfangszustand gegeben -% Erster zu berechnender Wert ist der zweite -for idx = 2:N - % Vorhersage - xpred = A * xhat(:, idx-1); % Prädizierter Zustand aus Bisherigem und System - % Ppred = A * P * A' + Q; % Prädizieren der Kovarianz - - % Korrektur - y = xt(idx) - H * xpred; % Messungen/ Kraft aus System - Vohersage - % S = (H * Ppred * H' + R); % Innovationskovarianz - % K = Ppred * H' / S; - - xhat(:, idx) = xpred + K * y; % Aktualisieren des Systemzustands - % P = (I - K * H) * Ppred; % Aktualisieren der Kovarianz -end -\end{lstlisting} +6. Die Outputs von $k$ werden die Inputs für ${k-1}$ und werden wieder im Schritt 1 verwendet +\end{document} + + +@article{faragher_understanding_2012, + title = {Understanding the Basis of the Kalman Filter Via a Simple and Intuitive Derivation [Lecture Notes]}, + volume = {29}, + issn = {1053-5888}, + url = {http://ieeexplore.ieee.org/document/6279585/}, + doi = {10.1109/MSP.2012.2203621}, + pages = {128--132}, + number = {5}, + journaltitle = {{IEEE} Signal Processing Magazine}, + shortjournal = {{IEEE} Signal Process. Mag.}, + author = {Faragher, Ramsey}, + urldate = {2021-07-09}, + date = {2012-09} +} +@article{Wikipedia, + title = Kalmanfilter}, + url = {https://de.wikipedia.org/wiki/Kalman-Filter}, + pages = {128--132}, + number = {5}, + urldate = {2021-07-09}, +} + +@article{mueller_deconvolving_2008, + title = {Deconvolving oscillatory transients with a {Kalman} filter}, + url = {http://arxiv.org/abs/0809.4676}, + abstract = {This paper describes a method to filter oscillatory transients from measurements of a time series which were at least an order of magnitude larger than the signal to be measured. Based on a Kalman filter, it has an optimality property and a natural scaling parameter that allows to tune it to high resolution or low noise.}, + urldate = {2021-07-09}, + journal = {arXiv:0809.4676 [math]}, + author = {Mueller, Andreas}, + month = sep, + year = {2008}, + note = {arXiv: 0809.4676}, + keywords = {93E11, Mathematics - Optimization and Control}, + annote = {Comment: 12 pages, 9 figures}, -- cgit v1.2.1 From 5a77dba064b9f1a841930dcc823cb2e83a759839 Mon Sep 17 00:00:00 2001 From: Lukaszogg <82384106+Lukaszogg@users.noreply.github.com> Date: Sat, 17 Jul 2021 16:39:12 +0200 Subject: =?UTF-8?q?L=C3=B6schen=20von=20\end?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buch/papers/erdbeben/teil1.tex | 44 +----------------------------------------- 1 file changed, 1 insertion(+), 43 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/erdbeben/teil1.tex b/buch/papers/erdbeben/teil1.tex index a4e2220..52872f6 100644 --- a/buch/papers/erdbeben/teil1.tex +++ b/buch/papers/erdbeben/teil1.tex @@ -17,7 +17,7 @@ Da wir die äussere Kraft nicht direkt messen können, benötigen wir ein Werkzeug, welches aus der gemessenen Position, die Krafteinwirkung auf unsere System schätzt. Dies ist eine Typische Anwendung für den linearen Kalman-Filter. Unser Ziel ist es, anhand der Messung die eigentlich interessante Grösse $f$ zu bestimmen. -Dabei wird durch eine deterministische Vorhersage, in dem der Zustand \cdot Eigendynamik des Systems gerechnet. +Dabei wird durch eine deterministische Vorhersage, in dem der Zustand * Eigendynamik des Systems gerechnet. Die Idee dahinter ist, dass das Kalman-Filter die nicht-deterministische Grösse $f$ anhand der Messung und der Vorhersage zu bestimmen. Für mehrere Dimensionen (x,y,z) würde der Pythagoras für das System benötigt werden. @@ -262,46 +262,4 @@ Dabei beginnt das Filter mit dem Anfangszustand für $k=0$ 6. Die Outputs von $k$ werden die Inputs für ${k-1}$ und werden wieder im Schritt 1 verwendet -\end{document} - - -@article{faragher_understanding_2012, - title = {Understanding the Basis of the Kalman Filter Via a Simple and Intuitive Derivation [Lecture Notes]}, - volume = {29}, - issn = {1053-5888}, - url = {http://ieeexplore.ieee.org/document/6279585/}, - doi = {10.1109/MSP.2012.2203621}, - pages = {128--132}, - number = {5}, - journaltitle = {{IEEE} Signal Processing Magazine}, - shortjournal = {{IEEE} Signal Process. Mag.}, - author = {Faragher, Ramsey}, - urldate = {2021-07-09}, - date = {2012-09} -} -@article{Wikipedia, - title = Kalmanfilter}, - url = {https://de.wikipedia.org/wiki/Kalman-Filter}, - pages = {128--132}, - number = {5}, - urldate = {2021-07-09}, -} - -@article{mueller_deconvolving_2008, - title = {Deconvolving oscillatory transients with a {Kalman} filter}, - url = {http://arxiv.org/abs/0809.4676}, - abstract = {This paper describes a method to filter oscillatory transients from measurements of a time series which were at least an order of magnitude larger than the signal to be measured. Based on a Kalman filter, it has an optimality property and a natural scaling parameter that allows to tune it to high resolution or low noise.}, - urldate = {2021-07-09}, - journal = {arXiv:0809.4676 [math]}, - author = {Mueller, Andreas}, - month = sep, - year = {2008}, - note = {arXiv: 0809.4676}, - keywords = {93E11, Mathematics - Optimization and Control}, - annote = {Comment: 12 pages, 9 figures}, - - - - - -- cgit v1.2.1 From 51d891e986fa62c66cb18c6d558458cec41dd540 Mon Sep 17 00:00:00 2001 From: Lukaszogg <82384106+Lukaszogg@users.noreply.github.com> Date: Sat, 17 Jul 2021 16:49:21 +0200 Subject: Update references.bib --- buch/papers/erdbeben/references.bib | 70 ++++++++++++++++++++++++------------- 1 file changed, 46 insertions(+), 24 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/erdbeben/references.bib b/buch/papers/erdbeben/references.bib index aef5de9..56ca24b 100644 --- a/buch/papers/erdbeben/references.bib +++ b/buch/papers/erdbeben/references.bib @@ -1,35 +1,57 @@ -% -% references.bib -- Bibliography file for the paper erdbeben -% -% (c) 2020 Autor, Hochschule Rapperswil -% +%% This BibTeX bibliography file was created using BibDesk. +%% https://bibdesk.sourceforge.io/ + +%% Created for lukas zogg at 2021-07-17 16:48:19 +0200 + + +%% Saved with string encoding Unicode (UTF-8) + + + +@article{aragher_understanding_2012, + author = {Faragher, Ramsey}, + date-added = {2021-07-17 16:44:00 +0200}, + date-modified = {2021-07-17 16:45:54 +0200}, + journal = { Signal Processing Magazine}, + month = {09}, + number = {5}, + pages = {128--132}, + title = {Understanding the Basis of the Kalman Filter Via a Simple and Intuitive Derivation }, + volume = {29}, + year = {2012}, + Bdsk-File-1 = {YnBsaXN0MDDSAQIDBFxyZWxhdGl2ZVBhdGhZYWxpYXNEYXRhXxByLi4vLi4vLi4vLi4vLi4vLi4vRG93bmxvYWRzL1VuZGVyc3RhbmRpbmcgdGhlIEJhc2lzIG9mIHRoZSBLYWxtYW4gRmlsdGVyIFZpYSBhIFNpbXBsZSBhbmQgSW50dWl0aXZlIERlcml2YXRpb24ucGRmTxECbgAAAAACbgACAAAMTWFjaW50b3NoIEhEAAAAAAAAAAAAAAAAAAAAAAAAAEJEAAH/////H1VuZGVyc3RhbmRpbmcgdGhlICNGRkZGRkZGRi5wZGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAABgACAAAKIGN1AAAAAAAAAAAAAAAAAAlEb3dubG9hZHMAAAIAci86VXNlcnM6bHVrYXN6b2dnOkRvd25sb2FkczpVbmRlcnN0YW5kaW5nIHRoZSBCYXNpcyBvZiB0aGUgS2FsbWFuIEZpbHRlciBWaWEgYSBTaW1wbGUgYW5kIEludHVpdGl2ZSBEZXJpdmF0aW9uLnBkZgAOAK4AVgBVAG4AZABlAHIAcwB0AGEAbgBkAGkAbgBnACAAdABoAGUAIABCAGEAcwBpAHMAIABvAGYAIAB0AGgAZQAgAEsAYQBsAG0AYQBuACAARgBpAGwAdABlAHIAIABWAGkAYQAgAGEAIABTAGkAbQBwAGwAZQAgAGEAbgBkACAASQBuAHQAdQBpAHQAaQB2AGUAIABEAGUAcgBpAHYAYQB0AGkAbwBuAC4AcABkAGYADwAaAAwATQBhAGMAaQBuAHQAbwBzAGgAIABIAEQAEgBwVXNlcnMvbHVrYXN6b2dnL0Rvd25sb2Fkcy9VbmRlcnN0YW5kaW5nIHRoZSBCYXNpcyBvZiB0aGUgS2FsbWFuIEZpbHRlciBWaWEgYSBTaW1wbGUgYW5kIEludHVpdGl2ZSBEZXJpdmF0aW9uLnBkZgATAAEvAAAVAAIAEP//AAAACAANABoAJACZAAAAAAAAAgEAAAAAAAAABQAAAAAAAAAAAAAAAAAAAws=}} + +@url{erdbeben:wikipedia, + author = {https://de.wikipedia.org/wiki/Kalman-Filter}, + date-added = {2021-07-17 16:42:22 +0200}, + date-modified = {2021-07-17 16:43:53 +0200}, + title = {Kalmanfilter}, + urldate = {2021-07-0}} @online{erdbeben:bibtex, + date = {2020-02-06}, + day = {6}, + month = {2}, title = {BibTeX}, url = {https://de.wikipedia.org/wiki/BibTeX}, - date = {2020-02-06}, year = {2020}, - month = {2}, - day = {6} -} + Bdsk-Url-1 = {https://de.wikipedia.org/wiki/BibTeX}} @book{erdbeben:numerical-analysis, - title = {Numerical Analysis}, author = {David Kincaid and Ward Cheney}, - publisher = {American Mathematical Society}, - year = {2002}, - isbn = {978-8-8218-4788-6}, inseries = {Pure and applied undegraduate texts}, - volume = {2} -} + isbn = {978-8-8218-4788-6}, + publisher = {American Mathematical Society}, + title = {Numerical Analysis}, + volume = {2}, + year = {2002}} @article{erdbeben:mendezmueller, - author = { Tabea Méndez and Andreas Müller }, - title = { Noncommutative harmonic analysis and image registration }, - journal = { Appl. Comput. Harmon. Anal.}, - year = 2019, - volume = 47, - pages = {607--627}, - url = {https://doi.org/10.1016/j.acha.2017.11.004} -} - + author = {Tabea M{\'e}ndez and Andreas M{\"u}ller}, + journal = {Appl. Comput. Harmon. Anal.}, + pages = {607--627}, + title = {Noncommutative harmonic analysis and image registration}, + url = {https://doi.org/10.1016/j.acha.2017.11.004}, + volume = 47, + year = 2019, + Bdsk-Url-1 = {https://doi.org/10.1016/j.acha.2017.11.004}} -- cgit v1.2.1 From 4f7ee11ffe36d2414a71698fbaee603342977186 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sat, 17 Jul 2021 18:03:18 +0200 Subject: Fix typos in intro --- buch/papers/punktgruppen/intro.tex | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/intro.tex b/buch/papers/punktgruppen/intro.tex index 24212e7..2e15442 100644 --- a/buch/papers/punktgruppen/intro.tex +++ b/buch/papers/punktgruppen/intro.tex @@ -1,14 +1,13 @@ \section{Einleitung} Es gibt viele Möglichkeiten sich in Kristallen zu verlieren. -Auch wen man nur die mathematischen Betrachtunngsweisen berüksichtigt, hat man noch viel zu viele Optionen sich mit Kristallen zu beschäftigen. -In diesem Kapitel ist daher der Fokus ``nur'' auf die Symmetrie gelegt. -Zu beginn werden wir zeigen was eine Symmetrie ausmacht und dass sie noch weit mehr in sich verbirgt als nur schön auszusehen. -Die vorgestellten Symmetrien sind äusserst gut geeignet um die Grundeigenschaften eines Kristalles zu Beschreiben. -Mit etwas kiffligen geometrischen Überlegungen kann man zeigen wass in der Welt der Kristallographie alles möglich ist oder nicht. -Die Einschränkungen sind durchaus wilkommen, dank ihnen halten sich die möglichen Kristallgitter in Grenzen und Lassen sich Kategorisieren. -Kategorien sind nicht nur für einen besseren Überblich nützlich, sondern kann man aus ihnen auch auf Physikalische Eigenschaften schliessen, als spannendes Beispiel: Die Piezoelektrizität. -Die Piezoelektrizität ist vielleicht noch nicht jedem bekannt, sie versteckt sich aber in diversen Altagsgegenständen zum Beispiel sorgen sie in den meisten Feuerzeugen für die Zündung. -Ein Funken Interesse ist hoffentlich geweckt um sich mit dem scheinbar trivialen thema der Symmetrie auseinander zu setzten. - - +Auch wen man nur die mathematischen Betrachtungsweisen berücksichtigt, hat man noch viel zu viele Optionen, sich mit Kristallen zu beschäftigen. +In diesem Kapitel wird daher der Fokus ``nur'' auf die Symmetrie gelegt. +Zu Beginn werden wir zeigen was eine Symmetrie ausmacht und dass sie noch weit mehr in sich verbirgt als nur schön auszusehen. +Die vorgestellten Symmetrien sind äusserst gut geeignet, um die Grundeigenschaften eines Kristalls zu beschreiben. +Mit etwas kniffligen geometrischen Überlegungen kann man zeigen was in der Welt der Kristallographie alles möglich ist oder nicht. +Die Einschränkungen sind durchaus willkommen, dank ihnen halten sich die möglichen Kristallgitter in Grenzen und lassen sich kategorisieren. +Kategorien sind nicht nur für einen besseren Überblick nützlich, sondern man kann aus ihnen auch auf physikalische Eigenschaften schliessen. Als spannendes Beispiel: Die Piezoelektrizität. +Die Piezoelektrizität ist vielleicht noch nicht jedem bekannt, sie versteckt sich aber in diversen Alltagsgegenständen zum Beispiel sorgen sie in den meisten Feuerzeugen für die Zündung. +Ein Funken Interesse ist hoffentlich geweckt um sich mit dem scheinbar trivialen Thema der Symmetrie auseinander zu setzten. +%% vim:linebreak breakindent showbreak=.. spell spelllang=de: -- cgit v1.2.1 From a9b9236ce6ed9905b21e02ce6cf5c1b5bf19927f Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sun, 18 Jul 2021 10:59:30 +0200 Subject: Fix typos and suggested changes in crystals section --- buch/papers/punktgruppen/crystals.tex | 107 ++++++++++++++++------------------ 1 file changed, 51 insertions(+), 56 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index abd0c27..8c655e2 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -1,6 +1,6 @@ \section{Kristalle} %einleitung sollte noch an das ende von der Symmetrie angepasst werden -Unter dem Begriff Kristall sollte sich jeder ein Bild machen können. +Unter dem Begriff Kristall sollte sich jeder ein Bild machen können. Wir werden uns aber nicht auf sein Äusseres fokussieren, sondern was ihn im Inneren ausmacht. Die Innereien eines Kristalles sind glücklicherweise relativ einfach definiert. \begin{definition}[Kristall] @@ -17,37 +17,33 @@ Die Innereien eines Kristalles sind glücklicherweise relativ einfach definiert. \end{figure} \subsection{Kristallgitter} Ein zweidimensionales Beispiel eines solchen Muster ist Abbildung \ref{fig:punktgruppen:lattice}. -Für die Überschaubarkeit haben wir ein simples Motiv eines einzelnen grauen Punktes gewählt und betrachten dies nur in Zwei Dimensionen. -Die eingezeichneten Vektoren $\vec{a}$ und $\vec{b}$ sind die kleinstmöglichen Schritte im Raum bis sich das Kristallgitter wiederholt. -Wird ein beliebiger grauer Gitterpunkt in \ref{fig:punktgruppen:lattice} gewählt -und um eine ganzzahlige Linearkombination von $\vec{a}$ und $\vec{b}$ verschoben, -endet er zwangsweise auf einem Gitterpunkt, wenn nicht wieder am selben Ort. -Im Dreidimensionalen-Raum können alle Gitterpunkte mit derselben Idee und einem zusätzlichen Vektor $\vec{c}$ also +Für die Überschaubarkeit haben wir ein simples Motiv eines einzelnen grauen Punktes dargestellt und betrachten dies nur in zwei Dimensionen. +Die eingezeichneten Vektoren \(\vec{a}\) und \(\vec{b}\) sind die kleinstmöglichen Schritte im Raum bis sich das Kristallgitter wiederholt. +Wird ein beliebiger grauer Gitterpunkt in \ref{fig:punktgruppen:lattice} gewählt und um eine ganzzahlige Linearkombination von \(\vec{a}\) und \(\vec{b}\) verschoben, endet er zwangsweise auf einem Gitterpunkt, wenn nicht wieder am selben Ort. +Im dreidimensionalen Raum können alle Gitterpunkte mit derselben Idee und einem zusätzlichen Vektor \(\vec{c}\) also \[ - \vec{r} = n_1 \vec{a} + n_2 \vec{b} + n_3 \vec{c} + \vec{r} = n_1 \vec{a} + n_2 \vec{b} + n_3 \vec{c} \] -erreicht werden sofern $\{n_1,n_2,n_3\} \in \mathbb{Z}$ sind. -Sind die Vektoren $\vec{a}$ , $\vec{b}$ , $\vec{c}$ gegeben , -ist ein Kristallgitter eindeutig beschrieben, weswegen sie auch als Grundvektoren bekannt sind. +erreicht werden sofern \(\{n_1,n_2,n_3\} \in \mathbb{Z}\) sind. +Sind die Vektoren \(\vec{a}\), \(\vec{b}\), \(\vec{c}\) gegeben, ist ein Kristallgitter eindeutig beschrieben, weswegen sie auch als Grundvektoren bekannt sind. \subsection{Translationssymmetrie} Da sich das ganze Kristallgitter wiederholt, wiederholen sich auch dessen Eigenschaften periodisch mit den Grundvektoren. -Sollte man sich auf einem Gitterpunkt in einem Kristall aufhalten, ist es unmöglich zu wissen, auf welchem Gitterpunkt man sich befindet, -da die Umgebungen aller Punkte Identisch sind. -Mit anderen worten: Jedes Kristallgitter $ G $ ist \emph{Translationssymmetrisch} in der Translation +Sollte man sich auf einem Gitterpunkt in einem Kristall aufhalten, ist es unmöglich zu wissen, auf welchem Gitterpunkt man sich befindet, da die Umgebungen aller Punkte Identisch sind. +Mit anderen Worten: Jedes Kristallgitter \( G \) ist \emph{Translationssymmetrisch} in der Translation \[ - Q_i(G) = G + \vec{a_i} -\] wobei der Vektor $a_i$ ein Grundvektor sein muss. -Da die Translationssymmetrie beliebig oft mit allen Grundvektoren angewendet werden kann, -können wir auch sagen, dass alle Verschiebungen um eine Linearkombination -der Vektoren $\vec{a}$ , $\vec{b}$ und $\vec{c}$ erlaubt sind oder kurz, um $\vec{r}$. -Verschiebungen um $\vec{r}$ bewirken demnach keine Veränderungen, -solange wir ein unendlich grosses Kristallgitter verschieben. + \vec{Q}_i(G) = G + \vec{a}_i, +\] +wobei der Vektor \(\vec{a}_i\) ein Grundvektor sein muss. +Da die Translationssymmetrie beliebig oft mit allen Grundvektoren angewendet werden kann, können wir auch sagen, dass alle Verschiebungen um eine Linearkombination der Vektoren \(\vec{a}\), \(\vec{b}\) und \(\vec{c}\) erlaubt sind oder kurz, um \(\vec{r}\). +Verschiebungen um \(\vec{r}\) bewirken demnach keine Veränderungen, solange wir ein unendlich grosses Kristallgitter verschieben. \subsection{Limitierte Kristallsymmetrien} Die Translationssymmetrie ist wohl keine grosse Überraschung, wenn man die Abbildung \ref{fig:punktgruppen:lattice} betrachtet. - Was nicht direkt ersichtlich ist, ist das auch wenn die Grundvektoren frei gewählt werden können, - können nur Rotationssymmetrische Kristalle bestimmter Rotationswinkel erzeugt werden. + Was nicht direkt ersichtlich ist, ist das auch wenn die Grundvektoren frei gewählt werden können, können nur Rotationssymmetrische Kristalle bestimmter Rotationswinkel erzeugt werden. + + % Suggestion from Muller: + % dass nur ganz bestimmt Drehwinkel \"uberhaupt m\"oglich sind. \begin{figure} \centering @@ -58,50 +54,49 @@ solange wir ein unendlich grosses Kristallgitter verschieben. \label{fig:punktgruppen:rot-geometry} \end{figure} - \subsubsection{Translationssymmetrie $Q$ in Kombination mit Rotationssymmetrie $C_\alpha$} % Müssen uns auf eine schreibweise für Symmetrie Operationen einigen oder sicher am Ende überprüfen + \subsubsection{Translationssymmetrie \(\vec{Q}\) in Kombination mit Rotationssymmetrie \(C_\alpha\)} % Müssen uns auf eine schreibweise für Symmetrie Operationen einigen oder sicher am Ende überprüfen In Abbildung \ref{fig:punktgruppen:rot-geometry} Sehen wir Gitterpunkte und deren Zusammenhänge. \begin{itemize} - \item $A$ ist unser erster Gitterpunkt. + \item \(A\) ist unser erster Gitterpunkt. - \item $A'$ ist gegeben, weil wir $A$ mit der Translation $Q$ um einen Grundvektor verschieben und wir wissen, - dass nach einer Translation wieder ein Gitterpunkt an der Verschobenen Stelle sein muss. - \item $B$ entsteht, weil wir die Rotationssymmetrie $C_\alpha$ auf den Punkt $A$ anwenden. - Dadurch dreht sich das ganze Gitter um den Winkel $\alpha$. - Für uns bedeutet dies lediglich, dass unser zweiter Punkt $A'$ abgedreht wird. - An der neuen Position von $A'$ muss also auch ein Punkt sein, um die Rotationssymmetrie zu erfüllen. - \item $B$ ist unser Name für diesen neuen Punkt. - Da auch die Eigenschaften des Kristallgittes periodisch mit dem Gitter sein müssen, dürfen wir $C_\alpha$ auch auf $A'$ anwenden. - Also wenden wir $C_\alpha$ invertiert - \footnote{Eine Rotationssymmetrie muss auch in die inverse Richtung funktionieren. - Genauere Überlegungen hierzu werden dem Leser überlassen, da sich die Autoren nicht explizit mit dieser Frage Auseinander gesetzt haben.} - auch auf $A'$ an. - Dies dreht $A$ auf einen neuen Punkt. - \item $B'$ ist kein zufälliger Name für diesen neuen Punkt, denn wir wissen, dass zwischen allen Punkten eine Translationssymmetrie bestehen muss. - Die Translationssymmetrie zwischen $B$ und $B'$ ist hier als $Q'$ bezeichnet. + \item \(A'\) ist gegeben, weil wir \(A\) mit der Translation \(\vec{Q}\) um einen Grundvektor verschieben und wir wissen, dass nach einer Translation wieder ein Gitterpunkt an der verschobenen Stelle sein muss. + \item \(B\) entsteht, weil wir die Rotationssymmetrie \(C_\alpha\) auf den Punkt \(A\) anwenden. + Dadurch dreht sich das ganze Gitter um den Winkel \(\alpha\). + Für uns bedeutet dies lediglich, dass unser zweiter Punkt \(A'\) abgedreht wird. + An der neuen Position \(B\) von \(A'\) muss also auch ein Punkt des Gitters sein, um die Rotationssymmetrie zu erfüllen. + \item \(B\) ist unser Name für diesen neuen Punkt. + Da auch die Eigenschaften des Kristallgittes periodisch mit dem Gitter sein müssen, dürfen wir \(C_\alpha\) auch auf \(A'\) anwenden. + Also wenden wir \(C_\alpha\) invertiert + \footnote{Eine Rotationssymmetrie muss auch in die inverse Richtung funktionieren. + Genauere Überlegungen hierzu werden dem Leser überlassen, da sich die Autoren nicht explizit mit dieser Frage Auseinander gesetzt haben.} + auch auf \(A'\) an. + Dies dreht \(A\) auf einen neuen Punkt. + \item \(B'\) ist kein zufälliger Name für diesen neuen Punkt, denn wir wissen, dass zwischen allen Punkten eine Translationssymmetrie bestehen muss. + Die Translationssymmetrie zwischen \(B\) und \(B'\) ist hier als \(\vec{Q}'\) bezeichnet. \end{itemize} Mit den gegebenen Punkten lassen sich geometrische Folgerungen ziehen. - Wir beginnen, indem wir die Länge der Translation $Q$ mit jener von $Q'$ vergleichen. - Aus Abbildung \ref{fig:punktgruppen:rot-geometry} ist ersichtlich, dass $|Q| = |Q'|+ 2x$. - Ist $Q$ ein Grundvektor so muss $|Q'|$ ein ganzes vielfaches von $|Q|$ sein. Also + Wir beginnen, indem wir die Länge \(Q\) der Translation \(\vec{Q}\) mit jener von \(\vec{Q}'\) vergleichen. + Aus Abbildung \ref{fig:punktgruppen:rot-geometry} ist ersichtlich, dass \(Q = Q' + 2x\). + Ist \(\vec{Q}\) ein Grundvektor so muss \(Q'\) ein ganzes vielfaches von \(Q\) sein. + Also \[ - |Q'| = n|Q| = |Q| + 2x + Q' = nQ = Q + 2x \] - Die Strecke $x$ lässt sich auch mit hilfe der Trigonometrie und dem angenommenen Rotationswinkel $\alpha$ ausdrücken: + Die Strecke \(x\) lässt sich auch mit hilfe der Trigonometrie und dem angenommenen Rotationswinkel \(\alpha\) ausdrücken: \[ - n|Q| = |Q| + 2|Q|\sin(\alpha - \pi/2) + nQ = Q + 2Q\sin(\alpha - \pi/2) \] - Wir können mit $|Q|$ dividieren um unabhängig von der Läge des Grundvektors zu werden, - was auch Sinn macht, da eine Skalierung eines Kristalles seine Symmetrieeigenschaften nicht tangieren soll. + Wir können durch \(Q\) dividieren um unabhängig von der Läge des Grundvektors zu werden, was auch Sinn macht, da eine Skalierung eines Kristalles seine Symmetrieeigenschaften nicht tangiert. Zusätzlich können wir den Sinusterm vereinfachen. \[ - n = 1 - 2\cos\alpha \qquad + n = 1 - 2\cos\alpha \quad\iff\quad \alpha = \cos^{-1}\left(\frac{1-n}{2}\right) \] Dies schränkt die möglichen Rotationssymmetrien auf - \[ + \( \alpha \in \left\{ 0^\circ, 60^\circ, 90^\circ, 120^\circ, 180^\circ\right\} - \] + \) ein. \begin{figure} @@ -114,13 +109,13 @@ ein. \subsection{Kristallklassen} Vorgehend wurde gezeigt, dass in einem zweidimensionalen Kristallgitter nicht alle Symmetrien möglich sind. Mit weiteren ähnlichen überlegungen gezeigt werden kann, dass Kristalle im dreidimensionalen Raum -\footnote{Alle $17$ möglichen zweidimensionalen Symmetrien sind als Wandmustergruppen bekannt} -nur auf genau $32$ Arten punktsymmetrisch sein können. -Diese $32$ möglichen Punktsymmetrien scheinen durchaus relevant zu sein, denn sie werden unter anderem als Kristallklassen bezeichnet. +\footnote{Alle \(17\) möglichen zweidimensionalen Symmetrien sind als Wandmustergruppen bekannt} +nur auf genau \(32\) Arten punktsymmetrisch sein können. +Diese \(32\) möglichen Punktsymmetrien scheinen durchaus relevant zu sein, denn sie werden unter anderem als Kristallklassen bezeichnet. Eine mögliche Art, die Klassen zu benennen ist nacht dem Mathematiker Arthur Moritz Schönflies, welcher sich mit der Klasifizierung dieser Symmetrien auseinandergesetzt hat. Auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} sind die möglichen Punktsymmetrien mit deren Schönfliesnotation aufgelistet. -Als Darstellungsmethode wurde die stereographische Projektion gewählt, wobei $5$ Klassen aus Gründen der Überschaubarkeit nicht gezeichnet wurden. - +Als Darstellungsmethode wurde die stereographische Projektion gewählt, wobei \(5\) Klassen aus Gründen der Überschaubarkeit nicht gezeichnet wurden. +%% vim:spell spelllang=de showbreak=.. breakindent linebreak: -- cgit v1.2.1 From 4dd42de2dd28bbbdf7e08693719e9c43f9294348 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sun, 18 Jul 2021 11:00:07 +0200 Subject: Fix standalone makefile target --- buch/papers/punktgruppen/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/Makefile b/buch/papers/punktgruppen/Makefile index 47affeb..98e7149 100644 --- a/buch/papers/punktgruppen/Makefile +++ b/buch/papers/punktgruppen/Makefile @@ -32,7 +32,7 @@ figures/%.pdf: tikz/%.tex pdflatex --output-directory=figures $< .PHONY: standalone -standalone: standalone.tex $(SOURCES) +standalone: standalone.tex $(SOURCES) $(FIGURES) mkdir -p standalone cd ../..; \ pdflatex \ -- cgit v1.2.1 From 32d6788d0f7b0b9120f4dc71d55b8bcaccf33fe5 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sun, 18 Jul 2021 11:09:14 +0200 Subject: Review crystal classes subsection and fix typos --- buch/papers/punktgruppen/crystals.tex | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index 8c655e2..922afd9 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -32,9 +32,9 @@ Da sich das ganze Kristallgitter wiederholt, wiederholen sich auch dessen Eigens Sollte man sich auf einem Gitterpunkt in einem Kristall aufhalten, ist es unmöglich zu wissen, auf welchem Gitterpunkt man sich befindet, da die Umgebungen aller Punkte Identisch sind. Mit anderen Worten: Jedes Kristallgitter \( G \) ist \emph{Translationssymmetrisch} in der Translation \[ - \vec{Q}_i(G) = G + \vec{a}_i, + \vec{Q}(G) = G + \vec{a}, \] -wobei der Vektor \(\vec{a}_i\) ein Grundvektor sein muss. +wobei der Vektor \(\vec{a}\) ein Grundvektor sein muss. Da die Translationssymmetrie beliebig oft mit allen Grundvektoren angewendet werden kann, können wir auch sagen, dass alle Verschiebungen um eine Linearkombination der Vektoren \(\vec{a}\), \(\vec{b}\) und \(\vec{c}\) erlaubt sind oder kurz, um \(\vec{r}\). Verschiebungen um \(\vec{r}\) bewirken demnach keine Veränderungen, solange wir ein unendlich grosses Kristallgitter verschieben. @@ -77,7 +77,7 @@ Verschiebungen um \(\vec{r}\) bewirken demnach keine Veränderungen, solange wir \end{itemize} Mit den gegebenen Punkten lassen sich geometrische Folgerungen ziehen. Wir beginnen, indem wir die Länge \(Q\) der Translation \(\vec{Q}\) mit jener von \(\vec{Q}'\) vergleichen. - Aus Abbildung \ref{fig:punktgruppen:rot-geometry} ist ersichtlich, dass \(Q = Q' + 2x\). + Aus Abbildung \ref{fig:punktgruppen:rot-geometry} ist ersichtlich, dass \(Q' = Q + 2x\). Ist \(\vec{Q}\) ein Grundvektor so muss \(Q'\) ein ganzes vielfaches von \(Q\) sein. Also \[ @@ -107,15 +107,12 @@ ein. \end{figure} \subsection{Kristallklassen} -Vorgehend wurde gezeigt, dass in einem zweidimensionalen Kristallgitter nicht alle Symmetrien möglich sind. -Mit weiteren ähnlichen überlegungen gezeigt werden kann, dass Kristalle im dreidimensionalen Raum -\footnote{Alle \(17\) möglichen zweidimensionalen Symmetrien sind als Wandmustergruppen bekannt} -nur auf genau \(32\) Arten punktsymmetrisch sein können. -Diese \(32\) möglichen Punktsymmetrien scheinen durchaus relevant zu sein, denn sie werden unter anderem als Kristallklassen bezeichnet. -Eine mögliche Art, die Klassen zu benennen ist nacht dem Mathematiker Arthur Moritz Schönflies, -welcher sich mit der Klasifizierung dieser Symmetrien auseinandergesetzt hat. +Vorgehend wurde gezeigt, dass in einem zweidimensionalen Kristallgitter nicht alle Symmetrien möglich sind\footnote{Alle 17 möglichen zweidimensionalen Symmetrien sind als Wandmustergruppen bekannt}. +Mit weiteren ähnlichen \"Uberlegungen kann gezeigt werden, dass Kristalle im dreidimensionalen Raum nur auf genau 32 Arten punktsymmetrisch sein können. +Diese 32 möglichen Punktsymmetrien scheinen durchaus relevant zu sein, denn sie werden unter anderem als Kristallklassen bezeichnet. +Eine mögliche Art, die Klassen zu benennen ist nach dem Mathematiker Arthur Moritz Schönflies, welcher sich mit der Klassifizierung dieser Symmetrien auseinandergesetzt hat. Auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} sind die möglichen Punktsymmetrien mit deren Schönfliesnotation aufgelistet. -Als Darstellungsmethode wurde die stereographische Projektion gewählt, wobei \(5\) Klassen aus Gründen der Überschaubarkeit nicht gezeichnet wurden. +Als Darstellungsmethode wurde die stereographische Projektion gewählt, wobei die gestrichelte Klassen aus Gründen der Überschaubarkeit nicht im Detail gezeichnet wurden. %% vim:spell spelllang=de showbreak=.. breakindent linebreak: -- cgit v1.2.1 From c6f44d256b3bf705b2bb13352cb01eda6a1bd961 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sun, 18 Jul 2021 11:20:54 +0200 Subject: Recompile figures --- .../punktgruppen/figures/atoms-grid-force.pdf | Bin 1496 -> 1496 bytes .../punktgruppen/figures/atoms-grid-still.pdf | Bin 1307 -> 1307 bytes .../figures/atoms-piezo-force-horizontal.pdf | Bin 15334 -> 12453 bytes .../figures/atoms-piezo-force-vertical.pdf | Bin 15377 -> 12490 bytes .../punktgruppen/figures/atoms-piezo-force.pdf | Bin 15377 -> 0 bytes .../punktgruppen/figures/atoms-piezo-still.pdf | Bin 1643 -> 1643 bytes .../punktgruppen/figures/combine-symmetries.pdf | Bin 14372 -> 12054 bytes buch/papers/punktgruppen/figures/lattice.pdf | Bin 27849 -> 25646 bytes buch/papers/punktgruppen/figures/piezo.pdf | Bin 16842 -> 14077 bytes buch/papers/punktgruppen/figures/projections.pdf | Bin 27953 -> 26440 bytes .../punktgruppen/figures/symmetric-shapes.pdf | Bin 15846 -> 12772 bytes 11 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 buch/papers/punktgruppen/figures/atoms-piezo-force.pdf (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/figures/atoms-grid-force.pdf b/buch/papers/punktgruppen/figures/atoms-grid-force.pdf index 0b3e084..f56be04 100644 Binary files a/buch/papers/punktgruppen/figures/atoms-grid-force.pdf and b/buch/papers/punktgruppen/figures/atoms-grid-force.pdf differ diff --git a/buch/papers/punktgruppen/figures/atoms-grid-still.pdf b/buch/papers/punktgruppen/figures/atoms-grid-still.pdf index d707258..02aa67c 100644 Binary files a/buch/papers/punktgruppen/figures/atoms-grid-still.pdf and b/buch/papers/punktgruppen/figures/atoms-grid-still.pdf differ diff --git a/buch/papers/punktgruppen/figures/atoms-piezo-force-horizontal.pdf b/buch/papers/punktgruppen/figures/atoms-piezo-force-horizontal.pdf index 09ed727..0514fb6 100644 Binary files a/buch/papers/punktgruppen/figures/atoms-piezo-force-horizontal.pdf and b/buch/papers/punktgruppen/figures/atoms-piezo-force-horizontal.pdf differ diff --git a/buch/papers/punktgruppen/figures/atoms-piezo-force-vertical.pdf b/buch/papers/punktgruppen/figures/atoms-piezo-force-vertical.pdf index ab2996f..486eab4 100644 Binary files a/buch/papers/punktgruppen/figures/atoms-piezo-force-vertical.pdf and b/buch/papers/punktgruppen/figures/atoms-piezo-force-vertical.pdf differ diff --git a/buch/papers/punktgruppen/figures/atoms-piezo-force.pdf b/buch/papers/punktgruppen/figures/atoms-piezo-force.pdf deleted file mode 100644 index 456eec9..0000000 Binary files a/buch/papers/punktgruppen/figures/atoms-piezo-force.pdf and /dev/null differ diff --git a/buch/papers/punktgruppen/figures/atoms-piezo-still.pdf b/buch/papers/punktgruppen/figures/atoms-piezo-still.pdf index 9a888d7..c306143 100644 Binary files a/buch/papers/punktgruppen/figures/atoms-piezo-still.pdf and b/buch/papers/punktgruppen/figures/atoms-piezo-still.pdf differ diff --git a/buch/papers/punktgruppen/figures/combine-symmetries.pdf b/buch/papers/punktgruppen/figures/combine-symmetries.pdf index 12a57ba..002c0f8 100644 Binary files a/buch/papers/punktgruppen/figures/combine-symmetries.pdf and b/buch/papers/punktgruppen/figures/combine-symmetries.pdf differ diff --git a/buch/papers/punktgruppen/figures/lattice.pdf b/buch/papers/punktgruppen/figures/lattice.pdf index 803da2b..37a8ccf 100644 Binary files a/buch/papers/punktgruppen/figures/lattice.pdf and b/buch/papers/punktgruppen/figures/lattice.pdf differ diff --git a/buch/papers/punktgruppen/figures/piezo.pdf b/buch/papers/punktgruppen/figures/piezo.pdf index e0f5450..19142ad 100644 Binary files a/buch/papers/punktgruppen/figures/piezo.pdf and b/buch/papers/punktgruppen/figures/piezo.pdf differ diff --git a/buch/papers/punktgruppen/figures/projections.pdf b/buch/papers/punktgruppen/figures/projections.pdf index 828f03c..03fb004 100644 Binary files a/buch/papers/punktgruppen/figures/projections.pdf and b/buch/papers/punktgruppen/figures/projections.pdf differ diff --git a/buch/papers/punktgruppen/figures/symmetric-shapes.pdf b/buch/papers/punktgruppen/figures/symmetric-shapes.pdf index c5e42e7..4684af7 100644 Binary files a/buch/papers/punktgruppen/figures/symmetric-shapes.pdf and b/buch/papers/punktgruppen/figures/symmetric-shapes.pdf differ -- cgit v1.2.1 From 47d7b23be51d7a8f362c65881be4a8dd0e100d06 Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Sun, 18 Jul 2021 14:57:21 +0200 Subject: file updated --- buch/papers/reedsolomon/anwendungen.tex | 60 ++++++++++++++++++++++++++++----- 1 file changed, 51 insertions(+), 9 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/anwendungen.tex b/buch/papers/reedsolomon/anwendungen.tex index 83e0f94..4b30ec9 100644 --- a/buch/papers/reedsolomon/anwendungen.tex +++ b/buch/papers/reedsolomon/anwendungen.tex @@ -6,14 +6,40 @@ \section{Anwendungen des Reed-Solomon-Codes \label{reedsolomon:section:anwendung}} \rhead{Anwendungen} -\textcolor{red}{Platzierung der Bilder? Quellenangabe der Bilder?} In den vorherigen Abschnitten haben wir betrachtet, wie Reed-Solomon-Codes in der Theorie Funktionieren. In diesem Abschnitt werden wir einige Anwendungen vorstellen, bei denen ein Reed-Solomon-Code zum Einsatz kommt. + +Dabei teilen all diese Anwendungen das gleiche Problem: Die Daten können nur durch einen (höchst Wahrscheinlichen) fehlerbehafteten Kanal empfangen werden. Es gibt keine andere Methode an diese Daten zu kommen als über diesen Kanal. + + +In der Netzwerktechnik zum Beispiel ist es üblich, dass bei Paketverluste oder beschädigt empfangene Datenpakete diese einfach noch einmal inert wenigen Millisekunden angefordert werden können. +In der Raumfahrt ist dies nicht möglich, da aufgrund der beschränkten Speichermöglichkeit die gesammelten Daten so rasch wie möglich zur Erde gesendet werden. +Diese Daten wiederum brauchen aufgrund der grossen Distanz Stunden bis die Daten beim Empfänger ankommen. +Fehlerhafte Daten kann also auf Grund der Zeitverzögerung nicht mehr angefordert werden. + +Bei CDs oder DVDs gibt es zwar kein Zeitliches Problem, jedoch erschweren Kratzer, Verschmutzungen oder Produktionsfehler das Lesen einer solchen Disk. +Da vor allem Produktionsfehler und Kratzer irreversibel sind und die Disk nicht nach jedem Kratzer ersetzt werden muss, so wird die korrekte Ausgabe der gespeicherten Information durch die Fehlerkorrektur sichergestellt. + +Ein ähnlicher Ansatz verfolgen QR-Codes, wobei die Information auch dann noch gelesen werden kann wenn der Code nicht mehr vollständig vorhanden ist. + +%Wie man sieht, eignen sich Reed-Solomon-Codes vor allem für Anwendungen, bei der die Informationen nicht auf einen Anderen Weg beschafft werden kann. +% +% +%, bei denen die Wahrscheinlichkeit hoch ist, dass während der Übertragung +% +%Es ist deshalb umso wichtiger die Daten Codiert zu lesen um so gleich die Lesefehler zu korrigieren. +% +% da aufgrund der grossen Distanz Stunden vergehen können bis gesendete Daten auf der Erde empfangen werden kann. +% + + Obwohl alle diese Codes nach dem gleichen Prinzip arbeiten gibt es starke Unterschiede in deren Funktionsweise. Dies kommt vor allem daher, da die Codes nur Ressourcen zur Verfügung haben, die von der Hardware bereitstellt wird, auf denen die Codes implementiert wurden. Diese Codes bedienen sich daher verschiedener Tricks und Optimierungen um möglichst effizient zu arbeiten. -% + +Um die Fähigkeit eines verwendeten Reed-Solomon-Codes zu beschreiben verwendet man die Notation ($n$,$k$), wobei $n$ die Grösse des Nachrichtenblocks angibt und $k$ die Anzahl der Stellen, die für Nutzdaten gebraucht werden können. + %Dies kommt vor allem daher, da diese Codes an ihre Hardware gebunden sind, auf denen sie implementiert worden sind. %Deshalb wurden diese Codes stark optimiert damit sie möglichst Effizient arbeiten können. % @@ -45,8 +71,17 @@ Diese Codes bedienen sich daher verschiedener Tricks und Optimierungen um mögli %In den letzten abschnitten haben wir uns ausführlich die Funktionsweise des Reed-Solomon-Codes angeschaut. In diesem Abschnitt möchten wir dem Leser ein paar bekannte beispiele vorstellen, in denen Reed-Solomon-Codes zum einsatz kommen. Es sei jedoch angemerkt, dass diese Anwendungen in der Umsetzung oft ein wenig anderst funktionieren als hier vorgestellt. Dies wurde vor allem wegen technischen optimierungen realisiert. (technische tricks und finessen), von der logik jedoch sehr stark an unserem Beispiel orientieren \subsection{Raumfahrt} -Obwohl Reed-Solomon-Codes bereits in den 1960er entwickelt wurden fanden sie erstmals Anwendung in der Voyager Raumsonde der NASA. Die Daten der zwei im Jahre 1977 gestarteten Sonden werden mit einem RS(255,233)-Code \textcolor{red}{benötigt das weitere erklärungen, wie z.b. 255: grösse nachrichtenblock, 233: anzahl der nutzbaren daten ?} zusammen mit einem konventionellen Faltungscode übertragen. - +Obwohl Reed-Solomon-Codes bereits in den 1960er entwickelt wurden fanden sie erstmals Anwendung in der Voyager Raumsonde der NASA. Die Daten der zwei im Jahre 1977 gestarteten Sonden (siehe Abbildung \ref{fig:voyager}) werden mit einem ($255$,$233$)-Code +Codiert. +Der Nachrichtenblock hat somit eine Länge von $255$ Zahlen, wovon $233$ als Nutzlast zur Verfügung stehen. +Damit ist es möglich bis zu $11$ Fehler im Nachrichtenblock zu korrigieren. +Der Codierte Nachrichtenblock wird in kleinere Blöcke aufgeteilt, mit einem Faltungscode erneut Codiert und anschliessend gesendet. Ein Faltungscode ist wie ein Reed-Solomon-Code in der Lage Fehler zu korrigieren, Funktioniert aber nach einem ganz anderen Prinzip. +Durch diese doppelte Codierung wird eine äusserst hohe Übertragungssicherheit garantiert. +% +%Dabei steht die Zahl 255 für grösse des Nachrichtenblocks, der die Anzahl 233 +% +% +% \textcolor{red}{benötigt das weitere Erklärungen, wie z.b. 255: grösse Nachrichtenblock, 233: anzahl der nutzbaren daten ?} zusammen mit einem konventionellen Faltungscode übertragen. Eine von der Sonde gesendete Nachricht hat eine Blockgrösse von 255 Zeichen, wovon 233 für die Nutzdaten gebraucht werden können. Dieser Code ist somit in der Lage 11 Fehler in einem Nachrichtenblock zu korrigieren. % % Die zwei im Jahre 1977 gestarteten Sonden senden Daten mit der Hilfe eines RS(255,233)-Code für die digitalen Bilder sowie einem konventionellen Faltungscode. % @@ -56,14 +91,14 @@ Obwohl Reed-Solomon-Codes bereits in den 1960er entwickelt wurden fanden sie ers \begin{figure} \centering \includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/Voyager_Sonde} - \caption{Voyager Raumsonde} + \caption{Mit einer Entfernung von über 22.8 Milliarden Kilometer ist die Voyager 1 Raumsonde das am weitesten entfernte, von Menschen erschaffene Objekt. Obwohl ihre Schwestersonde Voyager 2 zuerst ins All gestartet wurde befindet Sie sich ``nur'' 19 Milliarden Kilometer weit weg von der Erde. Aufgrund abnehmender Batterieleistung werden die beiden Sonden ihre wissenschaftlichen Aktivitäten etwa 2025 einstellen, bleiben aber bis in die 2030er mit uns in Kontakt.} \label{fig:voyager} \end{figure} \subsection{CD/DVD} Compact discs verwenden sogar zwei ineinander verschachtelte Reed-Solomon-Codes, einen (32,28)-Code und einen (28,24)-Code. -Beide Codes sind in der Lage, Fehler aus dem jeweils anderen gelesenen Block zu korrigieren. Dieses spezielle zusammenspielen dieser beiden Codes werden auch Cross-interleaved Reed-Solomon-Codes (CIRC) genannt. -Diese Vorgehensweise erzielt eine hohe Robustheit gegenüber Produktionsfehler oder Verschmutzung auf der Disc. Bei CD's sind diese in der Lage bis zu 4000 fehlerhafte Bits am Stück (ca. $2.5mm$) zu erkennen und zu korrigieren. +Beide Codes sind in der Lage, Fehler aus dem jeweils anderen gelesenen Block zu korrigieren. Dieses spezielle Zusammenspielen dieser beiden Codes werden auch Cross-interleaved Reed-Solomon-Codes (CIRC) genannt. +Diese Vorgehensweise erzielt eine hohe Robustheit gegenüber Produktionsfehlern oder Verschmutzung auf der Disc. Bei CDs sind diese in der Lage, bis zu 4000 fehlerhafte Bits am Stück (ca. $2.5mm$) zu erkennen und zu korrigieren. Die Digital Video Disc funktioniert nach dem selben Konzept mit grösseren Codeblöcken. Die DVD verwendet einen (208,192)-Code und einen (182,172)-Code. @@ -73,12 +108,19 @@ Die Digital Video Disc funktioniert nach dem selben Konzept mit grösseren Codeb \begin{figure} \centering \includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/Compact_Disc} - \caption{Compact Disc} + \caption{CDs kamen 1982 auf den Markt. Sie funktioniert durch das ``einbrennen'' von Punkten und Strichen, die die Daten repräsentieren. Gelesen werden diese wiederum durch die Reflektion eines Lasers an diesen Punkten und Strichen.} \label{fig:cd} \end{figure} \subsection{QR-Codes} -Quick Response Codes funktionieren nach einem sehr ähnlichen Prinzip wie in unserem Beispiel, nur dass QR-Codes in einem $\mathbb{F}_{256}$ Körper arbeiten. Je nach grösse der Codierung ist der QR-Code im Endeffekt robuster gegen Beschädigungen. Bei Low Level Codes können 7\% der Daten Wiederhergestellt werden, beim High Level Code sind das sogar 30\%. +Quick Response Codes oder auch QR-Codes funktionieren nach einem sehr ähnlichen Prinzip wie in unserem Beispiel der Abschnitte \ref{reedsolomon:section:codebsp} - \ref{reedsolomon:section:rekonstruktion} nur das QR-Codes in einem $\mathbb{F}_{256}$ Körper arbeiten. Die Physische Grösse eines Codes ist stark abhängig von der Grösse der Codierung sowie dem Fehlerkorrektur-Level. Es ist so auf dem ersten Blick nicht ersichtlich, wie viel Nutzinformationen ein Qr-Code enthält. Die QR-Codes in Abbildung \ref{fig:qr} zeigen jeweils die Gleiche Information mit unterschiedlichem Fehlerkorrektur-Level. Codes mit einem höheren Korrektur-Level können auch für Desingner-Codes Zweckentfremdet werden. Dabei wird z.B. das Firmenlogo oder einen Schriftzug über den Qr-Code gelegt, ohne das die Funktion des Codes beeinträchtigt wird. Ein Beispiel dazu ist ebenfalls unter Abbildung \ref{fig:qr} \textcolor{red}{(noch nicht erstellt + beschreibung anpassen)} zu finden. + +% + +%So kann auf den ersten Blick nicht +% +% +% funktionieren nach einem sehr ähnlichen Prinzip wie in unserem Beispiel, nur dass QR-Codes in einem $\mathbb{F}_{256}$ Körper arbeiten. Je nach grösse der Codierung ist der QR-Code im Endeffekt robuster gegen Beschädigungen. Bei Low Level Codes können 7\% der Daten Wiederhergestellt werden, beim High Level Code sind das sogar 30\%. \begin{figure} \centering -- cgit v1.2.1 From 45d314f08914f3a507e989df1eb1b0f75d9e1e33 Mon Sep 17 00:00:00 2001 From: Pascal Schmid <81317360+paschost@users.noreply.github.com> Date: Sun, 18 Jul 2021 21:28:19 +0200 Subject: =?UTF-8?q?Erg=C3=A4nzunugen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Erläuterungen zu Dijkstra- und A*-Algorithmus angebracht. --- buch/papers/verkehr/section1.tex | 72 +++++++++++++++++++++++++++++++++------- 1 file changed, 60 insertions(+), 12 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/verkehr/section1.tex b/buch/papers/verkehr/section1.tex index 6a5dc28..d96d450 100644 --- a/buch/papers/verkehr/section1.tex +++ b/buch/papers/verkehr/section1.tex @@ -2,35 +2,83 @@ \label{section:verkehr/einfuehrung} \subsection{Verkehrsnetze} -Das Verkehrsnetz besteht aus allen Anlagen, auf oder unter der Erdoberfläche, auf denen eine räumliche Fortbewegung von Personen oder auch Gütern stattfindet. Verkehrsnetze sind ein Bestandteil der Verkehrsinfrastruktur, die auf topografischen Karten festgehalten werden. Sie umfassen den Schienenverkehr, alle Strassen und Wege, wie auch Flugplätze und alle dazugehörigen Bauwerke. +Das Verkehrsnetz besteht aus allen Anlagen, auf oder unter der Erdoberfläche, auf denen eine räumliche Fortbewegung von Personen oder auch Gütern stattfindet. Verkehrsnetze sind ein Bestandteil der Verkehrsinfrastruktur, die auf topografischen Karten festgehalten werden. Sie umfassen den Schienenverkehr, alle Strassen und Wege, wie auch Flugplätze und alle dazugehörigen Bauwerke. Aus verkehrsgeografischer Sicht besteht das Verkehrsnetz aus Kanten, Knotenpunkten und dem Hinterland. Die Knotenpunkte werden auch hier durch die Kanten verbunden, die den Verkehrsstrom aufnehmen, wobei das Hinterland durch einzelne Knoten versorgt wird. Die Aufteilung in Kanten und Knotenpunkte ermöglicht eine Vereinfachung komplexer Verkehrsnetze, damit sie mittels der Graphentheorie untersucht werden können. -Grundsätzlich können kurze Wege zwischen den Knotenpunkten das Ziel beim -Aufbau eines Verkehrsnetzes sein. Es kann aber auch versucht werden, die Bau- und Unterhaltskosten des Verkehrsnetzes in einem gewissen Rahmen zu halten. Aus diesen Vorgaben ergibt sich dann, je nach dem was gewünscht wird, eine grob- oder feinmaschige Struktur des Netzes. +Grundsätzlich können kurze Wege zwischen den Knotenpunkten das Ziel beim Aufbau eines Verkehrsnetzes sein. Es kann aber auch versucht werden, die Bau- und Unterhaltskosten des Verkehrsnetzes in einem gewissen Rahmen zu halten. Aus diesen Vorgaben ergibt sich dann, je nach dem was gewünscht wird, eine grob- oder feinmaschige Struktur des Netzes. Ziel ist aber ein möglichst wirtschaftliches und optimales Verkehrsnetz. \subsection{Suchalgorithmen} \subsubsection{Dijkstra-Algorithmus} Der Algorithmus von Dijkstra ist benannt nach seinem Erfinder dem Mathematik- und Infomratikprofessor Edsger Dijkstra. Den Algorithmus hat er im Jahr 1959 erfunden. -Der Algorithmus von Dijkstra ist ein Greedy-Algorithmus (gieriger Algorithmus), der schrittweise einen Folgezustand auswählt, damit beim Zeitpunkt der Wahl der grösste Gewinn bzw. das beste Ergebnis erzielt werden kann. +Der Algorithmus von Dijkstra ist ein Greedy-Algorithmus (gieriger Algorithmus), der schrittweise einen Folgezustand auswählt, damit beim Zeitpunkt der Wahl der grösste Gewinn bzw. das beste Ergebnis erzielt werden kann. Trotz der Schnelligkeit der Greedy-Algorithmen, können viele Probleme nicht optimal gelöst werden. Vereinfacht wird beim Dijkstra-Algorithmus, ausgehend von einem Startknoten so lange dem kürzesten Pfad gefolgt, bis der Zielknoten erreicht wird. Dabei muss für jeden besuchten Knoten die Kostenfunktion als auch der Pfad dahin (vorheriger Knoten) gespeichert werden. Dadurch wird hingegen garantiert, dass, wenn der Zielknoten erreicht wird, auch der kürzeste Pfad gefunden wurde. Grundlegende Voraussetzung für den Dijkstra-Algorithmus ist die strikte Positivität der Kantengewichte. Andernfalls würde ein wiederholtes Ablaufen einer Kante mit negativem Gewicht zu einer stetigen Reduktion der Kostenfunktion führen, was zu einer unendlichen Schlaufe führen würde. +Gegeben sei ein Netzwerk mit $n$ Knoten und dem Startknoten $a$. +Alle Kanten sind mit $k(i, j)$ bewertet. +Gesucht wird der kürzeste Pfad zwischen dem Startknoten und allen übrigen Knoten im Netz. +$D(i)$ ist die kürzeste Distanz vom Startknoten $a$ zum Knoten $i, V(i)$ ist der unmittelbare Vorgängerknoten vom Knoten $i$ auf dem kürzesten Weg vom Startknoten $a$ zum Konten $i$ und die Menge $M$ ist die Menge einer bestimmten Auswahl an Knoten. + +Dabei gilt +\begin{equation}M={a}\end{equation} +\begin{equation}D(a)=0\end{equation} wobei +\begin{equation}D(i)=\infty\end{equation} und +\begin{equation}i \neq a \end{equation} +Ausserdem gilt \begin{equation}V(i)=(-) \text{für alle Knoten $i$}\end{equation}\\ + +%THEORIE... +Iteration + +1. Auswahl eines Knotens \begin{equation} K\in M \text{mit} D(K)=D(i);i\in M\end{equation} + +2. Für alle Nachfolger $N(j)$ vom Knoten $K$ gilt: +\begin{equation}D(K) + k_Kj < D(j)\end{equation} dann wird \begin{equation}D(j) = D(K) + k_Kj, V(j) = K\end{equation} gesetzt und somit wird der Knoten $j$ in die Menge $M$ aufgenommen. + +3. Der ausgewählte Knoten \begin{equation}K\in M\text{wird aus der Menge herausgelöscht}\end{equation}\\ +Diese drei Schritte werden so lange wiederholt bis gilt +\begin{equation}M=\{\}\end{equation} + \subsubsection{A*-Algorithmus} Suchalgorithmen werden nach einfachen (uninformierte) und heuristischen (informierten) Algorithmen unterschieden. Während einfache Algorithmen den Suchraum intuitiv durchsuchen, beziehen heuristische Algorithmen Wissen über den Suchraum mit ein. Der A*-Algorithmus geht auf seine Erfinder Peter Hart, Nils Nilsson und Bertram Raphael zurück, die den Algorithmus erstmals im Jahr 1968 beschrieben. Der A*-Algorithmus ist ein heuristischer Suchalgorithmus, der den kürzesten Pfad zwischen zwei Knoten in einem Graphen mit positiven Kantengewichten berechnet. -Im Gegensatz zu einfachen Suchalgorithmen, wird beim A*-Algorithmus eine Schätzfunktion, die sogenannte Heuristik, verwendet. Dies ermöglicht ein zielgerichtetes Suchen und gleichzeitig wird die Laufzeit verringert. +Im Gegensatz zu einfachen Suchalgorithmen, wird beim A*-Algorithmus eine Schätzfunktion, die sogenannte Heuristik, verwendet. Dies ermöglicht ein zielgerichtetes Suchen und gleichzeitig wird die Laufzeit verringert. Ausserdem findet der A*-Algorithmus immer eine optimale Lösung, sofern eine vorhanden ist. -Der A*-Algorithmus wird als Verallgemeinerung gehandhabt und gilt als Erweiterung des Dijkstra-Algorithmus. -======= +Der A*-Algorithmus wird als Verallgemeinerung gehandhabt und gilt als Erweiterung des Dijkstra-Algorithmus. + +\subsubsection{Anwendung A*-Algorithmus} +Wie oben erwähnt basiert der A*-Algorithmus auf dem Shortest-Path-Algorithmus von Dijkstra. Gemäss dem Algorihtmus von Dijkstra werden von einem Startknoten aus die jeweiligen Nachbarknoten, die Nachbarknoten der Nachbarknoten usw. verarbeitet. Die Kantengewichte werden dabei aufsummiert und die Priorität wird auf die Kante gelegt, die das geringste Gewicht aufweist. Mit diesem Verfahren wird sichergestellt, dass die erste gefundene Lösung auch die optimalste Lösung darstellt.\\ + +Die Kantengewichte werden für jeden Knoten in Form einer Funktion dargestellt +\begin{equation}f(n)=g(n)\end{equation} mit +\begin{equation}g(n)=\text{Summe aller Kantengewichte vom Startknoten bis n}\end{equation}\\ +Der A*-Algorithmus erweitert die Vorgehensweise des Algorithmus von Dijkstra um die Heuristik $h(n)$, die für jeden Knoten $n$ die geschätzte Entfernung zum Zielknoten beschreibt. +Somit gilt: +\begin{equation}f(n)=g(n)+h(n)\end{equation}\\ +Wie auch der Algorithmus von Dijkstra findet der A*-Algorithmus die optimalste Lösung. \subsubsection{Floyd-Warshall-Algorithmus} -Der Floyd-Warshall-Algorithmus wurde erstmals im Jahr 1962 von seinen Namensgebern Robert Floyd und Stephen Warshall vorgestellt. -Der Floyd-Warshall-Algorithmus sucht kürzeste Wege innerhalb eines Graphen. Er ermittelt aber nicht nur die Distanz zwischen zwei Knoten, sondern berechnet die kürzesten Wege zwischen allen Knotenpaaren eines gewichteten Graphen. Somit werden die kürzesten , beziehungsweise die optimalsten Wege zwischen allen Paaren von Knoten berechnet, sofern der Graph keinen negativen Kreis (Zyklus) aufweist. -Ein Kreis in einem Graphen ist ein Weg, bei dem Start- und Endpunkt den gleichen Knoten aufweisen. Dieser wird negativ, wenn die Summe der gewichteten Kanten kleiner als Null wird. +Der Floyd-Warshall-Algorithmus, auch Tripel-Algorithmus genannt, wurde erstmals im Jahr 1962 von seinen Namensgebern Robert Floyd und Stephen Warshall vorgestellt. +Der Floyd-Warshall-Algorithmus sucht kürzeste Wege innerhalb eines Graphen. Er ermittelt aber nicht nur die Distanz zwischen zwei Knoten, sondern berechnet die kürzesten Wege zwischen allen Knotenpaaren eines gewichteten Graphen. Somit werden die kürzesten , beziehungsweise die optimalsten Wege zwischen allen Paaren von Knoten berechnet. Der Floyd-Warhshall-Algrithmus kann ausserdem mit negativen Kantengewichten umgehen, sofern der Graph aber keinen negativen Kreis (Zyklus) aufweist. Ist dies der Fall, führt der Algorithmus zu einem falschen Ergebnis. +Ein Kreis (Zyklus) in einem Graphen ist ein Weg, bei dem Start- und Endpunkt den gleichen Knoten aufweisen. Dieser wird negativ, wenn die Summe der gewichteten Kanten kleiner als Null wird.\\ +Der Floyd-Warshall-Algorithmus besteht grundsätzlich aus Floyd's Berechnung der kürzesten Distanzen zwischen zwei Knoten und Warshall's Konstruktion der kürzesten Wege. Werden diese beiden Teilgebiete zusammengefügt, ergibt sich der Floyd-Warshall-Algorithmus. + +\subsubsection{Anwendung Floyd-Warshall-Algorithmus} + +Wie oben erwähnt, besteht der Floyd-Warshall-Algorithmus aus dem Teil von Floyd zur Berechnung der kürzesten Pfade und dem Teil von Warshall zur Konstruktion der kürzesten Pfade. + +%THEORIE... +Als erstes wird eine Gewichtsmatrix $W$ mit den Matrixeinträgen $W[i, j]$ erstellt. +Der Algorithmus berechnet danach in einer Hauptschleife alle Knoten $k$ von 1 bis $n$. +Dabei versucht er in jeder Iteration alle Wege von $i$ nach $j$ durch die Wege $(i, k)$ und $(k, j)$ zu verbessern. +Falls dieser mögliche Umweg zu einer Verbesserung führt, wird der Algorithmus aktualisiert. + +Die aktuelle Gewichtung der Pfade wird mit +\begin{equation}d[i, j]=min[d[i,j], d[i,k] + d[k,i]]\end{equation} +ermittelt. \subsubsection{Euklidische Heuristik} Bei Verkehrsnetzen ist die euklidische Distanz eine gängige und zuverlässige Heurstik. Dabei wird zu den effektiven Reisekosten zum aktuellen Knoten die euklidische Distanz bis zum Zielknoten hinzuaddiert. Dadurch wird die Kostenfunktion konsequent nie überschätzt. Dies stellt eine Voraussetzung an eine zulässige Heuristik dar. @@ -40,7 +88,7 @@ Was bei einem physischen Verkehrsnetz einfach zu bewältigen ist, da Koordinaten Der PageRank-Algorithmus wurde von den Gründern von Google, Larry Page und Sergey Brin im Jahr 1996 entwickelt und zum Patent angemeldet. Zwei Jahre später gründeten sie ihr Unternehmen Google Inc.. Beim PageRank-Algorithmus handelt es sich um den Algorithmus von Google, aus dem die Google-Matrix abgeleitet wird. Die Google-Matrix ist eine immens grosse Matrix mit Millionen Zeilen und Spalten, die für die schnelle und vor allem exakte Bestimmung der PageRanks (Gewichtung) eine grosse Bedeutung hat. -Der PageRank-Algorithmus analysiert und gewichtet beispielsweise die Verlinkungsstruktur verschiedener Websites des World Wide Web anhand ihrer Struktur. +Der PageRank-Algorithmus analysiert und gewichtet beispielsweise die Verlinkungsstruktur verschiedener Websites des World Wide Web anhand ihrer Struktur. Der PageRank wird umso höher, je mehr hochwertige Links auf eine Webseite verweisen und je höher die Gewichtung einer Webseite ist, desto grösser ist der Effekt.\\ Dabei handelt es sich um einen iterativen Prozess. Ausgegangen wird von der Adjazenz-Matrix $A$, für welche gilt. @@ -49,7 +97,7 @@ Grundsätzlich setzt sich der PageRank Algorithmus mit der Fragestellung auseina \begin{equation} A_{i,j}=\left\{ \begin{matrix} -1 & \text{Kante von $j$ nach $i$} \\ 0 & \text{keine Kante von $j$ nach $i$} +1 & \text{Kante von $j$ nach $i$} \\ 0 & \text{keine Kante von $j$ nach $i$} \end{matrix} \right. \label{verkehr:Adja} -- cgit v1.2.1 From 353a32e07fdf128409c8894f723ff4c49bb9322a Mon Sep 17 00:00:00 2001 From: tim30b Date: Sun, 18 Jul 2021 21:38:59 +0200 Subject: =?UTF-8?q?apply=20m=C3=BCller=20correction=20in=20punktgruppen=20?= =?UTF-8?q?und=20Intro?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buch/papers/punktgruppen/crystals.tex | 48 ++++++++++++++++++++--------------- buch/papers/punktgruppen/intro.tex | 29 ++++++++++++++------- 2 files changed, 48 insertions(+), 29 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index 1aec16f..76b3f72 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -17,28 +17,28 @@ Die Innereien eines Kristalles sind glücklicherweise relativ einfach definiert. } \end{figure} \subsection{Kristallgitter} -Ein zweidimensionales Beispiel eines solchen Muster ist Abbildung \ref{fig:punktgruppen:lattice}. -Für die Überschaubarkeit haben wir ein simples Motiv eines einzelnen grauen Punktes gewählt und betrachten dies nur in Zwei Dimensionen. +Ein zweidimensionales Beispiel eines solchen Muster ist in Abbildung \ref{fig:punktgruppen:lattice} dargestellt. +Für die Überschaubarkeit haben wir ein simples Motiv eines einzelnen grauen Punktes gewählt und betrachten dies nur in zwei Dimensionen. Die eingezeichneten Vektoren $\vec{a}$ und $\vec{b}$ sind die kleinstmöglichen Schritte im Raum bis sich das Kristallgitter wiederholt. Wird ein beliebiger grauer Gitterpunkt in \ref{fig:punktgruppen:lattice} gewählt und um eine ganzzahlige Linearkombination von $\vec{a}$ und $\vec{b}$ verschoben, endet er zwangsweise auf einem Gitterpunkt, wenn nicht wieder am selben Ort. -Im Dreidimensionalen-Raum können alle Gitterpunkte mit derselben Idee und einem zusätzlichen Vektor $\vec{c}$ also +Im dreidimensionalen-Raum können alle Gitterpunkte mit derselben Idee und einem zusätzlichen Vektor $\vec{c}$ also \[ \vec{r} = n_1 \vec{a} + n_2 \vec{b} + n_3 \vec{c} \] erreicht werden sofern $\{n_1,n_2,n_3\} \in \mathbb{Z}$ sind. -Sind die Vektoren $\vec{a}$ , $\vec{b}$ , $\vec{c}$ gegeben , +Sind die Vektoren $\vec{a}$ , $\vec{b}$ , $\vec{c}$ gegeben, ist ein Kristallgitter eindeutig beschrieben, weswegen sie auch als Grundvektoren bekannt sind. \subsection{Translationssymmetrie} Da sich das ganze Kristallgitter wiederholt, wiederholen sich auch dessen Eigenschaften periodisch mit den Grundvektoren. Sollte man sich auf einem Gitterpunkt in einem Kristall aufhalten, ist es unmöglich zu wissen, auf welchem Gitterpunkt man sich befindet, -da die Umgebungen aller Punkte Identisch sind. -Mit anderen worten: Jedes Kristallgitter $ G $ ist \emph{Translationssymmetrisch} in der Translation +da die Umgebungen aller Punkte identisch sind. +Mit anderen Worten: Jedes Kristallgitter $ G $ ist \emph{Translationssymmetrisch} in der Translation \[ - Q_i(G) = G + \vec{a_i} -\] wobei der Vektor $a_i$ ein Grundvektor sein muss. + Q_i(G) = G + \vec{a}_i +\] wobei der Vektor $\vec{a}_i$ ein Grundvektor sein muss. Da die Translationssymmetrie beliebig oft mit allen Grundvektoren angewendet werden kann, können wir auch sagen, dass alle Verschiebungen um eine Linearkombination der Vektoren $\vec{a}$ , $\vec{b}$ und $\vec{c}$ erlaubt sind oder kurz, um $\vec{r}$. @@ -47,8 +47,8 @@ solange wir ein unendlich grosses Kristallgitter verschieben. \subsection{Limitierte Kristallsymmetrien} Die Translationssymmetrie ist wohl keine grosse Überraschung, wenn man die Abbildung \ref{fig:punktgruppen:lattice} betrachtet. - Was nicht direkt ersichtlich ist, ist das auch wenn die Grundvektoren frei gewählt werden können, - können nur Rotationssymmetrische Kristalle bestimmter Rotationswinkel erzeugt werden. + Was nicht direkt ersichtlich ist, ist dass auch wenn die Grundvektoren frei gewählt werden können, + sind nur rotationssymmetrische Kristalle ganz bestimmter Rotationswinkel möglich. \begin{figure} \centering @@ -61,17 +61,17 @@ solange wir ein unendlich grosses Kristallgitter verschieben. \end{figure} \subsubsection{Translationssymmetrie $Q$ in Kombination mit Rotationssymmetrie $C_\alpha$} % Müssen uns auf eine schreibweise für Symmetrie Operationen einigen oder sicher am Ende überprüfen - In Abbildung \ref{fig:punktgruppen:rot-geometry} Sehen wir Gitterpunkte und deren Zusammenhänge. + In Abbildung \ref{fig:punktgruppen:rot-geometry} sehen wir Gitterpunkte und deren Zusammenhänge. \begin{itemize} \item $A$ ist unser erster Gitterpunkt. \item $A'$ ist gegeben, weil wir $A$ mit der Translation $Q$ um einen Grundvektor verschieben und wir wissen, - dass nach einer Translation wieder ein Gitterpunkt an der Verschobenen Stelle sein muss. + dass nach einer Translation wieder ein Gitterpunkt an der verschobenen Stelle sein muss. \item $B$ entsteht, weil wir die Rotationssymmetrie $C_\alpha$ auf den Punkt $A$ anwenden. Dadurch dreht sich das ganze Gitter um den Winkel $\alpha$. Für uns bedeutet dies lediglich, dass unser zweiter Punkt $A'$ abgedreht wird. - An der neuen Position von $A'$ muss also auch ein Punkt sein, um die Rotationssymmetrie zu erfüllen. + An der neuen Position $B$ von $A'$ muss also auch ein Punkt des Gitters sein, um die Rotationssymmetrie zu erfüllen. \item $B$ ist unser Name für diesen neuen Punkt. Da auch die Eigenschaften des Kristallgittes periodisch mit dem Gitter sein müssen, dürfen wir $C_\alpha$ auch auf $A'$ anwenden. Also wenden wir $C_\alpha$ invertiert @@ -93,11 +93,14 @@ solange wir ein unendlich grosses Kristallgitter verschieben. \[ n|Q| = |Q| + 2|Q|\sin(\alpha - \pi/2) \] - Wir können mit $|Q|$ dividieren um unabhängig von der Läge des Grundvektors zu werden, - was auch Sinn macht, da eine Skalierung eines Kristalles seine Symmetrieeigenschaften nicht tangieren soll. + Wir können durch $|Q|$ dividieren um unabhängig von der Läge des Grundvektors zu werden, + was auch Sinn macht, da eine Skalierung eines Kristalles seine Symmetrieeigenschaften nicht tangiert. Zusätzlich können wir den Sinusterm vereinfachen. \[ n = 1 - 2\cos\alpha + + \] + \[ \alpha = \cos^{-1}\left(\frac{1-n}{2}\right) \] Dies schränkt die möglichen Rotationssymmetrien auf @@ -115,14 +118,19 @@ ein. \subsection{Kristallklassen} Vorgehend wurde gezeigt, dass in einem zweidimensionalen Kristallgitter nicht alle Symmetrien möglich sind. -Mit weiteren ähnlichen überlegungen gezeigt werden kann, dass Kristalle im dreidimensionalen Raum -\footnote{Alle $17$ möglichen zweidimensionalen Symmetrien sind als Wandmustergruppen bekannt} -nur auf genau $32$ Arten punktsymmetrisch sein können. -Diese $32$ möglichen Punktsymmetrien scheinen durchaus relevant zu sein, denn sie werden unter anderem als Kristallklassen bezeichnet. +Mit weiteren ähnlichen Überlegungen kann gezeigt werden, dass Kristalle im dreidimensionalen Raum +nur auf genau $32$ Arten rein punktsymmetrische +\footnote{Werden translationssymmetrien auch mit gezählt beschreibt man die 230 Raumgruppen} +Symmetriegruppen bilden können. +Diese $32$ möglichen Symmetriegruppen scheinen durchaus relevant zu sein, denn sie werden unter anderem als Kristallklassen bezeichnet. Eine mögliche Art, die Klassen zu benennen ist nacht dem Mathematiker Arthur Moritz Schönflies, welcher sich mit der Klasifizierung dieser Symmetrien auseinandergesetzt hat. Auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} sind die möglichen Punktsymmetrien mit deren Schönfliesnotation aufgelistet. -Als Darstellungsmethode wurde die stereographische Projektion gewählt, wobei $5$ Klassen aus Gründen der Überschaubarkeit nicht gezeichnet wurden. +Als Darstellungsmethode wurde die stereographische Projektion gewählt, wobei die gestrichelten $5$ Klassen aus Gründen der Überschaubarkeit nicht im Detail gezeichnet wurden. + + +\subsubsection{Schönflies Notation} +TODO diff --git a/buch/papers/punktgruppen/intro.tex b/buch/papers/punktgruppen/intro.tex index 24212e7..7b4e732 100644 --- a/buch/papers/punktgruppen/intro.tex +++ b/buch/papers/punktgruppen/intro.tex @@ -1,14 +1,25 @@ \section{Einleitung} Es gibt viele Möglichkeiten sich in Kristallen zu verlieren. -Auch wen man nur die mathematischen Betrachtunngsweisen berüksichtigt, hat man noch viel zu viele Optionen sich mit Kristallen zu beschäftigen. -In diesem Kapitel ist daher der Fokus ``nur'' auf die Symmetrie gelegt. -Zu beginn werden wir zeigen was eine Symmetrie ausmacht und dass sie noch weit mehr in sich verbirgt als nur schön auszusehen. -Die vorgestellten Symmetrien sind äusserst gut geeignet um die Grundeigenschaften eines Kristalles zu Beschreiben. -Mit etwas kiffligen geometrischen Überlegungen kann man zeigen wass in der Welt der Kristallographie alles möglich ist oder nicht. -Die Einschränkungen sind durchaus wilkommen, dank ihnen halten sich die möglichen Kristallgitter in Grenzen und Lassen sich Kategorisieren. -Kategorien sind nicht nur für einen besseren Überblich nützlich, sondern kann man aus ihnen auch auf Physikalische Eigenschaften schliessen, als spannendes Beispiel: Die Piezoelektrizität. -Die Piezoelektrizität ist vielleicht noch nicht jedem bekannt, sie versteckt sich aber in diversen Altagsgegenständen zum Beispiel sorgen sie in den meisten Feuerzeugen für die Zündung. -Ein Funken Interesse ist hoffentlich geweckt um sich mit dem scheinbar trivialen thema der Symmetrie auseinander zu setzten. +Auch wen man nur die mathematischen Betrachtunngsweisen berücksichtigt, +hat man noch viel zu viele Optionen sich mit Kristallen zu beschäftigen. +In diesem Kapitel wird daher der Fokus ``nur'' auf die Symmetrie gelegt. +Zu Beginn werden wir zeigen was eine Symmetrie ausmacht und +dass sie noch weit mehr in sich verbirgt als nur schön auszusehen. +Die vorgestellten Symmetrien sind äusserst gut geeignet, +um die Grundeigenschaften eines Kristalles zu beschreiben. +Mit etwas kniffligen geometrischen Überlegungen kann man zeigen, +was in der Welt der Kristallographie alles möglich ist oder nicht. +Die Einschränkungen sind durchaus willkommen, +dank ihnen halten sich die möglichen Kristallgitter in Grenzen +und lassen sich kategorisieren.%umformulieren +Kategorien sind nicht nur für einen besseren Überblick nützlich, +sondern kann man aus ihnen auch auf Physikalische Eigenschaften schliessen. +Als spannendes Beispiel: Die Piezoelektrizität. +Die Piezoelektrizität ist vielleicht noch nicht jedem bekannt, +sie versteckt sich aber in diversen Altagsgegenständen +zum Beispiel sorgen sie in den meisten Feuerzeugen für die Zündung. +Ein Funken Interesse ist hoffentlich geweckt +um sich mit dem scheinbar trivialen thema der Symmetrie auseinander zu setzten. -- cgit v1.2.1 From 88de7e8d421d3d7395840fdf916bbd015254d43c Mon Sep 17 00:00:00 2001 From: JODBaer Date: Mon, 19 Jul 2021 16:30:45 +0200 Subject: update --- buch/papers/reedsolomon/dtf.tex | 14 ++++---- buch/papers/reedsolomon/einleitung.tex | 10 +++--- buch/papers/reedsolomon/idee.tex | 60 +++++++++++++++++++++------------- 3 files changed, 50 insertions(+), 34 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/dtf.tex b/buch/papers/reedsolomon/dtf.tex index 025be3a..d276760 100644 --- a/buch/papers/reedsolomon/dtf.tex +++ b/buch/papers/reedsolomon/dtf.tex @@ -3,13 +3,17 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Diskrete Fourien Transformation +\section{Diskrete Fourier Transformation \label{reedsolomon:section:dtf}} \rhead{Umwandlung mit DTF} Um die Polynominterpolation zu umgehen, gehen wir nun über in die Fourientransformation. Dies wird weder eine erklärung der Forientransorfmation noch ein genauer gebrauch für den Reed-Solomon-Code. Dieser Abschnitt zeigt nur wie die Fourientransformation auf Fehler reagiert. -wobei sie dann bei späteren Berchnungen ganz nütlich ist. +wobei sie dann bei späteren Berchnungen ganz nützlich ist. + +\subsection{Diskrete Fourientransformation Zusamenhang +\label{reedsolomon:subsection:dtfzusamenhang}} +Die Diskrete Fourientransformation ist definiert als \subsection{Übertragungsabfolge \label{reedsolomon:subsection:Übertragungsabfolge}} @@ -22,9 +26,7 @@ Kommen nuun drei Fehler... hinzu zu diesem codierten Signal sind diese nicht zu Nach dem Empfangen... und decodieren ... erkennt man die fehlerhafte information in den Punkten 64 bis 100. Filtert man nur diese Punkte heraus und Transformiert sie mit Fourier erhält man die stellen an denen die Fehler sich eingeschlichen haben. -\subsection{Diskrete Fourientransformation Zusamenhang -\label{reedsolomon:subsection:dtfzusamenhang}} -Die Diskrete Fourientransformation ist definiert als -.... + + diff --git a/buch/papers/reedsolomon/einleitung.tex b/buch/papers/reedsolomon/einleitung.tex index 3d40db1..2b1d878 100644 --- a/buch/papers/reedsolomon/einleitung.tex +++ b/buch/papers/reedsolomon/einleitung.tex @@ -6,13 +6,13 @@ \section{Einleitung \label{reedsolomon:section:einleitung}} \rhead{Einleitung} -Der Reed-Solomon-Code ist entstaden im ... vom .. um, -das Problem der Daten Übertragung zu lösen. -In deiesem Abschnitt wird möglichst verständlich die mathematische Abfolge, Funktion oder Algorithmus erklärt. +Der Reed-Solomon-Code ist entstanden um, +das Problem der Fehler, bei der Datenübertragung, zu lösen. +In diesem Abschnitt wird möglichst verständlich die mathematische Abfolge, Funktion oder Algorithmus erklärt. Es wird jedoch nicht auf die technische Umsetzung oder Implementierung eingegangen. -Um beim Daten Übertragen fehler zu erkennen könnte man die Daten jeweils doppelt senden, +Um beim Datenübertragen Fehler zu erkennen, könnte man die Daten jeweils doppelt senden, und so jeweilige Fehler zu erkennen. -Doch dies braucht schnell unmengen an Daten, wenn man nach vielen Fehler absichern möchte. +Doch nur schon um weinige Fehler zu erkennen werden überproportional viele Daten doppelt und dreifach gesendet. Der Reed-Solomon-Code macht dies auf eine andere, clevere Weise. diff --git a/buch/papers/reedsolomon/idee.tex b/buch/papers/reedsolomon/idee.tex index 4a7716a..b0a772e 100644 --- a/buch/papers/reedsolomon/idee.tex +++ b/buch/papers/reedsolomon/idee.tex @@ -8,51 +8,65 @@ \rhead{Problemstellung} Das Problem liegt darin Informationen, Zahlen, zu Übertragen und Fehler zu erkennen. -Beim Reed-Solomon-Code kann man nicht nur Fehler erkenen, +Beim Reed-Solomon-Code kann man nicht nur Fehler erkennen, man kann sogar einige Fehler korrigieren. \rhead{Polynom-Ansatz} -Eine Idee ist die Daten, -ein Polynom zu bilden und dieses dann mit bestimmten Punkten überträgt. +Eine Idee ist aus den Daten +ein Polynom zu bilden. +Diese Polynomfunktion bei bestimmten Werten, ausrechnet und diese Punkte dann überträgt. Nehmen wir als beisbiel die Zahlen \textcolor{blue}{2}, \textcolor{blue}{1}, \textcolor{blue}{5}, welche uns dann das Polynom \begin{equation} p(x) = -2x^2 + 1x + 5 +\textcolor{blue}{2}x^2 + \textcolor{blue}{1}x + \textcolor{blue}{5} \label{reedsolomon:equation1} \end{equation} ergeben. -Übertragen werden nun die stellen 1, 2, 3\dots 7 dieses Polynomes. -Grafisch sieht man dies dann im Abbild //TODO -Wenn ein Fehler sich in die Übertragung eingeschlichen hatt, muss der Leser/Empfänger erkennen, welches das Richtige Polynom ist. -Der Leser/Empfänger weiss, mit welchem Grad das Polynom entwickelt wurde. +Übertragen werden nun die Werte an den stellen 1, 2, 3\dots 7 dieses Polynomes. +Grafisch sieht man dies dann in Abbildung % TODO +Wenn ein Fehler sich in die Übertragung eingeschlichen hatt, muss der Leser/Empfänger diesen erkennen und das Polynom rekonstruieren. +Der Leser/Empfänger weiss, den Grad des Polynoms und dessen Werte übermittelt wurden. \subsection{Beispiel} -Für das Beispeil aus der Gleichung \ref{reedsolomon:equation1}, +Für das Beispeil aus der Gleichung \eqref{reedsolomon:equation1}, ist ein Polynome zweiten Grades durch drei Punkte eindeutig bestimmbar. Hat es Fehler in der Übertragunge gegeben, kann man diese erkennen, da alle Punkte, die korrekt sind, auf dem Polynom liegen müssen. Ab wie vielen Fehler ist das Polynom nicht mehr erkennbar beim Übertragen von 7 Punkten? Bei 2 Fehlern kann man noch eindeutig bestimmen, dass das Polynom mit 4 Punkten, gegenüber dem mit 5 Punkten falsch liegt. -Werden es mehr Fehler kann nur erkennt werden das das Polynom nicht stimmt. -Das Orginale Polynom kann aber nicht mehr gefunden werden. -Dabei sollten mehr Übertragungspunkte gegeben werden. +Werden es mehr Fehler kann nur erkennt werden, dass das Polynom nicht stimmt. +Das orginale Polynom kann aber nicht mehr gefunden werden. +Dafür sind mehr übertragene Werte nötig. \section{Fehlerbestimmung \label{reedsolomon:section:Fehlerbestimmmung}} So wird ein Muster indentifiziert, welches genau vorherbestimmen kann, wie gross das Polynom sein muss und wie viele Übertragungspunkte gegeben werden müssen. -Durch ein klein wenig Überlegung ist klar das die anzahl Zahlen (Daten, ab hier verwenden wir das Wort Nutzlast), -die dan Entschlüsselt werden sollen den Grad des Polynoms minus 1 ergeben. +Um zu bestimmen wie viel Fehler erkennt und korriegiert werden können. +Die Anzahl Zahlen (Daten, ab hier verwenden wir das Wort Nutzlast), +die Entschlüsselt werden sollen, brauchen die gleiche Anzahl an Polynomgraden, beginnend bei Grad 0. ( \( k-1 \) ) Für die Anzahl an Übertragungspunkte, muss bestimmt werden wieviel Fehler erkennt und korrigiert werden sollen. -Mit Hilfe der Tabelle.... sieht man das es bei $$t$$ Fehlern und $$k$$ Nutzlast, -für das Übertragen $$k+2t$$ Punkte gegben werden müssen. - -Ein toller Nebeneffekt ist das dadurch auch $$2t$$ Fehler erkannt werden. -um zurück auf unser Beispiel zu kommen, -können von den 7 Übertragungspunkten bis zu $$2t = 2*2 = 4 $$ Punkten falsch liegen -und es wird kein eindeutiges Polynom 2ten Grades erkannt, und somit die Nutzlast Daten als fehlerhaft deklariert. - -Ein Polynom durch Punkt mit Polynom Interpolation zu rekonstruieren ist schwierig und Fehleranfällig. +Mit Hilfe der Tabelle, sieht man das es bei $t$ Fehlern und $k$ Nutzlast Zahlen, +$k+2t$ Punkte übertragen werden müssen. +\begin{center} + \begin{tabular}{ c c c } + \hline + Nutzlas & Fehler & Übertragen \\ + \hline + 3 & 2 & 7 Werte eines Polynoms vom Grad 2 \\ + 4 & 2 & 8 Werte eines Polynoms vom Grad 3 \\ + 3 & 3 & 9 Werte eines Polynoms vom Grad 2 \\ + \hline + $k$ & $t$ & $k+2t$ Werte eines Polynoms vom Grad $k-1$ \\ + \hline + \end{tabular} +\end{center} +Ein toller Nebeneffekt ist das dadurch auch $2t$ Fehler erkannt werden. +Um zurück auf unser Beispiel zu kommen, +können von den 7 Übertragungspunkten bis zu $2t = 2\cdot2 = 4 $ Punkten falsch liegen +und es wird kein eindeutiges Polynom zweiten Grades erkannt, und somit die Nutzlast Daten als fehlerhaft deklariert. +Um aus den Übertragenen Zahlen wieder die Nutzlastzahlen zu bekommen könnte man eine Polynominterpolation anwenden, +doch die Punkte mit Polynominterpolation zu einem Polynom zu rekonstruieren ist schwierig und Fehleranfällig. -- cgit v1.2.1 From 997e5ae44bcb81c81fbbf0c4fa29269ffe93fc24 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Mon, 19 Jul 2021 16:55:45 +0200 Subject: try to add picture --- buch/papers/reedsolomon/idee.tex | 10 +++++- buch/papers/reedsolomon/images/polynom2.tex | 51 +++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 buch/papers/reedsolomon/images/polynom2.tex (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/idee.tex b/buch/papers/reedsolomon/idee.tex index b0a772e..28b65bd 100644 --- a/buch/papers/reedsolomon/idee.tex +++ b/buch/papers/reedsolomon/idee.tex @@ -25,9 +25,17 @@ p(x) \end{equation} ergeben. Übertragen werden nun die Werte an den stellen 1, 2, 3\dots 7 dieses Polynomes. -Grafisch sieht man dies dann in Abbildung % TODO +Grafisch sieht man dies dann in Abbildung Wenn ein Fehler sich in die Übertragung eingeschlichen hatt, muss der Leser/Empfänger diesen erkennen und das Polynom rekonstruieren. Der Leser/Empfänger weiss, den Grad des Polynoms und dessen Werte übermittelt wurden. + +\begin{figure} + \centering + \includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/polynom2.pdf} + \caption{Polynom \eqref{reedsolomon:equation1}} + \label{fig:polynom} +\end{figure} + \subsection{Beispiel} Für das Beispeil aus der Gleichung \eqref{reedsolomon:equation1}, ist ein Polynome zweiten Grades durch drei Punkte eindeutig bestimmbar. diff --git a/buch/papers/reedsolomon/images/polynom2.tex b/buch/papers/reedsolomon/images/polynom2.tex new file mode 100644 index 0000000..be9a65e --- /dev/null +++ b/buch/papers/reedsolomon/images/polynom2.tex @@ -0,0 +1,51 @@ +% polynome2 +%------------------- +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math} +\newcommand{\teiler}{40} +\begin{document} +% Übertragen von den Zahlen +% \textcolor{blue}{2}, \textcolor{blue}{1}, \textcolor{blue}{5} +% als $ p(x) = \textcolor{blue}{2}x^2 + \textcolor{blue}{1}x + \textcolor{blue}{5} $.\newline +% Versende $ (p(1),p(2),...,p(7)) = (\textcolor{green}{8}, +% \textcolor{green}{15}, \textcolor{green}{26}, +% \textcolor{green}{ 41}, \textcolor{green}{60}, +% \textcolor{green}{83}, \textcolor{green}{110})$ + + + \begin{tikzpicture}[>=latex,thick] + \draw[color=blue, line width=1.4pt] + plot[domain=0:8, samples=100] + ({\x},{(2*\x^2+1*\x+5)/\teiler}); + \draw[->] (-0.2,0) -- (8,0) coordinate[label={$x$}]; + \draw[->] (0,-0.2) -- (0,150/\teiler) coordinate[label={right:$p(x)$}]; + \def\punkt#1{ + \fill[color=green] #1 circle[radius=0.08]; + \draw #1 circle[radius=0.07]; + } + \punkt{(1,8/\teiler)} + %\punkt{(2,15/\teiler)} + %\punkt{(3,26/\teiler)} + \punkt{(4,41/\teiler)} + \punkt{(5,60/\teiler)} + \punkt{(6,83/\teiler)} + \punkt{(7,110/\teiler)} + \draw[color=gray,line width=1pt,dashed] + plot[domain=0.5:7, samples=100] + ({\x},{(0.1958*\x^2-1.2875*\x+3.0417)}); + \def\erpunkt#1{ + \fill[color=red] #1 circle[radius=0.08]; + \draw #1 circle[radius=0.07]; + } + \erpunkt{(2,50/\teiler)} + \erpunkt{(3,0.9414)} + + \draw(0,100/\teiler) -- (-0.1,100/\teiler) coordinate[label={left:$100$}]; + \draw(1,0) -- (1,-0.1) coordinate[label={below:$1$}]; + \end{tikzpicture} +\end{document} -- cgit v1.2.1 From faf8fab3819a2b1eeb5529866716d545b52f6285 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Mon, 19 Jul 2021 17:36:11 +0200 Subject: another try --- buch/papers/reedsolomon/experiments/codiert.txt | 96 +++++++++++++++++++++++ buch/papers/reedsolomon/experiments/decodiert.txt | 96 +++++++++++++++++++++++ buch/papers/reedsolomon/experiments/empfangen.txt | 96 +++++++++++++++++++++++ buch/papers/reedsolomon/experiments/f.m | 22 ++++-- buch/papers/reedsolomon/experiments/fehler.txt | 96 +++++++++++++++++++++++ buch/papers/reedsolomon/experiments/locator.txt | 96 +++++++++++++++++++++++ buch/papers/reedsolomon/experiments/signal.txt | 96 +++++++++++++++++++++++ buch/papers/reedsolomon/experiments/syndrom.txt | 96 +++++++++++++++++++++++ buch/papers/reedsolomon/idee.tex | 7 +- buch/papers/reedsolomon/images/polynom2.tex | 32 ++++---- buch/papers/reedsolomon/packages.tex | 2 + 11 files changed, 712 insertions(+), 23 deletions(-) create mode 100644 buch/papers/reedsolomon/experiments/codiert.txt create mode 100644 buch/papers/reedsolomon/experiments/decodiert.txt create mode 100644 buch/papers/reedsolomon/experiments/empfangen.txt create mode 100644 buch/papers/reedsolomon/experiments/fehler.txt create mode 100644 buch/papers/reedsolomon/experiments/locator.txt create mode 100644 buch/papers/reedsolomon/experiments/signal.txt create mode 100644 buch/papers/reedsolomon/experiments/syndrom.txt (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/experiments/codiert.txt b/buch/papers/reedsolomon/experiments/codiert.txt new file mode 100644 index 0000000..a57fb3e --- /dev/null +++ b/buch/papers/reedsolomon/experiments/codiert.txt @@ -0,0 +1,96 @@ +305 +114.502535214877 +86.2532974498148 +10.2450106137816 +68.1373455525487 +12.2281691909479 +3.18633753309102 +20.0196562371296 +12.2767246322969 +11.7216140392957 +24.8752690882777 +16.2978466490127 +23.2518118214845 +16.5845482358975 +15.6140674930647 +33.396205039034 +20.7846096908265 +19.3528753492232 +16.3850575123207 +20.9502842499826 +17.064465004608 +11.7252100463969 +31.1005540675575 +29.4336965143315 +26.6270539113887 +18.0164813754079 +24.7444243500799 +7.51007272621331 +4.06984153366859 +27.215173252412 +17.2339815787965 +23.5539874432174 +22.2710574513201 +14.7961619823174 +25.5530773949688 +33.4185813747547 +11.5478676394508 +21.0691619228239 +28.7948800016184 +12.3795084046074 +17.0082930449459 +19.7473571196866 +18.4490385219626 +12.2195365467659 +7.58568158110485 +6.02300839250873 +14.565530706253 +3.78959213976527 +21 +3.78959213976527 +14.565530706253 +6.02300839250873 +7.58568158110485 +12.2195365467659 +18.4490385219626 +19.7473571196866 +17.0082930449459 +12.3795084046074 +28.7948800016184 +21.0691619228239 +11.5478676394508 +33.4185813747547 +25.5530773949688 +14.7961619823174 +22.2710574513201 +23.5539874432174 +17.2339815787965 +27.215173252412 +4.06984153366859 +7.51007272621331 +24.7444243500799 +18.0164813754079 +26.6270539113887 +29.4336965143315 +31.1005540675575 +11.7252100463969 +17.064465004608 +20.9502842499826 +16.3850575123207 +19.3528753492232 +20.7846096908265 +33.396205039034 +15.6140674930647 +16.5845482358975 +23.2518118214845 +16.2978466490127 +24.8752690882777 +11.7216140392957 +12.2767246322969 +20.0196562371296 +3.18633753309102 +12.2281691909479 +68.1373455525487 +10.2450106137816 +86.2532974498148 +114.502535214877 diff --git a/buch/papers/reedsolomon/experiments/decodiert.txt b/buch/papers/reedsolomon/experiments/decodiert.txt new file mode 100644 index 0000000..5295e2a --- /dev/null +++ b/buch/papers/reedsolomon/experiments/decodiert.txt @@ -0,0 +1,96 @@ +5.05208333333333 +4.02603841132848 +3.9866906905523 +2.98928833660435 +5.01944413899123 +5.01851886476838 +7.97795274966527 +7.9523893732277 +5.97396514457618 +4.00519657776884 +8.0006276895628 +4.97630831658918 +3.97918030102376 +9.01298821331865 +9.03553822210758 +6.02435577439403 +6.005269315244 +6.00739475784899 +2.02214193521707 +3.02175993431401 +5.00158984940366 +1.98176205240977 +7.97728830439693 +1.98491220960989 +1.98958333333333 +1.98491220960989 +1.97728880273589 +3.98152108172961 +3.00171929847136 +9.02175649397959 +4.02211963444795 +2.00740795901169 +9.00524899981178 +10.0243555198185 +4.03562322003676 +1.01362103081199 +2.97918487756672 +3.97630844288113 +6.00063199465927 +3.00522617023784 +5.97396514457618 +6.95239288504068 +1.97810392013073 +1.01862378300238 +3.0194483612015 +2.98928833660435 +3.9866906905523 +5.02603060999077 +1.05208333333333 +3.02605136876764 +7.9866590265379 +0.0177592928994289 +9.01944131204563 +7.01851125156932 +4.97798278395618 +5.95239757681758 +1.97397894668217 +5.00517880987882 +10.0006251063956 +4.97630831658918 +4.97917756274958 +2.01326692505463 +5.0355927170407 +6.02435577439403 +0.0275599094902566 +0.0115837187254189 +0.0258777610142382 +0.0224618032819705 +0.0441059468994403 +0.0474504002669344 +0.0227694695500614 +0.0271436638090525 +0.0104166666666661 +0.027143663809052 +0.0227694695500605 +0.0474504002669342 +0.04410594689944 +0.0224618032819704 +0.0258777610142386 +0.0115837187254188 +0.027559909490256 +0.0245124379481791 +0.0499782237195213 +0.0401432022864264 +0.023292374765623 +0.0237974288564093 +0.0143895905726623 +0.0271745729691686 +0.0275599094902561 +0.051550167218498 +0.0358255004834538 +0.0247005083663728 +0.0210194725405181 +0.0177592928994299 +0.0261327016093146 +0.0314909067039408 diff --git a/buch/papers/reedsolomon/experiments/empfangen.txt b/buch/papers/reedsolomon/experiments/empfangen.txt new file mode 100644 index 0000000..326dd83 --- /dev/null +++ b/buch/papers/reedsolomon/experiments/empfangen.txt @@ -0,0 +1,96 @@ +305 +114.502535214877 +86.2532974498148 +10.2450106137816 +68.1373455525487 +12.2281691909479 +4.75208293424194 +20.0196562371296 +12.2767246322969 +11.7216140392957 +24.8752690882777 +16.2978466490127 +23.2518118214845 +16.5845482358975 +15.6140674930647 +33.396205039034 +20.7846096908265 +19.3528753492232 +16.3850575123207 +20.9502842499826 +19.0535931901409 +11.7252100463969 +31.1005540675575 +29.4336965143315 +26.6270539113887 +18.0164813754079 +24.7444243500799 +7.51007272621331 +4.06984153366859 +27.215173252412 +17.2339815787965 +23.5539874432174 +22.2710574513201 +14.7961619823174 +25.5530773949688 +33.4185813747547 +11.5478676394508 +21.0691619228239 +28.7948800016184 +12.3795084046074 +17.0082930449459 +19.7473571196866 +18.4490385219626 +12.2195365467659 +7.58568158110485 +6.02300839250873 +14.565530706253 +3.78959213976527 +21 +3.78959213976527 +14.565530706253 +6.02300839250873 +7.58568158110485 +12.2195365467659 +18.4490385219626 +19.7473571196866 +17.0082930449459 +12.3795084046074 +28.7948800016184 +21.0691619228239 +11.5478676394508 +33.4185813747547 +25.5530773949688 +14.7961619823174 +22.2710574513201 +23.5539874432174 +17.2339815787965 +27.215173252412 +4.06984153366859 +7.51007272621331 +24.7444243500799 +18.0164813754079 +26.6270539113887 +29.4336965143315 +30.3915028428898 +11.7252100463969 +17.064465004608 +20.9502842499826 +16.3850575123207 +19.3528753492232 +20.7846096908265 +33.396205039034 +15.6140674930647 +16.5845482358975 +23.2518118214845 +16.2978466490127 +24.8752690882777 +11.7216140392957 +12.2767246322969 +20.0196562371296 +3.18633753309102 +12.2281691909479 +68.1373455525487 +10.2450106137816 +86.2532974498148 +114.502535214877 diff --git a/buch/papers/reedsolomon/experiments/f.m b/buch/papers/reedsolomon/experiments/f.m index 6bdc741..5e4da85 100644 --- a/buch/papers/reedsolomon/experiments/f.m +++ b/buch/papers/reedsolomon/experiments/f.m @@ -1,8 +1,8 @@ -# -# f.m -- Reed-Solomon-Visualisierung mit FFT -# -# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule -# +% +% f.m -- Reed-Solomon-Visualisierung mit FFT +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule + N = 64; b = 32; l = N + b; @@ -59,3 +59,15 @@ plot(locator); xlim([1, l]); title("Locator"); pause() + +writematrix(abs(signal), 'signal.txt') +writematrix(abs(codiert), 'codiert.txt') +writematrix(fehler, 'fehler.txt') +writematrix(abs(empfangen), 'empfangen.txt') +writematrix(abs(decodiert), 'decodiert.txt') +writematrix(abs(syndrom), 'syndrom.txt') +writematrix(locator, 'locator.txt') + + + + diff --git a/buch/papers/reedsolomon/experiments/fehler.txt b/buch/papers/reedsolomon/experiments/fehler.txt new file mode 100644 index 0000000..b8f9afb --- /dev/null +++ b/buch/papers/reedsolomon/experiments/fehler.txt @@ -0,0 +1,96 @@ +0 +0 +0 +0 +0 +0 +2 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +2 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 diff --git a/buch/papers/reedsolomon/experiments/locator.txt b/buch/papers/reedsolomon/experiments/locator.txt new file mode 100644 index 0000000..421d36e --- /dev/null +++ b/buch/papers/reedsolomon/experiments/locator.txt @@ -0,0 +1,96 @@ +0.0301224340566959 +0.141653026854878 +0.138226631799375 +0.0339903276086926 +0.310585462557496 +0.551427312631386 +0.628514858396816 +0.511023862515591 +0.275861355940448 +0.0502396354182231 +0.0901855025475772 +0.110759344849757 +0.0684618905062958 +0.0362855426992255 +0.0697096919781522 +0.109288539370249 +0.0923187999496619 +0.0512198536768151 +0.274192386987786 +0.513496149536541 +0.633154426602464 +0.553283743533939 +0.307840573214511 +0.0341664350328389 +0.140270857956999 +0.138527177682829 +0.0296375477361526 +0.0816962563186064 +0.0944383203811072 +0.0263932110686224 +0.058588134840207 +0.0737117341600011 +0.0239973937701886 +0.0464215468420024 +0.0616218854220982 +0.0221963086695035 +0.0390764778127614 +0.0537637218396927 +0.0208333333333355 +0.0343107696069015 +0.0483441215964522 +0.0198077862118787 +0.0311207395968709 +0.0444955089373439 +0.0190533549944134 +0.0290049795038704 +0.0417536642697542 +0.0185261550443044 +0.0277059929762204 +0.0398606084144781 +0.0181978813094801 +0.0271098219177536 +0.0386836665079658 +0.018051861104682 +0.0272138992557153 +0.0381891287148298 +0.0180809085252426 +0.0281418959420076 +0.0384596362516644 +0.0182864418432244 +0.0302250788423177 +0.0397874837986374 +0.0186786556701704 +0.0342489348284176 +0.0429932815348636 +0.0192777878591794 +0.0422808966932026 +0.0506815964680558 +0.0201167847752232 +0.0615048274405276 +0.074495389450843 +0.0212460545964937 +0.142602265816219 +0.273502052865438 +0.325309673287598 +0.272705389655347 +0.149074257381343 +0.0247199397628717 +0.0680137859566989 +0.0753882708734869 +0.0273637831604916 +0.0407867704453288 +0.0632964886441987 +0.0309749128751131 +0.0315202035072016 +0.0627625211892194 +0.0360843918243526 +0.0279492055149482 +0.0677921493367224 +0.0437167157553051 +0.0270640150996341 +0.0783380025231665 +0.0561293738314322 +0.0278742033265804 +0.0981443889498686 +0.0794543457386637 diff --git a/buch/papers/reedsolomon/experiments/signal.txt b/buch/papers/reedsolomon/experiments/signal.txt new file mode 100644 index 0000000..202dd02 --- /dev/null +++ b/buch/papers/reedsolomon/experiments/signal.txt @@ -0,0 +1,96 @@ +5 +4 +4 +3 +5 +5 +8 +8 +6 +4 +8 +5 +4 +9 +9 +6 +6 +6 +2 +3 +5 +2 +8 +2 +2 +2 +2 +4 +3 +9 +4 +2 +9 +10 +4 +1 +3 +4 +6 +3 +6 +7 +2 +1 +3 +3 +4 +5 +1 +3 +8 +0 +9 +7 +5 +6 +2 +5 +10 +5 +5 +2 +5 +6 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 diff --git a/buch/papers/reedsolomon/experiments/syndrom.txt b/buch/papers/reedsolomon/experiments/syndrom.txt new file mode 100644 index 0000000..59b9dc4 --- /dev/null +++ b/buch/papers/reedsolomon/experiments/syndrom.txt @@ -0,0 +1,96 @@ +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0.0275599094902566 +0.0115837187254189 +0.0258777610142382 +0.0224618032819705 +0.0441059468994403 +0.0474504002669344 +0.0227694695500614 +0.0271436638090525 +0.0104166666666661 +0.027143663809052 +0.0227694695500605 +0.0474504002669342 +0.04410594689944 +0.0224618032819704 +0.0258777610142386 +0.0115837187254188 +0.027559909490256 +0.0245124379481791 +0.0499782237195213 +0.0401432022864264 +0.023292374765623 +0.0237974288564093 +0.0143895905726623 +0.0271745729691686 +0.0275599094902561 +0.051550167218498 +0.0358255004834538 +0.0247005083663728 +0.0210194725405181 +0.0177592928994299 +0.0261327016093146 +0.0314909067039408 diff --git a/buch/papers/reedsolomon/idee.tex b/buch/papers/reedsolomon/idee.tex index 28b65bd..5e91559 100644 --- a/buch/papers/reedsolomon/idee.tex +++ b/buch/papers/reedsolomon/idee.tex @@ -31,7 +31,8 @@ Der Leser/Empfänger weiss, den Grad des Polynoms und dessen Werte übermittelt \begin{figure} \centering - \includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/polynom2.pdf} + %\includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/polynom2} + %\input{papers/reedsolomon/images/polynom2.tex} \caption{Polynom \eqref{reedsolomon:equation1}} \label{fig:polynom} \end{figure} @@ -43,7 +44,7 @@ Hat es Fehler in der Übertragunge gegeben, kann man diese erkennen, da alle Punkte, die korrekt sind, auf dem Polynom liegen müssen. Ab wie vielen Fehler ist das Polynom nicht mehr erkennbar beim Übertragen von 7 Punkten? Bei 2 Fehlern kann man noch eindeutig bestimmen, dass das Polynom mit 4 Punkten, -gegenüber dem mit 5 Punkten falsch liegt. +gegenüber dem mit 5 Punkten falsch liegt.\ref{fig:polynom} Werden es mehr Fehler kann nur erkennt werden, dass das Polynom nicht stimmt. Das orginale Polynom kann aber nicht mehr gefunden werden. Dafür sind mehr übertragene Werte nötig. @@ -58,6 +59,7 @@ die Entschlüsselt werden sollen, brauchen die gleiche Anzahl an Polynomgraden, Für die Anzahl an Übertragungspunkte, muss bestimmt werden wieviel Fehler erkennt und korrigiert werden sollen. Mit Hilfe der Tabelle, sieht man das es bei $t$ Fehlern und $k$ Nutzlast Zahlen, $k+2t$ Punkte übertragen werden müssen. + \begin{center} \begin{tabular}{ c c c } \hline @@ -71,6 +73,7 @@ $k+2t$ Punkte übertragen werden müssen. \hline \end{tabular} \end{center} + Ein toller Nebeneffekt ist das dadurch auch $2t$ Fehler erkannt werden. Um zurück auf unser Beispiel zu kommen, können von den 7 Übertragungspunkten bis zu $2t = 2\cdot2 = 4 $ Punkten falsch liegen diff --git a/buch/papers/reedsolomon/images/polynom2.tex b/buch/papers/reedsolomon/images/polynom2.tex index be9a65e..4fdfc81 100644 --- a/buch/papers/reedsolomon/images/polynom2.tex +++ b/buch/papers/reedsolomon/images/polynom2.tex @@ -1,21 +1,21 @@ % polynome2 %------------------- -\documentclass[tikz]{standalone} -\usepackage{amsmath} -\usepackage{times} -\usepackage{txfonts} -\usepackage{pgfplots} -\usepackage{csvsimple} -\usetikzlibrary{arrows,intersections,math} +%\documentclass[tikz]{standalone} +%\usepackage{amsmath} +%\usepackage{times} +%\usepackage{txfonts} +%\usepackage{pgfplots} +%\usepackage{csvsimple} +%\usetikzlibrary{arrows,intersections,math} \newcommand{\teiler}{40} -\begin{document} -% Übertragen von den Zahlen -% \textcolor{blue}{2}, \textcolor{blue}{1}, \textcolor{blue}{5} -% als $ p(x) = \textcolor{blue}{2}x^2 + \textcolor{blue}{1}x + \textcolor{blue}{5} $.\newline -% Versende $ (p(1),p(2),...,p(7)) = (\textcolor{green}{8}, -% \textcolor{green}{15}, \textcolor{green}{26}, -% \textcolor{green}{ 41}, \textcolor{green}{60}, -% \textcolor{green}{83}, \textcolor{green}{110})$ +%\begin{document} + Übertragen von den Zahlen + \textcolor{blue}{2}, \textcolor{blue}{1}, \textcolor{blue}{5} + als $ p(x) = \textcolor{blue}{2}x^2 + \textcolor{blue}{1}x + \textcolor{blue}{5} $.\newline + Versende $ (p(1),p(2),...,p(7)) = (\textcolor{green}{8}, + \textcolor{green}{15}, \textcolor{green}{26}, + \textcolor{green}{ 41}, \textcolor{green}{60}, + \textcolor{green}{83}, \textcolor{green}{110})$ \begin{tikzpicture}[>=latex,thick] @@ -48,4 +48,4 @@ \draw(0,100/\teiler) -- (-0.1,100/\teiler) coordinate[label={left:$100$}]; \draw(1,0) -- (1,-0.1) coordinate[label={below:$1$}]; \end{tikzpicture} -\end{document} +%\end{document} diff --git a/buch/papers/reedsolomon/packages.tex b/buch/papers/reedsolomon/packages.tex index 3643731..4b1ee68 100644 --- a/buch/papers/reedsolomon/packages.tex +++ b/buch/papers/reedsolomon/packages.tex @@ -8,3 +8,5 @@ % following example %\usepackage{packagename} +\usepackage{pgfplots} + -- cgit v1.2.1 From 1a539e1764591e3daf7a254a038f956209e7f942 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Mon, 19 Jul 2021 17:46:05 +0200 Subject: minor changes --- buch/papers/reedsolomon/idee.tex | 2 +- buch/papers/reedsolomon/main.tex | 2 +- buch/papers/reedsolomon/teil2.tex | 40 --------------------------------------- 3 files changed, 2 insertions(+), 42 deletions(-) delete mode 100644 buch/papers/reedsolomon/teil2.tex (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/idee.tex b/buch/papers/reedsolomon/idee.tex index 5e91559..08864cf 100644 --- a/buch/papers/reedsolomon/idee.tex +++ b/buch/papers/reedsolomon/idee.tex @@ -33,7 +33,7 @@ Der Leser/Empfänger weiss, den Grad des Polynoms und dessen Werte übermittelt \centering %\includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/polynom2} %\input{papers/reedsolomon/images/polynom2.tex} - \caption{Polynom \eqref{reedsolomon:equation1}} + \caption{Polynom } \label{fig:polynom} \end{figure} diff --git a/buch/papers/reedsolomon/main.tex b/buch/papers/reedsolomon/main.tex index 6bd04f2..18994dc 100644 --- a/buch/papers/reedsolomon/main.tex +++ b/buch/papers/reedsolomon/main.tex @@ -30,7 +30,7 @@ Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren % Joshua \input{papers/reedsolomon/einleitung.tex} \input{papers/reedsolomon/idee.tex} -\input{papers/reedsolomon/teil2.tex} +%\input{papers/reedsolomon/teil2.tex} \input{papers/reedsolomon/dtf.tex} % Michael diff --git a/buch/papers/reedsolomon/teil2.tex b/buch/papers/reedsolomon/teil2.tex deleted file mode 100644 index b2adc9f..0000000 --- a/buch/papers/reedsolomon/teil2.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil2.tex -- Beispiel-File für teil2 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 2 -\label{reedsolomon:section:teil2}} -\rhead{Teil 2} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{reedsolomon:subsection:bonorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - -- cgit v1.2.1 From bb1a2ba9187459d0304e2fa073306c333ae5f236 Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Mon, 19 Jul 2021 20:47:33 +0200 Subject: final pictures added, sources updated --- buch/papers/reedsolomon/anwendungen.tex | 28 ++++++++++- buch/papers/reedsolomon/images/designer_qrcode.png | Bin 0 -> 163253 bytes .../images/designer_qrcode_ohnelogo.png | Bin 0 -> 133792 bytes buch/papers/reedsolomon/main.tex | 6 +++ buch/papers/reedsolomon/references.bib | 53 +++++++++++++++++++++ 5 files changed, 85 insertions(+), 2 deletions(-) create mode 100644 buch/papers/reedsolomon/images/designer_qrcode.png create mode 100644 buch/papers/reedsolomon/images/designer_qrcode_ohnelogo.png (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/anwendungen.tex b/buch/papers/reedsolomon/anwendungen.tex index 4b30ec9..c03b1a4 100644 --- a/buch/papers/reedsolomon/anwendungen.tex +++ b/buch/papers/reedsolomon/anwendungen.tex @@ -113,7 +113,7 @@ Die Digital Video Disc funktioniert nach dem selben Konzept mit grösseren Codeb \end{figure} \subsection{QR-Codes} -Quick Response Codes oder auch QR-Codes funktionieren nach einem sehr ähnlichen Prinzip wie in unserem Beispiel der Abschnitte \ref{reedsolomon:section:codebsp} - \ref{reedsolomon:section:rekonstruktion} nur das QR-Codes in einem $\mathbb{F}_{256}$ Körper arbeiten. Die Physische Grösse eines Codes ist stark abhängig von der Grösse der Codierung sowie dem Fehlerkorrektur-Level. Es ist so auf dem ersten Blick nicht ersichtlich, wie viel Nutzinformationen ein Qr-Code enthält. Die QR-Codes in Abbildung \ref{fig:qr} zeigen jeweils die Gleiche Information mit unterschiedlichem Fehlerkorrektur-Level. Codes mit einem höheren Korrektur-Level können auch für Desingner-Codes Zweckentfremdet werden. Dabei wird z.B. das Firmenlogo oder einen Schriftzug über den Qr-Code gelegt, ohne das die Funktion des Codes beeinträchtigt wird. Ein Beispiel dazu ist ebenfalls unter Abbildung \ref{fig:qr} \textcolor{red}{(noch nicht erstellt + beschreibung anpassen)} zu finden. +Quick Response Codes oder auch QR-Codes funktionieren nach einem sehr ähnlichen Prinzip wie in unserem Beispiel der Abschnitte \ref{reedsolomon:section:codebsp} - \ref{reedsolomon:section:rekonstruktion} nur das QR-Codes in einem $\mathbb{F}_{256}$ Körper arbeiten. Die Physische Grösse eines Codes ist stark abhängig von der Grösse der Codierung sowie dem Fehlerkorrektur-Level. Es ist so auf dem ersten Blick nicht ersichtlich, wie viel Nutzinformationen ein Qr-Code enthält. Die QR-Codes in Abbildung \ref{fig:qr} zeigen jeweils die Gleiche Information mit unterschiedlichem Fehlerkorrektur-Level. Codes mit einem höheren Korrektur-Level können auch für Designer-Codes Zweckentfremdet werden. Dabei wird z.B. das Firmenlogo oder einen Schriftzug über den Qr-Code gelegt, ohne das die Funktion des Codes beeinträchtigt wird. Ein Beispiel dazu ist unter Abbildung \ref{fig:designqr} zu finden. % @@ -130,6 +130,30 @@ Quick Response Codes oder auch QR-Codes funktionieren nach einem sehr ähnlichen \subfigure[]{ \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/qrcode_l} } - \caption{(a) High Level Code, (b) Low Level Code} +% \subfigure[]{ +% \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/designer_qrcode_ohnelogo} +% } +% \subfigure[]{ +% \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/designer_qrcode} +% } + \caption{Anhand der grösse würde man darauf schliessen, dass bei (a) mehr Informationen Codiert sind als bei (b). Tatsächlich aber beinhalten beide Codes die gleiche Information. Das liegt daran, da die Fehlerkorrekturfähigkeit von QR-Codes sich in insgesamt vier Levels aufteilen lassen. Der höchste Fehlerkorrektur-Level, der bei (a) angewendet wurde, ist in der Lage, bis zu 30\% der Daten wiederherzustellen. Der kleinste Level schafft etwa 7\%, der in (b) veranschaulicht wird. Da die Grösse also nichts über die Menge an Daten aussagt, könnte es sich bei (a) auch um einen Code mit viel Nutzdaten und kleinem Fehlerkorrektur-Level handeln. Der Unterschied ist von Auge nicht sichtbar.} \label{fig:qr} \end{figure} + +\begin{figure} + \centering +% \subfigure[]{ +% \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/qrcode_h} +% } +% \subfigure[]{ +% \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/qrcode_l} +% } + \subfigure[]{ + \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/designer_qrcode_ohnelogo} + } + \subfigure[]{ + \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/designer_qrcode} + } + \caption{Während (a) noch ein unveränderter QR-Code repräsentiert, handelt es sich bei (b) nun um einen Designer-QR-Code. Beide Codes verfügen über einen mittleren Fehlerkorrektur-Level von theoretisch 15\%. Da bei (b) jetzt einen Teil des Codes durch ein Logo verdeckt wird, schränkt sich dadurch die Fehlerkorrekturfähigkeit je nach grösse des verdeckten Teils mehr oder weniger stark ein. Unser Designer-Code in (b) ist nur noch in der Lage etwa 9\% des Codes zu rekonstruieren.} + \label{fig:designqr} +\end{figure} \ No newline at end of file diff --git a/buch/papers/reedsolomon/images/designer_qrcode.png b/buch/papers/reedsolomon/images/designer_qrcode.png new file mode 100644 index 0000000..a9e0505 Binary files /dev/null and b/buch/papers/reedsolomon/images/designer_qrcode.png differ diff --git a/buch/papers/reedsolomon/images/designer_qrcode_ohnelogo.png b/buch/papers/reedsolomon/images/designer_qrcode_ohnelogo.png new file mode 100644 index 0000000..fe4251d Binary files /dev/null and b/buch/papers/reedsolomon/images/designer_qrcode_ohnelogo.png differ diff --git a/buch/papers/reedsolomon/main.tex b/buch/papers/reedsolomon/main.tex index 6bd04f2..a400508 100644 --- a/buch/papers/reedsolomon/main.tex +++ b/buch/papers/reedsolomon/main.tex @@ -45,6 +45,12 @@ Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren \nocite{reedsolomon:weitz} \nocite{reedsolomon:informationkommunikation} +\nocite{reedsolomon:voyager_programm} +\nocite{reedsolomon:voyager} +\nocite{reedsolomon:cd_wiki} +\nocite{reedsolomon:cd} +\nocite{reedsolomon:qr_wiki} +\nocite{reedsolomon:qr} %\nocite{reedsolomon:mendezmueller} \printbibliography[heading=subbibliography] diff --git a/buch/papers/reedsolomon/references.bib b/buch/papers/reedsolomon/references.bib index 731bd35..e0a75a8 100644 --- a/buch/papers/reedsolomon/references.bib +++ b/buch/papers/reedsolomon/references.bib @@ -23,3 +23,56 @@ volume = {1} } +@online{reedsolomon:voyager_programm, + title = {Information über das Voyager Programm}, + url = {https://de.wikipedia.org/wiki/Voyager-Programm}, + date = {2021-07-19}, + year = {2021}, + month = {7}, + day = {19} +} + +@online{reedsolomon:voyager, + title = {Bild der Voyager Raumsonde}, + url = {https://en.wikipedia.org/wiki/Voyager_1}, + date = {2021-07-19}, + year = {2021}, + month = {7}, + day = {19} +} + +@online{reedsolomon:cd_wiki, + title = {Alles über die CD}, + url = {https://de.wikipedia.org/wiki/Compact_Disc}, + date = {2021-07-19}, + year = {2021}, + month = {7}, + day = {19} +} + +@online{reedsolomon:cd, + title = {Funktionsweise des QR-Codes}, + url = {https://www.stickpng.com/img/electronics/compact-discs/stack-compact-disc}, + date = {2021-07-19}, + year = {2021}, + month = {7}, + day = {19} +} + +@online{reedsolomon:qr_wiki, + title = {Funktionsweise des QR-Codes}, + url = {https://de.wikipedia.org/wiki/QR-Code}, + date = {2021-07-19}, + year = {2021}, + month = {7}, + day = {19} +} + +@online{reedsolomon:qr, + title = {Tool zum erstellen von QR-Codes}, + url = {https://www.qrcode-generator.ch}, + date = {2021-07-19}, + year = {2021}, + month = {7}, + day = {19} +} \ No newline at end of file -- cgit v1.2.1 From a1284996aea194e255d8bd292874080bf2f3cc44 Mon Sep 17 00:00:00 2001 From: tim30b Date: Mon, 19 Jul 2021 23:27:52 +0200 Subject: Write schoenflies und minor fixes --- buch/papers/punktgruppen/crystals.tex | 28 ++++++++++++++++++++-------- buch/papers/punktgruppen/piezo.tex | 31 +++++++++++++++++++------------ 2 files changed, 39 insertions(+), 20 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index a124442..e8dfa76 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -28,6 +28,8 @@ erreicht werden sofern $\{n_1,n_2,n_3\} \in \mathbb{Z}$ sind. Sind die Vektoren $\vec{a}$ , $\vec{b}$ , $\vec{c}$ gegeben, ist ein Kristallgitter eindeutig beschrieben, weswegen sie auch als Grundvektoren bekannt sind. +%TODOO fix Q define without vector symb. -> ask naoki + \subsection{Translationssymmetrie} Da sich das ganze Kristallgitter wiederholt, wiederholen sich auch dessen Eigenschaften periodisch mit den Grundvektoren. Sollte man sich auf einem Gitterpunkt in einem Kristall aufhalten, ist es unmöglich zu wissen, auf welchem Gitterpunkt man sich befindet, @@ -104,7 +106,7 @@ ein. \begin{figure} \centering \includegraphics[]{papers/punktgruppen/figures/projections} - \caption{Kristallklassen mit zugehöriger Schönfliesnotation} + \caption{Kristallklassen mit zugehörigem Schönflies-Symbol} \label{fig:punktgruppen:Kristallkassen} \end{figure} @@ -112,17 +114,27 @@ ein. Vorgehend wurde gezeigt, dass in einem zweidimensionalen Kristallgitter nicht alle Symmetrien möglich sind. Mit weiteren ähnlichen Überlegungen kann gezeigt werden, dass Kristalle im dreidimensionalen Raum nur auf genau 32 Arten rein punktsymmetrische -\footnote{Werden translationssymmetrien auch mit gezählt beschreibt man die 230 Raumgruppen} Symmetriegruppen bilden können. Diese 32 möglichen Symmetriegruppen scheinen durchaus relevant zu sein, denn sie werden unter anderem als Kristallklassen bezeichnet. -Eine mögliche Art, die Klassen zu benennen ist nach dem Mathematiker Arthur Moritz Schönflies, -welcher sich mit der Klasifizierung dieser Symmetrien auseinandergesetzt hat. -Auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} sind die möglichen Punktsymmetrien mit deren Schönfliesnotation aufgelistet. -Als Darstellungsmethode wurde die stereographische Projektion gewählt, wobei die gestrichelten Klassen aus Gründen der Überschaubarkeit nicht im Detail gezeichnet wurden. +Die 32 möglichen Kristallklassen sind auf Abbildung \ref{fig:punktgruppen:Kristallkassen} zu sehen. +Die Darstellung von dreidimensionalen Punktsymmetrien wurde mit der stereographischen Projektion +\footnote{Die Markierten Kreise/Kreuze repräsentieren Punkte auf einer Kugel. +Die Orte der Symbole stehen für einen Schattenwurf eines Punktes auf dem Boden, auf welcher sich die Kugel befindet. +Wobei die Lichtquelle am Nord/Südpol liegt.} +ermöglicht, +wobei die gestrichelten Klassen aus Gründen der Überschaubarkeit nicht im Detail gezeichnet wurden. + + +\subsubsection{Schönflies-Symbilok} +Jede der 32 Kristallklassen auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} ist mit ihrem Schöönflies-Symbol bezeichnet. +Die Schönflies-Symbolik stammt von dem Mathematiker Arthur Moritz Schönflies, +welcher sich unter anderem mit der Klasifizierung der Kristallklassen auseinandergesetzt hat. +Er hat Untergruppen gebildet, welche als Grossbuchstaben in Abbildung \ref{fig:punktgruppen:Kristallkassen} zu sehen sind. +Anschaulich ist als Beispiel die Drehgruppe \[C\]. +Die Elemente einer Untergruppe werden erst mit ihren Zusätzen eindeutig wie \[C_{3i}\], +was für eine dreifache Rotationssymmetrie mit einem Inversionszentrum steht. -\subsubsection{Schönflies Notation} -TODO diff --git a/buch/papers/punktgruppen/piezo.tex b/buch/papers/punktgruppen/piezo.tex index 3c3957b..feac9e5 100644 --- a/buch/papers/punktgruppen/piezo.tex +++ b/buch/papers/punktgruppen/piezo.tex @@ -39,22 +39,30 @@ Die Polarisation resultiert über eine gesamte Oberfläche eines Kristalles, ent Wir wollen dazu die verschiedenen Kristallstrukturen auf Abbildung \ref{fig:punktgruppen:atomPiezo} diskutieren. In Abbildung \ref{fig:punktgruppen:atomPiezo} gilt für alle Strukturen, dass rote Kreise Positive Ionen und blaue negative Ionen repräsentieren. %liste oder anderes format?.. -Struktur \subref{fig:punktgruppen:atoms-piezo} zeigt ein piezoelektrisches Material in Ruhe. Struktur \subref{fig:punktgruppen:atoms-piezo-fv} ist dasselbe Kristallgitter, jedoch wird es senkrecht belastet. +Struktur \subref{fig:punktgruppen:atoms-piezo} zeigt ein piezoelektrisches Material in Ruhe. +Struktur \subref{fig:punktgruppen:atoms-piezo-fv} ist dasselbe Kristallgitter, jedoch wird es senkrecht belastet. Eingezeichnet ist auch das elektrische Feld, welches entsteht, weil mitlleren Ladungsträger weiter auseinander gerdrückt werden. -Als hilfe zur Vorstellung kann man \subref{fig:punktgruppen:atoms-piezo-fv} zwischen zwei leitende Platten setzen, so wird ersichtlich, dass mit wachsendem Druck eine negative Ladung an die rechte Platte gedrückt wird, während sich die positiven Ionen weiter entfernen. +Als hilfe zur Vorstellung kann man \subref{fig:punktgruppen:atoms-piezo-fv} zwischen zwei leitende Platten setzen, so wird ersichtlich, +dass mit wachsendem Druck eine negative Ladung an die rechte Platte gedrückt wird, während sich die positiven Ionen weiter entfernen. \subref{fig:punktgruppen:atoms-grid} ist nicht piezoelektrisch. Dies wird ersichtlich, wenn man \subref{fig:punktgruppen:atoms-grid} unterdruck setzt und sich die Struktur zu \subref{fig:punktgruppen:atoms-grid-f} verformt. -Setzt man \subref{fig:punktgruppen:atoms-grid-f} gedanklich auch zwischen zwei leitende Platten scheint es als würden rechts mehr Positive Ionen in die Platte gedrückt werden und links umgekehrt. -Dies ist aber nicht mehr der Fall, wenn der Kristall nach oben und periodisch wiederholt. +Setzt man \subref{fig:punktgruppen:atoms-grid-f} gedanklich auch zwischen zwei leitende Platten, +scheint es als würden rechts mehr Positive Ionen in die Platte gedrückt werden und links umgekehrt. +Dies ist aber nicht mehr der Fall, wenn die Struktur sich nach oben und unten periodisch wiederholt. Struktur \subref{fig:punktgruppen:atoms-piezo-fh} zeigt \subref{fig:punktgruppen:atoms-piezo} in unter horizontaler Belastung. -Was in zwischen $(b)$ und $(c)$ zu beobachten ist, ist dass das entstandene Ladungsdifferenz orthogonal zu der angelegten Kraft entsteht, im Gegensatz zu $(b)$. -Daraus kann man schlissen, dass $(a)$ keine Rotationssymmetrie von $90^\circ$ besitzen kann, weil die Eigenschaften ändern bei einer $90^\circ$ Drehung. -Das Fehlen dieser Rotationssymmetrie kann mit betrachten von $(a)$ bestätigt werden. +Was zwischen \subref{fig:punktgruppen:atoms-piezo-fv} und \subref{fig:punktgruppen:atoms-piezo-fh} zu beobachten ist, +ist dass das entstandene Ladungsdifferenz orthogonal zu der angelegten Kraft entsteht, +im Gegensatz zu \subref{fig:punktgruppen:atoms-piezo-fh}. +Daraus kann man schlissen, dass \subref{fig:punktgruppen:atoms-piezo} keine Rotationssymmetrie von $90^\circ$ besitzen kann, +weil die Eigenschaften ändern bei einer $90^\circ$ Drehung. +Das Fehlen dieser Rotationssymmetrie kann mit betrachten von \subref{fig:punktgruppen:atoms-piezo} bestätigt werden. -\subsection{Punktsymmetrie}\footnote{In der Literatur wird ein Punktsymmetrisches Kristallgitter oft als Kristallgitter mit Inversionszentrum bezeichnet.} -Piezoelektrische Kristalle können nicht Punktsymmetrisch sein. +\subsection{Punktsymmetrie} +Piezoelektrische Kristalle können nicht Punktsymmetrisch +\footnote{In der Literatur wird ein Punktsymmetrisches Kristallgitter oft als Kristallgitter mit Inversionszentrum bezeichnet.} sein. Kristallgitter, bei welchen eine Punktspiegelung eine symmetrische Operation ist, können keine piezoelektrische Kristalle bilden. -Auf Abbildung \ref{fig:punktgruppen:atomPiezo} ist bewusst $(a)$ ein nicht Punktsymmetrischer Kristall mit einem Punktsymmetrischen $(d)$ verglichen worden. +Auf Abbildung \ref{fig:punktgruppen:atomPiezo} ist bewusst \subref{fig:punktgruppen:atoms-piezo} ein nicht Punktsymmetrischer Kristall +mit einem Punktsymmetrischen \subref{fig:punktgruppen:atoms-grid}verglichen worden. Als vereinfachte Erklärung kann mann sich wieder das Bild vor augen führen, eines Kristalles, welcher unter Druck auf der einen Seite negative und der anderen Seite positive Ionen an seine Oberfläche verdrängt. Spiegelt man nun den Kristall um den Gitterpunkt in der mitte des Kristalles, so würden die negativen Ionen auf den Positiven auf der anderen seite landen, @@ -73,5 +81,4 @@ Sollten Sie also eines Tages in die Situation geraten, in welcher Sie zwei versc und ein piezoelektrisches Feuerzeug bauen müssen, wobei Sie aber wissen, dass einer eine Punktsymmetrie aufweist, versuche sie es mit dem anderen. -Ich muss aber anmerken, dass aus den $21$ möglichen Kristallsymmetrien ohne Punktsymmetrie einer nicht piezoelektrisch ist. -ein wenig glück brauchen Sie also immer noch. + -- cgit v1.2.1 From 294c88d822acddaf1edd63fb111fec169c43123e Mon Sep 17 00:00:00 2001 From: tschwall <55748566+tschwall@users.noreply.github.com> Date: Tue, 20 Jul 2021 09:46:38 +0200 Subject: =?UTF-8?q?=C3=9Cberarbeitung=20Kapitel=2018.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Das Kapitel 18.1 Vektoroperationen wurde überarbeitet --- buch/papers/clifford/0_ElevatorPitch.tex | 8 +- buch/papers/clifford/1_Vektordarstellung.tex | 14 +- buch/papers/clifford/2_QuadratVektoren.tex | 108 +++++++------ buch/papers/clifford/3_MultiplikationVektoren.tex | 184 +++++++++++----------- buch/papers/clifford/4_GeometrischesProdukt.tex | 18 +-- buch/papers/clifford/references.bib | 35 +--- 6 files changed, 180 insertions(+), 187 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/clifford/0_ElevatorPitch.tex b/buch/papers/clifford/0_ElevatorPitch.tex index 0db5617..ad9bcc2 100644 --- a/buch/papers/clifford/0_ElevatorPitch.tex +++ b/buch/papers/clifford/0_ElevatorPitch.tex @@ -1,2 +1,6 @@ -TODO... -GA [Geometric Algebra i.a.W. Clifford Algebra] provides a unified language for the whole of physics and for much of mathematics and its applications that is conceptually and computationally superior to alternative mathematical systems in many application domains. \ No newline at end of file + +Der Nutzen, welche die Clifford Algebra hat, lässt sich am besten mit den Worten des modernen Begründers dieser erläutern. + +"GA [Geometric Algebra i.a.W. Clifford Algebra] provides a unified language for the whole of physics and for much of mathematics and its applications that is conceptually and computationally superior to alternative mathematical systems in many application domains." \cite{clifford:hestenes_GA} + +Im folgenden hoffen wir den Leser von der Nützlichkeit und der geometrischen Schönheit der Clifford Algebra zu überzeugen. \ No newline at end of file diff --git a/buch/papers/clifford/1_Vektordarstellung.tex b/buch/papers/clifford/1_Vektordarstellung.tex index 88a5789..ac00a33 100644 --- a/buch/papers/clifford/1_Vektordarstellung.tex +++ b/buch/papers/clifford/1_Vektordarstellung.tex @@ -1,7 +1,7 @@ \section{Vektoroperationen\label{clifford:section:Vektoroperationen}} \rhead{Vektoroperationen} \subsection{Vektordarstellung\label{clifford:section:Vektordarstellung}} -Vektoren können neben der üblichen Darstellung, auch als Linearkombination aus Basisvektoren dargestellt werden +Vektoren können neben der üblichen Spaltendarstellung, auch als Linearkombination aus Basisvektoren \begin{equation} \begin{split} \textbf{a} @@ -31,12 +31,14 @@ Vektoren können neben der üblichen Darstellung, auch als Linearkombination aus \sum_{i=1}^{n} a_i \textbf{e}_i \qquad a_i \in \mathbb{R} - , \textbf{e}_i \in \mathbb{R}^n. + , \textbf{e}_i \in \mathbb{R}^n \end{split} \end{equation} -Diese Basisvektoren sollen orthonormal sein und um die Darstellung zu vereinfachen werden sie durch $\textbf{e}_1 , \textbf{e}_2, ...$ ersetzt. +dargestellt werden. +Diese Basisvektoren werden so gewählt, dass sie orthonormal sind. +Um die Darstellung zu vereinfachen werden sie durch $\textbf{e}_1 , \textbf{e}_2, \dots$ ersetzt. \begin{beispiel} -Linearkombination von Basisvektoren in $\mathbb{R}^4$ +Eine Linearkombination von Basisvektoren in $\mathbb{R}^4$ könnte wie folgt aussehen \begin{equation} \begin{pmatrix} 42 \\ 2 \\ 1291 \\ 4 @@ -65,7 +67,7 @@ Linearkombination von Basisvektoren in $\mathbb{R}^4$ + 1291\textbf{e}_3 + - 4\textbf{e}_4 + 4\textbf{e}_4. \end{equation} +Dieses Beispiel ist für einen vier dimensionalen Vektor, dies kann selbstverständlich für beliebig viele Dimensionen nach demselben Schema erweitert werden. \end{beispiel} -Wobei Beispiel für einen vier dimensionalen Vektor ist, dies kann selbstverständlich für beliebig viele Dimensionen nach demselben Schema erweitert werden. \ No newline at end of file diff --git a/buch/papers/clifford/2_QuadratVektoren.tex b/buch/papers/clifford/2_QuadratVektoren.tex index cfb05d6..6c6fb7d 100644 --- a/buch/papers/clifford/2_QuadratVektoren.tex +++ b/buch/papers/clifford/2_QuadratVektoren.tex @@ -1,54 +1,71 @@ \subsection{Quadrat von Vektoren} -Was eine Addition von Vektoren bedeutet ist sehr intuitiv und auch leicht geometrisch darzustellen, was allerdings das Produkt von Vektoren ergibt mag anfänglich unintuitiv wirken. +\subsubsection{Ziel der Multiplikation} +Was eine Addition von Vektoren bedeutet ist sehr intuitiv und auch leicht geometrisch darzustellen wie in Abbildung \ref{figure:addition}, was allerdings das Produkt von Vektoren ergibt mag anfänglich unintuitiv wirken. +\begin{figure}[htb] + \centering + \begin{tikzpicture} + \draw[thin,gray!40] (0,0) grid (4,4); + \draw[blue,thick,->] (0,0)--(3.5,2) node[midway,above,sloped] {$\textbf{a}$}; + \draw[red,thick,->] (3.5,2)--(1.5,3.8) node[midway,above,sloped] {$\textbf{b}$}; + \draw[black,thick,->] (0,0)--(1.5,3.8)node[midway,above,sloped] {$\textbf{a} +\textbf{b} = \textbf{c} $}; + \end{tikzpicture} + \caption{Addition von zwei Vektoren\label{figure:addition}} +\end{figure} Was soll es schon heissen zwei Vektoren miteinander zu multiplizieren? -\newline Im Folgenden werden wir versuchen diese Operation ähnlich intuitiv darzustellen. -\newline -Um sinnvoll eine neue Operation zwischen zwei Elementen einer Algebra, in diesem Fall Vektoren, zu definieren, muss man überlegen, was das Ziel dieser Operation ist. -Als grundsätzliches Ziel wird definiert, dass das Quadrat eines Vektor dessen Länge im Quadrat ergibt, da dies auch in vielen anderen Bereichen der Mathematik,zum Beispiel bei komplexen Zahlen, auch so definiert ist. -\newline -Zusätzlich wollen wir auch das Assoziativgesetz und das Kommutativgesetz für Skalare beibehalten. Wobei das Kommutativgesetz leider, oder wie man sehen wird zum Glück, in der geometrischen Algebra im generellen nicht mehr gilt. Das heisst wir dürfen ausklammern \ref{eq:assoziativ} und die Position von Skalaren im Produkt ändern \ref{eq:kommSkalar}, allerdings nicht die Position der Vektoren \ref{eq:kommVector}. + +Um sinnvoll eine neue Operation zwischen zwei Elementen einer Algebra, in diesem Fall sind diese Elemente Vektoren, zu definieren, muss man überlegen, was das Ziel dieser Operation sein soll. + +Als grundsätzliches Ziel wird definiert, dass das Quadrat eines Vektor dessen Länge im Quadrat ergibt, da dies auch in vielen anderen Bereichen der Mathematik,zum Beispiel bei komplexen Zahlen,so definiert ist. + +Zusätzlich soll auch das Assoziativgesetz für die Multiplikation von Vektoren gelten, dass heisst wir dürfen ausklammern \begin{equation} \label{eq:assoziativ} \textbf{e}_i(\textbf{e}_j + \textbf{e}_k) = - \textbf{e}_i\textbf{e}_j + \textbf{e}_i\textbf{e}_k + \textbf{e}_i\textbf{e}_j + \textbf{e}_i\textbf{e}_k. \end{equation} +Allerdings gilt das Kommutativgesetz leider, oder wie man sehen wird zum Glück, nur für skalare Elemente \begin{equation} \label{eq:kommSkalar} a\textbf{e}_ib\textbf{e}_j = - ab\textbf{e}_i\textbf{e}_j + ab\textbf{e}_i\textbf{e}_j \qquad a,b \in \mathbb{R} \end{equation} +und nicht für Vektoren \begin{equation} \label{eq:kommVector} \textbf{e}_i\textbf{e}_j \neq - \textbf{e}_j\textbf{e}_i + \textbf{e}_j\textbf{e}_i. +\end{equation} +\subsubsection{Quadrieren eines Vektors} +Betrachten wir nun mit diesen Regeln das Quadrat eines Vektors. Zuerst werden die Vektoren als Linearkombinationen geschrieben +\begin{equation} + \textbf{a}^2 = + \left ( + \sum_{i=1}^{n} a_i \textbf{e}_i + \right ) + \left ( + \sum_{i=1}^{n} a_i \textbf{e}_i + \right ) + \label{eq:quad_a_1}. +\end{equation} +Das Quadrat kann nun in zwei Summen aufgeteilt werden +\begin{equation} + \textbf{a}^2 = + \textcolor{red}{\sum_{i=1}^{n} a_i^2\textbf{e}_i^2} + + + \textcolor{blue}{\sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n a_ia_j\textbf{e}_i\textbf{e}_j } + \label{eq:quad_a_2}, +\end{equation} +wobei die roten Summe die quadrierten Terme und die blaue Summe die Mischterme beinhaltet. Da $\textbf{e}_i^2 = 1$ gilt, weil das zuvor definierte Ziel des Quadrates eines Vektors dessen Länge ergibt und die Basisvektoren Länge 1 haben, wird dies nun eingesetzt +\begin{equation} + \textbf{a}^2 = \textcolor{cyan}{\sum_{i=1}^{n} a_i^2} + \textcolor{orange}{\sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n a_ia_j\textbf{e}_i\textbf{e}_j}. + \label{eq:quad_a_3} \end{equation} -Betrachten wir nun mit diesen Regeln das Quadrat eines Vektors. -\begin{align} - \textbf{a}^2 &= - \left ( - \sum_{i=1}^{n} a_i \textbf{e}_i - \right ) - \left ( - \sum_{i=1}^{n} a_i \textbf{e}_i - \right ) - \label{eq:quad_a_1} - \\ - &= - \textcolor{red}{\sum_{i=1}^{n} a_i^2\textbf{e}_i^2} - + - \textcolor{blue}{\sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n a_ia_j\textbf{e}_i\textbf{e}_j } - \label{eq:quad_a_2} - \\ - &= \textcolor{cyan}{\sum_{i=1}^{n} a_i^2} + \textcolor{orange}{\sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n a_ia_j\textbf{e}_i\textbf{e}_j}. - \label{eq:quad_a_3} -\end{align} - \begin{beispiel} -Quadrat eines Vektors in $\mathbb{R}^2$ +Das Quadrat des Vektor $a$ in $\mathbb{R}^2$ ist \begin{equation} \begin{split} \textbf{a}^2 @@ -56,22 +73,17 @@ Quadrat eines Vektors in $\mathbb{R}^2$ &= \textcolor{red}{a_1^2\textbf{e}_1^2 + a_2^2\textbf{e}_2^2} + \textcolor{blue}{a_1\textbf{e}_1a_2\textbf{e}_2 + a_2\textbf{e}_2a_1\textbf{e}_2} \\\ & = \textcolor{cyan}{a_1^2 + a_2^2} + \textcolor{orange}{a_1b\textbf{e}_1a_2\textbf{e}_2 + a_2\textbf{e}_2a_1\textbf{e}_2} - \end{split} + \end{split}. \end{equation} - \end{beispiel} -Der Vektor wird in \ref{eq:quad_a_1} als Linearkombination geschrieben. -Das Quadrat kann, wie in \ref{eq:quad_a_2} gezeigt, in zwei Summen aufteilen werden , wobei die roten Summe die quadrierten Terme und die blaue Summe die Mischterme beinhaltet. -\newline -Da $\textbf{e}_i^2 = 1$ gilt, da zuvor vorausgesetzt wurde, dass man mit orthonormalen Einheitsvektoren arbeitet, wird dies nun eingesetzt ergibt sich \ref{eq:quad_a_3} -\newline -Die hellblaue Teil ist nun bereits Länge im Quadrat eines Vektors, also das Ziel der Multiplikation. -Daher muss der restliche Teil dieser Gleichung null ergeben. -Aus dieser Erkenntnis leiten wir in \ref{eq:Mischterme_Null} weitere Eigenschaften für die Multiplikation her. + +Die hellblaue Teil ist nun bereits die Länge im Quadrat, also das zuvor definierte Ziel der Multiplikation. +Daraus lässt sich schliessen, dass der restliche Teil dieser Gleichung null ergeben muss \begin{equation} \label{eq:Mischterme_Null} - \sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n a_ia_j\textbf{e}_i\textbf{e}_j = \textcolor{blue}{a_1a_2(\textbf{e}_1\textbf{e}_2 + \textbf{e}_2\textbf{e}_1)} + a_1a_3(\textbf{e}_1\textbf{e}_3 + \textbf{e}_3\textbf{e}_1) + \dots = 0 + \sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n a_ia_j\textbf{e}_i\textbf{e}_j = \textcolor{blue}{a_1a_2(\textbf{e}_1\textbf{e}_2 + \textbf{e}_2\textbf{e}_1)} + a_1a_3(\textbf{e}_1\textbf{e}_3 + \textbf{e}_3\textbf{e}_1) + \dots = 0. \end{equation} +Aus dieser Erkenntnis können weitere Eigenschaften für die Multiplikation hergeleitet werden. Da dies für beliebige $a_i$ gelten muss werden alle Terme bis auf $a_1$ und $a_2$ gleich null gesetzt. Somit fallen alle Terme bis auf den blauen weg. Wird dies weiter vereinfacht ergibt sich \begin{equation} \begin{split} @@ -81,15 +93,13 @@ Da dies für beliebige $a_i$ gelten muss werden alle Terme bis auf $a_1$ und $a_ \end{split} \end{equation} \begin{satz} - Die Multiplikation von Vektoren ist antikommutativ, wenn die multiplizierten Vektoren orthogonal sind. + Die Multiplikation von Vektoren ist antikommutativ, wenn die multiplizierten Vektoren orthogonal sind, es gilt also \begin{equation} - \textbf{e}_i\textbf{e}_j = -\textbf{e}_j\textbf{e}_i \qquad \textbf{e}_i \perp \textbf{e}_j + \textbf{e}_i\textbf{e}_j = -\textbf{e}_j\textbf{e}_i \quad \textrm{für} \quad \textbf{e}_i \perp \textbf{e}_j. \end{equation} \end{satz} -Dieses Wissen reicht nun bereits um alle Produkte der Basisvektoren zu berechnen, was in \ref{tab:multip_vec} gemacht wurde. +Dieses Wissen reicht nun bereits um alle Produkte der Basisvektoren zu berechnen, was in Tabelle \ref{tab:multip_vec} gemacht wurde. \begin{table} -\caption{Multiplikationstabelle für Vektoren} -\label{tab:multip_vec} \begin{center} \begin{tabular}{ |c|c|c|c|c|c| } \hline @@ -107,4 +117,6 @@ Dieses Wissen reicht nun bereits um alle Produkte der Basisvektoren zu berechnen \hline \end{tabular} \end{center} +\caption{Multiplikationstabelle für Vektoren} +\label{tab:multip_vec} \end{table} \ No newline at end of file diff --git a/buch/papers/clifford/3_MultiplikationVektoren.tex b/buch/papers/clifford/3_MultiplikationVektoren.tex index 841dde4..0969b89 100644 --- a/buch/papers/clifford/3_MultiplikationVektoren.tex +++ b/buch/papers/clifford/3_MultiplikationVektoren.tex @@ -1,11 +1,14 @@ \subsection{Multiplikation von Vektoren} -Was geschieht nun wenn zwei beliebige Vektoren,$u$ und $v$, miteinander multipliziert werden? +Was geschieht nun wenn zwei beliebige Vektoren, $u$ und $v$ \begin{equation} \textbf{u} = \sum_{i=1}^{n} u_i \textbf{e}_i \qquad \textbf{v} = \sum_{i=1}^{n} v_i \textbf{e}_i \end{equation} + miteinander multipliziert werden? + + Wieder werden die Vektoren zuerst als Linearkombinationen darstellen und danach in zwei Summen aufgeteilt, eine Summe mit quadrierten Termen und eine Summe mit Mischtermen \begin{equation} \begin{split} \textbf{u}\textbf{v} @@ -18,12 +21,12 @@ Was geschieht nun wenn zwei beliebige Vektoren,$u$ und $v$, miteinander multipli \right) = \sum_{i=1}^n u_iv_i\underbrace{\textbf{e}_i^2}_{1} - + \sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n u_iv_j\textbf{e}_i\textbf{e}_j + + \sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n u_iv_j\textbf{e}_i\textbf{e}_j, \end{split} \end{equation} +wobei die Summe der quadrierten Termen bereits bekannt vorkommen könnte, es ist nämlich das Skalarprodukt von $u$ und $v$. Die Summe der Mischterme bilden etwas neues, dass wir das äussere Produkt von $u$ und $v$ nennen. \begin{beispiel} Multiplikation von Vektoren in $\mathbb{R}^2$ -\end{beispiel} \begin{equation} \begin{split} \textbf{u}\textbf{v} @@ -44,7 +47,7 @@ Was geschieht nun wenn zwei beliebige Vektoren,$u$ und $v$, miteinander multipli \underbrace{(u_1v_2 - u_2v_1)\textbf{e}_1\textbf{e}_2}_{\text{Äusseres Produkt}} \end{split} \end{equation} -Der linke Teil dieser Multiplikation ergibt das Skalarprodukt der zwei Vektoren, der rechte Term ergibt etwas neues das sich das äussere Produkt der zwei Vektoren nennt. +\end{beispiel} \subsubsection{Äusseres Produkt} Das äussere Produkt von zwei Vektoren wird mit einem $\wedge$ dargestellt \begin{equation} @@ -53,123 +56,118 @@ Das äussere Produkt von zwei Vektoren wird mit einem $\wedge$ dargestellt \sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n u_iv_j\textbf{e}_i\textbf{e}_j \end{equation} \begin{beispiel} -Äusseres Produkt von zwei Vektoren in $\mathbb{R}^3$ -\end{beispiel} +Das äusseres Produkt von zwei Vektoren in $\mathbb{R}^3$ ist \begin{equation} - \begin{split} - u \wedge v - &= - u_1v_2\textbf{e}_1\textbf{e}_2 - + - u_1v_3\textbf{e}_1\textbf{e}_3 - + - u_2v_2\textbf{e}_2\textbf{e}_3 - + - u_2v_1\textbf{e}_2\textbf{e}_1 - + - u_3v_1\textbf{e}_3\textbf{e}_1 - + - u_3v_2\textbf{e}_3\textbf{e}_2 \\\ - &= - (u_1v_2 - u_2v_1)\textbf{e}_1\textbf{e}_2 - + - (u_1v_3 - v_3u_1)\textbf{e}_1\textbf{e}_3 - + - (u_2v_3 - u_3v_2)\textbf{e}_2\textbf{e}_3 - \end{split} + \begin{split} + u \wedge v + &= + u_1v_2\textbf{e}_1\textbf{e}_2 + + + u_1v_3\textbf{e}_1\textbf{e}_3 + + + u_2v_2\textbf{e}_2\textbf{e}_3 + + + u_2v_1\textbf{e}_2\textbf{e}_1 + + + u_3v_1\textbf{e}_3\textbf{e}_1 + + + u_3v_2\textbf{e}_3\textbf{e}_2 \\\ + &= + (u_1v_2 - u_2v_1)\textbf{e}_1\textbf{e}_2 + + + (u_1v_3 - v_3u_1)\textbf{e}_1\textbf{e}_3 + + + (u_2v_3 - u_3v_2)\textbf{e}_2\textbf{e}_3. + \end{split} \end{equation} -Im letzten Schritt des Beispiels wurden nun, mit Hilfe der antikommutativität des Produkts, die Vektorprodukte, welche die gleichen Einheitsvektoren beinhalten, zusammengefasst. Dieses Vorgehen kann man auch allgemein anwenden, wie in den Gleichungen \ref{eq:u_wedge_v}-\ref{eq:u_wedge_v_5} hergeleitet. +\end{beispiel} + +Im letzten Schritt des Beispiels wurden nun, mit Hilfe der antikommutativität des Produkts, die Vektorprodukte, welche die gleichen Einheitsvektoren beinhalten, zusammengefasst. Dieses Vorgehen kann man auch allgemein anwenden, wie in den Gleichungen \eqref{eq:u_wedge_v}-\eqref{eq:u_wedge_v_5} hergeleitet. Die Summe, \begin{align} \textbf{u}\wedge \textbf{v} &= \sum_{\begin{subarray}{l}i,j=1\\i \neq j\end{subarray}}^n - u_iv_j\textbf{e}_i\textbf{e}_j + u_iv_j\textbf{e}_i\textbf{e}_j, \label{eq:u_wedge_v} - \\ + \intertext{wird in zwei verschiedene Summen aufgeteilt. + Wobei die linke Summe jeweils den Basisvektor mit dem höheren Index an erster Stelle und die rechte Summe diesen jeweils an zweiter Stelle hat} \label{eq:u_wedge_v_1} &= \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n u_iv_j\textbf{e}_i\textbf{e}_j + - \sum_{\begin{subarray}{l}i,j=1\\j < i\end{subarray}}^n u_iv_j\textbf{e}_i\textbf{e}_j - \\ + \sum_{\begin{subarray}{l}i,j=1\\j < i\end{subarray}}^n u_iv_j\textbf{e}_i\textbf{e}_j. + \intertext{Nun werden die Indexe der zweiten Summe vertauscht} \label{eq:u_wedge_v_2} &= \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n u_iv_j\textbf{e}_i\textbf{e}_j + - \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n u_jv_i\textbf{e}_j\textbf{e}_i - \\ - \label{eq:u_wedge_v_3} + \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n u_jv_i\textbf{e}_j\textbf{e}_i, + \intertext{und diese wird nun mit Hilfe der Antikommutativität umgeformt zu} &= \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n u_iv_j\textbf{e}_i\textbf{e}_j - - \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n u_jv_i\textbf{e}_i\textbf{e}_j - \\ + \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n u_jv_i\textbf{e}_i\textbf{e}_j. + \intertext{Nun können die zwei Summen wieder zusammengefasst werden} \label{eq:u_wedge_v_4} &= - \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n (u_iv_j -u_jv_i)\textbf{e}_i\textbf{e}_j - \\ - \label{eq:u_wedge_v_5} + \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n (u_iv_j -u_jv_i)\textbf{e}_i\textbf{e}_j. + \intertext{Der Term in der Summe könnte einem bereits bekannt vorkommen, es ist nämlich die Determinante einer Matrix mit $u$ und $v$ als ihre Spalten} &= + \label{eq:u_wedge_v_5} \sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n \begin{vmatrix} u_i & v_i \\ u_j & v_j - \end{vmatrix}\textbf{e}_i\textbf{e}_j + \end{vmatrix}\textbf{e}_i\textbf{e}_j. \end{align} -Die Summe aus \ref{eq:u_wedge_v_1} wird in \ref{eq:u_wedge_v} in zwei verschiedene Summen aufgeteilt. -Wobei die linke Summe jeweils den Basisvektor mit dem höheren Index an erster Stelle und die rechte Summe diesen jeweils an zweiter Stelle hat. -\newline -Bei \ref{eq:u_wedge_v_2} werden die Indexe der zweiten Summe vertauscht, damit man nun bei beiden Teilen die gleiche Summe hat. -Danach werden in \ref{eq:u_wedge_v_3}, mit Hilfe der Antikommutativität, die Einheitsvektoren der zweiten Summe vertauscht. -\newline -Nun können die Summen, wie in \ref{eq:u_wedge_v_4} wieder in eine Summe zusammengefasst werden. -\newline -Der Term in der Klammer in \ref{eq:u_wedge_v_4} kann auch als Determinante einer 2x2 Matrix dargestellt werden, was in \ref{eq:u_wedge_v_5} gemacht wird. -\newline -Die Determinante einer Matrix beschreibt welche von den Spaltenvektoren aufgespannt wird, wie in Abbildung \ref{figure:det} dargestellt. -\begin{figure} -\centering -\begin{tikzpicture} - \draw[thin,gray!40] (0,0) grid (4,4); - \draw[<->] (0,0)--(4,0) ; - \draw[<->] (0,0)--(0,4) ; - \draw[line width=0,fill=gray!40] (0,0)--(3,1)--(4,3)--(1,2); - \draw[line width=2pt,blue,-stealth](0,0)--(3,1) node[anchor=north - west]{$\boldsymbol{u}$}; - \draw[line width=2pt,red,-stealth](0,0)--(1,2) node[anchor=south east]{$\boldsymbol{v}$}; - \draw[black] (2,1.5)--(-0.5,2.5) node[anchor = east]{$\begin{vmatrix} - u_i & v_i \\ - u_j & v_j - \end{vmatrix} = u_iv_j - v_iu_j$}; -\end{tikzpicture} -\caption{Geometrische Interpretation der Determinante einer 2x2 Matrix\label{figure:det}} +Die Determinante einer Matrix beschreibt die Fläche, welche von den Spaltenvektoren aufgespannt wird, wie in Abbildung \ref{figure:det} dargestellt. +\begin{figure}[htb] + \centering + \begin{minipage}[t]{.45\linewidth} + \centering + \begin{tikzpicture} + \draw[thin,gray!40] (0,0) grid (4,4); + \draw[<->] (0,0)--(4,0) ; + \draw[<->] (0,0)--(0,4) ; + \draw[line width=0,fill=gray!40] (0,0)--(3,1)--(4,3)--(1,2); + \draw[line width=2pt,blue,-stealth](0,0)--(3,1) node[anchor=north + west]{$\boldsymbol{u}$}; + \draw[line width=2pt,red,-stealth](0,0)--(1,2) node[anchor=south east]{$\boldsymbol{v}$}; + \draw[black] (2,1.5)--(1.8,3.2) node[anchor = south]{$\begin{vmatrix} + u_i & v_i \\ + u_j & v_j + \end{vmatrix} = u_iv_j - v_iu_j$}; + \end{tikzpicture} + \caption{Geometrische Interpretation der Determinante einer $2 \times 2$ Matrix\label{figure:det}} + \end{minipage}% + \hfill% + \begin{minipage}[t]{.45\linewidth} + \centering + \begin{tikzpicture} + \draw[thin,gray!40] (0,0) grid (4,4); + \draw[<->] (0,0)--(4,0) node[right]{$x$}; + \draw[<->] (0,0)--(0,4) node[above]{$y$}; + \draw[line width=0,fill=gray!40] (0,0)--(3,1)--(4,3)--(1,2); + \draw[line width=2pt,blue,-stealth](0,0)--(3,1) node[anchor=north + west]{$\boldsymbol{u}$}; + \draw[line width=2pt,red,-stealth](0,0)--(1,2) node[anchor=south east]{$\boldsymbol{v}$}; + \draw[->] (2.15,1.5) arc (0:310:0.3); + \draw[black] (2,1.5)--(2.5,3.2) node[anchor = south]{$u\wedge v = \begin{vmatrix} + u_i & v_i \\ + u_j & v_j + \end{vmatrix} e_1e_2 = (u_iv_j - v_iu_j)\textbf{e}_1\textbf{e}_2$}; + \end{tikzpicture} + \caption{Geometrische Interpretation des äusseren Produktes \label{figure:wedge}} + \end{minipage} \end{figure} -\newline Das äussere Produkt besteht nun also aus der Summe - $\sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n$ + \(\sum_{\begin{subarray}{l}i,j=1\\i < j\end{subarray}}^n\) von Flächen - $\begin{vmatrix} - u_i & v_i \\ - u_j & v_j - \end{vmatrix}$, welche in $\textbf{e}_i\textbf{e}_j$ aufgespannt sind, wie man in \ref{eq:u_wedge_v_5} sieht. + \(\begin{vmatrix} + u_i & v_i \\ + u_j & v_j + \end{vmatrix}\) +, welche in $\textbf{e}_i\textbf{e}_j$ aufgespannt sind, wie man in \ref{eq:u_wedge_v_5} sieht. Dieses Produkt $\textbf{e}_i\textbf{e}_j$ der Basisvektoren interpretiert man als Umlaufrichtung. Wobei die gebildete Fläche in Richtung des ersten Vektors umschritten wird. -Dies ist in \ref{figure:wedge} dargestellt, wobei bei diesem Beispiel die Umlaufrichtung im Gegenuhrzeigersinn ist, da die Fläche in Richtung u umschritten wird. +Dies ist in Abbildung \ref{figure:wedge} dargestellt, wobei bei diesem Beispiel die Umlaufrichtung im Gegenuhrzeigersinn ist, da die Fläche in Richtung u umschritten wird. Diese Fläche mit einer Richtung nennt man in der geometrischen Algebra einen Bivektor, da er eine Art zwei dimensionaler Vektor ist. -\begin{figure} -\centering -\begin{tikzpicture} - \draw[thin,gray!40] (0,0) grid (4,4); - \draw[<->] (0,0)--(4,0) node[right]{$x$}; - \draw[<->] (0,0)--(0,4) node[above]{$y$}; - \draw[line width=0,fill=gray!40] (0,0)--(3,1)--(4,3)--(1,2); - \draw[line width=2pt,blue,-stealth](0,0)--(3,1) node[anchor=north - west]{$\boldsymbol{u}$}; - \draw[line width=2pt,red,-stealth](0,0)--(1,2) node[anchor=south east]{$\boldsymbol{v}$}; - \draw[->] (2.15,1.5) arc (0:310:0.3); - \draw[black] (2,1.5)--(-0.5,2.5) node[anchor = east]{$u\wedge v = \begin{vmatrix} - u_i & v_i \\ - u_j & v_j - \end{vmatrix} e_1e_2 = (u_iv_j - v_iu_j)\textbf{e}_1\textbf{e}_2$}; -\end{tikzpicture} -\caption{Geometrische Interpretation des äusseren Produkt in $\mathbb{R}^2$\label{figure:wedge}} -\end{figure} \ No newline at end of file diff --git a/buch/papers/clifford/4_GeometrischesProdukt.tex b/buch/papers/clifford/4_GeometrischesProdukt.tex index a19e983..f18b90d 100644 --- a/buch/papers/clifford/4_GeometrischesProdukt.tex +++ b/buch/papers/clifford/4_GeometrischesProdukt.tex @@ -12,9 +12,9 @@ Ein Multivektor besteht aus den verschiedenen Bauteilen, wie zum Beispiel Vektor M = \sum \left ( \prod a_i\textbf{e}_j \right) \end{equation} \end{definition} -Besteht eine Clifford Algebra aus n Basisvektoren so hat sie n Dimensionen, dies wird nicht wie in der linearen Algebra mit $\mathbb{R}^n$ sondern mit $\mathbb{G}^n$ beschrieben. +Besteht eine Clifford Algebra aus n Basisvektoren so hat sie n Dimensionen, dies wird nicht wie in der linearen Algebra mit $\mathbb{R}^n$ sondern mit $G_n(\mathbb{R})$ beschrieben. Dies wird so geschrieben da man eine neue Algebrastruktur um die Vektoren einführt. \begin{beispiel} -Allgemeiner Multivektor in $\mathbb{G}^3$ +Allgemeiner Multivektor in $G_3(\mathbb{R})$ \begin{equation} M = a + @@ -26,34 +26,30 @@ Allgemeiner Multivektor in $\mathbb{G}^3$ \end{equation} \end{beispiel} \begin{definition} -Um das Produkt von Basisvektoren in Zukunft darzustellen wird folgende Notation definiert +Für das Produkt von Basisvektoren wird folgende Notation definiert \begin{equation} - e_ie_j = e_{ij} + e_ie_j = e_{ij}. \end{equation} \end{definition} -Nun da das geometrische Produkt vollständig definiert wurde können Multiplikationstabellen für verschiedene Dimensionen $\mathbb{G}^n$ erstellt werden. In \ref{tab:multip} ist dies für $\mathbb{G}^3$ gemacht. +Nun da das geometrische Produkt vollständig definiert wurde können Multiplikationstabellen für verschiedene Dimensionen $G_n(\mathbb{R})$ erstellt werden. In Tabelle \ref{tab:multip} ist dies für $G_3(\mathbb{R})$ gemacht. \begin{table} - \caption{Multiplikationstabelle für $\mathbb{G^3}$} \label{tab:multip} \begin{center} - \begin{tabular}{ |c|c|c|c|c|c|c|c| } + \begin{tabular}{ |c|ccc|ccc|c| } \hline 1 & $\textbf{e}_1$ & $\textbf{e}_2$ &$\textbf{e}_3$ & $\textbf{e}_{12}$ & $\textbf{e}_{13}$ & $\textbf{e}_{23}$ & $\textbf{e}_{123}$\\ \hline $\textbf{e}_1$ & 1 & $\textbf{e}_{12}$ & $\textbf{e}_{12}$ & $\textbf{e}_2$ & $\textbf{e}_3$ & $\textbf{e}_{123}$ & $\textbf{e}_{23}$\\ - \hline $\textbf{e}_2$ & $-\textbf{e}_{12}$ & 1 & $\textbf{e}_{23}$ & $-\textbf{e}_1$ & $-\textbf{e}_{123}$ & $\textbf{e}_3$ & $-\textbf{e}_{13}$\\ - \hline $\textbf{e}_3$ & $-\textbf{e}_{13}$ & $-\textbf{e}_{23}$ & 1 & $\textbf{e}_{123}$ & $-\textbf{e}_1$ & $-\textbf{e}_2$ & $\textbf{e}_{12}$\\ \hline $\textbf{e}_{12}$ & -$\textbf{e}_2$ & $\textbf{e}_1$& $\textbf{e}_{123}$ & -1 & $-\textbf{e}_{23}$ & $\textbf{e}_{13}$ & $-\textbf{e}_{3}$\\ - \hline $\textbf{e}_{13}$ & $-\textbf{e}_{3}$ & $-\textbf{e}_{123}$ & $\textbf{e}_{1}$ & $\textbf{e}_{23}$ & -1 & $-\textbf{e}_{12}$ & $\textbf{e}_{2}$\\ - \hline $\textbf{e}_{23}$ & $\textbf{e}_{123}$ & $-\textbf{e}_{3}$ & $\textbf{e}_{2}$ & $-\textbf{e}_{13}$ & $\textbf{e}_{12}$ & -1 & $-\textbf{e}_{1}$ \\ \hline $\textbf{e}_{123}$ & $\textbf{e}_{23}$ & $-\textbf{e}_{13}$ & $\textbf{e}_{12}$ & $-\textbf{e}_{3}$& $\textbf{e}_{2}$ & $-\textbf{e}_{1}$ & -1 \\ \hline \end{tabular} \end{center} + \caption{Multiplikationstabelle für $G_3(\mathbb{R})$} \end{table} diff --git a/buch/papers/clifford/references.bib b/buch/papers/clifford/references.bib index ff829d6..9090005 100644 --- a/buch/papers/clifford/references.bib +++ b/buch/papers/clifford/references.bib @@ -4,32 +4,13 @@ % (c) 2020 Autor, Hochschule Rapperswil % -@online{clifford:bibtex, - title = {BibTeX}, - url = {https://de.wikipedia.org/wiki/BibTeX}, - date = {2020-02-06}, - year = {2020}, - month = {2}, - day = {6} -} - -@book{clifford:numerical-analysis, - title = {Numerical Analysis}, - author = {David Kincaid and Ward Cheney}, - publisher = {American Mathematical Society}, - year = {2002}, - isbn = {978-8-8218-4788-6}, - inseries = {Pure and applied undegraduate texts}, - volume = {2} -} - -@article{clifford:mendezmueller, - author = { Tabea Méndez and Andreas Müller }, - title = { Noncommutative harmonic analysis and image registration }, - journal = { Appl. Comput. Harmon. Anal.}, - year = 2019, - volume = 47, - pages = {607--627}, - url = {https://doi.org/10.1016/j.acha.2017.11.004} +@article{clifford:hestenes_GA, + author = { David Hestenes, Garret Eugene Sobczyk and James S. Marsh }, + title = { Clifford Algebra to Geometric Calculus. A Unified Language for Mathematics and Physics }, + journal = { American Journal of Physics }, + year = 1985, + volume = 53, + pages = {24}, + url = {https://www.researchgate.net/publication/258944244_Clifford_Algebra_to_Geometric_Calculus_A_Unified_Language_for_Mathematics_and_Physics} } -- cgit v1.2.1 From d35889ab0e806e4df7871b5a100fe4bb6c52282b Mon Sep 17 00:00:00 2001 From: tim30b Date: Tue, 20 Jul 2021 14:29:38 +0200 Subject: =?UTF-8?q?rewrite=20Sch=C3=B6nflies=20notation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buch/papers/punktgruppen/crystals.tex | 38 +++++++++++++++++++++++++---------- buch/papers/punktgruppen/piezo.tex | 3 +-- 2 files changed, 28 insertions(+), 13 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index e8dfa76..c110787 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -30,7 +30,7 @@ ist ein Kristallgitter eindeutig beschrieben, weswegen sie auch als Grundvektore %TODOO fix Q define without vector symb. -> ask naoki -\subsection{Translationssymmetrie} +\subsection{Translationssymmetrie} Da sich das ganze Kristallgitter wiederholt, wiederholen sich auch dessen Eigenschaften periodisch mit den Grundvektoren. Sollte man sich auf einem Gitterpunkt in einem Kristall aufhalten, ist es unmöglich zu wissen, auf welchem Gitterpunkt man sich befindet, da die Umgebungen aller Punkte identisch sind. @@ -44,11 +44,11 @@ der Vektoren $\vec{a}$ , $\vec{b}$ und $\vec{c}$ erlaubt sind oder kurz, um $\ve Verschiebungen um $\vec{r}$ bewirken demnach keine Veränderungen, solange wir ein unendlich grosses Kristallgitter verschieben. -\subsection{Limitierte Kristallsymmetrien} +\subsection{Limitierte Kristallsymmetrien} \label{txt:punktgruppen: Translationssymmetrie} Die Translationssymmetrie ist wohl keine grosse Überraschung, wenn man die Abbildung \ref{fig:punktgruppen:lattice} betrachtet. - Was nicht direkt ersichtlich ist, ist dass auch wenn die Grundvektoren frei gewählt werden können, - sind nur rotationssymmetrische Kristalle ganz bestimmter Rotationswinkel möglich. - + Was nicht direkt ersichtlich ist, dass bei beliebigen Grundvektoren nicht beliebige Symmetrien erstellt werden können. + Die geforderte Translationssymmetrie eines Kristalles schränkt weitere Symmetrien deutlich ein. + \begin{figure} \centering \includegraphics[]{papers/punktgruppen/figures/combine-symmetries} @@ -126,14 +126,30 @@ wobei die gestrichelten Klassen aus Gründen der Überschaubarkeit nicht im Deta \subsubsection{Schönflies-Symbilok} -Jede der 32 Kristallklassen auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} ist mit ihrem Schöönflies-Symbol bezeichnet. +Jede der 32 Kristallklassen auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} ist mit ihrem zugehörigen Schöönflies-Symbol bezeichnet. Die Schönflies-Symbolik stammt von dem Mathematiker Arthur Moritz Schönflies, -welcher sich unter anderem mit der Klasifizierung der Kristallklassen auseinandergesetzt hat. +welcher sich unter anderem mit der Klasifizierung der Punktgruppen auseinandergesetzt hat. Er hat Untergruppen gebildet, welche als Grossbuchstaben in Abbildung \ref{fig:punktgruppen:Kristallkassen} zu sehen sind. -Anschaulich ist als Beispiel die Drehgruppe \[C\]. -Die Elemente einer Untergruppe werden erst mit ihren Zusätzen eindeutig wie \[C_{3i}\], -was für eine dreifache Rotationssymmetrie mit einem Inversionszentrum steht. - +Da nicht alle Symmetriegruppen in Kristallen möglich sind, werden nicht alle Untergruppen von Schönflies verwendet. +Es ist nur die Drehgruppe \(C\), Diedergruppe \(D\) Drehspiegelgruppe \(S\), Tetraedergruppe \(T\) und die Oktaedergruppe \(O\). +Für die eindeutige zuweisung in eine Kristallklasse werden noch identifizierende Merkmale als Subskript notiert. +Bei der Untergruppe \(C\) werden beispielsweise die möglichen Rotationssymmetrien gezeigt. +Dank Abschintt \ref{txt:punktgruppen: Translationssymmetrie} wissen wir, wieso auf \(C\) nur ganz bestimmte Subskripte folgen. +Da das Subskript \(n\) von \(C_n\) zeigt, dass es sich um eine \(n\)-fache Rotationssymmetrie handelt. +Inzwischen wissen wir auch, dass \(C_5\) auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} nicht vorkommen darf, da +\[ + 360^\circ/5 = 72^\circ +\] +was nach Abschnitt \ref{txt:punktgruppen: Translationssymmetrie} in einem Kristall keine mögliche Rotationssymmetrie ist. +Sind im Subskript Buchstaben, definieren diese weitere Symmetrieeigenschaften der Klasse. +Wie zum Beispiel ein Inversionszentrum +\footnote{Ein Objekt mit Inversionszentrum ist Punktsymmetrisch im Inversionszentrum.} +\(i\) oder eine horizontale +\footnote{Als Orientierungspunkt wird die Symmetrieachse höchster Ordnung (\(n\)) als vertikal definiert} +Spiegelachse \(h\). +Zu beachten ist jedoch, dass manche Symmetriegruppen mit mehreren Schönflies-Symbolen beschieben werden können. +\(C_{3i}\) beschreibt genau das selbe wie \(S_6\), da eine dreifache Rotationssymmetrie mit einem Inversionszentrum einer +sechsfachen Drehspiegelsymmetrie entspricht. diff --git a/buch/papers/punktgruppen/piezo.tex b/buch/papers/punktgruppen/piezo.tex index feac9e5..6defcdc 100644 --- a/buch/papers/punktgruppen/piezo.tex +++ b/buch/papers/punktgruppen/piezo.tex @@ -58,8 +58,7 @@ weil die Eigenschaften ändern bei einer $90^\circ$ Drehung. Das Fehlen dieser Rotationssymmetrie kann mit betrachten von \subref{fig:punktgruppen:atoms-piezo} bestätigt werden. \subsection{Punktsymmetrie} -Piezoelektrische Kristalle können nicht Punktsymmetrisch -\footnote{In der Literatur wird ein Punktsymmetrisches Kristallgitter oft als Kristallgitter mit Inversionszentrum bezeichnet.} sein. +Piezoelektrische Kristalle können nicht Punktsymmetrisch sein. Kristallgitter, bei welchen eine Punktspiegelung eine symmetrische Operation ist, können keine piezoelektrische Kristalle bilden. Auf Abbildung \ref{fig:punktgruppen:atomPiezo} ist bewusst \subref{fig:punktgruppen:atoms-piezo} ein nicht Punktsymmetrischer Kristall mit einem Punktsymmetrischen \subref{fig:punktgruppen:atoms-grid}verglichen worden. -- cgit v1.2.1 From ac695f41dd1961103af26522203ffb9b550cc105 Mon Sep 17 00:00:00 2001 From: tim30b Date: Tue, 20 Jul 2021 16:24:39 +0200 Subject: fix Q notation --- buch/papers/punktgruppen/crystals.tex | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index c110787..f8be01b 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -36,7 +36,7 @@ Sollte man sich auf einem Gitterpunkt in einem Kristall aufhalten, ist es unmög da die Umgebungen aller Punkte identisch sind. Mit anderen Worten: Jedes Kristallgitter $ G $ ist \emph{Translationssymmetrisch} in der Translation \[ - Q_i(G) = G + \vec{a}_i + \vec{Q}_i(G) = G + \vec{a}_i \] wobei der Vektor $\vec{a}_i$ ein Grundvektor sein muss. Da die Translationssymmetrie beliebig oft mit allen Grundvektoren angewendet werden kann, können wir auch sagen, dass alle Verschiebungen um eine Linearkombination @@ -64,7 +64,8 @@ solange wir ein unendlich grosses Kristallgitter verschieben. \begin{itemize} \item \(A\) ist unser erster Gitterpunkt. - \item \(A'\) ist gegeben, weil wir \(A\) mit der Translation \(\vec{Q}\) um einen Grundvektor verschieben und wir wissen, dass nach einer Translation wieder ein Gitterpunkt an der verschobenen Stelle sein muss. + \item \(A'\) ist gegeben, weil wir \(A\) mit der Translation \(\vec{Q}\) um einen Grundvektor verschieben und wir wissen, + dass nach einer Translation wieder ein Gitterpunkt an der verschobenen Stelle sein muss. \item \(B\) entsteht, weil wir die Rotationssymmetrie \(C_\alpha\) auf den Punkt \(A\) anwenden. Dadurch dreht sich das ganze Gitter um den Winkel \(\alpha\). Für uns bedeutet dies lediglich, dass unser zweiter Punkt \(A'\) abgedreht wird. @@ -77,13 +78,13 @@ solange wir ein unendlich grosses Kristallgitter verschieben. auch auf \(A'\) an. Dies dreht \(A\) auf einen neuen Punkt. \item \(B'\) ist kein zufälliger Name für diesen neuen Punkt, denn wir wissen, dass zwischen allen Punkten eine Translationssymmetrie bestehen muss. - Die Translationssymmetrie zwischen \(B\) und \(B'\) ist hier als \(\vec{Q}'\) bezeichnet. + Die Translationssymmetrie zwischen \(B\) und \(B'\) ist hier als \(\vec{Q}'\) bezeichnet. \end{itemize} Mit den gegebenen Punkten lassen sich geometrische Folgerungen ziehen. - Wir beginnen, indem wir die Länge \(Q\) der Translation \(\vec{Q}\) mit jener von \(\vec{Q}'\) vergleichen. + Wir beginnen, indem wir die Länge der Verschiebung \(|\vec{Q}| = Q\) setzen und \(|\vec{Q}'| = Q'\). Aus Abbildung \ref{fig:punktgruppen:rot-geometry} ist ersichtlich, dass \(Q' = Q + 2x\). - Ist \(\vec{Q}\) ein Grundvektor so muss \(Q'\) ein ganzes vielfaches von \(Q\) sein. - Also + Da \(\vec{Q}\) eine Translation um ein Grundvektor ist , muss \(\vec{Q}'\) ein ganzes vielfaches von \(\vec{Q}\) sein. + Demnach auch die Längen \[ Q' = nQ = Q + 2x \] @@ -91,7 +92,8 @@ solange wir ein unendlich grosses Kristallgitter verschieben. \[ nQ = Q + 2Q\sin(\alpha - \pi/2) \] - Wir können durch \(Q\) dividieren um unabhängig von der Läge des Grundvektors zu werden, was auch Sinn macht, da eine Skalierung eines Kristalles seine Symmetrieeigenschaften nicht tangiert. + Wir können durch \(Q\) dividieren um unabhängig von der Läge des Grundvektors zu werden, was auch Sinn macht, + da eine Skalierung eines Kristalles seine Symmetrieeigenschaften nicht tangiert. Zusätzlich können wir den Sinusterm vereinfachen. \[ n = 1 - 2\cos\alpha \quad\iff\quad -- cgit v1.2.1 From 07e868a4275c0cecd4d743e9bd0c1e4f2b7c7be1 Mon Sep 17 00:00:00 2001 From: Lukaszogg <82384106+Lukaszogg@users.noreply.github.com> Date: Tue, 20 Jul 2021 17:19:47 +0200 Subject: Korrektur und Anpassungen --- buch/papers/erdbeben/teil0.tex | 47 ++++++++++++++++--------- buch/papers/erdbeben/teil1.tex | 78 ++++++++++++++++++++++++------------------ 2 files changed, 75 insertions(+), 50 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/erdbeben/teil0.tex b/buch/papers/erdbeben/teil0.tex index 8ac5d6d..844245c 100644 --- a/buch/papers/erdbeben/teil0.tex +++ b/buch/papers/erdbeben/teil0.tex @@ -6,16 +6,29 @@ \section{Teil 0\label{erdbeben:section:teil0}} \rhead{Erdbeben} \section{Erdbebenmessung} -\subsection{Was ist ein Erdbeben} -Fabio +subsection{Was ist ein Erdbeben?} +Für das Verständnis möchten wir zuerst erklären, was ein Erdbeben genau ist. +Das soll uns helfen, eine Verknüpfung zwischen dem Naturphänomen und der mathematischen Problemstellung herzustellen. + +Unter einem Erdbeben verstehen wir eine Erschütterung des Erdkörpers. +Dabei reiben zwei tektonische Platten aneinander, welche sich durch die Gesteinsverzahnung gegenseitig blockieren. +Aufgrund dieser Haftreibung entstehen Spannungen, die sich immer mehr bis zum Tipping Point aufbauen. +Irgendwann ist der Punkt erreicht, in dem die Scherfestigkeit der Gesteine überwunden wird. +Wenn dies passiert, entlädt sich die aufgebaute Spannung und setzt enorme Energien frei, die wir als Erdbeben wahrnehmen. + +Ein Erdbeben breitet sich vom Erdbebenherd in allen Richtungen gleich aus. +Vergleichbar ist, wenn man einen Stein in einen Teich wirft und die Wellen beobachten kann, die sich ausbreiten. + \subsection{Funktion eines Seismograph} Um ein Erdbeben kenntlich zu machen, werden in der Regel Seismographen mit vielen Sensoren verwendet. -Ein Seismograph besteht im Grunde aus einer federgelagerten Masse. Wirkt eine Bodenerregung auf das Gerät ein, bleibt die gekoppelte Masse stehen aber das Gehäuse schwingt mit. +Ein Seismograph besteht im Grunde aus einer federgelagerten Masse. Wirkt eine Bodenerregung auf das Gerät ein, schwing das Gehäuse und dadurch auch die gekoppelte Masse. +Stoppt das Erdbeben, schwingt das Gehäuse nicht mehr. +Die Masse schwing jedoch in seiner Eigendynamik weiter. Relativbewegung des Bodens kann damit als Auslenkung im Zeitverlauf gemessen werden. In modernen Seismographen wird die Bodenbewegung in alle Richtungen gemessen, sowohl Horizontal als auch Vertikal. -Wir konstruieren uns eine einfachere Version eines Seismographen mit eine Gehäuse, an dem zwei Federn und eine Masse befestigt ist. +Wir konstruieren uns eine einfachere Version eines Seismographen mit eine Gehäuse, an dem zwei Federn und eine Masse befestigt sind. Ein Sensor unter der Masse misst die Position, bzw. die Auslenkung der Feder und der Masse. -Dies bedeutet unser Seismograph kann nur in eine Dimension Messwerte aufnehmen. +Dies bedeutet, unser Seismograph kann nur in eine Dimension Messwerte aufnehmen. \begin{figure} \begin{center} @@ -30,7 +43,7 @@ Wir wollen jedoch die Beschleunigung $a(t)$ des Boden bzw. die Kraft $f(t)$ welc Anhand dieser Beschleunigung bzw. der Krafteinwirkung durch die Bodenbewegung wird später das Bauwerk bemessen. Dies bedeutet, die für uns interessante Grösse $f(t)$ wird nicht durch einen Sensor erfasst. Jedoch können wir durch zweifaches ableiten der Positionsmessung $s(t)$ die Beschleunigung der Masse berechnen. -Das heisst: Die Messung ist zweifach Integriert die Kraft $f(t)$ + der Eigendynamik der Masse. +Das heisst: Die Messung ist zweifach Integriert die Kraft $f(t)$ inklusive der Eigendynamik der Masse. Um die Bewegung der Masse zu berechnen, müssen wir Gleichungen für unser System finden. \subsection{Systemgleichung} @@ -40,21 +53,21 @@ Diese lautet: m\ddot s + 2k \dot s + Ds = f \end{equation} mit den Konstanten $m$ = Masse, $k$ = Dämpfungskonstante und $D$ = Federkonstante. -Um diese nun in die Systemmatrix umzuwandeln, wird die Differentialgleichung zweiter Ordnung substituiert: -\[ {x_1}=s \qquad -{x_2}=\dot s, \qquad\] -Somit entstehen die Gleichungenür die Position $s(t)$ der Masse : -\[ \dot {x_1} = {x_2}\] +Da die DGL linear ist, kann sie in die kompaktere und einfachere Matrix-Form umgewandelt werden. Dazu wird die Differentialgleichung zweiter Ordnung substituiert: +\[ {s_1}=s \qquad +{s_2}=\dot s, \qquad\] +Somit entstehen die Gleichungen für die Position $s(t)$ der Masse : +\[ \dot {s_1} = {s_2}\] und -\[ \dot x_2 = -\frac{D}{m} {x_1} -\frac{2k}{m} {x_2} + \frac{f} {m} \] für die Geschwindigkeit $v(t)$ der Masse. +\[ \dot s_2 = -\frac{D}{m} {s_1} -\frac{2k}{m} {s_2} + \frac{f} {m} \] für die Beschleunigung $a(t)$ der Masse. Diese können wir nun in der Form -\[ {x_3}=-\frac{D}{m} {s_1} -\frac{2k}{m} {s_2} + \frac{f} {m} \] +\[ {s_3}=-\frac{D}{m} {s_1} -\frac{2k}{m} {s_2} + \frac{f} {m} \] auch als Matrix-Vektor-Gleichung darstellen. Dafür wird die Gleichung in die Zustände aufgeteilt. Die für uns relevanten Zustände sind die Position der Masse, die Geschwindigkeit der Masse und die äussere Beschleunigung des ganzen System. Dabei muss unterschieden werden, um welche Beschleunigung es sich handelt. -Das System beinhaltet sowohl eine Beschleunigung der Masse (innere Beschleunigung), als auch eine Beschleunigung der ganzen Apparatur (äussere Beschleunigung). +Das System beinhaltet sowohl eine Beschleunigung der Masse, innere Beschleunigung, als auch eine Beschleunigung der ganzen Apparatur, äussere Beschleunigung. In unserem Fall wird die äusseren Beschleunigung gesucht, da diese der Erdbebenanregung gleich kommt. \begin{equation} \frac{d}{dt} \left(\begin{array}{c} {s_1} \\ {s_2} \end{array}\right) = \left( @@ -70,11 +83,13 @@ Durch Rücksubstituion ergibt sich: \begin{array}{ccc} 0 & 1& 0 \\ - \frac{D}{m} &-\frac{2k}{m} & \frac{1} {m}\\ +0 & 0 & 0\\ \end{array}\right) \left(\begin{array}{c} s(t)\\ v(t)\\ f(t) \end{array}\right). \end{equation} Wir wissen nicht wie sich die Kraft verhält. -Deshalb treffen wir die Annahme, das sich die Kraft über die Beobachtungszeit nicht verändert. -Diese unzutreffende Annahme wird später durch einen grossen Systemfehler kompensiert. +Deshalb treffen wir die Annahme, das sich die Kraft über die Beobachtungszeit nicht verändert. +Diese Annahme ist nicht zulässig, jedoch ist dies das beste, was wir Annehmen können. +Diese unzutreffende Annahme wird späteren Berechnungen berücksichtigen werden Da die Kraft unbekannt ist, wird die letzte Zeile mit Nullen gefüllt, denn genau diese Werte wollen wir. diff --git a/buch/papers/erdbeben/teil1.tex b/buch/papers/erdbeben/teil1.tex index 52872f6..e07800f 100644 --- a/buch/papers/erdbeben/teil1.tex +++ b/buch/papers/erdbeben/teil1.tex @@ -15,7 +15,7 @@ \section{Kalman-Filter} Da wir die äussere Kraft nicht direkt messen können, benötigen wir ein Werkzeug, welches aus der gemessenen Position, die Krafteinwirkung auf unsere System schätzt. -Dies ist eine Typische Anwendung für den linearen Kalman-Filter. +Dies ist eine typische Anwendung für das Kalman-Filter. Unser Ziel ist es, anhand der Messung die eigentlich interessante Grösse $f$ zu bestimmen. Dabei wird durch eine deterministische Vorhersage, in dem der Zustand * Eigendynamik des Systems gerechnet. Die Idee dahinter ist, dass das Kalman-Filter die nicht-deterministische Grösse $f$ anhand der Messung und der Vorhersage zu bestimmen. @@ -27,7 +27,9 @@ Für ein nicht-lineares System werden Extended Kalman-Filter benötigt, bei dene Einfachheitshalber beschränken wir uns auf den linearen Fall, da dadurch die wesentlichen Punkte bereits aufgezeigt werden. \subsection{Geschichte} -Das Kalman-Filter wurde 1960 von Rudolf Emil Kalman entdeckt und direkt von der NASA für die Appollo Mission benutzt. Der Filter kommt mit wenig Rechenleistung aus und war somit dafür geeignet die Rakete bei der Navigation zu unterstützen. Das Filter schätzt den Zustand eines Systems anhand von Messungen und kann den nächsten Zustand errechnen. Eine typische Anwendungen des Kalman-Filters ist Glättung von verrauschten Daten und die Schätzung von Parametern. Dies kommt heutzutage in jedem Satellit, Navigationssystem, Smartphones und Videospielen vor. +Das Kalman-Filter wurde 1960 von Rudolf Emil Kalman entdeckt und direkt von der NASA für die Appollo Mission benutzt. +Das Filter kommt mit wenig Rechenleistung aus und war somit dafür geeignet die Rakete bei der Navigation zu unterstützen. +Das Filter schätzt den Zustand eines Systems anhand von Messungen und kann den nächsten Zustand errechnen. Eine typische Anwendungen des Kalman-Filters ist Glättung von verrauschten Daten und die Schätzung von Parametern. Dies kommt heutzutage in jedem Satellit, Navigationssystem, Smartphones und Videospielen vor. \subsection{Wahrscheinlichkeit} Das Kalman-Filter schätzt den wahrscheinlichsten Wert zwischen Normalverteilungen. @@ -80,7 +82,7 @@ Sie ist also gewichtet und die best mögliche Schätzung. \end{figure} -Was in 2 Dimensionen erklärt wurde, funktioniert auch in mehreren Dimensionen. +Was in zwei Dimensionen erklärt wurde, funktioniert auch in mehreren Dimensionen. Dieses Prinzip mach sich das Kalman Filter zu nutze, und wird von uns für die Erdbeben Berechnung genutzt. \section{Filter-Matrizen} @@ -105,7 +107,7 @@ Kovarianz: Cov(x, y) und Varianz: Var(x) = Cov(x, x) In unserem Fall ist der Anfangszustand gut bekannt. Wir gehen davon aus, dass das System in Ruhe und in Abwesenheit eines Erdbeben startet, somit kann die Matrix mit Nullen bestückt werden. -Als Initialwert für die für die Kovarianzmatrix ergibt sich +Als Initialwert für die Kovarianzmatrix ergibt sich \[ {P_0 }= @@ -127,7 +129,7 @@ Das Kalman-Filter benötigt für die Vorhersage des nächsten Zustandes eine Bes Die Dynamikmatrix bildet den Kern des Filters. Diese wurde weiter oben bereits beschrieben. Dabei wollen wird die äussere Kraft des Systems ermitteln. Da nichts über die äussere Kraft bekannt ist, müssen wir annehmen das deren Ableitung 0 ist. -Die System Vektor-Gleichung lautet daher: +Die System-Matrix lautet daher: \[ A = \left( \begin{array}{ccc} @@ -139,10 +141,12 @@ A = \left( Dabei soll der Kalman-Filter in diskreten Zeitschritten $\Delta t$ arbeiten. Die Übergangs-Matrix erhalten wir aus der Systemdynamikmatrix mittels Exponentialfunktion: \[\Phi = \exp(A\Delta t). \] +Die Matrix $\Phi$ beschreibt die Übergänge zwischen zeitlich aufeinanderfolgenden Zuständen $x_{k-1}$ und $x_{k}$ \subsubsection*{Prozessrauschkovarianzmatrix $Q$} Die Prozessrauschmatrix teilt dem Filter mit, wie sich der Prozess verändert. -Kalman-Filter berücksichtigen Unsicherheiten wie Messfehler und -rauschen. +Kalman-Filter berücksichtigen sowohl Unsicherheiten wie Messfehler und -rauschen. +In der Matrix $Q$ geht es jedoch im die Unsicherheit die der Prozess mit sich bringt. Bei unserem Modell könnte das beispielsweise ein Windstoss an die Masse sein. Für uns wäre dies: \[ @@ -158,22 +162,23 @@ Die Standabweichungen müssten statistisch ermittelt werden, da der Fehler nicht Das Bedeutet wiederum dass $Q$ die Unsicherheit des Prozesses beschreibt und nicht die der Messung. \subsubsection*{Messmatrix $H$} -Die Messmatrix gibt an, welche Parameter gemessen werden +Die Messmatrix gibt an, welche Parameter gemessen werden. +$H$ ist die Gleichung die für die Vorhersage der Messung. In unserem Falle ist es die Position der Massen. \[ H = (1, 0, 0) \] \subsubsection*{Messrauschkovarianz $R$} -Die Messrauschkovarianzmatrix beinhaltet, wie der Name es schon sagt, das Rauschen der Positionsmessung. +Die Messrauschkovarianzmatrix beinhaltet, wie der Name schon sagt, das Rauschen der Messung. In unserem Fall wird nur die Position der Masse gemessen. Da wir keine anderen Sensoren haben ist $R$ lediglich: \[ R= ({\sigma_{sensor}}^2). \] Diese Messrauchen wird meistens vom Sensorhersteller angegeben. -Für unsere Theoretische Apparatur wird hier ein kleiner Fehler eingesetzt da heutige Sensoren sehr genau messen können. +Für unsere theoretische Apparatur wird hier ein kleiner Fehler eingesetzt da heutige Sensoren sehr genau messen können. \subsection{Fiter-Agorithmus} Nachdem alle Parameter aufgestellt sind, wird das Filter initialisiert. -Zuerst wird der nächste Zustand der Feder vorhergesagt, danach wird die Messung präzisiert und laufend zu aktualisieren. +Zuerst wird der nächste Zustand der Masse vorhergesagt, danach wird die Messung präzisiert und laufend aktualisiert. Das Filter berechnet aufgrund der aktuellen Schätzung eine Vorhersage. Diese wird, sobald verfügbar, mit der Messung verglichen. Aus dieser Differenz und den Unsicherheiten des Prozesses ($Q$) und der Messung ($R$) wird der wahrscheinlichste, neue Zustand geschätzt. @@ -182,14 +187,14 @@ Aus dieser Differenz und den Unsicherheiten des Prozesses ($Q$) und der Messung Im Filterschritt Vorhersage wird der nächste Zustand anhand des Anfangszustand und der Systemmatrix berechnet. Dies funktioniert mit dem Rechenschritt: \[ -{x_{k|k-1}}=\Phi \cdot {x_{k-1|k-1}}= \exp(A\Delta t)\cdot{x_{k|k-1}}. +{x_{k-1}}=\Phi \cdot {x_{k-1}}= \exp(A\Delta t)\cdot{x_{k-1}}. \] Die Kovarianz $P_{pred}$ wird ebenfalls neu berechnet. Da wir ein mehrdimensionales System haben, kommt noch die Prozessunsicherheit $Q$ dazu, so dass die Unsicherheit des Anfangsfehlers $P$ laufend verändert. Dies funktioniert durch multiplizieren der Systemmatrix mit dem aktualisierten Anfangsfehler. Dazu wird noch die Prozessunsicherheit addiert, somit entsteht die Gleichung -\[ {P_{k|k-1}} = {\Phi_k} {P_{k-1|k-1}} {\Phi_k} ^T + {Q_{k-1}} .\] -Es vergeht genau $dt$ Zeit, und dieser Vorgang wird wiederholt. +\[ {P_{k-1}} = {\Phi_k} {P_{k-1}} {\Phi_k} ^T + {Q_{k-1}} .\] +Es vergeht genau $t$ Zeit, und dieser Vorgang wird wiederholt. Dabei wird in den späteren Schritten überprüft, wie genau die letzte Anpassung von $P$ zur Messung stimmt. Ist der Unterschied klein, wird die Kovarianz $P$ kleiner, ist der Unterschied gross, wird auch die Kovarianz grösser. Das Filter passt sich selber an und korrigiert sich bei grosser Abweichung. @@ -199,10 +204,10 @@ Der Sensor wurde noch nicht benutz, doch genau der liefert Werte für das Filter Die aktuellen Messwerte $z$ werden die Innovation $w$ mit dem Zustandsvektor $x$ und der Messmatrix $H$ zusammengerechnet. Hier bei wird lediglich die Messung mit dem Fehler behaftet, und die Messmatrix $H$ mit der Vorhersage multipliziert -\[{w_{k}}={z_{k}}-{H_{k}}\cdot{x_{k|k-1}}.\] +\[{w_{k}}={z_{k}}-{H}\cdot{x_{k-1}}.\] Die Innovation ist der Teil der Messung, die nicht durch die Systemdynamik erklärt werden kann. -Die Hilfsgröße Innovation beschreibt, wie genau die Vorhersage den aktuellen Messwert mittels der Systemmatrix $\phi$ beschreiben kann. +Die Hilfsgröße Innovation beschreibt, wie genau die Vorhersage den aktuellen Messwert mittels der Systemmatrix $\Phi$ beschreiben kann. Für eine schlechte Vorhersage wird die dazugehörige Innovation gross, für eine genaue Vorhersage dagegen klein sein. Entsprechende Korrekturen müssen dann gross bzw. nur gering ausfallen. Innovation = Messung - Vorhersage. Dies ist intuitiv logisch, eine Innovation von 0 bedeutet, dass die Messung nichts Neues hervorbrachte. @@ -210,34 +215,34 @@ Innovation = Messung - Vorhersage. Dies ist intuitiv logisch, eine Innovation vo Im nächsten Schritt wir analysiert, mit welcher Kovarianz weiter gerechnet wird. Hierbei wird die Unsicherheit $P$, die Messmatrix $H$ und die Messunsicherheit $R$ miteinander verrechnet. \[ -{S_{k}}={H_{k}}{P_{k|k-1}}{H_{k}}^T+{R_{k}} +{S_{k}}={H}{P_{k-1}}{H}^T+{R_{k}} \] \subsubsection*{Aktualisieren} -Im nächsten Schritt kommt nun die Wahrscheinlichkeit nach Gauss dazu. +Im nächsten Schritt kommt nun die Wahrscheinlichkeit dazu. \[ -{K_{k}}= {{P_{k|k-1}} \cdot {H_{k}^T}}\cdot {S_{k}}^{-1} +{K_{k}}= {{P_{k-1}} \cdot {H_{k}^T}}\cdot {S_{k}}^{-1} \] Dieser Vorgang wird Kalman-Gain genannt. Er sagt aus, welcher Kurve mehr Vertraut werden soll, dem Messwert oder der Systemdynamik. -Das Kalman-Gain wird geringer wen der Messwert dem vorhergesagten Systemzustand entspricht. -Sind die Messwerte komplett anders als die Vorhersage, wo werden die Elemente in der Matrix $K$ grösser. -Anhand der Informationen aus dem Kalman-Gain $K$ wird das System geupdated. +Das Kalman-Gain wird geringer, wenn der Messwert dem vorhergesagten Systemzustand entspricht. +Sind die Messwerte komplett anders als die Vorhersage, werden die Elemente in der Matrix $K$ grösser. +Anhand der Informationen aus dem Kalman-Gain $K$ wird das System aktualisiert. \[ -{x_{k|k}}={x_{k|k-1}}+({K_{k}}\cdot {w_{k}}) +{x_{k|k}}={x_{k-1}}+({K_{k}}\cdot {w_{k}}) \] Dazu kommt eine neue Kovarianz für den nächste Vorhersageschritt: \[ -{P_{k|k}}=(I-({K_{k}} \cdot {H_{k}})) \cdot {P_{k|k-1}} +{P_{k}}=(I-({K_{k}} \cdot {H})) \cdot {P_{k-1}} \] -Der ganze Ablauf wird nun zum Algorithmus und beginnt wieder mit der Vorhersage +Der ganze Algorithmus und beginnt wieder mit der Vorhersage \[ -{x_{k|k-1}}=\Phi \cdot {x_{k-1|k-1}}= \exp(A\Delta t)\cdot{x_{k|k-1}}. +{x_{k-1}}=\Phi \cdot {x_{k-1}}= \exp(A\Delta t)\cdot{x_{k-1}}. \] @@ -246,20 +251,25 @@ Zusammenfassend kann das Kalman-Filter in offizieller Typus dargestellt werden. Dabei beginnt das Filter mit dem Anfangszustand für $k=0$ 1. Nächster Zustand vorhersagen -\[{x_{k|k-1}}=\Phi \cdot {x_{k-1|k-1}}= \exp(A\Delta t)\cdot{x_{k|k-1}}.\] +\[{x_{k-1}}={\Phi} \cdot {x_{k-1}}= \exp(A\Delta t)\cdot{x_{k-1}}.\] 2. Nächste Fehlerkovarianz vorhersagen -\[{P_{k|k-1}}={\Phi _{k}} {P_{k-1|k-1}} {\Phi _{k}}^T + {Q_{k-1}}.\] +\[{P_{k-1}}={\Phi} {P_{k-1}} {\Phi _{k}}^T + {Q_{k-1}}.\] -3. Das Kalman Filter anwenden -\[{K_{k}}= {P_{k|k-1}} \cdot {H_{k}^T}\cdot {S_{k}^{-1}}\] +3. Zustand wird gemessen +\[{w_{k}}={z_{k}}-{H}\cdot{x_{k-1}}.\] -4. Schätzung aktualisieren -\[{x_{k|k}}={x_{k|k-1}}+({K_{k}}\cdot {w_{k}}) \] +4. Innovation (= Messung - Vorhersage) +\[ {S_{k}}={H}{P_{k-1}}{H}^T+{R_{k}}\] -5. Fehlerkovarianz aktualisieren -\[{P_{k|k}}=(I-({K_{k}}\cdot {H_{k}})) \cdot {P_{k|k-1}} \] +5. Das Kalman Filter anwenden +\[{K_{k}}= {P_{k-1}} \cdot {H^T}\cdot {S_{k}^{-1}}\] +6. Schätzung aktualisieren +\[{x_{k}}={x_{k-1}}+({K_{k}}\cdot {w_{k}}) \] -6. Die Outputs von $k$ werden die Inputs für ${k-1}$ und werden wieder im Schritt 1 verwendet +7. Fehlerkovarianz aktualisieren +\[{P_{k}}=(I-({K_{k}}\cdot {H})) \cdot {P_{k-1}} \] + +8. Die Outputs von $k$ werden die Inputs für ${k-1}$ und werden wieder im Schritt 1 verwendet -- cgit v1.2.1 From c8ac17e1f78eca79d8a2a62d0567f5ee02f4575c Mon Sep 17 00:00:00 2001 From: JODBaer Date: Wed, 21 Jul 2021 15:17:21 +0200 Subject: update --- .../RS presentation/images/polynom1 - Kopie.tex | 33 ++++ buch/papers/reedsolomon/dtf.tex | 10 +- buch/papers/reedsolomon/experiments/codiert.txt | 192 ++++++++++----------- buch/papers/reedsolomon/experiments/decodiert.txt | 192 ++++++++++----------- buch/papers/reedsolomon/experiments/empfangen.txt | 192 ++++++++++----------- buch/papers/reedsolomon/experiments/f.m | 17 +- buch/papers/reedsolomon/experiments/fehler.txt | 192 ++++++++++----------- buch/papers/reedsolomon/experiments/locator.txt | 192 ++++++++++----------- buch/papers/reedsolomon/experiments/plot.tex | 91 ++++++++++ buch/papers/reedsolomon/experiments/signal.txt | 192 ++++++++++----------- buch/papers/reedsolomon/experiments/syndrom.txt | 192 ++++++++++----------- buch/papers/reedsolomon/idee.tex | 27 +-- buch/papers/reedsolomon/images/plotfft.tex | 77 +++++++++ buch/papers/reedsolomon/images/polynom2.tex | 88 +++++----- 14 files changed, 946 insertions(+), 741 deletions(-) create mode 100644 buch/papers/reedsolomon/RS presentation/images/polynom1 - Kopie.tex create mode 100644 buch/papers/reedsolomon/experiments/plot.tex create mode 100644 buch/papers/reedsolomon/images/plotfft.tex (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/RS presentation/images/polynom1 - Kopie.tex b/buch/papers/reedsolomon/RS presentation/images/polynom1 - Kopie.tex new file mode 100644 index 0000000..038e93e --- /dev/null +++ b/buch/papers/reedsolomon/RS presentation/images/polynom1 - Kopie.tex @@ -0,0 +1,33 @@ +% polynome1 +%------------------- +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math} +\newcommand{\teiler}{40} +\begin{document} + + +\begin{tikzpicture}[>=latex,thick] + + \begin{axis}[ + axis lines = left, + xlabel = \(x\), + ylabel = {\(f(x)\)}, + ] + %Below the red parabola is defined + \addplot[ + color=blue, + ] + coordinates { + (0,23.1)(10,27.5)(20,32)(30,37.8)(40,44.6)(60,61.8)(80,83.8)(100,114) + }; + %Here the blue parabola is defined + + \end{axis} +\end{tikzpicture} +\end{document} + diff --git a/buch/papers/reedsolomon/dtf.tex b/buch/papers/reedsolomon/dtf.tex index d276760..f011ac3 100644 --- a/buch/papers/reedsolomon/dtf.tex +++ b/buch/papers/reedsolomon/dtf.tex @@ -26,7 +26,9 @@ Kommen nuun drei Fehler... hinzu zu diesem codierten Signal sind diese nicht zu Nach dem Empfangen... und decodieren ... erkennt man die fehlerhafte information in den Punkten 64 bis 100. Filtert man nur diese Punkte heraus und Transformiert sie mit Fourier erhält man die stellen an denen die Fehler sich eingeschlichen haben. - - - - +\begin{figure} + \centering + \input{papers/reedsolomon/images/plotfft.tex} + \caption{Übertragungsabfolge \ref{reedsolomon:subsection:Übertragungsabfolge}} + \label{fig:sendorder} +\end{figure} \ No newline at end of file diff --git a/buch/papers/reedsolomon/experiments/codiert.txt b/buch/papers/reedsolomon/experiments/codiert.txt index a57fb3e..4a481d8 100644 --- a/buch/papers/reedsolomon/experiments/codiert.txt +++ b/buch/papers/reedsolomon/experiments/codiert.txt @@ -1,96 +1,96 @@ -305 -114.502535214877 -86.2532974498148 -10.2450106137816 -68.1373455525487 -12.2281691909479 -3.18633753309102 -20.0196562371296 -12.2767246322969 -11.7216140392957 -24.8752690882777 -16.2978466490127 -23.2518118214845 -16.5845482358975 -15.6140674930647 -33.396205039034 -20.7846096908265 -19.3528753492232 -16.3850575123207 -20.9502842499826 -17.064465004608 -11.7252100463969 -31.1005540675575 -29.4336965143315 -26.6270539113887 -18.0164813754079 -24.7444243500799 -7.51007272621331 -4.06984153366859 -27.215173252412 -17.2339815787965 -23.5539874432174 -22.2710574513201 -14.7961619823174 -25.5530773949688 -33.4185813747547 -11.5478676394508 -21.0691619228239 -28.7948800016184 -12.3795084046074 -17.0082930449459 -19.7473571196866 -18.4490385219626 -12.2195365467659 -7.58568158110485 -6.02300839250873 -14.565530706253 -3.78959213976527 -21 -3.78959213976527 -14.565530706253 -6.02300839250873 -7.58568158110485 -12.2195365467659 -18.4490385219626 -19.7473571196866 -17.0082930449459 -12.3795084046074 -28.7948800016184 -21.0691619228239 -11.5478676394508 -33.4185813747547 -25.5530773949688 -14.7961619823174 -22.2710574513201 -23.5539874432174 -17.2339815787965 -27.215173252412 -4.06984153366859 -7.51007272621331 -24.7444243500799 -18.0164813754079 -26.6270539113887 -29.4336965143315 -31.1005540675575 -11.7252100463969 -17.064465004608 -20.9502842499826 -16.3850575123207 -19.3528753492232 -20.7846096908265 -33.396205039034 -15.6140674930647 -16.5845482358975 -23.2518118214845 -16.2978466490127 -24.8752690882777 -11.7216140392957 -12.2767246322969 -20.0196562371296 -3.18633753309102 -12.2281691909479 -68.1373455525487 -10.2450106137816 -86.2532974498148 -114.502535214877 +0,284 +1,131.570790435043 +2,41.9840308053375 +3,12.1189172092243 +4,23.8408857476069 +5,69.1793197789512 +6,24.0186013379153 +7,37.3066577242559 +8,18.2010889773887 +9,12.3214904922455 +10,15.6627133315015 +11,24.5237955316204 +12,32.1114345314062 +13,44.9845039238714 +14,13.5324640263625 +15,10.1736266929292 +16,4.58257569495584 +17,23.217268502288 +18,16.5769107917917 +19,6.89948680823017 +20,4.84567134895776 +21,10.4219666223433 +22,43.6179140616243 +23,35.9073375743642 +24,15.0332963783729 +25,21.7594021268945 +26,23.2496572716993 +27,17.9815599423852 +28,11.3577742151117 +29,38.467599433197 +30,28.3035029562577 +31,9.54321919833388 +32,21.377558326432 +33,17.6292439561917 +34,12.6951848921471 +35,20.0667752354841 +36,22.9097309529208 +37,8.78894645948548 +38,13.360682005498 +39,25.1757616314718 +40,38.0357773686457 +41,18.4633287776253 +42,19.0584505869806 +43,10.8631093309173 +44,12.6147770818983 +45,12.5398140021274 +46,34.901983501949 +47,22.3480442021702 +48,6 +49,22.3480442021702 +50,34.901983501949 +51,12.5398140021274 +52,12.6147770818983 +53,10.8631093309173 +54,19.0584505869806 +55,18.4633287776253 +56,38.0357773686457 +57,25.1757616314718 +58,13.360682005498 +59,8.78894645948548 +60,22.9097309529208 +61,20.0667752354841 +62,12.6951848921471 +63,17.6292439561917 +64,21.377558326432 +65,9.54321919833388 +66,28.3035029562577 +67,38.467599433197 +68,11.3577742151117 +69,17.9815599423852 +70,23.2496572716993 +71,21.7594021268945 +72,15.0332963783729 +73,35.9073375743642 +74,43.6179140616243 +75,10.4219666223433 +76,4.84567134895776 +77,6.89948680823017 +78,16.5769107917917 +79,23.217268502288 +80,4.58257569495584 +81,10.1736266929292 +82,13.5324640263625 +83,44.9845039238714 +84,32.1114345314062 +85,24.5237955316204 +86,15.6627133315015 +87,12.3214904922455 +88,18.2010889773887 +89,37.3066577242559 +90,24.0186013379153 +91,69.1793197789512 +92,23.8408857476069 +93,12.1189172092243 +94,41.9840308053375 +95,131.570790435043 diff --git a/buch/papers/reedsolomon/experiments/decodiert.txt b/buch/papers/reedsolomon/experiments/decodiert.txt index 5295e2a..f6221e6 100644 --- a/buch/papers/reedsolomon/experiments/decodiert.txt +++ b/buch/papers/reedsolomon/experiments/decodiert.txt @@ -1,96 +1,96 @@ -5.05208333333333 -4.02603841132848 -3.9866906905523 -2.98928833660435 -5.01944413899123 -5.01851886476838 -7.97795274966527 -7.9523893732277 -5.97396514457618 -4.00519657776884 -8.0006276895628 -4.97630831658918 -3.97918030102376 -9.01298821331865 -9.03553822210758 -6.02435577439403 -6.005269315244 -6.00739475784899 -2.02214193521707 -3.02175993431401 -5.00158984940366 -1.98176205240977 -7.97728830439693 -1.98491220960989 -1.98958333333333 -1.98491220960989 -1.97728880273589 -3.98152108172961 -3.00171929847136 -9.02175649397959 -4.02211963444795 -2.00740795901169 -9.00524899981178 -10.0243555198185 -4.03562322003676 -1.01362103081199 -2.97918487756672 -3.97630844288113 -6.00063199465927 -3.00522617023784 -5.97396514457618 -6.95239288504068 -1.97810392013073 -1.01862378300238 -3.0194483612015 -2.98928833660435 -3.9866906905523 -5.02603060999077 -1.05208333333333 -3.02605136876764 -7.9866590265379 -0.0177592928994289 -9.01944131204563 -7.01851125156932 -4.97798278395618 -5.95239757681758 -1.97397894668217 -5.00517880987882 -10.0006251063956 -4.97630831658918 -4.97917756274958 -2.01326692505463 -5.0355927170407 -6.02435577439403 -0.0275599094902566 -0.0115837187254189 -0.0258777610142382 -0.0224618032819705 -0.0441059468994403 -0.0474504002669344 -0.0227694695500614 -0.0271436638090525 -0.0104166666666661 -0.027143663809052 -0.0227694695500605 -0.0474504002669342 -0.04410594689944 -0.0224618032819704 -0.0258777610142386 -0.0115837187254188 -0.027559909490256 -0.0245124379481791 -0.0499782237195213 -0.0401432022864264 -0.023292374765623 -0.0237974288564093 -0.0143895905726623 -0.0271745729691686 -0.0275599094902561 -0.051550167218498 -0.0358255004834538 -0.0247005083663728 -0.0210194725405181 -0.0177592928994299 -0.0261327016093146 -0.0314909067039408 +0,6.05208333333333 +1,6.02602539785853 +2,0.0261327016093151 +3,5.98927158561317 +4,4.019445724874 +5,0.0247005083663722 +6,4.97798278395618 +7,1.95246440445439 +8,0.974000110512201 +9,2.00528527696027 +10,1.00071804528155 +11,1.97630907888264 +12,0.0232923747656228 +13,6.01302820392331 +14,3.03567381915226 +15,5.02435590137329 +16,7.00526061008995 +17,5.00739608089369 +18,5.02211514480064 +19,4.02175864806658 +20,1.00236543833726 +21,4.98147315261261 +22,8.97728828610336 +23,8.98481304394618 +24,2.98958333333333 +25,1.98491220960989 +26,5.97728835934715 +27,5.98144124907561 +28,4.00163839998525 +29,2.02176249296313 +30,9.02210713874162 +31,1.00742763919872 +32,1.00557258081044 +33,1.02435888848794 +34,2.03577412756745 +35,6.01302820392331 +36,5.97917574041123 +37,0.976310374034338 +38,9.00062625447998 +39,7.00515849238528 +40,6.97396416790894 +41,0.95256880864368 +42,8.97794719866783 +43,9.01850701506487 +44,10.0194409579917 +45,8.98926601525997 +46,7.9866590265379 +47,5.02603060999077 +48,2.05208333333333 +49,4.02603841132848 +50,0.986882897867895 +51,0.0177592928994285 +52,9.01944131204563 +53,3.0185365665612 +54,2.97803642439316 +55,2.95243072164649 +56,4.97396651395488 +57,6.00516695947321 +58,0.0143895905726619 +59,7.97630812771393 +60,5.97917574041123 +61,9.01298821331865 +62,3.03567381915226 +63,4.02435609145793 +64,0.0275599094902563 +65,0.0115837187254191 +66,0.025877761014238 +67,0.0224618032819697 +68,0.04410594689944 +69,0.0474504002669341 +70,0.0227694695500626 +71,0.0271436638090525 +72,0.0104166666666667 +73,0.0271436638090523 +74,0.0227694695500608 +75,0.0474504002669343 +76,0.0441059468994397 +77,0.0224618032819701 +78,0.0258777610142379 +79,0.0115837187254183 +80,0.027559909490256 +81,0.0245124379481793 +82,0.0499782237195209 +83,0.0401432022864265 +84,0.0232923747656228 +85,0.0237974288564099 +86,0.0143895905726624 +87,0.0271745729691685 +88,0.0275599094902567 +89,0.0515501672184983 +90,0.0358255004834542 +91,0.024700508366373 +92,0.0210194725405171 +93,0.0177592928994296 +94,0.0261327016093158 +95,0.0314909067039411 diff --git a/buch/papers/reedsolomon/experiments/empfangen.txt b/buch/papers/reedsolomon/experiments/empfangen.txt index 326dd83..38c13b0 100644 --- a/buch/papers/reedsolomon/experiments/empfangen.txt +++ b/buch/papers/reedsolomon/experiments/empfangen.txt @@ -1,96 +1,96 @@ -305 -114.502535214877 -86.2532974498148 -10.2450106137816 -68.1373455525487 -12.2281691909479 -4.75208293424194 -20.0196562371296 -12.2767246322969 -11.7216140392957 -24.8752690882777 -16.2978466490127 -23.2518118214845 -16.5845482358975 -15.6140674930647 -33.396205039034 -20.7846096908265 -19.3528753492232 -16.3850575123207 -20.9502842499826 -19.0535931901409 -11.7252100463969 -31.1005540675575 -29.4336965143315 -26.6270539113887 -18.0164813754079 -24.7444243500799 -7.51007272621331 -4.06984153366859 -27.215173252412 -17.2339815787965 -23.5539874432174 -22.2710574513201 -14.7961619823174 -25.5530773949688 -33.4185813747547 -11.5478676394508 -21.0691619228239 -28.7948800016184 -12.3795084046074 -17.0082930449459 -19.7473571196866 -18.4490385219626 -12.2195365467659 -7.58568158110485 -6.02300839250873 -14.565530706253 -3.78959213976527 -21 -3.78959213976527 -14.565530706253 -6.02300839250873 -7.58568158110485 -12.2195365467659 -18.4490385219626 -19.7473571196866 -17.0082930449459 -12.3795084046074 -28.7948800016184 -21.0691619228239 -11.5478676394508 -33.4185813747547 -25.5530773949688 -14.7961619823174 -22.2710574513201 -23.5539874432174 -17.2339815787965 -27.215173252412 -4.06984153366859 -7.51007272621331 -24.7444243500799 -18.0164813754079 -26.6270539113887 -29.4336965143315 -30.3915028428898 -11.7252100463969 -17.064465004608 -20.9502842499826 -16.3850575123207 -19.3528753492232 -20.7846096908265 -33.396205039034 -15.6140674930647 -16.5845482358975 -23.2518118214845 -16.2978466490127 -24.8752690882777 -11.7216140392957 -12.2767246322969 -20.0196562371296 -3.18633753309102 -12.2281691909479 -68.1373455525487 -10.2450106137816 -86.2532974498148 -114.502535214877 +0,284 +1,131.570790435043 +2,41.9840308053375 +3,12.1189172092243 +4,23.8408857476069 +5,69.1793197789512 +6,23.6290258699579 +7,37.3066577242559 +8,18.2010889773887 +9,12.3214904922455 +10,15.6627133315015 +11,24.5237955316204 +12,32.1114345314062 +13,44.9845039238714 +14,13.5324640263625 +15,10.1736266929292 +16,4.58257569495584 +17,23.217268502288 +18,16.5769107917917 +19,6.89948680823017 +20,5.55320238736303 +21,10.4219666223433 +22,43.6179140616243 +23,35.9073375743642 +24,15.0332963783729 +25,21.7594021268945 +26,23.2496572716993 +27,17.9815599423852 +28,11.3577742151117 +29,38.467599433197 +30,28.3035029562577 +31,9.54321919833388 +32,21.377558326432 +33,17.6292439561917 +34,12.6951848921471 +35,20.0667752354841 +36,22.9097309529208 +37,8.78894645948548 +38,13.360682005498 +39,25.1757616314718 +40,38.0357773686457 +41,18.4633287776253 +42,19.0584505869806 +43,10.8631093309173 +44,12.6147770818983 +45,12.5398140021274 +46,34.901983501949 +47,22.3480442021702 +48,6 +49,22.3480442021702 +50,34.901983501949 +51,12.5398140021274 +52,12.6147770818983 +53,10.8631093309173 +54,19.0584505869806 +55,18.4633287776253 +56,38.0357773686457 +57,25.1757616314718 +58,13.360682005498 +59,8.78894645948548 +60,22.9097309529208 +61,20.0667752354841 +62,12.6951848921471 +63,17.6292439561917 +64,21.377558326432 +65,9.54321919833388 +66,28.3035029562577 +67,38.467599433197 +68,11.3577742151117 +69,17.9815599423852 +70,23.2496572716993 +71,21.7594021268945 +72,15.0332963783729 +73,35.9073375743642 +74,44.6135417384784 +75,10.4219666223433 +76,4.84567134895776 +77,6.89948680823017 +78,16.5769107917917 +79,23.217268502288 +80,4.58257569495584 +81,10.1736266929292 +82,13.5324640263625 +83,44.9845039238714 +84,32.1114345314062 +85,24.5237955316204 +86,15.6627133315015 +87,12.3214904922455 +88,18.2010889773887 +89,37.3066577242559 +90,24.0186013379153 +91,69.1793197789512 +92,23.8408857476069 +93,12.1189172092243 +94,41.9840308053375 +95,131.570790435043 diff --git a/buch/papers/reedsolomon/experiments/f.m b/buch/papers/reedsolomon/experiments/f.m index 5e4da85..bf2587c 100644 --- a/buch/papers/reedsolomon/experiments/f.m +++ b/buch/papers/reedsolomon/experiments/f.m @@ -51,6 +51,7 @@ syndrom(1:N,1) = zeros(N,1) plot(abs(syndrom)); xlim([1, l]); title("Syndrom"); + pause() locator = abs(fft(syndrom)) @@ -60,14 +61,12 @@ xlim([1, l]); title("Locator"); pause() -writematrix(abs(signal), 'signal.txt') -writematrix(abs(codiert), 'codiert.txt') -writematrix(fehler, 'fehler.txt') -writematrix(abs(empfangen), 'empfangen.txt') -writematrix(abs(decodiert), 'decodiert.txt') -writematrix(abs(syndrom), 'syndrom.txt') -writematrix(locator, 'locator.txt') - - +writematrix([transpose(counter), abs(signal)], 'signal.txt') +writematrix([transpose(counter), abs(codiert)], 'codiert.txt') +writematrix([transpose(counter), fehler], 'fehler.txt') +writematrix([transpose(counter), abs(empfangen)], 'empfangen.txt') +writematrix([transpose(counter), abs(decodiert)], 'decodiert.txt') +writematrix([transpose(counter), abs(syndrom)], 'syndrom.txt') +writematrix([transpose(counter), locator], 'locator.txt') diff --git a/buch/papers/reedsolomon/experiments/fehler.txt b/buch/papers/reedsolomon/experiments/fehler.txt index b8f9afb..23f1a83 100644 --- a/buch/papers/reedsolomon/experiments/fehler.txt +++ b/buch/papers/reedsolomon/experiments/fehler.txt @@ -1,96 +1,96 @@ -0 -0 -0 -0 -0 -0 -2 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -2 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 +0,0 +1,0 +2,0 +3,0 +4,0 +5,0 +6,2 +7,0 +8,0 +9,0 +10,0 +11,0 +12,0 +13,0 +14,0 +15,0 +16,0 +17,0 +18,0 +19,0 +20,2 +21,0 +22,0 +23,0 +24,0 +25,0 +26,0 +27,0 +28,0 +29,0 +30,0 +31,0 +32,0 +33,0 +34,0 +35,0 +36,0 +37,0 +38,0 +39,0 +40,0 +41,0 +42,0 +43,0 +44,0 +45,0 +46,0 +47,0 +48,0 +49,0 +50,0 +51,0 +52,0 +53,0 +54,0 +55,0 +56,0 +57,0 +58,0 +59,0 +60,0 +61,0 +62,0 +63,0 +64,0 +65,0 +66,0 +67,0 +68,0 +69,0 +70,0 +71,0 +72,0 +73,0 +74,1 +75,0 +76,0 +77,0 +78,0 +79,0 +80,0 +81,0 +82,0 +83,0 +84,0 +85,0 +86,0 +87,0 +88,0 +89,0 +90,0 +91,0 +92,0 +93,0 +94,0 +95,0 diff --git a/buch/papers/reedsolomon/experiments/locator.txt b/buch/papers/reedsolomon/experiments/locator.txt index 421d36e..b28988c 100644 --- a/buch/papers/reedsolomon/experiments/locator.txt +++ b/buch/papers/reedsolomon/experiments/locator.txt @@ -1,96 +1,96 @@ -0.0301224340566959 -0.141653026854878 -0.138226631799375 -0.0339903276086926 -0.310585462557496 -0.551427312631386 -0.628514858396816 -0.511023862515591 -0.275861355940448 -0.0502396354182231 -0.0901855025475772 -0.110759344849757 -0.0684618905062958 -0.0362855426992255 -0.0697096919781522 -0.109288539370249 -0.0923187999496619 -0.0512198536768151 -0.274192386987786 -0.513496149536541 -0.633154426602464 -0.553283743533939 -0.307840573214511 -0.0341664350328389 -0.140270857956999 -0.138527177682829 -0.0296375477361526 -0.0816962563186064 -0.0944383203811072 -0.0263932110686224 -0.058588134840207 -0.0737117341600011 -0.0239973937701886 -0.0464215468420024 -0.0616218854220982 -0.0221963086695035 -0.0390764778127614 -0.0537637218396927 -0.0208333333333355 -0.0343107696069015 -0.0483441215964522 -0.0198077862118787 -0.0311207395968709 -0.0444955089373439 -0.0190533549944134 -0.0290049795038704 -0.0417536642697542 -0.0185261550443044 -0.0277059929762204 -0.0398606084144781 -0.0181978813094801 -0.0271098219177536 -0.0386836665079658 -0.018051861104682 -0.0272138992557153 -0.0381891287148298 -0.0180809085252426 -0.0281418959420076 -0.0384596362516644 -0.0182864418432244 -0.0302250788423177 -0.0397874837986374 -0.0186786556701704 -0.0342489348284176 -0.0429932815348636 -0.0192777878591794 -0.0422808966932026 -0.0506815964680558 -0.0201167847752232 -0.0615048274405276 -0.074495389450843 -0.0212460545964937 -0.142602265816219 -0.273502052865438 -0.325309673287598 -0.272705389655347 -0.149074257381343 -0.0247199397628717 -0.0680137859566989 -0.0753882708734869 -0.0273637831604916 -0.0407867704453288 -0.0632964886441987 -0.0309749128751131 -0.0315202035072016 -0.0627625211892194 -0.0360843918243526 -0.0279492055149482 -0.0677921493367224 -0.0437167157553051 -0.0270640150996341 -0.0783380025231665 -0.0561293738314322 -0.0278742033265804 -0.0981443889498686 -0.0794543457386637 +0,0.0301224340567056 +1,0.141653026854885 +2,0.138226631799377 +3,0.0339903276086929 +4,0.310585462557496 +5,0.551427312631385 +6,0.628514858396814 +7,0.51102386251559 +8,0.275861355940449 +9,0.0502396354182268 +10,0.090185502547573 +11,0.110759344849756 +12,0.0684618905063001 +13,0.0362855426992259 +14,0.0697096919781468 +15,0.109288539370248 +16,0.0923187999496653 +17,0.0512198536768088 +18,0.274192386987782 +19,0.51349614953654 +20,0.633154426602466 +21,0.553283743533942 +22,0.307840573214514 +23,0.0341664350328392 +24,0.140270857957 +25,0.138527177682831 +26,0.029637547736156 +27,0.0816962563186052 +28,0.0944383203811073 +29,0.0263932110686261 +30,0.0585881348402056 +31,0.0737117341599984 +32,0.0239973937701886 +33,0.0464215468420038 +34,0.0616218854220964 +35,0.0221963086695009 +36,0.0390764778127646 +37,0.0537637218396934 +38,0.0208333333333332 +39,0.0343107696069045 +40,0.0483441215964552 +41,0.0198077862118806 +42,0.0311207395968725 +43,0.0444955089373458 +44,0.0190533549944159 +45,0.0290049795038723 +46,0.0417536642697558 +47,0.0185261550443084 +48,0.0277059929762261 +49,0.0398606084144816 +50,0.0181978813094817 +51,0.0271098219177584 +52,0.0386836665079729 +53,0.0180518611046889 +54,0.0272138992557141 +55,0.0381891287148314 +56,0.0180809085252469 +57,0.0281418959420061 +58,0.0384596362516637 +59,0.0182864418432272 +60,0.0302250788423173 +61,0.0397874837986351 +62,0.0186786556701694 +63,0.0342489348284216 +64,0.0429932815348666 +65,0.0192777878591759 +66,0.0422808966931999 +67,0.0506815964680563 +68,0.0201167847752226 +69,0.0615048274405271 +70,0.0744953894508454 +71,0.021246054596492 +72,0.142602265816215 +73,0.273502052865436 +74,0.325309673287599 +75,0.272705389655349 +76,0.149074257381345 +77,0.0247199397628712 +78,0.0680137859566976 +79,0.075388270873485 +80,0.0273637831604903 +81,0.0407867704453274 +82,0.0632964886441949 +83,0.0309749128751093 +84,0.0315202035072035 +85,0.0627625211892184 +86,0.0360843918243497 +87,0.02794920551495 +88,0.0677921493367236 +89,0.0437167157553067 +90,0.0270640150996317 +91,0.0783380025231622 +92,0.0561293738314281 +93,0.0278742033265809 +94,0.0981443889498639 +95,0.0794543457386548 diff --git a/buch/papers/reedsolomon/experiments/plot.tex b/buch/papers/reedsolomon/experiments/plot.tex new file mode 100644 index 0000000..bf9aadc --- /dev/null +++ b/buch/papers/reedsolomon/experiments/plot.tex @@ -0,0 +1,91 @@ +% polynome1 +%------------------- +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usepackage{pgfplotstable} +\usepackage{filecontents} +\usetikzlibrary{arrows,intersections,math} +\newcommand{\x}{10} +\newcommand{\y}{-8} +\begin{document} + +\tikzset{ + node/.style={rectangle, draw=black!100, thick, on grid}, % on grid added + dangling node/.style={node, fill=black!30} +} +\begin{tikzpicture}[] + +\filldraw[red] (0,0) circle (5mm); + %Knote +\matrix[draw = none, column sep=20mm, row sep=20mm]{ + \node(signal) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Signal}}] + \addplot[] table[col sep=comma] {signal.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(codiert) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Codiert}}] + \addplot[] table[col sep=comma] {codiert.txt}; + \end{axis} + \end{tikzpicture}}; \\ + + &\node(fehler) [] { + \begin{tikzpicture} + \begin{axis}[scale=0.6, title = {\Large {Fehler}}] + \addplot[] table[col sep=comma] {fehler.txt}; + \end{axis} + \end{tikzpicture}};\\ + + \node(decodiert) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Decodiert}}] + \addplot[] table[col sep=comma] {decodiert.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(empfangen) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Empfangen}}] + \addplot[] table[col sep=comma] {empfangen.txt}; + \end{axis} + \end{tikzpicture}};\\ + + \node(syndrom) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Syndrom}}] + \addplot[] table[col sep=comma] {syndrom.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(locator) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Locator}}] + \addplot[] table[col sep=comma] {locator.txt}; + \end{axis} + \end{tikzpicture}};\\ +}; + %FFT & IFFT deskription + + \draw[thin,gray,dashed] (0,15) to (0,-15); + \node(FFT) [ scale=0.7] at (0,15.3) {FFT IFFT}; + + %Arrows + \draw[ultra thick, ->] (signal.east) to (codiert.west); + \draw[ultra thick, ->] (codiert.south) to (fehler.north); + \draw[ultra thick, ->] (fehler.south) to (empfangen.north); + \draw[ultra thick, ->] (empfangen.west) to (decodiert.east); + \draw[ultra thick, ->] (syndrom.east) to (locator.west); + \draw(decodiert.south east)++(-1.8,1) ellipse (1.3cm and 0.8cm) ++(-1.3,0) coordinate(zoom) ; + \draw[ultra thick, ->] (zoom) to[out=180, in=90] (syndrom.north); + + + \end{tikzpicture} +\end{document} + diff --git a/buch/papers/reedsolomon/experiments/signal.txt b/buch/papers/reedsolomon/experiments/signal.txt index 202dd02..c4fa5f8 100644 --- a/buch/papers/reedsolomon/experiments/signal.txt +++ b/buch/papers/reedsolomon/experiments/signal.txt @@ -1,96 +1,96 @@ -5 -4 -4 -3 -5 -5 -8 -8 -6 -4 -8 -5 -4 -9 -9 -6 -6 -6 -2 -3 -5 -2 -8 -2 -2 -2 -2 -4 -3 -9 -4 -2 -9 -10 -4 -1 -3 -4 -6 -3 -6 -7 -2 -1 -3 -3 -4 -5 -1 -3 -8 -0 -9 -7 -5 -6 -2 -5 -10 -5 -5 -2 -5 -6 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 +0,6 +1,6 +2,0 +3,6 +4,4 +5,0 +6,5 +7,2 +8,1 +9,2 +10,1 +11,2 +12,0 +13,6 +14,3 +15,5 +16,7 +17,5 +18,5 +19,4 +20,1 +21,5 +22,9 +23,9 +24,3 +25,2 +26,6 +27,6 +28,4 +29,2 +30,9 +31,1 +32,1 +33,1 +34,2 +35,6 +36,6 +37,1 +38,9 +39,7 +40,7 +41,1 +42,9 +43,9 +44,10 +45,9 +46,8 +47,5 +48,2 +49,4 +50,1 +51,0 +52,9 +53,3 +54,3 +55,3 +56,5 +57,6 +58,0 +59,8 +60,6 +61,9 +62,3 +63,4 +64,0 +65,0 +66,0 +67,0 +68,0 +69,0 +70,0 +71,0 +72,0 +73,0 +74,0 +75,0 +76,0 +77,0 +78,0 +79,0 +80,0 +81,0 +82,0 +83,0 +84,0 +85,0 +86,0 +87,0 +88,0 +89,0 +90,0 +91,0 +92,0 +93,0 +94,0 +95,0 diff --git a/buch/papers/reedsolomon/experiments/syndrom.txt b/buch/papers/reedsolomon/experiments/syndrom.txt index 59b9dc4..8ca9eed 100644 --- a/buch/papers/reedsolomon/experiments/syndrom.txt +++ b/buch/papers/reedsolomon/experiments/syndrom.txt @@ -1,96 +1,96 @@ -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0.0275599094902566 -0.0115837187254189 -0.0258777610142382 -0.0224618032819705 -0.0441059468994403 -0.0474504002669344 -0.0227694695500614 -0.0271436638090525 -0.0104166666666661 -0.027143663809052 -0.0227694695500605 -0.0474504002669342 -0.04410594689944 -0.0224618032819704 -0.0258777610142386 -0.0115837187254188 -0.027559909490256 -0.0245124379481791 -0.0499782237195213 -0.0401432022864264 -0.023292374765623 -0.0237974288564093 -0.0143895905726623 -0.0271745729691686 -0.0275599094902561 -0.051550167218498 -0.0358255004834538 -0.0247005083663728 -0.0210194725405181 -0.0177592928994299 -0.0261327016093146 -0.0314909067039408 +0,0 +1,0 +2,0 +3,0 +4,0 +5,0 +6,0 +7,0 +8,0 +9,0 +10,0 +11,0 +12,0 +13,0 +14,0 +15,0 +16,0 +17,0 +18,0 +19,0 +20,0 +21,0 +22,0 +23,0 +24,0 +25,0 +26,0 +27,0 +28,0 +29,0 +30,0 +31,0 +32,0 +33,0 +34,0 +35,0 +36,0 +37,0 +38,0 +39,0 +40,0 +41,0 +42,0 +43,0 +44,0 +45,0 +46,0 +47,0 +48,0 +49,0 +50,0 +51,0 +52,0 +53,0 +54,0 +55,0 +56,0 +57,0 +58,0 +59,0 +60,0 +61,0 +62,0 +63,0 +64,0.0275599094902563 +65,0.0115837187254191 +66,0.025877761014238 +67,0.0224618032819697 +68,0.04410594689944 +69,0.0474504002669341 +70,0.0227694695500626 +71,0.0271436638090525 +72,0.0104166666666667 +73,0.0271436638090523 +74,0.0227694695500608 +75,0.0474504002669343 +76,0.0441059468994397 +77,0.0224618032819701 +78,0.0258777610142379 +79,0.0115837187254183 +80,0.027559909490256 +81,0.0245124379481793 +82,0.0499782237195209 +83,0.0401432022864265 +84,0.0232923747656228 +85,0.0237974288564099 +86,0.0143895905726624 +87,0.0271745729691685 +88,0.0275599094902567 +89,0.0515501672184983 +90,0.0358255004834542 +91,0.024700508366373 +92,0.0210194725405171 +93,0.0177592928994296 +94,0.0261327016093158 +95,0.0314909067039411 diff --git a/buch/papers/reedsolomon/idee.tex b/buch/papers/reedsolomon/idee.tex index 08864cf..39adbbf 100644 --- a/buch/papers/reedsolomon/idee.tex +++ b/buch/papers/reedsolomon/idee.tex @@ -25,23 +25,20 @@ p(x) \end{equation} ergeben. Übertragen werden nun die Werte an den stellen 1, 2, 3\dots 7 dieses Polynomes. -Grafisch sieht man dies dann in Abbildung +Grafisch sieht man dies dann in Abbildung \ref{fig:polynom}, +mit den Punkten, $p(1),p(2),...,p(7) = (\textcolor{green}{8}, +\textcolor{green}{15}, \textcolor{green}{26}, +\textcolor{green}{41}, \textcolor{green}{60}, +\textcolor{green}{83}, \textcolor{green}{110})$ Wenn ein Fehler sich in die Übertragung eingeschlichen hatt, muss der Leser/Empfänger diesen erkennen und das Polynom rekonstruieren. Der Leser/Empfänger weiss, den Grad des Polynoms und dessen Werte übermittelt wurden. -\begin{figure} - \centering - %\includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/polynom2} - %\input{papers/reedsolomon/images/polynom2.tex} - \caption{Polynom } - \label{fig:polynom} -\end{figure} - \subsection{Beispiel} Für das Beispeil aus der Gleichung \eqref{reedsolomon:equation1}, ist ein Polynome zweiten Grades durch drei Punkte eindeutig bestimmbar. -Hat es Fehler in der Übertragunge gegeben, kann man diese erkennen, -da alle Punkte, die korrekt sind, auf dem Polynom liegen müssen. +Hat es Fehler in der Übertragunge gegeben,(Bei Abbildung \ref{fig:polynom}\textcolor{red}{roten Punkte}) kann man diese erkennen, +da alle Punkte, die korrekt sind, auf dem Polynom liegen müssen. +(Bei Abbildung \ref{fig:polynom}\textcolor{green}{grünen Punkte}) Ab wie vielen Fehler ist das Polynom nicht mehr erkennbar beim Übertragen von 7 Punkten? Bei 2 Fehlern kann man noch eindeutig bestimmen, dass das Polynom mit 4 Punkten, gegenüber dem mit 5 Punkten falsch liegt.\ref{fig:polynom} @@ -49,6 +46,14 @@ Werden es mehr Fehler kann nur erkennt werden, dass das Polynom nicht stimmt. Das orginale Polynom kann aber nicht mehr gefunden werden. Dafür sind mehr übertragene Werte nötig. +\begin{figure} + \centering + %\includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/polynom2} + \input{papers/reedsolomon/images/polynom2.tex} + \caption{Polynom $p(x)$ \eqref{reedsolomon:equation1}} + \label{fig:polynom} +\end{figure} + \section{Fehlerbestimmung \label{reedsolomon:section:Fehlerbestimmmung}} So wird ein Muster indentifiziert, welches genau vorherbestimmen kann, diff --git a/buch/papers/reedsolomon/images/plotfft.tex b/buch/papers/reedsolomon/images/plotfft.tex new file mode 100644 index 0000000..e6d3b47 --- /dev/null +++ b/buch/papers/reedsolomon/images/plotfft.tex @@ -0,0 +1,77 @@ +% +% Plot der èbertrangungsabfolge ins FFT und zurück mit IFFT +% +\tikzset{ + node/.style={rectangle, draw=black!100, thick, on grid}, % on grid added + dangling node/.style={node, fill=black!30} +} +\begin{tikzpicture}[] + +%--------------------------------------------------------------- + %Knote +\matrix[draw = none, column sep=20mm, row sep=20mm]{ + \node(signal) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Signal}}] + \addplot[] table[col sep=comma] {signal.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(codiert) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Codiert}}] + \addplot[] table[col sep=comma] {codiert.txt}; + \end{axis} + \end{tikzpicture}}; \\ + + &\node(fehler) [] { + \begin{tikzpicture} + \begin{axis}[scale=0.6, title = {\Large {Fehler}}] + \addplot[] table[col sep=comma] {fehler.txt}; + \end{axis} + \end{tikzpicture}};\\ + + \node(decodiert) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Decodiert}}] + \addplot[] table[col sep=comma] {decodiert.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(empfangen) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Empfangen}}] + \addplot[] table[col sep=comma] {empfangen.txt}; + \end{axis} + \end{tikzpicture}};\\ + + \node(syndrom) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Syndrom}}] + \addplot[] table[col sep=comma] {syndrom.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(locator) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Locator}}] + \addplot[] table[col sep=comma] {locator.txt}; + \end{axis} + \end{tikzpicture}};\\ +}; +%------------------------------------------------------------- + %FFT & IFFT deskription + + \draw[thin,gray,dashed] (0,15) to (0,-15); + \node(FFT) [ scale=0.7] at (0,15.3) {FFT IFFT}; + + %Arrows + \draw[ultra thick, ->] (signal.east) to (codiert.west); + \draw[ultra thick, ->] (codiert.south) to (fehler.north); + \draw[ultra thick, ->] (fehler.south) to (empfangen.north); + \draw[ultra thick, ->] (empfangen.west) to (decodiert.east); + \draw[ultra thick, ->] (syndrom.east) to (locator.west); + \draw(decodiert.south east)++(-1.8,1) ellipse (1.3cm and 0.8cm) ++(-1.3,0) coordinate(zoom) ; + \draw[ultra thick, ->] (zoom) to[out=180, in=90] (syndrom.north); + + \end{tikzpicture} \ No newline at end of file diff --git a/buch/papers/reedsolomon/images/polynom2.tex b/buch/papers/reedsolomon/images/polynom2.tex index 4fdfc81..288b51c 100644 --- a/buch/papers/reedsolomon/images/polynom2.tex +++ b/buch/papers/reedsolomon/images/polynom2.tex @@ -1,51 +1,49 @@ -% polynome2 +% polynome %------------------- -%\documentclass[tikz]{standalone} -%\usepackage{amsmath} -%\usepackage{times} -%\usepackage{txfonts} -%\usepackage{pgfplots} -%\usepackage{csvsimple} -%\usetikzlibrary{arrows,intersections,math} +% Teiler für das Skalieren der Grafik /40 \newcommand{\teiler}{40} -%\begin{document} - Übertragen von den Zahlen - \textcolor{blue}{2}, \textcolor{blue}{1}, \textcolor{blue}{5} - als $ p(x) = \textcolor{blue}{2}x^2 + \textcolor{blue}{1}x + \textcolor{blue}{5} $.\newline - Versende $ (p(1),p(2),...,p(7)) = (\textcolor{green}{8}, - \textcolor{green}{15}, \textcolor{green}{26}, - \textcolor{green}{ 41}, \textcolor{green}{60}, - \textcolor{green}{83}, \textcolor{green}{110})$ + + +%////////////////////////////////////// + +\begin{tikzpicture}[>=latex,thick] + \draw[color=blue, line width=1.4pt] + plot[domain=0:8, samples=100] + ({\x},{(2*\x^2+1*\x+5)/\teiler}); + + \draw[->] (-0.2,0) -- (8,0) coordinate[label={$x$}]; + \draw[->] (0,-0.2) -- (0,150/\teiler) coordinate[label={right:$p(x)$}]; + + \def\punkt#1{ + \fill[color=green] #1 circle[radius=0.08]; + \draw #1 circle[radius=0.07]; + } + + \def\hellpunkt#1{ + \fill[color=lightgray] #1 circle[radius=0.08]; + \draw #1 circle[radius=0.07]; + } + + \punkt{(1,8/\teiler)} + \hellpunkt{(2,15/\teiler)} + \hellpunkt{(3,26/\teiler)} + \punkt{(4,41/\teiler)} + \punkt{(5,60/\teiler)} + \punkt{(6,83/\teiler)} + \punkt{(7,110/\teiler)} + \draw[color=gray,line width=1pt,dashed] + plot[domain=0.5:7, samples=100] + ({\x},{(7.832*\x^2-51.5*\x+121.668)/\teiler}); - \begin{tikzpicture}[>=latex,thick] - \draw[color=blue, line width=1.4pt] - plot[domain=0:8, samples=100] - ({\x},{(2*\x^2+1*\x+5)/\teiler}); - \draw[->] (-0.2,0) -- (8,0) coordinate[label={$x$}]; - \draw[->] (0,-0.2) -- (0,150/\teiler) coordinate[label={right:$p(x)$}]; - \def\punkt#1{ - \fill[color=green] #1 circle[radius=0.08]; - \draw #1 circle[radius=0.07]; - } - \punkt{(1,8/\teiler)} - %\punkt{(2,15/\teiler)} - %\punkt{(3,26/\teiler)} - \punkt{(4,41/\teiler)} - \punkt{(5,60/\teiler)} - \punkt{(6,83/\teiler)} - \punkt{(7,110/\teiler)} - \draw[color=gray,line width=1pt,dashed] - plot[domain=0.5:7, samples=100] - ({\x},{(0.1958*\x^2-1.2875*\x+3.0417)}); - \def\erpunkt#1{ - \fill[color=red] #1 circle[radius=0.08]; - \draw #1 circle[radius=0.07]; - } - \erpunkt{(2,50/\teiler)} - \erpunkt{(3,0.9414)} + \def\erpunkt#1{ + \fill[color=red] #1 circle[radius=0.08]; + \draw #1 circle[radius=0.07]; + } + \erpunkt{(2,50/\teiler)} + \erpunkt{(3,37.66/\teiler)} - \draw(0,100/\teiler) -- (-0.1,100/\teiler) coordinate[label={left:$100$}]; - \draw(1,0) -- (1,-0.1) coordinate[label={below:$1$}]; - \end{tikzpicture} + \draw(0,100/\teiler) -- (-0.1,100/\teiler) coordinate[label={left:$100$}]; + \draw(1,0) -- (1,-0.1) coordinate[label={below:$1$}]; +\end{tikzpicture} %\end{document} -- cgit v1.2.1 From 3e112e15ffe65ede9c2a13077e358e9efe565d03 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Wed, 21 Jul 2021 15:26:35 +0200 Subject: txt files to images ordner --- buch/papers/reedsolomon/images/codiert.txt | 96 ++++++++++++++++++++++++++++ buch/papers/reedsolomon/images/decodiert.txt | 96 ++++++++++++++++++++++++++++ buch/papers/reedsolomon/images/empfangen.txt | 96 ++++++++++++++++++++++++++++ buch/papers/reedsolomon/images/fehler.txt | 96 ++++++++++++++++++++++++++++ buch/papers/reedsolomon/images/locator.txt | 96 ++++++++++++++++++++++++++++ buch/papers/reedsolomon/images/signal.txt | 96 ++++++++++++++++++++++++++++ buch/papers/reedsolomon/images/syndrom.txt | 96 ++++++++++++++++++++++++++++ 7 files changed, 672 insertions(+) create mode 100644 buch/papers/reedsolomon/images/codiert.txt create mode 100644 buch/papers/reedsolomon/images/decodiert.txt create mode 100644 buch/papers/reedsolomon/images/empfangen.txt create mode 100644 buch/papers/reedsolomon/images/fehler.txt create mode 100644 buch/papers/reedsolomon/images/locator.txt create mode 100644 buch/papers/reedsolomon/images/signal.txt create mode 100644 buch/papers/reedsolomon/images/syndrom.txt (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/images/codiert.txt b/buch/papers/reedsolomon/images/codiert.txt new file mode 100644 index 0000000..4a481d8 --- /dev/null +++ b/buch/papers/reedsolomon/images/codiert.txt @@ -0,0 +1,96 @@ +0,284 +1,131.570790435043 +2,41.9840308053375 +3,12.1189172092243 +4,23.8408857476069 +5,69.1793197789512 +6,24.0186013379153 +7,37.3066577242559 +8,18.2010889773887 +9,12.3214904922455 +10,15.6627133315015 +11,24.5237955316204 +12,32.1114345314062 +13,44.9845039238714 +14,13.5324640263625 +15,10.1736266929292 +16,4.58257569495584 +17,23.217268502288 +18,16.5769107917917 +19,6.89948680823017 +20,4.84567134895776 +21,10.4219666223433 +22,43.6179140616243 +23,35.9073375743642 +24,15.0332963783729 +25,21.7594021268945 +26,23.2496572716993 +27,17.9815599423852 +28,11.3577742151117 +29,38.467599433197 +30,28.3035029562577 +31,9.54321919833388 +32,21.377558326432 +33,17.6292439561917 +34,12.6951848921471 +35,20.0667752354841 +36,22.9097309529208 +37,8.78894645948548 +38,13.360682005498 +39,25.1757616314718 +40,38.0357773686457 +41,18.4633287776253 +42,19.0584505869806 +43,10.8631093309173 +44,12.6147770818983 +45,12.5398140021274 +46,34.901983501949 +47,22.3480442021702 +48,6 +49,22.3480442021702 +50,34.901983501949 +51,12.5398140021274 +52,12.6147770818983 +53,10.8631093309173 +54,19.0584505869806 +55,18.4633287776253 +56,38.0357773686457 +57,25.1757616314718 +58,13.360682005498 +59,8.78894645948548 +60,22.9097309529208 +61,20.0667752354841 +62,12.6951848921471 +63,17.6292439561917 +64,21.377558326432 +65,9.54321919833388 +66,28.3035029562577 +67,38.467599433197 +68,11.3577742151117 +69,17.9815599423852 +70,23.2496572716993 +71,21.7594021268945 +72,15.0332963783729 +73,35.9073375743642 +74,43.6179140616243 +75,10.4219666223433 +76,4.84567134895776 +77,6.89948680823017 +78,16.5769107917917 +79,23.217268502288 +80,4.58257569495584 +81,10.1736266929292 +82,13.5324640263625 +83,44.9845039238714 +84,32.1114345314062 +85,24.5237955316204 +86,15.6627133315015 +87,12.3214904922455 +88,18.2010889773887 +89,37.3066577242559 +90,24.0186013379153 +91,69.1793197789512 +92,23.8408857476069 +93,12.1189172092243 +94,41.9840308053375 +95,131.570790435043 diff --git a/buch/papers/reedsolomon/images/decodiert.txt b/buch/papers/reedsolomon/images/decodiert.txt new file mode 100644 index 0000000..f6221e6 --- /dev/null +++ b/buch/papers/reedsolomon/images/decodiert.txt @@ -0,0 +1,96 @@ +0,6.05208333333333 +1,6.02602539785853 +2,0.0261327016093151 +3,5.98927158561317 +4,4.019445724874 +5,0.0247005083663722 +6,4.97798278395618 +7,1.95246440445439 +8,0.974000110512201 +9,2.00528527696027 +10,1.00071804528155 +11,1.97630907888264 +12,0.0232923747656228 +13,6.01302820392331 +14,3.03567381915226 +15,5.02435590137329 +16,7.00526061008995 +17,5.00739608089369 +18,5.02211514480064 +19,4.02175864806658 +20,1.00236543833726 +21,4.98147315261261 +22,8.97728828610336 +23,8.98481304394618 +24,2.98958333333333 +25,1.98491220960989 +26,5.97728835934715 +27,5.98144124907561 +28,4.00163839998525 +29,2.02176249296313 +30,9.02210713874162 +31,1.00742763919872 +32,1.00557258081044 +33,1.02435888848794 +34,2.03577412756745 +35,6.01302820392331 +36,5.97917574041123 +37,0.976310374034338 +38,9.00062625447998 +39,7.00515849238528 +40,6.97396416790894 +41,0.95256880864368 +42,8.97794719866783 +43,9.01850701506487 +44,10.0194409579917 +45,8.98926601525997 +46,7.9866590265379 +47,5.02603060999077 +48,2.05208333333333 +49,4.02603841132848 +50,0.986882897867895 +51,0.0177592928994285 +52,9.01944131204563 +53,3.0185365665612 +54,2.97803642439316 +55,2.95243072164649 +56,4.97396651395488 +57,6.00516695947321 +58,0.0143895905726619 +59,7.97630812771393 +60,5.97917574041123 +61,9.01298821331865 +62,3.03567381915226 +63,4.02435609145793 +64,0.0275599094902563 +65,0.0115837187254191 +66,0.025877761014238 +67,0.0224618032819697 +68,0.04410594689944 +69,0.0474504002669341 +70,0.0227694695500626 +71,0.0271436638090525 +72,0.0104166666666667 +73,0.0271436638090523 +74,0.0227694695500608 +75,0.0474504002669343 +76,0.0441059468994397 +77,0.0224618032819701 +78,0.0258777610142379 +79,0.0115837187254183 +80,0.027559909490256 +81,0.0245124379481793 +82,0.0499782237195209 +83,0.0401432022864265 +84,0.0232923747656228 +85,0.0237974288564099 +86,0.0143895905726624 +87,0.0271745729691685 +88,0.0275599094902567 +89,0.0515501672184983 +90,0.0358255004834542 +91,0.024700508366373 +92,0.0210194725405171 +93,0.0177592928994296 +94,0.0261327016093158 +95,0.0314909067039411 diff --git a/buch/papers/reedsolomon/images/empfangen.txt b/buch/papers/reedsolomon/images/empfangen.txt new file mode 100644 index 0000000..38c13b0 --- /dev/null +++ b/buch/papers/reedsolomon/images/empfangen.txt @@ -0,0 +1,96 @@ +0,284 +1,131.570790435043 +2,41.9840308053375 +3,12.1189172092243 +4,23.8408857476069 +5,69.1793197789512 +6,23.6290258699579 +7,37.3066577242559 +8,18.2010889773887 +9,12.3214904922455 +10,15.6627133315015 +11,24.5237955316204 +12,32.1114345314062 +13,44.9845039238714 +14,13.5324640263625 +15,10.1736266929292 +16,4.58257569495584 +17,23.217268502288 +18,16.5769107917917 +19,6.89948680823017 +20,5.55320238736303 +21,10.4219666223433 +22,43.6179140616243 +23,35.9073375743642 +24,15.0332963783729 +25,21.7594021268945 +26,23.2496572716993 +27,17.9815599423852 +28,11.3577742151117 +29,38.467599433197 +30,28.3035029562577 +31,9.54321919833388 +32,21.377558326432 +33,17.6292439561917 +34,12.6951848921471 +35,20.0667752354841 +36,22.9097309529208 +37,8.78894645948548 +38,13.360682005498 +39,25.1757616314718 +40,38.0357773686457 +41,18.4633287776253 +42,19.0584505869806 +43,10.8631093309173 +44,12.6147770818983 +45,12.5398140021274 +46,34.901983501949 +47,22.3480442021702 +48,6 +49,22.3480442021702 +50,34.901983501949 +51,12.5398140021274 +52,12.6147770818983 +53,10.8631093309173 +54,19.0584505869806 +55,18.4633287776253 +56,38.0357773686457 +57,25.1757616314718 +58,13.360682005498 +59,8.78894645948548 +60,22.9097309529208 +61,20.0667752354841 +62,12.6951848921471 +63,17.6292439561917 +64,21.377558326432 +65,9.54321919833388 +66,28.3035029562577 +67,38.467599433197 +68,11.3577742151117 +69,17.9815599423852 +70,23.2496572716993 +71,21.7594021268945 +72,15.0332963783729 +73,35.9073375743642 +74,44.6135417384784 +75,10.4219666223433 +76,4.84567134895776 +77,6.89948680823017 +78,16.5769107917917 +79,23.217268502288 +80,4.58257569495584 +81,10.1736266929292 +82,13.5324640263625 +83,44.9845039238714 +84,32.1114345314062 +85,24.5237955316204 +86,15.6627133315015 +87,12.3214904922455 +88,18.2010889773887 +89,37.3066577242559 +90,24.0186013379153 +91,69.1793197789512 +92,23.8408857476069 +93,12.1189172092243 +94,41.9840308053375 +95,131.570790435043 diff --git a/buch/papers/reedsolomon/images/fehler.txt b/buch/papers/reedsolomon/images/fehler.txt new file mode 100644 index 0000000..23f1a83 --- /dev/null +++ b/buch/papers/reedsolomon/images/fehler.txt @@ -0,0 +1,96 @@ +0,0 +1,0 +2,0 +3,0 +4,0 +5,0 +6,2 +7,0 +8,0 +9,0 +10,0 +11,0 +12,0 +13,0 +14,0 +15,0 +16,0 +17,0 +18,0 +19,0 +20,2 +21,0 +22,0 +23,0 +24,0 +25,0 +26,0 +27,0 +28,0 +29,0 +30,0 +31,0 +32,0 +33,0 +34,0 +35,0 +36,0 +37,0 +38,0 +39,0 +40,0 +41,0 +42,0 +43,0 +44,0 +45,0 +46,0 +47,0 +48,0 +49,0 +50,0 +51,0 +52,0 +53,0 +54,0 +55,0 +56,0 +57,0 +58,0 +59,0 +60,0 +61,0 +62,0 +63,0 +64,0 +65,0 +66,0 +67,0 +68,0 +69,0 +70,0 +71,0 +72,0 +73,0 +74,1 +75,0 +76,0 +77,0 +78,0 +79,0 +80,0 +81,0 +82,0 +83,0 +84,0 +85,0 +86,0 +87,0 +88,0 +89,0 +90,0 +91,0 +92,0 +93,0 +94,0 +95,0 diff --git a/buch/papers/reedsolomon/images/locator.txt b/buch/papers/reedsolomon/images/locator.txt new file mode 100644 index 0000000..b28988c --- /dev/null +++ b/buch/papers/reedsolomon/images/locator.txt @@ -0,0 +1,96 @@ +0,0.0301224340567056 +1,0.141653026854885 +2,0.138226631799377 +3,0.0339903276086929 +4,0.310585462557496 +5,0.551427312631385 +6,0.628514858396814 +7,0.51102386251559 +8,0.275861355940449 +9,0.0502396354182268 +10,0.090185502547573 +11,0.110759344849756 +12,0.0684618905063001 +13,0.0362855426992259 +14,0.0697096919781468 +15,0.109288539370248 +16,0.0923187999496653 +17,0.0512198536768088 +18,0.274192386987782 +19,0.51349614953654 +20,0.633154426602466 +21,0.553283743533942 +22,0.307840573214514 +23,0.0341664350328392 +24,0.140270857957 +25,0.138527177682831 +26,0.029637547736156 +27,0.0816962563186052 +28,0.0944383203811073 +29,0.0263932110686261 +30,0.0585881348402056 +31,0.0737117341599984 +32,0.0239973937701886 +33,0.0464215468420038 +34,0.0616218854220964 +35,0.0221963086695009 +36,0.0390764778127646 +37,0.0537637218396934 +38,0.0208333333333332 +39,0.0343107696069045 +40,0.0483441215964552 +41,0.0198077862118806 +42,0.0311207395968725 +43,0.0444955089373458 +44,0.0190533549944159 +45,0.0290049795038723 +46,0.0417536642697558 +47,0.0185261550443084 +48,0.0277059929762261 +49,0.0398606084144816 +50,0.0181978813094817 +51,0.0271098219177584 +52,0.0386836665079729 +53,0.0180518611046889 +54,0.0272138992557141 +55,0.0381891287148314 +56,0.0180809085252469 +57,0.0281418959420061 +58,0.0384596362516637 +59,0.0182864418432272 +60,0.0302250788423173 +61,0.0397874837986351 +62,0.0186786556701694 +63,0.0342489348284216 +64,0.0429932815348666 +65,0.0192777878591759 +66,0.0422808966931999 +67,0.0506815964680563 +68,0.0201167847752226 +69,0.0615048274405271 +70,0.0744953894508454 +71,0.021246054596492 +72,0.142602265816215 +73,0.273502052865436 +74,0.325309673287599 +75,0.272705389655349 +76,0.149074257381345 +77,0.0247199397628712 +78,0.0680137859566976 +79,0.075388270873485 +80,0.0273637831604903 +81,0.0407867704453274 +82,0.0632964886441949 +83,0.0309749128751093 +84,0.0315202035072035 +85,0.0627625211892184 +86,0.0360843918243497 +87,0.02794920551495 +88,0.0677921493367236 +89,0.0437167157553067 +90,0.0270640150996317 +91,0.0783380025231622 +92,0.0561293738314281 +93,0.0278742033265809 +94,0.0981443889498639 +95,0.0794543457386548 diff --git a/buch/papers/reedsolomon/images/signal.txt b/buch/papers/reedsolomon/images/signal.txt new file mode 100644 index 0000000..c4fa5f8 --- /dev/null +++ b/buch/papers/reedsolomon/images/signal.txt @@ -0,0 +1,96 @@ +0,6 +1,6 +2,0 +3,6 +4,4 +5,0 +6,5 +7,2 +8,1 +9,2 +10,1 +11,2 +12,0 +13,6 +14,3 +15,5 +16,7 +17,5 +18,5 +19,4 +20,1 +21,5 +22,9 +23,9 +24,3 +25,2 +26,6 +27,6 +28,4 +29,2 +30,9 +31,1 +32,1 +33,1 +34,2 +35,6 +36,6 +37,1 +38,9 +39,7 +40,7 +41,1 +42,9 +43,9 +44,10 +45,9 +46,8 +47,5 +48,2 +49,4 +50,1 +51,0 +52,9 +53,3 +54,3 +55,3 +56,5 +57,6 +58,0 +59,8 +60,6 +61,9 +62,3 +63,4 +64,0 +65,0 +66,0 +67,0 +68,0 +69,0 +70,0 +71,0 +72,0 +73,0 +74,0 +75,0 +76,0 +77,0 +78,0 +79,0 +80,0 +81,0 +82,0 +83,0 +84,0 +85,0 +86,0 +87,0 +88,0 +89,0 +90,0 +91,0 +92,0 +93,0 +94,0 +95,0 diff --git a/buch/papers/reedsolomon/images/syndrom.txt b/buch/papers/reedsolomon/images/syndrom.txt new file mode 100644 index 0000000..8ca9eed --- /dev/null +++ b/buch/papers/reedsolomon/images/syndrom.txt @@ -0,0 +1,96 @@ +0,0 +1,0 +2,0 +3,0 +4,0 +5,0 +6,0 +7,0 +8,0 +9,0 +10,0 +11,0 +12,0 +13,0 +14,0 +15,0 +16,0 +17,0 +18,0 +19,0 +20,0 +21,0 +22,0 +23,0 +24,0 +25,0 +26,0 +27,0 +28,0 +29,0 +30,0 +31,0 +32,0 +33,0 +34,0 +35,0 +36,0 +37,0 +38,0 +39,0 +40,0 +41,0 +42,0 +43,0 +44,0 +45,0 +46,0 +47,0 +48,0 +49,0 +50,0 +51,0 +52,0 +53,0 +54,0 +55,0 +56,0 +57,0 +58,0 +59,0 +60,0 +61,0 +62,0 +63,0 +64,0.0275599094902563 +65,0.0115837187254191 +66,0.025877761014238 +67,0.0224618032819697 +68,0.04410594689944 +69,0.0474504002669341 +70,0.0227694695500626 +71,0.0271436638090525 +72,0.0104166666666667 +73,0.0271436638090523 +74,0.0227694695500608 +75,0.0474504002669343 +76,0.0441059468994397 +77,0.0224618032819701 +78,0.0258777610142379 +79,0.0115837187254183 +80,0.027559909490256 +81,0.0245124379481793 +82,0.0499782237195209 +83,0.0401432022864265 +84,0.0232923747656228 +85,0.0237974288564099 +86,0.0143895905726624 +87,0.0271745729691685 +88,0.0275599094902567 +89,0.0515501672184983 +90,0.0358255004834542 +91,0.024700508366373 +92,0.0210194725405171 +93,0.0177592928994296 +94,0.0261327016093158 +95,0.0314909067039411 -- cgit v1.2.1 From 93db2b408895beda3ec4d06ff3f81180ca3c7377 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Wed, 21 Jul 2021 15:47:40 +0200 Subject: to fix --- buch/papers/reedsolomon/dtf.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/dtf.tex b/buch/papers/reedsolomon/dtf.tex index f011ac3..27c6150 100644 --- a/buch/papers/reedsolomon/dtf.tex +++ b/buch/papers/reedsolomon/dtf.tex @@ -28,7 +28,7 @@ Filtert man nur diese Punkte heraus und Transformiert sie mit Fourier erhält ma \begin{figure} \centering - \input{papers/reedsolomon/images/plotfft.tex} + %\input{papers/reedsolomon/images/plotfft.tex} \caption{Übertragungsabfolge \ref{reedsolomon:subsection:Übertragungsabfolge}} \label{fig:sendorder} \end{figure} \ No newline at end of file -- cgit v1.2.1 From 5397a77e20a23338279ffe4faa59453104be5b95 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Wed, 21 Jul 2021 21:18:31 +0200 Subject: update --- buch/papers/reedsolomon/dtf.tex | 41 ++++++--- buch/papers/reedsolomon/experiments/plot.tex | 130 +++++++++++++++------------ buch/papers/reedsolomon/images/plotfft.tex | 68 ++++++++------ buch/papers/reedsolomon/packages.tex | 2 +- 4 files changed, 143 insertions(+), 98 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/dtf.tex b/buch/papers/reedsolomon/dtf.tex index 27c6150..a111527 100644 --- a/buch/papers/reedsolomon/dtf.tex +++ b/buch/papers/reedsolomon/dtf.tex @@ -14,21 +14,42 @@ wobei sie dann bei späteren Berchnungen ganz nützlich ist. \subsection{Diskrete Fourientransformation Zusamenhang \label{reedsolomon:subsection:dtfzusamenhang}} Die Diskrete Fourientransformation ist definiert als - + \[ + \label{ft_discrete} + \hat{c}_{k} + = \frac{1}{N} \sum_{n=0}^{N-1} + {f}_n \cdot e^{-\frac{2\pi j}{N} \cdot kn} + \] +, wenn man nun + \[ + w = e^{-\frac{2\pi j}{N} k} + \] +ersetzte, und $N$ konstantbleibt, erhält man + \[ + \hat{c}_{k}=\frac{1}{N}( {f}_0 w^0 + {f}_1 w^1 + {f}_2 w^2 + \dots + {f}_{N-1} w^N) + \] +was überaust ähnlich zu unserem Polynomidee ist. \subsection{Übertragungsabfolge \label{reedsolomon:subsection:Übertragungsabfolge}} -Das Signal.... sind die Daten, Zahlen welche übertragen werden sollen. -Das speziell ist das wir 100 Punkte übertragen und von 64 bis 100, -werden nur Null Punkte übertragen, dies weiss auch unser Empfänger. -Nun wird das Signal in Abbildung... codiert... -Somit wird die Information jedes Punktes auf das ganze spektrum von 0 bis 100 übertragen. -Kommen nuun drei Fehler... hinzu zu diesem codierten Signal sind diese nicht zu erkennen. -Nach dem Empfangen... und decodieren ... erkennt man die fehlerhafte information in den Punkten 64 bis 100. -Filtert man nur diese Punkte heraus und Transformiert sie mit Fourier erhält man die stellen an denen die Fehler sich eingeschlichen haben. + +\begin{enumerate}[1)] +\item Das Signal hat 64 die Daten, Zahlen welche übertragen werden sollen. +Dabei zusätzlich nach 16 Fehler abgesichert, macht insgesamt 96 Übertragungszahlen. +\item Nun wurde mittels der schnellen diskreten Fourientransformation diese 96 codiert. +Das heisst alle information ist in alle Zahlenvorhanden. +\item Nun kommen drei Fehler dazu an den Übertragungsstellen 7, 21 und 75. +\item Dieses wird nun Empfangen und mittels inversen diskreten Fourientransormation, wieder rücktransformiert. +\item Nun sieht man den Fehler im Decodieren in den Übertragungsstellen 64 bis 96. +\item Nimmt man nun nur diese Stellen 64 bis 96, auch Syndrom genannt, und Transformiert diese. +\item Bekommt man die Fehlerstellen im Locator wieder, zwar nichtso genau, dennoch erkkent man wo die Fehler stattgefunden haben. +\end{enumerate} \begin{figure} \centering - %\input{papers/reedsolomon/images/plotfft.tex} + \resizebox{0.9\textwidth}{!}{ + %\includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/plot.pdf} + \input{papers/reedsolomon/images/plotfft.tex} + } \caption{Übertragungsabfolge \ref{reedsolomon:subsection:Übertragungsabfolge}} \label{fig:sendorder} \end{figure} \ No newline at end of file diff --git a/buch/papers/reedsolomon/experiments/plot.tex b/buch/papers/reedsolomon/experiments/plot.tex index bf9aadc..2196c82 100644 --- a/buch/papers/reedsolomon/experiments/plot.tex +++ b/buch/papers/reedsolomon/experiments/plot.tex @@ -13,69 +13,73 @@ \newcommand{\y}{-8} \begin{document} -\tikzset{ - node/.style={rectangle, draw=black!100, thick, on grid}, % on grid added - dangling node/.style={node, fill=black!30} -} \begin{tikzpicture}[] - -\filldraw[red] (0,0) circle (5mm); - %Knote -\matrix[draw = none, column sep=20mm, row sep=20mm]{ - \node(signal) [] { - \begin{tikzpicture} - \begin{axis}[title = {\Large {Signal}}] - \addplot[] table[col sep=comma] {signal.txt}; - \end{axis} - \end{tikzpicture}}; & - \node(codiert) [] { - \begin{tikzpicture} - \begin{axis}[title = {\Large {Codiert}}] - \addplot[] table[col sep=comma] {codiert.txt}; - \end{axis} - \end{tikzpicture}}; \\ + %--------------------------------------------------------------- + %Knote + \matrix[draw = none, column sep=20mm, row sep=4mm]{ + \node(signal) [] { + \begin{tikzpicture} + \begin{axis}[ + title = {\Large {Signal}}, + xlabel={Anzahl Übertragene Zahlen}, + xtick={0,20,40,64,80,98},] + \addplot[blue] table[col sep=comma] {signal.txt}; + \end{axis} + \end{tikzpicture}}; & - &\node(fehler) [] { - \begin{tikzpicture} - \begin{axis}[scale=0.6, title = {\Large {Fehler}}] - \addplot[] table[col sep=comma] {fehler.txt}; - \end{axis} - \end{tikzpicture}};\\ - - \node(decodiert) [] { - \begin{tikzpicture} - \begin{axis}[title = {\Large {Decodiert}}] - \addplot[] table[col sep=comma] {decodiert.txt}; - \end{axis} - \end{tikzpicture}}; & - - \node(empfangen) [] { - \begin{tikzpicture} - \begin{axis}[title = {\Large {Empfangen}}] - \addplot[] table[col sep=comma] {empfangen.txt}; - \end{axis} - \end{tikzpicture}};\\ - - \node(syndrom) [] { - \begin{tikzpicture} - \begin{axis}[title = {\Large {Syndrom}}] - \addplot[] table[col sep=comma] {syndrom.txt}; - \end{axis} - \end{tikzpicture}}; & - - \node(locator) [] { - \begin{tikzpicture} - \begin{axis}[title = {\Large {Locator}}] - \addplot[] table[col sep=comma] {locator.txt}; - \end{axis} - \end{tikzpicture}};\\ -}; + \node(codiert) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Codiert}}] + \addplot[] table[col sep=comma] {codiert.txt}; + \end{axis} + \end{tikzpicture}}; \\ + + &\node(fehler) [] { + \begin{tikzpicture} + \begin{axis}[scale=0.6, title = {\Large {Fehler}}] + \addplot[red] table[col sep=comma] {fehler.txt}; + \end{axis} + \end{tikzpicture}};\\ + + \node(decodiert) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Decodiert}}] + \addplot[blue] table[col sep=comma] {decodiert.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(empfangen) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Empfangen}}] + \addplot[] table[col sep=comma] {empfangen.txt}; + \end{axis} + \end{tikzpicture}};\\ + + \node(syndrom) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Syndrom}}] + \addplot[blue] table[col sep=comma] {syndrom.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(locator) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Locator}}] + \addplot[] table[col sep=comma] {locator.txt}; + \end{axis} + \end{tikzpicture}};\\ + }; + %------------------------------------------------------------- %FFT & IFFT deskription - - \draw[thin,gray,dashed] (0,15) to (0,-15); - \node(FFT) [ scale=0.7] at (0,15.3) {FFT IFFT}; + \draw[thin,gray,dashed] (0,12) to (0,-12); + \node(IFFT) [scale=0.7] at (0,12.3) {IFFT}; + \draw[<-](IFFT.south west)--(IFFT.south east); + \node(FFT) [scale=0.7, above of=IFFT] {FFT}; + \draw[->](FFT.north west)--(FFT.north east); + + \draw[thick, ->,] (fehler.west)++(-1,0) +(0.05,0.5) -- +(-0.1,-0.1) -- +(0.1,0.1) -- +(0,-0.5); %Arrows \draw[ultra thick, ->] (signal.east) to (codiert.west); \draw[ultra thick, ->] (codiert.south) to (fehler.north); @@ -85,7 +89,15 @@ \draw(decodiert.south east)++(-1.8,1) ellipse (1.3cm and 0.8cm) ++(-1.3,0) coordinate(zoom) ; \draw[ultra thick, ->] (zoom) to[out=180, in=90] (syndrom.north); + %item + \node[circle, draw, fill =lightgray] at (signal.north west)+(1,0) {1}; + \node[circle, draw, fill =lightgray] at (codiert.north west) {2}; + \node[circle, draw, fill =lightgray] at (fehler.north west) {3}; + \node[circle, draw, fill =lightgray] at (empfangen.north west) {4}; + \node[circle, draw, fill =lightgray] at (decodiert.north west) {5}; + \node[circle, draw, fill =lightgray] at (syndrom.north west) {6}; + \node[circle, draw, fill =lightgray] at (locator.north west) {7}; - \end{tikzpicture} +\end{tikzpicture} \end{document} diff --git a/buch/papers/reedsolomon/images/plotfft.tex b/buch/papers/reedsolomon/images/plotfft.tex index e6d3b47..83a89eb 100644 --- a/buch/papers/reedsolomon/images/plotfft.tex +++ b/buch/papers/reedsolomon/images/plotfft.tex @@ -1,77 +1,89 @@ % -% Plot der èbertrangungsabfolge ins FFT und zurück mit IFFT +% Plot der Übertrangungsabfolge ins FFT und zurück mit IFFT % -\tikzset{ - node/.style={rectangle, draw=black!100, thick, on grid}, % on grid added - dangling node/.style={node, fill=black!30} -} \begin{tikzpicture}[] %--------------------------------------------------------------- %Knote -\matrix[draw = none, column sep=20mm, row sep=20mm]{ +\matrix[draw = none, column sep=25mm, row sep=2mm]{ \node(signal) [] { \begin{tikzpicture} - \begin{axis}[title = {\Large {Signal}}] - \addplot[] table[col sep=comma] {signal.txt}; + \begin{axis} + [title = {\Large {Signal}}, + xlabel={Anzahl Übertragene Zahlen}, + xtick={0,20,40,64,80,98},] + \addplot[blue] table[col sep=comma] {papers/reedsolomon/images/signal.txt}; \end{axis} \end{tikzpicture}}; & \node(codiert) [] { \begin{tikzpicture} \begin{axis}[title = {\Large {Codiert}}] - \addplot[] table[col sep=comma] {codiert.txt}; + \addplot[] table[col sep=comma] {papers/reedsolomon/images/codiert.txt}; \end{axis} \end{tikzpicture}}; \\ &\node(fehler) [] { \begin{tikzpicture} - \begin{axis}[scale=0.6, title = {\Large {Fehler}}] - \addplot[] table[col sep=comma] {fehler.txt}; + \begin{axis}[scale=0.6, title = {\Large {Fehler}}, + xtick={7,21,75}] + \addplot[red] table[col sep=comma] {papers/reedsolomon/images/fehler.txt}; \end{axis} \end{tikzpicture}};\\ \node(decodiert) [] { \begin{tikzpicture} \begin{axis}[title = {\Large {Decodiert}}] - \addplot[] table[col sep=comma] {decodiert.txt}; + \addplot[blue] table[col sep=comma] {papers/reedsolomon/images/decodiert.txt}; \end{axis} \end{tikzpicture}}; & \node(empfangen) [] { \begin{tikzpicture} \begin{axis}[title = {\Large {Empfangen}}] - \addplot[] table[col sep=comma] {empfangen.txt}; + \addplot[] table[col sep=comma] {papers/reedsolomon/images/empfangen.txt}; \end{axis} \end{tikzpicture}};\\ \node(syndrom) [] { \begin{tikzpicture} \begin{axis}[title = {\Large {Syndrom}}] - \addplot[] table[col sep=comma] {syndrom.txt}; + \addplot[blue] table[col sep=comma] {papers/reedsolomon/images/syndrom.txt}; \end{axis} \end{tikzpicture}}; & \node(locator) [] { \begin{tikzpicture} \begin{axis}[title = {\Large {Locator}}] - \addplot[] table[col sep=comma] {locator.txt}; + \addplot[] table[col sep=comma] {papers/reedsolomon/images/locator.txt}; \end{axis} \end{tikzpicture}};\\ }; %------------------------------------------------------------- %FFT & IFFT deskription - \draw[thin,gray,dashed] (0,15) to (0,-15); - \node(FFT) [ scale=0.7] at (0,15.3) {FFT IFFT}; - - %Arrows - \draw[ultra thick, ->] (signal.east) to (codiert.west); - \draw[ultra thick, ->] (codiert.south) to (fehler.north); - \draw[ultra thick, ->] (fehler.south) to (empfangen.north); - \draw[ultra thick, ->] (empfangen.west) to (decodiert.east); - \draw[ultra thick, ->] (syndrom.east) to (locator.west); - \draw(decodiert.south east)++(-1.8,1) ellipse (1.3cm and 0.8cm) ++(-1.3,0) coordinate(zoom) ; - \draw[ultra thick, ->] (zoom) to[out=180, in=90] (syndrom.north); - - \end{tikzpicture} \ No newline at end of file +\draw[thin,gray,dashed] (0,12) to (0,-12); +\node(IFFT) [scale=0.7] at (0,12.3) {IFFT}; +\draw[<-](IFFT.south west)--(IFFT.south east); +\node(FFT) [scale=0.7, above of=IFFT] {FFT}; +\draw[->](FFT.north west)--(FFT.north east); + +\draw[thick, ->,] (fehler.west)++(-1,0) +(0.05,0.5) -- +(-0.1,-0.1) -- +(0.1,0.1) -- +(0,-0.5); +%Arrows +\draw[ultra thick, ->] (signal.east) to (codiert.west); +\draw[ultra thick, ->] (codiert.south) to (fehler.north); +\draw[ultra thick, ->] (fehler.south) to (empfangen.north); +\draw[ultra thick, ->] (empfangen.west) to (decodiert.east); +\draw[ultra thick, ->] (syndrom.east) to (locator.west); +\draw(decodiert.south east)++(-1.8,1) ellipse (1.3cm and 0.8cm) ++(-1.3,0) coordinate(zoom) ; +\draw[ultra thick, ->] (zoom) to[out=180, in=90] (syndrom.north); + +%item +\node[circle, draw, fill =lightgray] at (signal.north west) {1}; +\node[circle, draw, fill =lightgray] at (codiert.north west) {2}; +\node[circle, draw, fill =lightgray] at (fehler.north west) {3}; +\node[circle, draw, fill =lightgray] at (empfangen.north west) {4}; +\node[circle, draw, fill =lightgray] at (decodiert.north west) {5}; +\node[circle, draw, fill =lightgray] at (syndrom.north west) {6}; +\node[circle, draw, fill =lightgray] at (locator.north west) {7}; +\end{tikzpicture} \ No newline at end of file diff --git a/buch/papers/reedsolomon/packages.tex b/buch/papers/reedsolomon/packages.tex index 4b1ee68..b84e228 100644 --- a/buch/papers/reedsolomon/packages.tex +++ b/buch/papers/reedsolomon/packages.tex @@ -9,4 +9,4 @@ %\usepackage{packagename} \usepackage{pgfplots} - +\usepackage{filecontents} -- cgit v1.2.1 From f5dc85609d5db143cbdefcbb1430b4dfec7a8d3f Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Thu, 22 Jul 2021 09:38:24 +0200 Subject: Create figure for stereographic projection --- buch/papers/punktgruppen/Makefile | 1 + .../figures/stereographic-projections.pdf | Bin 0 -> 2045 bytes .../tikz/stereographic-projections.tex | 90 +++++++++++++++++++++ 3 files changed, 91 insertions(+) create mode 100644 buch/papers/punktgruppen/figures/stereographic-projections.pdf create mode 100644 buch/papers/punktgruppen/tikz/stereographic-projections.tex (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/Makefile b/buch/papers/punktgruppen/Makefile index 98e7149..03ad15a 100644 --- a/buch/papers/punktgruppen/Makefile +++ b/buch/papers/punktgruppen/Makefile @@ -20,6 +20,7 @@ TIKZFIGURES := \ tikz/lattice.tex \ tikz/piezo.tex \ tikz/projections.tex \ + tikz/stereographic-projections.tex \ tikz/symmetric-shapes.tex FIGURES := $(patsubst tikz/%.tex, figures/%.pdf, $(TIKZFIGURES)) diff --git a/buch/papers/punktgruppen/figures/stereographic-projections.pdf b/buch/papers/punktgruppen/figures/stereographic-projections.pdf new file mode 100644 index 0000000..59db126 Binary files /dev/null and b/buch/papers/punktgruppen/figures/stereographic-projections.pdf differ diff --git a/buch/papers/punktgruppen/tikz/stereographic-projections.tex b/buch/papers/punktgruppen/tikz/stereographic-projections.tex new file mode 100644 index 0000000..4091ad9 --- /dev/null +++ b/buch/papers/punktgruppen/tikz/stereographic-projections.tex @@ -0,0 +1,90 @@ +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{tikz-3dplot} + +\usetikzlibrary{arrows} +\usetikzlibrary{intersections} +\usetikzlibrary{math} +\usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{calc} + +\begin{document} + +\tdplotsetmaincoords{60}{130} +\pgfmathsetmacro{\l}{2} + +\begin{tikzpicture}[ + >=latex, + tdplot_main_coords, + dot/.style = { + black, fill = black, circle, + outer sep = 0, inner sep = 0, + minimum size = 1mm + }, + round/.style = { + draw = orange, thick, circle, + minimum size = 1mm, + inner sep = 0pt, outer sep = 0pt, + }, + cross/.style = { + cross out, draw = magenta, thick, + minimum size = 1mm, + inner sep = 0pt, outer sep = 0pt + }, + ] + + % origin + \coordinate (O) at (0,0,0); + + % poles + \coordinate (NP) at (0,0,\l); + \coordinate (SP) at (0,0,-\l); + + % axis + % \draw[->] (O) -- ++(1.5*\l,0,0); + % \draw[->] (O) -- ++(0,1.5*\l,0); + % \draw[->] (O) -- ++(0,0,1.5*\l); + + % gray unit circle + \tdplotdrawarc[gray, dashed]{(O)}{\l}{0}{360}{}{}; + \draw[gray, dashed] (-\l, 0, 0) to (\l, 0, 0); + \draw[gray, dashed] (0, -\l, 0) to (0, \l, 0); + + % meridians + \foreach \phi in {0, 30, 60, ..., 150}{ + \tdplotsetrotatedcoords{\phi}{90}{0}; + \tdplotdrawarc[lightgray, dashed, tdplot_rotated_coords]{(O)}{\l}{0}{360}{}{}; + } + + % dot above and its projection + \pgfmathsetmacro{\phi}{120} + \pgfmathsetmacro{\theta}{60} + + \pgfmathsetmacro{\px}{cos(\phi)*sin(\theta)*\l} + \pgfmathsetmacro{\py}{sin(\phi)*sin(\theta)*\l} + \pgfmathsetmacro{\pz}{cos(\theta)*\l}) + + \coordinate (A) at (\px,\py,\pz); + \coordinate (Aproj) at ({\px * \l / (\l + \pz)}, {\py * \l / (\l + \pz)}, 0); + + % projection line + \draw[] (A) to (SP); + \draw[gray] (SP) to (O) to (Aproj); + + % dot + \draw (O) node[dot] {}; + \draw (SP) node[dot] {}; + \draw (A) node[dot, fill=magenta] {}; + \draw[very thick, magenta] + (Aproj) ++(.15,0) to ($(Aproj)+(-.15, 0)$) + (Aproj) ++(0,.15) to ($(Aproj) +(0, -.15)$); + + % \draw (O) to ({cos(\phi)*\l}, {sin(\phi)*\l}, 0); + +\end{tikzpicture} +\end{document} +% vim:ts=2 sw=2 et: -- cgit v1.2.1 From 38950a79c5e5d4a4a064f17539d7f0fc5a9a2ef0 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Thu, 22 Jul 2021 09:38:44 +0200 Subject: Rebuild figures --- .../punktgruppen/figures/atoms-grid-force.pdf | Bin 1496 -> 1496 bytes .../punktgruppen/figures/atoms-grid-still.pdf | Bin 0 -> 1307 bytes .../figures/atoms-piezo-force-horizontal.pdf | Bin 0 -> 12453 bytes .../figures/atoms-piezo-force-vertical.pdf | Bin 0 -> 12490 bytes .../punktgruppen/figures/atoms-piezo-still.pdf | Bin 0 -> 1643 bytes .../punktgruppen/figures/combine-symmetries.pdf | Bin 14414 -> 12054 bytes buch/papers/punktgruppen/figures/lattice.pdf | Bin 27886 -> 25646 bytes buch/papers/punktgruppen/figures/piezo-atoms.pdf | Bin 35693 -> 0 bytes buch/papers/punktgruppen/figures/piezo.pdf | Bin 16865 -> 14077 bytes buch/papers/punktgruppen/figures/projections.pdf | Bin 27953 -> 26440 bytes .../punktgruppen/figures/symmetric-shapes.pdf | Bin 12790 -> 12772 bytes 11 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 buch/papers/punktgruppen/figures/atoms-grid-still.pdf create mode 100644 buch/papers/punktgruppen/figures/atoms-piezo-force-horizontal.pdf create mode 100644 buch/papers/punktgruppen/figures/atoms-piezo-force-vertical.pdf create mode 100644 buch/papers/punktgruppen/figures/atoms-piezo-still.pdf delete mode 100644 buch/papers/punktgruppen/figures/piezo-atoms.pdf (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/figures/atoms-grid-force.pdf b/buch/papers/punktgruppen/figures/atoms-grid-force.pdf index f56be04..b3e6215 100644 Binary files a/buch/papers/punktgruppen/figures/atoms-grid-force.pdf and b/buch/papers/punktgruppen/figures/atoms-grid-force.pdf differ diff --git a/buch/papers/punktgruppen/figures/atoms-grid-still.pdf b/buch/papers/punktgruppen/figures/atoms-grid-still.pdf new file mode 100644 index 0000000..752014d Binary files /dev/null and b/buch/papers/punktgruppen/figures/atoms-grid-still.pdf differ diff --git a/buch/papers/punktgruppen/figures/atoms-piezo-force-horizontal.pdf b/buch/papers/punktgruppen/figures/atoms-piezo-force-horizontal.pdf new file mode 100644 index 0000000..313dc69 Binary files /dev/null and b/buch/papers/punktgruppen/figures/atoms-piezo-force-horizontal.pdf differ diff --git a/buch/papers/punktgruppen/figures/atoms-piezo-force-vertical.pdf b/buch/papers/punktgruppen/figures/atoms-piezo-force-vertical.pdf new file mode 100644 index 0000000..9a86b7c Binary files /dev/null and b/buch/papers/punktgruppen/figures/atoms-piezo-force-vertical.pdf differ diff --git a/buch/papers/punktgruppen/figures/atoms-piezo-still.pdf b/buch/papers/punktgruppen/figures/atoms-piezo-still.pdf new file mode 100644 index 0000000..83b6590 Binary files /dev/null and b/buch/papers/punktgruppen/figures/atoms-piezo-still.pdf differ diff --git a/buch/papers/punktgruppen/figures/combine-symmetries.pdf b/buch/papers/punktgruppen/figures/combine-symmetries.pdf index 13f7330..6cd4e64 100644 Binary files a/buch/papers/punktgruppen/figures/combine-symmetries.pdf and b/buch/papers/punktgruppen/figures/combine-symmetries.pdf differ diff --git a/buch/papers/punktgruppen/figures/lattice.pdf b/buch/papers/punktgruppen/figures/lattice.pdf index 6565be5..712d6f4 100644 Binary files a/buch/papers/punktgruppen/figures/lattice.pdf and b/buch/papers/punktgruppen/figures/lattice.pdf differ diff --git a/buch/papers/punktgruppen/figures/piezo-atoms.pdf b/buch/papers/punktgruppen/figures/piezo-atoms.pdf deleted file mode 100644 index 63da7a9..0000000 Binary files a/buch/papers/punktgruppen/figures/piezo-atoms.pdf and /dev/null differ diff --git a/buch/papers/punktgruppen/figures/piezo.pdf b/buch/papers/punktgruppen/figures/piezo.pdf index ca6192b..d82ee96 100644 Binary files a/buch/papers/punktgruppen/figures/piezo.pdf and b/buch/papers/punktgruppen/figures/piezo.pdf differ diff --git a/buch/papers/punktgruppen/figures/projections.pdf b/buch/papers/punktgruppen/figures/projections.pdf index c9369b2..bc04313 100644 Binary files a/buch/papers/punktgruppen/figures/projections.pdf and b/buch/papers/punktgruppen/figures/projections.pdf differ diff --git a/buch/papers/punktgruppen/figures/symmetric-shapes.pdf b/buch/papers/punktgruppen/figures/symmetric-shapes.pdf index 0b3ba54..3a8d9dd 100644 Binary files a/buch/papers/punktgruppen/figures/symmetric-shapes.pdf and b/buch/papers/punktgruppen/figures/symmetric-shapes.pdf differ -- cgit v1.2.1 From 49b0ab2844c380a5380e1d9d893738e9fd22c2b5 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Thu, 22 Jul 2021 10:20:15 +0200 Subject: Add figure of stereographic projection and little explanation --- buch/papers/punktgruppen/crystals.tex | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index f8be01b..0e4d6c7 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -107,9 +107,14 @@ ein. \begin{figure} \centering - \includegraphics[]{papers/punktgruppen/figures/projections} - \caption{Kristallklassen mit zugehörigem Schönflies-Symbol} - \label{fig:punktgruppen:Kristallkassen} + \includegraphics[height=6cm]{papers/punktgruppen/figures/stereographic-projections} + \caption{ + Stereografische Projektion: Es wird eine Linie vom magentafarbenen Punkt auf der oberen Hälfte der Kugel zum Südpol gezogen. + Wo die Linie die Ebene schneidet (\(z = 0\)), ist die Projektion des Punktes. + Die Koordinaten der Projektionen sind einfach zu berechnen: + ein Punkt auf eine Kugel mit Radius \(r\) mit den Koordinaten \(x, y, z,\) wird auf \(xr/(r - z), yr/(r - z)\) projiziert. + } + \label{fig:punktgruppen:stereographic-projections} \end{figure} \subsection{Kristallklassen} @@ -119,15 +124,17 @@ nur auf genau 32 Arten rein punktsymmetrische Symmetriegruppen bilden können. Diese 32 möglichen Symmetriegruppen scheinen durchaus relevant zu sein, denn sie werden unter anderem als Kristallklassen bezeichnet. Die 32 möglichen Kristallklassen sind auf Abbildung \ref{fig:punktgruppen:Kristallkassen} zu sehen. -Die Darstellung von dreidimensionalen Punktsymmetrien wurde mit der stereographischen Projektion -\footnote{Die Markierten Kreise/Kreuze repräsentieren Punkte auf einer Kugel. -Die Orte der Symbole stehen für einen Schattenwurf eines Punktes auf dem Boden, auf welcher sich die Kugel befindet. -Wobei die Lichtquelle am Nord/Südpol liegt.} -ermöglicht, -wobei die gestrichelten Klassen aus Gründen der Überschaubarkeit nicht im Detail gezeichnet wurden. +Die Darstellung von dreidimensionalen Punktsymmetrien wurde mit der stereographischen Projektion ermöglicht (siehe Abb. \ref{fig:punktgruppen:stereographic-projections}), wobei die gestrichelten Klassen aus Gründen der Überschaubarkeit nicht im Detail gezeichnet wurden. +\begin{figure} + \centering + \includegraphics[]{papers/punktgruppen/figures/projections} + \caption{Kristallklassen mit zugehörigem Schönflies-Symbol} + \label{fig:punktgruppen:Kristallkassen} +\end{figure} \subsubsection{Schönflies-Symbilok} + Jede der 32 Kristallklassen auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} ist mit ihrem zugehörigen Schöönflies-Symbol bezeichnet. Die Schönflies-Symbolik stammt von dem Mathematiker Arthur Moritz Schönflies, welcher sich unter anderem mit der Klasifizierung der Punktgruppen auseinandergesetzt hat. -- cgit v1.2.1 From 09da726608ea811d6d9aa51261e48c787a4300ab Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Thu, 22 Jul 2021 10:28:08 +0200 Subject: Fix piezo figure E-Field --- buch/papers/punktgruppen/figures/piezo.pdf | Bin 14077 -> 15599 bytes buch/papers/punktgruppen/tikz/piezo.tex | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/figures/piezo.pdf b/buch/papers/punktgruppen/figures/piezo.pdf index d82ee96..904250a 100644 Binary files a/buch/papers/punktgruppen/figures/piezo.pdf and b/buch/papers/punktgruppen/figures/piezo.pdf differ diff --git a/buch/papers/punktgruppen/tikz/piezo.tex b/buch/papers/punktgruppen/tikz/piezo.tex index 56e9463..6542f26 100644 --- a/buch/papers/punktgruppen/tikz/piezo.tex +++ b/buch/papers/punktgruppen/tikz/piezo.tex @@ -47,7 +47,7 @@ \node[ rectangle, fill = gray!20!white, minimum width = 3cm, minimum height = 1.5cm, - ] (body) {\(\vec{E}_p = \vec{0}\)}; + ] (body) {\(\vec{E}_p \neq \vec{0}\)}; \node[ draw, rectangle, thick, black, fill = red!50, -- cgit v1.2.1 From cccb51c61e5423ab8bc42ff327bc577dfc5aca24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Thu, 22 Jul 2021 10:35:04 +0200 Subject: typo --- buch/papers/reedsolomon/Makefile.inc | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/Makefile.inc b/buch/papers/reedsolomon/Makefile.inc index 6a676f8..ea51f7a 100644 --- a/buch/papers/reedsolomon/Makefile.inc +++ b/buch/papers/reedsolomon/Makefile.inc @@ -6,9 +6,17 @@ dependencies-reedsolomon = \ papers/reedsolomon/packages.tex \ papers/reedsolomon/main.tex \ - papers/reedsolomon/references.bib \ - papers/reedsolomon/teil0.tex \ - papers/reedsolomon/teil1.tex \ - papers/reedsolomon/teil2.tex \ - papers/reedsolomon/teil3.tex + papers/reedsolomon/einleitung.tex \ + papers/reedsolomon/idee.tex \ + papers/reedsolomon/dtf.tex \ + papers/reedsolomon/endlichekoerper.tex \ + papers/reedsolomon/codebsp.tex \ + papers/reedsolomon/decohnefehler.tex \ + papers/reedsolomon/decmitfehler.tex \ + papers/reedsolomon/rekonstruktion.tex \ + papers/reedsolomon/zusammenfassung.tex \ + papers/reedsolomon/anwendungen.tex \ + papers/reedsolomon/hilfstabellen.tex \ + papers/reedsolomon/references.bib + -- cgit v1.2.1 From bb830b17b647c27c48cc611af44045ed9eab7ae8 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Thu, 22 Jul 2021 10:48:02 +0200 Subject: Add missing reference --- buch/papers/punktgruppen/main.tex | 1 + buch/papers/punktgruppen/references.bib | 9 +++++++++ 2 files changed, 10 insertions(+) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/main.tex b/buch/papers/punktgruppen/main.tex index a6e246c..ea19421 100644 --- a/buch/papers/punktgruppen/main.tex +++ b/buch/papers/punktgruppen/main.tex @@ -18,6 +18,7 @@ \nocite{punktgruppen:pinter-algebra} \nocite{punktgruppen:sands-crystal} \nocite{punktgruppen:lang-elt2} +\nocite{punktgruppen:ouchem} \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/punktgruppen/references.bib b/buch/papers/punktgruppen/references.bib index 9edb8bd..a29640c 100644 --- a/buch/papers/punktgruppen/references.bib +++ b/buch/papers/punktgruppen/references.bib @@ -33,3 +33,12 @@ inseries = {Vorlesungsskript zum Modul ELT}, } +@online{punktgruppen:ouchem, + title = {Symmetry in Crystallography}, + author = {Dept. of Chemistry \& Biochemistry, Chemical Crystallography Laboratory, University of Oklahoma}, + year = {2019}, + month = {11}, + day = {17}, + url = {http://archive.today/2021.07.22-083802/http://xrayweb.chem.ou.edu/notes/symmetry.html}, + urldate = {2021-07-22}, +} -- cgit v1.2.1 From 2d4039ca87a6b2fb7897cc47ed1d81256a25d79d Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Thu, 22 Jul 2021 14:17:29 +0200 Subject: Fix Makefile.inc --- buch/papers/punktgruppen/Makefile.inc | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/Makefile.inc b/buch/papers/punktgruppen/Makefile.inc index 8cde9d7..3b49602 100644 --- a/buch/papers/punktgruppen/Makefile.inc +++ b/buch/papers/punktgruppen/Makefile.inc @@ -11,8 +11,15 @@ dependencies-punktgruppen = \ papers/punktgruppen/crystals.tex \ papers/punktgruppen/piezo.tex \ papers/punktgruppen/references.bib \ - papers/punktgruppen/tikz/combine-symmetries.tex \ - papers/punktgruppen/tikz/lattice.tex \ - papers/punktgruppen/tikz/piezo-atoms.tex \ - papers/punktgruppen/tikz/piezo.tex \ - papers/punktgruppen/tikz/projections.tex + paers/punktgruppen/tikz/atoms-grid-force.tex \ + paers/punktgruppen/tikz/atoms-grid-still.tex \ + paers/punktgruppen/tikz/atoms-piezo-force-horizontal.tex \ + paers/punktgruppen/tikz/atoms-piezo-force-vertical.tex \ + paers/punktgruppen/tikz/atoms-piezo-still.tex \ + paers/punktgruppen/tikz/combine-symmetries.tex \ + paers/punktgruppen/tikz/lattice.tex \ + paers/punktgruppen/tikz/piezo-atoms.tex \ + paers/punktgruppen/tikz/piezo.tex \ + paers/punktgruppen/tikz/projections.tex \ + paers/punktgruppen/tikz/stereographic-projections.tex \ + paers/punktgruppen/tikz/symmetric-shapes.tex -- cgit v1.2.1 From 98b291860c3de86df4d35a7ef3d58315722c2c18 Mon Sep 17 00:00:00 2001 From: Lukaszogg <82384106+Lukaszogg@users.noreply.github.com> Date: Thu, 22 Jul 2021 18:47:29 +0200 Subject: Update teil0.tex --- buch/papers/erdbeben/teil0.tex | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/erdbeben/teil0.tex b/buch/papers/erdbeben/teil0.tex index 844245c..ba6552b 100644 --- a/buch/papers/erdbeben/teil0.tex +++ b/buch/papers/erdbeben/teil0.tex @@ -12,10 +12,8 @@ Das soll uns helfen, eine Verknüpfung zwischen dem Naturphänomen und der mathe Unter einem Erdbeben verstehen wir eine Erschütterung des Erdkörpers. Dabei reiben zwei tektonische Platten aneinander, welche sich durch die Gesteinsverzahnung gegenseitig blockieren. -Aufgrund dieser Haftreibung entstehen Spannungen, die sich immer mehr bis zum Tipping Point aufbauen. -Irgendwann ist der Punkt erreicht, in dem die Scherfestigkeit der Gesteine überwunden wird. +Diese Haftreibung durch die Steine wird so lange aufgebaut, bis sie nicht mehr gehalten werden kann. Wenn dies passiert, entlädt sich die aufgebaute Spannung und setzt enorme Energien frei, die wir als Erdbeben wahrnehmen. - Ein Erdbeben breitet sich vom Erdbebenherd in allen Richtungen gleich aus. Vergleichbar ist, wenn man einen Stein in einen Teich wirft und die Wellen beobachten kann, die sich ausbreiten. -- cgit v1.2.1 From 88fef8a83dcae2c49edab204809b438a27c24482 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Fri, 23 Jul 2021 08:46:39 +0200 Subject: Some corrections on the symmetry section --- buch/papers/punktgruppen/symmetry.tex | 39 +++++++++++++++++------------------ 1 file changed, 19 insertions(+), 20 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/symmetry.tex b/buch/papers/punktgruppen/symmetry.tex index 1dc6f98..6655864 100644 --- a/buch/papers/punktgruppen/symmetry.tex +++ b/buch/papers/punktgruppen/symmetry.tex @@ -1,7 +1,7 @@ \section{Symmetrie} Das Wort Symmetrie ist sehr alt und hat sich seltsamerweise von seinem ursprünglichen griechischen Wort -\(\mathrm{\Sigma\nu\mu\mu\varepsilon\tau\rho\iota\alpha}\) +\(\mathrm{\Sigma\upsilon\mu\mu\varepsilon\tau\rho\iota\alpha}\) \footnote{\emph{Symmetr\'ia}: ein gemeinsames Mass habend, gleichmässig, verhältnismässig} fast nicht verändert. In der Alltagssprache mag es ein locker definierter Begriff sein, aber in der Mathematik hat Symmetrie eine sehr @@ -33,9 +33,7 @@ Rotationssymmetrie zu veranschaulichen, was bedeutet, dass eine Drehung um einen Punkt um einen bestimmten Winkel \(360^\circ/n\) die Figur unverändert lässt. Das letzte Beispiel auf der rechten Seite ist eine unendliche Rotationssymmetrie. Sie wird so genannt, weil es unendlich viele Werte für -\(\alpha \in \mathbb{R}\) gibt, die die Form unverändert lassen. Dies ist -hoffentlich ausreichend, um die Bedeutung hinter der Notation zu verstehen, die -nun eingeführt wird. +\(\alpha \in \mathbb{R}\) gibt, die die Form unverändert lassen. % Vieleicht eine kurze Einführung in für die Definition, ich habe das gefühl, dass in der Definition die Symmetrie-Operation und die Gruppe auf einmal erklährt wird \subsubsection{Symetriegruppe} @@ -46,39 +44,40 @@ nicht nur um $\sigma$ sondern auch Diagonal gespiegelt werden oder um $90^\circ$ Fässt man die möglichen Symmetrien zusammen, entsteht eine Symmetriegruppe. \begin{definition}[Symmetriegruppe] - Sei \(g\) eine Operation, die ein mathematisches Objekt unverändert lässt. - Bei einer anderen Operation \(h\) definieren wir die Komposition \(h\circ g\) - als die Anwendung der Operationen nacheinander. Alle Operationen bilden unter - Komposition eine Gruppe, die Symmetriegruppe genannt wird. + Sei \(g\) eine umkehrbare Operation, die ein mathematisches Objekt + unverändert lässt. Bei einer anderen Operation \(h\) definieren wir die + Komposition \(h\circ g\) als die Anwendung der Operationen nacheinander. Alle + Operationen bilden unter Komposition eine Gruppe, die Symmetriegruppe genannt + wird. \end{definition} % ich lese diese Definition ein wenig holprig, vieleicht können wir sie zusammen anschauen % Nach meinem Geschmack könne es hier auch eine einleitung wie mein Beispiel geben dammit man den Text flüssiger lesen kann \begin{definition}[Zyklische Untergruppe, Erzeuger] Sei \(g\) ein Element einer Symmetriegruppe \(G\). Alle möglichen Kompositionen von \(g\) und \(g^{-1}\) bilden eine sogenannte zyklische - Untergruppe von \(G\), und \(g\) wird ihr Erzeuger genannt. Die erzeugte - Untergruppe \(\langle g \rangle\) wird mit spitzen Klammern um den Erzeuger - bezeichnet. + Untergruppe von \(G\), und \(g\) wird ihr Erzeuger genannt. Die von \(g\) + erzeugte Untergruppe \(\langle g \rangle = \left\{ g^k : k \in \mathbb{Z} + \right\}\) wird mit spitzen Klammern bezeichnet. \end{definition} -Mit dem oben Gesagten können wir das \(n\)-Gon Beispiel formalisieren. +Damit können wir das \(n\)-Gon Beispiel formalisieren. Bezeichnen wir mit \(r\) eine Drehung im Gegenuhrzeigersinn von \(360^\circ/n\) um einen Punkt. Diese Definition reicht aus, um die gesamte Symmetriegruppe \[ C_n = \langle r \rangle = \left\{\mathds{1}, r, r^2, \ldots, r^{n-1}\right\} \] -der Drehungen eines \(n\)-Gons zu definieren. Das liegt daran, -dass wir durch die mehrfache Verwendung von \(r\) jeden Winkel erzeugen, der -die Rotationssymmetrie bewahrt. Hier die Potenzen von \(r\) sind als -wiederholte Komposition gemeint, dass heisst \(r^n = r\circ r \circ \cdots -r\circ r\). Wenn wir diese Idee nun erweitern, können wir mit einem -Erzeugendensystemen komplexere Strukturen aufbauen. +der Drehungen eines \(n\)-Gons zu erzeugen. Das liegt daran, dass wir durch die +mehrfache Verwendung von \(r\) jeden Winkel erzeugen k\"onnen, der die +Rotationssymmetrie bewahrt. Hier die Potenzen von \(r\) sind als wiederholte +Komposition gemeint, dass heisst \(r^n = r\circ r \circ \cdots r\circ r\). +Wenn wir diese Idee nun erweitern, können wir mit einem Erzeugendensystemen +komplexere Strukturen aufbauen. \begin{definition}[Erzeugendensysteme] % please fix this unreadable mess - Jede Gruppe kann durch eines oder mehrere ihrer Elemente generiert werden. - Wir lassen \(g_1, g_2, \ldots, g_n\) erzeugenden Elemente einer + Jede disktrete Gruppe kann durch eines oder mehrere ihrer Elemente generiert + werden. Wir lassen \(g_1, g_2, \ldots, g_n\) erzeugenden Elemente einer Symmetriegruppe sein. Da es mehrere Erzeuger gibt, müssen auch die sogenannte Definitionsgleichungen gegeben werden, die die Multiplikationstabelle vollständig definieren. Die Gleichungen sind ebenfalls -- cgit v1.2.1 From 472b3d0a253879552d139cc4f41a2e00e5f6e4f5 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Fri, 23 Jul 2021 09:08:08 +0200 Subject: Change stereographic projection to Ci --- buch/papers/punktgruppen/crystals.tex | 5 +-- .../figures/stereographic-projections.pdf | Bin 2045 -> 2377 bytes .../tikz/stereographic-projections.tex | 34 ++++++++++++++++----- 3 files changed, 29 insertions(+), 10 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index 0e4d6c7..b59ae0e 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -109,10 +109,11 @@ ein. \centering \includegraphics[height=6cm]{papers/punktgruppen/figures/stereographic-projections} \caption{ - Stereografische Projektion: Es wird eine Linie vom magentafarbenen Punkt auf der oberen Hälfte der Kugel zum Südpol gezogen. + Stereografische Projektion einer \(C_{i}\) Symmetrie. Es wird eine Linie vom magentafarbenen Punkt auf der oberen Hälfte der Kugel zum Südpol gezogen. Wo die Linie die Ebene schneidet (\(z = 0\)), ist die Projektion des Punktes. Die Koordinaten der Projektionen sind einfach zu berechnen: - ein Punkt auf eine Kugel mit Radius \(r\) mit den Koordinaten \(x, y, z,\) wird auf \(xr/(r - z), yr/(r - z)\) projiziert. + ein Punkt auf eine Kugel mit Radius \(r\) mit den Koordinaten \(x, y, z,\) wird auf \(xr/(r + z), yr/(r + z)\) projiziert. + Für den orangefarbenen Punkt unterhalb des Äquators wird die Linie zum Nordpol gezogen und die Projektionsformel hat stattdessen einen Nenner von \(r - z\). } \label{fig:punktgruppen:stereographic-projections} \end{figure} diff --git a/buch/papers/punktgruppen/figures/stereographic-projections.pdf b/buch/papers/punktgruppen/figures/stereographic-projections.pdf index 59db126..7598265 100644 Binary files a/buch/papers/punktgruppen/figures/stereographic-projections.pdf and b/buch/papers/punktgruppen/figures/stereographic-projections.pdf differ diff --git a/buch/papers/punktgruppen/tikz/stereographic-projections.tex b/buch/papers/punktgruppen/tikz/stereographic-projections.tex index 4091ad9..7d612fb 100644 --- a/buch/papers/punktgruppen/tikz/stereographic-projections.tex +++ b/buch/papers/punktgruppen/tikz/stereographic-projections.tex @@ -50,9 +50,9 @@ % \draw[->] (O) -- ++(0,0,1.5*\l); % gray unit circle - \tdplotdrawarc[gray, dashed]{(O)}{\l}{0}{360}{}{}; - \draw[gray, dashed] (-\l, 0, 0) to (\l, 0, 0); - \draw[gray, dashed] (0, -\l, 0) to (0, \l, 0); + \tdplotdrawarc[gray, thick]{(O)}{\l}{0}{360}{}{}; + \draw[gray, dotted] (-\l, 0, 0) to (\l, 0, 0); + \draw[gray, dotted] (0, -\l, 0) to (0, \l, 0); % meridians \foreach \phi in {0, 30, 60, ..., 150}{ @@ -71,19 +71,37 @@ \coordinate (A) at (\px,\py,\pz); \coordinate (Aproj) at ({\px * \l / (\l + \pz)}, {\py * \l / (\l + \pz)}, 0); - % projection line - \draw[] (A) to (SP); + % dot below and its projection + \pgfmathsetmacro{\phi}{-60} + \pgfmathsetmacro{\theta}{120} + + \pgfmathsetmacro{\px}{cos(\phi)*sin(\theta)*\l} + \pgfmathsetmacro{\py}{sin(\phi)*sin(\theta)*\l} + \pgfmathsetmacro{\pz}{cos(\theta)*\l}) + + \coordinate (B) at (\px,\py,\pz); + \coordinate (Bproj) at ({\px * \l / (\l - \pz)}, {\py * \l / (\l - \pz)}, 0); + + % projection lines + \draw[gray] (A) to (SP); \draw[gray] (SP) to (O) to (Aproj); - % dot + \draw[gray] (B) to (NP); + \draw[gray] (NP) to (O) to (Bproj); + + % dots \draw (O) node[dot] {}; \draw (SP) node[dot] {}; - \draw (A) node[dot, fill=magenta] {}; + \draw (NP) node[dot] {}; + \draw (A) node[dot, fill = magenta, minimum size = 1.5mm] {}; + \draw (B) node[dot, fill = orange, minimum size = 1.5mm] {}; + + % projection markers \draw[very thick, magenta] (Aproj) ++(.15,0) to ($(Aproj)+(-.15, 0)$) (Aproj) ++(0,.15) to ($(Aproj) +(0, -.15)$); - % \draw (O) to ({cos(\phi)*\l}, {sin(\phi)*\l}, 0); + \tdplotdrawarc[orange, very thick]{(Bproj)}{.1}{0}{360}{}{}; \end{tikzpicture} \end{document} -- cgit v1.2.1 From 7e173afd620b52d542cec0f939299a995eb34689 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Fri, 23 Jul 2021 09:19:32 +0200 Subject: Change crystal restriction to theorem style with proof --- buch/papers/punktgruppen/crystals.tex | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index b59ae0e..5211b68 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -28,8 +28,6 @@ erreicht werden sofern $\{n_1,n_2,n_3\} \in \mathbb{Z}$ sind. Sind die Vektoren $\vec{a}$ , $\vec{b}$ , $\vec{c}$ gegeben, ist ein Kristallgitter eindeutig beschrieben, weswegen sie auch als Grundvektoren bekannt sind. -%TODOO fix Q define without vector symb. -> ask naoki - \subsection{Translationssymmetrie} Da sich das ganze Kristallgitter wiederholt, wiederholen sich auch dessen Eigenschaften periodisch mit den Grundvektoren. Sollte man sich auf einem Gitterpunkt in einem Kristall aufhalten, ist es unmöglich zu wissen, auf welchem Gitterpunkt man sich befindet, @@ -44,7 +42,7 @@ der Vektoren $\vec{a}$ , $\vec{b}$ und $\vec{c}$ erlaubt sind oder kurz, um $\ve Verschiebungen um $\vec{r}$ bewirken demnach keine Veränderungen, solange wir ein unendlich grosses Kristallgitter verschieben. -\subsection{Limitierte Kristallsymmetrien} \label{txt:punktgruppen: Translationssymmetrie} +\subsection{Limitierte Kristallsymmetrien} \label{txt:punktgruppen:Translationssymmetrie} Die Translationssymmetrie ist wohl keine grosse Überraschung, wenn man die Abbildung \ref{fig:punktgruppen:lattice} betrachtet. Was nicht direkt ersichtlich ist, dass bei beliebigen Grundvektoren nicht beliebige Symmetrien erstellt werden können. Die geforderte Translationssymmetrie eines Kristalles schränkt weitere Symmetrien deutlich ein. @@ -58,7 +56,18 @@ solange wir ein unendlich grosses Kristallgitter verschieben. \label{fig:punktgruppen:rot-geometry} \end{figure} - \subsubsection{Translationssymmetrie $Q$ in Kombination mit Rotationssymmetrie $C_\alpha$} % Müssen uns auf eine schreibweise für Symmetrie Operationen einigen oder sicher am Ende überprüfen +\begin{satz} + Die Rotationssymmetrien eines Kristalls sind auf 2-fach, 3-fach, 4-fach und 6-fach beschränkt. + Mit anderen Worten: Es sind nur Drehwinkel von + 0\(^{\circ}\), + 60\(^{\circ}\), + 90\(^{\circ}\), + 120\(^{\circ}\) und + 180\(^{\circ}\) + erlaubt. +\end{satz} + +\begin{proof} In Abbildung \ref{fig:punktgruppen:rot-geometry} sehen wir Gitterpunkte und deren Zusammenhänge. \begin{itemize} @@ -66,13 +75,13 @@ solange wir ein unendlich grosses Kristallgitter verschieben. \item \(A'\) ist gegeben, weil wir \(A\) mit der Translation \(\vec{Q}\) um einen Grundvektor verschieben und wir wissen, dass nach einer Translation wieder ein Gitterpunkt an der verschobenen Stelle sein muss. - \item \(B\) entsteht, weil wir die Rotationssymmetrie \(C_\alpha\) auf den Punkt \(A\) anwenden. - Dadurch dreht sich das ganze Gitter um den Winkel \(\alpha\). + \item \(B\) entsteht, weil wir die Rotationssymmetrie \(C_n\) auf den Punkt \(A\) anwenden. + Dadurch dreht sich das ganze Gitter um den Winkel \(360^\circ/n\). Für uns bedeutet dies lediglich, dass unser zweiter Punkt \(A'\) abgedreht wird. An der neuen Position \(B\) von \(A'\) muss also auch ein Punkt des Gitters sein, um die Rotationssymmetrie zu erfüllen. \item \(B\) ist unser Name für diesen neuen Punkt. - Da auch die Eigenschaften des Kristallgittes periodisch mit dem Gitter sein müssen, dürfen wir \(C_\alpha\) auch auf \(A'\) anwenden. - Also wenden wir \(C_\alpha\) invertiert + Da auch die Eigenschaften des Kristallgittes periodisch mit dem Gitter sein müssen, dürfen wir \(C_n\) auch auf \(A'\) anwenden. + Also wenden wir \(C_n\) invertiert \footnote{Eine Rotationssymmetrie muss auch in die inverse Richtung funktionieren. Genauere Überlegungen hierzu werden dem Leser überlassen, da sich die Autoren nicht explizit mit dieser Frage Auseinander gesetzt haben.} auch auf \(A'\) an. @@ -104,6 +113,7 @@ solange wir ein unendlich grosses Kristallgitter verschieben. \alpha \in \left\{ 0^\circ, 60^\circ, 90^\circ, 120^\circ, 180^\circ\right\} \) ein. +\end{proof} \begin{figure} \centering -- cgit v1.2.1 From f33a109c77b9430ce39d2513ee48b4d820527922 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Fri, 23 Jul 2021 09:26:23 +0200 Subject: Fix typo in Makefile.inc --- buch/papers/punktgruppen/Makefile.inc | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/Makefile.inc b/buch/papers/punktgruppen/Makefile.inc index 3b49602..fbb073e 100644 --- a/buch/papers/punktgruppen/Makefile.inc +++ b/buch/papers/punktgruppen/Makefile.inc @@ -11,15 +11,15 @@ dependencies-punktgruppen = \ papers/punktgruppen/crystals.tex \ papers/punktgruppen/piezo.tex \ papers/punktgruppen/references.bib \ - paers/punktgruppen/tikz/atoms-grid-force.tex \ - paers/punktgruppen/tikz/atoms-grid-still.tex \ - paers/punktgruppen/tikz/atoms-piezo-force-horizontal.tex \ - paers/punktgruppen/tikz/atoms-piezo-force-vertical.tex \ - paers/punktgruppen/tikz/atoms-piezo-still.tex \ - paers/punktgruppen/tikz/combine-symmetries.tex \ - paers/punktgruppen/tikz/lattice.tex \ - paers/punktgruppen/tikz/piezo-atoms.tex \ - paers/punktgruppen/tikz/piezo.tex \ - paers/punktgruppen/tikz/projections.tex \ - paers/punktgruppen/tikz/stereographic-projections.tex \ - paers/punktgruppen/tikz/symmetric-shapes.tex + papers/punktgruppen/tikz/atoms-grid-force.tex \ + papers/punktgruppen/tikz/atoms-grid-still.tex \ + papers/punktgruppen/tikz/atoms-piezo-force-horizontal.tex \ + papers/punktgruppen/tikz/atoms-piezo-force-vertical.tex \ + papers/punktgruppen/tikz/atoms-piezo-still.tex \ + papers/punktgruppen/tikz/combine-symmetries.tex \ + papers/punktgruppen/tikz/lattice.tex \ + papers/punktgruppen/tikz/piezo-atoms.tex \ + papers/punktgruppen/tikz/piezo.tex \ + papers/punktgruppen/tikz/projections.tex \ + papers/punktgruppen/tikz/stereographic-projections.tex \ + papers/punktgruppen/tikz/symmetric-shapes.tex -- cgit v1.2.1 From cb91b7005c8a886e05595d73710ee3dfa29fe193 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Fri, 23 Jul 2021 10:37:52 +0200 Subject: Fix broken references --- buch/papers/punktgruppen/crystals.tex | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index 5211b68..33e7b54 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -154,13 +154,9 @@ Da nicht alle Symmetriegruppen in Kristallen möglich sind, werden nicht alle Un Es ist nur die Drehgruppe \(C\), Diedergruppe \(D\) Drehspiegelgruppe \(S\), Tetraedergruppe \(T\) und die Oktaedergruppe \(O\). Für die eindeutige zuweisung in eine Kristallklasse werden noch identifizierende Merkmale als Subskript notiert. Bei der Untergruppe \(C\) werden beispielsweise die möglichen Rotationssymmetrien gezeigt. -Dank Abschintt \ref{txt:punktgruppen: Translationssymmetrie} wissen wir, wieso auf \(C\) nur ganz bestimmte Subskripte folgen. +Dank Abschintt \ref{txt:punktgruppen:Translationssymmetrie} wissen wir, wieso auf \(C\) nur ganz bestimmte Subskripte folgen. Da das Subskript \(n\) von \(C_n\) zeigt, dass es sich um eine \(n\)-fache Rotationssymmetrie handelt. -Inzwischen wissen wir auch, dass \(C_5\) auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} nicht vorkommen darf, da -\[ - 360^\circ/5 = 72^\circ -\] -was nach Abschnitt \ref{txt:punktgruppen: Translationssymmetrie} in einem Kristall keine mögliche Rotationssymmetrie ist. +Inzwischen wissen wir auch, dass \(C_5\) auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} nicht vorkommen darf, da \(360^\circ/5 = 72^\circ\) was nach Abschnitt \ref{txt:punktgruppen:Translationssymmetrie} in einem Kristall keine mögliche Rotationssymmetrie ist. Sind im Subskript Buchstaben, definieren diese weitere Symmetrieeigenschaften der Klasse. Wie zum Beispiel ein Inversionszentrum \footnote{Ein Objekt mit Inversionszentrum ist Punktsymmetrisch im Inversionszentrum.} -- cgit v1.2.1 From ca9b453a796c6fb80a563d0bd979b5393acec373 Mon Sep 17 00:00:00 2001 From: Lukaszogg <82384106+Lukaszogg@users.noreply.github.com> Date: Fri, 23 Jul 2021 11:00:22 +0200 Subject: Anpassungen teil0 und main --- buch/papers/erdbeben/main.tex | 25 +++---------------------- buch/papers/erdbeben/teil0.tex | 4 +--- 2 files changed, 4 insertions(+), 25 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/erdbeben/main.tex b/buch/papers/erdbeben/main.tex index 8f9c8d5..95f1f4b 100644 --- a/buch/papers/erdbeben/main.tex +++ b/buch/papers/erdbeben/main.tex @@ -3,30 +3,11 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Thema\label{chapter:erdbeben}} +\chapter{Erdbebenmessung\label{chapter:erdbeben}} \lhead{Thema} \begin{refsection} -\chapterauthor{Hans Muster} - -Ein paar Hinweise für die korrekte Formatierung des Textes -\begin{itemize} -\item -Absätze werden gebildet, indem man eine Leerzeile einfügt. -Die Verwendung von \verb+\\+ ist nur in Tabellen und Arrays gestattet. -\item -Die explizite Platzierung von Bildern ist nicht erlaubt, entsprechende -Optionen werden gelöscht. -Verwenden Sie Labels und Verweise, um auf Bilder hinzuweisen. -\item -Beginnen Sie jeden Satz auf einer neuen Zeile. -Damit ermöglichen Sie dem Versionsverwaltungssysteme, Änderungen -in verschiedenen Sätzen von verschiedenen Autoren ohne Konflikt -anzuwenden. -\item -Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren -Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. -\end{itemize} - +\chapterauthor{Lukas Zogg und +Fabio Veicelli} \input{papers/erdbeben/teil0.tex} \input{papers/erdbeben/teil1.tex} %\input{papers/erdbeben/teil2.tex} diff --git a/buch/papers/erdbeben/teil0.tex b/buch/papers/erdbeben/teil0.tex index ba6552b..8ce8ff2 100644 --- a/buch/papers/erdbeben/teil0.tex +++ b/buch/papers/erdbeben/teil0.tex @@ -3,10 +3,8 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil %% -\section{Teil 0\label{erdbeben:section:teil0}} +\section{Was ist ein Erdbeben? \label{erdbeben:section:teil0}} \rhead{Erdbeben} -\section{Erdbebenmessung} -subsection{Was ist ein Erdbeben?} Für das Verständnis möchten wir zuerst erklären, was ein Erdbeben genau ist. Das soll uns helfen, eine Verknüpfung zwischen dem Naturphänomen und der mathematischen Problemstellung herzustellen. -- cgit v1.2.1 From 0d46748d5accdf9f2f176dc72c287cfcef7433f8 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Fri, 23 Jul 2021 11:10:46 +0200 Subject: Update symmetry section --- buch/papers/punktgruppen/symmetry.tex | 117 ++++++++++++++++++++-------------- 1 file changed, 70 insertions(+), 47 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/symmetry.tex b/buch/papers/punktgruppen/symmetry.tex index 6655864..dd8883e 100644 --- a/buch/papers/punktgruppen/symmetry.tex +++ b/buch/papers/punktgruppen/symmetry.tex @@ -26,22 +26,19 @@ ist das Konzept der Symmetrie eigentlich viel allgemeiner. \subsection{Geometrische Symmetrien} In Abbildung \ref{fig:punktgruppen:geometry-example} haben wir einige Formen, -die offensichtlich symmetrisch sind. Zum Beispiel hat das Quadrat eine Gerade, an -deren es gespiegelt werden kann, ohne sein Aussehen zu verändern. Regelmässige -Polygone mit \(n\) Seiten sind auch gute Beispiele, um eine diskrete -Rotationssymmetrie zu veranschaulichen, was bedeutet, dass eine Drehung um -einen Punkt um einen bestimmten Winkel \(360^\circ/n\) die Figur unverändert -lässt. Das letzte Beispiel auf der rechten Seite ist eine unendliche -Rotationssymmetrie. Sie wird so genannt, weil es unendlich viele Werte für -\(\alpha \in \mathbb{R}\) gibt, die die Form unverändert lassen. - -% Vieleicht eine kurze Einführung in für die Definition, ich habe das gefühl, dass in der Definition die Symmetrie-Operation und die Gruppe auf einmal erklährt wird -\subsubsection{Symetriegruppe} -\texttt{TODO: review this paragraph, explain what is \(\mathds{1}\).} -Ein Objekt kann mehr als nur eine Symmetrie aufweisen. -Als Beispiel, kann das Quadrat in Abbildung \ref{fig:punktgruppen:geometry-example} -nicht nur um $\sigma$ sondern auch Diagonal gespiegelt werden oder um $90^\circ$ gedreht werden. -Fässt man die möglichen Symmetrien zusammen, entsteht eine Symmetriegruppe. +die offensichtlich symmetrisch sind. Zum Beispiel hat das Quadrat eine Gerade, +an deren es gespiegelt werden kann, ohne sein Aussehen zu verändern. +Regelmässige Polygone mit \(n\) Seiten sind auch gute Beispiele, um eine +diskrete Rotationssymmetrie zu veranschaulichen, was bedeutet, dass eine +Drehung um einen Punkt um einen bestimmten Winkel \(360^\circ/n\) die Figur +unverändert lässt. Das letzte Beispiel auf der rechten Seite ist eine +unendliche Rotationssymmetrie. Sie wird so genannt, weil es unendlich viele +Werte für \(\alpha \in \mathbb{R}\) gibt, die die Form unverändert lassen. Ein +Objekt kann mehr als nur eine Symmetrie aufweisen. Als Beispiel, kann das +Quadrat in Abbildung \ref{fig:punktgruppen:geometry-example} nicht nur um +\(\sigma\) sondern auch Diagonal gespiegelt werden oder um \(90^\circ\) gedreht +werden. Fasst man die möglichen Symmetrien zusammen, entsteht eine +Symmetriegruppe. \begin{definition}[Symmetriegruppe] Sei \(g\) eine umkehrbare Operation, die ein mathematisches Objekt @@ -51,7 +48,18 @@ Fässt man die möglichen Symmetrien zusammen, entsteht eine Symmetriegruppe. wird. \end{definition} % ich lese diese Definition ein wenig holprig, vieleicht können wir sie zusammen anschauen -% Nach meinem Geschmack könne es hier auch eine einleitung wie mein Beispiel geben dammit man den Text flüssiger lesen kann +Ausserdem benötigen wir zur Bildung einer Gruppe ein neutrales Element, das wir +mit \(\mathds{1}\) bezeichnen. Die Anwendung der neutralen Operation ist +gleichbedeutend damit, alles unverändert zu lassen. \(\mathds{1}\) ist auch +äquivalent dazu, eine Operation anzuwenden und sie dann rückgängig zu machen +(ihre Umkehrung anzuwenden). +Die Definition der Symmetriegruppe ist mit der Kompositionsoperation gegeben, +es wird aber auch oft als Multiplikation geschrieben. Das liegt daran, dass +manchmal die Zusammensetzung algebraisch durch eine Multiplikation berechnet +wird. Die Verwendung einer multiplikativen Schreibweise ermöglicht es, einige +Ausdrücke kompakter zu schreiben, z.B. durch Verwendung von Potenzen \(r^n = +r\circ r \circ \cdots r\circ r\) für eine wiederholte Komposition. + \begin{definition}[Zyklische Untergruppe, Erzeuger] Sei \(g\) ein Element einer Symmetriegruppe \(G\). Alle möglichen Kompositionen von \(g\) und \(g^{-1}\) bilden eine sogenannte zyklische @@ -59,18 +67,28 @@ Fässt man die möglichen Symmetrien zusammen, entsteht eine Symmetriegruppe. erzeugte Untergruppe \(\langle g \rangle = \left\{ g^k : k \in \mathbb{Z} \right\}\) wird mit spitzen Klammern bezeichnet. \end{definition} +\begin{beispiel} + Um die Syntax zu verstehen, betrachten Sie eine durch \(a\) erzeugte Gruppe + \(G = \langle a \rangle\). Das bedeutet, dass \(G\) die Elemente \(a, aa, + aaa, \ldots\) sowie \(a^{-1}, a^{-1}a^{-1}, \ldots\) und ein neutrales + Element \(\mathds{1} = aa^{-1}\) enthält. +\end{beispiel} +\begin{beispiel} + Nun zu einem sinnvolleren Beispiel, wir können das \(n\)-Gon Beispiel + formalisieren. Bezeichnen wir mit \(r\) eine Drehung im Gegenuhrzeigersinn + von \(360^\circ/n\) um einen Punkt. Diese Definition reicht aus, um die + gesamte Symmetriegruppe + \[ + C_n = \langle r \rangle + = \left\{\mathds{1}, r, r^2, \ldots, r^{n-1}\right\} + \] + der Drehungen eines \(n\)-Gons zu erzeugen. Das liegt daran, dass wir durch + die mehrfache Verwendung von \(r\) jeden Winkel erzeugen k\"onnen, der die + Rotationssymmetrie bewahrt. In ähnlicher Weise, aber weniger interessant die + Reflexionssymmetriegruppe \(\langle\sigma\rangle\) enthält nur + \(\left\{\mathds{1}, \sigma\right\}\), weil \(\sigma^2 = \mathds{1}\). +\end{beispiel} -Damit können wir das \(n\)-Gon Beispiel formalisieren. -Bezeichnen wir mit \(r\) eine Drehung im Gegenuhrzeigersinn von \(360^\circ/n\) -um einen Punkt. Diese Definition reicht aus, um die gesamte Symmetriegruppe -\[ - C_n = \langle r \rangle - = \left\{\mathds{1}, r, r^2, \ldots, r^{n-1}\right\} -\] -der Drehungen eines \(n\)-Gons zu erzeugen. Das liegt daran, dass wir durch die -mehrfache Verwendung von \(r\) jeden Winkel erzeugen k\"onnen, der die -Rotationssymmetrie bewahrt. Hier die Potenzen von \(r\) sind als wiederholte -Komposition gemeint, dass heisst \(r^n = r\circ r \circ \cdots r\circ r\). Wenn wir diese Idee nun erweitern, können wir mit einem Erzeugendensystemen komplexere Strukturen aufbauen. @@ -84,18 +102,24 @@ komplexere Strukturen aufbauen. in den Klammern angegeben. Die erzeugende Elementen zusammen mit der Definitionsgleichungen bauen ein Erzeugendensysteme. \end{definition} - -\texttt{TODO: should put examples for generators?} \\ - -Die Reflexionssymmetriegruppe ist nicht so interessant, da sie nur -\(\left\{\mathds{1}, \sigma\right\}\) enthält. Kombiniert man sie jedoch mit -der Rotation, erhält man die so genannte Diedergruppe -\[ - D_n = \langle r, \sigma : r^{n-1} = \sigma^2 = (\sigma r)^2 = \mathds{1} \rangle - = \left\{ - \mathds{1}, r, \ldots, r^{n-1}, \sigma, \sigma r, \ldots, \sigma r^{n-1} - \right\}. -\] +\begin{beispiel} + Wir werden nun alle Symmetrien eines \(n\)-Gons beschreiben, was bedeutet, + dass wir die Operationen \(r\) und \(\sigma\) kombinieren. Die + Definitionsgleichungen sind \(r^n = \mathds{1}\), \(\sigma^2 = + \mathds{1}\) und \((\sigma r)^2 = \mathds{1}\). + Die ersten beiden sind ziemlich offensichtlich. Die letzte wird oft auch als + Inversion bezeichnet, weil die Anwendung von \(\sigma r\) dasselbe ist wie + das Ziehen einer Linie von einem Punkt, die durch den Ursprung geht, und das + Verschieben des Punktes auf die andere Seite des Nullpunkts. Wenn man das + zweimal macht, geht man zurück zum Anfangspunkt. + Daraus ergibt sich die so genannte Diedergruppe + \begin{align*} + D_n &= \langle r, \sigma : r^n = \sigma^2 = (\sigma r)^2 = \mathds{1} \rangle \\ + &= \left\{ + \mathds{1}, r, \ldots, r^{n-1}, \sigma, \sigma r, \ldots, \sigma r^{n-1} + \right\}. + \end{align*} +\end{beispiel} Die Symmetrieoperationen, die wir bis jetzt besprochen haben, haben immer mindestens einen Punkt gehabt, der wieder auf sich selbst abgebildet wird. Im @@ -105,16 +129,16 @@ Symmetrien gibt, die jeden Punkt zu einem anderen Punkt verschieben können. Diesen Spezialfall, bei dem mindestens ein Punkt unverändert bleibt, nennt man Punktsymmetrie. \begin{definition}[Punktgruppe] - Wenn jede Operation in einer Symmetriegruppe die Eigenschaft hat, mindestens - einen Punkt unverändert zu lassen, sagt man, dass die Symmetriegruppe eine - Punktgruppe ist. + Wenn es einen Punkt gibt, der von jeder Gruppenoperation unverändert gelassen + wird, sagt man, dass die Symmetriegruppe eine Punktgruppe ist. \end{definition} \subsection{Algebraische Symmetrien} Wir haben nun unseren Operationen Symbole gegeben, mit denen es tatsächlich -möglich ist, Gleichungen zu schreiben. Die naheliegende Frage ist dann, könnte -es sein, dass wir bereits etwas haben, das dasselbe tut? Natürlich, ja. -Um es formaler zu beschreiben, werden wir einige Begriffe einführen. +möglich ist, Gleichungen zu schreiben. Die folgende Frage ist dann, ob wir +bereits mathematische Objekte haben, mit denen wir Gleichungen schreiben, die +sich auf die gleiche Weise verhalten. Die Antwort lautet natürlich ja. Um es +formaler zu beschreiben, werden wir einige Begriffe einführen. \begin{definition}[Gruppenhomomorphismus] Seien \(G\) und \(H\) Gruppe mit unterschiedlicher Operation \(\diamond\) bzw. \(\star\). Ein Homomorphismus\footnote{ Für eine ausführlichere @@ -154,7 +178,6 @@ Um es formaler zu beschreiben, werden wir einige Begriffe einführen. \circ r) = \Phi(r^2)\Phi(r)\). \end{beispiel} -\texttt{TODO: rewrite section on translational symmetry.} %% TODO: title / fix continuity % Um das Konzept zu illustrieren, werden wir den umgekehrten Fall diskutieren: % eine Symmetrie, die keine Punktsymmetrie ist, die aber in der Physik sehr -- cgit v1.2.1 From 9cf1c0416deac9e1f5043775a1b25f9a1f4de07c Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Fri, 23 Jul 2021 11:15:33 +0200 Subject: Make crystal basis vector notation consistent with pictures --- buch/papers/punktgruppen/crystals.tex | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index 33e7b54..0cea6ef 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -18,27 +18,25 @@ Die Innereien eines Kristalles sind glücklicherweise relativ einfach definiert. \subsection{Kristallgitter} Ein zweidimensionales Beispiel eines solchen Muster ist Abbildung \ref{fig:punktgruppen:lattice}. Für die Überschaubarkeit haben wir ein simples Motiv eines einzelnen grauen Punktes dargestellt und betrachten dies nur in zwei Dimensionen. -Die eingezeichneten Vektoren \(\vec{a}\) und \(\vec{b}\) sind die kleinstmöglichen Schritte im Raum bis sich das Kristallgitter wiederholt. -Wird ein beliebiger grauer Gitterpunkt in \ref{fig:punktgruppen:lattice} gewählt und um eine ganzzahlige Linearkombination von \(\vec{a}\) und \(\vec{b}\) verschoben, endet er zwangsweise auf einem Gitterpunkt, wenn nicht wieder am selben Ort. +Die eingezeichneten Vektoren \(\vec{a}_1\) und \(\vec{a}_2\) sind die kleinstmöglichen Schritte im Raum bis sich das Kristallgitter wiederholt. +Wird ein beliebiger grauer Gitterpunkt in \ref{fig:punktgruppen:lattice} gewählt und um eine ganzzahlige Linearkombination von \(\vec{a}_1\) und \(\vec{a}_2\) verschoben, endet er zwangsweise auf einem Gitterpunkt, wenn nicht wieder am selben Ort. Im dreidimensionalen Raum können alle Gitterpunkte mit derselben Idee und einem zusätzlichen Vektor \(\vec{c}\) also \[ - \vec{r} = n_1 \vec{a} + n_2 \vec{b} + n_3 \vec{c} + \vec{r} = n_1 \vec{a}_1 + n_2 \vec{a}_2 + n_3 \vec{a}_3 = \sum_i n_i \vec{a}_i \] -erreicht werden sofern $\{n_1,n_2,n_3\} \in \mathbb{Z}$ sind. -Sind die Vektoren $\vec{a}$ , $\vec{b}$ , $\vec{c}$ gegeben, -ist ein Kristallgitter eindeutig beschrieben, weswegen sie auch als Grundvektoren bekannt sind. +erreicht werden sofern \(n_1,n_2,n_3 \in \mathbb{Z}\) sind. +Sind die Vektoren \(\vec{a}_1\), \(\vec{a}_2\), \(\vec{a}_3\) gegeben, ist ein Kristallgitter eindeutig beschrieben, weswegen sie auch als Grundvektoren bekannt sind. \subsection{Translationssymmetrie} Da sich das ganze Kristallgitter wiederholt, wiederholen sich auch dessen Eigenschaften periodisch mit den Grundvektoren. -Sollte man sich auf einem Gitterpunkt in einem Kristall aufhalten, ist es unmöglich zu wissen, auf welchem Gitterpunkt man sich befindet, -da die Umgebungen aller Punkte identisch sind. +Sollte man sich auf einem Gitterpunkt in einem Kristall aufhalten, ist es unmöglich zu wissen, auf welchem Gitterpunkt man sich befindet, da die Umgebungen aller Punkte identisch sind. Mit anderen Worten: Jedes Kristallgitter $ G $ ist \emph{Translationssymmetrisch} in der Translation \[ \vec{Q}_i(G) = G + \vec{a}_i \] wobei der Vektor $\vec{a}_i$ ein Grundvektor sein muss. Da die Translationssymmetrie beliebig oft mit allen Grundvektoren angewendet werden kann, können wir auch sagen, dass alle Verschiebungen um eine Linearkombination -der Vektoren $\vec{a}$ , $\vec{b}$ und $\vec{c}$ erlaubt sind oder kurz, um $\vec{r}$. +der Vektoren $\vec{a}_1$ , $\vec{a}_2$ und $\vec{a}_3$ erlaubt sind oder kurz, um $\vec{r}$. Verschiebungen um $\vec{r}$ bewirken demnach keine Veränderungen, solange wir ein unendlich grosses Kristallgitter verschieben. -- cgit v1.2.1 From 7613cec184c17ed05460e991603529ebacf029c5 Mon Sep 17 00:00:00 2001 From: tim30b Date: Fri, 23 Jul 2021 13:19:38 +0200 Subject: Small rewrites in symmetry.txt and minor topos fixed --- buch/papers/punktgruppen/crystals.tex | 9 ++++--- buch/papers/punktgruppen/intro.tex | 8 +++--- buch/papers/punktgruppen/symmetry.tex | 47 +++++++++++++++++------------------ 3 files changed, 32 insertions(+), 32 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index 0cea6ef..465c862 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -149,12 +149,13 @@ Die Schönflies-Symbolik stammt von dem Mathematiker Arthur Moritz Schönflies, welcher sich unter anderem mit der Klasifizierung der Punktgruppen auseinandergesetzt hat. Er hat Untergruppen gebildet, welche als Grossbuchstaben in Abbildung \ref{fig:punktgruppen:Kristallkassen} zu sehen sind. Da nicht alle Symmetriegruppen in Kristallen möglich sind, werden nicht alle Untergruppen von Schönflies verwendet. -Es ist nur die Drehgruppe \(C\), Diedergruppe \(D\) Drehspiegelgruppe \(S\), Tetraedergruppe \(T\) und die Oktaedergruppe \(O\). +Es ist nur die Drehgruppe \(C\), Diedergruppe \(D\), Drehspiegelgruppe \(S\), Tetraedergruppe \(T\) und die Oktaedergruppe \(O\). Für die eindeutige zuweisung in eine Kristallklasse werden noch identifizierende Merkmale als Subskript notiert. Bei der Untergruppe \(C\) werden beispielsweise die möglichen Rotationssymmetrien gezeigt. -Dank Abschintt \ref{txt:punktgruppen:Translationssymmetrie} wissen wir, wieso auf \(C\) nur ganz bestimmte Subskripte folgen. -Da das Subskript \(n\) von \(C_n\) zeigt, dass es sich um eine \(n\)-fache Rotationssymmetrie handelt. -Inzwischen wissen wir auch, dass \(C_5\) auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} nicht vorkommen darf, da \(360^\circ/5 = 72^\circ\) was nach Abschnitt \ref{txt:punktgruppen:Translationssymmetrie} in einem Kristall keine mögliche Rotationssymmetrie ist. +Dank Abschintt \ref{txt:punktgruppen:Translationssymmetrie} wissen wir, wieso auf \(C\) nur ganz bestimmte Subskripte folgen, +Weol das Subskript \(n\) von \(C_n\) zeigt, dass es sich um eine \(n\)-fache Rotationssymmetrie handelt. +Daher darf \(C_5\) auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} nicht vorkommen darf, da \(360^\circ/5 = 72^\circ\) was nach Abschnitt +\ref{txt:punktgruppen:Translationssymmetrie} in einem Kristall keine mögliche Rotationssymmetrie ist. Sind im Subskript Buchstaben, definieren diese weitere Symmetrieeigenschaften der Klasse. Wie zum Beispiel ein Inversionszentrum \footnote{Ein Objekt mit Inversionszentrum ist Punktsymmetrisch im Inversionszentrum.} diff --git a/buch/papers/punktgruppen/intro.tex b/buch/papers/punktgruppen/intro.tex index d2e4644..b6a72b5 100644 --- a/buch/papers/punktgruppen/intro.tex +++ b/buch/papers/punktgruppen/intro.tex @@ -9,16 +9,16 @@ Die vorgestellten Symmetrien sind äusserst gut geeignet, um die Grundeigenschaften eines Kristalles zu beschreiben. Mit etwas kniffligen geometrischen Überlegungen kann man zeigen, was in der Welt der Kristallographie alles möglich ist oder nicht. -Die Einschränkungen sind durchaus willkommen, -dank ihnen halten sich die möglichen Kristallgitter in Grenzen -und lassen sich kategorisieren.%umformulieren +Einschränkungen in Kristallsymmetrien sind durchaus willkommen, +da dank ihnen sich die möglichen Kristallgitter in Grenzen halten +und sich kategorisieren lassen. Kategorien sind nicht nur für einen besseren Überblick nützlich, sondern kann man aus ihnen auch auf Physikalische Eigenschaften schliessen. Als spannendes Beispiel: Die Piezoelektrizität. Die Piezoelektrizität ist vielleicht noch nicht jedem bekannt, sie versteckt sich aber in diversen Altagsgegenständen zum Beispiel sorgen sie in den meisten Feuerzeugen für die Zündung. -Ein Funken Interesse ist hoffentlich geweckt +Hiermit ist hoffentlich ein Funken Interesse geweckt um sich mit dem scheinbar trivialen Thema der Symmetrie auseinander zu setzten. diff --git a/buch/papers/punktgruppen/symmetry.tex b/buch/papers/punktgruppen/symmetry.tex index dd8883e..07f2bc5 100644 --- a/buch/papers/punktgruppen/symmetry.tex +++ b/buch/papers/punktgruppen/symmetry.tex @@ -4,7 +4,7 @@ ursprünglichen griechischen Wort \(\mathrm{\Sigma\upsilon\mu\mu\varepsilon\tau\rho\iota\alpha}\) \footnote{\emph{Symmetr\'ia}: ein gemeinsames Mass habend, gleichmässig, verhältnismässig} fast nicht verändert. In der Alltagssprache mag es ein -locker definierter Begriff sein, aber in der Mathematik hat Symmetrie eine sehr +locker definierter Begriff sein, in der Mathematik hat Symmetrie jedoch eine sehr präzise Bedeutung. \begin{definition}[Symmetrie] Ein mathematisches Objekt wird als symmetrisch bezeichnet, wenn es unter einer @@ -27,43 +27,42 @@ ist das Konzept der Symmetrie eigentlich viel allgemeiner. In Abbildung \ref{fig:punktgruppen:geometry-example} haben wir einige Formen, die offensichtlich symmetrisch sind. Zum Beispiel hat das Quadrat eine Gerade, -an deren es gespiegelt werden kann, ohne sein Aussehen zu verändern. +an deren es gespiegelt(Operation) werden kann, ohne sein Aussehen zu verändern(invariant). %What do you think about the () Regelmässige Polygone mit \(n\) Seiten sind auch gute Beispiele, um eine diskrete Rotationssymmetrie zu veranschaulichen, was bedeutet, dass eine -Drehung um einen Punkt um einen bestimmten Winkel \(360^\circ/n\) die Figur +Drehung um einen Punkt um einen bestimmten Winkel \(360^\circ/n\) die Figur unverändert lässt. Das letzte Beispiel auf der rechten Seite ist eine unendliche Rotationssymmetrie. Sie wird so genannt, weil es unendlich viele -Werte für \(\alpha \in \mathbb{R}\) gibt, die die Form unverändert lassen. Ein -Objekt kann mehr als nur eine Symmetrie aufweisen. Als Beispiel, kann das +Werte für \(\alpha \in \mathbb{R}\) gibt, die die Form unverändert lassen. +Ein Objekt kann mehr als nur eine Symmetrie aufweisen. Als Beispiel, kann das Quadrat in Abbildung \ref{fig:punktgruppen:geometry-example} nicht nur um \(\sigma\) sondern auch Diagonal gespiegelt werden oder um \(90^\circ\) gedreht werden. Fasst man die möglichen Symmetrien zusammen, entsteht eine Symmetriegruppe. \begin{definition}[Symmetriegruppe] - Sei \(g\) eine umkehrbare Operation, die ein mathematisches Objekt - unverändert lässt. Bei einer anderen Operation \(h\) definieren wir die - Komposition \(h\circ g\) als die Anwendung der Operationen nacheinander. Alle - Operationen bilden unter Komposition eine Gruppe, die Symmetriegruppe genannt - wird. -\end{definition} % ich lese diese Definition ein wenig holprig, vieleicht können wir sie zusammen anschauen + \(g\) und \(h\) sein umkehrbare Operationen, die ein mathematisches Objekt + unverändert lassen. Die Komposition \(h\circ g\) definieren wir als die Anwendung + der Operationen nacheinander. Alle möglichen Operationen bilden unter Komposition eine Gruppe, + die Symmetriegruppe genannt wird. +\end{definition} % rewritten, make shore it works for you -Ausserdem benötigen wir zur Bildung einer Gruppe ein neutrales Element, das wir +Eine Gruppe benötigt ausserdem auch zwingend ein neutrales Element, welches wir mit \(\mathds{1}\) bezeichnen. Die Anwendung der neutralen Operation ist gleichbedeutend damit, alles unverändert zu lassen. \(\mathds{1}\) ist auch äquivalent dazu, eine Operation anzuwenden und sie dann rückgängig zu machen (ihre Umkehrung anzuwenden). Die Definition der Symmetriegruppe ist mit der Kompositionsoperation gegeben, es wird aber auch oft als Multiplikation geschrieben. Das liegt daran, dass -manchmal die Zusammensetzung algebraisch durch eine Multiplikation berechnet +in manchen Fällen die Zusammensetzung algebraisch durch eine Multiplikation berechnet wird. Die Verwendung einer multiplikativen Schreibweise ermöglicht es, einige Ausdrücke kompakter zu schreiben, z.B. durch Verwendung von Potenzen \(r^n = r\circ r \circ \cdots r\circ r\) für eine wiederholte Komposition. \begin{definition}[Zyklische Untergruppe, Erzeuger] - Sei \(g\) ein Element einer Symmetriegruppe \(G\). Alle möglichen + \(g\) sei ein Element einer Symmetriegruppe \(G\). Alle möglichen Kompositionen von \(g\) und \(g^{-1}\) bilden eine sogenannte zyklische - Untergruppe von \(G\), und \(g\) wird ihr Erzeuger genannt. Die von \(g\) + Untergruppe von \(G\), wobei \(g\) Erzeuger der Untergruppe genannt wird. Die von \(g\) erzeugte Untergruppe \(\langle g \rangle = \left\{ g^k : k \in \mathbb{Z} \right\}\) wird mit spitzen Klammern bezeichnet. \end{definition} @@ -74,8 +73,8 @@ r\circ r \circ \cdots r\circ r\) für eine wiederholte Komposition. Element \(\mathds{1} = aa^{-1}\) enthält. \end{beispiel} \begin{beispiel} - Nun zu einem sinnvolleren Beispiel, wir können das \(n\)-Gon Beispiel - formalisieren. Bezeichnen wir mit \(r\) eine Drehung im Gegenuhrzeigersinn + Als anschaulicheres Beispiel, können wir eine Zyklische Untergruppe des \(n\)-Gon + formalisieren. Wir bezeichnen mit \(r\) eine Drehung im Gegenuhrzeigersinn von \(360^\circ/n\) um einen Punkt. Diese Definition reicht aus, um die gesamte Symmetriegruppe \[ @@ -84,8 +83,8 @@ r\circ r \circ \cdots r\circ r\) für eine wiederholte Komposition. \] der Drehungen eines \(n\)-Gons zu erzeugen. Das liegt daran, dass wir durch die mehrfache Verwendung von \(r\) jeden Winkel erzeugen k\"onnen, der die - Rotationssymmetrie bewahrt. In ähnlicher Weise, aber weniger interessant die - Reflexionssymmetriegruppe \(\langle\sigma\rangle\) enthält nur + Rotationssymmetrie bewahrt. In ähnlicher Weise, aber weniger interessant + enthält die Reflexionssymmetriegruppe \(\langle\sigma\rangle\) nur \(\left\{\mathds{1}, \sigma\right\}\), weil \(\sigma^2 = \mathds{1}\). \end{beispiel} @@ -110,7 +109,7 @@ komplexere Strukturen aufbauen. Die ersten beiden sind ziemlich offensichtlich. Die letzte wird oft auch als Inversion bezeichnet, weil die Anwendung von \(\sigma r\) dasselbe ist wie das Ziehen einer Linie von einem Punkt, die durch den Ursprung geht, und das - Verschieben des Punktes auf die andere Seite des Nullpunkts. Wenn man das + Verschieben des Punktes auf die andere Seite des Nullpunkts. Wenn man dies zweimal macht, geht man zurück zum Anfangspunkt. Daraus ergibt sich die so genannte Diedergruppe \begin{align*} @@ -126,21 +125,21 @@ mindestens einen Punkt gehabt, der wieder auf sich selbst abgebildet wird. Im Fall der Rotation war es der Drehpunkt, bei der Spiegelung die Punkte der Spiegelachse. Dies ist jedoch keine Voraussetzung für eine Symmetrie, da es Symmetrien gibt, die jeden Punkt zu einem anderen Punkt verschieben können. -Diesen Spezialfall, bei dem mindestens ein Punkt unverändert bleibt, nennt man +Diesen Spezialfall, bei dem immer mindestens ein Punkt unverändert bleibt, nennt man Punktsymmetrie. \begin{definition}[Punktgruppe] Wenn es einen Punkt gibt, der von jeder Gruppenoperation unverändert gelassen - wird, sagt man, dass die Symmetriegruppe eine Punktgruppe ist. + wird, ist die Symmetriegruppe eine Punktgruppe. \end{definition} \subsection{Algebraische Symmetrien} Wir haben nun unseren Operationen Symbole gegeben, mit denen es tatsächlich -möglich ist, Gleichungen zu schreiben. Die folgende Frage ist dann, ob wir +möglich ist, Gleichungen zu schreiben. Die anschliesende Frage ist dann, ob wir bereits mathematische Objekte haben, mit denen wir Gleichungen schreiben, die sich auf die gleiche Weise verhalten. Die Antwort lautet natürlich ja. Um es formaler zu beschreiben, werden wir einige Begriffe einführen. \begin{definition}[Gruppenhomomorphismus] - Seien \(G\) und \(H\) Gruppe mit unterschiedlicher Operation \(\diamond\) + \(G\) und \(H\) seien Gruppen mit unterschiedlichen Operationen \(\diamond\) bzw. \(\star\). Ein Homomorphismus\footnote{ Für eine ausführlichere Diskussion siehe \S\ref{buch:grundlagen:subsection:gruppen} im Buch.} ist eine Funktion \(f: G \to H\), so dass für jedes \(a, b \in G\) gilt -- cgit v1.2.1 From 846a04a614a53cb8a5978057364b8b88d7a38e25 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Fri, 23 Jul 2021 13:40:10 +0200 Subject: One sentence per line, small typos and fix footnotes Sorry for the fixed 72 chars. Tip! With Vim one can use vipJ and then :'<,'>s:\. :\.\r:g to do this *very* quickly. --- buch/papers/punktgruppen/crystals.tex | 50 +++---- buch/papers/punktgruppen/symmetry.tex | 246 +++++++++++++--------------------- 2 files changed, 112 insertions(+), 184 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index 465c862..de3deda 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -79,8 +79,7 @@ solange wir ein unendlich grosses Kristallgitter verschieben. An der neuen Position \(B\) von \(A'\) muss also auch ein Punkt des Gitters sein, um die Rotationssymmetrie zu erfüllen. \item \(B\) ist unser Name für diesen neuen Punkt. Da auch die Eigenschaften des Kristallgittes periodisch mit dem Gitter sein müssen, dürfen wir \(C_n\) auch auf \(A'\) anwenden. - Also wenden wir \(C_n\) invertiert - \footnote{Eine Rotationssymmetrie muss auch in die inverse Richtung funktionieren. + Also wenden wir \(C_n\) invertiert\footnote{Eine Rotationssymmetrie muss auch in die inverse Richtung funktionieren. Genauere Überlegungen hierzu werden dem Leser überlassen, da sich die Autoren nicht explizit mit dieser Frage Auseinander gesetzt haben.} auch auf \(A'\) an. Dies dreht \(A\) auf einen neuen Punkt. @@ -119,21 +118,20 @@ ein. \caption{ Stereografische Projektion einer \(C_{i}\) Symmetrie. Es wird eine Linie vom magentafarbenen Punkt auf der oberen Hälfte der Kugel zum Südpol gezogen. Wo die Linie die Ebene schneidet (\(z = 0\)), ist die Projektion des Punktes. - Die Koordinaten der Projektionen sind einfach zu berechnen: - ein Punkt auf eine Kugel mit Radius \(r\) mit den Koordinaten \(x, y, z,\) wird auf \(xr/(r + z), yr/(r + z)\) projiziert. + Die Koordinaten der Projektionen sind einfach zu berechnen: ein Punkt auf eine Kugel mit Radius \(r\) mit den Koordinaten \(x, y, z,\) wird auf \(xr/(r + z), yr/(r + z)\) projiziert. Für den orangefarbenen Punkt unterhalb des Äquators wird die Linie zum Nordpol gezogen und die Projektionsformel hat stattdessen einen Nenner von \(r - z\). } \label{fig:punktgruppen:stereographic-projections} \end{figure} \subsection{Kristallklassen} + Vorgehend wurde gezeigt, dass in einem zweidimensionalen Kristallgitter nicht alle Symmetrien möglich sind. -Mit weiteren ähnlichen Überlegungen kann gezeigt werden, dass Kristalle im dreidimensionalen Raum -nur auf genau 32 Arten rein punktsymmetrische -Symmetriegruppen bilden können. -Diese 32 möglichen Symmetriegruppen scheinen durchaus relevant zu sein, denn sie werden unter anderem als Kristallklassen bezeichnet. -Die 32 möglichen Kristallklassen sind auf Abbildung \ref{fig:punktgruppen:Kristallkassen} zu sehen. -Die Darstellung von dreidimensionalen Punktsymmetrien wurde mit der stereographischen Projektion ermöglicht (siehe Abb. \ref{fig:punktgruppen:stereographic-projections}), wobei die gestrichelten Klassen aus Gründen der Überschaubarkeit nicht im Detail gezeichnet wurden. + Mit weiteren ähnlichen Überlegungen kann gezeigt werden, dass Kristalle im dreidimensionalen Raum nur auf genau 32 Arten rein punktsymmetrische Symmetriegruppen bilden können. + Diese 32 möglichen Symmetriegruppen scheinen durchaus relevant zu sein, denn sie werden unter anderem als Kristallklassen bezeichnet. + Die 32 möglichen Kristallklassen sind auf Abbildung \ref{fig:punktgruppen:Kristallkassen} zu sehen. + Die Darstellung von dreidimensionalen Punktsymmetrien wurde mit der stereographischen Projektion ermöglicht (siehe Abbildung \ref{fig:punktgruppen:stereographic-projections}), wobei die gestrichelten Klassen aus Gründen der Überschaubarkeit nicht im Detail gezeichnet wurden. + \begin{figure} \centering @@ -145,26 +143,18 @@ Die Darstellung von dreidimensionalen Punktsymmetrien wurde mit der stereographi \subsubsection{Schönflies-Symbilok} Jede der 32 Kristallklassen auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} ist mit ihrem zugehörigen Schöönflies-Symbol bezeichnet. -Die Schönflies-Symbolik stammt von dem Mathematiker Arthur Moritz Schönflies, -welcher sich unter anderem mit der Klasifizierung der Punktgruppen auseinandergesetzt hat. -Er hat Untergruppen gebildet, welche als Grossbuchstaben in Abbildung \ref{fig:punktgruppen:Kristallkassen} zu sehen sind. -Da nicht alle Symmetriegruppen in Kristallen möglich sind, werden nicht alle Untergruppen von Schönflies verwendet. -Es ist nur die Drehgruppe \(C\), Diedergruppe \(D\), Drehspiegelgruppe \(S\), Tetraedergruppe \(T\) und die Oktaedergruppe \(O\). -Für die eindeutige zuweisung in eine Kristallklasse werden noch identifizierende Merkmale als Subskript notiert. -Bei der Untergruppe \(C\) werden beispielsweise die möglichen Rotationssymmetrien gezeigt. -Dank Abschintt \ref{txt:punktgruppen:Translationssymmetrie} wissen wir, wieso auf \(C\) nur ganz bestimmte Subskripte folgen, -Weol das Subskript \(n\) von \(C_n\) zeigt, dass es sich um eine \(n\)-fache Rotationssymmetrie handelt. -Daher darf \(C_5\) auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} nicht vorkommen darf, da \(360^\circ/5 = 72^\circ\) was nach Abschnitt -\ref{txt:punktgruppen:Translationssymmetrie} in einem Kristall keine mögliche Rotationssymmetrie ist. -Sind im Subskript Buchstaben, definieren diese weitere Symmetrieeigenschaften der Klasse. -Wie zum Beispiel ein Inversionszentrum -\footnote{Ein Objekt mit Inversionszentrum ist Punktsymmetrisch im Inversionszentrum.} -\(i\) oder eine horizontale -\footnote{Als Orientierungspunkt wird die Symmetrieachse höchster Ordnung (\(n\)) als vertikal definiert} -Spiegelachse \(h\). -Zu beachten ist jedoch, dass manche Symmetriegruppen mit mehreren Schönflies-Symbolen beschieben werden können. -\(C_{3i}\) beschreibt genau das selbe wie \(S_6\), da eine dreifache Rotationssymmetrie mit einem Inversionszentrum einer -sechsfachen Drehspiegelsymmetrie entspricht. + Die Schönflies-Symbolik stammt von dem Mathematiker Arthur Moritz Schönflies, welcher sich unter anderem mit der Klasifizierung der Punktgruppen auseinandergesetzt hat. + Er hat Untergruppen gebildet, welche als Grossbuchstaben in Abbildung \ref{fig:punktgruppen:Kristallkassen} zu sehen sind. + Da nicht alle Symmetriegruppen in Kristallen möglich sind, werden nicht alle Untergruppen von Schönflies verwendet. + Es ist nur die Drehgruppe \(C\), Diedergruppe \(D\), Drehspiegelgruppe \(S\), Tetraedergruppe \(T\) und die Oktaedergruppe \(O\). + Für die eindeutige zuweisung in eine Kristallklasse werden noch identifizierende Merkmale als Subskript notiert. + Bei der Untergruppe \(C\) werden beispielsweise die möglichen Rotationssymmetrien gezeigt. + Dank Abschintt \ref{txt:punktgruppen:Translationssymmetrie} wissen wir, wieso auf \(C\) nur ganz bestimmte Subskripte folgen, Weol das Subskript \(n\) von \(C_n\) zeigt, dass es sich um eine \(n\)-fache Rotationssymmetrie handelt. + Daher darf \(C_5\) auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} nicht vorkommen darf, da \(360^\circ/5 = 72^\circ\) was nach Abschnitt \ref{txt:punktgruppen:Translationssymmetrie} in einem Kristall keine mögliche Rotationssymmetrie ist. + Sind im Subskript Buchstaben, definieren diese weitere Symmetrieeigenschaften der Klasse. + Wie zum Beispiel ein Inversionszentrum\footnote{Ein Objekt mit Inversionszentrum ist Punktsymmetrisch im Inversionszentrum.} \(i\) oder eine horizontale\footnote{Als Orientierungspunkt wird die Symmetrieachse höchster Ordnung (\(n\)) als vertikal definiert} Spiegelachse \(h\). + Zu beachten ist jedoch, dass manche Symmetriegruppen mit mehreren Schönflies-Symbolen beschieben werden können. + \(C_{3i}\) beschreibt genau das selbe wie \(S_6\), da eine dreifache Rotationssymmetrie mit einem Inversionszentrum einer sechsfachen Drehspiegelsymmetrie entspricht. diff --git a/buch/papers/punktgruppen/symmetry.tex b/buch/papers/punktgruppen/symmetry.tex index 07f2bc5..0bb4aec 100644 --- a/buch/papers/punktgruppen/symmetry.tex +++ b/buch/papers/punktgruppen/symmetry.tex @@ -1,196 +1,134 @@ \section{Symmetrie} Das Wort Symmetrie ist sehr alt und hat sich seltsamerweise von seinem -ursprünglichen griechischen Wort -\(\mathrm{\Sigma\upsilon\mu\mu\varepsilon\tau\rho\iota\alpha}\) -\footnote{\emph{Symmetr\'ia}: ein gemeinsames Mass habend, gleichmässig, -verhältnismässig} fast nicht verändert. In der Alltagssprache mag es ein -locker definierter Begriff sein, in der Mathematik hat Symmetrie jedoch eine sehr -präzise Bedeutung. +ursprünglichen griechischen Wort \(\mathrm{\Sigma\upsilon\mu\mu\varepsilon\tau\rho\iota\alpha}\)\footnote{\emph{Symmetr\'ia}: ein gemeinsames Mass habend, gleichmässig,verhältnismässig} fast nicht verändert. +In der Alltagssprache mag es ein locker definierter Begriff sein, in der Mathematik hat Symmetrie jedoch eine sehr präzise Bedeutung. \begin{definition}[Symmetrie] - Ein mathematisches Objekt wird als symmetrisch bezeichnet, wenn es unter einer - bestimmten Operation invariant ist. + Ein mathematisches Objekt wird als symmetrisch bezeichnet, wenn es unter einer bestimmten Operation invariant ist. \end{definition} -Die intuitivsten Beispiele kommen aus der Geometrie, daher werden wir mit -einigen geometrischen Beispielen beginnen. Wie wir jedoch später sehen werden, -ist das Konzept der Symmetrie eigentlich viel allgemeiner. +Die intuitivsten Beispiele kommen aus der Geometrie, daher werden wir mit einigen geometrischen Beispielen beginnen. +Wie wir jedoch später sehen werden, ist das Konzept der Symmetrie eigentlich viel allgemeiner. \begin{figure} - \centering - \includegraphics{papers/punktgruppen/figures/symmetric-shapes} - \caption{ - Beispiele für geometrisch symmetrische Formen. - \label{fig:punktgruppen:geometry-example} - } + \centering + \includegraphics{papers/punktgruppen/figures/symmetric-shapes} + \caption{ + Beispiele für geometrisch symmetrische Formen. + \label{fig:punktgruppen:geometry-example} + } \end{figure} \subsection{Geometrische Symmetrien} -In Abbildung \ref{fig:punktgruppen:geometry-example} haben wir einige Formen, -die offensichtlich symmetrisch sind. Zum Beispiel hat das Quadrat eine Gerade, -an deren es gespiegelt(Operation) werden kann, ohne sein Aussehen zu verändern(invariant). %What do you think about the () -Regelmässige Polygone mit \(n\) Seiten sind auch gute Beispiele, um eine -diskrete Rotationssymmetrie zu veranschaulichen, was bedeutet, dass eine -Drehung um einen Punkt um einen bestimmten Winkel \(360^\circ/n\) die Figur -unverändert lässt. Das letzte Beispiel auf der rechten Seite ist eine -unendliche Rotationssymmetrie. Sie wird so genannt, weil es unendlich viele -Werte für \(\alpha \in \mathbb{R}\) gibt, die die Form unverändert lassen. -Ein Objekt kann mehr als nur eine Symmetrie aufweisen. Als Beispiel, kann das -Quadrat in Abbildung \ref{fig:punktgruppen:geometry-example} nicht nur um -\(\sigma\) sondern auch Diagonal gespiegelt werden oder um \(90^\circ\) gedreht -werden. Fasst man die möglichen Symmetrien zusammen, entsteht eine -Symmetriegruppe. +In Abbildung \ref{fig:punktgruppen:geometry-example} haben wir einige Formen, die offensichtlich symmetrisch sind. +Zum Beispiel hat das Quadrat eine Gerade, an deren es gespiegelt werden kann, ohne sein Aussehen zu verändern. +Regelmässige Polygone mit \(n\) Seiten sind auch gute Beispiele, um eine diskrete Rotationssymmetrie zu veranschaulichen, was bedeutet, dass eine Drehung um einen Punkt um einen bestimmten Winkel \(360^\circ/n\) die Figur unverändert lässt. +Das letzte Beispiel auf der rechten Seite ist eine unendliche Rotationssymmetrie. Sie wird so genannt, weil es unendlich viele Werte für \(\alpha \in \mathbb{R}\) gibt, die die Form unverändert lassen. +Ein Objekt kann mehr als nur eine Symmetrie aufweisen. +Als Beispiel, kann das Quadrat in Abbildung \ref{fig:punktgruppen:geometry-example} nicht nur um \(\sigma\) sondern auch Diagonal gespiegelt werden oder um \(90^\circ\) gedreht werden. +Fasst man die möglichen Symmetrien zusammen, entsteht eine Symmetriegruppe. \begin{definition}[Symmetriegruppe] - \(g\) und \(h\) sein umkehrbare Operationen, die ein mathematisches Objekt - unverändert lassen. Die Komposition \(h\circ g\) definieren wir als die Anwendung - der Operationen nacheinander. Alle möglichen Operationen bilden unter Komposition eine Gruppe, - die Symmetriegruppe genannt wird. -\end{definition} % rewritten, make shore it works for you + \(g\) und \(h\) sein umkehrbare Operationen, die ein mathematisches Objekt unverändert lassen. + Die Komposition \(h\circ g\) definieren wir als die Anwendung der Operationen nacheinander. + Alle möglichen Operationen bilden unter Komposition eine Gruppe, die Symmetriegruppe genannt wird. +\end{definition} -Eine Gruppe benötigt ausserdem auch zwingend ein neutrales Element, welches wir -mit \(\mathds{1}\) bezeichnen. Die Anwendung der neutralen Operation ist -gleichbedeutend damit, alles unverändert zu lassen. \(\mathds{1}\) ist auch -äquivalent dazu, eine Operation anzuwenden und sie dann rückgängig zu machen -(ihre Umkehrung anzuwenden). -Die Definition der Symmetriegruppe ist mit der Kompositionsoperation gegeben, -es wird aber auch oft als Multiplikation geschrieben. Das liegt daran, dass -in manchen Fällen die Zusammensetzung algebraisch durch eine Multiplikation berechnet -wird. Die Verwendung einer multiplikativen Schreibweise ermöglicht es, einige -Ausdrücke kompakter zu schreiben, z.B. durch Verwendung von Potenzen \(r^n = -r\circ r \circ \cdots r\circ r\) für eine wiederholte Komposition. +Eine Gruppe benötigt ausserdem auch zwingend ein neutrales Element, welches wir mit \(\mathds{1}\) bezeichnen. +Die Anwendung der neutralen Operation ist gleichbedeutend damit, alles unverändert zu lassen. +\(\mathds{1}\) ist auch äquivalent dazu, eine Operation anzuwenden und sie dann rückgängig zu machen (ihre Inverse anzuwenden). + Die Definition der Symmetriegruppe ist mit der Kompositionsoperation gegeben, es wird aber auch oft als Multiplikation geschrieben. +Das liegt daran, dass in manchen Fällen die Zusammensetzung algebraisch durch eine Multiplikation berechnet wird. +Die Verwendung einer multiplikativen Schreibweise ermöglicht es, einige Ausdrücke kompakter zu schreiben, z.B. +durch Verwendung von Potenzen \(r^n = r\circ r \circ \cdots r\circ r\) für eine wiederholte Komposition. \begin{definition}[Zyklische Untergruppe, Erzeuger] - \(g\) sei ein Element einer Symmetriegruppe \(G\). Alle möglichen - Kompositionen von \(g\) und \(g^{-1}\) bilden eine sogenannte zyklische - Untergruppe von \(G\), wobei \(g\) Erzeuger der Untergruppe genannt wird. Die von \(g\) - erzeugte Untergruppe \(\langle g \rangle = \left\{ g^k : k \in \mathbb{Z} - \right\}\) wird mit spitzen Klammern bezeichnet. + \(g\) sei ein Element einer Symmetriegruppe \(G\). + Alle möglichen Kompositionen von \(g\) und \(g^{-1}\) bilden eine sogenannte zyklische Untergruppe von \(G\), wobei \(g\) Erzeuger der Untergruppe genannt wird. + Die von \(g\) erzeugte Untergruppe \(\langle g \rangle = \left\{ g^k : k \in \mathbb{Z} \right\}\) wird mit spitzen Klammern bezeichnet. \end{definition} \begin{beispiel} - Um die Syntax zu verstehen, betrachten Sie eine durch \(a\) erzeugte Gruppe - \(G = \langle a \rangle\). Das bedeutet, dass \(G\) die Elemente \(a, aa, - aaa, \ldots\) sowie \(a^{-1}, a^{-1}a^{-1}, \ldots\) und ein neutrales - Element \(\mathds{1} = aa^{-1}\) enthält. + Um die Syntax zu verstehen, betrachten wir eine durch \(a\) erzeugte Gruppe \(G = \langle a \rangle\). + Das bedeutet, dass \(G\) die Elemente \(a, aa, aaa, \ldots\) sowie \(a^{-1}, a^{-1}a^{-1}, \ldots\) und ein neutrales Element \(\mathds{1} = aa^{-1}\) enthält. \end{beispiel} \begin{beispiel} - Als anschaulicheres Beispiel, können wir eine Zyklische Untergruppe des \(n\)-Gon - formalisieren. Wir bezeichnen mit \(r\) eine Drehung im Gegenuhrzeigersinn - von \(360^\circ/n\) um einen Punkt. Diese Definition reicht aus, um die - gesamte Symmetriegruppe - \[ - C_n = \langle r \rangle - = \left\{\mathds{1}, r, r^2, \ldots, r^{n-1}\right\} - \] - der Drehungen eines \(n\)-Gons zu erzeugen. Das liegt daran, dass wir durch - die mehrfache Verwendung von \(r\) jeden Winkel erzeugen k\"onnen, der die - Rotationssymmetrie bewahrt. In ähnlicher Weise, aber weniger interessant - enthält die Reflexionssymmetriegruppe \(\langle\sigma\rangle\) nur - \(\left\{\mathds{1}, \sigma\right\}\), weil \(\sigma^2 = \mathds{1}\). + Als anschaulicheres Beispiel, können wir eine Zyklische Untergruppe des \(n\)-Gon formalisieren. + Wir bezeichnen mit \(r\) eine Drehung im Gegenuhrzeigersinn von \(360^\circ/n\) um einen Punkt. + Diese Definition reicht aus, um die gesamte Symmetriegruppe + \[ + C_n = \langle r \rangle + = \left\{\mathds{1}, r, r^2, \ldots, r^{n-1}\right\} + \] + der Drehungen eines \(n\)-Gons zu erzeugen. + Das liegt daran, dass wir durch die mehrfache Verwendung von \(r\) jeden Winkel erzeugen k\"onnen, der die Rotationssymmetrie bewahrt. + In ähnlicher Weise, aber weniger interessant enthält die Reflexionssymmetriegruppe \(\langle\sigma\rangle\) nur \(\left\{\mathds{1}, \sigma\right\}\), weil \(\sigma^2 = \mathds{1}\). \end{beispiel} Wenn wir diese Idee nun erweitern, können wir mit einem Erzeugendensystemen komplexere Strukturen aufbauen. \begin{definition}[Erzeugendensysteme] - % please fix this unreadable mess - Jede disktrete Gruppe kann durch eines oder mehrere ihrer Elemente generiert - werden. Wir lassen \(g_1, g_2, \ldots, g_n\) erzeugenden Elemente einer - Symmetriegruppe sein. Da es mehrere Erzeuger gibt, müssen auch die - sogenannte Definitionsgleichungen gegeben werden, die die - Multiplikationstabelle vollständig definieren. Die Gleichungen sind ebenfalls - in den Klammern angegeben. Die erzeugende Elementen zusammen mit der - Definitionsgleichungen bauen ein Erzeugendensysteme. + Jede disktrete Gruppe kann durch eines oder mehrere ihrer Elemente generiert werden. + Wir lassen \(g_1, g_2, \ldots, g_n\) erzeugenden Elemente einer Symmetriegruppe sein. + Da es mehrere Erzeuger gibt, müssen auch die sogenannte Definitionsgleichungen gegeben werden, die die Multiplikationstabelle vollständig definieren. + Die Gleichungen sind ebenfalls in den Klammern angegeben. + Die erzeugende Elementen zusammen mit der Definitionsgleichungen bauen ein Erzeugendensysteme. \end{definition} \begin{beispiel} - Wir werden nun alle Symmetrien eines \(n\)-Gons beschreiben, was bedeutet, - dass wir die Operationen \(r\) und \(\sigma\) kombinieren. Die - Definitionsgleichungen sind \(r^n = \mathds{1}\), \(\sigma^2 = - \mathds{1}\) und \((\sigma r)^2 = \mathds{1}\). - Die ersten beiden sind ziemlich offensichtlich. Die letzte wird oft auch als - Inversion bezeichnet, weil die Anwendung von \(\sigma r\) dasselbe ist wie - das Ziehen einer Linie von einem Punkt, die durch den Ursprung geht, und das - Verschieben des Punktes auf die andere Seite des Nullpunkts. Wenn man dies - zweimal macht, geht man zurück zum Anfangspunkt. - Daraus ergibt sich die so genannte Diedergruppe - \begin{align*} - D_n &= \langle r, \sigma : r^n = \sigma^2 = (\sigma r)^2 = \mathds{1} \rangle \\ - &= \left\{ - \mathds{1}, r, \ldots, r^{n-1}, \sigma, \sigma r, \ldots, \sigma r^{n-1} - \right\}. - \end{align*} + Wir werden nun alle Symmetrien eines \(n\)-Gons beschreiben, was bedeutet, dass wir die Operationen \(r\) und \(\sigma\) kombinieren. + Die Definitionsgleichungen sind \(r^n = \mathds{1}\), \(\sigma^2 = \mathds{1}\) und \((\sigma r)^2 = \mathds{1}\). + Die ersten beiden sind ziemlich offensichtlich. + Die letzte wird oft auch als Inversion bezeichnet, weil die Anwendung von \(\sigma r\) dasselbe ist wie das Ziehen einer Linie von einem Punkt, die durch den Ursprung geht, und das Verschieben des Punktes auf die andere Seite des Nullpunkts. + Wenn man dies zweimal macht, geht man zurück zum Anfangspunkt. + Daraus ergibt sich die so genannte Diedergruppe + \begin{align*} + D_n &= \langle r, \sigma : r^n = \sigma^2 = (\sigma r)^2 = \mathds{1} \rangle \\ + &= \left\{ + \mathds{1}, r, \ldots, r^{n-1}, \sigma, \sigma r, \ldots, \sigma r^{n-1} + \right\}. + \end{align*} \end{beispiel} -Die Symmetrieoperationen, die wir bis jetzt besprochen haben, haben immer -mindestens einen Punkt gehabt, der wieder auf sich selbst abgebildet wird. Im -Fall der Rotation war es der Drehpunkt, bei der Spiegelung die Punkte der -Spiegelachse. Dies ist jedoch keine Voraussetzung für eine Symmetrie, da es -Symmetrien gibt, die jeden Punkt zu einem anderen Punkt verschieben können. -Diesen Spezialfall, bei dem immer mindestens ein Punkt unverändert bleibt, nennt man -Punktsymmetrie. +Die Symmetrieoperationen, die wir bis jetzt besprochen haben, haben immer mindestens einen Punkt gehabt, der wieder auf sich selbst abgebildet wird. +Im Fall der Rotation war es der Drehpunkt, bei der Spiegelung die Punkte der Spiegelachse. +Dies ist jedoch keine Voraussetzung für eine Symmetrie, da es Symmetrien gibt, die jeden Punkt zu einem anderen Punkt verschieben können. + Diesen Spezialfall, bei dem immer mindestens ein Punkt unverändert bleibt, nennt man Punktsymmetrie. \begin{definition}[Punktgruppe] - Wenn es einen Punkt gibt, der von jeder Gruppenoperation unverändert gelassen - wird, ist die Symmetriegruppe eine Punktgruppe. + Wenn es einen Punkt gibt, der von jeder Gruppenoperation unverändert gelassen wird, ist die Symmetriegruppe eine Punktgruppe. \end{definition} \subsection{Algebraische Symmetrien} -Wir haben nun unseren Operationen Symbole gegeben, mit denen es tatsächlich -möglich ist, Gleichungen zu schreiben. Die anschliesende Frage ist dann, ob wir -bereits mathematische Objekte haben, mit denen wir Gleichungen schreiben, die -sich auf die gleiche Weise verhalten. Die Antwort lautet natürlich ja. Um es -formaler zu beschreiben, werden wir einige Begriffe einführen. +Wir haben nun unseren Operationen Symbole gegeben, mit denen es tatsächlich möglich ist, Gleichungen zu schreiben. +Die anschliesende Frage ist dann, ob wir bereits mathematische Objekte haben, mit denen wir Gleichungen schreiben, die sich auf die gleiche Weise verhalten. +Die Antwort lautet natürlich ja. +Um es formaler zu beschreiben, werden wir einige Begriffe einführen. \begin{definition}[Gruppenhomomorphismus] - \(G\) und \(H\) seien Gruppen mit unterschiedlichen Operationen \(\diamond\) - bzw. \(\star\). Ein Homomorphismus\footnote{ Für eine ausführlichere - Diskussion siehe \S\ref{buch:grundlagen:subsection:gruppen} im Buch.} ist - eine Funktion \(f: G \to H\), so dass für jedes \(a, b \in G\) gilt - \(f(a\diamond b) = f(a) \star f(b)\). Man sagt, dass der Homomorphismus - \(f\) \(G\) in \(H\) transformiert. + \(G\) und \(H\) seien Gruppen mit unterschiedlichen Operationen \(\diamond\) bzw. + \(\star\). + Ein Homomorphismus\footnote{ Für eine ausführlichere Diskussion siehe \S\ref{buch:grundlagen:subsection:gruppen} im Buch.} ist eine Funktion \(f: G \to H\), so dass für jedes \(a, b \in G\) gilt \(f(a\diamond b) = f(a) \star f(b)\). + Man sagt, dass der Homomorphismus \(f\) \(G\) in \(H\) transformiert. \end{definition} \begin{beispiel} - Die Rotationssymmetrie des Kreises \(C_\infty\), mit einem unendlichen - Kontinuum von Werten \(\alpha \in \mathbb{R}\), entspricht perfekt dem - komplexen Einheitskreis. Der Homomorphismus \(\phi: C_\infty \to \mathbb{C}\) - ist durch die Eulersche Formel \(\phi(r) = e^{i\alpha}\) gegeben. + Die Rotationssymmetrie des Kreises \(C_\infty\), mit einem unendlichen Kontinuum von Werten \(\alpha \in \mathbb{R}\), entspricht perfekt dem komplexen Einheitskreis. + Der Homomorphismus \(\phi: C_\infty \to \mathbb{C}\) ist durch die Eulersche Formel \(\phi(r) = e^{i\alpha}\) gegeben. \end{beispiel} \begin{definition}[Darstellung einer Gruppe] - Die Darstellung einer Gruppe ist ein Homomorphismus, der eine Symmetriegruppe - auf eine Menge von Matrizen abbildet. - \[ - \Phi: G \to \operatorname{GL}_n(\mathbb{R}). - \] - Äquivalent kann man sagen, dass ein Element aus der Symmetriegruppe auf einen - Vektorraum \(V\) wirkt, indem man definiert \(\Phi : G \times V \to V\). + Die Darstellung einer Gruppe ist ein Homomorphismus, der eine Symmetriegruppe auf eine Menge von Matrizen abbildet. + \[ + \Phi: G \to \operatorname{GL}_n(\mathbb{R}). + \] + Äquivalent kann man sagen, dass ein Element aus der Symmetriegruppe auf einen Vektorraum \(V\) wirkt, indem man definiert \(\Phi : G \times V \to V\). \end{definition} \begin{beispiel} - Die Elemente \(r^k \in C_n\), wobei \(0 < k < n\), stellen abstrakt eine - Drehung von \(2\pi k/n\) um den Ursprung dar. Die mit der Matrix - \[ - \Phi(r^k) = \begin{pmatrix} - \cos(2\pi k/n) & -\sin(2\pi k/n) \\ - \sin(2\pi k/n) & \cos(2\pi k/n) - \end{pmatrix} - \] - definierte Funktion von \(C_n\) nach \(O(2)\) ist eine Darstellung von - \(C_n\). In diesem Fall ist die erste Gruppenoperation die Komposition und - die zweite die Matrixmultiplikation. Man kann überprüfen, dass \(\Phi(r^2 - \circ r) = \Phi(r^2)\Phi(r)\). + Die Elemente \(r^k \in C_n\), wobei \(0 < k < n\), stellen abstrakt eine Drehung von \(2\pi k/n\) um den Ursprung dar. + Die mit der Matrix + \[ + \Phi(r^k) = \begin{pmatrix} + \cos(2\pi k/n) & -\sin(2\pi k/n) \\ + \sin(2\pi k/n) & \cos(2\pi k/n) + \end{pmatrix} + \] + definierte Funktion von \(C_n\) nach \(O(2)\) ist eine Darstellung von \(C_n\). + In diesem Fall ist die erste Gruppenoperation die Komposition und die zweite die Matrixmultiplikation. + Man kann überprüfen, dass \(\Phi(r^2 \circ r) = \Phi(r^2)\Phi(r)\). \end{beispiel} - -%% TODO: title / fix continuity -% Um das Konzept zu illustrieren, werden wir den umgekehrten Fall diskutieren: -% eine Symmetrie, die keine Punktsymmetrie ist, die aber in der Physik sehr -% nützlich ist, nämlich die Translationssymmetrie. Von einem mathematischen -% Objekt \(U\) wird gesagt, dass es eine Translationssymmetrie \(Q(x) = x + a\) -% hat, wenn es die Gleichung -% \[ -% U(x) = U(Q(x)) = U(x + a), -% \] -% für ein gewisses \(a\), erfüllt. Zum Beispiel besagt das erste Newtonsche -% Gesetz, dass ein Objekt, auf das keine Kraft einwirkt, eine -% zeitranslationsinvariante Geschwindigkeit hat, d.h. wenn \(\vec{F} = \vec{0}\) -% dann \(\vec{v}(t) = \vec{v}(t + \tau)\). - -% \subsection{Sch\"onflies notation} - -% vim:ts=2 sw=2 spell spelllang=de: -- cgit v1.2.1 From 67c134a41c5b47b926d0b5e461892dd267f36b5a Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Fri, 23 Jul 2021 18:07:14 +0200 Subject: Fix typo --- buch/papers/punktgruppen/crystals.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index de3deda..21e29c9 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -149,7 +149,7 @@ Jede der 32 Kristallklassen auf der Abbildung \ref{fig:punktgruppen:Kristallkass Es ist nur die Drehgruppe \(C\), Diedergruppe \(D\), Drehspiegelgruppe \(S\), Tetraedergruppe \(T\) und die Oktaedergruppe \(O\). Für die eindeutige zuweisung in eine Kristallklasse werden noch identifizierende Merkmale als Subskript notiert. Bei der Untergruppe \(C\) werden beispielsweise die möglichen Rotationssymmetrien gezeigt. - Dank Abschintt \ref{txt:punktgruppen:Translationssymmetrie} wissen wir, wieso auf \(C\) nur ganz bestimmte Subskripte folgen, Weol das Subskript \(n\) von \(C_n\) zeigt, dass es sich um eine \(n\)-fache Rotationssymmetrie handelt. + Dank Abschintt \ref{txt:punktgruppen:Translationssymmetrie} wissen wir, wieso auf \(C\) nur ganz bestimmte Subskripte folgen, weil das Subskript \(n\) von \(C_n\) zeigt, dass es sich um eine \(n\)-fache Rotationssymmetrie handelt. Daher darf \(C_5\) auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} nicht vorkommen darf, da \(360^\circ/5 = 72^\circ\) was nach Abschnitt \ref{txt:punktgruppen:Translationssymmetrie} in einem Kristall keine mögliche Rotationssymmetrie ist. Sind im Subskript Buchstaben, definieren diese weitere Symmetrieeigenschaften der Klasse. Wie zum Beispiel ein Inversionszentrum\footnote{Ein Objekt mit Inversionszentrum ist Punktsymmetrisch im Inversionszentrum.} \(i\) oder eine horizontale\footnote{Als Orientierungspunkt wird die Symmetrieachse höchster Ordnung (\(n\)) als vertikal definiert} Spiegelachse \(h\). -- cgit v1.2.1 From cecdcdb230662af594ce68715c61f1263bff9ace Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Mon, 26 Jul 2021 07:57:58 +0200 Subject: add munkres files --- .../papers/munkres/figures/Netzwerkdarstellung.png | Bin 0 -> 307876 bytes buch/papers/munkres/figures/beispiel_munkres.png | Bin 0 -> 245951 bytes buch/papers/munkres/figures/bipartiter_graph.png | Bin 0 -> 246867 bytes buch/papers/munkres/main.tex | 26 +---- buch/papers/munkres/teil0.tex | 27 +++-- buch/papers/munkres/teil1.tex | 62 +++-------- buch/papers/munkres/teil2.tex | 110 ++++++++++++------ buch/papers/munkres/teil3.tex | 124 ++++++++++++++++----- buch/papers/munkres/teil4.tex | 36 ++++++ buch/papers/munkres/teil5.tex | 14 +++ 10 files changed, 255 insertions(+), 144 deletions(-) create mode 100644 buch/papers/munkres/figures/Netzwerkdarstellung.png create mode 100644 buch/papers/munkres/figures/beispiel_munkres.png create mode 100644 buch/papers/munkres/figures/bipartiter_graph.png create mode 100644 buch/papers/munkres/teil4.tex create mode 100644 buch/papers/munkres/teil5.tex (limited to 'buch/papers') diff --git a/buch/papers/munkres/figures/Netzwerkdarstellung.png b/buch/papers/munkres/figures/Netzwerkdarstellung.png new file mode 100644 index 0000000..6c20bf4 Binary files /dev/null and b/buch/papers/munkres/figures/Netzwerkdarstellung.png differ diff --git a/buch/papers/munkres/figures/beispiel_munkres.png b/buch/papers/munkres/figures/beispiel_munkres.png new file mode 100644 index 0000000..2303708 Binary files /dev/null and b/buch/papers/munkres/figures/beispiel_munkres.png differ diff --git a/buch/papers/munkres/figures/bipartiter_graph.png b/buch/papers/munkres/figures/bipartiter_graph.png new file mode 100644 index 0000000..87c164c Binary files /dev/null and b/buch/papers/munkres/figures/bipartiter_graph.png differ diff --git a/buch/papers/munkres/main.tex b/buch/papers/munkres/main.tex index 4dd20fa..8915a3d 100644 --- a/buch/papers/munkres/main.tex +++ b/buch/papers/munkres/main.tex @@ -3,34 +3,18 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Thema\label{chapter:munkres}} -\lhead{Thema} +\chapter{Munkres-Algorithmus\label{chapter:munkres}} +\lhead{Munkres-Algorithmus} \begin{refsection} -\chapterauthor{Hans Muster} +\chapterauthor{Marc Kühne} -Ein paar Hinweise für die korrekte Formatierung des Textes -\begin{itemize} -\item -Absätze werden gebildet, indem man eine Leerzeile einfügt. -Die Verwendung von \verb+\\+ ist nur in Tabellen und Arrays gestattet. -\item -Die explizite Platzierung von Bildern ist nicht erlaubt, entsprechende -Optionen werden gelöscht. -Verwenden Sie Labels und Verweise, um auf Bilder hinzuweisen. -\item -Beginnen Sie jeden Satz auf einer neuen Zeile. -Damit ermöglichen Sie dem Versionsverwaltungssysteme, Änderungen -in verschiedenen Sätzen von verschiedenen Autoren ohne Konflikt -anzuwenden. -\item -Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren -Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. -\end{itemize} \input{papers/munkres/teil0.tex} \input{papers/munkres/teil1.tex} \input{papers/munkres/teil2.tex} \input{papers/munkres/teil3.tex} +\input{papers/munkres/teil4.tex} +\input{papers/munkres/teil5.tex} \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/munkres/teil0.tex b/buch/papers/munkres/teil0.tex index de522c7..1ef0538 100644 --- a/buch/papers/munkres/teil0.tex +++ b/buch/papers/munkres/teil0.tex @@ -3,20 +3,19 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 0\label{munkres:section:teil0}} -\rhead{Teil 0} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{munkres:bibtex}. -At vero eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum -dolor sit amet. +\section{Geschichte\label{munkres:section:teil0}} +\rhead{Geschichte} +Die Ungarische Methode wurde 1955 von Harold Kuhn entwickelt und veröffentlicht. +Der Name ``Ungarische Methode'' ergab sich, weil der Algorithmus +weitestgehend auf den früheren Arbeiten zweier ungarischer Mathematiker +basierte: Dénes Kőnig und Jenő Egerváry. +James Munkres überprüfte den Algorithmus im Jahr 1957 und stellte fest, +dass der Algorithmus (stark) polynomiell ist. +Seitdem ist der Algorithmus auch als Kuhn-Munkres oder +Munkres-Zuordnungsalgorithmus bekannt. +Die Zeitkomplexität des ursprünglichen Algorithmus war $O(n^4)$, +später wurde zudem festgestellt, dass er modifiziert werden kann, +um eine $O(n^3)$-Laufzeit zu erreichen. -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit -amet. diff --git a/buch/papers/munkres/teil1.tex b/buch/papers/munkres/teil1.tex index f4f5e39..7cbbbfd 100644 --- a/buch/papers/munkres/teil1.tex +++ b/buch/papers/munkres/teil1.tex @@ -3,53 +3,19 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 1 +\section{Was ist die ungarische Methode? \label{munkres:section:teil1}} \rhead{Problemstellung} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. -Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit -aut fugit, sed quia consequuntur magni dolores eos qui ratione -voluptatem sequi nesciunt -\begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{munkres:equation1} -\end{equation} -Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, -consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. - -Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis -suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? -Quis autem vel eum iure reprehenderit qui in ea voluptate velit -esse quam nihil molestiae consequatur, vel illum qui dolorem eum -fugiat quo voluptas nulla pariatur? - -\subsection{De finibus bonorum et malorum -\label{munkres:subsection:finibus}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. - -Et harum quidem rerum facilis est et expedita distinctio -\ref{munkres:section:loesung}. -Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil -impedit quo minus id quod maxime placeat facere possimus, omnis -voluptas assumenda est, omnis dolor repellendus -\ref{munkres:section:folgerung}. -Temporibus autem quibusdam et aut officiis debitis aut rerum -necessitatibus saepe eveniet ut et voluptates repudiandae sint et -molestiae non recusandae. -Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis -voluptatibus maiores alias consequatur aut perferendis doloribus -asperiores repellat. - - +Es ist ein kombinatorischer Optimierungsalgorithmus, der das Zuordnungsproblem +in polynomieller Zeit löst. +\begin{itemize} +\item +Polynom = vielgliedrig +\end{itemize} +Der Begriff polynomielle Laufzeit bedeutet, dass die Laufzeit des Programms +wie $n^2$, $n^3$, $n^4$, etc.~wächst und vernünftig skaliert. +Mit der ungarischen Methode können also lineare Optimierungsprobleme gelöst +werden, die bei gewichteten Zuordnungen in bipartiten Graphen entstehen. +Mit ihr kann die eindeutige Zuordnung von Objekten aus zwei Gruppen so +optimiert werden, dass die Gesamtkosten minimiert werden bzw.~der +Gesamtgewinn maximiert werden kann. diff --git a/buch/papers/munkres/teil2.tex b/buch/papers/munkres/teil2.tex index 23536b9..29db8d7 100644 --- a/buch/papers/munkres/teil2.tex +++ b/buch/papers/munkres/teil2.tex @@ -3,38 +3,86 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 2 +\section{Das Zuordnungsproblem \label{munkres:section:teil2}} -\rhead{Teil 2} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum +\rhead{Das Zuordnungsproblem} +Das (lineare) Zuordnungsproblem ist ein diskretes Optimierungsproblem aus +der Graphentheorie. +Es handelt sich um einen Spezialfall eines maximalen Matchings +minimalen Gewichtes in einem bipartiten, gewichteten Graphen + +Vereinfacht gesagt sind Zuordnungsprobleme spezielle Transportprobleme. +Der Unterschied zu klassischen Transportproblemen liegen darin, +dass hier nicht Mengen möglichst kostenminimal von einem zum anderen +Ort transportiert werden sollen, sondern es geht um die kostenminimale +Zuordnung von z.~B.~Personen, oder Bau-Materialien auf bestimmte +Orte, Stellen oder Aufgaben. +Dabei sind alle Angebots- und Bedarfsmenge gleich 1 +\begin{equation} +a_{i}=b_{j}=1 +\end{equation} + +\subsection{Zuordnungsproblem in Netzwerkdarstellung +\label{munkres:subsection:bonorum}} + +\begin{figure} +\centering +\includegraphics[width=5cm]{papers/munkres/figures/Netzwerkdarstellung} +\caption{Typische Netzwerkdarstellung eines Zuordnungsproblems.} +\label{munkres:Vr2} +\end{figure} + +\subsection{Matrix Formulierung +\label{munkres:subsection:bonorum}} +In der Matrixformulierung ist eine nicht-negative $n\times n$-Matrix +gegeben, wobei das Element in der $i$-ten Zeile und $j$-ten Spalte +die Kosten für die Zuweisung des $j$-ten Jobs an den $i$-ten Arbeiter +darstellt. +Wir müssen eine Zuordnung der Jobs zu den Arbeitern finden, so dass +jeder Job einem Arbeiter zugewiesen wird und jeder Arbeiter einen +Job zugewiesen bekommt, so dass die Gesamtkosten der Zuordnung +minimal sind. +Dies kann als Permutation der Zeilen und Spalten einer Kostenmatrix +$C$ ausgedrückt werden, um die Spur einer Matrix zu minimieren: +\begin{equation} +\min(L,R)Tr (LCR) +\end{equation} +wobei $L$ und $R$ Permutationsmatrizen sind. +Wenn das Ziel ist, die Zuordnung zu finden, die die maximalen Kosten +ergibt, kann das Problem durch Negieren der Kostenmatrix $C$ gelöst +werden. + +\subsection{Suche der optimalen Lösung +\label{munkres:subsection:bonorum}} +Ist eine maximale Zuordnung (maximales Matching) gefunden, so steht +in jeder Zeile und jeder Spalte der Matrix genau ein Element, das +zur optimalen Lösung gehört, eine solche Gruppe von Positionen wird +auch als Transversale der Matrix bezeichnet. +Deshalb kann die Problemstellung auch anders formuliert werden: Man +ordne die Zeilen- oder die Spaltenvektoren so um, dass die Summe +der Elemente in der Hauptdiagonale maximal wird. +Hieraus wird sofort ersichtlich, dass es in einer +$n\times n$-Matrix genau so viele Möglichkeiten gibt, die Zeilen- +bzw.~Spaltenvektoren zu ordnen, wie es Permutationen von $n$ Elementen +gibt, also $n!$. +Außer bei kleinen Matrizen ist es nahezu aussichtslos, die optimale +Lösung durch Berechnung aller Möglichkeiten zu finden. +Schon bei einer $10\times 10$-Matrix gibt es nahezu 3,63 Millionen (3.628.800) +zu berücksichtigender Permutationen. + +\subsection{Formulierung Bipartiter Graph \label{munkres:subsection:bonorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. +Der Algorithmus ist einfacher zu beschreiben, wenn wir das Problem +anhand eines bipartiten Graphen formulieren. +Wir haben einen vollständigen zweistufigen Graphen $G=(S,T;E)$ mit +$n$ Arbeiter-Eckpunkten ($S$) und $n$ Job-Scheitelpunkte ($T$), und +jede Kante hat einen nichtnegativen Preis $c(i,j)$. +Wir wollen ein perfektes Matching mit minimalen Gesamtkosten finden. +\begin{figure} +\centering +\includegraphics[width=5cm]{papers/munkres/figures/bipartiter_graph} +\caption{$K_{3,3}$ vollständig bipartiter Graph mit 3 Knoten pro Teilmenge.} +\label{munkres:Vr2} +\end{figure} diff --git a/buch/papers/munkres/teil3.tex b/buch/papers/munkres/teil3.tex index b67ad74..806cd83 100644 --- a/buch/papers/munkres/teil3.tex +++ b/buch/papers/munkres/teil3.tex @@ -3,38 +3,102 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Teil 3 +\section{Der Algorithmus in Form von bipartiten Graphen \label{munkres:section:teil3}} -\rhead{Teil 3} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? +\rhead{Der Algorithmus in Form von bipartiten Graphen} +Mit der ungarischen Methode können also lineare Optimierungsprobleme +gelöst werden, die bei gewichteten Zuordnungen in bipartiten Graphen +entstehen. -\subsection{De finibus bonorum et malorum +Mit ihr kann die eindeutige Zuordnung von Objekten aus zwei Gruppen +so optimiert werden, dass die Gesamtkosten minimiert werden bzw.~der +Gesamtgewinn maximiert werden kann. + +Ein bipartiter Graph ist ein mathematisches Modell für Beziehungen +zwischen den Elementen zweier Mengen. +Es eignet sich sehr gut zur Untersuchung von Zuordnungsproblemen» + +\subsection{Beweis, dass der Algorithmus Fortschritte macht +\label{munkres:subsection:malorum}} +Wir müssen zeigen, dass der Algorithmus, solange das Matching nicht +die maximal mögliche Größe hat, immer in der Lage ist, Fortschritte +zu machen --- das heißt, entweder die Anzahl der übereinstimmenden +Kanten zu erhöhen oder mindestens eine Kante zu straffen. +Es genügt zu zeigen, dass bei jedem Schritt mindestens eine der +folgenden Bedingungen erfüllt ist: + +\begin{itemize} +\item +$M$ die maximal mögliche Größe. +\item +$Gy$ enthält einen Erweiterungspfad. +\item +$G$ enthält einen losen Pfad: einen Pfad von einem Knoten in $Rs$ +zu einem Knoten in $T$ / $Z$ die aus einer beliebigen Anzahl von +festen Kanten, gefolgt von einer einzelnen losen Kante, besteht. +Die freie Kante einer freien Bahn ist also $Z$ (beinhaltet $T$), +so garantiert es, dass Delta gut definiert ist. +\end{itemize} +Wenn $M$ die maximal mögliche Größe hat, sind wir natürlich fertig. +Andernfalls muss es nach Berges Lemma im zugrundeliegenden Graphen +$G$ einen Augmentierungspfad $P$ in Bezug auf $M$ geben. +Dieser Pfad darf jedoch nicht in $G_y$ existieren: Obwohl jede +geradzahlige Kante in $P$ durch die Definition von $M$ fest ist, +können ungeradzahlige Kanten lose sein und in $G_y$ fehlen. +Ein Endpunkt von $P$ liegt in $R_{S}$, der andere in $R_T$; w.l.o.g., +nehmen Sie an, es beginnt in $R_{S}$. +Wenn jede Kante von $P$ dicht ist, dann bleibt sie ein augmentierender +Pfad in $G_y$ und wir sind fertig. +Andernfalls sei $uv$ die erste lose Kante auf $P$. +Wenn $v$ kein Element von $Z$ ist, dann haben wir einen losen Pfad +gefunden und sind fertig. +Andernfalls ist $v$ von irgendeinem anderen Pfad $Q$ aus festen +Kanten von einem Knoten in $R_{S}$ erreichbar. +Sei $P_{v}$ der Teilpfad von $P$, der bei $v$ beginnt und bis zum +Ende reicht, und sei $P'$ der Pfad, der gebildet wird, indem man +entlang $Q$ gebildet wird, bis ein Scheitelpunkt auf $P_{v}$ erreicht +wird, und dann weiter bis zum Ende von $P_{v}$. +Beachten Sie, dass $P'$ ein erweiternder Pfad in $G$ mit mindestens +einer losen Kante weniger als $P$ ist. +$P$ kann durch $P'$ ersetzt und dieser Argumentationsprozess iteriert +werden (formal, unter Verwendung von Induktion auf die Anzahl der +losen Kanten), bis entweder ein erweiternder Pfad in $G_y$ oder ein +losender Pfad in $G$ gefunden wird. + +\subsection{Beweis, dass die Anpassung des Potentials $y$ $M$ unverändert lässt \label{munkres:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. +Um zu zeigen, dass jede Kante in $M$ nach der Anpassung von $y$ +erhalten bleibt, genügt es zu zeigen, dass für eine beliebige Kante +in $M$ entweder beide Endpunkte oder keiner von ihnen in $Z$ liegen. +Zu diesem Zweck sei $vu$ eine Kante in $M$ von $T$ nach $S$. +Es ist leicht zu sehen, dass wenn $v$ in $Z$ ist, dann muss auch +$u$ in $Z$ sein, da jede Kante in $M$ dicht ist. +Nehmen wir nun an, dass $u$ kein Element von $Z$ und auch $v$ kein +Element von $Z$ ist. +$u$ selbst kann nicht in $R_{S}$ sein, da es der Endpunkt einer +angepassten Kante ist, also muss es einen gerichteten Pfad von engen +Kanten von einem Knoten in $R_{S}$ zu $u$ geben. +Dieser Pfad muss $v$ vermeiden, da es per Annahme nicht in $Z$ ist, +also ist der Knoten, der $u$ in diesem Pfad unmittelbar vorausgeht, +ein anderer Knoten $v$ (ein Element von $T$) und $v$ ein Element +von $u$ ist eine enge Kante von $T$ nach $S$ und ist somit in $M$. +Aber dann enthält $M$ zwei Kanten, die den Knoten $u$ teilen, was +der Tatsache widerspricht, dass $M$ ein Matching ist. +Jede Kante in $M$ hat also entweder beide Endpunkte oder keinen +Endpunkt in $Z$. +\subsection{Beweis, dass $y$ ein Potential bleibt +\label{munkres:subsection:malorum}} +Um zu zeigen, dass y nach der Anpassung ein Potenzial bleibt, genügt +es zu zeigen, dass keine Kante ihr Gesamtpotenzial über ihre Kosten +hinaus erhöht. +Dies ist für Kanten in $M$ bereits durch den vorangegangenen Absatz +bewiesen. +Man betrachtet also eine beliebige Kante $uv$ von $S$ nach $T$. +Wenn $y(u)$ erhöht wird um $\Delta$, dann wird entweder $v\in +\mathbb{Z}_n$ in diesem Fall wird $y(v)$ verringert um $\Delta$, +wobei das Gesamtpotenzial der Kante unverändert bleibt, oder $v\in +T\setminus Z$, wobei die Definition von $\Delta$ garantiert, dass +$y(u)+y(v)+\Delta \le c(u,v)$ +Also $y$ bleibt ein Potential. diff --git a/buch/papers/munkres/teil4.tex b/buch/papers/munkres/teil4.tex new file mode 100644 index 0000000..3d76743 --- /dev/null +++ b/buch/papers/munkres/teil4.tex @@ -0,0 +1,36 @@ +% +% teil4.tex -- Beispiel-File für Teil 4 +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Matrix-Interpretation +\label{munkres:section:teil4}} +\rhead{Matrix-Interpretation} +Gegeben ist die quadratische Matrix $C=(c_{ij})$ der Grösse $n\times n$. +Ohne Beschränkung der Allgemeinheit werden eine Zuordnung $j +\rightarrow s_j$, $j = 1, \dots, n$ mit minimaler Gesamtsumme +$\sum_{j=1}^{n}c_{s_j,j}$ gesucht, wobei die $s_j$ eine Permutation +von $\{1,\ldots ,n\}$ sind. +Soll die Summe maximiert werden, dann kann $C$ durch $-C$ ersetzt werden. +Die Grundlage dieses Verfahrens ist, dass sich die optimale Zuordnung +unter bestimmten Änderungen der Matrix nicht ändert, sondern nur +der Optimalwert. +Diese Änderungen sind durch Knotenpotentiale bzw.~duale Variablen +\begin{equation} +u_1 u_2,{\dots}, u_n +\end{equation} + +für die Zeilen und + +\begin{equation}v_1,v_2,\dots,v_n \end{equation} fuer die Spalten angegeben. +Die modifizierte Matrix hat dann die Komponenten $\tilde{c}_{i,j} += c_{ij} - u_j - v_j$. + +In der Summe über jede kantenmaximale Zuordnung kommt jedes +Knotenpotential genau einmal vor, so dass die Änderung der Zielfunktion +eine Konstante ist. +Sind die Einträge von $C$ nichtnegativ, und sind alle Knotenpotentiale +ebenfalls nichtnegativ, so nennt man die modifizierte Matrix \~{C} +auch eine Reduktion. +Ziel ist, in der reduzierten Matrix möglichst viele Komponenten auf +den Wert Null zu bringen und unter diesen die Zuordnung zu konstruieren. diff --git a/buch/papers/munkres/teil5.tex b/buch/papers/munkres/teil5.tex new file mode 100644 index 0000000..f8138f4 --- /dev/null +++ b/buch/papers/munkres/teil5.tex @@ -0,0 +1,14 @@ +% +% teil5.tex -- Beispiel-File für Teil 5 +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Ungarische Methode anhand eines Beispiels +\label{munkres:section:teil5}} +\rhead{Ungarische Methode anhand eines Beispiels} +\begin{figure} +\centering +\includegraphics[width=14cm]{papers/munkres/figures/beispiel_munkres} +\caption{Händisches Beispiel des Munkres Algorithmus.} +\label{munkres:Vr2} +\end{figure} -- cgit v1.2.1 From f12bfc8392b2f09416fb2171a4dd0107ebe16722 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Mon, 26 Jul 2021 14:17:05 +0200 Subject: update some files too --- buch/papers/reedsolomon/Makefile | 50 ++++++++++- buch/papers/reedsolomon/dtf.tex | 29 ++++--- buch/papers/reedsolomon/einleitung.tex | 10 +-- buch/papers/reedsolomon/experiments/plot.tex | 2 +- buch/papers/reedsolomon/figures/plotfft.pdf | Bin 0 -> 60217 bytes buch/papers/reedsolomon/figures/polynom2.pdf | Bin 0 -> 20327 bytes buch/papers/reedsolomon/idee.tex | 13 ++- buch/papers/reedsolomon/images/codiert.txt | 96 --------------------- buch/papers/reedsolomon/images/decodiert.txt | 96 --------------------- buch/papers/reedsolomon/images/empfangen.txt | 96 --------------------- buch/papers/reedsolomon/images/fehler.txt | 96 --------------------- buch/papers/reedsolomon/images/locator.txt | 96 --------------------- buch/papers/reedsolomon/images/plotfft.tex | 89 ------------------- buch/papers/reedsolomon/images/polynom2.tex | 49 ----------- buch/papers/reedsolomon/images/signal.txt | 96 --------------------- buch/papers/reedsolomon/images/syndrom.txt | 96 --------------------- buch/papers/reedsolomon/main.tex | 20 ----- buch/papers/reedsolomon/standalone.tex | 30 +++++++ buch/papers/reedsolomon/standalone/standalone.pdf | Bin 0 -> 1782700 bytes buch/papers/reedsolomon/tikz/codiert.txt | 96 +++++++++++++++++++++ buch/papers/reedsolomon/tikz/decodiert.txt | 96 +++++++++++++++++++++ buch/papers/reedsolomon/tikz/empfangen.txt | 96 +++++++++++++++++++++ buch/papers/reedsolomon/tikz/fehler.txt | 96 +++++++++++++++++++++ buch/papers/reedsolomon/tikz/locator.txt | 96 +++++++++++++++++++++ buch/papers/reedsolomon/tikz/plotfft.tex | 99 ++++++++++++++++++++++ buch/papers/reedsolomon/tikz/polynom2.tex | 57 +++++++++++++ buch/papers/reedsolomon/tikz/signal.txt | 96 +++++++++++++++++++++ buch/papers/reedsolomon/tikz/syndrom.txt | 96 +++++++++++++++++++++ 28 files changed, 939 insertions(+), 853 deletions(-) create mode 100644 buch/papers/reedsolomon/figures/plotfft.pdf create mode 100644 buch/papers/reedsolomon/figures/polynom2.pdf delete mode 100644 buch/papers/reedsolomon/images/codiert.txt delete mode 100644 buch/papers/reedsolomon/images/decodiert.txt delete mode 100644 buch/papers/reedsolomon/images/empfangen.txt delete mode 100644 buch/papers/reedsolomon/images/fehler.txt delete mode 100644 buch/papers/reedsolomon/images/locator.txt delete mode 100644 buch/papers/reedsolomon/images/plotfft.tex delete mode 100644 buch/papers/reedsolomon/images/polynom2.tex delete mode 100644 buch/papers/reedsolomon/images/signal.txt delete mode 100644 buch/papers/reedsolomon/images/syndrom.txt create mode 100644 buch/papers/reedsolomon/standalone.tex create mode 100644 buch/papers/reedsolomon/standalone/standalone.pdf create mode 100644 buch/papers/reedsolomon/tikz/codiert.txt create mode 100644 buch/papers/reedsolomon/tikz/decodiert.txt create mode 100644 buch/papers/reedsolomon/tikz/empfangen.txt create mode 100644 buch/papers/reedsolomon/tikz/fehler.txt create mode 100644 buch/papers/reedsolomon/tikz/locator.txt create mode 100644 buch/papers/reedsolomon/tikz/plotfft.tex create mode 100644 buch/papers/reedsolomon/tikz/polynom2.tex create mode 100644 buch/papers/reedsolomon/tikz/signal.txt create mode 100644 buch/papers/reedsolomon/tikz/syndrom.txt (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/Makefile b/buch/papers/reedsolomon/Makefile index 9c96e88..25fd98b 100644 --- a/buch/papers/reedsolomon/Makefile +++ b/buch/papers/reedsolomon/Makefile @@ -4,6 +4,52 @@ # (c) 2020 Prof Dr Andreas Mueller # -images: - @echo "no images to be created in reedsolomon" +SOURCES := \ + anwendungen.tex \ + codebsp.tex \ + decmitfehler.tex \ + decohnefehler.tex \ + dtf.tex \ + einleitung.tex \ + endlichekoerper.tex \ + hilfstabellen.tex \ + idee.tex \ + main.tex \ + packages.tex \ + rekonstruktion.tex \ + restetabelle1.tex \ + restetabelle2.tex \ + standalone.tex \ + zusammenfassung.tex + +TIKZFIGURES := \ + tikz/polynom2.tex \ + tikz/plotfft.tex + +FIGURES := $(patsubst tikz/%.tex, figures/%.pdf, $(TIKZFIGURES)) + + +all: images standalone + + +.PHONY: images +images: $(FIGURES) + +figures/%.pdf: tikz/%.tex + mkdir -p figures + pdflatex --output-directory=figures $< + +.PHONY: standalone +standalone: standalone.tex $(SOURCES) $(FIGURES) + mkdir -p standalone + cd ../..; \ + pdflatex \ + --halt-on-error \ + --shell-escape \ + --output-directory=papers/reedsolomon/standalone \ + papers/reedsolomon/standalone.tex; + cd standalone; \ + bibtex standalone; \ + makeindex standalone; + diff --git a/buch/papers/reedsolomon/dtf.tex b/buch/papers/reedsolomon/dtf.tex index a111527..62e44cc 100644 --- a/buch/papers/reedsolomon/dtf.tex +++ b/buch/papers/reedsolomon/dtf.tex @@ -14,20 +14,27 @@ wobei sie dann bei späteren Berchnungen ganz nützlich ist. \subsection{Diskrete Fourientransformation Zusamenhang \label{reedsolomon:subsection:dtfzusamenhang}} Die Diskrete Fourientransformation ist definiert als - \[ - \label{ft_discrete} +\begin{equation} \hat{c}_{k} = \frac{1}{N} \sum_{n=0}^{N-1} {f}_n \cdot e^{-\frac{2\pi j}{N} \cdot kn} - \] + \label{reedsolomon:DFT} +\end{equation} + , wenn man nun - \[ - w = e^{-\frac{2\pi j}{N} k} - \] +\begin{equation} + w = + e^{-\frac{2\pi j}{N} k} + \label{reedsolomon:DFT_summand} +\end{equation} + ersetzte, und $N$ konstantbleibt, erhält man - \[ - \hat{c}_{k}=\frac{1}{N}( {f}_0 w^0 + {f}_1 w^1 + {f}_2 w^2 + \dots + {f}_{N-1} w^N) - \] +\begin{equation} + \hat{c}_{k}= + \frac{1}{N}( {f}_0 w^0 + {f}_1 w^1 + {f}_2 w^2 + \dots + {f}_{N-1} w^N) + \label{reedsolomon:DFT_polynom} +\end{equation} + was überaust ähnlich zu unserem Polynomidee ist. \subsection{Übertragungsabfolge \label{reedsolomon:subsection:Übertragungsabfolge}} @@ -47,8 +54,8 @@ Das heisst alle information ist in alle Zahlenvorhanden. \begin{figure} \centering \resizebox{0.9\textwidth}{!}{ - %\includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/plot.pdf} - \input{papers/reedsolomon/images/plotfft.tex} + \includegraphics[width=\textwidth]{papers/reedsolomon/figures/plotfft} + %\input{papers/reedsolomon/images/plotfft.tex} } \caption{Übertragungsabfolge \ref{reedsolomon:subsection:Übertragungsabfolge}} \label{fig:sendorder} diff --git a/buch/papers/reedsolomon/einleitung.tex b/buch/papers/reedsolomon/einleitung.tex index 2b1d878..074df05 100644 --- a/buch/papers/reedsolomon/einleitung.tex +++ b/buch/papers/reedsolomon/einleitung.tex @@ -7,13 +7,11 @@ \label{reedsolomon:section:einleitung}} \rhead{Einleitung} Der Reed-Solomon-Code ist entstanden um, -das Problem der Fehler, bei der Datenübertragung, zu lösen. -In diesem Abschnitt wird möglichst verständlich die mathematische Abfolge, Funktion oder Algorithmus erklärt. +das Problem der Fehler bei der Datenübertragung, zu lösen. +In diesem Abschnitt wird möglichst verständlich die mathematische Abfolge, +Funktion oder Algorithmus des Reed-Solomon-Code erklärt. Es wird jedoch nicht auf die technische Umsetzung oder Implementierung eingegangen. -Um beim Datenübertragen Fehler zu erkennen, könnte man die Daten jeweils doppelt senden, -und so jeweilige Fehler zu erkennen. -Doch nur schon um weinige Fehler zu erkennen werden überproportional viele Daten doppelt und dreifach gesendet. -Der Reed-Solomon-Code macht dies auf eine andere, clevere Weise. + diff --git a/buch/papers/reedsolomon/experiments/plot.tex b/buch/papers/reedsolomon/experiments/plot.tex index 2196c82..4b156bb 100644 --- a/buch/papers/reedsolomon/experiments/plot.tex +++ b/buch/papers/reedsolomon/experiments/plot.tex @@ -90,7 +90,7 @@ \draw[ultra thick, ->] (zoom) to[out=180, in=90] (syndrom.north); %item - \node[circle, draw, fill =lightgray] at (signal.north west)+(1,0) {1}; + \node[circle, draw, fill =lightgray] at (signal.north west) {1}; \node[circle, draw, fill =lightgray] at (codiert.north west) {2}; \node[circle, draw, fill =lightgray] at (fehler.north west) {3}; \node[circle, draw, fill =lightgray] at (empfangen.north west) {4}; diff --git a/buch/papers/reedsolomon/figures/plotfft.pdf b/buch/papers/reedsolomon/figures/plotfft.pdf new file mode 100644 index 0000000..27992c9 Binary files /dev/null and b/buch/papers/reedsolomon/figures/plotfft.pdf differ diff --git a/buch/papers/reedsolomon/figures/polynom2.pdf b/buch/papers/reedsolomon/figures/polynom2.pdf new file mode 100644 index 0000000..ae68385 Binary files /dev/null and b/buch/papers/reedsolomon/figures/polynom2.pdf differ diff --git a/buch/papers/reedsolomon/idee.tex b/buch/papers/reedsolomon/idee.tex index 39adbbf..e18ccd2 100644 --- a/buch/papers/reedsolomon/idee.tex +++ b/buch/papers/reedsolomon/idee.tex @@ -1,15 +1,22 @@ % -% teil1.tex -- Beispiel-File für das Paper +% idee.tex -- Beispiel-File für das Paper % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % \section{Idee \label{reedsolomon:section:idee}} \rhead{Problemstellung} +Um beim Datenübertragen Fehler zu erkennen, könnte man die Daten jeweils doppelt senden, +und so jeweilige Fehler zu erkennen. +Doch nur schon um Fehler zu erkennen werden überproportional viele Daten doppelt und dreifach gesendet. +Der Reed-Solomon-Code macht dies auf eine andere, clevere Weise. Das Problem liegt darin Informationen, Zahlen, zu Übertragen und Fehler zu erkennen. Beim Reed-Solomon-Code kann man nicht nur Fehler erkennen, man kann sogar einige Fehler korrigieren. +Der unterschied des Fehler erkennen und korrigiren, ist das beim Erkennen nur die Frage kommt hat es Fehler oder keine, +beim korrigieren muss man den Fehler erkennun und dann zusätzlich noch den original Wert rekonstruieren. +Auch eine variante wäre es die Daten nach einem Fehler einfach nochmals zu senden, was bei Reed-Solomon-Code-Anwendungen nicht immer sinnvolll ist. \ref(reedsolomon:section:anwendung) \rhead{Polynom-Ansatz} Eine Idee ist aus den Daten @@ -48,8 +55,8 @@ Dafür sind mehr übertragene Werte nötig. \begin{figure} \centering - %\includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/polynom2} - \input{papers/reedsolomon/images/polynom2.tex} + \includegraphics[width=\textwidth]{papers/reedsolomon/figures/polynom2} + %\input{papers/reedsolomon/images/polynom2.tex} \caption{Polynom $p(x)$ \eqref{reedsolomon:equation1}} \label{fig:polynom} \end{figure} diff --git a/buch/papers/reedsolomon/images/codiert.txt b/buch/papers/reedsolomon/images/codiert.txt deleted file mode 100644 index 4a481d8..0000000 --- a/buch/papers/reedsolomon/images/codiert.txt +++ /dev/null @@ -1,96 +0,0 @@ -0,284 -1,131.570790435043 -2,41.9840308053375 -3,12.1189172092243 -4,23.8408857476069 -5,69.1793197789512 -6,24.0186013379153 -7,37.3066577242559 -8,18.2010889773887 -9,12.3214904922455 -10,15.6627133315015 -11,24.5237955316204 -12,32.1114345314062 -13,44.9845039238714 -14,13.5324640263625 -15,10.1736266929292 -16,4.58257569495584 -17,23.217268502288 -18,16.5769107917917 -19,6.89948680823017 -20,4.84567134895776 -21,10.4219666223433 -22,43.6179140616243 -23,35.9073375743642 -24,15.0332963783729 -25,21.7594021268945 -26,23.2496572716993 -27,17.9815599423852 -28,11.3577742151117 -29,38.467599433197 -30,28.3035029562577 -31,9.54321919833388 -32,21.377558326432 -33,17.6292439561917 -34,12.6951848921471 -35,20.0667752354841 -36,22.9097309529208 -37,8.78894645948548 -38,13.360682005498 -39,25.1757616314718 -40,38.0357773686457 -41,18.4633287776253 -42,19.0584505869806 -43,10.8631093309173 -44,12.6147770818983 -45,12.5398140021274 -46,34.901983501949 -47,22.3480442021702 -48,6 -49,22.3480442021702 -50,34.901983501949 -51,12.5398140021274 -52,12.6147770818983 -53,10.8631093309173 -54,19.0584505869806 -55,18.4633287776253 -56,38.0357773686457 -57,25.1757616314718 -58,13.360682005498 -59,8.78894645948548 -60,22.9097309529208 -61,20.0667752354841 -62,12.6951848921471 -63,17.6292439561917 -64,21.377558326432 -65,9.54321919833388 -66,28.3035029562577 -67,38.467599433197 -68,11.3577742151117 -69,17.9815599423852 -70,23.2496572716993 -71,21.7594021268945 -72,15.0332963783729 -73,35.9073375743642 -74,43.6179140616243 -75,10.4219666223433 -76,4.84567134895776 -77,6.89948680823017 -78,16.5769107917917 -79,23.217268502288 -80,4.58257569495584 -81,10.1736266929292 -82,13.5324640263625 -83,44.9845039238714 -84,32.1114345314062 -85,24.5237955316204 -86,15.6627133315015 -87,12.3214904922455 -88,18.2010889773887 -89,37.3066577242559 -90,24.0186013379153 -91,69.1793197789512 -92,23.8408857476069 -93,12.1189172092243 -94,41.9840308053375 -95,131.570790435043 diff --git a/buch/papers/reedsolomon/images/decodiert.txt b/buch/papers/reedsolomon/images/decodiert.txt deleted file mode 100644 index f6221e6..0000000 --- a/buch/papers/reedsolomon/images/decodiert.txt +++ /dev/null @@ -1,96 +0,0 @@ -0,6.05208333333333 -1,6.02602539785853 -2,0.0261327016093151 -3,5.98927158561317 -4,4.019445724874 -5,0.0247005083663722 -6,4.97798278395618 -7,1.95246440445439 -8,0.974000110512201 -9,2.00528527696027 -10,1.00071804528155 -11,1.97630907888264 -12,0.0232923747656228 -13,6.01302820392331 -14,3.03567381915226 -15,5.02435590137329 -16,7.00526061008995 -17,5.00739608089369 -18,5.02211514480064 -19,4.02175864806658 -20,1.00236543833726 -21,4.98147315261261 -22,8.97728828610336 -23,8.98481304394618 -24,2.98958333333333 -25,1.98491220960989 -26,5.97728835934715 -27,5.98144124907561 -28,4.00163839998525 -29,2.02176249296313 -30,9.02210713874162 -31,1.00742763919872 -32,1.00557258081044 -33,1.02435888848794 -34,2.03577412756745 -35,6.01302820392331 -36,5.97917574041123 -37,0.976310374034338 -38,9.00062625447998 -39,7.00515849238528 -40,6.97396416790894 -41,0.95256880864368 -42,8.97794719866783 -43,9.01850701506487 -44,10.0194409579917 -45,8.98926601525997 -46,7.9866590265379 -47,5.02603060999077 -48,2.05208333333333 -49,4.02603841132848 -50,0.986882897867895 -51,0.0177592928994285 -52,9.01944131204563 -53,3.0185365665612 -54,2.97803642439316 -55,2.95243072164649 -56,4.97396651395488 -57,6.00516695947321 -58,0.0143895905726619 -59,7.97630812771393 -60,5.97917574041123 -61,9.01298821331865 -62,3.03567381915226 -63,4.02435609145793 -64,0.0275599094902563 -65,0.0115837187254191 -66,0.025877761014238 -67,0.0224618032819697 -68,0.04410594689944 -69,0.0474504002669341 -70,0.0227694695500626 -71,0.0271436638090525 -72,0.0104166666666667 -73,0.0271436638090523 -74,0.0227694695500608 -75,0.0474504002669343 -76,0.0441059468994397 -77,0.0224618032819701 -78,0.0258777610142379 -79,0.0115837187254183 -80,0.027559909490256 -81,0.0245124379481793 -82,0.0499782237195209 -83,0.0401432022864265 -84,0.0232923747656228 -85,0.0237974288564099 -86,0.0143895905726624 -87,0.0271745729691685 -88,0.0275599094902567 -89,0.0515501672184983 -90,0.0358255004834542 -91,0.024700508366373 -92,0.0210194725405171 -93,0.0177592928994296 -94,0.0261327016093158 -95,0.0314909067039411 diff --git a/buch/papers/reedsolomon/images/empfangen.txt b/buch/papers/reedsolomon/images/empfangen.txt deleted file mode 100644 index 38c13b0..0000000 --- a/buch/papers/reedsolomon/images/empfangen.txt +++ /dev/null @@ -1,96 +0,0 @@ -0,284 -1,131.570790435043 -2,41.9840308053375 -3,12.1189172092243 -4,23.8408857476069 -5,69.1793197789512 -6,23.6290258699579 -7,37.3066577242559 -8,18.2010889773887 -9,12.3214904922455 -10,15.6627133315015 -11,24.5237955316204 -12,32.1114345314062 -13,44.9845039238714 -14,13.5324640263625 -15,10.1736266929292 -16,4.58257569495584 -17,23.217268502288 -18,16.5769107917917 -19,6.89948680823017 -20,5.55320238736303 -21,10.4219666223433 -22,43.6179140616243 -23,35.9073375743642 -24,15.0332963783729 -25,21.7594021268945 -26,23.2496572716993 -27,17.9815599423852 -28,11.3577742151117 -29,38.467599433197 -30,28.3035029562577 -31,9.54321919833388 -32,21.377558326432 -33,17.6292439561917 -34,12.6951848921471 -35,20.0667752354841 -36,22.9097309529208 -37,8.78894645948548 -38,13.360682005498 -39,25.1757616314718 -40,38.0357773686457 -41,18.4633287776253 -42,19.0584505869806 -43,10.8631093309173 -44,12.6147770818983 -45,12.5398140021274 -46,34.901983501949 -47,22.3480442021702 -48,6 -49,22.3480442021702 -50,34.901983501949 -51,12.5398140021274 -52,12.6147770818983 -53,10.8631093309173 -54,19.0584505869806 -55,18.4633287776253 -56,38.0357773686457 -57,25.1757616314718 -58,13.360682005498 -59,8.78894645948548 -60,22.9097309529208 -61,20.0667752354841 -62,12.6951848921471 -63,17.6292439561917 -64,21.377558326432 -65,9.54321919833388 -66,28.3035029562577 -67,38.467599433197 -68,11.3577742151117 -69,17.9815599423852 -70,23.2496572716993 -71,21.7594021268945 -72,15.0332963783729 -73,35.9073375743642 -74,44.6135417384784 -75,10.4219666223433 -76,4.84567134895776 -77,6.89948680823017 -78,16.5769107917917 -79,23.217268502288 -80,4.58257569495584 -81,10.1736266929292 -82,13.5324640263625 -83,44.9845039238714 -84,32.1114345314062 -85,24.5237955316204 -86,15.6627133315015 -87,12.3214904922455 -88,18.2010889773887 -89,37.3066577242559 -90,24.0186013379153 -91,69.1793197789512 -92,23.8408857476069 -93,12.1189172092243 -94,41.9840308053375 -95,131.570790435043 diff --git a/buch/papers/reedsolomon/images/fehler.txt b/buch/papers/reedsolomon/images/fehler.txt deleted file mode 100644 index 23f1a83..0000000 --- a/buch/papers/reedsolomon/images/fehler.txt +++ /dev/null @@ -1,96 +0,0 @@ -0,0 -1,0 -2,0 -3,0 -4,0 -5,0 -6,2 -7,0 -8,0 -9,0 -10,0 -11,0 -12,0 -13,0 -14,0 -15,0 -16,0 -17,0 -18,0 -19,0 -20,2 -21,0 -22,0 -23,0 -24,0 -25,0 -26,0 -27,0 -28,0 -29,0 -30,0 -31,0 -32,0 -33,0 -34,0 -35,0 -36,0 -37,0 -38,0 -39,0 -40,0 -41,0 -42,0 -43,0 -44,0 -45,0 -46,0 -47,0 -48,0 -49,0 -50,0 -51,0 -52,0 -53,0 -54,0 -55,0 -56,0 -57,0 -58,0 -59,0 -60,0 -61,0 -62,0 -63,0 -64,0 -65,0 -66,0 -67,0 -68,0 -69,0 -70,0 -71,0 -72,0 -73,0 -74,1 -75,0 -76,0 -77,0 -78,0 -79,0 -80,0 -81,0 -82,0 -83,0 -84,0 -85,0 -86,0 -87,0 -88,0 -89,0 -90,0 -91,0 -92,0 -93,0 -94,0 -95,0 diff --git a/buch/papers/reedsolomon/images/locator.txt b/buch/papers/reedsolomon/images/locator.txt deleted file mode 100644 index b28988c..0000000 --- a/buch/papers/reedsolomon/images/locator.txt +++ /dev/null @@ -1,96 +0,0 @@ -0,0.0301224340567056 -1,0.141653026854885 -2,0.138226631799377 -3,0.0339903276086929 -4,0.310585462557496 -5,0.551427312631385 -6,0.628514858396814 -7,0.51102386251559 -8,0.275861355940449 -9,0.0502396354182268 -10,0.090185502547573 -11,0.110759344849756 -12,0.0684618905063001 -13,0.0362855426992259 -14,0.0697096919781468 -15,0.109288539370248 -16,0.0923187999496653 -17,0.0512198536768088 -18,0.274192386987782 -19,0.51349614953654 -20,0.633154426602466 -21,0.553283743533942 -22,0.307840573214514 -23,0.0341664350328392 -24,0.140270857957 -25,0.138527177682831 -26,0.029637547736156 -27,0.0816962563186052 -28,0.0944383203811073 -29,0.0263932110686261 -30,0.0585881348402056 -31,0.0737117341599984 -32,0.0239973937701886 -33,0.0464215468420038 -34,0.0616218854220964 -35,0.0221963086695009 -36,0.0390764778127646 -37,0.0537637218396934 -38,0.0208333333333332 -39,0.0343107696069045 -40,0.0483441215964552 -41,0.0198077862118806 -42,0.0311207395968725 -43,0.0444955089373458 -44,0.0190533549944159 -45,0.0290049795038723 -46,0.0417536642697558 -47,0.0185261550443084 -48,0.0277059929762261 -49,0.0398606084144816 -50,0.0181978813094817 -51,0.0271098219177584 -52,0.0386836665079729 -53,0.0180518611046889 -54,0.0272138992557141 -55,0.0381891287148314 -56,0.0180809085252469 -57,0.0281418959420061 -58,0.0384596362516637 -59,0.0182864418432272 -60,0.0302250788423173 -61,0.0397874837986351 -62,0.0186786556701694 -63,0.0342489348284216 -64,0.0429932815348666 -65,0.0192777878591759 -66,0.0422808966931999 -67,0.0506815964680563 -68,0.0201167847752226 -69,0.0615048274405271 -70,0.0744953894508454 -71,0.021246054596492 -72,0.142602265816215 -73,0.273502052865436 -74,0.325309673287599 -75,0.272705389655349 -76,0.149074257381345 -77,0.0247199397628712 -78,0.0680137859566976 -79,0.075388270873485 -80,0.0273637831604903 -81,0.0407867704453274 -82,0.0632964886441949 -83,0.0309749128751093 -84,0.0315202035072035 -85,0.0627625211892184 -86,0.0360843918243497 -87,0.02794920551495 -88,0.0677921493367236 -89,0.0437167157553067 -90,0.0270640150996317 -91,0.0783380025231622 -92,0.0561293738314281 -93,0.0278742033265809 -94,0.0981443889498639 -95,0.0794543457386548 diff --git a/buch/papers/reedsolomon/images/plotfft.tex b/buch/papers/reedsolomon/images/plotfft.tex deleted file mode 100644 index 83a89eb..0000000 --- a/buch/papers/reedsolomon/images/plotfft.tex +++ /dev/null @@ -1,89 +0,0 @@ -% -% Plot der Übertrangungsabfolge ins FFT und zurück mit IFFT -% -\begin{tikzpicture}[] - -%--------------------------------------------------------------- - %Knote -\matrix[draw = none, column sep=25mm, row sep=2mm]{ - \node(signal) [] { - \begin{tikzpicture} - \begin{axis} - [title = {\Large {Signal}}, - xlabel={Anzahl Übertragene Zahlen}, - xtick={0,20,40,64,80,98},] - \addplot[blue] table[col sep=comma] {papers/reedsolomon/images/signal.txt}; - \end{axis} - \end{tikzpicture}}; & - - \node(codiert) [] { - \begin{tikzpicture} - \begin{axis}[title = {\Large {Codiert}}] - \addplot[] table[col sep=comma] {papers/reedsolomon/images/codiert.txt}; - \end{axis} - \end{tikzpicture}}; \\ - - &\node(fehler) [] { - \begin{tikzpicture} - \begin{axis}[scale=0.6, title = {\Large {Fehler}}, - xtick={7,21,75}] - \addplot[red] table[col sep=comma] {papers/reedsolomon/images/fehler.txt}; - \end{axis} - \end{tikzpicture}};\\ - - \node(decodiert) [] { - \begin{tikzpicture} - \begin{axis}[title = {\Large {Decodiert}}] - \addplot[blue] table[col sep=comma] {papers/reedsolomon/images/decodiert.txt}; - \end{axis} - \end{tikzpicture}}; & - - \node(empfangen) [] { - \begin{tikzpicture} - \begin{axis}[title = {\Large {Empfangen}}] - \addplot[] table[col sep=comma] {papers/reedsolomon/images/empfangen.txt}; - \end{axis} - \end{tikzpicture}};\\ - - \node(syndrom) [] { - \begin{tikzpicture} - \begin{axis}[title = {\Large {Syndrom}}] - \addplot[blue] table[col sep=comma] {papers/reedsolomon/images/syndrom.txt}; - \end{axis} - \end{tikzpicture}}; & - - \node(locator) [] { - \begin{tikzpicture} - \begin{axis}[title = {\Large {Locator}}] - \addplot[] table[col sep=comma] {papers/reedsolomon/images/locator.txt}; - \end{axis} - \end{tikzpicture}};\\ -}; -%------------------------------------------------------------- - %FFT & IFFT deskription - -\draw[thin,gray,dashed] (0,12) to (0,-12); -\node(IFFT) [scale=0.7] at (0,12.3) {IFFT}; -\draw[<-](IFFT.south west)--(IFFT.south east); -\node(FFT) [scale=0.7, above of=IFFT] {FFT}; -\draw[->](FFT.north west)--(FFT.north east); - -\draw[thick, ->,] (fehler.west)++(-1,0) +(0.05,0.5) -- +(-0.1,-0.1) -- +(0.1,0.1) -- +(0,-0.5); -%Arrows -\draw[ultra thick, ->] (signal.east) to (codiert.west); -\draw[ultra thick, ->] (codiert.south) to (fehler.north); -\draw[ultra thick, ->] (fehler.south) to (empfangen.north); -\draw[ultra thick, ->] (empfangen.west) to (decodiert.east); -\draw[ultra thick, ->] (syndrom.east) to (locator.west); -\draw(decodiert.south east)++(-1.8,1) ellipse (1.3cm and 0.8cm) ++(-1.3,0) coordinate(zoom) ; -\draw[ultra thick, ->] (zoom) to[out=180, in=90] (syndrom.north); - -%item -\node[circle, draw, fill =lightgray] at (signal.north west) {1}; -\node[circle, draw, fill =lightgray] at (codiert.north west) {2}; -\node[circle, draw, fill =lightgray] at (fehler.north west) {3}; -\node[circle, draw, fill =lightgray] at (empfangen.north west) {4}; -\node[circle, draw, fill =lightgray] at (decodiert.north west) {5}; -\node[circle, draw, fill =lightgray] at (syndrom.north west) {6}; -\node[circle, draw, fill =lightgray] at (locator.north west) {7}; -\end{tikzpicture} \ No newline at end of file diff --git a/buch/papers/reedsolomon/images/polynom2.tex b/buch/papers/reedsolomon/images/polynom2.tex deleted file mode 100644 index 288b51c..0000000 --- a/buch/papers/reedsolomon/images/polynom2.tex +++ /dev/null @@ -1,49 +0,0 @@ -% polynome -%------------------- -% Teiler für das Skalieren der Grafik /40 -\newcommand{\teiler}{40} - - -%////////////////////////////////////// - -\begin{tikzpicture}[>=latex,thick] - \draw[color=blue, line width=1.4pt] - plot[domain=0:8, samples=100] - ({\x},{(2*\x^2+1*\x+5)/\teiler}); - - \draw[->] (-0.2,0) -- (8,0) coordinate[label={$x$}]; - \draw[->] (0,-0.2) -- (0,150/\teiler) coordinate[label={right:$p(x)$}]; - - \def\punkt#1{ - \fill[color=green] #1 circle[radius=0.08]; - \draw #1 circle[radius=0.07]; - } - - \def\hellpunkt#1{ - \fill[color=lightgray] #1 circle[radius=0.08]; - \draw #1 circle[radius=0.07]; - } - - \punkt{(1,8/\teiler)} - \hellpunkt{(2,15/\teiler)} - \hellpunkt{(3,26/\teiler)} - \punkt{(4,41/\teiler)} - \punkt{(5,60/\teiler)} - \punkt{(6,83/\teiler)} - \punkt{(7,110/\teiler)} - - \draw[color=gray,line width=1pt,dashed] - plot[domain=0.5:7, samples=100] - ({\x},{(7.832*\x^2-51.5*\x+121.668)/\teiler}); - - \def\erpunkt#1{ - \fill[color=red] #1 circle[radius=0.08]; - \draw #1 circle[radius=0.07]; - } - \erpunkt{(2,50/\teiler)} - \erpunkt{(3,37.66/\teiler)} - - \draw(0,100/\teiler) -- (-0.1,100/\teiler) coordinate[label={left:$100$}]; - \draw(1,0) -- (1,-0.1) coordinate[label={below:$1$}]; -\end{tikzpicture} -%\end{document} diff --git a/buch/papers/reedsolomon/images/signal.txt b/buch/papers/reedsolomon/images/signal.txt deleted file mode 100644 index c4fa5f8..0000000 --- a/buch/papers/reedsolomon/images/signal.txt +++ /dev/null @@ -1,96 +0,0 @@ -0,6 -1,6 -2,0 -3,6 -4,4 -5,0 -6,5 -7,2 -8,1 -9,2 -10,1 -11,2 -12,0 -13,6 -14,3 -15,5 -16,7 -17,5 -18,5 -19,4 -20,1 -21,5 -22,9 -23,9 -24,3 -25,2 -26,6 -27,6 -28,4 -29,2 -30,9 -31,1 -32,1 -33,1 -34,2 -35,6 -36,6 -37,1 -38,9 -39,7 -40,7 -41,1 -42,9 -43,9 -44,10 -45,9 -46,8 -47,5 -48,2 -49,4 -50,1 -51,0 -52,9 -53,3 -54,3 -55,3 -56,5 -57,6 -58,0 -59,8 -60,6 -61,9 -62,3 -63,4 -64,0 -65,0 -66,0 -67,0 -68,0 -69,0 -70,0 -71,0 -72,0 -73,0 -74,0 -75,0 -76,0 -77,0 -78,0 -79,0 -80,0 -81,0 -82,0 -83,0 -84,0 -85,0 -86,0 -87,0 -88,0 -89,0 -90,0 -91,0 -92,0 -93,0 -94,0 -95,0 diff --git a/buch/papers/reedsolomon/images/syndrom.txt b/buch/papers/reedsolomon/images/syndrom.txt deleted file mode 100644 index 8ca9eed..0000000 --- a/buch/papers/reedsolomon/images/syndrom.txt +++ /dev/null @@ -1,96 +0,0 @@ -0,0 -1,0 -2,0 -3,0 -4,0 -5,0 -6,0 -7,0 -8,0 -9,0 -10,0 -11,0 -12,0 -13,0 -14,0 -15,0 -16,0 -17,0 -18,0 -19,0 -20,0 -21,0 -22,0 -23,0 -24,0 -25,0 -26,0 -27,0 -28,0 -29,0 -30,0 -31,0 -32,0 -33,0 -34,0 -35,0 -36,0 -37,0 -38,0 -39,0 -40,0 -41,0 -42,0 -43,0 -44,0 -45,0 -46,0 -47,0 -48,0 -49,0 -50,0 -51,0 -52,0 -53,0 -54,0 -55,0 -56,0 -57,0 -58,0 -59,0 -60,0 -61,0 -62,0 -63,0 -64,0.0275599094902563 -65,0.0115837187254191 -66,0.025877761014238 -67,0.0224618032819697 -68,0.04410594689944 -69,0.0474504002669341 -70,0.0227694695500626 -71,0.0271436638090525 -72,0.0104166666666667 -73,0.0271436638090523 -74,0.0227694695500608 -75,0.0474504002669343 -76,0.0441059468994397 -77,0.0224618032819701 -78,0.0258777610142379 -79,0.0115837187254183 -80,0.027559909490256 -81,0.0245124379481793 -82,0.0499782237195209 -83,0.0401432022864265 -84,0.0232923747656228 -85,0.0237974288564099 -86,0.0143895905726624 -87,0.0271745729691685 -88,0.0275599094902567 -89,0.0515501672184983 -90,0.0358255004834542 -91,0.024700508366373 -92,0.0210194725405171 -93,0.0177592928994296 -94,0.0261327016093158 -95,0.0314909067039411 diff --git a/buch/papers/reedsolomon/main.tex b/buch/papers/reedsolomon/main.tex index e68b947..327d01a 100644 --- a/buch/papers/reedsolomon/main.tex +++ b/buch/papers/reedsolomon/main.tex @@ -8,29 +8,9 @@ \begin{refsection} \chapterauthor{Joshua Bär und Michael Steiner} -Ein paar Hinweise für die korrekte Formatierung des Textes -\begin{itemize} -\item -Absätze werden gebildet, indem man eine Leerzeile einfügt. -Die Verwendung von \verb+\\+ ist nur in Tabellen und Arrays gestattet. -\item -Die explizite Platzierung von Bildern ist nicht erlaubt, entsprechende -Optionen werden gelöscht. -Verwenden Sie Labels und Verweise, um auf Bilder hinzuweisen. -\item -Beginnen Sie jeden Satz auf einer neuen Zeile. -Damit ermöglichen Sie dem Versionsverwaltungssysteme, Änderungen -in verschiedenen Sätzen von verschiedenen Autoren ohne Konflikt -anzuwenden. -\item -Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren -Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. -\end{itemize} - % Joshua \input{papers/reedsolomon/einleitung.tex} \input{papers/reedsolomon/idee.tex} -%\input{papers/reedsolomon/teil2.tex} \input{papers/reedsolomon/dtf.tex} % Michael diff --git a/buch/papers/reedsolomon/standalone.tex b/buch/papers/reedsolomon/standalone.tex new file mode 100644 index 0000000..c850d1f --- /dev/null +++ b/buch/papers/reedsolomon/standalone.tex @@ -0,0 +1,30 @@ +\documentclass{book} + +\input{common/packages.tex} + +% additional packages used by the individual papers, add a line for +% each paper +\input{papers/common/addpackages.tex} + +% workaround for biblatex bug +\makeatletter +\def\blx@maxline{77} +\makeatother +\addbibresource{chapters/references.bib} + +% Bibresources for each article +\input{papers/common/addbibresources.tex} + +% make sure the last index starts on an odd page +\AtEndDocument{\clearpage\ifodd\value{page}\else\null\clearpage\fi} +\makeindex + +%\pgfplotsset{compat=1.12} +\setlength{\headheight}{15pt} % fix headheight warning +\DeclareGraphicsRule{*}{mps}{*}{} + +\begin{document} + \input{common/macros.tex} + \def\chapterauthor#1{{\large #1}\bigskip\bigskip} + \input{papers/reedsolomon/main.tex} +\end{document} diff --git a/buch/papers/reedsolomon/standalone/standalone.pdf b/buch/papers/reedsolomon/standalone/standalone.pdf new file mode 100644 index 0000000..80af280 Binary files /dev/null and b/buch/papers/reedsolomon/standalone/standalone.pdf differ diff --git a/buch/papers/reedsolomon/tikz/codiert.txt b/buch/papers/reedsolomon/tikz/codiert.txt new file mode 100644 index 0000000..4a481d8 --- /dev/null +++ b/buch/papers/reedsolomon/tikz/codiert.txt @@ -0,0 +1,96 @@ +0,284 +1,131.570790435043 +2,41.9840308053375 +3,12.1189172092243 +4,23.8408857476069 +5,69.1793197789512 +6,24.0186013379153 +7,37.3066577242559 +8,18.2010889773887 +9,12.3214904922455 +10,15.6627133315015 +11,24.5237955316204 +12,32.1114345314062 +13,44.9845039238714 +14,13.5324640263625 +15,10.1736266929292 +16,4.58257569495584 +17,23.217268502288 +18,16.5769107917917 +19,6.89948680823017 +20,4.84567134895776 +21,10.4219666223433 +22,43.6179140616243 +23,35.9073375743642 +24,15.0332963783729 +25,21.7594021268945 +26,23.2496572716993 +27,17.9815599423852 +28,11.3577742151117 +29,38.467599433197 +30,28.3035029562577 +31,9.54321919833388 +32,21.377558326432 +33,17.6292439561917 +34,12.6951848921471 +35,20.0667752354841 +36,22.9097309529208 +37,8.78894645948548 +38,13.360682005498 +39,25.1757616314718 +40,38.0357773686457 +41,18.4633287776253 +42,19.0584505869806 +43,10.8631093309173 +44,12.6147770818983 +45,12.5398140021274 +46,34.901983501949 +47,22.3480442021702 +48,6 +49,22.3480442021702 +50,34.901983501949 +51,12.5398140021274 +52,12.6147770818983 +53,10.8631093309173 +54,19.0584505869806 +55,18.4633287776253 +56,38.0357773686457 +57,25.1757616314718 +58,13.360682005498 +59,8.78894645948548 +60,22.9097309529208 +61,20.0667752354841 +62,12.6951848921471 +63,17.6292439561917 +64,21.377558326432 +65,9.54321919833388 +66,28.3035029562577 +67,38.467599433197 +68,11.3577742151117 +69,17.9815599423852 +70,23.2496572716993 +71,21.7594021268945 +72,15.0332963783729 +73,35.9073375743642 +74,43.6179140616243 +75,10.4219666223433 +76,4.84567134895776 +77,6.89948680823017 +78,16.5769107917917 +79,23.217268502288 +80,4.58257569495584 +81,10.1736266929292 +82,13.5324640263625 +83,44.9845039238714 +84,32.1114345314062 +85,24.5237955316204 +86,15.6627133315015 +87,12.3214904922455 +88,18.2010889773887 +89,37.3066577242559 +90,24.0186013379153 +91,69.1793197789512 +92,23.8408857476069 +93,12.1189172092243 +94,41.9840308053375 +95,131.570790435043 diff --git a/buch/papers/reedsolomon/tikz/decodiert.txt b/buch/papers/reedsolomon/tikz/decodiert.txt new file mode 100644 index 0000000..f6221e6 --- /dev/null +++ b/buch/papers/reedsolomon/tikz/decodiert.txt @@ -0,0 +1,96 @@ +0,6.05208333333333 +1,6.02602539785853 +2,0.0261327016093151 +3,5.98927158561317 +4,4.019445724874 +5,0.0247005083663722 +6,4.97798278395618 +7,1.95246440445439 +8,0.974000110512201 +9,2.00528527696027 +10,1.00071804528155 +11,1.97630907888264 +12,0.0232923747656228 +13,6.01302820392331 +14,3.03567381915226 +15,5.02435590137329 +16,7.00526061008995 +17,5.00739608089369 +18,5.02211514480064 +19,4.02175864806658 +20,1.00236543833726 +21,4.98147315261261 +22,8.97728828610336 +23,8.98481304394618 +24,2.98958333333333 +25,1.98491220960989 +26,5.97728835934715 +27,5.98144124907561 +28,4.00163839998525 +29,2.02176249296313 +30,9.02210713874162 +31,1.00742763919872 +32,1.00557258081044 +33,1.02435888848794 +34,2.03577412756745 +35,6.01302820392331 +36,5.97917574041123 +37,0.976310374034338 +38,9.00062625447998 +39,7.00515849238528 +40,6.97396416790894 +41,0.95256880864368 +42,8.97794719866783 +43,9.01850701506487 +44,10.0194409579917 +45,8.98926601525997 +46,7.9866590265379 +47,5.02603060999077 +48,2.05208333333333 +49,4.02603841132848 +50,0.986882897867895 +51,0.0177592928994285 +52,9.01944131204563 +53,3.0185365665612 +54,2.97803642439316 +55,2.95243072164649 +56,4.97396651395488 +57,6.00516695947321 +58,0.0143895905726619 +59,7.97630812771393 +60,5.97917574041123 +61,9.01298821331865 +62,3.03567381915226 +63,4.02435609145793 +64,0.0275599094902563 +65,0.0115837187254191 +66,0.025877761014238 +67,0.0224618032819697 +68,0.04410594689944 +69,0.0474504002669341 +70,0.0227694695500626 +71,0.0271436638090525 +72,0.0104166666666667 +73,0.0271436638090523 +74,0.0227694695500608 +75,0.0474504002669343 +76,0.0441059468994397 +77,0.0224618032819701 +78,0.0258777610142379 +79,0.0115837187254183 +80,0.027559909490256 +81,0.0245124379481793 +82,0.0499782237195209 +83,0.0401432022864265 +84,0.0232923747656228 +85,0.0237974288564099 +86,0.0143895905726624 +87,0.0271745729691685 +88,0.0275599094902567 +89,0.0515501672184983 +90,0.0358255004834542 +91,0.024700508366373 +92,0.0210194725405171 +93,0.0177592928994296 +94,0.0261327016093158 +95,0.0314909067039411 diff --git a/buch/papers/reedsolomon/tikz/empfangen.txt b/buch/papers/reedsolomon/tikz/empfangen.txt new file mode 100644 index 0000000..38c13b0 --- /dev/null +++ b/buch/papers/reedsolomon/tikz/empfangen.txt @@ -0,0 +1,96 @@ +0,284 +1,131.570790435043 +2,41.9840308053375 +3,12.1189172092243 +4,23.8408857476069 +5,69.1793197789512 +6,23.6290258699579 +7,37.3066577242559 +8,18.2010889773887 +9,12.3214904922455 +10,15.6627133315015 +11,24.5237955316204 +12,32.1114345314062 +13,44.9845039238714 +14,13.5324640263625 +15,10.1736266929292 +16,4.58257569495584 +17,23.217268502288 +18,16.5769107917917 +19,6.89948680823017 +20,5.55320238736303 +21,10.4219666223433 +22,43.6179140616243 +23,35.9073375743642 +24,15.0332963783729 +25,21.7594021268945 +26,23.2496572716993 +27,17.9815599423852 +28,11.3577742151117 +29,38.467599433197 +30,28.3035029562577 +31,9.54321919833388 +32,21.377558326432 +33,17.6292439561917 +34,12.6951848921471 +35,20.0667752354841 +36,22.9097309529208 +37,8.78894645948548 +38,13.360682005498 +39,25.1757616314718 +40,38.0357773686457 +41,18.4633287776253 +42,19.0584505869806 +43,10.8631093309173 +44,12.6147770818983 +45,12.5398140021274 +46,34.901983501949 +47,22.3480442021702 +48,6 +49,22.3480442021702 +50,34.901983501949 +51,12.5398140021274 +52,12.6147770818983 +53,10.8631093309173 +54,19.0584505869806 +55,18.4633287776253 +56,38.0357773686457 +57,25.1757616314718 +58,13.360682005498 +59,8.78894645948548 +60,22.9097309529208 +61,20.0667752354841 +62,12.6951848921471 +63,17.6292439561917 +64,21.377558326432 +65,9.54321919833388 +66,28.3035029562577 +67,38.467599433197 +68,11.3577742151117 +69,17.9815599423852 +70,23.2496572716993 +71,21.7594021268945 +72,15.0332963783729 +73,35.9073375743642 +74,44.6135417384784 +75,10.4219666223433 +76,4.84567134895776 +77,6.89948680823017 +78,16.5769107917917 +79,23.217268502288 +80,4.58257569495584 +81,10.1736266929292 +82,13.5324640263625 +83,44.9845039238714 +84,32.1114345314062 +85,24.5237955316204 +86,15.6627133315015 +87,12.3214904922455 +88,18.2010889773887 +89,37.3066577242559 +90,24.0186013379153 +91,69.1793197789512 +92,23.8408857476069 +93,12.1189172092243 +94,41.9840308053375 +95,131.570790435043 diff --git a/buch/papers/reedsolomon/tikz/fehler.txt b/buch/papers/reedsolomon/tikz/fehler.txt new file mode 100644 index 0000000..23f1a83 --- /dev/null +++ b/buch/papers/reedsolomon/tikz/fehler.txt @@ -0,0 +1,96 @@ +0,0 +1,0 +2,0 +3,0 +4,0 +5,0 +6,2 +7,0 +8,0 +9,0 +10,0 +11,0 +12,0 +13,0 +14,0 +15,0 +16,0 +17,0 +18,0 +19,0 +20,2 +21,0 +22,0 +23,0 +24,0 +25,0 +26,0 +27,0 +28,0 +29,0 +30,0 +31,0 +32,0 +33,0 +34,0 +35,0 +36,0 +37,0 +38,0 +39,0 +40,0 +41,0 +42,0 +43,0 +44,0 +45,0 +46,0 +47,0 +48,0 +49,0 +50,0 +51,0 +52,0 +53,0 +54,0 +55,0 +56,0 +57,0 +58,0 +59,0 +60,0 +61,0 +62,0 +63,0 +64,0 +65,0 +66,0 +67,0 +68,0 +69,0 +70,0 +71,0 +72,0 +73,0 +74,1 +75,0 +76,0 +77,0 +78,0 +79,0 +80,0 +81,0 +82,0 +83,0 +84,0 +85,0 +86,0 +87,0 +88,0 +89,0 +90,0 +91,0 +92,0 +93,0 +94,0 +95,0 diff --git a/buch/papers/reedsolomon/tikz/locator.txt b/buch/papers/reedsolomon/tikz/locator.txt new file mode 100644 index 0000000..b28988c --- /dev/null +++ b/buch/papers/reedsolomon/tikz/locator.txt @@ -0,0 +1,96 @@ +0,0.0301224340567056 +1,0.141653026854885 +2,0.138226631799377 +3,0.0339903276086929 +4,0.310585462557496 +5,0.551427312631385 +6,0.628514858396814 +7,0.51102386251559 +8,0.275861355940449 +9,0.0502396354182268 +10,0.090185502547573 +11,0.110759344849756 +12,0.0684618905063001 +13,0.0362855426992259 +14,0.0697096919781468 +15,0.109288539370248 +16,0.0923187999496653 +17,0.0512198536768088 +18,0.274192386987782 +19,0.51349614953654 +20,0.633154426602466 +21,0.553283743533942 +22,0.307840573214514 +23,0.0341664350328392 +24,0.140270857957 +25,0.138527177682831 +26,0.029637547736156 +27,0.0816962563186052 +28,0.0944383203811073 +29,0.0263932110686261 +30,0.0585881348402056 +31,0.0737117341599984 +32,0.0239973937701886 +33,0.0464215468420038 +34,0.0616218854220964 +35,0.0221963086695009 +36,0.0390764778127646 +37,0.0537637218396934 +38,0.0208333333333332 +39,0.0343107696069045 +40,0.0483441215964552 +41,0.0198077862118806 +42,0.0311207395968725 +43,0.0444955089373458 +44,0.0190533549944159 +45,0.0290049795038723 +46,0.0417536642697558 +47,0.0185261550443084 +48,0.0277059929762261 +49,0.0398606084144816 +50,0.0181978813094817 +51,0.0271098219177584 +52,0.0386836665079729 +53,0.0180518611046889 +54,0.0272138992557141 +55,0.0381891287148314 +56,0.0180809085252469 +57,0.0281418959420061 +58,0.0384596362516637 +59,0.0182864418432272 +60,0.0302250788423173 +61,0.0397874837986351 +62,0.0186786556701694 +63,0.0342489348284216 +64,0.0429932815348666 +65,0.0192777878591759 +66,0.0422808966931999 +67,0.0506815964680563 +68,0.0201167847752226 +69,0.0615048274405271 +70,0.0744953894508454 +71,0.021246054596492 +72,0.142602265816215 +73,0.273502052865436 +74,0.325309673287599 +75,0.272705389655349 +76,0.149074257381345 +77,0.0247199397628712 +78,0.0680137859566976 +79,0.075388270873485 +80,0.0273637831604903 +81,0.0407867704453274 +82,0.0632964886441949 +83,0.0309749128751093 +84,0.0315202035072035 +85,0.0627625211892184 +86,0.0360843918243497 +87,0.02794920551495 +88,0.0677921493367236 +89,0.0437167157553067 +90,0.0270640150996317 +91,0.0783380025231622 +92,0.0561293738314281 +93,0.0278742033265809 +94,0.0981443889498639 +95,0.0794543457386548 diff --git a/buch/papers/reedsolomon/tikz/plotfft.tex b/buch/papers/reedsolomon/tikz/plotfft.tex new file mode 100644 index 0000000..3036e14 --- /dev/null +++ b/buch/papers/reedsolomon/tikz/plotfft.tex @@ -0,0 +1,99 @@ +% +% Plot der Übertrangungsabfolge ins FFT und zurück mit IFFT +% +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{pgfplots} +\usepackage{pgfplotstable} +\usepackage{csvsimple} +\usepackage{filecontents} + + +\begin{document} +\begin{tikzpicture}[] + + %--------------------------------------------------------------- + %Knote + \matrix[draw = none, column sep=25mm, row sep=2mm]{ + \node(signal) [] { + \begin{tikzpicture} + \begin{axis} + [title = {\Large {Signal}}, + xtick={0,20,40,64,80,98},] + \addplot[blue] table[col sep=comma] {tikz/signal.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(codiert) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Codiert}}] + \addplot[] table[col sep=comma] {tikz/codiert.txt}; + \end{axis} + \end{tikzpicture}}; \\ + + &\node(fehler) [] { + \begin{tikzpicture} + \begin{axis}[scale=0.6, title = {\Large {Fehler}}, + xtick={7,21,75}] + \addplot[red] table[col sep=comma] {tikz/fehler.txt}; + \end{axis} + \end{tikzpicture}};\\ + + \node(decodiert) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Decodiert}}] + \addplot[blue] table[col sep=comma] {tikz/decodiert.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(empfangen) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Empfangen}}] + \addplot[] table[col sep=comma] {tikz/empfangen.txt}; + \end{axis} + \end{tikzpicture}};\\ + + \node(syndrom) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Syndrom}}] + \addplot[blue] table[col sep=comma] {tikz/syndrom.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(locator) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Locator}}] + \addplot[] table[col sep=comma] {tikz/locator.txt}; + \end{axis} + \end{tikzpicture}};\\ + }; + %------------------------------------------------------------- + %FFT & IFFT deskription + + \draw[thin,gray,dashed] (0,12) to (0,-12); + \node(IFFT) [scale=0.7] at (0,12.3) {IFFT}; + \draw[<-](IFFT.south west)--(IFFT.south east); + \node(FFT) [scale=0.7, above of=IFFT] {FFT}; + \draw[->](FFT.north west)--(FFT.north east); + + \draw[thick, ->,] (fehler.west)++(-1,0) +(0.05,0.5) -- +(-0.1,-0.1) -- +(0.1,0.1) -- +(0,-0.5); + %Arrows + \draw[ultra thick, ->] (signal.east) to (codiert.west); + \draw[ultra thick, ->] (codiert.south) to (fehler.north); + \draw[ultra thick, ->] (fehler.south) to (empfangen.north); + \draw[ultra thick, ->] (empfangen.west) to (decodiert.east); + \draw[ultra thick, ->] (syndrom.east) to (locator.west); + \draw(decodiert.south east)++(-1.8,1) ellipse (1.3cm and 0.8cm) ++(-1.3,0) coordinate(zoom) ; + \draw[ultra thick, ->] (zoom) to[out=180, in=90] (syndrom.north); + + %item + \node[circle, draw, fill =lightgray] at (signal.north west) {1}; + \node[circle, draw, fill =lightgray] at (codiert.north west) {2}; + \node[circle, draw, fill =lightgray] at (fehler.north west) {3}; + \node[circle, draw, fill =lightgray] at (empfangen.north west) {4}; + \node[circle, draw, fill =lightgray] at (decodiert.north west) {5}; + \node[circle, draw, fill =lightgray] at (syndrom.north west) {6}; + \node[circle, draw, fill =lightgray] at (locator.north west) {7}; +\end{tikzpicture} +\end{document} \ No newline at end of file diff --git a/buch/papers/reedsolomon/tikz/polynom2.tex b/buch/papers/reedsolomon/tikz/polynom2.tex new file mode 100644 index 0000000..456e067 --- /dev/null +++ b/buch/papers/reedsolomon/tikz/polynom2.tex @@ -0,0 +1,57 @@ +% polynome +%------------------- + +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{pgfplots} + + +\begin{document} +% Teiler für das Skalieren der Grafik /40 +\newcommand{\teiler}{40} + + +%////////////////////////////////////// + +\begin{tikzpicture}[>=latex,thick] + \draw[color=blue, line width=1.4pt] + plot[domain=0:8, samples=100] + ({\x},{(2*\x^2+1*\x+5)/\teiler}); + + \draw[->] (-0.2,0) -- (8,0) coordinate[label={$x$}]; + \draw[->] (0,-0.2) -- (0,150/\teiler) coordinate[label={right:$p(x)$}]; + + \def\punkt#1{ + \fill[color=green] #1 circle[radius=0.08]; + \draw #1 circle[radius=0.07]; + } + + \def\hellpunkt#1{ + \fill[color=lightgray] #1 circle[radius=0.08]; + \draw #1 circle[radius=0.07]; + } + + \punkt{(1,8/\teiler)} + \hellpunkt{(2,15/\teiler)} + \hellpunkt{(3,26/\teiler)} + \punkt{(4,41/\teiler)} + \punkt{(5,60/\teiler)} + \punkt{(6,83/\teiler)} + \punkt{(7,110/\teiler)} + + \draw[color=gray,line width=1pt,dashed] + plot[domain=0.5:7, samples=100] + ({\x},{(7.832*\x^2-51.5*\x+121.668)/\teiler}); + + \def\erpunkt#1{ + \fill[color=red] #1 circle[radius=0.08]; + \draw #1 circle[radius=0.07]; + } + \erpunkt{(2,50/\teiler)} + \erpunkt{(3,37.66/\teiler)} + + \draw(0,100/\teiler) -- (-0.1,100/\teiler) coordinate[label={left:$100$}]; + \draw(1,0) -- (1,-0.1) coordinate[label={below:$1$}]; +\end{tikzpicture} +\end{document} diff --git a/buch/papers/reedsolomon/tikz/signal.txt b/buch/papers/reedsolomon/tikz/signal.txt new file mode 100644 index 0000000..c4fa5f8 --- /dev/null +++ b/buch/papers/reedsolomon/tikz/signal.txt @@ -0,0 +1,96 @@ +0,6 +1,6 +2,0 +3,6 +4,4 +5,0 +6,5 +7,2 +8,1 +9,2 +10,1 +11,2 +12,0 +13,6 +14,3 +15,5 +16,7 +17,5 +18,5 +19,4 +20,1 +21,5 +22,9 +23,9 +24,3 +25,2 +26,6 +27,6 +28,4 +29,2 +30,9 +31,1 +32,1 +33,1 +34,2 +35,6 +36,6 +37,1 +38,9 +39,7 +40,7 +41,1 +42,9 +43,9 +44,10 +45,9 +46,8 +47,5 +48,2 +49,4 +50,1 +51,0 +52,9 +53,3 +54,3 +55,3 +56,5 +57,6 +58,0 +59,8 +60,6 +61,9 +62,3 +63,4 +64,0 +65,0 +66,0 +67,0 +68,0 +69,0 +70,0 +71,0 +72,0 +73,0 +74,0 +75,0 +76,0 +77,0 +78,0 +79,0 +80,0 +81,0 +82,0 +83,0 +84,0 +85,0 +86,0 +87,0 +88,0 +89,0 +90,0 +91,0 +92,0 +93,0 +94,0 +95,0 diff --git a/buch/papers/reedsolomon/tikz/syndrom.txt b/buch/papers/reedsolomon/tikz/syndrom.txt new file mode 100644 index 0000000..8ca9eed --- /dev/null +++ b/buch/papers/reedsolomon/tikz/syndrom.txt @@ -0,0 +1,96 @@ +0,0 +1,0 +2,0 +3,0 +4,0 +5,0 +6,0 +7,0 +8,0 +9,0 +10,0 +11,0 +12,0 +13,0 +14,0 +15,0 +16,0 +17,0 +18,0 +19,0 +20,0 +21,0 +22,0 +23,0 +24,0 +25,0 +26,0 +27,0 +28,0 +29,0 +30,0 +31,0 +32,0 +33,0 +34,0 +35,0 +36,0 +37,0 +38,0 +39,0 +40,0 +41,0 +42,0 +43,0 +44,0 +45,0 +46,0 +47,0 +48,0 +49,0 +50,0 +51,0 +52,0 +53,0 +54,0 +55,0 +56,0 +57,0 +58,0 +59,0 +60,0 +61,0 +62,0 +63,0 +64,0.0275599094902563 +65,0.0115837187254191 +66,0.025877761014238 +67,0.0224618032819697 +68,0.04410594689944 +69,0.0474504002669341 +70,0.0227694695500626 +71,0.0271436638090525 +72,0.0104166666666667 +73,0.0271436638090523 +74,0.0227694695500608 +75,0.0474504002669343 +76,0.0441059468994397 +77,0.0224618032819701 +78,0.0258777610142379 +79,0.0115837187254183 +80,0.027559909490256 +81,0.0245124379481793 +82,0.0499782237195209 +83,0.0401432022864265 +84,0.0232923747656228 +85,0.0237974288564099 +86,0.0143895905726624 +87,0.0271745729691685 +88,0.0275599094902567 +89,0.0515501672184983 +90,0.0358255004834542 +91,0.024700508366373 +92,0.0210194725405171 +93,0.0177592928994296 +94,0.0261327016093158 +95,0.0314909067039411 -- cgit v1.2.1 From 91c10deedee35f5fa673de585c41c06b81248f14 Mon Sep 17 00:00:00 2001 From: michael-OST <75078383+michael-OST@users.noreply.github.com> Date: Mon, 26 Jul 2021 20:59:51 +0200 Subject: Bonus-Chapter updated --- buch/papers/reedsolomon/anwendungen.tex | 35 +++++++++++++-------- .../reedsolomon/images/Compact_Disc_zoomed_in.png | Bin 0 -> 45679 bytes buch/papers/reedsolomon/main.tex | 1 + buch/papers/reedsolomon/references.bib | 11 ++++++- 4 files changed, 33 insertions(+), 14 deletions(-) create mode 100644 buch/papers/reedsolomon/images/Compact_Disc_zoomed_in.png (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/anwendungen.tex b/buch/papers/reedsolomon/anwendungen.tex index c03b1a4..b9b1d69 100644 --- a/buch/papers/reedsolomon/anwendungen.tex +++ b/buch/papers/reedsolomon/anwendungen.tex @@ -7,21 +7,20 @@ \label{reedsolomon:section:anwendung}} \rhead{Anwendungen} -In den vorherigen Abschnitten haben wir betrachtet, wie Reed-Solomon-Codes in der Theorie Funktionieren. +In den vorherigen Abschnitten haben wir betrachtet, wie Reed-Solomon-Codes in der Theorie funktionieren. In diesem Abschnitt werden wir einige Anwendungen vorstellen, bei denen ein Reed-Solomon-Code zum Einsatz kommt. -Dabei teilen all diese Anwendungen das gleiche Problem: Die Daten können nur durch einen (höchst Wahrscheinlichen) fehlerbehafteten Kanal empfangen werden. Es gibt keine andere Methode an diese Daten zu kommen als über diesen Kanal. +Dabei teilen all diese Anwendungen das gleiche Problem: Die Daten können nur durch einen (höchst Wahrscheinlichen) fehlerbehafteten Kanal empfangen werden. Es gibt keine andere Methode, an diese Daten zu kommen, als über diesen Kanal. - -In der Netzwerktechnik zum Beispiel ist es üblich, dass bei Paketverluste oder beschädigt empfangene Datenpakete diese einfach noch einmal inert wenigen Millisekunden angefordert werden können. +In der Netzwerktechnik zum Beispiel ist es üblich, dass bei Paketverluste oder beschädigt empfangene Datenpaketen diese einfach noch einmal innert wenigen Millisekunden angefordert werden können. In der Raumfahrt ist dies nicht möglich, da aufgrund der beschränkten Speichermöglichkeit die gesammelten Daten so rasch wie möglich zur Erde gesendet werden. Diese Daten wiederum brauchen aufgrund der grossen Distanz Stunden bis die Daten beim Empfänger ankommen. Fehlerhafte Daten kann also auf Grund der Zeitverzögerung nicht mehr angefordert werden. -Bei CDs oder DVDs gibt es zwar kein Zeitliches Problem, jedoch erschweren Kratzer, Verschmutzungen oder Produktionsfehler das Lesen einer solchen Disk. +Bei CDs oder DVDs gibt es zwar kein zeitliches Problem, jedoch erschweren Kratzer, Verschmutzungen oder Produktionsfehler das Lesen einer solchen Disk. Da vor allem Produktionsfehler und Kratzer irreversibel sind und die Disk nicht nach jedem Kratzer ersetzt werden muss, so wird die korrekte Ausgabe der gespeicherten Information durch die Fehlerkorrektur sichergestellt. -Ein ähnlicher Ansatz verfolgen QR-Codes, wobei die Information auch dann noch gelesen werden kann wenn der Code nicht mehr vollständig vorhanden ist. +Einen ähnlichen Ansatz verfolgen QR-Codes, wobei die Information auch dann noch gelesen werden kann wenn der Code nicht mehr vollständig vorhanden ist. %Wie man sieht, eignen sich Reed-Solomon-Codes vor allem für Anwendungen, bei der die Informationen nicht auf einen Anderen Weg beschafft werden kann. % @@ -33,7 +32,6 @@ Ein ähnlicher Ansatz verfolgen QR-Codes, wobei die Information auch dann noch g % da aufgrund der grossen Distanz Stunden vergehen können bis gesendete Daten auf der Erde empfangen werden kann. % - Obwohl alle diese Codes nach dem gleichen Prinzip arbeiten gibt es starke Unterschiede in deren Funktionsweise. Dies kommt vor allem daher, da die Codes nur Ressourcen zur Verfügung haben, die von der Hardware bereitstellt wird, auf denen die Codes implementiert wurden. Diese Codes bedienen sich daher verschiedener Tricks und Optimierungen um möglichst effizient zu arbeiten. @@ -75,8 +73,14 @@ Obwohl Reed-Solomon-Codes bereits in den 1960er entwickelt wurden fanden sie ers Codiert. Der Nachrichtenblock hat somit eine Länge von $255$ Zahlen, wovon $233$ als Nutzlast zur Verfügung stehen. Damit ist es möglich bis zu $11$ Fehler im Nachrichtenblock zu korrigieren. -Der Codierte Nachrichtenblock wird in kleinere Blöcke aufgeteilt, mit einem Faltungscode erneut Codiert und anschliessend gesendet. Ein Faltungscode ist wie ein Reed-Solomon-Code in der Lage Fehler zu korrigieren, Funktioniert aber nach einem ganz anderen Prinzip. -Durch diese doppelte Codierung wird eine äusserst hohe Übertragungssicherheit garantiert. +Der Codierte Nachrichtenblock wird in kleinere Blöcke aufgeteilt, mit einem Faltungscode erneut Codiert und anschliessend gesendet. +Ein Faltungscode ist wie ein Reed-Solomon-Code in der Lage Fehler zu korrigieren, +Codiert seine Information aber auf eine andere weise. Aus jedem unterteilten Block wird vor dem Versenden ein Paritätsbit erzeugt und dem Block angehängt. Anhand diesem Paritätsbit überprüft der Empfänger, ob bei der Übertragung der Block beschädigt wurde. Ist dies der Fall, wird der Block bei der Decodierung nicht beachtet. Diese so entstandenen ``Lücken'' im Datenstrom werden wiederum vom Reed-Solomon-Code korrigiert. Dieses Zusammenspiel beider Codes garantiert so eine hohe Robustheit gegenüber Übertragungsfeher. + +% +% Funktioniert aber nach einem ganz anderen Prinzip. +% +%Durch diese doppelte Codierung wird eine äusserst hohe Übertragungssicherheit garantiert. % %Dabei steht die Zahl 255 für grösse des Nachrichtenblocks, der die Anzahl 233 % @@ -107,13 +111,18 @@ Die Digital Video Disc funktioniert nach dem selben Konzept mit grösseren Codeb \begin{figure} \centering - \includegraphics[width=0.5\textwidth]{papers/reedsolomon/images/Compact_Disc} - \caption{CDs kamen 1982 auf den Markt. Sie funktioniert durch das ``einbrennen'' von Punkten und Strichen, die die Daten repräsentieren. Gelesen werden diese wiederum durch die Reflektion eines Lasers an diesen Punkten und Strichen.} + \subfigure[]{ + \includegraphics[width=0.45\textwidth]{papers/reedsolomon/images/Compact_Disc} + } + \subfigure[]{ + \includegraphics[width=0.45\textwidth]{papers/reedsolomon/images/Compact_Disc_zoomed_in} + } + \caption{CDs kamen 1982 auf den Markt. Sie funktioniert durch das Einpressen oder Einbrennen von Punkten und Strichen, die die Daten repräsentieren. Gelesen werden diese wiederum durch die Reflektion eines Lasers an diesen Punkten und Strichen.} \label{fig:cd} \end{figure} \subsection{QR-Codes} -Quick Response Codes oder auch QR-Codes funktionieren nach einem sehr ähnlichen Prinzip wie in unserem Beispiel der Abschnitte \ref{reedsolomon:section:codebsp} - \ref{reedsolomon:section:rekonstruktion} nur das QR-Codes in einem $\mathbb{F}_{256}$ Körper arbeiten. Die Physische Grösse eines Codes ist stark abhängig von der Grösse der Codierung sowie dem Fehlerkorrektur-Level. Es ist so auf dem ersten Blick nicht ersichtlich, wie viel Nutzinformationen ein Qr-Code enthält. Die QR-Codes in Abbildung \ref{fig:qr} zeigen jeweils die Gleiche Information mit unterschiedlichem Fehlerkorrektur-Level. Codes mit einem höheren Korrektur-Level können auch für Designer-Codes Zweckentfremdet werden. Dabei wird z.B. das Firmenlogo oder einen Schriftzug über den Qr-Code gelegt, ohne das die Funktion des Codes beeinträchtigt wird. Ein Beispiel dazu ist unter Abbildung \ref{fig:designqr} zu finden. +Quick Response Codes oder auch QR-Codes funktionieren nach einem sehr ähnlichen Prinzip wie in unserem Beispiel der Abschnitte \ref{reedsolomon:section:codebsp} - \ref{reedsolomon:section:rekonstruktion} nur das QR-Codes in einem $\mathbb{F}_{256}$ Körper arbeiten. Die physische Grösse eines Codes ist stark abhängig von der Menge an codierten Daten sowie dem verwendeten Fehlerkorrektur-Level. Es ist so auf dem ersten Blick nicht ersichtlich, wie viel Nutzinformationen ein Qr-Code enthält. Die QR-Codes in Abbildung \ref{fig:qr} zeigen jeweils die Gleiche Information mit unterschiedlichem Fehlerkorrektur-Level. Codes mit einem höheren Korrektur-Level können auch für Designer-Codes Zweckentfremdet werden. Dabei wird z.B. das Firmenlogo oder einen Schriftzug über den Qr-Code gelegt, ohne das die Funktion des Codes beeinträchtigt wird. Ein Beispiel dazu ist unter Abbildung \ref{fig:designqr} zu finden. % @@ -154,6 +163,6 @@ Quick Response Codes oder auch QR-Codes funktionieren nach einem sehr ähnlichen \subfigure[]{ \includegraphics[width=0.4\textwidth]{papers/reedsolomon/images/designer_qrcode} } - \caption{Während (a) noch ein unveränderter QR-Code repräsentiert, handelt es sich bei (b) nun um einen Designer-QR-Code. Beide Codes verfügen über einen mittleren Fehlerkorrektur-Level von theoretisch 15\%. Da bei (b) jetzt einen Teil des Codes durch ein Logo verdeckt wird, schränkt sich dadurch die Fehlerkorrekturfähigkeit je nach grösse des verdeckten Teils mehr oder weniger stark ein. Unser Designer-Code in (b) ist nur noch in der Lage etwa 9\% des Codes zu rekonstruieren.} + \caption{Während (a) noch einen unveränderten QR-Code repräsentiert, handelt es sich bei (b) nun um einen Designer-QR-Code. Beide Codes verfügen über einen mittleren Fehlerkorrektur-Level von theoretisch 15\%. Da bei (b) jetzt einen Teil des Codes durch ein Logo verdeckt wird, schränkt sich die Fehlerkorrekturfähigkeit je nach Grösse des verdeckten Teils mehr oder weniger stark ein. Unser Designer-Code in (b) ist nur noch in der Lage etwa 9\% des Codes zu rekonstruieren.} \label{fig:designqr} \end{figure} \ No newline at end of file diff --git a/buch/papers/reedsolomon/images/Compact_Disc_zoomed_in.png b/buch/papers/reedsolomon/images/Compact_Disc_zoomed_in.png new file mode 100644 index 0000000..69556d0 Binary files /dev/null and b/buch/papers/reedsolomon/images/Compact_Disc_zoomed_in.png differ diff --git a/buch/papers/reedsolomon/main.tex b/buch/papers/reedsolomon/main.tex index e68b947..ab4e4be 100644 --- a/buch/papers/reedsolomon/main.tex +++ b/buch/papers/reedsolomon/main.tex @@ -49,6 +49,7 @@ Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren \nocite{reedsolomon:voyager} \nocite{reedsolomon:cd_wiki} \nocite{reedsolomon:cd} +\nocite{reedsolomon:strichepunkte} \nocite{reedsolomon:qr_wiki} \nocite{reedsolomon:qr} %\nocite{reedsolomon:mendezmueller} diff --git a/buch/papers/reedsolomon/references.bib b/buch/papers/reedsolomon/references.bib index e0a75a8..b84b5a4 100644 --- a/buch/papers/reedsolomon/references.bib +++ b/buch/papers/reedsolomon/references.bib @@ -51,7 +51,7 @@ } @online{reedsolomon:cd, - title = {Funktionsweise des QR-Codes}, + title = {Abbildung einer CD}, url = {https://www.stickpng.com/img/electronics/compact-discs/stack-compact-disc}, date = {2021-07-19}, year = {2021}, @@ -59,6 +59,15 @@ day = {19} } +@online{reedsolomon:strichepunkte, + title = {Abbildung der Striche und Punkte einer CD}, + url = {https://www.researchgate.net/figure/The-readable-area-of-a-CD-is-magnified-in-order- to-see-the-pit-and-land-sizing-The_fig7_303401629}, + date = {2021-07-26}, + year = {2021}, + month = {7}, + day = {26} +} + @online{reedsolomon:qr_wiki, title = {Funktionsweise des QR-Codes}, url = {https://de.wikipedia.org/wiki/QR-Code}, -- cgit v1.2.1 From adb7f34e662733e831d1caa86eacb9fdf13b3eed Mon Sep 17 00:00:00 2001 From: Pascal Schmid <81317360+paschost@users.noreply.github.com> Date: Tue, 27 Jul 2021 08:45:43 +0200 Subject: =?UTF-8?q?Titel=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buch/papers/verkehr/main.tex | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/verkehr/main.tex b/buch/papers/verkehr/main.tex index 6348993..98d0581 100644 --- a/buch/papers/verkehr/main.tex +++ b/buch/papers/verkehr/main.tex @@ -3,8 +3,7 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Thema\label{chapter:verkehr}} -\lhead{Verkehrsfluss und Verkehrsnetze} +\chapter{Verkehrsfluss und Verkehrsnetze\label{chapter:verkehr}} \begin{refsection} \chapterauthor{Pascal Andreas Schmid und Robine Luchsinger} -- cgit v1.2.1 From 22d2b924b156f953409cd9f524501c7d71f7eb9b Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Tue, 27 Jul 2021 08:50:58 +0200 Subject: Some corrections from feedback --- buch/papers/punktgruppen/crystals.tex | 51 ++++++++++++++++++---------------- buch/papers/punktgruppen/piezo.tex | 52 +++++++++++++++++------------------ buch/papers/punktgruppen/symmetry.tex | 18 ++++++------ 3 files changed, 62 insertions(+), 59 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index 21e29c9..18b8395 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -1,5 +1,6 @@ \section{Kristalle} -%einleitung sollte noch an das ende von der Symmetrie angepasst werden +% TODO: einleitung sollte noch an das ende von der Symmetrie angepasst werden +% TODO: sich jeder => paper sprache Unter dem Begriff Kristall sollte sich jeder ein Bild machen können. Wir werden uns aber nicht auf sein Äusseres fokussieren, sondern was ihn im Inneren ausmacht. Die Innereien eines Kristalles sind glücklicherweise relativ einfach definiert. @@ -30,10 +31,11 @@ Sind die Vektoren \(\vec{a}_1\), \(\vec{a}_2\), \(\vec{a}_3\) gegeben, ist ein \subsection{Translationssymmetrie} Da sich das ganze Kristallgitter wiederholt, wiederholen sich auch dessen Eigenschaften periodisch mit den Grundvektoren. Sollte man sich auf einem Gitterpunkt in einem Kristall aufhalten, ist es unmöglich zu wissen, auf welchem Gitterpunkt man sich befindet, da die Umgebungen aller Punkte identisch sind. -Mit anderen Worten: Jedes Kristallgitter $ G $ ist \emph{Translationssymmetrisch} in der Translation +Mit anderen Worten: Jedes Kristallgitter $ G $ ist \emph{translationssymmetrisch} in der Translation \[ - \vec{Q}_i(G) = G + \vec{a}_i -\] wobei der Vektor $\vec{a}_i$ ein Grundvektor sein muss. + \vec{Q}_i(G) = G + \vec{a}_i, +\] +wobei der Vektor $\vec{a}_i$ ein Grundvektor sein muss. Da die Translationssymmetrie beliebig oft mit allen Grundvektoren angewendet werden kann, können wir auch sagen, dass alle Verschiebungen um eine Linearkombination der Vektoren $\vec{a}_1$ , $\vec{a}_2$ und $\vec{a}_3$ erlaubt sind oder kurz, um $\vec{r}$. @@ -62,7 +64,7 @@ solange wir ein unendlich grosses Kristallgitter verschieben. 90\(^{\circ}\), 120\(^{\circ}\) und 180\(^{\circ}\) - erlaubt. + m\"oglich. \end{satz} \begin{proof} @@ -78,9 +80,8 @@ solange wir ein unendlich grosses Kristallgitter verschieben. Für uns bedeutet dies lediglich, dass unser zweiter Punkt \(A'\) abgedreht wird. An der neuen Position \(B\) von \(A'\) muss also auch ein Punkt des Gitters sein, um die Rotationssymmetrie zu erfüllen. \item \(B\) ist unser Name für diesen neuen Punkt. - Da auch die Eigenschaften des Kristallgittes periodisch mit dem Gitter sein müssen, dürfen wir \(C_n\) auch auf \(A'\) anwenden. - Also wenden wir \(C_n\) invertiert\footnote{Eine Rotationssymmetrie muss auch in die inverse Richtung funktionieren. - Genauere Überlegungen hierzu werden dem Leser überlassen, da sich die Autoren nicht explizit mit dieser Frage Auseinander gesetzt haben.} + Da auch die Eigenschaften des Kristallgitters periodisch mit dem Gitter sein müssen, dürfen wir \(C_n\) auch auf \(A'\) anwenden. + Also wenden wir \(C_n\) invertiert\footnote{Eine Rotationssymmetrie muss auch in die inverse Richtung funktionieren.} auch auf \(A'\) an. Dies dreht \(A\) auf einen neuen Punkt. \item \(B'\) ist kein zufälliger Name für diesen neuen Punkt, denn wir wissen, dass zwischen allen Punkten eine Translationssymmetrie bestehen muss. @@ -89,14 +90,14 @@ solange wir ein unendlich grosses Kristallgitter verschieben. Mit den gegebenen Punkten lassen sich geometrische Folgerungen ziehen. Wir beginnen, indem wir die Länge der Verschiebung \(|\vec{Q}| = Q\) setzen und \(|\vec{Q}'| = Q'\). Aus Abbildung \ref{fig:punktgruppen:rot-geometry} ist ersichtlich, dass \(Q' = Q + 2x\). - Da \(\vec{Q}\) eine Translation um ein Grundvektor ist , muss \(\vec{Q}'\) ein ganzes vielfaches von \(\vec{Q}\) sein. - Demnach auch die Längen + Da \(\vec{Q}\) eine Translation um ein Grundvektor ist , muss \(\vec{Q}'\) ein ganzes Vielfaches von \(\vec{Q}\) sein. + Demnach ist auch die Länge \[ - Q' = nQ = Q + 2x + Q' = nQ = Q + 2x . \] - Die Strecke \(x\) lässt sich auch mit hilfe der Trigonometrie und dem angenommenen Rotationswinkel \(\alpha\) ausdrücken: + Die Strecke \(x\) lässt sich auch mit Hilfe der Trigonometrie und dem angenommenen Rotationswinkel \(\alpha\) ausdrücken: \[ - nQ = Q + 2Q\sin(\alpha - \pi/2) + nQ = Q + 2Q\sin(\alpha - \pi/2) . \] Wir können durch \(Q\) dividieren um unabhängig von der Läge des Grundvektors zu werden, was auch Sinn macht, da eine Skalierung eines Kristalles seine Symmetrieeigenschaften nicht tangiert. @@ -126,7 +127,7 @@ ein. \subsection{Kristallklassen} -Vorgehend wurde gezeigt, dass in einem zweidimensionalen Kristallgitter nicht alle Symmetrien möglich sind. +Im vorausgegangenen Abschnitt wurde gezeigt, dass in einem zweidimensionalen Kristallgitter nicht alle Symmetrien möglich sind. Mit weiteren ähnlichen Überlegungen kann gezeigt werden, dass Kristalle im dreidimensionalen Raum nur auf genau 32 Arten rein punktsymmetrische Symmetriegruppen bilden können. Diese 32 möglichen Symmetriegruppen scheinen durchaus relevant zu sein, denn sie werden unter anderem als Kristallklassen bezeichnet. Die 32 möglichen Kristallklassen sind auf Abbildung \ref{fig:punktgruppen:Kristallkassen} zu sehen. @@ -140,21 +141,23 @@ Vorgehend wurde gezeigt, dass in einem zweidimensionalen Kristallgitter nicht al \label{fig:punktgruppen:Kristallkassen} \end{figure} -\subsubsection{Schönflies-Symbilok} +\subsubsection{Schönflies-Symbolik} Jede der 32 Kristallklassen auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} ist mit ihrem zugehörigen Schöönflies-Symbol bezeichnet. Die Schönflies-Symbolik stammt von dem Mathematiker Arthur Moritz Schönflies, welcher sich unter anderem mit der Klasifizierung der Punktgruppen auseinandergesetzt hat. Er hat Untergruppen gebildet, welche als Grossbuchstaben in Abbildung \ref{fig:punktgruppen:Kristallkassen} zu sehen sind. Da nicht alle Symmetriegruppen in Kristallen möglich sind, werden nicht alle Untergruppen von Schönflies verwendet. - Es ist nur die Drehgruppe \(C\), Diedergruppe \(D\), Drehspiegelgruppe \(S\), Tetraedergruppe \(T\) und die Oktaedergruppe \(O\). - Für die eindeutige zuweisung in eine Kristallklasse werden noch identifizierende Merkmale als Subskript notiert. - Bei der Untergruppe \(C\) werden beispielsweise die möglichen Rotationssymmetrien gezeigt. - Dank Abschintt \ref{txt:punktgruppen:Translationssymmetrie} wissen wir, wieso auf \(C\) nur ganz bestimmte Subskripte folgen, weil das Subskript \(n\) von \(C_n\) zeigt, dass es sich um eine \(n\)-fache Rotationssymmetrie handelt. - Daher darf \(C_5\) auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} nicht vorkommen darf, da \(360^\circ/5 = 72^\circ\) was nach Abschnitt \ref{txt:punktgruppen:Translationssymmetrie} in einem Kristall keine mögliche Rotationssymmetrie ist. - Sind im Subskript Buchstaben, definieren diese weitere Symmetrieeigenschaften der Klasse. - Wie zum Beispiel ein Inversionszentrum\footnote{Ein Objekt mit Inversionszentrum ist Punktsymmetrisch im Inversionszentrum.} \(i\) oder eine horizontale\footnote{Als Orientierungspunkt wird die Symmetrieachse höchster Ordnung (\(n\)) als vertikal definiert} Spiegelachse \(h\). - Zu beachten ist jedoch, dass manche Symmetriegruppen mit mehreren Schönflies-Symbolen beschieben werden können. - \(C_{3i}\) beschreibt genau das selbe wie \(S_6\), da eine dreifache Rotationssymmetrie mit einem Inversionszentrum einer sechsfachen Drehspiegelsymmetrie entspricht. + \begin{itemize} + \item Es ist nur die Drehgruppe \(C\), Diedergruppe \(D\), Drehspiegelgruppe \(S\), Tetraedergruppe \(T\) und die Oktaedergruppe \(O\). + Für die eindeutige zuweisung in eine Kristallklasse werden noch identifizierende Merkmale als Subskript notiert. + Bei der Untergruppe \(C\) werden beispielsweise die möglichen Rotationssymmetrien gezeigt. + \item Dank Abschintt \ref{txt:punktgruppen:Translationssymmetrie} wissen wir, wieso auf \(C\) nur ganz bestimmte Subskripte folgen, weil das Subskript \(n\) von \(C_n\) zeigt, dass es sich um eine \(n\)-fache Rotationssymmetrie handelt. + Daher darf \(C_5\) auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} nicht vorkommen darf, da \(360^\circ/5 = 72^\circ\) was nach Abschnitt \ref{txt:punktgruppen:Translationssymmetrie} in einem Kristall keine mögliche Rotationssymmetrie ist. + \item Sind im Subskript Buchstaben, definieren diese weitere Symmetrieeigenschaften der Klasse. + Wie zum Beispiel ein Inversionszentrum\footnote{Ein Objekt mit Inversionszentrum ist Punktsymmetrisch im Inversionszentrum.} \(i\) oder eine horizontale\footnote{Als Orientierungspunkt wird die Symmetrieachse höchster Ordnung (\(n\)) als vertikal definiert} Spiegelachse \(h\). + \item Zu beachten ist jedoch, dass manche Symmetriegruppen mit mehreren Schönflies-Symbolen beschieben werden können. + \(C_{3i}\) beschreibt genau das selbe wie \(S_6\), da eine dreifache Rotationssymmetrie mit einem Inversionszentrum einer sechsfachen Drehspiegelsymmetrie entspricht. + \end{itemize} diff --git a/buch/papers/punktgruppen/piezo.tex b/buch/papers/punktgruppen/piezo.tex index 6defcdc..67e6214 100644 --- a/buch/papers/punktgruppen/piezo.tex +++ b/buch/papers/punktgruppen/piezo.tex @@ -1,6 +1,6 @@ \section{Piezoelektrizität} -Die Piezoelektrizität ist per Definition spannend. -Sie beschreibt die Eigenschaft, dass gewisse Kristalle eine elektrische Spannung erzeugen, wenn machanischer Druck auf sie ausgeübt wird. +%% TODO: improve this paragraph +Die Piezoelektrizität ist die spannende Eigenschaft, dass gewisse Kristalle eine elektrische Spannung erzeugen, wenn mechanischer Druck auf sie ausgeübt wird. \begin{figure} \centering @@ -10,10 +10,10 @@ Sie beschreibt die Eigenschaft, dass gewisse Kristalle eine elektrische Spannung \end{figure} \subsection{Polarisierung} -Piezoelektrizität basiert darauf, dass zwischen den Oberflächen des Kristalles ein Ladungsungleichgewicht entsteht siehe Abbildung\ref{fig:punktgruppen:basicPiezo}. +Piezoelektrizität basiert darauf, dass zwischen den Oberflächen des Kristalles ein Ladungsungleichgewicht entsteht (siehe Abbildung\ref{fig:punktgruppen:basicPiezo}). Dieses Ungleichgewicht resultiert, -weil durch den mechanischen Druck auf der einen Oberfläche des Kristalles positiv Ione näher an die Oberfläche gelangen, -wärend auf der gegenüberliegenden Oberfläche sich mehr negative Ionen Sammeln. +weil durch den mechanischen Druck auf der einen Oberfläche des Kristalles positiv Ionen näher an die Oberfläche gelangen, +wärend auf der gegenüberliegenden Oberfläche sich mehr negative Ionen sammeln. Das sich die atomare Struktur eines Kristalles unter Druck genau so verformt ist nicht bei jedem Kristall gegeben. Der Aufbau und somit auch die Symmetrie des Kristalles sind daher relevant für die Entstehung dieses Effektes. @@ -37,47 +37,45 @@ Der Aufbau und somit auch die Symmetrie des Kristalles sind daher relevant für \subsection{Atomarer Aufbau} Die Polarisation resultiert über eine gesamte Oberfläche eines Kristalles, entscheidend ist aber der atomare Aufbau. Wir wollen dazu die verschiedenen Kristallstrukturen auf Abbildung \ref{fig:punktgruppen:atomPiezo} diskutieren. -In Abbildung \ref{fig:punktgruppen:atomPiezo} gilt für alle Strukturen, dass rote Kreise Positive Ionen und blaue negative Ionen repräsentieren. -%liste oder anderes format?.. +In Abbildung \ref{fig:punktgruppen:atomPiezo} gilt für alle Strukturen, dass rote Kreise positive Ionen und blaue negative Ionen repräsentieren. Struktur \subref{fig:punktgruppen:atoms-piezo} zeigt ein piezoelektrisches Material in Ruhe. Struktur \subref{fig:punktgruppen:atoms-piezo-fv} ist dasselbe Kristallgitter, jedoch wird es senkrecht belastet. -Eingezeichnet ist auch das elektrische Feld, welches entsteht, weil mitlleren Ladungsträger weiter auseinander gerdrückt werden. -Als hilfe zur Vorstellung kann man \subref{fig:punktgruppen:atoms-piezo-fv} zwischen zwei leitende Platten setzen, so wird ersichtlich, +Eingezeichnet ist auch das elektrische Feld, welches entsteht, weil die mittleren Ladungsträger weiter auseinander gedrückt werden. +Als Hilfe zur Vorstellung kann man \subref{fig:punktgruppen:atoms-piezo-fv} zwischen zwei leitende Platten setzen, so wird ersichtlich, dass mit wachsendem Druck eine negative Ladung an die rechte Platte gedrückt wird, während sich die positiven Ionen weiter entfernen. +\par \subref{fig:punktgruppen:atoms-grid} ist nicht piezoelektrisch. -Dies wird ersichtlich, wenn man \subref{fig:punktgruppen:atoms-grid} unterdruck setzt und sich die Struktur zu \subref{fig:punktgruppen:atoms-grid-f} verformt. +Dies wird ersichtlich, wenn man \subref{fig:punktgruppen:atoms-grid} unter Druck setzt und sich die Struktur zu \subref{fig:punktgruppen:atoms-grid-f} verformt. Setzt man \subref{fig:punktgruppen:atoms-grid-f} gedanklich auch zwischen zwei leitende Platten, -scheint es als würden rechts mehr Positive Ionen in die Platte gedrückt werden und links umgekehrt. +scheint es als würden rechts mehr positive Ionen in die Platte gedrückt werden und links umgekehrt. Dies ist aber nicht mehr der Fall, wenn die Struktur sich nach oben und unten periodisch wiederholt. Struktur \subref{fig:punktgruppen:atoms-piezo-fh} zeigt \subref{fig:punktgruppen:atoms-piezo} in unter horizontaler Belastung. +\par Was zwischen \subref{fig:punktgruppen:atoms-piezo-fv} und \subref{fig:punktgruppen:atoms-piezo-fh} zu beobachten ist, ist dass das entstandene Ladungsdifferenz orthogonal zu der angelegten Kraft entsteht, im Gegensatz zu \subref{fig:punktgruppen:atoms-piezo-fh}. -Daraus kann man schlissen, dass \subref{fig:punktgruppen:atoms-piezo} keine Rotationssymmetrie von $90^\circ$ besitzen kann, -weil die Eigenschaften ändern bei einer $90^\circ$ Drehung. -Das Fehlen dieser Rotationssymmetrie kann mit betrachten von \subref{fig:punktgruppen:atoms-piezo} bestätigt werden. +Daraus kann man schliessen, dass \subref{fig:punktgruppen:atoms-piezo} keine Rotationssymmetrie von \(90^\circ\) besitzen kann, +weil die Eigenschaften ändern bei einer \(90^\circ\) Drehung. +Das Fehlen dieser Rotationssymmetrie kann in \subref{fig:punktgruppen:atoms-piezo} beobachtet werden. \subsection{Punktsymmetrie} -Piezoelektrische Kristalle können nicht Punktsymmetrisch sein. +Piezoelektrische Kristalle können nicht punktsymmetrisch sein. Kristallgitter, bei welchen eine Punktspiegelung eine symmetrische Operation ist, können keine piezoelektrische Kristalle bilden. -Auf Abbildung \ref{fig:punktgruppen:atomPiezo} ist bewusst \subref{fig:punktgruppen:atoms-piezo} ein nicht Punktsymmetrischer Kristall -mit einem Punktsymmetrischen \subref{fig:punktgruppen:atoms-grid}verglichen worden. -Als vereinfachte Erklärung kann mann sich wieder das Bild vor augen führen, eines Kristalles, +Auf Abbildung \ref{fig:punktgruppen:atomPiezo} ist bewusst \subref{fig:punktgruppen:atoms-piezo} ein nicht punktsymmetrischer Kristall +mit einem punktsymmetrischen \subref{fig:punktgruppen:atoms-grid} verglichen worden. +Als vereinfachte Erklärung kann man sich wieder das Bild eines Kristalles vor Augen führen, welcher unter Druck auf der einen Seite negative und der anderen Seite positive Ionen an seine Oberfläche verdrängt. -Spiegelt man nun den Kristall um den Gitterpunkt in der mitte des Kristalles, so würden die negativen Ionen auf den Positiven auf der anderen seite landen, +Spiegelt man nun den Kristall um den Gitterpunkt in der Mitte des Kristalles, so würden die negativen Ionen auf den positiven auf der anderen Seite landen, was der Definition einer Symmetrie deutlich widerspricht. \subsection{Vom Kristall zum Feuer} -Piezoelektrizität hat durchaus nutzen im Alltag. +Piezoelektrizität hat durchaus Nutzen im Alltag. Feuerzeuge welche nicht auf dem Prinzip beruhen einen Zündstein abzuschleifen, sonder ohne Verschleiss auf Knopfdruck einen Zündfunken erzeugen, basieren auf dem Prinzip der Piezoelektrizität. -Drückt der Nutzende auf den Zündknopf spannt sich eine Feder bis zu einer Konfigurierten Spannung. +Drückt der Nutzende auf den Zündknopf, spannt sich eine Feder bis zu eine konfigurierten Spannung. Wird vom Nutzenden weiter gedrückt entspannt sich die Feder schlagartig und beschleunigt mit der gespeicherten Energie ein Hammer, -welcher auf das Piezoelement aufschlägt. -Der augenblicklich hohe Druck sorgt an den Piezokontakten für eine eben so Kurze aber hohe elekrische Spannung. +welchen auf das Piezoelement aufschlägt. +Der augenblicklich hohe Druck sorgt an den Piezokontakten für eine eben so kurze aber hohe elektrische Spannung. Die Spannung reicht aus, um eine Funkenstrecke zu überwinden und so eine entflammbares Gas zu entzünden. -Sollten Sie also eines Tages in die Situation geraten, in welcher Sie zwei verschiedene Kristalle vor sich haben -und ein piezoelektrisches Feuerzeug bauen müssen, -wobei Sie aber wissen, dass einer eine Punktsymmetrie aufweist, -versuche sie es mit dem anderen. +Sollte der Leser eines Tages in die Situation geraten, in welcher er zwei verschiedene Kristalle vor sich hat und ein piezoelektrisches Feuerzeug bauen musst, wobei bekannt ist, dass einer eine Punktsymmetrie aufweist, empfiehlt es sich mit die anderen zu versuchen. diff --git a/buch/papers/punktgruppen/symmetry.tex b/buch/papers/punktgruppen/symmetry.tex index 0bb4aec..a5b2fe2 100644 --- a/buch/papers/punktgruppen/symmetry.tex +++ b/buch/papers/punktgruppen/symmetry.tex @@ -22,27 +22,29 @@ Wie wir jedoch später sehen werden, ist das Konzept der Symmetrie eigentlich vi In Abbildung \ref{fig:punktgruppen:geometry-example} haben wir einige Formen, die offensichtlich symmetrisch sind. Zum Beispiel hat das Quadrat eine Gerade, an deren es gespiegelt werden kann, ohne sein Aussehen zu verändern. Regelmässige Polygone mit \(n\) Seiten sind auch gute Beispiele, um eine diskrete Rotationssymmetrie zu veranschaulichen, was bedeutet, dass eine Drehung um einen Punkt um einen bestimmten Winkel \(360^\circ/n\) die Figur unverändert lässt. -Das letzte Beispiel auf der rechten Seite ist eine unendliche Rotationssymmetrie. Sie wird so genannt, weil es unendlich viele Werte für \(\alpha \in \mathbb{R}\) gibt, die die Form unverändert lassen. +Das letzte Beispiel auf der rechten Seite ist eine unendliche Rotationssymmetrie. Sie wird so genannt, weil es unendlich viele Werte für den Drehwinkel \(\alpha \in \mathbb{R}\) gibt, der die Form unverändert lassen. Ein Objekt kann mehr als nur eine Symmetrie aufweisen. -Als Beispiel, kann das Quadrat in Abbildung \ref{fig:punktgruppen:geometry-example} nicht nur um \(\sigma\) sondern auch Diagonal gespiegelt werden oder um \(90^\circ\) gedreht werden. +Als Beispiel, kann das Quadrat in Abbildung \ref{fig:punktgruppen:geometry-example} nicht nur um \(\sigma\) sondern auch diagonal gespiegelt werden oder um \(90^\circ\) gedreht werden. Fasst man die möglichen Symmetrien zusammen, entsteht eine Symmetriegruppe. \begin{definition}[Symmetriegruppe] - \(g\) und \(h\) sein umkehrbare Operationen, die ein mathematisches Objekt unverändert lassen. + %% TODO + Seien \(g\) und \(h\) umkehrbare Operationen, die ein mathematisches Objekt unverändert lassen. Die Komposition \(h\circ g\) definieren wir als die Anwendung der Operationen nacheinander. - Alle möglichen Operationen bilden unter Komposition eine Gruppe, die Symmetriegruppe genannt wird. + Alle möglichen Symmetrieoperationen bilden unter Komposition eine Gruppe, die Symmetriegruppe genannt wird. \end{definition} Eine Gruppe benötigt ausserdem auch zwingend ein neutrales Element, welches wir mit \(\mathds{1}\) bezeichnen. Die Anwendung der neutralen Operation ist gleichbedeutend damit, alles unverändert zu lassen. \(\mathds{1}\) ist auch äquivalent dazu, eine Operation anzuwenden und sie dann rückgängig zu machen (ihre Inverse anzuwenden). - Die Definition der Symmetriegruppe ist mit der Kompositionsoperation gegeben, es wird aber auch oft als Multiplikation geschrieben. +%% TODO + Die Definition der Symmetriegruppe ist mit der Kompositionsoperation gegeben, sie wird aber auch oft als Multiplikation geschrieben. Das liegt daran, dass in manchen Fällen die Zusammensetzung algebraisch durch eine Multiplikation berechnet wird. Die Verwendung einer multiplikativen Schreibweise ermöglicht es, einige Ausdrücke kompakter zu schreiben, z.B. durch Verwendung von Potenzen \(r^n = r\circ r \circ \cdots r\circ r\) für eine wiederholte Komposition. \begin{definition}[Zyklische Untergruppe, Erzeuger] - \(g\) sei ein Element einer Symmetriegruppe \(G\). + Sei \(g\) ein Element einer Symmetriegruppe \(G\). Alle möglichen Kompositionen von \(g\) und \(g^{-1}\) bilden eine sogenannte zyklische Untergruppe von \(G\), wobei \(g\) Erzeuger der Untergruppe genannt wird. Die von \(g\) erzeugte Untergruppe \(\langle g \rangle = \left\{ g^k : k \in \mathbb{Z} \right\}\) wird mit spitzen Klammern bezeichnet. \end{definition} @@ -51,7 +53,7 @@ durch Verwendung von Potenzen \(r^n = r\circ r \circ \cdots r\circ r\) für eine Das bedeutet, dass \(G\) die Elemente \(a, aa, aaa, \ldots\) sowie \(a^{-1}, a^{-1}a^{-1}, \ldots\) und ein neutrales Element \(\mathds{1} = aa^{-1}\) enthält. \end{beispiel} \begin{beispiel} - Als anschaulicheres Beispiel, können wir eine Zyklische Untergruppe des \(n\)-Gon formalisieren. + Als anschaulicheres Beispiel, können wir eine zyklische Untergruppe des \(n\)-Gon formalisieren. Wir bezeichnen mit \(r\) eine Drehung im Gegenuhrzeigersinn von \(360^\circ/n\) um einen Punkt. Diese Definition reicht aus, um die gesamte Symmetriegruppe \[ @@ -98,7 +100,7 @@ Dies ist jedoch keine Voraussetzung für eine Symmetrie, da es Symmetrien gibt, \subsection{Algebraische Symmetrien} Wir haben nun unseren Operationen Symbole gegeben, mit denen es tatsächlich möglich ist, Gleichungen zu schreiben. -Die anschliesende Frage ist dann, ob wir bereits mathematische Objekte haben, mit denen wir Gleichungen schreiben, die sich auf die gleiche Weise verhalten. +Die anschliessende Frage ist dann, ob wir bereits mathematische Objekte haben, mit denen wir Gleichungen schreiben, die sich auf die gleiche Weise verhalten. Die Antwort lautet natürlich ja. Um es formaler zu beschreiben, werden wir einige Begriffe einführen. \begin{definition}[Gruppenhomomorphismus] -- cgit v1.2.1 From 08ab4d022e3ec5aa8c598deedca5af8448bf7b1e Mon Sep 17 00:00:00 2001 From: Pascal Schmid <81317360+paschost@users.noreply.github.com> Date: Tue, 27 Jul 2021 08:52:01 +0200 Subject: =?UTF-8?q?Strukturierung=20der=20Einf=C3=BChrung=20angepasst?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buch/papers/verkehr/section1.tex | 2 -- 1 file changed, 2 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/verkehr/section1.tex b/buch/papers/verkehr/section1.tex index d96d450..d793e4e 100644 --- a/buch/papers/verkehr/section1.tex +++ b/buch/papers/verkehr/section1.tex @@ -1,7 +1,5 @@ -\section{Einführung} \label{section:verkehr/einfuehrung} -\subsection{Verkehrsnetze} Das Verkehrsnetz besteht aus allen Anlagen, auf oder unter der Erdoberfläche, auf denen eine räumliche Fortbewegung von Personen oder auch Gütern stattfindet. Verkehrsnetze sind ein Bestandteil der Verkehrsinfrastruktur, die auf topografischen Karten festgehalten werden. Sie umfassen den Schienenverkehr, alle Strassen und Wege, wie auch Flugplätze und alle dazugehörigen Bauwerke. Aus verkehrsgeografischer Sicht besteht das Verkehrsnetz aus Kanten, Knotenpunkten und dem Hinterland. Die Knotenpunkte werden auch hier durch die Kanten verbunden, die den Verkehrsstrom aufnehmen, wobei das Hinterland durch einzelne Knoten versorgt wird. Die Aufteilung in Kanten und Knotenpunkte ermöglicht eine Vereinfachung komplexer Verkehrsnetze, damit sie mittels der Graphentheorie untersucht werden können. Grundsätzlich können kurze Wege zwischen den Knotenpunkten das Ziel beim Aufbau eines Verkehrsnetzes sein. Es kann aber auch versucht werden, die Bau- und Unterhaltskosten des Verkehrsnetzes in einem gewissen Rahmen zu halten. Aus diesen Vorgaben ergibt sich dann, je nach dem was gewünscht wird, eine grob- oder feinmaschige Struktur des Netzes. -- cgit v1.2.1 From 6f673d1626cf26d479f22499eaa578a300637a8d Mon Sep 17 00:00:00 2001 From: Pascal Schmid <81317360+paschost@users.noreply.github.com> Date: Tue, 27 Jul 2021 08:54:49 +0200 Subject: =?UTF-8?q?Sections=20eine=20Stufe=20einger=C3=BCckt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buch/papers/verkehr/section1.tex | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/verkehr/section1.tex b/buch/papers/verkehr/section1.tex index d793e4e..ae13ac5 100644 --- a/buch/papers/verkehr/section1.tex +++ b/buch/papers/verkehr/section1.tex @@ -5,9 +5,9 @@ Aus verkehrsgeografischer Sicht besteht das Verkehrsnetz aus Kanten, Knotenpunkt Grundsätzlich können kurze Wege zwischen den Knotenpunkten das Ziel beim Aufbau eines Verkehrsnetzes sein. Es kann aber auch versucht werden, die Bau- und Unterhaltskosten des Verkehrsnetzes in einem gewissen Rahmen zu halten. Aus diesen Vorgaben ergibt sich dann, je nach dem was gewünscht wird, eine grob- oder feinmaschige Struktur des Netzes. Ziel ist aber ein möglichst wirtschaftliches und optimales Verkehrsnetz. -\subsection{Suchalgorithmen} +\section{Suchalgorithmen} -\subsubsection{Dijkstra-Algorithmus} +\subsection{Dijkstra-Algorithmus} Der Algorithmus von Dijkstra ist benannt nach seinem Erfinder dem Mathematik- und Infomratikprofessor Edsger Dijkstra. Den Algorithmus hat er im Jahr 1959 erfunden. Der Algorithmus von Dijkstra ist ein Greedy-Algorithmus (gieriger Algorithmus), der schrittweise einen Folgezustand auswählt, damit beim Zeitpunkt der Wahl der grösste Gewinn bzw. das beste Ergebnis erzielt werden kann. Trotz der Schnelligkeit der Greedy-Algorithmen, können viele Probleme nicht optimal gelöst werden. @@ -39,7 +39,7 @@ Iteration Diese drei Schritte werden so lange wiederholt bis gilt \begin{equation}M=\{\}\end{equation} -\subsubsection{A*-Algorithmus} +\subsection{A*-Algorithmus} Suchalgorithmen werden nach einfachen (uninformierte) und heuristischen (informierten) Algorithmen unterschieden. Während einfache Algorithmen den Suchraum intuitiv durchsuchen, beziehen heuristische Algorithmen Wissen über den Suchraum mit ein. Der A*-Algorithmus geht auf seine Erfinder Peter Hart, Nils Nilsson und Bertram Raphael zurück, die den Algorithmus erstmals im Jahr 1968 beschrieben. Der A*-Algorithmus ist ein heuristischer Suchalgorithmus, der den kürzesten Pfad zwischen zwei Knoten in einem Graphen mit positiven Kantengewichten berechnet. @@ -47,7 +47,7 @@ Im Gegensatz zu einfachen Suchalgorithmen, wird beim A*-Algorithmus eine Schätz Ausserdem findet der A*-Algorithmus immer eine optimale Lösung, sofern eine vorhanden ist. Der A*-Algorithmus wird als Verallgemeinerung gehandhabt und gilt als Erweiterung des Dijkstra-Algorithmus. -\subsubsection{Anwendung A*-Algorithmus} +\subsection{Anwendung A*-Algorithmus} Wie oben erwähnt basiert der A*-Algorithmus auf dem Shortest-Path-Algorithmus von Dijkstra. Gemäss dem Algorihtmus von Dijkstra werden von einem Startknoten aus die jeweiligen Nachbarknoten, die Nachbarknoten der Nachbarknoten usw. verarbeitet. Die Kantengewichte werden dabei aufsummiert und die Priorität wird auf die Kante gelegt, die das geringste Gewicht aufweist. Mit diesem Verfahren wird sichergestellt, dass die erste gefundene Lösung auch die optimalste Lösung darstellt.\\ Die Kantengewichte werden für jeden Knoten in Form einer Funktion dargestellt @@ -58,13 +58,13 @@ Somit gilt: \begin{equation}f(n)=g(n)+h(n)\end{equation}\\ Wie auch der Algorithmus von Dijkstra findet der A*-Algorithmus die optimalste Lösung. -\subsubsection{Floyd-Warshall-Algorithmus} +\subsection{Floyd-Warshall-Algorithmus} Der Floyd-Warshall-Algorithmus, auch Tripel-Algorithmus genannt, wurde erstmals im Jahr 1962 von seinen Namensgebern Robert Floyd und Stephen Warshall vorgestellt. Der Floyd-Warshall-Algorithmus sucht kürzeste Wege innerhalb eines Graphen. Er ermittelt aber nicht nur die Distanz zwischen zwei Knoten, sondern berechnet die kürzesten Wege zwischen allen Knotenpaaren eines gewichteten Graphen. Somit werden die kürzesten , beziehungsweise die optimalsten Wege zwischen allen Paaren von Knoten berechnet. Der Floyd-Warhshall-Algrithmus kann ausserdem mit negativen Kantengewichten umgehen, sofern der Graph aber keinen negativen Kreis (Zyklus) aufweist. Ist dies der Fall, führt der Algorithmus zu einem falschen Ergebnis. Ein Kreis (Zyklus) in einem Graphen ist ein Weg, bei dem Start- und Endpunkt den gleichen Knoten aufweisen. Dieser wird negativ, wenn die Summe der gewichteten Kanten kleiner als Null wird.\\ Der Floyd-Warshall-Algorithmus besteht grundsätzlich aus Floyd's Berechnung der kürzesten Distanzen zwischen zwei Knoten und Warshall's Konstruktion der kürzesten Wege. Werden diese beiden Teilgebiete zusammengefügt, ergibt sich der Floyd-Warshall-Algorithmus. -\subsubsection{Anwendung Floyd-Warshall-Algorithmus} +\subsection{Anwendung Floyd-Warshall-Algorithmus} Wie oben erwähnt, besteht der Floyd-Warshall-Algorithmus aus dem Teil von Floyd zur Berechnung der kürzesten Pfade und dem Teil von Warshall zur Konstruktion der kürzesten Pfade. @@ -78,11 +78,11 @@ Die aktuelle Gewichtung der Pfade wird mit \begin{equation}d[i, j]=min[d[i,j], d[i,k] + d[k,i]]\end{equation} ermittelt. -\subsubsection{Euklidische Heuristik} +\subsection{Euklidische Heuristik} Bei Verkehrsnetzen ist die euklidische Distanz eine gängige und zuverlässige Heurstik. Dabei wird zu den effektiven Reisekosten zum aktuellen Knoten die euklidische Distanz bis zum Zielknoten hinzuaddiert. Dadurch wird die Kostenfunktion konsequent nie überschätzt. Dies stellt eine Voraussetzung an eine zulässige Heuristik dar. Was bei einem physischen Verkehrsnetz einfach zu bewältigen ist, da Koordinaten von Verkehrsnetzen zur Berechnung der Distanz verwendet werden können, ist bei virtuellen Netzwerken (z.B. Servernetzen) entweder nicht möglich, oder nicht relevant. -\subsection{PageRank-Algorithmus} +\section{PageRank-Algorithmus} Der PageRank-Algorithmus wurde von den Gründern von Google, Larry Page und Sergey Brin im Jahr 1996 entwickelt und zum Patent angemeldet. Zwei Jahre später gründeten sie ihr Unternehmen Google Inc.. Beim PageRank-Algorithmus handelt es sich um den Algorithmus von Google, aus dem die Google-Matrix abgeleitet wird. Die Google-Matrix ist eine immens grosse Matrix mit Millionen Zeilen und Spalten, die für die schnelle und vor allem exakte Bestimmung der PageRanks (Gewichtung) eine grosse Bedeutung hat. -- cgit v1.2.1 From cf0c08db837b718b2e6844f39886c065e923d2fb Mon Sep 17 00:00:00 2001 From: Pascal Schmid <81317360+paschost@users.noreply.github.com> Date: Tue, 27 Jul 2021 09:04:15 +0200 Subject: Typo --- buch/papers/verkehr/section1.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'buch/papers') diff --git a/buch/papers/verkehr/section1.tex b/buch/papers/verkehr/section1.tex index ae13ac5..40c8edf 100644 --- a/buch/papers/verkehr/section1.tex +++ b/buch/papers/verkehr/section1.tex @@ -8,7 +8,7 @@ Ziel ist aber ein möglichst wirtschaftliches und optimales Verkehrsnetz. \section{Suchalgorithmen} \subsection{Dijkstra-Algorithmus} -Der Algorithmus von Dijkstra ist benannt nach seinem Erfinder dem Mathematik- und Infomratikprofessor Edsger Dijkstra. Den Algorithmus hat er im Jahr 1959 erfunden. +Der Algorithmus von Dijkstra ist benannt nach seinem Erfinder dem Mathematik- und Informatikprofessor Edsger Dijkstra. Den Algorithmus hat er im Jahr 1959 erfunden. Der Algorithmus von Dijkstra ist ein Greedy-Algorithmus (gieriger Algorithmus), der schrittweise einen Folgezustand auswählt, damit beim Zeitpunkt der Wahl der grösste Gewinn bzw. das beste Ergebnis erzielt werden kann. Trotz der Schnelligkeit der Greedy-Algorithmen, können viele Probleme nicht optimal gelöst werden. Vereinfacht wird beim Dijkstra-Algorithmus, ausgehend von einem Startknoten so lange dem kürzesten Pfad gefolgt, bis der Zielknoten erreicht wird. Dabei muss für jeden besuchten Knoten die Kostenfunktion als auch der Pfad dahin (vorheriger Knoten) gespeichert werden. -- cgit v1.2.1 From f102e60cf34adc068ccdc717b9c27d4179d208f8 Mon Sep 17 00:00:00 2001 From: Pascal Schmid <81317360+paschost@users.noreply.github.com> Date: Tue, 27 Jul 2021 09:15:21 +0200 Subject: =?UTF-8?q?Erl=C3=A4uterung=20zu=20A*?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buch/papers/verkehr/section1.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'buch/papers') diff --git a/buch/papers/verkehr/section1.tex b/buch/papers/verkehr/section1.tex index 40c8edf..05c53c5 100644 --- a/buch/papers/verkehr/section1.tex +++ b/buch/papers/verkehr/section1.tex @@ -45,7 +45,7 @@ Der A*-Algorithmus geht auf seine Erfinder Peter Hart, Nils Nilsson und Bertram Der A*-Algorithmus ist ein heuristischer Suchalgorithmus, der den kürzesten Pfad zwischen zwei Knoten in einem Graphen mit positiven Kantengewichten berechnet. Im Gegensatz zu einfachen Suchalgorithmen, wird beim A*-Algorithmus eine Schätzfunktion, die sogenannte Heuristik, verwendet. Dies ermöglicht ein zielgerichtetes Suchen und gleichzeitig wird die Laufzeit verringert. Ausserdem findet der A*-Algorithmus immer eine optimale Lösung, sofern eine vorhanden ist. -Der A*-Algorithmus wird als Verallgemeinerung gehandhabt und gilt als Erweiterung des Dijkstra-Algorithmus. +Der A*-Algorithmus gilt als Erweiterung des Dijkstra-Algorithmus. \subsection{Anwendung A*-Algorithmus} Wie oben erwähnt basiert der A*-Algorithmus auf dem Shortest-Path-Algorithmus von Dijkstra. Gemäss dem Algorihtmus von Dijkstra werden von einem Startknoten aus die jeweiligen Nachbarknoten, die Nachbarknoten der Nachbarknoten usw. verarbeitet. Die Kantengewichte werden dabei aufsummiert und die Priorität wird auf die Kante gelegt, die das geringste Gewicht aufweist. Mit diesem Verfahren wird sichergestellt, dass die erste gefundene Lösung auch die optimalste Lösung darstellt.\\ -- cgit v1.2.1 From 2bd577326030c895a37d9bacaec84d7d62e6fe8b Mon Sep 17 00:00:00 2001 From: Pascal Schmid <81317360+paschost@users.noreply.github.com> Date: Tue, 27 Jul 2021 09:16:20 +0200 Subject: Grammatik --- buch/papers/verkehr/section1.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'buch/papers') diff --git a/buch/papers/verkehr/section1.tex b/buch/papers/verkehr/section1.tex index 05c53c5..d18089d 100644 --- a/buch/papers/verkehr/section1.tex +++ b/buch/papers/verkehr/section1.tex @@ -48,7 +48,7 @@ Ausserdem findet der A*-Algorithmus immer eine optimale Lösung, sofern eine vor Der A*-Algorithmus gilt als Erweiterung des Dijkstra-Algorithmus. \subsection{Anwendung A*-Algorithmus} -Wie oben erwähnt basiert der A*-Algorithmus auf dem Shortest-Path-Algorithmus von Dijkstra. Gemäss dem Algorihtmus von Dijkstra werden von einem Startknoten aus die jeweiligen Nachbarknoten, die Nachbarknoten der Nachbarknoten usw. verarbeitet. Die Kantengewichte werden dabei aufsummiert und die Priorität wird auf die Kante gelegt, die das geringste Gewicht aufweist. Mit diesem Verfahren wird sichergestellt, dass die erste gefundene Lösung auch die optimalste Lösung darstellt.\\ +Wie oben erwähnt basiert der A*-Algorithmus auf dem Shortest-Path-Algorithmus von Dijkstra. Gemäss dem Algorihtmus von Dijkstra werden von einem Startknoten aus die jeweiligen Nachbarknoten, die Nachbarknoten der Nachbarknoten usw. verarbeitet. Die Kantengewichte werden dabei aufsummiert und die Priorität wird auf die Kante gelegt, die das geringste Gewicht aufweist. Mit diesem Verfahren wird sichergestellt, dass die erste gefundene Lösung auch eine optimale Lösung darstellt.\\ Die Kantengewichte werden für jeden Knoten in Form einer Funktion dargestellt \begin{equation}f(n)=g(n)\end{equation} mit -- cgit v1.2.1 From 3aafc071d7126b38c672047b95c1d584d52a3849 Mon Sep 17 00:00:00 2001 From: Pascal Schmid <81317360+paschost@users.noreply.github.com> Date: Tue, 27 Jul 2021 09:17:32 +0200 Subject: =?UTF-8?q?Erl=C3=A4uterung=20Floyd-Warshall?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buch/papers/verkehr/section1.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'buch/papers') diff --git a/buch/papers/verkehr/section1.tex b/buch/papers/verkehr/section1.tex index d18089d..f66896e 100644 --- a/buch/papers/verkehr/section1.tex +++ b/buch/papers/verkehr/section1.tex @@ -60,7 +60,7 @@ Wie auch der Algorithmus von Dijkstra findet der A*-Algorithmus die optimalste L \subsection{Floyd-Warshall-Algorithmus} Der Floyd-Warshall-Algorithmus, auch Tripel-Algorithmus genannt, wurde erstmals im Jahr 1962 von seinen Namensgebern Robert Floyd und Stephen Warshall vorgestellt. -Der Floyd-Warshall-Algorithmus sucht kürzeste Wege innerhalb eines Graphen. Er ermittelt aber nicht nur die Distanz zwischen zwei Knoten, sondern berechnet die kürzesten Wege zwischen allen Knotenpaaren eines gewichteten Graphen. Somit werden die kürzesten , beziehungsweise die optimalsten Wege zwischen allen Paaren von Knoten berechnet. Der Floyd-Warhshall-Algrithmus kann ausserdem mit negativen Kantengewichten umgehen, sofern der Graph aber keinen negativen Kreis (Zyklus) aufweist. Ist dies der Fall, führt der Algorithmus zu einem falschen Ergebnis. +Der Floyd-Warshall-Algorithmus sucht kürzeste Wege innerhalb eines Graphen. Er ermittelt aber nicht nur die Distanz zwischen zwei Knoten, sondern berechnet die kürzesten Wege zwischen allen Knotenpaaren eines gewichteten Graphen. Somit werden die günstigsten Wege zwischen allen Paaren von Knoten berechnet. Der Floyd-Warhshall-Algrithmus kann ausserdem mit negativen Kantengewichten umgehen, sofern der Graph aber keinen negativen Kreis (Zyklus) aufweist. Ist dies der Fall, führt der Algorithmus zu einem falschen Ergebnis. Ein Kreis (Zyklus) in einem Graphen ist ein Weg, bei dem Start- und Endpunkt den gleichen Knoten aufweisen. Dieser wird negativ, wenn die Summe der gewichteten Kanten kleiner als Null wird.\\ Der Floyd-Warshall-Algorithmus besteht grundsätzlich aus Floyd's Berechnung der kürzesten Distanzen zwischen zwei Knoten und Warshall's Konstruktion der kürzesten Wege. Werden diese beiden Teilgebiete zusammengefügt, ergibt sich der Floyd-Warshall-Algorithmus. -- cgit v1.2.1 From fc8e18376f9db8e43a81006a3c7bd00e167d08b5 Mon Sep 17 00:00:00 2001 From: Pascal Schmid <81317360+paschost@users.noreply.github.com> Date: Tue, 27 Jul 2021 09:34:00 +0200 Subject: =?UTF-8?q?Widerspruch=20aufgel=C3=B6st?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buch/papers/verkehr/section1.tex | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/verkehr/section1.tex b/buch/papers/verkehr/section1.tex index f66896e..389c78c 100644 --- a/buch/papers/verkehr/section1.tex +++ b/buch/papers/verkehr/section1.tex @@ -10,14 +10,13 @@ Ziel ist aber ein möglichst wirtschaftliches und optimales Verkehrsnetz. \subsection{Dijkstra-Algorithmus} Der Algorithmus von Dijkstra ist benannt nach seinem Erfinder dem Mathematik- und Informatikprofessor Edsger Dijkstra. Den Algorithmus hat er im Jahr 1959 erfunden. Der Algorithmus von Dijkstra ist ein Greedy-Algorithmus (gieriger Algorithmus), der schrittweise einen Folgezustand auswählt, damit beim Zeitpunkt der Wahl der grösste Gewinn bzw. das beste Ergebnis erzielt werden kann. -Trotz der Schnelligkeit der Greedy-Algorithmen, können viele Probleme nicht optimal gelöst werden. Vereinfacht wird beim Dijkstra-Algorithmus, ausgehend von einem Startknoten so lange dem kürzesten Pfad gefolgt, bis der Zielknoten erreicht wird. Dabei muss für jeden besuchten Knoten die Kostenfunktion als auch der Pfad dahin (vorheriger Knoten) gespeichert werden. Dadurch wird hingegen garantiert, dass, wenn der Zielknoten erreicht wird, auch der kürzeste Pfad gefunden wurde. Grundlegende Voraussetzung für den Dijkstra-Algorithmus ist die strikte Positivität der Kantengewichte. Andernfalls würde ein wiederholtes Ablaufen einer Kante mit negativem Gewicht zu einer stetigen Reduktion der Kostenfunktion führen, was zu einer unendlichen Schlaufe führen würde. Gegeben sei ein Netzwerk mit $n$ Knoten und dem Startknoten $a$. Alle Kanten sind mit $k(i, j)$ bewertet. -Gesucht wird der kürzeste Pfad zwischen dem Startknoten und allen übrigen Knoten im Netz. +Gesucht wird der kürzeste Pfad zwischen dem Startknoten und dem Knoten im Netz. $D(i)$ ist die kürzeste Distanz vom Startknoten $a$ zum Knoten $i, V(i)$ ist der unmittelbare Vorgängerknoten vom Knoten $i$ auf dem kürzesten Weg vom Startknoten $a$ zum Konten $i$ und die Menge $M$ ist die Menge einer bestimmten Auswahl an Knoten. Dabei gilt -- cgit v1.2.1 From 2b0d4d1b98f7bed5fa05e2ab6c30352390f22eef Mon Sep 17 00:00:00 2001 From: "User-PC\\User" Date: Tue, 27 Jul 2021 11:15:54 +0200 Subject: =?UTF-8?q?Diverse=20=C3=84nderungen=20/=20Korrekturen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buch/papers/spannung/Einleitung.tex | 27 ++++++++++++------------ buch/papers/spannung/main.tex | 2 +- buch/papers/spannung/teil0.tex | 23 +++++++++++---------- buch/papers/spannung/teil1.tex | 7 +++---- buch/papers/spannung/teil2.tex | 41 +++++++++++++++++++------------------ buch/papers/spannung/teil3.tex | 32 +++++++++++++++-------------- buch/papers/spannung/teil4.tex | 24 +++++++++++----------- 7 files changed, 80 insertions(+), 76 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/spannung/Einleitung.tex b/buch/papers/spannung/Einleitung.tex index b1588ff..8e0d36d 100644 --- a/buch/papers/spannung/Einleitung.tex +++ b/buch/papers/spannung/Einleitung.tex @@ -1,17 +1,18 @@ \section{Einleitung\label{spannung:section:Einleitung}} \rhead{Einleitung} Das Hook'sche Gesetz beschreibt die Beziehung von Spannung und Dehnung von linear-elastischen Materialien im Eindimensionalen. -In diesem Kapitel geht es darum das Hook'sche Gesetz im Dreidimensionalen zu beschreiben. +In diesem Kapitel geht es darum, das Hook'sche Gesetz im Dreidimensionalen zu beschreiben. Durch variable Krafteinwirkungen entstehen in jedem Punkt des Materials eine Vielzahl an unterschiedlichen Spannungen. In jedem erdenklichen Punkt im Dreidimensionalen herrscht daher ein entsprechender individueller Spannungszustand. Um das Hook'sche Gesetz für den 3D Spannungszustand formulieren zu können, reichen Skalare nicht aus. -Darum werden Vektoren, Matrizen und Tensoren zur Hilfe gezogen. +Darum werden Vektoren, Matrizen und Tensoren zu Hilfe gezogen. Mit diesen lässt sich eine Spannungsformel für den 3D Spannungszustand bilden. Diese Spannungsformel ist Grundlage für Computerprogramme und geotechnische Versuche, wie der Oedometer-Versuch. -Um die mathematische Untersuchung vorzunehmen, beschäftigt man sich zuerst mit den spezifischen Gegebenheiten und Voraussetzungen. -Ebenfalls gilt es ein paar wichtige Begriffe und deren mathematischen Zeichen einzuführen. -In diesem Kapitel gehen wir auch auf die Zusammenhänge von Spannung, Dehnungen und Verformungen an elastischen Materialien ein, +Um die mathematischen und physikalischen Berechnungen anwenden zu können, +müssen vorerst ein paar spezifische Bedingungen vorausgesetzt und Annahmen getroffen werden. +Ebenfalls gilt es, ein paar wichtige Begriffe und deren mathematischen Zeichen einzuführen. +In diesem Kapitel gehen wir auch auf die Zusammenhänge von Spannungen, Dehnungen und Verformungen an elastischen Materialien ein, wie sie in gängigen Lehrbüchern der Mechanik oder der Geotechnik behandelt werden, z.~B.~\cite{spannung:Grundlagen-der-Geotechnik}. \section{Spannungsausbreitung\label{spannung:section:Spannungsausbreitung}} @@ -29,7 +30,7 @@ Belastet man den Boden mit einer Spannung so wird diese in den Boden geleitet und von diesem kompensiert. Im Boden entstehen unterschiedlich hohe Zusatzspannungen. Diese Zusatzspannung breitet sich räumlich im Boden aus. -Im Falle einer konstanten Flächenlast $\sigma$ siehe Abbildung~\ref{spannung:Bild4} breitet sich die Zusatzspannung zwiebelartig aus. +Im Falle einer konstanten Flächenlast $\sigma$ siehe Abbildung~\ref{fig:Bild4} breitet sich die Zusatzspannung zwiebelartig aus. \begin{figure} \centering @@ -38,11 +39,11 @@ Im Falle einer konstanten Flächenlast $\sigma$ siehe Abbildung~\ref{spannung:Bi \label{fig:Bild4} \end{figure} -Mit der Tiefe $t$ nimmt diese permanent ab (siehe Abbildung~\ref{spannung:Bild5}). -Wie diese Geometrie der Ausbreitung ist, kann durch viele Modelle und Ansätze näherungsweise beschrieben werden. +Mit der Tiefe $t$ nimmt diese permanent ab (siehe Abbildung~\ref{fig:Bild5}). +Wie diese Geometrie der Ausbreitung aussieht, kann durch viele Modelle und Ansätze näherungsweise beschrieben werden. Diese Zusatzspannung $\sigma$ ist im Wesentlichen abhängig von $(x,y,t)$. Je nach Modell werden noch andere Parameter berücksichtigt. -Das können beispielsweise jenste Bodenkennwerte oder auch der Wassergehalt sein. +Das können beispielsweise verschiedene Bodenkennwerte oder auch der Wassergehalt sein. \begin{figure} \centering @@ -72,18 +73,18 @@ berechnet werden mit: t &= \text{Tiefe [\si{\meter}]} \\ s &= \text{Setzung, Absenkung [m].} \end{align*} -Diese Zusammenhänge sind wie erwähnt unter anderem im Lehrbuch [\cite{spannung:Grundlagen-der-Geotechnik}] beschrieben. +Diese Zusammenhänge sind wie erwähnt unter anderem im Lehrbuch \cite{spannung:Grundlagen-der-Geotechnik} beschrieben. In der praktischen Geotechnik wird man allerdings weitaus schwierigere Situationen antreffen. -Ein Beispiel wäre eine Baugrube mit einem Baugrubenabschluss, wo ein Teil des Bodens abgetragen ist (siehe Abbildung~\ref{spannung:Bild3}). +Ein Beispiel wäre eine Baugrube mit einem Baugrubenabschluss, wo ein Teil des Bodens abgetragen ist (siehe Abbildung~\ref{fig:Bild3}). Die Ausbreitung der Zusatzspannung $\sigma(x,y,t)$ würde hier deutlich komplizierter ausfallen. Dies bedeutet auch eine komplexere Setzung der Bodenoberfläche infolge einer Flächenlast $\sigma$. Aus allen zusätzlichen Spannungen müssen die adäquaten Dehnungen mit Hilfe einer Spannungsgleichung berechnet werden. Diese beruht auf Annahmen nach Hooke auf einem linear-elastischen Boden. -Generell wird im Ingenieurwesen versucht Phänomene möglichst nach dem Hook'schen Gesetz abbilden zu können. +Generell wird im Bauingenieurwesen oder auch im Maschinenbau versucht, manche Phänomene möglichst nach dem Hook'schen Gesetz abbilden zu können. \begin{figure} \centering \includegraphics[width=0.45\linewidth,keepaspectratio]{papers/spannung/Grafiken/Bild3.png} - \caption{Beispiel eines Lastauftrags auf den Boden bei einer komplexeren Situation, welches kompliziertere Spannungsausbreitung zur Folge hat} + \caption{Beispiel eines Lastauftrags auf den Boden bei einer komplexeren Situation, welche kompliziertere Spannungsausbreitung zur Folge hat} \label{fig:Bild3} \end{figure} diff --git a/buch/papers/spannung/main.tex b/buch/papers/spannung/main.tex index bbdf730..d2aeda9 100644 --- a/buch/papers/spannung/main.tex +++ b/buch/papers/spannung/main.tex @@ -3,7 +3,7 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Thema\label{chapter:spannung}} +\chapter{Dreidimensionaler Spannungszustand\label{chapter:spannung}} \lhead{Dreiachsiger Spannungszustand} \begin{refsection} \chapterauthor{Adrian Schuler und Thomas Reichlin} diff --git a/buch/papers/spannung/teil0.tex b/buch/papers/spannung/teil0.tex index 7647252..089c28e 100644 --- a/buch/papers/spannung/teil0.tex +++ b/buch/papers/spannung/teil0.tex @@ -1,9 +1,10 @@ \section{Der Spannungszustand\label{spannung:section:Der Spannungsustand}} \rhead{Der Spannungszustand} -Ein Spannungszustand ist durch alle Spannungen, welche in einem beliebigen Punkt im Körper wirken, definiert (siehe Abbildung~\ref{spannung:Bild2}). +Ein Spannungszustand ist durch alle Spannungen, welche in einem beliebigen Punkt im Körper wirken, definiert (siehe Abbildung~\ref{fig:Bild2}). Änderungen der äusseren Kräfte verändern die inneren Spannungszustände im Material. -Um alle Spannungen eines Punktes darstellen zu können, wird ein infinitesimales Bodenelement in Form eines Würfels modellhaft vorgestellt. -Man spricht auch von einem Elementarwürfel, da dieser elementar klein ist. +Um alle Spannungen eines Punktes darstellen zu können, +stellt man sich modellhaft ein infinitesimales Bodenelement in Form eines Würfels vor. +Man spricht auch von einem Elementarwürfel. \begin{figure} \centering @@ -15,19 +16,19 @@ Man spricht auch von einem Elementarwürfel, da dieser elementar klein ist. Es werden jeweils drei Seiten dieses Würfels betrachtet, wobei die drei gegenüberliegenden Seiten im Betrag die selben Spannungen aufweisen, sodass der Elementarwürfel im Gleichgewicht ist. Wäre dieses Gleichgewicht nicht vorhanden, käme es zu Verschiebungen und Drehungen. -Das infinitesimale Bodenteilchen hat die Koordinaten $1$, $2$, $3$. +Das infinitesimale Bodenteilchen hat die Koordinatenachsen $1$, $2$, $3$. Veränderungen der Normalspannungen können durch Schubspannungen kompensiert werden und umgekehrt. -So sind insgesamt neun verschiedene Spannungen möglich, wobei drei Normal- und sechs Schubspannungen sind. +So sind insgesamt neun verschiedene Spannungen möglich, konkret sind dies drei Normal- und sechs Schubspannungen. Normalspannungen wirken normal (mit rechtem Winkel) zur angreifenden Fläche und Schubspannungen parallel zur angreifenden Fläche. Alle Beträge dieser neun Spannungen am Elementarwürfel bilden den Spannungszustand. -Daraus können die äquivalenten Dehnungen $\varepsilon$ mit Hilfe des Hook'schen Gesetz berechnet werden. +Daraus können die äquivalenten Dehnungen $\varepsilon$ mit Hilfe des Hook'schen Gesetzes berechnet werden. Daher gibt es auch den entsprechenden Dehnungszustand. \section{Spannungszustand\label{spannung:section:Spannungsustand}} \rhead{Spannungszustand} -Im einachsigen Spannungszustand herrscht nur die Normalspannung $\sigma_{11}$ (siehe Abbildung~\ref{spannung:Bild1}). +Im einachsigen Spannungszustand herrscht nur die Normalspannung $\sigma_{11}$ (siehe Abbildung~\ref{fig:Bild1}). Das Hook'sche Gesetz beschreibt genau diesen 1D Spannungszustand. Nach Hooke gilt: \[ @@ -59,7 +60,7 @@ mit A &= \text{Fläche [\si{\meter\squared}].} \end{align*} Diese Beziehung gilt bei linear-elastischen Materialien, welche reversible Verformungen zulassen. -Es ist praktisch die relative Dehnung $\varepsilon$ anzugeben und nicht eine absolute Längenänderung $\Delta l$. +Es ist praktisch, die relative Dehnung $\varepsilon$ anzugeben und nicht eine absolute Längenänderung $\Delta l$. \begin{figure} \centering \includegraphics[width=0.35\linewidth,keepaspectratio]{papers/spannung/Grafiken/Bild1.png} @@ -73,10 +74,10 @@ Mithilfe vom Elastizitätsmodul $E$ als Proportionalitätskonstante lässt sich E\cdot\varepsilon \] beschreiben. -Im Falle, dass $E$ nicht konstant ist, kann dieser näherungsweise durch +Im Falle, dass $E$ nicht konstant ist, wird dieser durch \[ E = -\frac{\Delta\sigma}{\Delta\varepsilon} +\frac{\text{d}\sigma}{\text{d}\varepsilon} \] -ausgedrückt werden. \ No newline at end of file +ausgedrückt. \ No newline at end of file diff --git a/buch/papers/spannung/teil1.tex b/buch/papers/spannung/teil1.tex index 74516c1..647b452 100644 --- a/buch/papers/spannung/teil1.tex +++ b/buch/papers/spannung/teil1.tex @@ -1,8 +1,8 @@ \section{Skalare, Vektoren, Matrizen und Tensoren\label{spannung:section:Skalare,_Vektoren,_Matrizen_und_Tensoren}} \rhead{Skalare, Vektoren, Matrizen und Tensoren} -Der Begriff Tensor kann als Überbegriff, der mathematischen Objekte Skalar, Vektor und Matrix, betrachtet werden. +Der Begriff Tensor kann als Überbegriff der mathematischen Objekte Skalar, Vektor und Matrix, betrachtet werden. Allerdings sind noch höhere Stufen dieser Objekte beinhaltet. -Ein Skalar, ein Vektor oder eine Matrix ist daher auch ein Tensor. +Skalare, Vektoren oder Matrizen sind daher auch Tensoren. Ein Skalar ist ein Tensor 0. Stufe. Mit einem Vektor können mehrere Skalare auf einmal beschrieben werden. Ein Vektor hat daher die Stufe 1 und ist höherstufig als ein Skalar. @@ -14,11 +14,10 @@ Jede Stufe von Tensoren verlangt andere Rechenregeln. So zeigt sich auch der Nachteil von Tensoren mit Stufen höher als 2. Man ist also bestrebt höherstufige Tensoren mit Skalaren, Vektoren oder Matrizen zu beschreiben. -Der Begriff Tensor wurde 1840 von Rowan Hamilton in die Mathematik eingeführt. +In den 40er Jahren vom 19. Jahrhundert wurde der Begriff Tensor von Rowan Hamilton in die Mathematik eingeführt. James Clerk Maxwell hat bereits mit Tensoren operiert, ohne den Begriff Tensor gekannt zu haben. Erst Woldemar Voigt hat den Begriff in die moderne Bedeutung von Skalar, Matrix und Vektor verallgemeinert. Er hat in der Elastizitätstheorie als erstes Tensoren eingesetzt und beschrieben. Auch Albert Einstein hat solche Tensoren eingesetzt, um in der Relativitätstheorie die Änderung der 4D Raumzeit beschreiben zu können. \cite{spannung:Tensor} -\cite{spannung:Voigtsche-Notation} diff --git a/buch/papers/spannung/teil2.tex b/buch/papers/spannung/teil2.tex index 6326eab..8620afe 100644 --- a/buch/papers/spannung/teil2.tex +++ b/buch/papers/spannung/teil2.tex @@ -3,7 +3,7 @@ Durch komplexe Spannungsausbreitungen im Boden entstehen im 3D Spannungszustand unterschiedliche Normal- und Schubspannungen. \begin{figure} \centering - \includegraphics[width=0.4\linewidth,keepaspectratio]{papers/spannung/Grafiken/infinitesimalerWuerfel.png} + \includegraphics[width=0.30\linewidth,keepaspectratio]{papers/spannung/Grafiken/infinitesimalerWuerfel.png} \caption{Beispiel eines Spannungszustandes; Vergrösserung eines infinitesimalen Bodenteilchen} \label{fig:infinitesimalerWuerfel} \end{figure} @@ -49,7 +49,7 @@ Der Dehnungstensor ist ebenfalls ein Tensor 2. Stufe und kann somit auch als $3\ dargestellt werden und beschreibt den gesamten Dehnungszustand. Der Spannungs- und Dehnungstensor 2. Stufe kann je in einen Tensor 1. Stufe überführt werden, welches ein Spaltenvektor ist. -Gemäss der Hadamard-Algebra dürfen Zeile um Zeile in eine Spalte notiert werden, sodass es einen Spaltenvektor ergibt. +Man darf Zeile um Zeile in eine Spalte notieren, sodass es einen Spaltenvektor ergibt. So ergibt sich der Spannungsvektor \[ @@ -79,7 +79,7 @@ So ergibt sich der Spannungsvektor \sigma_{33} \end{pmatrix} \] -und Dehnungsvektor +und der Dehnungsvektor \[ \overline{\varepsilon} = @@ -140,14 +140,6 @@ C_{3311} & C_{3312} & C_{3313} & C_{3321} & C_{3322} & C_{3323} & C_{3331} & C_{ \end{pmatrix} \] geschrieben werden kann. -Dieser Elastizitätstensor muss für isotrope Materialien zwingend symmetrisch sein. -Folglich gilt: -\[ -\overline{\overline{C}} -= -\overline{\overline{C}}~^{T} -. -\] Die allgemeine Spannungsgleichung lautet nun: \[ \vec\sigma @@ -155,8 +147,7 @@ Die allgemeine Spannungsgleichung lautet nun: \overline{\overline{C}}\cdot\vec{\varepsilon} . \] - -Als Indexnotation +Sie kann ebenfalls als Indexnotation \[ \sigma_{ij} = @@ -164,7 +155,15 @@ Als Indexnotation \sum_{l=1}^3 C_{ijkl}\cdot\varepsilon_{kl} \] -kann dies ebenfalls geschrieben werden. +geschrieben werden. +Der Elastizitätstensor muss für isotrope Materialien zwingend symmetrisch sein. +Folglich gilt: +\[ +\overline{\overline{C}} += +\overline{\overline{C}}~^{T} +. +\] Die Konstanten $C$ werden nun nach dem Hook'schen Gesetz mit Hilfe des Elastizitätsmoduls $E$ definiert. Da dieser Modul durch die eindimensionale Betrachtung definiert ist, @@ -221,7 +220,7 @@ definiert ist. Trägt man die Konstanten in die Matrix ein, ergibt sich \end{pmatrix} . \] -Die Normalspannung $\sigma_{22}$ lässt sich exemplarisch als +Die Normalspannung $\sigma_{22}$ lässt sich zum Beispiel als \[ \sigma_{22} = @@ -229,11 +228,13 @@ Die Normalspannung $\sigma_{22}$ lässt sich exemplarisch als \] berechnen. +Reduzierte Spannungs- und Dehnungsgleichungen + Man betrachte nun die Eigenschaften des Elastizitätstensors. Dieser ist quadratisch und symmetrisch, die verschiedenen Einträge wechseln sich aber miteinander ab. Es ergeben sich keine Blöcke mit einheitlichen Einträgen. -Allerdings weiss man, dass im isotropen Boden der Spannungs-, Dehnungs- und daher auch Elastizitätstensor symmetrisch sind. +Allerdings weiss man, dass im isotropen Boden der Spannungs-, Dehnungs- und daher auch der Elastizitätstensor symmetrisch sind. Wäre dem nicht so, würde sich das Material je nach Richtung unterschiedlich elastisch verhalten. Diese Symmetrie setzt daher voraus, dass \[ @@ -399,7 +400,7 @@ Somit lässt sich die reduzierte allgemeine Spannungsgleichung mit \] beschreiben. Die Konstanten $C$ werden wieder nach dem Hook'schen Gesetz definiert. -Dies ergibt die Spannungsformel, welche weit möglichst vereinfacht ist: +Dies ergibt die Spannungsgleichung, welche weit möglichst vereinfacht ist: \begin{equation} \begin{pmatrix} \sigma_{11}\\ @@ -433,7 +434,7 @@ Dies ergibt die Spannungsformel, welche weit möglichst vereinfacht ist: Im Elastizitätstensor fallen zwei $3\times3$ Blöcke auf, welche nur Einträge mit $0$ haben. Der Tensor besagt also, dass diese jeweiligen Dehnungen keinen Einfluss auf unsere Spannung haben. -Man sieht nun auch ganz gut, dass sich im Vergleich zu der allgemeinen Spannungsgleichung, die Einträge verschoben haben. +Man sieht nun auch ganz gut, dass sich im Vergleich zu der allgemeinen Spannungsgleichung die Einträge verschoben haben. Da nach Voigt zuerst die Normalspannungen und anschliessend die Schubspannungen notiert worden sind, ergeben sich die $3\times3$ Blöcke. Man betrachte als Beispiel die Berechnung von $\sigma_{33}$. @@ -441,8 +442,8 @@ Es ist ersichtlich, dass die Schubdehnungen keinen Einfluss auf $\sigma_{33}$ ha Der Einfluss der zu $\sigma_{33}$ äquivalenten Dehnung $\varepsilon_{33}$ hat den grössten Einfluss. Die anderen Normalspannungen $\sigma_{11}$ und $\sigma_{22}$ haben einen unter anderem mit $\nu$ korrigierten Einfluss. -Von $\overline{\overline{C}}$ bildet man noch die inverse Matrix $\overline{\overline{C}}\mathstrut^{-1}$ um die Gleichung umstellen zu können. -Dadurch erhält man die Dehnungsgleichung: +Von $\overline{\overline{C}}$ bildet man die inverse Matrix $\overline{\overline{C}}\mathstrut^{-1}$, mithilfe des Gauss - Jordan Algorithmus, um die Gleichung umstellen zu können. +Durch einige Berechnungsschritte erhält man die Dehnungsgleichung: \[ \vec{\varepsilon} diff --git a/buch/papers/spannung/teil3.tex b/buch/papers/spannung/teil3.tex index 3e456c3..a9080ea 100644 --- a/buch/papers/spannung/teil3.tex +++ b/buch/papers/spannung/teil3.tex @@ -30,7 +30,7 @@ q \label{spannung:Invariante_q} . \end{equation} -Diese Zusammenhänge werden im Skript [\cite{spannung:Stoffgesetze-und-numerische-Modellierung-in-der-Geotechnik}] aufgezeigt. +Diese Zusammenhänge werden im Skript \cite{spannung:Stoffgesetze-und-numerische-Modellierung-in-der-Geotechnik} aufgezeigt. Die hydrostatische Spannung $p$ kann gemäss Gleichung \eqref{spannung:Invariante_p} als \[ p @@ -38,28 +38,28 @@ p \frac{\sigma_{11}+2\sigma_{33}}{3} \] vereinfacht werden. -Die deviatorische Spannung $q$ wird gemäss Gleichung \eqref{spannung:Invariante_q}als +Die deviatorische Spannung $q$ wird gemäss Gleichung \eqref{spannung:Invariante_q} als \[ q = \sigma_{11}-\sigma_{33} \] -vereinfacht. Man kann $p$ als Isotrop und $q$ als Schub betrachten. +vereinfacht. Man kann $p$ als Druck und $q$ als Schub betrachten. -Die Invarianten können mit der Spannungsformel \eqref{spannung:Spannungsgleichung} berechnet werden. +Die Invarianten $p$ und $q$ können mit der Spannungsgleichung \eqref{spannung:Spannungsgleichung} berechnet werden. Durch geschickte Umformung dieser Gleichung, lassen sich die Module als Faktor separieren. Dabei entstehen spezielle Faktoren mit den Dehnungskomponenten. So ergibt sich \[ -\overbrace{\frac{\sigma_{11}+2\sigma_{33}}{3}}^{p} +\overbrace{\frac{\sigma_{11}+2\sigma_{33}}{3}}^{\displaystyle{p}} = -\frac{E}{3(1-2\nu)} \overbrace{(\varepsilon_{11} - 2\varepsilon_{33})}^{\varepsilon_{v}} +\frac{E}{3(1-2\nu)} \overbrace{(\varepsilon_{11} - 2\varepsilon_{33})}^{\displaystyle{{\varepsilon_{v}}}} \] und \[ -\overbrace{\sigma_{11}-\sigma_{33}}^{q} +\overbrace{\sigma_{11}-\sigma_{33}}^{\displaystyle{q}} = -\frac{3E}{2(1+\nu)} \overbrace{\frac{2}{3}(\varepsilon_{11} - \varepsilon_{33})}^{\varepsilon_{s}} +\frac{3E}{2(1+\nu)} \overbrace{\frac{2}{3}(\varepsilon_{11} - \varepsilon_{33})}^{\displaystyle{\varepsilon_{s}}} . \] Die Faktoren mit den Dehnungskomponenten können so mit @@ -79,8 +79,8 @@ eingeführt werden, mit \varepsilon_{v} &= \text{Hydrostatische Dehnung [-]} \\ \varepsilon_{s} &= \text{Deviatorische Dehnung [-].} \end{align*} -Die hydrostatische Dehnung $\varepsilon_{v}$ kann mit einer Kompression verglichen werden. -Die deviatorische Dehnung $\varepsilon_{s}$ kann mit einer Verzerrung verglichen werden. +Die hydrostatische Dehnung $\varepsilon_{v}$ kann mit einer Kompression und +die deviatorische Dehnung $\varepsilon_{s}$ mit einer Verzerrung verglichen werden. Diese zwei Gleichungen kann man durch die Matrixschreibweise \begin{equation} @@ -90,8 +90,8 @@ Diese zwei Gleichungen kann man durch die Matrixschreibweise \end{pmatrix} = \begin{pmatrix} - \frac{3E}{2(1+\nu)} & 0 \\ - 0 & \frac{E}{3(1-2\nu)} + \displaystyle{\frac{3E}{2(1+\nu)}} & 0 \\ + 0 & \displaystyle{\frac{E}{3(1-2\nu)}} \end{pmatrix} \begin{pmatrix} \varepsilon_{s}\\ @@ -100,9 +100,11 @@ Diese zwei Gleichungen kann man durch die Matrixschreibweise \label{spannung:Matrixschreibweise} \end{equation} vereinfachen. -Man hat so eine Matrix multipliziert mit einem Vektor und erhält einen Vektor. -Änderungen des Spannungszustandes können mit dieser Gleichung vollumfänglich erfasst werden. +Änderungen des Spannungszustandes können mit diesen Gleichungen vollumfänglich erfasst werden. +Diese Spannungsgleichung mit den zwei Einträgen ($p$ und $q$) ist gleichwertig +wie die ursprüngliche Spannungsgleichung mit den neun Einträgen +($\sigma_{11}$, $\sigma_{12}$, $\sigma_{13}$, $\sigma_{21}$, $\sigma_{22}$, $\sigma_{23}$, $\sigma_{31}$, $\sigma_{32}$, $\sigma_{33}$). Mit dieser Formel \eqref{spannung:Matrixschreibweise} lassen sich verschieden Ergebnisse von Versuchen analysieren und berechnen. -Ein solcher Versuch, den oft in der Geotechnik durchgeführt wird, ist der Oedometer-Versuch. +Ein solcher Versuch, der oft in der Geotechnik durchgeführt wird, ist der Oedometer-Versuch. Im nächsten Kapitel wird die Anwendung der Matrix an diesem Versuch beschrieben. diff --git a/buch/papers/spannung/teil4.tex b/buch/papers/spannung/teil4.tex index 2f2e4ce..00b2d4f 100644 --- a/buch/papers/spannung/teil4.tex +++ b/buch/papers/spannung/teil4.tex @@ -1,6 +1,6 @@ -\section{Oedometer-Versuch\label{spannung:section:Oedometer-Versuch}} -\rhead{Oedometer-Versuch} -Mit dem Oedometer-Versuch kann der oedometrische Elastizitätsmodul $E_{OED}$ bestimmt werden. +\section{Oedometrischer Elastizitätsmodul\label{spannung:section:Oedometrischer Elastizitätsmodul}} +\rhead{Oedometrischer Elastizitätsmodul} +Mit dem Oedometer-Versuch kann der oedometrische Elastizitätsmodul $E_{\text{OED}}$ bestimmt werden. Dieser beschreibt ebenfalls das Verhältnis zwischen Spannung und Dehnung, allerdings unter anderen Bedingungen. Diese Bedingung ist das Verhindern der seitlichen Verformung, sprich der Dehnung in Richtung $1$ und $2$. Es wird ein Probeelement mit immer grösseren Gewichten belastet, welche gleichmässig auf das Material drücken. @@ -43,8 +43,8 @@ Diese lautet nun: \end{pmatrix} = \begin{pmatrix} - \frac{E_{OED}}{(1+\nu)} & 0 \\ - 0 & \frac{E_{OED}}{3(1-2\nu)} + \displaystyle{\frac{E_{\text{OED}}}{(1+\nu)}} & 0 \\ + 0 & \displaystyle{\frac{E_{\text{OED}}}{3(1-2\nu)}} \end{pmatrix} \begin{pmatrix} \varepsilon_{11}\\ @@ -52,28 +52,28 @@ Diese lautet nun: \end{pmatrix} . \] -Daraus lässt sich bei jedem Setzungsgrad der oedometrische Elastitzitätsmodul $E_{OED}$ und die seitlichen Spannungen $\sigma_{33}$ mit den 2 Gleichungen +Daraus lässt sich bei jedem Setzungsgrad der oedometrische Elastitzitätsmodul $E_{\text{OED}}$ und die seitlichen Spannungen $\sigma_{33}$ mit den zwei Gleichungen \[ \sigma_{11}-\sigma_{33} = -\frac{E_{OED}}{(1+\nu)}\cdot\varepsilon_{11} +\frac{E_{\text{OED}}}{(1+\nu)}\cdot\varepsilon_{11} \] und \[ \sigma_{11}+2\sigma_{33} = -\frac{E_{OED}}{3(1-2\nu)}\cdot\varepsilon_{11} +\frac{E_{\text{OED}}}{3(1-2\nu)}\cdot\varepsilon_{11} \] berechnen. -Mit diesen Gleichungen hat man das Gleichungssystem um $E_{OED}$ und $\sigma_{33}$ zu berechnen. +Mit diesen Gleichungen hat man das Gleichungssystem um $E_{\text{OED}}$ und $\sigma_{33}$ zu berechnen. Die Poisson-Zahl muss als Kennwert gemäss der Bodenklasse gewählt werden. -Den Versuch kann man auf einem $\sigma$-$\varepsilon$-Diagramm abtragen (siehe Abbildung~\ref{spannung:DiagrammOedometer-Versuch}). +Den Versuch kann man auf einem $\sigma$-$\varepsilon$-Diagramm abtragen (siehe Abbildung~\ref{fig:DiagrammOedometer-Versuch}). Durch die Komprimierung nimmt der Boden mehr Spannung auf, und verformt sich zugleich weniger stark. -Mit diesem ermittelten $E_{OED}$ kann man nun weitere Berechnungen für die Geotechnik durchführen. +Mit diesem ermittelten $E_{\text{OED}}$ kann man nun weitere Berechnungen für die Geotechnik durchführen. \begin{figure} \centering - \includegraphics[width=0.5\linewidth,keepaspectratio]{papers/spannung/Grafiken/DiagrammOedometer-Versuch.png} + \includegraphics[width=0.45\linewidth,keepaspectratio]{papers/spannung/Grafiken/DiagrammOedometer-Versuch.png} \caption{Diagramm Charakteristik verschiedener Elastizitätsmodule bei gleichem Material} \label{fig:DiagrammOedometer-Versuch} \end{figure} \ No newline at end of file -- cgit v1.2.1 From 4f9cf26c7802a163da6b18cec9db62e75a9730cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20K=C3=BChne?= Date: Tue, 27 Jul 2021 12:30:10 +0200 Subject: neue version --- buch/papers/munkres/main.tex | 4 +- buch/papers/munkres/teil0.tex | 19 ++----- buch/papers/munkres/teil1.tex | 65 +++++++++++++++++----- buch/papers/munkres/teil2.tex | 83 ++-------------------------- buch/papers/munkres/teil3.tex | 122 +++++++++++------------------------------- buch/papers/munkres/teil4.tex | 31 +---------- buch/papers/munkres/teil5.tex | 10 +--- 7 files changed, 97 insertions(+), 237 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/munkres/main.tex b/buch/papers/munkres/main.tex index 8915a3d..e5282dc 100644 --- a/buch/papers/munkres/main.tex +++ b/buch/papers/munkres/main.tex @@ -3,8 +3,8 @@ % % (c) 2020 Hochschule Rapperswil % -\chapter{Munkres-Algorithmus\label{chapter:munkres}} -\lhead{Munkres-Algorithmus} +\chapter{Das Zuordnungsproblem und der Munkres-Algorithmus\label{chapter:munkres}} +\lhead{Das Zuordnungsproblem und der Munkres-Algorithmus} \begin{refsection} \chapterauthor{Marc Kühne} diff --git a/buch/papers/munkres/teil0.tex b/buch/papers/munkres/teil0.tex index 1ef0538..0578429 100644 --- a/buch/papers/munkres/teil0.tex +++ b/buch/papers/munkres/teil0.tex @@ -3,19 +3,8 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Geschichte\label{munkres:section:teil0}} -\rhead{Geschichte} -Die Ungarische Methode wurde 1955 von Harold Kuhn entwickelt und veröffentlicht. -Der Name ``Ungarische Methode'' ergab sich, weil der Algorithmus -weitestgehend auf den früheren Arbeiten zweier ungarischer Mathematiker -basierte: Dénes Kőnig und Jenő Egerváry. -James Munkres überprüfte den Algorithmus im Jahr 1957 und stellte fest, -dass der Algorithmus (stark) polynomiell ist. -Seitdem ist der Algorithmus auch als Kuhn-Munkres oder -Munkres-Zuordnungsalgorithmus bekannt. -Die Zeitkomplexität des ursprünglichen Algorithmus war $O(n^4)$, -später wurde zudem festgestellt, dass er modifiziert werden kann, -um eine $O(n^3)$-Laufzeit zu erreichen. - - +\section{Einleitung\label{munkres:section:teil0}} +\rhead{Einleitung} +Im Bereich der Unternehmensplanung (Operations Research) gibt es verschiedene Fragestellungen. Eine davon ist das sogenannte Transportproblem. Zum Transport einheitlicher Objekte von mehreren Angebots- zu mehreren Nachfrageorten ist ein optimaler, d. h. kostenminimaler Plan zu finden, wobei die vorhandenen und zu liefernden Mengen an den einzelnen Standorten gegeben sowie die jeweiligen Transportkosten pro Einheit zwischen allen Standorten bekannt sind. +Nun gibt es im Bereich des klassischen Transportproblems Sonderfälle. Ein Sonderfall ist z.B. das Zuordnungsproblem. diff --git a/buch/papers/munkres/teil1.tex b/buch/papers/munkres/teil1.tex index 7cbbbfd..c13732c 100644 --- a/buch/papers/munkres/teil1.tex +++ b/buch/papers/munkres/teil1.tex @@ -3,19 +3,56 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Was ist die ungarische Methode? +\section{Beschrieb des Zuordnungsproblems \label{munkres:section:teil1}} \rhead{Problemstellung} -Es ist ein kombinatorischer Optimierungsalgorithmus, der das Zuordnungsproblem -in polynomieller Zeit löst. -\begin{itemize} -\item -Polynom = vielgliedrig -\end{itemize} -Der Begriff polynomielle Laufzeit bedeutet, dass die Laufzeit des Programms -wie $n^2$, $n^3$, $n^4$, etc.~wächst und vernünftig skaliert. -Mit der ungarischen Methode können also lineare Optimierungsprobleme gelöst -werden, die bei gewichteten Zuordnungen in bipartiten Graphen entstehen. -Mit ihr kann die eindeutige Zuordnung von Objekten aus zwei Gruppen so -optimiert werden, dass die Gesamtkosten minimiert werden bzw.~der -Gesamtgewinn maximiert werden kann. + +Das spezielle an einem Zuordnungsproblem ist, dass es an jedem Ort nur eine Einheit angeboten bzw. nachgefragt wird. Es werden hier nicht Mengen möglichst kostenminimal von einem zum anderen +Ort transportiert, sondern es geht um die kostenminimale Zuordnung von z.B. Personen, oder Bau-Materialien auf bestimmte Orte, Stellen oder Aufgaben. +Um dieses Problem in einer einfachen, händischen Art und Weise zu lösen wurde der Munkres-Algorithmus, auch die Ungarische Methode genannt, entwickelt. Diese Methode ist ein weiteres Hauptthema dieses Kapitels. + +\subsection{Zuordnungsproblem an einem konkreten Beispiel +\label{munkres:subsection:bonorum}} + +\subsection{Zuordnungsproblem abstrakt +\label{munkres:subsection:bonorum}} + +Es sind alle Angebots- und Bedarfsmengen gleich 1 +\begin{equation} +a_{i}=b_{j}=1 +\end{equation} + +\subsection{alternative Darstellungen des Zuordnungsproblems +\label{munkres:subsection:bonorum}} +\begin{equation} +Netzwerk +\end{equation} +\begin{equation} +Matrix +\end{equation} +\begin{equation} +Bitpartiter Graph +\end{equation} +Ein bipartiter Graph ist ein mathematisches Modell für Beziehungen +zwischen den Elementen zweier Mengen. +Es eignet sich sehr gut zur Untersuchung von Zuordnungsproblemen» +\begin{figure} +\centering +\includegraphics[width=5cm]{papers/munkres/figures/Netzwerkdarstellung} +\caption{Typische Netzwerkdarstellung eines Zuordnungsproblems.} +\label{munkres:Vr2} +\end{figure} + +\begin{figure} +\centering +\includegraphics[width=5cm]{papers/munkres/figures/Matrixdarstellung} +\caption{Typische 4x4 Matrixdarstellung eines Zuordnungsproblems.} +\label{munkres:Vr2} +\end{figure} + +\begin{figure} +\centering +\includegraphics[width=5cm]{papers/munkres/figures/bipartiter_graph} +\caption{$K_{3,3}$ vollständig bipartiter Graph mit 3 Knoten pro Teilmenge.} +\label{munkres:Vr2} +\end{figure} diff --git a/buch/papers/munkres/teil2.tex b/buch/papers/munkres/teil2.tex index 29db8d7..9a44cd4 100644 --- a/buch/papers/munkres/teil2.tex +++ b/buch/papers/munkres/teil2.tex @@ -3,86 +3,11 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Das Zuordnungsproblem +\section{Schwierigkeit der Lösung (Permutationen) \label{munkres:section:teil2}} -\rhead{Das Zuordnungsproblem} -Das (lineare) Zuordnungsproblem ist ein diskretes Optimierungsproblem aus -der Graphentheorie. -Es handelt sich um einen Spezialfall eines maximalen Matchings -minimalen Gewichtes in einem bipartiten, gewichteten Graphen +\rhead{Schwierigkeit der Lösung (Permutationen)} -Vereinfacht gesagt sind Zuordnungsprobleme spezielle Transportprobleme. -Der Unterschied zu klassischen Transportproblemen liegen darin, -dass hier nicht Mengen möglichst kostenminimal von einem zum anderen -Ort transportiert werden sollen, sondern es geht um die kostenminimale -Zuordnung von z.~B.~Personen, oder Bau-Materialien auf bestimmte -Orte, Stellen oder Aufgaben. -Dabei sind alle Angebots- und Bedarfsmenge gleich 1 -\begin{equation} -a_{i}=b_{j}=1 -\end{equation} +Eine Permutation ist eine Anordnung von Objekten in einer bestimmten Reihenfolge oder eine Umordnung von Objekten aus einer vorgegebenen Reihung. Ist eine maximale Zuordnung (maximales Matching) gefunden, so steht in jeder Zeile und jeder Spalte der Matrix genau ein Element, das zur optimalen Lösung gehört, eine solche Gruppe von Positionen wird auch als Transversale der Matrix bezeichnet. -\subsection{Zuordnungsproblem in Netzwerkdarstellung -\label{munkres:subsection:bonorum}} - -\begin{figure} -\centering -\includegraphics[width=5cm]{papers/munkres/figures/Netzwerkdarstellung} -\caption{Typische Netzwerkdarstellung eines Zuordnungsproblems.} -\label{munkres:Vr2} -\end{figure} - -\subsection{Matrix Formulierung -\label{munkres:subsection:bonorum}} -In der Matrixformulierung ist eine nicht-negative $n\times n$-Matrix -gegeben, wobei das Element in der $i$-ten Zeile und $j$-ten Spalte -die Kosten für die Zuweisung des $j$-ten Jobs an den $i$-ten Arbeiter -darstellt. -Wir müssen eine Zuordnung der Jobs zu den Arbeitern finden, so dass -jeder Job einem Arbeiter zugewiesen wird und jeder Arbeiter einen -Job zugewiesen bekommt, so dass die Gesamtkosten der Zuordnung -minimal sind. -Dies kann als Permutation der Zeilen und Spalten einer Kostenmatrix -$C$ ausgedrückt werden, um die Spur einer Matrix zu minimieren: -\begin{equation} -\min(L,R)Tr (LCR) -\end{equation} -wobei $L$ und $R$ Permutationsmatrizen sind. -Wenn das Ziel ist, die Zuordnung zu finden, die die maximalen Kosten -ergibt, kann das Problem durch Negieren der Kostenmatrix $C$ gelöst -werden. - -\subsection{Suche der optimalen Lösung -\label{munkres:subsection:bonorum}} -Ist eine maximale Zuordnung (maximales Matching) gefunden, so steht -in jeder Zeile und jeder Spalte der Matrix genau ein Element, das -zur optimalen Lösung gehört, eine solche Gruppe von Positionen wird -auch als Transversale der Matrix bezeichnet. -Deshalb kann die Problemstellung auch anders formuliert werden: Man -ordne die Zeilen- oder die Spaltenvektoren so um, dass die Summe -der Elemente in der Hauptdiagonale maximal wird. -Hieraus wird sofort ersichtlich, dass es in einer -$n\times n$-Matrix genau so viele Möglichkeiten gibt, die Zeilen- -bzw.~Spaltenvektoren zu ordnen, wie es Permutationen von $n$ Elementen -gibt, also $n!$. -Außer bei kleinen Matrizen ist es nahezu aussichtslos, die optimale -Lösung durch Berechnung aller Möglichkeiten zu finden. -Schon bei einer $10\times 10$-Matrix gibt es nahezu 3,63 Millionen (3.628.800) -zu berücksichtigender Permutationen. - -\subsection{Formulierung Bipartiter Graph -\label{munkres:subsection:bonorum}} -Der Algorithmus ist einfacher zu beschreiben, wenn wir das Problem -anhand eines bipartiten Graphen formulieren. -Wir haben einen vollständigen zweistufigen Graphen $G=(S,T;E)$ mit -$n$ Arbeiter-Eckpunkten ($S$) und $n$ Job-Scheitelpunkte ($T$), und -jede Kante hat einen nichtnegativen Preis $c(i,j)$. -Wir wollen ein perfektes Matching mit minimalen Gesamtkosten finden. - -\begin{figure} -\centering -\includegraphics[width=5cm]{papers/munkres/figures/bipartiter_graph} -\caption{$K_{3,3}$ vollständig bipartiter Graph mit 3 Knoten pro Teilmenge.} -\label{munkres:Vr2} -\end{figure} +Die Problemstellung kann auch so formuliert werden, dass man die Zeilen- oder die Spaltenvektoren so umordnet soll, dass die Summe der Elemente in der Hauptdiagonale maximal wird. Hieraus wird sofort ersichtlich, dass es in einer n×n-Matrix genau so viele Möglichkeiten gibt, die Zeilen- bzw. Spaltenvektoren zu ordnen, wie es Permutationen von n Elementen gibt, also n!. Außer bei kleinen Matrizen ist es nahezu aussichtslos, die optimale Lösung durch Berechnung aller Möglichkeiten zu finden. Schon bei einer 10×10-Matrix gibt es nahezu 3,63 Millionen (3.628.800) zu berücksichtigender Permutationen. diff --git a/buch/papers/munkres/teil3.tex b/buch/papers/munkres/teil3.tex index 806cd83..cd47c92 100644 --- a/buch/papers/munkres/teil3.tex +++ b/buch/papers/munkres/teil3.tex @@ -3,102 +3,44 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Der Algorithmus in Form von bipartiten Graphen +\section{Der Munkres-Algorithmus (Ungarische Methode) \label{munkres:section:teil3}} -\rhead{Der Algorithmus in Form von bipartiten Graphen} -Mit der ungarischen Methode können also lineare Optimierungsprobleme -gelöst werden, die bei gewichteten Zuordnungen in bipartiten Graphen -entstehen. +\rhead{Der Munkres-Algorithmus (Ungarische Methode)} -Mit ihr kann die eindeutige Zuordnung von Objekten aus zwei Gruppen -so optimiert werden, dass die Gesamtkosten minimiert werden bzw.~der -Gesamtgewinn maximiert werden kann. +Mit der ungarischen Methode können also lineare Optimierungsprobleme gelöst +werden, die bei gewichteten Zuordnungen in bipartiten Graphen entstehen. +Mit ihr kann die eindeutige Zuordnung von Objekten aus zwei Gruppen so +optimiert werden, dass die Gesamtkosten minimiert werden bzw.~der +Gesamtgewinn maximiert werden kann. -Ein bipartiter Graph ist ein mathematisches Modell für Beziehungen -zwischen den Elementen zweier Mengen. -Es eignet sich sehr gut zur Untersuchung von Zuordnungsproblemen» - -\subsection{Beweis, dass der Algorithmus Fortschritte macht +\subsection{Geschichte \label{munkres:subsection:malorum}} -Wir müssen zeigen, dass der Algorithmus, solange das Matching nicht -die maximal mögliche Größe hat, immer in der Lage ist, Fortschritte -zu machen --- das heißt, entweder die Anzahl der übereinstimmenden -Kanten zu erhöhen oder mindestens eine Kante zu straffen. -Es genügt zu zeigen, dass bei jedem Schritt mindestens eine der -folgenden Bedingungen erfüllt ist: - -\begin{itemize} -\item -$M$ die maximal mögliche Größe. -\item -$Gy$ enthält einen Erweiterungspfad. -\item -$G$ enthält einen losen Pfad: einen Pfad von einem Knoten in $Rs$ -zu einem Knoten in $T$ / $Z$ die aus einer beliebigen Anzahl von -festen Kanten, gefolgt von einer einzelnen losen Kante, besteht. -Die freie Kante einer freien Bahn ist also $Z$ (beinhaltet $T$), -so garantiert es, dass Delta gut definiert ist. -\end{itemize} -Wenn $M$ die maximal mögliche Größe hat, sind wir natürlich fertig. -Andernfalls muss es nach Berges Lemma im zugrundeliegenden Graphen -$G$ einen Augmentierungspfad $P$ in Bezug auf $M$ geben. -Dieser Pfad darf jedoch nicht in $G_y$ existieren: Obwohl jede -geradzahlige Kante in $P$ durch die Definition von $M$ fest ist, -können ungeradzahlige Kanten lose sein und in $G_y$ fehlen. -Ein Endpunkt von $P$ liegt in $R_{S}$, der andere in $R_T$; w.l.o.g., -nehmen Sie an, es beginnt in $R_{S}$. -Wenn jede Kante von $P$ dicht ist, dann bleibt sie ein augmentierender -Pfad in $G_y$ und wir sind fertig. -Andernfalls sei $uv$ die erste lose Kante auf $P$. -Wenn $v$ kein Element von $Z$ ist, dann haben wir einen losen Pfad -gefunden und sind fertig. -Andernfalls ist $v$ von irgendeinem anderen Pfad $Q$ aus festen -Kanten von einem Knoten in $R_{S}$ erreichbar. -Sei $P_{v}$ der Teilpfad von $P$, der bei $v$ beginnt und bis zum -Ende reicht, und sei $P'$ der Pfad, der gebildet wird, indem man -entlang $Q$ gebildet wird, bis ein Scheitelpunkt auf $P_{v}$ erreicht -wird, und dann weiter bis zum Ende von $P_{v}$. -Beachten Sie, dass $P'$ ein erweiternder Pfad in $G$ mit mindestens -einer losen Kante weniger als $P$ ist. -$P$ kann durch $P'$ ersetzt und dieser Argumentationsprozess iteriert -werden (formal, unter Verwendung von Induktion auf die Anzahl der -losen Kanten), bis entweder ein erweiternder Pfad in $G_y$ oder ein -losender Pfad in $G$ gefunden wird. +Die Ungarische Methode wurde 1955 von Harold Kuhn entwickelt und veröffentlicht. +Der Name ``Ungarische Methode'' ergab sich, weil der Algorithmus +weitestgehend auf den früheren Arbeiten zweier ungarischer Mathematiker +basierte: Dénes Kőnig und Jenő Egerváry. +James Munkres überprüfte den Algorithmus im Jahr 1957 und stellte fest, +dass der Algorithmus (stark) polynomiell ist. +Seitdem ist der Algorithmus auch als Kuhn-Munkres oder +Munkres-Zuordnungsalgorithmus bekannt. +Die Zeitkomplexität des ursprünglichen Algorithmus war $O(n^4)$, +später wurde zudem festgestellt, dass er modifiziert werden kann, +um eine $O(n^3)$-Laufzeit zu erreichen. -\subsection{Beweis, dass die Anpassung des Potentials $y$ $M$ unverändert lässt +\subsection{Besondere Leistung der Ungarischen Methode \label{munkres:subsection:malorum}} -Um zu zeigen, dass jede Kante in $M$ nach der Anpassung von $y$ -erhalten bleibt, genügt es zu zeigen, dass für eine beliebige Kante -in $M$ entweder beide Endpunkte oder keiner von ihnen in $Z$ liegen. -Zu diesem Zweck sei $vu$ eine Kante in $M$ von $T$ nach $S$. -Es ist leicht zu sehen, dass wenn $v$ in $Z$ ist, dann muss auch -$u$ in $Z$ sein, da jede Kante in $M$ dicht ist. -Nehmen wir nun an, dass $u$ kein Element von $Z$ und auch $v$ kein -Element von $Z$ ist. -$u$ selbst kann nicht in $R_{S}$ sein, da es der Endpunkt einer -angepassten Kante ist, also muss es einen gerichteten Pfad von engen -Kanten von einem Knoten in $R_{S}$ zu $u$ geben. -Dieser Pfad muss $v$ vermeiden, da es per Annahme nicht in $Z$ ist, -also ist der Knoten, der $u$ in diesem Pfad unmittelbar vorausgeht, -ein anderer Knoten $v$ (ein Element von $T$) und $v$ ein Element -von $u$ ist eine enge Kante von $T$ nach $S$ und ist somit in $M$. -Aber dann enthält $M$ zwei Kanten, die den Knoten $u$ teilen, was -der Tatsache widerspricht, dass $M$ ein Matching ist. -Jede Kante in $M$ hat also entweder beide Endpunkte oder keinen -Endpunkt in $Z$. +Es ist ein kombinatorischer Optimierungsalgorithmus, der das Zuordnungsproblem +in polynomieller Zeit löst. +Der Begriff polynomielle Laufzeit bedeutet, dass die Laufzeit des Programms +wie $n^2$, $n^3$, $n^4$, etc.~wächst und vernünftig skaliert. + -\subsection{Beweis, dass $y$ ein Potential bleibt +\subsection{Beispiel eines händischen Verfahrens \label{munkres:subsection:malorum}} -Um zu zeigen, dass y nach der Anpassung ein Potenzial bleibt, genügt -es zu zeigen, dass keine Kante ihr Gesamtpotenzial über ihre Kosten -hinaus erhöht. -Dies ist für Kanten in $M$ bereits durch den vorangegangenen Absatz -bewiesen. -Man betrachtet also eine beliebige Kante $uv$ von $S$ nach $T$. -Wenn $y(u)$ erhöht wird um $\Delta$, dann wird entweder $v\in -\mathbb{Z}_n$ in diesem Fall wird $y(v)$ verringert um $\Delta$, -wobei das Gesamtpotenzial der Kante unverändert bleibt, oder $v\in -T\setminus Z$, wobei die Definition von $\Delta$ garantiert, dass -$y(u)+y(v)+\Delta \le c(u,v)$ -Also $y$ bleibt ein Potential. +\begin{figure} +\centering +\includegraphics[width=14cm]{papers/munkres/figures/beispiel_munkres} +\caption{Händisches Beispiel des Munkres Algorithmus.} +\label{munkres:Vr2} +\end{figure} diff --git a/buch/papers/munkres/teil4.tex b/buch/papers/munkres/teil4.tex index 3d76743..9a27227 100644 --- a/buch/papers/munkres/teil4.tex +++ b/buch/papers/munkres/teil4.tex @@ -3,34 +3,7 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Matrix-Interpretation +\section{- \label{munkres:section:teil4}} -\rhead{Matrix-Interpretation} -Gegeben ist die quadratische Matrix $C=(c_{ij})$ der Grösse $n\times n$. -Ohne Beschränkung der Allgemeinheit werden eine Zuordnung $j -\rightarrow s_j$, $j = 1, \dots, n$ mit minimaler Gesamtsumme -$\sum_{j=1}^{n}c_{s_j,j}$ gesucht, wobei die $s_j$ eine Permutation -von $\{1,\ldots ,n\}$ sind. -Soll die Summe maximiert werden, dann kann $C$ durch $-C$ ersetzt werden. -Die Grundlage dieses Verfahrens ist, dass sich die optimale Zuordnung -unter bestimmten Änderungen der Matrix nicht ändert, sondern nur -der Optimalwert. -Diese Änderungen sind durch Knotenpotentiale bzw.~duale Variablen -\begin{equation} -u_1 u_2,{\dots}, u_n -\end{equation} +\rhead{-} -für die Zeilen und - -\begin{equation}v_1,v_2,\dots,v_n \end{equation} fuer die Spalten angegeben. -Die modifizierte Matrix hat dann die Komponenten $\tilde{c}_{i,j} -= c_{ij} - u_j - v_j$. - -In der Summe über jede kantenmaximale Zuordnung kommt jedes -Knotenpotential genau einmal vor, so dass die Änderung der Zielfunktion -eine Konstante ist. -Sind die Einträge von $C$ nichtnegativ, und sind alle Knotenpotentiale -ebenfalls nichtnegativ, so nennt man die modifizierte Matrix \~{C} -auch eine Reduktion. -Ziel ist, in der reduzierten Matrix möglichst viele Komponenten auf -den Wert Null zu bringen und unter diesen die Zuordnung zu konstruieren. diff --git a/buch/papers/munkres/teil5.tex b/buch/papers/munkres/teil5.tex index f8138f4..b938c50 100644 --- a/buch/papers/munkres/teil5.tex +++ b/buch/papers/munkres/teil5.tex @@ -3,12 +3,6 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Ungarische Methode anhand eines Beispiels +\section{- \label{munkres:section:teil5}} -\rhead{Ungarische Methode anhand eines Beispiels} -\begin{figure} -\centering -\includegraphics[width=14cm]{papers/munkres/figures/beispiel_munkres} -\caption{Händisches Beispiel des Munkres Algorithmus.} -\label{munkres:Vr2} -\end{figure} +\rhead{-} -- cgit v1.2.1 From ef1973fdcb29ad84666ccee58633711afb978629 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20K=C3=BChne?= Date: Tue, 27 Jul 2021 12:45:18 +0200 Subject: fehlendes bild --- buch/papers/munkres/figures/Matrixdarstellung.png | Bin 0 -> 46310 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 buch/papers/munkres/figures/Matrixdarstellung.png (limited to 'buch/papers') diff --git a/buch/papers/munkres/figures/Matrixdarstellung.png b/buch/papers/munkres/figures/Matrixdarstellung.png new file mode 100644 index 0000000..91a376d Binary files /dev/null and b/buch/papers/munkres/figures/Matrixdarstellung.png differ -- cgit v1.2.1 From 88c208363cf560043f87c2c83fa251177e74cd1b Mon Sep 17 00:00:00 2001 From: JODBaer Date: Tue, 27 Jul 2021 13:20:05 +0200 Subject: save --- buch/papers/reedsolomon/dtf.tex | 2 +- buch/papers/reedsolomon/idee.tex | 18 +++++------ buch/papers/reedsolomon/tikz/plotfft.tex | 55 +++++++++++++++----------------- 3 files changed, 35 insertions(+), 40 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/dtf.tex b/buch/papers/reedsolomon/dtf.tex index 62e44cc..ffe98f8 100644 --- a/buch/papers/reedsolomon/dtf.tex +++ b/buch/papers/reedsolomon/dtf.tex @@ -53,7 +53,7 @@ Das heisst alle information ist in alle Zahlenvorhanden. \begin{figure} \centering - \resizebox{0.9\textwidth}{!}{ + \resizebox{\textwidth}{!}{ \includegraphics[width=\textwidth]{papers/reedsolomon/figures/plotfft} %\input{papers/reedsolomon/images/plotfft.tex} } diff --git a/buch/papers/reedsolomon/idee.tex b/buch/papers/reedsolomon/idee.tex index e18ccd2..519e642 100644 --- a/buch/papers/reedsolomon/idee.tex +++ b/buch/papers/reedsolomon/idee.tex @@ -22,7 +22,7 @@ Auch eine variante wäre es die Daten nach einem Fehler einfach nochmals zu send Eine Idee ist aus den Daten ein Polynom zu bilden. Diese Polynomfunktion bei bestimmten Werten, ausrechnet und diese Punkte dann überträgt. -Nehmen wir als beisbiel die Zahlen \textcolor{blue}{2}, \textcolor{blue}{1}, \textcolor{blue}{5}, +Nehmen wir als Beispiel die Zahlen \textcolor{blue}{2}, \textcolor{blue}{1}, \textcolor{blue}{5}, welche uns dann das Polynom \begin{equation} p(x) @@ -31,21 +31,21 @@ p(x) \label{reedsolomon:equation1} \end{equation} ergeben. -Übertragen werden nun die Werte an den stellen 1, 2, 3\dots 7 dieses Polynomes. +Übertragen werden nun die Werte dieses Polynomes an den Stellen 1, 2, 3\dots 7 dieses Polynomes. Grafisch sieht man dies dann in Abbildung \ref{fig:polynom}, -mit den Punkten, $p(1),p(2),...,p(7) = (\textcolor{green}{8}, -\textcolor{green}{15}, \textcolor{green}{26}, -\textcolor{green}{41}, \textcolor{green}{60}, -\textcolor{green}{83}, \textcolor{green}{110})$ -Wenn ein Fehler sich in die Übertragung eingeschlichen hatt, muss der Leser/Empfänger diesen erkennen und das Polynom rekonstruieren. +mit den Punkten, $p(1),p(2),...,p(7) = (\textcolor{darkgreen}{8}, +\textcolor{darkgreen}{15}, \textcolor{darkgreen}{26}, +\textcolor{darkgreen}{41}, \textcolor{darkgreen}{60}, +\textcolor{darkgreen}{83}, \textcolor{darkgreen}{110})$ +Wenn ein Fehler sich in die Übertragung eingeschlichen hat, muss der Leser/Empfänger diesen erkennen und das Polynom rekonstruieren. Der Leser/Empfänger weiss, den Grad des Polynoms und dessen Werte übermittelt wurden. \subsection{Beispiel} -Für das Beispeil aus der Gleichung \eqref{reedsolomon:equation1}, +Für das Beispiel aus der Gleichung \eqref{reedsolomon:equation1}, ist ein Polynome zweiten Grades durch drei Punkte eindeutig bestimmbar. Hat es Fehler in der Übertragunge gegeben,(Bei Abbildung \ref{fig:polynom}\textcolor{red}{roten Punkte}) kann man diese erkennen, da alle Punkte, die korrekt sind, auf dem Polynom liegen müssen. -(Bei Abbildung \ref{fig:polynom}\textcolor{green}{grünen Punkte}) +(Bei Abbildung \ref{fig:polynom}\textcolor{darkgreen}{grünen Punkte}) Ab wie vielen Fehler ist das Polynom nicht mehr erkennbar beim Übertragen von 7 Punkten? Bei 2 Fehlern kann man noch eindeutig bestimmen, dass das Polynom mit 4 Punkten, gegenüber dem mit 5 Punkten falsch liegt.\ref{fig:polynom} diff --git a/buch/papers/reedsolomon/tikz/plotfft.tex b/buch/papers/reedsolomon/tikz/plotfft.tex index 3036e14..db141a8 100644 --- a/buch/papers/reedsolomon/tikz/plotfft.tex +++ b/buch/papers/reedsolomon/tikz/plotfft.tex @@ -15,30 +15,27 @@ %--------------------------------------------------------------- %Knote - \matrix[draw = none, column sep=25mm, row sep=2mm]{ + \matrix(m) [draw = none, column sep=25mm, row sep=2mm]{ + \node(signal) [] { \begin{tikzpicture} \begin{axis} [title = {\Large {Signal}}, - xtick={0,20,40,64,80,98},] - \addplot[blue] table[col sep=comma] {tikz/signal.txt}; + xtick={0,20,40,64,80,98}] + \addplot[black] table[col sep=comma] {tikz/signal.txt}; \end{axis} \end{tikzpicture}}; & \node(codiert) [] { - \begin{tikzpicture} - \begin{axis}[title = {\Large {Codiert}}] - \addplot[] table[col sep=comma] {tikz/codiert.txt}; + \begin{tikzpicture}[] + \begin{axis}[ title = {\Large {Codiert \space + \space Fehler}}, + xtick={0,40,60,100}, axis y line*=left] + \addplot[green] table[col sep=comma] {tikz/codiert.txt}; \end{axis} - \end{tikzpicture}}; \\ - - &\node(fehler) [] { - \begin{tikzpicture} - \begin{axis}[scale=0.6, title = {\Large {Fehler}}, - xtick={7,21,75}] - \addplot[red] table[col sep=comma] {tikz/fehler.txt}; + \begin{axis}[xtick={7,21,75}, axis y line*=right] + \addplot[red] table[col sep=comma] {tikz/fehler.txt}; \end{axis} - \end{tikzpicture}};\\ + \end{tikzpicture}}; \\ \node(decodiert) [] { \begin{tikzpicture} @@ -50,7 +47,7 @@ \node(empfangen) [] { \begin{tikzpicture} \begin{axis}[title = {\Large {Empfangen}}] - \addplot[] table[col sep=comma] {tikz/empfangen.txt}; + \addplot[green] table[col sep=comma] {tikz/empfangen.txt}; \end{axis} \end{tikzpicture}};\\ @@ -71,26 +68,24 @@ %------------------------------------------------------------- %FFT & IFFT deskription - \draw[thin,gray,dashed] (0,12) to (0,-12); - \node(IFFT) [scale=0.7] at (0,12.3) {IFFT}; - \draw[<-](IFFT.south west)--(IFFT.south east); - \node(FFT) [scale=0.7, above of=IFFT] {FFT}; - \draw[->](FFT.north west)--(FFT.north east); + \draw[thin,gray,dashed] (0,9) to (0,-9); + \node(IFFT) [scale=0.8] at (0,9.3) {IFFT}; + \draw[stealth-](IFFT.south west)--(IFFT.south east); + \node(FFT) [scale=0.8, above of=IFFT] {FFT}; + \draw[-stealth](FFT.north west)--(FFT.north east); - \draw[thick, ->,] (fehler.west)++(-1,0) +(0.05,0.5) -- +(-0.1,-0.1) -- +(0.1,0.1) -- +(0,-0.5); + \draw[thick, ->,] (codiert)++(-1,0) +(0.05,0.5) -- +(-0.1,-0.1) -- +(0.1,0.1) -- +(0,-0.5); %Arrows - \draw[ultra thick, ->] (signal.east) to (codiert.west); - \draw[ultra thick, ->] (codiert.south) to (fehler.north); - \draw[ultra thick, ->] (fehler.south) to (empfangen.north); - \draw[ultra thick, ->] (empfangen.west) to (decodiert.east); - \draw[ultra thick, ->] (syndrom.east) to (locator.west); - \draw(decodiert.south east)++(-1.8,1) ellipse (1.3cm and 0.8cm) ++(-1.3,0) coordinate(zoom) ; - \draw[ultra thick, ->] (zoom) to[out=180, in=90] (syndrom.north); + \draw[thick, ->] (signal.east) to (codiert.west); + \draw[thick, ->] (codiert.south) to (empfangen.north); + \draw[thick, ->] (empfangen.west) to (decodiert.east); + \draw[thick, ->] (syndrom.east) to (locator.west); + \draw[thick](decodiert.south east)++(-1.8,1) ellipse (1.3cm and 0.8cm) ++(-1.3,0) coordinate(zoom) ; + \draw[thick, ->] (zoom) to[out=180, in=90] (syndrom.north); %item \node[circle, draw, fill =lightgray] at (signal.north west) {1}; - \node[circle, draw, fill =lightgray] at (codiert.north west) {2}; - \node[circle, draw, fill =lightgray] at (fehler.north west) {3}; + \node[circle, draw, fill =lightgray] at (codiert.north west) {2+3}; \node[circle, draw, fill =lightgray] at (empfangen.north west) {4}; \node[circle, draw, fill =lightgray] at (decodiert.north west) {5}; \node[circle, draw, fill =lightgray] at (syndrom.north west) {6}; -- cgit v1.2.1 From 46eee95c5d39e99535f3790e40994d0eb1167ffe Mon Sep 17 00:00:00 2001 From: Pascal Schmid <81317360+paschost@users.noreply.github.com> Date: Tue, 27 Jul 2021 13:56:38 +0200 Subject: =?UTF-8?q?Erl=C3=A4uterung=20zu=20Suchalgorithmen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buch/papers/verkehr/section1.tex | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'buch/papers') diff --git a/buch/papers/verkehr/section1.tex b/buch/papers/verkehr/section1.tex index 389c78c..756f6e1 100644 --- a/buch/papers/verkehr/section1.tex +++ b/buch/papers/verkehr/section1.tex @@ -6,6 +6,13 @@ Grundsätzlich können kurze Wege zwischen den Knotenpunkten das Ziel beim Aufba Ziel ist aber ein möglichst wirtschaftliches und optimales Verkehrsnetz. \section{Suchalgorithmen} +Inbesondere bei Graphen in Form von Verkehrsnetzen ist das Finden eines kürzesten Weges von Interesse. Mathematisch betrachtet handelt es sich hierbei um ein Optimierungsproblem, bei dem die Summe der Kantengewichte zwischen zwei Knoten minimiert werden soll. Zu diesem Zweck existieren verschiedene Suchalgorithmen. In den folgenden Abschnitten wird auf eines Auswahl davon eingegangen. Zuvor ist es jedoch notwendig, einige Begriffe und Eigenschaften von Suchalgorithmen zu definieren. + +Einerseits wird zwischen optimalen und nicht-optimalen Algorithmen unterschieden. Ein Suchalgorithmus gilt als optimal, falls er einen günstigsten Pfad zwischen zwei Knoten findet. Es gilt zu beachten, dass im Falle des Vorhandenseins von mehrerern Pfaden mit identischer, minimaler Summe der Kantengewichte zwischen zwei Knoten, mindestens einer dieser Pfade gefunden wird. + +Weiter wird zwischen informierten und uninformierten Algorithmen differenziert. Während uninformierte Suchalgorithmen den Suchraum schematisch auf Basis der Eigenschaften des Graphen absuchen, bis eine günstigste Lösung gefunden wurde, verwenden informierte Suchalgorithmen eine Heuristik zur Abschätzung der Suchrichtung. Oftmals wird bei informierten Algorithmen ein Verlust der Optimalität zugunsten einer verbesserten Rechenzeit in Kauf genommen. Es exisitieren jedoch auch Heurstiken, die eine optimale Lösung gewährleisten. + +Eine besondere Art von Suchalgorithmen stellen die sogenannten Greedy-Algorithmen, zu deutsch gierige Algorithmen, dar. Sie zeichnen sich dadurch aus, dass stets der günstigste Weg verfolgt wird und davon ausgehend der darauffolgende, günstigste Folgezustand ausgewählt wird. Am Beispiel eines Verkehrsnetzes ist somit gewährleistet, dass beim Antreffen des Zielknotens auch der günstigste Pfad gefunden wurde. \subsection{Dijkstra-Algorithmus} Der Algorithmus von Dijkstra ist benannt nach seinem Erfinder dem Mathematik- und Informatikprofessor Edsger Dijkstra. Den Algorithmus hat er im Jahr 1959 erfunden. -- cgit v1.2.1 From dc45d7a57dfcc3ca4b9a97be4a51216c1a6ce4bc Mon Sep 17 00:00:00 2001 From: Pascal Schmid <81317360+paschost@users.noreply.github.com> Date: Tue, 27 Jul 2021 15:00:00 +0200 Subject: =?UTF-8?q?Erl=C3=A4uterungen=20zu=20Dijkstra?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buch/papers/verkehr/section1.tex | 34 ++++++---------------------------- 1 file changed, 6 insertions(+), 28 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/verkehr/section1.tex b/buch/papers/verkehr/section1.tex index 756f6e1..4a27737 100644 --- a/buch/papers/verkehr/section1.tex +++ b/buch/papers/verkehr/section1.tex @@ -15,35 +15,13 @@ Weiter wird zwischen informierten und uninformierten Algorithmen differenziert. Eine besondere Art von Suchalgorithmen stellen die sogenannten Greedy-Algorithmen, zu deutsch gierige Algorithmen, dar. Sie zeichnen sich dadurch aus, dass stets der günstigste Weg verfolgt wird und davon ausgehend der darauffolgende, günstigste Folgezustand ausgewählt wird. Am Beispiel eines Verkehrsnetzes ist somit gewährleistet, dass beim Antreffen des Zielknotens auch der günstigste Pfad gefunden wurde. \subsection{Dijkstra-Algorithmus} -Der Algorithmus von Dijkstra ist benannt nach seinem Erfinder dem Mathematik- und Informatikprofessor Edsger Dijkstra. Den Algorithmus hat er im Jahr 1959 erfunden. -Der Algorithmus von Dijkstra ist ein Greedy-Algorithmus (gieriger Algorithmus), der schrittweise einen Folgezustand auswählt, damit beim Zeitpunkt der Wahl der grösste Gewinn bzw. das beste Ergebnis erzielt werden kann. -Vereinfacht wird beim Dijkstra-Algorithmus, ausgehend von einem Startknoten so lange dem kürzesten Pfad gefolgt, bis der Zielknoten erreicht wird. Dabei muss für jeden besuchten Knoten die Kostenfunktion als auch der Pfad dahin (vorheriger Knoten) gespeichert werden. -Dadurch wird hingegen garantiert, dass, wenn der Zielknoten erreicht wird, auch der kürzeste Pfad gefunden wurde. -Grundlegende Voraussetzung für den Dijkstra-Algorithmus ist die strikte Positivität der Kantengewichte. Andernfalls würde ein wiederholtes Ablaufen einer Kante mit negativem Gewicht zu einer stetigen Reduktion der Kostenfunktion führen, was zu einer unendlichen Schlaufe führen würde. - -Gegeben sei ein Netzwerk mit $n$ Knoten und dem Startknoten $a$. -Alle Kanten sind mit $k(i, j)$ bewertet. -Gesucht wird der kürzeste Pfad zwischen dem Startknoten und dem Knoten im Netz. -$D(i)$ ist die kürzeste Distanz vom Startknoten $a$ zum Knoten $i, V(i)$ ist der unmittelbare Vorgängerknoten vom Knoten $i$ auf dem kürzesten Weg vom Startknoten $a$ zum Konten $i$ und die Menge $M$ ist die Menge einer bestimmten Auswahl an Knoten. - -Dabei gilt -\begin{equation}M={a}\end{equation} -\begin{equation}D(a)=0\end{equation} wobei -\begin{equation}D(i)=\infty\end{equation} und -\begin{equation}i \neq a \end{equation} -Ausserdem gilt \begin{equation}V(i)=(-) \text{für alle Knoten $i$}\end{equation}\\ +Der Algorithmus von Dijkstra ist benannt nach seinem Erfinder dem Mathematik- und Informatikprofessor Edsger Dijkstra. Er gehört zur Klasse der uninformierten Greedy-Algorithmen. Zudem ist die Optimalität bei strikter Positivität des Graphen gewährleistet. +Vorteilhaft ist die einfache Implementierung. Abhängig von der Programmiersprache sind zwischen 30 und 40 Zeilen an Code ausreichend, damit er den kürzesten Pfad zwischen einem Startknoten $a$ und Zielknoten $b$ finden kann. Die für dieses Paper verwendete Funktion verwendet eine abgewandelte Form der gewichteten Adjazenz-Matrix $A$, für welche gilt: +Der Matrix-Eintrag $A_{i,j}$ weist das Kantengewicht der Kante von Knoten $j$ nach $i$ auf. Falls keine Kante zwischen $j$ und $i$ vorhanden ist, beträgt der Eintrag $\infty$. Dies vereinfacht die Implementierung zur Bestimmung des nächst-günstigsten Pfades. +Zudem werden zwei Hilfs-Vektoren $\vec{d}$ und $\vec{b}$ der Länge $n$ eingeführt, wobei $n$ die Anzahl Knoten des Graphen ist. Im Vektoreintrag $\vec{d}(i)$ wird das kummulierte Kantengewicht zur Erreichung von Knoten $i$ vom Startknoten $a$ gespeichert. Der Eintrag $\vec{d}(a)$ beträgt somit $0$. Im Vektor $\vec{b}$ wird zudem vermerkt, falls ein Knoten bereits als Ziel eines kürzesten Pfads gefunden wurde und somit für die weitere Suche nicht mehr berücksichtigt werden muss ($\vec{b}(i)=1$, sonst $\vec{b}(i)=0$). -%THEORIE... -Iteration - -1. Auswahl eines Knotens \begin{equation} K\in M \text{mit} D(K)=D(i);i\in M\end{equation} - -2. Für alle Nachfolger $N(j)$ vom Knoten $K$ gilt: -\begin{equation}D(K) + k_Kj < D(j)\end{equation} dann wird \begin{equation}D(j) = D(K) + k_Kj, V(j) = K\end{equation} gesetzt und somit wird der Knoten $j$ in die Menge $M$ aufgenommen. - -3. Der ausgewählte Knoten \begin{equation}K\in M\text{wird aus der Menge herausgelöscht}\end{equation}\\ -Diese drei Schritte werden so lange wiederholt bis gilt -\begin{equation}M=\{\}\end{equation} +Ausgehend vom Startknoten $a$ wird nun anhand der Matrix $A$ in der Spalte $a$ nach dem kleinsten Eintrag gesucht. Somit wird der Folgeknoten $c$ gefunden. Dieser Vorgang wird nun wiederholt, wobei jedoch sämtliche von Knoten $a$ und $c$ erreichbaren Knoten berücksichtigt werden, die noch nicht besucht wurden. In anderen Worten alle nicht verschwindenden Einträge $i$ der Spalten $a$ und $c$ der Matrix $A$, für welche gilt $\vec{b}(i)=0$. +Diese Iteration wird solang durchgeführt, bis der Folgeknoten dem Zielknoten entspricht. \subsection{A*-Algorithmus} Suchalgorithmen werden nach einfachen (uninformierte) und heuristischen (informierten) Algorithmen unterschieden. Während einfache Algorithmen den Suchraum intuitiv durchsuchen, beziehen heuristische Algorithmen Wissen über den Suchraum mit ein. -- cgit v1.2.1 From 4f04bd2ec5008a375c6d77ec6d01c3bc68a0b976 Mon Sep 17 00:00:00 2001 From: Pascal Schmid <81317360+paschost@users.noreply.github.com> Date: Tue, 27 Jul 2021 15:20:52 +0200 Subject: =?UTF-8?q?Erl=C3=A4uterungen=20zu=20A*?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buch/papers/verkehr/section1.tex | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/verkehr/section1.tex b/buch/papers/verkehr/section1.tex index 4a27737..6f8f2b7 100644 --- a/buch/papers/verkehr/section1.tex +++ b/buch/papers/verkehr/section1.tex @@ -20,27 +20,19 @@ Vorteilhaft ist die einfache Implementierung. Abhängig von der Programmiersprac Der Matrix-Eintrag $A_{i,j}$ weist das Kantengewicht der Kante von Knoten $j$ nach $i$ auf. Falls keine Kante zwischen $j$ und $i$ vorhanden ist, beträgt der Eintrag $\infty$. Dies vereinfacht die Implementierung zur Bestimmung des nächst-günstigsten Pfades. Zudem werden zwei Hilfs-Vektoren $\vec{d}$ und $\vec{b}$ der Länge $n$ eingeführt, wobei $n$ die Anzahl Knoten des Graphen ist. Im Vektoreintrag $\vec{d}(i)$ wird das kummulierte Kantengewicht zur Erreichung von Knoten $i$ vom Startknoten $a$ gespeichert. Der Eintrag $\vec{d}(a)$ beträgt somit $0$. Im Vektor $\vec{b}$ wird zudem vermerkt, falls ein Knoten bereits als Ziel eines kürzesten Pfads gefunden wurde und somit für die weitere Suche nicht mehr berücksichtigt werden muss ($\vec{b}(i)=1$, sonst $\vec{b}(i)=0$). -Ausgehend vom Startknoten $a$ wird nun anhand der Matrix $A$ in der Spalte $a$ nach dem kleinsten Eintrag gesucht. Somit wird der Folgeknoten $c$ gefunden. Dieser Vorgang wird nun wiederholt, wobei jedoch sämtliche von Knoten $a$ und $c$ erreichbaren Knoten berücksichtigt werden, die noch nicht besucht wurden. In anderen Worten alle nicht verschwindenden Einträge $i$ der Spalten $a$ und $c$ der Matrix $A$, für welche gilt $\vec{b}(i)=0$. +Ausgehend vom Startknoten $a$ wird nun anhand der Matrix $A$ in der Spalte $a$ nach dem kleinsten Eintrag gesucht. Somit wird der Folgeknoten $c$ gefunden. Dieser Vorgang wird nun wiederholt, wobei jedoch sämtliche von Knoten $a$ und $c$ erreichbaren Knoten berücksichtigt werden, die noch nicht besucht wurden. In anderen Worten alle nicht verschwindenden Einträge $i$ der Spalten $a$ und $c$ der Matrix $A$, für welche gilt $\vec{b}(i)=0$. Ausschlaggebend für die folgende Auswahl ist die Summe der kummulierten Kantengewichte und des Kantengewichts des nächsten Knotens. Als Beispiel zur Erreichung von Knoten $k$ über Knoten $j$: +\begin{equation} +\vec{d}(k)=\vec{d}(j)+A(k,j) +\end{equation} Diese Iteration wird solang durchgeführt, bis der Folgeknoten dem Zielknoten entspricht. \subsection{A*-Algorithmus} -Suchalgorithmen werden nach einfachen (uninformierte) und heuristischen (informierten) Algorithmen unterschieden. Während einfache Algorithmen den Suchraum intuitiv durchsuchen, beziehen heuristische Algorithmen Wissen über den Suchraum mit ein. -Der A*-Algorithmus geht auf seine Erfinder Peter Hart, Nils Nilsson und Bertram Raphael zurück, die den Algorithmus erstmals im Jahr 1968 beschrieben. -Der A*-Algorithmus ist ein heuristischer Suchalgorithmus, der den kürzesten Pfad zwischen zwei Knoten in einem Graphen mit positiven Kantengewichten berechnet. -Im Gegensatz zu einfachen Suchalgorithmen, wird beim A*-Algorithmus eine Schätzfunktion, die sogenannte Heuristik, verwendet. Dies ermöglicht ein zielgerichtetes Suchen und gleichzeitig wird die Laufzeit verringert. -Ausserdem findet der A*-Algorithmus immer eine optimale Lösung, sofern eine vorhanden ist. -Der A*-Algorithmus gilt als Erweiterung des Dijkstra-Algorithmus. +Der A*-Algorithmus basiert auf dem Dijkstra-Algorithmus, verwendet jedoch eine Heuristik zur Abschätzung der günstigsten Suchrichtung. Somit handelt es sich um einen informierten Greedy-Algorithmus, der abhängig von der verwendeten Heuristik auch optimal sein kann. Er wurde von Peter Hart, Nils Nilsson und Bertram Raphael entwickelt. \subsection{Anwendung A*-Algorithmus} Wie oben erwähnt basiert der A*-Algorithmus auf dem Shortest-Path-Algorithmus von Dijkstra. Gemäss dem Algorihtmus von Dijkstra werden von einem Startknoten aus die jeweiligen Nachbarknoten, die Nachbarknoten der Nachbarknoten usw. verarbeitet. Die Kantengewichte werden dabei aufsummiert und die Priorität wird auf die Kante gelegt, die das geringste Gewicht aufweist. Mit diesem Verfahren wird sichergestellt, dass die erste gefundene Lösung auch eine optimale Lösung darstellt.\\ -Die Kantengewichte werden für jeden Knoten in Form einer Funktion dargestellt -\begin{equation}f(n)=g(n)\end{equation} mit -\begin{equation}g(n)=\text{Summe aller Kantengewichte vom Startknoten bis n}\end{equation}\\ -Der A*-Algorithmus erweitert die Vorgehensweise des Algorithmus von Dijkstra um die Heuristik $h(n)$, die für jeden Knoten $n$ die geschätzte Entfernung zum Zielknoten beschreibt. -Somit gilt: -\begin{equation}f(n)=g(n)+h(n)\end{equation}\\ -Wie auch der Algorithmus von Dijkstra findet der A*-Algorithmus die optimalste Lösung. +Der A*-Algorithmus unterscheidet sich vom Dijkstra-Algorithmus dahingehend, dass bei der Auswahl des Folgeknotens, nicht nur die Summe der Kantengewichte $\vec{d}(j)+A(k,j)$, sondern zusätzlich die für jeden Knoten definierte Abschätzfunktion $f(k)$ hinzuaddiert wird. Dies passiert jedoch nur bei der \emph{Auswahl} des Folgeknotens. Der Wert von $f(k)$ wird nicht im Eintrag $\vec{d}(k)$ gespeichert. Somit wird gewährleistet, dass der gefundene Pfad, der Summe der Kantengewichte entspricht. \subsection{Floyd-Warshall-Algorithmus} Der Floyd-Warshall-Algorithmus, auch Tripel-Algorithmus genannt, wurde erstmals im Jahr 1962 von seinen Namensgebern Robert Floyd und Stephen Warshall vorgestellt. -- cgit v1.2.1 From 0d84587614eb3a91f0a63e0d2ab2eb3926b2f95c Mon Sep 17 00:00:00 2001 From: Pascal Schmid <81317360+paschost@users.noreply.github.com> Date: Tue, 27 Jul 2021 15:21:30 +0200 Subject: subsection "Euklidische Heurstik" verschoben --- buch/papers/verkehr/section1.tex | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/verkehr/section1.tex b/buch/papers/verkehr/section1.tex index 6f8f2b7..1a4ecbb 100644 --- a/buch/papers/verkehr/section1.tex +++ b/buch/papers/verkehr/section1.tex @@ -34,6 +34,10 @@ Wie oben erwähnt basiert der A*-Algorithmus auf dem Shortest-Path-Algorithmus v Der A*-Algorithmus unterscheidet sich vom Dijkstra-Algorithmus dahingehend, dass bei der Auswahl des Folgeknotens, nicht nur die Summe der Kantengewichte $\vec{d}(j)+A(k,j)$, sondern zusätzlich die für jeden Knoten definierte Abschätzfunktion $f(k)$ hinzuaddiert wird. Dies passiert jedoch nur bei der \emph{Auswahl} des Folgeknotens. Der Wert von $f(k)$ wird nicht im Eintrag $\vec{d}(k)$ gespeichert. Somit wird gewährleistet, dass der gefundene Pfad, der Summe der Kantengewichte entspricht. +\subsection{Euklidische Heuristik} +Bei Verkehrsnetzen ist die euklidische Distanz eine gängige und zuverlässige Heurstik. Dabei wird zu den effektiven Reisekosten zum aktuellen Knoten die euklidische Distanz bis zum Zielknoten hinzuaddiert. Dadurch wird die Kostenfunktion konsequent nie überschätzt. Dies stellt eine Voraussetzung an eine zulässige Heuristik dar. +Was bei einem physischen Verkehrsnetz einfach zu bewältigen ist, da Koordinaten von Verkehrsnetzen zur Berechnung der Distanz verwendet werden können, ist bei virtuellen Netzwerken (z.B. Servernetzen) entweder nicht möglich, oder nicht relevant. + \subsection{Floyd-Warshall-Algorithmus} Der Floyd-Warshall-Algorithmus, auch Tripel-Algorithmus genannt, wurde erstmals im Jahr 1962 von seinen Namensgebern Robert Floyd und Stephen Warshall vorgestellt. Der Floyd-Warshall-Algorithmus sucht kürzeste Wege innerhalb eines Graphen. Er ermittelt aber nicht nur die Distanz zwischen zwei Knoten, sondern berechnet die kürzesten Wege zwischen allen Knotenpaaren eines gewichteten Graphen. Somit werden die günstigsten Wege zwischen allen Paaren von Knoten berechnet. Der Floyd-Warhshall-Algrithmus kann ausserdem mit negativen Kantengewichten umgehen, sofern der Graph aber keinen negativen Kreis (Zyklus) aufweist. Ist dies der Fall, führt der Algorithmus zu einem falschen Ergebnis. @@ -54,9 +58,7 @@ Die aktuelle Gewichtung der Pfade wird mit \begin{equation}d[i, j]=min[d[i,j], d[i,k] + d[k,i]]\end{equation} ermittelt. -\subsection{Euklidische Heuristik} -Bei Verkehrsnetzen ist die euklidische Distanz eine gängige und zuverlässige Heurstik. Dabei wird zu den effektiven Reisekosten zum aktuellen Knoten die euklidische Distanz bis zum Zielknoten hinzuaddiert. Dadurch wird die Kostenfunktion konsequent nie überschätzt. Dies stellt eine Voraussetzung an eine zulässige Heuristik dar. -Was bei einem physischen Verkehrsnetz einfach zu bewältigen ist, da Koordinaten von Verkehrsnetzen zur Berechnung der Distanz verwendet werden können, ist bei virtuellen Netzwerken (z.B. Servernetzen) entweder nicht möglich, oder nicht relevant. + \section{PageRank-Algorithmus} Der PageRank-Algorithmus wurde von den Gründern von Google, Larry Page und Sergey Brin im Jahr 1996 entwickelt und zum Patent angemeldet. Zwei Jahre später gründeten sie ihr Unternehmen Google Inc.. -- cgit v1.2.1 From 6437ce5c4a0b281fbd116bc42dbcdc3dce908aaf Mon Sep 17 00:00:00 2001 From: Pascal Schmid <81317360+paschost@users.noreply.github.com> Date: Tue, 27 Jul 2021 15:35:28 +0200 Subject: Anpassungen Folyd-Warshall-Algorithmus --- buch/papers/verkehr/section1.tex | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/verkehr/section1.tex b/buch/papers/verkehr/section1.tex index 1a4ecbb..d34d31e 100644 --- a/buch/papers/verkehr/section1.tex +++ b/buch/papers/verkehr/section1.tex @@ -35,24 +35,22 @@ Wie oben erwähnt basiert der A*-Algorithmus auf dem Shortest-Path-Algorithmus v Der A*-Algorithmus unterscheidet sich vom Dijkstra-Algorithmus dahingehend, dass bei der Auswahl des Folgeknotens, nicht nur die Summe der Kantengewichte $\vec{d}(j)+A(k,j)$, sondern zusätzlich die für jeden Knoten definierte Abschätzfunktion $f(k)$ hinzuaddiert wird. Dies passiert jedoch nur bei der \emph{Auswahl} des Folgeknotens. Der Wert von $f(k)$ wird nicht im Eintrag $\vec{d}(k)$ gespeichert. Somit wird gewährleistet, dass der gefundene Pfad, der Summe der Kantengewichte entspricht. \subsection{Euklidische Heuristik} -Bei Verkehrsnetzen ist die euklidische Distanz eine gängige und zuverlässige Heurstik. Dabei wird zu den effektiven Reisekosten zum aktuellen Knoten die euklidische Distanz bis zum Zielknoten hinzuaddiert. Dadurch wird die Kostenfunktion konsequent nie überschätzt. Dies stellt eine Voraussetzung an eine zulässige Heuristik dar. -Was bei einem physischen Verkehrsnetz einfach zu bewältigen ist, da Koordinaten von Verkehrsnetzen zur Berechnung der Distanz verwendet werden können, ist bei virtuellen Netzwerken (z.B. Servernetzen) entweder nicht möglich, oder nicht relevant. +Bei Verkehrsnetzen ist die euklidische Distanz eine gängige und zuverlässige Heurstik. Dabei wird zu den effektiven Reisekosten zum aktuellen Knoten die euklidische Distanz bis zum Zielknoten hinzuaddiert. Dadurch wird die Kostenfunktion konsequent nie überschätzt. Dies stellt eine Voraussetzung an eine zulässige Heuristik dar. Unter Verwendung dieser Heuristik gilt der A*-Algorithmus als optimal. + +Was bei einem physischen Verkehrsnetz einfach zu bewältigen ist, da Koordinaten von Verkehrsnetzen zur Berechnung der Distanz verwendet werden können, ist bei virtuellen Netzwerken (z.B. Servernetzen) entweder nicht möglich, oder nicht relevant. Hier können hingegen andere Eigenschaften des Netzwerks verwendet werden, auf welche in diesem Paper nicht weiter eingegangen wird. \subsection{Floyd-Warshall-Algorithmus} Der Floyd-Warshall-Algorithmus, auch Tripel-Algorithmus genannt, wurde erstmals im Jahr 1962 von seinen Namensgebern Robert Floyd und Stephen Warshall vorgestellt. Der Floyd-Warshall-Algorithmus sucht kürzeste Wege innerhalb eines Graphen. Er ermittelt aber nicht nur die Distanz zwischen zwei Knoten, sondern berechnet die kürzesten Wege zwischen allen Knotenpaaren eines gewichteten Graphen. Somit werden die günstigsten Wege zwischen allen Paaren von Knoten berechnet. Der Floyd-Warhshall-Algrithmus kann ausserdem mit negativen Kantengewichten umgehen, sofern der Graph aber keinen negativen Kreis (Zyklus) aufweist. Ist dies der Fall, führt der Algorithmus zu einem falschen Ergebnis. Ein Kreis (Zyklus) in einem Graphen ist ein Weg, bei dem Start- und Endpunkt den gleichen Knoten aufweisen. Dieser wird negativ, wenn die Summe der gewichteten Kanten kleiner als Null wird.\\ -Der Floyd-Warshall-Algorithmus besteht grundsätzlich aus Floyd's Berechnung der kürzesten Distanzen zwischen zwei Knoten und Warshall's Konstruktion der kürzesten Wege. Werden diese beiden Teilgebiete zusammengefügt, ergibt sich der Floyd-Warshall-Algorithmus. \subsection{Anwendung Floyd-Warshall-Algorithmus} -Wie oben erwähnt, besteht der Floyd-Warshall-Algorithmus aus dem Teil von Floyd zur Berechnung der kürzesten Pfade und dem Teil von Warshall zur Konstruktion der kürzesten Pfade. - %THEORIE... -Als erstes wird eine Gewichtsmatrix $W$ mit den Matrixeinträgen $W[i, j]$ erstellt. +In einem ersten Schritt wird eine Gewichtsmatrix $W$ mit den Matrixeinträgen $W[i, j]$ erstellt. Der Algorithmus berechnet danach in einer Hauptschleife alle Knoten $k$ von 1 bis $n$. Dabei versucht er in jeder Iteration alle Wege von $i$ nach $j$ durch die Wege $(i, k)$ und $(k, j)$ zu verbessern. -Falls dieser mögliche Umweg zu einer Verbesserung führt, wird der Algorithmus aktualisiert. +Falls dieser mögliche Umweg zu einer Verbesserung führt, wird der entsprechende Eintrag aktualisiert. Die aktuelle Gewichtung der Pfade wird mit \begin{equation}d[i, j]=min[d[i,j], d[i,k] + d[k,i]]\end{equation} -- cgit v1.2.1 From 04e2c97e5885542ee0beda05da749964a44cf1e1 Mon Sep 17 00:00:00 2001 From: Pascal Schmid <81317360+paschost@users.noreply.github.com> Date: Tue, 27 Jul 2021 15:39:06 +0200 Subject: Anpassungen PageRank-Algorithmus --- buch/papers/verkehr/section1.tex | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/verkehr/section1.tex b/buch/papers/verkehr/section1.tex index d34d31e..5abd107 100644 --- a/buch/papers/verkehr/section1.tex +++ b/buch/papers/verkehr/section1.tex @@ -59,11 +59,9 @@ ermittelt. \section{PageRank-Algorithmus} -Der PageRank-Algorithmus wurde von den Gründern von Google, Larry Page und Sergey Brin im Jahr 1996 entwickelt und zum Patent angemeldet. Zwei Jahre später gründeten sie ihr Unternehmen Google Inc.. -Beim PageRank-Algorithmus handelt es sich um den Algorithmus von Google, aus dem die Google-Matrix abgeleitet wird. -Die Google-Matrix ist eine immens grosse Matrix mit Millionen Zeilen und Spalten, die für die schnelle und vor allem exakte Bestimmung der PageRanks (Gewichtung) eine grosse Bedeutung hat. -Der PageRank-Algorithmus analysiert und gewichtet beispielsweise die Verlinkungsstruktur verschiedener Websites des World Wide Web anhand ihrer Struktur. -Der PageRank wird umso höher, je mehr hochwertige Links auf eine Webseite verweisen und je höher die Gewichtung einer Webseite ist, desto grösser ist der Effekt.\\ +Der PageRank-Algorithmus wurde von den Gründern von Google, Larry Page und Sergey Brin im Jahr 1996 entwickelt und zum Patent angemeldet. Zwei Jahre später gründeten sie ihr Unternehmen Google Inc. +Beim PageRank-Algorithmus handelt es sich nicht um einen Suchalgorithmus, stattdessen werden Knoten aufgrund der Vernetzung des vorliegenden Graphen bewertet. +Verwendet wird er beispielsweise um die Verlinkungsstruktur verschiedener Websites des World Wide Web anhand ihrer Struktur zu bewerten und relevante Suchergebnisse zu ermittteln. Der PageRank wird umso höher, je mehr hochwertige Links auf eine Webseite verweisen und je höher die Gewichtung einer Webseite ist, desto grösser ist der Effekt.\\ Dabei handelt es sich um einen iterativen Prozess. Ausgegangen wird von der Adjazenz-Matrix $A$, für welche gilt. %THEORIE... -- cgit v1.2.1 From 226acbde873393484d3abf3db1160672826d5241 Mon Sep 17 00:00:00 2001 From: Pascal Schmid <81317360+paschost@users.noreply.github.com> Date: Tue, 27 Jul 2021 15:45:31 +0200 Subject: Anpassungen Abschnitt Versuchsreihe --- buch/papers/verkehr/section2.tex | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/verkehr/section2.tex b/buch/papers/verkehr/section2.tex index 638d9dd..4de0b24 100644 --- a/buch/papers/verkehr/section2.tex +++ b/buch/papers/verkehr/section2.tex @@ -1,12 +1,12 @@ \section{Versuchsreihe} \label{section:verkehr/versuchsreihe} -Um zwei der vorgestellten Suchalgorithmen zu vergleichen, wurden zwei Versuchsreihen erstellt. Dazu wurden in einem ersten Schritt zufällige Netzwerke generiert und anschliessend der \emph{Dijkstra}-, sowie der \emph{$A^*$}-Algorithmus auf das Netzwerk angewandt. -Dieser Vorgang wurde für die zufällig generierten Netzwerke mit einer Knotenzahl von 10, 20 50, 100, 200, 500 und 1000 je zehnmal repetiert. -Die Anzahl der Knoten im abgesuchten Netzwerk wirkt sich direkt auf die Rechenzeit aus. Der \emph{Dijkstra}-Algorithmus weist eine Zeitkomplexität von $\mathcal{O}(E\log{}V)$ auf, wobei $E$ die Anzahl Kanten (engl. \emph{edges}) und $V$ die Anzahl Knoten (engl. \emph{vertices}) darstellt. -Für den \emph{A*}-Algorithmus ist die Zeitkomplexität einerseits abhängig von der verwendeten Heuristik, andererseits aber auch vom vorliegenden Netzwerk selbst. Aus diesem Grund lässt sich keine defintive Angabe zu $\mathcal{O}$ machen. +Um zwei der vorgestellten Suchalgorithmen zu vergleichen, wurden zwei Versuchsreihen erstellt. Dazu wurden in einem ersten Schritt zufällige Netzwerke generiert und anschliessend der Dijkstra- und der A*-Algorithmus auf das Netzwerk angewandt. +Dieser Vorgang wurde für die zufällig generierten Netzwerke mit einer Knotenzahl von 10, 20 50, 100, 200, 500 und 1000 je zehnmal wiederholt. +Die Anzahl der Knoten im abgesuchten Netzwerk wirkt sich direkt auf die Rechenzeit aus. Der \emph{Dijkstra}-Algorithmus weist eine Zeitkomplexität von $\mathcal{O}(E\log{}V)$ auf, wobei $E$ die Menge der Kanten (engl. \emph{edges}) und $V$ die Menge der Knoten (engl. \emph{vertices}) des Graphen $G$ darstellt. +Für den A*-Algorithmus ist die Zeitkomplexität einerseits abhängig von der verwendeten Heuristik, andererseits aber auch vom vorliegenden Netzwerk selbst. Aus diesem Grund lässt sich keine defintive Angabe zur Zeitkomplexität machen. -Die beiden Versuchsreihen unterscheiden sich zudem dahingehend, dass der Start- und Zielknoten bei der ersten Versuchsreihe im Netzwerk diametral gegenüber liegen. Dadurch gehen viele Knoten verloren, welcher \emph{Dijkstra} als uninformierter Suchalgorithmus absuchen würde. In der zweiten Veruschsreihe werden hingegen Start- un Zielpunkt zufällig im Netzwerk ausgewählt. Es wird deshalb erwwartet, dass die Unterschiede in der Rechenzeit der beiden Algorithmen in der zweiten Versuchsreihe deutlich ausgeprägter sind. +Die beiden Versuchsreihen unterscheiden sich zudem dahingehend, dass der Start- und Zielknoten bei der ersten Versuchsreihe im Netzwerk diametral gegenüber liegen. Dadurch gehen viele Knoten verloren, welcher \emph{Dijkstra} als uninformierter Suchalgorithmus absuchen würde. In der zweiten Veruschsreihe werden hingegen Start- un Zielpunkt zufällig im Netzwerk ausgewählt. Es wird deshalb erwartet, dass die Unterschiede in der Rechenzeit der beiden Algorithmen in der zweiten Versuchsreihe deutlich ausgeprägter sind. \subsection{Einfluss der Knotenzahl auf die Rechenzeit} \label{verkehr:Knotenzahl} @@ -19,9 +19,9 @@ Die beiden Versuchsreihen unterscheiden sich zudem dahingehend, dass der Start- \label{verkehr:Vr1} \end{figure} -In \ref{verkehr:Vr1} ist ersichtlich, dass der Unterschied in der Rechenzeit zwischen \emph{Dijkstra} und \emph{A*} erst aber einer Knotenzahl von ca. $n=500$ merklich ansteigt. Dieses etwas überraschende Resultat ist darauf zurückzuführen, dass bei steigender Knotenzahl die Abweichung des effektiven kürzesten Pfades von der Distanz der Luftlinie abnimmt. +In \ref{verkehr:Vr1} ist ersichtlich, dass der Unterschied in der Rechenzeit zwischen Dijkstra und A* erst ab einer Knotenzahl von ca. $n=500$ merklich ansteigt. Dieses etwas überraschende Resultat ist darauf zurückzuführen, dass bei steigender Knotenzahl die Abweichung des effektiven kürzesten Pfades von der Distanz der Luftlinie abnimmt. Die Effektivität von \emph{A*} mit euklidischer Heuristik ist wiederum grösser, wenn die Abweichung des kürzesten Pfads von der Luftlinie minimal ist. -Bei Betrachtung von \ref{verkehr:pathDifference} wird dies ersichtlich, wobei die relative Abweichung erstaunlicherweise bei einer Knotenzahl von $n=100$ maximal ist und nach $n=500$ nur noch marginal abnimmt. +Abbildung \ref{verkehr:pathDifference} illustriert dies, wobei die relative Abweichung erstaunlicherweise bei einer Knotenzahl von $n=100$ maximal ist und nach $n=500$ nur noch marginal abnimmt. \begin{figure} \centering @@ -36,13 +36,13 @@ Bei Betrachtung von \ref{verkehr:pathDifference} wird dies ersichtlich, wobei di \begin{figure} \centering -\includegraphics[width=12cm]{papers/verkehr/figures/chart_Vr2.png}\\ +\includegraphics[width=12cm]{papers/verkehr/figures/chart_Vr2.png} \caption{Gemessene Rechenzeiten der zweiten Versuchsreihe in Abhängigkeit der Knotenzahl.} \label{verkehr:Vr2} \end{figure} -Zum Vergleich der Resultate in \ref{verkehr:Knotenzahl} zeigt \ref{verkehr:Vr2} die Rechenzeiten der zweiten Versuchsreihe, in welcher die Start- und Zielknoten zufällig im Netzwerk ausgewählt wurden. Einerseits ist eine reduzierte durchschnittliche Rechenzeit festzustellen, was schlicht daran liegt, dass die zufällige Wahl der Knoten dazu führt, dass diese tendenziell weniger weit auseinander liegen.\\ -Des weiteren ist festzustellen, dass sich die Unterschiede der Rechenzeiten zwischen \emph{Dijkstra} und \emph{A*} deutlich früher abzeichnen. Dieses Phänomen lässt sich leicht durch die zielgerichtete Suche des \emph{A*}-Algorithmus erklären. +Zum Vergleich der Resultate in Abschnitt \ref{verkehr:Knotenzahl} zeigt Abbildung \ref{verkehr:Vr2} die Rechenzeiten der zweiten Versuchsreihe, in welcher die Start- und Zielknoten zufällig im Netzwerk ausgewählt wurden. Einerseits ist eine reduzierte durchschnittliche Rechenzeit festzustellen, was daran liegt, dass die zufällige Wahl der Knoten dazu führt, dass diese tendenziell weniger weit auseinander liegen. +Des weiteren ist festzustellen, dass sich die Unterschiede der Rechenzeiten zwischen Dijkstra und A* deutlich früher abzeichnen. Dieses Phänomen lässt sich leicht durch die zielgerichtete Suche des A*-Algorithmus erklären. \begin{figure} \centering @@ -52,4 +52,4 @@ Des weiteren ist festzustellen, dass sich die Unterschiede der Rechenzeiten zwis \label{verkehr:Comparison} \end{figure} -In \ref{verkehr:Comparison} ist ersichtlich, dass bei einem im Netzwerk liegenden Startknoten die zielgerichtete Suche von \emph{A*} deutlich ausgeprägter zum Zuge kommt, als wenn dieser am Rand des Netzwerks liegen würde. +In Abbildung \ref{verkehr:Comparison} ist ersichtlich, dass bei einem im Netzwerk liegenden Startknoten die zielgerichtete Suche von \emph{A*} deutlich ausgeprägter zum Zuge kommt, als wenn dieser am Rand des Netzwerks liegen würde. -- cgit v1.2.1 From 45e525ce336712b0b75d2431b130d09835857382 Mon Sep 17 00:00:00 2001 From: Pascal Schmid <81317360+paschost@users.noreply.github.com> Date: Tue, 27 Jul 2021 15:48:46 +0200 Subject: Anpassungen Abschnitt Ausblick --- buch/papers/verkehr/section3.tex | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/verkehr/section3.tex b/buch/papers/verkehr/section3.tex index 99a0d92..9aa8ae4 100644 --- a/buch/papers/verkehr/section3.tex +++ b/buch/papers/verkehr/section3.tex @@ -1,8 +1,9 @@ \section{Ausblick} \subsection{Optimierungsprobleme bei Graphen} -Das Finden eines kürzesten Pfades, sprich die Minimierung der Summe der Kantengewichte, ist nur eines der Optimierungsprobleme, die sich im Bereich von Grafen aufstellen lassen. Verschiedene, ähnliche Problemstellungen lassen sich teilweise mit denselben Algorithmen lösen.\\ -Im Bereich vom Computernetzwerken könnte zum Beispiel die Minimierung der Knotenzahl zur Datenübbertragung von Interesse sein. Dabei lässt sich dieses Problem einfach dadurch lösen, dass dem \emph{Dijkstra}, oder dem \emph{A*}-Algorithmus anstelle der Graph-Matrix (mit Kantengewichten als Einträgen) die Adjazenz-Matrix als Argument übergeben wird. Der gefundene kürzeste Pfad enstpricht der Anzahl benutzter Kanten, bzw. der Anzahl besuchter Knoten. +Das Finden eines kürzesten Pfades, sprich die Minimierung der Summe der Kantengewichte, ist nur eines der Optimierungsprobleme, die sich im Bereich von Graphen aufstellen lassen. Verschiedene, ähnliche Problemstellungen lassen sich teilweise mit denselben Algorithmen lösen. + +Im Bereich vom Computernetzwerken könnte zum Beispiel die Minimierung der Knotenzahl zur Datenübbertragung von Interesse sein. Dabei lässt sich dieses Problem einfach dadurch lösen, dass dem Dijkstra- oder dem A*-Algorithmus anstelle der gewichteten Adjazenz-Matrix (mit Kantengewichten als Einträgen) die ungewichtet Adjazenz-Matrix als Argument übergeben wird. Der gefundene kürzeste Pfad enstpricht der Anzahl benutzter Kanten, bzw. der Anzahl besuchter Knoten. \subsection{Wahl der Heuristik} -Ein grundlegendes Problem bei der Anwendung des \emph{A*} oder ähnlicher informierter Suchalgorithmen ist die Wahl der Heurstik. Bei einem physischen Verkehrsnetz kann bspw. die euklidische Distanz problems ermittelt werde. Bei einem regionalen Netzwerk ist die Annahme eines orthogonalen X-Y-Koordinatenetzes absolut ausreichend. Dies gilt z.B. auch für das Vernessungsnetz der Schweiz\footnote{Die aktuelle Schweizer Referenzsystem LV95 benutzt ein E/N-Koordinatennetz, wobei aufgrund zunehmender Abweichung vom Referenzellipsoid bei grosser Entfernung vom Nullpunkt ein Korrekturfaktor für die Höhe angebracht werden muss.} Bei überregionalen Netzwerken (Beispiel: Flugverbindungen) ist hingegen eine Berechnung im dreidimensionalen Raum, oder vereinfacht als Projektion auf das Geoid notwendig. Anonsten ist der Ablauf bei der Ausführung des Algorithmus allerdings identisch.\\ +Ein grundlegendes Problem bei der Anwendung des A* oder ähnlicher informierter Suchalgorithmen ist die Wahl der Heurstik. Bei einem physischen Verkehrsnetz kann bspw. die euklidische Distanz problems ermittelt werde. Bei einem regionalen Netzwerk ist die Annahme eines orthogonalen X-Y-Koordinatenetzes absolut ausreichend. Dies gilt z.B. auch für das Vernessungsnetz der Schweiz\footnote{Die aktuelle Schweizer Referenzsystem LV95 benutzt ein E/N-Koordinatennetz, wobei aufgrund zunehmender Abweichung vom Referenzellipsoid bei grosser Entfernung vom Nullpunkt ein Korrekturfaktor für die Höhe angebracht werden muss.} Bei überregionalen Netzwerken (Beispiel: Flugverbindungen) ist hingegen eine Berechnung im dreidimensionalen Raum, oder vereinfacht als Projektion auf das Geoid notwendig. Anonsten ist der Ablauf bei der Ausführung des Algorithmus allerdings identisch. In nicht-physischen Netzwerken stellt sich jedoch eine zweite Problematik. Da eine physische Distanz entweder nicht ermittelt werden kann, oder aber nicht ausschlaggebend ist, sind andere Netzwerk-Eigenschaften zur Beurteilung beizuziehen. Die Zuverlässigkeit ist dabei aber in den meisten Fällen nicht vergleichbar hoch, wie bei der euklidischen Heuristik. Oftmals werden deshalb bei derartigen Problem auch Algorithmen angewendet, die eine deutlich optimierte Zeitkomplexität aufweisen, dafür aber nicht mit Sicherheit den effizienstesten Pfad finden. -- cgit v1.2.1 From c3c7a6320004974ba56eb98305b5ac9fa13d4a52 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Tue, 27 Jul 2021 17:10:19 +0200 Subject: save --- buch/papers/reedsolomon/dtf.tex | 20 +++-- buch/papers/reedsolomon/experiments/codiert.txt | 96 ---------------------- buch/papers/reedsolomon/experiments/decodiert.txt | 96 ---------------------- buch/papers/reedsolomon/experiments/empfangen.txt | 96 ---------------------- buch/papers/reedsolomon/experiments/fehler.txt | 96 ---------------------- buch/papers/reedsolomon/experiments/locator.txt | 96 ---------------------- buch/papers/reedsolomon/experiments/signal.txt | 96 ---------------------- buch/papers/reedsolomon/experiments/syndrom.txt | 96 ---------------------- buch/papers/reedsolomon/figures/plotfft.pdf | Bin 60217 -> 59617 bytes buch/papers/reedsolomon/figures/polynom2.pdf | Bin 20327 -> 20327 bytes buch/papers/reedsolomon/standalone/standalone.pdf | Bin 1782700 -> 1828186 bytes buch/papers/reedsolomon/tikz/plotfft.tex | 6 +- 12 files changed, 15 insertions(+), 683 deletions(-) delete mode 100644 buch/papers/reedsolomon/experiments/codiert.txt delete mode 100644 buch/papers/reedsolomon/experiments/decodiert.txt delete mode 100644 buch/papers/reedsolomon/experiments/empfangen.txt delete mode 100644 buch/papers/reedsolomon/experiments/fehler.txt delete mode 100644 buch/papers/reedsolomon/experiments/locator.txt delete mode 100644 buch/papers/reedsolomon/experiments/signal.txt delete mode 100644 buch/papers/reedsolomon/experiments/syndrom.txt (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/dtf.tex b/buch/papers/reedsolomon/dtf.tex index ffe98f8..73d0d12 100644 --- a/buch/papers/reedsolomon/dtf.tex +++ b/buch/papers/reedsolomon/dtf.tex @@ -7,21 +7,21 @@ \label{reedsolomon:section:dtf}} \rhead{Umwandlung mit DTF} Um die Polynominterpolation zu umgehen, gehen wir nun über in die Fourientransformation. -Dies wird weder eine erklärung der Forientransorfmation noch ein genauer gebrauch -für den Reed-Solomon-Code. Dieser Abschnitt zeigt nur wie die Fourientransformation auf Fehler reagiert. +Dies wird weder eine erklärung der Forientransorfmation noch ein genauer gebrauchfür den Reed-Solomon-Code. +Dieser Abschnitt zeigt nur wie die Fourientransformation auf Fehler reagiert. wobei sie dann bei späteren Berchnungen ganz nützlich ist. -\subsection{Diskrete Fourientransformation Zusamenhang +\subsection{Diskrete Fourietransformation Zusamenhang \label{reedsolomon:subsection:dtfzusamenhang}} -Die Diskrete Fourientransformation ist definiert als +Die Diskrete Fourietransformation ist definiert als \begin{equation} \hat{c}_{k} = \frac{1}{N} \sum_{n=0}^{N-1} {f}_n \cdot e^{-\frac{2\pi j}{N} \cdot kn} - \label{reedsolomon:DFT} + ,\label{reedsolomon:DFT} \end{equation} -, wenn man nun +wenn man nun \begin{equation} w = e^{-\frac{2\pi j}{N} k} @@ -38,8 +38,12 @@ ersetzte, und $N$ konstantbleibt, erhält man was überaust ähnlich zu unserem Polynomidee ist. \subsection{Übertragungsabfolge \label{reedsolomon:subsection:Übertragungsabfolge}} - -\begin{enumerate}[1)] +Der Auftrag ist nun 64 Daten zu übertragen und nach 16 Fehler abzusicheren, +16 Fehler erkennen und rekonstruieren. +Dieser Auftrag soll mittels Fouriertransformation bewerkstelligt werden. +In der Abbildung \ref{reedsolomon:subsection:Übertragungsabfolge} sieht man dies Schritt für schritt, +und hier werden die einzelne Schritte erklärt. +\begin{enumerate}[(1)] \item Das Signal hat 64 die Daten, Zahlen welche übertragen werden sollen. Dabei zusätzlich nach 16 Fehler abgesichert, macht insgesamt 96 Übertragungszahlen. \item Nun wurde mittels der schnellen diskreten Fourientransformation diese 96 codiert. diff --git a/buch/papers/reedsolomon/experiments/codiert.txt b/buch/papers/reedsolomon/experiments/codiert.txt deleted file mode 100644 index 4a481d8..0000000 --- a/buch/papers/reedsolomon/experiments/codiert.txt +++ /dev/null @@ -1,96 +0,0 @@ -0,284 -1,131.570790435043 -2,41.9840308053375 -3,12.1189172092243 -4,23.8408857476069 -5,69.1793197789512 -6,24.0186013379153 -7,37.3066577242559 -8,18.2010889773887 -9,12.3214904922455 -10,15.6627133315015 -11,24.5237955316204 -12,32.1114345314062 -13,44.9845039238714 -14,13.5324640263625 -15,10.1736266929292 -16,4.58257569495584 -17,23.217268502288 -18,16.5769107917917 -19,6.89948680823017 -20,4.84567134895776 -21,10.4219666223433 -22,43.6179140616243 -23,35.9073375743642 -24,15.0332963783729 -25,21.7594021268945 -26,23.2496572716993 -27,17.9815599423852 -28,11.3577742151117 -29,38.467599433197 -30,28.3035029562577 -31,9.54321919833388 -32,21.377558326432 -33,17.6292439561917 -34,12.6951848921471 -35,20.0667752354841 -36,22.9097309529208 -37,8.78894645948548 -38,13.360682005498 -39,25.1757616314718 -40,38.0357773686457 -41,18.4633287776253 -42,19.0584505869806 -43,10.8631093309173 -44,12.6147770818983 -45,12.5398140021274 -46,34.901983501949 -47,22.3480442021702 -48,6 -49,22.3480442021702 -50,34.901983501949 -51,12.5398140021274 -52,12.6147770818983 -53,10.8631093309173 -54,19.0584505869806 -55,18.4633287776253 -56,38.0357773686457 -57,25.1757616314718 -58,13.360682005498 -59,8.78894645948548 -60,22.9097309529208 -61,20.0667752354841 -62,12.6951848921471 -63,17.6292439561917 -64,21.377558326432 -65,9.54321919833388 -66,28.3035029562577 -67,38.467599433197 -68,11.3577742151117 -69,17.9815599423852 -70,23.2496572716993 -71,21.7594021268945 -72,15.0332963783729 -73,35.9073375743642 -74,43.6179140616243 -75,10.4219666223433 -76,4.84567134895776 -77,6.89948680823017 -78,16.5769107917917 -79,23.217268502288 -80,4.58257569495584 -81,10.1736266929292 -82,13.5324640263625 -83,44.9845039238714 -84,32.1114345314062 -85,24.5237955316204 -86,15.6627133315015 -87,12.3214904922455 -88,18.2010889773887 -89,37.3066577242559 -90,24.0186013379153 -91,69.1793197789512 -92,23.8408857476069 -93,12.1189172092243 -94,41.9840308053375 -95,131.570790435043 diff --git a/buch/papers/reedsolomon/experiments/decodiert.txt b/buch/papers/reedsolomon/experiments/decodiert.txt deleted file mode 100644 index f6221e6..0000000 --- a/buch/papers/reedsolomon/experiments/decodiert.txt +++ /dev/null @@ -1,96 +0,0 @@ -0,6.05208333333333 -1,6.02602539785853 -2,0.0261327016093151 -3,5.98927158561317 -4,4.019445724874 -5,0.0247005083663722 -6,4.97798278395618 -7,1.95246440445439 -8,0.974000110512201 -9,2.00528527696027 -10,1.00071804528155 -11,1.97630907888264 -12,0.0232923747656228 -13,6.01302820392331 -14,3.03567381915226 -15,5.02435590137329 -16,7.00526061008995 -17,5.00739608089369 -18,5.02211514480064 -19,4.02175864806658 -20,1.00236543833726 -21,4.98147315261261 -22,8.97728828610336 -23,8.98481304394618 -24,2.98958333333333 -25,1.98491220960989 -26,5.97728835934715 -27,5.98144124907561 -28,4.00163839998525 -29,2.02176249296313 -30,9.02210713874162 -31,1.00742763919872 -32,1.00557258081044 -33,1.02435888848794 -34,2.03577412756745 -35,6.01302820392331 -36,5.97917574041123 -37,0.976310374034338 -38,9.00062625447998 -39,7.00515849238528 -40,6.97396416790894 -41,0.95256880864368 -42,8.97794719866783 -43,9.01850701506487 -44,10.0194409579917 -45,8.98926601525997 -46,7.9866590265379 -47,5.02603060999077 -48,2.05208333333333 -49,4.02603841132848 -50,0.986882897867895 -51,0.0177592928994285 -52,9.01944131204563 -53,3.0185365665612 -54,2.97803642439316 -55,2.95243072164649 -56,4.97396651395488 -57,6.00516695947321 -58,0.0143895905726619 -59,7.97630812771393 -60,5.97917574041123 -61,9.01298821331865 -62,3.03567381915226 -63,4.02435609145793 -64,0.0275599094902563 -65,0.0115837187254191 -66,0.025877761014238 -67,0.0224618032819697 -68,0.04410594689944 -69,0.0474504002669341 -70,0.0227694695500626 -71,0.0271436638090525 -72,0.0104166666666667 -73,0.0271436638090523 -74,0.0227694695500608 -75,0.0474504002669343 -76,0.0441059468994397 -77,0.0224618032819701 -78,0.0258777610142379 -79,0.0115837187254183 -80,0.027559909490256 -81,0.0245124379481793 -82,0.0499782237195209 -83,0.0401432022864265 -84,0.0232923747656228 -85,0.0237974288564099 -86,0.0143895905726624 -87,0.0271745729691685 -88,0.0275599094902567 -89,0.0515501672184983 -90,0.0358255004834542 -91,0.024700508366373 -92,0.0210194725405171 -93,0.0177592928994296 -94,0.0261327016093158 -95,0.0314909067039411 diff --git a/buch/papers/reedsolomon/experiments/empfangen.txt b/buch/papers/reedsolomon/experiments/empfangen.txt deleted file mode 100644 index 38c13b0..0000000 --- a/buch/papers/reedsolomon/experiments/empfangen.txt +++ /dev/null @@ -1,96 +0,0 @@ -0,284 -1,131.570790435043 -2,41.9840308053375 -3,12.1189172092243 -4,23.8408857476069 -5,69.1793197789512 -6,23.6290258699579 -7,37.3066577242559 -8,18.2010889773887 -9,12.3214904922455 -10,15.6627133315015 -11,24.5237955316204 -12,32.1114345314062 -13,44.9845039238714 -14,13.5324640263625 -15,10.1736266929292 -16,4.58257569495584 -17,23.217268502288 -18,16.5769107917917 -19,6.89948680823017 -20,5.55320238736303 -21,10.4219666223433 -22,43.6179140616243 -23,35.9073375743642 -24,15.0332963783729 -25,21.7594021268945 -26,23.2496572716993 -27,17.9815599423852 -28,11.3577742151117 -29,38.467599433197 -30,28.3035029562577 -31,9.54321919833388 -32,21.377558326432 -33,17.6292439561917 -34,12.6951848921471 -35,20.0667752354841 -36,22.9097309529208 -37,8.78894645948548 -38,13.360682005498 -39,25.1757616314718 -40,38.0357773686457 -41,18.4633287776253 -42,19.0584505869806 -43,10.8631093309173 -44,12.6147770818983 -45,12.5398140021274 -46,34.901983501949 -47,22.3480442021702 -48,6 -49,22.3480442021702 -50,34.901983501949 -51,12.5398140021274 -52,12.6147770818983 -53,10.8631093309173 -54,19.0584505869806 -55,18.4633287776253 -56,38.0357773686457 -57,25.1757616314718 -58,13.360682005498 -59,8.78894645948548 -60,22.9097309529208 -61,20.0667752354841 -62,12.6951848921471 -63,17.6292439561917 -64,21.377558326432 -65,9.54321919833388 -66,28.3035029562577 -67,38.467599433197 -68,11.3577742151117 -69,17.9815599423852 -70,23.2496572716993 -71,21.7594021268945 -72,15.0332963783729 -73,35.9073375743642 -74,44.6135417384784 -75,10.4219666223433 -76,4.84567134895776 -77,6.89948680823017 -78,16.5769107917917 -79,23.217268502288 -80,4.58257569495584 -81,10.1736266929292 -82,13.5324640263625 -83,44.9845039238714 -84,32.1114345314062 -85,24.5237955316204 -86,15.6627133315015 -87,12.3214904922455 -88,18.2010889773887 -89,37.3066577242559 -90,24.0186013379153 -91,69.1793197789512 -92,23.8408857476069 -93,12.1189172092243 -94,41.9840308053375 -95,131.570790435043 diff --git a/buch/papers/reedsolomon/experiments/fehler.txt b/buch/papers/reedsolomon/experiments/fehler.txt deleted file mode 100644 index 23f1a83..0000000 --- a/buch/papers/reedsolomon/experiments/fehler.txt +++ /dev/null @@ -1,96 +0,0 @@ -0,0 -1,0 -2,0 -3,0 -4,0 -5,0 -6,2 -7,0 -8,0 -9,0 -10,0 -11,0 -12,0 -13,0 -14,0 -15,0 -16,0 -17,0 -18,0 -19,0 -20,2 -21,0 -22,0 -23,0 -24,0 -25,0 -26,0 -27,0 -28,0 -29,0 -30,0 -31,0 -32,0 -33,0 -34,0 -35,0 -36,0 -37,0 -38,0 -39,0 -40,0 -41,0 -42,0 -43,0 -44,0 -45,0 -46,0 -47,0 -48,0 -49,0 -50,0 -51,0 -52,0 -53,0 -54,0 -55,0 -56,0 -57,0 -58,0 -59,0 -60,0 -61,0 -62,0 -63,0 -64,0 -65,0 -66,0 -67,0 -68,0 -69,0 -70,0 -71,0 -72,0 -73,0 -74,1 -75,0 -76,0 -77,0 -78,0 -79,0 -80,0 -81,0 -82,0 -83,0 -84,0 -85,0 -86,0 -87,0 -88,0 -89,0 -90,0 -91,0 -92,0 -93,0 -94,0 -95,0 diff --git a/buch/papers/reedsolomon/experiments/locator.txt b/buch/papers/reedsolomon/experiments/locator.txt deleted file mode 100644 index b28988c..0000000 --- a/buch/papers/reedsolomon/experiments/locator.txt +++ /dev/null @@ -1,96 +0,0 @@ -0,0.0301224340567056 -1,0.141653026854885 -2,0.138226631799377 -3,0.0339903276086929 -4,0.310585462557496 -5,0.551427312631385 -6,0.628514858396814 -7,0.51102386251559 -8,0.275861355940449 -9,0.0502396354182268 -10,0.090185502547573 -11,0.110759344849756 -12,0.0684618905063001 -13,0.0362855426992259 -14,0.0697096919781468 -15,0.109288539370248 -16,0.0923187999496653 -17,0.0512198536768088 -18,0.274192386987782 -19,0.51349614953654 -20,0.633154426602466 -21,0.553283743533942 -22,0.307840573214514 -23,0.0341664350328392 -24,0.140270857957 -25,0.138527177682831 -26,0.029637547736156 -27,0.0816962563186052 -28,0.0944383203811073 -29,0.0263932110686261 -30,0.0585881348402056 -31,0.0737117341599984 -32,0.0239973937701886 -33,0.0464215468420038 -34,0.0616218854220964 -35,0.0221963086695009 -36,0.0390764778127646 -37,0.0537637218396934 -38,0.0208333333333332 -39,0.0343107696069045 -40,0.0483441215964552 -41,0.0198077862118806 -42,0.0311207395968725 -43,0.0444955089373458 -44,0.0190533549944159 -45,0.0290049795038723 -46,0.0417536642697558 -47,0.0185261550443084 -48,0.0277059929762261 -49,0.0398606084144816 -50,0.0181978813094817 -51,0.0271098219177584 -52,0.0386836665079729 -53,0.0180518611046889 -54,0.0272138992557141 -55,0.0381891287148314 -56,0.0180809085252469 -57,0.0281418959420061 -58,0.0384596362516637 -59,0.0182864418432272 -60,0.0302250788423173 -61,0.0397874837986351 -62,0.0186786556701694 -63,0.0342489348284216 -64,0.0429932815348666 -65,0.0192777878591759 -66,0.0422808966931999 -67,0.0506815964680563 -68,0.0201167847752226 -69,0.0615048274405271 -70,0.0744953894508454 -71,0.021246054596492 -72,0.142602265816215 -73,0.273502052865436 -74,0.325309673287599 -75,0.272705389655349 -76,0.149074257381345 -77,0.0247199397628712 -78,0.0680137859566976 -79,0.075388270873485 -80,0.0273637831604903 -81,0.0407867704453274 -82,0.0632964886441949 -83,0.0309749128751093 -84,0.0315202035072035 -85,0.0627625211892184 -86,0.0360843918243497 -87,0.02794920551495 -88,0.0677921493367236 -89,0.0437167157553067 -90,0.0270640150996317 -91,0.0783380025231622 -92,0.0561293738314281 -93,0.0278742033265809 -94,0.0981443889498639 -95,0.0794543457386548 diff --git a/buch/papers/reedsolomon/experiments/signal.txt b/buch/papers/reedsolomon/experiments/signal.txt deleted file mode 100644 index c4fa5f8..0000000 --- a/buch/papers/reedsolomon/experiments/signal.txt +++ /dev/null @@ -1,96 +0,0 @@ -0,6 -1,6 -2,0 -3,6 -4,4 -5,0 -6,5 -7,2 -8,1 -9,2 -10,1 -11,2 -12,0 -13,6 -14,3 -15,5 -16,7 -17,5 -18,5 -19,4 -20,1 -21,5 -22,9 -23,9 -24,3 -25,2 -26,6 -27,6 -28,4 -29,2 -30,9 -31,1 -32,1 -33,1 -34,2 -35,6 -36,6 -37,1 -38,9 -39,7 -40,7 -41,1 -42,9 -43,9 -44,10 -45,9 -46,8 -47,5 -48,2 -49,4 -50,1 -51,0 -52,9 -53,3 -54,3 -55,3 -56,5 -57,6 -58,0 -59,8 -60,6 -61,9 -62,3 -63,4 -64,0 -65,0 -66,0 -67,0 -68,0 -69,0 -70,0 -71,0 -72,0 -73,0 -74,0 -75,0 -76,0 -77,0 -78,0 -79,0 -80,0 -81,0 -82,0 -83,0 -84,0 -85,0 -86,0 -87,0 -88,0 -89,0 -90,0 -91,0 -92,0 -93,0 -94,0 -95,0 diff --git a/buch/papers/reedsolomon/experiments/syndrom.txt b/buch/papers/reedsolomon/experiments/syndrom.txt deleted file mode 100644 index 8ca9eed..0000000 --- a/buch/papers/reedsolomon/experiments/syndrom.txt +++ /dev/null @@ -1,96 +0,0 @@ -0,0 -1,0 -2,0 -3,0 -4,0 -5,0 -6,0 -7,0 -8,0 -9,0 -10,0 -11,0 -12,0 -13,0 -14,0 -15,0 -16,0 -17,0 -18,0 -19,0 -20,0 -21,0 -22,0 -23,0 -24,0 -25,0 -26,0 -27,0 -28,0 -29,0 -30,0 -31,0 -32,0 -33,0 -34,0 -35,0 -36,0 -37,0 -38,0 -39,0 -40,0 -41,0 -42,0 -43,0 -44,0 -45,0 -46,0 -47,0 -48,0 -49,0 -50,0 -51,0 -52,0 -53,0 -54,0 -55,0 -56,0 -57,0 -58,0 -59,0 -60,0 -61,0 -62,0 -63,0 -64,0.0275599094902563 -65,0.0115837187254191 -66,0.025877761014238 -67,0.0224618032819697 -68,0.04410594689944 -69,0.0474504002669341 -70,0.0227694695500626 -71,0.0271436638090525 -72,0.0104166666666667 -73,0.0271436638090523 -74,0.0227694695500608 -75,0.0474504002669343 -76,0.0441059468994397 -77,0.0224618032819701 -78,0.0258777610142379 -79,0.0115837187254183 -80,0.027559909490256 -81,0.0245124379481793 -82,0.0499782237195209 -83,0.0401432022864265 -84,0.0232923747656228 -85,0.0237974288564099 -86,0.0143895905726624 -87,0.0271745729691685 -88,0.0275599094902567 -89,0.0515501672184983 -90,0.0358255004834542 -91,0.024700508366373 -92,0.0210194725405171 -93,0.0177592928994296 -94,0.0261327016093158 -95,0.0314909067039411 diff --git a/buch/papers/reedsolomon/figures/plotfft.pdf b/buch/papers/reedsolomon/figures/plotfft.pdf index 27992c9..c5e21e3 100644 Binary files a/buch/papers/reedsolomon/figures/plotfft.pdf and b/buch/papers/reedsolomon/figures/plotfft.pdf differ diff --git a/buch/papers/reedsolomon/figures/polynom2.pdf b/buch/papers/reedsolomon/figures/polynom2.pdf index ae68385..dd6cdd3 100644 Binary files a/buch/papers/reedsolomon/figures/polynom2.pdf and b/buch/papers/reedsolomon/figures/polynom2.pdf differ diff --git a/buch/papers/reedsolomon/standalone/standalone.pdf b/buch/papers/reedsolomon/standalone/standalone.pdf index 80af280..a984f35 100644 Binary files a/buch/papers/reedsolomon/standalone/standalone.pdf and b/buch/papers/reedsolomon/standalone/standalone.pdf differ diff --git a/buch/papers/reedsolomon/tikz/plotfft.tex b/buch/papers/reedsolomon/tikz/plotfft.tex index db141a8..14af683 100644 --- a/buch/papers/reedsolomon/tikz/plotfft.tex +++ b/buch/papers/reedsolomon/tikz/plotfft.tex @@ -22,7 +22,7 @@ \begin{axis} [title = {\Large {Signal}}, xtick={0,20,40,64,80,98}] - \addplot[black] table[col sep=comma] {tikz/signal.txt}; + \addplot[blue] table[col sep=comma] {tikz/signal.txt}; \end{axis} \end{tikzpicture}}; & @@ -54,14 +54,14 @@ \node(syndrom) [] { \begin{tikzpicture} \begin{axis}[title = {\Large {Syndrom}}] - \addplot[blue] table[col sep=comma] {tikz/syndrom.txt}; + \addplot[black] table[col sep=comma] {tikz/syndrom.txt}; \end{axis} \end{tikzpicture}}; & \node(locator) [] { \begin{tikzpicture} \begin{axis}[title = {\Large {Locator}}] - \addplot[] table[col sep=comma] {tikz/locator.txt}; + \addplot[gray] table[col sep=comma] {tikz/locator.txt}; \end{axis} \end{tikzpicture}};\\ }; -- cgit v1.2.1 From a23ef813e263ac2d0f06d734c711517806fa1437 Mon Sep 17 00:00:00 2001 From: Pascal Schmid <81317360+paschost@users.noreply.github.com> Date: Tue, 27 Jul 2021 20:48:34 +0200 Subject: diverse Anpassungen --- buch/papers/verkehr/section1.tex | 40 ++++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/verkehr/section1.tex b/buch/papers/verkehr/section1.tex index 5abd107..6d05dc0 100644 --- a/buch/papers/verkehr/section1.tex +++ b/buch/papers/verkehr/section1.tex @@ -6,25 +6,27 @@ Grundsätzlich können kurze Wege zwischen den Knotenpunkten das Ziel beim Aufba Ziel ist aber ein möglichst wirtschaftliches und optimales Verkehrsnetz. \section{Suchalgorithmen} -Inbesondere bei Graphen in Form von Verkehrsnetzen ist das Finden eines kürzesten Weges von Interesse. Mathematisch betrachtet handelt es sich hierbei um ein Optimierungsproblem, bei dem die Summe der Kantengewichte zwischen zwei Knoten minimiert werden soll. Zu diesem Zweck existieren verschiedene Suchalgorithmen. In den folgenden Abschnitten wird auf eines Auswahl davon eingegangen. Zuvor ist es jedoch notwendig, einige Begriffe und Eigenschaften von Suchalgorithmen zu definieren. +Inbesondere bei Graphen in Form von Verkehrsnetzen ist das Finden eines kürzesten Weges von Interesse. Mathematisch betrachtet handelt es sich hierbei um ein Optimierungsproblem, bei dem die Summe der Kantengewichte zwischen zwei Knoten minimiert werden soll. Zu diesem Zweck existieren verschiedene Suchalgorithmen. In den folgenden Abschnitten wird auf eine Auswahl davon eingegangen. Zuvor ist es jedoch notwendig, einige Begriffe und Eigenschaften von Suchalgorithmen zu definieren. Einerseits wird zwischen optimalen und nicht-optimalen Algorithmen unterschieden. Ein Suchalgorithmus gilt als optimal, falls er einen günstigsten Pfad zwischen zwei Knoten findet. Es gilt zu beachten, dass im Falle des Vorhandenseins von mehrerern Pfaden mit identischer, minimaler Summe der Kantengewichte zwischen zwei Knoten, mindestens einer dieser Pfade gefunden wird. Weiter wird zwischen informierten und uninformierten Algorithmen differenziert. Während uninformierte Suchalgorithmen den Suchraum schematisch auf Basis der Eigenschaften des Graphen absuchen, bis eine günstigste Lösung gefunden wurde, verwenden informierte Suchalgorithmen eine Heuristik zur Abschätzung der Suchrichtung. Oftmals wird bei informierten Algorithmen ein Verlust der Optimalität zugunsten einer verbesserten Rechenzeit in Kauf genommen. Es exisitieren jedoch auch Heurstiken, die eine optimale Lösung gewährleisten. -Eine besondere Art von Suchalgorithmen stellen die sogenannten Greedy-Algorithmen, zu deutsch gierige Algorithmen, dar. Sie zeichnen sich dadurch aus, dass stets der günstigste Weg verfolgt wird und davon ausgehend der darauffolgende, günstigste Folgezustand ausgewählt wird. Am Beispiel eines Verkehrsnetzes ist somit gewährleistet, dass beim Antreffen des Zielknotens auch der günstigste Pfad gefunden wurde. +Eine besondere Art von Suchalgorithmen stellen die sogenannten Greedy-Algorithmen, zu deutsch gierige Algorithmen, dar. Sie zeichnen sich dadurch aus, dass sie stets den zurzeit günstigsten Folgezustand auswählen. Dadurch sind sie in der Regel äusserst effizient, garantieren bei vielen Problemstellungen jedoch keine optimale Lösung. \subsection{Dijkstra-Algorithmus} -Der Algorithmus von Dijkstra ist benannt nach seinem Erfinder dem Mathematik- und Informatikprofessor Edsger Dijkstra. Er gehört zur Klasse der uninformierten Greedy-Algorithmen. Zudem ist die Optimalität bei strikter Positivität des Graphen gewährleistet. -Vorteilhaft ist die einfache Implementierung. Abhängig von der Programmiersprache sind zwischen 30 und 40 Zeilen an Code ausreichend, damit er den kürzesten Pfad zwischen einem Startknoten $a$ und Zielknoten $b$ finden kann. Die für dieses Paper verwendete Funktion verwendet eine abgewandelte Form der gewichteten Adjazenz-Matrix $A$, für welche gilt: -Der Matrix-Eintrag $A_{i,j}$ weist das Kantengewicht der Kante von Knoten $j$ nach $i$ auf. Falls keine Kante zwischen $j$ und $i$ vorhanden ist, beträgt der Eintrag $\infty$. Dies vereinfacht die Implementierung zur Bestimmung des nächst-günstigsten Pfades. +Der Algorithmus von Dijkstra ist benannt nach seinem Erfinder dem Mathematik- und Informatikprofessor Edsger Dijkstra. Er gehört zur Klasse der uninformierten Greedy-Algorithmen. Zudem ist die Optimalität bei strikt positiven Kantengewichten gewährleistet. +Vorteilhaft ist die einfache Implementierung. Abhängig von der Programmiersprache sind zwischen 30 und 40 Zeilen an Code ausreichend, damit er den kürzesten Pfad zwischen einem Startknoten $a$ und Zielknoten $b$ finden kann. + +Die für dieses Paper verwendete programmierte Funktion (MATLAB) verwendet eine abgewandelte Form der gewichteten Adjazenz-Matrix $A$, für welche gilt: +Der Matrix-Eintrag $A_{i,j}$ enthält das Kantengewicht der Kante von Knoten $j$ nach $i$ auf. Falls keine Kante zwischen $j$ und $i$ vorhanden ist, beträgt der Eintrag $\infty$. Dies vereinfacht die Implementierung zur Bestimmung des nächst-günstigsten Pfades. Zudem werden zwei Hilfs-Vektoren $\vec{d}$ und $\vec{b}$ der Länge $n$ eingeführt, wobei $n$ die Anzahl Knoten des Graphen ist. Im Vektoreintrag $\vec{d}(i)$ wird das kummulierte Kantengewicht zur Erreichung von Knoten $i$ vom Startknoten $a$ gespeichert. Der Eintrag $\vec{d}(a)$ beträgt somit $0$. Im Vektor $\vec{b}$ wird zudem vermerkt, falls ein Knoten bereits als Ziel eines kürzesten Pfads gefunden wurde und somit für die weitere Suche nicht mehr berücksichtigt werden muss ($\vec{b}(i)=1$, sonst $\vec{b}(i)=0$). Ausgehend vom Startknoten $a$ wird nun anhand der Matrix $A$ in der Spalte $a$ nach dem kleinsten Eintrag gesucht. Somit wird der Folgeknoten $c$ gefunden. Dieser Vorgang wird nun wiederholt, wobei jedoch sämtliche von Knoten $a$ und $c$ erreichbaren Knoten berücksichtigt werden, die noch nicht besucht wurden. In anderen Worten alle nicht verschwindenden Einträge $i$ der Spalten $a$ und $c$ der Matrix $A$, für welche gilt $\vec{b}(i)=0$. Ausschlaggebend für die folgende Auswahl ist die Summe der kummulierten Kantengewichte und des Kantengewichts des nächsten Knotens. Als Beispiel zur Erreichung von Knoten $k$ über Knoten $j$: \begin{equation} \vec{d}(k)=\vec{d}(j)+A(k,j) \end{equation} -Diese Iteration wird solang durchgeführt, bis der Folgeknoten dem Zielknoten entspricht. +Diese Iteration wird solange durchgeführt, bis der Folgeknoten dem Zielknoten entspricht. \subsection{A*-Algorithmus} Der A*-Algorithmus basiert auf dem Dijkstra-Algorithmus, verwendet jedoch eine Heuristik zur Abschätzung der günstigsten Suchrichtung. Somit handelt es sich um einen informierten Greedy-Algorithmus, der abhängig von der verwendeten Heuristik auch optimal sein kann. Er wurde von Peter Hart, Nils Nilsson und Bertram Raphael entwickelt. @@ -32,17 +34,22 @@ Der A*-Algorithmus basiert auf dem Dijkstra-Algorithmus, verwendet jedoch eine H \subsection{Anwendung A*-Algorithmus} Wie oben erwähnt basiert der A*-Algorithmus auf dem Shortest-Path-Algorithmus von Dijkstra. Gemäss dem Algorihtmus von Dijkstra werden von einem Startknoten aus die jeweiligen Nachbarknoten, die Nachbarknoten der Nachbarknoten usw. verarbeitet. Die Kantengewichte werden dabei aufsummiert und die Priorität wird auf die Kante gelegt, die das geringste Gewicht aufweist. Mit diesem Verfahren wird sichergestellt, dass die erste gefundene Lösung auch eine optimale Lösung darstellt.\\ -Der A*-Algorithmus unterscheidet sich vom Dijkstra-Algorithmus dahingehend, dass bei der Auswahl des Folgeknotens, nicht nur die Summe der Kantengewichte $\vec{d}(j)+A(k,j)$, sondern zusätzlich die für jeden Knoten definierte Abschätzfunktion $f(k)$ hinzuaddiert wird. Dies passiert jedoch nur bei der \emph{Auswahl} des Folgeknotens. Der Wert von $f(k)$ wird nicht im Eintrag $\vec{d}(k)$ gespeichert. Somit wird gewährleistet, dass der gefundene Pfad, der Summe der Kantengewichte entspricht. +Der A*-Algorithmus unterscheidet sich vom Dijkstra-Algorithmus dahingehend, dass bei der Auswahl des Folgeknotens, nicht nur die Summe der Kantengewichte $\vec{d}(j)+A(k,j)$, sondern zusätzlich die für jeden Knoten definierte Abschätzfunktion $f(k)$ hinzuaddiert wird. Dies passiert jedoch nur bei der \emph{Auswahl} des Folgeknotens. Der Wert von $f(k)$ wird nicht im Eintrag $\vec{d}(k)$ gespeichert. Somit wird gewährleistet, dass der gefundene Pfad, der Summe der Kantengewichte entspricht. Ein Beispiel dafür, wie eine Abschätzfunktion gebildet werden kann findet sich in Abschnitt \ref{sec:verkehr/euklidische} \subsection{Euklidische Heuristik} +\label{sec:verkehr/euklidische} Bei Verkehrsnetzen ist die euklidische Distanz eine gängige und zuverlässige Heurstik. Dabei wird zu den effektiven Reisekosten zum aktuellen Knoten die euklidische Distanz bis zum Zielknoten hinzuaddiert. Dadurch wird die Kostenfunktion konsequent nie überschätzt. Dies stellt eine Voraussetzung an eine zulässige Heuristik dar. Unter Verwendung dieser Heuristik gilt der A*-Algorithmus als optimal. +Bei der euklidischen Heuristik wird die Abschätzfunktion $f(k)$ für jeden Knoten $k$ durch euklidische Distanz zum Zielknoten $b$ gebildet. +\begin{equation} +f(k)=\sqrt{(x_k-x_b)^2+(y_k-y_b)^2} +\end{equation} + Was bei einem physischen Verkehrsnetz einfach zu bewältigen ist, da Koordinaten von Verkehrsnetzen zur Berechnung der Distanz verwendet werden können, ist bei virtuellen Netzwerken (z.B. Servernetzen) entweder nicht möglich, oder nicht relevant. Hier können hingegen andere Eigenschaften des Netzwerks verwendet werden, auf welche in diesem Paper nicht weiter eingegangen wird. \subsection{Floyd-Warshall-Algorithmus} Der Floyd-Warshall-Algorithmus, auch Tripel-Algorithmus genannt, wurde erstmals im Jahr 1962 von seinen Namensgebern Robert Floyd und Stephen Warshall vorgestellt. -Der Floyd-Warshall-Algorithmus sucht kürzeste Wege innerhalb eines Graphen. Er ermittelt aber nicht nur die Distanz zwischen zwei Knoten, sondern berechnet die kürzesten Wege zwischen allen Knotenpaaren eines gewichteten Graphen. Somit werden die günstigsten Wege zwischen allen Paaren von Knoten berechnet. Der Floyd-Warhshall-Algrithmus kann ausserdem mit negativen Kantengewichten umgehen, sofern der Graph aber keinen negativen Kreis (Zyklus) aufweist. Ist dies der Fall, führt der Algorithmus zu einem falschen Ergebnis. -Ein Kreis (Zyklus) in einem Graphen ist ein Weg, bei dem Start- und Endpunkt den gleichen Knoten aufweisen. Dieser wird negativ, wenn die Summe der gewichteten Kanten kleiner als Null wird.\\ +Der Floyd-Warshall-Algorithmus sucht kürzeste Wege innerhalb eines Graphen. Er ermittelt aber nicht nur die Distanz zwischen zwei Knoten, sondern berechnet die kürzesten Wege zwischen allen Knotenpaaren eines gewichteten Graphen. Somit werden die günstigsten Wege zwischen allen Paaren von Knoten berechnet. Der Floyd-Warhshall-Algrithmus kann ausserdem mit negativen Kantengewichten umgehen, sofern der Graph keinen negativen Kreis (Zyklus) aufweist. Ein Kreis, sprich ein Weg mit identischem Start- und Zielknoten, ist negativ, falls die Summe der Kantengewichte des Weges kleiner als null ist. Ist dies der Fall, führt der Algorithmus zu einem falschen Ergebnis. \subsection{Anwendung Floyd-Warshall-Algorithmus} @@ -53,7 +60,7 @@ Dabei versucht er in jeder Iteration alle Wege von $i$ nach $j$ durch die Wege $ Falls dieser mögliche Umweg zu einer Verbesserung führt, wird der entsprechende Eintrag aktualisiert. Die aktuelle Gewichtung der Pfade wird mit -\begin{equation}d[i, j]=min[d[i,j], d[i,k] + d[k,i]]\end{equation} +\begin{equation}d[i, j]=\min[d[i,j], d[i,k] + d[k,i]]\end{equation} ermittelt. @@ -62,10 +69,7 @@ ermittelt. Der PageRank-Algorithmus wurde von den Gründern von Google, Larry Page und Sergey Brin im Jahr 1996 entwickelt und zum Patent angemeldet. Zwei Jahre später gründeten sie ihr Unternehmen Google Inc. Beim PageRank-Algorithmus handelt es sich nicht um einen Suchalgorithmus, stattdessen werden Knoten aufgrund der Vernetzung des vorliegenden Graphen bewertet. Verwendet wird er beispielsweise um die Verlinkungsstruktur verschiedener Websites des World Wide Web anhand ihrer Struktur zu bewerten und relevante Suchergebnisse zu ermittteln. Der PageRank wird umso höher, je mehr hochwertige Links auf eine Webseite verweisen und je höher die Gewichtung einer Webseite ist, desto grösser ist der Effekt.\\ -Dabei handelt es sich um einen iterativen Prozess. Ausgegangen wird von der Adjazenz-Matrix $A$, für welche gilt. - -%THEORIE... -Grundsätzlich setzt sich der PageRank Algorithmus mit der Fragestellung auseinander, wie eine Suchmaschine wie Google Suchresultate bewertet und somit sortieren soll. Öfters aufgerufene Resultate sollen schliesslich höher gewichtet werden. Dabei wird angenommen, dass eine Website populärer ist, je mehr andere Websites darauf verweisen. +Dabei handelt es sich um einen iterativen Prozess. Ausgegangen wird von der Adjazenz-Matrix $A$, für welche folgendes gilt: \begin{equation} A_{i,j}=\left\{ \begin{matrix} @@ -75,13 +79,17 @@ A_{i,j}=\left\{ \begin{matrix} \label{verkehr:Adja} \end{equation} +%THEORIE... +Grundsätzlich setzt sich der PageRank Algorithmus mit der Fragestellung auseinander, wie eine Suchmaschine wie Google Suchresultate bewertet und somit sortieren soll. Öfters aufgerufene Resultate sollen schliesslich höher gewichtet werden. Dabei wird angenommen, dass eine Website populärer ist, je mehr andere Websites darauf verweisen. + + -Für ungerichtete Graphen mit $n$ Knoten gilt \begin{equation}A_{i,j}=A_{j,i}\end{equation} und weiter \begin{equation}A_{i,i}=0\quad\forall i\in \left\{1...n\right\}\end{equation} +Für ungerichtete Graphen mit $n$ Knoten gilt \begin{equation}A_{i,j}=A_{j,i}\end{equation} und weiter \begin{equation}A_{i,i}=0\quad\forall i\in \left\{1\dot n\right\}\end{equation} Beim PageRank-Algorithmus wird eine abgewandelte Form der Adjazenz-Matrix verwendet. Dabei werden die Matrix-Einträge spaltenweise durch die jeweilige Spaltensumme geteilt. \begin{equation} P_{i,j}=\frac{A_{i,j}}{\sum_{i=1}^{n}A_{i,j}} \end{equation} Anschliessend multipliziert man diese Matrix $P$ mit einem Spaltenvektor $\Vec{r_0}$ mit $n$ Einträgen, für welchen gilt: -\begin{equation} \Vec{r_0}(i) = \frac{1}{n} \quad\forall i\in \left\{1...n\right\} \end{equation} +\begin{equation} \Vec{r_0}(i) = \frac{1}{n} \quad\forall i\in \left\{1\dot n\right\} \end{equation} Dieser Vektor stellt ein neutrales Ranking dar. Alle Knoten werden gleich gewichtet. Dadurch erhält man wiederum einen $n$-zeiligen Spaltenvektor $\Vec{r_1}$, der das "erste" Ranking darstellt. Durch Multiplikation der ursprünglichen Matrix $P$ mit dem 1. Ranking-Vektor $\Vec{r_1}$ wird auf Basis des ersten Rankings ein zweites erstellt. \begin{equation} \Vec{r_2} = P\cdot\Vec{r_1} = P\cdot(P\cdot\Vec{r_0}) = P^2\cdot\Vec{r_0}\end{equation} -- cgit v1.2.1 From c1d43d16b948505cc25d8eb740a393170a28a7f9 Mon Sep 17 00:00:00 2001 From: Pascal Schmid <81317360+paschost@users.noreply.github.com> Date: Tue, 27 Jul 2021 20:51:44 +0200 Subject: diverse Anpassungen --- buch/papers/verkehr/section1.tex | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/verkehr/section1.tex b/buch/papers/verkehr/section1.tex index 6d05dc0..416e311 100644 --- a/buch/papers/verkehr/section1.tex +++ b/buch/papers/verkehr/section1.tex @@ -87,12 +87,12 @@ Grundsätzlich setzt sich der PageRank Algorithmus mit der Fragestellung auseina Für ungerichtete Graphen mit $n$ Knoten gilt \begin{equation}A_{i,j}=A_{j,i}\end{equation} und weiter \begin{equation}A_{i,i}=0\quad\forall i\in \left\{1\dot n\right\}\end{equation} Beim PageRank-Algorithmus wird eine abgewandelte Form der Adjazenz-Matrix verwendet. Dabei werden die Matrix-Einträge spaltenweise durch die jeweilige Spaltensumme geteilt. -\begin{equation} P_{i,j}=\frac{A_{i,j}}{\sum_{i=1}^{n}A_{i,j}} \end{equation} +\[ P_{i,j}=\frac{A_{i,j}}{\sum_{i=1}^{n}A_{i,j}} \] Anschliessend multipliziert man diese Matrix $P$ mit einem Spaltenvektor $\Vec{r_0}$ mit $n$ Einträgen, für welchen gilt: -\begin{equation} \Vec{r_0}(i) = \frac{1}{n} \quad\forall i\in \left\{1\dot n\right\} \end{equation} +\[ \Vec{r_0}(i) = \frac{1}{n} \quad\forall i\in \left\{1\dot n\right\} \] Dieser Vektor stellt ein neutrales Ranking dar. Alle Knoten werden gleich gewichtet. -Dadurch erhält man wiederum einen $n$-zeiligen Spaltenvektor $\Vec{r_1}$, der das "erste" Ranking darstellt. Durch Multiplikation der ursprünglichen Matrix $P$ mit dem 1. Ranking-Vektor $\Vec{r_1}$ wird auf Basis des ersten Rankings ein zweites erstellt. -\begin{equation} \Vec{r_2} = P\cdot\Vec{r_1} = P\cdot(P\cdot\Vec{r_0}) = P^2\cdot\Vec{r_0}\end{equation} +Dadurch erhält man wiederum einen $n$-zeiligen Spaltenvektor $\Vec{r_1}$, der das ``erste" Ranking darstellt. Durch Multiplikation der ursprünglichen Matrix $P$ mit dem 1. Ranking-Vektor $\Vec{r_1}$ wird auf Basis des ersten Rankings ein zweites erstellt. +\[ \Vec{r_2} = P\cdot\Vec{r_1} = P\cdot(P\cdot\Vec{r_0}) = P^2\cdot\Vec{r_0}\] somit \begin{equation} \Vec{r_i} = P^i\cdot\Vec{r_0}\end{equation} -Der Vektor $\Vec{r_i}$ konvergiert zu einem Eigenvektor von $P$ und stellt das abschliessende Ranking dar. +Der Vektor $\Vec{r_i}$ konvergiert zu einem Eigenvektor von $P$ der das abschliessende Ranking darstellt. -- cgit v1.2.1 From 16084eb844ae3595fc1799feab78b96d0c977306 Mon Sep 17 00:00:00 2001 From: Pascal Schmid <81317360+paschost@users.noreply.github.com> Date: Tue, 27 Jul 2021 20:52:46 +0200 Subject: diverse Anpassungen --- buch/papers/verkehr/section2.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/verkehr/section2.tex b/buch/papers/verkehr/section2.tex index 4de0b24..527885e 100644 --- a/buch/papers/verkehr/section2.tex +++ b/buch/papers/verkehr/section2.tex @@ -3,8 +3,8 @@ Um zwei der vorgestellten Suchalgorithmen zu vergleichen, wurden zwei Versuchsreihen erstellt. Dazu wurden in einem ersten Schritt zufällige Netzwerke generiert und anschliessend der Dijkstra- und der A*-Algorithmus auf das Netzwerk angewandt. Dieser Vorgang wurde für die zufällig generierten Netzwerke mit einer Knotenzahl von 10, 20 50, 100, 200, 500 und 1000 je zehnmal wiederholt. -Die Anzahl der Knoten im abgesuchten Netzwerk wirkt sich direkt auf die Rechenzeit aus. Der \emph{Dijkstra}-Algorithmus weist eine Zeitkomplexität von $\mathcal{O}(E\log{}V)$ auf, wobei $E$ die Menge der Kanten (engl. \emph{edges}) und $V$ die Menge der Knoten (engl. \emph{vertices}) des Graphen $G$ darstellt. -Für den A*-Algorithmus ist die Zeitkomplexität einerseits abhängig von der verwendeten Heuristik, andererseits aber auch vom vorliegenden Netzwerk selbst. Aus diesem Grund lässt sich keine defintive Angabe zur Zeitkomplexität machen. +Die Anzahl der Knoten im abgesuchten Netzwerk wirkt sich direkt auf die Rechenzeit aus. Der \emph{Dijkstra}-Algorithmus weist eine Zeitkomplexität von $\mathcal{O}(|E|\log{}|V|)$ auf, wobei $E$ die Menge der Kanten (engl. \emph{edges}) und $V$ die Menge der Knoten (engl. \emph{vertices}) des Graphen $G$ darstellt. +Für den A*-Algorithmus ist die Zeitkomplexität einerseits abhängig von der verwendeten Heuristik, andererseits aber auch vom vorliegenden Netzwerk selbst. Aus diesem Grund lässt sich keine definitive Angabe zur Zeitkomplexität machen. Die beiden Versuchsreihen unterscheiden sich zudem dahingehend, dass der Start- und Zielknoten bei der ersten Versuchsreihe im Netzwerk diametral gegenüber liegen. Dadurch gehen viele Knoten verloren, welcher \emph{Dijkstra} als uninformierter Suchalgorithmus absuchen würde. In der zweiten Veruschsreihe werden hingegen Start- un Zielpunkt zufällig im Netzwerk ausgewählt. Es wird deshalb erwartet, dass die Unterschiede in der Rechenzeit der beiden Algorithmen in der zweiten Versuchsreihe deutlich ausgeprägter sind. -- cgit v1.2.1 From 3875ac2b8df9145a66e9f6fcf34e77eb3bc2d072 Mon Sep 17 00:00:00 2001 From: Nunigan Date: Tue, 27 Jul 2021 22:01:05 +0200 Subject: added first part of paper and code --- buch/papers/multiplikation/Makefile | 0 buch/papers/multiplikation/Makefile.inc | 7 +- buch/papers/multiplikation/code/Figure_1.png | Bin 0 -> 144173 bytes buch/papers/multiplikation/code/MM | Bin 0 -> 26848 bytes buch/papers/multiplikation/code/MM.c | 465 + buch/papers/multiplikation/code/MM.py | 311 + .../code/__pycache__/MM.cpython-38.pyc | Bin 0 -> 4160 bytes buch/papers/multiplikation/code/c_matrix.h | 101 + buch/papers/multiplikation/code/c_meas_1024.pdf | Bin 0 -> 16748 bytes buch/papers/multiplikation/code/c_meas_128.pdf | Bin 0 -> 16454 bytes buch/papers/multiplikation/code/c_meas_16.pdf | Bin 0 -> 16376 bytes buch/papers/multiplikation/code/c_meas_2048.pdf | Bin 0 -> 16281 bytes buch/papers/multiplikation/code/c_meas_256.pdf | Bin 0 -> 15286 bytes buch/papers/multiplikation/code/c_meas_32.pdf | Bin 0 -> 15163 bytes buch/papers/multiplikation/code/c_meas_4096.pdf | Bin 0 -> 15865 bytes buch/papers/multiplikation/code/c_meas_512.pdf | Bin 0 -> 15472 bytes buch/papers/multiplikation/code/c_meas_64.pdf | Bin 0 -> 16358 bytes buch/papers/multiplikation/code/c_meas_8.pdf | Bin 0 -> 16766 bytes buch/papers/multiplikation/code/helper_class.py | 105 + buch/papers/multiplikation/code/meas/MM.txt | 12 + buch/papers/multiplikation/code/meas/MM_dc.txt | 12 + buch/papers/multiplikation/code/meas/blas.txt | 12 + buch/papers/multiplikation/code/meas/strassen.txt | 12 + .../multiplikation/code/meas/test/4096/MM.txt | 12 + .../code/meas/test/4096/strassen.txt | 12 + buch/papers/multiplikation/code/meas/test/MM.txt | 14900 +++++++++++++++++++ buch/papers/multiplikation/code/meas/test/blas.txt | 14900 +++++++++++++++++++ .../multiplikation/code/meas/test/winograd.txt | 14900 +++++++++++++++++++ buch/papers/multiplikation/code/meas/winograd.txt | 11 + buch/papers/multiplikation/code/meas_1024.pdf | Bin 0 -> 17660 bytes buch/papers/multiplikation/code/meas_1024.txt | 6 + buch/papers/multiplikation/code/meas_128.pdf | Bin 0 -> 17961 bytes buch/papers/multiplikation/code/meas_128.txt | 6 + buch/papers/multiplikation/code/meas_16.pdf | Bin 0 -> 17766 bytes buch/papers/multiplikation/code/meas_16.txt | 6 + buch/papers/multiplikation/code/meas_256.pdf | Bin 0 -> 18067 bytes buch/papers/multiplikation/code/meas_256.txt | 6 + buch/papers/multiplikation/code/meas_32.pdf | Bin 0 -> 17078 bytes buch/papers/multiplikation/code/meas_32.txt | 6 + buch/papers/multiplikation/code/meas_512.pdf | Bin 0 -> 18028 bytes buch/papers/multiplikation/code/meas_512.txt | 6 + buch/papers/multiplikation/code/meas_64.pdf | Bin 0 -> 17678 bytes buch/papers/multiplikation/code/meas_64.txt | 6 + buch/papers/multiplikation/code/meas_8.pdf | Bin 0 -> 18400 bytes buch/papers/multiplikation/code/meas_8.txt | 6 + buch/papers/multiplikation/code/test.tex | 92 + buch/papers/multiplikation/einlteung.tex | 52 + buch/papers/multiplikation/images/bigo.pdf | Bin 0 -> 24288 bytes buch/papers/multiplikation/images/bigo.tex | 107 + .../multiplikation/images/mm_visualisation.pdf | Bin 0 -> 21665 bytes .../multiplikation/images/mm_visualisation.tex | 45 + buch/papers/multiplikation/images/strassen.pdf | Bin 0 -> 15850 bytes buch/papers/multiplikation/images/strassen.tex | 140 + buch/papers/multiplikation/loesungsmethoden.tex | 309 + buch/papers/multiplikation/main.tex | 34 +- buch/papers/multiplikation/packages.tex | 0 buch/papers/multiplikation/papers/Strassen_GPU.pdf | Bin 0 -> 254508 bytes .../papers/Strassen_original_1969.pdf | Bin 0 -> 151265 bytes .../papers/multiplikation/papers/assay_fast_MM.pdf | Bin 0 -> 484352 bytes .../multiplikation/papers/strassen_video.txt | 1 + .../multiplikation/papers/winograd_original.pdf | Bin 0 -> 533604 bytes buch/papers/multiplikation/presentation/common.tex | 79 + .../multiplikation/presentation/presentation.nav | 59 + .../multiplikation/presentation/presentation.pdf | Bin 0 -> 717544 bytes .../multiplikation/presentation/presentation.snm | 0 .../multiplikation/presentation/presentation.tex | 12 + .../multiplikation/presentation/slides/algo.tex | 111 + .../multiplikation/presentation/slides/bigO.tex | 251 + .../multiplikation/presentation/slides/blas.tex | 18 + .../presentation/slides/conclusuion.tex | 0 .../multiplikation/presentation/slides/logo.pdf | Bin 0 -> 8987 bytes .../multiplikation/presentation/slides/meas.tex | 42 + .../multiplikation/presentation/slides/nn.tex | 97 + .../multiplikation/presentation/slides/parcomp.tex | 66 + .../multiplikation/presentation/slides/slides.tex | 15 + .../presentation/slides/strassen.tex | 429 + .../multiplikation/presentation/tikz/algo.pdf | Bin 0 -> 33396 bytes .../multiplikation/presentation/tikz/algo.tex | 52 + buch/papers/multiplikation/problemstellung.tex | 104 + buch/papers/multiplikation/references.bib | 30 + buch/papers/multiplikation/teil0.tex | 22 - buch/papers/multiplikation/teil1.tex | 55 - buch/papers/multiplikation/teil2.tex | 40 - buch/papers/multiplikation/teil3.tex | 40 - .../multiplikation/tikz_formulas/algo.fdb_latexmk | 254 + buch/papers/multiplikation/tikz_formulas/algo.fls | 438 + buch/papers/multiplikation/tikz_formulas/algo.pdf | Bin 0 -> 33785 bytes buch/papers/multiplikation/tikz_formulas/algo.tex | 131 + .../tikz_formulas/algo_graph.fdb_latexmk | 245 + .../multiplikation/tikz_formulas/algo_graph.fls | 485 + .../multiplikation/tikz_formulas/algo_graph.pdf | Bin 0 -> 15850 bytes .../multiplikation/tikz_formulas/algo_graph.tex | 140 + 92 files changed, 49628 insertions(+), 187 deletions(-) mode change 100644 => 100755 buch/papers/multiplikation/Makefile mode change 100644 => 100755 buch/papers/multiplikation/Makefile.inc create mode 100755 buch/papers/multiplikation/code/Figure_1.png create mode 100755 buch/papers/multiplikation/code/MM create mode 100755 buch/papers/multiplikation/code/MM.c create mode 100644 buch/papers/multiplikation/code/MM.py create mode 100644 buch/papers/multiplikation/code/__pycache__/MM.cpython-38.pyc create mode 100644 buch/papers/multiplikation/code/c_matrix.h create mode 100644 buch/papers/multiplikation/code/c_meas_1024.pdf create mode 100644 buch/papers/multiplikation/code/c_meas_128.pdf create mode 100644 buch/papers/multiplikation/code/c_meas_16.pdf create mode 100644 buch/papers/multiplikation/code/c_meas_2048.pdf create mode 100644 buch/papers/multiplikation/code/c_meas_256.pdf create mode 100644 buch/papers/multiplikation/code/c_meas_32.pdf create mode 100644 buch/papers/multiplikation/code/c_meas_4096.pdf create mode 100644 buch/papers/multiplikation/code/c_meas_512.pdf create mode 100644 buch/papers/multiplikation/code/c_meas_64.pdf create mode 100644 buch/papers/multiplikation/code/c_meas_8.pdf create mode 100755 buch/papers/multiplikation/code/helper_class.py create mode 100644 buch/papers/multiplikation/code/meas/MM.txt create mode 100644 buch/papers/multiplikation/code/meas/MM_dc.txt create mode 100644 buch/papers/multiplikation/code/meas/blas.txt create mode 100644 buch/papers/multiplikation/code/meas/strassen.txt create mode 100644 buch/papers/multiplikation/code/meas/test/4096/MM.txt create mode 100644 buch/papers/multiplikation/code/meas/test/4096/strassen.txt create mode 100644 buch/papers/multiplikation/code/meas/test/MM.txt create mode 100644 buch/papers/multiplikation/code/meas/test/blas.txt create mode 100644 buch/papers/multiplikation/code/meas/test/winograd.txt create mode 100644 buch/papers/multiplikation/code/meas/winograd.txt create mode 100644 buch/papers/multiplikation/code/meas_1024.pdf create mode 100644 buch/papers/multiplikation/code/meas_1024.txt create mode 100644 buch/papers/multiplikation/code/meas_128.pdf create mode 100644 buch/papers/multiplikation/code/meas_128.txt create mode 100644 buch/papers/multiplikation/code/meas_16.pdf create mode 100644 buch/papers/multiplikation/code/meas_16.txt create mode 100644 buch/papers/multiplikation/code/meas_256.pdf create mode 100644 buch/papers/multiplikation/code/meas_256.txt create mode 100644 buch/papers/multiplikation/code/meas_32.pdf create mode 100644 buch/papers/multiplikation/code/meas_32.txt create mode 100644 buch/papers/multiplikation/code/meas_512.pdf create mode 100644 buch/papers/multiplikation/code/meas_512.txt create mode 100644 buch/papers/multiplikation/code/meas_64.pdf create mode 100644 buch/papers/multiplikation/code/meas_64.txt create mode 100644 buch/papers/multiplikation/code/meas_8.pdf create mode 100644 buch/papers/multiplikation/code/meas_8.txt create mode 100644 buch/papers/multiplikation/code/test.tex create mode 100755 buch/papers/multiplikation/einlteung.tex create mode 100644 buch/papers/multiplikation/images/bigo.pdf create mode 100644 buch/papers/multiplikation/images/bigo.tex create mode 100644 buch/papers/multiplikation/images/mm_visualisation.pdf create mode 100644 buch/papers/multiplikation/images/mm_visualisation.tex create mode 100644 buch/papers/multiplikation/images/strassen.pdf create mode 100644 buch/papers/multiplikation/images/strassen.tex create mode 100755 buch/papers/multiplikation/loesungsmethoden.tex mode change 100644 => 100755 buch/papers/multiplikation/main.tex mode change 100644 => 100755 buch/papers/multiplikation/packages.tex create mode 100755 buch/papers/multiplikation/papers/Strassen_GPU.pdf create mode 100755 buch/papers/multiplikation/papers/Strassen_original_1969.pdf create mode 100755 buch/papers/multiplikation/papers/assay_fast_MM.pdf create mode 100755 buch/papers/multiplikation/papers/strassen_video.txt create mode 100755 buch/papers/multiplikation/papers/winograd_original.pdf create mode 100644 buch/papers/multiplikation/presentation/common.tex create mode 100644 buch/papers/multiplikation/presentation/presentation.nav create mode 100644 buch/papers/multiplikation/presentation/presentation.pdf create mode 100644 buch/papers/multiplikation/presentation/presentation.snm create mode 100644 buch/papers/multiplikation/presentation/presentation.tex create mode 100644 buch/papers/multiplikation/presentation/slides/algo.tex create mode 100644 buch/papers/multiplikation/presentation/slides/bigO.tex create mode 100644 buch/papers/multiplikation/presentation/slides/blas.tex create mode 100644 buch/papers/multiplikation/presentation/slides/conclusuion.tex create mode 100644 buch/papers/multiplikation/presentation/slides/logo.pdf create mode 100644 buch/papers/multiplikation/presentation/slides/meas.tex create mode 100644 buch/papers/multiplikation/presentation/slides/nn.tex create mode 100644 buch/papers/multiplikation/presentation/slides/parcomp.tex create mode 100644 buch/papers/multiplikation/presentation/slides/slides.tex create mode 100644 buch/papers/multiplikation/presentation/slides/strassen.tex create mode 100644 buch/papers/multiplikation/presentation/tikz/algo.pdf create mode 100644 buch/papers/multiplikation/presentation/tikz/algo.tex create mode 100755 buch/papers/multiplikation/problemstellung.tex mode change 100644 => 100755 buch/papers/multiplikation/references.bib delete mode 100644 buch/papers/multiplikation/teil0.tex delete mode 100644 buch/papers/multiplikation/teil1.tex delete mode 100644 buch/papers/multiplikation/teil2.tex delete mode 100644 buch/papers/multiplikation/teil3.tex create mode 100644 buch/papers/multiplikation/tikz_formulas/algo.fdb_latexmk create mode 100644 buch/papers/multiplikation/tikz_formulas/algo.fls create mode 100644 buch/papers/multiplikation/tikz_formulas/algo.pdf create mode 100755 buch/papers/multiplikation/tikz_formulas/algo.tex create mode 100644 buch/papers/multiplikation/tikz_formulas/algo_graph.fdb_latexmk create mode 100644 buch/papers/multiplikation/tikz_formulas/algo_graph.fls create mode 100755 buch/papers/multiplikation/tikz_formulas/algo_graph.pdf create mode 100755 buch/papers/multiplikation/tikz_formulas/algo_graph.tex (limited to 'buch/papers') diff --git a/buch/papers/multiplikation/Makefile b/buch/papers/multiplikation/Makefile old mode 100644 new mode 100755 diff --git a/buch/papers/multiplikation/Makefile.inc b/buch/papers/multiplikation/Makefile.inc old mode 100644 new mode 100755 index b78d67e..074020f --- a/buch/papers/multiplikation/Makefile.inc +++ b/buch/papers/multiplikation/Makefile.inc @@ -7,8 +7,7 @@ dependencies-multiplikation = \ papers/multiplikation/packages.tex \ papers/multiplikation/main.tex \ papers/multiplikation/references.bib \ - papers/multiplikation/teil0.tex \ - papers/multiplikation/teil1.tex \ - papers/multiplikation/teil2.tex \ - papers/multiplikation/teil3.tex + papers/multiplikation/einlteung.tex \ + papers/multiplikation/loesungsmethoden.tex \ + papers/multiplikation/problemstellung.tex diff --git a/buch/papers/multiplikation/code/Figure_1.png b/buch/papers/multiplikation/code/Figure_1.png new file mode 100755 index 0000000..9def15a Binary files /dev/null and b/buch/papers/multiplikation/code/Figure_1.png differ diff --git a/buch/papers/multiplikation/code/MM b/buch/papers/multiplikation/code/MM new file mode 100755 index 0000000..f07985f Binary files /dev/null and b/buch/papers/multiplikation/code/MM differ diff --git a/buch/papers/multiplikation/code/MM.c b/buch/papers/multiplikation/code/MM.c new file mode 100755 index 0000000..04c4dab --- /dev/null +++ b/buch/papers/multiplikation/code/MM.c @@ -0,0 +1,465 @@ +#include +#include +#include +#include +#include +#include "c_matrix.h" +#include +#include + +void MM(int *A, int *B, int *C, int n); +void openMP_MM(int *A, int *B, int *C, int n); +void winograd(int *A, int *B, int *C, int n); +int winograd_inner(int *a, int *b, int n); +void run_algo(void (*algo)(), char alog_name[], int print); +void run_algo_cblas(int print); +void MM_dc(int *A, int *B, int *C, int n); +void strassen(int *A, int *B, int *C, int n); +void printMatrix(int *C, int n); +void printMatrix_double(double *C, int n); +void split(int *in, int *out, int n, int col, int row); +void join(int *in, int *out, int n, int col, int row); +void add(int *A, int *B, int *C, int n); +void sub(int *A, int *B, int *C, int n); +void multiply(int *A, int *B, int *C, int n); + +int main() { + // omp_set_dynamic(0); + // omp_set_num_threads(4); +// run_algo(openMP_MM, "openMP_MM",0); + run_algo(MM_dc, "MM_dc",0); + run_algo(strassen, "strassen",0); + + run_algo(MM, "MM", 0); + // run_algo(winograd, "winograd", 0); + run_algo_cblas(0); + + return 0; +} + +void MM(int *A, int *B, int *C, int n) { + for (int i = 0; i < n; ++i) { + for (int j = 0; j < n; ++j) { + int sum = 0; + for (int k = 0; k < n; ++k) { + sum += (*((A + i * n) + k)) * (*((B + k * n) + j)); + } + *((C + i * n) + j) = sum; + } + } +} + +int winograd_inner(int *a, int *b, int n){ + int ab = 0; + if(n%2==0) + { + int xi = 0; + int etha = 0; + for(int i = 0; i +const int A0[][2] = + { + {-15,68}, + {49,86} + }; +const int B0[][2] = + { + {33,73}, + {38,-76} + }; +const double dB0[][2] = + { + {33,73}, + {38,-76} + }; +const double dA0[][2] = + { + {-15,68}, + {49,86} + }; +const int A1[][4] = + { + {75,-38,-32,-65}, + {37,74,-31,29}, + {15,-62,-20,-20}, + {-31,-35,-89,47} + }; +const int B1[][4] = + { + {71,90,78,-98}, + {4,63,12,-47}, + {11,-44,75,-69}, + {95,-15,64,23} + }; +const double dB1[][4] = + { + {71,90,78,-98}, + {4,63,12,-47}, + {11,-44,75,-69}, + {95,-15,64,23} + }; +const double dA1[][4] = + { + {75,-38,-32,-65}, + {37,74,-31,29}, + {15,-62,-20,-20}, + {-31,-35,-89,47} + }; +const int A2[][8] = + { + {80,42,3,-16,6,55,87,16}, + {-99,-14,21,-1,-94,-56,91,10}, + {-47,-55,-59,62,12,-53,87,-65}, + {-60,94,-67,23,-62,33,-63,-72}, + {12,-75,16,21,22,-37,1,16}, + {-100,-99,82,-66,2,64,-13,44}, + {59,-100,-90,8,36,-24,18,88}, + {73,-58,75,-100,-19,-29,85,-19} + }; +const int B2[][8] = + { + {-61,88,69,49,-53,47,73,45}, + {16,14,-88,-11,-67,-73,-20,43}, + {-60,-63,26,32,-29,18,-44,-69}, + {1,21,21,38,7,-100,-61,-76}, + {-90,95,-99,88,49,-80,27,-36}, + {24,-12,-47,-7,29,15,52,37}, + {-98,-76,29,76,-41,-75,97,79}, + {62,-90,-35,-14,-30,-42,-95,52} + }; +const double dB2[][8] = + { + {-61,88,69,49,-53,47,73,45}, + {16,14,-88,-11,-67,-73,-20,43}, + {-60,-63,26,32,-29,18,-44,-69}, + {1,21,21,38,7,-100,-61,-76}, + {-90,95,-99,88,49,-80,27,-36}, + {24,-12,-47,-7,29,15,52,37}, + {-98,-76,29,76,-41,-75,97,79}, + {62,-90,-35,-14,-30,-42,-95,52} + }; +const double dA2[][8] = + { + {80,42,3,-16,6,55,87,16}, + {-99,-14,21,-1,-94,-56,91,10}, + {-47,-55,-59,62,12,-53,87,-65}, + {-60,94,-67,23,-62,33,-63,-72}, + {12,-75,16,21,22,-37,1,16}, + {-100,-99,82,-66,2,64,-13,44}, + {59,-100,-90,8,36,-24,18,88}, + {73,-58,75,-100,-19,-29,85,-19} + }; +const int *Ap[3] = {(int*) A0,(int*) A1,(int*) A2}; +const int *Bp[3] = {(int*) B0,(int*) B1,(int*) B2}; +const double *dAp[3] = {(double*) dA0,(double*) dA1,(double*) dA2}; +const double *dBp[3] = {(double*) dB0,(double*) dB1,(double*) dB2}; +int n[3] = {2,4,8}; +int n_arrays = 3; diff --git a/buch/papers/multiplikation/code/c_meas_1024.pdf b/buch/papers/multiplikation/code/c_meas_1024.pdf new file mode 100644 index 0000000..95b68b5 Binary files /dev/null and b/buch/papers/multiplikation/code/c_meas_1024.pdf differ diff --git a/buch/papers/multiplikation/code/c_meas_128.pdf b/buch/papers/multiplikation/code/c_meas_128.pdf new file mode 100644 index 0000000..56b9200 Binary files /dev/null and b/buch/papers/multiplikation/code/c_meas_128.pdf differ diff --git a/buch/papers/multiplikation/code/c_meas_16.pdf b/buch/papers/multiplikation/code/c_meas_16.pdf new file mode 100644 index 0000000..2edc82d Binary files /dev/null and b/buch/papers/multiplikation/code/c_meas_16.pdf differ diff --git a/buch/papers/multiplikation/code/c_meas_2048.pdf b/buch/papers/multiplikation/code/c_meas_2048.pdf new file mode 100644 index 0000000..caba698 Binary files /dev/null and b/buch/papers/multiplikation/code/c_meas_2048.pdf differ diff --git a/buch/papers/multiplikation/code/c_meas_256.pdf b/buch/papers/multiplikation/code/c_meas_256.pdf new file mode 100644 index 0000000..383ae86 Binary files /dev/null and b/buch/papers/multiplikation/code/c_meas_256.pdf differ diff --git a/buch/papers/multiplikation/code/c_meas_32.pdf b/buch/papers/multiplikation/code/c_meas_32.pdf new file mode 100644 index 0000000..180fd22 Binary files /dev/null and b/buch/papers/multiplikation/code/c_meas_32.pdf differ diff --git a/buch/papers/multiplikation/code/c_meas_4096.pdf b/buch/papers/multiplikation/code/c_meas_4096.pdf new file mode 100644 index 0000000..547d794 Binary files /dev/null and b/buch/papers/multiplikation/code/c_meas_4096.pdf differ diff --git a/buch/papers/multiplikation/code/c_meas_512.pdf b/buch/papers/multiplikation/code/c_meas_512.pdf new file mode 100644 index 0000000..5e8894e Binary files /dev/null and b/buch/papers/multiplikation/code/c_meas_512.pdf differ diff --git a/buch/papers/multiplikation/code/c_meas_64.pdf b/buch/papers/multiplikation/code/c_meas_64.pdf new file mode 100644 index 0000000..8ff905c Binary files /dev/null and b/buch/papers/multiplikation/code/c_meas_64.pdf differ diff --git a/buch/papers/multiplikation/code/c_meas_8.pdf b/buch/papers/multiplikation/code/c_meas_8.pdf new file mode 100644 index 0000000..9682aca Binary files /dev/null and b/buch/papers/multiplikation/code/c_meas_8.pdf differ diff --git a/buch/papers/multiplikation/code/helper_class.py b/buch/papers/multiplikation/code/helper_class.py new file mode 100755 index 0000000..485fa76 --- /dev/null +++ b/buch/papers/multiplikation/code/helper_class.py @@ -0,0 +1,105 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Fri Mar 12 09:02:48 2021 + +@author: nunigan +""" + +from datetime import datetime +import numpy as np + +class Helper(): + def __init__(self): + pass + + def write_c_matrix(self, n_array): + + with open('c_matrix.h', 'w') as file: + file.writelines('/* Seminar Matrizen, autogenerated File, Michael Schmid, {} */ \n \n'.format(datetime.now().strftime("%d/%m/%Y, %H:%M:%S"))) + + file.writelines('#include \n') + + + + for k, n in enumerate(n_array): + A = np.random.randint(-100,100,(n,n)) + B = np.random.randint(-100,100,(n,n)) + file.writelines('const int A{}[][{}] = \n'.format(k, n)) + file.writelines(' {\n') + for i in range(n): + file.writelines(' {') + for j in range(n): + if j == n-1: + file.writelines('{}'.format(A[i,j])) + else: + file.writelines('{},'.format(A[i,j])) + if i == n-1: + file.writelines('}\n') + else: + file.writelines('},\n') + + file.writelines(' };\n') + + file.writelines('const int B{}[][{}] = \n'.format(k,n)) + file.writelines(' {\n') + for i in range(n): + file.writelines(' {') + for j in range(n): + if j == n-1: + file.writelines('{}'.format(B[i,j])) + else: + file.writelines('{},'.format(B[i,j])) + if i == n-1: + file.writelines('}\n') + else: + file.writelines('},\n') + + file.writelines(' };\n') + + file.writelines('const double dB{}[][{}] = \n'.format(k,n)) + file.writelines(' {\n') + for i in range(n): + file.writelines(' {') + for j in range(n): + if j == n-1: + file.writelines('{}'.format(B[i,j])) + else: + file.writelines('{},'.format(B[i,j])) + if i == n-1: + file.writelines('}\n') + else: + file.writelines('},\n') + + file.writelines(' };\n') + + file.writelines('const double dA{}[][{}] = \n'.format(k,n)) + file.writelines(' {\n') + for i in range(n): + file.writelines(' {') + for j in range(n): + if j == n-1: + file.writelines('{}'.format(A[i,j])) + else: + file.writelines('{},'.format(A[i,j])) + if i == n-1: + file.writelines('}\n') + else: + file.writelines('},\n') + + file.writelines(' };\n') + + file.writelines('const int *Ap[{}] = {{{}}}; \n'.format(len(n_array),",".join(['(int*) A'+str(element) for element in np.arange(len(n_array))]))) + file.writelines('const int *Bp[{}] = {{{}}}; \n'.format(len(n_array),",".join(['(int*) B'+str(element) for element in np.arange(len(n_array))]))) + file.writelines('const double *dAp[{}] = {{{}}}; \n'.format(len(n_array),",".join(['(double*) dA'+str(element) for element in np.arange(len(n_array))]))) + file.writelines('const double *dBp[{}] = {{{}}}; \n'.format(len(n_array),",".join(['(double*) dB'+str(element) for element in np.arange(len(n_array))]))) + file.writelines('int n[{}] = {{{}}}; \n'.format(len(n_array),",".join([str(element) for element in n_array]))) + file.writelines('int n_arrays = {};\n'.format(len(n_array))) + +# test%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +if __name__ == '__main__': + + helper = Helper() + # n = np.arange(2,10) + n = np.logspace(1,3,3,base=2,dtype=(np.int)) + C = helper.write_c_matrix(n) diff --git a/buch/papers/multiplikation/code/meas/MM.txt b/buch/papers/multiplikation/code/meas/MM.txt new file mode 100644 index 0000000..1a0cd5d --- /dev/null +++ b/buch/papers/multiplikation/code/meas/MM.txt @@ -0,0 +1,12 @@ +0.000000,2 +0.000000,4 +0.000002,8 +0.000011,16 +0.000080,32 +0.000653,64 +0.005397,128 +0.045147,256 +0.487710,512 +3.964180,1024 +128.863544,2048 +996.370209,4096 diff --git a/buch/papers/multiplikation/code/meas/MM_dc.txt b/buch/papers/multiplikation/code/meas/MM_dc.txt new file mode 100644 index 0000000..0d5580a --- /dev/null +++ b/buch/papers/multiplikation/code/meas/MM_dc.txt @@ -0,0 +1,12 @@ +0.000006,2 +0.000007,4 +0.000035,8 +0.000228,16 +0.001310,32 +0.007204,64 +0.034338,128 +0.267511,256 +2.131212,512 +17.177403,1024 +146.112874,2048 +1156.777565,4096 diff --git a/buch/papers/multiplikation/code/meas/blas.txt b/buch/papers/multiplikation/code/meas/blas.txt new file mode 100644 index 0000000..6b7cd0b --- /dev/null +++ b/buch/papers/multiplikation/code/meas/blas.txt @@ -0,0 +1,12 @@ +0.000001,2 +0.000000,4 +0.000001,8 +0.000003,16 +0.000021,32 +0.000164,64 +0.001240,128 +0.009657,256 +0.072523,512 +0.735149,1024 +6.895747,2048 +56.812183,4096 diff --git a/buch/papers/multiplikation/code/meas/strassen.txt b/buch/papers/multiplikation/code/meas/strassen.txt new file mode 100644 index 0000000..89cf41a --- /dev/null +++ b/buch/papers/multiplikation/code/meas/strassen.txt @@ -0,0 +1,12 @@ +0.000000,2 +0.000003,4 +0.000010,8 +0.000086,16 +0.000476,32 +0.003366,64 +0.025547,128 +0.184593,256 +1.248713,512 +9.007700,1024 +61.079879,2048 +424.493037,4096 diff --git a/buch/papers/multiplikation/code/meas/test/4096/MM.txt b/buch/papers/multiplikation/code/meas/test/4096/MM.txt new file mode 100644 index 0000000..25e40e1 --- /dev/null +++ b/buch/papers/multiplikation/code/meas/test/4096/MM.txt @@ -0,0 +1,12 @@ +0.000000,2 +0.000000,4 +0.000002,8 +0.000011,16 +0.000100,32 +0.000712,64 +0.005498,128 +0.046711,256 +0.489233,512 +4.006544,1024 +124.427496,2048 +993.405615,4096 diff --git a/buch/papers/multiplikation/code/meas/test/4096/strassen.txt b/buch/papers/multiplikation/code/meas/test/4096/strassen.txt new file mode 100644 index 0000000..eb2a496 --- /dev/null +++ b/buch/papers/multiplikation/code/meas/test/4096/strassen.txt @@ -0,0 +1,12 @@ +0.000007,2 +0.000007,4 +0.000029,8 +0.000199,16 +0.001414,32 +0.007583,64 +0.028096,128 +0.171662,256 +1.198323,512 +8.421896,1024 +58.803644,2048 +415.115401,4096 diff --git a/buch/papers/multiplikation/code/meas/test/MM.txt b/buch/papers/multiplikation/code/meas/test/MM.txt new file mode 100644 index 0000000..e0754ab --- /dev/null +++ b/buch/papers/multiplikation/code/meas/test/MM.txt @@ -0,0 +1,14900 @@ +0.000004,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000006,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000013,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000008,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000016,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000011,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000025,16 +0.000011,16 +0.000020,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000016,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000021,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000030,20 +0.000029,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000030,20 +0.000030,20 +0.000029,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000048,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000027,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000033,22 +0.000040,22 +0.000045,22 +0.000046,22 +0.000041,22 +0.000040,22 +0.000040,22 +0.000040,22 +0.000042,22 +0.000040,22 +0.000043,22 +0.000030,22 +0.000036,22 +0.000026,22 +0.000037,22 +0.000049,22 +0.000036,22 +0.000046,22 +0.000047,22 +0.000049,22 +0.000037,22 +0.000035,22 +0.000037,22 +0.000050,22 +0.000055,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000036,22 +0.000036,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000036,22 +0.000046,22 +0.000062,22 +0.000047,22 +0.000036,22 +0.000047,22 +0.000041,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000050,24 +0.000053,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000055,24 +0.000058,26 +0.000055,26 +0.000077,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000052,26 +0.000043,26 +0.000043,26 +0.000066,26 +0.000061,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000054,28 +0.000054,28 +0.000053,28 +0.000053,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000065,28 +0.000066,28 +0.000058,28 +0.000097,28 +0.000084,28 +0.000073,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000053,28 +0.000054,28 +0.000054,28 +0.000073,28 +0.000054,28 +0.000053,28 +0.000054,28 +0.000054,28 +0.000053,28 +0.000073,28 +0.000054,28 +0.000064,28 +0.000063,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000073,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000082,28 +0.000063,28 +0.000083,28 +0.000063,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000069,30 +0.000066,30 +0.000066,30 +0.000074,30 +0.000103,30 +0.000108,30 +0.000107,30 +0.000112,30 +0.000111,30 +0.000087,30 +0.000105,30 +0.000076,30 +0.000066,30 +0.000107,30 +0.000119,30 +0.000105,30 +0.000117,30 +0.000077,30 +0.000077,30 +0.000069,30 +0.000069,30 +0.000069,30 +0.000069,30 +0.000079,30 +0.000069,30 +0.000069,30 +0.000069,30 +0.000069,30 +0.000069,30 +0.000069,30 +0.000069,30 +0.000069,30 +0.000077,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000096,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000085,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000089,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000079,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000102,32 +0.000091,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000090,32 +0.000119,32 +0.000129,32 +0.000134,32 +0.000095,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000100,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000102,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000100,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000100,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000114,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000098,34 +0.000096,34 +0.000106,34 +0.000124,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000134,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000131,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000119,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000154,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000116,36 +0.000153,36 +0.000133,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000123,36 +0.000142,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000150,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000143,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000143,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000143,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000145,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000161,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000180,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000143,38 +0.000168,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000168,40 +0.000164,40 +0.000165,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000166,40 +0.000164,40 +0.000268,40 +0.000164,40 +0.000164,40 +0.000165,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000188,40 +0.000183,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000174,40 +0.000293,40 +0.000184,40 +0.000164,40 +0.000164,40 +0.000170,40 +0.000234,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000195,40 +0.000174,40 +0.000164,40 +0.000214,40 +0.000234,40 +0.000203,40 +0.000164,40 +0.000183,40 +0.000183,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000186,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000190,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000200,42 +0.000198,42 +0.000215,42 +0.000258,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000231,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000201,42 +0.000252,42 +0.000189,42 +0.000189,42 +0.000347,42 +0.000296,42 +0.000208,42 +0.000194,42 +0.000195,42 +0.000213,42 +0.000215,42 +0.000323,42 +0.000235,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000199,42 +0.000220,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000199,42 +0.000240,42 +0.000189,42 +0.000222,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000209,42 +0.000199,42 +0.000194,42 +0.000194,42 +0.000194,42 +0.000194,42 +0.000194,42 +0.000194,42 +0.000194,42 +0.000194,42 +0.000194,42 +0.000202,42 +0.000223,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000222,44 +0.000216,44 +0.000217,44 +0.000216,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000217,44 +0.000288,44 +0.000228,44 +0.000216,44 +0.000217,44 +0.000254,44 +0.000216,44 +0.000216,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000216,44 +0.000268,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000256,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000254,44 +0.000255,44 +0.000217,44 +0.000216,44 +0.000216,44 +0.000216,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000240,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000217,44 +0.000245,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000250,46 +0.000246,46 +0.000246,46 +0.000249,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000257,46 +0.000275,46 +0.000303,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000285,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000250,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000252,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000253,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000253,46 +0.000257,46 +0.000277,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000285,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000250,46 +0.000286,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000280,48 +0.000286,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000279,48 +0.000279,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000284,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000284,48 +0.000280,48 +0.000280,48 +0.000290,48 +0.000311,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000318,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000281,48 +0.000279,48 +0.000280,48 +0.000279,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000280,48 +0.000279,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000283,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000281,48 +0.000321,48 +0.000280,48 +0.000332,48 +0.000316,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000334,48 +0.000343,48 +0.000319,50 +0.000338,50 +0.000315,50 +0.000431,50 +0.000315,50 +0.000335,50 +0.000315,50 +0.000446,50 +0.000315,50 +0.000315,50 +0.000351,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000359,50 +0.000315,50 +0.000343,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000355,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000352,50 +0.000315,50 +0.000315,50 +0.000325,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000326,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000354,50 +0.000339,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000343,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000334,50 +0.000376,50 +0.000317,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000319,50 +0.000315,50 +0.000359,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000354,52 +0.000353,52 +0.000362,52 +0.000353,52 +0.000354,52 +0.000356,52 +0.000392,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000354,52 +0.000353,52 +0.000354,52 +0.000354,52 +0.000358,52 +0.000353,52 +0.000354,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000354,52 +0.000353,52 +0.000354,52 +0.000355,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000354,52 +0.000357,52 +0.000353,52 +0.000354,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000354,52 +0.000353,52 +0.000354,52 +0.000362,52 +0.000356,52 +0.000354,52 +0.000353,52 +0.000392,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000358,52 +0.000353,52 +0.000353,52 +0.000354,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000354,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000355,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000358,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000355,52 +0.000409,54 +0.000395,54 +0.000395,54 +0.000405,54 +0.000423,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000400,54 +0.000394,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000396,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000394,54 +0.000395,54 +0.000395,54 +0.000396,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000394,54 +0.000395,54 +0.000395,54 +0.000398,54 +0.000395,54 +0.000403,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000434,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000397,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000399,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000421,54 +0.000395,54 +0.000395,54 +0.000473,54 +0.000404,54 +0.000419,54 +0.000415,54 +0.000419,54 +0.000408,54 +0.000443,54 +0.000419,54 +0.000395,54 +0.000419,54 +0.000434,54 +0.000409,54 +0.000467,54 +0.000462,54 +0.000429,54 +0.000395,54 +0.000440,54 +0.000415,54 +0.000395,54 +0.000497,54 +0.000415,54 +0.000395,54 +0.000436,54 +0.000395,54 +0.000395,54 +0.000431,54 +0.000395,54 +0.000444,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000469,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000463,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000448,56 +0.000439,56 +0.000439,56 +0.000523,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000472,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000535,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000461,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000450,56 +0.000439,56 +0.000468,56 +0.000478,56 +0.000439,56 +0.000439,56 +0.000440,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000441,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000461,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000457,56 +0.000451,56 +0.000451,56 +0.000448,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000470,56 +0.000439,56 +0.000439,56 +0.000537,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000512,58 +0.000500,58 +0.000497,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000529,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000491,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000511,58 +0.000496,58 +0.000487,58 +0.000487,58 +0.000526,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000492,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000489,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000489,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000491,58 +0.000487,58 +0.000495,58 +0.000487,58 +0.000487,58 +0.000526,58 +0.000487,58 +0.000487,58 +0.000489,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000521,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000545,58 +0.000521,58 +0.000511,58 +0.000557,58 +0.000544,58 +0.000531,58 +0.000500,58 +0.000498,58 +0.000539,58 +0.000521,58 +0.000517,58 +0.000549,58 +0.000508,58 +0.000576,60 +0.000609,60 +0.000601,60 +0.000538,60 +0.000538,60 +0.000582,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000543,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000540,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000542,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000546,60 +0.000538,60 +0.000579,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000569,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000570,60 +0.000567,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000542,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000546,60 +0.000538,60 +0.000541,60 +0.000577,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000543,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000540,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000542,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000548,60 +0.000609,60 +0.000538,60 +0.000570,60 +0.000538,60 +0.000558,60 +0.000558,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000542,60 +0.000538,60 +0.000597,62 +0.000593,62 +0.000593,62 +0.000595,62 +0.000593,62 +0.000594,62 +0.000593,62 +0.000592,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000597,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000633,62 +0.000595,62 +0.000601,62 +0.000593,62 +0.000632,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000598,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000595,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000594,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000597,62 +0.000593,62 +0.000601,62 +0.000593,62 +0.000632,62 +0.000593,62 +0.000595,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000597,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000606,62 +0.000668,62 +0.000617,62 +0.000617,62 +0.000637,62 +0.000607,62 +0.000634,62 +0.000625,62 +0.000608,62 +0.000667,62 +0.000634,62 +0.000653,62 +0.000683,62 +0.000625,62 +0.000593,62 +0.000593,62 +0.000635,62 +0.000593,62 +0.000593,62 +0.000633,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000613,62 +0.000677,62 +0.000746,62 +0.000613,62 +0.000749,62 +0.000623,62 +0.000612,62 +0.000593,62 +0.000632,62 +0.000593,62 +0.000612,62 +0.000658,64 +0.000681,64 +0.000651,64 +0.000697,64 +0.000650,64 +0.000650,64 +0.000671,64 +0.000650,64 +0.000650,64 +0.000680,64 +0.000650,64 +0.000650,64 +0.000651,64 +0.000650,64 +0.000651,64 +0.000673,64 +0.000732,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000654,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000659,64 +0.000653,64 +0.000690,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000655,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000652,64 +0.000651,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000654,64 +0.000650,64 +0.000670,64 +0.000670,64 +0.000650,64 +0.000709,64 +0.000663,64 +0.000689,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000655,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000652,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000654,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000652,64 +0.000658,64 +0.000650,64 +0.000689,64 +0.000650,64 +0.000650,64 +0.000655,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000652,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000654,64 +0.000650,64 +0.000650,64 +0.000651,64 +0.000651,64 +0.000650,64 +0.000725,66 +0.000713,66 +0.000722,66 +0.000713,66 +0.000752,66 +0.000713,66 +0.000718,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000759,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000717,66 +0.000713,66 +0.000812,66 +0.000736,66 +0.000740,66 +0.000776,66 +0.000755,66 +0.000738,66 +0.000766,66 +0.000775,66 +0.000797,66 +0.000776,66 +0.000829,66 +0.000722,66 +0.000713,66 +0.000713,66 +0.000736,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000859,66 +0.000825,66 +0.000713,66 +0.000713,66 +0.000733,66 +0.000757,66 +0.000713,66 +0.000733,66 +0.000765,66 +0.000772,66 +0.000894,66 +0.000713,66 +0.000713,66 +0.000752,66 +0.000731,66 +0.000754,66 +0.000723,66 +0.000713,66 +0.000734,66 +0.000713,66 +0.000713,66 +0.000749,66 +0.000793,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000840,66 +0.000768,66 +0.000752,66 +0.000756,66 +0.000713,66 +0.000724,66 +0.000781,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000736,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000736,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000744,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000712,66 +0.000745,66 +0.000713,66 +0.000752,66 +0.000713,66 +0.000713,66 +0.000719,66 +0.000713,66 +0.000789,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000785,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000783,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000780,68 +0.000787,68 +0.000817,68 +0.000778,68 +0.000778,68 +0.000783,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000780,68 +0.000779,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000780,68 +0.000779,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000782,68 +0.000778,68 +0.000787,68 +0.000778,68 +0.000817,68 +0.000781,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000783,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000780,68 +0.000778,68 +0.000845,68 +0.000822,68 +0.000813,68 +0.000832,68 +0.000826,68 +0.000902,68 +0.000890,68 +0.000835,68 +0.000799,68 +0.000868,68 +0.000778,68 +0.000778,68 +0.000816,68 +0.000778,68 +0.000779,68 +0.000778,68 +0.000778,68 +0.000813,68 +0.000798,68 +0.000778,68 +0.000778,68 +0.000798,68 +0.000820,68 +0.000778,68 +0.000779,68 +0.000778,68 +0.000787,68 +0.000841,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000783,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000780,68 +0.000846,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000786,68 +0.000779,68 +0.000778,68 +0.000779,68 +0.000790,68 +0.000864,70 +0.000887,70 +0.000848,70 +0.000895,70 +0.000856,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000850,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000849,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000863,70 +0.000848,70 +0.000887,70 +0.000848,70 +0.000848,70 +0.000852,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000854,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000850,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000852,70 +0.000857,70 +0.000848,70 +0.000887,70 +0.000848,70 +0.000850,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000896,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000850,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000852,70 +0.000848,70 +0.000857,70 +0.000887,70 +0.000848,70 +0.000851,70 +0.001152,70 +0.000848,70 +0.000848,70 +0.000880,70 +0.001018,70 +0.000848,70 +0.001016,70 +0.000885,70 +0.000848,70 +0.000935,70 +0.000894,70 +0.000883,70 +0.000921,70 +0.000926,70 +0.000922,70 +0.001052,70 +0.000956,70 +0.000883,70 +0.001083,70 +0.000970,70 +0.001244,70 +0.000980,70 +0.000928,70 +0.000927,70 +0.000914,70 +0.000951,70 +0.000948,70 +0.000969,70 +0.000974,70 +0.000970,70 +0.001081,70 +0.001080,70 +0.000962,70 +0.000948,70 +0.000948,70 +0.000946,70 +0.000934,70 +0.000946,70 +0.001066,72 +0.001042,72 +0.001018,72 +0.001084,72 +0.001068,72 +0.001038,72 +0.001056,72 +0.001073,72 +0.001119,72 +0.001100,72 +0.001092,72 +0.001032,72 +0.001029,72 +0.001016,72 +0.001057,72 +0.001057,72 +0.001057,72 +0.001068,72 +0.001039,72 +0.001038,72 +0.001066,72 +0.001032,72 +0.001037,72 +0.001037,72 +0.001135,72 +0.001046,72 +0.001085,72 +0.001089,72 +0.001054,72 +0.001079,72 +0.001024,72 +0.001033,72 +0.001036,72 +0.001050,72 +0.000921,72 +0.001033,72 +0.001062,72 +0.000960,72 +0.000921,72 +0.001050,72 +0.001081,72 +0.001111,72 +0.001031,72 +0.001009,72 +0.001014,72 +0.000946,72 +0.001031,72 +0.000950,72 +0.001043,72 +0.000921,72 +0.000921,72 +0.001055,72 +0.000958,72 +0.001054,72 +0.001056,72 +0.000921,72 +0.000980,72 +0.001135,72 +0.001088,72 +0.001116,72 +0.000955,72 +0.000921,72 +0.001174,72 +0.000941,72 +0.000967,72 +0.001058,72 +0.000921,72 +0.000921,72 +0.000947,72 +0.001054,72 +0.000941,72 +0.001007,72 +0.001018,72 +0.001027,72 +0.000987,72 +0.001003,72 +0.001095,72 +0.000942,72 +0.001094,72 +0.000921,72 +0.000971,72 +0.000921,72 +0.000921,72 +0.000942,72 +0.000965,72 +0.000921,72 +0.000921,72 +0.000921,72 +0.000921,72 +0.000966,72 +0.000941,72 +0.000921,72 +0.000941,72 +0.000996,72 +0.000921,72 +0.000921,72 +0.000921,72 +0.000967,72 +0.000921,72 +0.000921,72 +0.001012,74 +0.001031,74 +0.000999,74 +0.001078,74 +0.000998,74 +0.001047,74 +0.000999,74 +0.000999,74 +0.000999,74 +0.001067,74 +0.001024,74 +0.000998,74 +0.000999,74 +0.001002,74 +0.000998,74 +0.000998,74 +0.000998,74 +0.001007,74 +0.000998,74 +0.000998,74 +0.000998,74 +0.001001,74 +0.000998,74 +0.000999,74 +0.001053,74 +0.001033,74 +0.001023,74 +0.000999,74 +0.000998,74 +0.001003,74 +0.000999,74 +0.000999,74 +0.000998,74 +0.001000,74 +0.000999,74 +0.000998,74 +0.000998,74 +0.001005,74 +0.000999,74 +0.000998,74 +0.000998,74 +0.001000,74 +0.001022,74 +0.001024,74 +0.000999,74 +0.001007,74 +0.000999,74 +0.000999,74 +0.000998,74 +0.001000,74 +0.000998,74 +0.000998,74 +0.000999,74 +0.001000,74 +0.000999,74 +0.000999,74 +0.000999,74 +0.001002,74 +0.001021,74 +0.000998,74 +0.001023,74 +0.001002,74 +0.000998,74 +0.000998,74 +0.000998,74 +0.001005,74 +0.000999,74 +0.000999,74 +0.000998,74 +0.001000,74 +0.000998,74 +0.000999,74 +0.001075,74 +0.001077,74 +0.001043,74 +0.001087,74 +0.001126,74 +0.001090,74 +0.001029,74 +0.001098,74 +0.001032,74 +0.000999,74 +0.000998,74 +0.001048,74 +0.001004,74 +0.000999,74 +0.000999,74 +0.000999,74 +0.001006,74 +0.000999,74 +0.000999,74 +0.001023,74 +0.001028,74 +0.000999,74 +0.000998,74 +0.000999,74 +0.001007,74 +0.000998,74 +0.000998,74 +0.000998,74 +0.001095,76 +0.001081,76 +0.001153,76 +0.001081,76 +0.001095,76 +0.001081,76 +0.001081,76 +0.001111,76 +0.001116,76 +0.001082,76 +0.001080,76 +0.001091,76 +0.001080,76 +0.001081,76 +0.001081,76 +0.001083,76 +0.001081,76 +0.001081,76 +0.001082,76 +0.001277,76 +0.001102,76 +0.001101,76 +0.001132,76 +0.001106,76 +0.001081,76 +0.001105,76 +0.001081,76 +0.001081,76 +0.001081,76 +0.001104,76 +0.001081,76 +0.001080,76 +0.001081,76 +0.001109,76 +0.001081,76 +0.001081,76 +0.001109,76 +0.001103,76 +0.001105,76 +0.001081,76 +0.001089,76 +0.001081,76 +0.001081,76 +0.001080,76 +0.001082,76 +0.001081,76 +0.001081,76 +0.001102,76 +0.001081,76 +0.001081,76 +0.001081,76 +0.001085,76 +0.001080,76 +0.001103,76 +0.001104,76 +0.001107,76 +0.001081,76 +0.001081,76 +0.001089,76 +0.001174,76 +0.001081,76 +0.001081,76 +0.001330,76 +0.001080,76 +0.001081,76 +0.001148,76 +0.001121,76 +0.001161,76 +0.001117,76 +0.001203,76 +0.001255,76 +0.001144,76 +0.001592,76 +0.002119,76 +0.002177,76 +0.001425,76 +0.001322,76 +0.001309,76 +0.001290,76 +0.001266,76 +0.001303,76 +0.001343,76 +0.001229,76 +0.001141,76 +0.001222,76 +0.001349,76 +0.001260,76 +0.001221,76 +0.001172,76 +0.001276,76 +0.001166,76 +0.001110,76 +0.001237,76 +0.001164,76 +0.001207,76 +0.001205,76 +0.001145,76 +0.001226,76 +0.001109,76 +0.001230,76 +0.001250,78 +0.001198,78 +0.001318,78 +0.001202,78 +0.001205,78 +0.001384,78 +0.001220,78 +0.001353,78 +0.001168,78 +0.001194,78 +0.001167,78 +0.001167,78 +0.001167,78 +0.001215,78 +0.001167,78 +0.001167,78 +0.001201,78 +0.001167,78 +0.001167,78 +0.001239,78 +0.001190,78 +0.001191,78 +0.001168,78 +0.001204,78 +0.001167,78 +0.001167,78 +0.001198,78 +0.001167,78 +0.001177,78 +0.001198,78 +0.001167,78 +0.001167,78 +0.001167,78 +0.001221,78 +0.001190,78 +0.001194,78 +0.001362,78 +0.001167,78 +0.001167,78 +0.001210,78 +0.001167,78 +0.001167,78 +0.001167,78 +0.001204,78 +0.001167,78 +0.001167,78 +0.001283,78 +0.001278,78 +0.001323,78 +0.001268,78 +0.001204,78 +0.001262,78 +0.001289,78 +0.001167,78 +0.001167,78 +0.001167,78 +0.001202,78 +0.001309,78 +0.001167,78 +0.001206,78 +0.001167,78 +0.001167,78 +0.001423,78 +0.001194,78 +0.001167,78 +0.001167,78 +0.001211,78 +0.001168,78 +0.001168,78 +0.001192,78 +0.001251,78 +0.001167,78 +0.001332,78 +0.001199,78 +0.001190,78 +0.001189,78 +0.001204,78 +0.001191,78 +0.001167,78 +0.001212,78 +0.001167,78 +0.001167,78 +0.001207,78 +0.001167,78 +0.001167,78 +0.001167,78 +0.001201,78 +0.001167,78 +0.001167,78 +0.001239,78 +0.001167,78 +0.001192,78 +0.001184,78 +0.001186,78 +0.001168,78 +0.001167,78 +0.001173,78 +0.001168,78 +0.001167,78 +0.001169,78 +0.001268,80 +0.001257,80 +0.001261,80 +0.001279,80 +0.001282,80 +0.001257,80 +0.001261,80 +0.001257,80 +0.001257,80 +0.001263,80 +0.001257,80 +0.001257,80 +0.001259,80 +0.001257,80 +0.001287,80 +0.001268,80 +0.001257,80 +0.001297,80 +0.001284,80 +0.001257,80 +0.001257,80 +0.001259,80 +0.001257,80 +0.001257,80 +0.001256,80 +0.001263,80 +0.001257,80 +0.001257,80 +0.001259,80 +0.001353,80 +0.001333,80 +0.001366,80 +0.001305,80 +0.001357,80 +0.001332,80 +0.001365,80 +0.001257,80 +0.001291,80 +0.001257,80 +0.001257,80 +0.001282,80 +0.001257,80 +0.001278,80 +0.001294,80 +0.001280,80 +0.001257,80 +0.001286,80 +0.001257,80 +0.001257,80 +0.001280,80 +0.001257,80 +0.001330,80 +0.001257,80 +0.001302,80 +0.001257,80 +0.001257,80 +0.001283,80 +0.001281,80 +0.001257,80 +0.001261,80 +0.001257,80 +0.001257,80 +0.001297,80 +0.001306,80 +0.001257,80 +0.001300,80 +0.001267,80 +0.001257,80 +0.001323,80 +0.001278,80 +0.001280,80 +0.001281,80 +0.001257,80 +0.001257,80 +0.001274,80 +0.001266,80 +0.001257,80 +0.001257,80 +0.001259,80 +0.001257,80 +0.001257,80 +0.001260,80 +0.001278,80 +0.001353,80 +0.001274,80 +0.001259,80 +0.001257,80 +0.001263,80 +0.001257,80 +0.001257,80 +0.001259,80 +0.001257,80 +0.001257,80 +0.001261,80 +0.001434,80 +0.001276,80 +0.001527,80 +0.001383,80 +0.001498,80 +0.001345,80 +0.001604,82 +0.001498,82 +0.001578,82 +0.001498,82 +0.001565,82 +0.001591,82 +0.001523,82 +0.001503,82 +0.001502,82 +0.001531,82 +0.001463,82 +0.001638,82 +0.001432,82 +0.001530,82 +0.001492,82 +0.001578,82 +0.001501,82 +0.001977,82 +0.001577,82 +0.001540,82 +0.001526,82 +0.001540,82 +0.001564,82 +0.001492,82 +0.001627,82 +0.001528,82 +0.001529,82 +0.001539,82 +0.001479,82 +0.001453,82 +0.001450,82 +0.001442,82 +0.001445,82 +0.001457,82 +0.001457,82 +0.001469,82 +0.001572,82 +0.001430,82 +0.001776,82 +0.001605,82 +0.001509,82 +0.001503,82 +0.001509,82 +0.001536,82 +0.001509,82 +0.001493,82 +0.001517,82 +0.001511,82 +0.001508,82 +0.001513,82 +0.001536,82 +0.001484,82 +0.001468,82 +0.001473,82 +0.001476,82 +0.001487,82 +0.001474,82 +0.001489,82 +0.001553,82 +0.001523,82 +0.001489,82 +0.001544,82 +0.001542,82 +0.001464,82 +0.001463,82 +0.001469,82 +0.001482,82 +0.001511,82 +0.001423,82 +0.001497,82 +0.001488,82 +0.001635,82 +0.001456,82 +0.001527,82 +0.001452,82 +0.001566,82 +0.001485,82 +0.001559,82 +0.001428,82 +0.001697,82 +0.001431,82 +0.001431,82 +0.001410,82 +0.001421,82 +0.001736,82 +0.001462,82 +0.001439,82 +0.001382,82 +0.001366,82 +0.001766,82 +0.001578,82 +0.001466,82 +0.001366,82 +0.001556,82 +0.001485,82 +0.001559,82 +0.001420,82 +0.001509,82 +0.001448,82 +0.001433,82 +0.001505,84 +0.001708,84 +0.001583,84 +0.001532,84 +0.001867,84 +0.001624,84 +0.001513,84 +0.001615,84 +0.001491,84 +0.001673,84 +0.001537,84 +0.001602,84 +0.001517,84 +0.001776,84 +0.001573,84 +0.001652,84 +0.001731,84 +0.001606,84 +0.001568,84 +0.001583,84 +0.001534,84 +0.001584,84 +0.001581,84 +0.001996,84 +0.001828,84 +0.001970,84 +0.001907,84 +0.001872,84 +0.001870,84 +0.001966,84 +0.001880,84 +0.001653,84 +0.001818,84 +0.001933,84 +0.001632,84 +0.001582,84 +0.001560,84 +0.001675,84 +0.001603,84 +0.001697,84 +0.001657,84 +0.001648,84 +0.001725,84 +0.001654,84 +0.001623,84 +0.001516,84 +0.001491,84 +0.001517,84 +0.001491,84 +0.001679,84 +0.001637,84 +0.001610,84 +0.001630,84 +0.001572,84 +0.001564,84 +0.001569,84 +0.001545,84 +0.001588,84 +0.001658,84 +0.001571,84 +0.001573,84 +0.001709,84 +0.001576,84 +0.001554,84 +0.001481,84 +0.001796,84 +0.001491,84 +0.001621,84 +0.001545,84 +0.001453,84 +0.001494,84 +0.001452,84 +0.001563,84 +0.001522,84 +0.001584,84 +0.001637,84 +0.001725,84 +0.001619,84 +0.001604,84 +0.001670,84 +0.001588,84 +0.001708,84 +0.001615,84 +0.001452,84 +0.001606,84 +0.001490,84 +0.001604,84 +0.001579,84 +0.001527,84 +0.001452,84 +0.001499,84 +0.001452,84 +0.001465,84 +0.001486,84 +0.001555,84 +0.001452,84 +0.001526,84 +0.001675,84 +0.001599,84 +0.001499,84 +0.001638,86 +0.001737,86 +0.001600,86 +0.001737,86 +0.001559,86 +0.001559,86 +0.001749,86 +0.001691,86 +0.001658,86 +0.001558,86 +0.001590,86 +0.001558,86 +0.001559,86 +0.001587,86 +0.001558,86 +0.001680,86 +0.001558,86 +0.001579,86 +0.001627,86 +0.001597,86 +0.001789,86 +0.001558,86 +0.001558,86 +0.001584,86 +0.001559,86 +0.001583,86 +0.001558,86 +0.001703,86 +0.001776,86 +0.001597,86 +0.001583,86 +0.001558,86 +0.001559,86 +0.001690,86 +0.001600,86 +0.001592,86 +0.001559,86 +0.001559,86 +0.001683,86 +0.001761,86 +0.001623,86 +0.001558,86 +0.001558,86 +0.001584,86 +0.001558,86 +0.001581,86 +0.001796,86 +0.001659,86 +0.001857,86 +0.001810,86 +0.001826,86 +0.001671,86 +0.001702,86 +0.001696,86 +0.001702,86 +0.001628,86 +0.001734,86 +0.001704,86 +0.001711,86 +0.001851,86 +0.001669,86 +0.001721,86 +0.001756,86 +0.001707,86 +0.001834,86 +0.001838,86 +0.001635,86 +0.001871,86 +0.001859,86 +0.001666,86 +0.001666,86 +0.001657,86 +0.001668,86 +0.001654,86 +0.001675,86 +0.001891,86 +0.001799,86 +0.001804,86 +0.001750,86 +0.001787,86 +0.001738,86 +0.001770,86 +0.001625,86 +0.001771,86 +0.001757,86 +0.001690,86 +0.001711,86 +0.001751,86 +0.001820,86 +0.001612,86 +0.001733,86 +0.001706,86 +0.001678,86 +0.001699,86 +0.001700,86 +0.001734,86 +0.001750,86 +0.001779,86 +0.001700,86 +0.001779,86 +0.001813,88 +0.001813,88 +0.001888,88 +0.001836,88 +0.001887,88 +0.001911,88 +0.001892,88 +0.001787,88 +0.001867,88 +0.001848,88 +0.001905,88 +0.001843,88 +0.001897,88 +0.002130,88 +0.004302,88 +0.001848,88 +0.001766,88 +0.001722,88 +0.001804,88 +0.001802,88 +0.001815,88 +0.001818,88 +0.001847,88 +0.001865,88 +0.001767,88 +0.001776,88 +0.001751,88 +0.001773,88 +0.001744,88 +0.001782,88 +0.001919,88 +0.002034,88 +0.001918,88 +0.001979,88 +0.001885,88 +0.001895,88 +0.001865,88 +0.001859,88 +0.001773,88 +0.001917,88 +0.001851,88 +0.001844,88 +0.001803,88 +0.001832,88 +0.001774,88 +0.001863,88 +0.001940,88 +0.001916,88 +0.001999,88 +0.001922,88 +0.001866,88 +0.001984,88 +0.001864,88 +0.001809,88 +0.001784,88 +0.001841,88 +0.001970,88 +0.001865,88 +0.001875,88 +0.001867,88 +0.001998,88 +0.001879,88 +0.001818,88 +0.001863,88 +0.001943,88 +0.002102,88 +0.001872,88 +0.001922,88 +0.001922,88 +0.001738,88 +0.001803,88 +0.001777,88 +0.001788,88 +0.002044,88 +0.002014,88 +0.001786,88 +0.001942,88 +0.001800,88 +0.001764,88 +0.001819,88 +0.001800,88 +0.001826,88 +0.001763,88 +0.001832,88 +0.001832,88 +0.001867,88 +0.001826,88 +0.001783,88 +0.001833,88 +0.001755,88 +0.001767,88 +0.001849,88 +0.001800,88 +0.001838,88 +0.002000,88 +0.001914,88 +0.001889,88 +0.001822,88 +0.001900,88 +0.001868,88 +0.002045,90 +0.002083,90 +0.001996,90 +0.002012,90 +0.001956,90 +0.001960,90 +0.001994,90 +0.001975,90 +0.002229,90 +0.001996,90 +0.001926,90 +0.002033,90 +0.001940,90 +0.001917,90 +0.001934,90 +0.001913,90 +0.001920,90 +0.001983,90 +0.001978,90 +0.002018,90 +0.001928,90 +0.001949,90 +0.001948,90 +0.001969,90 +0.002095,90 +0.001965,90 +0.002043,90 +0.001930,90 +0.001987,90 +0.001946,90 +0.001935,90 +0.001928,90 +0.001970,90 +0.001996,90 +0.001952,90 +0.002076,90 +0.002171,90 +0.002512,90 +0.002524,90 +0.002317,90 +0.002413,90 +0.002428,90 +0.002173,90 +0.002052,90 +0.002012,90 +0.001995,90 +0.001990,90 +0.002001,90 +0.001979,90 +0.001961,90 +0.002068,90 +0.001985,90 +0.001988,90 +0.002031,90 +0.002024,90 +0.002012,90 +0.001985,90 +0.001977,90 +0.002043,90 +0.002001,90 +0.002052,90 +0.002040,90 +0.002011,90 +0.002026,90 +0.001964,90 +0.002007,90 +0.001987,90 +0.001951,90 +0.001966,90 +0.002065,90 +0.001977,90 +0.001908,90 +0.001914,90 +0.002070,90 +0.002188,90 +0.002242,90 +0.002210,90 +0.002093,90 +0.002013,90 +0.001985,90 +0.001969,90 +0.001980,90 +0.001984,90 +0.001978,90 +0.001962,90 +0.001997,90 +0.001951,90 +0.001964,90 +0.001948,90 +0.001950,90 +0.001944,90 +0.002016,90 +0.001914,90 +0.001957,90 +0.001954,90 +0.001952,90 +0.001933,90 +0.001929,90 +0.001929,90 +0.001955,90 +0.002176,92 +0.002076,92 +0.002074,92 +0.002073,92 +0.002086,92 +0.002072,92 +0.002070,92 +0.002071,92 +0.002150,92 +0.002102,92 +0.002085,92 +0.002072,92 +0.002090,92 +0.002103,92 +0.002081,92 +0.002080,92 +0.002178,92 +0.002117,92 +0.002096,92 +0.002074,92 +0.002081,92 +0.002049,92 +0.001983,92 +0.001978,92 +0.001988,92 +0.002048,92 +0.002083,92 +0.001966,92 +0.001939,92 +0.001905,92 +0.001938,92 +0.001905,92 +0.001998,92 +0.001988,92 +0.001990,92 +0.001956,92 +0.001944,92 +0.001905,92 +0.001940,92 +0.001905,92 +0.001931,92 +0.002051,92 +0.001932,92 +0.001916,92 +0.001945,92 +0.001934,92 +0.001905,92 +0.001934,92 +0.001905,92 +0.001959,92 +0.001905,92 +0.001956,92 +0.002195,92 +0.002039,92 +0.002183,92 +0.001987,92 +0.002163,92 +0.002143,92 +0.002184,92 +0.002212,92 +0.002241,92 +0.002146,92 +0.002183,92 +0.002171,92 +0.002169,92 +0.002408,92 +0.002204,92 +0.002163,92 +0.002097,92 +0.002111,92 +0.002057,92 +0.002114,92 +0.002097,92 +0.002273,92 +0.002191,92 +0.002150,92 +0.002058,92 +0.002047,92 +0.002057,92 +0.002034,92 +0.001942,92 +0.002168,92 +0.002163,92 +0.003191,92 +0.002162,92 +0.002106,92 +0.002028,92 +0.002057,92 +0.002162,92 +0.002098,92 +0.002227,92 +0.002239,92 +0.002172,92 +0.002044,92 +0.002031,92 +0.002021,92 +0.002299,92 +0.002519,92 +0.002628,92 +0.002104,92 +0.002270,94 +0.002232,94 +0.002239,94 +0.002805,94 +0.002718,94 +0.002506,94 +0.002880,94 +0.002652,94 +0.002438,94 +0.002516,94 +0.002958,94 +0.002180,94 +0.002139,94 +0.002145,94 +0.002162,94 +0.002192,94 +0.002308,94 +0.002193,94 +0.003367,94 +0.002772,94 +0.002902,94 +0.002238,94 +0.002120,94 +0.002267,94 +0.002291,94 +0.002955,94 +0.002548,94 +0.002764,94 +0.002785,94 +0.002638,94 +0.002414,94 +0.002271,94 +0.002242,94 +0.002232,94 +0.002199,94 +0.002193,94 +0.002248,94 +0.002287,94 +0.002269,94 +0.002258,94 +0.002242,94 +0.002174,94 +0.002188,94 +0.002180,94 +0.002209,94 +0.002219,94 +0.002284,94 +0.002228,94 +0.002259,94 +0.002227,94 +0.002286,94 +0.002191,94 +0.002205,94 +0.002281,94 +0.002241,94 +0.002187,94 +0.002224,94 +0.002170,94 +0.002151,94 +0.002234,94 +0.002278,94 +0.002294,94 +0.002267,94 +0.002179,94 +0.002405,94 +0.002226,94 +0.002247,94 +0.002268,94 +0.002221,94 +0.002960,94 +0.003003,94 +0.002788,94 +0.002929,94 +0.002821,94 +0.003428,94 +0.002702,94 +0.002226,94 +0.002220,94 +0.002311,94 +0.002193,94 +0.002503,94 +0.002530,94 +0.002313,94 +0.002327,94 +0.002228,94 +0.002315,94 +0.002801,94 +0.003093,94 +0.002355,94 +0.002123,94 +0.002102,94 +0.002036,94 +0.002268,94 +0.002291,94 +0.002212,94 +0.002548,94 +0.002096,94 +0.002070,94 +0.002223,94 +0.003631,94 +0.003131,96 +0.002345,96 +0.002444,96 +0.002200,96 +0.002164,96 +0.002201,96 +0.002165,96 +0.002459,96 +0.002256,96 +0.002386,96 +0.002270,96 +0.002165,96 +0.002200,96 +0.002165,96 +0.002303,96 +0.002474,96 +0.002570,96 +0.002492,96 +0.002222,96 +0.002253,96 +0.002445,96 +0.002405,96 +0.002374,96 +0.002388,96 +0.002320,96 +0.002348,96 +0.002412,96 +0.002335,96 +0.002826,96 +0.002458,96 +0.002369,96 +0.002287,96 +0.002271,96 +0.002221,96 +0.002232,96 +0.002600,96 +0.002674,96 +0.002477,96 +0.002204,96 +0.002200,96 +0.002249,96 +0.002207,96 +0.002188,96 +0.003085,96 +0.002353,96 +0.002224,96 +0.002199,96 +0.002165,96 +0.002200,96 +0.002524,96 +0.002687,96 +0.002478,96 +0.002204,96 +0.002224,96 +0.002204,96 +0.002476,96 +0.002659,96 +0.002713,96 +0.002460,96 +0.002290,96 +0.002394,96 +0.002247,96 +0.002490,96 +0.002873,96 +0.002604,96 +0.002406,96 +0.002254,96 +0.002250,96 +0.002389,96 +0.002253,96 +0.002941,96 +0.002625,96 +0.002418,96 +0.002181,96 +0.002247,96 +0.002221,96 +0.002249,96 +0.002854,96 +0.002349,96 +0.002397,96 +0.002164,96 +0.002199,96 +0.002287,96 +0.002282,96 +0.002452,96 +0.002915,96 +0.002363,96 +0.002283,96 +0.002221,96 +0.002247,96 +0.002222,96 +0.002580,96 +0.002344,96 +0.002385,96 +0.002205,96 +0.002164,96 +0.002200,96 +0.002164,96 +0.002477,96 +0.002228,96 +0.002862,98 +0.002740,98 +0.002681,98 +0.002558,98 +0.003056,98 +0.003342,98 +0.002864,98 +0.003272,98 +0.003514,98 +0.002586,98 +0.002846,98 +0.003309,98 +0.002700,98 +0.002704,98 +0.002443,98 +0.002605,98 +0.003502,98 +0.003117,98 +0.002557,98 +0.002528,98 +0.002538,98 +0.002366,98 +0.002391,98 +0.003854,98 +0.003106,98 +0.002539,98 +0.002463,98 +0.002305,98 +0.003020,98 +0.002789,98 +0.002425,98 +0.002469,98 +0.002396,98 +0.002366,98 +0.002765,98 +0.002778,98 +0.002635,98 +0.002610,98 +0.002480,98 +0.002392,98 +0.002396,98 +0.002714,98 +0.002756,98 +0.002841,98 +0.004154,98 +0.002943,98 +0.002630,98 +0.002467,98 +0.003615,98 +0.003165,98 +0.002790,98 +0.002379,98 +0.003336,98 +0.002897,98 +0.003019,98 +0.002448,98 +0.002841,98 +0.002532,98 +0.002560,98 +0.002856,98 +0.003478,98 +0.003149,98 +0.002553,98 +0.002413,98 +0.002631,98 +0.003139,98 +0.002597,98 +0.002427,98 +0.002502,98 +0.002393,98 +0.002618,98 +0.002441,98 +0.002753,98 +0.003863,98 +0.003689,98 +0.002348,98 +0.002846,98 +0.002731,98 +0.002495,98 +0.002508,98 +0.002396,98 +0.002401,98 +0.002703,98 +0.002545,98 +0.002685,98 +0.002514,98 +0.002346,98 +0.002623,98 +0.002410,98 +0.002921,98 +0.003268,98 +0.002623,98 +0.002346,98 +0.002697,98 +0.002615,98 +0.002521,98 +0.003498,98 +0.003344,98 +0.003301,98 +0.002581,98 +0.002742,100 +0.002698,100 +0.003454,100 +0.002797,100 +0.002585,100 +0.002507,100 +0.002585,100 +0.002588,100 +0.003374,100 +0.002645,100 +0.002527,100 +0.002447,100 +0.002799,100 +0.002665,100 +0.003417,100 +0.002694,100 +0.002484,100 +0.002548,100 +0.002658,100 +0.002574,100 +0.003506,100 +0.002723,100 +0.002596,100 +0.002688,100 +0.002624,100 +0.002649,100 +0.003460,100 +0.002747,100 +0.002662,100 +0.002631,100 +0.002617,100 +0.002584,100 +0.002649,100 +0.002590,100 +0.002796,100 +0.002484,100 +0.002778,100 +0.002643,100 +0.002649,100 +0.002754,100 +0.002555,100 +0.002564,100 +0.002531,100 +0.004300,100 +0.002859,100 +0.002562,100 +0.002571,100 +0.002561,100 +0.002549,100 +0.002654,100 +0.002806,100 +0.002635,100 +0.002647,100 +0.002842,100 +0.002732,100 +0.002691,100 +0.004549,100 +0.003644,100 +0.003237,100 +0.003062,100 +0.003510,100 +0.002940,100 +0.002762,100 +0.002677,100 +0.002640,100 +0.002693,100 +0.002635,100 +0.002778,100 +0.004505,100 +0.002998,100 +0.003058,100 +0.002824,100 +0.002817,100 +0.002728,100 +0.002627,100 +0.002649,100 +0.002588,100 +0.003822,100 +0.003904,100 +0.003254,100 +0.003074,100 +0.003190,100 +0.003889,100 +0.003142,100 +0.002844,100 +0.002776,100 +0.002816,100 +0.003645,100 +0.003645,100 +0.002665,100 +0.002592,100 +0.002575,100 +0.002658,100 +0.003486,100 +0.002725,100 +0.002622,100 +0.002620,100 +0.002645,100 +0.002613,100 +0.002580,100 +0.002724,102 +0.003303,102 +0.003048,102 +0.002780,102 +0.002951,102 +0.004601,102 +0.003367,102 +0.003190,102 +0.003475,102 +0.003924,102 +0.003630,102 +0.002814,102 +0.002834,102 +0.002798,102 +0.002829,102 +0.003342,102 +0.003120,102 +0.002870,102 +0.002729,102 +0.002820,102 +0.003945,102 +0.003139,102 +0.003297,102 +0.002713,102 +0.002807,102 +0.002903,102 +0.003155,102 +0.003056,102 +0.002928,102 +0.002823,102 +0.002892,102 +0.003179,102 +0.002805,102 +0.002963,102 +0.003007,102 +0.002791,102 +0.002833,102 +0.003276,102 +0.003000,102 +0.002734,102 +0.002885,102 +0.002941,102 +0.003071,102 +0.003235,102 +0.003131,102 +0.002980,102 +0.003010,102 +0.002969,102 +0.002932,102 +0.003002,102 +0.002888,102 +0.002757,102 +0.002811,102 +0.002874,102 +0.002963,102 +0.002898,102 +0.002741,102 +0.002809,102 +0.002712,102 +0.003060,102 +0.003273,102 +0.003245,102 +0.003031,102 +0.002997,102 +0.003172,102 +0.002861,102 +0.002823,102 +0.002939,102 +0.002998,102 +0.002820,102 +0.002794,102 +0.003012,102 +0.002913,102 +0.002679,102 +0.002762,102 +0.002738,102 +0.002825,102 +0.002687,102 +0.002860,102 +0.002803,102 +0.002834,102 +0.002665,102 +0.002883,102 +0.002636,102 +0.002978,102 +0.002732,102 +0.002656,102 +0.002633,102 +0.002697,102 +0.002831,102 +0.002744,102 +0.002656,102 +0.002900,102 +0.002691,102 +0.002800,102 +0.002862,102 +0.003009,102 +0.002916,102 +0.002882,102 +0.002770,102 +0.003104,104 +0.004950,104 +0.005103,104 +0.004573,104 +0.004026,104 +0.003457,104 +0.003062,104 +0.003048,104 +0.002974,104 +0.003241,104 +0.003673,104 +0.002939,104 +0.002939,104 +0.002946,104 +0.003087,104 +0.003103,104 +0.003060,104 +0.003008,104 +0.003019,104 +0.003130,104 +0.003015,104 +0.003053,104 +0.002991,104 +0.003000,104 +0.003002,104 +0.002993,104 +0.003105,104 +0.003042,104 +0.003033,104 +0.003031,104 +0.003215,104 +0.002948,104 +0.002988,104 +0.003126,104 +0.003376,104 +0.003281,104 +0.003323,104 +0.003151,104 +0.003025,104 +0.002992,104 +0.002998,104 +0.003124,104 +0.003087,104 +0.003148,104 +0.003070,104 +0.003095,104 +0.003224,104 +0.003072,104 +0.002990,104 +0.003106,104 +0.003007,104 +0.003000,104 +0.003089,104 +0.002909,104 +0.002937,104 +0.003134,104 +0.003013,104 +0.003071,104 +0.003501,104 +0.003272,104 +0.002931,104 +0.002971,104 +0.003224,104 +0.003673,104 +0.004977,104 +0.005140,104 +0.004520,104 +0.003520,104 +0.003634,104 +0.003674,104 +0.003072,104 +0.004450,104 +0.005067,104 +0.003972,104 +0.003040,104 +0.004208,104 +0.003163,104 +0.003146,104 +0.003114,104 +0.003184,104 +0.004320,104 +0.004138,104 +0.003283,104 +0.003101,104 +0.003353,104 +0.003452,104 +0.003375,104 +0.003198,104 +0.002984,104 +0.002996,104 +0.003103,104 +0.003065,104 +0.002990,104 +0.003533,104 +0.002977,104 +0.003177,104 +0.003234,104 +0.003008,104 +0.002749,104 +0.002798,104 +0.003047,106 +0.003276,106 +0.003251,106 +0.002976,106 +0.002943,106 +0.002945,106 +0.003244,106 +0.003172,106 +0.003055,106 +0.002941,106 +0.002908,106 +0.003125,106 +0.003282,106 +0.003298,106 +0.002979,106 +0.002907,106 +0.002947,106 +0.003287,106 +0.003200,106 +0.003031,106 +0.002942,106 +0.002940,106 +0.003263,106 +0.003190,106 +0.003135,106 +0.003207,106 +0.003102,106 +0.003048,106 +0.003238,106 +0.004084,106 +0.003262,106 +0.002951,106 +0.003074,106 +0.003253,106 +0.003276,106 +0.002987,106 +0.002948,106 +0.002943,106 +0.003273,106 +0.003223,106 +0.003069,106 +0.002946,106 +0.002907,106 +0.003239,106 +0.003170,106 +0.003175,106 +0.002966,106 +0.002907,106 +0.002944,106 +0.003637,106 +0.003381,106 +0.003021,106 +0.002907,106 +0.002945,106 +0.003403,106 +0.003164,106 +0.003231,106 +0.003006,106 +0.003251,106 +0.003278,106 +0.003057,106 +0.003331,106 +0.003197,106 +0.003204,106 +0.003135,106 +0.003388,106 +0.003199,106 +0.003293,106 +0.003074,106 +0.003239,106 +0.003718,106 +0.003302,106 +0.003199,106 +0.003224,106 +0.003473,106 +0.004491,106 +0.003305,106 +0.002990,106 +0.003136,106 +0.003739,106 +0.003203,106 +0.003375,106 +0.003028,106 +0.003151,106 +0.003945,106 +0.003031,106 +0.003347,106 +0.003095,106 +0.003152,106 +0.003090,106 +0.003259,106 +0.003189,106 +0.002980,106 +0.002939,106 +0.002946,106 +0.003175,106 +0.003065,106 +0.003058,106 +0.002943,106 +0.002907,106 +0.003187,108 +0.003114,108 +0.003144,108 +0.003167,108 +0.003105,108 +0.003137,108 +0.003077,108 +0.003091,108 +0.003151,108 +0.003082,108 +0.003082,108 +0.003137,108 +0.003076,108 +0.003128,108 +0.003080,108 +0.003082,108 +0.003117,108 +0.003076,108 +0.003171,108 +0.003267,108 +0.003295,108 +0.003273,108 +0.003076,108 +0.003203,108 +0.003136,108 +0.003176,108 +0.003111,108 +0.003154,108 +0.003122,108 +0.003130,108 +0.003084,108 +0.003076,108 +0.003118,108 +0.003448,108 +0.003253,108 +0.003176,108 +0.003076,108 +0.003272,108 +0.003213,108 +0.003440,108 +0.003461,108 +0.003272,108 +0.003390,108 +0.003595,108 +0.003716,108 +0.003763,108 +0.003569,108 +0.003491,108 +0.004074,108 +0.004008,108 +0.003675,108 +0.003863,108 +0.004063,108 +0.004119,108 +0.003293,108 +0.003363,108 +0.003859,108 +0.004069,108 +0.003520,108 +0.003406,108 +0.003918,108 +0.003379,108 +0.003471,108 +0.003419,108 +0.003413,108 +0.003456,108 +0.003645,108 +0.003479,108 +0.003432,108 +0.003446,108 +0.003743,108 +0.003456,108 +0.003485,108 +0.003335,108 +0.003717,108 +0.003818,108 +0.004702,108 +0.003204,108 +0.003619,108 +0.004511,108 +0.003444,108 +0.003417,108 +0.003457,108 +0.003391,108 +0.004317,108 +0.003866,108 +0.003940,108 +0.004001,108 +0.004094,108 +0.003464,108 +0.003306,108 +0.003358,108 +0.004539,108 +0.003901,108 +0.003670,108 +0.003260,108 +0.003190,108 +0.003597,108 +0.003501,108 +0.003408,108 +0.003429,110 +0.003429,110 +0.003797,110 +0.004116,110 +0.004120,110 +0.003768,110 +0.004135,110 +0.003665,110 +0.003478,110 +0.003370,110 +0.003650,110 +0.003790,110 +0.003530,110 +0.003283,110 +0.003287,110 +0.003979,110 +0.003637,110 +0.003364,110 +0.003284,110 +0.003276,110 +0.003956,110 +0.003654,110 +0.003303,110 +0.003277,110 +0.003401,110 +0.003906,110 +0.003552,110 +0.003310,110 +0.003291,110 +0.003906,110 +0.003494,110 +0.004124,110 +0.004018,110 +0.003607,110 +0.004405,110 +0.003534,110 +0.003367,110 +0.003302,110 +0.004091,110 +0.003674,110 +0.003433,110 +0.003281,110 +0.003282,110 +0.004209,110 +0.004076,110 +0.003343,110 +0.003248,110 +0.003524,110 +0.004683,110 +0.003419,110 +0.003310,110 +0.003274,110 +0.003638,110 +0.004112,110 +0.003305,110 +0.003293,110 +0.003420,110 +0.004203,110 +0.003878,110 +0.003977,110 +0.003768,110 +0.004266,110 +0.003622,110 +0.003306,110 +0.003291,110 +0.003711,110 +0.004202,110 +0.003488,110 +0.003287,110 +0.003288,110 +0.004122,110 +0.003463,110 +0.003373,110 +0.003309,110 +0.003280,110 +0.003765,110 +0.003592,110 +0.003307,110 +0.003268,110 +0.003380,110 +0.003534,110 +0.003634,110 +0.003308,110 +0.003291,110 +0.003403,110 +0.003537,110 +0.003463,110 +0.004221,110 +0.003886,110 +0.003534,110 +0.003454,110 +0.003349,110 +0.003297,110 +0.003337,110 +0.003307,110 +0.003330,110 +0.003333,110 +0.003292,110 +0.003253,110 +0.003314,110 +0.003456,112 +0.003488,112 +0.003424,112 +0.003424,112 +0.003485,112 +0.003424,112 +0.003509,112 +0.003465,112 +0.003487,112 +0.003426,112 +0.003655,112 +0.003506,112 +0.003448,112 +0.003691,112 +0.003444,112 +0.003525,112 +0.004253,112 +0.004014,112 +0.003595,112 +0.003568,112 +0.003467,112 +0.003682,112 +0.003663,112 +0.003452,112 +0.003849,112 +0.003829,112 +0.003802,112 +0.004047,112 +0.003946,112 +0.003842,112 +0.003872,112 +0.003809,112 +0.003732,112 +0.003750,112 +0.003766,112 +0.003737,112 +0.003740,112 +0.003876,112 +0.003732,112 +0.003700,112 +0.004181,112 +0.004431,112 +0.004791,112 +0.004435,112 +0.004282,112 +0.004833,112 +0.003635,112 +0.003641,112 +0.004416,112 +0.004212,112 +0.003849,112 +0.003800,112 +0.004405,112 +0.004508,112 +0.003790,112 +0.003760,112 +0.004236,112 +0.004309,112 +0.004036,112 +0.004067,112 +0.004138,112 +0.004338,112 +0.003998,112 +0.003950,112 +0.004470,112 +0.004087,112 +0.003750,112 +0.003674,112 +0.004195,112 +0.003909,112 +0.003730,112 +0.003789,112 +0.003871,112 +0.004001,112 +0.003885,112 +0.003800,112 +0.003805,112 +0.003705,112 +0.003966,112 +0.003826,112 +0.003758,112 +0.004308,112 +0.004099,112 +0.003878,112 +0.003669,112 +0.004048,112 +0.003747,112 +0.004013,112 +0.003836,112 +0.004167,112 +0.004281,112 +0.003775,112 +0.003679,112 +0.003618,112 +0.004103,112 +0.004505,112 +0.003802,112 +0.003920,112 +0.004098,112 +0.003758,112 +0.004096,114 +0.004092,114 +0.004524,114 +0.003986,114 +0.004240,114 +0.004373,114 +0.004719,114 +0.004651,114 +0.004453,114 +0.004648,114 +0.004415,114 +0.004713,114 +0.004440,114 +0.004585,114 +0.004241,114 +0.003937,114 +0.003874,114 +0.004223,114 +0.004237,114 +0.004248,114 +0.003954,114 +0.004599,114 +0.003933,114 +0.004173,114 +0.003968,114 +0.004382,114 +0.004115,114 +0.004127,114 +0.004023,114 +0.004088,114 +0.004349,114 +0.004448,114 +0.004103,114 +0.004327,114 +0.004140,114 +0.004051,114 +0.004106,114 +0.004270,114 +0.004178,114 +0.004092,114 +0.004039,114 +0.003899,114 +0.004260,114 +0.004283,114 +0.004056,114 +0.004069,114 +0.004379,114 +0.004036,114 +0.004061,114 +0.004247,114 +0.003940,114 +0.004357,114 +0.004266,114 +0.004872,114 +0.004120,114 +0.004111,114 +0.004133,114 +0.004764,114 +0.004693,114 +0.004351,114 +0.004444,114 +0.004386,114 +0.004131,114 +0.004052,114 +0.003993,114 +0.004490,114 +0.004194,114 +0.004035,114 +0.004154,114 +0.004109,114 +0.004098,114 +0.004010,114 +0.004149,114 +0.004626,114 +0.004505,114 +0.003911,114 +0.004349,114 +0.004280,114 +0.004227,114 +0.003865,114 +0.004203,114 +0.004726,114 +0.004246,114 +0.004057,114 +0.004151,114 +0.004506,114 +0.004091,114 +0.004129,114 +0.003975,114 +0.004005,114 +0.004205,114 +0.004115,114 +0.004046,114 +0.004115,114 +0.004059,114 +0.003898,114 +0.003900,114 +0.004033,114 +0.003874,114 +0.003878,114 +0.004165,116 +0.004023,116 +0.003963,116 +0.003937,116 +0.003927,116 +0.003950,116 +0.004177,116 +0.003951,116 +0.003834,116 +0.003977,116 +0.003862,116 +0.003893,116 +0.003824,116 +0.003883,116 +0.004006,116 +0.004065,116 +0.003836,116 +0.003913,116 +0.003836,116 +0.003851,116 +0.003851,116 +0.003833,116 +0.003878,116 +0.003807,116 +0.003856,116 +0.003801,116 +0.003897,116 +0.003805,116 +0.003903,116 +0.003825,116 +0.003925,116 +0.003808,116 +0.003824,116 +0.003827,116 +0.003812,116 +0.003879,116 +0.003935,116 +0.003904,116 +0.003808,116 +0.003932,116 +0.003906,116 +0.004212,116 +0.003857,116 +0.004047,116 +0.003861,116 +0.003930,116 +0.003859,116 +0.003830,116 +0.003823,116 +0.003885,116 +0.003844,116 +0.003812,116 +0.003804,116 +0.003832,116 +0.003877,116 +0.003803,116 +0.003807,116 +0.003801,116 +0.003831,116 +0.003943,116 +0.003805,116 +0.003826,116 +0.003802,116 +0.003859,116 +0.003803,116 +0.003913,116 +0.003920,116 +0.004088,116 +0.003964,116 +0.003828,116 +0.003826,116 +0.003879,116 +0.003828,116 +0.003809,116 +0.003812,116 +0.003832,116 +0.003845,116 +0.003829,116 +0.003806,116 +0.003802,116 +0.003875,116 +0.003803,116 +0.003804,116 +0.003800,116 +0.003830,116 +0.003849,116 +0.003802,116 +0.003805,116 +0.003802,116 +0.003875,116 +0.003802,116 +0.003932,116 +0.003888,116 +0.004108,116 +0.003871,116 +0.003825,116 +0.003979,116 +0.003924,116 +0.003832,116 +0.003967,116 +0.004099,118 +0.004075,118 +0.004074,118 +0.004004,118 +0.004010,118 +0.004033,118 +0.004051,118 +0.004004,118 +0.004004,118 +0.004007,118 +0.004094,118 +0.004050,118 +0.004003,118 +0.004006,118 +0.004077,118 +0.004006,118 +0.004087,118 +0.004210,118 +0.004358,118 +0.004105,118 +0.004024,118 +0.004011,118 +0.004085,118 +0.004140,118 +0.004008,118 +0.004016,118 +0.004140,118 +0.004010,118 +0.004005,118 +0.004004,118 +0.004075,118 +0.004006,118 +0.004006,118 +0.004004,118 +0.004124,118 +0.004004,118 +0.004149,118 +0.004055,118 +0.004022,118 +0.004042,118 +0.004037,118 +0.004253,118 +0.004472,118 +0.004140,118 +0.004036,118 +0.004067,118 +0.004177,118 +0.004095,118 +0.004128,118 +0.004145,118 +0.004078,118 +0.004070,118 +0.004007,118 +0.004009,118 +0.004034,118 +0.004069,118 +0.004007,118 +0.004009,118 +0.004007,118 +0.004071,118 +0.004006,118 +0.004003,118 +0.004006,118 +0.004093,118 +0.004039,118 +0.004071,118 +0.004192,118 +0.004376,118 +0.004032,118 +0.004024,118 +0.004029,118 +0.004094,118 +0.004011,118 +0.004007,118 +0.004009,118 +0.004075,118 +0.004004,118 +0.004006,118 +0.004004,118 +0.004078,118 +0.004024,118 +0.004006,118 +0.004003,118 +0.004033,118 +0.004112,118 +0.004038,118 +0.004023,118 +0.004035,118 +0.004048,118 +0.004004,118 +0.004159,118 +0.004318,118 +0.004226,118 +0.004037,118 +0.004078,118 +0.004100,118 +0.004078,118 +0.004041,118 +0.004005,118 +0.004013,118 +0.004287,120 +0.004207,120 +0.004205,120 +0.004205,120 +0.004275,120 +0.004208,120 +0.004204,120 +0.004206,120 +0.004272,120 +0.004207,120 +0.004204,120 +0.004236,120 +0.004244,120 +0.004211,120 +0.004343,120 +0.004570,120 +0.004448,120 +0.004240,120 +0.004242,120 +0.004260,120 +0.004269,120 +0.004209,120 +0.004207,120 +0.004272,120 +0.004207,120 +0.004203,120 +0.004206,120 +0.004277,120 +0.004204,120 +0.004205,120 +0.004203,120 +0.004275,120 +0.004203,120 +0.004205,120 +0.004223,120 +0.004274,120 +0.004203,120 +0.004205,120 +0.004403,120 +0.004593,120 +0.004256,120 +0.004269,120 +0.004335,120 +0.004336,120 +0.004315,120 +0.004269,120 +0.004230,120 +0.004365,120 +0.004229,120 +0.004224,120 +0.004224,120 +0.004274,120 +0.004204,120 +0.004206,120 +0.004233,120 +0.004246,120 +0.004391,120 +0.004207,120 +0.004236,120 +0.004243,120 +0.004206,120 +0.004343,120 +0.004532,120 +0.004434,120 +0.004247,120 +0.004307,120 +0.004299,120 +0.004225,120 +0.004233,120 +0.004225,120 +0.004294,120 +0.004319,120 +0.004244,120 +0.004232,120 +0.004317,120 +0.004256,120 +0.004245,120 +0.004250,120 +0.004315,120 +0.004206,120 +0.004204,120 +0.004205,120 +0.004273,120 +0.004206,120 +0.004238,120 +0.004449,120 +0.004641,120 +0.004204,120 +0.004205,120 +0.004224,120 +0.004247,120 +0.004204,120 +0.004205,120 +0.004233,120 +0.004265,120 +0.004204,120 +0.004205,120 +0.004231,120 +0.004290,120 +0.004203,120 +0.004448,122 +0.004493,122 +0.004564,122 +0.004424,122 +0.004419,122 +0.004477,122 +0.004420,122 +0.004419,122 +0.004614,122 +0.004852,122 +0.004420,122 +0.004643,122 +0.004469,122 +0.004523,122 +0.004598,122 +0.004456,122 +0.004554,122 +0.004446,122 +0.004423,122 +0.004419,122 +0.004492,122 +0.004420,122 +0.004420,122 +0.004452,122 +0.004460,122 +0.004424,122 +0.004421,122 +0.004471,122 +0.004488,122 +0.004445,122 +0.004588,122 +0.004816,122 +0.004674,122 +0.004440,122 +0.004448,122 +0.004523,122 +0.004466,122 +0.004424,122 +0.004470,122 +0.004481,122 +0.004423,122 +0.004464,122 +0.004488,122 +0.004422,122 +0.004427,122 +0.004422,122 +0.004530,122 +0.004423,122 +0.004420,122 +0.004422,122 +0.004537,122 +0.004419,122 +0.004470,122 +0.004943,122 +0.004728,122 +0.004450,122 +0.004420,122 +0.004705,122 +0.004813,122 +0.004763,122 +0.004560,122 +0.004446,122 +0.004525,122 +0.004445,122 +0.004512,122 +0.004572,122 +0.004654,122 +0.004420,122 +0.004476,122 +0.004561,122 +0.004623,122 +0.004454,122 +0.004489,122 +0.004460,122 +0.004494,122 +0.004738,122 +0.004682,122 +0.004465,122 +0.004475,122 +0.004489,122 +0.004479,122 +0.004420,122 +0.004420,122 +0.004477,122 +0.004420,122 +0.004442,122 +0.004431,122 +0.004486,122 +0.004441,122 +0.004464,122 +0.004468,122 +0.004420,122 +0.004422,122 +0.004419,122 +0.004512,122 +0.004420,122 +0.004425,122 +0.004646,122 +0.004711,122 +0.004576,122 +0.004711,124 +0.004750,124 +0.004739,124 +0.004677,124 +0.004678,124 +0.004712,124 +0.004638,124 +0.004635,124 +0.004690,124 +0.004638,124 +0.004636,124 +0.004637,124 +0.004684,124 +0.004695,124 +0.004646,124 +0.004648,124 +0.004681,124 +0.004635,124 +0.004683,124 +0.004996,124 +0.004826,124 +0.004724,124 +0.004688,124 +0.004707,124 +0.004640,124 +0.004642,124 +0.004685,124 +0.004681,124 +0.004666,124 +0.004638,124 +0.004685,124 +0.004640,124 +0.004692,124 +0.004689,124 +0.004635,124 +0.004641,124 +0.004636,124 +0.004689,124 +0.004661,124 +0.004636,124 +0.004882,124 +0.004919,124 +0.004701,124 +0.004638,124 +0.004705,124 +0.004638,124 +0.004636,124 +0.004647,124 +0.004680,124 +0.004636,124 +0.005736,124 +0.004788,124 +0.004636,124 +0.004643,124 +0.004678,124 +0.004667,124 +0.004638,124 +0.004635,124 +0.004687,124 +0.004641,124 +0.004636,124 +0.004925,124 +0.005010,124 +0.004684,124 +0.004679,124 +0.004749,124 +0.004758,124 +0.004657,124 +0.004758,124 +0.004704,124 +0.004636,124 +0.004638,124 +0.004706,124 +0.004639,124 +0.004636,124 +0.004667,124 +0.004699,124 +0.004636,124 +0.004670,124 +0.004706,124 +0.004659,124 +0.004635,124 +0.004787,124 +0.005047,124 +0.004857,124 +0.004656,124 +0.004749,124 +0.004659,124 +0.004636,124 +0.004662,124 +0.004766,124 +0.004687,124 +0.004664,124 +0.004730,124 +0.004661,124 +0.004636,124 +0.004642,124 +0.004704,124 +0.004640,124 +0.004638,124 +0.004915,126 +0.004906,126 +0.004864,126 +0.004917,126 +0.005215,126 +0.005071,126 +0.004884,126 +0.005222,126 +0.004990,126 +0.005259,126 +0.005390,126 +0.005463,126 +0.005577,126 +0.005841,126 +0.005507,126 +0.005470,126 +0.005750,126 +0.007375,126 +0.006174,126 +0.006265,126 +0.005507,126 +0.005868,126 +0.009030,126 +0.007537,126 +0.007350,126 +0.005591,126 +0.005574,126 +0.007123,126 +0.005460,126 +0.005456,126 +0.007157,126 +0.005286,126 +0.005380,126 +0.006827,126 +0.005305,126 +0.005246,126 +0.006802,126 +0.005030,126 +0.008349,126 +0.008952,126 +0.004990,126 +0.004984,126 +0.004962,126 +0.004979,126 +0.005130,126 +0.004950,126 +0.005002,126 +0.004897,126 +0.004938,126 +0.004991,126 +0.004948,126 +0.005013,126 +0.004889,126 +0.004946,126 +0.004927,126 +0.004868,126 +0.006621,126 +0.008387,126 +0.004923,126 +0.004954,126 +0.004954,126 +0.004868,126 +0.005026,126 +0.004867,126 +0.004864,126 +0.004906,126 +0.004905,126 +0.004864,126 +0.004866,126 +0.004947,126 +0.004884,126 +0.004866,126 +0.004942,126 +0.004866,126 +0.004867,126 +0.005186,126 +0.008795,126 +0.005915,126 +0.004976,126 +0.004869,126 +0.004885,126 +0.004933,126 +0.004925,126 +0.004887,126 +0.004868,126 +0.004964,126 +0.004888,126 +0.004887,126 +0.004947,126 +0.004867,126 +0.004949,126 +0.004907,126 +0.004930,126 +0.004866,126 +0.004866,126 +0.007738,126 +0.007211,126 +0.004975,126 +0.004872,126 +0.004864,126 +0.005386,128 +0.005457,128 +0.005374,128 +0.005376,128 +0.005440,128 +0.005372,128 +0.005418,128 +0.005458,128 +0.005413,128 +0.005375,128 +0.005435,128 +0.005372,128 +0.005376,128 +0.007662,128 +0.008165,128 +0.005499,128 +0.005405,128 +0.005429,128 +0.005458,128 +0.005401,128 +0.005376,128 +0.005431,128 +0.005375,128 +0.005376,128 +0.005431,128 +0.005375,128 +0.005376,128 +0.005392,128 +0.005415,128 +0.005377,128 +0.005393,128 +0.008756,128 +0.007322,128 +0.005482,128 +0.005442,128 +0.005407,128 +0.005487,128 +0.005377,128 +0.005396,128 +0.005436,128 +0.005373,128 +0.005375,128 +0.005435,128 +0.005373,128 +0.005418,128 +0.005435,128 +0.005373,128 +0.005376,128 +0.006360,128 +0.009397,128 +0.005654,128 +0.005469,128 +0.005642,128 +0.005554,128 +0.005407,128 +0.005405,128 +0.005435,128 +0.005401,128 +0.005411,128 +0.005434,128 +0.005408,128 +0.005464,128 +0.005396,128 +0.005417,128 +0.005377,128 +0.005395,128 +0.008415,128 +0.007413,128 +0.005487,128 +0.005378,128 +0.005376,128 +0.005459,128 +0.005373,128 +0.005375,128 +0.005466,128 +0.005374,128 +0.005660,128 +0.006978,128 +0.005549,128 +0.005383,128 +0.005587,128 +0.006194,128 +0.005526,128 +0.008246,128 +0.008427,128 +0.005702,128 +0.005406,128 +0.005692,128 +0.005657,128 +0.005604,128 +0.005617,128 +0.005458,128 +0.005567,128 +0.005881,128 +0.005510,128 +0.005733,128 +0.005493,128 +0.005481,128 +0.005583,128 +0.005448,128 +0.007634,130 +0.008371,130 +0.005475,130 +0.005438,130 +0.005381,130 +0.005505,130 +0.005396,130 +0.005344,130 +0.005421,130 +0.005375,130 +0.005337,130 +0.005420,130 +0.005397,130 +0.005339,130 +0.005418,130 +0.005390,130 +0.005344,130 +0.005521,130 +0.007434,130 +0.008883,130 +0.005438,130 +0.005415,130 +0.005448,130 +0.005405,130 +0.005400,130 +0.005437,130 +0.005424,130 +0.005340,130 +0.005439,130 +0.005372,130 +0.005340,130 +0.005378,130 +0.005383,130 +0.005380,130 +0.005378,130 +0.006334,130 +0.009437,130 +0.005541,130 +0.005377,130 +0.005616,130 +0.005437,130 +0.005339,130 +0.005600,130 +0.005439,130 +0.005337,130 +0.005339,130 +0.005459,130 +0.005337,130 +0.005339,130 +0.005439,130 +0.005337,130 +0.005341,130 +0.005442,130 +0.007503,130 +0.008373,130 +0.005348,130 +0.005343,130 +0.005455,130 +0.005339,130 +0.005364,130 +0.005397,130 +0.005379,130 +0.005341,130 +0.005378,130 +0.005380,130 +0.005342,130 +0.005357,130 +0.005421,130 +0.005341,130 +0.005337,130 +0.005517,130 +0.008094,130 +0.007734,130 +0.005471,130 +0.006000,130 +0.006253,130 +0.005450,130 +0.005444,130 +0.005474,130 +0.005337,130 +0.005420,130 +0.005439,130 +0.005398,130 +0.005341,130 +0.005421,130 +0.005338,130 +0.005342,130 +0.005425,130 +0.006189,130 +0.009636,130 +0.005515,130 +0.005400,130 +0.005429,130 +0.005374,130 +0.005482,130 +0.005847,130 +0.005396,130 +0.005360,130 +0.005418,130 +0.005342,130 +0.005615,132 +0.005666,132 +0.005921,132 +0.005611,132 +0.005735,132 +0.005710,132 +0.010125,132 +0.006354,132 +0.005653,132 +0.005672,132 +0.005607,132 +0.005646,132 +0.005715,132 +0.006172,132 +0.006019,132 +0.005687,132 +0.005589,132 +0.005627,132 +0.005667,132 +0.005585,132 +0.005590,132 +0.005691,132 +0.007254,132 +0.009219,132 +0.005691,132 +0.005624,132 +0.005865,132 +0.005591,132 +0.005606,132 +0.005692,132 +0.005588,132 +0.005589,132 +0.005665,132 +0.005587,132 +0.005611,132 +0.005685,132 +0.005606,132 +0.005592,132 +0.005745,132 +0.007300,132 +0.009084,132 +0.005619,132 +0.005597,132 +0.005708,132 +0.005624,132 +0.005675,132 +0.005747,132 +0.005725,132 +0.005683,132 +0.005650,132 +0.005598,132 +0.005613,132 +0.005687,132 +0.005588,132 +0.005605,132 +0.005759,132 +0.007564,132 +0.008772,132 +0.005623,132 +0.005671,132 +0.005660,132 +0.005645,132 +0.005625,132 +0.005628,132 +0.005589,132 +0.005606,132 +0.005635,132 +0.005744,132 +0.005645,132 +0.005590,132 +0.005586,132 +0.005669,132 +0.005738,132 +0.007667,132 +0.008944,132 +0.005686,132 +0.005690,132 +0.006929,132 +0.010806,132 +0.010826,132 +0.010964,132 +0.010989,132 +0.010404,132 +0.008319,132 +0.005731,132 +0.008331,132 +0.008752,132 +0.005674,132 +0.005879,132 +0.005639,132 +0.005672,132 +0.005971,132 +0.005622,132 +0.005645,132 +0.005624,132 +0.005586,132 +0.005622,132 +0.005624,132 +0.005585,132 +0.005644,132 +0.005968,134 +0.006600,134 +0.010243,134 +0.005955,134 +0.006033,134 +0.005905,134 +0.005864,134 +0.005923,134 +0.005841,134 +0.005846,134 +0.005925,134 +0.005844,134 +0.005881,134 +0.005923,134 +0.005842,134 +0.005863,134 +0.005983,134 +0.006247,134 +0.010562,134 +0.006022,134 +0.005924,134 +0.005888,134 +0.005843,134 +0.005924,134 +0.005841,134 +0.005843,134 +0.005926,134 +0.005840,134 +0.005844,134 +0.005922,134 +0.005846,134 +0.005840,134 +0.005944,134 +0.005923,134 +0.009654,134 +0.007257,134 +0.005909,134 +0.005901,134 +0.005865,134 +0.005921,134 +0.005845,134 +0.005841,134 +0.005926,134 +0.005883,134 +0.005865,134 +0.005927,134 +0.005846,134 +0.005843,134 +0.005923,134 +0.005908,134 +0.008324,134 +0.008524,134 +0.005931,134 +0.005912,134 +0.005887,134 +0.006011,134 +0.005851,134 +0.005841,134 +0.005926,134 +0.005842,134 +0.005844,134 +0.005920,134 +0.005845,134 +0.005842,134 +0.005939,134 +0.005904,134 +0.007211,134 +0.009723,134 +0.005917,134 +0.005949,134 +0.005866,134 +0.005883,134 +0.005884,134 +0.005840,134 +0.005925,134 +0.005842,134 +0.005845,134 +0.005928,134 +0.005843,134 +0.005844,134 +0.005949,134 +0.005903,134 +0.005978,134 +0.010587,134 +0.006265,134 +0.005974,134 +0.005847,134 +0.005888,134 +0.005879,134 +0.005845,134 +0.005881,134 +0.005883,134 +0.005842,134 +0.005926,134 +0.005844,134 +0.005844,134 +0.005926,134 +0.005949,134 +0.005843,134 +0.009580,134 +0.007544,136 +0.006259,136 +0.006137,136 +0.006177,136 +0.006148,136 +0.006099,136 +0.006257,136 +0.006103,136 +0.006102,136 +0.006180,136 +0.006124,136 +0.006101,136 +0.006234,136 +0.006189,136 +0.007276,136 +0.010162,136 +0.006208,136 +0.006129,136 +0.006098,136 +0.006184,136 +0.006101,136 +0.006133,136 +0.006182,136 +0.006138,136 +0.006145,136 +0.006140,136 +0.006122,136 +0.006238,136 +0.006165,136 +0.006100,136 +0.009424,136 +0.007949,136 +0.006220,136 +0.006165,136 +0.006179,136 +0.006205,136 +0.006099,136 +0.006204,136 +0.006101,136 +0.006102,136 +0.006177,136 +0.006145,136 +0.006163,136 +0.006159,136 +0.006162,136 +0.006208,136 +0.010491,136 +0.007331,136 +0.006136,136 +0.006138,136 +0.006207,136 +0.006110,136 +0.006183,136 +0.006164,136 +0.006098,136 +0.006185,136 +0.006101,136 +0.006102,136 +0.006207,136 +0.006182,136 +0.006102,136 +0.009914,136 +0.007608,136 +0.006170,136 +0.006119,136 +0.006205,136 +0.006101,136 +0.006102,136 +0.006182,136 +0.006102,136 +0.006121,136 +0.006210,136 +0.006097,136 +0.006181,136 +0.006171,136 +0.006104,136 +0.007201,136 +0.010121,136 +0.006260,136 +0.006129,136 +0.006142,136 +0.006253,136 +0.006098,136 +0.006221,136 +0.006100,136 +0.006102,136 +0.006218,136 +0.006102,136 +0.006113,136 +0.006188,136 +0.006159,136 +0.006146,136 +0.009205,136 +0.008398,136 +0.006163,136 +0.006129,136 +0.006238,136 +0.006110,136 +0.006101,136 +0.006184,136 +0.006475,138 +0.006483,138 +0.006375,138 +0.006380,138 +0.006462,138 +0.006437,138 +0.006422,138 +0.008880,138 +0.009047,138 +0.006436,138 +0.006377,138 +0.006463,138 +0.006380,138 +0.006415,138 +0.006424,138 +0.006379,138 +0.006465,138 +0.006380,138 +0.006375,138 +0.006458,138 +0.006482,138 +0.006478,138 +0.009612,138 +0.008407,138 +0.006416,138 +0.006408,138 +0.006474,138 +0.006380,138 +0.006463,138 +0.006381,138 +0.006463,138 +0.006476,138 +0.006379,138 +0.006420,138 +0.006414,138 +0.006450,138 +0.006463,138 +0.010245,138 +0.007760,138 +0.006435,138 +0.006458,138 +0.006458,138 +0.006388,138 +0.006456,138 +0.006402,138 +0.006378,138 +0.006481,138 +0.006399,138 +0.006458,138 +0.006480,138 +0.006398,138 +0.006459,138 +0.010950,138 +0.006932,138 +0.006438,138 +0.006532,138 +0.006417,138 +0.006415,138 +0.006459,138 +0.006376,138 +0.006423,138 +0.006416,138 +0.006381,138 +0.006499,138 +0.006475,138 +0.006380,138 +0.006794,138 +0.011207,138 +0.006485,138 +0.006396,138 +0.006503,138 +0.006445,138 +0.006410,138 +0.006490,138 +0.006439,138 +0.006463,138 +0.006386,138 +0.006378,138 +0.006462,138 +0.006463,138 +0.006458,138 +0.007488,138 +0.010416,138 +0.006409,138 +0.006401,138 +0.006456,138 +0.006436,138 +0.006480,138 +0.006379,138 +0.006380,138 +0.006474,138 +0.006375,138 +0.006423,138 +0.006417,138 +0.006450,138 +0.006461,138 +0.007113,138 +0.011225,138 +0.006471,138 +0.006478,138 +0.006769,140 +0.006656,140 +0.006753,140 +0.006655,140 +0.006738,140 +0.006691,140 +0.006655,140 +0.006737,140 +0.006713,140 +0.006737,140 +0.006694,140 +0.011793,140 +0.006709,140 +0.006807,140 +0.006790,140 +0.006687,140 +0.006729,140 +0.006655,140 +0.006696,140 +0.006692,140 +0.006655,140 +0.006736,140 +0.006710,140 +0.006765,140 +0.006694,140 +0.010488,140 +0.008057,140 +0.006740,140 +0.006800,140 +0.006695,140 +0.006780,140 +0.006676,140 +0.006678,140 +0.006751,140 +0.006655,140 +0.006747,140 +0.006761,140 +0.006656,140 +0.006732,140 +0.009127,140 +0.009353,140 +0.006724,140 +0.006806,140 +0.006677,140 +0.006760,140 +0.006654,140 +0.006715,140 +0.006734,140 +0.006651,140 +0.006733,140 +0.006684,140 +0.006766,140 +0.006730,140 +0.007838,140 +0.010583,140 +0.006669,140 +0.006790,140 +0.006676,140 +0.006704,140 +0.006691,140 +0.006655,140 +0.006734,140 +0.006676,140 +0.006805,140 +0.006760,140 +0.006711,140 +0.006734,140 +0.006655,140 +0.011768,140 +0.006691,140 +0.006817,140 +0.006717,140 +0.006691,140 +0.006778,140 +0.006655,140 +0.006731,140 +0.006655,140 +0.006719,140 +0.006782,140 +0.006765,140 +0.006796,140 +0.006700,140 +0.010922,140 +0.007698,140 +0.006781,140 +0.006674,140 +0.006694,140 +0.006740,140 +0.006651,140 +0.006738,140 +0.006656,140 +0.006655,140 +0.006736,140 +0.006822,140 +0.006776,140 +0.006673,140 +0.009524,140 +0.008979,140 +0.006754,140 +0.006715,140 +0.007035,142 +0.007048,142 +0.006946,142 +0.007020,142 +0.007048,142 +0.007000,142 +0.007080,142 +0.007065,142 +0.007026,142 +0.006946,142 +0.011171,142 +0.007917,142 +0.007063,142 +0.007218,142 +0.007036,142 +0.006964,142 +0.007092,142 +0.007063,142 +0.008122,142 +0.007109,142 +0.007142,142 +0.007097,142 +0.006951,142 +0.008729,142 +0.010398,142 +0.007144,142 +0.007088,142 +0.006942,142 +0.007028,142 +0.006949,142 +0.007069,142 +0.007492,142 +0.007120,142 +0.007258,142 +0.007069,142 +0.007050,142 +0.006944,142 +0.010432,142 +0.009191,142 +0.007110,142 +0.007057,142 +0.007094,142 +0.006976,142 +0.007043,142 +0.006947,142 +0.006946,142 +0.007023,142 +0.007052,142 +0.007024,142 +0.006946,142 +0.008870,142 +0.010285,142 +0.007081,142 +0.006970,142 +0.007068,142 +0.007010,142 +0.007010,142 +0.007087,142 +0.006966,142 +0.007024,142 +0.006985,142 +0.007014,142 +0.007026,142 +0.006945,142 +0.010603,142 +0.008532,142 +0.007087,142 +0.006987,142 +0.007045,142 +0.006968,142 +0.007052,142 +0.007006,142 +0.006958,142 +0.007029,142 +0.007006,142 +0.007024,142 +0.006943,142 +0.006946,142 +0.012083,142 +0.007096,142 +0.006994,142 +0.006994,142 +0.007034,142 +0.007008,142 +0.007026,142 +0.006946,142 +0.006985,142 +0.006985,142 +0.007024,142 +0.007025,142 +0.006942,142 +0.008762,142 +0.010367,142 +0.007151,142 +0.006977,142 +0.007046,142 +0.006955,142 +0.006988,142 +0.006987,142 +0.006944,142 +0.007327,144 +0.007334,144 +0.007310,144 +0.007232,144 +0.007268,144 +0.012184,144 +0.007532,144 +0.007281,144 +0.007333,144 +0.007233,144 +0.007237,144 +0.007310,144 +0.007274,144 +0.007310,144 +0.007298,144 +0.007331,144 +0.007454,144 +0.007391,144 +0.011581,144 +0.007960,144 +0.007244,144 +0.007270,144 +0.007314,144 +0.007273,144 +0.007328,144 +0.007248,144 +0.007312,144 +0.007335,144 +0.007310,144 +0.007232,144 +0.007269,144 +0.010878,144 +0.008735,144 +0.007287,144 +0.007312,144 +0.007293,144 +0.007232,144 +0.007358,144 +0.007243,144 +0.007335,144 +0.007291,144 +0.007310,144 +0.007231,144 +0.007227,144 +0.010332,144 +0.009383,144 +0.007242,144 +0.007305,144 +0.007304,144 +0.007293,144 +0.007309,144 +0.007232,144 +0.007310,144 +0.007312,144 +0.007339,144 +0.007228,144 +0.007231,144 +0.009600,144 +0.010036,144 +0.007243,144 +0.007316,144 +0.007283,144 +0.007262,144 +0.007314,144 +0.007254,144 +0.007333,144 +0.007283,144 +0.007355,144 +0.007228,144 +0.007274,144 +0.007931,144 +0.012148,144 +0.007279,144 +0.007336,144 +0.007293,144 +0.007232,144 +0.007309,144 +0.007231,144 +0.007310,144 +0.007292,144 +0.007352,144 +0.007228,144 +0.007375,144 +0.009157,144 +0.010462,144 +0.007231,144 +0.007276,144 +0.007271,144 +0.007230,144 +0.007311,144 +0.007231,144 +0.007312,144 +0.007291,144 +0.007270,144 +0.007267,144 +0.007231,144 +0.008402,144 +0.011334,144 +0.007284,144 +0.007240,144 +0.007692,146 +0.007635,146 +0.007671,146 +0.007604,146 +0.007675,146 +0.007674,146 +0.007691,146 +0.007592,146 +0.008196,146 +0.011100,146 +0.009205,146 +0.007645,146 +0.007745,146 +0.007741,146 +0.007693,146 +0.007592,146 +0.007713,146 +0.007721,146 +0.007635,146 +0.007631,146 +0.007589,146 +0.008456,146 +0.011895,146 +0.007599,146 +0.007672,146 +0.007591,146 +0.007850,146 +0.007654,146 +0.007612,146 +0.007675,146 +0.007654,146 +0.007694,146 +0.007590,146 +0.007653,146 +0.011486,146 +0.008898,146 +0.007667,146 +0.007743,146 +0.007588,146 +0.007674,146 +0.007592,146 +0.007675,146 +0.007653,146 +0.007671,146 +0.007592,146 +0.007812,146 +0.008585,146 +0.011660,146 +0.007667,146 +0.007763,146 +0.007664,146 +0.007691,146 +0.007589,146 +0.007630,146 +0.007656,146 +0.007675,146 +0.007671,146 +0.007592,146 +0.007714,146 +0.011731,146 +0.008435,146 +0.007684,146 +0.007714,146 +0.007672,146 +0.007723,146 +0.007733,146 +0.007689,146 +0.007660,146 +0.007674,146 +0.007592,146 +0.007674,146 +0.008910,146 +0.011245,146 +0.007650,146 +0.007695,146 +0.007592,146 +0.007752,146 +0.007666,146 +0.007710,146 +0.007593,146 +0.007711,146 +0.007716,146 +0.007592,146 +0.007674,146 +0.012258,146 +0.007952,146 +0.007695,146 +0.007613,146 +0.007652,146 +0.007758,146 +0.007596,146 +0.007690,146 +0.007652,146 +0.007679,146 +0.007635,146 +0.007674,146 +0.008160,146 +0.012631,146 +0.008593,146 +0.007761,146 +0.007959,148 +0.007968,148 +0.007851,148 +0.007933,148 +0.007973,148 +0.007929,148 +0.008064,148 +0.007951,148 +0.009425,148 +0.011397,148 +0.007870,148 +0.007970,148 +0.007905,148 +0.007930,148 +0.007850,148 +0.007932,148 +0.007918,148 +0.007932,148 +0.007850,148 +0.007933,148 +0.008677,148 +0.012120,148 +0.007928,148 +0.007977,148 +0.007935,148 +0.007924,148 +0.007869,148 +0.007936,148 +0.007914,148 +0.007929,148 +0.007850,148 +0.007940,148 +0.008258,148 +0.012461,148 +0.007890,148 +0.007965,148 +0.007929,148 +0.007910,148 +0.007851,148 +0.007914,148 +0.007934,148 +0.007977,148 +0.007850,148 +0.007929,148 +0.007850,148 +0.012867,148 +0.007892,148 +0.007950,148 +0.007874,148 +0.007932,148 +0.007872,148 +0.007944,148 +0.007951,148 +0.007930,148 +0.007850,148 +0.007911,148 +0.007851,148 +0.012936,148 +0.007927,148 +0.007969,148 +0.007873,148 +0.007961,148 +0.007850,148 +0.007933,148 +0.007970,148 +0.007910,148 +0.007927,148 +0.007972,148 +0.007849,148 +0.012914,148 +0.007896,148 +0.007971,148 +0.007897,148 +0.007961,148 +0.007914,148 +0.007989,148 +0.007942,148 +0.007972,148 +0.007896,148 +0.007957,148 +0.007873,148 +0.012887,148 +0.007898,148 +0.007967,148 +0.007851,148 +0.007972,148 +0.007890,148 +0.007907,148 +0.007930,148 +0.007909,148 +0.007850,148 +0.007909,148 +0.007851,148 +0.012450,148 +0.008353,148 +0.007964,148 +0.007935,148 +0.007967,148 +0.007860,148 +0.008012,148 +0.008326,150 +0.008283,150 +0.008174,150 +0.008234,150 +0.008176,150 +0.013231,150 +0.008333,150 +0.008238,150 +0.008228,150 +0.008234,150 +0.008227,150 +0.008236,150 +0.008307,150 +0.008221,150 +0.008196,150 +0.008215,150 +0.009105,150 +0.013067,150 +0.009257,150 +0.008500,150 +0.008297,150 +0.008421,150 +0.008322,150 +0.008274,150 +0.008333,150 +0.008374,150 +0.008256,150 +0.008175,150 +0.013310,150 +0.008296,150 +0.008247,150 +0.008317,150 +0.008242,150 +0.008293,150 +0.008203,150 +0.008344,150 +0.008177,150 +0.008256,150 +0.008198,150 +0.010603,150 +0.010949,150 +0.008287,150 +0.008198,150 +0.008256,150 +0.008192,150 +0.008240,150 +0.008258,150 +0.008269,150 +0.008235,150 +0.008241,150 +0.008175,150 +0.013210,150 +0.008325,150 +0.008201,150 +0.008306,150 +0.008176,150 +0.008239,150 +0.008211,150 +0.008391,150 +0.008218,150 +0.008248,150 +0.008181,150 +0.009482,150 +0.011948,150 +0.008287,150 +0.008195,150 +0.008310,150 +0.008197,150 +0.008256,150 +0.008283,150 +0.008265,150 +0.008176,150 +0.008239,150 +0.008176,150 +0.012253,150 +0.009329,150 +0.008246,150 +0.008255,150 +0.008195,150 +0.008235,150 +0.008176,150 +0.008328,150 +0.008177,150 +0.008353,150 +0.008176,150 +0.008301,150 +0.013030,150 +0.008253,150 +0.008203,150 +0.008289,150 +0.008261,150 +0.008237,150 +0.008196,150 +0.008282,150 +0.008176,150 +0.008215,150 +0.008199,150 +0.011124,150 +0.010348,150 +0.008221,150 +0.008590,152 +0.008528,152 +0.008581,152 +0.008496,152 +0.008618,152 +0.008500,152 +0.008539,152 +0.008495,152 +0.009897,152 +0.012220,152 +0.008549,152 +0.008580,152 +0.008496,152 +0.008536,152 +0.008536,152 +0.008594,152 +0.008504,152 +0.008537,152 +0.008508,152 +0.008783,152 +0.013258,152 +0.008581,152 +0.008518,152 +0.008561,152 +0.008531,152 +0.008556,152 +0.008678,152 +0.008503,152 +0.008537,152 +0.008538,152 +0.008536,152 +0.013405,152 +0.009086,152 +0.008519,152 +0.008583,152 +0.008531,152 +0.008603,152 +0.008575,152 +0.008543,152 +0.008708,152 +0.008499,152 +0.008728,152 +0.013398,152 +0.008614,152 +0.008541,152 +0.008572,152 +0.008527,152 +0.008578,152 +0.008571,152 +0.008540,152 +0.008496,152 +0.008633,152 +0.008537,152 +0.012668,152 +0.009393,152 +0.008538,152 +0.008580,152 +0.008513,152 +0.008534,152 +0.008556,152 +0.008553,152 +0.008498,152 +0.008536,152 +0.008495,152 +0.011647,152 +0.010350,152 +0.008567,152 +0.008598,152 +0.008497,152 +0.008541,152 +0.008564,152 +0.008630,152 +0.008497,152 +0.008536,152 +0.008499,152 +0.010562,152 +0.011428,152 +0.008526,152 +0.008558,152 +0.008550,152 +0.008571,152 +0.008993,152 +0.009109,152 +0.008602,152 +0.008796,152 +0.008519,152 +0.010517,152 +0.011600,152 +0.008552,152 +0.008619,152 +0.008497,152 +0.008579,152 +0.008496,152 +0.008652,152 +0.008569,152 +0.008620,152 +0.008498,152 +0.009709,152 +0.012485,152 +0.008564,152 +0.009016,154 +0.008902,154 +0.008946,154 +0.008847,154 +0.008991,154 +0.008844,154 +0.008929,154 +0.008883,154 +0.011722,154 +0.011108,154 +0.008916,154 +0.008952,154 +0.008897,154 +0.008927,154 +0.008921,154 +0.008936,154 +0.008879,154 +0.008908,154 +0.008925,154 +0.013578,154 +0.009007,154 +0.008936,154 +0.008911,154 +0.008889,154 +0.008881,154 +0.009014,154 +0.008844,154 +0.008920,154 +0.008842,154 +0.008925,154 +0.013867,154 +0.008872,154 +0.008942,154 +0.008897,154 +0.008921,154 +0.008842,154 +0.008996,154 +0.009369,154 +0.009038,154 +0.008919,154 +0.009989,154 +0.013399,154 +0.008900,154 +0.008974,154 +0.008902,154 +0.008949,154 +0.008947,154 +0.008939,154 +0.009119,154 +0.008847,154 +0.008954,154 +0.013207,154 +0.009464,154 +0.008922,154 +0.008902,154 +0.008945,154 +0.008842,154 +0.009057,154 +0.008846,154 +0.008920,154 +0.008889,154 +0.008921,154 +0.013838,154 +0.008916,154 +0.008943,154 +0.008860,154 +0.008921,154 +0.008842,154 +0.009052,154 +0.008841,154 +0.008921,154 +0.008842,154 +0.010556,154 +0.012137,154 +0.008893,154 +0.009020,154 +0.008856,154 +0.008920,154 +0.008948,154 +0.009503,154 +0.008969,154 +0.008888,154 +0.008961,154 +0.012439,154 +0.010243,154 +0.008968,154 +0.008888,154 +0.008947,154 +0.008843,154 +0.008980,154 +0.008842,154 +0.008925,154 +0.008843,154 +0.008920,154 +0.013791,154 +0.008942,154 +0.008941,154 +0.008903,154 +0.008926,154 +0.008848,154 +0.009499,156 +0.009334,156 +0.009283,156 +0.009266,156 +0.011629,156 +0.011676,156 +0.009271,156 +0.009246,156 +0.009345,156 +0.009240,156 +0.009374,156 +0.009283,156 +0.009286,156 +0.009184,156 +0.009266,156 +0.014065,156 +0.009249,156 +0.009320,156 +0.009289,156 +0.009245,156 +0.009339,156 +0.009187,156 +0.009283,156 +0.009188,156 +0.009263,156 +0.013484,156 +0.009916,156 +0.009344,156 +0.009206,156 +0.009293,156 +0.009184,156 +0.009405,156 +0.009270,156 +0.009185,156 +0.009287,156 +0.011293,156 +0.012023,156 +0.009330,156 +0.009187,156 +0.009264,156 +0.009192,156 +0.009396,156 +0.009184,156 +0.009284,156 +0.009228,156 +0.009224,156 +0.014616,156 +0.009291,156 +0.009270,156 +0.009321,156 +0.009187,156 +0.009374,156 +0.009282,156 +0.009344,156 +0.009185,156 +0.009271,156 +0.013772,156 +0.009505,156 +0.009288,156 +0.009205,156 +0.009265,156 +0.009332,156 +0.009187,156 +0.009263,156 +0.009286,156 +0.009381,156 +0.010971,156 +0.012399,156 +0.009319,156 +0.009214,156 +0.009270,156 +0.009185,156 +0.009331,156 +0.009207,156 +0.009204,156 +0.009225,156 +0.009189,156 +0.014033,156 +0.009291,156 +0.009208,156 +0.009224,156 +0.009228,156 +0.009336,156 +0.009186,156 +0.009225,156 +0.009186,156 +0.009245,156 +0.012972,156 +0.010474,156 +0.009281,156 +0.009432,156 +0.009240,156 +0.009350,156 +0.009186,156 +0.009249,156 +0.009185,156 +0.009224,156 +0.010326,156 +0.013002,156 +0.009279,156 +0.009701,158 +0.009625,158 +0.009621,158 +0.009726,158 +0.009628,158 +0.009543,158 +0.009582,158 +0.010835,158 +0.013186,158 +0.009713,158 +0.009620,158 +0.009625,158 +0.009666,158 +0.009545,158 +0.009610,158 +0.009585,158 +0.009679,158 +0.010873,158 +0.013045,158 +0.009651,158 +0.009623,158 +0.009568,158 +0.009643,158 +0.009545,158 +0.009583,158 +0.009542,158 +0.009586,158 +0.010793,158 +0.013279,158 +0.009682,158 +0.009608,158 +0.009561,158 +0.009687,158 +0.009548,158 +0.009582,158 +0.009545,158 +0.009612,158 +0.010642,158 +0.013318,158 +0.009618,158 +0.009640,158 +0.009560,158 +0.009687,158 +0.009544,158 +0.009582,158 +0.009546,158 +0.009582,158 +0.009657,158 +0.014768,158 +0.009654,158 +0.009671,158 +0.009584,158 +0.009713,158 +0.009808,158 +0.009650,158 +0.009599,158 +0.009547,158 +0.009723,158 +0.009852,158 +0.009656,158 +0.009584,158 +0.009627,158 +0.009685,158 +0.009587,158 +0.009604,158 +0.009544,158 +0.009607,158 +0.009562,158 +0.009986,158 +0.009774,158 +0.009682,158 +0.011187,158 +0.009877,158 +0.009714,158 +0.009629,158 +0.009544,158 +0.009622,158 +0.009546,158 +0.009776,158 +0.009973,158 +0.009588,158 +0.010187,158 +0.009548,158 +0.009694,158 +0.009594,158 +0.009582,158 +0.009623,158 +0.009543,158 +0.009730,158 +0.009879,158 +0.009693,158 +0.009872,158 +0.009792,158 +0.009710,158 +0.009545,158 +0.009621,158 +0.009547,158 +0.009622,158 +0.009627,158 +0.010054,158 +0.010054,160 +0.009929,160 +0.010009,160 +0.009988,160 +0.010043,160 +0.010026,160 +0.009913,160 +0.009992,160 +0.009988,160 +0.010275,160 +0.010065,160 +0.009904,160 +0.010016,160 +0.009985,160 +0.009989,160 +0.009988,160 +0.009997,160 +0.010034,160 +0.010070,160 +0.010303,160 +0.010059,160 +0.009946,160 +0.010008,160 +0.009986,160 +0.009979,160 +0.009984,160 +0.009905,160 +0.009988,160 +0.009993,160 +0.010278,160 +0.010234,160 +0.009945,160 +0.010079,160 +0.009987,160 +0.009990,160 +0.012101,160 +0.010456,160 +0.009979,160 +0.010182,160 +0.010254,160 +0.010008,160 +0.009989,160 +0.009967,160 +0.010090,160 +0.009973,160 +0.010025,160 +0.009985,160 +0.009903,160 +0.010008,160 +0.010262,160 +0.010137,160 +0.010036,160 +0.009937,160 +0.010067,160 +0.010004,160 +0.010024,160 +0.009989,160 +0.009907,160 +0.009991,160 +0.010275,160 +0.010042,160 +0.009989,160 +0.009911,160 +0.010050,160 +0.009907,160 +0.010129,160 +0.010013,160 +0.009909,160 +0.009995,160 +0.010495,160 +0.010028,160 +0.010029,160 +0.009951,160 +0.010063,160 +0.010007,160 +0.009944,160 +0.009986,160 +0.009904,160 +0.010006,160 +0.010279,160 +0.010067,160 +0.010054,160 +0.009934,160 +0.010086,160 +0.009944,160 +0.009944,160 +0.009987,160 +0.009904,160 +0.009985,160 +0.010425,160 +0.009962,160 +0.009988,160 +0.009906,160 +0.010069,160 +0.009944,160 +0.009949,160 +0.009985,160 +0.009904,160 +0.010007,160 +0.010422,160 +0.010407,162 +0.010363,162 +0.010280,162 +0.010447,162 +0.010445,162 +0.010283,162 +0.010360,162 +0.010319,162 +0.010479,162 +0.010749,162 +0.010282,162 +0.010404,162 +0.010358,162 +0.010366,162 +0.010361,162 +0.010360,162 +0.010364,162 +0.010358,162 +0.010496,162 +0.010656,162 +0.010365,162 +0.010284,162 +0.010423,162 +0.010320,162 +0.010323,162 +0.010378,162 +0.010281,162 +0.010360,162 +0.010843,162 +0.010325,162 +0.010400,162 +0.010281,162 +0.010441,162 +0.010361,162 +0.010284,162 +0.010378,162 +0.010372,162 +0.010364,162 +0.010847,162 +0.010389,162 +0.010406,162 +0.010388,162 +0.010346,162 +0.010407,162 +0.010365,162 +0.010317,162 +0.010364,162 +0.010498,162 +0.010612,162 +0.010410,162 +0.010280,162 +0.010466,162 +0.010487,162 +0.010487,162 +0.010363,162 +0.010280,162 +0.010450,162 +0.010746,162 +0.010334,162 +0.010491,162 +0.010358,162 +0.010363,162 +0.010387,162 +0.010300,162 +0.010363,162 +0.010362,162 +0.010541,162 +0.010729,162 +0.010459,162 +0.010328,162 +0.010466,162 +0.010283,162 +0.010364,162 +0.010362,162 +0.010282,162 +0.010362,162 +0.010745,162 +0.010464,162 +0.010403,162 +0.010316,162 +0.010428,162 +0.010365,162 +0.010284,162 +0.010382,162 +0.010364,162 +0.010383,162 +0.010771,162 +0.010351,162 +0.010378,162 +0.010404,162 +0.010364,162 +0.011207,162 +0.010435,162 +0.010319,162 +0.010426,162 +0.010802,162 +0.010531,162 +0.010431,162 +0.010284,162 +0.010522,162 +0.010784,164 +0.010711,164 +0.010748,164 +0.010809,164 +0.010786,164 +0.011112,164 +0.010752,164 +0.010789,164 +0.010813,164 +0.010773,164 +0.010780,164 +0.011292,164 +0.011594,164 +0.011430,164 +0.011138,164 +0.010801,164 +0.010771,164 +0.010786,164 +0.010763,164 +0.010774,164 +0.010746,164 +0.010671,164 +0.010771,164 +0.011398,164 +0.010791,164 +0.010771,164 +0.010810,164 +0.010777,164 +0.010796,164 +0.010822,164 +0.011003,164 +0.010760,164 +0.010943,164 +0.011030,164 +0.010857,164 +0.010801,164 +0.010826,164 +0.010754,164 +0.010670,164 +0.010748,164 +0.010750,164 +0.010836,164 +0.011151,164 +0.010840,164 +0.010732,164 +0.010915,164 +0.010751,164 +0.010709,164 +0.010746,164 +0.010754,164 +0.010714,164 +0.011173,164 +0.010763,164 +0.010850,164 +0.010793,164 +0.010779,164 +0.010792,164 +0.010793,164 +0.010669,164 +0.010780,164 +0.011376,164 +0.010779,164 +0.010790,164 +0.010751,164 +0.010751,164 +0.010753,164 +0.010751,164 +0.010669,164 +0.010745,164 +0.010846,164 +0.012370,164 +0.010926,164 +0.011042,164 +0.010808,164 +0.010782,164 +0.010733,164 +0.010707,164 +0.010750,164 +0.010891,164 +0.011047,164 +0.011147,164 +0.010669,164 +0.010834,164 +0.010770,164 +0.010670,164 +0.010747,164 +0.010746,164 +0.010755,164 +0.011173,164 +0.011209,164 +0.010669,164 +0.011009,164 +0.010817,164 +0.010712,164 +0.010766,164 +0.010734,164 +0.010828,164 +0.011192,164 +0.010784,164 +0.010732,164 +0.011191,166 +0.011185,166 +0.011145,166 +0.011888,166 +0.012399,166 +0.012089,166 +0.011909,166 +0.011759,166 +0.011249,166 +0.011758,166 +0.011934,166 +0.011491,166 +0.011819,166 +0.011546,166 +0.011587,166 +0.011658,166 +0.012568,166 +0.011181,166 +0.011217,166 +0.011118,166 +0.011121,166 +0.011059,166 +0.011164,166 +0.011387,166 +0.011276,166 +0.011226,166 +0.011204,166 +0.011228,166 +0.011131,166 +0.011142,166 +0.011100,166 +0.011137,166 +0.011355,166 +0.011357,166 +0.011142,166 +0.011250,166 +0.011281,166 +0.011159,166 +0.011142,166 +0.011099,166 +0.011100,166 +0.011505,166 +0.011219,166 +0.011137,166 +0.011220,166 +0.011239,166 +0.011102,166 +0.011155,166 +0.011142,166 +0.011062,166 +0.011673,166 +0.011270,166 +0.011083,166 +0.011158,166 +0.011245,166 +0.011062,166 +0.011140,166 +0.011156,166 +0.011061,166 +0.011578,166 +0.011292,166 +0.011134,166 +0.011167,166 +0.011235,166 +0.011059,166 +0.011144,166 +0.011139,166 +0.011159,166 +0.011497,166 +0.011209,166 +0.011156,166 +0.011138,166 +0.011201,166 +0.011061,166 +0.011138,166 +0.011169,166 +0.011059,166 +0.011572,166 +0.011204,166 +0.011161,166 +0.011254,166 +0.011203,166 +0.011098,166 +0.011138,166 +0.011144,166 +0.011083,166 +0.011473,166 +0.011272,166 +0.011144,166 +0.011296,166 +0.011161,166 +0.011103,166 +0.011360,166 +0.011138,166 +0.011134,166 +0.011465,166 +0.011145,166 +0.011102,166 +0.011164,166 +0.011182,166 +0.011523,168 +0.011490,168 +0.011535,168 +0.011532,168 +0.011907,168 +0.011672,168 +0.011655,168 +0.011612,168 +0.011542,168 +0.011551,168 +0.011531,168 +0.011524,168 +0.011651,168 +0.011834,168 +0.011450,168 +0.011632,168 +0.011648,168 +0.011473,168 +0.011532,168 +0.011528,168 +0.011452,168 +0.011698,168 +0.011850,168 +0.011598,168 +0.011687,168 +0.011610,168 +0.011528,168 +0.011452,168 +0.011555,168 +0.011512,168 +0.011784,168 +0.011572,168 +0.011512,168 +0.011580,168 +0.011532,168 +0.011554,168 +0.011490,168 +0.011495,168 +0.011668,168 +0.011871,168 +0.011485,168 +0.011530,168 +0.011591,168 +0.011449,168 +0.011529,168 +0.011532,168 +0.011516,168 +0.011658,168 +0.011794,168 +0.011571,168 +0.011533,168 +0.011528,168 +0.011533,168 +0.011450,168 +0.011528,168 +0.011552,168 +0.011742,168 +0.011668,168 +0.011667,168 +0.011600,168 +0.011559,168 +0.011602,168 +0.011623,168 +0.011590,168 +0.011655,168 +0.012261,168 +0.011516,168 +0.011774,168 +0.011784,168 +0.011491,168 +0.011541,168 +0.011557,168 +0.011546,168 +0.011727,168 +0.011933,168 +0.011591,168 +0.011511,168 +0.011567,168 +0.011619,168 +0.011493,168 +0.011491,168 +0.011567,168 +0.012135,168 +0.011495,168 +0.011536,168 +0.011575,168 +0.011452,168 +0.011510,168 +0.011513,168 +0.011452,168 +0.011755,168 +0.012195,168 +0.011600,168 +0.011611,168 +0.011585,168 +0.011533,168 +0.011453,168 +0.011526,168 +0.011563,168 +0.011778,168 +0.012368,170 +0.011991,170 +0.012023,170 +0.011874,170 +0.011995,170 +0.011975,170 +0.011873,170 +0.012019,170 +0.012605,170 +0.011974,170 +0.012064,170 +0.012011,170 +0.011956,170 +0.011913,170 +0.011915,170 +0.011957,170 +0.012581,170 +0.011992,170 +0.011972,170 +0.012224,170 +0.011968,170 +0.011880,170 +0.011963,170 +0.011961,170 +0.012367,170 +0.012179,170 +0.012012,170 +0.012050,170 +0.011872,170 +0.011946,170 +0.011983,170 +0.011910,170 +0.012138,170 +0.012355,170 +0.012069,170 +0.011953,170 +0.011972,170 +0.011951,170 +0.011969,170 +0.011873,170 +0.011954,170 +0.012545,170 +0.011952,170 +0.012034,170 +0.011974,170 +0.011952,170 +0.011891,170 +0.011952,170 +0.011949,170 +0.012361,170 +0.012149,170 +0.012212,170 +0.012514,170 +0.012752,170 +0.012681,170 +0.012633,170 +0.012701,170 +0.012961,170 +0.012976,170 +0.013305,170 +0.013122,170 +0.013128,170 +0.013197,170 +0.013457,170 +0.012856,170 +0.014079,170 +0.012390,170 +0.012251,170 +0.012068,170 +0.011998,170 +0.012010,170 +0.011881,170 +0.012047,170 +0.013430,170 +0.012022,170 +0.012064,170 +0.012012,170 +0.011969,170 +0.011879,170 +0.011970,170 +0.012012,170 +0.013293,170 +0.012159,170 +0.012003,170 +0.012090,170 +0.011921,170 +0.011919,170 +0.011975,170 +0.011976,170 +0.013089,170 +0.013243,170 +0.012087,170 +0.012064,170 +0.012142,170 +0.011978,170 +0.012004,170 +0.011963,170 +0.011878,170 +0.013426,170 +0.011999,170 +0.012542,172 +0.012343,172 +0.012399,172 +0.012399,172 +0.012399,172 +0.012335,172 +0.013855,172 +0.012485,172 +0.012488,172 +0.012322,172 +0.012376,172 +0.012417,172 +0.012376,172 +0.012359,172 +0.013822,172 +0.012456,172 +0.012528,172 +0.012299,172 +0.012400,172 +0.012376,172 +0.012380,172 +0.012348,172 +0.013919,172 +0.012396,172 +0.012518,172 +0.012300,172 +0.012436,172 +0.012373,172 +0.012377,172 +0.012768,172 +0.013555,172 +0.012493,172 +0.012480,172 +0.012365,172 +0.012372,172 +0.012416,172 +0.012470,172 +0.012911,172 +0.013230,172 +0.012400,172 +0.012480,172 +0.012401,172 +0.012358,172 +0.012374,172 +0.012399,172 +0.012936,172 +0.013161,172 +0.012432,172 +0.012491,172 +0.012339,172 +0.012351,172 +0.012387,172 +0.012380,172 +0.012970,172 +0.013251,172 +0.012388,172 +0.012437,172 +0.012403,172 +0.012297,172 +0.012398,172 +0.012422,172 +0.012949,172 +0.013123,172 +0.012379,172 +0.012475,172 +0.012376,172 +0.012297,172 +0.012430,172 +0.012380,172 +0.013706,172 +0.013553,172 +0.012487,172 +0.012477,172 +0.012439,172 +0.012298,172 +0.012377,172 +0.012376,172 +0.013300,172 +0.012890,172 +0.012415,172 +0.012543,172 +0.012378,172 +0.012305,172 +0.012375,172 +0.012374,172 +0.013355,172 +0.012861,172 +0.012377,172 +0.012459,172 +0.012386,172 +0.012342,172 +0.012377,172 +0.012387,172 +0.013479,172 +0.012737,172 +0.012374,172 +0.012439,172 +0.012419,172 +0.012339,172 +0.012335,172 +0.012924,174 +0.014114,174 +0.013398,174 +0.012870,174 +0.012829,174 +0.012810,174 +0.012898,174 +0.012773,174 +0.012770,174 +0.014461,174 +0.012943,174 +0.012952,174 +0.012893,174 +0.012770,174 +0.012819,174 +0.012815,174 +0.013198,174 +0.013806,174 +0.012834,174 +0.012930,174 +0.012905,174 +0.013421,174 +0.012810,174 +0.012833,174 +0.014129,174 +0.013014,174 +0.012818,174 +0.012832,174 +0.012812,174 +0.012827,174 +0.012774,174 +0.012827,174 +0.014350,174 +0.012876,174 +0.012939,174 +0.012771,174 +0.012778,174 +0.012826,174 +0.012832,174 +0.012847,174 +0.014217,174 +0.012893,174 +0.012886,174 +0.012816,174 +0.012773,174 +0.012781,174 +0.012813,174 +0.014284,174 +0.013887,174 +0.013176,174 +0.012836,174 +0.012812,174 +0.012850,174 +0.012854,174 +0.012751,174 +0.014305,174 +0.012886,174 +0.012893,174 +0.012796,174 +0.012766,174 +0.012814,174 +0.012808,174 +0.012820,174 +0.014250,174 +0.012876,174 +0.012902,174 +0.012811,174 +0.012777,174 +0.012769,174 +0.012870,174 +0.013717,174 +0.013426,174 +0.012750,174 +0.012822,174 +0.012850,174 +0.012808,174 +0.012984,174 +0.012814,174 +0.013902,174 +0.012985,174 +0.012943,174 +0.012767,174 +0.012812,174 +0.012810,174 +0.012809,174 +0.012775,174 +0.014276,174 +0.012971,174 +0.012871,174 +0.012878,174 +0.012763,174 +0.012850,174 +0.012817,174 +0.012812,174 +0.014245,174 +0.012864,174 +0.013058,174 +0.012952,174 +0.012890,174 +0.012775,174 +0.013229,176 +0.014257,176 +0.013616,176 +0.013359,176 +0.013247,176 +0.013200,176 +0.013245,176 +0.013236,176 +0.013294,176 +0.014650,176 +0.013181,176 +0.013312,176 +0.013240,176 +0.013241,176 +0.013264,176 +0.013196,176 +0.014077,176 +0.013740,176 +0.013320,176 +0.013239,176 +0.013155,176 +0.013252,176 +0.013269,176 +0.013234,176 +0.015676,176 +0.013342,176 +0.013354,176 +0.013246,176 +0.013241,176 +0.013235,176 +0.013202,176 +0.014308,176 +0.013464,176 +0.013379,176 +0.013273,176 +0.013302,176 +0.013184,176 +0.013255,176 +0.013260,176 +0.014662,176 +0.013348,176 +0.013158,176 +0.013240,176 +0.013244,176 +0.013241,176 +0.013302,176 +0.014299,176 +0.013475,176 +0.013319,176 +0.013235,176 +0.013244,176 +0.013223,176 +0.013300,176 +0.013448,176 +0.014596,176 +0.013353,176 +0.013236,176 +0.013191,176 +0.013241,176 +0.013890,176 +0.013450,176 +0.014640,176 +0.013330,176 +0.013404,176 +0.013243,176 +0.013239,176 +0.013238,176 +0.013216,176 +0.013558,176 +0.014477,176 +0.013404,176 +0.013368,176 +0.013281,176 +0.013190,176 +0.013259,176 +0.013234,176 +0.014619,176 +0.013257,176 +0.013273,176 +0.013255,176 +0.013242,176 +0.013230,176 +0.013262,176 +0.013705,176 +0.014162,176 +0.013396,176 +0.013258,176 +0.013253,176 +0.013167,176 +0.013313,176 +0.013258,176 +0.014743,176 +0.013368,176 +0.013229,176 +0.013240,176 +0.013265,176 +0.013312,176 +0.013221,176 +0.014368,176 +0.014610,176 +0.014034,178 +0.013804,178 +0.013749,178 +0.013730,178 +0.013697,178 +0.013688,178 +0.015298,178 +0.013925,178 +0.013806,178 +0.013768,178 +0.013693,178 +0.013685,178 +0.013730,178 +0.015227,178 +0.013905,178 +0.013775,178 +0.013737,178 +0.013648,178 +0.013803,178 +0.013741,178 +0.015209,178 +0.013851,178 +0.013757,178 +0.013646,178 +0.013730,178 +0.013816,178 +0.013727,178 +0.014983,178 +0.013994,178 +0.013671,178 +0.013728,178 +0.013737,178 +0.013749,178 +0.013727,178 +0.014320,178 +0.014624,178 +0.013803,178 +0.013733,178 +0.013728,178 +0.013793,178 +0.013732,178 +0.013658,178 +0.015135,178 +0.013893,178 +0.013753,178 +0.013730,178 +0.013949,178 +0.014305,178 +0.013707,178 +0.015145,178 +0.013894,178 +0.013792,178 +0.013752,178 +0.013750,178 +0.013733,178 +0.013735,178 +0.015082,178 +0.013848,178 +0.013724,178 +0.013745,178 +0.013650,178 +0.013775,178 +0.013733,178 +0.014791,178 +0.014185,178 +0.013790,178 +0.013675,178 +0.013743,178 +0.013723,178 +0.013748,178 +0.013917,178 +0.016409,178 +0.013868,178 +0.013665,178 +0.013760,178 +0.013723,178 +0.013813,178 +0.013727,178 +0.015177,178 +0.013749,178 +0.013743,178 +0.013724,178 +0.013724,178 +0.013728,178 +0.013685,178 +0.015080,178 +0.013865,178 +0.013746,178 +0.013721,178 +0.013739,178 +0.013731,178 +0.013676,178 +0.015119,178 +0.013960,178 +0.013744,178 +0.013728,178 +0.013740,178 +0.013644,178 +0.013724,178 +0.014658,178 +0.014728,180 +0.014195,180 +0.014154,180 +0.014114,180 +0.014113,180 +0.014158,180 +0.015102,180 +0.014781,180 +0.014233,180 +0.014154,180 +0.014149,180 +0.014076,180 +0.014217,180 +0.014995,180 +0.014969,180 +0.014297,180 +0.014176,180 +0.014168,180 +0.014086,180 +0.014151,180 +0.014921,180 +0.014900,180 +0.014164,180 +0.014154,180 +0.014149,180 +0.014153,180 +0.014112,180 +0.014883,180 +0.014967,180 +0.014175,180 +0.014164,180 +0.014196,180 +0.014109,180 +0.014114,180 +0.014899,180 +0.015049,180 +0.014223,180 +0.014156,180 +0.014178,180 +0.014150,180 +0.014075,180 +0.015177,180 +0.015930,180 +0.014194,180 +0.014163,180 +0.014190,180 +0.014157,180 +0.014110,180 +0.014913,180 +0.014957,180 +0.014214,180 +0.014177,180 +0.014151,180 +0.014155,180 +0.014152,180 +0.014882,180 +0.014835,180 +0.014170,180 +0.014159,180 +0.014152,180 +0.014232,180 +0.014157,180 +0.015053,180 +0.014741,180 +0.014195,180 +0.014153,180 +0.014174,180 +0.014151,180 +0.014157,180 +0.015240,180 +0.014557,180 +0.014173,180 +0.014154,180 +0.014157,180 +0.014151,180 +0.014394,180 +0.015120,180 +0.014651,180 +0.014242,180 +0.014196,180 +0.014211,180 +0.014216,180 +0.014153,180 +0.015174,180 +0.014765,180 +0.014133,180 +0.014154,180 +0.014189,180 +0.014172,180 +0.014150,180 +0.015249,180 +0.014679,180 +0.014261,180 +0.014184,180 +0.014153,180 +0.014189,180 +0.014164,180 +0.015344,180 +0.014498,180 +0.014108,180 +0.014750,182 +0.014647,182 +0.014627,182 +0.014627,182 +0.016130,182 +0.014691,182 +0.014653,182 +0.014672,182 +0.014551,182 +0.014638,182 +0.014671,182 +0.017304,182 +0.014720,182 +0.014631,182 +0.014627,182 +0.014625,182 +0.014627,182 +0.015040,182 +0.015694,182 +0.014651,182 +0.014626,182 +0.014629,182 +0.014627,182 +0.014628,182 +0.015926,182 +0.014910,182 +0.014648,182 +0.014550,182 +0.014717,182 +0.014645,182 +0.014633,182 +0.016201,182 +0.014751,182 +0.014878,182 +0.014713,182 +0.014713,182 +0.014655,182 +0.014610,182 +0.016184,182 +0.014636,182 +0.014632,182 +0.014627,182 +0.014632,182 +0.014793,182 +0.015369,182 +0.015352,182 +0.014551,182 +0.014627,182 +0.014633,182 +0.014628,182 +0.014625,182 +0.016009,182 +0.014969,182 +0.014744,182 +0.014692,182 +0.014556,182 +0.014629,182 +0.014630,182 +0.016128,182 +0.015961,182 +0.014838,182 +0.014701,182 +0.014754,182 +0.014700,182 +0.014594,182 +0.016209,182 +0.014634,182 +0.014625,182 +0.014630,182 +0.014634,182 +0.014626,182 +0.015189,182 +0.015702,182 +0.014674,182 +0.014607,182 +0.014588,182 +0.014629,182 +0.014722,182 +0.016583,182 +0.015458,182 +0.014648,182 +0.014629,182 +0.014654,182 +0.014622,182 +0.014551,182 +0.016172,182 +0.014692,182 +0.014670,182 +0.014647,182 +0.014626,182 +0.014631,182 +0.014628,182 +0.016231,182 +0.014702,182 +0.014695,182 +0.014647,182 +0.014689,182 +0.014630,182 +0.015389,182 +0.015426,182 +0.015261,184 +0.015180,184 +0.015138,184 +0.015059,184 +0.015058,184 +0.016465,184 +0.015138,184 +0.015098,184 +0.015097,184 +0.015119,184 +0.015141,184 +0.015094,184 +0.016480,184 +0.015096,184 +0.015165,184 +0.015160,184 +0.015066,184 +0.015055,184 +0.016511,184 +0.015245,184 +0.015117,184 +0.015112,184 +0.015097,184 +0.015093,184 +0.015099,184 +0.016688,184 +0.015242,184 +0.015145,184 +0.015171,184 +0.015055,184 +0.015094,184 +0.015913,184 +0.016243,184 +0.016548,184 +0.016859,184 +0.016615,184 +0.016799,184 +0.017313,184 +0.016958,184 +0.016048,184 +0.016098,184 +0.015850,184 +0.015472,184 +0.015232,184 +0.015827,184 +0.015177,184 +0.015074,184 +0.016331,184 +0.017115,184 +0.016935,184 +0.016747,184 +0.016620,184 +0.016549,184 +0.016444,184 +0.016073,184 +0.016638,184 +0.016661,184 +0.017202,184 +0.016771,184 +0.016886,184 +0.016380,184 +0.016665,184 +0.016209,184 +0.016098,184 +0.015419,184 +0.015109,184 +0.015642,184 +0.017083,184 +0.016561,184 +0.015799,184 +0.015359,184 +0.015220,184 +0.015253,184 +0.016316,184 +0.017189,184 +0.016395,184 +0.016625,184 +0.016639,184 +0.016613,184 +0.016478,184 +0.016285,184 +0.016545,184 +0.016739,184 +0.017193,184 +0.018658,184 +0.016758,184 +0.016925,184 +0.016327,184 +0.015753,184 +0.016161,184 +0.017930,184 +0.016808,184 +0.016986,184 +0.016812,184 +0.018616,184 +0.017193,184 +0.017303,184 +0.019176,184 +0.018340,184 +0.019973,184 +0.020155,186 +0.020461,186 +0.018463,186 +0.019075,186 +0.024476,186 +0.022738,186 +0.020556,186 +0.019866,186 +0.017708,186 +0.018356,186 +0.017593,186 +0.018223,186 +0.019948,186 +0.020820,186 +0.022140,186 +0.017918,186 +0.019225,186 +0.019098,186 +0.019009,186 +0.022953,186 +0.017083,186 +0.018396,186 +0.017968,186 +0.017585,186 +0.016829,186 +0.016879,186 +0.016319,186 +0.016866,186 +0.018337,186 +0.018310,186 +0.023732,186 +0.018696,186 +0.019207,186 +0.019455,186 +0.018706,186 +0.017146,186 +0.016986,186 +0.017028,186 +0.019344,186 +0.019544,186 +0.017739,186 +0.017609,186 +0.017587,186 +0.017680,186 +0.017810,186 +0.017584,186 +0.017399,186 +0.018720,186 +0.017195,186 +0.017573,186 +0.017484,186 +0.018048,186 +0.021768,186 +0.016621,186 +0.017351,186 +0.016885,186 +0.016948,186 +0.017927,186 +0.017122,186 +0.017224,186 +0.017469,186 +0.017162,186 +0.017409,186 +0.017101,186 +0.017373,186 +0.016490,186 +0.017339,186 +0.017151,186 +0.017822,186 +0.017549,186 +0.017109,186 +0.016668,186 +0.016529,186 +0.016398,186 +0.017232,186 +0.019138,186 +0.017349,186 +0.016798,186 +0.016739,186 +0.017289,186 +0.016649,186 +0.017188,186 +0.016960,186 +0.016722,186 +0.017282,186 +0.016667,186 +0.016988,186 +0.016480,186 +0.016038,186 +0.015908,186 +0.015761,186 +0.015867,186 +0.019385,186 +0.017620,186 +0.018975,186 +0.017683,186 +0.016649,186 +0.017682,186 +0.017443,186 +0.017369,186 +0.017585,188 +0.017031,188 +0.016650,188 +0.016580,188 +0.016551,188 +0.016911,188 +0.017369,188 +0.017895,188 +0.020415,188 +0.021828,188 +0.020295,188 +0.020074,188 +0.020325,188 +0.018933,188 +0.016831,188 +0.016935,188 +0.016587,188 +0.016250,188 +0.016128,188 +0.016203,188 +0.016281,188 +0.016457,188 +0.016501,188 +0.016292,188 +0.016134,188 +0.017463,188 +0.016336,188 +0.016530,188 +0.016388,188 +0.016234,188 +0.016892,188 +0.021228,188 +0.018101,188 +0.018236,188 +0.019020,188 +0.022148,188 +0.028301,188 +0.030740,188 +0.028133,188 +0.030402,188 +0.030221,188 +0.021442,188 +0.026085,188 +0.021689,188 +0.021782,188 +0.019309,188 +0.018858,188 +0.016389,188 +0.016632,188 +0.019297,188 +0.017420,188 +0.018507,188 +0.016734,188 +0.017010,188 +0.017164,188 +0.017296,188 +0.019475,188 +0.018051,188 +0.016476,188 +0.018042,188 +0.016878,188 +0.016812,188 +0.018170,188 +0.017259,188 +0.016538,188 +0.016762,188 +0.017282,188 +0.017397,188 +0.022841,188 +0.018055,188 +0.016597,188 +0.016511,188 +0.016567,188 +0.016492,188 +0.018150,188 +0.017119,188 +0.016564,188 +0.017333,188 +0.016671,188 +0.016647,188 +0.016544,188 +0.016785,188 +0.016593,188 +0.017043,188 +0.016483,188 +0.016506,188 +0.020677,188 +0.016481,188 +0.016269,188 +0.016441,188 +0.016390,188 +0.016472,188 +0.020768,188 +0.016408,188 +0.016359,188 +0.016669,188 +0.016571,188 +0.017968,188 +0.019100,188 +0.016422,188 +0.019606,190 +0.018196,190 +0.017098,190 +0.017581,190 +0.017235,190 +0.016891,190 +0.017145,190 +0.017270,190 +0.017056,190 +0.021680,190 +0.020330,190 +0.019509,190 +0.017363,190 +0.017317,190 +0.017935,190 +0.017530,190 +0.017335,190 +0.018212,190 +0.017494,190 +0.017188,190 +0.017696,190 +0.016806,190 +0.016855,190 +0.017064,190 +0.017031,190 +0.017257,190 +0.017479,190 +0.016840,190 +0.016886,190 +0.017175,190 +0.016892,190 +0.016751,190 +0.017574,190 +0.016842,190 +0.016957,190 +0.017035,190 +0.016909,190 +0.017014,190 +0.017247,190 +0.016834,190 +0.016835,190 +0.017247,190 +0.017006,190 +0.017128,190 +0.018882,190 +0.018347,190 +0.017874,190 +0.017716,190 +0.016836,190 +0.017167,190 +0.016848,190 +0.016718,190 +0.016687,190 +0.016791,190 +0.016808,190 +0.017179,190 +0.016809,190 +0.016723,190 +0.016876,190 +0.017000,190 +0.016726,190 +0.017112,190 +0.016764,190 +0.016678,190 +0.016707,190 +0.016774,190 +0.016693,190 +0.017114,190 +0.016812,190 +0.016817,190 +0.016675,190 +0.016843,190 +0.016779,190 +0.017179,190 +0.016748,190 +0.016754,190 +0.017375,190 +0.017169,190 +0.018405,190 +0.018924,190 +0.018512,190 +0.018088,190 +0.017260,190 +0.017003,190 +0.016994,190 +0.018513,190 +0.017271,190 +0.017029,190 +0.017007,190 +0.016876,190 +0.016957,190 +0.019317,190 +0.019256,190 +0.018045,190 +0.017711,190 +0.017179,190 +0.021522,190 +0.019157,190 +0.022006,190 +0.022502,190 +0.024940,192 +0.020805,192 +0.018494,192 +0.018604,192 +0.018872,192 +0.020463,192 +0.019122,192 +0.018341,192 +0.018278,192 +0.018342,192 +0.021521,192 +0.021664,192 +0.023983,192 +0.022446,192 +0.020787,192 +0.020216,192 +0.021117,192 +0.021752,192 +0.020148,192 +0.020033,192 +0.019823,192 +0.019258,192 +0.018466,192 +0.018968,192 +0.019993,192 +0.024043,192 +0.020247,192 +0.020460,192 +0.022285,192 +0.032353,192 +0.020860,192 +0.019693,192 +0.019178,192 +0.019545,192 +0.019595,192 +0.022936,192 +0.019735,192 +0.020366,192 +0.020715,192 +0.020817,192 +0.019938,192 +0.019200,192 +0.019328,192 +0.019081,192 +0.019019,192 +0.024591,192 +0.020063,192 +0.023090,192 +0.020689,192 +0.025426,192 +0.024649,192 +0.022197,192 +0.023562,192 +0.025272,192 +0.021982,192 +0.019063,192 +0.020815,192 +0.018930,192 +0.019309,192 +0.021683,192 +0.018894,192 +0.018693,192 +0.018402,192 +0.018643,192 +0.018803,192 +0.018865,192 +0.018530,192 +0.018566,192 +0.018457,192 +0.019478,192 +0.019840,192 +0.019749,192 +0.021034,192 +0.020868,192 +0.023697,192 +0.019251,192 +0.019106,192 +0.021241,192 +0.019936,192 +0.020166,192 +0.019412,192 +0.019460,192 +0.019504,192 +0.019592,192 +0.019792,192 +0.019798,192 +0.019799,192 +0.019798,192 +0.021687,192 +0.020310,192 +0.020672,192 +0.020906,192 +0.020747,192 +0.020806,192 +0.020942,192 +0.022014,192 +0.020865,192 +0.020481,192 +0.021178,192 +0.020042,192 +0.019345,194 +0.020383,194 +0.034984,194 +0.031715,194 +0.019095,194 +0.019188,194 +0.019084,194 +0.019325,194 +0.018859,194 +0.019776,194 +0.018427,194 +0.018625,194 +0.018061,194 +0.018269,194 +0.018030,194 +0.018468,194 +0.017982,194 +0.018246,194 +0.018547,194 +0.019330,194 +0.019578,194 +0.019471,194 +0.020268,194 +0.019597,194 +0.019489,194 +0.019100,194 +0.019014,194 +0.019099,194 +0.018724,194 +0.018987,194 +0.018608,194 +0.018548,194 +0.018599,194 +0.018297,194 +0.018905,194 +0.018515,194 +0.018691,194 +0.018296,194 +0.018482,194 +0.018275,194 +0.018193,194 +0.017980,194 +0.018071,194 +0.018040,194 +0.017936,194 +0.019145,194 +0.019417,194 +0.019837,194 +0.020615,194 +0.020887,194 +0.019485,194 +0.018711,194 +0.018365,194 +0.019080,194 +0.018409,194 +0.018458,194 +0.018273,194 +0.017884,194 +0.017895,194 +0.018663,194 +0.019215,194 +0.019486,194 +0.019641,194 +0.019856,194 +0.019866,194 +0.019767,194 +0.020457,194 +0.019443,194 +0.019975,194 +0.019074,194 +0.018775,194 +0.019472,194 +0.020400,194 +0.020998,194 +0.020603,194 +0.020092,194 +0.019683,194 +0.020105,194 +0.018864,194 +0.018451,194 +0.017971,194 +0.018226,194 +0.017998,194 +0.017893,194 +0.018022,194 +0.017815,194 +0.017903,194 +0.018246,194 +0.019260,194 +0.019605,194 +0.019167,194 +0.019089,194 +0.019311,194 +0.019635,194 +0.019365,194 +0.019919,194 +0.020112,194 +0.019885,194 +0.019468,194 +0.019149,194 +0.020764,196 +0.021087,196 +0.020729,196 +0.023838,196 +0.024036,196 +0.019970,196 +0.019897,196 +0.020047,196 +0.019956,196 +0.019867,196 +0.019909,196 +0.021403,196 +0.021023,196 +0.021649,196 +0.020910,196 +0.020714,196 +0.021551,196 +0.021570,196 +0.021105,196 +0.019902,196 +0.019433,196 +0.021446,196 +0.021803,196 +0.020211,196 +0.019600,196 +0.018518,196 +0.019530,196 +0.020621,196 +0.021180,196 +0.020092,196 +0.019216,196 +0.019500,196 +0.021280,196 +0.021502,196 +0.020392,196 +0.020218,196 +0.019788,196 +0.019832,196 +0.019178,196 +0.019315,196 +0.018625,196 +0.018539,196 +0.019664,196 +0.019096,196 +0.019631,196 +0.019488,196 +0.019109,196 +0.019395,196 +0.019174,196 +0.019152,196 +0.018386,196 +0.018477,196 +0.018987,196 +0.018399,196 +0.019330,196 +0.019047,196 +0.018537,196 +0.018668,196 +0.018769,196 +0.018420,196 +0.018592,196 +0.018385,196 +0.018368,196 +0.018968,196 +0.018484,196 +0.018433,196 +0.018916,196 +0.018328,196 +0.018830,196 +0.018451,196 +0.018356,196 +0.018438,196 +0.018313,196 +0.018338,196 +0.018935,196 +0.018504,196 +0.018554,196 +0.018682,196 +0.018337,196 +0.018847,196 +0.019009,196 +0.018384,196 +0.019396,196 +0.018847,196 +0.018546,196 +0.018771,196 +0.018494,196 +0.018434,196 +0.018456,196 +0.018361,196 +0.019148,196 +0.021199,196 +0.019170,196 +0.018582,196 +0.018312,196 +0.018855,196 +0.023224,196 +0.019320,196 +0.023507,196 +0.021675,196 +0.020363,198 +0.021072,198 +0.020478,198 +0.019864,198 +0.022227,198 +0.020976,198 +0.019821,198 +0.019979,198 +0.019839,198 +0.021022,198 +0.020894,198 +0.019946,198 +0.020093,198 +0.024282,198 +0.022166,198 +0.020987,198 +0.021312,198 +0.020292,198 +0.019523,198 +0.019733,198 +0.019085,198 +0.019108,198 +0.018861,198 +0.020641,198 +0.022971,198 +0.023156,198 +0.022558,198 +0.023455,198 +0.021469,198 +0.020916,198 +0.021697,198 +0.021540,198 +0.021498,198 +0.022028,198 +0.023256,198 +0.021457,198 +0.021465,198 +0.020630,198 +0.021839,198 +0.020525,198 +0.020847,198 +0.020563,198 +0.020045,198 +0.020640,198 +0.020792,198 +0.020395,198 +0.019915,198 +0.019510,198 +0.019546,198 +0.018955,198 +0.019296,198 +0.018956,198 +0.018959,198 +0.019419,198 +0.021557,198 +0.024834,198 +0.020640,198 +0.019464,198 +0.019883,198 +0.020924,198 +0.020797,198 +0.019979,198 +0.020777,198 +0.020949,198 +0.020096,198 +0.020566,198 +0.020725,198 +0.020589,198 +0.020503,198 +0.021146,198 +0.020854,198 +0.020709,198 +0.020673,198 +0.021265,198 +0.020957,198 +0.020087,198 +0.020293,198 +0.020254,198 +0.020485,198 +0.020327,198 +0.019938,198 +0.019418,198 +0.020064,198 +0.019959,198 +0.020235,198 +0.019863,198 +0.019784,198 +0.019847,198 +0.019759,198 +0.019440,198 +0.019175,198 +0.019037,198 +0.019055,198 +0.019500,198 +0.018947,198 +0.018935,198 +0.018942,198 +0.019043,198 +0.019386,198 +0.018894,198 +0.019847,200 +0.019664,200 +0.019531,200 +0.019984,200 +0.019496,200 +0.019535,200 +0.019523,200 +0.019396,200 +0.019900,200 +0.019467,200 +0.019590,200 +0.019588,200 +0.019606,200 +0.019987,200 +0.020046,200 +0.019704,200 +0.019461,200 +0.020299,200 +0.020112,200 +0.019736,200 +0.019486,200 +0.019468,200 +0.019677,200 +0.019764,200 +0.020011,200 +0.019543,200 +0.019450,200 +0.019493,200 +0.019740,200 +0.019989,200 +0.019563,200 +0.019551,200 +0.019500,200 +0.019565,200 +0.020163,200 +0.019851,200 +0.019784,200 +0.019433,200 +0.019716,200 +0.020197,200 +0.019575,200 +0.019520,200 +0.019471,200 +0.019425,200 +0.020289,200 +0.019476,200 +0.019521,200 +0.019553,200 +0.019613,200 +0.020180,200 +0.019593,200 +0.019575,200 +0.019641,200 +0.019589,200 +0.020003,200 +0.019793,200 +0.019558,200 +0.019446,200 +0.019542,200 +0.019870,200 +0.019855,200 +0.020083,200 +0.019634,200 +0.019726,200 +0.020650,200 +0.019880,200 +0.019689,200 +0.020130,200 +0.019559,200 +0.019814,200 +0.019751,200 +0.019683,200 +0.019536,200 +0.019511,200 +0.019739,200 +0.019761,200 +0.019844,200 +0.019614,200 +0.019510,200 +0.019615,200 +0.019933,200 +0.019595,200 +0.019627,200 +0.019514,200 +0.019771,200 +0.019989,200 +0.019759,200 +0.019605,200 +0.019446,200 +0.019555,200 +0.020018,200 +0.019672,200 +0.019454,200 +0.019554,200 +0.019475,200 +0.019982,200 +0.019757,200 +0.019448,200 +0.019456,200 +0.019556,200 +0.020752,202 +0.020315,202 +0.020130,202 +0.020352,202 +0.020185,202 +0.020527,202 +0.020467,202 +0.020032,202 +0.020118,202 +0.020047,202 +0.020468,202 +0.020382,202 +0.020043,202 +0.020195,202 +0.020701,202 +0.022772,202 +0.020800,202 +0.020752,202 +0.020241,202 +0.020193,202 +0.020553,202 +0.021345,202 +0.021025,202 +0.021084,202 +0.021334,202 +0.021501,202 +0.021238,202 +0.020361,202 +0.020826,202 +0.020559,202 +0.021365,202 +0.021705,202 +0.021215,202 +0.020839,202 +0.021010,202 +0.024230,202 +0.020649,202 +0.020775,202 +0.020427,202 +0.021548,202 +0.020331,202 +0.020407,202 +0.020270,202 +0.020106,202 +0.020695,202 +0.022353,202 +0.020113,202 +0.020133,202 +0.020351,202 +0.020511,202 +0.020268,202 +0.020175,202 +0.020279,202 +0.020470,202 +0.020585,202 +0.020178,202 +0.020050,202 +0.021290,202 +0.020567,202 +0.020655,202 +0.020220,202 +0.020202,202 +0.020527,202 +0.022670,202 +0.021468,202 +0.020876,202 +0.022385,202 +0.032710,202 +0.039798,202 +0.023425,202 +0.021605,202 +0.023522,202 +0.021182,202 +0.020169,202 +0.020112,202 +0.020041,202 +0.021666,202 +0.020232,202 +0.020173,202 +0.021271,202 +0.022316,202 +0.022846,202 +0.021547,202 +0.023117,202 +0.022271,202 +0.023128,202 +0.024963,202 +0.022957,202 +0.025744,202 +0.023609,202 +0.021734,202 +0.021805,202 +0.021457,202 +0.021720,202 +0.024516,202 +0.022754,202 +0.023032,202 +0.021576,202 +0.022953,202 +0.020970,202 +0.021015,204 +0.020775,204 +0.020687,204 +0.025122,204 +0.020993,204 +0.020820,204 +0.020792,204 +0.020859,204 +0.030238,204 +0.025164,204 +0.026316,204 +0.023593,204 +0.025047,204 +0.023127,204 +0.022618,204 +0.022424,204 +0.022037,204 +0.022084,204 +0.021993,204 +0.022581,204 +0.021904,204 +0.021925,204 +0.022160,204 +0.022226,204 +0.022588,204 +0.028373,204 +0.022144,204 +0.023337,204 +0.023259,204 +0.022549,204 +0.023086,204 +0.023397,204 +0.022853,204 +0.028375,204 +0.023074,204 +0.022656,204 +0.022478,204 +0.022516,204 +0.025986,204 +0.020992,204 +0.020852,204 +0.020867,204 +0.025466,204 +0.021012,204 +0.020711,204 +0.020913,204 +0.021363,204 +0.027080,204 +0.022212,204 +0.021433,204 +0.020768,204 +0.025439,204 +0.021289,204 +0.023418,204 +0.026657,204 +0.022670,204 +0.023941,204 +0.023481,204 +0.025152,204 +0.022343,204 +0.023359,204 +0.023745,204 +0.023200,204 +0.022828,204 +0.023002,204 +0.022384,204 +0.022177,204 +0.022080,204 +0.021990,204 +0.022732,204 +0.022659,204 +0.023318,204 +0.022884,204 +0.022393,204 +0.023143,204 +0.023760,204 +0.024075,204 +0.022287,204 +0.022691,204 +0.021653,204 +0.021537,204 +0.020961,204 +0.022480,204 +0.020901,204 +0.022064,204 +0.024598,204 +0.028897,204 +0.024398,204 +0.022677,204 +0.022657,204 +0.022089,204 +0.021633,204 +0.022691,204 +0.024345,204 +0.022917,204 +0.024167,204 +0.022165,204 +0.022049,204 +0.022787,204 +0.024235,204 +0.023591,206 +0.021978,206 +0.021865,206 +0.021844,206 +0.022636,206 +0.022349,206 +0.021367,206 +0.021330,206 +0.022050,206 +0.021592,206 +0.021232,206 +0.021594,206 +0.022438,206 +0.022745,206 +0.022449,206 +0.021736,206 +0.021858,206 +0.022040,206 +0.021889,206 +0.021391,206 +0.021359,206 +0.021393,206 +0.021920,206 +0.021935,206 +0.022188,206 +0.021793,206 +0.021650,206 +0.022413,206 +0.021509,206 +0.021635,206 +0.022036,206 +0.023080,206 +0.021413,206 +0.021489,206 +0.021287,206 +0.021372,206 +0.022243,206 +0.022011,206 +0.021568,206 +0.022526,206 +0.022047,206 +0.021898,206 +0.021383,206 +0.021404,206 +0.021395,206 +0.021860,206 +0.021563,206 +0.021460,206 +0.021246,206 +0.021360,206 +0.022058,206 +0.021339,206 +0.022831,206 +0.021602,206 +0.021552,206 +0.021860,206 +0.021494,206 +0.021493,206 +0.021341,206 +0.022150,206 +0.023089,206 +0.023404,206 +0.023811,206 +0.023137,206 +0.023687,206 +0.023525,206 +0.022122,206 +0.021608,206 +0.022198,206 +0.021359,206 +0.022185,206 +0.021756,206 +0.021619,206 +0.021804,206 +0.021404,206 +0.021511,206 +0.021431,206 +0.022140,206 +0.021525,206 +0.021277,206 +0.021323,206 +0.021513,206 +0.022128,206 +0.021489,206 +0.023350,206 +0.021501,206 +0.022080,206 +0.021529,206 +0.021403,206 +0.021514,206 +0.021426,206 +0.022244,206 +0.021401,206 +0.021319,206 +0.022172,206 +0.022706,206 +0.022246,206 +0.021965,206 +0.021504,206 +0.022424,206 +0.023821,208 +0.023756,208 +0.022642,208 +0.025208,208 +0.023727,208 +0.022863,208 +0.022806,208 +0.022508,208 +0.022684,208 +0.022997,208 +0.023056,208 +0.023113,208 +0.022604,208 +0.023785,208 +0.029033,208 +0.024733,208 +0.024317,208 +0.024554,208 +0.024225,208 +0.025887,208 +0.024642,208 +0.025190,208 +0.024142,208 +0.024546,208 +0.022975,208 +0.023746,208 +0.023763,208 +0.026540,208 +0.024444,208 +0.023780,208 +0.023109,208 +0.022683,208 +0.022263,208 +0.021896,208 +0.022531,208 +0.025044,208 +0.023229,208 +0.022732,208 +0.023278,208 +0.022880,208 +0.024107,208 +0.024268,208 +0.024868,208 +0.025449,208 +0.024925,208 +0.024397,208 +0.025436,208 +0.025071,208 +0.025322,208 +0.024356,208 +0.026775,208 +0.024093,208 +0.026201,208 +0.025142,208 +0.027131,208 +0.024924,208 +0.025702,208 +0.027040,208 +0.024313,208 +0.024575,208 +0.024335,208 +0.024293,208 +0.023861,208 +0.023234,208 +0.022936,208 +0.022000,208 +0.022155,208 +0.023588,208 +0.024183,208 +0.022588,208 +0.021907,208 +0.022326,208 +0.022018,208 +0.021848,208 +0.021839,208 +0.022088,208 +0.022409,208 +0.021985,208 +0.021948,208 +0.021927,208 +0.022259,208 +0.021915,208 +0.022055,208 +0.021779,208 +0.021774,208 +0.022601,208 +0.022210,208 +0.021924,208 +0.022733,208 +0.023556,208 +0.025291,208 +0.024384,208 +0.024610,208 +0.028181,208 +0.024314,208 +0.024542,208 +0.024557,208 +0.023488,208 +0.023457,208 +0.023533,208 +0.024409,210 +0.024628,210 +0.023856,210 +0.023852,210 +0.023106,210 +0.023128,210 +0.023243,210 +0.023334,210 +0.022987,210 +0.022623,210 +0.022790,210 +0.022955,210 +0.022740,210 +0.022705,210 +0.022813,210 +0.022882,210 +0.023087,210 +0.022539,210 +0.022487,210 +0.023094,210 +0.022589,210 +0.022518,210 +0.022693,210 +0.022863,210 +0.022825,210 +0.022861,210 +0.022547,210 +0.022669,210 +0.022950,210 +0.022901,210 +0.023057,210 +0.022649,210 +0.023103,210 +0.022778,210 +0.022605,210 +0.023652,210 +0.024703,210 +0.025658,210 +0.024492,210 +0.023719,210 +0.024246,210 +0.024166,210 +0.024462,210 +0.023157,210 +0.023018,210 +0.024428,210 +0.026391,210 +0.024282,210 +0.023907,210 +0.025583,210 +0.023684,210 +0.023131,210 +0.022876,210 +0.024564,210 +0.022791,210 +0.022825,210 +0.022587,210 +0.024037,210 +0.023186,210 +0.022641,210 +0.022504,210 +0.022791,210 +0.024149,210 +0.022694,210 +0.022492,210 +0.022470,210 +0.024329,210 +0.023516,210 +0.022771,210 +0.022512,210 +0.023819,210 +0.023292,210 +0.022586,210 +0.022538,210 +0.022760,210 +0.023383,210 +0.023399,210 +0.022960,210 +0.022517,210 +0.023320,210 +0.022742,210 +0.022517,210 +0.022731,210 +0.022745,210 +0.023166,210 +0.023166,210 +0.022732,210 +0.023988,210 +0.024082,210 +0.024657,210 +0.024366,210 +0.027884,210 +0.024597,210 +0.025377,210 +0.023830,210 +0.023895,210 +0.024427,210 +0.023678,210 +0.025564,210 +0.024984,210 +0.028780,212 +0.029890,212 +0.027592,212 +0.026942,212 +0.030883,212 +0.027178,212 +0.028512,212 +0.039651,212 +0.028242,212 +0.028991,212 +0.026668,212 +0.027360,212 +0.026401,212 +0.029501,212 +0.026908,212 +0.027813,212 +0.027291,212 +0.026234,212 +0.027539,212 +0.028791,212 +0.027450,212 +0.025350,212 +0.023689,212 +0.023496,212 +0.023258,212 +0.023522,212 +0.024155,212 +0.024813,212 +0.026071,212 +0.027582,212 +0.025773,212 +0.024817,212 +0.023433,212 +0.023553,212 +0.023926,212 +0.024485,212 +0.024293,212 +0.024646,212 +0.029259,212 +0.025543,212 +0.024065,212 +0.024499,212 +0.030856,212 +0.027562,212 +0.024638,212 +0.023682,212 +0.023831,212 +0.023276,212 +0.023219,212 +0.023363,212 +0.023826,212 +0.023578,212 +0.023316,212 +0.023402,212 +0.023999,212 +0.023216,212 +0.023572,212 +0.023125,212 +0.023700,212 +0.025048,212 +0.024970,212 +0.024854,212 +0.024401,212 +0.025642,212 +0.025771,212 +0.025708,212 +0.024839,212 +0.025416,212 +0.023692,212 +0.023449,212 +0.024185,212 +0.024160,212 +0.023241,212 +0.025328,212 +0.023427,212 +0.024180,212 +0.023727,212 +0.023739,212 +0.023470,212 +0.023785,212 +0.023785,212 +0.026845,212 +0.026689,212 +0.032715,212 +0.027248,212 +0.026124,212 +0.025759,212 +0.025625,212 +0.024113,212 +0.023480,212 +0.023333,212 +0.023605,212 +0.023243,212 +0.023336,212 +0.023319,212 +0.023747,212 +0.023551,212 +0.023361,212 +0.024556,212 +0.024892,212 +0.026700,214 +0.025213,214 +0.026438,214 +0.025136,214 +0.026425,214 +0.025937,214 +0.025493,214 +0.024801,214 +0.024645,214 +0.025036,214 +0.024143,214 +0.024138,214 +0.024073,214 +0.023911,214 +0.024143,214 +0.024270,214 +0.024084,214 +0.024074,214 +0.023962,214 +0.024107,214 +0.024537,214 +0.024517,214 +0.024748,214 +0.024388,214 +0.024160,214 +0.024152,214 +0.023880,214 +0.024127,214 +0.024769,214 +0.024106,214 +0.023967,214 +0.024425,214 +0.025422,214 +0.024347,214 +0.024800,214 +0.023930,214 +0.024677,214 +0.023916,214 +0.024202,214 +0.023872,214 +0.024607,214 +0.023927,214 +0.023970,214 +0.024261,214 +0.025395,214 +0.024604,214 +0.024098,214 +0.024544,214 +0.024544,214 +0.024166,214 +0.023802,214 +0.023982,214 +0.024028,214 +0.024306,214 +0.024041,214 +0.024064,214 +0.024016,214 +0.024493,214 +0.024140,214 +0.023797,214 +0.023974,214 +0.024329,214 +0.023998,214 +0.023922,214 +0.023908,214 +0.024607,214 +0.023883,214 +0.024193,214 +0.024173,214 +0.024611,214 +0.023901,214 +0.023930,214 +0.023932,214 +0.024221,214 +0.024181,214 +0.023771,214 +0.024193,214 +0.023987,214 +0.024391,214 +0.023819,214 +0.023993,214 +0.023855,214 +0.024511,214 +0.023991,214 +0.023807,214 +0.024126,214 +0.024321,214 +0.024102,214 +0.023873,214 +0.023921,214 +0.024535,214 +0.024155,214 +0.023932,214 +0.024392,214 +0.024515,214 +0.023947,214 +0.024139,214 +0.023944,214 +0.027535,214 +0.025248,214 +0.025484,216 +0.025123,216 +0.030448,216 +0.025789,216 +0.024894,216 +0.025904,216 +0.026197,216 +0.024432,216 +0.024402,216 +0.024708,216 +0.026282,216 +0.024615,216 +0.024535,216 +0.024753,216 +0.026081,216 +0.024561,216 +0.024475,216 +0.024744,216 +0.025945,216 +0.024761,216 +0.024542,216 +0.024724,216 +0.025159,216 +0.024840,216 +0.024601,216 +0.024741,216 +0.025042,216 +0.024965,216 +0.024499,216 +0.024812,216 +0.024926,216 +0.024801,216 +0.024435,216 +0.024676,216 +0.024981,216 +0.025004,216 +0.024671,216 +0.024859,216 +0.025062,216 +0.024994,216 +0.024513,216 +0.024685,216 +0.024627,216 +0.025029,216 +0.024553,216 +0.024694,216 +0.024752,216 +0.024954,216 +0.024574,216 +0.024582,216 +0.024523,216 +0.025109,216 +0.024530,216 +0.024503,216 +0.024665,216 +0.024862,216 +0.024782,216 +0.024510,216 +0.024871,216 +0.024840,216 +0.024585,216 +0.024626,216 +0.024589,216 +0.025097,216 +0.024512,216 +0.024515,216 +0.024539,216 +0.025020,216 +0.024724,216 +0.025950,216 +0.025361,216 +0.024966,216 +0.024595,216 +0.024620,216 +0.024548,216 +0.024962,216 +0.024853,216 +0.024712,216 +0.025908,216 +0.024977,216 +0.024504,216 +0.024641,216 +0.024624,216 +0.024878,216 +0.024699,216 +0.024645,216 +0.024614,216 +0.024994,216 +0.024638,216 +0.024640,216 +0.024676,216 +0.024891,216 +0.024802,216 +0.024641,216 +0.024596,216 +0.025361,216 +0.024752,216 +0.024759,216 +0.024553,216 +0.025133,216 +0.026054,218 +0.025362,218 +0.025420,218 +0.025677,218 +0.025630,218 +0.025347,218 +0.025488,218 +0.025886,218 +0.025560,218 +0.025564,218 +0.025548,218 +0.025869,218 +0.025400,218 +0.025229,218 +0.025425,218 +0.025760,218 +0.025523,218 +0.025417,218 +0.025613,218 +0.025950,218 +0.025742,218 +0.026214,218 +0.025615,218 +0.025978,218 +0.025597,218 +0.025436,218 +0.025336,218 +0.025929,218 +0.025384,218 +0.025450,218 +0.025279,218 +0.025758,218 +0.026162,218 +0.026038,218 +0.025452,218 +0.025823,218 +0.025876,218 +0.025534,218 +0.025492,218 +0.025908,218 +0.025268,218 +0.025463,218 +0.025701,218 +0.025900,218 +0.025401,218 +0.025399,218 +0.025506,218 +0.026239,218 +0.025726,218 +0.025523,218 +0.025512,218 +0.025693,218 +0.025337,218 +0.025391,218 +0.025715,218 +0.025980,218 +0.025722,218 +0.025406,218 +0.025888,218 +0.025402,218 +0.025444,218 +0.025225,218 +0.025808,218 +0.025480,218 +0.025621,218 +0.025296,218 +0.025849,218 +0.025335,218 +0.025513,218 +0.025507,218 +0.025734,218 +0.025532,218 +0.025320,218 +0.025351,218 +0.026005,218 +0.025512,218 +0.025464,218 +0.025527,218 +0.025952,218 +0.025491,218 +0.025561,218 +0.025331,218 +0.026120,218 +0.025413,218 +0.025770,218 +0.025433,218 +0.026001,218 +0.025613,218 +0.030177,218 +0.025411,218 +0.025951,218 +0.025443,218 +0.025476,218 +0.025370,218 +0.025936,218 +0.025675,218 +0.025550,218 +0.025630,218 +0.025618,218 +0.025579,218 +0.026034,220 +0.026495,220 +0.026471,220 +0.026135,220 +0.026024,220 +0.026502,220 +0.026192,220 +0.026208,220 +0.025793,220 +0.026485,220 +0.026102,220 +0.026000,220 +0.025925,220 +0.026730,220 +0.026285,220 +0.026114,220 +0.026022,220 +0.026625,220 +0.026283,220 +0.025947,220 +0.026193,220 +0.026647,220 +0.026127,220 +0.026263,220 +0.026584,220 +0.026220,220 +0.026227,220 +0.025974,220 +0.026622,220 +0.026000,220 +0.026058,220 +0.025875,220 +0.026576,220 +0.026332,220 +0.026333,220 +0.026040,220 +0.026581,220 +0.026081,220 +0.025933,220 +0.025890,220 +0.026702,220 +0.026128,220 +0.026023,220 +0.026261,220 +0.026445,220 +0.026108,220 +0.025919,220 +0.026601,220 +0.026105,220 +0.026200,220 +0.025909,220 +0.026559,220 +0.026029,220 +0.026357,220 +0.025926,220 +0.026565,220 +0.026243,220 +0.026013,220 +0.026061,220 +0.026618,220 +0.026076,220 +0.026005,220 +0.026074,220 +0.026654,220 +0.027963,220 +0.026178,220 +0.026506,220 +0.026037,220 +0.026183,220 +0.025942,220 +0.026730,220 +0.026153,220 +0.026348,220 +0.025951,220 +0.026421,220 +0.026054,220 +0.026047,220 +0.025945,220 +0.026649,220 +0.026028,220 +0.026105,220 +0.025931,220 +0.026659,220 +0.026037,220 +0.025900,220 +0.026170,220 +0.026410,220 +0.027071,220 +0.029181,220 +0.029791,220 +0.032931,220 +0.029965,220 +0.028955,220 +0.028804,220 +0.028369,220 +0.033877,220 +0.035271,220 +0.029037,220 +0.030304,220 +0.028764,220 +0.032144,222 +0.030095,222 +0.029826,222 +0.030025,222 +0.030439,222 +0.029537,222 +0.030335,222 +0.030394,222 +0.031119,222 +0.030428,222 +0.029719,222 +0.030357,222 +0.030121,222 +0.030463,222 +0.030936,222 +0.029935,222 +0.030507,222 +0.030769,222 +0.030753,222 +0.031559,222 +0.030556,222 +0.028491,222 +0.038898,222 +0.031032,222 +0.032999,222 +0.030822,222 +0.031671,222 +0.027785,222 +0.028481,222 +0.029536,222 +0.028762,222 +0.029051,222 +0.028534,222 +0.028510,222 +0.028585,222 +0.028222,222 +0.027511,222 +0.026921,222 +0.027167,222 +0.028879,222 +0.029678,222 +0.029246,222 +0.028604,222 +0.027927,222 +0.027112,222 +0.026937,222 +0.027582,222 +0.027922,222 +0.028084,222 +0.027279,222 +0.032112,222 +0.028924,222 +0.028764,222 +0.028468,222 +0.028902,222 +0.029415,222 +0.028632,222 +0.028597,222 +0.028101,222 +0.027938,222 +0.027737,222 +0.027592,222 +0.027508,222 +0.026710,222 +0.027587,222 +0.027275,222 +0.026938,222 +0.026820,222 +0.027447,222 +0.026860,222 +0.027257,222 +0.027210,222 +0.027288,222 +0.026897,222 +0.026723,222 +0.027392,222 +0.027271,222 +0.026700,222 +0.027218,222 +0.027228,222 +0.026802,222 +0.026738,222 +0.026919,222 +0.027479,222 +0.026767,222 +0.027356,222 +0.028218,222 +0.027190,222 +0.026627,222 +0.026783,222 +0.029107,222 +0.027437,222 +0.027101,222 +0.027245,222 +0.027957,222 +0.027147,222 +0.026625,222 +0.027619,222 +0.026972,222 +0.026861,222 +0.030481,224 +0.031907,224 +0.030276,224 +0.030199,224 +0.030781,224 +0.030660,224 +0.029803,224 +0.029641,224 +0.030029,224 +0.030143,224 +0.030204,224 +0.029160,224 +0.028092,224 +0.027552,224 +0.028139,224 +0.027974,224 +0.027323,224 +0.027517,224 +0.028085,224 +0.030571,224 +0.030403,224 +0.029997,224 +0.028308,224 +0.027460,224 +0.028766,224 +0.029718,224 +0.028819,224 +0.029245,224 +0.031629,224 +0.032029,224 +0.030914,224 +0.030517,224 +0.030474,224 +0.030768,224 +0.031882,224 +0.031387,224 +0.030420,224 +0.031337,224 +0.030044,224 +0.034327,224 +0.030854,224 +0.030328,224 +0.033406,224 +0.031817,224 +0.030631,224 +0.032101,224 +0.033730,224 +0.029826,224 +0.031530,224 +0.031753,224 +0.033048,224 +0.032152,224 +0.030505,224 +0.029881,224 +0.031639,224 +0.029774,224 +0.028924,224 +0.028632,224 +0.027792,224 +0.029400,224 +0.030336,224 +0.030603,224 +0.028470,224 +0.028010,224 +0.027968,224 +0.027848,224 +0.034007,224 +0.034008,224 +0.032426,224 +0.031746,224 +0.038141,224 +0.032608,224 +0.031625,224 +0.034657,224 +0.038820,224 +0.033090,224 +0.033139,224 +0.031559,224 +0.032271,224 +0.030568,224 +0.032382,224 +0.030899,224 +0.030876,224 +0.031431,224 +0.032091,224 +0.030831,224 +0.033164,224 +0.031260,224 +0.032525,224 +0.030558,224 +0.031484,224 +0.032766,224 +0.040871,224 +0.034256,224 +0.029736,224 +0.030002,224 +0.030190,224 +0.031873,224 +0.035653,224 +0.030355,224 +0.038359,226 +0.032737,226 +0.032086,226 +0.031910,226 +0.033470,226 +0.035968,226 +0.035538,226 +0.031602,226 +0.031934,226 +0.033544,226 +0.031603,226 +0.032140,226 +0.030537,226 +0.029187,226 +0.033465,226 +0.032267,226 +0.028616,226 +0.029906,226 +0.030404,226 +0.031123,226 +0.030498,226 +0.029185,226 +0.029922,226 +0.029873,226 +0.029993,226 +0.029503,226 +0.029013,226 +0.029772,226 +0.029598,226 +0.029569,226 +0.029438,226 +0.029786,226 +0.029251,226 +0.029219,226 +0.029285,226 +0.028921,226 +0.029585,226 +0.029455,226 +0.030155,226 +0.037745,226 +0.048594,226 +0.035934,226 +0.029589,226 +0.030131,226 +0.031797,226 +0.032539,226 +0.037528,226 +0.030358,226 +0.030639,226 +0.033117,226 +0.030044,226 +0.032242,226 +0.055458,226 +0.031261,226 +0.030087,226 +0.030046,226 +0.030232,226 +0.029933,226 +0.033404,226 +0.031345,226 +0.029815,226 +0.034788,226 +0.030248,226 +0.031458,226 +0.030393,226 +0.029576,226 +0.034623,226 +0.031584,226 +0.030099,226 +0.032214,226 +0.038271,226 +0.053570,226 +0.032201,226 +0.037901,226 +0.032488,226 +0.040133,226 +0.047461,226 +0.054163,226 +0.034901,226 +0.029900,226 +0.029762,226 +0.033021,226 +0.033003,226 +0.038823,226 +0.037308,226 +0.032131,226 +0.034172,226 +0.033802,226 +0.030919,226 +0.031852,226 +0.033025,226 +0.031556,226 +0.032073,226 +0.033406,226 +0.033584,226 +0.032928,226 +0.038199,226 +0.033780,226 +0.038584,226 +0.055719,226 +0.058413,228 +0.035285,228 +0.035209,228 +0.037280,228 +0.033502,228 +0.032071,228 +0.035548,228 +0.034351,228 +0.036300,228 +0.033368,228 +0.032850,228 +0.034856,228 +0.031111,228 +0.031256,228 +0.032246,228 +0.032399,228 +0.030678,228 +0.032127,228 +0.034021,228 +0.033264,228 +0.035448,228 +0.033460,228 +0.032239,228 +0.034237,228 +0.033503,228 +0.035946,228 +0.038068,228 +0.037110,228 +0.032372,228 +0.034622,228 +0.043915,228 +0.038023,228 +0.032146,228 +0.033678,228 +0.035175,228 +0.039960,228 +0.038647,228 +0.032987,228 +0.034119,228 +0.031473,228 +0.034447,228 +0.037187,228 +0.034195,228 +0.053888,228 +0.057387,228 +0.041434,228 +0.035605,228 +0.037209,228 +0.038886,228 +0.038520,228 +0.037813,228 +0.038613,228 +0.037488,228 +0.035828,228 +0.055271,228 +0.044974,228 +0.036878,228 +0.033910,228 +0.040586,228 +0.034270,228 +0.035660,228 +0.037039,228 +0.035461,228 +0.033405,228 +0.034598,228 +0.033075,228 +0.031569,228 +0.029700,228 +0.028999,228 +0.028899,228 +0.030214,228 +0.029377,228 +0.029040,228 +0.028972,228 +0.030507,228 +0.030097,228 +0.029211,228 +0.031429,228 +0.031037,228 +0.030696,228 +0.032641,228 +0.030338,228 +0.030568,228 +0.035138,228 +0.033369,228 +0.033579,228 +0.032370,228 +0.033078,228 +0.033028,228 +0.036455,228 +0.031926,228 +0.037841,228 +0.043416,228 +0.034424,228 +0.035560,228 +0.035623,228 +0.033878,228 +0.034861,228 +0.040343,228 +0.031714,228 +0.031521,230 +0.032262,230 +0.031759,230 +0.031238,230 +0.040024,230 +0.030795,230 +0.030423,230 +0.037331,230 +0.034220,230 +0.038911,230 +0.033386,230 +0.030560,230 +0.032715,230 +0.032480,230 +0.032481,230 +0.032610,230 +0.031889,230 +0.029772,230 +0.031411,230 +0.036283,230 +0.035074,230 +0.031736,230 +0.032945,230 +0.033298,230 +0.035190,230 +0.035525,230 +0.033094,230 +0.030818,230 +0.030266,230 +0.030043,230 +0.033915,230 +0.033520,230 +0.043449,230 +0.031992,230 +0.032614,230 +0.030324,230 +0.029697,230 +0.031615,230 +0.029970,230 +0.029960,230 +0.030578,230 +0.030815,230 +0.029851,230 +0.029909,230 +0.031756,230 +0.030288,230 +0.029887,230 +0.031984,230 +0.030395,230 +0.030012,230 +0.031443,230 +0.030140,230 +0.029813,230 +0.029760,230 +0.030528,230 +0.031063,230 +0.030089,230 +0.030302,230 +0.031332,230 +0.030670,230 +0.030580,230 +0.030771,230 +0.029953,230 +0.029818,230 +0.030290,230 +0.029702,230 +0.029878,230 +0.030488,230 +0.029758,230 +0.029761,230 +0.030089,230 +0.029880,230 +0.029779,230 +0.029914,230 +0.030102,230 +0.030568,230 +0.029937,230 +0.040401,230 +0.031918,230 +0.033614,230 +0.033388,230 +0.031643,230 +0.033828,230 +0.033263,230 +0.032154,230 +0.037540,230 +0.031902,230 +0.031859,230 +0.031949,230 +0.032026,230 +0.033004,230 +0.033935,230 +0.032172,230 +0.030865,230 +0.034507,230 +0.031688,230 +0.030815,230 +0.031229,230 +0.032014,230 +0.031126,230 +0.032550,232 +0.031897,232 +0.031908,232 +0.035073,232 +0.038418,232 +0.041864,232 +0.035232,232 +0.033638,232 +0.037859,232 +0.036304,232 +0.041679,232 +0.037868,232 +0.035952,232 +0.034724,232 +0.035198,232 +0.037757,232 +0.048921,232 +0.045694,232 +0.034858,232 +0.034677,232 +0.037713,232 +0.035391,232 +0.034319,232 +0.035481,232 +0.031987,232 +0.032051,232 +0.036022,232 +0.032238,232 +0.032866,232 +0.036448,232 +0.037238,232 +0.036668,232 +0.034088,232 +0.036922,232 +0.035981,232 +0.035254,232 +0.040008,232 +0.036387,232 +0.036067,232 +0.035025,232 +0.040029,232 +0.035266,232 +0.035036,232 +0.033987,232 +0.033387,232 +0.033578,232 +0.035668,232 +0.033234,232 +0.032961,232 +0.044879,232 +0.034288,232 +0.036545,232 +0.037218,232 +0.060757,232 +0.052725,232 +0.059088,232 +0.046550,232 +0.035530,232 +0.037320,232 +0.035810,232 +0.037426,232 +0.038875,232 +0.039483,232 +0.036936,232 +0.039523,232 +0.035185,232 +0.036760,232 +0.039975,232 +0.033352,232 +0.034196,232 +0.038098,232 +0.035772,232 +0.034154,232 +0.046065,232 +0.036488,232 +0.036674,232 +0.032738,232 +0.040295,232 +0.034094,232 +0.032441,232 +0.034736,232 +0.039548,232 +0.043287,232 +0.035976,232 +0.034000,232 +0.039252,232 +0.036005,232 +0.035834,232 +0.038083,232 +0.042782,232 +0.034514,232 +0.036371,232 +0.037417,232 +0.036355,232 +0.035273,232 +0.034276,232 +0.034102,232 +0.034029,232 +0.032980,232 +0.033573,232 +0.038926,234 +0.040618,234 +0.040820,234 +0.037968,234 +0.038272,234 +0.042271,234 +0.049123,234 +0.034518,234 +0.038881,234 +0.036649,234 +0.034415,234 +0.036345,234 +0.042409,234 +0.046327,234 +0.040199,234 +0.035942,234 +0.033875,234 +0.034114,234 +0.032950,234 +0.034286,234 +0.033797,234 +0.033200,234 +0.034005,234 +0.034584,234 +0.033112,234 +0.035728,234 +0.034922,234 +0.034962,234 +0.033979,234 +0.037586,234 +0.032872,234 +0.032678,234 +0.032931,234 +0.031773,234 +0.031569,234 +0.032165,234 +0.031644,234 +0.031421,234 +0.031764,234 +0.032788,234 +0.031787,234 +0.032033,234 +0.032698,234 +0.034101,234 +0.032329,234 +0.031548,234 +0.031429,234 +0.031976,234 +0.031711,234 +0.031761,234 +0.031984,234 +0.032145,234 +0.032423,234 +0.031948,234 +0.032846,234 +0.032110,234 +0.031985,234 +0.032124,234 +0.032101,234 +0.032569,234 +0.031868,234 +0.031619,234 +0.031396,234 +0.031854,234 +0.031510,234 +0.031874,234 +0.032488,234 +0.031960,234 +0.032351,234 +0.032967,234 +0.031426,234 +0.031421,234 +0.032175,234 +0.032020,234 +0.031694,234 +0.031361,234 +0.032057,234 +0.031503,234 +0.031530,234 +0.031835,234 +0.031568,234 +0.032580,234 +0.033096,234 +0.031693,234 +0.031557,234 +0.031821,234 +0.031663,234 +0.031552,234 +0.031997,234 +0.031551,234 +0.032328,234 +0.038241,234 +0.033073,234 +0.034025,234 +0.041936,234 +0.034898,234 +0.034670,234 +0.033454,234 +0.032831,234 +0.032554,234 +0.034014,236 +0.042267,236 +0.033598,236 +0.037150,236 +0.037716,236 +0.042123,236 +0.035850,236 +0.033674,236 +0.034933,236 +0.046021,236 +0.036961,236 +0.034046,236 +0.034640,236 +0.038851,236 +0.038601,236 +0.037612,236 +0.038283,236 +0.050662,236 +0.042437,236 +0.035757,236 +0.042565,236 +0.042066,236 +0.036041,236 +0.045430,236 +0.046189,236 +0.035335,236 +0.035933,236 +0.037539,236 +0.035753,236 +0.038120,236 +0.038759,236 +0.035861,236 +0.037570,236 +0.037263,236 +0.037237,236 +0.034930,236 +0.036549,236 +0.038395,236 +0.035150,236 +0.034880,236 +0.056546,236 +0.065572,236 +0.064669,236 +0.043473,236 +0.038197,236 +0.036195,236 +0.037004,236 +0.037704,236 +0.039867,236 +0.034735,236 +0.035096,236 +0.036566,236 +0.036038,236 +0.035488,236 +0.036002,236 +0.034937,236 +0.037259,236 +0.037143,236 +0.038535,236 +0.037414,236 +0.037420,236 +0.035069,236 +0.044932,236 +0.042434,236 +0.038816,236 +0.037132,236 +0.039159,236 +0.043116,236 +0.053508,236 +0.036529,236 +0.042496,236 +0.041511,236 +0.042414,236 +0.036079,236 +0.035603,236 +0.038234,236 +0.036367,236 +0.035904,236 +0.043415,236 +0.038683,236 +0.049272,236 +0.037985,236 +0.040943,236 +0.036566,236 +0.036520,236 +0.036361,236 +0.040316,236 +0.038872,236 +0.046996,236 +0.038305,236 +0.037079,236 +0.037051,236 +0.036403,236 +0.052353,236 +0.065731,236 +0.038483,236 +0.039731,236 +0.040667,236 +0.039422,236 +0.036323,236 +0.039984,238 +0.039154,238 +0.038000,238 +0.040795,238 +0.040740,238 +0.037750,238 +0.039052,238 +0.037504,238 +0.039023,238 +0.039670,238 +0.039332,238 +0.038281,238 +0.037550,238 +0.039648,238 +0.042368,238 +0.040971,238 +0.046427,238 +0.041052,238 +0.038373,238 +0.040200,238 +0.043690,238 +0.037832,238 +0.038493,238 +0.038403,238 +0.037142,238 +0.034706,238 +0.033901,238 +0.040440,238 +0.035300,238 +0.041074,238 +0.037595,238 +0.035440,238 +0.037362,238 +0.035476,238 +0.035796,238 +0.037895,238 +0.038695,238 +0.037677,238 +0.041286,238 +0.037201,238 +0.033769,238 +0.036268,238 +0.035800,238 +0.036867,238 +0.035524,238 +0.036707,238 +0.033865,238 +0.034250,238 +0.033525,238 +0.034638,238 +0.034202,238 +0.034417,238 +0.036239,238 +0.035166,238 +0.033821,238 +0.033657,238 +0.033593,238 +0.034345,238 +0.033903,238 +0.033662,238 +0.034174,238 +0.034770,238 +0.033359,238 +0.033261,238 +0.033956,238 +0.033516,238 +0.034037,238 +0.033512,238 +0.035305,238 +0.043315,238 +0.036623,238 +0.036925,238 +0.035807,238 +0.035129,238 +0.035297,238 +0.035685,238 +0.034809,238 +0.062845,238 +0.063883,238 +0.037364,238 +0.034707,238 +0.036881,238 +0.036212,238 +0.034828,238 +0.039247,238 +0.037213,238 +0.035516,238 +0.039169,238 +0.034531,238 +0.034429,238 +0.058864,238 +0.034223,238 +0.036844,238 +0.034868,238 +0.039806,238 +0.039903,238 +0.036842,238 +0.045442,238 +0.061311,238 +0.068015,238 +0.061888,240 +0.037788,240 +0.038708,240 +0.040065,240 +0.037985,240 +0.038610,240 +0.038260,240 +0.035348,240 +0.043080,240 +0.065015,240 +0.065295,240 +0.047075,240 +0.039273,240 +0.039100,240 +0.041221,240 +0.036884,240 +0.037328,240 +0.038838,240 +0.035996,240 +0.035691,240 +0.038985,240 +0.040828,240 +0.063071,240 +0.040215,240 +0.040135,240 +0.044682,240 +0.058434,240 +0.035911,240 +0.035433,240 +0.036398,240 +0.038814,240 +0.039300,240 +0.040816,240 +0.039196,240 +0.039069,240 +0.036121,240 +0.037252,240 +0.040057,240 +0.037747,240 +0.049648,240 +0.044225,240 +0.037219,240 +0.043359,240 +0.039678,240 +0.044457,240 +0.043541,240 +0.037499,240 +0.036685,240 +0.035518,240 +0.036836,240 +0.036822,240 +0.038609,240 +0.042677,240 +0.042368,240 +0.041357,240 +0.036577,240 +0.037395,240 +0.044514,240 +0.041369,240 +0.040472,240 +0.043148,240 +0.035156,240 +0.036309,240 +0.037413,240 +0.041998,240 +0.039106,240 +0.037416,240 +0.049919,240 +0.058601,240 +0.063010,240 +0.039447,240 +0.041990,240 +0.036290,240 +0.035762,240 +0.036162,240 +0.036034,240 +0.038136,240 +0.035628,240 +0.037692,240 +0.037752,240 +0.041216,240 +0.043586,240 +0.036112,240 +0.038512,240 +0.037177,240 +0.035050,240 +0.034959,240 +0.035005,240 +0.034586,240 +0.040625,240 +0.036259,240 +0.035390,240 +0.047543,240 +0.046283,240 +0.035670,240 +0.037121,240 +0.036174,240 +0.036019,240 +0.035681,240 +0.035161,240 +0.037298,242 +0.036379,242 +0.037063,242 +0.039403,242 +0.035977,242 +0.035764,242 +0.038621,242 +0.040435,242 +0.040444,242 +0.046900,242 +0.044130,242 +0.043335,242 +0.041598,242 +0.043373,242 +0.051978,242 +0.047757,242 +0.043976,242 +0.044748,242 +0.044415,242 +0.045642,242 +0.043595,242 +0.040760,242 +0.037238,242 +0.037202,242 +0.039095,242 +0.037753,242 +0.044098,242 +0.043148,242 +0.037186,242 +0.037201,242 +0.037794,242 +0.037017,242 +0.046732,242 +0.042538,242 +0.040082,242 +0.037564,242 +0.036788,242 +0.039120,242 +0.037258,242 +0.039025,242 +0.038419,242 +0.037153,242 +0.039335,242 +0.036763,242 +0.037089,242 +0.038095,242 +0.036415,242 +0.035928,242 +0.037595,242 +0.035858,242 +0.035469,242 +0.035986,242 +0.035906,242 +0.036469,242 +0.036442,242 +0.036042,242 +0.036749,242 +0.036919,242 +0.036366,242 +0.042866,242 +0.036113,242 +0.037040,242 +0.039419,242 +0.037763,242 +0.036457,242 +0.035895,242 +0.036282,242 +0.037048,242 +0.035670,242 +0.036967,242 +0.036571,242 +0.035999,242 +0.038157,242 +0.036348,242 +0.036195,242 +0.037875,242 +0.038158,242 +0.037128,242 +0.037198,242 +0.036315,242 +0.039334,242 +0.040416,242 +0.040462,242 +0.040766,242 +0.036621,242 +0.041799,242 +0.041783,242 +0.041681,242 +0.039947,242 +0.045828,242 +0.051787,242 +0.055497,242 +0.062481,242 +0.054816,242 +0.051234,242 +0.053183,242 +0.049677,242 +0.043943,242 +0.049858,242 +0.048604,242 +0.042604,244 +0.037067,244 +0.037008,244 +0.038071,244 +0.037895,244 +0.037857,244 +0.039293,244 +0.038633,244 +0.038398,244 +0.037568,244 +0.043805,244 +0.037950,244 +0.037571,244 +0.038194,244 +0.040907,244 +0.049489,244 +0.045770,244 +0.041992,244 +0.049068,244 +0.042707,244 +0.038987,244 +0.040554,244 +0.045714,244 +0.046163,244 +0.045404,244 +0.039588,244 +0.038019,244 +0.039299,244 +0.044092,244 +0.039754,244 +0.037165,244 +0.037098,244 +0.039174,244 +0.043341,244 +0.038992,244 +0.037748,244 +0.047128,244 +0.046255,244 +0.042033,244 +0.043816,244 +0.040439,244 +0.046624,244 +0.047540,244 +0.054191,244 +0.051626,244 +0.045808,244 +0.042352,244 +0.045372,244 +0.038918,244 +0.038240,244 +0.038005,244 +0.037630,244 +0.042605,244 +0.039113,244 +0.038081,244 +0.040873,244 +0.039740,244 +0.039959,244 +0.043360,244 +0.041199,244 +0.039120,244 +0.037091,244 +0.042271,244 +0.042701,244 +0.045315,244 +0.049741,244 +0.039499,244 +0.039563,244 +0.057227,244 +0.044174,244 +0.044178,244 +0.040710,244 +0.040150,244 +0.041164,244 +0.039595,244 +0.038822,244 +0.037958,244 +0.045212,244 +0.041920,244 +0.041130,244 +0.042547,244 +0.046054,244 +0.041133,244 +0.037234,244 +0.038638,244 +0.042100,244 +0.040171,244 +0.041663,244 +0.040491,244 +0.043518,244 +0.044038,244 +0.038680,244 +0.042164,244 +0.061726,244 +0.074289,244 +0.042699,244 +0.042803,244 +0.049122,244 +0.070119,244 +0.049622,244 +0.038539,246 +0.038196,246 +0.039307,246 +0.037428,246 +0.038324,246 +0.052023,246 +0.039487,246 +0.037586,246 +0.039020,246 +0.039549,246 +0.037492,246 +0.040484,246 +0.039250,246 +0.046656,246 +0.038669,246 +0.039248,246 +0.040040,246 +0.037132,246 +0.038674,246 +0.038312,246 +0.037191,246 +0.039565,246 +0.060067,246 +0.053942,246 +0.044020,246 +0.055706,246 +0.040239,246 +0.041632,246 +0.046325,246 +0.046631,246 +0.050694,246 +0.042951,246 +0.042646,246 +0.042530,246 +0.048909,246 +0.040221,246 +0.044465,246 +0.048841,246 +0.049324,246 +0.043825,246 +0.042679,246 +0.042340,246 +0.042111,246 +0.045769,246 +0.054803,246 +0.048428,246 +0.043964,246 +0.052360,246 +0.041956,246 +0.042329,246 +0.043834,246 +0.047139,246 +0.060399,246 +0.052413,246 +0.042464,246 +0.042927,246 +0.049934,246 +0.041210,246 +0.043826,246 +0.045054,246 +0.048279,246 +0.041517,246 +0.039144,246 +0.053363,246 +0.039289,246 +0.040568,246 +0.039130,246 +0.041380,246 +0.039996,246 +0.038805,246 +0.039796,246 +0.037353,246 +0.048057,246 +0.042571,246 +0.041057,246 +0.042104,246 +0.043330,246 +0.049639,246 +0.041997,246 +0.040691,246 +0.042721,246 +0.048252,246 +0.039384,246 +0.038983,246 +0.040735,246 +0.039003,246 +0.038468,246 +0.043975,246 +0.039244,246 +0.039227,246 +0.038976,246 +0.038386,246 +0.042636,246 +0.038402,246 +0.038908,246 +0.038447,246 +0.038969,246 +0.043644,246 +0.038643,246 +0.039654,246 +0.040417,248 +0.039043,248 +0.044185,248 +0.040981,248 +0.041167,248 +0.039010,248 +0.046503,248 +0.039729,248 +0.038554,248 +0.044928,248 +0.038168,248 +0.041322,248 +0.041021,248 +0.037554,248 +0.045301,248 +0.039310,248 +0.044383,248 +0.038072,248 +0.037636,248 +0.045089,248 +0.037994,248 +0.045009,248 +0.037771,248 +0.037889,248 +0.044825,248 +0.038956,248 +0.046335,248 +0.038490,248 +0.039092,248 +0.044719,248 +0.038244,248 +0.038259,248 +0.040093,248 +0.059074,248 +0.069364,248 +0.072384,248 +0.070536,248 +0.070802,248 +0.043605,248 +0.043621,248 +0.048433,248 +0.050848,248 +0.045514,248 +0.043148,248 +0.051421,248 +0.042470,248 +0.041860,248 +0.044064,248 +0.042480,248 +0.039761,248 +0.042519,248 +0.046595,248 +0.043080,248 +0.041553,248 +0.040925,248 +0.039039,248 +0.041334,248 +0.041843,248 +0.043456,248 +0.052848,248 +0.054206,248 +0.043880,248 +0.039692,248 +0.049379,248 +0.044408,248 +0.044133,248 +0.042658,248 +0.040781,248 +0.039622,248 +0.040741,248 +0.040740,248 +0.040613,248 +0.042183,248 +0.047676,248 +0.045665,248 +0.040499,248 +0.039285,248 +0.040557,248 +0.040458,248 +0.039474,248 +0.041121,248 +0.041969,248 +0.048307,248 +0.043854,248 +0.046862,248 +0.039862,248 +0.044932,248 +0.040158,248 +0.044907,248 +0.039039,248 +0.038666,248 +0.040718,248 +0.039401,248 +0.041912,248 +0.039699,248 +0.038408,248 +0.039801,248 +0.037801,248 +0.038018,248 +0.041077,248 +0.041118,250 +0.041625,250 +0.042281,250 +0.041250,250 +0.047224,250 +0.052398,250 +0.042484,250 +0.041450,250 +0.044243,250 +0.043093,250 +0.043305,250 +0.044385,250 +0.040806,250 +0.042173,250 +0.043244,250 +0.043859,250 +0.041508,250 +0.040480,250 +0.041561,250 +0.052677,250 +0.049975,250 +0.043095,250 +0.042289,250 +0.040271,250 +0.042032,250 +0.041356,250 +0.040589,250 +0.042898,250 +0.040365,250 +0.042170,250 +0.041341,250 +0.047620,250 +0.040095,250 +0.042915,250 +0.042191,250 +0.040765,250 +0.041442,250 +0.040396,250 +0.038723,250 +0.039274,250 +0.038511,250 +0.039335,250 +0.039447,250 +0.038701,250 +0.041427,250 +0.039387,250 +0.041807,250 +0.039079,250 +0.038644,250 +0.039729,250 +0.038817,250 +0.039518,250 +0.039032,250 +0.038899,250 +0.041545,250 +0.040623,250 +0.038601,250 +0.039554,250 +0.038782,250 +0.038914,250 +0.038213,250 +0.038458,250 +0.038830,250 +0.038276,250 +0.038921,250 +0.038286,250 +0.038049,250 +0.039573,250 +0.038401,250 +0.038713,250 +0.038589,250 +0.038117,250 +0.038831,250 +0.038402,250 +0.038166,250 +0.038875,250 +0.038836,250 +0.039089,250 +0.038327,250 +0.038419,250 +0.039411,250 +0.042661,250 +0.041217,250 +0.039954,250 +0.040938,250 +0.040428,250 +0.040414,250 +0.046576,250 +0.040224,250 +0.041112,250 +0.045884,250 +0.039604,250 +0.040516,250 +0.039564,250 +0.040219,250 +0.040064,250 +0.039664,250 +0.047404,250 +0.040092,250 +0.047241,250 +0.041014,252 +0.041330,252 +0.044109,252 +0.041699,252 +0.041691,252 +0.043507,252 +0.049178,252 +0.039971,252 +0.039065,252 +0.047117,252 +0.039674,252 +0.048511,252 +0.040083,252 +0.040037,252 +0.039856,252 +0.040304,252 +0.043659,252 +0.040051,252 +0.039996,252 +0.039877,252 +0.041357,252 +0.041120,252 +0.040048,252 +0.040099,252 +0.039636,252 +0.039485,252 +0.040500,252 +0.039753,252 +0.040429,252 +0.039844,252 +0.039803,252 +0.040322,252 +0.041272,252 +0.040620,252 +0.039722,252 +0.039304,252 +0.040193,252 +0.039097,252 +0.039661,252 +0.039098,252 +0.038839,252 +0.040025,252 +0.039618,252 +0.040018,252 +0.039926,252 +0.039517,252 +0.040126,252 +0.040258,252 +0.040113,252 +0.040086,252 +0.039453,252 +0.041034,252 +0.039821,252 +0.040005,252 +0.039831,252 +0.039674,252 +0.040629,252 +0.041473,252 +0.039830,252 +0.040176,252 +0.039588,252 +0.040798,252 +0.039369,252 +0.039816,252 +0.040228,252 +0.039705,252 +0.040574,252 +0.039849,252 +0.043661,252 +0.039510,252 +0.039278,252 +0.040141,252 +0.039366,252 +0.039836,252 +0.039810,252 +0.039245,252 +0.040290,252 +0.039499,252 +0.039695,252 +0.040437,252 +0.040627,252 +0.040927,252 +0.041921,252 +0.040642,252 +0.039550,252 +0.039489,252 +0.040235,252 +0.039898,252 +0.039762,252 +0.040119,252 +0.040233,252 +0.040398,252 +0.039181,252 +0.043033,252 +0.044545,252 +0.044985,252 +0.047034,252 +0.044280,252 +0.054477,252 +0.050319,252 +0.057066,254 +0.045915,254 +0.053807,254 +0.045821,254 +0.046224,254 +0.053504,254 +0.046008,254 +0.042736,254 +0.042936,254 +0.042031,254 +0.049899,254 +0.045839,254 +0.043794,254 +0.045294,254 +0.042477,254 +0.042991,254 +0.042728,254 +0.050819,254 +0.042482,254 +0.048271,254 +0.040985,254 +0.040710,254 +0.047932,254 +0.040411,254 +0.048790,254 +0.040995,254 +0.048399,254 +0.041008,254 +0.046948,254 +0.043205,254 +0.041398,254 +0.049819,254 +0.064929,254 +0.056505,254 +0.043840,254 +0.045254,254 +0.046367,254 +0.048988,254 +0.048867,254 +0.047641,254 +0.046717,254 +0.041652,254 +0.040698,254 +0.041314,254 +0.041291,254 +0.041492,254 +0.041668,254 +0.041032,254 +0.043226,254 +0.040972,254 +0.041882,254 +0.042040,254 +0.041288,254 +0.043481,254 +0.041075,254 +0.042863,254 +0.042624,254 +0.041805,254 +0.045990,254 +0.042427,254 +0.047742,254 +0.042355,254 +0.045689,254 +0.046819,254 +0.047558,254 +0.045499,254 +0.044920,254 +0.042057,254 +0.041470,254 +0.042317,254 +0.041304,254 +0.042961,254 +0.041028,254 +0.042244,254 +0.041813,254 +0.043338,254 +0.043398,254 +0.041723,254 +0.042069,254 +0.042506,254 +0.040893,254 +0.041919,254 +0.041103,254 +0.041800,254 +0.041996,254 +0.041740,254 +0.042997,254 +0.040920,254 +0.041795,254 +0.041676,254 +0.041098,254 +0.041497,254 +0.041171,254 +0.042121,254 +0.041001,254 +0.041654,254 +0.045172,254 +0.040708,254 +0.041422,254 +0.040343,254 +0.046370,256 +0.045655,256 +0.048878,256 +0.045398,256 +0.045694,256 +0.046966,256 +0.045426,256 +0.045866,256 +0.045093,256 +0.046127,256 +0.045129,256 +0.046048,256 +0.045077,256 +0.048681,256 +0.045522,256 +0.052923,256 +0.048435,256 +0.046260,256 +0.045517,256 +0.046115,256 +0.046228,256 +0.045122,256 +0.046320,256 +0.046687,256 +0.046604,256 +0.045214,256 +0.046405,256 +0.045484,256 +0.046130,256 +0.045156,256 +0.046180,256 +0.045839,256 +0.045490,256 +0.046040,256 +0.045252,256 +0.046244,256 +0.045412,256 +0.046311,256 +0.045113,256 +0.049488,256 +0.045643,256 +0.046900,256 +0.046661,256 +0.045409,256 +0.046062,256 +0.045338,256 +0.045944,256 +0.045376,256 +0.046158,256 +0.045406,256 +0.046151,256 +0.045319,256 +0.045680,256 +0.045820,256 +0.045328,256 +0.045860,256 +0.045192,256 +0.046020,256 +0.045257,256 +0.046302,256 +0.045438,256 +0.058704,256 +0.047125,256 +0.050324,256 +0.045177,256 +0.046064,256 +0.045252,256 +0.045498,256 +0.045675,256 +0.045127,256 +0.046056,256 +0.045348,256 +0.046808,256 +0.045555,256 +0.045877,256 +0.045550,256 +0.046480,256 +0.045690,256 +0.045546,256 +0.045840,256 +0.045534,256 +0.052565,256 +0.045433,256 +0.046270,256 +0.045094,256 +0.045598,256 +0.045110,256 +0.045658,256 +0.045319,256 +0.045527,256 +0.045396,256 +0.045103,256 +0.045891,256 +0.045382,256 +0.046379,256 +0.045006,256 +0.045845,256 +0.045230,256 +0.045804,256 +0.045221,256 +0.043128,258 +0.043097,258 +0.042982,258 +0.043606,258 +0.042851,258 +0.044028,258 +0.042502,258 +0.043378,258 +0.043095,258 +0.042678,258 +0.043282,258 +0.042649,258 +0.043546,258 +0.042667,258 +0.042888,258 +0.043258,258 +0.042892,258 +0.043451,258 +0.042961,258 +0.043597,258 +0.042769,258 +0.043045,258 +0.043404,258 +0.042599,258 +0.044687,258 +0.042961,258 +0.046317,258 +0.042790,258 +0.043971,258 +0.043444,258 +0.042786,258 +0.044754,258 +0.042692,258 +0.044956,258 +0.042697,258 +0.045201,258 +0.043495,258 +0.043298,258 +0.047522,258 +0.047937,258 +0.047038,258 +0.042625,258 +0.045165,258 +0.042676,258 +0.045141,258 +0.043566,258 +0.046159,258 +0.049445,258 +0.051943,258 +0.048570,258 +0.050922,258 +0.077064,258 +0.054108,258 +0.075734,258 +0.049988,258 +0.055326,258 +0.054183,258 +0.052520,258 +0.050749,258 +0.049838,258 +0.050774,258 +0.048713,258 +0.046663,258 +0.051461,258 +0.050249,258 +0.050005,258 +0.056744,258 +0.050853,258 +0.048940,258 +0.049486,258 +0.049413,258 +0.048170,258 +0.043561,258 +0.043528,258 +0.046977,258 +0.047641,258 +0.045539,258 +0.046903,258 +0.049043,258 +0.051012,258 +0.050541,258 +0.051858,258 +0.050450,258 +0.043314,258 +0.045638,258 +0.051711,258 +0.048072,258 +0.049489,258 +0.049104,258 +0.046936,258 +0.045119,258 +0.044753,258 +0.044203,258 +0.044305,258 +0.046464,258 +0.047061,258 +0.045169,258 +0.045110,258 +0.047880,258 +0.046840,258 +0.050664,260 +0.047291,260 +0.050600,260 +0.045224,260 +0.044480,260 +0.046777,260 +0.047652,260 +0.048565,260 +0.048601,260 +0.047835,260 +0.054151,260 +0.043818,260 +0.051183,260 +0.044731,260 +0.052353,260 +0.044937,260 +0.045090,260 +0.044738,260 +0.044539,260 +0.044189,260 +0.044068,260 +0.044165,260 +0.044131,260 +0.044706,260 +0.043923,260 +0.044485,260 +0.044039,260 +0.044352,260 +0.043917,260 +0.044257,260 +0.044521,260 +0.044229,260 +0.044743,260 +0.044407,260 +0.045388,260 +0.046720,260 +0.046403,260 +0.044388,260 +0.047111,260 +0.048361,260 +0.049818,260 +0.050172,260 +0.049104,260 +0.051559,260 +0.049807,260 +0.053649,260 +0.051756,260 +0.051425,260 +0.049529,260 +0.050346,260 +0.049346,260 +0.048547,260 +0.048216,260 +0.049552,260 +0.049367,260 +0.046374,260 +0.048519,260 +0.047924,260 +0.052343,260 +0.054300,260 +0.046514,260 +0.047875,260 +0.047481,260 +0.048849,260 +0.046673,260 +0.046245,260 +0.044684,260 +0.048325,260 +0.048049,260 +0.050329,260 +0.047061,260 +0.048243,260 +0.050512,260 +0.052190,260 +0.048308,260 +0.049647,260 +0.047268,260 +0.048502,260 +0.044475,260 +0.045791,260 +0.044151,260 +0.045445,260 +0.049574,260 +0.048230,260 +0.049027,260 +0.054493,260 +0.053909,260 +0.050246,260 +0.050147,260 +0.047211,260 +0.047581,260 +0.044123,260 +0.049601,260 +0.049980,260 +0.058061,260 +0.060819,260 +0.065946,260 +0.056675,260 +0.071167,260 +0.054238,260 +0.068391,262 +0.054044,262 +0.063854,262 +0.055572,262 +0.055039,262 +0.053090,262 +0.059861,262 +0.075603,262 +0.060356,262 +0.053670,262 +0.053980,262 +0.057140,262 +0.060211,262 +0.057499,262 +0.052951,262 +0.051282,262 +0.051657,262 +0.048438,262 +0.050060,262 +0.050079,262 +0.056088,262 +0.050441,262 +0.054786,262 +0.054944,262 +0.061158,262 +0.063592,262 +0.049756,262 +0.049989,262 +0.047498,262 +0.048026,262 +0.048181,262 +0.051458,262 +0.053053,262 +0.052789,262 +0.054084,262 +0.058270,262 +0.048062,262 +0.056312,262 +0.048521,262 +0.061651,262 +0.056249,262 +0.055687,262 +0.052286,262 +0.055558,262 +0.053551,262 +0.052897,262 +0.055583,262 +0.052118,262 +0.055595,262 +0.052332,262 +0.052024,262 +0.050782,262 +0.050073,262 +0.047154,262 +0.050550,262 +0.046832,262 +0.051025,262 +0.051053,262 +0.054520,262 +0.051870,262 +0.050002,262 +0.046938,262 +0.049972,262 +0.046934,262 +0.049755,262 +0.049122,262 +0.054521,262 +0.053756,262 +0.052077,262 +0.049274,262 +0.049231,262 +0.047972,262 +0.048660,262 +0.049238,262 +0.053002,262 +0.050456,262 +0.051622,262 +0.050363,262 +0.050675,262 +0.057281,262 +0.056032,262 +0.057048,262 +0.051817,262 +0.049484,262 +0.048476,262 +0.048065,262 +0.057571,262 +0.053732,262 +0.050675,262 +0.048509,262 +0.049214,262 +0.047276,262 +0.053407,262 +0.056771,262 +0.063283,262 +0.055163,262 +0.054900,262 +0.054134,262 +0.054612,262 +0.053658,262 +0.056285,264 +0.052211,264 +0.050864,264 +0.049217,264 +0.050019,264 +0.050148,264 +0.050645,264 +0.050201,264 +0.049772,264 +0.049309,264 +0.047067,264 +0.049003,264 +0.047070,264 +0.047391,264 +0.046381,264 +0.047166,264 +0.048396,264 +0.047551,264 +0.046881,264 +0.047159,264 +0.047023,264 +0.047268,264 +0.046398,264 +0.046534,264 +0.046563,264 +0.046307,264 +0.047036,264 +0.046239,264 +0.046973,264 +0.046144,264 +0.047086,264 +0.046353,264 +0.047711,264 +0.046246,264 +0.047048,264 +0.046189,264 +0.048609,264 +0.046199,264 +0.046267,264 +0.047407,264 +0.046089,264 +0.047786,264 +0.046747,264 +0.046999,264 +0.046237,264 +0.046987,264 +0.046402,264 +0.048332,264 +0.047240,264 +0.047567,264 +0.047951,264 +0.048270,264 +0.046454,264 +0.048006,264 +0.046843,264 +0.046841,264 +0.047899,264 +0.046480,264 +0.048260,264 +0.046080,264 +0.048094,264 +0.046167,264 +0.048128,264 +0.051792,264 +0.050430,264 +0.049137,264 +0.048897,264 +0.048034,264 +0.047286,264 +0.046188,264 +0.046870,264 +0.046286,264 +0.046630,264 +0.046781,264 +0.046262,264 +0.049960,264 +0.051342,264 +0.049265,264 +0.046303,264 +0.047130,264 +0.046226,264 +0.047704,264 +0.046374,264 +0.046911,264 +0.046082,264 +0.047771,264 +0.046475,264 +0.049328,264 +0.046435,264 +0.046622,264 +0.046266,264 +0.046550,264 +0.048710,264 +0.049719,264 +0.048527,264 +0.048581,264 +0.050060,264 +0.049059,264 +0.047369,264 +0.046636,264 +0.051725,266 +0.051314,266 +0.053410,266 +0.055430,266 +0.054625,266 +0.053391,266 +0.051943,266 +0.051466,266 +0.050024,266 +0.050617,266 +0.049899,266 +0.050297,266 +0.050409,266 +0.050722,266 +0.050274,266 +0.050730,266 +0.054686,266 +0.053915,266 +0.051247,266 +0.051398,266 +0.050113,266 +0.050549,266 +0.054031,266 +0.051283,266 +0.049816,266 +0.050561,266 +0.050195,266 +0.050661,266 +0.049893,266 +0.050586,266 +0.050073,266 +0.050903,266 +0.050330,266 +0.050627,266 +0.049771,266 +0.050922,266 +0.051920,266 +0.053144,266 +0.053605,266 +0.053413,266 +0.052102,266 +0.052975,266 +0.052856,266 +0.054334,266 +0.053598,266 +0.052921,266 +0.052794,266 +0.052685,266 +0.052804,266 +0.051450,266 +0.051631,266 +0.050223,266 +0.050900,266 +0.058479,266 +0.056501,266 +0.055018,266 +0.054116,266 +0.052089,266 +0.052082,266 +0.050745,266 +0.051203,266 +0.050035,266 +0.050797,266 +0.050062,266 +0.051296,266 +0.052480,266 +0.050936,266 +0.057681,266 +0.058276,266 +0.055856,266 +0.053685,266 +0.053777,266 +0.053911,266 +0.052941,266 +0.051741,266 +0.050494,266 +0.055502,266 +0.059932,266 +0.054018,266 +0.052270,266 +0.050435,266 +0.077285,266 +0.054011,266 +0.050785,266 +0.054649,266 +0.052420,266 +0.052819,266 +0.054659,266 +0.054409,266 +0.054260,266 +0.053533,266 +0.053754,266 +0.052733,266 +0.052416,266 +0.051040,266 +0.052033,266 +0.052009,266 +0.052529,266 +0.052487,266 +0.052117,266 +0.052258,268 +0.053511,268 +0.064842,268 +0.059756,268 +0.059964,268 +0.056388,268 +0.060106,268 +0.053551,268 +0.053074,268 +0.052905,268 +0.059101,268 +0.052455,268 +0.053274,268 +0.054025,268 +0.062822,268 +0.056024,268 +0.055818,268 +0.053038,268 +0.052923,268 +0.052858,268 +0.052785,268 +0.052192,268 +0.050187,268 +0.050496,268 +0.052006,268 +0.052511,268 +0.050390,268 +0.050760,268 +0.050301,268 +0.050783,268 +0.050071,268 +0.050577,268 +0.050098,268 +0.050878,268 +0.050046,268 +0.050771,268 +0.050167,268 +0.051274,268 +0.051997,268 +0.051412,268 +0.050190,268 +0.050241,268 +0.051350,268 +0.052092,268 +0.050312,268 +0.050354,268 +0.050081,268 +0.050403,268 +0.050523,268 +0.052009,268 +0.050330,268 +0.050170,268 +0.050514,268 +0.050418,268 +0.050490,268 +0.050214,268 +0.050398,268 +0.050309,268 +0.050384,268 +0.050148,268 +0.050418,268 +0.050590,268 +0.054156,268 +0.053955,268 +0.054889,268 +0.061761,268 +0.066656,268 +0.053520,268 +0.051113,268 +0.050269,268 +0.050530,268 +0.051181,268 +0.050927,268 +0.050556,268 +0.050343,268 +0.050250,268 +0.050333,268 +0.050440,268 +0.050843,268 +0.050310,268 +0.050533,268 +0.050466,268 +0.050440,268 +0.050083,268 +0.050723,268 +0.050275,268 +0.050505,268 +0.050215,268 +0.050782,268 +0.050139,268 +0.050525,268 +0.050406,268 +0.050330,268 +0.050213,268 +0.050382,268 +0.051692,268 +0.051835,268 +0.051324,268 +0.052542,268 +0.050617,268 +0.053960,270 +0.054397,270 +0.053719,270 +0.054373,270 +0.053741,270 +0.054123,270 +0.054112,270 +0.054448,270 +0.053833,270 +0.054301,270 +0.054003,270 +0.054069,270 +0.054124,270 +0.053797,270 +0.054256,270 +0.054018,270 +0.054296,270 +0.053865,270 +0.055765,270 +0.053850,270 +0.054618,270 +0.053893,270 +0.055188,270 +0.058444,270 +0.057940,270 +0.056482,270 +0.058558,270 +0.056220,270 +0.055996,270 +0.058367,270 +0.056417,270 +0.058341,270 +0.062754,270 +0.056253,270 +0.061714,270 +0.057928,270 +0.056349,270 +0.058408,270 +0.058224,270 +0.057903,270 +0.057873,270 +0.059330,270 +0.060017,270 +0.058020,270 +0.057583,270 +0.056950,270 +0.056838,270 +0.057761,270 +0.057302,270 +0.057690,270 +0.059148,270 +0.057890,270 +0.057142,270 +0.057580,270 +0.057715,270 +0.058074,270 +0.057601,270 +0.058007,270 +0.057046,270 +0.056160,270 +0.056786,270 +0.065296,270 +0.060188,270 +0.070213,270 +0.060761,270 +0.060641,270 +0.056608,270 +0.054322,270 +0.056702,270 +0.068307,270 +0.061488,270 +0.059540,270 +0.059322,270 +0.062787,270 +0.056925,270 +0.062799,270 +0.058443,270 +0.057363,270 +0.057748,270 +0.060106,270 +0.064343,270 +0.061347,270 +0.062039,270 +0.063974,270 +0.064517,270 +0.060165,270 +0.062633,270 +0.059059,270 +0.056930,270 +0.054548,270 +0.061077,270 +0.053595,270 +0.059761,270 +0.053469,270 +0.059381,270 +0.059112,270 +0.053274,270 +0.059535,270 +0.053350,270 +0.058998,270 +0.051533,272 +0.056155,272 +0.056381,272 +0.050555,272 +0.056389,272 +0.050467,272 +0.056186,272 +0.050446,272 +0.056900,272 +0.052880,272 +0.056857,272 +0.050859,272 +0.056792,272 +0.050541,272 +0.056909,272 +0.054983,272 +0.051940,272 +0.056142,272 +0.050491,272 +0.057792,272 +0.058770,272 +0.056321,272 +0.057960,272 +0.056229,272 +0.058982,272 +0.056232,272 +0.056269,272 +0.056030,272 +0.057696,272 +0.054746,272 +0.053061,272 +0.051260,272 +0.051097,272 +0.050458,272 +0.050925,272 +0.051690,272 +0.051156,272 +0.051179,272 +0.052154,272 +0.050605,272 +0.051061,272 +0.050549,272 +0.051130,272 +0.051958,272 +0.053018,272 +0.053542,272 +0.051333,272 +0.054512,272 +0.055631,272 +0.056081,272 +0.056137,272 +0.056946,272 +0.055434,272 +0.060452,272 +0.052961,272 +0.055519,272 +0.055727,272 +0.056935,272 +0.052991,272 +0.050753,272 +0.051385,272 +0.050604,272 +0.052218,272 +0.052902,272 +0.053580,272 +0.051193,272 +0.052471,272 +0.050534,272 +0.052734,272 +0.050638,272 +0.052118,272 +0.050569,272 +0.052254,272 +0.050403,272 +0.052877,272 +0.050546,272 +0.051199,272 +0.050424,272 +0.051033,272 +0.050499,272 +0.050719,272 +0.050657,272 +0.051270,272 +0.050571,272 +0.051184,272 +0.050471,272 +0.051083,272 +0.050534,272 +0.051226,272 +0.050497,272 +0.050930,272 +0.050515,272 +0.050652,272 +0.050458,272 +0.050849,272 +0.050960,272 +0.050717,272 +0.050660,272 +0.050604,272 +0.050627,272 +0.055355,274 +0.055286,274 +0.055058,274 +0.077759,274 +0.062612,274 +0.084260,274 +0.104903,274 +0.106103,274 +0.077543,274 +0.085944,274 +0.080646,274 +0.056136,274 +0.056251,274 +0.056378,274 +0.056039,274 +0.056316,274 +0.056571,274 +0.068323,274 +0.065931,274 +0.059785,274 +0.058998,274 +0.056701,274 +0.061016,274 +0.062724,274 +0.056139,274 +0.057446,274 +0.057002,274 +0.059934,274 +0.060444,274 +0.060331,274 +0.070187,274 +0.102343,274 +0.101983,274 +0.085944,274 +0.057725,274 +0.060507,274 +0.078247,274 +0.073117,274 +0.066163,274 +0.060576,274 +0.059118,274 +0.064332,274 +0.068698,274 +0.063827,274 +0.068858,274 +0.062736,274 +0.068263,274 +0.061657,274 +0.059037,274 +0.062543,274 +0.062379,274 +0.065076,274 +0.061394,274 +0.065859,274 +0.059628,274 +0.060438,274 +0.058751,274 +0.060736,274 +0.056983,274 +0.059483,274 +0.058811,274 +0.060062,274 +0.059005,274 +0.058105,274 +0.059569,274 +0.061596,274 +0.067420,274 +0.065639,274 +0.065058,274 +0.064804,274 +0.064150,274 +0.061249,274 +0.060533,274 +0.060707,274 +0.060454,274 +0.063287,274 +0.059066,274 +0.058902,274 +0.062817,274 +0.057138,274 +0.058739,274 +0.056870,274 +0.060131,274 +0.058255,274 +0.057846,274 +0.056016,274 +0.059232,274 +0.059195,274 +0.058514,274 +0.066063,274 +0.068293,274 +0.066232,274 +0.064580,274 +0.059091,274 +0.060501,274 +0.060111,274 +0.060989,274 +0.059421,274 +0.065569,274 +0.061068,274 +0.060733,276 +0.055370,276 +0.077650,276 +0.057427,276 +0.057217,276 +0.057550,276 +0.057177,276 +0.056801,276 +0.062281,276 +0.056746,276 +0.061197,276 +0.057997,276 +0.058909,276 +0.058194,276 +0.059997,276 +0.058988,276 +0.058429,276 +0.064624,276 +0.057617,276 +0.060444,276 +0.060571,276 +0.058261,276 +0.060075,276 +0.059849,276 +0.060039,276 +0.057928,276 +0.058232,276 +0.060680,276 +0.062127,276 +0.060752,276 +0.062138,276 +0.058386,276 +0.058208,276 +0.057690,276 +0.055231,276 +0.055463,276 +0.056137,276 +0.066303,276 +0.060803,276 +0.061295,276 +0.060621,276 +0.061494,276 +0.065527,276 +0.065753,276 +0.069152,276 +0.060415,276 +0.060932,276 +0.060823,276 +0.060634,276 +0.068160,276 +0.071643,276 +0.067290,276 +0.066832,276 +0.066297,276 +0.069288,276 +0.066156,276 +0.061526,276 +0.059984,276 +0.065361,276 +0.059491,276 +0.056447,276 +0.059148,276 +0.059728,276 +0.057638,276 +0.060436,276 +0.074956,276 +0.064729,276 +0.071866,276 +0.078464,276 +0.065329,276 +0.082083,276 +0.060430,276 +0.061510,276 +0.069063,276 +0.064846,276 +0.058104,276 +0.056249,276 +0.059217,276 +0.063967,276 +0.062880,276 +0.055427,276 +0.061798,276 +0.057072,276 +0.065297,276 +0.064682,276 +0.062539,276 +0.060433,276 +0.061693,276 +0.064777,276 +0.062460,276 +0.061834,276 +0.057039,276 +0.063286,276 +0.058734,276 +0.062493,276 +0.061756,276 +0.059587,276 +0.058489,276 +0.058649,276 +0.055728,276 +0.058655,278 +0.058376,278 +0.057495,278 +0.058710,278 +0.058263,278 +0.066848,278 +0.065266,278 +0.058434,278 +0.066578,278 +0.066915,278 +0.069207,278 +0.070718,278 +0.063471,278 +0.061312,278 +0.059197,278 +0.059363,278 +0.058063,278 +0.058907,278 +0.060127,278 +0.058821,278 +0.058679,278 +0.058371,278 +0.060246,278 +0.062742,278 +0.058916,278 +0.059371,278 +0.059822,278 +0.060244,278 +0.062157,278 +0.063462,278 +0.066566,278 +0.068093,278 +0.071604,278 +0.073728,278 +0.069347,278 +0.070758,278 +0.070580,278 +0.062849,278 +0.065264,278 +0.058941,278 +0.058012,278 +0.063789,278 +0.066193,278 +0.072972,278 +0.069772,278 +0.065957,278 +0.070013,278 +0.067595,278 +0.073879,278 +0.063638,278 +0.067512,278 +0.068782,278 +0.070986,278 +0.076221,278 +0.074177,278 +0.066303,278 +0.062857,278 +0.063683,278 +0.061570,278 +0.062001,278 +0.060927,278 +0.062514,278 +0.059205,278 +0.058478,278 +0.059849,278 +0.063694,278 +0.065171,278 +0.072492,278 +0.065300,278 +0.064288,278 +0.064443,278 +0.063192,278 +0.060911,278 +0.063925,278 +0.059304,278 +0.059943,278 +0.059610,278 +0.057801,278 +0.059888,278 +0.058579,278 +0.059326,278 +0.059327,278 +0.058302,278 +0.063137,278 +0.061572,278 +0.060818,278 +0.059413,278 +0.057830,278 +0.063835,278 +0.057556,278 +0.064423,278 +0.063405,278 +0.058073,278 +0.072706,278 +0.068393,278 +0.068173,278 +0.067488,278 +0.064341,278 +0.065489,278 +0.061618,278 +0.063219,280 +0.060395,280 +0.061169,280 +0.060930,280 +0.057626,280 +0.055814,280 +0.056872,280 +0.056238,280 +0.057810,280 +0.056633,280 +0.056554,280 +0.057295,280 +0.056093,280 +0.056544,280 +0.056032,280 +0.056596,280 +0.056284,280 +0.055857,280 +0.056353,280 +0.055744,280 +0.056309,280 +0.055758,280 +0.056570,280 +0.056137,280 +0.056888,280 +0.056344,280 +0.055935,280 +0.056404,280 +0.055796,280 +0.056614,280 +0.055893,280 +0.056381,280 +0.056788,280 +0.056024,280 +0.056255,280 +0.056147,280 +0.056318,280 +0.055886,280 +0.056246,280 +0.055850,280 +0.056286,280 +0.056400,280 +0.055959,280 +0.056493,280 +0.055887,280 +0.056421,280 +0.056425,280 +0.069027,280 +0.063965,280 +0.062629,280 +0.063214,280 +0.066614,280 +0.061499,280 +0.061985,280 +0.063162,280 +0.065707,280 +0.060343,280 +0.060719,280 +0.063382,280 +0.060085,280 +0.063920,280 +0.062268,280 +0.060334,280 +0.057546,280 +0.066008,280 +0.056917,280 +0.059449,280 +0.061266,280 +0.061639,280 +0.061490,280 +0.061053,280 +0.062394,280 +0.061806,280 +0.066203,280 +0.065063,280 +0.068803,280 +0.073897,280 +0.071415,280 +0.061651,280 +0.062140,280 +0.068908,280 +0.069307,280 +0.067386,280 +0.062752,280 +0.069230,280 +0.070114,280 +0.064809,280 +0.060479,280 +0.061138,280 +0.063538,280 +0.061519,280 +0.058772,280 +0.059980,280 +0.061173,280 +0.061562,280 +0.058449,280 +0.059663,280 +0.071151,280 +0.060882,280 +0.066724,280 +0.072016,282 +0.074860,282 +0.070270,282 +0.073070,282 +0.069344,282 +0.076691,282 +0.086220,282 +0.078314,282 +0.068736,282 +0.066885,282 +0.068434,282 +0.066834,282 +0.066249,282 +0.072824,282 +0.075319,282 +0.071495,282 +0.069390,282 +0.068081,282 +0.067893,282 +0.068946,282 +0.067668,282 +0.068085,282 +0.067531,282 +0.069401,282 +0.076482,282 +0.074109,282 +0.068777,282 +0.070797,282 +0.071662,282 +0.070121,282 +0.097231,282 +0.079167,282 +0.069282,282 +0.069333,282 +0.073691,282 +0.068289,282 +0.072362,282 +0.068569,282 +0.068555,282 +0.069764,282 +0.072091,282 +0.065155,282 +0.064922,282 +0.070280,282 +0.064525,282 +0.066633,282 +0.062893,282 +0.064499,282 +0.062042,282 +0.061602,282 +0.061429,282 +0.061333,282 +0.061341,282 +0.060931,282 +0.061759,282 +0.061270,282 +0.060762,282 +0.061671,282 +0.060706,282 +0.061936,282 +0.065297,282 +0.061463,282 +0.062186,282 +0.061000,282 +0.061329,282 +0.061405,282 +0.062654,282 +0.064562,282 +0.064346,282 +0.064517,282 +0.062018,282 +0.062551,282 +0.063137,282 +0.061378,282 +0.061309,282 +0.061441,282 +0.062240,282 +0.063585,282 +0.070333,282 +0.064389,282 +0.062171,282 +0.065352,282 +0.066117,282 +0.067361,282 +0.064329,282 +0.061419,282 +0.061788,282 +0.061899,282 +0.060952,282 +0.062098,282 +0.064113,282 +0.064734,282 +0.065608,282 +0.062708,282 +0.062502,282 +0.061444,282 +0.062500,282 +0.063233,282 +0.062965,282 +0.062939,282 +0.061046,284 +0.060496,284 +0.060836,284 +0.062635,284 +0.061098,284 +0.062422,284 +0.060454,284 +0.061306,284 +0.060970,284 +0.059322,284 +0.060996,284 +0.059282,284 +0.062343,284 +0.061150,284 +0.059339,284 +0.062270,284 +0.059404,284 +0.060982,284 +0.061201,284 +0.059487,284 +0.061295,284 +0.059402,284 +0.061040,284 +0.061154,284 +0.059433,284 +0.061046,284 +0.059347,284 +0.061015,284 +0.062313,284 +0.060296,284 +0.061069,284 +0.059390,284 +0.061376,284 +0.061045,284 +0.059254,284 +0.061072,284 +0.059390,284 +0.061039,284 +0.060863,284 +0.060137,284 +0.061132,284 +0.059248,284 +0.061549,284 +0.061096,284 +0.059492,284 +0.062208,284 +0.059378,284 +0.064014,284 +0.061461,284 +0.059358,284 +0.062296,284 +0.074642,284 +0.071049,284 +0.066325,284 +0.069245,284 +0.068743,284 +0.070516,284 +0.071255,284 +0.067085,284 +0.065974,284 +0.066825,284 +0.067573,284 +0.068968,284 +0.064459,284 +0.061483,284 +0.075049,284 +0.065255,284 +0.077691,284 +0.090725,284 +0.067188,284 +0.065421,284 +0.070782,284 +0.066749,284 +0.067901,284 +0.065804,284 +0.064306,284 +0.061525,284 +0.060358,284 +0.062015,284 +0.060604,284 +0.060064,284 +0.061275,284 +0.059862,284 +0.061431,284 +0.062032,284 +0.061327,284 +0.061746,284 +0.059494,284 +0.060965,284 +0.060872,284 +0.059400,284 +0.062127,284 +0.059301,284 +0.061337,284 +0.061756,284 +0.059648,284 +0.060987,284 +0.059261,284 +0.061118,284 +0.061140,284 +0.063425,286 +0.064737,286 +0.064355,286 +0.063657,286 +0.064667,286 +0.063042,286 +0.064707,286 +0.065789,286 +0.063100,286 +0.065326,286 +0.066364,286 +0.063675,286 +0.064873,286 +0.064375,286 +0.063434,286 +0.063620,286 +0.063581,286 +0.064280,286 +0.063903,286 +0.063200,286 +0.063643,286 +0.063740,286 +0.063307,286 +0.063884,286 +0.063368,286 +0.063508,286 +0.063826,286 +0.063174,286 +0.063968,286 +0.064779,286 +0.063249,286 +0.065129,286 +0.065503,286 +0.066801,286 +0.065673,286 +0.066431,286 +0.066196,286 +0.065085,286 +0.064430,286 +0.064809,286 +0.063816,286 +0.063359,286 +0.063642,286 +0.063762,286 +0.063233,286 +0.063836,286 +0.063836,286 +0.063249,286 +0.064058,286 +0.063400,286 +0.063894,286 +0.063750,286 +0.063127,286 +0.063740,286 +0.064056,286 +0.063366,286 +0.063874,286 +0.063578,286 +0.063819,286 +0.063598,286 +0.063287,286 +0.063787,286 +0.063828,286 +0.063347,286 +0.064371,286 +0.063440,286 +0.063083,286 +0.063631,286 +0.063373,286 +0.063355,286 +0.063701,286 +0.063124,286 +0.063970,286 +0.063441,286 +0.062995,286 +0.063621,286 +0.063674,286 +0.065323,286 +0.064494,286 +0.067087,286 +0.064575,286 +0.064647,286 +0.063564,286 +0.064806,286 +0.064180,286 +0.063215,286 +0.063833,286 +0.063644,286 +0.063111,286 +0.063867,286 +0.063236,286 +0.063614,286 +0.063930,286 +0.062981,286 +0.063888,286 +0.063725,286 +0.063463,286 +0.063839,286 +0.063619,286 +0.063223,286 +0.064376,288 +0.063707,288 +0.064364,288 +0.064462,288 +0.066459,288 +0.064684,288 +0.065017,288 +0.063947,288 +0.064447,288 +0.064137,288 +0.063646,288 +0.065175,288 +0.070360,288 +0.071598,288 +0.071383,288 +0.070829,288 +0.069477,288 +0.069394,288 +0.068970,288 +0.069672,288 +0.069716,288 +0.071996,288 +0.074610,288 +0.068118,288 +0.065774,288 +0.069773,288 +0.074340,288 +0.070091,288 +0.070158,288 +0.068244,288 +0.067423,288 +0.068650,288 +0.069801,288 +0.070965,288 +0.071539,288 +0.071692,288 +0.070481,288 +0.078654,288 +0.072991,288 +0.067273,288 +0.064580,288 +0.065642,288 +0.067566,288 +0.066009,288 +0.066068,288 +0.068610,288 +0.069114,288 +0.068622,288 +0.065788,288 +0.064485,288 +0.065000,288 +0.066887,288 +0.074228,288 +0.069965,288 +0.077213,288 +0.066733,288 +0.071594,288 +0.069941,288 +0.064325,288 +0.070085,288 +0.065749,288 +0.065430,288 +0.083415,288 +0.071016,288 +0.076565,288 +0.072772,288 +0.069500,288 +0.069351,288 +0.066924,288 +0.066275,288 +0.064787,288 +0.066885,288 +0.064586,288 +0.064665,288 +0.067937,288 +0.069406,288 +0.079028,288 +0.082235,288 +0.071772,288 +0.065477,288 +0.068255,288 +0.070726,288 +0.070777,288 +0.070487,288 +0.066012,288 +0.067938,288 +0.068077,288 +0.073226,288 +0.066543,288 +0.066800,288 +0.065631,288 +0.085718,288 +0.089092,288 +0.087413,288 +0.070510,288 +0.066891,288 +0.066570,288 +0.064278,288 +0.064291,288 +0.066164,288 +0.066856,290 +0.066542,290 +0.066700,290 +0.066331,290 +0.066329,290 +0.066563,290 +0.066186,290 +0.066713,290 +0.066740,290 +0.066146,290 +0.066181,290 +0.066832,290 +0.066045,290 +0.066206,290 +0.066781,290 +0.066178,290 +0.066023,290 +0.066379,290 +0.074327,290 +0.067359,290 +0.066890,290 +0.066038,290 +0.066210,290 +0.066857,290 +0.065996,290 +0.066408,290 +0.066721,290 +0.066083,290 +0.066572,290 +0.066601,290 +0.065704,290 +0.066854,290 +0.066663,290 +0.065723,290 +0.066815,290 +0.066464,290 +0.065716,290 +0.066601,290 +0.066705,290 +0.065860,290 +0.066663,290 +0.066405,290 +0.065973,290 +0.066908,290 +0.066657,290 +0.065943,290 +0.066938,290 +0.066389,290 +0.065999,290 +0.066745,290 +0.066303,290 +0.066258,290 +0.067397,290 +0.066411,290 +0.066299,290 +0.066642,290 +0.066156,290 +0.074817,290 +0.070316,290 +0.068684,290 +0.066628,290 +0.067040,290 +0.066562,290 +0.066173,290 +0.067013,290 +0.066810,290 +0.065973,290 +0.066960,290 +0.066530,290 +0.066101,290 +0.066809,290 +0.066522,290 +0.066021,290 +0.066746,290 +0.066434,290 +0.066097,290 +0.066708,290 +0.066651,290 +0.066335,290 +0.066961,290 +0.066217,290 +0.066568,290 +0.066737,290 +0.065997,290 +0.067041,290 +0.067766,290 +0.065829,290 +0.066719,290 +0.066944,290 +0.065817,290 +0.066878,290 +0.066380,290 +0.066074,290 +0.067010,290 +0.067114,290 +0.065857,290 +0.066773,290 +0.066490,290 +0.065858,290 +0.066554,290 +0.066309,292 +0.065868,292 +0.066050,292 +0.066186,292 +0.067014,292 +0.070358,292 +0.066037,292 +0.066376,292 +0.066464,292 +0.065910,292 +0.067182,292 +0.066370,292 +0.066138,292 +0.066665,292 +0.072453,292 +0.065768,292 +0.065263,292 +0.067144,292 +0.065889,292 +0.065232,292 +0.065898,292 +0.065375,292 +0.065452,292 +0.065864,292 +0.065250,292 +0.065853,292 +0.065723,292 +0.064962,292 +0.066235,292 +0.065645,292 +0.065551,292 +0.066315,292 +0.066393,292 +0.066390,292 +0.066038,292 +0.065460,292 +0.066657,292 +0.066426,292 +0.065633,292 +0.067215,292 +0.066436,292 +0.065902,292 +0.065923,292 +0.066517,292 +0.065837,292 +0.065519,292 +0.066377,292 +0.065731,292 +0.065825,292 +0.066306,292 +0.065418,292 +0.065969,292 +0.066479,292 +0.065072,292 +0.066340,292 +0.065952,292 +0.065452,292 +0.066103,292 +0.066080,292 +0.065526,292 +0.066222,292 +0.065902,292 +0.065540,292 +0.066321,292 +0.065830,292 +0.065732,292 +0.067067,292 +0.066852,292 +0.065767,292 +0.066326,292 +0.066414,292 +0.065622,292 +0.066265,292 +0.066090,292 +0.065993,292 +0.066376,292 +0.065403,292 +0.066079,292 +0.066214,292 +0.065233,292 +0.066158,292 +0.066097,292 +0.065168,292 +0.066237,292 +0.065953,292 +0.065484,292 +0.066720,292 +0.072731,292 +0.076935,292 +0.080018,292 +0.082379,292 +0.080917,292 +0.074605,292 +0.068439,292 +0.069450,292 +0.068890,292 +0.068080,292 +0.068419,292 +0.068819,292 +0.069171,292 +0.076822,294 +0.076086,294 +0.078940,294 +0.074760,294 +0.074426,294 +0.073137,294 +0.072081,294 +0.070823,294 +0.072792,294 +0.072130,294 +0.072409,294 +0.072391,294 +0.072992,294 +0.079275,294 +0.086944,294 +0.083957,294 +0.076999,294 +0.076847,294 +0.078900,294 +0.071525,294 +0.071786,294 +0.072034,294 +0.072026,294 +0.074384,294 +0.074108,294 +0.071156,294 +0.070194,294 +0.070710,294 +0.070922,294 +0.070716,294 +0.070229,294 +0.070987,294 +0.070825,294 +0.069836,294 +0.071088,294 +0.070921,294 +0.070434,294 +0.070411,294 +0.071038,294 +0.070787,294 +0.070330,294 +0.071036,294 +0.070979,294 +0.070156,294 +0.070996,294 +0.070858,294 +0.070398,294 +0.070803,294 +0.071150,294 +0.070646,294 +0.071168,294 +0.071539,294 +0.070709,294 +0.069758,294 +0.071038,294 +0.071165,294 +0.070349,294 +0.073770,294 +0.070953,294 +0.072926,294 +0.069917,294 +0.071281,294 +0.071955,294 +0.071535,294 +0.077098,294 +0.074606,294 +0.074303,294 +0.071320,294 +0.070532,294 +0.070896,294 +0.070341,294 +0.069827,294 +0.070714,294 +0.070326,294 +0.072954,294 +0.074486,294 +0.073188,294 +0.070619,294 +0.070657,294 +0.070815,294 +0.071126,294 +0.074661,294 +0.073268,294 +0.076067,294 +0.083637,294 +0.074073,294 +0.082686,294 +0.077119,294 +0.075453,294 +0.076002,294 +0.071392,294 +0.072592,294 +0.074008,294 +0.069877,294 +0.071344,294 +0.070870,294 +0.071150,294 +0.071804,294 +0.071079,294 +0.071553,294 +0.066974,296 +0.068582,296 +0.068594,296 +0.067236,296 +0.068186,296 +0.068300,296 +0.066251,296 +0.068456,296 +0.068182,296 +0.067526,296 +0.068491,296 +0.069412,296 +0.066596,296 +0.068758,296 +0.068368,296 +0.066651,296 +0.068386,296 +0.068434,296 +0.066997,296 +0.068163,296 +0.068334,296 +0.067285,296 +0.071464,296 +0.072527,296 +0.069374,296 +0.066762,296 +0.069384,296 +0.068125,296 +0.066689,296 +0.072023,296 +0.074263,296 +0.066657,296 +0.068572,296 +0.068314,296 +0.066261,296 +0.068553,296 +0.067026,296 +0.066611,296 +0.067615,296 +0.067246,296 +0.066506,296 +0.067668,296 +0.067284,296 +0.066467,296 +0.067471,296 +0.067280,296 +0.067456,296 +0.068320,296 +0.068635,296 +0.066139,296 +0.068106,296 +0.068149,296 +0.066075,296 +0.068784,296 +0.068268,296 +0.066233,296 +0.069456,296 +0.067947,296 +0.066422,296 +0.067812,296 +0.068153,296 +0.066867,296 +0.067462,296 +0.068132,296 +0.067164,296 +0.067326,296 +0.068220,296 +0.067258,296 +0.067231,296 +0.068053,296 +0.068183,296 +0.067775,296 +0.068161,296 +0.067675,296 +0.067005,296 +0.068616,296 +0.067729,296 +0.066907,296 +0.068243,296 +0.067927,296 +0.066670,296 +0.068298,296 +0.067857,296 +0.067380,296 +0.068326,296 +0.068842,296 +0.067039,296 +0.068302,296 +0.068213,296 +0.066634,296 +0.068386,296 +0.067673,296 +0.066894,296 +0.068327,296 +0.066926,296 +0.066740,296 +0.067472,296 +0.066996,296 +0.066620,296 +0.067563,296 +0.074082,298 +0.072820,298 +0.073513,298 +0.073754,298 +0.074084,298 +0.073198,298 +0.073715,298 +0.073480,298 +0.073005,298 +0.073204,298 +0.073714,298 +0.073746,298 +0.072662,298 +0.073693,298 +0.073421,298 +0.073221,298 +0.072732,298 +0.073666,298 +0.073410,298 +0.072768,298 +0.073171,298 +0.073607,298 +0.072946,298 +0.072686,298 +0.073423,298 +0.073634,298 +0.074629,298 +0.072765,298 +0.073651,298 +0.073395,298 +0.072872,298 +0.073192,298 +0.073592,298 +0.073454,298 +0.072587,298 +0.073284,298 +0.073709,298 +0.073488,298 +0.072771,298 +0.073605,298 +0.073534,298 +0.073027,298 +0.073515,298 +0.073689,298 +0.073708,298 +0.072601,298 +0.073632,298 +0.073809,298 +0.073004,298 +0.073058,298 +0.073719,298 +0.073876,298 +0.073224,298 +0.073554,298 +0.073837,298 +0.073483,298 +0.073045,298 +0.073656,298 +0.073569,298 +0.073026,298 +0.075732,298 +0.079497,298 +0.077026,298 +0.076725,298 +0.075296,298 +0.074288,298 +0.075321,298 +0.077556,298 +0.077182,298 +0.080477,298 +0.079437,298 +0.079661,298 +0.079812,298 +0.075677,298 +0.074235,298 +0.073422,298 +0.073126,298 +0.072768,298 +0.073769,298 +0.074062,298 +0.073833,298 +0.074786,298 +0.074297,298 +0.073377,298 +0.072905,298 +0.076307,298 +0.078593,298 +0.074184,298 +0.073057,298 +0.073524,298 +0.073492,298 +0.073582,298 +0.072937,298 +0.073603,298 +0.073564,298 +0.072902,298 +0.073522,298 +0.079887,298 +0.083117,298 +0.075722,298 diff --git a/buch/papers/multiplikation/code/meas/test/blas.txt b/buch/papers/multiplikation/code/meas/test/blas.txt new file mode 100644 index 0000000..7b0a9d1 --- /dev/null +++ b/buch/papers/multiplikation/code/meas/test/blas.txt @@ -0,0 +1,14900 @@ +0.000001,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000001,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000001,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000010,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000010,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000010,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000010,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000010,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000002,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000003,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000013,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000005,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000006,18 +0.000007,18 +0.000007,18 +0.000007,18 +0.000006,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000013,18 +0.000004,18 +0.000013,18 +0.000004,18 +0.000013,18 +0.000004,18 +0.000013,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000013,18 +0.000004,18 +0.000013,18 +0.000004,18 +0.000014,18 +0.000004,18 +0.000014,18 +0.000004,18 +0.000014,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000007,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000008,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000011,22 +0.000012,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000016,22 +0.000007,22 +0.000016,22 +0.000007,22 +0.000016,22 +0.000016,22 +0.000016,22 +0.000007,22 +0.000016,22 +0.000016,22 +0.000016,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000016,22 +0.000007,22 +0.000016,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000010,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000010,24 +0.000018,24 +0.000018,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000013,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000020,26 +0.000011,26 +0.000020,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000020,26 +0.000020,26 +0.000021,26 +0.000031,26 +0.000011,26 +0.000019,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000020,26 +0.000020,26 +0.000020,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000015,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000022,28 +0.000022,28 +0.000021,28 +0.000022,28 +0.000021,28 +0.000023,28 +0.000022,28 +0.000023,28 +0.000022,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000024,28 +0.000024,28 +0.000025,28 +0.000035,28 +0.000048,28 +0.000055,28 +0.000045,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000026,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000023,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000020,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000024,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000025,28 +0.000032,30 +0.000031,30 +0.000030,30 +0.000031,30 +0.000030,30 +0.000030,30 +0.000073,30 +0.000030,30 +0.000030,30 +0.000031,30 +0.000017,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000019,30 +0.000030,30 +0.000030,30 +0.000030,30 +0.000030,30 +0.000030,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000026,30 +0.000029,30 +0.000040,30 +0.000041,30 +0.000041,30 +0.000040,30 +0.000038,30 +0.000042,30 +0.000023,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000027,30 +0.000030,30 +0.000030,30 +0.000040,30 +0.000040,30 +0.000031,30 +0.000028,30 +0.000028,30 +0.000024,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000021,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000021,32 +0.000025,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000028,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000029,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000028,32 +0.000039,32 +0.000043,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000022,32 +0.000028,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000040,32 +0.000038,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000043,32 +0.000047,32 +0.000031,32 +0.000047,34 +0.000039,34 +0.000035,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000027,34 +0.000050,34 +0.000023,34 +0.000023,34 +0.000023,34 +0.000023,34 +0.000023,34 +0.000033,34 +0.000023,34 +0.000042,36 +0.000028,36 +0.000037,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000037,36 +0.000036,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000043,36 +0.000050,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000037,36 +0.000036,36 +0.000037,36 +0.000059,36 +0.000049,36 +0.000027,36 +0.000037,36 +0.000057,36 +0.000048,36 +0.000046,36 +0.000047,36 +0.000027,36 +0.000046,36 +0.000027,36 +0.000027,36 +0.000035,38 +0.000036,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000051,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000042,38 +0.000041,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000051,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000044,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000086,40 +0.000090,40 +0.000051,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000058,40 +0.000062,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000053,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000059,42 +0.000077,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000068,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000068,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000064,42 +0.000058,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000058,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000078,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000078,44 +0.000095,44 +0.000073,44 +0.000096,44 +0.000097,44 +0.000085,44 +0.000064,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000065,44 +0.000064,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000075,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000068,46 +0.000062,46 +0.000078,46 +0.000083,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000085,46 +0.000072,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000081,46 +0.000133,46 +0.000080,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000097,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000073,48 +0.000069,48 +0.000108,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000090,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000089,48 +0.000069,48 +0.000069,48 +0.000095,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000088,48 +0.000079,48 +0.000099,48 +0.000141,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000091,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000085,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000092,50 +0.000138,50 +0.000097,50 +0.000151,50 +0.000117,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000098,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000099,50 +0.000077,50 +0.000078,50 +0.000078,50 +0.000078,50 +0.000117,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000150,50 +0.000111,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000100,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000089,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000131,52 +0.000106,52 +0.000147,52 +0.000130,52 +0.000105,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000123,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000106,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000110,52 +0.000128,52 +0.000153,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000110,52 +0.000095,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000099,54 +0.000116,54 +0.000161,54 +0.000169,54 +0.000144,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000153,54 +0.000096,54 +0.000096,54 +0.000115,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000114,54 +0.000115,54 +0.000170,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000106,54 +0.000196,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000131,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000139,54 +0.000096,54 +0.000130,54 +0.000096,54 +0.000096,54 +0.000120,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000110,56 +0.000125,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000133,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000136,56 +0.000159,56 +0.000159,56 +0.000143,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000126,56 +0.000106,56 +0.000106,56 +0.000125,56 +0.000106,56 +0.000130,56 +0.000135,56 +0.000183,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000172,56 +0.000149,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000119,56 +0.000115,56 +0.000123,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000129,58 +0.000127,58 +0.000117,58 +0.000117,58 +0.000156,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000136,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000136,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000152,58 +0.000138,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000134,58 +0.000153,60 +0.000178,60 +0.000226,60 +0.000188,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000148,60 +0.000128,60 +0.000128,60 +0.000149,60 +0.000142,60 +0.000132,60 +0.000132,60 +0.000157,60 +0.000190,60 +0.000132,60 +0.000132,60 +0.000132,60 +0.000132,60 +0.000132,60 +0.000132,60 +0.000132,60 +0.000132,60 +0.000132,60 +0.000153,60 +0.000132,60 +0.000161,60 +0.000132,60 +0.000132,60 +0.000132,60 +0.000142,60 +0.000180,60 +0.000141,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000212,60 +0.000390,60 +0.000275,60 +0.000261,60 +0.000269,60 +0.000234,60 +0.000272,60 +0.000241,60 +0.000238,60 +0.000326,60 +0.000245,60 +0.000182,60 +0.000150,60 +0.000167,60 +0.000153,60 +0.000138,60 +0.000128,60 +0.000159,60 +0.000249,60 +0.000157,60 +0.000128,60 +0.000164,60 +0.000165,60 +0.000128,60 +0.000128,60 +0.000230,60 +0.000176,60 +0.000244,60 +0.000238,60 +0.000162,60 +0.000128,60 +0.000128,60 +0.000170,60 +0.000148,60 +0.000129,60 +0.000142,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000180,60 +0.000212,60 +0.000189,60 +0.000191,60 +0.000161,60 +0.000143,60 +0.000166,60 +0.000135,60 +0.000135,60 +0.000135,60 +0.000135,60 +0.000135,60 +0.000135,60 +0.000135,60 +0.000142,60 +0.000169,60 +0.000128,60 +0.000128,60 +0.000144,62 +0.000141,62 +0.000141,62 +0.000188,62 +0.000215,62 +0.000213,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000161,62 +0.000141,62 +0.000161,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000167,62 +0.000145,62 +0.000184,62 +0.000145,62 +0.000223,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000165,62 +0.000165,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000178,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000165,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000178,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000150,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000156,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000198,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000248,64 +0.000255,64 +0.000163,64 +0.000154,64 +0.000154,64 +0.000174,64 +0.000154,64 +0.000174,64 +0.000153,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000190,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000195,64 +0.000192,64 +0.000154,64 +0.000164,64 +0.000216,64 +0.000164,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000168,64 +0.000173,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000173,64 +0.000173,64 +0.000154,64 +0.000154,64 +0.000173,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000173,64 +0.000189,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000173,64 +0.000174,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000172,66 +0.000169,66 +0.000169,66 +0.000194,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000240,66 +0.000283,66 +0.000188,66 +0.000169,66 +0.000169,66 +0.000188,66 +0.000169,66 +0.000189,66 +0.000169,66 +0.000196,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000179,66 +0.000227,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000191,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000179,66 +0.000198,66 +0.000169,66 +0.000169,66 +0.000189,66 +0.000207,66 +0.000169,66 +0.000169,66 +0.000188,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000191,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000186,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000198,68 +0.000307,68 +0.000251,68 +0.000183,68 +0.000183,68 +0.000209,68 +0.000223,68 +0.000345,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000303,68 +0.000331,68 +0.000331,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000255,68 +0.000283,68 +0.000183,68 +0.000201,68 +0.000203,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000215,68 +0.000223,68 +0.000183,68 +0.000203,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000203,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000355,68 +0.000196,68 +0.000183,68 +0.000221,68 +0.000183,68 +0.000256,68 +0.000184,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000246,68 +0.000312,68 +0.000193,68 +0.000183,68 +0.000183,68 +0.000203,68 +0.000203,68 +0.000218,70 +0.000355,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000237,70 +0.000342,70 +0.000334,70 +0.000339,70 +0.000351,70 +0.000373,70 +0.000355,70 +0.000281,70 +0.000363,70 +0.000341,70 +0.000323,70 +0.000200,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000233,70 +0.000348,70 +0.000199,70 +0.000242,70 +0.000199,70 +0.000199,70 +0.000238,70 +0.000199,70 +0.000210,70 +0.000208,70 +0.000199,70 +0.000199,70 +0.000219,70 +0.000199,70 +0.000378,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000326,70 +0.000209,70 +0.000199,70 +0.000239,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000200,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000341,70 +0.000229,70 +0.000199,70 +0.000291,70 +0.000325,70 +0.000303,70 +0.000199,70 +0.000214,70 +0.000210,70 +0.000210,70 +0.000210,70 +0.000210,70 +0.000214,70 +0.000205,70 +0.000205,70 +0.000210,70 +0.000199,70 +0.000375,70 +0.000347,70 +0.000410,70 +0.000361,70 +0.000362,70 +0.000371,70 +0.000203,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000382,70 +0.000200,70 +0.000210,70 +0.000345,70 +0.000490,70 +0.000247,70 +0.000255,70 +0.000199,70 +0.000199,70 +0.000359,70 +0.000230,70 +0.000281,70 +0.000210,70 +0.000251,70 +0.000311,72 +0.000259,72 +0.000226,72 +0.000215,72 +0.000235,72 +0.000215,72 +0.000235,72 +0.000367,72 +0.000451,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000250,72 +0.000215,72 +0.000215,72 +0.000393,72 +0.000215,72 +0.000215,72 +0.000293,72 +0.000309,72 +0.000215,72 +0.000304,72 +0.000325,72 +0.000221,72 +0.000221,72 +0.000221,72 +0.000374,72 +0.000227,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000244,72 +0.000356,72 +0.000545,72 +0.000385,72 +0.000391,72 +0.000216,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000420,72 +0.000388,72 +0.000393,72 +0.000223,72 +0.000215,72 +0.000233,72 +0.000270,72 +0.000348,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000254,72 +0.000220,72 +0.000390,72 +0.000215,72 +0.000215,72 +0.000257,72 +0.000308,72 +0.000215,72 +0.000235,72 +0.000301,72 +0.000279,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000230,72 +0.000351,72 +0.000215,72 +0.000257,72 +0.000314,72 +0.000254,72 +0.000215,72 +0.000215,72 +0.000281,72 +0.000317,72 +0.000390,72 +0.000292,72 +0.000227,72 +0.000234,72 +0.000221,72 +0.000247,72 +0.000250,72 +0.000227,72 +0.000215,72 +0.000344,74 +0.000473,74 +0.000451,74 +0.000574,74 +0.000248,74 +0.000357,74 +0.000234,74 +0.000233,74 +0.000233,74 +0.000350,74 +0.000234,74 +0.000233,74 +0.000312,74 +0.000311,74 +0.000233,74 +0.000233,74 +0.000314,74 +0.000265,74 +0.000233,74 +0.000234,74 +0.000346,74 +0.000273,74 +0.000234,74 +0.000287,74 +0.000351,74 +0.000234,74 +0.000293,74 +0.000363,74 +0.000233,74 +0.000233,74 +0.000239,74 +0.000348,74 +0.000234,74 +0.000234,74 +0.000302,74 +0.000282,74 +0.000234,74 +0.000234,74 +0.000338,74 +0.000243,74 +0.000233,74 +0.000260,74 +0.000344,74 +0.000234,74 +0.000233,74 +0.000238,74 +0.000346,74 +0.000233,74 +0.000233,74 +0.000299,74 +0.000465,74 +0.000260,74 +0.000274,74 +0.000246,74 +0.000246,74 +0.000287,74 +0.000351,74 +0.000233,74 +0.000233,74 +0.000233,74 +0.000460,74 +0.000435,74 +0.000513,74 +0.000318,74 +0.000234,74 +0.000354,74 +0.000234,74 +0.000233,74 +0.000299,74 +0.000326,74 +0.000233,74 +0.000233,74 +0.000316,74 +0.000256,74 +0.000233,74 +0.000234,74 +0.000351,74 +0.000234,74 +0.000233,74 +0.000234,74 +0.000376,74 +0.000233,74 +0.000253,74 +0.000364,74 +0.000276,74 +0.000234,74 +0.000234,74 +0.000362,74 +0.000234,74 +0.000233,74 +0.000238,74 +0.000346,74 +0.000233,74 +0.000233,74 +0.000313,74 +0.000270,74 +0.000233,74 +0.000269,74 +0.000347,74 +0.000233,74 +0.000260,76 +0.000270,76 +0.000352,76 +0.000252,76 +0.000251,76 +0.000368,76 +0.000251,76 +0.000286,76 +0.000487,76 +0.000252,76 +0.000315,76 +0.000396,76 +0.000262,76 +0.000251,76 +0.000269,76 +0.000351,76 +0.000251,76 +0.000251,76 +0.000444,76 +0.000423,76 +0.000509,76 +0.000443,76 +0.000575,76 +0.000445,76 +0.000520,76 +0.000373,76 +0.000252,76 +0.000372,76 +0.000251,76 +0.000251,76 +0.000279,76 +0.000341,76 +0.000251,76 +0.000312,76 +0.000423,76 +0.000252,76 +0.000251,76 +0.000366,76 +0.000252,76 +0.000251,76 +0.000256,76 +0.000356,76 +0.000252,76 +0.000251,76 +0.000361,76 +0.000251,76 +0.000251,76 +0.000316,76 +0.000334,76 +0.000252,76 +0.000251,76 +0.000362,76 +0.000252,76 +0.000251,76 +0.000268,76 +0.000343,76 +0.000252,76 +0.000251,76 +0.000360,76 +0.000346,76 +0.000320,76 +0.000341,76 +0.000279,76 +0.000296,76 +0.000336,76 +0.000273,76 +0.000251,76 +0.000251,76 +0.000470,76 +0.000439,76 +0.000464,76 +0.000459,76 +0.000586,76 +0.000261,76 +0.000258,76 +0.000345,76 +0.000258,76 +0.000258,76 +0.000283,76 +0.000318,76 +0.000258,76 +0.000258,76 +0.000258,76 +0.000258,76 +0.000258,76 +0.000295,76 +0.000420,76 +0.000291,76 +0.000251,76 +0.000284,76 +0.000251,76 +0.000251,76 +0.000276,76 +0.000405,76 +0.000251,76 +0.000251,76 +0.000251,76 +0.000251,76 +0.000251,76 +0.000287,76 +0.000432,78 +0.000271,78 +0.000271,78 +0.000406,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000420,78 +0.000271,78 +0.000313,78 +0.000500,78 +0.000325,78 +0.000278,78 +0.000298,78 +0.000308,78 +0.000271,78 +0.000427,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000382,78 +0.000539,78 +0.000500,78 +0.000324,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000400,78 +0.000311,78 +0.000305,78 +0.000360,78 +0.000283,78 +0.000292,78 +0.000281,78 +0.000313,78 +0.000316,78 +0.000280,78 +0.000294,78 +0.000292,78 +0.000295,78 +0.000284,78 +0.000282,78 +0.000271,78 +0.000320,78 +0.000271,78 +0.000347,78 +0.000315,78 +0.000271,78 +0.000271,78 +0.000308,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000306,78 +0.000271,78 +0.000271,78 +0.000341,78 +0.000384,78 +0.000271,78 +0.000291,78 +0.000291,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000391,78 +0.000474,78 +0.000490,78 +0.000437,78 +0.000272,78 +0.000271,78 +0.000271,78 +0.000282,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000309,78 +0.000272,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000310,78 +0.000271,78 +0.000315,78 +0.000293,80 +0.000310,80 +0.000290,80 +0.000290,80 +0.000323,80 +0.000290,80 +0.000291,80 +0.000290,80 +0.000291,80 +0.000290,80 +0.000290,80 +0.000291,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000330,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000474,80 +0.000291,80 +0.000310,80 +0.000311,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000328,80 +0.000290,80 +0.000290,80 +0.000450,80 +0.000537,80 +0.000440,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000332,80 +0.000291,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000330,80 +0.000290,80 +0.000313,80 +0.000290,80 +0.000314,80 +0.000290,80 +0.000290,80 +0.000291,80 +0.000291,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000301,80 +0.000333,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000310,80 +0.000454,80 +0.000291,80 +0.000448,80 +0.000310,80 +0.000335,80 +0.000291,80 +0.000290,80 +0.000291,80 +0.000291,80 +0.000337,80 +0.000592,80 +0.000518,80 +0.000362,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000317,80 +0.000291,80 +0.000290,80 +0.000290,80 +0.000291,80 +0.000291,80 +0.000290,80 +0.000324,82 +0.000313,82 +0.000313,82 +0.000473,82 +0.000313,82 +0.000366,82 +0.000313,82 +0.000352,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000469,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000353,82 +0.000464,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000472,82 +0.000333,82 +0.000323,82 +0.000526,82 +0.000313,82 +0.000312,82 +0.000312,82 +0.000476,82 +0.000555,82 +0.000576,82 +0.000616,82 +0.000313,82 +0.000356,82 +0.000313,82 +0.000386,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000393,82 +0.000392,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000343,82 +0.000332,82 +0.000336,82 +0.000313,82 +0.000503,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000352,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000468,82 +0.000313,82 +0.000313,82 +0.000424,82 +0.000313,82 +0.000314,82 +0.000421,82 +0.000461,82 +0.000313,82 +0.000332,82 +0.000354,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000484,82 +0.000571,82 +0.000426,82 +0.000313,82 +0.000353,82 +0.000476,82 +0.000312,82 +0.000367,82 +0.000362,82 +0.000312,82 +0.000312,82 +0.000312,82 +0.000312,82 +0.000353,82 +0.000410,82 +0.000312,82 +0.000348,82 +0.000314,82 +0.000352,82 +0.000454,82 +0.000326,82 +0.000377,84 +0.000335,84 +0.000336,84 +0.000340,84 +0.000470,84 +0.000336,84 +0.000376,84 +0.000335,84 +0.000336,84 +0.000492,84 +0.000336,84 +0.000336,84 +0.000336,84 +0.000336,84 +0.000359,84 +0.000449,84 +0.000375,84 +0.000438,84 +0.000415,84 +0.000430,84 +0.000406,84 +0.000336,84 +0.000335,84 +0.000336,84 +0.000343,84 +0.000608,84 +0.000601,84 +0.000591,84 +0.000681,84 +0.000572,84 +0.000592,84 +0.000335,84 +0.000335,84 +0.000335,84 +0.000389,84 +0.000549,84 +0.000385,84 +0.000390,84 +0.000335,84 +0.000375,84 +0.000360,84 +0.000399,84 +0.000399,84 +0.000348,84 +0.000383,84 +0.000377,84 +0.000349,84 +0.000488,84 +0.000384,84 +0.000335,84 +0.000442,84 +0.000337,84 +0.000336,84 +0.000336,84 +0.000336,84 +0.000451,84 +0.000413,84 +0.000463,84 +0.000488,84 +0.000388,84 +0.000385,84 +0.000336,84 +0.000335,84 +0.000624,84 +0.000716,84 +0.000602,84 +0.000619,84 +0.000336,84 +0.000479,84 +0.000336,84 +0.000336,84 +0.000335,84 +0.000336,84 +0.000445,84 +0.000424,84 +0.000336,84 +0.000446,84 +0.000336,84 +0.000373,84 +0.000336,84 +0.000356,84 +0.000335,84 +0.000372,84 +0.000336,84 +0.000522,84 +0.000336,84 +0.000341,84 +0.000438,84 +0.000336,84 +0.000444,84 +0.000336,84 +0.000336,84 +0.000336,84 +0.000335,84 +0.000375,84 +0.000489,84 +0.000336,84 +0.000335,84 +0.000359,84 +0.000494,84 +0.000477,86 +0.000420,86 +0.000358,86 +0.000358,86 +0.000406,86 +0.000458,86 +0.000697,86 +0.000648,86 +0.000407,86 +0.000369,86 +0.000358,86 +0.000499,86 +0.000358,86 +0.000526,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000395,86 +0.000379,86 +0.000358,86 +0.000434,86 +0.000358,86 +0.000358,86 +0.000489,86 +0.000388,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000387,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000532,86 +0.000368,86 +0.000378,86 +0.000379,86 +0.000393,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000472,86 +0.000666,86 +0.000555,86 +0.000358,86 +0.000358,86 +0.000391,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000393,86 +0.000407,86 +0.000358,86 +0.000392,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000384,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000401,86 +0.000502,86 +0.000358,86 +0.000434,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000610,86 +0.000596,86 +0.000358,86 +0.000444,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000393,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000452,88 +0.000402,88 +0.000382,88 +0.000416,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000381,88 +0.000412,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000434,88 +0.000480,88 +0.000382,88 +0.000421,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000426,88 +0.000730,88 +0.000542,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000417,88 +0.000382,88 +0.000416,88 +0.000382,88 +0.000402,88 +0.000382,88 +0.000415,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000431,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000381,88 +0.000382,88 +0.000382,88 +0.000381,88 +0.000382,88 +0.000456,88 +0.000544,88 +0.000403,88 +0.000414,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000381,88 +0.000442,88 +0.000729,88 +0.000707,88 +0.000537,88 +0.000382,88 +0.000382,88 +0.000381,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000628,88 +0.000746,88 +0.000518,88 +0.000409,88 +0.000569,88 +0.000488,88 +0.000509,88 +0.000535,88 +0.000407,88 +0.000392,88 +0.000466,88 +0.000425,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000458,90 +0.000408,90 +0.000408,90 +0.000590,90 +0.000408,90 +0.000488,90 +0.000408,90 +0.000428,90 +0.000408,90 +0.000447,90 +0.000408,90 +0.000447,90 +0.000510,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000450,90 +0.000408,90 +0.000409,90 +0.000408,90 +0.000408,90 +0.000448,90 +0.000428,90 +0.000408,90 +0.000444,90 +0.000446,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000446,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000582,90 +0.000417,90 +0.000428,90 +0.000428,90 +0.000408,90 +0.000440,90 +0.000408,90 +0.000408,90 +0.000438,90 +0.000569,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000444,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000442,90 +0.000418,90 +0.000420,90 +0.000475,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000446,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000534,90 +0.000467,90 +0.000427,90 +0.000429,90 +0.000440,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000418,90 +0.000500,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000441,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000445,92 +0.000435,92 +0.000466,92 +0.000452,92 +0.000476,92 +0.000467,92 +0.000435,92 +0.000435,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000470,92 +0.000444,92 +0.000435,92 +0.000434,92 +0.000435,92 +0.000463,92 +0.000532,92 +0.000593,92 +0.000465,92 +0.000486,92 +0.000435,92 +0.000435,92 +0.000435,92 +0.000435,92 +0.000484,92 +0.000526,92 +0.000434,92 +0.000434,92 +0.000457,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000435,92 +0.000435,92 +0.000434,92 +0.000537,92 +0.000475,92 +0.000434,92 +0.000503,92 +0.000435,92 +0.000435,92 +0.000434,92 +0.000434,92 +0.000465,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000579,92 +0.000434,92 +0.000474,92 +0.000434,92 +0.000435,92 +0.000434,92 +0.000434,92 +0.000435,92 +0.000537,92 +0.000470,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000454,92 +0.000434,92 +0.000470,92 +0.000434,92 +0.000468,92 +0.000478,92 +0.000435,92 +0.000466,92 +0.000434,92 +0.000454,92 +0.000434,92 +0.000473,92 +0.000446,92 +0.000451,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000482,92 +0.000619,92 +0.000445,92 +0.000463,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000484,94 +0.000565,94 +0.000493,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000507,94 +0.000740,94 +0.000755,94 +0.000503,94 +0.000684,94 +0.000541,94 +0.000739,94 +0.000463,94 +0.000472,94 +0.000596,94 +0.000465,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000496,94 +0.000463,94 +0.000580,94 +0.000588,94 +0.000511,94 +0.000507,94 +0.000462,94 +0.000482,94 +0.000495,94 +0.000502,94 +0.000566,94 +0.000463,94 +0.000478,94 +0.000475,94 +0.000477,94 +0.000462,94 +0.000487,94 +0.000463,94 +0.000462,94 +0.000462,94 +0.000463,94 +0.000530,94 +0.000508,94 +0.000463,94 +0.000538,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000496,94 +0.000475,94 +0.000478,94 +0.000526,94 +0.000581,94 +0.000483,94 +0.000487,94 +0.000462,94 +0.000494,94 +0.000463,94 +0.000463,94 +0.000565,94 +0.000606,94 +0.000495,94 +0.000463,94 +0.000563,94 +0.000500,94 +0.000657,94 +0.000624,94 +0.000506,94 +0.000488,94 +0.000515,94 +0.000580,94 +0.000657,94 +0.000534,94 +0.000529,94 +0.000533,94 +0.000540,94 +0.000562,94 +0.000494,94 +0.000537,94 +0.000565,94 +0.000878,94 +0.000931,94 +0.000894,94 +0.000959,94 +0.000763,94 +0.000537,94 +0.000584,94 +0.000978,94 +0.001019,94 +0.001073,94 +0.000778,94 +0.000477,94 +0.000535,96 +0.000582,96 +0.000641,96 +0.000605,96 +0.000597,96 +0.000584,96 +0.000516,96 +0.000534,96 +0.000892,96 +0.000842,96 +0.000522,96 +0.000502,96 +0.000502,96 +0.000609,96 +0.000636,96 +0.000555,96 +0.000502,96 +0.000502,96 +0.000502,96 +0.000502,96 +0.000514,96 +0.000489,96 +0.000504,96 +0.000564,96 +0.000502,96 +0.000707,96 +0.000916,96 +0.000739,96 +0.000601,96 +0.000697,96 +0.000612,96 +0.000552,96 +0.000490,96 +0.000489,96 +0.000489,96 +0.000489,96 +0.000530,96 +0.000490,96 +0.000490,96 +0.000490,96 +0.000490,96 +0.000490,96 +0.000489,96 +0.000560,96 +0.000598,96 +0.000510,96 +0.000529,96 +0.000489,96 +0.000490,96 +0.000490,96 +0.000498,96 +0.000504,96 +0.000568,96 +0.000502,96 +0.000509,96 +0.000977,96 +0.000834,96 +0.000513,96 +0.000615,96 +0.000572,96 +0.000549,96 +0.000577,96 +0.000508,96 +0.000490,96 +0.000490,96 +0.000527,96 +0.000489,96 +0.000498,96 +0.000502,96 +0.000510,96 +0.000490,96 +0.000489,96 +0.000490,96 +0.000549,96 +0.000661,96 +0.000490,96 +0.000534,96 +0.000490,96 +0.000490,96 +0.000490,96 +0.000498,96 +0.000546,96 +0.000549,96 +0.000550,96 +0.000503,96 +0.000772,96 +0.000877,96 +0.000647,96 +0.000529,96 +0.001050,96 +0.000608,96 +0.000727,96 +0.000565,96 +0.000638,96 +0.000607,96 +0.000500,96 +0.000668,96 +0.000520,96 +0.000490,96 +0.000490,96 +0.000576,98 +0.000523,98 +0.000704,98 +0.000562,98 +0.000563,98 +0.000523,98 +0.000523,98 +0.000564,98 +0.000581,98 +0.000601,98 +0.000634,98 +0.000532,98 +0.000543,98 +0.000626,98 +0.000597,98 +0.000598,98 +0.000631,98 +0.000684,98 +0.000586,98 +0.000643,98 +0.000603,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000555,98 +0.000523,98 +0.000523,98 +0.000663,98 +0.000564,98 +0.000582,98 +0.000538,98 +0.000563,98 +0.000523,98 +0.000563,98 +0.000601,98 +0.000588,98 +0.000581,98 +0.000543,98 +0.000586,98 +0.000556,98 +0.000582,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000725,98 +0.000686,98 +0.000551,98 +0.000551,98 +0.000562,98 +0.000550,98 +0.000536,98 +0.000536,98 +0.000567,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000533,98 +0.000722,98 +0.000543,98 +0.000594,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000562,98 +0.000543,98 +0.000605,98 +0.000593,98 +0.000553,98 +0.000562,98 +0.000701,98 +0.000523,98 +0.000763,98 +0.000631,98 +0.000759,98 +0.000582,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000565,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000702,98 +0.000568,98 +0.000563,98 +0.000523,98 +0.000523,98 +0.000552,98 +0.000552,98 +0.000722,98 +0.000579,98 +0.000602,98 +0.000600,100 +0.000567,100 +0.000610,100 +0.000552,100 +0.000695,100 +0.000765,100 +0.000756,100 +0.000605,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000591,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000663,100 +0.000571,100 +0.000591,100 +0.000552,100 +0.000552,100 +0.000592,100 +0.000620,100 +0.000613,100 +0.000572,100 +0.000716,100 +0.000567,100 +0.000675,100 +0.000552,100 +0.000552,100 +0.000766,100 +0.000738,100 +0.000699,100 +0.000611,100 +0.000552,100 +0.000552,100 +0.000598,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000643,100 +0.000704,100 +0.000612,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000591,100 +0.000704,100 +0.000632,100 +0.000552,100 +0.000711,100 +0.000567,100 +0.000650,100 +0.000635,100 +0.000670,100 +0.001211,100 +0.000648,100 +0.000753,100 +0.000768,100 +0.000696,100 +0.000578,100 +0.000625,100 +0.000567,100 +0.000567,100 +0.000603,100 +0.000567,100 +0.000627,100 +0.000567,100 +0.000593,100 +0.000567,100 +0.000567,100 +0.000594,100 +0.000573,100 +0.000749,100 +0.000572,100 +0.000587,100 +0.000678,100 +0.000579,100 +0.000580,100 +0.000552,100 +0.000642,100 +0.000743,100 +0.000706,100 +0.000611,100 +0.000592,100 +0.000553,100 +0.000552,100 +0.000552,100 +0.000553,100 +0.000552,100 +0.000553,100 +0.000595,100 +0.000553,100 +0.000553,100 +0.000752,100 +0.000619,102 +0.000624,102 +0.000599,102 +0.000604,102 +0.000623,102 +0.000663,102 +0.000725,102 +0.000620,102 +0.000668,102 +0.000805,102 +0.000604,102 +0.000584,102 +0.000627,102 +0.000769,102 +0.000735,102 +0.000616,102 +0.000610,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000622,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000741,102 +0.000642,102 +0.000647,102 +0.000604,102 +0.000584,102 +0.000623,102 +0.000662,102 +0.000776,102 +0.000644,102 +0.000625,102 +0.000584,102 +0.000585,102 +0.000584,102 +0.000584,102 +0.000739,102 +0.000766,102 +0.000677,102 +0.000624,102 +0.000585,102 +0.000584,102 +0.000584,102 +0.000620,102 +0.000585,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000606,102 +0.000776,102 +0.000668,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000624,102 +0.000783,102 +0.000739,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000660,102 +0.000688,102 +0.000643,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000618,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000674,102 +0.000626,102 +0.000731,102 +0.000665,102 +0.000584,102 +0.000623,102 +0.000663,102 +0.000700,102 +0.000696,102 +0.000584,102 +0.000584,102 +0.000585,102 +0.000595,102 +0.000630,102 +0.000584,102 +0.000623,102 +0.000604,102 +0.000623,102 +0.000585,102 +0.000584,102 +0.000627,102 +0.000584,102 +0.000631,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000663,104 +0.000839,104 +0.000650,104 +0.000641,104 +0.000617,104 +0.000617,104 +0.000691,104 +0.000753,104 +0.000980,104 +0.000890,104 +0.000617,104 +0.000650,104 +0.000626,104 +0.000617,104 +0.001098,104 +0.000670,104 +0.000933,104 +0.000782,104 +0.000709,104 +0.000728,104 +0.000733,104 +0.000617,104 +0.000644,104 +0.000617,104 +0.000784,104 +0.000660,104 +0.000646,104 +0.000617,104 +0.000648,104 +0.000784,104 +0.000789,104 +0.000865,104 +0.000654,104 +0.000633,104 +0.000655,104 +0.000617,104 +0.000618,104 +0.000638,104 +0.000656,104 +0.000617,104 +0.000698,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000653,104 +0.000617,104 +0.000617,104 +0.000808,104 +0.000636,104 +0.000657,104 +0.000654,104 +0.000617,104 +0.000794,104 +0.000804,104 +0.000651,104 +0.000640,104 +0.000643,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000656,104 +0.000681,104 +0.000656,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000642,104 +0.000617,104 +0.000617,104 +0.000680,104 +0.000785,104 +0.000661,104 +0.000648,104 +0.000617,104 +0.000656,104 +0.000754,104 +0.000617,104 +0.000617,104 +0.000644,104 +0.000617,104 +0.000633,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000685,104 +0.000637,104 +0.000656,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000630,104 +0.000679,106 +0.000652,106 +0.000652,106 +0.000651,106 +0.000836,106 +0.000702,106 +0.000674,106 +0.000691,106 +0.000803,106 +0.000652,106 +0.000652,106 +0.000696,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000681,106 +0.000691,106 +0.000671,106 +0.000690,106 +0.000651,106 +0.000653,106 +0.000679,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000744,106 +0.000651,106 +0.000652,106 +0.000651,106 +0.000652,106 +0.000652,106 +0.000656,106 +0.000654,106 +0.000652,106 +0.000651,106 +0.000652,106 +0.000652,106 +0.000654,106 +0.000652,106 +0.000691,106 +0.000652,106 +0.000691,106 +0.000651,106 +0.000656,106 +0.000652,106 +0.000651,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000654,106 +0.000711,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000656,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000656,106 +0.000654,106 +0.000652,106 +0.000652,106 +0.001086,106 +0.000704,106 +0.000987,106 +0.000778,106 +0.000766,106 +0.000692,106 +0.000831,106 +0.000699,106 +0.000692,106 +0.000752,106 +0.000652,106 +0.000651,106 +0.000652,106 +0.000652,106 +0.000685,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000690,106 +0.000652,106 +0.000652,106 +0.000651,106 +0.000691,106 +0.000652,106 +0.000696,106 +0.000652,106 +0.000652,106 +0.000651,106 +0.000652,106 +0.000652,106 +0.000730,108 +0.000690,108 +0.000752,108 +0.000689,108 +0.000689,108 +0.000726,108 +0.000690,108 +0.000689,108 +0.000690,108 +0.000690,108 +0.000769,108 +0.000729,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000728,108 +0.000711,108 +0.000728,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000694,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000753,108 +0.000709,108 +0.000715,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000696,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000700,108 +0.000721,108 +0.000728,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000694,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000752,108 +0.000692,108 +0.000690,108 +0.000690,108 +0.000689,108 +0.000690,108 +0.000689,108 +0.000694,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000689,108 +0.000731,108 +0.000690,108 +0.000729,108 +0.000690,108 +0.000690,108 +0.000694,108 +0.000689,108 +0.000689,108 +0.000690,108 +0.000689,108 +0.000690,108 +0.000711,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000693,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000691,108 +0.000721,108 +0.000698,108 +0.000728,108 +0.000689,108 +0.000694,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000691,108 +0.000689,108 +0.000689,108 +0.000739,110 +0.000726,110 +0.000726,110 +0.000731,110 +0.000726,110 +0.000785,110 +0.000726,110 +0.000726,110 +0.000729,110 +0.000727,110 +0.000726,110 +0.000765,110 +0.000726,110 +0.000767,110 +0.000882,110 +0.000767,110 +0.000752,110 +0.000763,110 +0.000796,110 +0.000783,110 +0.000819,110 +0.000881,110 +0.000726,110 +0.000726,110 +0.000764,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000761,110 +0.000780,110 +0.000726,110 +0.000748,110 +0.000757,110 +0.000757,110 +0.000772,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000764,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000772,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000729,110 +0.000788,110 +0.000890,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000769,110 +0.000754,110 +0.000767,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000749,110 +0.000726,110 +0.000728,110 +0.000737,110 +0.000922,110 +0.000800,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000749,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000766,110 +0.000746,110 +0.000765,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000763,110 +0.000729,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000765,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000749,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000751,110 +0.000817,112 +0.000763,112 +0.000803,112 +0.000764,112 +0.000766,112 +0.000763,112 +0.000764,112 +0.000763,112 +0.000763,112 +0.000809,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000765,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000768,112 +0.000763,112 +0.000802,112 +0.000802,112 +0.000763,112 +0.000766,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000767,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000767,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000767,112 +0.000763,112 +0.000802,112 +0.000763,112 +0.000895,112 +0.000818,112 +0.000801,112 +0.000821,112 +0.000797,112 +0.000868,112 +0.000816,112 +0.000763,112 +0.000783,112 +0.000763,112 +0.000763,112 +0.000786,112 +0.000764,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000788,112 +0.000764,112 +0.000763,112 +0.000802,112 +0.000763,112 +0.000825,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000857,112 +0.000764,112 +0.000764,112 +0.000763,112 +0.000763,112 +0.000788,112 +0.000764,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000801,112 +0.000822,112 +0.000946,112 +0.000824,112 +0.000814,112 +0.000841,112 +0.000804,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000800,112 +0.000763,112 +0.000763,112 +0.000837,112 +0.000916,112 +0.000820,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000827,114 +0.000849,114 +0.000812,114 +0.000811,114 +0.000812,114 +0.000811,114 +0.000885,114 +0.000831,114 +0.000851,114 +0.000812,114 +0.000812,114 +0.000850,114 +0.000812,114 +0.000812,114 +0.000812,114 +0.000812,114 +0.000836,114 +0.000812,114 +0.000812,114 +0.000812,114 +0.000812,114 +0.000847,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000874,114 +0.000811,114 +0.000851,114 +0.000812,114 +0.000839,114 +0.000811,114 +0.000812,114 +0.000811,114 +0.000811,114 +0.000834,114 +0.000812,114 +0.000811,114 +0.000811,114 +0.000862,114 +0.000836,114 +0.000812,114 +0.000812,114 +0.000812,114 +0.000812,114 +0.000839,114 +0.000812,114 +0.000851,114 +0.000851,114 +0.000812,114 +0.000837,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000839,114 +0.000812,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000816,114 +0.000812,114 +0.000812,114 +0.000811,114 +0.000864,114 +0.000812,114 +0.000812,114 +0.000850,114 +0.000812,114 +0.000858,114 +0.000978,114 +0.000837,114 +0.000856,114 +0.000860,114 +0.000867,114 +0.000872,114 +0.000832,114 +0.000812,114 +0.000812,114 +0.000847,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000835,114 +0.000811,114 +0.000812,114 +0.000811,114 +0.000851,114 +0.000876,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000845,114 +0.000814,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000816,114 +0.000811,114 +0.000870,116 +0.000850,116 +0.000850,116 +0.000932,116 +0.000851,116 +0.000850,116 +0.000850,116 +0.000925,116 +0.000890,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000852,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000854,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000931,116 +0.000851,116 +0.000851,116 +0.000850,116 +0.000850,116 +0.000920,116 +0.000850,116 +0.000889,116 +0.000850,116 +0.000850,116 +0.000873,116 +0.000851,116 +0.000850,116 +0.000851,116 +0.000855,116 +0.000851,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000853,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000855,116 +0.000890,116 +0.000889,116 +0.000850,116 +0.000852,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000854,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000852,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000855,116 +0.000850,116 +0.000890,116 +0.000850,116 +0.000889,116 +0.000853,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000856,116 +0.000851,116 +0.000850,116 +0.000865,116 +0.000855,116 +0.000851,116 +0.000850,116 +0.000851,116 +0.000850,116 +0.000857,116 +0.000850,116 +0.000870,116 +0.000875,116 +0.000889,116 +0.000852,116 +0.000897,116 +0.000883,116 +0.000907,116 +0.000925,116 +0.000870,116 +0.000907,116 +0.000859,116 +0.000850,116 +0.000873,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000932,118 +0.000889,118 +0.000890,118 +0.000928,118 +0.000889,118 +0.000951,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000925,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000891,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000919,118 +0.000971,118 +0.000889,118 +0.000889,118 +0.000950,118 +0.000928,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000894,118 +0.000889,118 +0.000890,118 +0.000889,118 +0.000891,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000894,118 +0.000889,118 +0.000890,118 +0.000889,118 +0.000951,118 +0.000889,118 +0.000929,118 +0.000889,118 +0.000889,118 +0.000893,118 +0.000889,118 +0.000913,118 +0.000889,118 +0.000897,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000897,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000895,118 +0.000928,118 +0.000889,118 +0.000928,118 +0.000895,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000895,118 +0.000889,118 +0.000889,118 +0.000906,118 +0.000898,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000900,118 +0.000889,118 +0.000928,118 +0.000928,118 +0.000891,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000893,118 +0.000889,118 +0.000888,118 +0.000889,118 +0.000891,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000894,118 +0.000889,118 +0.000933,118 +0.000889,118 +0.000930,118 +0.000889,118 +0.000995,120 +0.000992,120 +0.001008,120 +0.000973,120 +0.000965,120 +0.001004,120 +0.000957,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000964,120 +0.000935,120 +0.000937,120 +0.000974,120 +0.001011,120 +0.000935,120 +0.000937,120 +0.000935,120 +0.000958,120 +0.000935,120 +0.000936,120 +0.000935,120 +0.000940,120 +0.000936,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000973,120 +0.001014,120 +0.000936,120 +0.000975,120 +0.000969,120 +0.000974,120 +0.000936,120 +0.000935,120 +0.000969,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000940,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000958,120 +0.000935,120 +0.000935,120 +0.000965,120 +0.000935,120 +0.001004,120 +0.000975,120 +0.000935,120 +0.000935,120 +0.000997,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000941,120 +0.000935,120 +0.000937,120 +0.000935,120 +0.000937,120 +0.000935,120 +0.000937,120 +0.000935,120 +0.000935,120 +0.000937,120 +0.000974,120 +0.000974,120 +0.000935,120 +0.000940,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000937,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000940,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000934,120 +0.000937,120 +0.000974,120 +0.000935,120 +0.000974,120 +0.000940,120 +0.000935,120 +0.000961,120 +0.000936,120 +0.000941,120 +0.000938,120 +0.000935,120 +0.000938,120 +0.000941,120 +0.000936,120 +0.000936,120 +0.000995,120 +0.000941,120 +0.001005,122 +0.000983,122 +0.001022,122 +0.001049,122 +0.000983,122 +0.000983,122 +0.001040,122 +0.001136,122 +0.001051,122 +0.001031,122 +0.001070,122 +0.001012,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.001006,122 +0.000983,122 +0.000984,122 +0.001022,122 +0.001019,122 +0.001012,122 +0.000983,122 +0.000983,122 +0.001006,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000988,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.001006,122 +0.001090,122 +0.001003,122 +0.000983,122 +0.001051,122 +0.001022,122 +0.000983,122 +0.000983,122 +0.000985,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000985,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000988,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000985,122 +0.001027,122 +0.001022,122 +0.000983,122 +0.000987,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000985,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000987,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000985,122 +0.000983,122 +0.001022,122 +0.001022,122 +0.000988,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000990,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.001009,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000986,122 +0.001022,122 +0.000983,122 +0.001022,122 +0.000989,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000985,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000985,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.001059,124 +0.001033,124 +0.001073,124 +0.001073,124 +0.001036,124 +0.001033,124 +0.001033,124 +0.001158,124 +0.001078,124 +0.001099,124 +0.001071,124 +0.001124,124 +0.001057,124 +0.001033,124 +0.001033,124 +0.001057,124 +0.001034,124 +0.001034,124 +0.001072,124 +0.001098,124 +0.001034,124 +0.001034,124 +0.001057,124 +0.001034,124 +0.001034,124 +0.001034,124 +0.001038,124 +0.001034,124 +0.001034,124 +0.001034,124 +0.001068,124 +0.001092,124 +0.001033,124 +0.001033,124 +0.001109,124 +0.001073,124 +0.001033,124 +0.001033,124 +0.001036,124 +0.001033,124 +0.001033,124 +0.001033,124 +0.001038,124 +0.001033,124 +0.001033,124 +0.001036,124 +0.001034,124 +0.001033,124 +0.001033,124 +0.001038,124 +0.001072,124 +0.001072,124 +0.001034,124 +0.001036,124 +0.001034,124 +0.001034,124 +0.001034,124 +0.001038,124 +0.001034,124 +0.001034,124 +0.001034,124 +0.001036,124 +0.001033,124 +0.001034,124 +0.001034,124 +0.001038,124 +0.001073,124 +0.001073,124 +0.001036,124 +0.001034,124 +0.001034,124 +0.001034,124 +0.001061,124 +0.001033,124 +0.001033,124 +0.001033,124 +0.001036,124 +0.001033,124 +0.001033,124 +0.001033,124 +0.001059,124 +0.001033,124 +0.001073,124 +0.001072,124 +0.001067,124 +0.001033,124 +0.001033,124 +0.001033,124 +0.001038,124 +0.001033,124 +0.001033,124 +0.001036,124 +0.001033,124 +0.001033,124 +0.001033,124 +0.001038,124 +0.001033,124 +0.001033,124 +0.001073,124 +0.001075,124 +0.001105,126 +0.001084,126 +0.001175,126 +0.001258,126 +0.001130,126 +0.001150,126 +0.001208,126 +0.001215,126 +0.001107,126 +0.001083,126 +0.001121,126 +0.001168,126 +0.001122,126 +0.001185,126 +0.001123,126 +0.001111,126 +0.001149,126 +0.001120,126 +0.001168,126 +0.001139,126 +0.001147,126 +0.001169,126 +0.001084,126 +0.001149,126 +0.001201,126 +0.001249,126 +0.001189,126 +0.001217,126 +0.001123,126 +0.001168,126 +0.001228,126 +0.001204,126 +0.001151,126 +0.001149,126 +0.001206,126 +0.001173,126 +0.001381,126 +0.001185,126 +0.001208,126 +0.001172,126 +0.001250,126 +0.001249,126 +0.001187,126 +0.001148,126 +0.001207,126 +0.001239,126 +0.001200,126 +0.001223,126 +0.001148,126 +0.001199,126 +0.001234,126 +0.001242,126 +0.001171,126 +0.001173,126 +0.001230,126 +0.001272,126 +0.001191,126 +0.001209,126 +0.001169,126 +0.001210,126 +0.001245,126 +0.001253,126 +0.001148,126 +0.001197,126 +0.001235,126 +0.001149,126 +0.001150,126 +0.001207,126 +0.001209,126 +0.001245,126 +0.001266,126 +0.001189,126 +0.001210,126 +0.001300,126 +0.001375,126 +0.001252,126 +0.001221,126 +0.001355,126 +0.001453,126 +0.001288,126 +0.001281,126 +0.001253,126 +0.001228,126 +0.001283,126 +0.001296,126 +0.001215,126 +0.001245,126 +0.001442,126 +0.001202,126 +0.001205,126 +0.001170,126 +0.001228,126 +0.001194,126 +0.001167,126 +0.001169,126 +0.001238,126 +0.001135,126 +0.001112,126 +0.001131,126 +0.001218,126 +0.001382,128 +0.001331,128 +0.001270,128 +0.001313,128 +0.001256,128 +0.001326,128 +0.001293,128 +0.001140,128 +0.001395,128 +0.001199,128 +0.001249,128 +0.001276,128 +0.001238,128 +0.001316,128 +0.001350,128 +0.001339,128 +0.001203,128 +0.001262,128 +0.001302,128 +0.001210,128 +0.001162,128 +0.001297,128 +0.001271,128 +0.001223,128 +0.001257,128 +0.001159,128 +0.001138,128 +0.001228,128 +0.001189,128 +0.001330,128 +0.001185,128 +0.001196,128 +0.001140,128 +0.001139,128 +0.001293,128 +0.001178,128 +0.001178,128 +0.001178,128 +0.001139,128 +0.001138,128 +0.001139,128 +0.001262,128 +0.001179,128 +0.001139,128 +0.001172,128 +0.001140,128 +0.001139,128 +0.001139,128 +0.001178,128 +0.001179,128 +0.001158,128 +0.001211,128 +0.001139,128 +0.001139,128 +0.001139,128 +0.001175,128 +0.001139,128 +0.001140,128 +0.001161,128 +0.001139,128 +0.001139,128 +0.001138,128 +0.001183,128 +0.001139,128 +0.001178,128 +0.001173,128 +0.001139,128 +0.001240,128 +0.001419,128 +0.001814,128 +0.001751,128 +0.001291,128 +0.001630,128 +0.001826,128 +0.001257,128 +0.001138,128 +0.001217,128 +0.001177,128 +0.001138,128 +0.001137,128 +0.001177,128 +0.001278,128 +0.001591,128 +0.001900,128 +0.001170,128 +0.001295,128 +0.001161,128 +0.001207,128 +0.001140,128 +0.001270,128 +0.001356,128 +0.001140,128 +0.001186,128 +0.001140,128 +0.001188,128 +0.001189,128 +0.001161,128 +0.001139,128 +0.001160,128 +0.001239,128 +0.001271,130 +0.001282,130 +0.001341,130 +0.001218,130 +0.001237,130 +0.001244,130 +0.001288,130 +0.001208,130 +0.001301,130 +0.001274,130 +0.001237,130 +0.001239,130 +0.001224,130 +0.001258,130 +0.001198,130 +0.001244,130 +0.001263,130 +0.001237,130 +0.001243,130 +0.001323,130 +0.001227,130 +0.001264,130 +0.001210,130 +0.001232,130 +0.001414,130 +0.001217,130 +0.001218,130 +0.001241,130 +0.001198,130 +0.001239,130 +0.001235,130 +0.001243,130 +0.001323,130 +0.001197,130 +0.001231,130 +0.001198,130 +0.001264,130 +0.001457,130 +0.001198,130 +0.001198,130 +0.001387,130 +0.001198,130 +0.001232,130 +0.001277,130 +0.001321,130 +0.001276,130 +0.001322,130 +0.001198,130 +0.001198,130 +0.001263,130 +0.001405,130 +0.001230,130 +0.001230,130 +0.001298,130 +0.001347,130 +0.001305,130 +0.001444,130 +0.001218,130 +0.001217,130 +0.001365,130 +0.001294,130 +0.001370,130 +0.001236,130 +0.001350,130 +0.001473,130 +0.001258,130 +0.001375,130 +0.001332,130 +0.001422,130 +0.001261,130 +0.001310,130 +0.001338,130 +0.001298,130 +0.001352,130 +0.001393,130 +0.001251,130 +0.001344,130 +0.001407,130 +0.001295,130 +0.001275,130 +0.001400,130 +0.001198,130 +0.001439,130 +0.001305,130 +0.001198,130 +0.001288,130 +0.001342,130 +0.001197,130 +0.001290,130 +0.001473,130 +0.001198,130 +0.001307,130 +0.001305,130 +0.001238,130 +0.001395,130 +0.001226,130 +0.001198,130 +0.001313,130 +0.001309,130 +0.001307,130 +0.001281,132 +0.001541,132 +0.001270,132 +0.001248,132 +0.001384,132 +0.001249,132 +0.001442,132 +0.001331,132 +0.001250,132 +0.001361,132 +0.001277,132 +0.001374,132 +0.001268,132 +0.001442,132 +0.001249,132 +0.001249,132 +0.001248,132 +0.001292,132 +0.001249,132 +0.001328,132 +0.001322,132 +0.001249,132 +0.001248,132 +0.001282,132 +0.001376,132 +0.001268,132 +0.001433,132 +0.001352,132 +0.001316,132 +0.001407,132 +0.001313,132 +0.001351,132 +0.001462,132 +0.001270,132 +0.001269,132 +0.001285,132 +0.001357,132 +0.001288,132 +0.001282,132 +0.001390,132 +0.001249,132 +0.001288,132 +0.001248,132 +0.001332,132 +0.001302,132 +0.001329,132 +0.001249,132 +0.001287,132 +0.001249,132 +0.001353,132 +0.001323,132 +0.001249,132 +0.001250,132 +0.001285,132 +0.001249,132 +0.001249,132 +0.001282,132 +0.001268,132 +0.001332,132 +0.001249,132 +0.001284,132 +0.001248,132 +0.001249,132 +0.001282,132 +0.001249,132 +0.001250,132 +0.001276,132 +0.001249,132 +0.001249,132 +0.001272,132 +0.001268,132 +0.001288,132 +0.001274,132 +0.001249,132 +0.001249,132 +0.001271,132 +0.001249,132 +0.001248,132 +0.001249,132 +0.001254,132 +0.001248,132 +0.001249,132 +0.001272,132 +0.001249,132 +0.001268,132 +0.001338,132 +0.001249,132 +0.001248,132 +0.001272,132 +0.001249,132 +0.001249,132 +0.001254,132 +0.001249,132 +0.001249,132 +0.001251,132 +0.001249,132 +0.001249,132 +0.001268,132 +0.001313,132 +0.001249,132 +0.001338,134 +0.001311,134 +0.001308,134 +0.001308,134 +0.001524,134 +0.001376,134 +0.001356,134 +0.001469,134 +0.001308,134 +0.001395,134 +0.001349,134 +0.001330,134 +0.001510,134 +0.001382,134 +0.001308,134 +0.001352,134 +0.001347,134 +0.001410,134 +0.001334,134 +0.001391,134 +0.001308,134 +0.001364,134 +0.001347,134 +0.001308,134 +0.001433,134 +0.001308,134 +0.001411,134 +0.001380,134 +0.001308,134 +0.001411,134 +0.001345,134 +0.001361,134 +0.001307,134 +0.001344,134 +0.001372,134 +0.001346,134 +0.001334,134 +0.001307,134 +0.001413,134 +0.001371,134 +0.001308,134 +0.001404,134 +0.001348,134 +0.001328,134 +0.001308,134 +0.001344,134 +0.001359,134 +0.001355,134 +0.001334,134 +0.001307,134 +0.001307,134 +0.001416,134 +0.001328,134 +0.001409,134 +0.001343,134 +0.001365,134 +0.001308,134 +0.001346,134 +0.001327,134 +0.001388,134 +0.001335,134 +0.001308,134 +0.001308,134 +0.001449,134 +0.001348,134 +0.001340,134 +0.001449,134 +0.001307,134 +0.001322,134 +0.001437,134 +0.001322,134 +0.001406,134 +0.001347,134 +0.001307,134 +0.001464,134 +0.001407,134 +0.001348,134 +0.001368,134 +0.001487,134 +0.001438,134 +0.001416,134 +0.001460,134 +0.001642,134 +0.001396,134 +0.001350,134 +0.001414,134 +0.001494,134 +0.001531,134 +0.001366,134 +0.001430,134 +0.001381,134 +0.001490,134 +0.001450,134 +0.001369,134 +0.001503,134 +0.001601,134 +0.001517,134 +0.001411,134 +0.001652,134 +0.001479,134 +0.001538,136 +0.001451,136 +0.001496,136 +0.001529,136 +0.001574,136 +0.001464,136 +0.001494,136 +0.001499,136 +0.001571,136 +0.001559,136 +0.001518,136 +0.001445,136 +0.001431,136 +0.001540,136 +0.001456,136 +0.001468,136 +0.001405,136 +0.001430,136 +0.001429,136 +0.001392,136 +0.001369,136 +0.001417,136 +0.001369,136 +0.001514,136 +0.001561,136 +0.001406,136 +0.001490,136 +0.001528,136 +0.001512,136 +0.001735,136 +0.001451,136 +0.001446,136 +0.001588,136 +0.001405,136 +0.001478,136 +0.001445,136 +0.001426,136 +0.001501,136 +0.001555,136 +0.001631,136 +0.001559,136 +0.001444,136 +0.001439,136 +0.001472,136 +0.001405,136 +0.002002,136 +0.001684,136 +0.001495,136 +0.001602,136 +0.001464,136 +0.001550,136 +0.001497,136 +0.001465,136 +0.001462,136 +0.001777,136 +0.002520,136 +0.002108,136 +0.001403,136 +0.001556,136 +0.001532,136 +0.001485,136 +0.001530,136 +0.001473,136 +0.001464,136 +0.001452,136 +0.001369,136 +0.002016,136 +0.001433,136 +0.001533,136 +0.001503,136 +0.001523,136 +0.001506,136 +0.001492,136 +0.001368,136 +0.001444,136 +0.001471,136 +0.001368,136 +0.001980,136 +0.001405,136 +0.001533,136 +0.001496,136 +0.001527,136 +0.001513,136 +0.001481,136 +0.001369,136 +0.001475,136 +0.001472,136 +0.001369,136 +0.002042,136 +0.001405,136 +0.001531,136 +0.001522,136 +0.001476,136 +0.001575,136 +0.001431,136 +0.001369,136 +0.001482,136 +0.001431,136 +0.001368,136 +0.002021,136 +0.001514,138 +0.001650,138 +0.001551,138 +0.001637,138 +0.001606,138 +0.001429,138 +0.001473,138 +0.001531,138 +0.001468,138 +0.001802,138 +0.001543,138 +0.001567,138 +0.001600,138 +0.001570,138 +0.001761,138 +0.001498,138 +0.001508,138 +0.001505,138 +0.001777,138 +0.002262,138 +0.001464,138 +0.001616,138 +0.001670,138 +0.001590,138 +0.001705,138 +0.001457,138 +0.001458,138 +0.001426,138 +0.001721,138 +0.001468,138 +0.001848,138 +0.001652,138 +0.001651,138 +0.001635,138 +0.001545,138 +0.001519,138 +0.001486,138 +0.001428,138 +0.001640,138 +0.001514,138 +0.001677,138 +0.001697,138 +0.001626,138 +0.001468,138 +0.001502,138 +0.001592,138 +0.001525,138 +0.001428,138 +0.001428,138 +0.001586,138 +0.001448,138 +0.001775,138 +0.001582,138 +0.001572,138 +0.001489,138 +0.001526,138 +0.001542,138 +0.001500,138 +0.001429,138 +0.001462,138 +0.001708,138 +0.001428,138 +0.001802,138 +0.001744,138 +0.001468,138 +0.001454,138 +0.001551,138 +0.001566,138 +0.001428,138 +0.001448,138 +0.001684,138 +0.001488,138 +0.001535,138 +0.001780,138 +0.001649,138 +0.001484,138 +0.001455,138 +0.001677,138 +0.001542,138 +0.001429,138 +0.001722,138 +0.001618,138 +0.001505,138 +0.001809,138 +0.001637,138 +0.001648,138 +0.001510,138 +0.001488,138 +0.001589,138 +0.001429,138 +0.001472,138 +0.001452,138 +0.001738,138 +0.001428,138 +0.001784,138 +0.001685,138 +0.001426,138 +0.001426,138 +0.001519,138 +0.001512,138 +0.001563,140 +0.001492,140 +0.001726,140 +0.001577,140 +0.001791,140 +0.001657,140 +0.001654,140 +0.001508,140 +0.001534,140 +0.001586,140 +0.001572,140 +0.001492,140 +0.001492,140 +0.001694,140 +0.001491,140 +0.001866,140 +0.001774,140 +0.001491,140 +0.001550,140 +0.001545,140 +0.001579,140 +0.001511,140 +0.001491,140 +0.001779,140 +0.001515,140 +0.001853,140 +0.001671,140 +0.001677,140 +0.001491,140 +0.001491,140 +0.001635,140 +0.001491,140 +0.001491,140 +0.001702,140 +0.001624,140 +0.001690,140 +0.001754,140 +0.001662,140 +0.001551,140 +0.001553,140 +0.001698,140 +0.001552,140 +0.001530,140 +0.001492,140 +0.001767,140 +0.001529,140 +0.001832,140 +0.001804,140 +0.001491,140 +0.001536,140 +0.001573,140 +0.001594,140 +0.001522,140 +0.001492,140 +0.001757,140 +0.001588,140 +0.001795,140 +0.001798,140 +0.001491,140 +0.001553,140 +0.001522,140 +0.001627,140 +0.001520,140 +0.001492,140 +0.001721,140 +0.001573,140 +0.001679,140 +0.001630,140 +0.001491,140 +0.001491,140 +0.001515,140 +0.001663,140 +0.001605,140 +0.001488,140 +0.001488,140 +0.001664,140 +0.001777,140 +0.001624,140 +0.001492,140 +0.001653,140 +0.001681,140 +0.001615,140 +0.001893,140 +0.001503,140 +0.001758,140 +0.001751,140 +0.001726,140 +0.001625,140 +0.001786,140 +0.001747,140 +0.001649,140 +0.001676,140 +0.001830,140 +0.001711,140 +0.001648,140 +0.001767,140 +0.001934,140 +0.002862,140 +0.002059,140 +0.001580,140 +0.001746,142 +0.001996,142 +0.001840,142 +0.001968,142 +0.002185,142 +0.002980,142 +0.001803,142 +0.001790,142 +0.001804,142 +0.001690,142 +0.001770,142 +0.001839,142 +0.001808,142 +0.002382,142 +0.002844,142 +0.001718,142 +0.001732,142 +0.001741,142 +0.001729,142 +0.001723,142 +0.001685,142 +0.001658,142 +0.002594,142 +0.002747,142 +0.001830,142 +0.001847,142 +0.001883,142 +0.001670,142 +0.001867,142 +0.001723,142 +0.002894,142 +0.002569,142 +0.001765,142 +0.001787,142 +0.001901,142 +0.001879,142 +0.002013,142 +0.001895,142 +0.001922,142 +0.002034,142 +0.001923,142 +0.001942,142 +0.001998,142 +0.002005,142 +0.002019,142 +0.001986,142 +0.001897,142 +0.001892,142 +0.001736,142 +0.001796,142 +0.001669,142 +0.001709,142 +0.001752,142 +0.001864,142 +0.001761,142 +0.002032,142 +0.001679,142 +0.001722,142 +0.001687,142 +0.001759,142 +0.001791,142 +0.001981,142 +0.002008,142 +0.002015,142 +0.002084,142 +0.002184,142 +0.002038,142 +0.002001,142 +0.002046,142 +0.002055,142 +0.002038,142 +0.001952,142 +0.001788,142 +0.002505,142 +0.001885,142 +0.001688,142 +0.001738,142 +0.001726,142 +0.001853,142 +0.001762,142 +0.001856,142 +0.001809,142 +0.002486,142 +0.001766,142 +0.001758,142 +0.001725,142 +0.001789,142 +0.001824,142 +0.001703,142 +0.001824,142 +0.001721,142 +0.002387,142 +0.001682,142 +0.001762,142 +0.001794,142 +0.001795,142 +0.001745,142 +0.001700,142 +0.001879,142 +0.001720,142 +0.001862,144 +0.001783,144 +0.001818,144 +0.001788,144 +0.001835,144 +0.001743,144 +0.001714,144 +0.001984,144 +0.001873,144 +0.002296,144 +0.001929,144 +0.001804,144 +0.001860,144 +0.001873,144 +0.002026,144 +0.001922,144 +0.001990,144 +0.001850,144 +0.001841,144 +0.001818,144 +0.001828,144 +0.001869,144 +0.001881,144 +0.001881,144 +0.001819,144 +0.001855,144 +0.001772,144 +0.001820,144 +0.001894,144 +0.001840,144 +0.001848,144 +0.001992,144 +0.001875,144 +0.001749,144 +0.001878,144 +0.001840,144 +0.001868,144 +0.001814,144 +0.001870,144 +0.001820,144 +0.001867,144 +0.001851,144 +0.001843,144 +0.001905,144 +0.001859,144 +0.001851,144 +0.001825,144 +0.001843,144 +0.001842,144 +0.001934,144 +0.001805,144 +0.001837,144 +0.001922,144 +0.001871,144 +0.001777,144 +0.001845,144 +0.001885,144 +0.001735,144 +0.001769,144 +0.001764,144 +0.001813,144 +0.001879,144 +0.001738,144 +0.001768,144 +0.001809,144 +0.001720,144 +0.001778,144 +0.001797,144 +0.001730,144 +0.001760,144 +0.001766,144 +0.001806,144 +0.001822,144 +0.001879,144 +0.001857,144 +0.001858,144 +0.001913,144 +0.002014,144 +0.001948,144 +0.001844,144 +0.001948,144 +0.001865,144 +0.001881,144 +0.001819,144 +0.001908,144 +0.001920,144 +0.002060,144 +0.001885,144 +0.002011,144 +0.001915,144 +0.001939,144 +0.001870,144 +0.001824,144 +0.001755,144 +0.001816,144 +0.001959,144 +0.001760,144 +0.001881,144 +0.001774,144 +0.001748,144 +0.001905,146 +0.001885,146 +0.001791,146 +0.001961,146 +0.001898,146 +0.001862,146 +0.001960,146 +0.001887,146 +0.001832,146 +0.001839,146 +0.001875,146 +0.001855,146 +0.001900,146 +0.001870,146 +0.001909,146 +0.001862,146 +0.001840,146 +0.001859,146 +0.001834,146 +0.001819,146 +0.001862,146 +0.002148,146 +0.002027,146 +0.001807,146 +0.001939,146 +0.001817,146 +0.001863,146 +0.001835,146 +0.001857,146 +0.001835,146 +0.001915,146 +0.001869,146 +0.001875,146 +0.001886,146 +0.001841,146 +0.001889,146 +0.001834,146 +0.001888,146 +0.001857,146 +0.001886,146 +0.001835,146 +0.001885,146 +0.001837,146 +0.001852,146 +0.001886,146 +0.001918,146 +0.001821,146 +0.001919,146 +0.001934,146 +0.001846,146 +0.001958,146 +0.001918,146 +0.001878,146 +0.001852,146 +0.001881,146 +0.001852,146 +0.001906,146 +0.001880,146 +0.001850,146 +0.001868,146 +0.001860,146 +0.001854,146 +0.001806,146 +0.001794,146 +0.001779,146 +0.001919,146 +0.001855,146 +0.001830,146 +0.002055,146 +0.001954,146 +0.002077,146 +0.001872,146 +0.001821,146 +0.001880,146 +0.001840,146 +0.001889,146 +0.001818,146 +0.001952,146 +0.001826,146 +0.001766,146 +0.001839,146 +0.001794,146 +0.001780,146 +0.001905,146 +0.002034,146 +0.001896,146 +0.001952,146 +0.001833,146 +0.001926,146 +0.002057,146 +0.001924,146 +0.001887,146 +0.001996,146 +0.001829,146 +0.001916,146 +0.001874,146 +0.001916,146 +0.001858,146 +0.001760,146 +0.001866,146 +0.001911,148 +0.001937,148 +0.001896,148 +0.001991,148 +0.001954,148 +0.001922,148 +0.001847,148 +0.001874,148 +0.001895,148 +0.001870,148 +0.001988,148 +0.002018,148 +0.001926,148 +0.001982,148 +0.001928,148 +0.001948,148 +0.001908,148 +0.001924,148 +0.001959,148 +0.001879,148 +0.001966,148 +0.002189,148 +0.001985,148 +0.001938,148 +0.001946,148 +0.001902,148 +0.002000,148 +0.001996,148 +0.001961,148 +0.002127,148 +0.002068,148 +0.001933,148 +0.001979,148 +0.001960,148 +0.002116,148 +0.001997,148 +0.001877,148 +0.002011,148 +0.001897,148 +0.001895,148 +0.001912,148 +0.001844,148 +0.001869,148 +0.001946,148 +0.002006,148 +0.001886,148 +0.001975,148 +0.001852,148 +0.001875,148 +0.001893,148 +0.001875,148 +0.001826,148 +0.001950,148 +0.001973,148 +0.001922,148 +0.001887,148 +0.001872,148 +0.001906,148 +0.001862,148 +0.001892,148 +0.001886,148 +0.002109,148 +0.002104,148 +0.002171,148 +0.002114,148 +0.002102,148 +0.002161,148 +0.002132,148 +0.001975,148 +0.001950,148 +0.001905,148 +0.001915,148 +0.002150,148 +0.001955,148 +0.001946,148 +0.001897,148 +0.001895,148 +0.001987,148 +0.001925,148 +0.001853,148 +0.001973,148 +0.001946,148 +0.001916,148 +0.001968,148 +0.001909,148 +0.001935,148 +0.002010,148 +0.002004,148 +0.001991,148 +0.002028,148 +0.001887,148 +0.001935,148 +0.001936,148 +0.001911,148 +0.001951,148 +0.002074,148 +0.001929,148 +0.001922,148 +0.001936,148 +0.001940,148 +0.002027,150 +0.002057,150 +0.001981,150 +0.002110,150 +0.002039,150 +0.002057,150 +0.002001,150 +0.002028,150 +0.002001,150 +0.002032,150 +0.001992,150 +0.002110,150 +0.001971,150 +0.002019,150 +0.001990,150 +0.002015,150 +0.001988,150 +0.002021,150 +0.001989,150 +0.002062,150 +0.002077,150 +0.001940,150 +0.001878,150 +0.002521,150 +0.002403,150 +0.002418,150 +0.002415,150 +0.002567,150 +0.002108,150 +0.002078,150 +0.002005,150 +0.001971,150 +0.002000,150 +0.001971,150 +0.001997,150 +0.002000,150 +0.002029,150 +0.002118,150 +0.002058,150 +0.002057,150 +0.002034,150 +0.002066,150 +0.002027,150 +0.002163,150 +0.002074,150 +0.002055,150 +0.002094,150 +0.002064,150 +0.002016,150 +0.002077,150 +0.002030,150 +0.002068,150 +0.002005,150 +0.002058,150 +0.002059,150 +0.002117,150 +0.001977,150 +0.001992,150 +0.001878,150 +0.002084,150 +0.001979,150 +0.001900,150 +0.001888,150 +0.002066,150 +0.001897,150 +0.001901,150 +0.001878,150 +0.002055,150 +0.002006,150 +0.001984,150 +0.001986,150 +0.001984,150 +0.002203,150 +0.002178,150 +0.002021,150 +0.001956,150 +0.002305,150 +0.002120,150 +0.002166,150 +0.002037,150 +0.001950,150 +0.002068,150 +0.002040,150 +0.002059,150 +0.002266,150 +0.002048,150 +0.002175,150 +0.002061,150 +0.002094,150 +0.002019,150 +0.002019,150 +0.001992,150 +0.002071,150 +0.001998,150 +0.002128,150 +0.001998,150 +0.002015,150 +0.001990,150 +0.002015,150 +0.001970,150 +0.002200,152 +0.002076,152 +0.002105,152 +0.002039,152 +0.002095,152 +0.002090,152 +0.002091,152 +0.002069,152 +0.002131,152 +0.002110,152 +0.002183,152 +0.002061,152 +0.002054,152 +0.002089,152 +0.002094,152 +0.002085,152 +0.002159,152 +0.002121,152 +0.002076,152 +0.002097,152 +0.002164,152 +0.002036,152 +0.002078,152 +0.002105,152 +0.002139,152 +0.002058,152 +0.002102,152 +0.002118,152 +0.002106,152 +0.002109,152 +0.002084,152 +0.002113,152 +0.002190,152 +0.002055,152 +0.002096,152 +0.002005,152 +0.002036,152 +0.002107,152 +0.002181,152 +0.002116,152 +0.002285,152 +0.002039,152 +0.002262,152 +0.002090,152 +0.002231,152 +0.002144,152 +0.002184,152 +0.002273,152 +0.002246,152 +0.002231,152 +0.002192,152 +0.002114,152 +0.002050,152 +0.002106,152 +0.002111,152 +0.002076,152 +0.002286,152 +0.002248,152 +0.002134,152 +0.002184,152 +0.002176,152 +0.002189,152 +0.002162,152 +0.002302,152 +0.002142,152 +0.002109,152 +0.002065,152 +0.002287,152 +0.002049,152 +0.002108,152 +0.002177,152 +0.002280,152 +0.002104,152 +0.002209,152 +0.002108,152 +0.002147,152 +0.002118,152 +0.002184,152 +0.002196,152 +0.002164,152 +0.002194,152 +0.002148,152 +0.002143,152 +0.002141,152 +0.002147,152 +0.002101,152 +0.002256,152 +0.002117,152 +0.002181,152 +0.002088,152 +0.002180,152 +0.002101,152 +0.002134,152 +0.002111,152 +0.002216,152 +0.002035,152 +0.002099,152 +0.002077,152 +0.002105,152 +0.002024,152 +0.002205,154 +0.002190,154 +0.002186,154 +0.002065,154 +0.002048,154 +0.002059,154 +0.002026,154 +0.002009,154 +0.001975,154 +0.002009,154 +0.002163,154 +0.002015,154 +0.002106,154 +0.002094,154 +0.001976,154 +0.002104,154 +0.002224,154 +0.002124,154 +0.002059,154 +0.002012,154 +0.002226,154 +0.001976,154 +0.001998,154 +0.001976,154 +0.001989,154 +0.001985,154 +0.002102,154 +0.001976,154 +0.002004,154 +0.001975,154 +0.001980,154 +0.001975,154 +0.001976,154 +0.001998,154 +0.001995,154 +0.002019,154 +0.002007,154 +0.002143,154 +0.001982,154 +0.001975,154 +0.001977,154 +0.001975,154 +0.002017,154 +0.002015,154 +0.001980,154 +0.001975,154 +0.001978,154 +0.001976,154 +0.001975,154 +0.001980,154 +0.001976,154 +0.002051,154 +0.002339,154 +0.002092,154 +0.002002,154 +0.002347,154 +0.002136,154 +0.001975,154 +0.002238,154 +0.002441,154 +0.002197,154 +0.002141,154 +0.002148,154 +0.002398,154 +0.002253,154 +0.002308,154 +0.002461,154 +0.002718,154 +0.002731,154 +0.002189,154 +0.002179,154 +0.002139,154 +0.002173,154 +0.002120,154 +0.002183,154 +0.002250,154 +0.002336,154 +0.002298,154 +0.002206,154 +0.002207,154 +0.002210,154 +0.002277,154 +0.002222,154 +0.002231,154 +0.002267,154 +0.002106,154 +0.002195,154 +0.002223,154 +0.002300,154 +0.002120,154 +0.002334,154 +0.002182,154 +0.002288,154 +0.002189,154 +0.002181,154 +0.002210,154 +0.002194,154 +0.002154,154 +0.002150,154 +0.002142,154 +0.002376,156 +0.002262,156 +0.002311,156 +0.002263,156 +0.002213,156 +0.002254,156 +0.002220,156 +0.002106,156 +0.002391,156 +0.002241,156 +0.002224,156 +0.002339,156 +0.002249,156 +0.002301,156 +0.002222,156 +0.002229,156 +0.002243,156 +0.002346,156 +0.002434,156 +0.002223,156 +0.002353,156 +0.002201,156 +0.002275,156 +0.002206,156 +0.002239,156 +0.002356,156 +0.002366,156 +0.002641,156 +0.002381,156 +0.002473,156 +0.002343,156 +0.002298,156 +0.002497,156 +0.002293,156 +0.002359,156 +0.002295,156 +0.002125,156 +0.002263,156 +0.002106,156 +0.002339,156 +0.002133,156 +0.002147,156 +0.002106,156 +0.002135,156 +0.002081,156 +0.002091,156 +0.002085,156 +0.002130,156 +0.002126,156 +0.002204,156 +0.002221,156 +0.002126,156 +0.002280,156 +0.002198,156 +0.002085,156 +0.002255,156 +0.002091,156 +0.002327,156 +0.002051,156 +0.002094,156 +0.002051,156 +0.002077,156 +0.002052,156 +0.002180,156 +0.002051,156 +0.002089,156 +0.002052,156 +0.002074,156 +0.002052,156 +0.002077,156 +0.002051,156 +0.002152,156 +0.002051,156 +0.002076,156 +0.002104,156 +0.002080,156 +0.002051,156 +0.002227,156 +0.002463,156 +0.002595,156 +0.002532,156 +0.003101,156 +0.002759,156 +0.002161,156 +0.002417,156 +0.002332,156 +0.002852,156 +0.002693,156 +0.002307,156 +0.002412,156 +0.002374,156 +0.002192,156 +0.002388,156 +0.002278,156 +0.003178,156 +0.002101,156 +0.002126,156 +0.002054,156 +0.002092,156 +0.002539,156 +0.002303,158 +0.002466,158 +0.002339,158 +0.002641,158 +0.002272,158 +0.002744,158 +0.003238,158 +0.002335,158 +0.002136,158 +0.002323,158 +0.002201,158 +0.002193,158 +0.002135,158 +0.002461,158 +0.002361,158 +0.002260,158 +0.003240,158 +0.002305,158 +0.002172,158 +0.002209,158 +0.002263,158 +0.002313,158 +0.002137,158 +0.002317,158 +0.002133,158 +0.002175,158 +0.002191,158 +0.002377,158 +0.002175,158 +0.002267,158 +0.002179,158 +0.002133,158 +0.002176,158 +0.002133,158 +0.002209,158 +0.002266,158 +0.002210,158 +0.002161,158 +0.002142,158 +0.002178,158 +0.002133,158 +0.002160,158 +0.002271,158 +0.002217,158 +0.002173,158 +0.002162,158 +0.002133,158 +0.002167,158 +0.002149,158 +0.002142,158 +0.002248,158 +0.002133,158 +0.002205,158 +0.002133,158 +0.002195,158 +0.002154,158 +0.002170,158 +0.002215,158 +0.002360,158 +0.002375,158 +0.002395,158 +0.002297,158 +0.002173,158 +0.002307,158 +0.002133,158 +0.002237,158 +0.002158,158 +0.002175,158 +0.002201,158 +0.002134,158 +0.002160,158 +0.002134,158 +0.002178,158 +0.002211,158 +0.002206,158 +0.002133,158 +0.002575,158 +0.002161,158 +0.002392,158 +0.002265,158 +0.002695,158 +0.002399,158 +0.002348,158 +0.002369,158 +0.002395,158 +0.002360,158 +0.002311,158 +0.002464,158 +0.002301,158 +0.002392,158 +0.002272,158 +0.002316,158 +0.002278,158 +0.002309,158 +0.002581,158 +0.002331,158 +0.002421,158 +0.002307,158 +0.002320,158 +0.002327,158 +0.002463,160 +0.002505,160 +0.002359,160 +0.002524,160 +0.002461,160 +0.002479,160 +0.002418,160 +0.002422,160 +0.002452,160 +0.002601,160 +0.002474,160 +0.002475,160 +0.002478,160 +0.002396,160 +0.002523,160 +0.002472,160 +0.002613,160 +0.002480,160 +0.002518,160 +0.002428,160 +0.002499,160 +0.002458,160 +0.002499,160 +0.002613,160 +0.002459,160 +0.002426,160 +0.002437,160 +0.002506,160 +0.002578,160 +0.002446,160 +0.002623,160 +0.002540,160 +0.002366,160 +0.002348,160 +0.002400,160 +0.002920,160 +0.004547,160 +0.004423,160 +0.003569,160 +0.003106,160 +0.003154,160 +0.003011,160 +0.003072,160 +0.002556,160 +0.002439,160 +0.002655,160 +0.002619,160 +0.002688,160 +0.002485,160 +0.002435,160 +0.002441,160 +0.002513,160 +0.002632,160 +0.002688,160 +0.003292,160 +0.002384,160 +0.002356,160 +0.002372,160 +0.002708,160 +0.002480,160 +0.002963,160 +0.002525,160 +0.002414,160 +0.002482,160 +0.002506,160 +0.003104,160 +0.002652,160 +0.002795,160 +0.002947,160 +0.002402,160 +0.003490,160 +0.004557,160 +0.004375,160 +0.002576,160 +0.002360,160 +0.002570,160 +0.002459,160 +0.002533,160 +0.002415,160 +0.002338,160 +0.002298,160 +0.002332,160 +0.002609,160 +0.002467,160 +0.002602,160 +0.002552,160 +0.002393,160 +0.002369,160 +0.002540,160 +0.002677,160 +0.002618,160 +0.002612,160 +0.002328,160 +0.002444,160 +0.002353,160 +0.002467,160 +0.002377,160 +0.002676,160 +0.002682,160 +0.002423,160 +0.002458,162 +0.002465,162 +0.002565,162 +0.002438,162 +0.002644,162 +0.002481,162 +0.002587,162 +0.002390,162 +0.002430,162 +0.002528,162 +0.002642,162 +0.002521,162 +0.002361,162 +0.002344,162 +0.002378,162 +0.002534,162 +0.002318,162 +0.003067,162 +0.002505,162 +0.002380,162 +0.002328,162 +0.002320,162 +0.002513,162 +0.002474,162 +0.002453,162 +0.002954,162 +0.002338,162 +0.002295,162 +0.002423,162 +0.002627,162 +0.002587,162 +0.002435,162 +0.002342,162 +0.002335,162 +0.002330,162 +0.002354,162 +0.002589,162 +0.002554,162 +0.002455,162 +0.002357,162 +0.002449,162 +0.002420,162 +0.002573,162 +0.002431,162 +0.002588,162 +0.002398,162 +0.002329,162 +0.002333,162 +0.002294,162 +0.002598,162 +0.002323,162 +0.002690,162 +0.002464,162 +0.002294,162 +0.002771,162 +0.002616,162 +0.002931,162 +0.003634,162 +0.002846,162 +0.002458,162 +0.002573,162 +0.002642,162 +0.002514,162 +0.003737,162 +0.003512,162 +0.003035,162 +0.003066,162 +0.002736,162 +0.002737,162 +0.002603,162 +0.002509,162 +0.002611,162 +0.002552,162 +0.002661,162 +0.002711,162 +0.002889,162 +0.003110,162 +0.002515,162 +0.002469,162 +0.002588,162 +0.002489,162 +0.002732,162 +0.002544,162 +0.002478,162 +0.002470,162 +0.002426,162 +0.002709,162 +0.002556,162 +0.003016,162 +0.002833,162 +0.002612,162 +0.002586,162 +0.003024,162 +0.003874,162 +0.003492,162 +0.002413,162 +0.002456,162 +0.002437,162 +0.002531,162 +0.002685,162 +0.002841,164 +0.002593,164 +0.002665,164 +0.002604,164 +0.002649,164 +0.002738,164 +0.003488,164 +0.002777,164 +0.002709,164 +0.002529,164 +0.002603,164 +0.002617,164 +0.003292,164 +0.002670,164 +0.002666,164 +0.002505,164 +0.002738,164 +0.002864,164 +0.003250,164 +0.002514,164 +0.002488,164 +0.002493,164 +0.002708,164 +0.002615,164 +0.002986,164 +0.002846,164 +0.002503,164 +0.002438,164 +0.002594,164 +0.002479,164 +0.002857,164 +0.002583,164 +0.002393,164 +0.002433,164 +0.002428,164 +0.002610,164 +0.002759,164 +0.002656,164 +0.002452,164 +0.002440,164 +0.002392,164 +0.002609,164 +0.002540,164 +0.002820,164 +0.002591,164 +0.002432,164 +0.002392,164 +0.002440,164 +0.002621,164 +0.002605,164 +0.002709,164 +0.002562,164 +0.002392,164 +0.002479,164 +0.002531,164 +0.002717,164 +0.002825,164 +0.002509,164 +0.002443,164 +0.002438,164 +0.002413,164 +0.002588,164 +0.002580,164 +0.002837,164 +0.002538,164 +0.002570,164 +0.002403,164 +0.002497,164 +0.002969,164 +0.004485,164 +0.003401,164 +0.002712,164 +0.002849,164 +0.002621,164 +0.003173,164 +0.002910,164 +0.002450,164 +0.002395,164 +0.002477,164 +0.002771,164 +0.002645,164 +0.003699,164 +0.003640,164 +0.002623,164 +0.002579,164 +0.002465,164 +0.002700,164 +0.003043,164 +0.002441,164 +0.002434,164 +0.002557,164 +0.002601,164 +0.002718,164 +0.002494,164 +0.002504,164 +0.002392,164 +0.002434,164 +0.002742,164 +0.002516,164 +0.002553,164 +0.002738,166 +0.002476,166 +0.002514,166 +0.002703,166 +0.002657,166 +0.002698,166 +0.003604,166 +0.002634,166 +0.002706,166 +0.002551,166 +0.002656,166 +0.002929,166 +0.002677,166 +0.002507,166 +0.002471,166 +0.002623,166 +0.002824,166 +0.002874,166 +0.002632,166 +0.002579,166 +0.002471,166 +0.002507,166 +0.002705,166 +0.002622,166 +0.002675,166 +0.002678,166 +0.002513,166 +0.002505,166 +0.002617,166 +0.002702,166 +0.002998,166 +0.002612,166 +0.002503,166 +0.002504,166 +0.002470,166 +0.002719,166 +0.002926,166 +0.002678,166 +0.002527,166 +0.002514,166 +0.002471,166 +0.002740,166 +0.002619,166 +0.002670,166 +0.002584,166 +0.002524,166 +0.002471,166 +0.002555,166 +0.002610,166 +0.002841,166 +0.002664,166 +0.002538,166 +0.002503,166 +0.002506,166 +0.002670,166 +0.002847,166 +0.002579,166 +0.002567,166 +0.002508,166 +0.002510,166 +0.002541,166 +0.002613,166 +0.002932,166 +0.002606,166 +0.002507,166 +0.002521,166 +0.002587,166 +0.002757,166 +0.002953,166 +0.002857,166 +0.002527,166 +0.002512,166 +0.002471,166 +0.002696,166 +0.002884,166 +0.002576,166 +0.002886,166 +0.002597,166 +0.002490,166 +0.002935,166 +0.003359,166 +0.003268,166 +0.002690,166 +0.002614,166 +0.002847,166 +0.002813,166 +0.002894,166 +0.002733,166 +0.002573,166 +0.002665,166 +0.002583,166 +0.002776,166 +0.002903,166 +0.002703,166 +0.002711,166 +0.002610,166 +0.002714,166 +0.002732,166 +0.002941,166 +0.002962,166 +0.002736,168 +0.002825,168 +0.002639,168 +0.002875,168 +0.002828,168 +0.002788,168 +0.002643,168 +0.002624,168 +0.002544,168 +0.002716,168 +0.002653,168 +0.002544,168 +0.002551,168 +0.002544,168 +0.002881,168 +0.002690,168 +0.002870,168 +0.002913,168 +0.002768,168 +0.002799,168 +0.002712,168 +0.002900,168 +0.002896,168 +0.002720,168 +0.002800,168 +0.002811,168 +0.002858,168 +0.002821,168 +0.002969,168 +0.002816,168 +0.002808,168 +0.002847,168 +0.002900,168 +0.002948,168 +0.002776,168 +0.002771,168 +0.003002,168 +0.003304,168 +0.002708,168 +0.002777,168 +0.002802,168 +0.002781,168 +0.002704,168 +0.002751,168 +0.002722,168 +0.003114,168 +0.002848,168 +0.002933,168 +0.002750,168 +0.002655,168 +0.002786,168 +0.002758,168 +0.002819,168 +0.002703,168 +0.002546,168 +0.002857,168 +0.002661,168 +0.003118,168 +0.002598,168 +0.002592,168 +0.002546,168 +0.002840,168 +0.002623,168 +0.002816,168 +0.002566,168 +0.002572,168 +0.002546,168 +0.002573,168 +0.002557,168 +0.002585,168 +0.002585,168 +0.002764,168 +0.002634,168 +0.002619,168 +0.002578,168 +0.002627,168 +0.002832,168 +0.002795,168 +0.002843,168 +0.002642,168 +0.002729,168 +0.002546,168 +0.002848,168 +0.002600,168 +0.002840,168 +0.002853,168 +0.002670,168 +0.002753,168 +0.003022,168 +0.002839,168 +0.002700,168 +0.002935,168 +0.002957,168 +0.002801,168 +0.002843,168 +0.002698,168 +0.002752,168 +0.002640,168 +0.002613,168 +0.002647,168 +0.003061,170 +0.002651,170 +0.002658,170 +0.002652,170 +0.002647,170 +0.002654,170 +0.002785,170 +0.002689,170 +0.002653,170 +0.002655,170 +0.002646,170 +0.002654,170 +0.002727,170 +0.002850,170 +0.002827,170 +0.002848,170 +0.002685,170 +0.002646,170 +0.002706,170 +0.002687,170 +0.002646,170 +0.002678,170 +0.002681,170 +0.002695,170 +0.002732,170 +0.002667,170 +0.002646,170 +0.002651,170 +0.002661,170 +0.002646,170 +0.002715,170 +0.002683,170 +0.002646,170 +0.002788,170 +0.002699,170 +0.002647,170 +0.002671,170 +0.002750,170 +0.002646,170 +0.002657,170 +0.003080,170 +0.002791,170 +0.002717,170 +0.003166,170 +0.002987,170 +0.002883,170 +0.002937,170 +0.002889,170 +0.002878,170 +0.002980,170 +0.003034,170 +0.003052,170 +0.002931,170 +0.002900,170 +0.003430,170 +0.004351,170 +0.003347,170 +0.002914,170 +0.002895,170 +0.002961,170 +0.003166,170 +0.002951,170 +0.002805,170 +0.002811,170 +0.002858,170 +0.002897,170 +0.003924,170 +0.003026,170 +0.003066,170 +0.003075,170 +0.003396,170 +0.002965,170 +0.002926,170 +0.002870,170 +0.002842,170 +0.002817,170 +0.002862,170 +0.002790,170 +0.002856,170 +0.002864,170 +0.002897,170 +0.002913,170 +0.002899,170 +0.002927,170 +0.002776,170 +0.002737,170 +0.002863,170 +0.003196,170 +0.003169,170 +0.003174,170 +0.002972,170 +0.002853,170 +0.002820,170 +0.002859,170 +0.003361,170 +0.003052,170 +0.002939,170 +0.002847,170 +0.002919,170 +0.003103,170 +0.003902,172 +0.003090,172 +0.003185,172 +0.003100,172 +0.003481,172 +0.003511,172 +0.002919,172 +0.002885,172 +0.002846,172 +0.002990,172 +0.003973,172 +0.003140,172 +0.003148,172 +0.003481,172 +0.004020,172 +0.003712,172 +0.003309,172 +0.004044,172 +0.003654,172 +0.003374,172 +0.003559,172 +0.003092,172 +0.003741,172 +0.003325,172 +0.003688,172 +0.003125,172 +0.002883,172 +0.002962,172 +0.003089,172 +0.003673,172 +0.003146,172 +0.002918,172 +0.002874,172 +0.003277,172 +0.003582,172 +0.003203,172 +0.002840,172 +0.002826,172 +0.002969,172 +0.002873,172 +0.003742,172 +0.002978,172 +0.002747,172 +0.002790,172 +0.002956,172 +0.003446,172 +0.003046,172 +0.003076,172 +0.002815,172 +0.002822,172 +0.003267,172 +0.003442,172 +0.003169,172 +0.002880,172 +0.003011,172 +0.002947,172 +0.003491,172 +0.003078,172 +0.003057,172 +0.002833,172 +0.002914,172 +0.003242,172 +0.003967,172 +0.003268,172 +0.003196,172 +0.003737,172 +0.003576,172 +0.003445,172 +0.003383,172 +0.003298,172 +0.003517,172 +0.003472,172 +0.003764,172 +0.003244,172 +0.003295,172 +0.003393,172 +0.004356,172 +0.002991,172 +0.003097,172 +0.002999,172 +0.003230,172 +0.003457,172 +0.003304,172 +0.003088,172 +0.003121,172 +0.003199,172 +0.003288,172 +0.003158,172 +0.003051,172 +0.003034,172 +0.003097,172 +0.003490,172 +0.003527,172 +0.003157,172 +0.003086,172 +0.003062,172 +0.003758,172 +0.003198,172 +0.003024,172 +0.003026,172 +0.003241,174 +0.003326,174 +0.003523,174 +0.003166,174 +0.003049,174 +0.002951,174 +0.003015,174 +0.003492,174 +0.003125,174 +0.003071,174 +0.002934,174 +0.003152,174 +0.003262,174 +0.003171,174 +0.002934,174 +0.002902,174 +0.002950,174 +0.003223,174 +0.003100,174 +0.003020,174 +0.002920,174 +0.002898,174 +0.003007,174 +0.003383,174 +0.003026,174 +0.002891,174 +0.002854,174 +0.002931,174 +0.003208,174 +0.003114,174 +0.003021,174 +0.002915,174 +0.002917,174 +0.003070,174 +0.003445,174 +0.003060,174 +0.002881,174 +0.002894,174 +0.002915,174 +0.003362,174 +0.003250,174 +0.003025,174 +0.003080,174 +0.002871,174 +0.003250,174 +0.003490,174 +0.003080,174 +0.002888,174 +0.002854,174 +0.003048,174 +0.003322,174 +0.003161,174 +0.002920,174 +0.002912,174 +0.002892,174 +0.003085,174 +0.003400,174 +0.003015,174 +0.002890,174 +0.002886,174 +0.003020,174 +0.003468,174 +0.003093,174 +0.002877,174 +0.002899,174 +0.002854,174 +0.003218,174 +0.002946,174 +0.003106,174 +0.002854,174 +0.002877,174 +0.002981,174 +0.003005,174 +0.003079,174 +0.003046,174 +0.003034,174 +0.002933,174 +0.003010,174 +0.003004,174 +0.002890,174 +0.002854,174 +0.002896,174 +0.002927,174 +0.003026,174 +0.002854,174 +0.002879,174 +0.002907,174 +0.002924,174 +0.002894,174 +0.002987,174 +0.002896,174 +0.002855,174 +0.002856,174 +0.002856,174 +0.002995,174 +0.002946,174 +0.004948,174 +0.002848,174 +0.002884,174 +0.002914,174 +0.003203,176 +0.003099,176 +0.002981,176 +0.003032,176 +0.002989,176 +0.003070,176 +0.003019,176 +0.003216,176 +0.003142,176 +0.002963,176 +0.003031,176 +0.003067,176 +0.002967,176 +0.002943,176 +0.002967,176 +0.002990,176 +0.003060,176 +0.002943,176 +0.002949,176 +0.002953,176 +0.002950,176 +0.002994,176 +0.003031,176 +0.002969,176 +0.002945,176 +0.002943,176 +0.002947,176 +0.003173,176 +0.002968,176 +0.002944,176 +0.002946,176 +0.002950,176 +0.002985,176 +0.003058,176 +0.002969,176 +0.002945,176 +0.002946,176 +0.002943,176 +0.002997,176 +0.003061,176 +0.003302,176 +0.003073,176 +0.003229,176 +0.003052,176 +0.003085,176 +0.002981,176 +0.002943,176 +0.002989,176 +0.002990,176 +0.003089,176 +0.002975,176 +0.002985,176 +0.002972,176 +0.002969,176 +0.002983,176 +0.003100,176 +0.002970,176 +0.002974,176 +0.002973,176 +0.002974,176 +0.003029,176 +0.003057,176 +0.002944,176 +0.002946,176 +0.002946,176 +0.002983,176 +0.003064,176 +0.002967,176 +0.002949,176 +0.002943,176 +0.002946,176 +0.003116,176 +0.003328,176 +0.003176,176 +0.003190,176 +0.003030,176 +0.003068,176 +0.003127,176 +0.002944,176 +0.002978,176 +0.002968,176 +0.002979,176 +0.002988,176 +0.003028,176 +0.002983,176 +0.002976,176 +0.002943,176 +0.003021,176 +0.003105,176 +0.002970,176 +0.003105,176 +0.002968,176 +0.002970,176 +0.003030,176 +0.003230,176 +0.002944,176 +0.002966,176 +0.002977,176 +0.002982,176 +0.003142,176 +0.003227,178 +0.003164,178 +0.003159,178 +0.003164,178 +0.003305,178 +0.003147,178 +0.003396,178 +0.003352,178 +0.003144,178 +0.003265,178 +0.003232,178 +0.003124,178 +0.003167,178 +0.003149,178 +0.003172,178 +0.003259,178 +0.003167,178 +0.003154,178 +0.003137,178 +0.003170,178 +0.003277,178 +0.003146,178 +0.003123,178 +0.003121,178 +0.003156,178 +0.003296,178 +0.003127,178 +0.003123,178 +0.003121,178 +0.003126,178 +0.003172,178 +0.003277,178 +0.003134,178 +0.003121,178 +0.003148,178 +0.003178,178 +0.003252,178 +0.003293,178 +0.003244,178 +0.003292,178 +0.003203,178 +0.003303,178 +0.003163,178 +0.003120,178 +0.003144,178 +0.003205,178 +0.003268,178 +0.003182,178 +0.003121,178 +0.003144,178 +0.003146,178 +0.003319,178 +0.003147,178 +0.003180,178 +0.003282,178 +0.003147,178 +0.003277,178 +0.003407,178 +0.003121,178 +0.003155,178 +0.003144,178 +0.003228,178 +0.003333,178 +0.003121,178 +0.003161,178 +0.003155,178 +0.003195,178 +0.003336,178 +0.003121,178 +0.003438,178 +0.003315,178 +0.003203,178 +0.003288,178 +0.003128,178 +0.003120,178 +0.003143,178 +0.003150,178 +0.003320,178 +0.003161,178 +0.003120,178 +0.003125,178 +0.003127,178 +0.003172,178 +0.003242,178 +0.003126,178 +0.003123,178 +0.003132,178 +0.003182,178 +0.003343,178 +0.003130,178 +0.003122,178 +0.003124,178 +0.003168,178 +0.003281,178 +0.003143,178 +0.003134,178 +0.003125,178 +0.003134,178 +0.003321,178 +0.003504,178 +0.003532,180 +0.003527,180 +0.003495,180 +0.004005,180 +0.003884,180 +0.003513,180 +0.003805,180 +0.004142,180 +0.003700,180 +0.003624,180 +0.003559,180 +0.003563,180 +0.004337,180 +0.003487,180 +0.003685,180 +0.003598,180 +0.003867,180 +0.003445,180 +0.003491,180 +0.003522,180 +0.003481,180 +0.003945,180 +0.003953,180 +0.004146,180 +0.004174,180 +0.004212,180 +0.004009,180 +0.003485,180 +0.003538,180 +0.003646,180 +0.003549,180 +0.003461,180 +0.003395,180 +0.003463,180 +0.003542,180 +0.003426,180 +0.003518,180 +0.003413,180 +0.003602,180 +0.003509,180 +0.003408,180 +0.003412,180 +0.003377,180 +0.003336,180 +0.003671,180 +0.003293,180 +0.003453,180 +0.003358,180 +0.003344,180 +0.003603,180 +0.003481,180 +0.003429,180 +0.003489,180 +0.003376,180 +0.003597,180 +0.003199,180 +0.006071,180 +0.004131,180 +0.003369,180 +0.003196,180 +0.003210,180 +0.003194,180 +0.003199,180 +0.003336,180 +0.003196,180 +0.003194,180 +0.003187,180 +0.003171,180 +0.003301,180 +0.003201,180 +0.003163,180 +0.003162,180 +0.003171,180 +0.003267,180 +0.003166,180 +0.003167,180 +0.003166,180 +0.003159,180 +0.003270,180 +0.003200,180 +0.003164,180 +0.003162,180 +0.003159,180 +0.003192,180 +0.003267,180 +0.003193,180 +0.005630,180 +0.004376,180 +0.003275,180 +0.003530,180 +0.003186,180 +0.003178,180 +0.003557,180 +0.003336,180 +0.003194,180 +0.003186,180 +0.003168,180 +0.003224,180 +0.003370,180 +0.003219,180 +0.003419,182 +0.003360,182 +0.003445,182 +0.003421,182 +0.003299,182 +0.003305,182 +0.003301,182 +0.003343,182 +0.003424,182 +0.003325,182 +0.003298,182 +0.003322,182 +0.003373,182 +0.003489,182 +0.003304,182 +0.005269,182 +0.005044,182 +0.003425,182 +0.003322,182 +0.003903,182 +0.003365,182 +0.003537,182 +0.003340,182 +0.003298,182 +0.003336,182 +0.003341,182 +0.003955,182 +0.003324,182 +0.003321,182 +0.003531,182 +0.003343,182 +0.003573,182 +0.003330,182 +0.003325,182 +0.003301,182 +0.003342,182 +0.003532,182 +0.003298,182 +0.003303,182 +0.003549,182 +0.003413,182 +0.003438,182 +0.003696,182 +0.003524,182 +0.003702,182 +0.003760,182 +0.003347,182 +0.003355,182 +0.003342,182 +0.003384,182 +0.003610,182 +0.003367,182 +0.003298,182 +0.003330,182 +0.003324,182 +0.003480,182 +0.003303,182 +0.003301,182 +0.003298,182 +0.003307,182 +0.003458,182 +0.003303,182 +0.003301,182 +0.003303,182 +0.003298,182 +0.003439,182 +0.003310,182 +0.003300,182 +0.003303,182 +0.003300,182 +0.003435,182 +0.003303,182 +0.003391,182 +0.003518,182 +0.003521,182 +0.003498,182 +0.003325,182 +0.003298,182 +0.003301,182 +0.003323,182 +0.003512,182 +0.003333,182 +0.003322,182 +0.003591,182 +0.003476,182 +0.004173,182 +0.003645,182 +0.003635,182 +0.003644,182 +0.003882,182 +0.003617,182 +0.003687,182 +0.003340,182 +0.003958,182 +0.003804,182 +0.003327,182 +0.003628,182 +0.003332,182 +0.003860,182 +0.003440,182 +0.003478,184 +0.003872,184 +0.003574,184 +0.003834,184 +0.003615,184 +0.003471,184 +0.003375,184 +0.003846,184 +0.003612,184 +0.003411,184 +0.003410,184 +0.003546,184 +0.003638,184 +0.003450,184 +0.003373,184 +0.003526,184 +0.003471,184 +0.003868,184 +0.003409,184 +0.003431,184 +0.003712,184 +0.003757,184 +0.003919,184 +0.003743,184 +0.003877,184 +0.004446,184 +0.003781,184 +0.003494,184 +0.003574,184 +0.003515,184 +0.003843,184 +0.003487,184 +0.003726,184 +0.003475,184 +0.003640,184 +0.003964,184 +0.003477,184 +0.003568,184 +0.003411,184 +0.003638,184 +0.003699,184 +0.003571,184 +0.003672,184 +0.003516,184 +0.004054,184 +0.003407,184 +0.003674,184 +0.003867,184 +0.003679,184 +0.003599,184 +0.003693,184 +0.003736,184 +0.003553,184 +0.003677,184 +0.003643,184 +0.003409,184 +0.003831,184 +0.003547,184 +0.003797,184 +0.003437,184 +0.003663,184 +0.003375,184 +0.003873,184 +0.003873,184 +0.003577,184 +0.003461,184 +0.003798,184 +0.003677,184 +0.003596,184 +0.003566,184 +0.003559,184 +0.003469,184 +0.003993,184 +0.003479,184 +0.003687,184 +0.003701,184 +0.003874,184 +0.003523,184 +0.003456,184 +0.003757,184 +0.003408,184 +0.003917,184 +0.003623,184 +0.003624,184 +0.003523,184 +0.003855,184 +0.003613,184 +0.003494,184 +0.003663,184 +0.003490,184 +0.003807,184 +0.003417,184 +0.003416,184 +0.003683,184 +0.003648,184 +0.003582,184 +0.003410,184 +0.003647,184 +0.003441,184 +0.003741,184 +0.003845,186 +0.003610,186 +0.003840,186 +0.003755,186 +0.003996,186 +0.003626,186 +0.003662,186 +0.003616,186 +0.003837,186 +0.003807,186 +0.003575,186 +0.003698,186 +0.003855,186 +0.004090,186 +0.003746,186 +0.003654,186 +0.003662,186 +0.003753,186 +0.003679,186 +0.003729,186 +0.003555,186 +0.004084,186 +0.003842,186 +0.004042,186 +0.003867,186 +0.003646,186 +0.004074,186 +0.003782,186 +0.003805,186 +0.003689,186 +0.004057,186 +0.003623,186 +0.003747,186 +0.003948,186 +0.003816,186 +0.003689,186 +0.003701,186 +0.004021,186 +0.003745,186 +0.004078,186 +0.003749,186 +0.003831,186 +0.003884,186 +0.003938,186 +0.003788,186 +0.003805,186 +0.003843,186 +0.003815,186 +0.004775,186 +0.003963,186 +0.003874,186 +0.003864,186 +0.003969,186 +0.003972,186 +0.003923,186 +0.003896,186 +0.003969,186 +0.003879,186 +0.003893,186 +0.003916,186 +0.004147,186 +0.003865,186 +0.004189,186 +0.004018,186 +0.003830,186 +0.004140,186 +0.003803,186 +0.003855,186 +0.003847,186 +0.003834,186 +0.003831,186 +0.003836,186 +0.003793,186 +0.003835,186 +0.003768,186 +0.003816,186 +0.003799,186 +0.003921,186 +0.003870,186 +0.004070,186 +0.003696,186 +0.003704,186 +0.003752,186 +0.003701,186 +0.003696,186 +0.003698,186 +0.003802,186 +0.003829,186 +0.003843,186 +0.003912,186 +0.003834,186 +0.003880,186 +0.003977,186 +0.003990,186 +0.003975,186 +0.004196,186 +0.003918,186 +0.003972,186 +0.003786,186 +0.003989,186 +0.004024,188 +0.003897,188 +0.004031,188 +0.004214,188 +0.004064,188 +0.004241,188 +0.004052,188 +0.004212,188 +0.003884,188 +0.003797,188 +0.003846,188 +0.004174,188 +0.003773,188 +0.003844,188 +0.003915,188 +0.003933,188 +0.003868,188 +0.004128,188 +0.003906,188 +0.003799,188 +0.004139,188 +0.003761,188 +0.003768,188 +0.003649,188 +0.004111,188 +0.003630,188 +0.003623,188 +0.003623,188 +0.004186,188 +0.003697,188 +0.003625,188 +0.003631,188 +0.003623,188 +0.003940,188 +0.003590,188 +0.003624,188 +0.003612,188 +0.004065,188 +0.003658,188 +0.003619,188 +0.004117,188 +0.003771,188 +0.003812,188 +0.004109,188 +0.004308,188 +0.004025,188 +0.004218,188 +0.004310,188 +0.004067,188 +0.004055,188 +0.004184,188 +0.003942,188 +0.003944,188 +0.003933,188 +0.004197,188 +0.003830,188 +0.003792,188 +0.003786,188 +0.003824,188 +0.003799,188 +0.004284,188 +0.004693,188 +0.004667,188 +0.004699,188 +0.004437,188 +0.004234,188 +0.004512,188 +0.004764,188 +0.003925,188 +0.003896,188 +0.003828,188 +0.003627,188 +0.003622,188 +0.004032,188 +0.003930,188 +0.003808,188 +0.003687,188 +0.003625,188 +0.004004,188 +0.004522,188 +0.003834,188 +0.003986,188 +0.003676,188 +0.004082,188 +0.003910,188 +0.003707,188 +0.004000,188 +0.003937,188 +0.003630,188 +0.003981,188 +0.004197,188 +0.004261,188 +0.004293,188 +0.003882,188 +0.003632,188 +0.003609,188 +0.003895,188 +0.003628,188 +0.003638,188 +0.003625,188 +0.004031,190 +0.003732,190 +0.003713,190 +0.004069,190 +0.003967,190 +0.003814,190 +0.003748,190 +0.003742,190 +0.003794,190 +0.003921,190 +0.003743,190 +0.003948,190 +0.003822,190 +0.003917,190 +0.004039,190 +0.003837,190 +0.003886,190 +0.004334,190 +0.004670,190 +0.003918,190 +0.003767,190 +0.003926,190 +0.004045,190 +0.003812,190 +0.003883,190 +0.004148,190 +0.003789,190 +0.003733,190 +0.003982,190 +0.003831,190 +0.004218,190 +0.003887,190 +0.004065,190 +0.003829,190 +0.004073,190 +0.003854,190 +0.003864,190 +0.004040,190 +0.003908,190 +0.003708,190 +0.003750,190 +0.003847,190 +0.003919,190 +0.004953,190 +0.003872,190 +0.003915,190 +0.003805,190 +0.003935,190 +0.003760,190 +0.003736,190 +0.003736,190 +0.003952,190 +0.003751,190 +0.003966,190 +0.003744,190 +0.004105,190 +0.004057,190 +0.003848,190 +0.004103,190 +0.004007,190 +0.003991,190 +0.003958,190 +0.003858,190 +0.003898,190 +0.004309,190 +0.003779,190 +0.004400,190 +0.003842,190 +0.004690,190 +0.004212,190 +0.003952,190 +0.003825,190 +0.004132,190 +0.003949,190 +0.003970,190 +0.003901,190 +0.004336,190 +0.004022,190 +0.004203,190 +0.004286,190 +0.004137,190 +0.003975,190 +0.004159,190 +0.004018,190 +0.004249,190 +0.003971,190 +0.004063,190 +0.004069,190 +0.004161,190 +0.004036,190 +0.004065,190 +0.004090,190 +0.004051,190 +0.005002,190 +0.004184,190 +0.004001,190 +0.004155,190 +0.004062,190 +0.004114,190 +0.003998,190 +0.004504,192 +0.004226,192 +0.004231,192 +0.004154,192 +0.004391,192 +0.004256,192 +0.004164,192 +0.004621,192 +0.004542,192 +0.004177,192 +0.004269,192 +0.004290,192 +0.004861,192 +0.004628,192 +0.004849,192 +0.004740,192 +0.005128,192 +0.004511,192 +0.004285,192 +0.004344,192 +0.004368,192 +0.004324,192 +0.004270,192 +0.004247,192 +0.004214,192 +0.004177,192 +0.004196,192 +0.004271,192 +0.004291,192 +0.004231,192 +0.004307,192 +0.004301,192 +0.004323,192 +0.004325,192 +0.004395,192 +0.004233,192 +0.004210,192 +0.004187,192 +0.004353,192 +0.004866,192 +0.004385,192 +0.004047,192 +0.004525,192 +0.003945,192 +0.004156,192 +0.004179,192 +0.004386,192 +0.003930,192 +0.004117,192 +0.004327,192 +0.004368,192 +0.004014,192 +0.003910,192 +0.003904,192 +0.004190,192 +0.003906,192 +0.003925,192 +0.004126,192 +0.004216,192 +0.003886,192 +0.004132,192 +0.003998,192 +0.004251,192 +0.004098,192 +0.004112,192 +0.004504,192 +0.004272,192 +0.003909,192 +0.004141,192 +0.003941,192 +0.004337,192 +0.003940,192 +0.004117,192 +0.003910,192 +0.004424,192 +0.003919,192 +0.003898,192 +0.003902,192 +0.004022,192 +0.004072,192 +0.004431,192 +0.003967,192 +0.003941,192 +0.004591,192 +0.003937,192 +0.003917,192 +0.004209,192 +0.004130,192 +0.004293,192 +0.004051,192 +0.003910,192 +0.004307,192 +0.004201,192 +0.004005,192 +0.003908,192 +0.004203,192 +0.003900,192 +0.003901,192 +0.003943,192 +0.004501,192 +0.004094,194 +0.003974,194 +0.003975,194 +0.004121,194 +0.003976,194 +0.003980,194 +0.004015,194 +0.004034,194 +0.003976,194 +0.003973,194 +0.004004,194 +0.004086,194 +0.004075,194 +0.004420,194 +0.004343,194 +0.004312,194 +0.004001,194 +0.004387,194 +0.004344,194 +0.004544,194 +0.004207,194 +0.004339,194 +0.004008,194 +0.004578,194 +0.004317,194 +0.004009,194 +0.004012,194 +0.004546,194 +0.004054,194 +0.004310,194 +0.004004,194 +0.004506,194 +0.004113,194 +0.004008,194 +0.004088,194 +0.004520,194 +0.004227,194 +0.004167,194 +0.004084,194 +0.004735,194 +0.004056,194 +0.004024,194 +0.004008,194 +0.004922,194 +0.004059,194 +0.004162,194 +0.004479,194 +0.004472,194 +0.004063,194 +0.004017,194 +0.004182,194 +0.004476,194 +0.004032,194 +0.004005,194 +0.004184,194 +0.004252,194 +0.004021,194 +0.004021,194 +0.004307,194 +0.004103,194 +0.004144,194 +0.004259,194 +0.004192,194 +0.004050,194 +0.003998,194 +0.004037,194 +0.004022,194 +0.004178,194 +0.003980,194 +0.003993,194 +0.003995,194 +0.004106,194 +0.004053,194 +0.003975,194 +0.003972,194 +0.004192,194 +0.003993,194 +0.004004,194 +0.003973,194 +0.004068,194 +0.003973,194 +0.003975,194 +0.003972,194 +0.004128,194 +0.003974,194 +0.004098,194 +0.004575,194 +0.004296,194 +0.004130,194 +0.004183,194 +0.004120,194 +0.004470,194 +0.004030,194 +0.004261,194 +0.004005,194 +0.004232,194 +0.004353,194 +0.004020,194 +0.004014,194 +0.004370,194 +0.004545,196 +0.004109,196 +0.004114,196 +0.004780,196 +0.004173,196 +0.004120,196 +0.004174,196 +0.004525,196 +0.004153,196 +0.004320,196 +0.004240,196 +0.004641,196 +0.004273,196 +0.004153,196 +0.004230,196 +0.005091,196 +0.004129,196 +0.004116,196 +0.004529,196 +0.004654,196 +0.004161,196 +0.004103,196 +0.004477,196 +0.004167,196 +0.004105,196 +0.004087,196 +0.004363,196 +0.004107,196 +0.004086,196 +0.004084,196 +0.004302,196 +0.004159,196 +0.004212,196 +0.004335,196 +0.004361,196 +0.004112,196 +0.004103,196 +0.004086,196 +0.004496,196 +0.004112,196 +0.004112,196 +0.004083,196 +0.004287,196 +0.004234,196 +0.004107,196 +0.004129,196 +0.004353,196 +0.004115,196 +0.004112,196 +0.004107,196 +0.004223,196 +0.004106,196 +0.004081,196 +0.004080,196 +0.004291,196 +0.004178,196 +0.004245,196 +0.004458,196 +0.004203,196 +0.004119,196 +0.004101,196 +0.004108,196 +0.004204,196 +0.004112,196 +0.004143,196 +0.004096,196 +0.004264,196 +0.004084,196 +0.004080,196 +0.004083,196 +0.004164,196 +0.004152,196 +0.004085,196 +0.004126,196 +0.004152,196 +0.004085,196 +0.004088,196 +0.004084,196 +0.004290,196 +0.004087,196 +0.004122,196 +0.004348,196 +0.004431,196 +0.004117,196 +0.004116,196 +0.004105,196 +0.004325,196 +0.004107,196 +0.004109,196 +0.004101,196 +0.004195,196 +0.004197,196 +0.004107,196 +0.004083,196 +0.004143,196 +0.004084,196 +0.004081,196 +0.004082,196 +0.004170,196 +0.004112,196 +0.004318,198 +0.004213,198 +0.004337,198 +0.004214,198 +0.004221,198 +0.004428,198 +0.004661,198 +0.004246,198 +0.004222,198 +0.004220,198 +0.004276,198 +0.004216,198 +0.004216,198 +0.004216,198 +0.004276,198 +0.004217,198 +0.004213,198 +0.004215,198 +0.004296,198 +0.004217,198 +0.004212,198 +0.004212,198 +0.004280,198 +0.004213,198 +0.004212,198 +0.004426,198 +0.004250,198 +0.004213,198 +0.004275,198 +0.004559,198 +0.004351,198 +0.004217,198 +0.004215,198 +0.004253,198 +0.004269,198 +0.004281,198 +0.004236,198 +0.004277,198 +0.004218,198 +0.004223,198 +0.004214,198 +0.004282,198 +0.004261,198 +0.004236,198 +0.004212,198 +0.004287,198 +0.004214,198 +0.004212,198 +0.004216,198 +0.004355,198 +0.004310,198 +0.004226,198 +0.004401,198 +0.004622,198 +0.004228,198 +0.004243,198 +0.004255,198 +0.004280,198 +0.004212,198 +0.004213,198 +0.004215,198 +0.004380,198 +0.004283,198 +0.004212,198 +0.004255,198 +0.004258,198 +0.004219,198 +0.004212,198 +0.004250,198 +0.004269,198 +0.004219,198 +0.004212,198 +0.004329,198 +0.004275,198 +0.004237,198 +0.004275,198 +0.004463,198 +0.004471,198 +0.004213,198 +0.004217,198 +0.004276,198 +0.004217,198 +0.004242,198 +0.004213,198 +0.004380,198 +0.004281,198 +0.004233,198 +0.004236,198 +0.004297,198 +0.004251,198 +0.004215,198 +0.004216,198 +0.004283,198 +0.004217,198 +0.004213,198 +0.004256,198 +0.004317,198 +0.004218,198 +0.004213,198 +0.004384,198 +0.004875,200 +0.004366,200 +0.004361,200 +0.004399,200 +0.004415,200 +0.004386,200 +0.004407,200 +0.004432,200 +0.004415,200 +0.004395,200 +0.004359,200 +0.004429,200 +0.004360,200 +0.004360,200 +0.004363,200 +0.004422,200 +0.004364,200 +0.004360,200 +0.004365,200 +0.004492,200 +0.004363,200 +0.004359,200 +0.004645,200 +0.004694,200 +0.004384,200 +0.004401,200 +0.004458,200 +0.004390,200 +0.004361,200 +0.004362,200 +0.004420,200 +0.004363,200 +0.004360,200 +0.004362,200 +0.004421,200 +0.004365,200 +0.004360,200 +0.004395,200 +0.004394,200 +0.004364,200 +0.004419,200 +0.004473,200 +0.004394,200 +0.004363,200 +0.004360,200 +0.004659,200 +0.004696,200 +0.004363,200 +0.004363,200 +0.004435,200 +0.004360,200 +0.004365,200 +0.004362,200 +0.004423,200 +0.004365,200 +0.004360,200 +0.004391,200 +0.004401,200 +0.004360,200 +0.004360,200 +0.004427,200 +0.004361,200 +0.004364,200 +0.004360,200 +0.004512,200 +0.004462,200 +0.004412,200 +0.004441,200 +0.004719,200 +0.004610,200 +0.004381,200 +0.004391,200 +0.004394,200 +0.004364,200 +0.004359,200 +0.004427,200 +0.004363,200 +0.004368,200 +0.004362,200 +0.004423,200 +0.004364,200 +0.004360,200 +0.004360,200 +0.004427,200 +0.004361,200 +0.004359,200 +0.004365,200 +0.004485,200 +0.004360,200 +0.004359,200 +0.004434,200 +0.004607,200 +0.004493,200 +0.004360,200 +0.004424,200 +0.004388,200 +0.004379,200 +0.004362,200 +0.004463,200 +0.004364,200 +0.004613,202 +0.004510,202 +0.004569,202 +0.004569,202 +0.004556,202 +0.004572,202 +0.004568,202 +0.004506,202 +0.004510,202 +0.004647,202 +0.004511,202 +0.004512,202 +0.004506,202 +0.004837,202 +0.004759,202 +0.004527,202 +0.004569,202 +0.004513,202 +0.004506,202 +0.004507,202 +0.004567,202 +0.004573,202 +0.004506,202 +0.004505,202 +0.004572,202 +0.004508,202 +0.004508,202 +0.004534,202 +0.004607,202 +0.004505,202 +0.004505,202 +0.004670,202 +0.004512,202 +0.004506,202 +0.004507,202 +0.004731,202 +0.004904,202 +0.004541,202 +0.004570,202 +0.004554,202 +0.004550,202 +0.004508,202 +0.004588,202 +0.004510,202 +0.004506,202 +0.004534,202 +0.004548,202 +0.004505,202 +0.004509,202 +0.004566,202 +0.004510,202 +0.004506,202 +0.004505,202 +0.004651,202 +0.004515,202 +0.004506,202 +0.004507,202 +0.004745,202 +0.004779,202 +0.004541,202 +0.005156,202 +0.004703,202 +0.004594,202 +0.004549,202 +0.004622,202 +0.004536,202 +0.004507,202 +0.004540,202 +0.004541,202 +0.004506,202 +0.004577,202 +0.004567,202 +0.004510,202 +0.004508,202 +0.004508,202 +0.004650,202 +0.004569,202 +0.004506,202 +0.004534,202 +0.004766,202 +0.004821,202 +0.004531,202 +0.004595,202 +0.004530,202 +0.004506,202 +0.004537,202 +0.004541,202 +0.004552,202 +0.004505,202 +0.004571,202 +0.004506,202 +0.004541,202 +0.004512,202 +0.004737,202 +0.004575,202 +0.005103,202 +0.004676,202 +0.004671,202 +0.004511,202 +0.004506,202 +0.005009,204 +0.004842,204 +0.004876,204 +0.004731,204 +0.004710,204 +0.004678,204 +0.004683,204 +0.004779,204 +0.004634,204 +0.004630,204 +0.004762,204 +0.004729,204 +0.004662,204 +0.004660,204 +0.004727,204 +0.004658,204 +0.004705,204 +0.004630,204 +0.004776,204 +0.004630,204 +0.004630,204 +0.004693,204 +0.004734,204 +0.004899,204 +0.004656,204 +0.004711,204 +0.004653,204 +0.004658,204 +0.004669,204 +0.004662,204 +0.004720,204 +0.004629,204 +0.004696,204 +0.004633,204 +0.004635,204 +0.004657,204 +0.004666,204 +0.004630,204 +0.004630,204 +0.004703,204 +0.004710,204 +0.004629,204 +0.004632,204 +0.004732,204 +0.004913,204 +0.004954,204 +0.004754,204 +0.004660,204 +0.004650,204 +0.004663,204 +0.004727,204 +0.004678,204 +0.004629,204 +0.004697,204 +0.004631,204 +0.004630,204 +0.004633,204 +0.004696,204 +0.004629,204 +0.004630,204 +0.004660,204 +0.004747,204 +0.004632,204 +0.004634,204 +0.004871,204 +0.004808,204 +0.004954,204 +0.004905,204 +0.004718,204 +0.004630,204 +0.004633,204 +0.004883,204 +0.004657,204 +0.004652,204 +0.004680,204 +0.004664,204 +0.004670,204 +0.004635,204 +0.004735,204 +0.004636,204 +0.004629,204 +0.004642,204 +0.004760,204 +0.004714,204 +0.004629,204 +0.004696,204 +0.004633,204 +0.004911,204 +0.004861,204 +0.004721,204 +0.004634,204 +0.004653,204 +0.004802,204 +0.004630,204 +0.004630,204 +0.004633,204 +0.004692,204 +0.004636,204 +0.004629,204 +0.004660,204 +0.004924,206 +0.004774,206 +0.004782,206 +0.004954,206 +0.004774,206 +0.004768,206 +0.004833,206 +0.004776,206 +0.005023,206 +0.005055,206 +0.004881,206 +0.004827,206 +0.004799,206 +0.004937,206 +0.004790,206 +0.004772,206 +0.004799,206 +0.004842,206 +0.004774,206 +0.004841,206 +0.004854,206 +0.004783,206 +0.004769,206 +0.004809,206 +0.004883,206 +0.004772,206 +0.004780,206 +0.004834,206 +0.004769,206 +0.005048,206 +0.005067,206 +0.004833,206 +0.004809,206 +0.004795,206 +0.004867,206 +0.004885,206 +0.004772,206 +0.004829,206 +0.004773,206 +0.004769,206 +0.004774,206 +0.004830,206 +0.004772,206 +0.004769,206 +0.004840,206 +0.004875,206 +0.004769,206 +0.004771,206 +0.004831,206 +0.004773,206 +0.005113,206 +0.007995,206 +0.008452,206 +0.008079,206 +0.004899,206 +0.004804,206 +0.004890,206 +0.004867,206 +0.004817,206 +0.004849,206 +0.004793,206 +0.004769,206 +0.004773,206 +0.004853,206 +0.004848,206 +0.004771,206 +0.004855,206 +0.004816,206 +0.004872,206 +0.005138,206 +0.004869,206 +0.004817,206 +0.004909,206 +0.004867,206 +0.004769,206 +0.004772,206 +0.004822,206 +0.004817,206 +0.004771,206 +0.004769,206 +0.004853,206 +0.004775,206 +0.004769,206 +0.004810,206 +0.004889,206 +0.004830,206 +0.004773,206 +0.004847,206 +0.004771,206 +0.004953,206 +0.005091,206 +0.004828,206 +0.004772,206 +0.004789,206 +0.004878,206 +0.004794,206 +0.004769,206 +0.004853,206 +0.004769,206 +0.004771,206 +0.005036,208 +0.005039,208 +0.004925,208 +0.004919,208 +0.005021,208 +0.005021,208 +0.004919,208 +0.004978,208 +0.004968,208 +0.004918,208 +0.005219,208 +0.005136,208 +0.004977,208 +0.005095,208 +0.005023,208 +0.004945,208 +0.004943,208 +0.005017,208 +0.004997,208 +0.004923,208 +0.004930,208 +0.005022,208 +0.004922,208 +0.004961,208 +0.004998,208 +0.004979,208 +0.004918,208 +0.004960,208 +0.004986,208 +0.004919,208 +0.005191,208 +0.005119,208 +0.004947,208 +0.004944,208 +0.004981,208 +0.004919,208 +0.005006,208 +0.004949,208 +0.004951,208 +0.004922,208 +0.004920,208 +0.004983,208 +0.004919,208 +0.004918,208 +0.004981,208 +0.005008,208 +0.004927,208 +0.004949,208 +0.004953,208 +0.004924,208 +0.005130,208 +0.005277,208 +0.004958,208 +0.004919,208 +0.005014,208 +0.004946,208 +0.004918,208 +0.004952,208 +0.004955,208 +0.004919,208 +0.004920,208 +0.004986,208 +0.004918,208 +0.004918,208 +0.004971,208 +0.004995,208 +0.004938,208 +0.005102,208 +0.005016,208 +0.004951,208 +0.005049,208 +0.005315,208 +0.004940,208 +0.004971,208 +0.005001,208 +0.004947,208 +0.004945,208 +0.004969,208 +0.005006,208 +0.004923,208 +0.004919,208 +0.004984,208 +0.004922,208 +0.004919,208 +0.004948,208 +0.005040,208 +0.005027,208 +0.004921,208 +0.004980,208 +0.004925,208 +0.004918,208 +0.005315,208 +0.005033,208 +0.004925,208 +0.004946,208 +0.004956,208 +0.004919,208 +0.004922,208 +0.004980,208 +0.004922,208 +0.005214,210 +0.005162,210 +0.005099,210 +0.005105,210 +0.005186,210 +0.005162,210 +0.005276,210 +0.005236,210 +0.005176,210 +0.005095,210 +0.005244,210 +0.005476,210 +0.005100,210 +0.005196,210 +0.005180,210 +0.005102,210 +0.005095,210 +0.005179,210 +0.005141,210 +0.005170,210 +0.005148,210 +0.005152,210 +0.005102,210 +0.005099,210 +0.005162,210 +0.005164,210 +0.005137,210 +0.005179,210 +0.005100,210 +0.005098,210 +0.005395,210 +0.005238,210 +0.005161,210 +0.005177,210 +0.005125,210 +0.005229,210 +0.005146,210 +0.005129,210 +0.005099,210 +0.005098,210 +0.005160,210 +0.005096,210 +0.005100,210 +0.005157,210 +0.005181,210 +0.005095,210 +0.005163,210 +0.005100,210 +0.005097,210 +0.005175,210 +0.005415,210 +0.005359,210 +0.005202,210 +0.005224,210 +0.005125,210 +0.005177,210 +0.005315,210 +0.005119,210 +0.005096,210 +0.005162,210 +0.005102,210 +0.005095,210 +0.005125,210 +0.005134,210 +0.005175,210 +0.005097,210 +0.005196,210 +0.005098,210 +0.005097,210 +0.005353,210 +0.005342,210 +0.005119,210 +0.005177,210 +0.005102,210 +0.005146,210 +0.005160,210 +0.005101,210 +0.005107,210 +0.005126,210 +0.005128,210 +0.005100,210 +0.005098,210 +0.005166,210 +0.005230,210 +0.005131,210 +0.005158,210 +0.005099,210 +0.005097,210 +0.005200,210 +0.005421,210 +0.005113,210 +0.005148,210 +0.005129,210 +0.005099,210 +0.005100,210 +0.005155,210 +0.005172,210 +0.005104,210 +0.005160,210 +0.005100,210 +0.005338,212 +0.005299,212 +0.005295,212 +0.005210,212 +0.005338,212 +0.005213,212 +0.005208,212 +0.005261,212 +0.005489,212 +0.005501,212 +0.005398,212 +0.005309,212 +0.005229,212 +0.005254,212 +0.005347,212 +0.005216,212 +0.005218,212 +0.005280,212 +0.005212,212 +0.005255,212 +0.005271,212 +0.005316,212 +0.005210,212 +0.005294,212 +0.005210,212 +0.005210,212 +0.005296,212 +0.005481,212 +0.005432,212 +0.005325,212 +0.005243,212 +0.005295,212 +0.005212,212 +0.005296,212 +0.005209,212 +0.005213,212 +0.005270,212 +0.005212,212 +0.005210,212 +0.005275,212 +0.005297,212 +0.005215,212 +0.005271,212 +0.005213,212 +0.005209,212 +0.005241,212 +0.005435,212 +0.005482,212 +0.005306,212 +0.005241,212 +0.005210,212 +0.005216,212 +0.005293,212 +0.005209,212 +0.005214,212 +0.005270,212 +0.005212,212 +0.005214,212 +0.005270,212 +0.005257,212 +0.005216,212 +0.005388,212 +0.005245,212 +0.005221,212 +0.005250,212 +0.005424,212 +0.005478,212 +0.005264,212 +0.005265,212 +0.005257,212 +0.005250,212 +0.005272,212 +0.005208,212 +0.005213,212 +0.005271,212 +0.005214,212 +0.005270,212 +0.005321,212 +0.005319,212 +0.005250,212 +0.005280,212 +0.005211,212 +0.005216,212 +0.005238,212 +0.005358,212 +0.005522,212 +0.005261,212 +0.005268,212 +0.005213,212 +0.005252,212 +0.005271,212 +0.005213,212 +0.005221,212 +0.005293,212 +0.005210,212 +0.005214,212 +0.005291,212 +0.005254,212 +0.005251,212 +0.005415,212 +0.005511,214 +0.005377,214 +0.005431,214 +0.005497,214 +0.005634,214 +0.005582,214 +0.005380,214 +0.005369,214 +0.005434,214 +0.005454,214 +0.005416,214 +0.005450,214 +0.005415,214 +0.005371,214 +0.005402,214 +0.005410,214 +0.005471,214 +0.005407,214 +0.005401,214 +0.005369,214 +0.005376,214 +0.005434,214 +0.005608,214 +0.005504,214 +0.005458,214 +0.005459,214 +0.005456,214 +0.005460,214 +0.005475,214 +0.005412,214 +0.005440,214 +0.005371,214 +0.005371,214 +0.005431,214 +0.005435,214 +0.005369,214 +0.005473,214 +0.005393,214 +0.005372,214 +0.005430,214 +0.005473,214 +0.005797,214 +0.005643,214 +0.005410,214 +0.005420,214 +0.005513,214 +0.005400,214 +0.005405,214 +0.005477,214 +0.005369,214 +0.005369,214 +0.005436,214 +0.005374,214 +0.005494,214 +0.005534,214 +0.005442,214 +0.005402,214 +0.005645,214 +0.005529,214 +0.005776,214 +0.005501,214 +0.005429,214 +0.005412,214 +0.005443,214 +0.005445,214 +0.005392,214 +0.005399,214 +0.005408,214 +0.005370,214 +0.005399,214 +0.005412,214 +0.005515,214 +0.005474,214 +0.005406,214 +0.005369,214 +0.005374,214 +0.005431,214 +0.005568,214 +0.005725,214 +0.005470,214 +0.005413,214 +0.005427,214 +0.005471,214 +0.005412,214 +0.005399,214 +0.005446,214 +0.005378,214 +0.005411,214 +0.005457,214 +0.005401,214 +0.005452,214 +0.005452,214 +0.005376,214 +0.005369,214 +0.005473,214 +0.005397,214 +0.005785,214 +0.005732,214 +0.005391,214 +0.005625,214 +0.006151,216 +0.005788,216 +0.006171,216 +0.006296,216 +0.006094,216 +0.006567,216 +0.008187,216 +0.006341,216 +0.006257,216 +0.006222,216 +0.006249,216 +0.006635,216 +0.007265,216 +0.006322,216 +0.006406,216 +0.006345,216 +0.006161,216 +0.006079,216 +0.007007,216 +0.006613,216 +0.006141,216 +0.006247,216 +0.006074,216 +0.007351,216 +0.005990,216 +0.006103,216 +0.007244,216 +0.007006,216 +0.008089,216 +0.006477,216 +0.007051,216 +0.007433,216 +0.007063,216 +0.006501,216 +0.006232,216 +0.006415,216 +0.006916,216 +0.007117,216 +0.007403,216 +0.006350,216 +0.007760,216 +0.006184,216 +0.005968,216 +0.007188,216 +0.006074,216 +0.007077,216 +0.005790,216 +0.006115,216 +0.008246,216 +0.007490,216 +0.007457,216 +0.005645,216 +0.006889,216 +0.006281,216 +0.006042,216 +0.006582,216 +0.006166,216 +0.006802,216 +0.006558,216 +0.006041,216 +0.006568,216 +0.006179,216 +0.006179,216 +0.006787,216 +0.007046,216 +0.008044,216 +0.006161,216 +0.006380,216 +0.006220,216 +0.005972,216 +0.007988,216 +0.006318,216 +0.007219,216 +0.007577,216 +0.007820,216 +0.006773,216 +0.006201,216 +0.006750,216 +0.006430,216 +0.006074,216 +0.006347,216 +0.005806,216 +0.006344,216 +0.006285,216 +0.006094,216 +0.006686,216 +0.005977,216 +0.005836,216 +0.006300,216 +0.007047,216 +0.006276,216 +0.006208,216 +0.005685,216 +0.006487,216 +0.006019,216 +0.005781,216 +0.007648,216 +0.005997,216 +0.007177,216 +0.006766,216 +0.006210,218 +0.007256,218 +0.005898,218 +0.006264,218 +0.009736,218 +0.005934,218 +0.006642,218 +0.005758,218 +0.006376,218 +0.006204,218 +0.005705,218 +0.006358,218 +0.005827,218 +0.005790,218 +0.006412,218 +0.005781,218 +0.006085,218 +0.006048,218 +0.005698,218 +0.006003,218 +0.006033,218 +0.005719,218 +0.005811,218 +0.005729,218 +0.005720,218 +0.005784,218 +0.005733,218 +0.005670,218 +0.005820,218 +0.005687,218 +0.005769,218 +0.005788,218 +0.005663,218 +0.005668,218 +0.005807,218 +0.005668,218 +0.005742,218 +0.006086,218 +0.005812,218 +0.005815,218 +0.005765,218 +0.005701,218 +0.005771,218 +0.005702,218 +0.005669,218 +0.005714,218 +0.005747,218 +0.005663,218 +0.005804,218 +0.005729,218 +0.005664,218 +0.005859,218 +0.005708,218 +0.005690,218 +0.005978,218 +0.006048,218 +0.005702,218 +0.005724,218 +0.005713,218 +0.005784,218 +0.006000,218 +0.005901,218 +0.005784,218 +0.006205,218 +0.005706,218 +0.005842,218 +0.005730,218 +0.005667,218 +0.005869,218 +0.005789,218 +0.005679,218 +0.005993,218 +0.006072,218 +0.005793,218 +0.005816,218 +0.006076,218 +0.005689,218 +0.005872,218 +0.006006,218 +0.005817,218 +0.005734,218 +0.005828,218 +0.005804,218 +0.005768,218 +0.005742,218 +0.005726,218 +0.005716,218 +0.005692,218 +0.005666,218 +0.006121,218 +0.005762,218 +0.005669,218 +0.005726,218 +0.005705,218 +0.005708,218 +0.005705,218 +0.005665,218 +0.005668,218 +0.005781,218 +0.005691,218 +0.006165,220 +0.005818,220 +0.005839,220 +0.005879,220 +0.005838,220 +0.005813,220 +0.006274,220 +0.005964,220 +0.005843,220 +0.005911,220 +0.005859,220 +0.005875,220 +0.005888,220 +0.005807,220 +0.005817,220 +0.005982,220 +0.005889,220 +0.006092,220 +0.005858,220 +0.005828,220 +0.005898,220 +0.005814,220 +0.005815,220 +0.006025,220 +0.005997,220 +0.005881,220 +0.005914,220 +0.005823,220 +0.005818,220 +0.005881,220 +0.005815,220 +0.005816,220 +0.005895,220 +0.005814,220 +0.005960,220 +0.005851,220 +0.005817,220 +0.005895,220 +0.005836,220 +0.005965,220 +0.006084,220 +0.005981,220 +0.005879,220 +0.005960,220 +0.005945,220 +0.005819,220 +0.005910,220 +0.005815,220 +0.006064,220 +0.005851,220 +0.005837,220 +0.006360,220 +0.005851,220 +0.005961,220 +0.006022,220 +0.005815,220 +0.005884,220 +0.006152,220 +0.006042,220 +0.005933,220 +0.005918,220 +0.005819,220 +0.005834,220 +0.005856,220 +0.005812,220 +0.005853,220 +0.005851,220 +0.005817,220 +0.005985,220 +0.005819,220 +0.005813,220 +0.005885,220 +0.005815,220 +0.005817,220 +0.006085,220 +0.006280,220 +0.005859,220 +0.005925,220 +0.005816,220 +0.005828,220 +0.005856,220 +0.005813,220 +0.005826,220 +0.005852,220 +0.005817,220 +0.005921,220 +0.005824,220 +0.005839,220 +0.005873,220 +0.005821,220 +0.005856,220 +0.006110,220 +0.006147,220 +0.005837,220 +0.005921,220 +0.005834,220 +0.005838,220 +0.005865,220 +0.005813,220 +0.005827,220 +0.006199,222 +0.006047,222 +0.006113,222 +0.005991,222 +0.005998,222 +0.006044,222 +0.005992,222 +0.005992,222 +0.006332,222 +0.006240,222 +0.006050,222 +0.006050,222 +0.006035,222 +0.006060,222 +0.006039,222 +0.006035,222 +0.006087,222 +0.005991,222 +0.006057,222 +0.006044,222 +0.005994,222 +0.006002,222 +0.006035,222 +0.006061,222 +0.006153,222 +0.006487,222 +0.006039,222 +0.006085,222 +0.006020,222 +0.006097,222 +0.006120,222 +0.006067,222 +0.006035,222 +0.006069,222 +0.005991,222 +0.006187,222 +0.005994,222 +0.005995,222 +0.006040,222 +0.005995,222 +0.005993,222 +0.006250,222 +0.006297,222 +0.006125,222 +0.006036,222 +0.006073,222 +0.006072,222 +0.005997,222 +0.005991,222 +0.006043,222 +0.005993,222 +0.006054,222 +0.006039,222 +0.005995,222 +0.006002,222 +0.006036,222 +0.005991,222 +0.006044,222 +0.006302,222 +0.006241,222 +0.006090,222 +0.006012,222 +0.006042,222 +0.006062,222 +0.005993,222 +0.006003,222 +0.006059,222 +0.005991,222 +0.006520,222 +0.005994,222 +0.006099,222 +0.006051,222 +0.006056,222 +0.006015,222 +0.006136,222 +0.006390,222 +0.006093,222 +0.006011,222 +0.006018,222 +0.006080,222 +0.006039,222 +0.006015,222 +0.006043,222 +0.005996,222 +0.006123,222 +0.006034,222 +0.005996,222 +0.006089,222 +0.005991,222 +0.005995,222 +0.006039,222 +0.006226,222 +0.006255,222 +0.006094,222 +0.006012,222 +0.006004,222 +0.006030,222 +0.005996,222 +0.006041,222 +0.005995,222 +0.006544,224 +0.006214,224 +0.006159,224 +0.006201,224 +0.006209,224 +0.006269,224 +0.006196,224 +0.006284,224 +0.006576,224 +0.006228,224 +0.006259,224 +0.006181,224 +0.006204,224 +0.006160,224 +0.006206,224 +0.006182,224 +0.006215,224 +0.006209,224 +0.006159,224 +0.006160,224 +0.006209,224 +0.006219,224 +0.006184,224 +0.006200,224 +0.006813,224 +0.006231,224 +0.006438,224 +0.006208,224 +0.006394,224 +0.006190,224 +0.006206,224 +0.006190,224 +0.006220,224 +0.006259,224 +0.006164,224 +0.006159,224 +0.006209,224 +0.006155,224 +0.006170,224 +0.006197,224 +0.006456,224 +0.006614,224 +0.006198,224 +0.006202,224 +0.006229,224 +0.006181,224 +0.006217,224 +0.006183,224 +0.006216,224 +0.006229,224 +0.006287,224 +0.006185,224 +0.006209,224 +0.006493,224 +0.006197,224 +0.006170,224 +0.006525,224 +0.006446,224 +0.006177,224 +0.006217,224 +0.006214,224 +0.006162,224 +0.006206,224 +0.006165,224 +0.006261,224 +0.006237,224 +0.006162,224 +0.006220,224 +0.006216,224 +0.006155,224 +0.006170,224 +0.006198,224 +0.006455,224 +0.006439,224 +0.006188,224 +0.006182,224 +0.006247,224 +0.006160,224 +0.006166,224 +0.006200,224 +0.006179,224 +0.006269,224 +0.006159,224 +0.006158,224 +0.006210,224 +0.006179,224 +0.006262,224 +0.006195,224 +0.006400,224 +0.006445,224 +0.006241,224 +0.006192,224 +0.006266,224 +0.006244,224 +0.006168,224 +0.006225,224 +0.006156,224 +0.006312,224 +0.006159,224 +0.006161,224 +0.006549,226 +0.006319,226 +0.006334,226 +0.006360,226 +0.006602,226 +0.006872,226 +0.006318,226 +0.006371,226 +0.006378,226 +0.006344,226 +0.006397,226 +0.006370,226 +0.006379,226 +0.006397,226 +0.006319,226 +0.006400,226 +0.006359,226 +0.006319,226 +0.006389,226 +0.006320,226 +0.006569,226 +0.006630,226 +0.006340,226 +0.006420,226 +0.006365,226 +0.006322,226 +0.006366,226 +0.006323,226 +0.006906,226 +0.006387,226 +0.006637,226 +0.006371,226 +0.006345,226 +0.006332,226 +0.006357,226 +0.006324,226 +0.006945,226 +0.006377,226 +0.006349,226 +0.006376,226 +0.006559,226 +0.006351,226 +0.006320,226 +0.006376,226 +0.006434,226 +0.006335,226 +0.006330,226 +0.006359,226 +0.006322,226 +0.006369,226 +0.006323,226 +0.006419,226 +0.006789,226 +0.006450,226 +0.006401,226 +0.006351,226 +0.006318,226 +0.006375,226 +0.006323,226 +0.006379,226 +0.006371,226 +0.006317,226 +0.006370,226 +0.006323,226 +0.006361,226 +0.006372,226 +0.006318,226 +0.006571,226 +0.006741,226 +0.006366,226 +0.006431,226 +0.006340,226 +0.006364,226 +0.006402,226 +0.006318,226 +0.006461,226 +0.006320,226 +0.006319,226 +0.006371,226 +0.006320,226 +0.006330,226 +0.006366,226 +0.006392,226 +0.006721,226 +0.006562,226 +0.006344,226 +0.006403,226 +0.006320,226 +0.006370,226 +0.006322,226 +0.006342,226 +0.006452,226 +0.006320,226 +0.006332,226 +0.006359,226 +0.006359,226 +0.006367,226 +0.006324,226 +0.006318,226 +0.006649,226 +0.007106,228 +0.006580,228 +0.006485,228 +0.006484,228 +0.006534,228 +0.006483,228 +0.006636,228 +0.006547,228 +0.006541,228 +0.006579,228 +0.006543,228 +0.006496,228 +0.006526,228 +0.006482,228 +0.006787,228 +0.006789,228 +0.006515,228 +0.006587,228 +0.006502,228 +0.006544,228 +0.006491,228 +0.006656,228 +0.006526,228 +0.006488,228 +0.006556,228 +0.006483,228 +0.006483,228 +0.006536,228 +0.006488,228 +0.006665,228 +0.006857,228 +0.006545,228 +0.006555,228 +0.006531,228 +0.006544,228 +0.006483,228 +0.006527,228 +0.006643,228 +0.006481,228 +0.006529,228 +0.006496,228 +0.006636,228 +0.006586,228 +0.006502,228 +0.006495,228 +0.007019,228 +0.006552,228 +0.006599,228 +0.006554,228 +0.006495,228 +0.006529,228 +0.006485,228 +0.006610,228 +0.006486,228 +0.006483,228 +0.006535,228 +0.006484,228 +0.006531,228 +0.006488,228 +0.006585,228 +0.006792,228 +0.006762,228 +0.006576,228 +0.006481,228 +0.006486,228 +0.006535,228 +0.006481,228 +0.006615,228 +0.006484,228 +0.006499,228 +0.006538,228 +0.006495,228 +0.006501,228 +0.006530,228 +0.006481,228 +0.006686,228 +0.006840,228 +0.006519,228 +0.006612,228 +0.006503,228 +0.006565,228 +0.006530,228 +0.006877,228 +0.006551,228 +0.006489,228 +0.006533,228 +0.006620,228 +0.006507,228 +0.006530,228 +0.006486,228 +0.006534,228 +0.006951,228 +0.006530,228 +0.006585,228 +0.006482,228 +0.006564,228 +0.006488,228 +0.006579,228 +0.006645,228 +0.006481,228 +0.006906,230 +0.006664,230 +0.006654,230 +0.006708,230 +0.006732,230 +0.007061,230 +0.007030,230 +0.007347,230 +0.007360,230 +0.007459,230 +0.007354,230 +0.007573,230 +0.007686,230 +0.007985,230 +0.007109,230 +0.007216,230 +0.007353,230 +0.008097,230 +0.009631,230 +0.007771,230 +0.009133,230 +0.007343,230 +0.008509,230 +0.007966,230 +0.007210,230 +0.008854,230 +0.008231,230 +0.007544,230 +0.008028,230 +0.007625,230 +0.007927,230 +0.008986,230 +0.008489,230 +0.009163,230 +0.011969,230 +0.011834,230 +0.008479,230 +0.007426,230 +0.007346,230 +0.008399,230 +0.008797,230 +0.007532,230 +0.007414,230 +0.006996,230 +0.007756,230 +0.006975,230 +0.007077,230 +0.007386,230 +0.007467,230 +0.007776,230 +0.007609,230 +0.007568,230 +0.007361,230 +0.007952,230 +0.007071,230 +0.008761,230 +0.007205,230 +0.008618,230 +0.007297,230 +0.007950,230 +0.007024,230 +0.008121,230 +0.007081,230 +0.007821,230 +0.007059,230 +0.006998,230 +0.007775,230 +0.007005,230 +0.008090,230 +0.007026,230 +0.007915,230 +0.007400,230 +0.007968,230 +0.007076,230 +0.006918,230 +0.007954,230 +0.006799,230 +0.008414,230 +0.006951,230 +0.008150,230 +0.007105,230 +0.008124,230 +0.006950,230 +0.006990,230 +0.008277,230 +0.006900,230 +0.007570,230 +0.007040,230 +0.007710,230 +0.007099,230 +0.006936,230 +0.007400,230 +0.006832,230 +0.006759,230 +0.006929,230 +0.006787,230 +0.006863,230 +0.006921,230 +0.007279,230 +0.008303,230 +0.007663,232 +0.008658,232 +0.006971,232 +0.007331,232 +0.007265,232 +0.007715,232 +0.008007,232 +0.007884,232 +0.007827,232 +0.008317,232 +0.007851,232 +0.008945,232 +0.008069,232 +0.008027,232 +0.008219,232 +0.010375,232 +0.009157,232 +0.007510,232 +0.008506,232 +0.007659,232 +0.007794,232 +0.008050,232 +0.007744,232 +0.008130,232 +0.008074,232 +0.009084,232 +0.007656,232 +0.007832,232 +0.007544,232 +0.007925,232 +0.007558,232 +0.008052,232 +0.007596,232 +0.007857,232 +0.007764,232 +0.008353,232 +0.007662,232 +0.007970,232 +0.007488,232 +0.007856,232 +0.007517,232 +0.007807,232 +0.007618,232 +0.007640,232 +0.007767,232 +0.007442,232 +0.008778,232 +0.008466,232 +0.009341,232 +0.007269,232 +0.007878,232 +0.007136,232 +0.007985,232 +0.007516,232 +0.008181,232 +0.007519,232 +0.007891,232 +0.007465,232 +0.008925,232 +0.007472,232 +0.007641,232 +0.008206,232 +0.007339,232 +0.008165,232 +0.007036,232 +0.008310,232 +0.007241,232 +0.007607,232 +0.007111,232 +0.007456,232 +0.007123,232 +0.007018,232 +0.007113,232 +0.006921,232 +0.007212,232 +0.007295,232 +0.006936,232 +0.006939,232 +0.007001,232 +0.006917,232 +0.006998,232 +0.006892,232 +0.006963,232 +0.006877,232 +0.006901,232 +0.006871,232 +0.006835,232 +0.006900,232 +0.006971,232 +0.007192,232 +0.006898,232 +0.006905,232 +0.006866,232 +0.006936,232 +0.007135,232 +0.006877,232 +0.006894,232 +0.006838,232 +0.006897,232 +0.006900,232 +0.007237,234 +0.007229,234 +0.007226,234 +0.007570,234 +0.007112,234 +0.007043,234 +0.007135,234 +0.007101,234 +0.007239,234 +0.007078,234 +0.007109,234 +0.007069,234 +0.007125,234 +0.007131,234 +0.007047,234 +0.007088,234 +0.007028,234 +0.007460,234 +0.007143,234 +0.007030,234 +0.007112,234 +0.007027,234 +0.007208,234 +0.007024,234 +0.007050,234 +0.007111,234 +0.007026,234 +0.007117,234 +0.007020,234 +0.007249,234 +0.007210,234 +0.007394,234 +0.007278,234 +0.007165,234 +0.007221,234 +0.007963,234 +0.009203,234 +0.008000,234 +0.007206,234 +0.007376,234 +0.007202,234 +0.007165,234 +0.007109,234 +0.007178,234 +0.007352,234 +0.007577,234 +0.007112,234 +0.007174,234 +0.007093,234 +0.007694,234 +0.007190,234 +0.007050,234 +0.007141,234 +0.007084,234 +0.007142,234 +0.007064,234 +0.007727,234 +0.007223,234 +0.007325,234 +0.007454,234 +0.007197,234 +0.007191,234 +0.007104,234 +0.007222,234 +0.007170,234 +0.007125,234 +0.007088,234 +0.007044,234 +0.007124,234 +0.007086,234 +0.007128,234 +0.007025,234 +0.007278,234 +0.007411,234 +0.007062,234 +0.007125,234 +0.007030,234 +0.007122,234 +0.007101,234 +0.007102,234 +0.007911,234 +0.007742,234 +0.008329,234 +0.010380,234 +0.008026,234 +0.008500,234 +0.008256,234 +0.008138,234 +0.008184,234 +0.008851,234 +0.008628,234 +0.009289,234 +0.008313,234 +0.007911,234 +0.007843,234 +0.008029,234 +0.007784,234 +0.007991,234 +0.008368,234 +0.008967,234 +0.008834,236 +0.008266,236 +0.008228,236 +0.008136,236 +0.007759,236 +0.007821,236 +0.007737,236 +0.008175,236 +0.007579,236 +0.007759,236 +0.007853,236 +0.008212,236 +0.007521,236 +0.007879,236 +0.007829,236 +0.008431,236 +0.007612,236 +0.007583,236 +0.007709,236 +0.007579,236 +0.007473,236 +0.007549,236 +0.007520,236 +0.007821,236 +0.007461,236 +0.007356,236 +0.007291,236 +0.007332,236 +0.007349,236 +0.007236,236 +0.007218,236 +0.007238,236 +0.007243,236 +0.007231,236 +0.007609,236 +0.007350,236 +0.007396,236 +0.007753,236 +0.007261,236 +0.007650,236 +0.007419,236 +0.007379,236 +0.007389,236 +0.007298,236 +0.007704,236 +0.007321,236 +0.007505,236 +0.007313,236 +0.007608,236 +0.007351,236 +0.007657,236 +0.007536,236 +0.007321,236 +0.008096,236 +0.007385,236 +0.007427,236 +0.007215,236 +0.007849,236 +0.007234,236 +0.007367,236 +0.007348,236 +0.007299,236 +0.007194,236 +0.007443,236 +0.007902,236 +0.007590,236 +0.007554,236 +0.007431,236 +0.007748,236 +0.007674,236 +0.007683,236 +0.007500,236 +0.007520,236 +0.007672,236 +0.007701,236 +0.007689,236 +0.007781,236 +0.007872,236 +0.007630,236 +0.007828,236 +0.007667,236 +0.008095,236 +0.008005,236 +0.007886,236 +0.011243,236 +0.008679,236 +0.007297,236 +0.007512,236 +0.007207,236 +0.007647,236 +0.007748,236 +0.007369,236 +0.007605,236 +0.007382,236 +0.008036,236 +0.007378,236 +0.007765,236 +0.007261,236 +0.008214,236 +0.007343,236 +0.008624,238 +0.007429,238 +0.008038,238 +0.007670,238 +0.007491,238 +0.007370,238 +0.007469,238 +0.007570,238 +0.007449,238 +0.007586,238 +0.007496,238 +0.007464,238 +0.007847,238 +0.007520,238 +0.007370,238 +0.007655,238 +0.007782,238 +0.007511,238 +0.007451,238 +0.007444,238 +0.007455,238 +0.007374,238 +0.007449,238 +0.007378,238 +0.007449,238 +0.007370,238 +0.007508,238 +0.007370,238 +0.007410,238 +0.007805,238 +0.007561,238 +0.007425,238 +0.007431,238 +0.007451,238 +0.007467,238 +0.007449,238 +0.007414,238 +0.007432,238 +0.007401,238 +0.007409,238 +0.007371,238 +0.007368,238 +0.007521,238 +0.007874,238 +0.007490,238 +0.007442,238 +0.007476,238 +0.007785,238 +0.007454,238 +0.007751,238 +0.007405,238 +0.007598,238 +0.007370,238 +0.007409,238 +0.007369,238 +0.007427,238 +0.008021,238 +0.007421,238 +0.007365,238 +0.007567,238 +0.008946,238 +0.008478,238 +0.010571,238 +0.009349,238 +0.011127,238 +0.009461,238 +0.008439,238 +0.008230,238 +0.008482,238 +0.009090,238 +0.008313,238 +0.008916,238 +0.009600,238 +0.009170,238 +0.008555,238 +0.008817,238 +0.008428,238 +0.008248,238 +0.008378,238 +0.008190,238 +0.008983,238 +0.010074,238 +0.009864,238 +0.009125,238 +0.008735,238 +0.007859,238 +0.007874,238 +0.007669,238 +0.007687,238 +0.007573,238 +0.008210,238 +0.008295,238 +0.008358,238 +0.007898,238 +0.008410,238 +0.007990,238 +0.007957,238 +0.008097,238 +0.008056,238 +0.007972,238 +0.008653,240 +0.008411,240 +0.009443,240 +0.010387,240 +0.009186,240 +0.009200,240 +0.008355,240 +0.008307,240 +0.008691,240 +0.009048,240 +0.009448,240 +0.008462,240 +0.010544,240 +0.009193,240 +0.010076,240 +0.008931,240 +0.008495,240 +0.008309,240 +0.008280,240 +0.008282,240 +0.008086,240 +0.008305,240 +0.008257,240 +0.008537,240 +0.007775,240 +0.008803,240 +0.008156,240 +0.008703,240 +0.007829,240 +0.009971,240 +0.010236,240 +0.011200,240 +0.008115,240 +0.009301,240 +0.007973,240 +0.008482,240 +0.007937,240 +0.008784,240 +0.013206,240 +0.008126,240 +0.008587,240 +0.008093,240 +0.008492,240 +0.007942,240 +0.008638,240 +0.007867,240 +0.008002,240 +0.007985,240 +0.008097,240 +0.008768,240 +0.008668,240 +0.007959,240 +0.008045,240 +0.007915,240 +0.007964,240 +0.009017,240 +0.010591,240 +0.010042,240 +0.011167,240 +0.010816,240 +0.008555,240 +0.010858,240 +0.009223,240 +0.010121,240 +0.008837,240 +0.008203,240 +0.008618,240 +0.008413,240 +0.008477,240 +0.008723,240 +0.008598,240 +0.008431,240 +0.008652,240 +0.008653,240 +0.008365,240 +0.008711,240 +0.008385,240 +0.008926,240 +0.008361,240 +0.008319,240 +0.008091,240 +0.008054,240 +0.008121,240 +0.008434,240 +0.010000,240 +0.011078,240 +0.009180,240 +0.008554,240 +0.008533,240 +0.008538,240 +0.008345,240 +0.008361,240 +0.009772,240 +0.009039,240 +0.008347,240 +0.010383,240 +0.011302,240 +0.009205,240 +0.012062,240 +0.009639,240 +0.010181,242 +0.009269,242 +0.009006,242 +0.009717,242 +0.008504,242 +0.010585,242 +0.008997,242 +0.011064,242 +0.010893,242 +0.009848,242 +0.010563,242 +0.009299,242 +0.010176,242 +0.009776,242 +0.013347,242 +0.009719,242 +0.009009,242 +0.009491,242 +0.009756,242 +0.008917,242 +0.009300,242 +0.008440,242 +0.009133,242 +0.008241,242 +0.008374,242 +0.008364,242 +0.008505,242 +0.008798,242 +0.008924,242 +0.009366,242 +0.009250,242 +0.008463,242 +0.008386,242 +0.009386,242 +0.008959,242 +0.008696,242 +0.008675,242 +0.009764,242 +0.008470,242 +0.008959,242 +0.008126,242 +0.008964,242 +0.007957,242 +0.008368,242 +0.007936,242 +0.008271,242 +0.007890,242 +0.008236,242 +0.008135,242 +0.008964,242 +0.007986,242 +0.008580,242 +0.008036,242 +0.008817,242 +0.007993,242 +0.008811,242 +0.008000,242 +0.008834,242 +0.007999,242 +0.008670,242 +0.008321,242 +0.008742,242 +0.008018,242 +0.008544,242 +0.007957,242 +0.008447,242 +0.008035,242 +0.008698,242 +0.007998,242 +0.009916,242 +0.008943,242 +0.008820,242 +0.008849,242 +0.008685,242 +0.009261,242 +0.010206,242 +0.009261,242 +0.008096,242 +0.008463,242 +0.007979,242 +0.008195,242 +0.007949,242 +0.008773,242 +0.008035,242 +0.009100,242 +0.008042,242 +0.008596,242 +0.008102,242 +0.008360,242 +0.008007,242 +0.008242,242 +0.007991,242 +0.008185,242 +0.007931,242 +0.008300,242 +0.007946,242 +0.009118,242 +0.008265,242 +0.008771,242 +0.008246,242 +0.008730,244 +0.008402,244 +0.009118,244 +0.008417,244 +0.009298,244 +0.008481,244 +0.009313,244 +0.008668,244 +0.008875,244 +0.008600,244 +0.008772,244 +0.009428,244 +0.008755,244 +0.009235,244 +0.009010,244 +0.010082,244 +0.008771,244 +0.010093,244 +0.008906,244 +0.009613,244 +0.009461,244 +0.009210,244 +0.010194,244 +0.009208,244 +0.011270,244 +0.009555,244 +0.009779,244 +0.010409,244 +0.009468,244 +0.009655,244 +0.008584,244 +0.008506,244 +0.008732,244 +0.008071,244 +0.008374,244 +0.008024,244 +0.008208,244 +0.008216,244 +0.008539,244 +0.008170,244 +0.008311,244 +0.009333,244 +0.010456,244 +0.009038,244 +0.009488,244 +0.008646,244 +0.008772,244 +0.008282,244 +0.008996,244 +0.013515,244 +0.011108,244 +0.009122,244 +0.009141,244 +0.010592,244 +0.012973,244 +0.010900,244 +0.008776,244 +0.008599,244 +0.008271,244 +0.008535,244 +0.008380,244 +0.008547,244 +0.008541,244 +0.009122,244 +0.009425,244 +0.009985,244 +0.008869,244 +0.009671,244 +0.008826,244 +0.009167,244 +0.009475,244 +0.010463,244 +0.008845,244 +0.009068,244 +0.009923,244 +0.008686,244 +0.009351,244 +0.008841,244 +0.009443,244 +0.009230,244 +0.009117,244 +0.009444,244 +0.008598,244 +0.011855,244 +0.013583,244 +0.009072,244 +0.009092,244 +0.009185,244 +0.014677,244 +0.011672,244 +0.009429,244 +0.008713,244 +0.008714,244 +0.009273,244 +0.010116,244 +0.009393,244 +0.010491,244 +0.008408,244 +0.009318,244 +0.008508,244 +0.009858,246 +0.009395,246 +0.008938,246 +0.011050,246 +0.008977,246 +0.009164,246 +0.009213,246 +0.009397,246 +0.009276,246 +0.009221,246 +0.009539,246 +0.008873,246 +0.009992,246 +0.009103,246 +0.009691,246 +0.010062,246 +0.009052,246 +0.009601,246 +0.009269,246 +0.009436,246 +0.008698,246 +0.008780,246 +0.008658,246 +0.008635,246 +0.009383,246 +0.008811,246 +0.009192,246 +0.008760,246 +0.009154,246 +0.008547,246 +0.009660,246 +0.010609,246 +0.009080,246 +0.009131,246 +0.009144,246 +0.009341,246 +0.013315,246 +0.009230,246 +0.009309,246 +0.009871,246 +0.008865,246 +0.008572,246 +0.010704,246 +0.008672,246 +0.009686,246 +0.011265,246 +0.009018,246 +0.009531,246 +0.008655,246 +0.010740,246 +0.008935,246 +0.008863,246 +0.008870,246 +0.009304,246 +0.009020,246 +0.008978,246 +0.009087,246 +0.008751,246 +0.009580,246 +0.008960,246 +0.009217,246 +0.008830,246 +0.009173,246 +0.008646,246 +0.009105,246 +0.009314,246 +0.008384,246 +0.009238,246 +0.008834,246 +0.009322,246 +0.008750,246 +0.009035,246 +0.008676,246 +0.009955,246 +0.008648,246 +0.009108,246 +0.008685,246 +0.008831,246 +0.009185,246 +0.009365,246 +0.009642,246 +0.008500,246 +0.009377,246 +0.008589,246 +0.008932,246 +0.008653,246 +0.008815,246 +0.008795,246 +0.009015,246 +0.008711,246 +0.009558,246 +0.009287,246 +0.008655,246 +0.008782,246 +0.008563,246 +0.010632,246 +0.008627,246 +0.009575,246 +0.008599,246 +0.009215,246 +0.009130,248 +0.009244,248 +0.009282,248 +0.008789,248 +0.009308,248 +0.008727,248 +0.009762,248 +0.008719,248 +0.008883,248 +0.008873,248 +0.008978,248 +0.008867,248 +0.010259,248 +0.009395,248 +0.008633,248 +0.009338,248 +0.008758,248 +0.009328,248 +0.009498,248 +0.008909,248 +0.009063,248 +0.009817,248 +0.009740,248 +0.009207,248 +0.009438,248 +0.012479,248 +0.010154,248 +0.009249,248 +0.009299,248 +0.010087,248 +0.009723,248 +0.009695,248 +0.010362,248 +0.010546,248 +0.010629,248 +0.010528,248 +0.015329,248 +0.012274,248 +0.011152,248 +0.009396,248 +0.009280,248 +0.009034,248 +0.012744,248 +0.015582,248 +0.015658,248 +0.015078,248 +0.010024,248 +0.009239,248 +0.009943,248 +0.009773,248 +0.014537,248 +0.017530,248 +0.015920,248 +0.011957,248 +0.009105,248 +0.009083,248 +0.009202,248 +0.009940,248 +0.010099,248 +0.009476,248 +0.009598,248 +0.010707,248 +0.009195,248 +0.009424,248 +0.008605,248 +0.009276,248 +0.008892,248 +0.009204,248 +0.008877,248 +0.009213,248 +0.011625,248 +0.009214,248 +0.009382,248 +0.009043,248 +0.009214,248 +0.008909,248 +0.010248,248 +0.009246,248 +0.009236,248 +0.009438,248 +0.008784,248 +0.011077,248 +0.010114,248 +0.009304,248 +0.009221,248 +0.008766,248 +0.009307,248 +0.008864,248 +0.009873,248 +0.008852,248 +0.009311,248 +0.008867,248 +0.009239,248 +0.009388,248 +0.009156,248 +0.009197,248 +0.008510,248 +0.009130,248 +0.008669,248 +0.009244,248 +0.009025,250 +0.009350,250 +0.008872,250 +0.009456,250 +0.009317,250 +0.008936,250 +0.009422,250 +0.008982,250 +0.009744,250 +0.008988,250 +0.009696,250 +0.009359,250 +0.009167,250 +0.012349,250 +0.009517,250 +0.009812,250 +0.009119,250 +0.009061,250 +0.009260,250 +0.009456,250 +0.009952,250 +0.008818,250 +0.009474,250 +0.008798,250 +0.009091,250 +0.009133,250 +0.009540,250 +0.009433,250 +0.009249,250 +0.010214,250 +0.008713,250 +0.010148,250 +0.008962,250 +0.009849,250 +0.009456,250 +0.009602,250 +0.009677,250 +0.008792,250 +0.009677,250 +0.008841,250 +0.009685,250 +0.009485,250 +0.008924,250 +0.009592,250 +0.008825,250 +0.009603,250 +0.009132,250 +0.009784,250 +0.009045,250 +0.009499,250 +0.009518,250 +0.009109,250 +0.009879,250 +0.008919,250 +0.009706,250 +0.008915,250 +0.009780,250 +0.009812,250 +0.009038,250 +0.009642,250 +0.009030,250 +0.009746,250 +0.008882,250 +0.009732,250 +0.009126,250 +0.009544,250 +0.009785,250 +0.009096,250 +0.009853,250 +0.008885,250 +0.009660,250 +0.009002,250 +0.009631,250 +0.009679,250 +0.008955,250 +0.009704,250 +0.008887,250 +0.013027,250 +0.010948,250 +0.008987,250 +0.009630,250 +0.008881,250 +0.009727,250 +0.009298,250 +0.009833,250 +0.009567,250 +0.009455,250 +0.010065,250 +0.009454,250 +0.010091,250 +0.009412,250 +0.009077,250 +0.009636,250 +0.009303,250 +0.009526,250 +0.008877,250 +0.009605,250 +0.009191,250 +0.010011,250 +0.009709,250 +0.010231,252 +0.012990,252 +0.009854,252 +0.010859,252 +0.014675,252 +0.015726,252 +0.012810,252 +0.014456,252 +0.009736,252 +0.010464,252 +0.010532,252 +0.012710,252 +0.010361,252 +0.009999,252 +0.009827,252 +0.013812,252 +0.010463,252 +0.010301,252 +0.009966,252 +0.009810,252 +0.009776,252 +0.009550,252 +0.009727,252 +0.009798,252 +0.009014,252 +0.011330,252 +0.010802,252 +0.009600,252 +0.010121,252 +0.011557,252 +0.009966,252 +0.010390,252 +0.009430,252 +0.009848,252 +0.010062,252 +0.012363,252 +0.012036,252 +0.009869,252 +0.009844,252 +0.010969,252 +0.011726,252 +0.011246,252 +0.011567,252 +0.009282,252 +0.010693,252 +0.010142,252 +0.009920,252 +0.012229,252 +0.010075,252 +0.009732,252 +0.010298,252 +0.009082,252 +0.010190,252 +0.009417,252 +0.009715,252 +0.015873,252 +0.016372,252 +0.016583,252 +0.015830,252 +0.016000,252 +0.011421,252 +0.010158,252 +0.010739,252 +0.009456,252 +0.012964,252 +0.012191,252 +0.012941,252 +0.011451,252 +0.011859,252 +0.013485,252 +0.011426,252 +0.011688,252 +0.016568,252 +0.016182,252 +0.016828,252 +0.016195,252 +0.016573,252 +0.016100,252 +0.010000,252 +0.009507,252 +0.010536,252 +0.010492,252 +0.009154,252 +0.013518,252 +0.010619,252 +0.012216,252 +0.010740,252 +0.009764,252 +0.009365,252 +0.009776,252 +0.010528,252 +0.009679,252 +0.009761,252 +0.009547,252 +0.010305,252 +0.012599,252 +0.011673,252 +0.009893,252 +0.010159,252 +0.009324,252 +0.010555,254 +0.009937,254 +0.010597,254 +0.010326,254 +0.009800,254 +0.010106,254 +0.009499,254 +0.010620,254 +0.010066,254 +0.009924,254 +0.011003,254 +0.009747,254 +0.009786,254 +0.009392,254 +0.010399,254 +0.011080,254 +0.009258,254 +0.010474,254 +0.009610,254 +0.010054,254 +0.011508,254 +0.009480,254 +0.009833,254 +0.009961,254 +0.009436,254 +0.012692,254 +0.009641,254 +0.010464,254 +0.011081,254 +0.009649,254 +0.010144,254 +0.010091,254 +0.009405,254 +0.009991,254 +0.010172,254 +0.010449,254 +0.010108,254 +0.010207,254 +0.010032,254 +0.009369,254 +0.010225,254 +0.009678,254 +0.016870,254 +0.016472,254 +0.010452,254 +0.011093,254 +0.010473,254 +0.009599,254 +0.014770,254 +0.016677,254 +0.017813,254 +0.017380,254 +0.016409,254 +0.017041,254 +0.016572,254 +0.016370,254 +0.016605,254 +0.016964,254 +0.017444,254 +0.017205,254 +0.016628,254 +0.013205,254 +0.010322,254 +0.009270,254 +0.009769,254 +0.009492,254 +0.009941,254 +0.010107,254 +0.010101,254 +0.010084,254 +0.010374,254 +0.012121,254 +0.012037,254 +0.009778,254 +0.010571,254 +0.009853,254 +0.009496,254 +0.009743,254 +0.009096,254 +0.009745,254 +0.009021,254 +0.010155,254 +0.010309,254 +0.009889,254 +0.011350,254 +0.010828,254 +0.010240,254 +0.009932,254 +0.009917,254 +0.010543,254 +0.010089,254 +0.013366,254 +0.016995,254 +0.017477,254 +0.016690,254 +0.016894,254 +0.018866,254 +0.014139,254 +0.010406,254 +0.009661,254 +0.009779,256 +0.010680,256 +0.010421,256 +0.010054,256 +0.010939,256 +0.009451,256 +0.013862,256 +0.010243,256 +0.009519,256 +0.010374,256 +0.009982,256 +0.010124,256 +0.011400,256 +0.010499,256 +0.009763,256 +0.010973,256 +0.009887,256 +0.010968,256 +0.011389,256 +0.013785,256 +0.009945,256 +0.010088,256 +0.010515,256 +0.010346,256 +0.010209,256 +0.009981,256 +0.010826,256 +0.009649,256 +0.011957,256 +0.010635,256 +0.009541,256 +0.010679,256 +0.010541,256 +0.009604,256 +0.010616,256 +0.009487,256 +0.010491,256 +0.010836,256 +0.013541,256 +0.017591,256 +0.014169,256 +0.012726,256 +0.013956,256 +0.011220,256 +0.010190,256 +0.011644,256 +0.010571,256 +0.010247,256 +0.010495,256 +0.010289,256 +0.010695,256 +0.010168,256 +0.009805,256 +0.011205,256 +0.010342,256 +0.010553,256 +0.010728,256 +0.009985,256 +0.010386,256 +0.010392,256 +0.010682,256 +0.011283,256 +0.011353,256 +0.010878,256 +0.015319,256 +0.015399,256 +0.010297,256 +0.010587,256 +0.017157,256 +0.017762,256 +0.017091,256 +0.017641,256 +0.013289,256 +0.011448,256 +0.011872,256 +0.011224,256 +0.010420,256 +0.011012,256 +0.011475,256 +0.015462,256 +0.012049,256 +0.011826,256 +0.011497,256 +0.011092,256 +0.011921,256 +0.011552,256 +0.011640,256 +0.010822,256 +0.011117,256 +0.010751,256 +0.010827,256 +0.010403,256 +0.009689,256 +0.011013,256 +0.012598,256 +0.009945,256 +0.010082,256 +0.014993,256 +0.009717,256 +0.009882,256 +0.010107,258 +0.009770,258 +0.009796,258 +0.009472,258 +0.009749,258 +0.009416,258 +0.010430,258 +0.009918,258 +0.009482,258 +0.009579,258 +0.009374,258 +0.009683,258 +0.009468,258 +0.009405,258 +0.009450,258 +0.009404,258 +0.009560,258 +0.009866,258 +0.009767,258 +0.009467,258 +0.009433,258 +0.009574,258 +0.009596,258 +0.009561,258 +0.009546,258 +0.009753,258 +0.009619,258 +0.009744,258 +0.010196,258 +0.010095,258 +0.010383,258 +0.010210,258 +0.010262,258 +0.010389,258 +0.010256,258 +0.009983,258 +0.009761,258 +0.009582,258 +0.010053,258 +0.009413,258 +0.009532,258 +0.009446,258 +0.009426,258 +0.009423,258 +0.009346,258 +0.009422,258 +0.009347,258 +0.009394,258 +0.009674,258 +0.009704,258 +0.009396,258 +0.009351,258 +0.009391,258 +0.009346,258 +0.009475,258 +0.009598,258 +0.010080,258 +0.010452,258 +0.010871,258 +0.010423,258 +0.010513,258 +0.010116,258 +0.010210,258 +0.009958,258 +0.009968,258 +0.010047,258 +0.010058,258 +0.010037,258 +0.010153,258 +0.011575,258 +0.012614,258 +0.010947,258 +0.009669,258 +0.009714,258 +0.009688,258 +0.010026,258 +0.009516,258 +0.009797,258 +0.009955,258 +0.010176,258 +0.009922,258 +0.010324,258 +0.010263,258 +0.009942,258 +0.010075,258 +0.010010,258 +0.010313,258 +0.010602,258 +0.010260,258 +0.010234,258 +0.010394,258 +0.010284,258 +0.013337,258 +0.010676,258 +0.010417,258 +0.010114,258 +0.010350,258 +0.012891,258 +0.013548,258 +0.010766,258 +0.011532,260 +0.010968,260 +0.010756,260 +0.010761,260 +0.010170,260 +0.010459,260 +0.013812,260 +0.011390,260 +0.009759,260 +0.010005,260 +0.009683,260 +0.009912,260 +0.009788,260 +0.009833,260 +0.012760,260 +0.019698,260 +0.018735,260 +0.018137,260 +0.018051,260 +0.018126,260 +0.016454,260 +0.010452,260 +0.009917,260 +0.009712,260 +0.010646,260 +0.010046,260 +0.010721,260 +0.010848,260 +0.010831,260 +0.011017,260 +0.010318,260 +0.010154,260 +0.009890,260 +0.009848,260 +0.010152,260 +0.009949,260 +0.009642,260 +0.009848,260 +0.010376,260 +0.010758,260 +0.011059,260 +0.010853,260 +0.012435,260 +0.010276,260 +0.010300,260 +0.012000,260 +0.013294,260 +0.012111,260 +0.011801,260 +0.010755,260 +0.011994,260 +0.011919,260 +0.010789,260 +0.012048,260 +0.011977,260 +0.012300,260 +0.012509,260 +0.012142,260 +0.010451,260 +0.010635,260 +0.010448,260 +0.010917,260 +0.010891,260 +0.010783,260 +0.010708,260 +0.010749,260 +0.010585,260 +0.010855,260 +0.011117,260 +0.010729,260 +0.010794,260 +0.010692,260 +0.010542,260 +0.010503,260 +0.010549,260 +0.010460,260 +0.010503,260 +0.010593,260 +0.010516,260 +0.010728,260 +0.010585,260 +0.010632,260 +0.010700,260 +0.013832,260 +0.011336,260 +0.010597,260 +0.010557,260 +0.010810,260 +0.011117,260 +0.011006,260 +0.011358,260 +0.010412,260 +0.010276,260 +0.011562,260 +0.012203,260 +0.015970,260 +0.009911,260 +0.011294,260 +0.011579,260 +0.012378,260 +0.011885,262 +0.011688,262 +0.012098,262 +0.017249,262 +0.012328,262 +0.017765,262 +0.022648,262 +0.018523,262 +0.011370,262 +0.012250,262 +0.011140,262 +0.010837,262 +0.010156,262 +0.010665,262 +0.010573,262 +0.012050,262 +0.011725,262 +0.011434,262 +0.011467,262 +0.011308,262 +0.012422,262 +0.010747,262 +0.011455,262 +0.012212,262 +0.010871,262 +0.011883,262 +0.011414,262 +0.011060,262 +0.011012,262 +0.011690,262 +0.013613,262 +0.010994,262 +0.011202,262 +0.013261,262 +0.012546,262 +0.013007,262 +0.011315,262 +0.011240,262 +0.010581,262 +0.012079,262 +0.011860,262 +0.011337,262 +0.011544,262 +0.013034,262 +0.011081,262 +0.010664,262 +0.010906,262 +0.012053,262 +0.010731,262 +0.014121,262 +0.011711,262 +0.013684,262 +0.012036,262 +0.012383,262 +0.011715,262 +0.010776,262 +0.011244,262 +0.011810,262 +0.010253,262 +0.010740,262 +0.010743,262 +0.011492,262 +0.011037,262 +0.011238,262 +0.010825,262 +0.011052,262 +0.011090,262 +0.010108,262 +0.011135,262 +0.011111,262 +0.011944,262 +0.011301,262 +0.011062,262 +0.010266,262 +0.012399,262 +0.011177,262 +0.009959,262 +0.010554,262 +0.010458,262 +0.010451,262 +0.010572,262 +0.010284,262 +0.011125,262 +0.011215,262 +0.010490,262 +0.011294,262 +0.010950,262 +0.010181,262 +0.010554,262 +0.010798,262 +0.010588,262 +0.010938,262 +0.011195,262 +0.010304,262 +0.016095,262 +0.013226,262 +0.010853,262 +0.010454,262 +0.010427,262 +0.010101,262 +0.010794,264 +0.011579,264 +0.011372,264 +0.013671,264 +0.012693,264 +0.012298,264 +0.011387,264 +0.010932,264 +0.012185,264 +0.012093,264 +0.010862,264 +0.013355,264 +0.013758,264 +0.012014,264 +0.010772,264 +0.013846,264 +0.010442,264 +0.010146,264 +0.010189,264 +0.010453,264 +0.010165,264 +0.010202,264 +0.010154,264 +0.010184,264 +0.016234,264 +0.010232,264 +0.010653,264 +0.010957,264 +0.010317,264 +0.010160,264 +0.010207,264 +0.010154,264 +0.010074,264 +0.015739,264 +0.010218,264 +0.010167,264 +0.010198,264 +0.010039,264 +0.011495,264 +0.010973,264 +0.010209,264 +0.010213,264 +0.010392,264 +0.010206,264 +0.010219,264 +0.010150,264 +0.010204,264 +0.010077,264 +0.010029,264 +0.010081,264 +0.010087,264 +0.010062,264 +0.010284,264 +0.010231,264 +0.010156,264 +0.010122,264 +0.010094,264 +0.010179,264 +0.009974,264 +0.010217,264 +0.010331,264 +0.010127,264 +0.010511,264 +0.010212,264 +0.010175,264 +0.010099,264 +0.010354,264 +0.010094,264 +0.010020,264 +0.010053,264 +0.010128,264 +0.010016,264 +0.010424,264 +0.010017,264 +0.010142,264 +0.010322,264 +0.009975,264 +0.011610,264 +0.010608,264 +0.010153,264 +0.010441,264 +0.010130,264 +0.010610,264 +0.010203,264 +0.010101,264 +0.010052,264 +0.010070,264 +0.010221,264 +0.010127,264 +0.010209,264 +0.010113,264 +0.010248,264 +0.010656,264 +0.010227,264 +0.010537,264 +0.010463,264 +0.010206,264 +0.009976,264 +0.010978,264 +0.012841,264 +0.011457,266 +0.011325,266 +0.012660,266 +0.011298,266 +0.010768,266 +0.011054,266 +0.010783,266 +0.010563,266 +0.010470,266 +0.010377,266 +0.010594,266 +0.010372,266 +0.010286,266 +0.010322,266 +0.010281,266 +0.010319,266 +0.010380,266 +0.010277,266 +0.010316,266 +0.010538,266 +0.010632,266 +0.010314,266 +0.010246,266 +0.010298,266 +0.010313,266 +0.010222,266 +0.010392,266 +0.010303,266 +0.010258,266 +0.011083,266 +0.011373,266 +0.011394,266 +0.011423,266 +0.011494,266 +0.011362,266 +0.011225,266 +0.011327,266 +0.011162,266 +0.011533,266 +0.012106,266 +0.011551,266 +0.011496,266 +0.012078,266 +0.010990,266 +0.011217,266 +0.011571,266 +0.011147,266 +0.010625,266 +0.011689,266 +0.012289,266 +0.011349,266 +0.012935,266 +0.012327,266 +0.011804,266 +0.011409,266 +0.011983,266 +0.011368,266 +0.011151,266 +0.011225,266 +0.010653,266 +0.010704,266 +0.011275,266 +0.011230,266 +0.011698,266 +0.013166,266 +0.015349,266 +0.018412,266 +0.017065,266 +0.013121,266 +0.011527,266 +0.010822,266 +0.011982,266 +0.011018,266 +0.010638,266 +0.011363,266 +0.012734,266 +0.010482,266 +0.010728,266 +0.010993,266 +0.011482,266 +0.011666,266 +0.011318,266 +0.011667,266 +0.011474,266 +0.012265,266 +0.012166,266 +0.011736,266 +0.012148,266 +0.012070,266 +0.011598,266 +0.013895,266 +0.012129,266 +0.014653,266 +0.012137,266 +0.014748,266 +0.015828,266 +0.013458,266 +0.014819,266 +0.012846,266 +0.016506,266 +0.012439,268 +0.011157,268 +0.012181,268 +0.012792,268 +0.018302,268 +0.012486,268 +0.011053,268 +0.011819,268 +0.012515,268 +0.014427,268 +0.018408,268 +0.021454,268 +0.012570,268 +0.011423,268 +0.011239,268 +0.011432,268 +0.011399,268 +0.011265,268 +0.012256,268 +0.011688,268 +0.011787,268 +0.011798,268 +0.011951,268 +0.011667,268 +0.011537,268 +0.012007,268 +0.010827,268 +0.011254,268 +0.011534,268 +0.011232,268 +0.010853,268 +0.011462,268 +0.011062,268 +0.010949,268 +0.011541,268 +0.011058,268 +0.011035,268 +0.011518,268 +0.011622,268 +0.010679,268 +0.011386,268 +0.012035,268 +0.014004,268 +0.011193,268 +0.012148,268 +0.011543,268 +0.012519,268 +0.011213,268 +0.014361,268 +0.013364,268 +0.013924,268 +0.012259,268 +0.013628,268 +0.012660,268 +0.012574,268 +0.012317,268 +0.012326,268 +0.011779,268 +0.012059,268 +0.011431,268 +0.011946,268 +0.013517,268 +0.015301,268 +0.014987,268 +0.012013,268 +0.012194,268 +0.011377,268 +0.011686,268 +0.011386,268 +0.012465,268 +0.015420,268 +0.020418,268 +0.015497,268 +0.012483,268 +0.011771,268 +0.013726,268 +0.012621,268 +0.012090,268 +0.010986,268 +0.012368,268 +0.011458,268 +0.011811,268 +0.011334,268 +0.017564,268 +0.014490,268 +0.016207,268 +0.013307,268 +0.012526,268 +0.011412,268 +0.012655,268 +0.011794,268 +0.011151,268 +0.012182,268 +0.012015,268 +0.011588,268 +0.011319,268 +0.011843,268 +0.011518,268 +0.013115,268 +0.011957,268 +0.013827,270 +0.011480,270 +0.011624,270 +0.011960,270 +0.013117,270 +0.013719,270 +0.012665,270 +0.014312,270 +0.018070,270 +0.012840,270 +0.013579,270 +0.013749,270 +0.011697,270 +0.011351,270 +0.012223,270 +0.017580,270 +0.011414,270 +0.011318,270 +0.011599,270 +0.011700,270 +0.012627,270 +0.011451,270 +0.011609,270 +0.011333,270 +0.011392,270 +0.010944,270 +0.010892,270 +0.011558,270 +0.011820,270 +0.011908,270 +0.011294,270 +0.011460,270 +0.013014,270 +0.014360,270 +0.011905,270 +0.011698,270 +0.011326,270 +0.011469,270 +0.011072,270 +0.011061,270 +0.012363,270 +0.011825,270 +0.012339,270 +0.011823,270 +0.014907,270 +0.011328,270 +0.011481,270 +0.011953,270 +0.014402,270 +0.014933,270 +0.011434,270 +0.011730,270 +0.011142,270 +0.011680,270 +0.011440,270 +0.011634,270 +0.011048,270 +0.012270,270 +0.011313,270 +0.011724,270 +0.011649,270 +0.014341,270 +0.017158,270 +0.013464,270 +0.011567,270 +0.011611,270 +0.011913,270 +0.013445,270 +0.011918,270 +0.015169,270 +0.014472,270 +0.011883,270 +0.012696,270 +0.012013,270 +0.011942,270 +0.011916,270 +0.011145,270 +0.013960,270 +0.012014,270 +0.011429,270 +0.011623,270 +0.013834,270 +0.011994,270 +0.011362,270 +0.010976,270 +0.011128,270 +0.010985,270 +0.011327,270 +0.011608,270 +0.013648,270 +0.011881,270 +0.011458,270 +0.011348,270 +0.011615,270 +0.012125,270 +0.011188,270 +0.013129,270 +0.011223,270 +0.011644,270 +0.011201,270 +0.011853,272 +0.012187,272 +0.012305,272 +0.013455,272 +0.012277,272 +0.012017,272 +0.015585,272 +0.012174,272 +0.011242,272 +0.011910,272 +0.011257,272 +0.011207,272 +0.011918,272 +0.011065,272 +0.011464,272 +0.012213,272 +0.011118,272 +0.011124,272 +0.011316,272 +0.011282,272 +0.011464,272 +0.011202,272 +0.011479,272 +0.011615,272 +0.011943,272 +0.011892,272 +0.011300,272 +0.013015,272 +0.011799,272 +0.012453,272 +0.011830,272 +0.015279,272 +0.013138,272 +0.011969,272 +0.012412,272 +0.013635,272 +0.011874,272 +0.012776,272 +0.012803,272 +0.012065,272 +0.012143,272 +0.011485,272 +0.011841,272 +0.012257,272 +0.012161,272 +0.011664,272 +0.012727,272 +0.012390,272 +0.011519,272 +0.012903,272 +0.012968,272 +0.011564,272 +0.011474,272 +0.012503,272 +0.013555,272 +0.011861,272 +0.017892,272 +0.012202,272 +0.011796,272 +0.011900,272 +0.011608,272 +0.011639,272 +0.012110,272 +0.011517,272 +0.011523,272 +0.011379,272 +0.011210,272 +0.011205,272 +0.011195,272 +0.011060,272 +0.011284,272 +0.011000,272 +0.011011,272 +0.011319,272 +0.010966,272 +0.011012,272 +0.011026,272 +0.010966,272 +0.010985,272 +0.011140,272 +0.010966,272 +0.011092,272 +0.011223,272 +0.010995,272 +0.011014,272 +0.010989,272 +0.010997,272 +0.010986,272 +0.011621,272 +0.010976,272 +0.011770,272 +0.011894,272 +0.012049,272 +0.012264,272 +0.012022,272 +0.011747,272 +0.012237,272 +0.012840,272 +0.012496,272 +0.018836,272 +0.012484,274 +0.011528,274 +0.011521,274 +0.011412,274 +0.011490,274 +0.011426,274 +0.011435,274 +0.017460,274 +0.011924,274 +0.011255,274 +0.011323,274 +0.011351,274 +0.011352,274 +0.011390,274 +0.011604,274 +0.014364,274 +0.014529,274 +0.011399,274 +0.011264,274 +0.011219,274 +0.011388,274 +0.011373,274 +0.011226,274 +0.011304,274 +0.017376,274 +0.011361,274 +0.011385,274 +0.011204,274 +0.011264,274 +0.011887,274 +0.011308,274 +0.011339,274 +0.017406,274 +0.013205,274 +0.012187,274 +0.011445,274 +0.011474,274 +0.011793,274 +0.011532,274 +0.011725,274 +0.017909,274 +0.011546,274 +0.012766,274 +0.011466,274 +0.011593,274 +0.011637,274 +0.011641,274 +0.013013,274 +0.018135,274 +0.013629,274 +0.011539,274 +0.012274,274 +0.012491,274 +0.011918,274 +0.012186,274 +0.011985,274 +0.017766,274 +0.011750,274 +0.011517,274 +0.011799,274 +0.011707,274 +0.011869,274 +0.012377,274 +0.012414,274 +0.011907,274 +0.012177,274 +0.011493,274 +0.011761,274 +0.012167,274 +0.012437,274 +0.011576,274 +0.011602,274 +0.012961,274 +0.011365,274 +0.011398,274 +0.011277,274 +0.011328,274 +0.011243,274 +0.011415,274 +0.011370,274 +0.011262,274 +0.013047,274 +0.011328,274 +0.011282,274 +0.011300,274 +0.011189,274 +0.011350,274 +0.011451,274 +0.011256,274 +0.011985,274 +0.012333,274 +0.011306,274 +0.011182,274 +0.011293,274 +0.011283,274 +0.011312,274 +0.011405,274 +0.011258,274 +0.012624,274 +0.011732,274 +0.011626,276 +0.011830,276 +0.011472,276 +0.011444,276 +0.012230,276 +0.011908,276 +0.011449,276 +0.013251,276 +0.011545,276 +0.011906,276 +0.011556,276 +0.011654,276 +0.011653,276 +0.011543,276 +0.011620,276 +0.014764,276 +0.012550,276 +0.011524,276 +0.011551,276 +0.011626,276 +0.011757,276 +0.012318,276 +0.011735,276 +0.012132,276 +0.012866,276 +0.011526,276 +0.011551,276 +0.011645,276 +0.011461,276 +0.011700,276 +0.011646,276 +0.011464,276 +0.013195,276 +0.011691,276 +0.011567,276 +0.011444,276 +0.011548,276 +0.011577,276 +0.011507,276 +0.011613,276 +0.011945,276 +0.013265,276 +0.011492,276 +0.011523,276 +0.011529,276 +0.011488,276 +0.011626,276 +0.011577,276 +0.011430,276 +0.013222,276 +0.011690,276 +0.011585,276 +0.011442,276 +0.011534,276 +0.011572,276 +0.011527,276 +0.011698,276 +0.011460,276 +0.013457,276 +0.011480,276 +0.011521,276 +0.011593,276 +0.011477,276 +0.011625,276 +0.011618,276 +0.011504,276 +0.013268,276 +0.011676,276 +0.011595,276 +0.011449,276 +0.011510,276 +0.011694,276 +0.011560,276 +0.011675,276 +0.011486,276 +0.013421,276 +0.011482,276 +0.011500,276 +0.011549,276 +0.011423,276 +0.011618,276 +0.011554,276 +0.011484,276 +0.013115,276 +0.011791,276 +0.011593,276 +0.011446,276 +0.011472,276 +0.011623,276 +0.011769,276 +0.011809,276 +0.011456,276 +0.013300,276 +0.011511,276 +0.011486,276 +0.011532,276 +0.011444,276 +0.011601,276 +0.011573,276 +0.011466,276 +0.014016,278 +0.012821,278 +0.011816,278 +0.011791,278 +0.011814,278 +0.011808,278 +0.011876,278 +0.011704,278 +0.012423,278 +0.013013,278 +0.011796,278 +0.011863,278 +0.011816,278 +0.012011,278 +0.011901,278 +0.011876,278 +0.011801,278 +0.013614,278 +0.012472,278 +0.011975,278 +0.011879,278 +0.011779,278 +0.011925,278 +0.011799,278 +0.011921,278 +0.013394,278 +0.012003,278 +0.011716,278 +0.011783,278 +0.011709,278 +0.011817,278 +0.011915,278 +0.011706,278 +0.012678,278 +0.012789,278 +0.011801,278 +0.011737,278 +0.011810,278 +0.011883,278 +0.011786,278 +0.011824,278 +0.011753,278 +0.013593,278 +0.011803,278 +0.011789,278 +0.011834,278 +0.011888,278 +0.011825,278 +0.011847,278 +0.011877,278 +0.013396,278 +0.011984,278 +0.011737,278 +0.011921,278 +0.011703,278 +0.011848,278 +0.012008,278 +0.012461,278 +0.013065,278 +0.015012,278 +0.011799,278 +0.011843,278 +0.011725,278 +0.011822,278 +0.011867,278 +0.011685,278 +0.012549,278 +0.017619,278 +0.012041,278 +0.011872,278 +0.011734,278 +0.011846,278 +0.011907,278 +0.011726,278 +0.013490,278 +0.016518,278 +0.012111,278 +0.011972,278 +0.011709,278 +0.011893,278 +0.011847,278 +0.011849,278 +0.013321,278 +0.017125,278 +0.011849,278 +0.012183,278 +0.011838,278 +0.011931,278 +0.011931,278 +0.011880,278 +0.016327,278 +0.013564,278 +0.011901,278 +0.011785,278 +0.012227,278 +0.012016,278 +0.015415,278 +0.012437,278 +0.018601,278 +0.011967,278 +0.012358,280 +0.012528,280 +0.012497,280 +0.012089,280 +0.012103,280 +0.013682,280 +0.016582,280 +0.011985,280 +0.012008,280 +0.012124,280 +0.012076,280 +0.012043,280 +0.012039,280 +0.015314,280 +0.015128,280 +0.011979,280 +0.012000,280 +0.012176,280 +0.012002,280 +0.012048,280 +0.011957,280 +0.017007,280 +0.013269,280 +0.011976,280 +0.012094,280 +0.012067,280 +0.012082,280 +0.012120,280 +0.011987,280 +0.018353,280 +0.012012,280 +0.012067,280 +0.011959,280 +0.012076,280 +0.012149,280 +0.011906,280 +0.012002,280 +0.018332,280 +0.012014,280 +0.012062,280 +0.011926,280 +0.012084,280 +0.012065,280 +0.012078,280 +0.011952,280 +0.018367,280 +0.012072,280 +0.011984,280 +0.012042,280 +0.012131,280 +0.012037,280 +0.012020,280 +0.011885,280 +0.018517,280 +0.012033,280 +0.011994,280 +0.012136,280 +0.012023,280 +0.012108,280 +0.012008,280 +0.012312,280 +0.019490,280 +0.012129,280 +0.012053,280 +0.012023,280 +0.012058,280 +0.011982,280 +0.012002,280 +0.015990,280 +0.014953,280 +0.012328,280 +0.012194,280 +0.012157,280 +0.012081,280 +0.012064,280 +0.011945,280 +0.018334,280 +0.012104,280 +0.011964,280 +0.012029,280 +0.012046,280 +0.012069,280 +0.012067,280 +0.012037,280 +0.018357,280 +0.011993,280 +0.012012,280 +0.012035,280 +0.012176,280 +0.011944,280 +0.011945,280 +0.012023,280 +0.018378,280 +0.012070,280 +0.011964,280 +0.012046,280 +0.012120,280 +0.011925,280 +0.011982,280 +0.012008,280 +0.018777,282 +0.012455,282 +0.012229,282 +0.012423,282 +0.012639,282 +0.012323,282 +0.012197,282 +0.017554,282 +0.013383,282 +0.012235,282 +0.012296,282 +0.012469,282 +0.012245,282 +0.012271,282 +0.012269,282 +0.018619,282 +0.012279,282 +0.012240,282 +0.012295,282 +0.012357,282 +0.012275,282 +0.012292,282 +0.012448,282 +0.018508,282 +0.012233,282 +0.012294,282 +0.012277,282 +0.012265,282 +0.012279,282 +0.012284,282 +0.016910,282 +0.014048,282 +0.012333,282 +0.012298,282 +0.012427,282 +0.012202,282 +0.012237,282 +0.012336,282 +0.019885,282 +0.012457,282 +0.012339,282 +0.012278,282 +0.012321,282 +0.012412,282 +0.012197,282 +0.015114,282 +0.016011,282 +0.012308,282 +0.012356,282 +0.012507,282 +0.012255,282 +0.012235,282 +0.012698,282 +0.019801,282 +0.013296,282 +0.013066,282 +0.012764,282 +0.012640,282 +0.012618,282 +0.012736,282 +0.016990,282 +0.014150,282 +0.012346,282 +0.012283,282 +0.012471,282 +0.012238,282 +0.012256,282 +0.012278,282 +0.018771,282 +0.012374,282 +0.012408,282 +0.012287,282 +0.012941,282 +0.012385,282 +0.012293,282 +0.014701,282 +0.016269,282 +0.012355,282 +0.012353,282 +0.012427,282 +0.012444,282 +0.012636,282 +0.013100,282 +0.020059,282 +0.013754,282 +0.015306,282 +0.013966,282 +0.013118,282 +0.013573,282 +0.013209,282 +0.013211,282 +0.013682,282 +0.013451,282 +0.013830,282 +0.016563,282 +0.014275,282 +0.013191,282 +0.014931,282 +0.013361,282 +0.013060,282 +0.013946,284 +0.013994,284 +0.013735,284 +0.013689,284 +0.015005,284 +0.013579,284 +0.013733,284 +0.013731,284 +0.014022,284 +0.013994,284 +0.013784,284 +0.013775,284 +0.013650,284 +0.013812,284 +0.013409,284 +0.013660,284 +0.013485,284 +0.013261,284 +0.012729,284 +0.013414,284 +0.012799,284 +0.012514,284 +0.012703,284 +0.012598,284 +0.012822,284 +0.012455,284 +0.012624,284 +0.012976,284 +0.012607,284 +0.012557,284 +0.012518,284 +0.012584,284 +0.012541,284 +0.013689,284 +0.013699,284 +0.013100,284 +0.013475,284 +0.012920,284 +0.013383,284 +0.014202,284 +0.014666,284 +0.014012,284 +0.013489,284 +0.013736,284 +0.013426,284 +0.013414,284 +0.013479,284 +0.013610,284 +0.013781,284 +0.013853,284 +0.014394,284 +0.013401,284 +0.013368,284 +0.013851,284 +0.013561,284 +0.013997,284 +0.013764,284 +0.015446,284 +0.013561,284 +0.013659,284 +0.013920,284 +0.013185,284 +0.013524,284 +0.013365,284 +0.015054,284 +0.014309,284 +0.013730,284 +0.013936,284 +0.013663,284 +0.013726,284 +0.013492,284 +0.014247,284 +0.013913,284 +0.013512,284 +0.013265,284 +0.013152,284 +0.012955,284 +0.012899,284 +0.012563,284 +0.012663,284 +0.012529,284 +0.012587,284 +0.012622,284 +0.012544,284 +0.012493,284 +0.012484,284 +0.012470,284 +0.012798,284 +0.012542,284 +0.012523,284 +0.012628,284 +0.012525,284 +0.012440,284 +0.012487,284 +0.012466,284 +0.012660,284 +0.012507,284 +0.012504,284 +0.012633,284 +0.012492,284 +0.012885,286 +0.012740,286 +0.012743,286 +0.012959,286 +0.012753,286 +0.012818,286 +0.012940,286 +0.012742,286 +0.012681,286 +0.012706,286 +0.012818,286 +0.013008,286 +0.012674,286 +0.012738,286 +0.013173,286 +0.012881,286 +0.012797,286 +0.013203,286 +0.013836,286 +0.013470,286 +0.013405,286 +0.013145,286 +0.013560,286 +0.013173,286 +0.012748,286 +0.012981,286 +0.013443,286 +0.013051,286 +0.012730,286 +0.012914,286 +0.012685,286 +0.012631,286 +0.012703,286 +0.012712,286 +0.013049,286 +0.012640,286 +0.012690,286 +0.012926,286 +0.012703,286 +0.012614,286 +0.012685,286 +0.012711,286 +0.013000,286 +0.012728,286 +0.012750,286 +0.012863,286 +0.012725,286 +0.012820,286 +0.012615,286 +0.012768,286 +0.012977,286 +0.012775,286 +0.012779,286 +0.012877,286 +0.012749,286 +0.012727,286 +0.012663,286 +0.012842,286 +0.012997,286 +0.012824,286 +0.012818,286 +0.012674,286 +0.012758,286 +0.012853,286 +0.012863,286 +0.012864,286 +0.012988,286 +0.012823,286 +0.012866,286 +0.012704,286 +0.012687,286 +0.012745,286 +0.012806,286 +0.013069,286 +0.012840,286 +0.012767,286 +0.012968,286 +0.012784,286 +0.012612,286 +0.012711,286 +0.012723,286 +0.013276,286 +0.012728,286 +0.012752,286 +0.012881,286 +0.012702,286 +0.012743,286 +0.012612,286 +0.012753,286 +0.013214,286 +0.012757,286 +0.012776,286 +0.012821,286 +0.012775,286 +0.012750,286 +0.012712,286 +0.012857,286 +0.013142,286 +0.012788,286 +0.012879,286 +0.013201,288 +0.012976,288 +0.013002,288 +0.012988,288 +0.013214,288 +0.013187,288 +0.013072,288 +0.013409,288 +0.013022,288 +0.012897,288 +0.013063,288 +0.012993,288 +0.013472,288 +0.013100,288 +0.012897,288 +0.013178,288 +0.013025,288 +0.013024,288 +0.013205,288 +0.013200,288 +0.013378,288 +0.013053,288 +0.013097,288 +0.014063,288 +0.013531,288 +0.013111,288 +0.012972,288 +0.013326,288 +0.013193,288 +0.013007,288 +0.013126,288 +0.013079,288 +0.013020,288 +0.013074,288 +0.013201,288 +0.013680,288 +0.013155,288 +0.013164,288 +0.013608,288 +0.013087,288 +0.013348,288 +0.013029,288 +0.013178,288 +0.013346,288 +0.013070,288 +0.013138,288 +0.013156,288 +0.013135,288 +0.013054,288 +0.013051,288 +0.013585,288 +0.014019,288 +0.013054,288 +0.013111,288 +0.013063,288 +0.013061,288 +0.013035,288 +0.013075,288 +0.013358,288 +0.013098,288 +0.013045,288 +0.013083,288 +0.012938,288 +0.012982,288 +0.013000,288 +0.013198,288 +0.013349,288 +0.013032,288 +0.013157,288 +0.013035,288 +0.013016,288 +0.012915,288 +0.013047,288 +0.013452,288 +0.013033,288 +0.012995,288 +0.012971,288 +0.013044,288 +0.013024,288 +0.012997,288 +0.013056,288 +0.013446,288 +0.013038,288 +0.013153,288 +0.013140,288 +0.012877,288 +0.012974,288 +0.013012,288 +0.013184,288 +0.013406,288 +0.012904,288 +0.013190,288 +0.013045,288 +0.013018,288 +0.012908,288 +0.012955,288 +0.013446,288 +0.013057,288 +0.013114,288 +0.012941,288 +0.013481,290 +0.013334,290 +0.013320,290 +0.013323,290 +0.013687,290 +0.013270,290 +0.013456,290 +0.013301,290 +0.013286,290 +0.013170,290 +0.013281,290 +0.013732,290 +0.013544,290 +0.013473,290 +0.014077,290 +0.013593,290 +0.013379,290 +0.013369,290 +0.013526,290 +0.013858,290 +0.013238,290 +0.013551,290 +0.013339,290 +0.013329,290 +0.013351,290 +0.013180,290 +0.013894,290 +0.013400,290 +0.013488,290 +0.013460,290 +0.013149,290 +0.013432,290 +0.014937,290 +0.013927,290 +0.013685,290 +0.013380,290 +0.013409,290 +0.013391,290 +0.013376,290 +0.013751,290 +0.013292,290 +0.013819,290 +0.013339,290 +0.013473,290 +0.013314,290 +0.013291,290 +0.013173,290 +0.013790,290 +0.013684,290 +0.013551,290 +0.013448,290 +0.013325,290 +0.013243,290 +0.013352,290 +0.013321,290 +0.013306,290 +0.013955,290 +0.013242,290 +0.013509,290 +0.013295,290 +0.013302,290 +0.013305,290 +0.013144,290 +0.013688,290 +0.013629,290 +0.013456,290 +0.013424,290 +0.013146,290 +0.013349,290 +0.013292,290 +0.013466,290 +0.013820,290 +0.013269,290 +0.013694,290 +0.013465,290 +0.013425,290 +0.013293,290 +0.013317,290 +0.013721,290 +0.013529,290 +0.013479,290 +0.013367,290 +0.013148,290 +0.013268,290 +0.013541,290 +0.013400,290 +0.013686,290 +0.013212,290 +0.013478,290 +0.013329,290 +0.013299,290 +0.013286,290 +0.013170,290 +0.013637,290 +0.013704,290 +0.013489,290 +0.013450,290 +0.013332,290 +0.013141,290 +0.013324,290 +0.014173,292 +0.013964,292 +0.013706,292 +0.013608,292 +0.013528,292 +0.013538,292 +0.013556,292 +0.013539,292 +0.014056,292 +0.013518,292 +0.013774,292 +0.013569,292 +0.013601,292 +0.013535,292 +0.013463,292 +0.013851,292 +0.013804,292 +0.013714,292 +0.013679,292 +0.013573,292 +0.013422,292 +0.013563,292 +0.013673,292 +0.013962,292 +0.013572,292 +0.013598,292 +0.013531,292 +0.013587,292 +0.013540,292 +0.013535,292 +0.013977,292 +0.013441,292 +0.013751,292 +0.013548,292 +0.013621,292 +0.013551,292 +0.013401,292 +0.013880,292 +0.013904,292 +0.013742,292 +0.013665,292 +0.013593,292 +0.013414,292 +0.013546,292 +0.013682,292 +0.014659,292 +0.014596,292 +0.014658,292 +0.013872,292 +0.014497,292 +0.014095,292 +0.014564,292 +0.014594,292 +0.015230,292 +0.014673,292 +0.014149,292 +0.014151,292 +0.014572,292 +0.014287,292 +0.014656,292 +0.014418,292 +0.014275,292 +0.013836,292 +0.013588,292 +0.013943,292 +0.014227,292 +0.014491,292 +0.014003,292 +0.013849,292 +0.013481,292 +0.014047,292 +0.013839,292 +0.013693,292 +0.014099,292 +0.015242,292 +0.014441,292 +0.014667,292 +0.015529,292 +0.016512,292 +0.016460,292 +0.015420,292 +0.016760,292 +0.014867,292 +0.014562,292 +0.014597,292 +0.014859,292 +0.014662,292 +0.014812,292 +0.015283,292 +0.015188,292 +0.014670,292 +0.014191,292 +0.014242,292 +0.014280,292 +0.014270,292 +0.014309,292 +0.013729,292 +0.013819,292 +0.014126,292 +0.013795,292 +0.014795,294 +0.014027,294 +0.013913,294 +0.013824,294 +0.015135,294 +0.016026,294 +0.015641,294 +0.015718,294 +0.015860,294 +0.015509,294 +0.015591,294 +0.014985,294 +0.015005,294 +0.016038,294 +0.016855,294 +0.016140,294 +0.015329,294 +0.015619,294 +0.015057,294 +0.014654,294 +0.015085,294 +0.015368,294 +0.015454,294 +0.015917,294 +0.015275,294 +0.015016,294 +0.015117,294 +0.015881,294 +0.017002,294 +0.016115,294 +0.016410,294 +0.015987,294 +0.014855,294 +0.015974,294 +0.014814,294 +0.015446,294 +0.015848,294 +0.015758,294 +0.014875,294 +0.014658,294 +0.014860,294 +0.015297,294 +0.016768,294 +0.015180,294 +0.014770,294 +0.015168,294 +0.015061,294 +0.015951,294 +0.017409,294 +0.017436,294 +0.017312,294 +0.015754,294 +0.016206,294 +0.016827,294 +0.016502,294 +0.016044,294 +0.015842,294 +0.018897,294 +0.019509,294 +0.018065,294 +0.019213,294 +0.015811,294 +0.015241,294 +0.014296,294 +0.015615,294 +0.017037,294 +0.017171,294 +0.015242,294 +0.015142,294 +0.015733,294 +0.016041,294 +0.015273,294 +0.015189,294 +0.015082,294 +0.015422,294 +0.016060,294 +0.016130,294 +0.016446,294 +0.017918,294 +0.016325,294 +0.016780,294 +0.015085,294 +0.014598,294 +0.015548,294 +0.018661,294 +0.018239,294 +0.015832,294 +0.015122,294 +0.018574,294 +0.017859,294 +0.016707,294 +0.014995,294 +0.015211,294 +0.014929,294 +0.015035,294 +0.014774,294 +0.014655,294 +0.015027,294 +0.015038,294 +0.015198,294 +0.014681,296 +0.014288,296 +0.015142,296 +0.015681,296 +0.015230,296 +0.015222,296 +0.015204,296 +0.015051,296 +0.015135,296 +0.015832,296 +0.016320,296 +0.015317,296 +0.015174,296 +0.014283,296 +0.016614,296 +0.016972,296 +0.014858,296 +0.014459,296 +0.014602,296 +0.014277,296 +0.015539,296 +0.015612,296 +0.016112,296 +0.015737,296 +0.015104,296 +0.014696,296 +0.015561,296 +0.015715,296 +0.015489,296 +0.015198,296 +0.015239,296 +0.015045,296 +0.015285,296 +0.015164,296 +0.014412,296 +0.014795,296 +0.014220,296 +0.014082,296 +0.013997,296 +0.014116,296 +0.014535,296 +0.014673,296 +0.015166,296 +0.015054,296 +0.014801,296 +0.016423,296 +0.019121,296 +0.016707,296 +0.017321,296 +0.015645,296 +0.015656,296 +0.014643,296 +0.014348,296 +0.014928,296 +0.015420,296 +0.015165,296 +0.015154,296 +0.014837,296 +0.015405,296 +0.015458,296 +0.023828,296 +0.024815,296 +0.016970,296 +0.017982,296 +0.015732,296 +0.016239,296 +0.015299,296 +0.014810,296 +0.014520,296 +0.014830,296 +0.015901,296 +0.015074,296 +0.015274,296 +0.016604,296 +0.015285,296 +0.014779,296 +0.015344,296 +0.015064,296 +0.014944,296 +0.016107,296 +0.015013,296 +0.014853,296 +0.014481,296 +0.015386,296 +0.014975,296 +0.015724,296 +0.014866,296 +0.015657,296 +0.014461,296 +0.014291,296 +0.014056,296 +0.014826,296 +0.014428,296 +0.015374,296 +0.014666,296 +0.015026,296 +0.014345,296 +0.014619,296 +0.015102,296 +0.014787,296 +0.015666,298 +0.014854,298 +0.015187,298 +0.015992,298 +0.016170,298 +0.015382,298 +0.016049,298 +0.015758,298 +0.016153,298 +0.015938,298 +0.016403,298 +0.016760,298 +0.016727,298 +0.017336,298 +0.015007,298 +0.015812,298 +0.016600,298 +0.017088,298 +0.021346,298 +0.016721,298 +0.018078,298 +0.016002,298 +0.015634,298 +0.016869,298 +0.015550,298 +0.015720,298 +0.015011,298 +0.015664,298 +0.015481,298 +0.015510,298 +0.018328,298 +0.020421,298 +0.015091,298 +0.014703,298 +0.014954,298 +0.014855,298 +0.016252,298 +0.017516,298 +0.018290,298 +0.017556,298 +0.016717,298 +0.019328,298 +0.018002,298 +0.017207,298 +0.017260,298 +0.016040,298 +0.015982,298 +0.015778,298 +0.016230,298 +0.017668,298 +0.016499,298 +0.017272,298 +0.015800,298 +0.015261,298 +0.015103,298 +0.015956,298 +0.016004,298 +0.016785,298 +0.016497,298 +0.015962,298 +0.015830,298 +0.017555,298 +0.016003,298 +0.016073,298 +0.016233,298 +0.016343,298 +0.015528,298 +0.017081,298 +0.015666,298 +0.015200,298 +0.015575,298 +0.014971,298 +0.015492,298 +0.016195,298 +0.016266,298 +0.015414,298 +0.015653,298 +0.015342,298 +0.015384,298 +0.015154,298 +0.017177,298 +0.016570,298 +0.017330,298 +0.016724,298 +0.018397,298 +0.021554,298 +0.025023,298 +0.016175,298 +0.017001,298 +0.016864,298 +0.016334,298 +0.016042,298 +0.015923,298 +0.017484,298 +0.016283,298 +0.014971,298 +0.015364,298 +0.016135,298 +0.016538,298 +0.015348,298 diff --git a/buch/papers/multiplikation/code/meas/test/winograd.txt b/buch/papers/multiplikation/code/meas/test/winograd.txt new file mode 100644 index 0000000..d01fefd --- /dev/null +++ b/buch/papers/multiplikation/code/meas/test/winograd.txt @@ -0,0 +1,14900 @@ +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000010,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000010,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000010,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000011,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000010,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000012,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000011,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000012,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000011,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000014,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000011,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000015,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000011,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000011,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000011,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000013,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000012,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000013,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000005,10 +0.000005,10 +0.000005,10 +0.000014,10 +0.000004,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000015,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000014,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000008,14 +0.000008,14 +0.000018,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000017,14 +0.000012,14 +0.000013,14 +0.000009,14 +0.000011,14 +0.000014,14 +0.000010,14 +0.000008,14 +0.000008,14 +0.000014,14 +0.000013,14 +0.000010,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000015,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000012,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000009,14 +0.000010,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000017,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000022,16 +0.000011,16 +0.000011,16 +0.000020,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000021,16 +0.000011,16 +0.000011,16 +0.000020,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000016,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000027,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000026,20 +0.000028,20 +0.000031,20 +0.000031,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000031,20 +0.000052,20 +0.000021,20 +0.000021,20 +0.000030,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000028,20 +0.000025,20 +0.000032,20 +0.000036,20 +0.000031,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000031,20 +0.000021,20 +0.000030,20 +0.000031,20 +0.000048,22 +0.000038,22 +0.000028,22 +0.000037,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000035,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000035,22 +0.000037,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000029,22 +0.000042,22 +0.000042,22 +0.000036,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000036,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000052,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000047,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000048,24 +0.000070,24 +0.000045,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000046,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000043,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000044,26 +0.000043,26 +0.000052,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000057,26 +0.000045,26 +0.000044,26 +0.000044,26 +0.000052,26 +0.000043,26 +0.000043,26 +0.000084,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000061,26 +0.000062,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000053,26 +0.000053,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000067,26 +0.000073,26 +0.000044,26 +0.000072,26 +0.000074,26 +0.000053,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000061,26 +0.000057,26 +0.000053,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000065,26 +0.000091,26 +0.000047,26 +0.000044,26 +0.000044,26 +0.000048,26 +0.000044,26 +0.000044,26 +0.000049,26 +0.000048,26 +0.000053,26 +0.000043,26 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000084,28 +0.000084,28 +0.000098,28 +0.000063,28 +0.000054,28 +0.000054,28 +0.000064,28 +0.000084,28 +0.000064,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000081,28 +0.000063,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000053,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000053,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000064,28 +0.000074,28 +0.000085,28 +0.000095,28 +0.000063,28 +0.000054,28 +0.000064,28 +0.000073,28 +0.000085,28 +0.000064,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000053,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000053,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000062,28 +0.000092,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000067,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000066,30 +0.000066,30 +0.000065,30 +0.000098,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000066,30 +0.000065,30 +0.000066,30 +0.000066,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000104,30 +0.000077,30 +0.000127,30 +0.000075,30 +0.000065,30 +0.000066,30 +0.000095,30 +0.000086,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000076,30 +0.000087,30 +0.000140,30 +0.000075,30 +0.000066,30 +0.000085,30 +0.000106,30 +0.000076,30 +0.000066,30 +0.000065,30 +0.000066,30 +0.000101,30 +0.000065,30 +0.000065,30 +0.000066,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000066,30 +0.000065,30 +0.000066,30 +0.000066,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000074,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000098,30 +0.000108,30 +0.000075,30 +0.000065,30 +0.000085,30 +0.000106,30 +0.000076,30 +0.000066,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000066,30 +0.000066,30 +0.000065,30 +0.000065,30 +0.000066,30 +0.000065,30 +0.000065,30 +0.000076,30 +0.000081,30 +0.000103,30 +0.000096,30 +0.000069,30 +0.000091,30 +0.000080,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000090,32 +0.000089,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000110,32 +0.000138,32 +0.000099,32 +0.000079,32 +0.000099,32 +0.000120,32 +0.000089,32 +0.000079,32 +0.000119,32 +0.000121,32 +0.000081,32 +0.000085,32 +0.000086,32 +0.000093,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000114,32 +0.000110,32 +0.000155,32 +0.000089,32 +0.000079,32 +0.000090,32 +0.000120,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000109,32 +0.000112,32 +0.000132,32 +0.000079,32 +0.000079,32 +0.000121,32 +0.000089,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000105,32 +0.000089,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000103,32 +0.000089,32 +0.000096,34 +0.000094,34 +0.000094,34 +0.000125,34 +0.000139,34 +0.000115,34 +0.000114,34 +0.000136,34 +0.000104,34 +0.000094,34 +0.000104,34 +0.000119,34 +0.000094,34 +0.000094,34 +0.000094,34 +0.000094,34 +0.000094,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000126,34 +0.000168,34 +0.000104,34 +0.000115,34 +0.000136,34 +0.000105,34 +0.000095,34 +0.000139,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000106,34 +0.000159,34 +0.000134,34 +0.000095,34 +0.000125,34 +0.000116,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000131,34 +0.000095,34 +0.000095,34 +0.000125,34 +0.000165,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000125,34 +0.000143,34 +0.000149,34 +0.000095,34 +0.000115,34 +0.000136,34 +0.000104,34 +0.000095,34 +0.000105,34 +0.000133,34 +0.000152,34 +0.000095,34 +0.000105,34 +0.000135,34 +0.000094,34 +0.000094,34 +0.000094,34 +0.000094,34 +0.000094,34 +0.000094,34 +0.000095,34 +0.000112,36 +0.000123,36 +0.000175,36 +0.000120,36 +0.000146,36 +0.000125,36 +0.000115,36 +0.000115,36 +0.000131,36 +0.000124,36 +0.000124,36 +0.000124,36 +0.000124,36 +0.000140,36 +0.000129,36 +0.000124,36 +0.000159,36 +0.000135,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000114,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000150,36 +0.000122,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000133,36 +0.000151,36 +0.000163,36 +0.000153,36 +0.000152,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000145,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000152,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000123,36 +0.000148,36 +0.000127,36 +0.000123,36 +0.000163,36 +0.000121,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000132,36 +0.000111,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000133,38 +0.000131,38 +0.000131,38 +0.000173,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000141,38 +0.000189,38 +0.000178,38 +0.000140,38 +0.000182,38 +0.000141,38 +0.000131,38 +0.000138,38 +0.000181,38 +0.000175,38 +0.000181,38 +0.000162,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000146,38 +0.000174,38 +0.000230,38 +0.000194,38 +0.000195,38 +0.000222,38 +0.000131,38 +0.000134,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000132,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000132,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000132,38 +0.000131,38 +0.000175,38 +0.000197,38 +0.000144,38 +0.000176,38 +0.000175,38 +0.000134,38 +0.000135,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000182,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000152,38 +0.000131,38 +0.000141,38 +0.000189,38 +0.000179,38 +0.000172,38 +0.000171,38 +0.000131,38 +0.000169,38 +0.000131,38 +0.000141,38 +0.000140,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000177,38 +0.000163,38 +0.000161,38 +0.000182,38 +0.000131,38 +0.000131,38 +0.000149,38 +0.000209,40 +0.000172,40 +0.000213,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000192,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000153,40 +0.000217,40 +0.000162,40 +0.000203,40 +0.000209,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000174,40 +0.000152,40 +0.000152,40 +0.000163,40 +0.000179,40 +0.000210,40 +0.000172,40 +0.000225,40 +0.000160,40 +0.000200,40 +0.000195,40 +0.000184,40 +0.000167,40 +0.000154,40 +0.000174,40 +0.000181,40 +0.000166,40 +0.000162,40 +0.000153,40 +0.000165,40 +0.000165,40 +0.000153,40 +0.000164,40 +0.000157,40 +0.000157,40 +0.000157,40 +0.000157,40 +0.000157,40 +0.000163,40 +0.000153,40 +0.000153,40 +0.000153,40 +0.000164,40 +0.000195,40 +0.000158,40 +0.000153,40 +0.000185,40 +0.000165,40 +0.000153,40 +0.000153,40 +0.000163,40 +0.000165,40 +0.000152,40 +0.000153,40 +0.000153,40 +0.000153,40 +0.000169,40 +0.000272,40 +0.000177,40 +0.000195,40 +0.000196,40 +0.000162,40 +0.000210,40 +0.000177,40 +0.000166,40 +0.000176,40 +0.000258,40 +0.000241,40 +0.000176,40 +0.000166,40 +0.000156,40 +0.000156,40 +0.000156,40 +0.000156,40 +0.000156,40 +0.000156,40 +0.000156,40 +0.000156,40 +0.000184,40 +0.000184,40 +0.000198,40 +0.000158,40 +0.000158,40 +0.000158,40 +0.000158,40 +0.000184,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000238,42 +0.000302,42 +0.000215,42 +0.000192,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000206,42 +0.000199,42 +0.000188,42 +0.000203,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000206,42 +0.000309,42 +0.000182,42 +0.000222,42 +0.000182,42 +0.000219,42 +0.000280,42 +0.000212,42 +0.000225,42 +0.000187,42 +0.000187,42 +0.000187,42 +0.000191,42 +0.000187,42 +0.000187,42 +0.000305,42 +0.000270,42 +0.000180,42 +0.000204,42 +0.000298,42 +0.000289,42 +0.000190,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000201,42 +0.000314,42 +0.000307,42 +0.000314,42 +0.000338,42 +0.000333,42 +0.000327,42 +0.000317,42 +0.000329,42 +0.000328,42 +0.000363,42 +0.000331,42 +0.000323,42 +0.000311,42 +0.000269,42 +0.000233,42 +0.000212,42 +0.000217,42 +0.000272,42 +0.000322,42 +0.000341,42 +0.000225,42 +0.000195,42 +0.000182,42 +0.000182,42 +0.000207,42 +0.000273,42 +0.000187,42 +0.000187,42 +0.000187,42 +0.000187,42 +0.000193,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000215,42 +0.000220,42 +0.000202,42 +0.000191,42 +0.000208,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000209,44 +0.000207,44 +0.000207,44 +0.000285,44 +0.000239,44 +0.000239,44 +0.000247,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000253,44 +0.000235,44 +0.000246,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000221,44 +0.000212,44 +0.000212,44 +0.000263,44 +0.000250,44 +0.000227,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000226,44 +0.000207,44 +0.000207,44 +0.000257,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000246,44 +0.000249,44 +0.000217,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000244,44 +0.000239,44 +0.000207,44 +0.000207,44 +0.000231,44 +0.000240,44 +0.000247,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000273,44 +0.000237,44 +0.000216,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000224,44 +0.000245,44 +0.000262,44 +0.000227,44 +0.000207,44 +0.000207,44 +0.000212,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000226,44 +0.000271,44 +0.000272,44 +0.000212,44 +0.000217,44 +0.000212,44 +0.000212,44 +0.000212,44 +0.000212,44 +0.000212,44 +0.000245,44 +0.000227,44 +0.000207,44 +0.000207,44 +0.000210,44 +0.000249,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000237,46 +0.000261,46 +0.000249,46 +0.000236,46 +0.000236,46 +0.000255,46 +0.000240,46 +0.000281,46 +0.000263,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000235,46 +0.000236,46 +0.000274,46 +0.000241,46 +0.000274,46 +0.000230,46 +0.000229,46 +0.000230,46 +0.000259,46 +0.000357,46 +0.000296,46 +0.000256,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000255,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000255,46 +0.000248,46 +0.000269,46 +0.000253,46 +0.000229,46 +0.000324,46 +0.000286,46 +0.000245,46 +0.000240,46 +0.000282,46 +0.000265,46 +0.000230,46 +0.000230,46 +0.000230,46 +0.000230,46 +0.000283,46 +0.000302,46 +0.000239,46 +0.000230,46 +0.000230,46 +0.000230,46 +0.000229,46 +0.000230,46 +0.000229,46 +0.000230,46 +0.000229,46 +0.000230,46 +0.000229,46 +0.000230,46 +0.000230,46 +0.000230,46 +0.000229,46 +0.000230,46 +0.000280,46 +0.000230,46 +0.000230,46 +0.000229,46 +0.000229,46 +0.000322,46 +0.000386,46 +0.000279,46 +0.000242,46 +0.000242,46 +0.000242,46 +0.000267,46 +0.000236,46 +0.000236,46 +0.000235,46 +0.000236,46 +0.000260,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000235,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000242,46 +0.000265,46 +0.000372,46 +0.000339,48 +0.000281,48 +0.000438,48 +0.000286,48 +0.000281,48 +0.000260,48 +0.000276,48 +0.000333,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000293,48 +0.000363,48 +0.000319,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000299,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000371,48 +0.000476,48 +0.000272,48 +0.000263,48 +0.000304,48 +0.000263,48 +0.000309,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000300,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000352,48 +0.000466,48 +0.000337,48 +0.000263,48 +0.000263,48 +0.000263,48 +0.000378,48 +0.000471,48 +0.000335,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000358,48 +0.000337,48 +0.000293,48 +0.000260,48 +0.000274,48 +0.000271,48 +0.000274,48 +0.000271,48 +0.000273,48 +0.000271,48 +0.000282,48 +0.000283,48 +0.000260,48 +0.000260,48 +0.000285,48 +0.000260,48 +0.000284,48 +0.000260,48 +0.000272,48 +0.000272,48 +0.000260,48 +0.000331,48 +0.000461,48 +0.000328,48 +0.000291,48 +0.000325,48 +0.000402,48 +0.000333,48 +0.000284,48 +0.000300,50 +0.000316,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000533,50 +0.000402,50 +0.000340,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000400,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000301,50 +0.000506,50 +0.000445,50 +0.000294,50 +0.000309,50 +0.000424,50 +0.000302,50 +0.000304,50 +0.000304,50 +0.000310,50 +0.000294,50 +0.000294,50 +0.000344,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000355,50 +0.000308,50 +0.000333,50 +0.000294,50 +0.000333,50 +0.000465,50 +0.000440,50 +0.000349,50 +0.000508,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000341,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000313,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000374,50 +0.000299,50 +0.000294,50 +0.000344,50 +0.000294,50 +0.000300,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000572,50 +0.000427,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000332,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000461,50 +0.000454,50 +0.000376,50 +0.000313,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000354,50 +0.000294,50 +0.000588,52 +0.000370,52 +0.000333,52 +0.000333,52 +0.000378,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000415,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000655,52 +0.000353,52 +0.000591,52 +0.000396,52 +0.000367,52 +0.000341,52 +0.000375,52 +0.000330,52 +0.000330,52 +0.000378,52 +0.000591,52 +0.000334,52 +0.000333,52 +0.000333,52 +0.000333,52 +0.000333,52 +0.000333,52 +0.000375,52 +0.000330,52 +0.000369,52 +0.000330,52 +0.000330,52 +0.000336,52 +0.000493,52 +0.000479,52 +0.000333,52 +0.000333,52 +0.000333,52 +0.000378,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000494,52 +0.000468,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000376,52 +0.000408,52 +0.000376,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000575,52 +0.000368,52 +0.000330,52 +0.000340,52 +0.000405,52 +0.000378,52 +0.000339,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000600,52 +0.000340,52 +0.000330,52 +0.000330,52 +0.000345,52 +0.000349,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000390,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000382,52 +0.000589,52 +0.000369,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000329,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000372,54 +0.000369,54 +0.000369,54 +0.000579,54 +0.000500,54 +0.000471,54 +0.000378,54 +0.000369,54 +0.000379,54 +0.000378,54 +0.000443,54 +0.000369,54 +0.000410,54 +0.000515,54 +0.000437,54 +0.000546,54 +0.000378,54 +0.000377,54 +0.000369,54 +0.000380,54 +0.000588,54 +0.000405,54 +0.000368,54 +0.000369,54 +0.000369,54 +0.000369,54 +0.000369,54 +0.000431,54 +0.000369,54 +0.000369,54 +0.000369,54 +0.000410,54 +0.000413,54 +0.000369,54 +0.000369,54 +0.000651,54 +0.000382,54 +0.000373,54 +0.000373,54 +0.000373,54 +0.000373,54 +0.000373,54 +0.000416,54 +0.000369,54 +0.000369,54 +0.000369,54 +0.000400,54 +0.000459,54 +0.000369,54 +0.000369,54 +0.000381,54 +0.000378,54 +0.000402,54 +0.000379,54 +0.000411,54 +0.000527,54 +0.000369,54 +0.000379,54 +0.000408,54 +0.000369,54 +0.000369,54 +0.000369,54 +0.000404,54 +0.000369,54 +0.000409,54 +0.000369,54 +0.000369,54 +0.000389,54 +0.000369,54 +0.000459,54 +0.000376,54 +0.000438,54 +0.000442,54 +0.000378,54 +0.000369,54 +0.000369,54 +0.000541,54 +0.000588,54 +0.000392,54 +0.000389,54 +0.000389,54 +0.000403,54 +0.000378,54 +0.000378,54 +0.000378,54 +0.000379,54 +0.000378,54 +0.000378,54 +0.000434,54 +0.000369,54 +0.000369,54 +0.000369,54 +0.000406,54 +0.000368,54 +0.000369,54 +0.000369,54 +0.000454,54 +0.000443,54 +0.000395,54 +0.000369,54 +0.000412,56 +0.000410,56 +0.000452,56 +0.000410,56 +0.000411,56 +0.000410,56 +0.000411,56 +0.000411,56 +0.000410,56 +0.000411,56 +0.000451,56 +0.000455,56 +0.000490,56 +0.000466,56 +0.000411,56 +0.000410,56 +0.000411,56 +0.000411,56 +0.000410,56 +0.000410,56 +0.000411,56 +0.000447,56 +0.000410,56 +0.000410,56 +0.000411,56 +0.000411,56 +0.000411,56 +0.000430,56 +0.000486,56 +0.000467,56 +0.000448,56 +0.000411,56 +0.000410,56 +0.000498,56 +0.000450,56 +0.000491,56 +0.000471,56 +0.000411,56 +0.000410,56 +0.000443,56 +0.000410,56 +0.000410,56 +0.000411,56 +0.000411,56 +0.000410,56 +0.000410,56 +0.000411,56 +0.000410,56 +0.000412,56 +0.000528,56 +0.000454,56 +0.000411,56 +0.000451,56 +0.000411,56 +0.000410,56 +0.000410,56 +0.000517,56 +0.000489,56 +0.000410,56 +0.000410,56 +0.000498,56 +0.000450,56 +0.000410,56 +0.000410,56 +0.000411,56 +0.000431,56 +0.000437,56 +0.000479,56 +0.000411,56 +0.000411,56 +0.000430,56 +0.000442,56 +0.000662,56 +0.000483,56 +0.000445,56 +0.000454,56 +0.000410,56 +0.000410,56 +0.000410,56 +0.000410,56 +0.000597,56 +0.000603,56 +0.000460,56 +0.000458,56 +0.000709,56 +0.000501,56 +0.000462,56 +0.000453,56 +0.000433,56 +0.000421,56 +0.000421,56 +0.000421,56 +0.000449,56 +0.000411,56 +0.000411,56 +0.000679,56 +0.000441,56 +0.000421,56 +0.000421,56 +0.000421,56 +0.000469,58 +0.000832,58 +0.000624,58 +0.000507,58 +0.000506,58 +0.000455,58 +0.000455,58 +0.000538,58 +0.000739,58 +0.000536,58 +0.000467,58 +0.000467,58 +0.000468,58 +0.000487,58 +0.000554,58 +0.000495,58 +0.000467,58 +0.000467,58 +0.000559,58 +0.000508,58 +0.000480,58 +0.000480,58 +0.000582,58 +0.000483,58 +0.000480,58 +0.000480,58 +0.000480,58 +0.000480,58 +0.000506,58 +0.000477,58 +0.000467,58 +0.000467,58 +0.000499,58 +0.000455,58 +0.000697,58 +0.000636,58 +0.000502,58 +0.000472,58 +0.000514,58 +0.000506,58 +0.000566,58 +0.000465,58 +0.000455,58 +0.000515,58 +0.000707,58 +0.000478,58 +0.000487,58 +0.000519,58 +0.000490,58 +0.000467,58 +0.000467,58 +0.000522,58 +0.000483,58 +0.000467,58 +0.000488,58 +0.000477,58 +0.000467,58 +0.000467,58 +0.000467,58 +0.000478,58 +0.000642,58 +0.000498,58 +0.000483,58 +0.000472,58 +0.000467,58 +0.000467,58 +0.000467,58 +0.000502,58 +0.000533,58 +0.000473,58 +0.000467,58 +0.000480,58 +0.000455,58 +0.000498,58 +0.000544,58 +0.000455,58 +0.000632,58 +0.000488,58 +0.000500,58 +0.000507,58 +0.000468,58 +0.000486,58 +0.000499,58 +0.000455,58 +0.000480,58 +0.000493,58 +0.000467,58 +0.000530,58 +0.000557,58 +0.000495,58 +0.000518,58 +0.000539,58 +0.000572,58 +0.000487,58 +0.000467,58 +0.000495,58 +0.000467,58 +0.000498,58 +0.000613,58 +0.000513,58 +0.000605,60 +0.000517,60 +0.000526,60 +0.000540,60 +0.000503,60 +0.000504,60 +0.000648,60 +0.000701,60 +0.000610,60 +0.000554,60 +0.000532,60 +0.000517,60 +0.000645,60 +0.000517,60 +0.000516,60 +0.000517,60 +0.000531,60 +0.000638,60 +0.000557,60 +0.000517,60 +0.000517,60 +0.000517,60 +0.000517,60 +0.000517,60 +0.000563,60 +0.000653,60 +0.000517,60 +0.000517,60 +0.000565,60 +0.000560,60 +0.000555,60 +0.000548,60 +0.000517,60 +0.000525,60 +0.000650,60 +0.000613,60 +0.000596,60 +0.000517,60 +0.000547,60 +0.000614,60 +0.000526,60 +0.000517,60 +0.000556,60 +0.000551,60 +0.000517,60 +0.000517,60 +0.000670,60 +0.000537,60 +0.000517,60 +0.000531,60 +0.000517,60 +0.000517,60 +0.000613,60 +0.000547,60 +0.000517,60 +0.000585,60 +0.000543,60 +0.000517,60 +0.000517,60 +0.000552,60 +0.000550,60 +0.000553,60 +0.000528,60 +0.000559,60 +0.000517,60 +0.000517,60 +0.000684,60 +0.000583,60 +0.000526,60 +0.000517,60 +0.000604,60 +0.000517,60 +0.000517,60 +0.000517,60 +0.000517,60 +0.000588,60 +0.000538,60 +0.000610,60 +0.000534,60 +0.000622,60 +0.000517,60 +0.000517,60 +0.000596,60 +0.000558,60 +0.000544,60 +0.000564,60 +0.000545,60 +0.000537,60 +0.000517,60 +0.000542,60 +0.000586,60 +0.000582,60 +0.000579,60 +0.000522,60 +0.000517,60 +0.000554,60 +0.000558,60 +0.000604,60 +0.000526,60 +0.000563,60 +0.000599,62 +0.000611,62 +0.000569,62 +0.000601,62 +0.000648,62 +0.000579,62 +0.000605,62 +0.000607,62 +0.000613,62 +0.000570,62 +0.000654,62 +0.000610,62 +0.000637,62 +0.000569,62 +0.000569,62 +0.000596,62 +0.000611,62 +0.000664,62 +0.000569,62 +0.000598,62 +0.000570,62 +0.000575,62 +0.000639,62 +0.000654,62 +0.000661,62 +0.000570,62 +0.000569,62 +0.000671,62 +0.000625,62 +0.000630,62 +0.000595,62 +0.000580,62 +0.000695,62 +0.000584,62 +0.000569,62 +0.000719,62 +0.000616,62 +0.000569,62 +0.000644,62 +0.000610,62 +0.000615,62 +0.000605,62 +0.000626,62 +0.000580,62 +0.000580,62 +0.000659,62 +0.000601,62 +0.000570,62 +0.000675,62 +0.000597,62 +0.000570,62 +0.000735,62 +0.000596,62 +0.000570,62 +0.000569,62 +0.000609,62 +0.000749,62 +0.000793,62 +0.000687,62 +0.000570,62 +0.000785,62 +0.000754,62 +0.000608,62 +0.000626,62 +0.000628,62 +0.000734,62 +0.000564,62 +0.000593,62 +0.000564,62 +0.000598,62 +0.000848,62 +0.000569,62 +0.000602,62 +0.000569,62 +0.000781,62 +0.000628,62 +0.000621,62 +0.000570,62 +0.000569,62 +0.000689,62 +0.000595,62 +0.000598,62 +0.000650,62 +0.000576,62 +0.000569,62 +0.000627,62 +0.000617,62 +0.000649,62 +0.000590,62 +0.000579,62 +0.000569,62 +0.000569,62 +0.000569,62 +0.000587,62 +0.000582,62 +0.000569,62 +0.000570,62 +0.000570,62 +0.000555,62 +0.000779,62 +0.000785,64 +0.000667,64 +0.000626,64 +0.000672,64 +0.000706,64 +0.000632,64 +0.000670,64 +0.000610,64 +0.000609,64 +0.000704,64 +0.000675,64 +0.000625,64 +0.000799,64 +0.000684,64 +0.000636,64 +0.000636,64 +0.000610,64 +0.000610,64 +0.000652,64 +0.000610,64 +0.000609,64 +0.000621,64 +0.000832,64 +0.000626,64 +0.000740,64 +0.000707,64 +0.000636,64 +0.000626,64 +0.000626,64 +0.000677,64 +0.000675,64 +0.000680,64 +0.000849,64 +0.000617,64 +0.000616,64 +0.000617,64 +0.000655,64 +0.000617,64 +0.000894,64 +0.000675,64 +0.000660,64 +0.000877,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000630,64 +0.000630,64 +0.000610,64 +0.000822,64 +0.000718,64 +0.000626,64 +0.000816,64 +0.000610,64 +0.000732,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000803,64 +0.000667,64 +0.000646,64 +0.000626,64 +0.000640,64 +0.000626,64 +0.000650,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000646,64 +0.000610,64 +0.000610,64 +0.000755,64 +0.000610,64 +0.000610,64 +0.000630,64 +0.000767,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000653,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000650,64 +0.000610,64 +0.000658,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000643,64 +0.000610,64 +0.000701,66 +0.000736,66 +0.000701,66 +0.000695,66 +0.000757,66 +0.000892,66 +0.000695,66 +0.000695,66 +0.000695,66 +0.000794,66 +0.000719,66 +0.000730,66 +0.000720,66 +0.000768,66 +0.000752,66 +0.000803,66 +0.000695,66 +0.000803,66 +0.000817,66 +0.000695,66 +0.000730,66 +0.000695,66 +0.000695,66 +0.000695,66 +0.000695,66 +0.000730,66 +0.000695,66 +0.000695,66 +0.000714,66 +0.000695,66 +0.000695,66 +0.000733,66 +0.000735,66 +0.000877,66 +0.000695,66 +0.000695,66 +0.000788,66 +0.000696,66 +0.000707,66 +0.000695,66 +0.000695,66 +0.000695,66 +0.000736,66 +0.000695,66 +0.000695,66 +0.000695,66 +0.000696,66 +0.000695,66 +0.000730,66 +0.000830,66 +0.001033,66 +0.000793,66 +0.000776,66 +0.000695,66 +0.000695,66 +0.000695,66 +0.000695,66 +0.000695,66 +0.000734,66 +0.000734,66 +0.000695,66 +0.000705,66 +0.000695,66 +0.000695,66 +0.000723,66 +0.000735,66 +0.000887,66 +0.000839,66 +0.001128,66 +0.000973,66 +0.000763,66 +0.000749,66 +0.000970,66 +0.000838,66 +0.000749,66 +0.000845,66 +0.000848,66 +0.000736,66 +0.001027,66 +0.001168,66 +0.001270,66 +0.000751,66 +0.000812,66 +0.000766,66 +0.000714,66 +0.000796,66 +0.000723,66 +0.000749,66 +0.000777,66 +0.000744,66 +0.000703,66 +0.000795,66 +0.000938,66 +0.000951,66 +0.001383,66 +0.000888,66 +0.000774,66 +0.000845,66 +0.001012,66 +0.000972,66 +0.000907,68 +0.001312,68 +0.001344,68 +0.001450,68 +0.001564,68 +0.001454,68 +0.001484,68 +0.001321,68 +0.001172,68 +0.000795,68 +0.000780,68 +0.000896,68 +0.000932,68 +0.000758,68 +0.000793,68 +0.000760,68 +0.000781,68 +0.000796,68 +0.000750,68 +0.000798,68 +0.000770,68 +0.000750,68 +0.000815,68 +0.000750,68 +0.000768,68 +0.000752,68 +0.000890,68 +0.000791,68 +0.000766,68 +0.000730,68 +0.000794,68 +0.000783,68 +0.000771,68 +0.000731,68 +0.000795,68 +0.000825,68 +0.000740,68 +0.000731,68 +0.000730,68 +0.000730,68 +0.000773,68 +0.000730,68 +0.000749,68 +0.000730,68 +0.000829,68 +0.000801,68 +0.000730,68 +0.000872,68 +0.000770,68 +0.000843,68 +0.000796,68 +0.000978,68 +0.000765,68 +0.000857,68 +0.000780,68 +0.000829,68 +0.000744,68 +0.000778,68 +0.000767,68 +0.000777,68 +0.000798,68 +0.000741,68 +0.000730,68 +0.000799,68 +0.000816,68 +0.000816,68 +0.000731,68 +0.000730,68 +0.000800,68 +0.000808,68 +0.000837,68 +0.000731,68 +0.000770,68 +0.000770,68 +0.000832,68 +0.000751,68 +0.000831,68 +0.000730,68 +0.000792,68 +0.000730,68 +0.000751,68 +0.000774,68 +0.000730,68 +0.000730,68 +0.000730,68 +0.000730,68 +0.000830,68 +0.000773,68 +0.000881,68 +0.000797,68 +0.000875,68 +0.000819,68 +0.000830,68 +0.000844,68 +0.000806,68 +0.000879,68 +0.000793,68 +0.000781,68 +0.000763,68 +0.000952,68 +0.000825,70 +0.000867,70 +0.000921,70 +0.000877,70 +0.000817,70 +0.000908,70 +0.000816,70 +0.000816,70 +0.000816,70 +0.000817,70 +0.000928,70 +0.000842,70 +0.000823,70 +0.000836,70 +0.000795,70 +0.000836,70 +0.000795,70 +0.000834,70 +0.000795,70 +0.000835,70 +0.000830,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000841,70 +0.000815,70 +0.000795,70 +0.000795,70 +0.000889,70 +0.000954,70 +0.000795,70 +0.000795,70 +0.000820,70 +0.000839,70 +0.000795,70 +0.000795,70 +0.000835,70 +0.000795,70 +0.000842,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000818,70 +0.000795,70 +0.000795,70 +0.000796,70 +0.000795,70 +0.000822,70 +0.000835,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000840,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000835,70 +0.000804,70 +0.000835,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000797,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000797,70 +0.000795,70 +0.000835,70 +0.000795,70 +0.000795,70 +0.000842,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000819,70 +0.000835,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000801,70 +0.000795,70 +0.000819,70 +0.000814,70 +0.000795,70 +0.000797,70 +0.000984,70 +0.000963,70 +0.000832,70 +0.000852,70 +0.000813,70 +0.000854,70 +0.000875,70 +0.000834,70 +0.001028,70 +0.000839,70 +0.000928,72 +0.000914,72 +0.000922,72 +0.000943,72 +0.001004,72 +0.000911,72 +0.000916,72 +0.000949,72 +0.000974,72 +0.001009,72 +0.001021,72 +0.000943,72 +0.000939,72 +0.001050,72 +0.001369,72 +0.000906,72 +0.000931,72 +0.000939,72 +0.001310,72 +0.001418,72 +0.001016,72 +0.000865,72 +0.000924,72 +0.000993,72 +0.000865,72 +0.001087,72 +0.001341,72 +0.000912,72 +0.000969,72 +0.000912,72 +0.000910,72 +0.000887,72 +0.001002,72 +0.000927,72 +0.000911,72 +0.000972,72 +0.001009,72 +0.000945,72 +0.000917,72 +0.000887,72 +0.000948,72 +0.001074,72 +0.000913,72 +0.001173,72 +0.000888,72 +0.001074,72 +0.000951,72 +0.001027,72 +0.000887,72 +0.000908,72 +0.000988,72 +0.000917,72 +0.000887,72 +0.000888,72 +0.000888,72 +0.000912,72 +0.001002,72 +0.000969,72 +0.000928,72 +0.000915,72 +0.001005,72 +0.001022,72 +0.000888,72 +0.000914,72 +0.001134,72 +0.000888,72 +0.000888,72 +0.000908,72 +0.000944,72 +0.001175,72 +0.000911,72 +0.000897,72 +0.000915,72 +0.000887,72 +0.000887,72 +0.000951,72 +0.000912,72 +0.000887,72 +0.000907,72 +0.000887,72 +0.001062,72 +0.000899,72 +0.000865,72 +0.000865,72 +0.000865,72 +0.000925,72 +0.000875,72 +0.000894,72 +0.000865,72 +0.000900,72 +0.000865,72 +0.001257,72 +0.000972,72 +0.000991,72 +0.001001,72 +0.000906,72 +0.000978,72 +0.000865,72 +0.000907,72 +0.000898,72 +0.000985,74 +0.001021,74 +0.000988,74 +0.001000,74 +0.001000,74 +0.001176,74 +0.000992,74 +0.000938,74 +0.000938,74 +0.000938,74 +0.001051,74 +0.000978,74 +0.001045,74 +0.000988,74 +0.001011,74 +0.001138,74 +0.001130,74 +0.001041,74 +0.000939,74 +0.001171,74 +0.001081,74 +0.001145,74 +0.001003,74 +0.000959,74 +0.000938,74 +0.000974,74 +0.001038,74 +0.001237,74 +0.001027,74 +0.001068,74 +0.000938,74 +0.000938,74 +0.000938,74 +0.000975,74 +0.000938,74 +0.000978,74 +0.000965,74 +0.001030,74 +0.000938,74 +0.000938,74 +0.001065,74 +0.001153,74 +0.000963,74 +0.000998,74 +0.000958,74 +0.001040,74 +0.000952,74 +0.000938,74 +0.000999,74 +0.001004,74 +0.000938,74 +0.000938,74 +0.000977,74 +0.001011,74 +0.000938,74 +0.000978,74 +0.001126,74 +0.001096,74 +0.001035,74 +0.000964,74 +0.000978,74 +0.000970,74 +0.001084,74 +0.000958,74 +0.000958,74 +0.001020,74 +0.000938,74 +0.000938,74 +0.000939,74 +0.001004,74 +0.000978,74 +0.000938,74 +0.000938,74 +0.000938,74 +0.000961,74 +0.000938,74 +0.000938,74 +0.000958,74 +0.000963,74 +0.000938,74 +0.001061,74 +0.000938,74 +0.000966,74 +0.000938,74 +0.000938,74 +0.000938,74 +0.000988,74 +0.000938,74 +0.000978,74 +0.000938,74 +0.000961,74 +0.000938,74 +0.000938,74 +0.000938,74 +0.000943,74 +0.000938,74 +0.000938,74 +0.000959,74 +0.000938,74 +0.000963,74 +0.001054,76 +0.001051,76 +0.001090,76 +0.001150,76 +0.001072,76 +0.001172,76 +0.001086,76 +0.001111,76 +0.001071,76 +0.001152,76 +0.001089,76 +0.001051,76 +0.001051,76 +0.001086,76 +0.001061,76 +0.001051,76 +0.001051,76 +0.001075,76 +0.001051,76 +0.001091,76 +0.001112,76 +0.001086,76 +0.001051,76 +0.001071,76 +0.001051,76 +0.001055,76 +0.001051,76 +0.001051,76 +0.001055,76 +0.001051,76 +0.001051,76 +0.001051,76 +0.001053,76 +0.001051,76 +0.001091,76 +0.001051,76 +0.001094,76 +0.001051,76 +0.001051,76 +0.001090,76 +0.001055,76 +0.001052,76 +0.001051,76 +0.001051,76 +0.001118,76 +0.001051,76 +0.001051,76 +0.001183,76 +0.001303,76 +0.001051,76 +0.001112,76 +0.001124,76 +0.001051,76 +0.001051,76 +0.001075,76 +0.001051,76 +0.001553,76 +0.001176,76 +0.001095,76 +0.001416,76 +0.001071,76 +0.001087,76 +0.001051,76 +0.001051,76 +0.001091,76 +0.001083,76 +0.001102,76 +0.001051,76 +0.001092,76 +0.001051,76 +0.001051,76 +0.001071,76 +0.001075,76 +0.001051,76 +0.001216,76 +0.001051,76 +0.001080,76 +0.001051,76 +0.001051,76 +0.001051,76 +0.001114,76 +0.001090,76 +0.001051,76 +0.001053,76 +0.001051,76 +0.001051,76 +0.001051,76 +0.001055,76 +0.001052,76 +0.001094,76 +0.001051,76 +0.001053,76 +0.001051,76 +0.001051,76 +0.001051,76 +0.001115,76 +0.001051,76 +0.001091,76 +0.001053,76 +0.001051,76 +0.001100,78 +0.001097,78 +0.001101,78 +0.001097,78 +0.001097,78 +0.001097,78 +0.001099,78 +0.001097,78 +0.001097,78 +0.001122,78 +0.001097,78 +0.001136,78 +0.001156,78 +0.001120,78 +0.001097,78 +0.001097,78 +0.001125,78 +0.001097,78 +0.001097,78 +0.001097,78 +0.001099,78 +0.001097,78 +0.001097,78 +0.001097,78 +0.001101,78 +0.001097,78 +0.001136,78 +0.001138,78 +0.001097,78 +0.001097,78 +0.001097,78 +0.001101,78 +0.001097,78 +0.001097,78 +0.001097,78 +0.001119,78 +0.001147,78 +0.001097,78 +0.001167,78 +0.001097,78 +0.001097,78 +0.001136,78 +0.001140,78 +0.001097,78 +0.001097,78 +0.001099,78 +0.001097,78 +0.001097,78 +0.001141,78 +0.001167,78 +0.001148,78 +0.001130,78 +0.001170,78 +0.001122,78 +0.001332,78 +0.001157,78 +0.001139,78 +0.001136,78 +0.001097,78 +0.001121,78 +0.001196,78 +0.001097,78 +0.001096,78 +0.001127,78 +0.001097,78 +0.001097,78 +0.001119,78 +0.001097,78 +0.001097,78 +0.001097,78 +0.001160,78 +0.001117,78 +0.001116,78 +0.001097,78 +0.001125,78 +0.001097,78 +0.001097,78 +0.001119,78 +0.001097,78 +0.001097,78 +0.001096,78 +0.001122,78 +0.001097,78 +0.001097,78 +0.001121,78 +0.001136,78 +0.001097,78 +0.001136,78 +0.001128,78 +0.001097,78 +0.001171,78 +0.001097,78 +0.001103,78 +0.001097,78 +0.001117,78 +0.001106,78 +0.001097,78 +0.001097,78 +0.001097,78 +0.001100,78 +0.001264,80 +0.001262,80 +0.001225,80 +0.001223,80 +0.001223,80 +0.001227,80 +0.001223,80 +0.001223,80 +0.001223,80 +0.001225,80 +0.001223,80 +0.001223,80 +0.001227,80 +0.001223,80 +0.001262,80 +0.001283,80 +0.001223,80 +0.001223,80 +0.001227,80 +0.001223,80 +0.001223,80 +0.001223,80 +0.001225,80 +0.001282,80 +0.001223,80 +0.001227,80 +0.001223,80 +0.001712,80 +0.001329,80 +0.001264,80 +0.001255,80 +0.001251,80 +0.001223,80 +0.001599,80 +0.001299,80 +0.001271,80 +0.001335,80 +0.001309,80 +0.001575,80 +0.001408,80 +0.001299,80 +0.001467,80 +0.001480,80 +0.001317,80 +0.001264,80 +0.001394,80 +0.001587,80 +0.001334,80 +0.001425,80 +0.001378,80 +0.001411,80 +0.001429,80 +0.001355,80 +0.001371,80 +0.001385,80 +0.001368,80 +0.001379,80 +0.001418,80 +0.001370,80 +0.001374,80 +0.001350,80 +0.001364,80 +0.001342,80 +0.001407,80 +0.001450,80 +0.001360,80 +0.001466,80 +0.001275,80 +0.001433,80 +0.001438,80 +0.001355,80 +0.001501,80 +0.001334,80 +0.001378,80 +0.001397,80 +0.001461,80 +0.001453,80 +0.001389,80 +0.001323,80 +0.001326,80 +0.001358,80 +0.001449,80 +0.001381,80 +0.001467,80 +0.001347,80 +0.001351,80 +0.001440,80 +0.001414,80 +0.001330,80 +0.001410,80 +0.001383,80 +0.001459,80 +0.001375,80 +0.001542,80 +0.001452,80 +0.001452,80 +0.001384,80 +0.001366,80 +0.001429,80 +0.001353,80 +0.001473,82 +0.001418,82 +0.001347,82 +0.001387,82 +0.001345,82 +0.001437,82 +0.001763,82 +0.001388,82 +0.001389,82 +0.001345,82 +0.001426,82 +0.001455,82 +0.001466,82 +0.001407,82 +0.001468,82 +0.001408,82 +0.001475,82 +0.001458,82 +0.001405,82 +0.001397,82 +0.001423,82 +0.001519,82 +0.001587,82 +0.001440,82 +0.001367,82 +0.001421,82 +0.001491,82 +0.001387,82 +0.002170,82 +0.001483,82 +0.001421,82 +0.001546,82 +0.001426,82 +0.001630,82 +0.001557,82 +0.001396,82 +0.001408,82 +0.001490,82 +0.001365,82 +0.001479,82 +0.001402,82 +0.001574,82 +0.001383,82 +0.001400,82 +0.001366,82 +0.001451,82 +0.001437,82 +0.001522,82 +0.001670,82 +0.001963,82 +0.002133,82 +0.001533,82 +0.001973,82 +0.001660,82 +0.001853,82 +0.001586,82 +0.001375,82 +0.001368,82 +0.001519,82 +0.001350,82 +0.001552,82 +0.001479,82 +0.001522,82 +0.001393,82 +0.001417,82 +0.001377,82 +0.001486,82 +0.001379,82 +0.001348,82 +0.001396,82 +0.001349,82 +0.001388,82 +0.001407,82 +0.001410,82 +0.001679,82 +0.001334,82 +0.001647,82 +0.001530,82 +0.001803,82 +0.001343,82 +0.001370,82 +0.001336,82 +0.001697,82 +0.001429,82 +0.001737,82 +0.001503,82 +0.001345,82 +0.001364,82 +0.001308,82 +0.001612,82 +0.001366,82 +0.001341,82 +0.001347,82 +0.001424,82 +0.001590,82 +0.001366,82 +0.001375,82 +0.001321,82 +0.001353,82 +0.001294,82 +0.001669,84 +0.001526,84 +0.001538,84 +0.001411,84 +0.001462,84 +0.001597,84 +0.001472,84 +0.001640,84 +0.001412,84 +0.001575,84 +0.001458,84 +0.001693,84 +0.001625,84 +0.001592,84 +0.001543,84 +0.001544,84 +0.001556,84 +0.001714,84 +0.001522,84 +0.001623,84 +0.001591,84 +0.001423,84 +0.001478,84 +0.001554,84 +0.001472,84 +0.001471,84 +0.001495,84 +0.001573,84 +0.001593,84 +0.001494,84 +0.001552,84 +0.001578,84 +0.001505,84 +0.001621,84 +0.001543,84 +0.001499,84 +0.001560,84 +0.001557,84 +0.001518,84 +0.001988,84 +0.001971,84 +0.001965,84 +0.001966,84 +0.001569,84 +0.001649,84 +0.001778,84 +0.001657,84 +0.001753,84 +0.001536,84 +0.001505,84 +0.001472,84 +0.001468,84 +0.001448,84 +0.001509,84 +0.001477,84 +0.001544,84 +0.001528,84 +0.001538,84 +0.001554,84 +0.001537,84 +0.001515,84 +0.001594,84 +0.001543,84 +0.001528,84 +0.001484,84 +0.001527,84 +0.001571,84 +0.001508,84 +0.001607,84 +0.001540,84 +0.001538,84 +0.001628,84 +0.001552,84 +0.001569,84 +0.001489,84 +0.001556,84 +0.001618,84 +0.001560,84 +0.001519,84 +0.001590,84 +0.001533,84 +0.001639,84 +0.001880,84 +0.001776,84 +0.001651,84 +0.001795,84 +0.001832,84 +0.001781,84 +0.001668,84 +0.001819,84 +0.001829,84 +0.001789,84 +0.001550,84 +0.001519,84 +0.001526,84 +0.001636,84 +0.001549,84 +0.001489,84 +0.001573,84 +0.001508,84 +0.001689,86 +0.001727,86 +0.001814,86 +0.001746,86 +0.001651,86 +0.001581,86 +0.002784,86 +0.002020,86 +0.001751,86 +0.001838,86 +0.001704,86 +0.001713,86 +0.002233,86 +0.001671,86 +0.001552,86 +0.001590,86 +0.001488,86 +0.001489,86 +0.001621,86 +0.001542,86 +0.001672,86 +0.002154,86 +0.001683,86 +0.001518,86 +0.001719,86 +0.001589,86 +0.001469,86 +0.001469,86 +0.001507,86 +0.001609,86 +0.001761,86 +0.001685,86 +0.001559,86 +0.001546,86 +0.001493,86 +0.001549,86 +0.001502,86 +0.001508,86 +0.001536,86 +0.001624,86 +0.001597,86 +0.001576,86 +0.001566,86 +0.001572,86 +0.001469,86 +0.001510,86 +0.001543,86 +0.001469,86 +0.001513,86 +0.001469,86 +0.001572,86 +0.001678,86 +0.001723,86 +0.001591,86 +0.001565,86 +0.001511,86 +0.001586,86 +0.001469,86 +0.001469,86 +0.001552,86 +0.001868,86 +0.002483,86 +0.002891,86 +0.002797,86 +0.002861,86 +0.002462,86 +0.001964,86 +0.001836,86 +0.001599,86 +0.001622,86 +0.001578,86 +0.001706,86 +0.001705,86 +0.001788,86 +0.001986,86 +0.001600,86 +0.001528,86 +0.001697,86 +0.001970,86 +0.002888,86 +0.002401,86 +0.001572,86 +0.001520,86 +0.001580,86 +0.001508,86 +0.001532,86 +0.001548,86 +0.001624,86 +0.001765,86 +0.001488,86 +0.001627,86 +0.001469,86 +0.001530,86 +0.001525,86 +0.001469,86 +0.001469,86 +0.001512,86 +0.001666,86 +0.001702,86 +0.001659,86 +0.001687,88 +0.001593,88 +0.001635,88 +0.001608,88 +0.001574,88 +0.001612,88 +0.001613,88 +0.001802,88 +0.001868,88 +0.001818,88 +0.001712,88 +0.001593,88 +0.001653,88 +0.001897,88 +0.001593,88 +0.001613,88 +0.001574,88 +0.001771,88 +0.001871,88 +0.001981,88 +0.001962,88 +0.001625,88 +0.001635,88 +0.002564,88 +0.002989,88 +0.002923,88 +0.002775,88 +0.001774,88 +0.001841,88 +0.001674,88 +0.001592,88 +0.001612,88 +0.001573,88 +0.001729,88 +0.001627,88 +0.001949,88 +0.001631,88 +0.001706,88 +0.001599,88 +0.001656,88 +0.001611,88 +0.001573,88 +0.001574,88 +0.001757,88 +0.001927,88 +0.001673,88 +0.001680,88 +0.001703,88 +0.001627,88 +0.001689,88 +0.001610,88 +0.001880,88 +0.001652,88 +0.001959,88 +0.001833,88 +0.001758,88 +0.001791,88 +0.001764,88 +0.001767,88 +0.001668,88 +0.001744,88 +0.001651,88 +0.001574,88 +0.002012,88 +0.001927,88 +0.001750,88 +0.001866,88 +0.001627,88 +0.001799,88 +0.001638,88 +0.001658,88 +0.001789,88 +0.001902,88 +0.001845,88 +0.001852,88 +0.001896,88 +0.001632,88 +0.001619,88 +0.001929,88 +0.002279,88 +0.001912,88 +0.001828,88 +0.001703,88 +0.001683,88 +0.001792,88 +0.001699,88 +0.001671,88 +0.001785,88 +0.001695,88 +0.001674,88 +0.001746,88 +0.001835,88 +0.001816,88 +0.002181,88 +0.002106,88 +0.001822,88 +0.002063,88 +0.001751,88 +0.002060,88 +0.001953,88 +0.002506,90 +0.002729,90 +0.002557,90 +0.002289,90 +0.002198,90 +0.002215,90 +0.002222,90 +0.002952,90 +0.002940,90 +0.002199,90 +0.002351,90 +0.002141,90 +0.001943,90 +0.002165,90 +0.002890,90 +0.002427,90 +0.002257,90 +0.002644,90 +0.002190,90 +0.002735,90 +0.002083,90 +0.002364,90 +0.002731,90 +0.003146,90 +0.002302,90 +0.002487,90 +0.002181,90 +0.002008,90 +0.002087,90 +0.001829,90 +0.001937,90 +0.002182,90 +0.002111,90 +0.002008,90 +0.001927,90 +0.001947,90 +0.002299,90 +0.002398,90 +0.001884,90 +0.001889,90 +0.002031,90 +0.001808,90 +0.001882,90 +0.001899,90 +0.002200,90 +0.002058,90 +0.001909,90 +0.001916,90 +0.001905,90 +0.001876,90 +0.001885,90 +0.001819,90 +0.002004,90 +0.002309,90 +0.002066,90 +0.001904,90 +0.001882,90 +0.001827,90 +0.001815,90 +0.001880,90 +0.001880,90 +0.002356,90 +0.002548,90 +0.001877,90 +0.001901,90 +0.001806,90 +0.001802,90 +0.001874,90 +0.001893,90 +0.002230,90 +0.002034,90 +0.002065,90 +0.001932,90 +0.001997,90 +0.001898,90 +0.002424,90 +0.003206,90 +0.003277,90 +0.003128,90 +0.002408,90 +0.002066,90 +0.002048,90 +0.002269,90 +0.002389,90 +0.002295,90 +0.002206,90 +0.002143,90 +0.002052,90 +0.002010,90 +0.001989,90 +0.002045,90 +0.002232,90 +0.002216,90 +0.002354,90 +0.002202,90 +0.002418,90 +0.002099,90 +0.002110,90 +0.002142,90 +0.002166,90 +0.002204,92 +0.002298,92 +0.002207,92 +0.002173,92 +0.002178,92 +0.002327,92 +0.002337,92 +0.002156,92 +0.002237,92 +0.002421,92 +0.002156,92 +0.002213,92 +0.002182,92 +0.002491,92 +0.002323,92 +0.002225,92 +0.002425,92 +0.002284,92 +0.002338,92 +0.003061,92 +0.003377,92 +0.003534,92 +0.003016,92 +0.002268,92 +0.002223,92 +0.002220,92 +0.002490,92 +0.002097,92 +0.002016,92 +0.002111,92 +0.002131,92 +0.002017,92 +0.001990,92 +0.002122,92 +0.001988,92 +0.001986,92 +0.002012,92 +0.002017,92 +0.001991,92 +0.002005,92 +0.001974,92 +0.002031,92 +0.002031,92 +0.002045,92 +0.002075,92 +0.002085,92 +0.002380,92 +0.002281,92 +0.002188,92 +0.002187,92 +0.002204,92 +0.002148,92 +0.002144,92 +0.002126,92 +0.002146,92 +0.002135,92 +0.002182,92 +0.002274,92 +0.002168,92 +0.002217,92 +0.002235,92 +0.002338,92 +0.002226,92 +0.002195,92 +0.003377,92 +0.003636,92 +0.003556,92 +0.002944,92 +0.002353,92 +0.002290,92 +0.002484,92 +0.002277,92 +0.002147,92 +0.002483,92 +0.002218,92 +0.002122,92 +0.002113,92 +0.002255,92 +0.002275,92 +0.002155,92 +0.002152,92 +0.002163,92 +0.002218,92 +0.002204,92 +0.002177,92 +0.002174,92 +0.002196,92 +0.002190,92 +0.002202,92 +0.002230,92 +0.002163,92 +0.002154,92 +0.002150,92 +0.002293,92 +0.002182,92 +0.002219,92 +0.002143,92 +0.002209,92 +0.002253,92 +0.002173,92 +0.002319,94 +0.002370,94 +0.002364,94 +0.002271,94 +0.002365,94 +0.002355,94 +0.002271,94 +0.003291,94 +0.003712,94 +0.003714,94 +0.003034,94 +0.002388,94 +0.002673,94 +0.002384,94 +0.002423,94 +0.002168,94 +0.002159,94 +0.002336,94 +0.002190,94 +0.002172,94 +0.002268,94 +0.002195,94 +0.002355,94 +0.002301,94 +0.002343,94 +0.002207,94 +0.002375,94 +0.002346,94 +0.002500,94 +0.002342,94 +0.002345,94 +0.002385,94 +0.002242,94 +0.002254,94 +0.002465,94 +0.002337,94 +0.002118,94 +0.002088,94 +0.002141,94 +0.002053,94 +0.002127,94 +0.002154,94 +0.002742,94 +0.002204,94 +0.002145,94 +0.002119,94 +0.002109,94 +0.002133,94 +0.002150,94 +0.002110,94 +0.002025,94 +0.002053,94 +0.002768,94 +0.002178,94 +0.002147,94 +0.002126,94 +0.002086,94 +0.002378,94 +0.002387,94 +0.002090,94 +0.002102,94 +0.002120,94 +0.002158,94 +0.002133,94 +0.002197,94 +0.002690,94 +0.002092,94 +0.002132,94 +0.002095,94 +0.002105,94 +0.002079,94 +0.002148,94 +0.002127,94 +0.002543,94 +0.002073,94 +0.002065,94 +0.002016,94 +0.002084,94 +0.002091,94 +0.001971,94 +0.002219,94 +0.002043,94 +0.002093,94 +0.002011,94 +0.002007,94 +0.001957,94 +0.001953,94 +0.001918,94 +0.002061,94 +0.002174,94 +0.001999,94 +0.001918,94 +0.002002,94 +0.001957,94 +0.001952,94 +0.001918,94 +0.001996,94 +0.002121,94 +0.002045,94 +0.001991,94 +0.002271,96 +0.002186,96 +0.002124,96 +0.002056,96 +0.002083,96 +0.002061,96 +0.002075,96 +0.002041,96 +0.002082,96 +0.002100,96 +0.002065,96 +0.002071,96 +0.002041,96 +0.002045,96 +0.002042,96 +0.002046,96 +0.002042,96 +0.002122,96 +0.002041,96 +0.002087,96 +0.002101,96 +0.002043,96 +0.002041,96 +0.002043,96 +0.002041,96 +0.002128,96 +0.002041,96 +0.002063,96 +0.002041,96 +0.002045,96 +0.002372,96 +0.002088,96 +0.002136,96 +0.002389,96 +0.002162,96 +0.002095,96 +0.002505,96 +0.002663,96 +0.002072,96 +0.002533,96 +0.002530,96 +0.002976,96 +0.003597,96 +0.002478,96 +0.002308,96 +0.002326,96 +0.002289,96 +0.002277,96 +0.002227,96 +0.002305,96 +0.002198,96 +0.002152,96 +0.002522,96 +0.002326,96 +0.002328,96 +0.002126,96 +0.002330,96 +0.002453,96 +0.002437,96 +0.002298,96 +0.002287,96 +0.002595,96 +0.002550,96 +0.002598,96 +0.002488,96 +0.002446,96 +0.002734,96 +0.002717,96 +0.002524,96 +0.002335,96 +0.002321,96 +0.002189,96 +0.002176,96 +0.002150,96 +0.002250,96 +0.002277,96 +0.002221,96 +0.002236,96 +0.002231,96 +0.002248,96 +0.002288,96 +0.002260,96 +0.002340,96 +0.002302,96 +0.002257,96 +0.002349,96 +0.002321,96 +0.002243,96 +0.002259,96 +0.002285,96 +0.002158,96 +0.002152,96 +0.002160,96 +0.002265,96 +0.002317,96 +0.002278,96 +0.002304,96 +0.002213,96 +0.002157,96 +0.002183,96 +0.002445,98 +0.002454,98 +0.002461,98 +0.002463,98 +0.002556,98 +0.002383,98 +0.002484,98 +0.002539,98 +0.002351,98 +0.002377,98 +0.002374,98 +0.002373,98 +0.002304,98 +0.002409,98 +0.002439,98 +0.002416,98 +0.002296,98 +0.002313,98 +0.002352,98 +0.002399,98 +0.002295,98 +0.002355,98 +0.002379,98 +0.002352,98 +0.002363,98 +0.002364,98 +0.002298,98 +0.002357,98 +0.002371,98 +0.002279,98 +0.002246,98 +0.002735,98 +0.002591,98 +0.002416,98 +0.002642,98 +0.002502,98 +0.002411,98 +0.002420,98 +0.002512,98 +0.002377,98 +0.002522,98 +0.002426,98 +0.002718,98 +0.002724,98 +0.002641,98 +0.002545,98 +0.002366,98 +0.002431,98 +0.002570,98 +0.002433,98 +0.002428,98 +0.002452,98 +0.002455,98 +0.002421,98 +0.002828,98 +0.002920,98 +0.003138,98 +0.003385,98 +0.003285,98 +0.002902,98 +0.003023,98 +0.002947,98 +0.002916,98 +0.002957,98 +0.002793,98 +0.003201,98 +0.002843,98 +0.002986,98 +0.002336,98 +0.003146,98 +0.002695,98 +0.002431,98 +0.002494,98 +0.002348,98 +0.002304,98 +0.002355,98 +0.002373,98 +0.002362,98 +0.002358,98 +0.002454,98 +0.002325,98 +0.002288,98 +0.002278,98 +0.002257,98 +0.002223,98 +0.002179,98 +0.002391,98 +0.002197,98 +0.002214,98 +0.002179,98 +0.002314,98 +0.002227,98 +0.002189,98 +0.002274,98 +0.002424,98 +0.002317,98 +0.002325,98 +0.002287,98 +0.002440,98 +0.002235,98 +0.002631,100 +0.003587,100 +0.003203,100 +0.002856,100 +0.002599,100 +0.002795,100 +0.003222,100 +0.002630,100 +0.002563,100 +0.002547,100 +0.002723,100 +0.002813,100 +0.002615,100 +0.002694,100 +0.002470,100 +0.002390,100 +0.002378,100 +0.002357,100 +0.002366,100 +0.002859,100 +0.002374,100 +0.002423,100 +0.002399,100 +0.002359,100 +0.002351,100 +0.002440,100 +0.002509,100 +0.002368,100 +0.002309,100 +0.002358,100 +0.002390,100 +0.002361,100 +0.002445,100 +0.002447,100 +0.002343,100 +0.002413,100 +0.002403,100 +0.002494,100 +0.002308,100 +0.002389,100 +0.002390,100 +0.002425,100 +0.002337,100 +0.002404,100 +0.002424,100 +0.002375,100 +0.002355,100 +0.003358,100 +0.004333,100 +0.004395,100 +0.002452,100 +0.002391,100 +0.002436,100 +0.002365,100 +0.002428,100 +0.002455,100 +0.002320,100 +0.002347,100 +0.002438,100 +0.002372,100 +0.002368,100 +0.002329,100 +0.002793,100 +0.002615,100 +0.002933,100 +0.003123,100 +0.002914,100 +0.002838,100 +0.003154,100 +0.002967,100 +0.003166,100 +0.003947,100 +0.003279,100 +0.003344,100 +0.002560,100 +0.002644,100 +0.003361,100 +0.002568,100 +0.002543,100 +0.002499,100 +0.002502,100 +0.002419,100 +0.002838,100 +0.004438,100 +0.004333,100 +0.003139,100 +0.002395,100 +0.002680,100 +0.002382,100 +0.002357,100 +0.002347,100 +0.002398,100 +0.002343,100 +0.002342,100 +0.002576,100 +0.002307,100 +0.002332,100 +0.002468,100 +0.002346,100 +0.002337,100 +0.002496,102 +0.002542,102 +0.002490,102 +0.002453,102 +0.002558,102 +0.002461,102 +0.002476,102 +0.002542,102 +0.002453,102 +0.002459,102 +0.002561,102 +0.002531,102 +0.002735,102 +0.002487,102 +0.002580,102 +0.002558,102 +0.002536,102 +0.002528,102 +0.002747,102 +0.002652,102 +0.002880,102 +0.002657,102 +0.002634,102 +0.002690,102 +0.002908,102 +0.002496,102 +0.002894,102 +0.002579,102 +0.002784,102 +0.002583,102 +0.002614,102 +0.002550,102 +0.002555,102 +0.002724,102 +0.002518,102 +0.002594,102 +0.002585,102 +0.002763,102 +0.002479,102 +0.002635,102 +0.002453,102 +0.002732,102 +0.002579,102 +0.002501,102 +0.002537,102 +0.002552,102 +0.002534,102 +0.002491,102 +0.002521,102 +0.002630,102 +0.002478,102 +0.002453,102 +0.002599,102 +0.002474,102 +0.002485,102 +0.002490,102 +0.002544,102 +0.002462,102 +0.002457,102 +0.002535,102 +0.002597,102 +0.002591,102 +0.002620,102 +0.002619,102 +0.002475,102 +0.002493,102 +0.002487,102 +0.002495,102 +0.002473,102 +0.002588,102 +0.002487,102 +0.002486,102 +0.002559,102 +0.002453,102 +0.002496,102 +0.002492,102 +0.002496,102 +0.002455,102 +0.002453,102 +0.002457,102 +0.002455,102 +0.002454,102 +0.002496,102 +0.002492,102 +0.002455,102 +0.002457,102 +0.002452,102 +0.002455,102 +0.002617,102 +0.002530,102 +0.002455,102 +0.002492,102 +0.002455,102 +0.002458,102 +0.002453,102 +0.002455,102 +0.002530,102 +0.002486,102 +0.002476,102 +0.002453,102 +0.002644,104 +0.002914,104 +0.002769,104 +0.002818,104 +0.003162,104 +0.002768,104 +0.002623,104 +0.002629,104 +0.002696,104 +0.002602,104 +0.002633,104 +0.002769,104 +0.002594,104 +0.002641,104 +0.002669,104 +0.002631,104 +0.002635,104 +0.002638,104 +0.002594,104 +0.002596,104 +0.002593,104 +0.002675,104 +0.002601,104 +0.002594,104 +0.002599,104 +0.002614,104 +0.002682,104 +0.002697,104 +0.002606,104 +0.002593,104 +0.002598,104 +0.002596,104 +0.002827,104 +0.002739,104 +0.002733,104 +0.002605,104 +0.002660,104 +0.002610,104 +0.002770,104 +0.002754,104 +0.002903,104 +0.002616,104 +0.002653,104 +0.002636,104 +0.002594,104 +0.002617,104 +0.002683,104 +0.002593,104 +0.002621,104 +0.002694,104 +0.002593,104 +0.002931,104 +0.002687,104 +0.002611,104 +0.002615,104 +0.002731,104 +0.002594,104 +0.002599,104 +0.002743,104 +0.002827,104 +0.002593,104 +0.002853,104 +0.002641,104 +0.002677,104 +0.002846,104 +0.002660,104 +0.002593,104 +0.002880,104 +0.002618,104 +0.002593,104 +0.002888,104 +0.002700,104 +0.002593,104 +0.002697,104 +0.002763,104 +0.002742,104 +0.002744,104 +0.002944,104 +0.002612,104 +0.002875,104 +0.002688,104 +0.002594,104 +0.002825,104 +0.002811,104 +0.002790,104 +0.002676,104 +0.002923,104 +0.002650,104 +0.002593,104 +0.002882,104 +0.002773,104 +0.002749,104 +0.002754,104 +0.002698,104 +0.002613,104 +0.002846,104 +0.002832,104 +0.002777,104 +0.002671,104 +0.002618,104 +0.002861,106 +0.002804,106 +0.002767,106 +0.002771,106 +0.002765,106 +0.002768,106 +0.002816,106 +0.003076,106 +0.002747,106 +0.002774,106 +0.002827,106 +0.002822,106 +0.002887,106 +0.003106,106 +0.002937,106 +0.002827,106 +0.002802,106 +0.002752,106 +0.002786,106 +0.002772,106 +0.002751,106 +0.002766,106 +0.002749,106 +0.002751,106 +0.002757,106 +0.002778,106 +0.002750,106 +0.002749,106 +0.002746,106 +0.002751,106 +0.002749,106 +0.002808,106 +0.002755,106 +0.002766,106 +0.002747,106 +0.002748,106 +0.002812,106 +0.003042,106 +0.002754,106 +0.002816,106 +0.002796,106 +0.002796,106 +0.002974,106 +0.002886,106 +0.002746,106 +0.002830,106 +0.002770,106 +0.002814,106 +0.002845,106 +0.002852,106 +0.002921,106 +0.002764,106 +0.002799,106 +0.002937,106 +0.002828,106 +0.002919,106 +0.002782,106 +0.002887,106 +0.002747,106 +0.002781,106 +0.002797,106 +0.002784,106 +0.002768,106 +0.002771,106 +0.002777,106 +0.002746,106 +0.002824,106 +0.002789,106 +0.002930,106 +0.003093,106 +0.002806,106 +0.002859,106 +0.002835,106 +0.002773,106 +0.003069,106 +0.002904,106 +0.002781,106 +0.002778,106 +0.003197,106 +0.002853,106 +0.002909,106 +0.002748,106 +0.003053,106 +0.003029,106 +0.002944,106 +0.003028,106 +0.002922,106 +0.002943,106 +0.002805,106 +0.002842,106 +0.003043,106 +0.002790,106 +0.002891,106 +0.003061,106 +0.002766,106 +0.002845,106 +0.003088,106 +0.002893,106 +0.002975,106 +0.002841,106 +0.003258,108 +0.003219,108 +0.003353,108 +0.003234,108 +0.003371,108 +0.003265,108 +0.003275,108 +0.003025,108 +0.003320,108 +0.003132,108 +0.003040,108 +0.003275,108 +0.003107,108 +0.003192,108 +0.002982,108 +0.002944,108 +0.003102,108 +0.003042,108 +0.003119,108 +0.003389,108 +0.002972,108 +0.002947,108 +0.002959,108 +0.002946,108 +0.003023,108 +0.003080,108 +0.002959,108 +0.003009,108 +0.002963,108 +0.002908,108 +0.003800,108 +0.002959,108 +0.002980,108 +0.002962,108 +0.002907,108 +0.003076,108 +0.003053,108 +0.003043,108 +0.002974,108 +0.002942,108 +0.002948,108 +0.003255,108 +0.003202,108 +0.002996,108 +0.002961,108 +0.002941,108 +0.003798,108 +0.003248,108 +0.003472,108 +0.003765,108 +0.003114,108 +0.003797,108 +0.003137,108 +0.002941,108 +0.003015,108 +0.002948,108 +0.003830,108 +0.003539,108 +0.003319,108 +0.003370,108 +0.003390,108 +0.003863,108 +0.003414,108 +0.003166,108 +0.003177,108 +0.002997,108 +0.004755,108 +0.003511,108 +0.003067,108 +0.003015,108 +0.003014,108 +0.004106,108 +0.003278,108 +0.002963,108 +0.003018,108 +0.003021,108 +0.003756,108 +0.003218,108 +0.004016,108 +0.003551,108 +0.003735,108 +0.003652,108 +0.002973,108 +0.003049,108 +0.003021,108 +0.003233,108 +0.003566,108 +0.003014,108 +0.002982,108 +0.003015,108 +0.002909,108 +0.003506,108 +0.003099,108 +0.003016,108 +0.002987,108 +0.003012,108 +0.003344,108 +0.003108,108 +0.003036,108 +0.002986,108 +0.003121,110 +0.003308,110 +0.003645,110 +0.003130,110 +0.003139,110 +0.003119,110 +0.003193,110 +0.003599,110 +0.003218,110 +0.003943,110 +0.003833,110 +0.004163,110 +0.003342,110 +0.003072,110 +0.003193,110 +0.003109,110 +0.003806,110 +0.003317,110 +0.003172,110 +0.003261,110 +0.003104,110 +0.004003,110 +0.003298,110 +0.003116,110 +0.003148,110 +0.003104,110 +0.003832,110 +0.003439,110 +0.003874,110 +0.003440,110 +0.005118,110 +0.004115,110 +0.003377,110 +0.003371,110 +0.003585,110 +0.004081,110 +0.003263,110 +0.003363,110 +0.005218,110 +0.004327,110 +0.003541,110 +0.003458,110 +0.003406,110 +0.003481,110 +0.004168,110 +0.003612,110 +0.004007,110 +0.003247,110 +0.003406,110 +0.003569,110 +0.003616,110 +0.003771,110 +0.003692,110 +0.003914,110 +0.004257,110 +0.003764,110 +0.003408,110 +0.003849,110 +0.004592,110 +0.003795,110 +0.003294,110 +0.004595,110 +0.005149,110 +0.004321,110 +0.003406,110 +0.004178,110 +0.005475,110 +0.005511,110 +0.003782,110 +0.003560,110 +0.004343,110 +0.003608,110 +0.003263,110 +0.004953,110 +0.004977,110 +0.006301,110 +0.005646,110 +0.004369,110 +0.004527,110 +0.005416,110 +0.004751,110 +0.003676,110 +0.003736,110 +0.003644,110 +0.005144,110 +0.004847,110 +0.005405,110 +0.003992,110 +0.003676,110 +0.004584,110 +0.003187,110 +0.003931,110 +0.004963,110 +0.004742,110 +0.004872,110 +0.003628,110 +0.003541,110 +0.003228,110 +0.003850,110 +0.005009,110 +0.005836,112 +0.006242,112 +0.006106,112 +0.003673,112 +0.003781,112 +0.003425,112 +0.003692,112 +0.004829,112 +0.003334,112 +0.004316,112 +0.004068,112 +0.006432,112 +0.004738,112 +0.003701,112 +0.003584,112 +0.003472,112 +0.003439,112 +0.004773,112 +0.004372,112 +0.004500,112 +0.003843,112 +0.003317,112 +0.004180,112 +0.003587,112 +0.004891,112 +0.003355,112 +0.004367,112 +0.005543,112 +0.004212,112 +0.003753,112 +0.005279,112 +0.006208,112 +0.006200,112 +0.005718,112 +0.004388,112 +0.003853,112 +0.004592,112 +0.005675,112 +0.005520,112 +0.004401,112 +0.004859,112 +0.006026,112 +0.005075,112 +0.004250,112 +0.004091,112 +0.003717,112 +0.003554,112 +0.003785,112 +0.003421,112 +0.003694,112 +0.003385,112 +0.003369,112 +0.003600,112 +0.003460,112 +0.003418,112 +0.005473,112 +0.006749,112 +0.004214,112 +0.003674,112 +0.004082,112 +0.003621,112 +0.003577,112 +0.003567,112 +0.003612,112 +0.004367,112 +0.003855,112 +0.004755,112 +0.004980,112 +0.004530,112 +0.004115,112 +0.004447,112 +0.003744,112 +0.003871,112 +0.003347,112 +0.003526,112 +0.004476,112 +0.005915,112 +0.006213,112 +0.005642,112 +0.003939,112 +0.004915,112 +0.003862,112 +0.003666,112 +0.005661,112 +0.004728,112 +0.004609,112 +0.004075,112 +0.003584,112 +0.003461,112 +0.003718,112 +0.003806,112 +0.004843,112 +0.003594,112 +0.003614,112 +0.003549,112 +0.004039,112 +0.003723,112 +0.003414,112 +0.003796,112 +0.003973,112 +0.004787,114 +0.004136,114 +0.003698,114 +0.003936,114 +0.004186,114 +0.003469,114 +0.003586,114 +0.003563,114 +0.004120,114 +0.003981,114 +0.003613,114 +0.003603,114 +0.004202,114 +0.003610,114 +0.003615,114 +0.003970,114 +0.003713,114 +0.004594,114 +0.003967,114 +0.003705,114 +0.003533,114 +0.005343,114 +0.003616,114 +0.003937,114 +0.003666,114 +0.004701,114 +0.004117,114 +0.003791,114 +0.003927,114 +0.004133,114 +0.003919,114 +0.003650,114 +0.003989,114 +0.005745,114 +0.004907,114 +0.004419,114 +0.006310,114 +0.004878,114 +0.005730,114 +0.004555,114 +0.004293,114 +0.004167,114 +0.003760,114 +0.003707,114 +0.004708,114 +0.004830,114 +0.004394,114 +0.004506,114 +0.004576,114 +0.003709,114 +0.003710,114 +0.003735,114 +0.003963,114 +0.003603,114 +0.003639,114 +0.003622,114 +0.003918,114 +0.003500,114 +0.003536,114 +0.003496,114 +0.003747,114 +0.004614,114 +0.003626,114 +0.003560,114 +0.004132,114 +0.003929,114 +0.003513,114 +0.003639,114 +0.003501,114 +0.004693,114 +0.003638,114 +0.003510,114 +0.003523,114 +0.005249,114 +0.003929,114 +0.003533,114 +0.003540,114 +0.003679,114 +0.004028,114 +0.003837,114 +0.004211,114 +0.004641,114 +0.003909,114 +0.003980,114 +0.003944,114 +0.003978,114 +0.003950,114 +0.003711,114 +0.004290,114 +0.004783,114 +0.003931,114 +0.003651,114 +0.003681,114 +0.003937,114 +0.004409,114 +0.004043,114 +0.004928,114 +0.004647,114 +0.004604,114 +0.004061,114 +0.003837,116 +0.003813,116 +0.003887,116 +0.004217,116 +0.003743,116 +0.003736,116 +0.004412,116 +0.003754,116 +0.003727,116 +0.003773,116 +0.004102,116 +0.004182,116 +0.003631,116 +0.003809,116 +0.003794,116 +0.004108,116 +0.003639,116 +0.003756,116 +0.003689,116 +0.004026,116 +0.003754,116 +0.003671,116 +0.003682,116 +0.003978,116 +0.003798,116 +0.003636,116 +0.003711,116 +0.004586,116 +0.004441,116 +0.004037,116 +0.003830,116 +0.003782,116 +0.004104,116 +0.003632,116 +0.003748,116 +0.003665,116 +0.004122,116 +0.003719,116 +0.003682,116 +0.003697,116 +0.003930,116 +0.003940,116 +0.003639,116 +0.003774,116 +0.003674,116 +0.004208,116 +0.003627,116 +0.003687,116 +0.003675,116 +0.004086,116 +0.003825,116 +0.003594,116 +0.003723,116 +0.004457,116 +0.004397,116 +0.003899,116 +0.003694,116 +0.003790,116 +0.004091,116 +0.003629,116 +0.004212,116 +0.003711,116 +0.004105,116 +0.003695,116 +0.003939,116 +0.003718,116 +0.004045,116 +0.004201,116 +0.003629,116 +0.003789,116 +0.003828,116 +0.004067,116 +0.003635,116 +0.003762,116 +0.003638,116 +0.004158,116 +0.003709,116 +0.003672,116 +0.003669,116 +0.003834,116 +0.003983,116 +0.004511,116 +0.003747,116 +0.003918,116 +0.003984,116 +0.003632,116 +0.003687,116 +0.003700,116 +0.004324,116 +0.003912,116 +0.004117,116 +0.004163,116 +0.004294,116 +0.003923,116 +0.003681,116 +0.003711,116 +0.004289,116 +0.004412,116 +0.003677,116 +0.003650,116 +0.004346,118 +0.003991,118 +0.003824,118 +0.003865,118 +0.003964,118 +0.004073,118 +0.004120,118 +0.003890,118 +0.003943,118 +0.004015,118 +0.003822,118 +0.003899,118 +0.003838,118 +0.004025,118 +0.003836,118 +0.003853,118 +0.003892,118 +0.003903,118 +0.003821,118 +0.003811,118 +0.003981,118 +0.003875,118 +0.003817,118 +0.003806,118 +0.003877,118 +0.003795,118 +0.003856,118 +0.003790,118 +0.003831,118 +0.003843,118 +0.004057,118 +0.004039,118 +0.003847,118 +0.003866,118 +0.003882,118 +0.003810,118 +0.003817,118 +0.003938,118 +0.003862,118 +0.003835,118 +0.003787,118 +0.003868,118 +0.003877,118 +0.003898,118 +0.003814,118 +0.003827,118 +0.003906,118 +0.003855,118 +0.003836,118 +0.003836,118 +0.003881,118 +0.003875,118 +0.003795,118 +0.003789,118 +0.003846,118 +0.003810,118 +0.004143,118 +0.004031,118 +0.003871,118 +0.003842,118 +0.003850,118 +0.003794,118 +0.003790,118 +0.003881,118 +0.003891,118 +0.003850,118 +0.003791,118 +0.003886,118 +0.004017,118 +0.003790,118 +0.003787,118 +0.003825,118 +0.003930,118 +0.003822,118 +0.003789,118 +0.003793,118 +0.003874,118 +0.003793,118 +0.003789,118 +0.003789,118 +0.003855,118 +0.003809,118 +0.004019,118 +0.004125,118 +0.003866,118 +0.003863,118 +0.003847,118 +0.003883,118 +0.003818,118 +0.003886,118 +0.003990,118 +0.003835,118 +0.003814,118 +0.003876,118 +0.003837,118 +0.003814,118 +0.003791,118 +0.003847,118 +0.003900,118 +0.003798,118 +0.004000,120 +0.004003,120 +0.004077,120 +0.003994,120 +0.003974,120 +0.003978,120 +0.004037,120 +0.003980,120 +0.004235,120 +0.004179,120 +0.004089,120 +0.003979,120 +0.003974,120 +0.004010,120 +0.004069,120 +0.003998,120 +0.003995,120 +0.003976,120 +0.004063,120 +0.004007,120 +0.004009,120 +0.003985,120 +0.004014,120 +0.004230,120 +0.003977,120 +0.003984,120 +0.004036,120 +0.004071,120 +0.003974,120 +0.004011,120 +0.004010,120 +0.004069,120 +0.003974,120 +0.004183,120 +0.004231,120 +0.004194,120 +0.003994,120 +0.004074,120 +0.004010,120 +0.004118,120 +0.004167,120 +0.004004,120 +0.003977,120 +0.004067,120 +0.003977,120 +0.003979,120 +0.003978,120 +0.004116,120 +0.004197,120 +0.003985,120 +0.003974,120 +0.004189,120 +0.004266,120 +0.004054,120 +0.004065,120 +0.004118,120 +0.004036,120 +0.004116,120 +0.004106,120 +0.004314,120 +0.003997,120 +0.004074,120 +0.004018,120 +0.004176,120 +0.004099,120 +0.004020,120 +0.004015,120 +0.004070,120 +0.004088,120 +0.004059,120 +0.003995,120 +0.004057,120 +0.004145,120 +0.004015,120 +0.003982,120 +0.004031,120 +0.004070,120 +0.004034,120 +0.003996,120 +0.003981,120 +0.004161,120 +0.004040,120 +0.004191,120 +0.004170,120 +0.004290,120 +0.004079,120 +0.004132,120 +0.004137,120 +0.004106,120 +0.004235,120 +0.004068,120 +0.004007,120 +0.004126,120 +0.004024,120 +0.004011,120 +0.003998,120 +0.004253,120 +0.004004,120 +0.003992,120 +0.003978,120 +0.004298,122 +0.004239,122 +0.004193,122 +0.004273,122 +0.004511,122 +0.004250,122 +0.004320,122 +0.004322,122 +0.004460,122 +0.004300,122 +0.004190,122 +0.004215,122 +0.004357,122 +0.004246,122 +0.004205,122 +0.004235,122 +0.004389,122 +0.004201,122 +0.004194,122 +0.004306,122 +0.004595,122 +0.004326,122 +0.004256,122 +0.004449,122 +0.004713,122 +0.004423,122 +0.004446,122 +0.006128,122 +0.004411,122 +0.004457,122 +0.004512,122 +0.004526,122 +0.004402,122 +0.004343,122 +0.004366,122 +0.004230,122 +0.004355,122 +0.004229,122 +0.004364,122 +0.004227,122 +0.004440,122 +0.004216,122 +0.004329,122 +0.004527,122 +0.004341,122 +0.004345,122 +0.004381,122 +0.004347,122 +0.004344,122 +0.004340,122 +0.004348,122 +0.004345,122 +0.004357,122 +0.004451,122 +0.004466,122 +0.004447,122 +0.004343,122 +0.004389,122 +0.004335,122 +0.004316,122 +0.004315,122 +0.004398,122 +0.004329,122 +0.004331,122 +0.004306,122 +0.004485,122 +0.004364,122 +0.004366,122 +0.004397,122 +0.004434,122 +0.004343,122 +0.004308,122 +0.004346,122 +0.004389,122 +0.004326,122 +0.004366,122 +0.004459,122 +0.004491,122 +0.004347,122 +0.004341,122 +0.004427,122 +0.004351,122 +0.004329,122 +0.004334,122 +0.004406,122 +0.004350,122 +0.004357,122 +0.004361,122 +0.004495,122 +0.004339,122 +0.004342,122 +0.004354,122 +0.004483,122 +0.004325,122 +0.004302,122 +0.004377,122 +0.004309,122 +0.004324,122 +0.004372,122 +0.004457,122 +0.004703,124 +0.004598,124 +0.004443,124 +0.004476,124 +0.004466,124 +0.004408,124 +0.004476,124 +0.004529,124 +0.004481,124 +0.004412,124 +0.004553,124 +0.004512,124 +0.004408,124 +0.004450,124 +0.004573,124 +0.004461,124 +0.007765,124 +0.005173,124 +0.004744,124 +0.004438,124 +0.004704,124 +0.004726,124 +0.004482,124 +0.004423,124 +0.004644,124 +0.004437,124 +0.004417,124 +0.004424,124 +0.004531,124 +0.004459,124 +0.004431,124 +0.004436,124 +0.004615,124 +0.004449,124 +0.004406,124 +0.004666,124 +0.004435,124 +0.004412,124 +0.004413,124 +0.004490,124 +0.004397,124 +0.004397,124 +0.004487,124 +0.004666,124 +0.004561,124 +0.004433,124 +0.004493,124 +0.004520,124 +0.004441,124 +0.004409,124 +0.004517,124 +0.004419,124 +0.004487,124 +0.004420,124 +0.004562,124 +0.004588,124 +0.004433,124 +0.004631,124 +0.004484,124 +0.004458,124 +0.004426,124 +0.004541,124 +0.004425,124 +0.004432,124 +0.004439,124 +0.004638,124 +0.004596,124 +0.004526,124 +0.004487,124 +0.004598,124 +0.004609,124 +0.004424,124 +0.004537,124 +0.004436,124 +0.004412,124 +0.004425,124 +0.004503,124 +0.004560,124 +0.004420,124 +0.004558,124 +0.004533,124 +0.004439,124 +0.004428,124 +0.004719,124 +0.004512,124 +0.004412,124 +0.004443,124 +0.004649,124 +0.004616,124 +0.004498,124 +0.004453,124 +0.004595,124 +0.004456,124 +0.004447,124 +0.004518,124 +0.004489,124 +0.004441,124 +0.004410,124 +0.004513,124 +0.004580,124 +0.004662,126 +0.004719,126 +0.004843,126 +0.004653,126 +0.004644,126 +0.004688,126 +0.004709,126 +0.004654,126 +0.004646,126 +0.004866,126 +0.004883,126 +0.004728,126 +0.004737,126 +0.004719,126 +0.004731,126 +0.004628,126 +0.004735,126 +0.004633,126 +0.004650,126 +0.004696,126 +0.004805,126 +0.004666,126 +0.004765,126 +0.004727,126 +0.004697,126 +0.004747,126 +0.004852,126 +0.004697,126 +0.004709,126 +0.004681,126 +0.004790,126 +0.004838,126 +0.004740,126 +0.004898,126 +0.004784,126 +0.004648,126 +0.004651,126 +0.004750,126 +0.004659,126 +0.004632,126 +0.004671,126 +0.004750,126 +0.004914,126 +0.004887,126 +0.004847,126 +0.004825,126 +0.004675,126 +0.004664,126 +0.004737,126 +0.004657,126 +0.004647,126 +0.004924,126 +0.004950,126 +0.004737,126 +0.004776,126 +0.004728,126 +0.004695,126 +0.004665,126 +0.004781,126 +0.004666,126 +0.004647,126 +0.004690,126 +0.004912,126 +0.004696,126 +0.004686,126 +0.004803,126 +0.004740,126 +0.004676,126 +0.004654,126 +0.004776,126 +0.004657,126 +0.004629,126 +0.004816,126 +0.005045,126 +0.004844,126 +0.004628,126 +0.004776,126 +0.004704,126 +0.004647,126 +0.004736,126 +0.004655,126 +0.004628,126 +0.004640,126 +0.004790,126 +0.004961,126 +0.004783,126 +0.004804,126 +0.004800,126 +0.004720,126 +0.004644,126 +0.004755,126 +0.004661,126 +0.004621,126 +0.004692,126 +0.005043,126 +0.004882,126 +0.004638,126 +0.004839,126 +0.004672,126 +0.004690,126 +0.005225,128 +0.005116,128 +0.005117,128 +0.005175,128 +0.005454,128 +0.005123,128 +0.005107,128 +0.005244,128 +0.005112,128 +0.005123,128 +0.005198,128 +0.005114,128 +0.005077,128 +0.005257,128 +0.005528,128 +0.005315,128 +0.005355,128 +0.005147,128 +0.005106,128 +0.005195,128 +0.005178,128 +0.005105,128 +0.005101,128 +0.005230,128 +0.005409,128 +0.005327,128 +0.005247,128 +0.005288,128 +0.005124,128 +0.005236,128 +0.005127,128 +0.005086,128 +0.005232,128 +0.005578,128 +0.005388,128 +0.005298,128 +0.005190,128 +0.005099,128 +0.005194,128 +0.005261,128 +0.005117,128 +0.005080,128 +0.005250,128 +0.005435,128 +0.005136,128 +0.005334,128 +0.005132,128 +0.005104,128 +0.005230,128 +0.005121,128 +0.005105,128 +0.005130,128 +0.005415,128 +0.005546,128 +0.005168,128 +0.005223,128 +0.005133,128 +0.005122,128 +0.005209,128 +0.005182,128 +0.005085,128 +0.005205,128 +0.005457,128 +0.005141,128 +0.005219,128 +0.005170,128 +0.005112,128 +0.005161,128 +0.005167,128 +0.005112,128 +0.005090,128 +0.005313,128 +0.005500,128 +0.005229,128 +0.005250,128 +0.005178,128 +0.005094,128 +0.005220,128 +0.005137,128 +0.005098,128 +0.005203,128 +0.005323,128 +0.005221,128 +0.005148,128 +0.005209,128 +0.005150,128 +0.005138,128 +0.005215,128 +0.005138,128 +0.005098,128 +0.005285,128 +0.005508,128 +0.005329,128 +0.005309,128 +0.005242,128 +0.005208,128 +0.005242,128 +0.005098,128 +0.005136,128 +0.005154,128 +0.005345,130 +0.005109,130 +0.005101,130 +0.005213,130 +0.005168,130 +0.005101,130 +0.005221,130 +0.005093,130 +0.005125,130 +0.005204,130 +0.005441,130 +0.005309,130 +0.005259,130 +0.005137,130 +0.005116,130 +0.005168,130 +0.005155,130 +0.005108,130 +0.005112,130 +0.005368,130 +0.005092,130 +0.005176,130 +0.005233,130 +0.005154,130 +0.005104,130 +0.005250,130 +0.005092,130 +0.005104,130 +0.005175,130 +0.005286,130 +0.005459,130 +0.005212,130 +0.005176,130 +0.005118,130 +0.005108,130 +0.005281,130 +0.005082,130 +0.005103,130 +0.005340,130 +0.005336,130 +0.005093,130 +0.005294,130 +0.005209,130 +0.005164,130 +0.005152,130 +0.005189,130 +0.005329,130 +0.005140,130 +0.005263,130 +0.005501,130 +0.005242,130 +0.005252,130 +0.005155,130 +0.005076,130 +0.005336,130 +0.005101,130 +0.005096,130 +0.005204,130 +0.005323,130 +0.005099,130 +0.005217,130 +0.005142,130 +0.005118,130 +0.005215,130 +0.005208,130 +0.005089,130 +0.005125,130 +0.005244,130 +0.005430,130 +0.005506,130 +0.005299,130 +0.005211,130 +0.005093,130 +0.005205,130 +0.005145,130 +0.005165,130 +0.005192,130 +0.005181,130 +0.005061,130 +0.005089,130 +0.005094,130 +0.005067,130 +0.005056,130 +0.005117,130 +0.005075,130 +0.005056,130 +0.005119,130 +0.005140,130 +0.005332,130 +0.005271,130 +0.005136,130 +0.005077,130 +0.005105,130 +0.005112,130 +0.005063,130 +0.005056,130 +0.005156,130 +0.005151,130 +0.005054,130 +0.005122,130 +0.005310,132 +0.005291,132 +0.005352,132 +0.005298,132 +0.005291,132 +0.005321,132 +0.005322,132 +0.005535,132 +0.005626,132 +0.005791,132 +0.005476,132 +0.005464,132 +0.005361,132 +0.005298,132 +0.005315,132 +0.005324,132 +0.005383,132 +0.005287,132 +0.005357,132 +0.005293,132 +0.005288,132 +0.005351,132 +0.005338,132 +0.005285,132 +0.005348,132 +0.005316,132 +0.005635,132 +0.005557,132 +0.005343,132 +0.005305,132 +0.005344,132 +0.005322,132 +0.005313,132 +0.005343,132 +0.005423,132 +0.005314,132 +0.005394,132 +0.005388,132 +0.005292,132 +0.005315,132 +0.005354,132 +0.005294,132 +0.005286,132 +0.005360,132 +0.005639,132 +0.005569,132 +0.006009,132 +0.005312,132 +0.005299,132 +0.005374,132 +0.005315,132 +0.005288,132 +0.005413,132 +0.005389,132 +0.005398,132 +0.005396,132 +0.005329,132 +0.005370,132 +0.005364,132 +0.005331,132 +0.005289,132 +0.005350,132 +0.005295,132 +0.005458,132 +0.005831,132 +0.005349,132 +0.005310,132 +0.005362,132 +0.005319,132 +0.005291,132 +0.005315,132 +0.005331,132 +0.005644,132 +0.005542,132 +0.005394,132 +0.005322,132 +0.005315,132 +0.005354,132 +0.005291,132 +0.005286,132 +0.005589,132 +0.005461,132 +0.005522,132 +0.005612,132 +0.005323,132 +0.005350,132 +0.005379,132 +0.005328,132 +0.005358,132 +0.005373,132 +0.005383,132 +0.005312,132 +0.005371,132 +0.005300,132 +0.005297,132 +0.005343,132 +0.005318,132 +0.005354,132 +0.005344,132 +0.005297,132 +0.005727,134 +0.006001,134 +0.005604,134 +0.005544,134 +0.005591,134 +0.005575,134 +0.005543,134 +0.005602,134 +0.005628,134 +0.005538,134 +0.005601,134 +0.005582,134 +0.005604,134 +0.005593,134 +0.005555,134 +0.005542,134 +0.005612,134 +0.005551,134 +0.005696,134 +0.005928,134 +0.005598,134 +0.005536,134 +0.005602,134 +0.005548,134 +0.005540,134 +0.005598,134 +0.005626,134 +0.005551,134 +0.005602,134 +0.005581,134 +0.005547,134 +0.005591,134 +0.005553,134 +0.005532,134 +0.005735,134 +0.006111,134 +0.006117,134 +0.006362,134 +0.006082,134 +0.006000,134 +0.006281,134 +0.006361,134 +0.006285,134 +0.006281,134 +0.005964,134 +0.006317,134 +0.005929,134 +0.006001,134 +0.006070,134 +0.006045,134 +0.006063,134 +0.006067,134 +0.006021,134 +0.006119,134 +0.006383,134 +0.006022,134 +0.006130,134 +0.006054,134 +0.006025,134 +0.006338,134 +0.006325,134 +0.006297,134 +0.006315,134 +0.005940,134 +0.006068,134 +0.006203,134 +0.006115,134 +0.006111,134 +0.006095,134 +0.006063,134 +0.006335,134 +0.006279,134 +0.006346,134 +0.006127,134 +0.006091,134 +0.006185,134 +0.006060,134 +0.005912,134 +0.006329,134 +0.006379,134 +0.006502,134 +0.006095,134 +0.005933,134 +0.006228,134 +0.005815,134 +0.005759,134 +0.005961,134 +0.005614,134 +0.005607,134 +0.005765,134 +0.005981,134 +0.005591,134 +0.005644,134 +0.005614,134 +0.005600,134 +0.005722,134 +0.005538,134 +0.005589,134 +0.005558,134 +0.005544,134 +0.005834,136 +0.005784,136 +0.005778,136 +0.006098,136 +0.006070,136 +0.005775,136 +0.005948,136 +0.006690,136 +0.005806,136 +0.006403,136 +0.006005,136 +0.006340,136 +0.006973,136 +0.006158,136 +0.006490,136 +0.006354,136 +0.005946,136 +0.006281,136 +0.006280,136 +0.006033,136 +0.006958,136 +0.005882,136 +0.006158,136 +0.006321,136 +0.005967,136 +0.006395,136 +0.006145,136 +0.005931,136 +0.006476,136 +0.006284,136 +0.006077,136 +0.006248,136 +0.006011,136 +0.006106,136 +0.006188,136 +0.005986,136 +0.006076,136 +0.006000,136 +0.005937,136 +0.005843,136 +0.005895,136 +0.005877,136 +0.005874,136 +0.005772,136 +0.005883,136 +0.005784,136 +0.005777,136 +0.005908,136 +0.005777,136 +0.005814,136 +0.005822,136 +0.005816,136 +0.005897,136 +0.006165,136 +0.005819,136 +0.005870,136 +0.005808,136 +0.005839,136 +0.005863,136 +0.005844,136 +0.005773,136 +0.005864,136 +0.005783,136 +0.005776,136 +0.005863,136 +0.005780,136 +0.005784,136 +0.005877,136 +0.005782,136 +0.005913,136 +0.006143,136 +0.005873,136 +0.005858,136 +0.005805,136 +0.005825,136 +0.005900,136 +0.005794,136 +0.005851,136 +0.005868,136 +0.005780,136 +0.005806,136 +0.005853,136 +0.005777,136 +0.005772,136 +0.005847,136 +0.005780,136 +0.005777,136 +0.006138,136 +0.005983,136 +0.005805,136 +0.005818,136 +0.005781,136 +0.005883,136 +0.005782,136 +0.005879,136 +0.005866,136 +0.005825,136 +0.005798,136 +0.005845,136 +0.005789,136 +0.006144,138 +0.006206,138 +0.006050,138 +0.006082,138 +0.006384,138 +0.006272,138 +0.006127,138 +0.006058,138 +0.006054,138 +0.006137,138 +0.006182,138 +0.006050,138 +0.006651,138 +0.006438,138 +0.006146,138 +0.006533,138 +0.006085,138 +0.006288,138 +0.006086,138 +0.006083,138 +0.006998,138 +0.006314,138 +0.006406,138 +0.006107,138 +0.006110,138 +0.006393,138 +0.006200,138 +0.006092,138 +0.006353,138 +0.006054,138 +0.006401,138 +0.006207,138 +0.006265,138 +0.006150,138 +0.006073,138 +0.006086,138 +0.006353,138 +0.006384,138 +0.006190,138 +0.006075,138 +0.006109,138 +0.006160,138 +0.006171,138 +0.006062,138 +0.006181,138 +0.006079,138 +0.006195,138 +0.006082,138 +0.006056,138 +0.006119,138 +0.006057,138 +0.006043,138 +0.006311,138 +0.006433,138 +0.006132,138 +0.006261,138 +0.006091,138 +0.006167,138 +0.006054,138 +0.006126,138 +0.006143,138 +0.006052,138 +0.006045,138 +0.006127,138 +0.006047,138 +0.006085,138 +0.006126,138 +0.006050,138 +0.006128,138 +0.006386,138 +0.006225,138 +0.006126,138 +0.006080,138 +0.006061,138 +0.006171,138 +0.006165,138 +0.006168,138 +0.006123,138 +0.006081,138 +0.006128,138 +0.006048,138 +0.006047,138 +0.006126,138 +0.006076,138 +0.006082,138 +0.006268,138 +0.006333,138 +0.006179,138 +0.006075,138 +0.006054,138 +0.006144,138 +0.006149,138 +0.006059,138 +0.006157,138 +0.006082,138 +0.006094,138 +0.006091,138 +0.006047,138 +0.006129,138 +0.006050,138 +0.006337,140 +0.006400,140 +0.006574,140 +0.006676,140 +0.006315,140 +0.006319,140 +0.006404,140 +0.006336,140 +0.006425,140 +0.006379,140 +0.006310,140 +0.006384,140 +0.006309,140 +0.006344,140 +0.006387,140 +0.006314,140 +0.006349,140 +0.006525,140 +0.006626,140 +0.006451,140 +0.006317,140 +0.006307,140 +0.006405,140 +0.006402,140 +0.006386,140 +0.006310,140 +0.006303,140 +0.006385,140 +0.006305,140 +0.006345,140 +0.006347,140 +0.006308,140 +0.006397,140 +0.006469,140 +0.006585,140 +0.006423,140 +0.006313,140 +0.006412,140 +0.006308,140 +0.006395,140 +0.006382,140 +0.006307,140 +0.006343,140 +0.006368,140 +0.006309,140 +0.006386,140 +0.006307,140 +0.006304,140 +0.006382,140 +0.006535,140 +0.006571,140 +0.006345,140 +0.006319,140 +0.006407,140 +0.006317,140 +0.006471,140 +0.006446,140 +0.006339,140 +0.006411,140 +0.006311,140 +0.006303,140 +0.006465,140 +0.006307,140 +0.006342,140 +0.006347,140 +0.006552,140 +0.006571,140 +0.006321,140 +0.006361,140 +0.006429,140 +0.006384,140 +0.006402,140 +0.006311,140 +0.006303,140 +0.006386,140 +0.006306,140 +0.006354,140 +0.006357,140 +0.006309,140 +0.006384,140 +0.006307,140 +0.006558,140 +0.006513,140 +0.006311,140 +0.006354,140 +0.006346,140 +0.006407,140 +0.006385,140 +0.006308,140 +0.006305,140 +0.006381,140 +0.006309,140 +0.006383,140 +0.006312,140 +0.006313,140 +0.006383,140 +0.006480,140 +0.006622,140 +0.006399,140 +0.006320,140 +0.006685,142 +0.006591,142 +0.006702,142 +0.006625,142 +0.006589,142 +0.006665,142 +0.006586,142 +0.006584,142 +0.006666,142 +0.006587,142 +0.006679,142 +0.006590,142 +0.006811,142 +0.006806,142 +0.006596,142 +0.006669,142 +0.006599,142 +0.006663,142 +0.006728,142 +0.006585,142 +0.007004,142 +0.007236,142 +0.007073,142 +0.007474,142 +0.006630,142 +0.006928,142 +0.006732,142 +0.007071,142 +0.006601,142 +0.006587,142 +0.006673,142 +0.006685,142 +0.006709,142 +0.006656,142 +0.006584,142 +0.006663,142 +0.006588,142 +0.006665,142 +0.006650,142 +0.006594,142 +0.006675,142 +0.006671,142 +0.007029,142 +0.006622,142 +0.006624,142 +0.006750,142 +0.007873,142 +0.006733,142 +0.006849,142 +0.006880,142 +0.006839,142 +0.006767,142 +0.006828,142 +0.006757,142 +0.006806,142 +0.006630,142 +0.006778,142 +0.007067,142 +0.006704,142 +0.006746,142 +0.006644,142 +0.006692,142 +0.006747,142 +0.006707,142 +0.006716,142 +0.006660,142 +0.006632,142 +0.006743,142 +0.007173,142 +0.006932,142 +0.006678,142 +0.006988,142 +0.006903,142 +0.006596,142 +0.006914,142 +0.006590,142 +0.007036,142 +0.006830,142 +0.006713,142 +0.006756,142 +0.006656,142 +0.006650,142 +0.006702,142 +0.006673,142 +0.006853,142 +0.006643,142 +0.006941,142 +0.006973,142 +0.006675,142 +0.006820,142 +0.006726,142 +0.006739,142 +0.006694,142 +0.006696,142 +0.006955,142 +0.006669,142 +0.006780,142 +0.006669,142 +0.006774,142 +0.006784,142 +0.006946,144 +0.007180,144 +0.007175,144 +0.006981,144 +0.007011,144 +0.006981,144 +0.007058,144 +0.006979,144 +0.007020,144 +0.006891,144 +0.006974,144 +0.007013,144 +0.007064,144 +0.007010,144 +0.006935,144 +0.007171,144 +0.007264,144 +0.006881,144 +0.007101,144 +0.007048,144 +0.007135,144 +0.006928,144 +0.006969,144 +0.006954,144 +0.006935,144 +0.007018,144 +0.007033,144 +0.007058,144 +0.006911,144 +0.006959,144 +0.007164,144 +0.007034,144 +0.007004,144 +0.006925,144 +0.007048,144 +0.006911,144 +0.006925,144 +0.006982,144 +0.007009,144 +0.006980,144 +0.007044,144 +0.006942,144 +0.007042,144 +0.007044,144 +0.007140,144 +0.007128,144 +0.006992,144 +0.006979,144 +0.006992,144 +0.007026,144 +0.006894,144 +0.006992,144 +0.006908,144 +0.006913,144 +0.007092,144 +0.006903,144 +0.007016,144 +0.006961,144 +0.007095,144 +0.007097,144 +0.007115,144 +0.007031,144 +0.006934,144 +0.007039,144 +0.006954,144 +0.007028,144 +0.006887,144 +0.006999,144 +0.007085,144 +0.006888,144 +0.007021,144 +0.006992,144 +0.007038,144 +0.007296,144 +0.007040,144 +0.007109,144 +0.006944,144 +0.007045,144 +0.006961,144 +0.006940,144 +0.006953,144 +0.006940,144 +0.007063,144 +0.006913,144 +0.007011,144 +0.006932,144 +0.006881,144 +0.007184,144 +0.007128,144 +0.007072,144 +0.006937,144 +0.007065,144 +0.006980,144 +0.006957,144 +0.007054,144 +0.006988,144 +0.007102,144 +0.006926,144 +0.006940,144 +0.007007,144 +0.007310,146 +0.007503,146 +0.007518,146 +0.007639,146 +0.007285,146 +0.007494,146 +0.007291,146 +0.007312,146 +0.007408,146 +0.007292,146 +0.007390,146 +0.007326,146 +0.007384,146 +0.007387,146 +0.007313,146 +0.007532,146 +0.007562,146 +0.007357,146 +0.007306,146 +0.007373,146 +0.007276,146 +0.007394,146 +0.007270,146 +0.007294,146 +0.007332,146 +0.007257,146 +0.007375,146 +0.007292,146 +0.007418,146 +0.007439,146 +0.007513,146 +0.007323,146 +0.007384,146 +0.007416,146 +0.007336,146 +0.007373,146 +0.007230,146 +0.007855,146 +0.007391,146 +0.007525,146 +0.007321,146 +0.007766,146 +0.007705,146 +0.008125,146 +0.007839,146 +0.008005,146 +0.008066,146 +0.007611,146 +0.007603,146 +0.007924,146 +0.007917,146 +0.008697,146 +0.007902,146 +0.008156,146 +0.007777,146 +0.007991,146 +0.007792,146 +0.007690,146 +0.008070,146 +0.007532,146 +0.007425,146 +0.007711,146 +0.007342,146 +0.007745,146 +0.007388,146 +0.007762,146 +0.007380,146 +0.007572,146 +0.008872,146 +0.007442,146 +0.007244,146 +0.007486,146 +0.007478,146 +0.007317,146 +0.007404,146 +0.007255,146 +0.007393,146 +0.007261,146 +0.007373,146 +0.007560,146 +0.007425,146 +0.008690,146 +0.007781,146 +0.007627,146 +0.007529,146 +0.007442,146 +0.007458,146 +0.007404,146 +0.007270,146 +0.007425,146 +0.007276,146 +0.007546,146 +0.007440,146 +0.007283,146 +0.007965,146 +0.008321,146 +0.007419,146 +0.007291,146 +0.007481,146 +0.007402,146 +0.007778,148 +0.007615,148 +0.007758,148 +0.007670,148 +0.007914,148 +0.007726,148 +0.007688,148 +0.008380,148 +0.008756,148 +0.007832,148 +0.007708,148 +0.007808,148 +0.007701,148 +0.007684,148 +0.007601,148 +0.007729,148 +0.007646,148 +0.010019,148 +0.010566,148 +0.008456,148 +0.008756,148 +0.008002,148 +0.007720,148 +0.008182,148 +0.007676,148 +0.007769,148 +0.007617,148 +0.007762,148 +0.007616,148 +0.007896,148 +0.007661,148 +0.008434,148 +0.007774,148 +0.007898,148 +0.007938,148 +0.007794,148 +0.007770,148 +0.007682,148 +0.007740,148 +0.007658,148 +0.007811,148 +0.007639,148 +0.007765,148 +0.008333,148 +0.007766,148 +0.007792,148 +0.008049,148 +0.007656,148 +0.007810,148 +0.007844,148 +0.007735,148 +0.007690,148 +0.007637,148 +0.007724,148 +0.007651,148 +0.007805,148 +0.007719,148 +0.007757,148 +0.007824,148 +0.008019,148 +0.007648,148 +0.007793,148 +0.007652,148 +0.007700,148 +0.007683,148 +0.007605,148 +0.007735,148 +0.007639,148 +0.007750,148 +0.007703,148 +0.007735,148 +0.007821,148 +0.008072,148 +0.007652,148 +0.007801,148 +0.007742,148 +0.007765,148 +0.007639,148 +0.008044,148 +0.008433,148 +0.007989,148 +0.008329,148 +0.008245,148 +0.008221,148 +0.008322,148 +0.008063,148 +0.007857,148 +0.007852,148 +0.007735,148 +0.008152,148 +0.008043,148 +0.008220,148 +0.007921,148 +0.008088,148 +0.008168,148 +0.008056,148 +0.008000,148 +0.008362,148 +0.007909,148 +0.009064,148 +0.008346,150 +0.008128,150 +0.007978,150 +0.007981,150 +0.007997,150 +0.008024,150 +0.008138,150 +0.008056,150 +0.008012,150 +0.008554,150 +0.007982,150 +0.008079,150 +0.008173,150 +0.008247,150 +0.007963,150 +0.007973,150 +0.007973,150 +0.007978,150 +0.007963,150 +0.007982,150 +0.007996,150 +0.008331,150 +0.008317,150 +0.008052,150 +0.008038,150 +0.007984,150 +0.008001,150 +0.008107,150 +0.007991,150 +0.007992,150 +0.008025,150 +0.007979,150 +0.008018,150 +0.008062,150 +0.008459,150 +0.008003,150 +0.008107,150 +0.008063,150 +0.007981,150 +0.007958,150 +0.008063,150 +0.007984,150 +0.008013,150 +0.007974,150 +0.008009,150 +0.008056,150 +0.008926,150 +0.008235,150 +0.008700,150 +0.008811,150 +0.008310,150 +0.008023,150 +0.008036,150 +0.007984,150 +0.008003,150 +0.008007,150 +0.008060,150 +0.007973,150 +0.008231,150 +0.008441,150 +0.008058,150 +0.008011,150 +0.007978,150 +0.008027,150 +0.007937,150 +0.008053,150 +0.007993,150 +0.008003,150 +0.008118,150 +0.008002,150 +0.007976,150 +0.008652,150 +0.008004,150 +0.008149,150 +0.008675,150 +0.008305,150 +0.008023,150 +0.008031,150 +0.007990,150 +0.007980,150 +0.007962,150 +0.008021,150 +0.007980,150 +0.008286,150 +0.008263,150 +0.008098,150 +0.008096,150 +0.008071,150 +0.007968,150 +0.007976,150 +0.007980,150 +0.008035,150 +0.007977,150 +0.008001,150 +0.007974,150 +0.008073,150 +0.008516,150 +0.007981,150 +0.008411,150 +0.008241,150 +0.008650,152 +0.008546,152 +0.008398,152 +0.008301,152 +0.008325,152 +0.008319,152 +0.008371,152 +0.008372,152 +0.008826,152 +0.008335,152 +0.008408,152 +0.008364,152 +0.008326,152 +0.008344,152 +0.008336,152 +0.008302,152 +0.008316,152 +0.008305,152 +0.008350,152 +0.008368,152 +0.008856,152 +0.008355,152 +0.008551,152 +0.008376,152 +0.008291,152 +0.008303,152 +0.008329,152 +0.008321,152 +0.008396,152 +0.008476,152 +0.008333,152 +0.008421,152 +0.009212,152 +0.008451,152 +0.008314,152 +0.008375,152 +0.008240,152 +0.008306,152 +0.008367,152 +0.008485,152 +0.008341,152 +0.008528,152 +0.008268,152 +0.008497,152 +0.008824,152 +0.008429,152 +0.008309,152 +0.008354,152 +0.008250,152 +0.008309,152 +0.008308,152 +0.008352,152 +0.008268,152 +0.008575,152 +0.008266,152 +0.008708,152 +0.008738,152 +0.008758,152 +0.008415,152 +0.008447,152 +0.008256,152 +0.008588,152 +0.008314,152 +0.008504,152 +0.008304,152 +0.008422,152 +0.008275,152 +0.008529,152 +0.008792,152 +0.008401,152 +0.008369,152 +0.008584,152 +0.008314,152 +0.008303,152 +0.008326,152 +0.008382,152 +0.008319,152 +0.008334,152 +0.008260,152 +0.008533,152 +0.008883,152 +0.008571,152 +0.008472,152 +0.008538,152 +0.008479,152 +0.008707,152 +0.008450,152 +0.008625,152 +0.008442,152 +0.008723,152 +0.009167,152 +0.009004,152 +0.009271,152 +0.009005,152 +0.010127,152 +0.010188,152 +0.011063,152 +0.009559,152 +0.009838,152 +0.009961,152 +0.009792,154 +0.009499,154 +0.009653,154 +0.009494,154 +0.009772,154 +0.009646,154 +0.009619,154 +0.009178,154 +0.009863,154 +0.009757,154 +0.009511,154 +0.009677,154 +0.009544,154 +0.009983,154 +0.009500,154 +0.009243,154 +0.009506,154 +0.009279,154 +0.009287,154 +0.009049,154 +0.008765,154 +0.008746,154 +0.008860,154 +0.008931,154 +0.008970,154 +0.008748,154 +0.008955,154 +0.009060,154 +0.009114,154 +0.009070,154 +0.009268,154 +0.009261,154 +0.009288,154 +0.009213,154 +0.009292,154 +0.009037,154 +0.009542,154 +0.009994,154 +0.009146,154 +0.009390,154 +0.009094,154 +0.008783,154 +0.008926,154 +0.008703,154 +0.008679,154 +0.009198,154 +0.008700,154 +0.008618,154 +0.008616,154 +0.008538,154 +0.008603,154 +0.008568,154 +0.008587,154 +0.008565,154 +0.008594,154 +0.008616,154 +0.008779,154 +0.008935,154 +0.008574,154 +0.008673,154 +0.008572,154 +0.008687,154 +0.008556,154 +0.008651,154 +0.008531,154 +0.008601,154 +0.008538,154 +0.008599,154 +0.009100,154 +0.008690,154 +0.008595,154 +0.008651,154 +0.008587,154 +0.008598,154 +0.008538,154 +0.008612,154 +0.008553,154 +0.008637,154 +0.008539,154 +0.008770,154 +0.010257,154 +0.008723,154 +0.008869,154 +0.008579,154 +0.008621,154 +0.008552,154 +0.008607,154 +0.008537,154 +0.008603,154 +0.008534,154 +0.008603,154 +0.008690,154 +0.009026,154 +0.008675,154 +0.009593,154 +0.008742,154 +0.008727,154 +0.008825,154 +0.008665,154 +0.008692,154 +0.008984,156 +0.008931,156 +0.011467,156 +0.011223,156 +0.009128,156 +0.008904,156 +0.008958,156 +0.008882,156 +0.008937,156 +0.009507,156 +0.010447,156 +0.009244,156 +0.009419,156 +0.009403,156 +0.009228,156 +0.009477,156 +0.009392,156 +0.009371,156 +0.009207,156 +0.009178,156 +0.009348,156 +0.009250,156 +0.009315,156 +0.009246,156 +0.009537,156 +0.009041,156 +0.009492,156 +0.009271,156 +0.009272,156 +0.009327,156 +0.009955,156 +0.011658,156 +0.009964,156 +0.011695,156 +0.012714,156 +0.011539,156 +0.010104,156 +0.011475,156 +0.009902,156 +0.009919,156 +0.011891,156 +0.011584,156 +0.010316,156 +0.010424,156 +0.009976,156 +0.011155,156 +0.009782,156 +0.010686,156 +0.013995,156 +0.011084,156 +0.009411,156 +0.010324,156 +0.015872,156 +0.011228,156 +0.009864,156 +0.010520,156 +0.009239,156 +0.010670,156 +0.009977,156 +0.009525,156 +0.009844,156 +0.009151,156 +0.009747,156 +0.009790,156 +0.009815,156 +0.010218,156 +0.010520,156 +0.012190,156 +0.015521,156 +0.009509,156 +0.009140,156 +0.012884,156 +0.009942,156 +0.009681,156 +0.009923,156 +0.009139,156 +0.009531,156 +0.008975,156 +0.009821,156 +0.009291,156 +0.010210,156 +0.009505,156 +0.010075,156 +0.009369,156 +0.008945,156 +0.010025,156 +0.009424,156 +0.009071,156 +0.009673,156 +0.009162,156 +0.009764,156 +0.009041,156 +0.011949,156 +0.009617,156 +0.009074,156 +0.009598,156 +0.009052,156 +0.009570,156 +0.009098,156 +0.010041,156 +0.009708,158 +0.010064,158 +0.009928,158 +0.009806,158 +0.010372,158 +0.009740,158 +0.010422,158 +0.009990,158 +0.012470,158 +0.011446,158 +0.011016,158 +0.013338,158 +0.014195,158 +0.011668,158 +0.011490,158 +0.012130,158 +0.019081,158 +0.015487,158 +0.009681,158 +0.012794,158 +0.010850,158 +0.011093,158 +0.010817,158 +0.011067,158 +0.010525,158 +0.012347,158 +0.013523,158 +0.015113,158 +0.011413,158 +0.011253,158 +0.010759,158 +0.015331,158 +0.016442,158 +0.015369,158 +0.018370,158 +0.018265,158 +0.011872,158 +0.009907,158 +0.011238,158 +0.010150,158 +0.010105,158 +0.010182,158 +0.010156,158 +0.010646,158 +0.010022,158 +0.011163,158 +0.011613,158 +0.012204,158 +0.010184,158 +0.010941,158 +0.009729,158 +0.010241,158 +0.011784,158 +0.012669,158 +0.010926,158 +0.010744,158 +0.009868,158 +0.010450,158 +0.010083,158 +0.009632,158 +0.011187,158 +0.010271,158 +0.010291,158 +0.010722,158 +0.010145,158 +0.010388,158 +0.010175,158 +0.009634,158 +0.010690,158 +0.010194,158 +0.010933,158 +0.010413,158 +0.010111,158 +0.009954,158 +0.009935,158 +0.009513,158 +0.010208,158 +0.009461,158 +0.010033,158 +0.009768,158 +0.009675,158 +0.009992,158 +0.015378,158 +0.009805,158 +0.009962,158 +0.009615,158 +0.009814,158 +0.009782,158 +0.009562,158 +0.009641,158 +0.009396,158 +0.009651,158 +0.009703,158 +0.009545,158 +0.009404,158 +0.009308,158 +0.009399,158 +0.009599,158 +0.009542,158 +0.009624,158 +0.009764,160 +0.009766,160 +0.010419,160 +0.009815,160 +0.009659,160 +0.009766,160 +0.009896,160 +0.009800,160 +0.009621,160 +0.009634,160 +0.009769,160 +0.009709,160 +0.010182,160 +0.010103,160 +0.009729,160 +0.016327,160 +0.018110,160 +0.009952,160 +0.009734,160 +0.009748,160 +0.009848,160 +0.010281,160 +0.009908,160 +0.009824,160 +0.009719,160 +0.009832,160 +0.009633,160 +0.009759,160 +0.009556,160 +0.009787,160 +0.009659,160 +0.010176,160 +0.010140,160 +0.009638,160 +0.010102,160 +0.009776,160 +0.009687,160 +0.009705,160 +0.009597,160 +0.009634,160 +0.009557,160 +0.009941,160 +0.015949,160 +0.018097,160 +0.018372,160 +0.017274,160 +0.017383,160 +0.017845,160 +0.017787,160 +0.017123,160 +0.009852,160 +0.009752,160 +0.009764,160 +0.009808,160 +0.009696,160 +0.009943,160 +0.010198,160 +0.009885,160 +0.009826,160 +0.009636,160 +0.009895,160 +0.009603,160 +0.012460,160 +0.009786,160 +0.009703,160 +0.009974,160 +0.010484,160 +0.009772,160 +0.009750,160 +0.009698,160 +0.009840,160 +0.009727,160 +0.009810,160 +0.009745,160 +0.009768,160 +0.009757,160 +0.012811,160 +0.009725,160 +0.009802,160 +0.009732,160 +0.009781,160 +0.009819,160 +0.009776,160 +0.009768,160 +0.009759,160 +0.009821,160 +0.011373,160 +0.009787,160 +0.009738,160 +0.009744,160 +0.009732,160 +0.009770,160 +0.009758,160 +0.009691,160 +0.009695,160 +0.009737,160 +0.011340,160 +0.009818,160 +0.009742,160 +0.009665,160 +0.010148,162 +0.010251,162 +0.010111,162 +0.010181,162 +0.010023,162 +0.010160,162 +0.011832,162 +0.010147,162 +0.010344,162 +0.009981,162 +0.010106,162 +0.010133,162 +0.010074,162 +0.010133,162 +0.010118,162 +0.010709,162 +0.011354,162 +0.010097,162 +0.010123,162 +0.010064,162 +0.010051,162 +0.010191,162 +0.009993,162 +0.010145,162 +0.010079,162 +0.011254,162 +0.010817,162 +0.010116,162 +0.010152,162 +0.010225,162 +0.010111,162 +0.010227,162 +0.010041,162 +0.010084,162 +0.010101,162 +0.011673,162 +0.010321,162 +0.010229,162 +0.010453,162 +0.010441,162 +0.010382,162 +0.010084,162 +0.010164,162 +0.010015,162 +0.010080,162 +0.011790,162 +0.010053,162 +0.010139,162 +0.010015,162 +0.010101,162 +0.010225,162 +0.009966,162 +0.010188,162 +0.010130,162 +0.010811,162 +0.011149,162 +0.010074,162 +0.010151,162 +0.010192,162 +0.009983,162 +0.010172,162 +0.010086,162 +0.010313,162 +0.010065,162 +0.011288,162 +0.010595,162 +0.010108,162 +0.010117,162 +0.010081,162 +0.010025,162 +0.010051,162 +0.010062,162 +0.009960,162 +0.010127,162 +0.012434,162 +0.010552,162 +0.010108,162 +0.010048,162 +0.010067,162 +0.010161,162 +0.010022,162 +0.010066,162 +0.009953,162 +0.010138,162 +0.011683,162 +0.010006,162 +0.010122,162 +0.010041,162 +0.010038,162 +0.010052,162 +0.009980,162 +0.010051,162 +0.010021,162 +0.010381,162 +0.011370,162 +0.010045,162 +0.010075,162 +0.010103,162 +0.010161,162 +0.010138,162 +0.010413,164 +0.010478,164 +0.010468,164 +0.011700,164 +0.011035,164 +0.010514,164 +0.010441,164 +0.010456,164 +0.010483,164 +0.010397,164 +0.010585,164 +0.010424,164 +0.010495,164 +0.012097,164 +0.010512,164 +0.010464,164 +0.010491,164 +0.010400,164 +0.010487,164 +0.010544,164 +0.010423,164 +0.010437,164 +0.012053,164 +0.010544,164 +0.010522,164 +0.010433,164 +0.010460,164 +0.010495,164 +0.010396,164 +0.010457,164 +0.010480,164 +0.010995,164 +0.011689,164 +0.010565,164 +0.010388,164 +0.010465,164 +0.010401,164 +0.010423,164 +0.010470,164 +0.010378,164 +0.010484,164 +0.012143,164 +0.010831,164 +0.010480,164 +0.010462,164 +0.010407,164 +0.010435,164 +0.010439,164 +0.010430,164 +0.010510,164 +0.011330,164 +0.011362,164 +0.010723,164 +0.010432,164 +0.010464,164 +0.010741,164 +0.010533,164 +0.010585,164 +0.010826,164 +0.010397,164 +0.011904,164 +0.010379,164 +0.010397,164 +0.010446,164 +0.010295,164 +0.010390,164 +0.010363,164 +0.010311,164 +0.010359,164 +0.012203,164 +0.011248,164 +0.010458,164 +0.010732,164 +0.010783,164 +0.010587,164 +0.010392,164 +0.010336,164 +0.010346,164 +0.010453,164 +0.011919,164 +0.010390,164 +0.010326,164 +0.010369,164 +0.010723,164 +0.010331,164 +0.010576,164 +0.010334,164 +0.010446,164 +0.011779,164 +0.010543,164 +0.010437,164 +0.010399,164 +0.010404,164 +0.010340,164 +0.010328,164 +0.010594,164 +0.010360,164 +0.010354,164 +0.012024,164 +0.010405,164 +0.010744,166 +0.010745,166 +0.010723,166 +0.010712,166 +0.010866,166 +0.010727,166 +0.010759,166 +0.012288,166 +0.010952,166 +0.010841,166 +0.010858,166 +0.010729,166 +0.010668,166 +0.010714,166 +0.010732,166 +0.010707,166 +0.012446,166 +0.010702,166 +0.010806,166 +0.010861,166 +0.010752,166 +0.010744,166 +0.010715,166 +0.010670,166 +0.010739,166 +0.011991,166 +0.010997,166 +0.010792,166 +0.010768,166 +0.010704,166 +0.010760,166 +0.010717,166 +0.010701,166 +0.010783,166 +0.011691,166 +0.011293,166 +0.010739,166 +0.010756,166 +0.010708,166 +0.010774,166 +0.010693,166 +0.010799,166 +0.010777,166 +0.010820,166 +0.012218,166 +0.010780,166 +0.010711,166 +0.010703,166 +0.010750,166 +0.010693,166 +0.012657,166 +0.010827,166 +0.011021,166 +0.012073,166 +0.010826,166 +0.010750,166 +0.010721,166 +0.010735,166 +0.010689,166 +0.010798,166 +0.010740,166 +0.010746,166 +0.013313,166 +0.010825,166 +0.010754,166 +0.010796,166 +0.010818,166 +0.010668,166 +0.010738,166 +0.010805,166 +0.010845,166 +0.012153,166 +0.010795,166 +0.010743,166 +0.010758,166 +0.010742,166 +0.010670,166 +0.010774,166 +0.010884,166 +0.010697,166 +0.012186,166 +0.010813,166 +0.010782,166 +0.010716,166 +0.010772,166 +0.010932,166 +0.010732,166 +0.010799,166 +0.010905,166 +0.012334,166 +0.011287,166 +0.010728,166 +0.010781,166 +0.010719,166 +0.010703,166 +0.010891,166 +0.010675,166 +0.010746,166 +0.011915,166 +0.011197,166 +0.011188,168 +0.011176,168 +0.011134,168 +0.011091,168 +0.011122,168 +0.011091,168 +0.011333,168 +0.012676,168 +0.011323,168 +0.011132,168 +0.011158,168 +0.011182,168 +0.011040,168 +0.011103,168 +0.011119,168 +0.011032,168 +0.012494,168 +0.011247,168 +0.011090,168 +0.011127,168 +0.011116,168 +0.011033,168 +0.011132,168 +0.011111,168 +0.011323,168 +0.012560,168 +0.011198,168 +0.011052,168 +0.011112,168 +0.011170,168 +0.011056,168 +0.011182,168 +0.011106,168 +0.011096,168 +0.012608,168 +0.011202,168 +0.011168,168 +0.011096,168 +0.011665,168 +0.011273,168 +0.011239,168 +0.011162,168 +0.011810,168 +0.013018,168 +0.011296,168 +0.013346,168 +0.011301,168 +0.011328,168 +0.011371,168 +0.011118,168 +0.011642,168 +0.013363,168 +0.012294,168 +0.011239,168 +0.011365,168 +0.011286,168 +0.011206,168 +0.011182,168 +0.011193,168 +0.011358,168 +0.012980,168 +0.011323,168 +0.011290,168 +0.011096,168 +0.011324,168 +0.011231,168 +0.011120,168 +0.011345,168 +0.011328,168 +0.013012,168 +0.011295,168 +0.011217,168 +0.011203,168 +0.011287,168 +0.011296,168 +0.011253,168 +0.011104,168 +0.012233,168 +0.012366,168 +0.011131,168 +0.011286,168 +0.011339,168 +0.011209,168 +0.011334,168 +0.011235,168 +0.011186,168 +0.012163,168 +0.011562,168 +0.011245,168 +0.011236,168 +0.011327,168 +0.011180,168 +0.011227,168 +0.011246,168 +0.011389,168 +0.011467,168 +0.011451,168 +0.011252,168 +0.011184,168 +0.011440,168 +0.011803,170 +0.011633,170 +0.011754,170 +0.011733,170 +0.012118,170 +0.011671,170 +0.011704,170 +0.011708,170 +0.011543,170 +0.011757,170 +0.011879,170 +0.012707,170 +0.012234,170 +0.012154,170 +0.012029,170 +0.011819,170 +0.011794,170 +0.011707,170 +0.011739,170 +0.011616,170 +0.011782,170 +0.011894,170 +0.011620,170 +0.011676,170 +0.011737,170 +0.011665,170 +0.013483,170 +0.011864,170 +0.011862,170 +0.011783,170 +0.011887,170 +0.011690,170 +0.011598,170 +0.011614,170 +0.011786,170 +0.011668,170 +0.011574,170 +0.011753,170 +0.012154,170 +0.011741,170 +0.011661,170 +0.011731,170 +0.011587,170 +0.011728,170 +0.011885,170 +0.012014,170 +0.011749,170 +0.012165,170 +0.011731,170 +0.011691,170 +0.011632,170 +0.011787,170 +0.011654,170 +0.011534,170 +0.011671,170 +0.012229,170 +0.011720,170 +0.011710,170 +0.011681,170 +0.011628,170 +0.011850,170 +0.012076,170 +0.012006,170 +0.011998,170 +0.012166,170 +0.011650,170 +0.011619,170 +0.013339,170 +0.011921,170 +0.011944,170 +0.011613,170 +0.012039,170 +0.012333,170 +0.011874,170 +0.011528,170 +0.011718,170 +0.012276,170 +0.011680,170 +0.011720,170 +0.011750,170 +0.011871,170 +0.011891,170 +0.011765,170 +0.011748,170 +0.012251,170 +0.012336,170 +0.011824,170 +0.011639,170 +0.011552,170 +0.012302,170 +0.011869,170 +0.011699,170 +0.011653,170 +0.011691,170 +0.011702,170 +0.011613,170 +0.011693,170 +0.011867,170 +0.011884,170 +0.011810,170 +0.012074,172 +0.011974,172 +0.012033,172 +0.012139,172 +0.012091,172 +0.012195,172 +0.012515,172 +0.012144,172 +0.012095,172 +0.011989,172 +0.012052,172 +0.012197,172 +0.011944,172 +0.012017,172 +0.012634,172 +0.012185,172 +0.012032,172 +0.011984,172 +0.011944,172 +0.011948,172 +0.012013,172 +0.012059,172 +0.012414,172 +0.012556,172 +0.012083,172 +0.012123,172 +0.012035,172 +0.011958,172 +0.012100,172 +0.012146,172 +0.012187,172 +0.012415,172 +0.012021,172 +0.012361,172 +0.012271,172 +0.012159,172 +0.012322,172 +0.012592,172 +0.012602,172 +0.017974,172 +0.012685,172 +0.012590,172 +0.012584,172 +0.013232,172 +0.012474,172 +0.013220,172 +0.012502,172 +0.013119,172 +0.014392,172 +0.013448,172 +0.013295,172 +0.012219,172 +0.013097,172 +0.012303,172 +0.012687,172 +0.012114,172 +0.012033,172 +0.012130,172 +0.012114,172 +0.012187,172 +0.012298,172 +0.012147,172 +0.013105,172 +0.012013,172 +0.012057,172 +0.011979,172 +0.011942,172 +0.011856,172 +0.011861,172 +0.011924,172 +0.012072,172 +0.012259,172 +0.011844,172 +0.011881,172 +0.011843,172 +0.011926,172 +0.011862,172 +0.012586,172 +0.012893,172 +0.012599,172 +0.012343,172 +0.012339,172 +0.012494,172 +0.013816,172 +0.013387,172 +0.012774,172 +0.012310,172 +0.012798,172 +0.012672,172 +0.012516,172 +0.013154,172 +0.013189,172 +0.013596,172 +0.013207,172 +0.012189,172 +0.012599,172 +0.012129,172 +0.011997,172 +0.011920,172 +0.011909,172 +0.012384,174 +0.012414,174 +0.012323,174 +0.012920,174 +0.012416,174 +0.012512,174 +0.012308,174 +0.012340,174 +0.012355,174 +0.012403,174 +0.012300,174 +0.012744,174 +0.012276,174 +0.012355,174 +0.012279,174 +0.012386,174 +0.012333,174 +0.012360,174 +0.012270,174 +0.012730,174 +0.012328,174 +0.012354,174 +0.012453,174 +0.012383,174 +0.012623,174 +0.012689,174 +0.012315,174 +0.012723,174 +0.012302,174 +0.012564,174 +0.012282,174 +0.012302,174 +0.012277,174 +0.012412,174 +0.012272,174 +0.012768,174 +0.012377,174 +0.012371,174 +0.012361,174 +0.013034,174 +0.012987,174 +0.012628,174 +0.013998,174 +0.013698,174 +0.014008,174 +0.013889,174 +0.013980,174 +0.013791,174 +0.013426,174 +0.013223,174 +0.013151,174 +0.013028,174 +0.012541,174 +0.012331,174 +0.012293,174 +0.012333,174 +0.012407,174 +0.012313,174 +0.012564,174 +0.012576,174 +0.012471,174 +0.012335,174 +0.012304,174 +0.012388,174 +0.012524,174 +0.012404,174 +0.012559,174 +0.012668,174 +0.012388,174 +0.012343,174 +0.012292,174 +0.012377,174 +0.012352,174 +0.012424,174 +0.012519,174 +0.012774,174 +0.012341,174 +0.012310,174 +0.012281,174 +0.012314,174 +0.012306,174 +0.012409,174 +0.012421,174 +0.012911,174 +0.012366,174 +0.012398,174 +0.012284,174 +0.012317,174 +0.012333,174 +0.012430,174 +0.012790,174 +0.012808,174 +0.012425,174 +0.012461,174 +0.012323,174 +0.012311,174 +0.012329,174 +0.012341,174 +0.012318,174 +0.012892,174 +0.012960,176 +0.012683,176 +0.012958,176 +0.012756,176 +0.012903,176 +0.015272,176 +0.013608,176 +0.013179,176 +0.012783,176 +0.012762,176 +0.012756,176 +0.013141,176 +0.012996,176 +0.012790,176 +0.013298,176 +0.012712,176 +0.012703,176 +0.012714,176 +0.012706,176 +0.012737,176 +0.012772,176 +0.012755,176 +0.013546,176 +0.013366,176 +0.013516,176 +0.012994,176 +0.012751,176 +0.013049,176 +0.013413,176 +0.012935,176 +0.013297,176 +0.012956,176 +0.012993,176 +0.012823,176 +0.012865,176 +0.012933,176 +0.012857,176 +0.013186,176 +0.013147,176 +0.012913,176 +0.012906,176 +0.012921,176 +0.013084,176 +0.012999,176 +0.012901,176 +0.013274,176 +0.013093,176 +0.013013,176 +0.013214,176 +0.013072,176 +0.013100,176 +0.012980,176 +0.012936,176 +0.013306,176 +0.012931,176 +0.012915,176 +0.012792,176 +0.012953,176 +0.013011,176 +0.012916,176 +0.013064,176 +0.013292,176 +0.013001,176 +0.012893,176 +0.013025,176 +0.015394,176 +0.012886,176 +0.013035,176 +0.013505,176 +0.012926,176 +0.012864,176 +0.012822,176 +0.012955,176 +0.013117,176 +0.013025,176 +0.012799,176 +0.013449,176 +0.012980,176 +0.012970,176 +0.013047,176 +0.013065,176 +0.014701,176 +0.014472,176 +0.013191,176 +0.012983,176 +0.012964,176 +0.012861,176 +0.012866,176 +0.012829,176 +0.012984,176 +0.012747,176 +0.013213,176 +0.012899,176 +0.013713,176 +0.024383,176 +0.023947,176 +0.023787,176 +0.024533,176 +0.020622,176 +0.012850,176 +0.013423,178 +0.013214,178 +0.013369,178 +0.013415,178 +0.013215,178 +0.013210,178 +0.013217,178 +0.013262,178 +0.013397,178 +0.013134,178 +0.013471,178 +0.013426,178 +0.013207,178 +0.013239,178 +0.013152,178 +0.013520,178 +0.013238,178 +0.013340,178 +0.013517,178 +0.013335,178 +0.013132,178 +0.013216,178 +0.013238,178 +0.013494,178 +0.013076,178 +0.013547,178 +0.013249,178 +0.013361,178 +0.013213,178 +0.013097,178 +0.013363,178 +0.013336,178 +0.013284,178 +0.013659,178 +0.013276,178 +0.013364,178 +0.013297,178 +0.013291,178 +0.013249,178 +0.013256,178 +0.013445,178 +0.013561,178 +0.013437,178 +0.013181,178 +0.013125,178 +0.013279,178 +0.013336,178 +0.013215,178 +0.014821,178 +0.013188,178 +0.013328,178 +0.013293,178 +0.013606,178 +0.013379,178 +0.013260,178 +0.014431,178 +0.013638,178 +0.013395,178 +0.013212,178 +0.013191,178 +0.013361,178 +0.013519,178 +0.013701,178 +0.014332,178 +0.013212,178 +0.013294,178 +0.013222,178 +0.013290,178 +0.013266,178 +0.013418,178 +0.014835,178 +0.013408,178 +0.013361,178 +0.013201,178 +0.013219,178 +0.013530,178 +0.013478,178 +0.014482,178 +0.014100,178 +0.013266,178 +0.013233,178 +0.013167,178 +0.013363,178 +0.013241,178 +0.013262,178 +0.014768,178 +0.013224,178 +0.013219,178 +0.013202,178 +0.013827,178 +0.013347,178 +0.013195,178 +0.014322,178 +0.013850,178 +0.013280,178 +0.013235,178 +0.013249,178 +0.013219,178 +0.013212,178 +0.013230,178 +0.015233,180 +0.013626,180 +0.013766,180 +0.013514,180 +0.013690,180 +0.013639,180 +0.013634,180 +0.016223,180 +0.014035,180 +0.013553,180 +0.013603,180 +0.013822,180 +0.013851,180 +0.013732,180 +0.015221,180 +0.013563,180 +0.013429,180 +0.013443,180 +0.013436,180 +0.013512,180 +0.013390,180 +0.014203,180 +0.014348,180 +0.013512,180 +0.013476,180 +0.013443,180 +0.013712,180 +0.013452,180 +0.013452,180 +0.015234,180 +0.013533,180 +0.013496,180 +0.013369,180 +0.013502,180 +0.013443,180 +0.013460,180 +0.014897,180 +0.013679,180 +0.013442,180 +0.013460,180 +0.013442,180 +0.013522,180 +0.013461,180 +0.013933,180 +0.014692,180 +0.013510,180 +0.013534,180 +0.013457,180 +0.013455,180 +0.013410,180 +0.013439,180 +0.015126,180 +0.013476,180 +0.013476,180 +0.013371,180 +0.013891,180 +0.013455,180 +0.013458,180 +0.014949,180 +0.013609,180 +0.013448,180 +0.013444,180 +0.013600,180 +0.013514,180 +0.013525,180 +0.013936,180 +0.014586,180 +0.013585,180 +0.013459,180 +0.013418,180 +0.013584,180 +0.013392,180 +0.013459,180 +0.015049,180 +0.013426,180 +0.013406,180 +0.013403,180 +0.013465,180 +0.013494,180 +0.013467,180 +0.015478,180 +0.014293,180 +0.013425,180 +0.013365,180 +0.013495,180 +0.013476,180 +0.013442,180 +0.013944,180 +0.014480,180 +0.013447,180 +0.013480,180 +0.013425,180 +0.013722,180 +0.013414,180 +0.013474,180 +0.015276,180 +0.013472,180 +0.013435,180 +0.013424,180 +0.013643,180 +0.013902,182 +0.013907,182 +0.015443,182 +0.014029,182 +0.013959,182 +0.013974,182 +0.014015,182 +0.013872,182 +0.013870,182 +0.015263,182 +0.014036,182 +0.013872,182 +0.013946,182 +0.013903,182 +0.014017,182 +0.013900,182 +0.015056,182 +0.017820,182 +0.014901,182 +0.013865,182 +0.013997,182 +0.013866,182 +0.014549,182 +0.019217,182 +0.013981,182 +0.013916,182 +0.013907,182 +0.013986,182 +0.013927,182 +0.013883,182 +0.019150,182 +0.013907,182 +0.013926,182 +0.013915,182 +0.013980,182 +0.013910,182 +0.013977,182 +0.020017,182 +0.014346,182 +0.013972,182 +0.013997,182 +0.013899,182 +0.013899,182 +0.014963,182 +0.018291,182 +0.013958,182 +0.013986,182 +0.013974,182 +0.013918,182 +0.013935,182 +0.016002,182 +0.017890,182 +0.014267,182 +0.014013,182 +0.014023,182 +0.013904,182 +0.013822,182 +0.019177,182 +0.014132,182 +0.013980,182 +0.014011,182 +0.014188,182 +0.013923,182 +0.013921,182 +0.020269,182 +0.014097,182 +0.014227,182 +0.014711,182 +0.014058,182 +0.013927,182 +0.014158,182 +0.019033,182 +0.013974,182 +0.013980,182 +0.013983,182 +0.013825,182 +0.013902,182 +0.016214,182 +0.017030,182 +0.013948,182 +0.013924,182 +0.014053,182 +0.013955,182 +0.013969,182 +0.018330,182 +0.014625,182 +0.013950,182 +0.013899,182 +0.013992,182 +0.013903,182 +0.013896,182 +0.019139,182 +0.014123,182 +0.013892,182 +0.014028,182 +0.013953,182 +0.013911,182 +0.013905,182 +0.019032,182 +0.013962,182 +0.014479,184 +0.014455,184 +0.014369,184 +0.014412,184 +0.014929,184 +0.019210,184 +0.014443,184 +0.014334,184 +0.014386,184 +0.014356,184 +0.014315,184 +0.019437,184 +0.014461,184 +0.014292,184 +0.014367,184 +0.014483,184 +0.014369,184 +0.014329,184 +0.020059,184 +0.014497,184 +0.014341,184 +0.014386,184 +0.014289,184 +0.014306,184 +0.016362,184 +0.017521,184 +0.014389,184 +0.014344,184 +0.014387,184 +0.014368,184 +0.014352,184 +0.019472,184 +0.014474,184 +0.014347,184 +0.015075,184 +0.014360,184 +0.014348,184 +0.014399,184 +0.019423,184 +0.014507,184 +0.014438,184 +0.014416,184 +0.014332,184 +0.015185,184 +0.019410,184 +0.016408,184 +0.015864,184 +0.015536,184 +0.014972,184 +0.015582,184 +0.027270,184 +0.018104,184 +0.015220,184 +0.016124,184 +0.014965,184 +0.014821,184 +0.014793,184 +0.014504,184 +0.014466,184 +0.014458,184 +0.014914,184 +0.014509,184 +0.014484,184 +0.014877,184 +0.014463,184 +0.014389,184 +0.014486,184 +0.014340,184 +0.014570,184 +0.014492,184 +0.014879,184 +0.014335,184 +0.014371,184 +0.014412,184 +0.014258,184 +0.015139,184 +0.014796,184 +0.015086,184 +0.015209,184 +0.014670,184 +0.014514,184 +0.014402,184 +0.014345,184 +0.014389,184 +0.015136,184 +0.014319,184 +0.014330,184 +0.014358,184 +0.014303,184 +0.014298,184 +0.014372,184 +0.014798,184 +0.014356,184 +0.014343,184 +0.014388,184 +0.014325,184 +0.014326,184 +0.014415,184 +0.014743,184 +0.014389,184 +0.015259,186 +0.015109,186 +0.014963,186 +0.015024,186 +0.015551,186 +0.015172,186 +0.015104,186 +0.015000,186 +0.014967,186 +0.014994,186 +0.015068,186 +0.025382,186 +0.029037,186 +0.015744,186 +0.022137,186 +0.015311,186 +0.015295,186 +0.014945,186 +0.014972,186 +0.015185,186 +0.015195,186 +0.014981,186 +0.015459,186 +0.014972,186 +0.014958,186 +0.015054,186 +0.014974,186 +0.014953,186 +0.014940,186 +0.015495,186 +0.015012,186 +0.015054,186 +0.015140,186 +0.015008,186 +0.015085,186 +0.015402,186 +0.015411,186 +0.015059,186 +0.015014,186 +0.015397,186 +0.015012,186 +0.014989,186 +0.015490,186 +0.015117,186 +0.015029,186 +0.015152,186 +0.015804,186 +0.014965,186 +0.015016,186 +0.015574,186 +0.014951,186 +0.014957,186 +0.015062,186 +0.015000,186 +0.015073,186 +0.015221,186 +0.015300,186 +0.014961,186 +0.015027,186 +0.014961,186 +0.014952,186 +0.014975,186 +0.015491,186 +0.015028,186 +0.015032,186 +0.015069,186 +0.014967,186 +0.014969,186 +0.015113,186 +0.015516,186 +0.014974,186 +0.014906,186 +0.015022,186 +0.014984,186 +0.014992,186 +0.015205,186 +0.015358,186 +0.014973,186 +0.015069,186 +0.015046,186 +0.014976,186 +0.015026,186 +0.015461,186 +0.014995,186 +0.014958,186 +0.015029,186 +0.015035,186 +0.014989,186 +0.014946,186 +0.015537,186 +0.018234,186 +0.016711,186 +0.015068,186 +0.015017,186 +0.015000,186 +0.015504,186 +0.014981,186 +0.015016,186 +0.015108,186 +0.015070,186 +0.015702,188 +0.015573,188 +0.016011,188 +0.015475,188 +0.015665,188 +0.015472,188 +0.015559,188 +0.015475,188 +0.015965,188 +0.015482,188 +0.015496,188 +0.015608,188 +0.015600,188 +0.015478,188 +0.015600,188 +0.016119,188 +0.015570,188 +0.015585,188 +0.015472,188 +0.015473,188 +0.015478,188 +0.016057,188 +0.015521,188 +0.015449,188 +0.015591,188 +0.015474,188 +0.015849,188 +0.021293,188 +0.029933,188 +0.029273,188 +0.029209,188 +0.029517,188 +0.029054,188 +0.029225,188 +0.029937,188 +0.029164,188 +0.028743,188 +0.028933,188 +0.029663,188 +0.028790,188 +0.029312,188 +0.029178,188 +0.029934,188 +0.029684,188 +0.029071,188 +0.029666,188 +0.029133,188 +0.029237,188 +0.029800,188 +0.029108,188 +0.029052,188 +0.029270,188 +0.029256,188 +0.029173,188 +0.029406,188 +0.029462,188 +0.029302,188 +0.029582,188 +0.032099,188 +0.029381,188 +0.029352,188 +0.030201,188 +0.025227,188 +0.017845,188 +0.016191,188 +0.016249,188 +0.016641,188 +0.017521,188 +0.016085,188 +0.016326,188 +0.016309,188 +0.016209,188 +0.016283,188 +0.021234,188 +0.015879,188 +0.015915,188 +0.015630,188 +0.015712,188 +0.015935,188 +0.020878,188 +0.016506,188 +0.015879,188 +0.015805,188 +0.015917,188 +0.015749,188 +0.020783,188 +0.015975,188 +0.015752,188 +0.015739,188 +0.015889,188 +0.015739,188 +0.020795,188 +0.015937,188 +0.015899,188 +0.015682,188 +0.017630,188 +0.015786,188 +0.016189,188 +0.015989,188 +0.015832,188 +0.016330,190 +0.016433,190 +0.016326,190 +0.016356,190 +0.016731,190 +0.016684,190 +0.016410,190 +0.016675,190 +0.016609,190 +0.016545,190 +0.016663,190 +0.016281,190 +0.016178,190 +0.016171,190 +0.016348,190 +0.016273,190 +0.016541,190 +0.016366,190 +0.016309,190 +0.016257,190 +0.016565,190 +0.016389,190 +0.016721,190 +0.016352,190 +0.016311,190 +0.016366,190 +0.016356,190 +0.016395,190 +0.016891,190 +0.016458,190 +0.016458,190 +0.016651,190 +0.016730,190 +0.016754,190 +0.017093,190 +0.016874,190 +0.016853,190 +0.017064,190 +0.017028,190 +0.023721,190 +0.018242,190 +0.017103,190 +0.017085,190 +0.016747,190 +0.016366,190 +0.016701,190 +0.016568,190 +0.016367,190 +0.016247,190 +0.016355,190 +0.016363,190 +0.016749,190 +0.016560,190 +0.016463,190 +0.016335,190 +0.016366,190 +0.016223,190 +0.016496,190 +0.016825,190 +0.016327,190 +0.016257,190 +0.016236,190 +0.016298,190 +0.016230,190 +0.016841,190 +0.016357,190 +0.016425,190 +0.016208,190 +0.016314,190 +0.016231,190 +0.016985,190 +0.016357,190 +0.016317,190 +0.016216,190 +0.016243,190 +0.016221,190 +0.016878,190 +0.016325,190 +0.016272,190 +0.016287,190 +0.016271,190 +0.016204,190 +0.017171,190 +0.016317,190 +0.016377,190 +0.016395,190 +0.016442,190 +0.016784,190 +0.017779,190 +0.016077,190 +0.016126,190 +0.016031,190 +0.015989,190 +0.016613,190 +0.016412,190 +0.016562,190 +0.016252,190 +0.016061,190 +0.016037,190 +0.016055,190 +0.017758,192 +0.018130,192 +0.017835,192 +0.017625,192 +0.017569,192 +0.017560,192 +0.018093,192 +0.017590,192 +0.017646,192 +0.017595,192 +0.017589,192 +0.017593,192 +0.018053,192 +0.017857,192 +0.017576,192 +0.018595,192 +0.018000,192 +0.017856,192 +0.017902,192 +0.017668,192 +0.017556,192 +0.017600,192 +0.017589,192 +0.018096,192 +0.017726,192 +0.017848,192 +0.018263,192 +0.018465,192 +0.018469,192 +0.019493,192 +0.019087,192 +0.018881,192 +0.019300,192 +0.018882,192 +0.020475,192 +0.018907,192 +0.018425,192 +0.018675,192 +0.018796,192 +0.019180,192 +0.018455,192 +0.018796,192 +0.019406,192 +0.018863,192 +0.019209,192 +0.019241,192 +0.018335,192 +0.018386,192 +0.018598,192 +0.021133,192 +0.019768,192 +0.019792,192 +0.019381,192 +0.019887,192 +0.019157,192 +0.019405,192 +0.019352,192 +0.018494,192 +0.018213,192 +0.018221,192 +0.018205,192 +0.018568,192 +0.018134,192 +0.017751,192 +0.017784,192 +0.017656,192 +0.018212,192 +0.017853,192 +0.017730,192 +0.017663,192 +0.017586,192 +0.017701,192 +0.017985,192 +0.017648,192 +0.017545,192 +0.017614,192 +0.017532,192 +0.018059,192 +0.017754,192 +0.017547,192 +0.018010,192 +0.017615,192 +0.017596,192 +0.018172,192 +0.017703,192 +0.017613,192 +0.017505,192 +0.017577,192 +0.017640,192 +0.018077,192 +0.017675,192 +0.017876,192 +0.017800,192 +0.017545,192 +0.018172,192 +0.017663,192 +0.017645,192 +0.017551,192 +0.017570,192 +0.017639,192 +0.017723,194 +0.017201,194 +0.017217,194 +0.017284,194 +0.017187,194 +0.017117,194 +0.017673,194 +0.017179,194 +0.017058,194 +0.017121,194 +0.017032,194 +0.017173,194 +0.017470,194 +0.017173,194 +0.017038,194 +0.017035,194 +0.017031,194 +0.017312,194 +0.017448,194 +0.017117,194 +0.017095,194 +0.017161,194 +0.017030,194 +0.017458,194 +0.017410,194 +0.017029,194 +0.017090,194 +0.017150,194 +0.017056,194 +0.017628,194 +0.017249,194 +0.017056,194 +0.017107,194 +0.017040,194 +0.017043,194 +0.017798,194 +0.017358,194 +0.018198,194 +0.018354,194 +0.018124,194 +0.019318,194 +0.019823,194 +0.018403,194 +0.018274,194 +0.017861,194 +0.017662,194 +0.017762,194 +0.017314,194 +0.017294,194 +0.017188,194 +0.017390,194 +0.017211,194 +0.017584,194 +0.017199,194 +0.017207,194 +0.017087,194 +0.017136,194 +0.017488,194 +0.017390,194 +0.017213,194 +0.017064,194 +0.017075,194 +0.017029,194 +0.017756,194 +0.018961,194 +0.017272,194 +0.017127,194 +0.017087,194 +0.017077,194 +0.017945,194 +0.017222,194 +0.017054,194 +0.017034,194 +0.017032,194 +0.017027,194 +0.017971,194 +0.017141,194 +0.017032,194 +0.017031,194 +0.017031,194 +0.017108,194 +0.017596,194 +0.017183,194 +0.017266,194 +0.017126,194 +0.017049,194 +0.017203,194 +0.017470,194 +0.017219,194 +0.017033,194 +0.017059,194 +0.017057,194 +0.017218,194 +0.017503,194 +0.017104,194 +0.017073,194 +0.017095,194 +0.017032,194 +0.017256,194 +0.017648,194 +0.017649,196 +0.017528,196 +0.017527,196 +0.017525,196 +0.017969,196 +0.017686,196 +0.017538,196 +0.017524,196 +0.017531,196 +0.019247,196 +0.020003,196 +0.019093,196 +0.018780,196 +0.018794,196 +0.017793,196 +0.018126,196 +0.017694,196 +0.017561,196 +0.017558,196 +0.017488,196 +0.017509,196 +0.018199,196 +0.017556,196 +0.017535,196 +0.017544,196 +0.017471,196 +0.017794,196 +0.017866,196 +0.017479,196 +0.017464,196 +0.017628,196 +0.017493,196 +0.018101,196 +0.017621,196 +0.017466,196 +0.017535,196 +0.017462,196 +0.017503,196 +0.018121,196 +0.017712,196 +0.017655,196 +0.017517,196 +0.017495,196 +0.017710,196 +0.017903,196 +0.017532,196 +0.017483,196 +0.017467,196 +0.017495,196 +0.018009,196 +0.017698,196 +0.017549,196 +0.017547,196 +0.017500,196 +0.017464,196 +0.018189,196 +0.017632,196 +0.017809,196 +0.017598,196 +0.017607,196 +0.017754,196 +0.017993,196 +0.017522,196 +0.017505,196 +0.017483,196 +0.017663,196 +0.018069,196 +0.017601,196 +0.017471,196 +0.017477,196 +0.017527,196 +0.017463,196 +0.018090,196 +0.017821,196 +0.017606,196 +0.017499,196 +0.017503,196 +0.017560,196 +0.018135,196 +0.017621,196 +0.017612,196 +0.017501,196 +0.017469,196 +0.018569,196 +0.017776,196 +0.017502,196 +0.017464,196 +0.017463,196 +0.017467,196 +0.018028,196 +0.017664,196 +0.018535,196 +0.020325,196 +0.018020,196 +0.018523,196 +0.018185,196 +0.017650,196 +0.017807,196 +0.019012,196 +0.019560,196 +0.021297,198 +0.018879,198 +0.019415,198 +0.018237,198 +0.018151,198 +0.018833,198 +0.018286,198 +0.018125,198 +0.018174,198 +0.018090,198 +0.018107,198 +0.018952,198 +0.018206,198 +0.018143,198 +0.018094,198 +0.018124,198 +0.023542,198 +0.018220,198 +0.018218,198 +0.018148,198 +0.018384,198 +0.022983,198 +0.018703,198 +0.018196,198 +0.018158,198 +0.018113,198 +0.019203,198 +0.022723,198 +0.018422,198 +0.018436,198 +0.018288,198 +0.018514,198 +0.023999,198 +0.018266,198 +0.018654,198 +0.018360,198 +0.018278,198 +0.023968,198 +0.018381,198 +0.018400,198 +0.018328,198 +0.018368,198 +0.024078,198 +0.018356,198 +0.018515,198 +0.018419,198 +0.018498,198 +0.024293,198 +0.020207,198 +0.018954,198 +0.018380,198 +0.018465,198 +0.024021,198 +0.018793,198 +0.018296,198 +0.018294,198 +0.018455,198 +0.021622,198 +0.025022,198 +0.019093,198 +0.018406,198 +0.018466,198 +0.020783,198 +0.022209,198 +0.018543,198 +0.018451,198 +0.018320,198 +0.020868,198 +0.021467,198 +0.018890,198 +0.018451,198 +0.018416,198 +0.018991,198 +0.023501,198 +0.018466,198 +0.018396,198 +0.018622,198 +0.018818,198 +0.019036,198 +0.018999,198 +0.018954,198 +0.018368,198 +0.018850,198 +0.019231,198 +0.018180,198 +0.018262,198 +0.018089,198 +0.018069,198 +0.018296,198 +0.018660,198 +0.018183,198 +0.018072,198 +0.018069,198 +0.018087,198 +0.018824,198 +0.018486,198 +0.018444,198 +0.018565,198 +0.018482,198 +0.018686,198 +0.019614,200 +0.018985,200 +0.018951,200 +0.019013,200 +0.018900,200 +0.019752,200 +0.018977,200 +0.018916,200 +0.019042,200 +0.019185,200 +0.019620,200 +0.019126,200 +0.019041,200 +0.019046,200 +0.019005,200 +0.019648,200 +0.019398,200 +0.018984,200 +0.018921,200 +0.019097,200 +0.019108,200 +0.019361,200 +0.018982,200 +0.018946,200 +0.018984,200 +0.019093,200 +0.019620,200 +0.018948,200 +0.018868,200 +0.018854,200 +0.018931,200 +0.019449,200 +0.019022,200 +0.019014,200 +0.018844,200 +0.018885,200 +0.019446,200 +0.019151,200 +0.019011,200 +0.018906,200 +0.018898,200 +0.018926,200 +0.019673,200 +0.018902,200 +0.018821,200 +0.018833,200 +0.018963,200 +0.019687,200 +0.019112,200 +0.019051,200 +0.018897,200 +0.019042,200 +0.019607,200 +0.019062,200 +0.018903,200 +0.018925,200 +0.018920,200 +0.019317,200 +0.019451,200 +0.018919,200 +0.019014,200 +0.018887,200 +0.019028,200 +0.020660,200 +0.019032,200 +0.018857,200 +0.019030,200 +0.019124,200 +0.022260,200 +0.019522,200 +0.019082,200 +0.019479,200 +0.018689,200 +0.020167,200 +0.018665,200 +0.018714,200 +0.019436,200 +0.018740,200 +0.020238,200 +0.018807,200 +0.018606,200 +0.018601,200 +0.018634,200 +0.019663,200 +0.019381,200 +0.018664,200 +0.018644,200 +0.018625,200 +0.018611,200 +0.020134,200 +0.018772,200 +0.018611,200 +0.018597,200 +0.018606,200 +0.020143,200 +0.018630,200 +0.018587,200 +0.018580,200 +0.018601,200 +0.019625,200 +0.019955,202 +0.019270,202 +0.019276,202 +0.019466,202 +0.020023,202 +0.020513,202 +0.019293,202 +0.019209,202 +0.019191,202 +0.019206,202 +0.020959,202 +0.019258,202 +0.019271,202 +0.019220,202 +0.019201,202 +0.020855,202 +0.019424,202 +0.019376,202 +0.019329,202 +0.019204,202 +0.022095,202 +0.019331,202 +0.019276,202 +0.019260,202 +0.019274,202 +0.020895,202 +0.019298,202 +0.019362,202 +0.019265,202 +0.019339,202 +0.020935,202 +0.019314,202 +0.019344,202 +0.019257,202 +0.019289,202 +0.020819,202 +0.019280,202 +0.019256,202 +0.019269,202 +0.019241,202 +0.020638,202 +0.019632,202 +0.019357,202 +0.019642,202 +0.019539,202 +0.020262,202 +0.020131,202 +0.019248,202 +0.019233,202 +0.019343,202 +0.019285,202 +0.020917,202 +0.019276,202 +0.019215,202 +0.019297,202 +0.019431,202 +0.021968,202 +0.019440,202 +0.019328,202 +0.019243,202 +0.019206,202 +0.019737,202 +0.019363,202 +0.019230,202 +0.019292,202 +0.019199,202 +0.020305,202 +0.019640,202 +0.019347,202 +0.019220,202 +0.019197,202 +0.019628,202 +0.019511,202 +0.019280,202 +0.019240,202 +0.019250,202 +0.019447,202 +0.020550,202 +0.019445,202 +0.019274,202 +0.019406,202 +0.019407,202 +0.019588,202 +0.019275,202 +0.019281,202 +0.019254,202 +0.019371,202 +0.019940,202 +0.019374,202 +0.019312,202 +0.019333,202 +0.019288,202 +0.019764,202 +0.019403,202 +0.019297,202 +0.019224,202 +0.019246,202 +0.019714,202 +0.019373,202 +0.019290,202 +0.020346,204 +0.019918,204 +0.020338,204 +0.019947,204 +0.019849,204 +0.019833,204 +0.020035,204 +0.020295,204 +0.019921,204 +0.019865,204 +0.019769,204 +0.019774,204 +0.020104,204 +0.020178,204 +0.019959,204 +0.019820,204 +0.019834,204 +0.020111,204 +0.020052,204 +0.019878,204 +0.019775,204 +0.019783,204 +0.020072,204 +0.020188,204 +0.019887,204 +0.019811,204 +0.019828,204 +0.020040,204 +0.020067,204 +0.020056,204 +0.019794,204 +0.019855,204 +0.020051,204 +0.020079,204 +0.019893,204 +0.019762,204 +0.019778,204 +0.019882,204 +0.020157,204 +0.019869,204 +0.020606,204 +0.020034,204 +0.020459,204 +0.020252,204 +0.019838,204 +0.019776,204 +0.019760,204 +0.019930,204 +0.020156,204 +0.019840,204 +0.019778,204 +0.019795,204 +0.019914,204 +0.020118,204 +0.019836,204 +0.019809,204 +0.019894,204 +0.019863,204 +0.020166,204 +0.019825,204 +0.019781,204 +0.019731,204 +0.019851,204 +0.020210,204 +0.019788,204 +0.019774,204 +0.019908,204 +0.019780,204 +0.020163,204 +0.019885,204 +0.019818,204 +0.019725,204 +0.019835,204 +0.020265,204 +0.019733,204 +0.019779,204 +0.019784,204 +0.019784,204 +0.020236,204 +0.020084,204 +0.019783,204 +0.019811,204 +0.019831,204 +0.020212,204 +0.019767,204 +0.019805,204 +0.019774,204 +0.019814,204 +0.020358,204 +0.019773,204 +0.019830,204 +0.019771,204 +0.019804,204 +0.020233,204 +0.019854,204 +0.019767,204 +0.019772,204 +0.019890,204 +0.020138,204 +0.019739,204 +0.020474,206 +0.021390,206 +0.020503,206 +0.020879,206 +0.020554,206 +0.020528,206 +0.020522,206 +0.020726,206 +0.020909,206 +0.020593,206 +0.020475,206 +0.020340,206 +0.020749,206 +0.021044,206 +0.020424,206 +0.020461,206 +0.020456,206 +0.020496,206 +0.020875,206 +0.020437,206 +0.020355,206 +0.020425,206 +0.020503,206 +0.020988,206 +0.020476,206 +0.020374,206 +0.020402,206 +0.020521,206 +0.020866,206 +0.020498,206 +0.020491,206 +0.020461,206 +0.020494,206 +0.020731,206 +0.020377,206 +0.020408,206 +0.020478,206 +0.020558,206 +0.020627,206 +0.020435,206 +0.020376,206 +0.020436,206 +0.020589,206 +0.020674,206 +0.020367,206 +0.020386,206 +0.020430,206 +0.020825,206 +0.020477,206 +0.020425,206 +0.020371,206 +0.020455,206 +0.020832,206 +0.020454,206 +0.020433,206 +0.020450,206 +0.020546,206 +0.020845,206 +0.020509,206 +0.020404,206 +0.020361,206 +0.020545,206 +0.020790,206 +0.020547,206 +0.020483,206 +0.020445,206 +0.020497,206 +0.021000,206 +0.020620,206 +0.020432,206 +0.020507,206 +0.020377,206 +0.021019,206 +0.020574,206 +0.020587,206 +0.020427,206 +0.020517,206 +0.021153,206 +0.020512,206 +0.021221,206 +0.020608,206 +0.020599,206 +0.020907,206 +0.020395,206 +0.020442,206 +0.020490,206 +0.020755,206 +0.020848,206 +0.020516,206 +0.020425,206 +0.020515,206 +0.021067,206 +0.020579,206 +0.020578,206 +0.020460,206 +0.020519,206 +0.020952,206 +0.020452,206 +0.020415,206 +0.020555,206 +0.020937,208 +0.021447,208 +0.021110,208 +0.021063,208 +0.021080,208 +0.021059,208 +0.021476,208 +0.021106,208 +0.020988,208 +0.021031,208 +0.021058,208 +0.021473,208 +0.020970,208 +0.020922,208 +0.021063,208 +0.021414,208 +0.021251,208 +0.020921,208 +0.021078,208 +0.020971,208 +0.021575,208 +0.021036,208 +0.021007,208 +0.021015,208 +0.021137,208 +0.021794,208 +0.021007,208 +0.021026,208 +0.021033,208 +0.021063,208 +0.021563,208 +0.021013,208 +0.020908,208 +0.021028,208 +0.021103,208 +0.021375,208 +0.020978,208 +0.021054,208 +0.020989,208 +0.021518,208 +0.020965,208 +0.020957,208 +0.020970,208 +0.020899,208 +0.021561,208 +0.021345,208 +0.020959,208 +0.021026,208 +0.021020,208 +0.021515,208 +0.020916,208 +0.021116,208 +0.021035,208 +0.021011,208 +0.021544,208 +0.020938,208 +0.020971,208 +0.020993,208 +0.021331,208 +0.021146,208 +0.020975,208 +0.021000,208 +0.020880,208 +0.021581,208 +0.020919,208 +0.020933,208 +0.021065,208 +0.021079,208 +0.021627,208 +0.020984,208 +0.021031,208 +0.021143,208 +0.021434,208 +0.021466,208 +0.021069,208 +0.021036,208 +0.020908,208 +0.021261,208 +0.021241,208 +0.020960,208 +0.020993,208 +0.020928,208 +0.021676,208 +0.021072,208 +0.020921,208 +0.021194,208 +0.020953,208 +0.021478,208 +0.020900,208 +0.020952,208 +0.021031,208 +0.020963,208 +0.021564,208 +0.020987,208 +0.021018,208 +0.020997,208 +0.021287,208 +0.021463,208 +0.020961,208 +0.021010,208 +0.021837,210 +0.022359,210 +0.021703,210 +0.021722,210 +0.021748,210 +0.021800,210 +0.022293,210 +0.021726,210 +0.021681,210 +0.021713,210 +0.022189,210 +0.021968,210 +0.021695,210 +0.021828,210 +0.021751,210 +0.022327,210 +0.021710,210 +0.021823,210 +0.021882,210 +0.024530,210 +0.023167,210 +0.021845,210 +0.021955,210 +0.021629,210 +0.022300,210 +0.021750,210 +0.021700,210 +0.021613,210 +0.021707,210 +0.022299,210 +0.021728,210 +0.021733,210 +0.021715,210 +0.022258,210 +0.021667,210 +0.021689,210 +0.021675,210 +0.021617,210 +0.022322,210 +0.021623,210 +0.021723,210 +0.021755,210 +0.021899,210 +0.022125,210 +0.021792,210 +0.021803,210 +0.021650,210 +0.022226,210 +0.021704,210 +0.021738,210 +0.021623,210 +0.021700,210 +0.022291,210 +0.021647,210 +0.021842,210 +0.021684,210 +0.022042,210 +0.021837,210 +0.021654,210 +0.021712,210 +0.021604,210 +0.022472,210 +0.021726,210 +0.021741,210 +0.021754,210 +0.023545,210 +0.022155,210 +0.021975,210 +0.021686,210 +0.021615,210 +0.022360,210 +0.021625,210 +0.022446,210 +0.022446,210 +0.022270,210 +0.022792,210 +0.021866,210 +0.021678,210 +0.021673,210 +0.022255,210 +0.021645,210 +0.021740,210 +0.021689,210 +0.021647,210 +0.022128,210 +0.021689,210 +0.021829,210 +0.021827,210 +0.021905,210 +0.022211,210 +0.021896,210 +0.021644,210 +0.021800,210 +0.022196,210 +0.021754,210 +0.021831,210 +0.021608,210 +0.021701,210 +0.022241,210 +0.021665,210 +0.022333,212 +0.022289,212 +0.022824,212 +0.022219,212 +0.022375,212 +0.022238,212 +0.022223,212 +0.022961,212 +0.022227,212 +0.022258,212 +0.022534,212 +0.022837,212 +0.022326,212 +0.022341,212 +0.022220,212 +0.022228,212 +0.022974,212 +0.022232,212 +0.022573,212 +0.022355,212 +0.022848,212 +0.022325,212 +0.022381,212 +0.022277,212 +0.022785,212 +0.022947,212 +0.022319,212 +0.022236,212 +0.022260,212 +0.022802,212 +0.022282,212 +0.022393,212 +0.022251,212 +0.022384,212 +0.022750,212 +0.022347,212 +0.022354,212 +0.022219,212 +0.022789,212 +0.022340,212 +0.022302,212 +0.022216,212 +0.022453,212 +0.022677,212 +0.022374,212 +0.022228,212 +0.022263,212 +0.022823,212 +0.022218,212 +0.022228,212 +0.022198,212 +0.022395,212 +0.022869,212 +0.022323,212 +0.022361,212 +0.022268,212 +0.022801,212 +0.022334,212 +0.022253,212 +0.022175,212 +0.022361,212 +0.022652,212 +0.022286,212 +0.022231,212 +0.022339,212 +0.023049,212 +0.022210,212 +0.022239,212 +0.022321,212 +0.022345,212 +0.022578,212 +0.022393,212 +0.022224,212 +0.022156,212 +0.022832,212 +0.022247,212 +0.022352,212 +0.022454,212 +0.022399,212 +0.022739,212 +0.022451,212 +0.022183,212 +0.022177,212 +0.022833,212 +0.022297,212 +0.023886,212 +0.022259,212 +0.022521,212 +0.022645,212 +0.022403,212 +0.022249,212 +0.022298,212 +0.022748,212 +0.022594,212 +0.022305,212 +0.022199,212 +0.022525,212 +0.022699,212 +0.022429,212 +0.022883,212 +0.023026,214 +0.023601,214 +0.022894,214 +0.022924,214 +0.022801,214 +0.023424,214 +0.022784,214 +0.022958,214 +0.022937,214 +0.023036,214 +0.023292,214 +0.022977,214 +0.022910,214 +0.022914,214 +0.023308,214 +0.022945,214 +0.022868,214 +0.022820,214 +0.023361,214 +0.022903,214 +0.022967,214 +0.023011,214 +0.022831,214 +0.023594,214 +0.022994,214 +0.022835,214 +0.022873,214 +0.023355,214 +0.023009,214 +0.022910,214 +0.022801,214 +0.023142,214 +0.023126,214 +0.022873,214 +0.022995,214 +0.022831,214 +0.023499,214 +0.022909,214 +0.022804,214 +0.022903,214 +0.023405,214 +0.023121,214 +0.023190,214 +0.023021,214 +0.023059,214 +0.023475,214 +0.022920,214 +0.022871,214 +0.023039,214 +0.023400,214 +0.022957,214 +0.022797,214 +0.022976,214 +0.023346,214 +0.023228,214 +0.022894,214 +0.023023,214 +0.022950,214 +0.023304,214 +0.022880,214 +0.022979,214 +0.022820,214 +0.023251,214 +0.022990,214 +0.022892,214 +0.022999,214 +0.023206,214 +0.023043,214 +0.022884,214 +0.022835,214 +0.022819,214 +0.023492,214 +0.022915,214 +0.022874,214 +0.022853,214 +0.023394,214 +0.022965,214 +0.022915,214 +0.022892,214 +0.023037,214 +0.023072,214 +0.022953,214 +0.022892,214 +0.022866,214 +0.023559,214 +0.022908,214 +0.023742,214 +0.022807,214 +0.023526,214 +0.023016,214 +0.022789,214 +0.023650,214 +0.023282,214 +0.023171,214 +0.022981,214 +0.022893,214 +0.022843,214 +0.023337,214 +0.022931,214 +0.022935,214 +0.023484,216 +0.023960,216 +0.023784,216 +0.023437,216 +0.023560,216 +0.023767,216 +0.023759,216 +0.023548,216 +0.023554,216 +0.023648,216 +0.023907,216 +0.023504,216 +0.023411,216 +0.023361,216 +0.023976,216 +0.023612,216 +0.023527,216 +0.023568,216 +0.024065,216 +0.023642,216 +0.023505,216 +0.023500,216 +0.023761,216 +0.023708,216 +0.023398,216 +0.023390,216 +0.023527,216 +0.023995,216 +0.023649,216 +0.023565,216 +0.023520,216 +0.024105,216 +0.023535,216 +0.023515,216 +0.023435,216 +0.024056,216 +0.023549,216 +0.023436,216 +0.023527,216 +0.023797,216 +0.024015,216 +0.023496,216 +0.023743,216 +0.023574,216 +0.023869,216 +0.023564,216 +0.023412,216 +0.023448,216 +0.024012,216 +0.023638,216 +0.023633,216 +0.023510,216 +0.024206,216 +0.023510,216 +0.023539,216 +0.023430,216 +0.023712,216 +0.023728,216 +0.023420,216 +0.023466,216 +0.023403,216 +0.023832,216 +0.023598,216 +0.023477,216 +0.023488,216 +0.023875,216 +0.023622,216 +0.023453,216 +0.023399,216 +0.024021,216 +0.023578,216 +0.023585,216 +0.023475,216 +0.024381,216 +0.024930,216 +0.023957,216 +0.024402,216 +0.023838,216 +0.024771,216 +0.023503,216 +0.023520,216 +0.023429,216 +0.025026,216 +0.023553,216 +0.023468,216 +0.023556,216 +0.024949,216 +0.023713,216 +0.023406,216 +0.023559,216 +0.024893,216 +0.023608,216 +0.023511,216 +0.023548,216 +0.025018,216 +0.023749,216 +0.023568,216 +0.023493,216 +0.023500,216 +0.025098,216 +0.024321,218 +0.024253,218 +0.024154,218 +0.025959,218 +0.024192,218 +0.024190,218 +0.024139,218 +0.025750,218 +0.024191,218 +0.024242,218 +0.024402,218 +0.030602,218 +0.024774,218 +0.024360,218 +0.024410,218 +0.024888,218 +0.024177,218 +0.024285,218 +0.024374,218 +0.024681,218 +0.024682,218 +0.024262,218 +0.024223,218 +0.024665,218 +0.024532,218 +0.024227,218 +0.024309,218 +0.024826,218 +0.024397,218 +0.024196,218 +0.024256,218 +0.024776,218 +0.024537,218 +0.024244,218 +0.024336,218 +0.024614,218 +0.024646,218 +0.024301,218 +0.024200,218 +0.024366,218 +0.024733,218 +0.024201,218 +0.024230,218 +0.024197,218 +0.024804,218 +0.024310,218 +0.024180,218 +0.024274,218 +0.024824,218 +0.024214,218 +0.024201,218 +0.024154,218 +0.025116,218 +0.024334,218 +0.024319,218 +0.024365,218 +0.024794,218 +0.024186,218 +0.024323,218 +0.024177,218 +0.024657,218 +0.024300,218 +0.024207,218 +0.024112,218 +0.024419,218 +0.024600,218 +0.024227,218 +0.024217,218 +0.024233,218 +0.024734,218 +0.024214,218 +0.025253,218 +0.024190,218 +0.024788,218 +0.024715,218 +0.024626,218 +0.024456,218 +0.024755,218 +0.024196,218 +0.024166,218 +0.024235,218 +0.024681,218 +0.024260,218 +0.024331,218 +0.024221,218 +0.024686,218 +0.024356,218 +0.024330,218 +0.024253,218 +0.024664,218 +0.024319,218 +0.024420,218 +0.025809,218 +0.024817,218 +0.024451,218 +0.024223,218 +0.024401,218 +0.024759,218 +0.024375,218 +0.024219,218 +0.024873,220 +0.025108,220 +0.025061,220 +0.024885,220 +0.024765,220 +0.025074,220 +0.025367,220 +0.024839,220 +0.024765,220 +0.025052,220 +0.025111,220 +0.024817,220 +0.024792,220 +0.025239,220 +0.025257,220 +0.025068,220 +0.024841,220 +0.025115,220 +0.025180,220 +0.024913,220 +0.024890,220 +0.025050,220 +0.025184,220 +0.024911,220 +0.024798,220 +0.025013,220 +0.025192,220 +0.024926,220 +0.024795,220 +0.024976,220 +0.025252,220 +0.024912,220 +0.024793,220 +0.024958,220 +0.025602,220 +0.024894,220 +0.024824,220 +0.024999,220 +0.025398,220 +0.024906,220 +0.024775,220 +0.024963,220 +0.025427,220 +0.024907,220 +0.024832,220 +0.024869,220 +0.025427,220 +0.025238,220 +0.024822,220 +0.024873,220 +0.025321,220 +0.024911,220 +0.024858,220 +0.024902,220 +0.025402,220 +0.024943,220 +0.024956,220 +0.024943,220 +0.025503,220 +0.024872,220 +0.024849,220 +0.024872,220 +0.025515,220 +0.024940,220 +0.024794,220 +0.024854,220 +0.025468,220 +0.025027,220 +0.024804,220 +0.024812,220 +0.025526,220 +0.024885,220 +0.024797,220 +0.024926,220 +0.025620,220 +0.024928,220 +0.024839,220 +0.024926,220 +0.025429,220 +0.025009,220 +0.024797,220 +0.024856,220 +0.025474,220 +0.024913,220 +0.024784,220 +0.024895,220 +0.025441,220 +0.025252,220 +0.024798,220 +0.024784,220 +0.025461,220 +0.024823,220 +0.024757,220 +0.025039,220 +0.026051,220 +0.025156,220 +0.026092,220 +0.024877,220 +0.025423,220 +0.024875,220 +0.025803,222 +0.025612,222 +0.026133,222 +0.025814,222 +0.026533,222 +0.025811,222 +0.026799,222 +0.028307,222 +0.026128,222 +0.026274,222 +0.026490,222 +0.025989,222 +0.025987,222 +0.027747,222 +0.026207,222 +0.025834,222 +0.026027,222 +0.027656,222 +0.025946,222 +0.025867,222 +0.025983,222 +0.027567,222 +0.025950,222 +0.025924,222 +0.025934,222 +0.027547,222 +0.025963,222 +0.025842,222 +0.026992,222 +0.026363,222 +0.025988,222 +0.025937,222 +0.027749,222 +0.025962,222 +0.026520,222 +0.026097,222 +0.027628,222 +0.025700,222 +0.026003,222 +0.025730,222 +0.027521,222 +0.025729,222 +0.026208,222 +0.025815,222 +0.027381,222 +0.025782,222 +0.025681,222 +0.025890,222 +0.027240,222 +0.025703,222 +0.026188,222 +0.028180,222 +0.026576,222 +0.025724,222 +0.025760,222 +0.027488,222 +0.026379,222 +0.026555,222 +0.027810,222 +0.029167,222 +0.026614,222 +0.027743,222 +0.027495,222 +0.029081,222 +0.028671,222 +0.027525,222 +0.026388,222 +0.026126,222 +0.026361,222 +0.026159,222 +0.027152,222 +0.026343,222 +0.026092,222 +0.026325,222 +0.026569,222 +0.026080,222 +0.026654,222 +0.026354,222 +0.026697,222 +0.026229,222 +0.026825,222 +0.027730,222 +0.028674,222 +0.027830,222 +0.028155,222 +0.028284,222 +0.028044,222 +0.026559,222 +0.028011,222 +0.033725,222 +0.027623,222 +0.028418,222 +0.031350,222 +0.028729,222 +0.026083,222 +0.026010,222 +0.032434,222 +0.027779,222 +0.026996,222 +0.028396,222 +0.028949,224 +0.027685,224 +0.026853,224 +0.027342,224 +0.026836,224 +0.026846,224 +0.027353,224 +0.027514,224 +0.035273,224 +0.032047,224 +0.027517,224 +0.026843,224 +0.026461,224 +0.026823,224 +0.026482,224 +0.026429,224 +0.026592,224 +0.026880,224 +0.026321,224 +0.026325,224 +0.026351,224 +0.026876,224 +0.026249,224 +0.026443,224 +0.026446,224 +0.026957,224 +0.026337,224 +0.026385,224 +0.026553,224 +0.026630,224 +0.026286,224 +0.026370,224 +0.026752,224 +0.026410,224 +0.026253,224 +0.026425,224 +0.027212,224 +0.026683,224 +0.026352,224 +0.026306,224 +0.026796,224 +0.026319,224 +0.026409,224 +0.027414,224 +0.027239,224 +0.026580,224 +0.026598,224 +0.026857,224 +0.026380,224 +0.026298,224 +0.026425,224 +0.026794,224 +0.026301,224 +0.026350,224 +0.026489,224 +0.027160,224 +0.026314,224 +0.026349,224 +0.026421,224 +0.026793,224 +0.026374,224 +0.026456,224 +0.026503,224 +0.026953,224 +0.026346,224 +0.026434,224 +0.026791,224 +0.026370,224 +0.026421,224 +0.026372,224 +0.026847,224 +0.026371,224 +0.026353,224 +0.026352,224 +0.026915,224 +0.026435,224 +0.026356,224 +0.026417,224 +0.026870,224 +0.026376,224 +0.026433,224 +0.026624,224 +0.027409,224 +0.026897,224 +0.026468,224 +0.026801,224 +0.026327,224 +0.026391,224 +0.026394,224 +0.026912,224 +0.026554,224 +0.026577,224 +0.026535,224 +0.026772,224 +0.026386,224 +0.026433,224 +0.026597,224 +0.026615,224 +0.026654,224 +0.026921,224 +0.028603,226 +0.027266,226 +0.027135,226 +0.027072,226 +0.027474,226 +0.027131,226 +0.027086,226 +0.027116,226 +0.027478,226 +0.027045,226 +0.027091,226 +0.027592,226 +0.027407,226 +0.027063,226 +0.027063,226 +0.027425,226 +0.027157,226 +0.027344,226 +0.027210,226 +0.027718,226 +0.027114,226 +0.027143,226 +0.027466,226 +0.027005,226 +0.027020,226 +0.026995,226 +0.027437,226 +0.027026,226 +0.026995,226 +0.027142,226 +0.027541,226 +0.026967,226 +0.027073,226 +0.027470,226 +0.026976,226 +0.027179,226 +0.027682,226 +0.027688,226 +0.027113,226 +0.027033,226 +0.027071,226 +0.027531,226 +0.026931,226 +0.027160,226 +0.027355,226 +0.027081,226 +0.026994,226 +0.027038,226 +0.027578,226 +0.027147,226 +0.027222,226 +0.027132,226 +0.027484,226 +0.026990,226 +0.027118,226 +0.027287,226 +0.027333,226 +0.027106,226 +0.027130,226 +0.027430,226 +0.027058,226 +0.026931,226 +0.027072,226 +0.027519,226 +0.027034,226 +0.027094,226 +0.027110,226 +0.027528,226 +0.027124,226 +0.027042,226 +0.027476,226 +0.027152,226 +0.027089,226 +0.027805,226 +0.027947,226 +0.027093,226 +0.027021,226 +0.026933,226 +0.027671,226 +0.027016,226 +0.026995,226 +0.027477,226 +0.027034,226 +0.027993,226 +0.027066,226 +0.027560,226 +0.027294,226 +0.027060,226 +0.027045,226 +0.027400,226 +0.027050,226 +0.026985,226 +0.027514,226 +0.027799,226 +0.027884,226 +0.027555,226 +0.027529,226 +0.026994,226 +0.027625,226 +0.027030,226 +0.028396,228 +0.027789,228 +0.027706,228 +0.028292,228 +0.027713,228 +0.027641,228 +0.027753,228 +0.028166,228 +0.027764,228 +0.027839,228 +0.027917,228 +0.028371,228 +0.027708,228 +0.027819,228 +0.028142,228 +0.027675,228 +0.027806,228 +0.027774,228 +0.028090,228 +0.027691,228 +0.028016,228 +0.028347,228 +0.027715,228 +0.027710,228 +0.027669,228 +0.028135,228 +0.027709,228 +0.027739,228 +0.028289,228 +0.027917,228 +0.027731,228 +0.027709,228 +0.028199,228 +0.027688,228 +0.027750,228 +0.027957,228 +0.028081,228 +0.027754,228 +0.027762,228 +0.028137,228 +0.027730,228 +0.027760,228 +0.027624,228 +0.028232,228 +0.027763,228 +0.027841,228 +0.027998,228 +0.028292,228 +0.027739,228 +0.027804,228 +0.028145,228 +0.027705,228 +0.027735,228 +0.027768,228 +0.028157,228 +0.027802,228 +0.027793,228 +0.028159,228 +0.027800,228 +0.027955,228 +0.027726,228 +0.028202,228 +0.027815,228 +0.027765,228 +0.027927,228 +0.028082,228 +0.027911,228 +0.028507,228 +0.029761,228 +0.029541,228 +0.030357,228 +0.029105,228 +0.030264,228 +0.030174,228 +0.028764,228 +0.028345,228 +0.028749,228 +0.028297,228 +0.031972,228 +0.027970,228 +0.028245,228 +0.027927,228 +0.033471,228 +0.029183,228 +0.030954,228 +0.030335,228 +0.029571,228 +0.029664,228 +0.029525,228 +0.029456,228 +0.029034,228 +0.028302,228 +0.028582,228 +0.027869,228 +0.027958,228 +0.032860,228 +0.054217,228 +0.055905,228 +0.032124,228 +0.030037,228 +0.031212,230 +0.031446,230 +0.029493,230 +0.028981,230 +0.029714,230 +0.029217,230 +0.029330,230 +0.029472,230 +0.028810,230 +0.028966,230 +0.028912,230 +0.029368,230 +0.029060,230 +0.028714,230 +0.029201,230 +0.028925,230 +0.029145,230 +0.029026,230 +0.029022,230 +0.028966,230 +0.028870,230 +0.029391,230 +0.028822,230 +0.029057,230 +0.029450,230 +0.028822,230 +0.029209,230 +0.029746,230 +0.029454,230 +0.028988,230 +0.029127,230 +0.029064,230 +0.029241,230 +0.029435,230 +0.029081,230 +0.031390,230 +0.029498,230 +0.029355,230 +0.029553,230 +0.028982,230 +0.028996,230 +0.028980,230 +0.029188,230 +0.029060,230 +0.028818,230 +0.029422,230 +0.029067,230 +0.028992,230 +0.029280,230 +0.029486,230 +0.029258,230 +0.029168,230 +0.029584,230 +0.029309,230 +0.029174,230 +0.029294,230 +0.028859,230 +0.029155,230 +0.028960,230 +0.029254,230 +0.029074,230 +0.030576,230 +0.030232,230 +0.029177,230 +0.029131,230 +0.030245,230 +0.029385,230 +0.028945,230 +0.028784,230 +0.029233,230 +0.029134,230 +0.029420,230 +0.029514,230 +0.028832,230 +0.028563,230 +0.028667,230 +0.029067,230 +0.028526,230 +0.028438,230 +0.028899,230 +0.029096,230 +0.028589,230 +0.028424,230 +0.029054,230 +0.028619,230 +0.028536,230 +0.028929,230 +0.028593,230 +0.029794,230 +0.038274,230 +0.028631,230 +0.028745,230 +0.028442,230 +0.028873,230 +0.028448,230 +0.028783,230 +0.028461,230 +0.028953,230 +0.028479,230 +0.028411,230 +0.029688,232 +0.029182,232 +0.029007,232 +0.029212,232 +0.030177,232 +0.029792,232 +0.030598,232 +0.033744,232 +0.033655,232 +0.030829,232 +0.032066,232 +0.032223,232 +0.031038,232 +0.030659,232 +0.030033,232 +0.029460,232 +0.029567,232 +0.029924,232 +0.029216,232 +0.029134,232 +0.029829,232 +0.029198,232 +0.029112,232 +0.029550,232 +0.029096,232 +0.029180,232 +0.029056,232 +0.029627,232 +0.029195,232 +0.029088,232 +0.029468,232 +0.029486,232 +0.030023,232 +0.029728,232 +0.029768,232 +0.029106,232 +0.029068,232 +0.029595,232 +0.029140,232 +0.029497,232 +0.029585,232 +0.029460,232 +0.029183,232 +0.029034,232 +0.029641,232 +0.029115,232 +0.029208,232 +0.029817,232 +0.029447,232 +0.029239,232 +0.029114,232 +0.029866,232 +0.029166,232 +0.029146,232 +0.029593,232 +0.029066,232 +0.029145,232 +0.029049,232 +0.029621,232 +0.029042,232 +0.029041,232 +0.029647,232 +0.029164,232 +0.029283,232 +0.029343,232 +0.029674,232 +0.029265,232 +0.029332,232 +0.029687,232 +0.029218,232 +0.029087,232 +0.029494,232 +0.029337,232 +0.029189,232 +0.029091,232 +0.029642,232 +0.029189,232 +0.029207,232 +0.029540,232 +0.029594,232 +0.029035,232 +0.029327,232 +0.032385,232 +0.030660,232 +0.029237,232 +0.029852,232 +0.029299,232 +0.029156,232 +0.029341,232 +0.029562,232 +0.029221,232 +0.029107,232 +0.029742,232 +0.029237,232 +0.029049,232 +0.029655,232 +0.029219,232 +0.029072,232 +0.029165,232 +0.029762,232 +0.030358,234 +0.030127,234 +0.030604,234 +0.030153,234 +0.030130,234 +0.030406,234 +0.030486,234 +0.030233,234 +0.030003,234 +0.030490,234 +0.030202,234 +0.030074,234 +0.030438,234 +0.030215,234 +0.030018,234 +0.031065,234 +0.032074,234 +0.030253,234 +0.030099,234 +0.030677,234 +0.031515,234 +0.031204,234 +0.033240,234 +0.031116,234 +0.030199,234 +0.030712,234 +0.030225,234 +0.030108,234 +0.030597,234 +0.030284,234 +0.030132,234 +0.030359,234 +0.030782,234 +0.030082,234 +0.030109,234 +0.030729,234 +0.030159,234 +0.030105,234 +0.030472,234 +0.030409,234 +0.030108,234 +0.030038,234 +0.030701,234 +0.030097,234 +0.032153,234 +0.032187,234 +0.030610,234 +0.030178,234 +0.030790,234 +0.030180,234 +0.030011,234 +0.030187,234 +0.030570,234 +0.030096,234 +0.030133,234 +0.031568,234 +0.030319,234 +0.030084,234 +0.030822,234 +0.030645,234 +0.030130,234 +0.030539,234 +0.031045,234 +0.030107,234 +0.030286,234 +0.030675,234 +0.030380,234 +0.030718,234 +0.031886,234 +0.032856,234 +0.033020,234 +0.032307,234 +0.031610,234 +0.032002,234 +0.032058,234 +0.031528,234 +0.030505,234 +0.030506,234 +0.030780,234 +0.030169,234 +0.030483,234 +0.030792,234 +0.030206,234 +0.030239,234 +0.031256,234 +0.030443,234 +0.030501,234 +0.030984,234 +0.030521,234 +0.030428,234 +0.030373,234 +0.030966,234 +0.030462,234 +0.030669,234 +0.030869,234 +0.030494,234 +0.030628,234 +0.031014,234 +0.031166,234 +0.033034,234 +0.033777,236 +0.033994,236 +0.033944,236 +0.034148,236 +0.031757,236 +0.030948,236 +0.032556,236 +0.031320,236 +0.031032,236 +0.031013,236 +0.032891,236 +0.032434,236 +0.032233,236 +0.034586,236 +0.033126,236 +0.033744,236 +0.034739,236 +0.031994,236 +0.031318,236 +0.033039,236 +0.031272,236 +0.031136,236 +0.032828,236 +0.031334,236 +0.031468,236 +0.032985,236 +0.031576,236 +0.031285,236 +0.033451,236 +0.035104,236 +0.034135,236 +0.032739,236 +0.032981,236 +0.032480,236 +0.032441,236 +0.032488,236 +0.033266,236 +0.031990,236 +0.031856,236 +0.031373,236 +0.031471,236 +0.031751,236 +0.032149,236 +0.031541,236 +0.031784,236 +0.031390,236 +0.031234,236 +0.031803,236 +0.031537,236 +0.031533,236 +0.032068,236 +0.031771,236 +0.031798,236 +0.031953,236 +0.031569,236 +0.031234,236 +0.031939,236 +0.031545,236 +0.031601,236 +0.031578,236 +0.031932,236 +0.031237,236 +0.031325,236 +0.031721,236 +0.031366,236 +0.031220,236 +0.031750,236 +0.031240,236 +0.032455,236 +0.033766,236 +0.031280,236 +0.030793,236 +0.031328,236 +0.030853,236 +0.030771,236 +0.031968,236 +0.031074,236 +0.030757,236 +0.030916,236 +0.032139,236 +0.032433,236 +0.034592,236 +0.033978,236 +0.032397,236 +0.032334,236 +0.031628,236 +0.031247,236 +0.031339,236 +0.031525,236 +0.032272,236 +0.034320,236 +0.035302,236 +0.033631,236 +0.032443,236 +0.031868,236 +0.036478,236 +0.032029,236 +0.031947,236 +0.030840,236 +0.030834,236 +0.032290,238 +0.031663,238 +0.031577,238 +0.033485,238 +0.033872,238 +0.035361,238 +0.035761,238 +0.032871,238 +0.032131,238 +0.032473,238 +0.031940,238 +0.031745,238 +0.032728,238 +0.032135,238 +0.031720,238 +0.032094,238 +0.033397,238 +0.032657,238 +0.034607,238 +0.034474,238 +0.034204,238 +0.038265,238 +0.033422,238 +0.032119,238 +0.032749,238 +0.032330,238 +0.033634,238 +0.034926,238 +0.036489,238 +0.034506,238 +0.033690,238 +0.032542,238 +0.032052,238 +0.032223,238 +0.033186,238 +0.034131,238 +0.034831,238 +0.034710,238 +0.033838,238 +0.032466,238 +0.032274,238 +0.032050,238 +0.031949,238 +0.032542,238 +0.031693,238 +0.031649,238 +0.032263,238 +0.031716,238 +0.031614,238 +0.032194,238 +0.033197,238 +0.035426,238 +0.035452,238 +0.033799,238 +0.034757,238 +0.033376,238 +0.032357,238 +0.032370,238 +0.033924,238 +0.031932,238 +0.031730,238 +0.033355,238 +0.031602,238 +0.032070,238 +0.033182,238 +0.031728,238 +0.031650,238 +0.033281,238 +0.031678,238 +0.031882,238 +0.034564,238 +0.031760,238 +0.031552,238 +0.033319,238 +0.031600,238 +0.031533,238 +0.032823,238 +0.032028,238 +0.031525,238 +0.031993,238 +0.032756,238 +0.031828,238 +0.031746,238 +0.033238,238 +0.031641,238 +0.031616,238 +0.033137,238 +0.031554,238 +0.031585,238 +0.033085,238 +0.031562,238 +0.031473,238 +0.033401,238 +0.031639,238 +0.031512,238 +0.033092,238 +0.031949,238 +0.031735,238 +0.033181,238 +0.031755,238 +0.032343,240 +0.033862,240 +0.034092,240 +0.032217,240 +0.033336,240 +0.032581,240 +0.032189,240 +0.032208,240 +0.033655,240 +0.032166,240 +0.032460,240 +0.033617,240 +0.032209,240 +0.032333,240 +0.033738,240 +0.032283,240 +0.032250,240 +0.033561,240 +0.033114,240 +0.034166,240 +0.035387,240 +0.034878,240 +0.034778,240 +0.035309,240 +0.032956,240 +0.032670,240 +0.034152,240 +0.032453,240 +0.032523,240 +0.033747,240 +0.032219,240 +0.032256,240 +0.034852,240 +0.032188,240 +0.032216,240 +0.033476,240 +0.032083,240 +0.033007,240 +0.034557,240 +0.032568,240 +0.032249,240 +0.033585,240 +0.032223,240 +0.032403,240 +0.033472,240 +0.032224,240 +0.032070,240 +0.032631,240 +0.032187,240 +0.032076,240 +0.032691,240 +0.032156,240 +0.032070,240 +0.032641,240 +0.032126,240 +0.032065,240 +0.032322,240 +0.032443,240 +0.032428,240 +0.032233,240 +0.032845,240 +0.032217,240 +0.032185,240 +0.032981,240 +0.032174,240 +0.032270,240 +0.032766,240 +0.032613,240 +0.032274,240 +0.032744,240 +0.032155,240 +0.032178,240 +0.032682,240 +0.032216,240 +0.032185,240 +0.032755,240 +0.032373,240 +0.032354,240 +0.032655,240 +0.032702,240 +0.032727,240 +0.033254,240 +0.032606,240 +0.032792,240 +0.033288,240 +0.032707,240 +0.032698,240 +0.032970,240 +0.033131,240 +0.032702,240 +0.032809,240 +0.032904,240 +0.032723,240 +0.032811,240 +0.033252,240 +0.032700,240 +0.032779,240 +0.033331,240 +0.032580,240 +0.032634,240 +0.034677,242 +0.034333,242 +0.035353,242 +0.037132,242 +0.035416,242 +0.035410,242 +0.034834,242 +0.033790,242 +0.034383,242 +0.033788,242 +0.033457,242 +0.034437,242 +0.035468,242 +0.036031,242 +0.038102,242 +0.036129,242 +0.036671,242 +0.038472,242 +0.034601,242 +0.034189,242 +0.036864,242 +0.036533,242 +0.036482,242 +0.037213,242 +0.036504,242 +0.038268,242 +0.036324,242 +0.038244,242 +0.035677,242 +0.035634,242 +0.034792,242 +0.036135,242 +0.036817,242 +0.037817,242 +0.037462,242 +0.036281,242 +0.036753,242 +0.036863,242 +0.035234,242 +0.034721,242 +0.034226,242 +0.034461,242 +0.035540,242 +0.036877,242 +0.036143,242 +0.036095,242 +0.035628,242 +0.034672,242 +0.034271,242 +0.034081,242 +0.034506,242 +0.035000,242 +0.035985,242 +0.035727,242 +0.036704,242 +0.037648,242 +0.035403,242 +0.034006,242 +0.033905,242 +0.034223,242 +0.036224,242 +0.036299,242 +0.038138,242 +0.036845,242 +0.036640,242 +0.036335,242 +0.036843,242 +0.034545,242 +0.033487,242 +0.036115,242 +0.036344,242 +0.036293,242 +0.035307,242 +0.038131,242 +0.045884,242 +0.042915,242 +0.035826,242 +0.036449,242 +0.035700,242 +0.036295,242 +0.039672,242 +0.035614,242 +0.035382,242 +0.034891,242 +0.033864,242 +0.034920,242 +0.035236,242 +0.036033,242 +0.037853,242 +0.036326,242 +0.036606,242 +0.035340,242 +0.038935,242 +0.033753,242 +0.033520,242 +0.038138,242 +0.035472,242 +0.035660,242 +0.035369,242 +0.034935,242 +0.035351,244 +0.035871,244 +0.035230,244 +0.035925,244 +0.038724,244 +0.040129,244 +0.039379,244 +0.038537,244 +0.040497,244 +0.036633,244 +0.035343,244 +0.038747,244 +0.038757,244 +0.045130,244 +0.036858,244 +0.041927,244 +0.039854,244 +0.037641,244 +0.038082,244 +0.043394,244 +0.039307,244 +0.038785,244 +0.037869,244 +0.037780,244 +0.035217,244 +0.034456,244 +0.036203,244 +0.037800,244 +0.040150,244 +0.050008,244 +0.049812,244 +0.041325,244 +0.045832,244 +0.052610,244 +0.052008,244 +0.042045,244 +0.067749,244 +0.072703,244 +0.072166,244 +0.046886,244 +0.038491,244 +0.039296,244 +0.037777,244 +0.049037,244 +0.036943,244 +0.036475,244 +0.036480,244 +0.036279,244 +0.036979,244 +0.035601,244 +0.037431,244 +0.035981,244 +0.035024,244 +0.035396,244 +0.035535,244 +0.035078,244 +0.035980,244 +0.035874,244 +0.035106,244 +0.034888,244 +0.034206,244 +0.034227,244 +0.034895,244 +0.038662,244 +0.034279,244 +0.039300,244 +0.035010,244 +0.034118,244 +0.034979,244 +0.034239,244 +0.034100,244 +0.047447,244 +0.034204,244 +0.034705,244 +0.034445,244 +0.034354,244 +0.034837,244 +0.034082,244 +0.034278,244 +0.034973,244 +0.034284,244 +0.034085,244 +0.034760,244 +0.034259,244 +0.034188,244 +0.034593,244 +0.034133,244 +0.034105,244 +0.034614,244 +0.034142,244 +0.034141,244 +0.034646,244 +0.034292,244 +0.034239,244 +0.034943,244 +0.034119,244 +0.034072,244 +0.034719,244 +0.034357,244 +0.034145,244 +0.035788,246 +0.035212,246 +0.035194,246 +0.035476,246 +0.035298,246 +0.036709,246 +0.035462,246 +0.035223,246 +0.035805,246 +0.035209,246 +0.035165,246 +0.035768,246 +0.035274,246 +0.035219,246 +0.035662,246 +0.035250,246 +0.035914,246 +0.036826,246 +0.038206,246 +0.044112,246 +0.041421,246 +0.043092,246 +0.042983,246 +0.036796,246 +0.039207,246 +0.038178,246 +0.037697,246 +0.039172,246 +0.038369,246 +0.038217,246 +0.037788,246 +0.039724,246 +0.043731,246 +0.039567,246 +0.039280,246 +0.036046,246 +0.035558,246 +0.037500,246 +0.037027,246 +0.037366,246 +0.038814,246 +0.037329,246 +0.036223,246 +0.036504,246 +0.035596,246 +0.036479,246 +0.037131,246 +0.035821,246 +0.036483,246 +0.035860,246 +0.035607,246 +0.036814,246 +0.035801,246 +0.035939,246 +0.036605,246 +0.036062,246 +0.036307,246 +0.035925,246 +0.036517,246 +0.037065,246 +0.036557,246 +0.035529,246 +0.036068,246 +0.036164,246 +0.035511,246 +0.036099,246 +0.035529,246 +0.035457,246 +0.036358,246 +0.035706,246 +0.035986,246 +0.037572,246 +0.035684,246 +0.036861,246 +0.035794,246 +0.035796,246 +0.036792,246 +0.035434,246 +0.035464,246 +0.036024,246 +0.035524,246 +0.035594,246 +0.036032,246 +0.035576,246 +0.036133,246 +0.035656,246 +0.035641,246 +0.036242,246 +0.035668,246 +0.035511,246 +0.036249,246 +0.035679,246 +0.035835,246 +0.036350,246 +0.035769,246 +0.035779,246 +0.036081,246 +0.035742,246 +0.036305,246 +0.035666,246 +0.036538,248 +0.036950,248 +0.036891,248 +0.037282,248 +0.037122,248 +0.035963,248 +0.035966,248 +0.036533,248 +0.035865,248 +0.036491,248 +0.036088,248 +0.035918,248 +0.036324,248 +0.036204,248 +0.036010,248 +0.036408,248 +0.036022,248 +0.035875,248 +0.036484,248 +0.035847,248 +0.035988,248 +0.036638,248 +0.035939,248 +0.036479,248 +0.036101,248 +0.035841,248 +0.037387,248 +0.035967,248 +0.036096,248 +0.036605,248 +0.037319,248 +0.036080,248 +0.036739,248 +0.035905,248 +0.036373,248 +0.036001,248 +0.035857,248 +0.036426,248 +0.036060,248 +0.036116,248 +0.036435,248 +0.036006,248 +0.035934,248 +0.036601,248 +0.036661,248 +0.038456,248 +0.037034,248 +0.036383,248 +0.037245,248 +0.036645,248 +0.036301,248 +0.036790,248 +0.036420,248 +0.036386,248 +0.039304,248 +0.037737,248 +0.036706,248 +0.037622,248 +0.039952,248 +0.039045,248 +0.039536,248 +0.038979,248 +0.037102,248 +0.040524,248 +0.047871,248 +0.039514,248 +0.038784,248 +0.036877,248 +0.036276,248 +0.036576,248 +0.036445,248 +0.036307,248 +0.038011,248 +0.036560,248 +0.036393,248 +0.039587,248 +0.037070,248 +0.038024,248 +0.036550,248 +0.036464,248 +0.039896,248 +0.040696,248 +0.039671,248 +0.037722,248 +0.037045,248 +0.037030,248 +0.036760,248 +0.036654,248 +0.036918,248 +0.036292,248 +0.036506,248 +0.036907,248 +0.036397,248 +0.036666,248 +0.037172,248 +0.036737,248 +0.037231,248 +0.036764,248 +0.037268,248 +0.037170,248 +0.038086,250 +0.038827,250 +0.038990,250 +0.037656,250 +0.039527,250 +0.037633,250 +0.037549,250 +0.038221,250 +0.037844,250 +0.038290,250 +0.037835,250 +0.037638,250 +0.038288,250 +0.037639,250 +0.037595,250 +0.038418,250 +0.037800,250 +0.038053,250 +0.037847,250 +0.037909,250 +0.038100,250 +0.037897,250 +0.037869,250 +0.038147,250 +0.037684,250 +0.038149,250 +0.038995,250 +0.043489,250 +0.045378,250 +0.039512,250 +0.043945,250 +0.041917,250 +0.046253,250 +0.051930,250 +0.061852,250 +0.060873,250 +0.055203,250 +0.056209,250 +0.049196,250 +0.052504,250 +0.054557,250 +0.049361,250 +0.055008,250 +0.048738,250 +0.048519,250 +0.040005,250 +0.052799,250 +0.053327,250 +0.043411,250 +0.044696,250 +0.042284,250 +0.040053,250 +0.043783,250 +0.040671,250 +0.043014,250 +0.041375,250 +0.039464,250 +0.038793,250 +0.037435,250 +0.037281,250 +0.037981,250 +0.037245,250 +0.037327,250 +0.037564,250 +0.037241,250 +0.037451,250 +0.039258,250 +0.037382,250 +0.037922,250 +0.037268,250 +0.037188,250 +0.037485,250 +0.037387,250 +0.038525,250 +0.038325,250 +0.038383,250 +0.038073,250 +0.040982,250 +0.074718,250 +0.038744,250 +0.038323,250 +0.038145,250 +0.037754,250 +0.039391,250 +0.037818,250 +0.038091,250 +0.038323,250 +0.037743,250 +0.038526,250 +0.037601,250 +0.037652,250 +0.038597,250 +0.037943,250 +0.038059,250 +0.037976,250 +0.037702,250 +0.038592,250 +0.037895,250 +0.037840,250 +0.038815,250 +0.038699,252 +0.039045,252 +0.038515,252 +0.038525,252 +0.039196,252 +0.038629,252 +0.038606,252 +0.039003,252 +0.038791,252 +0.039151,252 +0.038370,252 +0.038741,252 +0.039158,252 +0.038488,252 +0.039305,252 +0.038434,252 +0.038216,252 +0.039576,252 +0.038537,252 +0.038717,252 +0.038729,252 +0.038565,252 +0.039139,252 +0.038482,252 +0.038509,252 +0.039110,252 +0.038557,252 +0.039360,252 +0.038386,252 +0.038276,252 +0.039334,252 +0.038254,252 +0.038748,252 +0.038706,252 +0.038297,252 +0.039110,252 +0.038381,252 +0.038306,252 +0.038858,252 +0.038423,252 +0.039294,252 +0.038163,252 +0.037901,252 +0.038654,252 +0.037990,252 +0.038164,252 +0.038542,252 +0.037878,252 +0.038594,252 +0.038343,252 +0.038125,252 +0.038493,252 +0.037896,252 +0.038614,252 +0.038042,252 +0.037831,252 +0.038678,252 +0.038131,252 +0.038024,252 +0.038536,252 +0.042861,252 +0.038422,252 +0.037953,252 +0.037943,252 +0.038348,252 +0.037991,252 +0.038721,252 +0.038117,252 +0.037917,252 +0.038919,252 +0.037938,252 +0.038027,252 +0.039191,252 +0.037861,252 +0.038955,252 +0.040984,252 +0.038092,252 +0.040819,252 +0.038052,252 +0.039542,252 +0.037981,252 +0.037802,252 +0.039468,252 +0.037887,252 +0.037890,252 +0.038429,252 +0.037804,252 +0.038395,252 +0.038648,252 +0.037949,252 +0.038276,252 +0.037851,252 +0.038169,252 +0.039792,252 +0.042231,252 +0.039571,252 +0.038210,252 +0.038467,252 +0.038717,252 +0.038249,252 +0.039936,254 +0.039465,254 +0.039334,254 +0.040065,254 +0.039383,254 +0.040090,254 +0.039435,254 +0.039177,254 +0.040657,254 +0.039187,254 +0.040312,254 +0.039448,254 +0.039488,254 +0.040645,254 +0.040085,254 +0.041609,254 +0.039331,254 +0.039357,254 +0.041614,254 +0.039211,254 +0.041913,254 +0.039449,254 +0.039495,254 +0.041637,254 +0.039478,254 +0.041623,254 +0.039509,254 +0.039517,254 +0.043351,254 +0.039365,254 +0.041827,254 +0.039644,254 +0.039558,254 +0.041600,254 +0.039541,254 +0.041388,254 +0.039354,254 +0.039592,254 +0.041203,254 +0.039634,254 +0.041391,254 +0.039556,254 +0.039549,254 +0.041227,254 +0.039462,254 +0.041692,254 +0.039581,254 +0.039455,254 +0.041425,254 +0.039442,254 +0.041406,254 +0.039491,254 +0.039306,254 +0.042753,254 +0.039219,254 +0.041637,254 +0.039697,254 +0.039207,254 +0.043401,254 +0.039485,254 +0.041004,254 +0.038971,254 +0.039117,254 +0.041379,254 +0.038966,254 +0.040863,254 +0.038944,254 +0.038962,254 +0.042000,254 +0.039254,254 +0.039711,254 +0.039101,254 +0.038850,254 +0.040741,254 +0.039132,254 +0.039386,254 +0.039018,254 +0.038897,254 +0.039604,254 +0.039720,254 +0.039484,254 +0.039226,254 +0.039947,254 +0.039878,254 +0.039104,254 +0.039400,254 +0.040058,254 +0.039104,254 +0.039540,254 +0.039171,254 +0.039434,254 +0.039560,254 +0.039144,254 +0.039675,254 +0.039228,254 +0.039316,254 +0.039891,254 +0.038911,254 +0.039681,254 +0.039048,254 +0.045297,256 +0.045849,256 +0.045395,256 +0.046163,256 +0.045344,256 +0.046896,256 +0.045613,256 +0.048069,256 +0.045930,256 +0.046376,256 +0.045710,256 +0.046088,256 +0.047383,256 +0.045935,256 +0.047501,256 +0.045963,256 +0.047293,256 +0.046090,256 +0.047512,256 +0.045820,256 +0.047847,256 +0.045723,256 +0.047504,256 +0.045714,256 +0.046280,256 +0.048077,256 +0.045847,256 +0.047505,256 +0.045955,256 +0.047295,256 +0.045545,256 +0.047311,256 +0.045926,256 +0.047432,256 +0.045836,256 +0.047683,256 +0.045752,256 +0.047709,256 +0.046274,256 +0.046592,256 +0.047855,256 +0.050953,256 +0.047916,256 +0.045931,256 +0.047817,256 +0.046053,256 +0.049004,256 +0.046315,256 +0.048031,256 +0.046460,256 +0.048593,256 +0.046224,256 +0.047719,256 +0.045832,256 +0.047828,256 +0.046105,256 +0.045767,256 +0.047757,256 +0.045915,256 +0.048175,256 +0.046601,256 +0.047080,256 +0.045218,256 +0.046985,256 +0.045308,256 +0.046867,256 +0.045136,256 +0.047985,256 +0.045647,256 +0.045707,256 +0.046499,256 +0.045497,256 +0.047160,256 +0.045219,256 +0.047095,256 +0.045170,256 +0.046713,256 +0.045684,256 +0.046960,256 +0.045355,256 +0.046547,256 +0.045593,256 +0.045185,256 +0.046832,256 +0.045076,256 +0.047068,256 +0.045091,256 +0.046798,256 +0.045298,256 +0.048013,256 +0.045422,256 +0.046954,256 +0.045552,256 +0.046425,256 +0.046089,256 +0.045377,256 +0.045881,256 +0.045229,256 +0.045887,256 +0.045230,256 +0.042081,258 +0.042614,258 +0.041833,258 +0.042086,258 +0.041492,258 +0.043070,258 +0.042303,258 +0.042069,258 +0.042106,258 +0.041970,258 +0.042518,258 +0.041982,258 +0.042699,258 +0.041835,258 +0.042066,258 +0.042568,258 +0.042002,258 +0.042405,258 +0.042074,258 +0.042611,258 +0.042106,258 +0.041835,258 +0.042608,258 +0.041898,258 +0.042480,258 +0.042001,258 +0.041909,258 +0.042463,258 +0.045149,258 +0.043737,258 +0.042288,258 +0.042411,258 +0.041625,258 +0.042247,258 +0.042165,258 +0.041585,258 +0.042754,258 +0.041842,258 +0.043590,258 +0.041990,258 +0.043031,258 +0.044013,258 +0.041785,258 +0.043605,258 +0.041802,258 +0.043916,258 +0.041727,258 +0.041861,258 +0.043481,258 +0.042282,258 +0.043696,258 +0.042073,258 +0.043473,258 +0.041695,258 +0.041836,258 +0.043509,258 +0.041741,258 +0.043380,258 +0.042463,258 +0.041709,258 +0.042632,258 +0.042106,258 +0.042620,258 +0.042544,258 +0.045255,258 +0.043871,258 +0.041508,258 +0.041967,258 +0.041501,258 +0.041899,258 +0.041971,258 +0.041960,258 +0.041676,258 +0.041295,258 +0.042285,258 +0.041558,258 +0.042110,258 +0.041293,258 +0.041305,258 +0.042215,258 +0.041494,258 +0.041830,258 +0.041343,258 +0.041394,258 +0.042209,258 +0.041295,258 +0.042063,258 +0.043349,258 +0.045494,258 +0.043548,258 +0.041453,258 +0.046725,258 +0.041732,258 +0.046617,258 +0.041177,258 +0.046633,258 +0.041518,258 +0.045840,258 +0.042901,258 +0.041345,258 +0.048255,260 +0.042324,260 +0.047944,260 +0.042678,260 +0.047935,260 +0.042694,260 +0.044666,260 +0.046949,260 +0.042397,260 +0.048135,260 +0.042603,260 +0.047941,260 +0.042574,260 +0.048251,260 +0.042447,260 +0.047803,260 +0.042785,260 +0.042291,260 +0.048307,260 +0.042330,260 +0.048392,260 +0.042397,260 +0.048226,260 +0.042667,260 +0.047873,260 +0.042525,260 +0.042523,260 +0.048155,260 +0.042379,260 +0.049098,260 +0.042286,260 +0.048006,260 +0.042583,260 +0.047957,260 +0.042498,260 +0.043690,260 +0.046701,260 +0.042336,260 +0.048451,260 +0.042400,260 +0.048644,260 +0.042495,260 +0.048564,260 +0.042649,260 +0.045546,260 +0.045037,260 +0.042463,260 +0.048389,260 +0.042364,260 +0.047973,260 +0.042311,260 +0.048661,260 +0.042668,260 +0.047775,260 +0.043000,260 +0.042421,260 +0.049528,260 +0.042978,260 +0.048586,260 +0.042669,260 +0.048119,260 +0.042438,260 +0.048009,260 +0.042556,260 +0.043498,260 +0.047218,260 +0.042378,260 +0.048384,260 +0.042388,260 +0.048305,260 +0.042455,260 +0.048446,260 +0.042351,260 +0.044113,260 +0.047139,260 +0.042322,260 +0.048408,260 +0.042434,260 +0.048234,260 +0.042494,260 +0.048293,260 +0.042480,260 +0.047994,260 +0.042675,260 +0.042313,260 +0.048334,260 +0.042412,260 +0.048358,260 +0.042306,260 +0.048182,260 +0.042543,260 +0.048056,260 +0.042424,260 +0.042349,260 +0.048096,260 +0.042478,260 +0.049024,260 +0.042525,260 +0.048152,260 +0.042303,260 +0.051544,262 +0.045612,262 +0.050535,262 +0.045288,262 +0.048709,262 +0.047252,262 +0.045144,262 +0.051457,262 +0.045062,262 +0.051046,262 +0.045063,262 +0.050513,262 +0.045180,262 +0.051306,262 +0.045181,262 +0.050392,262 +0.045029,262 +0.051435,262 +0.045635,262 +0.050680,262 +0.045062,262 +0.050670,262 +0.045119,262 +0.050427,262 +0.045001,262 +0.046788,262 +0.049032,262 +0.045134,262 +0.050543,262 +0.045412,262 +0.051262,262 +0.045004,262 +0.050438,262 +0.045083,262 +0.051226,262 +0.045002,262 +0.050308,262 +0.045029,262 +0.052155,262 +0.045088,262 +0.050504,262 +0.045078,262 +0.050475,262 +0.045118,262 +0.050361,262 +0.046407,262 +0.045584,262 +0.050035,262 +0.045313,262 +0.051202,262 +0.045060,262 +0.051355,262 +0.045182,262 +0.051282,262 +0.049080,262 +0.046642,262 +0.045015,262 +0.045746,262 +0.045166,262 +0.045918,262 +0.045070,262 +0.045495,262 +0.045338,262 +0.045044,262 +0.045700,262 +0.045056,262 +0.045916,262 +0.045165,262 +0.045669,262 +0.045212,262 +0.045766,262 +0.045216,262 +0.045616,262 +0.045724,262 +0.045022,262 +0.045808,262 +0.045308,262 +0.047476,262 +0.045366,262 +0.045937,262 +0.045114,262 +0.045810,262 +0.045430,262 +0.045258,262 +0.045845,262 +0.045254,262 +0.045789,262 +0.045173,262 +0.045872,262 +0.045020,262 +0.045713,262 +0.045355,262 +0.045629,262 +0.045504,262 +0.045357,262 +0.045746,262 +0.045122,262 +0.045805,262 +0.045116,262 +0.045932,262 +0.045572,264 +0.045377,264 +0.044911,264 +0.045498,264 +0.045480,264 +0.045013,264 +0.045361,264 +0.044835,264 +0.045345,264 +0.044850,264 +0.045363,264 +0.044819,264 +0.045119,264 +0.045038,264 +0.044929,264 +0.045277,264 +0.045018,264 +0.045337,264 +0.044766,264 +0.045071,264 +0.045004,264 +0.045191,264 +0.044777,264 +0.044833,264 +0.045091,264 +0.044788,264 +0.045319,264 +0.044897,264 +0.045363,264 +0.045009,264 +0.045403,264 +0.044783,264 +0.044908,264 +0.045218,264 +0.044848,264 +0.045603,264 +0.044800,264 +0.045850,264 +0.047181,264 +0.045717,264 +0.044871,264 +0.045471,264 +0.044947,264 +0.044940,264 +0.045371,264 +0.044852,264 +0.045318,264 +0.044823,264 +0.045581,264 +0.044927,264 +0.045449,264 +0.045173,264 +0.044880,264 +0.045276,264 +0.045357,264 +0.045468,264 +0.044777,264 +0.045276,264 +0.044682,264 +0.047804,264 +0.046794,264 +0.046725,264 +0.044823,264 +0.044911,264 +0.049118,264 +0.045572,264 +0.045130,264 +0.045017,264 +0.045110,264 +0.044772,264 +0.045407,264 +0.045054,264 +0.045183,264 +0.045040,264 +0.044867,264 +0.045725,264 +0.044958,264 +0.045318,264 +0.044947,264 +0.045226,264 +0.044847,264 +0.045403,264 +0.045587,264 +0.045449,264 +0.045266,264 +0.044929,264 +0.045318,264 +0.044923,264 +0.045372,264 +0.045250,264 +0.045429,264 +0.044795,264 +0.044988,264 +0.045278,264 +0.045132,264 +0.045579,264 +0.044765,264 +0.045500,264 +0.044827,264 +0.045411,264 +0.048093,266 +0.048554,266 +0.047857,266 +0.048832,266 +0.048130,266 +0.048065,266 +0.048130,266 +0.047908,266 +0.048489,266 +0.048060,266 +0.048360,266 +0.047964,266 +0.048440,266 +0.047902,266 +0.048555,266 +0.048409,266 +0.048603,266 +0.047875,266 +0.048451,266 +0.047899,266 +0.048415,266 +0.047878,266 +0.048513,266 +0.048003,266 +0.048460,266 +0.048109,266 +0.048418,266 +0.047827,266 +0.048355,266 +0.048271,266 +0.048101,266 +0.048250,266 +0.047861,266 +0.048418,266 +0.047947,266 +0.048736,266 +0.047898,266 +0.048680,266 +0.047957,266 +0.048521,266 +0.048046,266 +0.048546,266 +0.048040,266 +0.049049,266 +0.047991,266 +0.048726,266 +0.048007,266 +0.048397,266 +0.047939,266 +0.048432,266 +0.047919,266 +0.048511,266 +0.048066,266 +0.048158,266 +0.048293,266 +0.048010,266 +0.048770,266 +0.048032,266 +0.048726,266 +0.047981,266 +0.048417,266 +0.048049,266 +0.048393,266 +0.048031,266 +0.048320,266 +0.048281,266 +0.049239,266 +0.047884,266 +0.048425,266 +0.047931,266 +0.048400,266 +0.047844,266 +0.048448,266 +0.048015,266 +0.048546,266 +0.048001,266 +0.048574,266 +0.048322,266 +0.048336,266 +0.048125,266 +0.048212,266 +0.048421,266 +0.048035,266 +0.048492,266 +0.047906,266 +0.048542,266 +0.048039,266 +0.048647,266 +0.047852,266 +0.048421,266 +0.047796,266 +0.048576,266 +0.047807,266 +0.048873,266 +0.047809,266 +0.048401,266 +0.047913,266 +0.048670,266 +0.048133,266 +0.048864,266 +0.048275,268 +0.048696,268 +0.048144,268 +0.048465,268 +0.048125,268 +0.048255,268 +0.048431,268 +0.048170,268 +0.048705,268 +0.048052,268 +0.048540,268 +0.048015,268 +0.048595,268 +0.048046,268 +0.048586,268 +0.048002,268 +0.049067,268 +0.048110,268 +0.048884,268 +0.048117,268 +0.048584,268 +0.048039,268 +0.048778,268 +0.048048,268 +0.048461,268 +0.048128,268 +0.048589,268 +0.048218,268 +0.048745,268 +0.048078,268 +0.048564,268 +0.048037,268 +0.048153,268 +0.048413,268 +0.047985,268 +0.048706,268 +0.048094,268 +0.048498,268 +0.048325,268 +0.048784,268 +0.048145,268 +0.048614,268 +0.048069,268 +0.048603,268 +0.048081,268 +0.048666,268 +0.048397,268 +0.048522,268 +0.048516,268 +0.048846,268 +0.048086,268 +0.048523,268 +0.048044,268 +0.048577,268 +0.048127,268 +0.048515,268 +0.048060,268 +0.048525,268 +0.048301,268 +0.048229,268 +0.048670,268 +0.048532,268 +0.048557,268 +0.048008,268 +0.048688,268 +0.048004,268 +0.048554,268 +0.048121,268 +0.048588,268 +0.048915,268 +0.048832,268 +0.048046,268 +0.048471,268 +0.048041,268 +0.048648,268 +0.048166,268 +0.048498,268 +0.048032,268 +0.048534,268 +0.048124,268 +0.048592,268 +0.048203,268 +0.048449,268 +0.048046,268 +0.048568,268 +0.048168,268 +0.048328,268 +0.048358,268 +0.048142,268 +0.048514,268 +0.048489,268 +0.048674,268 +0.048018,268 +0.048568,268 +0.048246,268 +0.048617,268 +0.048178,268 +0.048707,268 +0.048113,268 +0.048557,268 +0.051342,270 +0.051541,270 +0.051119,270 +0.051441,270 +0.051187,270 +0.051469,270 +0.050958,270 +0.051311,270 +0.051083,270 +0.051505,270 +0.051255,270 +0.051646,270 +0.050894,270 +0.051497,270 +0.050975,270 +0.051511,270 +0.050891,270 +0.051461,270 +0.051058,270 +0.051288,270 +0.051191,270 +0.051547,270 +0.051195,270 +0.051279,270 +0.051556,270 +0.051011,270 +0.051468,270 +0.050985,270 +0.051403,270 +0.051001,270 +0.051945,270 +0.050997,270 +0.051442,270 +0.051165,270 +0.051447,270 +0.051047,270 +0.051476,270 +0.051056,270 +0.051486,270 +0.051006,270 +0.051561,270 +0.051181,270 +0.051743,270 +0.051012,270 +0.051433,270 +0.050948,270 +0.051489,270 +0.051084,270 +0.051561,270 +0.051276,270 +0.051648,270 +0.050909,270 +0.051372,270 +0.051003,270 +0.051535,270 +0.050986,270 +0.051464,270 +0.050818,270 +0.051522,270 +0.050939,270 +0.051597,270 +0.050956,270 +0.051504,270 +0.050854,270 +0.051526,270 +0.050830,270 +0.051485,270 +0.050898,270 +0.051404,270 +0.056755,270 +0.052415,270 +0.051187,270 +0.051174,270 +0.051398,270 +0.050898,270 +0.051421,270 +0.051019,270 +0.051525,270 +0.050984,270 +0.051634,270 +0.051033,270 +0.051498,270 +0.050999,270 +0.051528,270 +0.050991,270 +0.051460,270 +0.050919,270 +0.051540,270 +0.051221,270 +0.051615,270 +0.050929,270 +0.051637,270 +0.051243,270 +0.051707,270 +0.051443,270 +0.051519,270 +0.050925,270 +0.051655,270 +0.051174,270 +0.051755,270 +0.049435,272 +0.049712,272 +0.049166,272 +0.049631,272 +0.049171,272 +0.049689,272 +0.049117,272 +0.049701,272 +0.049306,272 +0.049876,272 +0.049086,272 +0.049662,272 +0.049139,272 +0.049734,272 +0.049166,272 +0.049868,272 +0.049411,272 +0.049673,272 +0.049128,272 +0.049832,272 +0.049201,272 +0.049724,272 +0.051215,272 +0.050721,272 +0.049178,272 +0.050670,272 +0.049205,272 +0.050658,272 +0.049243,272 +0.050589,272 +0.049139,272 +0.050582,272 +0.049158,272 +0.050957,272 +0.049261,272 +0.050503,272 +0.049055,272 +0.050749,272 +0.049715,272 +0.051716,272 +0.049319,272 +0.050582,272 +0.049194,272 +0.050733,272 +0.049297,272 +0.051079,272 +0.049202,272 +0.050302,272 +0.049431,272 +0.050735,272 +0.049148,272 +0.050486,272 +0.049299,272 +0.050421,272 +0.049318,272 +0.050266,272 +0.049265,272 +0.050209,272 +0.049803,272 +0.051081,272 +0.049932,272 +0.050271,272 +0.049587,272 +0.050158,272 +0.049592,272 +0.050020,272 +0.049635,272 +0.050008,272 +0.050422,272 +0.049948,272 +0.049773,272 +0.049773,272 +0.050027,272 +0.049700,272 +0.050082,272 +0.049474,272 +0.050181,272 +0.049382,272 +0.050677,272 +0.049202,272 +0.052091,272 +0.049543,272 +0.050200,272 +0.049158,272 +0.050576,272 +0.049119,272 +0.050529,272 +0.049232,272 +0.050573,272 +0.049112,272 +0.050611,272 +0.049247,272 +0.050781,272 +0.049196,272 +0.050974,272 +0.049342,272 +0.050484,272 +0.049243,272 +0.050431,272 +0.049244,272 +0.055936,274 +0.053476,274 +0.053482,274 +0.054314,274 +0.052765,274 +0.054135,274 +0.052769,274 +0.054386,274 +0.053011,274 +0.054183,274 +0.052823,274 +0.054154,274 +0.052873,274 +0.054188,274 +0.052746,274 +0.054069,274 +0.052887,274 +0.054350,274 +0.054909,274 +0.053474,274 +0.053989,274 +0.052878,274 +0.054203,274 +0.052980,274 +0.054277,274 +0.052768,274 +0.054341,274 +0.052917,274 +0.054331,274 +0.052932,274 +0.054125,274 +0.052855,274 +0.054084,274 +0.053899,274 +0.053103,274 +0.054212,274 +0.052839,274 +0.055637,274 +0.053230,274 +0.054193,274 +0.052798,274 +0.054121,274 +0.052883,274 +0.054491,274 +0.053176,274 +0.054155,274 +0.052861,274 +0.054216,274 +0.053711,274 +0.053177,274 +0.054143,274 +0.052794,274 +0.054244,274 +0.052822,274 +0.054396,274 +0.052789,274 +0.055424,274 +0.052788,274 +0.054105,274 +0.052730,274 +0.054005,274 +0.052820,274 +0.054166,274 +0.053538,274 +0.053382,274 +0.054193,274 +0.053835,274 +0.055035,274 +0.055093,274 +0.055100,274 +0.054008,274 +0.055025,274 +0.053819,274 +0.054744,274 +0.053556,274 +0.056024,274 +0.054414,274 +0.053970,274 +0.055162,274 +0.053304,274 +0.055780,274 +0.053383,274 +0.055202,274 +0.053354,274 +0.054638,274 +0.053250,274 +0.054771,274 +0.053860,274 +0.054538,274 +0.054270,274 +0.053734,274 +0.054906,274 +0.053493,274 +0.055184,274 +0.053665,274 +0.053948,274 +0.053557,274 +0.054322,274 +0.053787,274 +0.053672,274 +0.054128,276 +0.054896,276 +0.054354,276 +0.054290,276 +0.054894,276 +0.053618,276 +0.054930,276 +0.053730,276 +0.054892,276 +0.054017,276 +0.056243,276 +0.054117,276 +0.056417,276 +0.054062,276 +0.055307,276 +0.055088,276 +0.054532,276 +0.054670,276 +0.053246,276 +0.054359,276 +0.053118,276 +0.054349,276 +0.053165,276 +0.054354,276 +0.053115,276 +0.054216,276 +0.053150,276 +0.054336,276 +0.054530,276 +0.053243,276 +0.055437,276 +0.053164,276 +0.054328,276 +0.053144,276 +0.054764,276 +0.054260,276 +0.054312,276 +0.056166,276 +0.055131,276 +0.053252,276 +0.053969,276 +0.054267,276 +0.053053,276 +0.054094,276 +0.053045,276 +0.053980,276 +0.053225,276 +0.055082,276 +0.053120,276 +0.053623,276 +0.053141,276 +0.054539,276 +0.053074,276 +0.053560,276 +0.053681,276 +0.053762,276 +0.055634,276 +0.053254,276 +0.053405,276 +0.054822,276 +0.054325,276 +0.053122,276 +0.053438,276 +0.053207,276 +0.053634,276 +0.053511,276 +0.053607,276 +0.053119,276 +0.053694,276 +0.053250,276 +0.053541,276 +0.053725,276 +0.053152,276 +0.053525,276 +0.053539,276 +0.053485,276 +0.053115,276 +0.053708,276 +0.053342,276 +0.053600,276 +0.053844,276 +0.053480,276 +0.053116,276 +0.053744,276 +0.053231,276 +0.053467,276 +0.053083,276 +0.053788,276 +0.053221,276 +0.053674,276 +0.053589,276 +0.053146,276 +0.053575,276 +0.053412,276 +0.053608,276 +0.053061,276 +0.053592,276 +0.053129,276 +0.053909,276 +0.052992,276 +0.056686,278 +0.056121,278 +0.056500,278 +0.056478,278 +0.055945,278 +0.056477,278 +0.055941,278 +0.056564,278 +0.055995,278 +0.056528,278 +0.056414,278 +0.056325,278 +0.056512,278 +0.056066,278 +0.056793,278 +0.056123,278 +0.056582,278 +0.055945,278 +0.056602,278 +0.056426,278 +0.056327,278 +0.056475,278 +0.056034,278 +0.056723,278 +0.056029,278 +0.056717,278 +0.056075,278 +0.056660,278 +0.056743,278 +0.056300,278 +0.056511,278 +0.055932,278 +0.056550,278 +0.056184,278 +0.056580,278 +0.056058,278 +0.056266,278 +0.056487,278 +0.056185,278 +0.056611,278 +0.055784,278 +0.056613,278 +0.056066,278 +0.056499,278 +0.056814,278 +0.055931,278 +0.056476,278 +0.056853,278 +0.056435,278 +0.055918,278 +0.056794,278 +0.057376,278 +0.056570,278 +0.056438,278 +0.055998,278 +0.056864,278 +0.056111,278 +0.056630,278 +0.055871,278 +0.056763,278 +0.056253,278 +0.056417,278 +0.056558,278 +0.055982,278 +0.056670,278 +0.055937,278 +0.056469,278 +0.055934,278 +0.056489,278 +0.056263,278 +0.056659,278 +0.056447,278 +0.056029,278 +0.056709,278 +0.056107,278 +0.056422,278 +0.055829,278 +0.056632,278 +0.056431,278 +0.055938,278 +0.056483,278 +0.055816,278 +0.056627,278 +0.055849,278 +0.056359,278 +0.055843,278 +0.057168,278 +0.056457,278 +0.055904,278 +0.056399,278 +0.055899,278 +0.057277,278 +0.055828,278 +0.056306,278 +0.055929,278 +0.056550,278 +0.056387,278 +0.055821,278 +0.056925,278 +0.056030,278 +0.056039,280 +0.054997,280 +0.056157,280 +0.055203,280 +0.055545,280 +0.055597,280 +0.055629,280 +0.055476,280 +0.055143,280 +0.055797,280 +0.055150,280 +0.055650,280 +0.055104,280 +0.055887,280 +0.055714,280 +0.055130,280 +0.055771,280 +0.055378,280 +0.055863,280 +0.055104,280 +0.055756,280 +0.055104,280 +0.055971,280 +0.055739,280 +0.055151,280 +0.055592,280 +0.055293,280 +0.055854,280 +0.055124,280 +0.055650,280 +0.055182,280 +0.055857,280 +0.055306,280 +0.055486,280 +0.055568,280 +0.055182,280 +0.055911,280 +0.055098,280 +0.055473,280 +0.055237,280 +0.055612,280 +0.055152,280 +0.055658,280 +0.055459,280 +0.055312,280 +0.055762,280 +0.055169,280 +0.055615,280 +0.055152,280 +0.055908,280 +0.055204,280 +0.055705,280 +0.055386,280 +0.055221,280 +0.056019,280 +0.055110,280 +0.055731,280 +0.055292,280 +0.056103,280 +0.055521,280 +0.055667,280 +0.055302,280 +0.055408,280 +0.055828,280 +0.055129,280 +0.055558,280 +0.055119,280 +0.055847,280 +0.055210,280 +0.055756,280 +0.055195,280 +0.055800,280 +0.055859,280 +0.055122,280 +0.055436,280 +0.055093,280 +0.055607,280 +0.055062,280 +0.055480,280 +0.055228,280 +0.055440,280 +0.055857,280 +0.055213,280 +0.055463,280 +0.055038,280 +0.055800,280 +0.055128,280 +0.055669,280 +0.055285,280 +0.055366,280 +0.055615,280 +0.055130,280 +0.055400,280 +0.055457,280 +0.055801,280 +0.056098,280 +0.055713,280 +0.055297,280 +0.055464,280 +0.055897,280 +0.061178,282 +0.060940,282 +0.060385,282 +0.061193,282 +0.060907,282 +0.060585,282 +0.060973,282 +0.061083,282 +0.060710,282 +0.060792,282 +0.060495,282 +0.060994,282 +0.060557,282 +0.060853,282 +0.060833,282 +0.060674,282 +0.061016,282 +0.060525,282 +0.060771,282 +0.060985,282 +0.060689,282 +0.060932,282 +0.060415,282 +0.060865,282 +0.065272,282 +0.060795,282 +0.060861,282 +0.060535,282 +0.060739,282 +0.060891,282 +0.060540,282 +0.060519,282 +0.060961,282 +0.060622,282 +0.060677,282 +0.060447,282 +0.060994,282 +0.060663,282 +0.060750,282 +0.060640,282 +0.060824,282 +0.061117,282 +0.060853,282 +0.060488,282 +0.061053,282 +0.060691,282 +0.060881,282 +0.060800,282 +0.060519,282 +0.060955,282 +0.060484,282 +0.060771,282 +0.061039,282 +0.060620,282 +0.061179,282 +0.060412,282 +0.060860,282 +0.061263,282 +0.060412,282 +0.060798,282 +0.060409,282 +0.061082,282 +0.060783,282 +0.060369,282 +0.060791,282 +0.060680,282 +0.060823,282 +0.060749,282 +0.060454,282 +0.060993,282 +0.060702,282 +0.060723,282 +0.060732,282 +0.060771,282 +0.060674,282 +0.060352,282 +0.060997,282 +0.060970,282 +0.060575,282 +0.060690,282 +0.060320,282 +0.061755,282 +0.060964,282 +0.060513,282 +0.060540,282 +0.060371,282 +0.060994,282 +0.061590,282 +0.060600,282 +0.061419,282 +0.060636,282 +0.060621,282 +0.060998,282 +0.060314,282 +0.060860,282 +0.060558,282 +0.060567,282 +0.060689,282 +0.060647,282 +0.060750,282 +0.058921,284 +0.058936,284 +0.059176,284 +0.058603,284 +0.059371,284 +0.058771,284 +0.060202,284 +0.059112,284 +0.058822,284 +0.059130,284 +0.058993,284 +0.059290,284 +0.059066,284 +0.058856,284 +0.059348,284 +0.059093,284 +0.059185,284 +0.058805,284 +0.059290,284 +0.059479,284 +0.059320,284 +0.059182,284 +0.058853,284 +0.059464,284 +0.059027,284 +0.058661,284 +0.058992,284 +0.058628,284 +0.060052,284 +0.058768,284 +0.058889,284 +0.058936,284 +0.058981,284 +0.059222,284 +0.058769,284 +0.059221,284 +0.059170,284 +0.059063,284 +0.059002,284 +0.058687,284 +0.059421,284 +0.058926,284 +0.058686,284 +0.059023,284 +0.058684,284 +0.059015,284 +0.058624,284 +0.059053,284 +0.059106,284 +0.058753,284 +0.059009,284 +0.058660,284 +0.059045,284 +0.058886,284 +0.059208,284 +0.058953,284 +0.058749,284 +0.059335,284 +0.058585,284 +0.059025,284 +0.059127,284 +0.058718,284 +0.059328,284 +0.058785,284 +0.059074,284 +0.059040,284 +0.059038,284 +0.059060,284 +0.058690,284 +0.059024,284 +0.058809,284 +0.062781,284 +0.062612,284 +0.059017,284 +0.062422,284 +0.061937,284 +0.058787,284 +0.062778,284 +0.058929,284 +0.062076,284 +0.062005,284 +0.058849,284 +0.062248,284 +0.058850,284 +0.061965,284 +0.061794,284 +0.060139,284 +0.063142,284 +0.059049,284 +0.061887,284 +0.061915,284 +0.058789,284 +0.061870,284 +0.058607,284 +0.061869,284 +0.062020,284 +0.058899,284 +0.061880,284 +0.058643,284 +0.062002,284 +0.065981,286 +0.063085,286 +0.065705,286 +0.066395,286 +0.063186,286 +0.065908,286 +0.065949,286 +0.062979,286 +0.065761,286 +0.063785,286 +0.064798,286 +0.064375,286 +0.062746,286 +0.063914,286 +0.063989,286 +0.062908,286 +0.064041,286 +0.063173,286 +0.062956,286 +0.063980,286 +0.063076,286 +0.063271,286 +0.063561,286 +0.062711,286 +0.063212,286 +0.063110,286 +0.063045,286 +0.063386,286 +0.062728,286 +0.063221,286 +0.063484,286 +0.063042,286 +0.063231,286 +0.063095,286 +0.062986,286 +0.063989,286 +0.062867,286 +0.063241,286 +0.063624,286 +0.062800,286 +0.063251,286 +0.063172,286 +0.062871,286 +0.063358,286 +0.062740,286 +0.063326,286 +0.063316,286 +0.062790,286 +0.063419,286 +0.063193,286 +0.062935,286 +0.063784,286 +0.063122,286 +0.064094,286 +0.067483,286 +0.062756,286 +0.063161,286 +0.063158,286 +0.062857,286 +0.063157,286 +0.063145,286 +0.062850,286 +0.063292,286 +0.062744,286 +0.063340,286 +0.063324,286 +0.062920,286 +0.063674,286 +0.063221,286 +0.064689,286 +0.063610,286 +0.062748,286 +0.064264,286 +0.063843,286 +0.062842,286 +0.063239,286 +0.063366,286 +0.063586,286 +0.063319,286 +0.063017,286 +0.063736,286 +0.063332,286 +0.062838,286 +0.063847,286 +0.063231,286 +0.063415,286 +0.063301,286 +0.063123,286 +0.062875,286 +0.063330,286 +0.063156,286 +0.063569,286 +0.063378,286 +0.063101,286 +0.063237,286 +0.063325,286 +0.062859,286 +0.063421,286 +0.062976,286 +0.063373,286 +0.065231,288 +0.065049,288 +0.065202,288 +0.065060,288 +0.064777,288 +0.065043,288 +0.064091,288 +0.063515,288 +0.064231,288 +0.064605,288 +0.063848,288 +0.064219,288 +0.063622,288 +0.063975,288 +0.064850,288 +0.064732,288 +0.065307,288 +0.065324,288 +0.064693,288 +0.065179,288 +0.065310,288 +0.064844,288 +0.065290,288 +0.064943,288 +0.065224,288 +0.065342,288 +0.064823,288 +0.065187,288 +0.063950,288 +0.063716,288 +0.064065,288 +0.064224,288 +0.063697,288 +0.064055,288 +0.063800,288 +0.063614,288 +0.064130,288 +0.063993,288 +0.063986,288 +0.064079,288 +0.063585,288 +0.064072,288 +0.065238,288 +0.065154,288 +0.065189,288 +0.065756,288 +0.064803,288 +0.065795,288 +0.065136,288 +0.064741,288 +0.065112,288 +0.064663,288 +0.065022,288 +0.065250,288 +0.064910,288 +0.065307,288 +0.065144,288 +0.064645,288 +0.065135,288 +0.065097,288 +0.064721,288 +0.065196,288 +0.065120,288 +0.064938,288 +0.065088,288 +0.064598,288 +0.065139,288 +0.065346,288 +0.064673,288 +0.065012,288 +0.065111,288 +0.064899,288 +0.064962,288 +0.065290,288 +0.064877,288 +0.065087,288 +0.065402,288 +0.064656,288 +0.065058,288 +0.064950,288 +0.064708,288 +0.064946,288 +0.064646,288 +0.064967,288 +0.065059,288 +0.064819,288 +0.064989,288 +0.065037,288 +0.064656,288 +0.065418,288 +0.065141,288 +0.065037,288 +0.064033,288 +0.063644,288 +0.063892,288 +0.063866,288 +0.064388,288 +0.065006,288 +0.065188,288 +0.064741,288 +0.066894,290 +0.066439,290 +0.065936,290 +0.066189,290 +0.066283,290 +0.065873,290 +0.066252,290 +0.066334,290 +0.066409,290 +0.066338,290 +0.066291,290 +0.065812,290 +0.066247,290 +0.066345,290 +0.065786,290 +0.066483,290 +0.066503,290 +0.066027,290 +0.065965,290 +0.066054,290 +0.066133,290 +0.066230,290 +0.065766,290 +0.066377,290 +0.066257,290 +0.065813,290 +0.066228,290 +0.066223,290 +0.065864,290 +0.066141,290 +0.066147,290 +0.065878,290 +0.066227,290 +0.066032,290 +0.065745,290 +0.066243,290 +0.066123,290 +0.066314,290 +0.066257,290 +0.066300,290 +0.065877,290 +0.066223,290 +0.066203,290 +0.066044,290 +0.066232,290 +0.066328,290 +0.065944,290 +0.066421,290 +0.066077,290 +0.066266,290 +0.066172,290 +0.066210,290 +0.065911,290 +0.066374,290 +0.065973,290 +0.066060,290 +0.066242,290 +0.065823,290 +0.066221,290 +0.066933,290 +0.065836,290 +0.066934,290 +0.066470,290 +0.065773,290 +0.066684,290 +0.066227,290 +0.065889,290 +0.066280,290 +0.066238,290 +0.065969,290 +0.066354,290 +0.066274,290 +0.065947,290 +0.066260,290 +0.066301,290 +0.065937,290 +0.066530,290 +0.066418,290 +0.066328,290 +0.066159,290 +0.066282,290 +0.065979,290 +0.066425,290 +0.066258,290 +0.066737,290 +0.066388,290 +0.066281,290 +0.065948,290 +0.066293,290 +0.066228,290 +0.066327,290 +0.066376,290 +0.066135,290 +0.066085,290 +0.066672,290 +0.066038,290 +0.066262,290 +0.066243,290 +0.065868,290 +0.067703,290 +0.068319,292 +0.065282,292 +0.066127,292 +0.066207,292 +0.065202,292 +0.065459,292 +0.065341,292 +0.065483,292 +0.065563,292 +0.065269,292 +0.065137,292 +0.065553,292 +0.066180,292 +0.065189,292 +0.065532,292 +0.065671,292 +0.065080,292 +0.065441,292 +0.065277,292 +0.066142,292 +0.065382,292 +0.065143,292 +0.065610,292 +0.065445,292 +0.064946,292 +0.065470,292 +0.065479,292 +0.065502,292 +0.065399,292 +0.065523,292 +0.065342,292 +0.065557,292 +0.065380,292 +0.065116,292 +0.065437,292 +0.065276,292 +0.065088,292 +0.065440,292 +0.065563,292 +0.065113,292 +0.065422,292 +0.067850,292 +0.065228,292 +0.065730,292 +0.065117,292 +0.065829,292 +0.065496,292 +0.065036,292 +0.065513,292 +0.065588,292 +0.065061,292 +0.065361,292 +0.065541,292 +0.065403,292 +0.065816,292 +0.065784,292 +0.065190,292 +0.065547,292 +0.065565,292 +0.065511,292 +0.066175,292 +0.065516,292 +0.065099,292 +0.065469,292 +0.065223,292 +0.065155,292 +0.065435,292 +0.065118,292 +0.065490,292 +0.065777,292 +0.064977,292 +0.065431,292 +0.065489,292 +0.065406,292 +0.065351,292 +0.065495,292 +0.067420,292 +0.065514,292 +0.065273,292 +0.065096,292 +0.065467,292 +0.065280,292 +0.065053,292 +0.065718,292 +0.065420,292 +0.065287,292 +0.065960,292 +0.065394,292 +0.065229,292 +0.066330,292 +0.065249,292 +0.065580,292 +0.065533,292 +0.065008,292 +0.065597,292 +0.065550,292 +0.065213,292 +0.065404,292 +0.065527,292 +0.065221,292 +0.070272,294 +0.069894,294 +0.069447,294 +0.069989,294 +0.070190,294 +0.069640,294 +0.069925,294 +0.069958,294 +0.069810,294 +0.069592,294 +0.070002,294 +0.069833,294 +0.069407,294 +0.070111,294 +0.070008,294 +0.069346,294 +0.069899,294 +0.070334,294 +0.074104,294 +0.069582,294 +0.073152,294 +0.072409,294 +0.069674,294 +0.073156,294 +0.072663,294 +0.072446,294 +0.069788,294 +0.072631,294 +0.073153,294 +0.069503,294 +0.072394,294 +0.072529,294 +0.072809,294 +0.069747,294 +0.073212,294 +0.072429,294 +0.069558,294 +0.072261,294 +0.072765,294 +0.072226,294 +0.069624,294 +0.073477,294 +0.072357,294 +0.069487,294 +0.072482,294 +0.072561,294 +0.072795,294 +0.069543,294 +0.073329,294 +0.072326,294 +0.069506,294 +0.072625,294 +0.072249,294 +0.072306,294 +0.069604,294 +0.072639,294 +0.072928,294 +0.069496,294 +0.072464,294 +0.072455,294 +0.104865,294 +0.123952,294 +0.086093,294 +0.070427,294 +0.070317,294 +0.071085,294 +0.070397,294 +0.070592,294 +0.070531,294 +0.070553,294 +0.070144,294 +0.070019,294 +0.070232,294 +0.070128,294 +0.069989,294 +0.070661,294 +0.070622,294 +0.070228,294 +0.070136,294 +0.070735,294 +0.071010,294 +0.070106,294 +0.072252,294 +0.070903,294 +0.070173,294 +0.071147,294 +0.070767,294 +0.070937,294 +0.070518,294 +0.071030,294 +0.070945,294 +0.070058,294 +0.070628,294 +0.070684,294 +0.070469,294 +0.070892,294 +0.070566,294 +0.070380,294 +0.069266,294 +0.070158,294 +0.066924,296 +0.065989,296 +0.066792,296 +0.071059,296 +0.066570,296 +0.066726,296 +0.066726,296 +0.065890,296 +0.066737,296 +0.066712,296 +0.065697,296 +0.067572,296 +0.066782,296 +0.065651,296 +0.066919,296 +0.066653,296 +0.065605,296 +0.066935,296 +0.069359,296 +0.065816,296 +0.066748,296 +0.069562,296 +0.065701,296 +0.066538,296 +0.066545,296 +0.065713,296 +0.066771,296 +0.066588,296 +0.065797,296 +0.066558,296 +0.066710,296 +0.065667,296 +0.066725,296 +0.067926,296 +0.066058,296 +0.067089,296 +0.066650,296 +0.066134,296 +0.067048,296 +0.066233,296 +0.066122,296 +0.066731,296 +0.065608,296 +0.066676,296 +0.066550,296 +0.065618,296 +0.066656,296 +0.066657,296 +0.065731,296 +0.067849,296 +0.066753,296 +0.065648,296 +0.066515,296 +0.066662,296 +0.065703,296 +0.066702,296 +0.066753,296 +0.065804,296 +0.066577,296 +0.066754,296 +0.065707,296 +0.066704,296 +0.066666,296 +0.065873,296 +0.068169,296 +0.066783,296 +0.065783,296 +0.066619,296 +0.066828,296 +0.065808,296 +0.066684,296 +0.066990,296 +0.065875,296 +0.066807,296 +0.065919,296 +0.065617,296 +0.065887,296 +0.065956,296 +0.066141,296 +0.065855,296 +0.065801,296 +0.065621,296 +0.066005,296 +0.067027,296 +0.065780,296 +0.065900,296 +0.065676,296 +0.065972,296 +0.066076,296 +0.065811,296 +0.065789,296 +0.078423,296 +0.070391,296 +0.088537,296 +0.083934,296 +0.074624,296 +0.074875,296 +0.074878,296 +0.072253,296 +0.072570,296 +0.081909,298 +0.079450,298 +0.073185,298 +0.072747,298 +0.072461,298 +0.072164,298 +0.072826,298 +0.072595,298 +0.072652,298 +0.072581,298 +0.072825,298 +0.078690,298 +0.080412,298 +0.079329,298 +0.080308,298 +0.079911,298 +0.077494,298 +0.073448,298 +0.077835,298 +0.073131,298 +0.081008,298 +0.079288,298 +0.080261,298 +0.076548,298 +0.075494,298 +0.079484,298 +0.082832,298 +0.078936,298 +0.079092,298 +0.078865,298 +0.075786,298 +0.079212,298 +0.077011,298 +0.074678,298 +0.074451,298 +0.072372,298 +0.073247,298 +0.072424,298 +0.074625,298 +0.074462,298 +0.076295,298 +0.073360,298 +0.072790,298 +0.073887,298 +0.074409,298 +0.073295,298 +0.072906,298 +0.073051,298 +0.072361,298 +0.072727,298 +0.072425,298 +0.073496,298 +0.072491,298 +0.072717,298 +0.072248,298 +0.073342,298 +0.072399,298 +0.072332,298 +0.072550,298 +0.072592,298 +0.072652,298 +0.073236,298 +0.076327,298 +0.074498,298 +0.073960,298 +0.072665,298 +0.072811,298 +0.073851,298 +0.078967,298 +0.077097,298 +0.076110,298 +0.075197,298 +0.075843,298 +0.075148,298 +0.076042,298 +0.074501,298 +0.075122,298 +0.073719,298 +0.074472,298 +0.074512,298 +0.073973,298 +0.074826,298 +0.073913,298 +0.073266,298 +0.072438,298 +0.073866,298 +0.073519,298 +0.074649,298 +0.072506,298 +0.073378,298 +0.073498,298 +0.072656,298 +0.073167,298 +0.074034,298 +0.073469,298 +0.072580,298 +0.073423,298 +0.073679,298 +0.078404,298 +0.079920,298 diff --git a/buch/papers/multiplikation/code/meas/winograd.txt b/buch/papers/multiplikation/code/meas/winograd.txt new file mode 100644 index 0000000..3a4d88b --- /dev/null +++ b/buch/papers/multiplikation/code/meas/winograd.txt @@ -0,0 +1,11 @@ +0.000000,2 +0.000001,4 +0.000002,8 +0.000011,16 +0.000091,32 +0.000663,64 +0.005182,128 +0.046038,256 +0.533429,512 +4.257458,1024 +130.378038,2048 diff --git a/buch/papers/multiplikation/code/meas_1024.pdf b/buch/papers/multiplikation/code/meas_1024.pdf new file mode 100644 index 0000000..fd0a108 Binary files /dev/null and b/buch/papers/multiplikation/code/meas_1024.pdf differ diff --git a/buch/papers/multiplikation/code/meas_1024.txt b/buch/papers/multiplikation/code/meas_1024.txt new file mode 100644 index 0000000..c5ce619 --- /dev/null +++ b/buch/papers/multiplikation/code/meas_1024.txt @@ -0,0 +1,6 @@ +2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 3.200000000000000000e+01 6.400000000000000000e+01 1.280000000000000000e+02 2.560000000000000000e+02 5.120000000000000000e+02 1.024000000000000000e+03 +1.502037048339843750e-05 6.628036499023437500e-05 4.780292510986328125e-04 2.713203430175781250e-03 2.115225791931152344e-02 1.758832931518554688e-01 1.338865518569946289e+00 1.009106445312500000e+01 8.192077994346618652e+01 7.835870332717895508e+02 +6.675720214843750000e-06 7.200241088867187500e-05 5.540847778320312500e-04 3.144979476928710938e-03 2.545046806335449219e-02 2.083067893981933594e-01 1.659256219863891602e+00 1.319160294532775879e+01 1.046767003536224365e+02 9.679818902015686035e+02 +1.668930053710937500e-05 1.628398895263671875e-04 7.648468017578125000e-04 4.426956176757812500e-03 2.922415733337402344e-02 1.800994873046875000e-01 1.286747694015502930e+00 9.412034273147583008e+00 6.263725924491882324e+01 4.427414393424987793e+02 +2.408027648925781250e-05 8.463859558105468750e-05 4.761219024658203125e-04 2.339839935302734375e-03 1.682758331298828125e-02 1.299476623535156250e-01 1.048770904541015625e+00 8.114667415618896484e+00 6.373566389083862305e+01 6.489995403289794922e+02 +1.573562622070312500e-05 7.152557373046875000e-06 7.152557373046875000e-06 2.074241638183593750e-05 5.388259887695312500e-05 6.365776062011718750e-05 3.257751464843750000e-03 1.396179199218750000e-03 3.274917602539062500e-03 2.186250686645507812e-02 diff --git a/buch/papers/multiplikation/code/meas_128.pdf b/buch/papers/multiplikation/code/meas_128.pdf new file mode 100644 index 0000000..ed1ec63 Binary files /dev/null and b/buch/papers/multiplikation/code/meas_128.pdf differ diff --git a/buch/papers/multiplikation/code/meas_128.txt b/buch/papers/multiplikation/code/meas_128.txt new file mode 100644 index 0000000..976bbdf --- /dev/null +++ b/buch/papers/multiplikation/code/meas_128.txt @@ -0,0 +1,6 @@ +2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 3.200000000000000000e+01 6.400000000000000000e+01 1.280000000000000000e+02 +1.978874206542968750e-05 1.134872436523437500e-04 4.298686981201171875e-04 2.815246582031250000e-03 2.616596221923828125e-02 1.767718791961669922e-01 1.293319463729858398e+00 +6.675720214843750000e-06 1.251697540283203125e-04 4.818439483642578125e-04 3.490447998046875000e-03 2.465796470642089844e-02 2.014584541320800781e-01 1.630620479583740234e+00 +2.408027648925781250e-05 2.126693725585937500e-04 1.172780990600585938e-03 4.364490509033203125e-03 3.148293495178222656e-02 2.010228633880615234e-01 1.429297924041748047e+00 +2.932548522949218750e-05 1.466274261474609375e-04 4.270076751708984375e-04 2.837419509887695312e-03 1.723575592041015625e-02 1.308519840240478516e-01 1.015527009963989258e+00 +3.337860107421875000e-05 1.096725463867187500e-05 9.536743164062500000e-06 3.600120544433593750e-05 2.837181091308593750e-05 5.912780761718750000e-05 1.981019973754882812e-03 diff --git a/buch/papers/multiplikation/code/meas_16.pdf b/buch/papers/multiplikation/code/meas_16.pdf new file mode 100644 index 0000000..c2c3834 Binary files /dev/null and b/buch/papers/multiplikation/code/meas_16.pdf differ diff --git a/buch/papers/multiplikation/code/meas_16.txt b/buch/papers/multiplikation/code/meas_16.txt new file mode 100644 index 0000000..69f85bd --- /dev/null +++ b/buch/papers/multiplikation/code/meas_16.txt @@ -0,0 +1,6 @@ +2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 +1.549720764160156250e-05 6.914138793945312500e-05 5.259513854980468750e-04 2.841711044311523438e-03 +6.914138793945312500e-06 7.557868957519531250e-05 4.496574401855468750e-04 3.437519073486328125e-03 +1.883506774902343750e-05 1.499652862548828125e-04 8.952617645263671875e-04 4.348516464233398438e-03 +2.694129943847656250e-05 1.082420349121093750e-04 4.131793975830078125e-04 2.580165863037109375e-03 +1.621246337890625000e-05 1.120567321777343750e-05 9.298324584960937500e-06 1.239776611328125000e-05 diff --git a/buch/papers/multiplikation/code/meas_256.pdf b/buch/papers/multiplikation/code/meas_256.pdf new file mode 100644 index 0000000..5f049dc Binary files /dev/null and b/buch/papers/multiplikation/code/meas_256.pdf differ diff --git a/buch/papers/multiplikation/code/meas_256.txt b/buch/papers/multiplikation/code/meas_256.txt new file mode 100644 index 0000000..15035c6 --- /dev/null +++ b/buch/papers/multiplikation/code/meas_256.txt @@ -0,0 +1,6 @@ +2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 3.200000000000000000e+01 6.400000000000000000e+01 1.280000000000000000e+02 2.560000000000000000e+02 +1.049041748046875000e-05 5.340576171875000000e-05 5.936622619628906250e-04 2.707719802856445312e-03 2.246093750000000000e-02 1.631326675415039062e-01 1.335460901260375977e+00 1.052024245262145996e+01 +4.768371582031250000e-06 5.531311035156250000e-05 8.208751678466796875e-04 3.099203109741210938e-03 2.490711212158203125e-02 2.070860862731933594e-01 1.739669799804687500e+00 1.384817218780517578e+01 +1.478195190429687500e-05 1.132488250732421875e-04 5.970001220703125000e-04 3.906726837158203125e-03 3.041696548461914062e-02 2.000186443328857422e-01 1.392681598663330078e+00 9.388872385025024414e+00 +1.716613769531250000e-05 6.866455078125000000e-05 5.314350128173828125e-04 2.688407897949218750e-03 1.695108413696289062e-02 1.297233104705810547e-01 1.087257385253906250e+00 8.699601650238037109e+00 +2.336502075195312500e-05 4.529953002929687500e-06 8.106231689453125000e-06 4.291534423828125000e-05 6.008148193359375000e-05 8.988380432128906250e-05 1.647472381591796875e-04 4.460811614990234375e-04 diff --git a/buch/papers/multiplikation/code/meas_32.pdf b/buch/papers/multiplikation/code/meas_32.pdf new file mode 100644 index 0000000..94c3731 Binary files /dev/null and b/buch/papers/multiplikation/code/meas_32.pdf differ diff --git a/buch/papers/multiplikation/code/meas_32.txt b/buch/papers/multiplikation/code/meas_32.txt new file mode 100644 index 0000000..afdb6d5 --- /dev/null +++ b/buch/papers/multiplikation/code/meas_32.txt @@ -0,0 +1,6 @@ +2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 3.200000000000000000e+01 +1.215934753417968750e-05 5.459785461425781250e-05 3.700256347656250000e-04 3.249406814575195312e-03 1.996850967407226562e-02 +4.529953002929687500e-06 5.650520324707031250e-05 4.577636718750000000e-04 4.029273986816406250e-03 2.444481849670410156e-02 +1.311302185058593750e-05 1.165866851806640625e-04 6.275177001953125000e-04 4.323244094848632812e-03 2.624726295471191406e-02 +1.835823059082031250e-05 6.890296936035156250e-05 3.914833068847656250e-04 2.423048019409179688e-03 1.761770248413085938e-02 +1.263618469238281250e-05 5.006790161132812500e-06 5.960464477539062500e-06 1.144409179687500000e-05 3.600120544433593750e-05 diff --git a/buch/papers/multiplikation/code/meas_512.pdf b/buch/papers/multiplikation/code/meas_512.pdf new file mode 100644 index 0000000..4d8f04b Binary files /dev/null and b/buch/papers/multiplikation/code/meas_512.pdf differ diff --git a/buch/papers/multiplikation/code/meas_512.txt b/buch/papers/multiplikation/code/meas_512.txt new file mode 100644 index 0000000..1b2089d --- /dev/null +++ b/buch/papers/multiplikation/code/meas_512.txt @@ -0,0 +1,6 @@ +2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 3.200000000000000000e+01 6.400000000000000000e+01 1.280000000000000000e+02 2.560000000000000000e+02 5.120000000000000000e+02 +1.358985900878906250e-05 5.817413330078125000e-05 4.582405090332031250e-04 3.082036972045898438e-03 2.020335197448730469e-02 1.636352539062500000e-01 1.280331134796142578e+00 1.093638324737548828e+01 8.666778349876403809e+01 +6.198883056640625000e-06 6.270408630371093750e-05 4.820823669433593750e-04 3.279924392700195312e-03 2.462601661682128906e-02 2.034928798675537109e-01 1.630282878875732422e+00 1.372955965995788574e+01 1.104150602817535400e+02 +1.621246337890625000e-05 1.292228698730468750e-04 6.661415100097656250e-04 4.615545272827148438e-03 2.836179733276367188e-02 1.843333244323730469e-01 1.310264825820922852e+00 9.937873125076293945e+00 6.667592120170593262e+01 +2.217292785644531250e-05 7.486343383789062500e-05 4.060268402099609375e-04 2.455949783325195312e-03 1.685857772827148438e-02 1.299629211425781250e-01 1.173750638961791992e+00 8.648802757263183594e+00 6.876212453842163086e+01 +2.431869506835937500e-05 5.006790161132812500e-06 6.914138793945312500e-06 8.106231689453125000e-06 2.717971801757812500e-05 6.461143493652343750e-05 1.480579376220703125e-04 5.280971527099609375e-04 3.390312194824218750e-03 diff --git a/buch/papers/multiplikation/code/meas_64.pdf b/buch/papers/multiplikation/code/meas_64.pdf new file mode 100644 index 0000000..3a90949 Binary files /dev/null and b/buch/papers/multiplikation/code/meas_64.pdf differ diff --git a/buch/papers/multiplikation/code/meas_64.txt b/buch/papers/multiplikation/code/meas_64.txt new file mode 100644 index 0000000..ae6ff9b --- /dev/null +++ b/buch/papers/multiplikation/code/meas_64.txt @@ -0,0 +1,6 @@ +2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 3.200000000000000000e+01 6.400000000000000000e+01 +1.645088195800781250e-05 7.295608520507812500e-05 3.807544708251953125e-04 2.672195434570312500e-03 2.010774612426757812e-02 1.662156581878662109e-01 +7.390975952148437500e-06 7.843971252441406250e-05 4.265308380126953125e-04 3.107070922851562500e-03 2.457642555236816406e-02 2.122807502746582031e-01 +1.931190490722656250e-05 1.568794250488281250e-04 7.593631744384765625e-04 3.937005996704101562e-03 3.596329689025878906e-02 2.131938934326171875e-01 +2.622604370117187500e-05 9.226799011230468750e-05 3.504753112792968750e-04 2.469539642333984375e-03 1.652932167053222656e-02 1.281068325042724609e-01 +1.788139343261718750e-05 7.152557373046875000e-06 6.914138793945312500e-06 1.120567321777343750e-05 2.884864807128906250e-05 6.914138793945312500e-05 diff --git a/buch/papers/multiplikation/code/meas_8.pdf b/buch/papers/multiplikation/code/meas_8.pdf new file mode 100644 index 0000000..16d177d Binary files /dev/null and b/buch/papers/multiplikation/code/meas_8.pdf differ diff --git a/buch/papers/multiplikation/code/meas_8.txt b/buch/papers/multiplikation/code/meas_8.txt new file mode 100644 index 0000000..6cf6515 --- /dev/null +++ b/buch/papers/multiplikation/code/meas_8.txt @@ -0,0 +1,6 @@ +2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 +1.144409179687500000e-05 5.412101745605468750e-05 3.845691680908203125e-04 +4.768371582031250000e-06 5.698204040527343750e-05 5.209445953369140625e-04 +1.382827758789062500e-05 1.180171966552734375e-04 6.978511810302734375e-04 +1.859664916992187500e-05 7.033348083496093750e-05 3.886222839355468750e-04 +1.525878906250000000e-05 4.529953002929687500e-06 7.390975952148437500e-06 diff --git a/buch/papers/multiplikation/code/test.tex b/buch/papers/multiplikation/code/test.tex new file mode 100644 index 0000000..40ea239 --- /dev/null +++ b/buch/papers/multiplikation/code/test.tex @@ -0,0 +1,92 @@ +% This file was created by tikzplotlib v0.9.8. +\begin{tikzpicture} + +\definecolor{color0}{rgb}{0.886274509803922,0.290196078431373,0.2} +\definecolor{color1}{rgb}{0.203921568627451,0.541176470588235,0.741176470588235} +\definecolor{color2}{rgb}{0.596078431372549,0.556862745098039,0.835294117647059} +\definecolor{color3}{rgb}{0.984313725490196,0.756862745098039,0.368627450980392} + +\begin{axis}[ +axis background/.style={fill=white!89.8039215686275!black}, +axis line style={white}, +legend cell align={left}, +legend style={ + fill opacity=0.8, + draw opacity=1, + text opacity=1, + at={(0.03,0.97)}, + anchor=north west, + draw=white!80!black, + fill=white!89.8039215686275!black +}, +tick align=outside, +tick pos=left, +x grid style={white}, +xlabel={n}, +xmajorgrids, +xmin=-4.3, xmax=134.3, +xtick style={color=white!33.3333333333333!black}, +y grid style={white}, +ylabel={time (s)}, +ymajorgrids, +ymin=-0.0834965705871582, ymax=1.75356960296631, +ytick style={color=white!33.3333333333333!black} +] +\addplot [line width=2pt, color0] +table {% +2 1.57356262207031e-05 +4 5.96046447753906e-05 +8 0.000428915023803711 +16 0.00276041030883789 +32 0.0217020511627197 +64 0.160412073135376 +128 1.3419406414032 +}; +\addlegendentry{Standard MM} +\addplot [line width=2pt, color1] +table {% +2 6.43730163574219e-06 +4 6.69956207275391e-05 +8 0.00048065185546875 +16 0.00336766242980957 +32 0.0257236957550049 +64 0.231612205505371 +128 1.67006659507751 +}; +\addlegendentry{Divide and conquer MM} +\addplot [line width=2pt, color2] +table {% +2 2.90870666503906e-05 +4 0.000133275985717773 +8 0.000703096389770508 +16 0.00453472137451172 +32 0.0282893180847168 +64 0.181003332138062 +128 1.40816903114319 +}; +\addlegendentry{Strassen MM} +\addplot [line width=2pt, white!46.6666666666667!black] +table {% +2 2.19345092773438e-05 +4 9.01222229003906e-05 +8 0.000406503677368164 +16 0.00258469581604004 +32 0.0171687602996826 +64 0.126588344573975 +128 1.02698183059692 +}; +\addlegendentry{Winograd MM} +\addplot [line width=2pt, color3] +table {% +2 1.45435333251953e-05 +4 1.1444091796875e-05 +8 7.39097595214844e-06 +16 1.28746032714844e-05 +32 2.83718109130859e-05 +64 0.000111103057861328 +128 0.000159025192260742 +}; +\addlegendentry{np MM} +\end{axis} + +\end{tikzpicture} diff --git a/buch/papers/multiplikation/einlteung.tex b/buch/papers/multiplikation/einlteung.tex new file mode 100755 index 0000000..bc4bfcf --- /dev/null +++ b/buch/papers/multiplikation/einlteung.tex @@ -0,0 +1,52 @@ +% +% einleitung.tex -- Beispiel-File für die Einleitung +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Einleitung \label{multiplikation:section:einleitung}} +\rhead{Einleitung} + +Die Multiplikation zweier Matrizen ist eine wichtige Operation die in verschiedensten Teilen der Mathematik Anwendung findet. +Die Beschreibung der Multiplikation aus der Definition 2.10 (\textcolor{blue} {Kein Hyperlink zu einer Definition?)}: + +Eine $m\times n$-Matrix $\mathbf{A}\in M_{m\times n}(\Bbbk)$ und eine +$n\times p$-Matrix $\mathbf{B}\in M_{n\times l}(\Bbbk)$ haben als Produkt +eine $n\times l$-Matrix $\mathbf{C}=\mathbf{AB}\in M_{n\times l}(\Bbbk)$ mit den +Koeffizienten +\begin{equation} +c_{ij} = \sum_{k=1}^n a_{ik} b_{kj}. +\label{multiplikation:eq:MM} +\end{equation} +Grafisch kann die Matrizenmultiplikation $AB=C$ wie in \ref{multiplikation:fig:mm_viz} visualisiert werden. +\begin{figure} + \center + \includegraphics[]{papers/multiplikation/images/mm_visualisation} + \caption{Matrizen Multiplikation} + \label{multiplikation:fig:mm_viz} +\end{figure} +Im Fall einer Matrizengr\"osse von $2\times 2$ +\begin{equation} + \begin{bmatrix} +A_{11} & A_{12}\\ +A_{21} & A_{22} +\end{bmatrix} +\begin{bmatrix} +B_{11} & B_{12}\\ +B_{21} & B_{22} +\end{bmatrix} += +\begin{bmatrix} +C_{11} & C_{12}\\ +C_{21} & C_{22} +\end{bmatrix} +\end{equation} +kann die Gleichung der einzelnen Terme +\begin{equation} \label{multiplikation:eq:MM_exp} +\begin{split} +C_{11} &= A_{11} \cdot B_{11} + A_{12} \cdot B_{21}\\ +C_{12} &= A_{11} \cdot B_{12} + A_{12} \cdot B_{22}\\ +C_{21} &= A_{21} \cdot B_{11} + A_{22} \cdot B_{21}\\ +C_{22} &= A_{21} \cdot B_{12} + A_{22} \cdot B_{22} +\end{split} +\end{equation} +explizit geschrieben werden. diff --git a/buch/papers/multiplikation/images/bigo.pdf b/buch/papers/multiplikation/images/bigo.pdf new file mode 100644 index 0000000..dfa2ba4 Binary files /dev/null and b/buch/papers/multiplikation/images/bigo.pdf differ diff --git a/buch/papers/multiplikation/images/bigo.tex b/buch/papers/multiplikation/images/bigo.tex new file mode 100644 index 0000000..e3293e4 --- /dev/null +++ b/buch/papers/multiplikation/images/bigo.tex @@ -0,0 +1,107 @@ +\documentclass[border=10pt,varwidth]{standalone} +\usepackage[left=25mm,right=25mm,top=25mm,bottom=25mm]{geometry} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{times} +\usepackage{geometry} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{mathrsfs} +\usepackage{amsfonts} +\usepackage{amsthm} +\usepackage{lipsum} +\usepackage{amscd} +\usepackage{graphicx} +\usepackage{fancyhdr} +\usepackage{textcomp} +\usepackage{pgfplots} +\usepackage{txfonts} +\usepackage[all]{xy} +\usepackage{paralist} +\usepackage[colorlinks=true]{hyperref} +\usepackage{array} +\usepackage{tikz} +\usepackage{slashed} +\usepackage{pdfpages} +\usepackage{cite} +\usepackage{url} +\usepackage{amsmath,amsfonts,amssymb} +\usepackage{tikz} +\usetikzlibrary{arrows,matrix,positioning} +\usetikzlibrary{overlay-beamer-styles} +\usetikzlibrary{matrix.skeleton} +\usetikzlibrary{automata,positioning} +\usetikzlibrary{decorations.text} +\usepackage{listings} +\usepackage{multirow} +\usepackage{color} + +\begin{document} + +\begin{tikzpicture} +\begin{axis}[ + axis lines = left, + xlabel = $n$ (Data Input), + ylabel = {$t$ (time)}, + legend pos=north east, + very thick, + ymax = 500, + yticklabels=\empty, + xticklabels=\empty, + scale only axis=true, + width=12cm, height=6cm, + ] +\addplot [ + domain= 1:20, + samples=100, + color=red, +] +{1}; +\addlegendentry{$\mathcal{O}(1)$} +\addplot [ + domain= 1:20, + samples=100, + color=green, +] +{x}; +\addlegendentry{$\mathcal{O}(n)$} +\addplot [ + domain= 1:20, + samples=100, + color=blue, +] +{x^2}; +\addlegendentry{$\mathcal{O}(n^2)$} +\addplot [ + domain= 1:10, + samples=100, + color=purple, +] +{x^3}; +\addlegendentry{$\mathcal{O}(n^3)$} +\addplot [ + domain= 1:10, + samples=100, + color=black, +] +{exp(x)}; +\addlegendentry{$\mathcal{O}(e^n)$} +\addplot [ + domain= 1:20, + samples=100, + color=orange, +] +{log2(x)}; +\addlegendentry{$\mathcal{O}(\log n)$} + +\addplot [ + domain= 1:20, + samples=100, + color=gray, +] +{x*log2(x)}; +\addlegendentry{$\mathcal{O}(n \log n)$} +\end{axis} +\end{tikzpicture} + +\end{document} diff --git a/buch/papers/multiplikation/images/mm_visualisation.pdf b/buch/papers/multiplikation/images/mm_visualisation.pdf new file mode 100644 index 0000000..9309df1 Binary files /dev/null and b/buch/papers/multiplikation/images/mm_visualisation.pdf differ diff --git a/buch/papers/multiplikation/images/mm_visualisation.tex b/buch/papers/multiplikation/images/mm_visualisation.tex new file mode 100644 index 0000000..6e8f789 --- /dev/null +++ b/buch/papers/multiplikation/images/mm_visualisation.tex @@ -0,0 +1,45 @@ + + \begin{tikzpicture}[ampersand replacement=\&] + + \matrix (A)[matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] at (0,0) + { + A_{1,1} \& \cdots \& A_{1,k} \& \cdots \& A_{1,n} \\ + \vdots \& \& \vdots \& \& \vdots \\ + A_{i,1} \& \cdots \& A_{i,k} \& \cdots \& A_{i,n} \\ + \vdots \& \& \vdots \& \& \vdots \\ + A_{m,1} \& \cdots \& A_{m,k} \& \cdots \& A_{m,n} \\ + }; + + \node [right=0.1 of A] (mul) {$\cdot$}; + + + \matrix (B)[right=0.1 of mul, matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] + { + B_{1,1} \& \cdots \& B_{1,j} \& \cdots \& B_{1,p} \\ + \vdots \& \& \vdots \& \& \vdots \\ + B_{k,1} \& \cdots \& B_{k,j} \& \cdots \& B_{k,p} \\ + \vdots \& \& \vdots \& \& \vdots \\ + B_{n,1} \& \cdots \& B_{n,j} \& \cdots \& B_{n,p} \\ + }; + + \node [right=0.1 of B] (eq) {$=$}; + + \matrix (C)[right=0.1 of eq, matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] + { + C_{1,1} \& \cdots \& C_{1,j} \& \cdots \& C_{1,p} \\ + \vdots \& \& \vdots \& \& \vdots \\ + C_{i,1} \& \cdots \& C_{i,j} \& \cdots \& C_{i,p} \\ + \vdots \& \& \vdots \& \& \vdots \\ + C_{m,1} \& \cdots \& C_{m,j} \& \cdots \& C_{m,p} \\ + }; + + + \node[opacity=0.5, rounded corners=2pt, inner sep=-1pt, fill=green, fit=(A-3-1)(A-3-5)] {}; + \node[opacity=0.5, rounded corners=2pt, inner sep=-1pt, fill=blue, fit=(B-1-3)(B-5-3)] {}; + \node[opacity=0.5, rounded corners=2pt, inner sep=-1pt, fill=red, fit=(C-3-3)] {}; + + + \end{tikzpicture} + +\end{document} + diff --git a/buch/papers/multiplikation/images/strassen.pdf b/buch/papers/multiplikation/images/strassen.pdf new file mode 100644 index 0000000..9899dcb Binary files /dev/null and b/buch/papers/multiplikation/images/strassen.pdf differ diff --git a/buch/papers/multiplikation/images/strassen.tex b/buch/papers/multiplikation/images/strassen.tex new file mode 100644 index 0000000..797772b --- /dev/null +++ b/buch/papers/multiplikation/images/strassen.tex @@ -0,0 +1,140 @@ +\documentclass[border=10pt]{standalone} +\usepackage[left=25mm,right=25mm,top=25mm,bottom=25mm]{geometry} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{times} +\usepackage{geometry} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{mathrsfs} +\usepackage{amsfonts} +\usepackage{amsthm} +\usepackage{lipsum} +\usepackage{amscd} +\usepackage{graphicx} +\usepackage{fancyhdr} +\usepackage{textcomp} +\usepackage{pgfplots} +\usepackage{txfonts} +\usepackage[all]{xy} +\usepackage{paralist} +\usepackage[colorlinks=true]{hyperref} +\usepackage{array} +\usepackage{tikz} +\usepackage{slashed} +\usepackage{pdfpages} +\usepackage{cite} +\usepackage{url} +\usepackage{amsmath,amsfonts,amssymb} +\usepackage{tikz} +\usetikzlibrary{arrows,matrix,positioning} +\usetikzlibrary{overlay-beamer-styles} +\usetikzlibrary{matrix.skeleton} +\usetikzlibrary{automata,positioning} +\usetikzlibrary{decorations.text} +\usepackage{listings} +\usepackage{multirow} +\usepackage{color} + +\begin{document} + +\begin{tikzpicture}[ampersand replacement=\&] + +\foreach \i in {1,...,4} +{ + \small{ + \matrix (X\i)[matrix of math nodes,nodes in empty cells, + nodes = {draw, minimum size=10mm, + anchor=center, + inner sep=0pt, outer sep=0pt}, + column sep=-\pgflinewidth, + row sep=-\pgflinewidth, + ] at (0,-\i*5) + { + A_{11}B_{11} \& A_{12}B_{11} \& A_{21}B_{11} \& A_{22}B_{11} \\ + A_{11}B_{21} \& A_{12}B_{21} \& A_{21}B_{21} \& A_{22}B_{21} \\ + A_{11}B_{11} \& A_{12}B_{12} \& A_{21}B_{12} \& A_{22}B_{12} \\ + A_{11}B_{22} \& A_{12}B_{22} \& A_{21}B_{22} \& A_{22}B_{22} \\ + };} + + \foreach \j in {1,...,7} + { + \matrix(M\i\j)[matrix of math nodes,nodes in empty cells, + nodes = {draw, minimum size=10mm, + anchor=center, + inner sep=0pt, outer sep=0pt}, + column sep=-\pgflinewidth, + row sep=-\pgflinewidth, + ] at (\j*5,-\i*5) + { + \& \& \& \\ + \& \& \& \\ + \& \& \& \\ + \& \& \& \\ + }; + } +} + +\huge{ + \node at (-3,-20) {$C_{22}=$}; + \node at (-3,-15) {$C_{21}=$} ; + \node at (-3,-10) {$C_{12}=$} ; + \node at (-3,-5) {$C_{11}=$} ; + + \node at (5,-2) {I}; + \node at (10,-2) {II}; + \node at (15,-2) {III}; + \node at (20,-2) {IV}; + \node at (25,-2) {V}; + \node at (30,-2) {VI}; + \node at (35,-2) {VII}; +} + + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X1-1-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X1-2-2)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X2-3-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X2-4-2)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X3-1-3)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X3-2-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X4-3-3)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X4-4-4)] {}; + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-4-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-4-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-1-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M14-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M14-2-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M15-4-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M15-4-2)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M17-2-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M17-4-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M17-2-2)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M17-4-2)] {}; + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M23-3-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M23-4-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M25-4-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M25-4-2)] {}; + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M32-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M32-1-3)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M34-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M34-2-4)] {}; + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-4-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-4-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-1-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M42-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M42-1-3)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M43-3-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M43-4-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M46-1-3)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M46-1-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M46-3-3)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M46-3-1)] {}; +\end{tikzpicture} + +\end{document} diff --git a/buch/papers/multiplikation/loesungsmethoden.tex b/buch/papers/multiplikation/loesungsmethoden.tex new file mode 100755 index 0000000..83be814 --- /dev/null +++ b/buch/papers/multiplikation/loesungsmethoden.tex @@ -0,0 +1,309 @@ +% +% teil2.tex -- Beispiel-File für teil2 +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% + +\section{L\"osungsmethoden} +\rhead{L\"osungsmethoden} + +In diesem Abschnitt werden mehrere Algorithmen zur Berechnung der Matrizenmultiplikation vorgestellt, auch werden Libraries zur automatisierten Verwendung von vordefinierten Algorithmen gezeigt. + +\subsection{Standard Algorithmus} + +Der Standard Methode kann im Algorithmus \ref{multiplikation:alg:smm} entnommen werden. +Hierf\"ur wurde die Gleichung \eqref{multiplikation:eq:MM} direkt implementiert. +Die \texttt{For i} Schleife iteriert \"uber alle Zeilen der $\mathbf{A}$ Matrix, die \texttt{For j} Schleife iteriert \"uber alle Spalten der $\mathbf{B}$ Matrix und die \texttt{For k} Schleife iteriert \"uber alle Eintr\"age dieser Zeilen bzw. Spalten. + +\begin{algorithm}\caption{Matrix Multiplication} + \label{multiplikation:alg:smm} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{MM}{$\textbf{A}, \textbf{B}$} + \State $sum \gets 0$ + \State $n \gets columns(\textbf{A}) == rows(\textbf{B})$ + \State $m \gets rows(\textbf{A})$ + \State $p \gets columns(\textbf{B})$ + \State $\textbf{C} \gets zeros(m,p)$ + \For{$i = 0,1,2 \dots,m-1$} + \For{$j = 0,1,2 \dots,p-1$} + \State $sum \gets 0$ + \For{$k = 0,1,2 \dots,n-1$} + \State $sum \gets sum + \textbf{A}[i][k] \cdot \textbf{B}[k][j]$ + \EndFor + \State $\textbf{C}[i][j] \gets sum $ + \EndFor + \EndFor + \State \textbf{return} $\textbf{C}$ + \EndFunction + \end{algorithmic} +\end{algorithm} + +Die Laufzeit dieser Struktur mit drei \texttt{For} Schleifen ist $\mathcal{O}(n^3)$ + +\subsubsection{Divide and Conquer Methode} + +F\"ur gewisse Algorithmen f\"uhren \textit{Divide and Conquer} Ans\"atze zu markant besseren Laufzeiten. +Das bekannteste Beispiel ist wohl die \textit{Fast Fourier Transform} wobei die Laufzeit von $\mathcal{O}(n^2)$ zu $\mathcal{O}(n \log n)$ verbessert werden kann. + +Die Matrizenmultiplikation kann ebenfalls mit solch einem Ansatz berechnet werden. +Zur vereinfachten Veranschaulichung kann die Situation, mit $\mathbf{A}$ und $\mathbf{B}$ der gr\"osse $2^n \times 2^n$ verwendet werden. +Die Matrizen $\mathbf{A}$ und $\mathbf{B}$ werden in jeweils vier Blockmatrizen der gr\"osse $2^{n-1} \times 2^{n-1}$ +\begin{equation} +\mathbf{A}\mathbf{B}= +\begin{bmatrix} +\mathbf{A}_{11} & \mathbf{A}_{12}\\ +\mathbf{A}_{21} & \mathbf{A}_{22} +\end{bmatrix} +\begin{bmatrix} +\mathbf{B}_{11} & \mathbf{B}_{12}\\ +\mathbf{B}_{21} & \mathbf{B}_{22} +\end{bmatrix} += +\begin{bmatrix} +\mathbf{C}_{11} & \mathbf{C}_{12}\\ +\mathbf{C}_{21} & \mathbf{C}_{22} +\end{bmatrix} +\end{equation} +aufgeteilt. +Die Berechnung +\begin{equation} +\mathbf{C}_{ij} = \sum_{k=1}^n \mathbf{A}_{ik} \mathbf{B}_{kj} +\label{multiplikation:eq:MM_block} +\end{equation} +ist identisch zu der Gleichung \eqref{multiplikation:eq:MM}, wobei hier f\"ur die Multiplikation die Matrizenmultiplikation verwendet wird. + +Der Algorithmus \ref{multiplikation:alg:devide_mm} zeigt den \textit{Divide and Conquer} Ansatz, +Der Grundstruktur dieser Methode besteht aus dem rekursiven Aufruf der Funktion mit den erzeugten Blockmatrizen. +Der rekursive Aufruf wird bis zu der Gr\"osse der Matrizen von $N = 2 \times 2$ durchgef\"uhrt. +\begin{algorithm}\caption{Divide and Conquer Matrix Multiplication} + \setlength{\lineskip}{7pt} + \label{multiplikation:alg:devide_mm} + \begin{algorithmic} + \Function{MM}{$\textbf{A}, \textbf{B}, n$} + \If{$n = 2$} + \State $ \mathbf{C} \gets zeros(n, n)$ + \State $C[0, 0] \gets A[0][0]\cdot B[0][0]+A[0][1]\cdot B[1][0]$ + \State $C[0, 1] \gets A[0][0]\cdot B[0][1]+A[0][1]\cdot B[1][1]$ + \State $C[1, 0] \gets A[1][0]\cdot B[0][0]+A[1][1]\cdot B[1][0]$ + \State $C[1, 1] \gets A[1][0]\cdot B[0][1]+A[1][1]\cdot B[1][1]$ + \Else + \State $ m \gets n/2$ + \State $\mathbf{A11}, \mathbf{A12}, \mathbf{A21}, \mathbf{A22} \gets \mathbf{A}[:m][:m], \mathbf{A}[:m][m:], \mathbf{A}[m:][:m], \mathbf{A}[m:][m:]$ + \State $\mathbf{B11}, \mathbf{B12}, \mathbf{B21}, \mathbf{B22} \gets \mathbf{B}[:m][:m], \mathbf{B}[:m][m:], \mathbf{B}[m:][:m], \mathbf{B}[m:][m:]$ + + \State $\mathbf{C11} \gets \text{MM}(\mathbf{A11}, \mathbf{B11},n) + \text{MM}(\mathbf{A12}, \mathbf{B21},n)$ + \State $\mathbf{C12} \gets \text{MM}(\mathbf{A11},\mathbf{B12},n) + \text{MM}(\mathbf{A12}, \mathbf{B22},n)$ + \State $\mathbf{C21} \gets \text{MM}(\mathbf{A21}, \mathbf{B11},n) + \text{MM}(\mathbf{A22}, \mathbf{B21},n)$ + \State $\mathbf{C22} \gets \text{MM}(\mathbf{A21}, \mathbf{B12},n) + \text{MM}(\mathbf{A22}, \mathbf{B22},n)$ + \State $ C \gets vstack(hstack(C11, C12), hstack(C21, C22))$ + + \EndIf + \State \textbf{return} $\textbf{C}$ + + \EndFunction + \end{algorithmic} +\end{algorithm} + +Die Laufzeit dieser rekursiven Funktion kann mit dem \textit{Master Theorem} berechnet werden. +Ohne auf diesen vertieft einzugehen, bestimmt die Anzahl rekursiver Aufrufe der Funktion die Laufzeit. +In diesem Fall wird die Funktion pro Durchlauf acht mal rekursiv aufgerufen, dies f\"uhrt +\begin{equation} \label{multiplikation:eq:laufzeitdac} + \mathcal{T}(n) = + \begin{cases} + 1 & \text{if } n \leq 2\\ + 8 \cdot \mathcal{T}(\frac{n}{2}) + n^2 & \text{if } n > 2 + \end{cases} = \mathcal{O}(n^{\log_2 8}) = \mathcal{O}(n^{3}) +\end{equation} +zu einer kubischen Laufzeit. +Die Addition zweier Matrizen $\mathbf{A} + \mathbf{B} = \mathbf{C}$ hat eine Laufzeit von $\mathcal{O}(n^{2})$ und kann neben dem dominierendem Anteil von $\mathcal{O}(n^{3})$ ignoriert werden. +In diesem Fall hat der \textit{Divide and Conquer} Ansatz zu keiner Verbesserung gef\"uhrt. + + +\subsection{Strassen's Algorithmus} + +Strassen's Algorithmus \cite{multiplikation:strassen_1969} beschreibt die Matrizenmultiplikation mit einer Vielzahl von Additionen, Subtraktionen und Multiplikationen. +Die Grundlegenden Terme +\begin{equation} \label{multiplikation:eq:strassen} +\begin{split} +\text{\textbf{P}} &= (\mathbf{A}_{11} + \mathbf{A}_{22}) \cdot (\mathbf{B}_{11} + \mathbf{B}_{22}) \\ +\text{\textbf{Q}} &= (\mathbf{A}_{21} + \mathbf{A}_{22}) \cdot \mathbf{B}_{11} \\ +\text{\textbf{R}} &= \mathbf{A}_{11} \cdot (\mathbf{B}_{12}-\mathbf{B}_{22}) \\ +\text{\textbf{S}} &= \mathbf{A}_{22} \cdot (-\mathbf{B}_{11}+\mathbf{B}_{21}) \\ +\text{\textbf{T}} &= (\mathbf{A}_{11} + \mathbf{A}_{12}) \cdot \mathbf{B}_{22} \\ +\text{\textbf{U}} &= (-\mathbf{A}_{11} + \mathbf{A}_{21}) \cdot (\mathbf{B}_{11} + \mathbf{B}_{12}) \\ +\text{\textbf{V}} &= (\mathbf{A}_{12} - \mathbf{A}_{22}) \cdot (\mathbf{B}_{21} + \mathbf{B}_{22}) +\end{split} +\end{equation} +aus $\mathbf{A}$ und $\mathbf{B}$, werden f\"ur die Berechnung der Matrix $\mathbf{C}$ +\begin{equation} \label{multiplikation:eq:strassen2} +\begin{split} +\mathbf{C}_{11} &= \text{\textbf{P}} + \text{\textbf{S}} - \text{\textbf{T}} + \text{\textbf{V}} \\ +\mathbf{C}_{21} &= \text{\textbf{R}} + \text{\textbf{T}} \\ +\mathbf{C}_{12} &= \text{\textbf{Q}} + \text{\textbf{S}}\\ +\mathbf{C}_{22} &= \text{\textbf{P}} + \text{\textbf{R}} - \text{\textbf{Q}} + \text{\textbf{U}} +\end{split} +\end{equation} +gebraucht. +\begin{algorithm}\caption{Strassen Matrix Multiplication} + \label{multiplikation:alg:strassen} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \Function{strassen}{$\textbf{A}, \textbf{B}, n$} + \If{$n = 2$} + \State $ \mathbf{C} \gets zeros((n, n))$ + \State $P \gets (A[0][0]+A[1][1])\cdot( B[0][0]+B[1][1])$ + \State $Q \gets (A[1][0]+A[1][1])\cdot B[0][0]$ + \State $R \gets A[0][0]\cdot (B[0][1]-B[1][1])$ + \State $S \gets A[1][1]\cdot (B[1][0]-B[0][0])$ + \State $T \gets (A[0][0]+A[0][1])\cdot B[1][1]$ + \State $U \gets (A[1][0]-A[0][0])\cdot (B[0][0]+B[0][1])$ + \State $V \gets (A[0][1]-A[1][1])\cdot (B[1][0]+B[1][1])$ + \State $C[0][0] \gets P+S-T+V$ + \State $C[0][1] \gets R+T$ + \State $C[1][0] \gets Q+S$ + \State $C[1][1] \gets P+R-Q+U$ + \Else + \State $ m \gets n/2$ + \State $\mathbf{A11}, \mathbf{A12}, \mathbf{A21}, \mathbf{A22} \gets \mathbf{A}[:m][:m], \mathbf{A}[:m][m:], \mathbf{A}[m:][:m], \mathbf{A}[m:][m:]$ + \State $\mathbf{B11}, \mathbf{B12}, \mathbf{B21}, \mathbf{B22} \gets \mathbf{B}[:m][:m], \mathbf{B}[:m][m:], \mathbf{B}[m:][:m], \mathbf{B}[m:][m:]$ + + \State $ \mathbf{P} \gets \text{strassen}((\mathbf{A11}+ \mathbf{A22}),(\mathbf{B11}+\mathbf{B22}), m)$ + \State $ \mathbf{Q} \gets \text{strassen}((\mathbf{A21}+ \mathbf{A22}), \mathbf{B11},m)$ + \State $ \mathbf{R} \gets \text{strassen}( \mathbf{A11},(\mathbf{B12}- \mathbf{B22}),m)$ + \State $ \mathbf{S} \gets \text{strassen}( \mathbf{A22},(\mathbf{B21}- \mathbf{B11}),m)$ + \State $ \mathbf{T} \gets \text{strassen}((\mathbf{A11}+ \mathbf{A12}), \mathbf{B22},m)$ + \State $ \mathbf{U} \gets \text{strassen}((\mathbf{A21}- \mathbf{A11}),(\mathbf{B11}+\mathbf{B12}),m)$ + \State $ \mathbf{V} \gets \text{strassen}((\mathbf{A12}- \mathbf{A22}),(\mathbf{B21}+\mathbf{B22}),m)$ + + + + \State $\mathbf{C11} \gets \mathbf{P+S-T+V}$ + \State $\mathbf{C12} \gets \mathbf{R+T}$ + \State $\mathbf{C21} \gets \mathbf{Q+S}$ + \State $\mathbf{C22} \gets \mathbf{P+R-Q+U}$ + \State $ C \gets vstack(hstack(C11, C12), hstack(C21, C22))$ + + \EndIf + \State \textbf{return} $\textbf{C}$ + + \EndFunction + \end{algorithmic} +\end{algorithm} +Strassens's Methode wird in der Abbildung \ref{multiplikation:fig:strassen} grafisch dargestellt. +\begin{figure} + \center + \includegraphics[width=\linewidth]{papers/multiplikation/images/strassen.pdf} + \caption{Strassen's Algorithmus} + \label{multiplikation:fig:strassen} +\end{figure} + +Die Funktion wird sieben mal rekursiv aufgerufen. +Dies f\"uhrt zu einer Laufzeit von +\begin{equation} \label{multiplikation:eq:laufzeitstrassen} +\mathcal{T}(n) = +\begin{cases} +1 & \text{if } n \leq 2\\ +7 \cdot \mathcal{T}(\frac{n}{2}) + n^2 & \text{if } n > 2 +\end{cases} = \mathcal{O}(n^{\log_2 7}) = \mathcal{O}(n^{2.8074}) +\end{equation} +und ist somit schneller als die Standard Methode. + +\subsection{Winograd's Algorithmus} + +Ein weiterer Ansatz lieferte Shmuel Winograd im Jahre 1968 \cite{multiplikation:winograd_1968}. +Er zeigte einen neuen Algorithmus f\"ur das +\begin{equation} + \langle x,y \rangle = \sum_{i=1}^{n}x_i y_i +\end{equation} +Skalarprodukt. +F\"ur jeden Vektor berechne +\begin{equation} + \xi = \sum_{j=1}^{ \lfloor n/2 \rfloor} x_{2j-1} \cdot x_{2j} +\end{equation} +und +\begin{equation} + \eta = \sum_{j=1}^{ \lfloor n/2 \rfloor} y_{2j-1} \cdot y_{2j}. +\end{equation} +Das Skalarprodukt ist nun geben mit +\begin{equation} + \langle x,y \rangle = + \begin{cases} + \displaystyle \quad \sum_{j=1}^{ \lfloor n/2 \rfloor} (x_{2j-1} + y_{2j})(x_{2j}+y_{2j-1})-\xi - \eta & \text{if $n$ is even}\\ + \displaystyle \quad \sum_{j=1}^{ \lfloor n/2 \rfloor} (x_{2j-1} + y_{2j})(x_{2j}+y_{2j-1})-\xi - \eta + x_n y_n & \text{if $n$ is odd}. + \end{cases} +\end{equation} + +Angenommen man hat $N$ Vektoren mit welchen man $T$ Skalarprodukte berechnen m\"ochte. +Daf\"ur werden $N\lfloor n/2 \rfloor + T\lfloor (n+1)/2 \rfloor $ Multiplikationen ben\"otigt. +Eine Matrizenmultiplikation mit $\mathbf{A}$ einer $m \times n$ und $\mathbf{B}$ einer $n \times p$ Matrix, entspricht $N=m+p$ Vektoren mit welchen man $T=mp$ Skalarprodukte berechnet. +Dies f\"uhrt zu +\begin{equation} + (m+p) \left \lfloor \frac{n}{2} \right \rfloor + mp \left \lfloor \frac{n+1}{2} \right \rfloor = \frac{mn}{2} + \frac{pn}{2} + \frac{mpn}{2} + \frac{mp}{2} +\end{equation} +Multiplikationen. +Wenn $m,p,n$ gross werden, dominiert der Term $\frac{mpn}{2}$ und es werden $\frac{mpn}{2}$ Multiplikationen ben\"otigt. +Was im Vergleich zu den $mpn$ Multiplikation der Standard Methode nur die H\"alfte ist. +Die Implementation kann im Algorithmus \ref{multiplikation:alg:winograd} entnommen werden. + +\begin{algorithm}\caption{Winograd Matrix Multiplication} + \setlength{\lineskip}{7pt} + \label{multiplikation:alg:winograd} + \begin{algorithmic} + \Function{Winograd}{$\textbf{A}, \textbf{B}, n$} + \State $ m \gets rows(\mathbf{A})$ + \State $ n \gets columns(\mathbf{A}) == rows(\mathbf{B})$ + \State $ p \gets columns(\mathbf{B})$ + \State $ \mathbf{\xi} \gets zeros(m)$ + \State $ \mathbf{\eta} \gets zeros(p)$ + + + \For{$i = 0,1,2 \dots,m-1$} + \For{$j = 0,1,2 \dots,\lfloor n/2 \rfloor-1$} + \State $\xi[i] \gets \xi[i]+A[i,2 j]A[i,2 j+1]$ + \EndFor + \EndFor + + \For{$i = 0,1,2 \dots,p-1$} + \For{$j = 0,1,2 \dots,\lfloor n/2 \rfloor-1$} + \State $\eta[i] \gets \eta[i]+B[2 j,i]B[2 j+1,i]$ + \EndFor + \EndFor + + \If{$n \% 2 == 0$} + \For{$i = 0,1,2 \dots,m-1$} + \For{$j = 0,1,2 \dots,p-1$} + \State $ab \gets 0$ + \For{$k = 0,1,2 \dots,\lfloor n/2 \rfloor-1$} + \State $ab \gets ab + (A[i,2k]+B[2k+1,j])(A[i,2k+1]+B[2k,j])$ + \EndFor + \State $C[i,j] \gets ab-\eta[j]-\xi[i]$ + \EndFor + \EndFor + \Else + \For{$i = 0,1,2 \dots,n-1$} + \For{$j = 0,1,2 \dots,n-1$} + \State $ab \gets 0$ + \For{$k = 0,1,2 \dots,\lfloor n/2 \rfloor-1$} + \State $ab \gets ab + (A[i,2k]+B[2k+1,j])(A[i,2k+1]+B[2k,j])$ + \EndFor + \State $C[i,j] \gets ab-\eta[j]-\xi[i]+A[i,-1]B[-1,j]$ + \EndFor + \EndFor + \EndIf + \State \textbf{return} $\textbf{C}$ + + \EndFunction + \end{algorithmic} +\end{algorithm} + +\subsection{Weitere Algorithmen} + +\textcolor{red}{TODO: BLAS} + +\section{Implementation} +\rhead{Implementation} +\textcolor{red}{TODO: messresultate} + +\section{Fazit} +\rhead{Fazit} diff --git a/buch/papers/multiplikation/main.tex b/buch/papers/multiplikation/main.tex old mode 100644 new mode 100755 index 42f2768..8d0a8df --- a/buch/papers/multiplikation/main.tex +++ b/buch/papers/multiplikation/main.tex @@ -1,36 +1,18 @@ +% !TEX root = ../../buch.tex % % main.tex -- Paper zum Thema % -% (c) 2020 Hochschule Rapperswil +% (c) 2021 Hochschule Rapperswil % -\chapter{Thema\label{chapter:multiplikation}} -\lhead{Thema} +\chapter{Schnelle Matrizen Multiplikation\label{chapter:multiplikation}} +\lhead{FMM} \begin{refsection} -\chapterauthor{Hans Muster} +\chapterauthor{Michael Schmid} -Ein paar Hinweise für die korrekte Formatierung des Textes -\begin{itemize} -\item -Absätze werden gebildet, indem man eine Leerzeile einfügt. -Die Verwendung von \verb+\\+ ist nur in Tabellen und Arrays gestattet. -\item -Die explizite Platzierung von Bildern ist nicht erlaubt, entsprechende -Optionen werden gelöscht. -Verwenden Sie Labels und Verweise, um auf Bilder hinzuweisen. -\item -Beginnen Sie jeden Satz auf einer neuen Zeile. -Damit ermöglichen Sie dem Versionsverwaltungssysteme, Änderungen -in verschiedenen Sätzen von verschiedenen Autoren ohne Konflikt -anzuwenden. -\item -Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren -Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. -\end{itemize} -\input{papers/multiplikation/teil0.tex} -\input{papers/multiplikation/teil1.tex} -\input{papers/multiplikation/teil2.tex} -\input{papers/multiplikation/teil3.tex} +\input{papers/multiplikation/einlteung.tex} +\input{papers/multiplikation/problemstellung.tex} +\input{papers/multiplikation/loesungsmethoden.tex} \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/multiplikation/packages.tex b/buch/papers/multiplikation/packages.tex old mode 100644 new mode 100755 diff --git a/buch/papers/multiplikation/papers/Strassen_GPU.pdf b/buch/papers/multiplikation/papers/Strassen_GPU.pdf new file mode 100755 index 0000000..4ce7625 Binary files /dev/null and b/buch/papers/multiplikation/papers/Strassen_GPU.pdf differ diff --git a/buch/papers/multiplikation/papers/Strassen_original_1969.pdf b/buch/papers/multiplikation/papers/Strassen_original_1969.pdf new file mode 100755 index 0000000..b647fc0 Binary files /dev/null and b/buch/papers/multiplikation/papers/Strassen_original_1969.pdf differ diff --git a/buch/papers/multiplikation/papers/assay_fast_MM.pdf b/buch/papers/multiplikation/papers/assay_fast_MM.pdf new file mode 100755 index 0000000..3cd6b63 Binary files /dev/null and b/buch/papers/multiplikation/papers/assay_fast_MM.pdf differ diff --git a/buch/papers/multiplikation/papers/strassen_video.txt b/buch/papers/multiplikation/papers/strassen_video.txt new file mode 100755 index 0000000..f84122c --- /dev/null +++ b/buch/papers/multiplikation/papers/strassen_video.txt @@ -0,0 +1 @@ +https://www.youtube.com/watch?v=0oJyNmEbS4w diff --git a/buch/papers/multiplikation/papers/winograd_original.pdf b/buch/papers/multiplikation/papers/winograd_original.pdf new file mode 100755 index 0000000..a7aba36 Binary files /dev/null and b/buch/papers/multiplikation/papers/winograd_original.pdf differ diff --git a/buch/papers/multiplikation/presentation/common.tex b/buch/papers/multiplikation/presentation/common.tex new file mode 100644 index 0000000..200d244 --- /dev/null +++ b/buch/papers/multiplikation/presentation/common.tex @@ -0,0 +1,79 @@ +% +% common.tex -- gemeinsame Definitionen +% +% (c) 2021 Michael Schmid, OST Campus Rapperswil +% +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{epic} +\usepackage{color} +\usepackage{array} +\usepackage{algorithm} +\usepackage{ifthen} +\usepackage{adjustbox} +\usepackage[noend]{algpseudocode} +\usepackage{neuralnetwork} +\usepackage{amsmath} +\usepackage{lmodern} +\usepackage{tikz} +\usetikzlibrary{decorations.text} +\usetikzlibrary{arrows,matrix,positioning} +\usetikzlibrary{overlay-beamer-styles} +\usetikzlibrary{matrix.skeleton} +\usepackage{pgfplots} +\usepackage{listings} +\usepackage{svg} + +\definecolor{codegreen}{rgb}{0,0.6,0} +\definecolor{codegray}{rgb}{0.5,0.5,0.5} +\definecolor{codepurple}{rgb}{0.58,0,0.82} +\definecolor{backcolour}{rgb}{0.95,0.95,0.92} +\definecolor{ost}{rgb}{164,0,136} + +\lstdefinestyle{mystyle}{ + backgroundcolor=\color{backcolour}, + commentstyle=\color{codegreen}, + keywordstyle=\color{magenta}, + numberstyle=\tiny\color{codegray}, + stringstyle=\color{codepurple}, + basicstyle=\footnotesize, + breakatwhitespace=false, + breaklines=true, + captionpos=b, + keepspaces=true, + numbers=left, + numbersep=2pt, + showspaces=false, + showstringspaces=false, + showtabs=false, + tabsize=2 +} + +\usetikzlibrary{fit} +\tikzset{% + highlight/.style={rectangle,rounded corners,fill=red!15,draw,fill opacity=0.5,inner sep=0pt} +} +\newcommand{\tikzmark}[2]{\tikz[overlay,remember picture,baseline=(#1.base)] \node (#1) {#2};} +% +\newcommand{\Highlight}[1][submatrix]{% + \tikz[overlay,remember picture]{ + \node[highlight,fit=(left.north west) (right.south east)] (#1) {};} +} + + +\lstset{style=mystyle} +\lstdefinestyle{mystyle}{ + morekeywords={cwt,contourf,datetick} +} + + +\usetikzlibrary{shapes.geometric} +\mode{% +\usetheme[]{Frankfurt}} +\beamertemplatenavigationsymbolsempty +\title[]{Fast Matrix Multiplication} +\author[]{Michael Schmid} +\usecolortheme[named=ost]{structure} + +\date[]{31.05.2021} +\newboolean{presentation} diff --git a/buch/papers/multiplikation/presentation/presentation.nav b/buch/papers/multiplikation/presentation/presentation.nav new file mode 100644 index 0000000..2a01568 --- /dev/null +++ b/buch/papers/multiplikation/presentation/presentation.nav @@ -0,0 +1,59 @@ +\headcommand {\slideentry {0}{0}{1}{1/1}{}{0}} +\headcommand {\beamer@framepages {1}{1}} +\headcommand {\beamer@sectionpages {1}{1}} +\headcommand {\beamer@subsectionpages {1}{1}} +\headcommand {\sectionentry {1}{Big $\mathcal {O}$}{2}{Big $\mathcal {O}$}{0}} +\headcommand {\slideentry {1}{0}{1}{2/4}{}{0}} +\headcommand {\beamer@framepages {2}{4}} +\headcommand {\slideentry {1}{0}{2}{5/6}{}{0}} +\headcommand {\beamer@framepages {5}{6}} +\headcommand {\slideentry {1}{0}{3}{7/8}{}{0}} +\headcommand {\beamer@framepages {7}{8}} +\headcommand {\slideentry {1}{0}{4}{9/10}{}{0}} +\headcommand {\beamer@framepages {9}{10}} +\headcommand {\slideentry {1}{0}{5}{11/12}{}{0}} +\headcommand {\beamer@framepages {11}{12}} +\headcommand {\slideentry {1}{0}{6}{13/13}{}{0}} +\headcommand {\beamer@framepages {13}{13}} +\headcommand {\slideentry {1}{0}{7}{14/14}{}{0}} +\headcommand {\beamer@framepages {14}{14}} +\headcommand {\beamer@sectionpages {2}{14}} +\headcommand {\beamer@subsectionpages {2}{14}} +\headcommand {\sectionentry {2}{Strassen's Algorithm}{15}{Strassen's Algorithm}{0}} +\headcommand {\slideentry {2}{0}{1}{15/15}{}{0}} +\headcommand {\beamer@framepages {15}{15}} +\headcommand {\slideentry {2}{0}{2}{16/18}{}{0}} +\headcommand {\beamer@framepages {16}{18}} +\headcommand {\slideentry {2}{0}{3}{19/19}{}{0}} +\headcommand {\beamer@framepages {19}{19}} +\headcommand {\slideentry {2}{0}{4}{20/20}{}{0}} +\headcommand {\beamer@framepages {20}{20}} +\headcommand {\slideentry {2}{0}{5}{21/23}{}{0}} +\headcommand {\beamer@framepages {21}{23}} +\headcommand {\slideentry {2}{0}{6}{24/24}{}{0}} +\headcommand {\beamer@framepages {24}{24}} +\headcommand {\slideentry {2}{0}{7}{25/25}{}{0}} +\headcommand {\beamer@framepages {25}{25}} +\headcommand {\slideentry {2}{0}{8}{26/26}{}{0}} +\headcommand {\beamer@framepages {26}{26}} +\headcommand {\slideentry {2}{0}{9}{27/29}{}{0}} +\headcommand {\beamer@framepages {27}{29}} +\headcommand {\slideentry {2}{0}{10}{30/32}{}{0}} +\headcommand {\beamer@framepages {30}{32}} +\headcommand {\beamer@sectionpages {15}{32}} +\headcommand {\beamer@subsectionpages {15}{32}} +\headcommand {\sectionentry {3}{Measurements}{33}{Measurements}{0}} +\headcommand {\slideentry {3}{0}{1}{33/40}{}{0}} +\headcommand {\beamer@framepages {33}{40}} +\headcommand {\slideentry {3}{0}{2}{41/49}{}{0}} +\headcommand {\beamer@framepages {41}{49}} +\headcommand {\beamer@sectionpages {33}{49}} +\headcommand {\beamer@subsectionpages {33}{49}} +\headcommand {\sectionentry {4}{How To Matrix Multiply}{50}{How To Matrix Multiply}{0}} +\headcommand {\slideentry {4}{0}{1}{50/50}{}{0}} +\headcommand {\beamer@framepages {50}{50}} +\headcommand {\beamer@partpages {1}{50}} +\headcommand {\beamer@subsectionpages {50}{50}} +\headcommand {\beamer@sectionpages {50}{50}} +\headcommand {\beamer@documentpages {50}} +\headcommand {\gdef \inserttotalframenumber {21}} diff --git a/buch/papers/multiplikation/presentation/presentation.pdf b/buch/papers/multiplikation/presentation/presentation.pdf new file mode 100644 index 0000000..842e68c Binary files /dev/null and b/buch/papers/multiplikation/presentation/presentation.pdf differ diff --git a/buch/papers/multiplikation/presentation/presentation.snm b/buch/papers/multiplikation/presentation/presentation.snm new file mode 100644 index 0000000..e69de29 diff --git a/buch/papers/multiplikation/presentation/presentation.tex b/buch/papers/multiplikation/presentation/presentation.tex new file mode 100644 index 0000000..2a4af45 --- /dev/null +++ b/buch/papers/multiplikation/presentation/presentation.tex @@ -0,0 +1,12 @@ +% +% MathSem-yyy-xxx.tex -- Präsentation +% +% (c) 2021 Michael Schmid, OST campus Rapperswil +% + +\documentclass[aspectratio=169]{beamer} +\input{common.tex} +%\setboolean{presentation}{true} +\begin{document} +\input{slides/slides.tex} +\end{document} diff --git a/buch/papers/multiplikation/presentation/slides/algo.tex b/buch/papers/multiplikation/presentation/slides/algo.tex new file mode 100644 index 0000000..0c3d130 --- /dev/null +++ b/buch/papers/multiplikation/presentation/slides/algo.tex @@ -0,0 +1,111 @@ +\begin{frame} + \frametitle{Algorithm} + \begin{columns} + \begin{column}{0.6\textwidth} + \begin{algorithm}[H]\caption{Square Matrix Multiplication} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{MM}{$\textbf{A}, \textbf{B}, \textbf{C}$} + \State $sum \gets 0$ + \State $n \gets columns(\textbf{A}) == rows(\textbf{B})$ + \State $m \gets rows(\textbf{A})$ + \State $p \gets columns(\textbf{B})$ + + \For{$i = 0,1,2 \dots,m-1$} + \For{$j = 0,1,2 \dots,p-1$} + \State $sum \gets 0$ + \For{$k = 0,1,2 \dots,n-1$} + \State $sum \gets sum + \textbf{A}[i][k] \cdot \textbf{B}[k][j]$ + \EndFor + \State $\textbf{C}[i][j] \gets sum $ + \EndFor + \EndFor + \State \textbf{return} $\textbf{C}$ + \EndFunction + \end{algorithmic} + \end{algorithm} +\end{column} +\begin{column}{0.4\textwidth} + \scalebox{0.6}{\parbox{\linewidth}{ + + \begin{tikzpicture}[ampersand replacement=\&,remember picture,overlay] + + \matrix (A)[matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] at (2,-2.8) + { + A_{1,1} \& \cdots \& A_{1,k} \& \cdots \& A_{1,n} \\ + \vdots \& \& \vdots \& \& \vdots \\ + A_{i,1} \& \cdots \& A_{i,k} \& \cdots \& A_{i,n} \\ + \vdots \& \& \vdots \& \& \vdots \\ + A_{m,1} \& \cdots \& A_{m,k} \& \cdots \& A_{m,n} \\ + }; + + \matrix (B)[matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] at (7.5,1.2) + { + B_{1,1} \& \cdots \& B_{1,j} \& \cdots \& B_{1,p} \\ + \vdots \& \& \vdots \& \& \vdots \\ + B_{k,1} \& \cdots \& B_{k,j} \& \cdots \& B_{k,p} \\ + \vdots \& \& \vdots \& \& \vdots \\ + B_{n,1} \& \cdots \& B_{n,j} \& \cdots \& B_{n,p} \\ + }; + + \matrix (C)[matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] at (7.5,-2.8) + { + C_{1,1} \& \cdots \& C_{1,j} \& \cdots \& C_{1,p} \\ + \vdots \& \& \vdots \& \& \vdots \\ + C_{i,1} \& \cdots \& C_{i,j} \& \cdots \& C_{i,p} \\ + \vdots \& \& \vdots \& \& \vdots \\ + C_{m,1} \& \cdots \& C_{m,j} \& \cdots \& C_{m,p} \\ + }; + + + \begin{scope}[on background layer] + \node[opacity=0.5, rounded corners=2pt, inner sep=-1pt, fill=green, fit=(A-3-1)(A-3-5)] {}; + \node[opacity=0.5, rounded corners=2pt, inner sep=-1pt, fill=blue, fit=(B-1-3)(B-5-3)] {}; + \node[opacity=0.5, rounded corners=2pt, inner sep=-1pt, fill=red, fit=(C-3-3)] {}; + + \end{scope} + + + + + \end{tikzpicture} + }} + \end{column} +\end{columns} +\end{frame} + + +\begin{frame} + \frametitle{Algorithm} + +\begin{columns} + \begin{column}{0.6\textwidth} +\begin{algorithm}[H]\caption{Square Matrix Multiplication} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{MM}{$\textbf{A}, \textbf{B}, \textbf{C}$} + \State $sum \gets 0$ + \State $n \gets columns(\textbf{A}) == rows(\textbf{B})$ + \State $m \gets rows(\textbf{A})$ + \State $p \gets columns(\textbf{B})$ + + \For{$i = 0,1,2 \dots,m-1$} + \For{$j = 0,1,2 \dots,p-1$} + \State $sum \gets 0$ + \For{$k = 0,1,2 \dots,n-1$} + \State $sum \gets sum + \textbf{A}[i][k] \cdot \textbf{B}[k][j]$ + \EndFor + \State $\textbf{C}[i][j] \gets sum $ + \EndFor + \EndFor + \State \textbf{return} $\textbf{C}$ + \EndFunction + \end{algorithmic} +\end{algorithm} +\end{column} +\begin{column}{0.4\textwidth} +\Huge$\mathcal{O}(n^3)$ +\end{column} +\end{columns} + +\end{frame} diff --git a/buch/papers/multiplikation/presentation/slides/bigO.tex b/buch/papers/multiplikation/presentation/slides/bigO.tex new file mode 100644 index 0000000..d425da8 --- /dev/null +++ b/buch/papers/multiplikation/presentation/slides/bigO.tex @@ -0,0 +1,251 @@ + +\begin{frame} + \frametitle{Big $\mathcal{O}$ notation} +\begin{itemize} + \item <1-> Time complexity of an algorithm + \item <2-> How many multiplications in a function + \item <3-> Drop Constants +\end{itemize} +\end{frame} + + +\begin{frame} + \frametitle{Big $\mathcal{O}$ notation} + \onslide<1->{ + + \begin{algorithm}[H]\caption{Foo 1} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{foo}{$a, b$} + \State \textbf{return} $a+b$ + \EndFunction + \end{algorithmic} + \end{algorithm} +} +\onslide<2->{ +$\mathcal{O}(1)$ + } +\end{frame} + +\begin{frame} + \frametitle{Big $\mathcal{O}$ notation} + \onslide<1->{ + + \begin{algorithm}[H]\caption{Foo 2} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{foo}{$a, b$} + \State $ x \gets a+b $ + \State $ y \gets a \cdot b $ + \State \textbf{return} $x+y$ + \EndFunction + \end{algorithmic} + \end{algorithm} +} +\onslide<2->{ +$\mathcal{O}(1) + \mathcal{O}(1) = 2\mathcal{O}(1) = \mathcal{O}(1) $ + } +\end{frame} + +\begin{frame} + \frametitle{Big $\mathcal{O}$ notation} + \onslide<1->{ + + \begin{algorithm}[H]\caption{Foo 3} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{foo}{$\mathbf{A}, \mathbf{B}$,n} + \State $ sum \gets 0$ + \For{$i = 0,1,2 \dots,n$} + \State $ sum \gets sum + A[i] \cdot B[i] $ + \EndFor + + \State \textbf{return} $sum$ + + \EndFunction + \end{algorithmic} + \end{algorithm} +} +\onslide<2->{ +$\mathcal{O}(n)$ + } +\end{frame} + +\begin{frame} + \frametitle{Big $\mathcal{O}$ notation} + \onslide<1->{ + + \begin{algorithm}[H]\caption{Foo 4} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{foo}{$\mathbf{A}, \mathbf{B}$,n} + \State $ sum \gets 0$ + \For{$i = 0,1,2 \dots,n$} + \For{$j = 0,1,2 \dots,n$} + \State $ sum \gets sum + A[i] \cdot B[j] $ + \EndFor + \EndFor + \State \textbf{return} $sum$ + \EndFunction + \end{algorithmic} + \end{algorithm} +} +\onslide<2->{ +$\mathcal{O}(n^2)$ + } +\end{frame} + +% \begin{frame} +% \frametitle{Big $\mathcal{O}$ notation} +% \onslide<1->{ +% +% \begin{algorithm}[H]\caption{Fibonacci} +% \setlength{\lineskip}{7pt} +% \begin{algorithmic}[1] +% \Function{fib}{$n$} +% \If{$n <= 1$} +% \State \textbf{return} $1$ +% \Else +% \State \textbf{return} fib($n-1$) + fib($n-2$) +% \EndIf +% +% \EndFunction +% \end{algorithmic} +% \end{algorithm} +% } +% \onslide<2->{ +% \[ +% \langle x,y \rangle = +% \begin{cases} +% \displaystyle $\mathcal{O}(1)$ & \text{if $n \leq 2$}\\ +% \displaystyle $ 2 \mathcal{T}(\frac{n}{2})$ & \text{if $n > 2$} +% \end{cases} +% \] } +% \end{frame} + + +\begin{frame} + \frametitle{Big $\mathcal{O}$ notation} +\begin{tikzpicture} +\begin{axis}[ + axis lines = left, + xlabel = $n$ (Data Input), + ylabel = {$t$ (time)}, + legend pos=north east, + very thick, + ymax = 20, + yticklabels=\empty, + xticklabels=\empty, + scale only axis=true, + width=12cm, height=6cm, + ] +%Below the red parabola is defined +\addplot [ + domain= 1:6, + samples=100, + color=red, +] +{1}; +\addlegendentry{$\mathcal{O}(1)$} +%Here the blue parabloa is defined +\addplot [ + domain= 1:6, + samples=100, + color=green, +] +{x}; +\addlegendentry{$\mathcal{O}(n)$} +\addplot [ + domain= 1:6, + samples=100, + color=blue, +] +{x^2}; +\addlegendentry{$\mathcal{O}(n^2)$} +\addplot [ + domain= 1:6, + samples=100, + color=purple, +] +{x^3}; +\addlegendentry{$\mathcal{O}(n^3)$} +\addplot [ + domain= 1:3, + samples=100, + color=black, +] +{exp(x)}; +\addlegendentry{$\mathcal{O}(e^n)$} +\addplot [ + domain= 1:6, + samples=100, + color=orange, +] +{log2(x)}; +\addlegendentry{$\mathcal{O}(\log n)$} +\end{axis} +\end{tikzpicture} + +\end{frame} + +\begin{frame} + \frametitle{Big $\mathcal{O}$ notation} +\begin{tikzpicture} +\begin{axis}[ + axis lines = left, + xlabel = $n$ (Data Input), + ylabel = {$t$ (time)}, + legend pos=north east, + very thick, + ymax = 500, + yticklabels=\empty, + xticklabels=\empty, + scale only axis=true, + width=12cm, height=6cm, + ] +\addplot [ + domain= 1:20, + samples=100, + color=red, +] +{1}; +\addlegendentry{$\mathcal{O}(1)$} +\addplot [ + domain= 1:20, + samples=100, + color=green, +] +{x}; +\addlegendentry{$\mathcal{O}(n)$} +\addplot [ + domain= 1:20, + samples=100, + color=blue, +] +{x^2}; +\addlegendentry{$\mathcal{O}(n^2)$} +\addplot [ + domain= 1:10, + samples=100, + color=purple, +] +{x^3}; +\addlegendentry{$\mathcal{O}(n^3)$} +\addplot [ + domain= 1:10, + samples=100, + color=black, +] +{exp(x)}; +\addlegendentry{$\mathcal{O}(e^n)$} +\addplot [ + domain= 1:20, + samples=100, + color=orange, +] +{log2(x)}; +\addlegendentry{$\mathcal{O}(\log n)$} +\end{axis} +\end{tikzpicture} + +\end{frame} diff --git a/buch/papers/multiplikation/presentation/slides/blas.tex b/buch/papers/multiplikation/presentation/slides/blas.tex new file mode 100644 index 0000000..ed498a3 --- /dev/null +++ b/buch/papers/multiplikation/presentation/slides/blas.tex @@ -0,0 +1,18 @@ +\begin{frame} +\frametitle{BLAS, LAPACK} +\begin{itemize} + \item Basic Linear Algebra Subprograms + \begin{itemize} + \item $\mathbf{y} = \alpha \mathbf{x}+\mathbf{y}$ + \item $\mathbf{y} = \alpha \mathbf{A}\mathbf{x}+ \beta \mathbf{y}$ + \item $\mathbf{C} = \alpha \mathbf{A}\mathbf{B}+ \beta \mathbf{C}$ + + \end{itemize} + \item Linear Algebra Package + \begin{itemize} + \item QR decomposition + \item Singular value decomposition + \item Eigenvalues + \end{itemize} +\end{itemize} +\end{frame} diff --git a/buch/papers/multiplikation/presentation/slides/conclusuion.tex b/buch/papers/multiplikation/presentation/slides/conclusuion.tex new file mode 100644 index 0000000..e69de29 diff --git a/buch/papers/multiplikation/presentation/slides/logo.pdf b/buch/papers/multiplikation/presentation/slides/logo.pdf new file mode 100644 index 0000000..d78ca88 Binary files /dev/null and b/buch/papers/multiplikation/presentation/slides/logo.pdf differ diff --git a/buch/papers/multiplikation/presentation/slides/meas.tex b/buch/papers/multiplikation/presentation/slides/meas.tex new file mode 100644 index 0000000..489c010 --- /dev/null +++ b/buch/papers/multiplikation/presentation/slides/meas.tex @@ -0,0 +1,42 @@ +\begin{frame} + \frametitle{Measurements Python} + \only<1>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/meas_8.pdf}} + \only<2>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/meas_16.pdf}} + \only<3>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/meas_32.pdf}} + \only<4>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/meas_64.pdf}} + \only<5>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/meas_128.pdf}} + \only<6>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/meas_256.pdf}} + \only<7>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/meas_512.pdf}} + \only<8>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/meas_1024.pdf}} +\end{frame} + + +\begin{frame} + \frametitle{Measurements C} + \only<1>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_8.pdf}} + \only<2>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_16.pdf}} + \only<3>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_32.pdf}} + \only<4>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_64.pdf}} + \only<5>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_128.pdf}} + \only<6>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_256.pdf}} + \only<7>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_512.pdf}} + \only<8>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_1024.pdf}} + \only<9>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_2048.pdf}} +\end{frame} diff --git a/buch/papers/multiplikation/presentation/slides/nn.tex b/buch/papers/multiplikation/presentation/slides/nn.tex new file mode 100644 index 0000000..e74e970 --- /dev/null +++ b/buch/papers/multiplikation/presentation/slides/nn.tex @@ -0,0 +1,97 @@ + +\begin{frame} + \frametitle{Neural Network} + \centering +\newcommand{\inputnum}{4} + +% Hidden layer neurons'number +\newcommand{\hiddennumA}{5} +\newcommand{\hiddennumB}{6} + +% Output layer neurons'number +\newcommand{\outputnum}{4} + +\begin{tikzpicture} + + +% Input Layer +\foreach \i in {1,...,\inputnum} +{ + \node[circle, + minimum size = 6mm, + fill=blue!30] (Input-\i) at (0,-\i) {}; +} + +% Hidden Layer1 +\foreach \i in {1,...,\hiddennumA} +{ + \node[circle, + minimum size = 6mm, + fill=red!50, + yshift=(\hiddennumA-\inputnum)*5 mm + ] (Hidden1-\i) at (2.5,-\i) {}; +} + +% Hidden Layer2 +\foreach \i in {1,...,\hiddennumB} +{ + \node[circle, + minimum size = 6mm, + fill=red!50, + yshift=(\hiddennumB-\inputnum)*5 mm + ] (Hidden2-\i) at (5,-\i) {}; +} + +% Output Layer +\foreach \i in {1,...,\outputnum} +{ + \node[circle, + minimum size = 6mm, + fill=green!50, + yshift=(\outputnum-\inputnum)*5 mm + ] (Output-\i) at (7.5,-\i) {}; +} + +% Connect neurons In-Hidden +\foreach \i in {1,...,\inputnum} +{ + \foreach \j in {1,...,\hiddennumA} + { + \draw[->, shorten >=1pt] (Input-\i) -- (Hidden1-\j); + } +} + +% Connect neurons In-Hidden +\foreach \i in {1,...,\hiddennumA} +{ + \foreach \j in {1,...,\hiddennumB} + { + \draw[->, shorten >=1pt] (Hidden1-\i) -- (Hidden2-\j); + } +} + +% Connect neurons Hidden-Out +\foreach \i in {1,...,\hiddennumB} +{ + \foreach \j in {1,...,\outputnum} + { + \draw[->, shorten >=1pt] (Hidden2-\i) -- (Output-\j); + } +} + +% Inputs +\foreach \i in {1,...,\inputnum} +{ + \draw[<-, shorten <=1pt] (Input-\i) -- ++(-1,0) + node[left]{\LARGE{$x_{\i}$}}; +} + +% Outputs +\foreach \i in {1,...,\outputnum} +{ + \draw[->, shorten <=1pt] (Output-\i) -- ++(1,0) + node[right]{\LARGE{$y_{\i}$}}; +} + +\end{tikzpicture} +\end{frame} diff --git a/buch/papers/multiplikation/presentation/slides/parcomp.tex b/buch/papers/multiplikation/presentation/slides/parcomp.tex new file mode 100644 index 0000000..1ba39ee --- /dev/null +++ b/buch/papers/multiplikation/presentation/slides/parcomp.tex @@ -0,0 +1,66 @@ +% !TEX root = presentation.tex + +\begin{frame} + \frametitle{Vector-Matrix Multiplication} +\center{ + \begin{tikzpicture}[ampersand replacement=\&] + + \matrix (A)[matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] + { + A_{1,1} \& A_{1,2} \& A_{1,3} \& A_{1,4} \\ + }; + + \matrix (B)[matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] at (5,-0.95) + { + B_{1,1} \& B_{1,2} \& B_{1,3} \& B_{1,4} \& B_{1,5} \\ + B_{2,1} \& B_{2,2} \& B_{2,3} \& B_{2,4} \& B_{2,5} \\ + B_{3,1} \& B_{3,2} \& B_{3,3} \& B_{3,4} \& B_{3,5} \\ + B_{4,1} \& B_{4,2} \& B_{4,3} \& B_{4,4} \& B_{4,5} \\ + }; + + \matrix (C)[matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] at (5,-3) + { + C_{1,1} \& C_{1,2} \& C_{1,3} \& C_{1,4} \& C_{1,5}\\ + }; + + \foreach \i in {1,...,4} + { + \pgfmathtruncatemacro{\ii}{\i+1} + \onslide<\ii>{ + + \foreach \j in {1,...,5} + { + \draw[thick] (A-1-\i.south) to [out=-90,in=135]node[visible on=<\i->, anchor=north]{} (B-\i-\j.center); + + } + } + } + + + \end{tikzpicture} +} +\end{frame} + + +\begin{frame} + \frametitle{DSP Architecture} +\scalebox{2}{ + \begin{tikzpicture} + \node (mul) at (0,0) [circle,draw=black,inner sep=0pt,minimum size=0.5cm] {X}; + \node (mac) at (2,0) [circle,draw=black,inner sep=0pt,minimum size=0.5cm] {\textbf{+}}; + + \node at (-2,0.3) {$A[n]$}; + \node at (0.4,2) {$B[n]$}; + \node at (4,0.3) {$C[n]$}; + + \draw[thick, ->] (-2,0) --++ (mul); + \draw[thick, ->] (0,2) --++ (mul); + \draw[thick, ->] (mul) -- (mac); + \draw[thick] (mac) --++ (1,0) node (i) {}; + \draw[thick, ->] (i.center) --++ (0,1) --++ (-1,0) -- (mac); + \draw[thick, ->] (i.center) --++ (1,0); + + + \end{tikzpicture} + } +\end{frame} diff --git a/buch/papers/multiplikation/presentation/slides/slides.tex b/buch/papers/multiplikation/presentation/slides/slides.tex new file mode 100644 index 0000000..64edb86 --- /dev/null +++ b/buch/papers/multiplikation/presentation/slides/slides.tex @@ -0,0 +1,15 @@ +% !TEX root = presentation.tex +\begin{frame} +\titlepage +\end{frame} +% +\section{Big $\mathcal{O}$} +\input{slides/BigO.tex} +\section{Strassen's Algorithm} +\input{slides/strassen.tex} +% \input{slides/nn.tex} +\section{Measurements} +\input{slides/meas.tex} +% \input{slides/parcomp.tex} +\section{How To Matrix Multiply} +\input{slides/blas.tex} diff --git a/buch/papers/multiplikation/presentation/slides/strassen.tex b/buch/papers/multiplikation/presentation/slides/strassen.tex new file mode 100644 index 0000000..c3398d5 --- /dev/null +++ b/buch/papers/multiplikation/presentation/slides/strassen.tex @@ -0,0 +1,429 @@ +\begin{frame} + \frametitle{Strassen's Algorithm} + \includegraphics[page=1,width=\textwidth,height=0.8\textheight,keepaspectratio]{../papers/Strassen_original_1969.pdf} + \includegraphics[page=2,width=\textwidth,height=0.8\textheight,keepaspectratio]{../papers/Strassen_original_1969.pdf} \includegraphics[page=3,width=\textwidth,height=0.8\textheight,keepaspectratio]{../papers/Strassen_original_1969.pdf} + \end{frame} + +\begin{frame} + \frametitle{Strassen's Algorithm} + \centering + \large +\onslide<1->{ + $ + \mathbf{A B = C} + $ +} + +\onslide<2->{ + + +\medskip + $ + \begin{bmatrix} + A_{11} & A_{12}\\ + A_{21} & A_{22} + \end{bmatrix} + \begin{bmatrix} + B_{11} & B_{12}\\ + B_{21} & B_{22} + \end{bmatrix} + = + \begin{bmatrix} + C_{11} & C_{12}\\ + C_{21} & C_{22} + \end{bmatrix} + $ + } + + + \onslide<3->{ + +\medskip +$ +C_{11} = A_{11} \cdot B_{11} + A_{12} \cdot B_{21} +$ + +$ +C_{12} = A_{11} \cdot B_{12} + A_{12} \cdot B_{22} +$ + +$ +C_{21} = A_{21} \cdot B_{11} + A_{22} \cdot B_{21} +$ + +$ +C_{22} = A_{21} \cdot B_{12} + A_{22} \cdot B_{22} +$ +} +\end{frame} + +\input{slides/algo.tex} + + + +\begin{frame} + \frametitle{Strassen's Algorithm} + \begin{columns} + \begin{column}{0.5\textwidth} + \onslide<1->{ + \large + \begin{math} + \begin{aligned} + \text{I} &= (A_{11} + A_{22}) \cdot (B_{11} + B_{22}) \\ + \text{II} &= (A_{21} + A_{22}) \cdot B_{11} \\ + \text{III} &= A_{11} \cdot (B_{12}-B_{22}) \\ + \text{IV} &= A_{22} \cdot (-B_{11}+B_{21}) \\ + \text{V} &= (A_{11} + A_{12}) \cdot B_{22} \\ + \text{VI} &= (-A_{11} + A_{21}) \cdot (B_{11} + B_{12}) \\ + \text{VII} &= (A_{12} - A_{22}) \cdot (B_{21} + B_{22}) \\ + \end{aligned} + \end{math} + } + \end{column} + + \begin{column}{0.5\textwidth} + \onslide<2->{ + \large + \begin{math} + \begin{aligned} + C_{11} &= \text{I} + \text{IV} - \text{V} + \text{VII} \\ + C_{21} &= \text{II} + \text{IV} \\ + C_{12} &= \text{III} + \text{V}\\ + C_{22} &= \text{I} + \text{III} - \text{II} + \text{VI} \\ + \end{aligned} + \end{math} + } + \end{column} +\end{columns} + +\onslide<3->{ + +\bigskip +\centering +\tiny +\begin{math} +\begin{aligned} + C_{11} &= (A_{11} + A_{22}) \cdot (B_{11} + B_{22}) + A_{22} \cdot (-B_{11}+B_{21}) - (A_{11} + A_{12}) \cdot B_{22} + (A_{12} - A_{22}) \cdot (B_{21} + B_{22}) \\ + C_{11} &= A_{11}B_{11} + A_{11}B_{22} + A_{22}B_{11} + A_{22}B_{22} -A_{22}B_{11}+A_{22}B_{21} - A_{11}B_{22} - A_{12}B_{22}+ A_{12}B_{21} + A_{12}B_{22} - A_{22}B_{21} - A_{22}B_{22} \\ + C_{11} &= A_{11}B_{11} + A_{12}B_{21} +\end{aligned} +\end{math} +} + +\end{frame} + + +\begin{frame} +\begin{adjustbox}{width=\textwidth} +\begin{tikzpicture}[ampersand replacement=\&] + + \foreach \i in {1,...,4} + { + \small{ + \matrix (X\i)[matrix of math nodes,nodes in empty cells, + nodes = {draw, minimum size=10mm, + anchor=center, + inner sep=0pt, outer sep=0pt}, + column sep=-\pgflinewidth, + row sep=-\pgflinewidth, + ] at (0,-\i*5) + { + A_{11}B_{11} \& A_{12}B_{11} \& A_{21}B_{11} \& A_{22}B_{11} \\ + A_{11}B_{21} \& A_{12}B_{21} \& A_{21}B_{21} \& A_{22}B_{21} \\ + A_{11}B_{11} \& A_{12}B_{12} \& A_{21}B_{12} \& A_{22}B_{12} \\ + A_{11}B_{22} \& A_{12}B_{22} \& A_{21}B_{22} \& A_{22}B_{22} \\ + };} + + \foreach \j in {1,...,7} + { + \matrix(M\i\j)[matrix of math nodes,nodes in empty cells, + nodes = {draw, minimum size=10mm, + anchor=center, + inner sep=0pt, outer sep=0pt}, + column sep=-\pgflinewidth, + row sep=-\pgflinewidth, + ] at (\j*5,-\i*5) + { + \& \& \& \\ + \& \& \& \\ + \& \& \& \\ + \& \& \& \\ + }; + } + } + +\huge{ + \node at (-3,-20) {$C_{22}=$}; + \node at (-3,-15) {$C_{21}=$} ; + \node at (-3,-10) {$C_{12}=$} ; + \node at (-3,-5) {$C_{11}=$} ; + + \node at (5,-2) {I}; + \node at (10,-2) {II}; + \node at (15,-2) {III}; + \node at (20,-2) {IV}; + \node at (25,-2) {V}; + \node at (30,-2) {VI}; + \node at (35,-2) {VII}; + } + + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X1-1-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X1-2-2)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X2-3-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X2-4-2)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X3-1-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X3-2-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X4-3-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X4-4-4)] {}; + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-4-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-1-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M14-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M14-2-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M15-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M15-4-2)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M17-2-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M17-4-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M17-2-2)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M17-4-2)] {}; + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M23-3-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M23-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M25-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M25-4-2)] {}; + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M32-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M32-1-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M34-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M34-2-4)] {}; + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-4-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-1-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M42-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M42-1-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M43-3-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M43-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M46-1-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M46-1-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M46-3-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M46-3-1)] {}; +\end{tikzpicture} +\end{adjustbox} +\end{frame} + + +\begin{frame} + \frametitle{Strassen's Algorithm} + \begin{columns} + \begin{column}{0.5\textwidth} + \large + \begin{math} + \begin{aligned} + \text{I} &= (A_{11} + A_{22}) \cdot (B_{11} + B_{22}) \\ + \text{II} &= (A_{21} + A_{22}) \cdot B_{11} \\ + \text{III} &= A_{11} \cdot (B_{12}-B_{22}) \\ + \text{IV} &= A_{22} \cdot (-B_{11}+B_{21}) \\ + \text{V} &= (A_{11} + A_{12}) \cdot B_{22} \\ + \text{VI} &= (-A_{11} + A_{21}) \cdot (B_{11} + B_{12}) \\ + \text{VII} &= (A_{12} - A_{22}) \cdot (B_{21} + B_{22}) \\ + \end{aligned} + \end{math} + + \end{column} + + \begin{column}{0.5\textwidth} + \large + \begin{math} + \begin{aligned} + C_{11} &= \text{I} + \text{IV} - \text{V} + \text{VII} \\ + C_{21} &= \text{II} + \text{IV} \\ + C_{12} &= \text{III} + \text{V}\\ + C_{22} &= \text{I} + \text{III} - \text{II} + \text{VI} \\ + \end{aligned} + \end{math} + + \end{column} +\end{columns} +\end{frame} + + + +\begin{frame} + \frametitle{Strassen's Algorithm} + +\begin{columns} + \begin{column}{0.5\textwidth} +\large +\begin{math} +\begin{aligned} +\text{\textbf{I}} &= (\mathbf{A_{11}} + \mathbf{A_{22}}) \cdot (\mathbf{B_{11}} + \mathbf{B_{22}}) \\ +\text{\textbf{II}} &= (\mathbf{A_{21}} + \mathbf{A_{22}}) \cdot \mathbf{B_{11}} \\ +\text{\textbf{III}} &= \mathbf{A_{11}} \cdot (\mathbf{B_{12}}-\mathbf{B_{22}}) \\ +\text{\textbf{IV}} &= \mathbf{A_{22}} \cdot (-\mathbf{B_{11}}+\mathbf{B_{21}}) \\ +\text{\textbf{V}} &= (\mathbf{A_{11}} + \mathbf{A_{12}}) \cdot \mathbf{B_{22}} \\ +\text{\textbf{VI}} &= (-\mathbf{A_{11}} + \mathbf{A_{21}}) \cdot (\mathbf{B_{11}} + \mathbf{B_{12}}) \\ +\text{\textbf{VII}} &= (\mathbf{A_{12}} - \mathbf{A_{22}}) \cdot (\mathbf{B_{21}} + \mathbf{B_{22}}) \\ +\end{aligned} +\end{math} + +\end{column} + +\begin{column}{0.5\textwidth} + \large + \begin{math} + \begin{aligned} + \mathbf{C_{11}} &= \text{\textbf{I}} + \text{\textbf{IV}} - \text{\textbf{V}} + \text{\textbf{VII}} \\ + \mathbf{C_{21}} &= \text{\textbf{II}} + \text{\textbf{IV}} \\ + \mathbf{C_{12}} &= \text{\textbf{III}} + \text{\textbf{V}}\\ + \mathbf{C_{22}} &= \text{\textbf{I}} + \text{\textbf{III}} - \text{\textbf{II}} + \text{\textbf{VI}} \\ + \end{aligned} + \end{math} + +\end{column} +\end{columns} + +\end{frame} + +\begin{frame} + \frametitle{Algorithm} + \onslide<1->{ + + \scalebox{0.45}{\parbox{\linewidth}{ + \begin{algorithm}[H]\caption{Strassen Matrix Multiplication} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{strassen}{$\textbf{A}, \textbf{B}, n$} + \If{$n = 2$} + \State $ \mathbf{C} \gets zeros((n, n))$ + \State $P \gets (A[0][0]+A[1][1])\cdot( B[0][0]+B[1][1])$ + \State $Q \gets (A[1][0]+A[1][1])\cdot B[0][0]$ + \State $R \gets A[0][0]\cdot (B[0][1]-B[1][1])$ + \State $S \gets A[1][1]\cdot (B[1][0]-B[0][0])$ + \State $T \gets (A[0][0]+A[0][1])\cdot B[1][1]$ + \State $U \gets (A[1][0]-A[0][0])\cdot (B[0][0]+B[0][1])$ + \State $V \gets (A[0][1]-A[1][1])\cdot (B[1][0]+B[1][1])$ + \State $C[0][0] \gets P+S-T+V$ + \State $C[0][1] \gets R+T$ + \State $C[1][0] \gets Q+S$ + \State $C[1][1] \gets P+R-Q+U$ + \Else + \State $ m \gets n/2$ + \State $\mathbf{A11}, \mathbf{A12}, \mathbf{A21}, \mathbf{A22} \gets \mathbf{A}[:m][:m], \mathbf{A}[:m][m:], \mathbf{A}[m:][:m], \mathbf{A}[m:][m:]$ + \State $\mathbf{B11}, \mathbf{B12}, \mathbf{B21}, \mathbf{B22} \gets \mathbf{B}[:m][:m], \mathbf{B}[:m][m:], \mathbf{B}[m:][:m], \mathbf{B}[m:][m:]$ + + \State $ \mathbf{P} \gets \text{strassen}((\mathbf{A11}+ \mathbf{A22}),(\mathbf{B11}+\mathbf{B22}), m)$ + \State $ \mathbf{Q} \gets \text{strassen}((\mathbf{A21}+ \mathbf{A22}), \mathbf{B11},m)$ + \State $ \mathbf{R} \gets \text{strassen}( \mathbf{A11},(\mathbf{B12}- \mathbf{B22}),m)$ + \State $ \mathbf{S} \gets \text{strassen}( \mathbf{A22},(\mathbf{B21}- \mathbf{B11}),m)$ + \State $ \mathbf{T} \gets \text{strassen}((\mathbf{A11}+ \mathbf{A12}), \mathbf{B22},m)$ + \State $ \mathbf{U} \gets \text{strassen}((\mathbf{A21}- \mathbf{A11}),(\mathbf{B11}+\mathbf{B12}),m)$ + \State $ \mathbf{V} \gets \text{strassen}((\mathbf{A12}- \mathbf{A22}),(\mathbf{B21}+\mathbf{B22}),m)$ + + + + \State $\mathbf{C11} \gets \mathbf{P+S-T+V}$ + \State $\mathbf{C12} \gets \mathbf{R+T}$ + \State $\mathbf{C21} \gets \mathbf{Q+S}$ + \State $\mathbf{C22} \gets \mathbf{P+R-Q+U}$ + \State $ C \gets vstack((hstack((C11, C12)), hstack((C21, C22))))$ + + \EndIf + \State \textbf{return} $\textbf{C}$ + + \EndFunction + \end{algorithmic} + \end{algorithm} + }}} +% \[ +% \mathcal{T}(n) = \left\{\begin{array}{lr} +% 1, & \text{if} n \leq 2\\ +% 7 \mathcal{T}(\frac{n}{2}) + n^2, & \text{if} n > 2\\ +% \end{array}\right\} +% \] +\only<2>{ + $ + \mathcal{T}(n) = + \begin{cases} + 1 & \text{if } n \leq 2\\ + 7 \cdot \mathcal{T}(\frac{n}{2}) + n^2 & \text{if } n > 2 + \end{cases} = \mathcal{O}(n^{\log_2 7})$ + +} +\only<3>{ + $ + \mathcal{T}(n) = + \begin{cases} + 1 & \text{if } n \leq 2\\ + 7 \cdot \mathcal{T}(\frac{n}{2}) + n^2 & \text{if } n > 2 + \end{cases} = \mathcal{O}(n^{2.81})$ + +} + +\end{frame} + +\begin{frame} + \frametitle{Algorithm} + \onslide<1->{ + + \scalebox{0.45}{\parbox{\linewidth}{ + \begin{algorithm}[H]\caption{Strassen Matrix Multiplication} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{MM}{$\textbf{A}, \textbf{B}, n$} + \If{$n = 2$} + \State $ \mathbf{C} \gets zeros((n, n))$ + \State $C[0, 0] \gets A[0][0]*B[0][0]+A[0][1]*B[1][0]$ + \State $C[0, 1] \gets A[0][0]*B[0][1]+A[0][1]*B[1][1]$ + \State $C[1, 0] \gets A[1][0]*B[0][0]+A[1][1]*B[1][0]$ + \State $C[1, 1] \gets A[1][0]*B[0][1]+A[1][1]*B[1][1]$ + \Else + \State $ m \gets n/2$ + \State $\mathbf{A11}, \mathbf{A12}, \mathbf{A21}, \mathbf{A22} \gets \mathbf{A}[:m][:m], \mathbf{A}[:m][m:], \mathbf{A}[m:][:m], \mathbf{A}[m:][m:]$ + \State $\mathbf{B11}, \mathbf{B12}, \mathbf{B21}, \mathbf{B22} \gets \mathbf{B}[:m][:m], \mathbf{B}[:m][m:], \mathbf{B}[m:][:m], \mathbf{B}[m:][m:]$ + + \State $\mathbf{C11} \gets \text{MM}(\mathbf{A11}, \mathbf{B11}) + \text{MM}(\mathbf{A12}, \mathbf{B21})$ + \State $\mathbf{C12} \gets \text{MM}(\mathbf{A11},\mathbf{B12}) + \text{MM}(\mathbf{A12},\mathbf{B22})$ + \State $\mathbf{C21} \gets \text{MM}(\mathbf{A21}, \mathbf{B11}) + \text{MM}(\mathbf{A22}, \mathbf{B21})$ + \State $\mathbf{C22} \gets \text{MM}(\mathbf{A21}, \mathbf{B12}) + \text{MM}(\mathbf{A22}, \mathbf{B22})$ + \State $ C \gets vstack((hstack((C11, C12)), hstack((C21, C22))))$ + + \EndIf + \State \textbf{return} $\textbf{C}$ + + \EndFunction + \end{algorithmic} + \end{algorithm} + \bigskip + \bigskip + \bigskip + \bigskip + \bigskip + }}} + +\only<2>{ + + + $ + \mathcal{T}(n) = + \begin{cases} + 1 & \text{if } n \leq 2\\ + 8 \cdot \mathcal{T}(\frac{n}{2}) + n^2 & \text{if } n > 2 + \end{cases} = \mathcal{O}(n^{\log_2 8})$ + +} +\only<3>{ + $ + \mathcal{T}(n) = + \begin{cases} + 1 & \text{if } n \leq 2\\ + 8 \cdot \mathcal{T}(\frac{n}{2}) + n^2 & \text{if } n > 2 + \end{cases} = \mathcal{O}(n^{3})$ + +} + +\end{frame} diff --git a/buch/papers/multiplikation/presentation/tikz/algo.pdf b/buch/papers/multiplikation/presentation/tikz/algo.pdf new file mode 100644 index 0000000..752f42e Binary files /dev/null and b/buch/papers/multiplikation/presentation/tikz/algo.pdf differ diff --git a/buch/papers/multiplikation/presentation/tikz/algo.tex b/buch/papers/multiplikation/presentation/tikz/algo.tex new file mode 100644 index 0000000..0b2c567 --- /dev/null +++ b/buch/papers/multiplikation/presentation/tikz/algo.tex @@ -0,0 +1,52 @@ +\documentclass[border=10pt]{article} +\usepackage[left=25mm,right=25mm,top=25mm,bottom=25mm]{geometry} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{times} +\usepackage{geometry} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{mathrsfs} +\usepackage{amsfonts} +\usepackage{amsthm} +\usepackage{lipsum} +\usepackage{amscd} +\usepackage{graphicx} +\usepackage{fancyhdr} +\usepackage{textcomp} +\usepackage{txfonts} +\usepackage[all]{xy} +\usepackage{paralist} +\usepackage[colorlinks=true]{hyperref} +\usepackage{array} +\usepackage{tikz} +\usepackage{slashed} +\usepackage{pdfpages} +\usepackage{cite} +\usepackage{url} +\usepackage{algorithm} +\usepackage[noend]{algpseudocode} +\usepackage{listings} +\usepackage{multirow} +\usepackage{color} + +\begin{document} + +\begin{algorithm}[H]\caption{Square Matrix Multiplication} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{MM}{$\textbf{A}, \textbf{B}, \textbf{C}, n$} + \State $sum \gets 0$ + \For{$i = 0,1,2 \dots,n-1$} + \For{$j = 0,1,2 \dots,n-1$} + \State $sum \gets 0$ + \For{$k = 0,1,2 \dots,n-1$} + \State $sum \gets sum + \textbf{A}[i][k] \cdot \textbf{B}[k][j]$ + \EndFor + \State $\textbf{C}[i][j] \gets sum $ + \EndFor + \EndFor + \EndFunction + \end{algorithmic} +\end{algorithm} +\end{document} diff --git a/buch/papers/multiplikation/problemstellung.tex b/buch/papers/multiplikation/problemstellung.tex new file mode 100755 index 0000000..b20a791 --- /dev/null +++ b/buch/papers/multiplikation/problemstellung.tex @@ -0,0 +1,104 @@ +% +% teil1.tex -- Beispiel-File für das Paper +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Problemstellung} +\rhead{Problemstellung} +Dank der breiten Anwendung der Matrizenmultiplikation ist eine effiziente L\"osung dieser Operation von grosser Bedeutung. +Das Ziel dieses Papers ist verschiedenen Algorithmen der Matrizenmultiplikation vorzustellen. +Wobei gezielt auf Algorithmen, welche das Problem schneller als der Standard Algorithmus L\"osen eingegangen wird. + +\subsection{Big $\mathcal{O}$ Notation} +Die Big $\mathcal{O}$ Notation beschreibt die Laufzeitkomplexit\"at eines Algorithmus \cite{multiplikation:bigo}. +$f(x) \in \mathcal{O}(g(x))$ besagt das die Funktion $f$ nicht wesentlich schneller w\"achst als $g$ wenn $x \rightarrow \infty$. +Vereinfacht werden f\"ur Algorithmen die folgende Notation verwendet: +\begin{itemize} + \item $f \in \mathcal{O}(1) \rightarrow f$ ist beschr\"ankt + \item $f \in \mathcal{O}(n) \rightarrow f$ w\"achst linear + \item $f \in \mathcal{O}(n^2) \rightarrow f$ w\"achst quadratisch + \item $f \in \mathcal{O}(\log n) \rightarrow f$ w\"achst logarithmisch + \item $f \in \mathcal{O}(n \log n) \rightarrow f$ hat super-lineares Wachstum + \item $f \in \mathcal{O}(e^n) \rightarrow f$ w\"achst exponentiell + \item usw. +\end{itemize} + +In der Abbildung \ref{multiplikation:fig:bigo} k\"onnen die Verschiedenen Laufzeiten miteinander verglichen werden. + +\begin{figure} + \center + \includegraphics[]{papers/multiplikation/images/bigo} + \caption{Verschiedene Laufzeiten} + \label{multiplikation:fig:bigo} +\end{figure} + +\subsubsection{Beispiel Algorithmen} +\paragraph{Beschr\"ankter Algorithmus} + +Ein Beispiel eines Beschr\"ankter Verhalten $\mathcal{O}(1)$, kann im Algorithmus \ref{multiplikation:alg:b1} entnommen werden. + +\begin{algorithm}\caption{} + \label{multiplikation:alg:b1} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \Function{B1}{$a, b$} + \State \textbf{return} $a+b$ + \EndFunction + \end{algorithmic} +\end{algorithm} + +Wobei Konstanten nicht beachtet werden, der Algorithmus \ref{multiplikation:alg:b2} f\"uhrt ebenso zu $\mathcal{O}(1)$ und nicht zu $\mathcal{O}(2)$. + +\begin{algorithm}\caption{} + \label{multiplikation:alg:b2} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \Function{B2}{$a, b$} + \State $ x \gets a+b $ + \State $ y \gets a \cdot b $ + \State \textbf{return} $x+y$ + \EndFunction + \end{algorithmic} +\end{algorithm} + +\paragraph{Linearer Algorithmus} + +Folgender Algorithmus \ref{multiplikation:alg:l1} hat ein lineares $\mathcal{O}(n)$ Verhalten. + +\begin{algorithm}\caption{} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \label{multiplikation:alg:l1} + \Function{L}{$\mathbf{A}, \mathbf{B}$,n} + \State $ sum \gets 0$ + \For{$i = 0,1,2 \dots,n$} + \State $ sum \gets sum + A[i] \cdot B[i] $ + \EndFor + + \State \textbf{return} $sum$ + + \EndFunction + \end{algorithmic} +\end{algorithm} + +\paragraph{Quadratischer Algorithmus} + +Folgender Algorithmus \ref{multiplikation:alg:q1} hat ein quadratisches $\mathcal{O}(n^2)$ Verhalten. + +\begin{algorithm}[H]\caption{} + \label{multiplikation:alg:q1} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \Function{Q}{$\mathbf{A}, \mathbf{B}$,n} + \State $ sum \gets 0$ + \For{$i = 0,1,2 \dots,n$} + \For{$j = 0,1,2 \dots,n$} + \State $ sum \gets sum + A[i] \cdot B[j] $ + \EndFor + \EndFor + \State \textbf{return} $sum$ + \EndFunction + \end{algorithmic} +\end{algorithm} + + diff --git a/buch/papers/multiplikation/references.bib b/buch/papers/multiplikation/references.bib old mode 100644 new mode 100755 index 7149fb1..9d76e8e --- a/buch/papers/multiplikation/references.bib +++ b/buch/papers/multiplikation/references.bib @@ -33,3 +33,33 @@ url = {https://doi.org/10.1016/j.acha.2017.11.004} } +@article{multiplikation:winograd_1968, + title={A New Algorithm for Inner Product}, + volume={C-17}, + DOI={10.1109/tc.1968.227420}, + number={7}, + journal={IEEE Transactions on Computers}, + author={Winograd, S.}, + year={1968}, + pages={693–694} +} + +@article{multiplikation:strassen_1969, + title={Gaussian elimination is not optimal}, + volume={13}, + DOI={10.1007/bf02165411}, + number={4}, + journal={Numerische Mathematik}, + author={Strassen, Volker}, + year={1969}, + pages={354–356} +} + +@online{multiplikation:bigo, + title = {Big O notation}, + url = {https://en.wikipedia.org/wiki/Big_O_notation}, + date = {2021-07-27}, + year = {2021}, + month = {7}, + day = {27} +} diff --git a/buch/papers/multiplikation/teil0.tex b/buch/papers/multiplikation/teil0.tex deleted file mode 100644 index 082b7f5..0000000 --- a/buch/papers/multiplikation/teil0.tex +++ /dev/null @@ -1,22 +0,0 @@ -% -% einleitung.tex -- Beispiel-File für die Einleitung -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 0\label{multiplikation:section:teil0}} -\rhead{Teil 0} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{multiplikation:bibtex}. -At vero eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum -dolor sit amet. - -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit -amet. - - diff --git a/buch/papers/multiplikation/teil1.tex b/buch/papers/multiplikation/teil1.tex deleted file mode 100644 index 0a6903a..0000000 --- a/buch/papers/multiplikation/teil1.tex +++ /dev/null @@ -1,55 +0,0 @@ -% -% teil1.tex -- Beispiel-File für das Paper -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 1 -\label{multiplikation:section:teil1}} -\rhead{Problemstellung} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. -Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit -aut fugit, sed quia consequuntur magni dolores eos qui ratione -voluptatem sequi nesciunt -\begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{multiplikation:equation1} -\end{equation} -Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, -consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. - -Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis -suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? -Quis autem vel eum iure reprehenderit qui in ea voluptate velit -esse quam nihil molestiae consequatur, vel illum qui dolorem eum -fugiat quo voluptas nulla pariatur? - -\subsection{De finibus bonorum et malorum -\label{multiplikation:subsection:finibus}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. - -Et harum quidem rerum facilis est et expedita distinctio -\ref{multiplikation:section:loesung}. -Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil -impedit quo minus id quod maxime placeat facere possimus, omnis -voluptas assumenda est, omnis dolor repellendus -\ref{multiplikation:section:folgerung}. -Temporibus autem quibusdam et aut officiis debitis aut rerum -necessitatibus saepe eveniet ut et voluptates repudiandae sint et -molestiae non recusandae. -Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis -voluptatibus maiores alias consequatur aut perferendis doloribus -asperiores repellat. - - diff --git a/buch/papers/multiplikation/teil2.tex b/buch/papers/multiplikation/teil2.tex deleted file mode 100644 index efbf31a..0000000 --- a/buch/papers/multiplikation/teil2.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil2.tex -- Beispiel-File für teil2 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 2 -\label{multiplikation:section:teil2}} -\rhead{Teil 2} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{multiplikation:subsection:bonorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - diff --git a/buch/papers/multiplikation/teil3.tex b/buch/papers/multiplikation/teil3.tex deleted file mode 100644 index f58508b..0000000 --- a/buch/papers/multiplikation/teil3.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil3.tex -- Beispiel-File für Teil 3 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 3 -\label{multiplikation:section:teil3}} -\rhead{Teil 3} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{multiplikation:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - diff --git a/buch/papers/multiplikation/tikz_formulas/algo.fdb_latexmk b/buch/papers/multiplikation/tikz_formulas/algo.fdb_latexmk new file mode 100644 index 0000000..5f14129 --- /dev/null +++ b/buch/papers/multiplikation/tikz_formulas/algo.fdb_latexmk @@ -0,0 +1,254 @@ +# Fdb version 3 +["pdflatex"] 1620305767 "algo.tex" "algo.pdf" "algo" 1621586452 + "/dev/null" 1621583990 0 d41d8cd98f00b204e9800998ecf8427e "" + "/etc/texmf/web2c/texmf.cnf" 1619433543 475 c0e671620eb5563b2130f56340a5fde8 "" + "/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc" 1165713224 4850 80dc9bab7f31fb78a000ccfed0e27cab "" + "/usr/share/texlive/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm" 1136768653 3584 adb004a0c8e7c46ee66cad73671f37b4 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs10.tfm" 1229303445 688 37338d6ab346c2f1466b29e195316aa4 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs5.tfm" 1229303445 684 3a51bd4fd9600428d5264cf25f04bb9a "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs7.tfm" 1229303445 692 1b6510779f0f05e9cbf03e0f6c8361e6 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxb.tfm" 1136768653 1020 c53143d3e3747b5c1149bd9a5ecd7b55 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxmi.tfm" 1136768653 1056 e2202af076e43d03fc17f87e104021b0 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmb.tfm" 1136768653 4572 2c370d27bbb031f7592de9d41dc8cfca "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmr.tfm" 1136768653 4452 0fd0a792eaab7113e4d4f1b941ff0367 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmri.tfm" 1136768653 4640 ce59980bcbe9e6236fab46d0b5212c7e "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxr.tfm" 1136768653 1004 c0e991f864f31f017ea4ff9e451b76d4 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xb.tfm" 1136768653 6892 772bf8e6c154137db8568fa8a47a6ceb "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm" 1136768653 6716 6d25a377562601272906e3bfe6b2817a "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm" 1136768653 1080 b674b4ba143004461509a754a0984b67 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm" 1136768653 688 f56006d6e56f46e63d9f63252958b828 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm" 1136768653 2584 cf4a6a7c2a518d47468fe29ef0913ba0 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm" 1232065820 1944 f854e259cb2839e49d4aa2949544a6e1 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm" 1136768653 1180 72784d0ee5a983fba99a0986b31b0493 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm" 1136768653 2408 aec793a3c45e495f7ad15b227c91f508 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm" 1136768653 1268 1d124f224979493f8fd017a7597ea1cd "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm" 1136768653 972 2c9ffac4bbd20f91c01aaef9bf3f8710 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm" 1136768653 988 098ca7e8cc5647b9ac21b82dbdce1f01 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm" 1136768653 1084 75e807e9e71f7a312e4e1187dce5e93b "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xyatip10.tfm" 1381187214 608 50246cc71b0635b0ba0a5c10a0bf4257 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xybsql10.tfm" 1381187214 608 4db60f15ea23b4ec2d796c6d568a63fa "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xybtip10.tfm" 1381187214 608 50246cc71b0635b0ba0a5c10a0bf4257 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycirc10.tfm" 1381187214 844 3393210079fb4ed9347e214b3bfd7c1a "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycmat10.tfm" 1381187214 608 f124f78ed50a1817738d2adb190cf2bd "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycmbt10.tfm" 1381187214 608 f124f78ed50a1817738d2adb190cf2bd "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xydash10.tfm" 1381187214 984 5c01c46b93e3ba8369f3f8edc6e62aef "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xyluat10.tfm" 1381187214 608 a3a3bc08980c5126ff2a7a68fb5a64ff "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xylubt10.tfm" 1381187214 608 a3a3bc08980c5126ff2a7a68fb5a64ff "" + "/usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/rtxmi.pfb" 1232065820 13806 49b888f4605a088e66b9eb4fee320a6e "" + "/usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/rtxr.pfb" 1136849748 6339 e2b78706efdc360ee6aec9b6e20211a7 "" + "/usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/txex.pfb" 1136849748 17531 c91f2d6943f51d7c46d6b7b9cedd50ba "" + "/usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/txsy.pfb" 1136849748 20336 69267d8a81bca8b24c9b42694a4a28f9 "" + "/usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmb8a.pfb" 1136849748 44729 811d6c62865936705a31c797a1d5dada "" + "/usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmr8a.pfb" 1136849748 46026 6dab18b61c907687b520c72847215a68 "" + "/usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmri8a.pfb" 1136849748 45458 a3faba884469519614ca56ba5f6b1de1 "" + "/usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/t1xb.vf" 1136768653 2144 bab2875eda5b2344ea7b1db74ccc03a4 "" + "/usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/t1xr.vf" 1136768653 2140 99e5b3a34695df6221a167ffa8b498d6 "" + "/usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txmi.vf" 1232065820 960 cfcc9d587b40b769f64408b3ca115941 "" + "/usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txr.vf" 1136768653 904 e582cae2d8ae3f48a0a520440ebcdb51 "" + "/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii" 1461363279 71627 94eb9990bed73c364d7f53f960cc8c5b "" + "/usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty" 1575674566 24708 5584a51a7101caf7e6bbf1fc27d8f7b1 "" + "/usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty" 1576625341 40635 c40361e206be584d448876bba8a64a3b "" + "/usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty" 1576016050 33961 6b5c75130e435b2bfdb9f480a09a39f9 "" + "/usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty" 1576625273 7734 b98cbb34c81f667027c1e3ebdbfce34b "" + "/usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty" 1576625223 8371 9d55b8bd010bc717624922fb3477d92e "" + "/usr/share/texlive/texmf-dist/tex/generic/iftex/ifluatex.sty" 1572645307 492 1994775aa15b0d1289725a0b1bbc2d4c "" + "/usr/share/texlive/texmf-dist/tex/generic/iftex/ifpdf.sty" 1572645307 480 5778104efadad304ced77548ca2184b1 "" + "/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty" 1573336935 6902 30fdaf7dc5636b8e3afa306210c45cae "" + "/usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty" 1572645307 1057 525c2192b5febbd8c1f662c9468335bb "" + "/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty" 1575499628 8356 7bbb2c2373aa810be568c29e333da8ed "" + "/usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty" 1576625065 31769 002a487f55041f8e805cfbf6385ffd97 "" + "/usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty" 1576878844 5412 d5a2436094cd7be85769db90f29250a6 "" + "/usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty" 1576624944 13807 952b0226d4efca026f0e19dd266dcc22 "" + "/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty" 1576624883 18552 1e1cc7b75da0dfaacce7cdcb27d306bf "" + "/usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty" 1576015897 19007 15924f7228aca6c6d184b115f4baa231 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex" 1557692582 992 fb3cda354707a54fda62787a411c7c22 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex" 1546728038 43820 bc6cf5aa959817914ace33f5c6232161 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex" 1557692582 19324 c9a64402f22bd8d81821141a357af653 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex" 1546728038 6038 d639d02574be9a72f3c602c2a3510e02 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex" 1546728038 6948 284bbe3c9a7ca0a826c1c03895e69b9f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex" 1546728038 4883 a6f3eb1f71d8c4affaf43a169828b043 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex" 1546728038 2544 3b1b198fd49f01e328adc9162a07b213 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex" 1576793519 44189 1fd6229dad4c898883516c032f2ca5d2 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex" 1546728038 17311 3092579be20ef0f229c42ad3f09da85c "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex" 1546728038 21302 d6c4b340248adbe650ebf6ca76bdccca "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex" 1562964315 9690 7585efa5a591822837f837bc5bc35621 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex" 1576793519 33335 942ccafe284041918d36e54696b98aa7 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex" 1546728038 2965 502761b60f43ab2de5ecb2f4625163ae "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex" 1546728038 5196 f8c5c775d4d6e2cb050392127cabda72 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex" 1576793519 20726 ed6ec1d6f0f35e7a93de4e79af83dbce "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex" 1557692582 35249 144a6b9c4df4644618bb3a0a40472608 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex" 1546728038 21989 266e83c51fe41eb8b8d5e6896dc71cc1 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex" 1546728038 8842 5cc856e132fac404805c6da091779283 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryarrows.code.tex" 1546728038 319 8fc6edce901e074ba09de320a8fc686b "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryautomata.code.tex" 1546728038 3986 c962be8d57437fcaf853d2babd8ed403 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybackgrounds.code.tex" 1546728038 4572 980c82f01c0e3983edadbbc373d304cb "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfit.code.tex" 1546728038 3643 4a4bd51bd85886cc39d4073af8cf77a9 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymatrix.code.tex" 1546728038 4202 e655aa2657da1088ec7745ece2876c4c "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex" 1546728038 3937 20cd45386ca23052ce976464f0ada984 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.multipart.code.tex" 1546728038 919 da625675781832f2b61a7048a51ef656 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex" 1576793519 11544 2a5d66a3270abf4ef673e8a0b7734a90 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex" 1576967981 187592 7922ceab1864698dec4c84978d5b182f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex" 1546728038 31874 d843d507175f2bdfa3abf01f0349dac8 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex" 1546728038 32995 a4d54c043ae5274ceaaddeb36ad43a6f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.multipart.code.tex" 1546728038 62281 fd68e6d2c2dc178611c8f4d2d86e79ae "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfint.code.tex" 1557692582 3063 8c415c68a0f3394e45cfeca0b65f6ee6 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex" 1557692582 521 c70cf6ad609de83a27ee7929eb356332 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex" 1557692582 13391 933cab19c6d27039dbfc487330d1005a "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex" 1557692582 104938 15f2d8bdabd6bf9ca70f62cd8e3d4940 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex" 1557692582 10157 218d58ab074e5bd0d027de45ec64cc00 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex" 1576793519 28176 568b081ec39645f2db1a29fbd0c635e2 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex" 1562964315 9054 388d21239a1b6df2cc8beaae31c976b0 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex" 1557692582 3865 cddf7ddc80f018587c55afdcc79fc333 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex" 1557692582 3177 27d85c44fbfe09ff3b2cf2879e3ea434 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex" 1557692582 10925 df50b8a6e5660a585e3a2bf55726dcc8 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex" 1562964315 7787 1750fc3f164703caf31fc8ea9218c67e "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex" 1557692582 3379 cbd0948a550bd7a495a160ca6beee9ed "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex" 1557692582 92405 bba89470858d7b0788a9c09331c39653 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex" 1576793519 36526 453db1f8626a56b5ebb0fad496d6a39f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex" 1576793519 8471 b18959397c76e1e582402ab9f592ed9f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex" 1576793519 21201 46a4dded6619f990ac7347f99fbaac9f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex" 1557692582 16121 9e240115374a8d489f2f786115df83a9 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex" 1576793519 43259 3e05ba63539916af2eaca603c2eda780 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/pgf.revision.tex" 1578520427 465 1f401ab1e7fc6cb7ede39e96c66531fd "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg" 1557692582 926 70ff613fabeb70f5d1673dc0c93987bd "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def" 1557692582 5546 3586827e6032c95512b2a6682d2979a3 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def" 1562964315 12603 c02869ea216d842c29d52fae8738264e "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex" 1557692582 60269 e86bc0081af83a4ad47e4500ee09a2e4 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex" 1557692582 1896 82c274ff520f9e450ccea4e3ef4edc12 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex" 1557692582 7778 a25a32a10ca820357491d4c7b3ac02ea "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex" 1562964315 23777 cb6c8f02f87d86d621f5cb92c44f4998 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex" 1576793519 36815 f7f1772c398f07af2cb741992963045c "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex" 1562964315 37439 bd44d50aef702b03193f731207931834 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex" 1557692582 4494 7e5ace0ccf59408f2cf63219a5d36927 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.tex" 1557692582 7250 03b2b9fb5fa38e7ca5cc3c45860fb210 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex" 1576793519 28309 488ccc6c701bbdd1bf671f708757aa5c "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def" 1562964315 6286 1bd76fc45da9929ab2a64f51cba3ab6f "" + "/usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty" 1576624663 7008 f92eaa0a3872ed622bbf538217cd2ab7 "" + "/usr/share/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex" 1403829539 2725 fc34ef3ccb37ba15a640e8fca6190bca "" + "/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex" 1417732693 19231 26434a5656c684f5ffb1f26f98006baa "" + "/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex" 1403829539 7677 6f5ce7c1124cad7ec57d05b2562bd8fe "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xy.sty" 1312310545 4692 1e1bcf75c622af1eefd9169948208302 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xy.tex" 1381187214 115380 413d5f789929a45aab7d12ce0d0aee7d "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyall.tex" 1312310545 1449 24340b6befc66d28ee1ebb657efb5892 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyarrow.tex" 1312310545 22657 990ce136a3cc15728ba417a2e78b25c8 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xycmtip.tex" 1312310545 1374 43fb8dc80dd748631d78096701166d76 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xycolor.tex" 1312310545 4586 edd672434f45626662368282c0322160 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xycurve.tex" 1312310545 109670 d412ee1ff259daefee5e927172e2f9a8 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyframe.tex" 1337903317 24249 186931a828664624939ab0b347e3952c "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xygraph.tex" 1312310545 9619 b7e4d9a6936ba2ad6119a280abde9641 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyidioms.tex" 1312310545 2907 1ee562fde0b53c9cd16f7a604f33fdf0 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyline.tex" 1312310545 10928 c3a572983ccc9fc596b4e9ce454d5652 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xymatrix.tex" 1312310545 22583 25b1e7edeee41f181ee9733429da4a9c "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-co.tex" 1312310545 8442 90cb8a3b00c2081384c1ce988d2ba0a3 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-cu.tex" 1312310545 39762 25a964ebb390bcfcd35c040f477eef1d "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-fr.tex" 1312310545 16485 5686b19cc46d046c885428794ed9c114 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-li.tex" 1312310545 2619 1a12b316e2132654e44ba2cd21def637 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-ro.tex" 1312310545 5290 e16fc85c85f64d0a5c04708bf3312d00 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf.tex" 1312310545 18763 e61049d36bdfccb226f22e582d70d368 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyrecat.tex" 1312310545 1391 c8763fc8e281cb6ecf697988b6608e4a "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyrotate.tex" 1312310545 7008 cb768d8d63a12d35607cbb3c4e7ba163 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xytips.tex" 1381187214 3689 0d51788a4141bc66ab896f7ac63495fd "" + "/usr/share/texlive/texmf-dist/tex/latex/amscls/amsthm.sty" 1513722769 12604 3dec726c041422879dc3268237f09026 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty" 1359763108 5949 3f3fd50a8cc94c3d4cbf4fc66cd3df1c "" + "/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty" 1359763108 13829 94730e64147574077f8ecfea9bb69af4 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty" 1523134290 2211 ca7ce284ab93c8eecdc6029dc5ccbd73 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amscd.sty" 1523134290 5309 0c9ef5db85b924cdbb316f080dfd826e "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty" 1523134290 4161 7f6eb9092061a11f87d08ed13515b48d "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty" 1580683321 85660 baee036978c7a91f4e2bba43f05e5945 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty" 1523134290 4116 32e6abd27229755a83a8b7f18e583890 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty" 1523134290 2432 8ff93b1137020e8f21930562a874ae66 "" + "/usr/share/texlive/texmf-dist/tex/latex/aobs-tikz/tikzlibraryoverlay-beamer-styles.code.tex" 1389658833 4047 82a015585c1ef210fb6750d6322afa7f "" + "/usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty" 1576191570 19336 ce7ae9438967282886b3b036cfad1e4d "" + "/usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty" 1576625391 3935 57aa3c3e203a5c2effb4d2bd2efbc323 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/article.cls" 1580683321 20023 e427dd9e17e239bf926ef3aab67fe35e "" + "/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty" 1581632200 4947 0c2888dd88121ae675fc6e82213623ba "" + "/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty" 1580683321 5159 892429808d9e0e2b3548aaefd9a06ed0 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty" 1580683321 5050 8933a39ad74377accd18991c5eb90c58 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo" 1580683321 8446 9874cccac5fee462272c582807dbbf56 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty" 1581112666 2821 2c0928feafd5527387e29a1af774d030 "" + "/usr/share/texlive/texmf-dist/tex/latex/carlisle/slashed.sty" 1137109962 5327 8b3c95b5f71136add36a4a0bb1507594 "" + "/usr/share/texlive/texmf-dist/tex/latex/cite/cite.sty" 1425427964 26218 19edeff8cdc2bcb704e8051dc55eb5a7 "" + "/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty" 1579991033 13886 d1306dcf79a944f6988e688c1785f9ce "" + "/usr/share/texlive/texmf-dist/tex/latex/eso-pic/eso-pic.sty" 1526160256 11991 c1669f88e13f8bb6243df144e456b477 "" + "/usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty" 1548974385 11128 a53805799bebfed6358fc1658a18e41f "" + "/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty" 1578002852 41601 9cf6c5257b1bc7af01a58859749dd37a "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg" 1459978653 1213 620bba36b25224fa9b7e1ccb4ecb76fd "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg" 1465944070 1224 978390e9c2234eab29404bc21b268d1e "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def" 1515537368 17334 520b9b85ad8a2a48eda3f643e27a5179 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty" 1580683321 16932 04729abe63b66ec59ea56edcd722b058 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty" 1580683321 9067 1b996612394a52e1efe89c8bfe8a5892 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/lscape.sty" 1580683321 1753 f80abc75c0e3a4915097779c2649cc98 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty" 1580683321 3976 d7fa7d81d2870d509d25b17d0245e735 "" + "/usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty" 1580250785 17914 4c28a13fc3d975e6e81c9bea1d697276 "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def" 1579642962 50630 3d9728faf8630190cf601ce2cbe470d9 "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty" 1579642962 238752 60dd338d71b6a4ab2192131f73dc908b "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty" 1579642962 13244 0070bcab7b5a88187847128d22faf4d8 "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def" 1579642962 14134 32b36577d311ddb6522413c7581ee968 "" + "/usr/share/texlive/texmf-dist/tex/latex/jknapltx/mathrsfs.sty" 1137110241 300 12fa6f636b617656f2810ee82cb05015 "" + "/usr/share/texlive/texmf-dist/tex/latex/jknapltx/ursfs.fd" 1137110241 548 cc4e3557704bfed27c7002773fad6c90 "" + "/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty" 1575152344 22520 c4c2dab203104295e1e618be7e5c0f5b "" + "/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def" 1580854751 25404 9d60f463a00d154207ec0048dee27cf0 "" + "/usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty" 1581719662 4381 04628f3002bdd1d9c43ef984fd60ae18 "" + "/usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty" 1581719662 81717 e93576ac4b24ce6e121ebd6ec6cf2893 "" + "/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg" 1279039959 678 4792914a8f45be57bb98413425e4c7af "" + "/usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty" 1575499565 5766 13a9e8766c47f30327caf893ece86ac8 "" + "/usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.ltd.tex" 1546728170 98047 c6fa29828cc60471827afe275c8bd77f "" + "/usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.sty" 1546638616 18060 8cf65af2c4529eed91b5d364b50d3ada "" + "/usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg" 1568236792 1830 bbaba8afaf42cc048ec4d4ff73467521 "" + "/usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty" 1568236792 80511 830f3f1d3ab7448dd84233e9c2f6462c "" + "/usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty" 1568236792 77022 32914f01b528131c47be2a1040d3856d "" + "/usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/pgflibrarymatrix.skeleton.code.tex" 1565039202 19612 007f8469df07e9ef0f680e346cc01945 "" + "/usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/tikzlibrarymatrix.skeleton.code.tex" 1565039202 7267 4d597b08b2429acaa1e526052d9509ed "" + "/usr/share/texlive/texmf-dist/tex/latex/ms/everyshi.sty" 1177890616 3878 6aa7c08ff2621006e0603349e40a30a8 "" + "/usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty" 1559339157 5486 a1d954b09782ba0acd8a8abfd98e1028 "" + "/usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty" 1485124581 14857 82c76ebe8f06becf69ab309565b2a0cb "" + "/usr/share/texlive/texmf-dist/tex/latex/pdflscape/pdflscape.sty" 1575674318 6575 25396d208d8f2b9395d06ef315d5886c "" + "/usr/share/texlive/texmf-dist/tex/latex/pdfpages/pdfpages.sty" 1580249532 54071 88f1e37dc9e1f95352061a066ed07263 "" + "/usr/share/texlive/texmf-dist/tex/latex/pdfpages/pppdftex.def" 1580249532 6418 197ed301e61ce5b7f446e70345a43a62 "" + "/usr/share/texlive/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty" 1574631863 19963 36fd8e818f9f0f32e2db8413d4970122 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty" 1546728038 1090 d20f587ea9464d1841bd0d13d3ff9856 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty" 1288312291 410 5bf12ea7330e5f12c445332a4fe9a263 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty" 1546728038 21013 e98e1aaaf40d31632787c2bd25d24b57 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty" 1546728038 989 2cf3da8e8ec55131c49389428d565e37 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty" 1203877327 339 592cf35cba3d400082b8a9a5d0199d70 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/math/pgfmath.sty" 1393459310 306 0796eafca5e159e6ec2167a6d22d81b1 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty" 1393459310 443 0b2e781830192df35c0fd357cf13e26e "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgffor.sty" 1393459310 348 8927fde343487e003b01a4c2ca34073b "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty" 1203727794 274 4cad6e665cc93ac2ac979039a94fa1e1 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty" 1203877327 325 2bcd023400636339210573e2b3ee298b "" + "/usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty" 1156702453 857 6c716f26c5eadfb81029fcd6ce2d45e6 "" + "/usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty" 1576624809 9878 9e94e8fa600d95f9c7731bb21dfb67a4 "" + "/usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty" 1575674187 9715 b051d5b493d9fe5f4bc251462d039e5f "" + "/usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cfg" 1522098998 1015 662b4d7ad816b857a598284525f5c75e "" + "/usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cls" 1522098998 28890 df75e6d37f47b7e27bff3f37375336b3 "" + "/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty" 1580683321 12560 ce3f59ceae9d9a27bfe037d6bf1d903c "" + "/usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty" 1580683321 10216 5efd55f2010055e7b7875afd6a75be82 "" + "/usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty" 1580683321 4120 d1680a5ff60d0aea9c327e07c030f4e9 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/omltxmi.fd" 1137111002 492 e7f8afe4428797548d4301de03a1b15f "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/omstxsy.fd" 1137111002 329 6ac7e19535b9f1d64e4d8e3f77dc30a3 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/omxtxex.fd" 1137111002 312 11fe1916b0a13a81a05234a6fc7f8738 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/ot1txr.fd" 1137111002 1271 4e3afbd8e832f2f9c7f064894e6e68e4 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txr.fd" 1137111002 1242 cbf8a0d4f750f9833a0bfb05fb39f1cb "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/txfonts.sty" 1206746551 50381 d367461010070c7a491b1f6979ab2062 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxexa.fd" 1137111002 310 1b00b0b05685b816e4c6caccce437e0d "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxmia.fd" 1137111002 334 87436a82076ca2e35cd305f852507afc "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsya.fd" 1137111002 310 cee07e4964749ccbc77d84fc49726a79 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyb.fd" 1137111002 310 8c5467c8932c259af51b0f116c9734bd "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyc.fd" 1137111002 310 4b5d6fe830337242ef847b3bff48ba21 "" + "/usr/share/texlive/texmf-dist/tex/latex/url/url.sty" 1388531844 12796 8edb7d69a20b857904dd0ea757c14ec9 "" + "/usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty" 1238697683 10894 d359a13923460b2a73d4312d613554c8 "" + "/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty" 1463002160 55589 34128738f682d033422ca125f82e5d62 "" + "/usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty" 1417732693 4962 9c1069474ff71dbc47d5006555e352d3 "" + "/usr/share/texlive/texmf-dist/web2c/texmf.cnf" 1581979058 38841 ce3692aa899bb693b90b87eaa5d4d84e "" + "/usr/share/texmf/web2c/texmf.cnf" 1581979058 38841 ce3692aa899bb693b90b87eaa5d4d84e "" + "/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map" 1619433582 4770781 1ed1abab22da9c3e2cc82e4db562318b "" + "/var/lib/texmf/web2c/pdftex/pdflatex.fmt" 1619433611 8255863 afe1ed795207f6401d11bafd6327aa55 "" + "algo.aux" 1620305767 767 9191aef204e325cc808d7c85cedac35f "pdflatex" + "algo.out" 1620305767 43 8eacde2f35419fc00651f55d16e47ae8 "pdflatex" + "algo.tex" 1621585209 3156 4070ef1cd3442b3ab588aedcc8a306bd "" + (generated) + "algo.aux" + "algo.log" + "algo.pdf" + "algo.out" diff --git a/buch/papers/multiplikation/tikz_formulas/algo.fls b/buch/papers/multiplikation/tikz_formulas/algo.fls new file mode 100644 index 0000000..16d387b --- /dev/null +++ b/buch/papers/multiplikation/tikz_formulas/algo.fls @@ -0,0 +1,438 @@ +PWD /home/nunigan/Documents/MSE/FS21/SeminarMatrizen/buch/papers/multiplikation/tikz_formulas +INPUT /etc/texmf/web2c/texmf.cnf +INPUT /usr/share/texmf/web2c/texmf.cnf +INPUT /usr/share/texlive/texmf-dist/web2c/texmf.cnf +INPUT /var/lib/texmf/web2c/pdftex/pdflatex.fmt +INPUT algo.tex +OUTPUT algo.log +INPUT /usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex +INPUT /dev/null +INPUT /usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/size10.clo +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/size10.clo +INPUT /usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/share/texlive/texmf-dist/fonts/map/fontname/texfonts.map +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/jknapltx/mathrsfs.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/jknapltx/mathrsfs.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amscls/amsthm.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amscls/amsthm.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.ltd.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.ltd.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amscd.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amscd.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/txfonts.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/txfonts.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xy.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xy.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xy.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyrecat.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyidioms.tex +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xydash10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xyatip10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xybtip10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xybsql10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycirc10.tfm +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifpdf.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifpdf.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyall.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyall.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycurve.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycurve.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyframe.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyframe.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycmtip.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycmtip.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xytips.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xytips.tex +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycmat10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycmbt10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xyluat10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xylubt10.tfm +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyline.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyline.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyrotate.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyrotate.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycolor.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycolor.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xymatrix.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xymatrix.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyarrow.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyarrow.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xygraph.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xygraph.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-co.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-cu.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-fr.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-li.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-ro.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/array.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/array.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/ms/everyshi.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/ms/everyshi.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/pgf.revision.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/pgf.revision.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfint.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/math/pgfmath.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/math/pgfmath.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/carlisle/slashed.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/carlisle/slashed.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdfpages/pdfpages.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdfpages/pdfpages.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/eso-pic/eso-pic.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/eso-pic/eso-pic.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdfpages/pppdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdfpages/pppdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/cite/cite.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/cite/cite.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryarrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryarrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymatrix.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymatrix.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/aobs-tikz/tikzlibraryoverlay-beamer-styles.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/aobs-tikz/tikzlibraryoverlay-beamer-styles.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/tikzlibrarymatrix.skeleton.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/tikzlibrarymatrix.skeleton.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/pgflibrarymatrix.skeleton.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/pgflibrarymatrix.skeleton.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfit.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfit.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybackgrounds.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybackgrounds.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryautomata.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryautomata.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.multipart.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.multipart.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.multipart.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.multipart.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty +INPUT algo.aux +INPUT algo.aux +OUTPUT algo.aux +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omltxmi.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omltxmi.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omstxsy.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omstxsy.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omxtxex.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omxtxex.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxexa.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxexa.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txr.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txr.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm +INPUT /usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/ot1txr.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/ot1txr.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsya.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsya.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyb.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyb.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/jknapltx/ursfs.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/jknapltx/ursfs.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs7.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs5.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxmia.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxmia.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyc.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyc.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT algo.out +INPUT algo.out +INPUT algo.out +INPUT algo.out +OUTPUT algo.pdf +INPUT ./algo.out +INPUT ./algo.out +OUTPUT algo.out +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdflscape/pdflscape.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdflscape/pdflscape.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/lscape.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/lscape.sty +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txmi.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmri.tfm +INPUT /var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txr.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txr.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/t1xr.vf +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/t1xb.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txmi.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmri.tfm +INPUT algo.aux +INPUT ./algo.out +INPUT ./algo.out +INPUT /usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc +INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/rtxmi.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/rtxr.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/txex.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/txsy.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmb8a.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmr8a.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmri8a.pfb diff --git a/buch/papers/multiplikation/tikz_formulas/algo.pdf b/buch/papers/multiplikation/tikz_formulas/algo.pdf new file mode 100644 index 0000000..f711224 Binary files /dev/null and b/buch/papers/multiplikation/tikz_formulas/algo.pdf differ diff --git a/buch/papers/multiplikation/tikz_formulas/algo.tex b/buch/papers/multiplikation/tikz_formulas/algo.tex new file mode 100755 index 0000000..1e437c2 --- /dev/null +++ b/buch/papers/multiplikation/tikz_formulas/algo.tex @@ -0,0 +1,131 @@ +\documentclass[border=10pt,varwidth]{standalone} +\usepackage[left=25mm,right=25mm,top=25mm,bottom=25mm]{geometry} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{times} +\usepackage{geometry} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{mathrsfs} +\usepackage{amsfonts} +\usepackage{amsthm} +\usepackage{lipsum} +\usepackage{amscd} +\usepackage{graphicx} +\usepackage{fancyhdr} +\usepackage{textcomp} +\usepackage{txfonts} +\usepackage[all]{xy} +\usepackage{paralist} +\usepackage[colorlinks=true]{hyperref} +\usepackage{array} +\usepackage{tikz} +\usepackage{slashed} +\usepackage{pdfpages} +\usepackage{cite} +\usepackage{url} +\usepackage{amsmath,amsfonts,amssymb} +\usepackage{tikz} +\usetikzlibrary{arrows,matrix,positioning} +\usetikzlibrary{overlay-beamer-styles} +\usetikzlibrary{matrix.skeleton} +\usetikzlibrary{automata,positioning} +\usepackage{listings} +\usepackage{multirow} +\usepackage{color} + +\begin{document} + +$ +A= +\begin{bmatrix} +A_{11} & A_{12}\\ +A_{21} & A_{22} +\end{bmatrix}, +B= +\begin{bmatrix} +B_{11} & B_{12}\\ +B_{21} & B_{22} +\end{bmatrix}, +C= +\begin{bmatrix} +C_{11} & C_{12}\\ +C_{21} & C_{22} +\end{bmatrix} +$ + +\medskip +$ +A \cdot B = C +$ + +\medskip +$ +C_{11} = A_{11} \cdot B_{11} + A_{12} \cdot B_{21}\\ +C_{12} = A_{11} \cdot B_{12} + A_{12} \cdot B_{22}\\ +C_{21} = A_{21} \cdot B_{11} + A_{22} \cdot B_{21}\\ +C_{22} = A_{21} \cdot B_{12} + A_{22} \cdot B_{22} +$ + +\medskip +\begin{math} +\begin{aligned} +\text{I} &= (A_{11} + A_{22}) \cdot (B_{11} + B_{22}) \\ +\text{II} &= (A_{21} + A_{22}) \cdot B_{11} \\ +\text{III} &= A_{11} \cdot (B_{12}-B_{22}) \\ +\text{IV} &= A_{22} \cdot (-B_{11}+B_{21}) \\ +\text{V} &= (A_{11} + A_{12}) \cdot B_{22} \\ +\text{VI} &= (-A_{11} + A_{21}) \cdot (B_{11} + B_{12})) \\ +\text{VII} &= (A_{12} - A_{22}) \cdot (B_{21} + B_{22}) \\ +\end{aligned} +\end{math} + + +\medskip +\begin{math} +\begin{aligned} +C_{11} &= \text{I} + \text{IV} - \text{V} + \text{VII} \\ +C_{21} &= \text{II} + \text{IV} \\ +C_{12} &= \text{III} + \text{V}\\ +C_{22} &= \text{I} + \text{III} - \text{II} + \text{VI} \\ +\end{aligned} +\end{math} + + +\medskip +\begin{math} +\begin{aligned} +C_{11} &= \text{II} + \text{IV} \\ +C_{11} &= (A_{11} + A_{22}) \cdot (B_{11} + B_{22}) + A_{22} \cdot (-B_{11}+B_{21}) - (A_{11} + A_{12}) \cdot B_{22} + (A_{12} - A_{22}) \cdot (B_{21} + B_{22})C_{21} \\ +C_{11} &= A_{11}B_{11} + A_{11}B_{22} + A_{22}B_{11} + A_{22}B_{22} -A_{22}B_{11}+A_{22}B_{21} - A_{11}B_{22} - A_{12}B_{22}+ A_{12}B_{21} + A_{12}B_{22} - A_{22}B_{21} - A_{22}B_{22} \\ +C_{11} &= A_{11}B_{11} + A_{12}B_{21} +\end{aligned} +\end{math} + +\section{Winograd} + +$ +x_1 y_1 + x_2 y_2 = (x_1 +y_2)(y_1 + x_2)-x_1 x_2 - y_1 y_2 +$ + +$ +x = (x_1, \cdots, x_n), y=(y_1, \cdots, y_n) +$ + +\[ +\xi = \sum_{j=1}^{ \lfloor n/2 \rfloor} x_{2j-1} \cdot x_{2j} +\] + +\[ +\eta = \sum_{j=1}^{ \lfloor n/2 \rfloor} y_{2j-1} \cdot y_{2j} +\] + +\[ +\langle x,y \rangle = +\begin{cases} + \displaystyle \sum_{j=1}^{ \lfloor n/2 \rfloor} (x_{2j-1} + y_{2j})(x_{2j}+y_{2j-1})-\xi - \eta & \text{if $n$ is even}\\ +\displaystyle \sum_{j=1}^{ \lfloor n/2 \rfloor} (x_{2j-1} + y_{2j})(x_{2j}+y_{2j-1})-\xi - \eta + x_n y_n & \text{if $n$ is odd} +\end{cases} +\] + +\end{document} diff --git a/buch/papers/multiplikation/tikz_formulas/algo_graph.fdb_latexmk b/buch/papers/multiplikation/tikz_formulas/algo_graph.fdb_latexmk new file mode 100644 index 0000000..ddfa880 --- /dev/null +++ b/buch/papers/multiplikation/tikz_formulas/algo_graph.fdb_latexmk @@ -0,0 +1,245 @@ +# Fdb version 3 +["pdflatex"] 1621585121 "algo_graph.tex" "algo_graph.pdf" "algo_graph" 1621585184 + "/dev/null" 1621583990 0 d41d8cd98f00b204e9800998ecf8427e "" + "/etc/texmf/web2c/texmf.cnf" 1619433543 475 c0e671620eb5563b2130f56340a5fde8 "" + "/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc" 1165713224 4850 80dc9bab7f31fb78a000ccfed0e27cab "" + "/usr/share/texlive/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm" 1136768653 3584 adb004a0c8e7c46ee66cad73671f37b4 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs10.tfm" 1229303445 688 37338d6ab346c2f1466b29e195316aa4 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs5.tfm" 1229303445 684 3a51bd4fd9600428d5264cf25f04bb9a "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs7.tfm" 1229303445 692 1b6510779f0f05e9cbf03e0f6c8361e6 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxmi.tfm" 1136768653 1056 e2202af076e43d03fc17f87e104021b0 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmr.tfm" 1136768653 4452 0fd0a792eaab7113e4d4f1b941ff0367 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmri.tfm" 1136768653 4640 ce59980bcbe9e6236fab46d0b5212c7e "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxr.tfm" 1136768653 1004 c0e991f864f31f017ea4ff9e451b76d4 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm" 1136768653 6716 6d25a377562601272906e3bfe6b2817a "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm" 1136768653 1080 b674b4ba143004461509a754a0984b67 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm" 1136768653 688 f56006d6e56f46e63d9f63252958b828 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm" 1136768653 2584 cf4a6a7c2a518d47468fe29ef0913ba0 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm" 1232065820 1944 f854e259cb2839e49d4aa2949544a6e1 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm" 1136768653 1180 72784d0ee5a983fba99a0986b31b0493 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm" 1136768653 2408 aec793a3c45e495f7ad15b227c91f508 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm" 1136768653 1268 1d124f224979493f8fd017a7597ea1cd "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm" 1136768653 972 2c9ffac4bbd20f91c01aaef9bf3f8710 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm" 1136768653 988 098ca7e8cc5647b9ac21b82dbdce1f01 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm" 1136768653 1084 75e807e9e71f7a312e4e1187dce5e93b "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xyatip10.tfm" 1381187214 608 50246cc71b0635b0ba0a5c10a0bf4257 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xybsql10.tfm" 1381187214 608 4db60f15ea23b4ec2d796c6d568a63fa "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xybtip10.tfm" 1381187214 608 50246cc71b0635b0ba0a5c10a0bf4257 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycirc10.tfm" 1381187214 844 3393210079fb4ed9347e214b3bfd7c1a "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycmat10.tfm" 1381187214 608 f124f78ed50a1817738d2adb190cf2bd "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycmbt10.tfm" 1381187214 608 f124f78ed50a1817738d2adb190cf2bd "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xydash10.tfm" 1381187214 984 5c01c46b93e3ba8369f3f8edc6e62aef "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xyluat10.tfm" 1381187214 608 a3a3bc08980c5126ff2a7a68fb5a64ff "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xylubt10.tfm" 1381187214 608 a3a3bc08980c5126ff2a7a68fb5a64ff "" + "/usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/rtxr.pfb" 1136849748 6339 e2b78706efdc360ee6aec9b6e20211a7 "" + "/usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmr8a.pfb" 1136849748 46026 6dab18b61c907687b520c72847215a68 "" + "/usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmri8a.pfb" 1136849748 45458 a3faba884469519614ca56ba5f6b1de1 "" + "/usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/t1xr.vf" 1136768653 2140 99e5b3a34695df6221a167ffa8b498d6 "" + "/usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txmi.vf" 1232065820 960 cfcc9d587b40b769f64408b3ca115941 "" + "/usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txr.vf" 1136768653 904 e582cae2d8ae3f48a0a520440ebcdb51 "" + "/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii" 1461363279 71627 94eb9990bed73c364d7f53f960cc8c5b "" + "/usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty" 1575674566 24708 5584a51a7101caf7e6bbf1fc27d8f7b1 "" + "/usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty" 1576625341 40635 c40361e206be584d448876bba8a64a3b "" + "/usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty" 1576016050 33961 6b5c75130e435b2bfdb9f480a09a39f9 "" + "/usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty" 1576625273 7734 b98cbb34c81f667027c1e3ebdbfce34b "" + "/usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty" 1576625223 8371 9d55b8bd010bc717624922fb3477d92e "" + "/usr/share/texlive/texmf-dist/tex/generic/iftex/ifluatex.sty" 1572645307 492 1994775aa15b0d1289725a0b1bbc2d4c "" + "/usr/share/texlive/texmf-dist/tex/generic/iftex/ifpdf.sty" 1572645307 480 5778104efadad304ced77548ca2184b1 "" + "/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty" 1573336935 6902 30fdaf7dc5636b8e3afa306210c45cae "" + "/usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty" 1572645307 1057 525c2192b5febbd8c1f662c9468335bb "" + "/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty" 1575499628 8356 7bbb2c2373aa810be568c29e333da8ed "" + "/usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty" 1576625065 31769 002a487f55041f8e805cfbf6385ffd97 "" + "/usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty" 1576878844 5412 d5a2436094cd7be85769db90f29250a6 "" + "/usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty" 1576624944 13807 952b0226d4efca026f0e19dd266dcc22 "" + "/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty" 1576624883 18552 1e1cc7b75da0dfaacce7cdcb27d306bf "" + "/usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty" 1576015897 19007 15924f7228aca6c6d184b115f4baa231 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex" 1557692582 992 fb3cda354707a54fda62787a411c7c22 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex" 1546728038 43820 bc6cf5aa959817914ace33f5c6232161 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex" 1557692582 19324 c9a64402f22bd8d81821141a357af653 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex" 1546728038 6038 d639d02574be9a72f3c602c2a3510e02 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex" 1546728038 6948 284bbe3c9a7ca0a826c1c03895e69b9f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex" 1546728038 4883 a6f3eb1f71d8c4affaf43a169828b043 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex" 1546728038 2544 3b1b198fd49f01e328adc9162a07b213 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex" 1576793519 44189 1fd6229dad4c898883516c032f2ca5d2 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex" 1546728038 17311 3092579be20ef0f229c42ad3f09da85c "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex" 1546728038 21302 d6c4b340248adbe650ebf6ca76bdccca "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex" 1562964315 9690 7585efa5a591822837f837bc5bc35621 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex" 1576793519 33335 942ccafe284041918d36e54696b98aa7 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex" 1546728038 2965 502761b60f43ab2de5ecb2f4625163ae "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex" 1546728038 5196 f8c5c775d4d6e2cb050392127cabda72 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex" 1576793519 20726 ed6ec1d6f0f35e7a93de4e79af83dbce "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex" 1557692582 35249 144a6b9c4df4644618bb3a0a40472608 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex" 1546728038 21989 266e83c51fe41eb8b8d5e6896dc71cc1 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex" 1546728038 8842 5cc856e132fac404805c6da091779283 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryarrows.code.tex" 1546728038 319 8fc6edce901e074ba09de320a8fc686b "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryautomata.code.tex" 1546728038 3986 c962be8d57437fcaf853d2babd8ed403 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybackgrounds.code.tex" 1546728038 4572 980c82f01c0e3983edadbbc373d304cb "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfit.code.tex" 1546728038 3643 4a4bd51bd85886cc39d4073af8cf77a9 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymatrix.code.tex" 1546728038 4202 e655aa2657da1088ec7745ece2876c4c "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex" 1546728038 3937 20cd45386ca23052ce976464f0ada984 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.multipart.code.tex" 1546728038 919 da625675781832f2b61a7048a51ef656 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex" 1576793519 11544 2a5d66a3270abf4ef673e8a0b7734a90 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex" 1576967981 187592 7922ceab1864698dec4c84978d5b182f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex" 1546728038 31874 d843d507175f2bdfa3abf01f0349dac8 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex" 1546728038 32995 a4d54c043ae5274ceaaddeb36ad43a6f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.multipart.code.tex" 1546728038 62281 fd68e6d2c2dc178611c8f4d2d86e79ae "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfint.code.tex" 1557692582 3063 8c415c68a0f3394e45cfeca0b65f6ee6 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex" 1557692582 521 c70cf6ad609de83a27ee7929eb356332 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex" 1557692582 13391 933cab19c6d27039dbfc487330d1005a "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex" 1557692582 104938 15f2d8bdabd6bf9ca70f62cd8e3d4940 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex" 1557692582 10157 218d58ab074e5bd0d027de45ec64cc00 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex" 1576793519 28176 568b081ec39645f2db1a29fbd0c635e2 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex" 1562964315 9054 388d21239a1b6df2cc8beaae31c976b0 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex" 1557692582 3865 cddf7ddc80f018587c55afdcc79fc333 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex" 1557692582 3177 27d85c44fbfe09ff3b2cf2879e3ea434 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex" 1557692582 10925 df50b8a6e5660a585e3a2bf55726dcc8 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex" 1562964315 7787 1750fc3f164703caf31fc8ea9218c67e "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex" 1557692582 3379 cbd0948a550bd7a495a160ca6beee9ed "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex" 1557692582 92405 bba89470858d7b0788a9c09331c39653 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex" 1576793519 36526 453db1f8626a56b5ebb0fad496d6a39f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex" 1576793519 8471 b18959397c76e1e582402ab9f592ed9f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex" 1576793519 21201 46a4dded6619f990ac7347f99fbaac9f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex" 1557692582 16121 9e240115374a8d489f2f786115df83a9 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex" 1576793519 43259 3e05ba63539916af2eaca603c2eda780 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/pgf.revision.tex" 1578520427 465 1f401ab1e7fc6cb7ede39e96c66531fd "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg" 1557692582 926 70ff613fabeb70f5d1673dc0c93987bd "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def" 1557692582 5546 3586827e6032c95512b2a6682d2979a3 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def" 1562964315 12603 c02869ea216d842c29d52fae8738264e "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex" 1557692582 60269 e86bc0081af83a4ad47e4500ee09a2e4 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex" 1557692582 1896 82c274ff520f9e450ccea4e3ef4edc12 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex" 1557692582 7778 a25a32a10ca820357491d4c7b3ac02ea "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex" 1562964315 23777 cb6c8f02f87d86d621f5cb92c44f4998 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex" 1576793519 36815 f7f1772c398f07af2cb741992963045c "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex" 1562964315 37439 bd44d50aef702b03193f731207931834 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex" 1557692582 4494 7e5ace0ccf59408f2cf63219a5d36927 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.tex" 1557692582 7250 03b2b9fb5fa38e7ca5cc3c45860fb210 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex" 1576793519 28309 488ccc6c701bbdd1bf671f708757aa5c "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def" 1562964315 6286 1bd76fc45da9929ab2a64f51cba3ab6f "" + "/usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty" 1576624663 7008 f92eaa0a3872ed622bbf538217cd2ab7 "" + "/usr/share/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex" 1403829539 2725 fc34ef3ccb37ba15a640e8fca6190bca "" + "/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex" 1417732693 19231 26434a5656c684f5ffb1f26f98006baa "" + "/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex" 1403829539 7677 6f5ce7c1124cad7ec57d05b2562bd8fe "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xy.sty" 1312310545 4692 1e1bcf75c622af1eefd9169948208302 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xy.tex" 1381187214 115380 413d5f789929a45aab7d12ce0d0aee7d "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyall.tex" 1312310545 1449 24340b6befc66d28ee1ebb657efb5892 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyarrow.tex" 1312310545 22657 990ce136a3cc15728ba417a2e78b25c8 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xycmtip.tex" 1312310545 1374 43fb8dc80dd748631d78096701166d76 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xycolor.tex" 1312310545 4586 edd672434f45626662368282c0322160 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xycurve.tex" 1312310545 109670 d412ee1ff259daefee5e927172e2f9a8 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyframe.tex" 1337903317 24249 186931a828664624939ab0b347e3952c "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xygraph.tex" 1312310545 9619 b7e4d9a6936ba2ad6119a280abde9641 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyidioms.tex" 1312310545 2907 1ee562fde0b53c9cd16f7a604f33fdf0 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyline.tex" 1312310545 10928 c3a572983ccc9fc596b4e9ce454d5652 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xymatrix.tex" 1312310545 22583 25b1e7edeee41f181ee9733429da4a9c "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-co.tex" 1312310545 8442 90cb8a3b00c2081384c1ce988d2ba0a3 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-cu.tex" 1312310545 39762 25a964ebb390bcfcd35c040f477eef1d "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-fr.tex" 1312310545 16485 5686b19cc46d046c885428794ed9c114 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-li.tex" 1312310545 2619 1a12b316e2132654e44ba2cd21def637 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-ro.tex" 1312310545 5290 e16fc85c85f64d0a5c04708bf3312d00 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf.tex" 1312310545 18763 e61049d36bdfccb226f22e582d70d368 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyrecat.tex" 1312310545 1391 c8763fc8e281cb6ecf697988b6608e4a "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyrotate.tex" 1312310545 7008 cb768d8d63a12d35607cbb3c4e7ba163 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xytips.tex" 1381187214 3689 0d51788a4141bc66ab896f7ac63495fd "" + "/usr/share/texlive/texmf-dist/tex/latex/amscls/amsthm.sty" 1513722769 12604 3dec726c041422879dc3268237f09026 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty" 1359763108 5949 3f3fd50a8cc94c3d4cbf4fc66cd3df1c "" + "/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty" 1359763108 13829 94730e64147574077f8ecfea9bb69af4 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty" 1523134290 2211 ca7ce284ab93c8eecdc6029dc5ccbd73 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amscd.sty" 1523134290 5309 0c9ef5db85b924cdbb316f080dfd826e "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty" 1523134290 4161 7f6eb9092061a11f87d08ed13515b48d "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty" 1580683321 85660 baee036978c7a91f4e2bba43f05e5945 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty" 1523134290 4116 32e6abd27229755a83a8b7f18e583890 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty" 1523134290 2432 8ff93b1137020e8f21930562a874ae66 "" + "/usr/share/texlive/texmf-dist/tex/latex/aobs-tikz/tikzlibraryoverlay-beamer-styles.code.tex" 1389658833 4047 82a015585c1ef210fb6750d6322afa7f "" + "/usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty" 1576191570 19336 ce7ae9438967282886b3b036cfad1e4d "" + "/usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty" 1576625391 3935 57aa3c3e203a5c2effb4d2bd2efbc323 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/article.cls" 1580683321 20023 e427dd9e17e239bf926ef3aab67fe35e "" + "/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty" 1581632200 4947 0c2888dd88121ae675fc6e82213623ba "" + "/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty" 1580683321 5159 892429808d9e0e2b3548aaefd9a06ed0 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty" 1580683321 5050 8933a39ad74377accd18991c5eb90c58 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo" 1580683321 8446 9874cccac5fee462272c582807dbbf56 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty" 1581112666 2821 2c0928feafd5527387e29a1af774d030 "" + "/usr/share/texlive/texmf-dist/tex/latex/carlisle/slashed.sty" 1137109962 5327 8b3c95b5f71136add36a4a0bb1507594 "" + "/usr/share/texlive/texmf-dist/tex/latex/cite/cite.sty" 1425427964 26218 19edeff8cdc2bcb704e8051dc55eb5a7 "" + "/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty" 1579991033 13886 d1306dcf79a944f6988e688c1785f9ce "" + "/usr/share/texlive/texmf-dist/tex/latex/eso-pic/eso-pic.sty" 1526160256 11991 c1669f88e13f8bb6243df144e456b477 "" + "/usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty" 1548974385 11128 a53805799bebfed6358fc1658a18e41f "" + "/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty" 1578002852 41601 9cf6c5257b1bc7af01a58859749dd37a "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg" 1459978653 1213 620bba36b25224fa9b7e1ccb4ecb76fd "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg" 1465944070 1224 978390e9c2234eab29404bc21b268d1e "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def" 1515537368 17334 520b9b85ad8a2a48eda3f643e27a5179 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty" 1580683321 16932 04729abe63b66ec59ea56edcd722b058 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty" 1580683321 9067 1b996612394a52e1efe89c8bfe8a5892 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/lscape.sty" 1580683321 1753 f80abc75c0e3a4915097779c2649cc98 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty" 1580683321 3976 d7fa7d81d2870d509d25b17d0245e735 "" + "/usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty" 1580250785 17914 4c28a13fc3d975e6e81c9bea1d697276 "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def" 1579642962 50630 3d9728faf8630190cf601ce2cbe470d9 "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty" 1579642962 238752 60dd338d71b6a4ab2192131f73dc908b "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty" 1579642962 13244 0070bcab7b5a88187847128d22faf4d8 "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def" 1579642962 14134 32b36577d311ddb6522413c7581ee968 "" + "/usr/share/texlive/texmf-dist/tex/latex/jknapltx/mathrsfs.sty" 1137110241 300 12fa6f636b617656f2810ee82cb05015 "" + "/usr/share/texlive/texmf-dist/tex/latex/jknapltx/ursfs.fd" 1137110241 548 cc4e3557704bfed27c7002773fad6c90 "" + "/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty" 1575152344 22520 c4c2dab203104295e1e618be7e5c0f5b "" + "/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def" 1580854751 25404 9d60f463a00d154207ec0048dee27cf0 "" + "/usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty" 1581719662 4381 04628f3002bdd1d9c43ef984fd60ae18 "" + "/usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty" 1581719662 81717 e93576ac4b24ce6e121ebd6ec6cf2893 "" + "/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg" 1279039959 678 4792914a8f45be57bb98413425e4c7af "" + "/usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty" 1575499565 5766 13a9e8766c47f30327caf893ece86ac8 "" + "/usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.ltd.tex" 1546728170 98047 c6fa29828cc60471827afe275c8bd77f "" + "/usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.sty" 1546638616 18060 8cf65af2c4529eed91b5d364b50d3ada "" + "/usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg" 1568236792 1830 bbaba8afaf42cc048ec4d4ff73467521 "" + "/usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty" 1568236792 80511 830f3f1d3ab7448dd84233e9c2f6462c "" + "/usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty" 1568236792 77022 32914f01b528131c47be2a1040d3856d "" + "/usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/pgflibrarymatrix.skeleton.code.tex" 1565039202 19612 007f8469df07e9ef0f680e346cc01945 "" + "/usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/tikzlibrarymatrix.skeleton.code.tex" 1565039202 7267 4d597b08b2429acaa1e526052d9509ed "" + "/usr/share/texlive/texmf-dist/tex/latex/ms/everyshi.sty" 1177890616 3878 6aa7c08ff2621006e0603349e40a30a8 "" + "/usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty" 1559339157 5486 a1d954b09782ba0acd8a8abfd98e1028 "" + "/usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty" 1485124581 14857 82c76ebe8f06becf69ab309565b2a0cb "" + "/usr/share/texlive/texmf-dist/tex/latex/pdflscape/pdflscape.sty" 1575674318 6575 25396d208d8f2b9395d06ef315d5886c "" + "/usr/share/texlive/texmf-dist/tex/latex/pdfpages/pdfpages.sty" 1580249532 54071 88f1e37dc9e1f95352061a066ed07263 "" + "/usr/share/texlive/texmf-dist/tex/latex/pdfpages/pppdftex.def" 1580249532 6418 197ed301e61ce5b7f446e70345a43a62 "" + "/usr/share/texlive/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty" 1574631863 19963 36fd8e818f9f0f32e2db8413d4970122 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty" 1546728038 1090 d20f587ea9464d1841bd0d13d3ff9856 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty" 1288312291 410 5bf12ea7330e5f12c445332a4fe9a263 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty" 1546728038 21013 e98e1aaaf40d31632787c2bd25d24b57 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty" 1546728038 989 2cf3da8e8ec55131c49389428d565e37 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty" 1203877327 339 592cf35cba3d400082b8a9a5d0199d70 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/math/pgfmath.sty" 1393459310 306 0796eafca5e159e6ec2167a6d22d81b1 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty" 1393459310 443 0b2e781830192df35c0fd357cf13e26e "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgffor.sty" 1393459310 348 8927fde343487e003b01a4c2ca34073b "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty" 1203727794 274 4cad6e665cc93ac2ac979039a94fa1e1 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty" 1203877327 325 2bcd023400636339210573e2b3ee298b "" + "/usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty" 1156702453 857 6c716f26c5eadfb81029fcd6ce2d45e6 "" + "/usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty" 1576624809 9878 9e94e8fa600d95f9c7731bb21dfb67a4 "" + "/usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty" 1575674187 9715 b051d5b493d9fe5f4bc251462d039e5f "" + "/usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cfg" 1522098998 1015 662b4d7ad816b857a598284525f5c75e "" + "/usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cls" 1522098998 28890 df75e6d37f47b7e27bff3f37375336b3 "" + "/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty" 1580683321 12560 ce3f59ceae9d9a27bfe037d6bf1d903c "" + "/usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty" 1580683321 10216 5efd55f2010055e7b7875afd6a75be82 "" + "/usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty" 1580683321 4120 d1680a5ff60d0aea9c327e07c030f4e9 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/omltxmi.fd" 1137111002 492 e7f8afe4428797548d4301de03a1b15f "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/omstxsy.fd" 1137111002 329 6ac7e19535b9f1d64e4d8e3f77dc30a3 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/omxtxex.fd" 1137111002 312 11fe1916b0a13a81a05234a6fc7f8738 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/ot1txr.fd" 1137111002 1271 4e3afbd8e832f2f9c7f064894e6e68e4 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txr.fd" 1137111002 1242 cbf8a0d4f750f9833a0bfb05fb39f1cb "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/txfonts.sty" 1206746551 50381 d367461010070c7a491b1f6979ab2062 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxexa.fd" 1137111002 310 1b00b0b05685b816e4c6caccce437e0d "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxmia.fd" 1137111002 334 87436a82076ca2e35cd305f852507afc "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsya.fd" 1137111002 310 cee07e4964749ccbc77d84fc49726a79 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyb.fd" 1137111002 310 8c5467c8932c259af51b0f116c9734bd "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyc.fd" 1137111002 310 4b5d6fe830337242ef847b3bff48ba21 "" + "/usr/share/texlive/texmf-dist/tex/latex/url/url.sty" 1388531844 12796 8edb7d69a20b857904dd0ea757c14ec9 "" + "/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty" 1463002160 55589 34128738f682d033422ca125f82e5d62 "" + "/usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty" 1417732693 4962 9c1069474ff71dbc47d5006555e352d3 "" + "/usr/share/texlive/texmf-dist/web2c/texmf.cnf" 1581979058 38841 ce3692aa899bb693b90b87eaa5d4d84e "" + "/usr/share/texmf/web2c/texmf.cnf" 1581979058 38841 ce3692aa899bb693b90b87eaa5d4d84e "" + "/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map" 1619433582 4770781 1ed1abab22da9c3e2cc82e4db562318b "" + "/var/lib/texmf/web2c/pdftex/pdflatex.fmt" 1619433611 8255863 afe1ed795207f6401d11bafd6327aa55 "" + "algo_graph.aux" 1621585123 662 b2b94621371df8d9296b8bf5bec1b851 "pdflatex" + "algo_graph.out" 1621585122 0 d41d8cd98f00b204e9800998ecf8427e "pdflatex" + "algo_graph.tex" 1621585144 5895 0e03594e6e25b7f3671b72694de0d3f4 "" + (generated) + "algo_graph.out" + "algo_graph.pdf" + "algo_graph.aux" + "algo_graph.log" diff --git a/buch/papers/multiplikation/tikz_formulas/algo_graph.fls b/buch/papers/multiplikation/tikz_formulas/algo_graph.fls new file mode 100644 index 0000000..bd1c14e --- /dev/null +++ b/buch/papers/multiplikation/tikz_formulas/algo_graph.fls @@ -0,0 +1,485 @@ +PWD /home/nunigan/Documents/MSE/FS21/SeminarMatrizen/buch/papers/multiplikation/tikz_formulas +INPUT /etc/texmf/web2c/texmf.cnf +INPUT /usr/share/texmf/web2c/texmf.cnf +INPUT /usr/share/texlive/texmf-dist/web2c/texmf.cnf +INPUT /var/lib/texmf/web2c/pdftex/pdflatex.fmt +INPUT algo_graph.tex +OUTPUT algo_graph.log +INPUT /usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex +INPUT /dev/null +INPUT /usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/size10.clo +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/size10.clo +INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/share/texlive/texmf-dist/fonts/map/fontname/texfonts.map +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/jknapltx/mathrsfs.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/jknapltx/mathrsfs.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amscls/amsthm.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amscls/amsthm.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.ltd.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.ltd.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amscd.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amscd.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/txfonts.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/txfonts.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xy.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xy.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xy.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyrecat.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyidioms.tex +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xydash10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xyatip10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xybtip10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xybsql10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycirc10.tfm +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifpdf.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifpdf.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyall.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyall.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycurve.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycurve.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyframe.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyframe.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycmtip.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycmtip.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xytips.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xytips.tex +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycmat10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycmbt10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xyluat10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xylubt10.tfm +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyline.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyline.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyrotate.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyrotate.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycolor.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycolor.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xymatrix.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xymatrix.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyarrow.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyarrow.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xygraph.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xygraph.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-co.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-cu.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-fr.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-li.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-ro.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/array.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/array.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/ms/everyshi.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/ms/everyshi.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/pgf.revision.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/pgf.revision.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfint.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/math/pgfmath.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/math/pgfmath.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/carlisle/slashed.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/carlisle/slashed.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdfpages/pdfpages.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdfpages/pdfpages.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/eso-pic/eso-pic.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/eso-pic/eso-pic.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdfpages/pppdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdfpages/pppdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/cite/cite.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/cite/cite.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryarrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryarrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymatrix.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymatrix.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/aobs-tikz/tikzlibraryoverlay-beamer-styles.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/aobs-tikz/tikzlibraryoverlay-beamer-styles.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/tikzlibrarymatrix.skeleton.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/tikzlibrarymatrix.skeleton.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/pgflibrarymatrix.skeleton.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/pgflibrarymatrix.skeleton.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfit.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfit.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybackgrounds.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybackgrounds.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryautomata.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryautomata.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.multipart.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.multipart.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.multipart.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.multipart.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty +INPUT algo_graph.aux +INPUT algo_graph.aux +OUTPUT algo_graph.aux +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omltxmi.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omltxmi.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omstxsy.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omstxsy.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omxtxex.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omxtxex.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxexa.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxexa.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txr.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txr.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm +INPUT /usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/ot1txr.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/ot1txr.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsya.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsya.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyb.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyb.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/jknapltx/ursfs.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/jknapltx/ursfs.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs7.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs5.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxmia.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxmia.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyc.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyc.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT algo_graph.out +INPUT algo_graph.out +INPUT algo_graph.out +INPUT algo_graph.out +INPUT ./algo_graph.out +INPUT ./algo_graph.out +OUTPUT algo_graph.out +OUTPUT algo_graph.pdf +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdflscape/pdflscape.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdflscape/pdflscape.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/lscape.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/lscape.sty +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs5.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txmi.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmri.tfm +INPUT /var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txr.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txmi.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmri.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txr.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txr.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/t1xr.vf +INPUT algo_graph.aux +INPUT ./algo_graph.out +INPUT ./algo_graph.out +INPUT /usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc +INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/rtxr.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmr8a.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmri8a.pfb diff --git a/buch/papers/multiplikation/tikz_formulas/algo_graph.pdf b/buch/papers/multiplikation/tikz_formulas/algo_graph.pdf new file mode 100755 index 0000000..7f5a984 Binary files /dev/null and b/buch/papers/multiplikation/tikz_formulas/algo_graph.pdf differ diff --git a/buch/papers/multiplikation/tikz_formulas/algo_graph.tex b/buch/papers/multiplikation/tikz_formulas/algo_graph.tex new file mode 100755 index 0000000..ad4228b --- /dev/null +++ b/buch/papers/multiplikation/tikz_formulas/algo_graph.tex @@ -0,0 +1,140 @@ +\documentclass[border=10pt]{standalone} +\usepackage[left=25mm,right=25mm,top=25mm,bottom=25mm]{geometry} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{times} +\usepackage{geometry} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{mathrsfs} +\usepackage{amsfonts} +\usepackage{amsthm} +\usepackage{lipsum} +\usepackage{amscd} +\usepackage{graphicx} +\usepackage{fancyhdr} +\usepackage{textcomp} +\usepackage{txfonts} +\usepackage[all]{xy} +\usepackage{paralist} +\usepackage[colorlinks=true]{hyperref} +\usepackage{array} +\usepackage{tikz} +\usepackage{slashed} +\usepackage{pdfpages} +\usepackage{cite} +\usepackage{url} +\usepackage{amsmath,amsfonts,amssymb} +\usepackage{tikz} +\usetikzlibrary{arrows,matrix,positioning} +\usetikzlibrary{overlay-beamer-styles} +\usetikzlibrary{matrix.skeleton} +\usetikzlibrary{automata,positioning} +\usepackage{listings} +\usepackage{multirow} +\usepackage{color} + +\begin{document} + +\begin{tikzpicture}[ampersand replacement=\&] + + \foreach \i in {1,...,4} + { + \small{ + \matrix (X\i)[matrix of math nodes,nodes in empty cells, + nodes = {draw, minimum size=10mm, + anchor=center, + inner sep=0pt, outer sep=0pt}, + column sep=-\pgflinewidth, + row sep=-\pgflinewidth, + ] at (0,-\i*5) + { + A_{11}B_{11} \& A_{12}B_{11} \& A_{21}B_{11} \& A_{22}B_{11} \\ + A_{11}B_{21} \& A_{12}B_{21} \& A_{21}B_{21} \& A_{22}B_{21} \\ + A_{11}B_{11} \& A_{12}B_{12} \& A_{21}B_{12} \& A_{22}B_{12} \\ + A_{11}B_{22} \& A_{12}B_{22} \& A_{21}B_{22} \& A_{22}B_{22} \\ + };} + + \foreach \j in {1,...,7} + { + \matrix(M\i\j)[matrix of math nodes,nodes in empty cells, + nodes = {draw, minimum size=10mm, + anchor=center, + inner sep=0pt, outer sep=0pt}, + column sep=-\pgflinewidth, + row sep=-\pgflinewidth, + ] at (\j*5,-\i*5) + { + \& \& \& \\ + \& \& \& \\ + \& \& \& \\ + \& \& \& \\ + }; + } + } + +\huge{ + \node at (-3,-20) {$C_{22}=$}; + \node at (-3,-15) {$C_{21}=$} ; + \node at (-3,-10) {$C_{12}=$} ; + \node at (-3,-5) {$C_{11}=$} ; + + \node at (5,-2) {I}; + \node at (10,-2) {II}; + \node at (15,-2) {III}; + \node at (20,-2) {IV}; + \node at (25,-2) {V}; + \node at (30,-2) {VI}; + \node at (35,-2) {VII}; + } + + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X1-1-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X1-2-2)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X2-3-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X2-4-2)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X3-1-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X3-2-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X4-3-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X4-4-4)] {}; + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-4-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-1-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M14-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M14-2-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M15-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M15-4-2)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M17-2-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M17-4-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M17-2-2)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M17-4-2)] {}; + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M23-3-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M23-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M25-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M25-4-2)] {}; + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M32-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M32-1-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M34-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M34-2-4)] {}; + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-4-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-1-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M42-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M42-1-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M43-3-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M43-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M46-1-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M46-1-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M46-3-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M46-3-1)] {}; +\end{tikzpicture} + + + +\end{document} -- cgit v1.2.1 From d11655b383e154e8ad5bb7006e33383f99e8c62c Mon Sep 17 00:00:00 2001 From: Lukaszogg <82384106+Lukaszogg@users.noreply.github.com> Date: Wed, 28 Jul 2021 15:02:47 +0200 Subject: Anpassungen nach Besprechung --- buch/papers/erdbeben/Gausskurve2.pdf | Bin 26978 -> 14941 bytes buch/papers/erdbeben/Gausskurve2.tex | 5 +- buch/papers/erdbeben/Gausskurve3.pdf | Bin 27445 -> 15413 bytes buch/papers/erdbeben/Gausskurve3.tex | 5 +- buch/papers/erdbeben/main.tex | 2 +- buch/papers/erdbeben/references.bib | 8 +- buch/papers/erdbeben/teil0.tex | 57 ++++++------ buch/papers/erdbeben/teil1.tex | 168 +++++++++++++++++++---------------- 8 files changed, 131 insertions(+), 114 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/erdbeben/Gausskurve2.pdf b/buch/papers/erdbeben/Gausskurve2.pdf index bee3bc0..5e4afdf 100644 Binary files a/buch/papers/erdbeben/Gausskurve2.pdf and b/buch/papers/erdbeben/Gausskurve2.pdf differ diff --git a/buch/papers/erdbeben/Gausskurve2.tex b/buch/papers/erdbeben/Gausskurve2.tex index 44319c3..2441766 100644 --- a/buch/papers/erdbeben/Gausskurve2.tex +++ b/buch/papers/erdbeben/Gausskurve2.tex @@ -1,13 +1,12 @@ \documentclass{standalone} \usepackage{pgfplots} - +\usepackage{txfonts} \pgfplotsset{compat = newest} \begin{document} - -\begin{tikzpicture} +\begin{tikzpicture}[>=latex,thick] \begin{axis}[ diff --git a/buch/papers/erdbeben/Gausskurve3.pdf b/buch/papers/erdbeben/Gausskurve3.pdf index e86a403..b86023f 100644 Binary files a/buch/papers/erdbeben/Gausskurve3.pdf and b/buch/papers/erdbeben/Gausskurve3.pdf differ diff --git a/buch/papers/erdbeben/Gausskurve3.tex b/buch/papers/erdbeben/Gausskurve3.tex index 85455ef..032d6de 100644 --- a/buch/papers/erdbeben/Gausskurve3.tex +++ b/buch/papers/erdbeben/Gausskurve3.tex @@ -1,13 +1,12 @@ \documentclass{standalone} \usepackage{pgfplots} - +\usepackage{txfonts} \pgfplotsset{compat = newest} \begin{document} - -\begin{tikzpicture} +\begin{tikzpicture}[>=latex,thick] \begin{axis}[ diff --git a/buch/papers/erdbeben/main.tex b/buch/papers/erdbeben/main.tex index 95f1f4b..4167475 100644 --- a/buch/papers/erdbeben/main.tex +++ b/buch/papers/erdbeben/main.tex @@ -4,7 +4,7 @@ % (c) 2020 Hochschule Rapperswil % \chapter{Erdbebenmessung\label{chapter:erdbeben}} -\lhead{Thema} +\lhead{Erdbeben} \begin{refsection} \chapterauthor{Lukas Zogg und Fabio Veicelli} diff --git a/buch/papers/erdbeben/references.bib b/buch/papers/erdbeben/references.bib index 56ca24b..444c82d 100644 --- a/buch/papers/erdbeben/references.bib +++ b/buch/papers/erdbeben/references.bib @@ -1,22 +1,22 @@ %% This BibTeX bibliography file was created using BibDesk. %% https://bibdesk.sourceforge.io/ -%% Created for lukas zogg at 2021-07-17 16:48:19 +0200 +%% Created for lukas zogg at 2021-07-27 17:56:45 +0200 %% Saved with string encoding Unicode (UTF-8) -@article{aragher_understanding_2012, +@article{erdbeben:aragher_understanding_2012, author = {Faragher, Ramsey}, date-added = {2021-07-17 16:44:00 +0200}, date-modified = {2021-07-17 16:45:54 +0200}, - journal = { Signal Processing Magazine}, + journal = {Signal Processing Magazine}, month = {09}, number = {5}, pages = {128--132}, - title = {Understanding the Basis of the Kalman Filter Via a Simple and Intuitive Derivation }, + title = {Understanding the Basis of the Kalman Filter Via a Simple and Intuitive Derivation}, volume = {29}, year = {2012}, Bdsk-File-1 = {YnBsaXN0MDDSAQIDBFxyZWxhdGl2ZVBhdGhZYWxpYXNEYXRhXxByLi4vLi4vLi4vLi4vLi4vLi4vRG93bmxvYWRzL1VuZGVyc3RhbmRpbmcgdGhlIEJhc2lzIG9mIHRoZSBLYWxtYW4gRmlsdGVyIFZpYSBhIFNpbXBsZSBhbmQgSW50dWl0aXZlIERlcml2YXRpb24ucGRmTxECbgAAAAACbgACAAAMTWFjaW50b3NoIEhEAAAAAAAAAAAAAAAAAAAAAAAAAEJEAAH/////H1VuZGVyc3RhbmRpbmcgdGhlICNGRkZGRkZGRi5wZGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAABgACAAAKIGN1AAAAAAAAAAAAAAAAAAlEb3dubG9hZHMAAAIAci86VXNlcnM6bHVrYXN6b2dnOkRvd25sb2FkczpVbmRlcnN0YW5kaW5nIHRoZSBCYXNpcyBvZiB0aGUgS2FsbWFuIEZpbHRlciBWaWEgYSBTaW1wbGUgYW5kIEludHVpdGl2ZSBEZXJpdmF0aW9uLnBkZgAOAK4AVgBVAG4AZABlAHIAcwB0AGEAbgBkAGkAbgBnACAAdABoAGUAIABCAGEAcwBpAHMAIABvAGYAIAB0AGgAZQAgAEsAYQBsAG0AYQBuACAARgBpAGwAdABlAHIAIABWAGkAYQAgAGEAIABTAGkAbQBwAGwAZQAgAGEAbgBkACAASQBuAHQAdQBpAHQAaQB2AGUAIABEAGUAcgBpAHYAYQB0AGkAbwBuAC4AcABkAGYADwAaAAwATQBhAGMAaQBuAHQAbwBzAGgAIABIAEQAEgBwVXNlcnMvbHVrYXN6b2dnL0Rvd25sb2Fkcy9VbmRlcnN0YW5kaW5nIHRoZSBCYXNpcyBvZiB0aGUgS2FsbWFuIEZpbHRlciBWaWEgYSBTaW1wbGUgYW5kIEludHVpdGl2ZSBEZXJpdmF0aW9uLnBkZgATAAEvAAAVAAIAEP//AAAACAANABoAJACZAAAAAAAAAgEAAAAAAAAABQAAAAAAAAAAAAAAAAAAAws=}} diff --git a/buch/papers/erdbeben/teil0.tex b/buch/papers/erdbeben/teil0.tex index 8ce8ff2..c099340 100644 --- a/buch/papers/erdbeben/teil0.tex +++ b/buch/papers/erdbeben/teil0.tex @@ -23,6 +23,7 @@ Die Masse schwing jedoch in seiner Eigendynamik weiter. Relativbewegung des Bodens kann damit als Auslenkung im Zeitverlauf gemessen werden. In modernen Seismographen wird die Bodenbewegung in alle Richtungen gemessen, sowohl Horizontal als auch Vertikal. Wir konstruieren uns eine einfachere Version eines Seismographen mit eine Gehäuse, an dem zwei Federn und eine Masse befestigt sind. +Der Seismograph ist in Abbildung ~\ref{erdbeben:Seismograph} ersichtlich. Ein Sensor unter der Masse misst die Position, bzw. die Auslenkung der Feder und der Masse. Dies bedeutet, unser Seismograph kann nur in eine Dimension Messwerte aufnehmen. @@ -30,52 +31,52 @@ Dies bedeutet, unser Seismograph kann nur in eine Dimension Messwerte aufnehmen. \begin{center} \includegraphics[width=5cm]{papers/erdbeben/Apperatur} \caption{Aufbau des Seismographen mit Gehäuse, Masse, Federn und Sensor} + \label{erdbeben:Seismograph} \end{center} \end{figure} \subsection{Ziel} Unser Seismograph misst nur die Position der Masse über die Zeit. -Wir wollen jedoch die Beschleunigung $a(t)$ des Boden bzw. die Kraft $f(t)$ welche auf das Gehäuse wirkt bestimmten. -Anhand dieser Beschleunigung bzw. der Krafteinwirkung durch die Bodenbewegung wird später das Bauwerk bemessen. +Wir wollen jedoch die Beschleunigung $a(t)$ des Boden, bzw. die Kraft $f(t)$, welche auf das Gehäuse wirkt, bestimmten. +Anhand dieser Beschleunigung, bzw. der Krafteinwirkung durch die Bodenbewegung, wird später das Bauwerk bemessen. Dies bedeutet, die für uns interessante Grösse $f(t)$ wird nicht durch einen Sensor erfasst. Jedoch können wir durch zweifaches ableiten der Positionsmessung $s(t)$ die Beschleunigung der Masse berechnen. Das heisst: Die Messung ist zweifach Integriert die Kraft $f(t)$ inklusive der Eigendynamik der Masse. -Um die Bewegung der Masse zu berechnen, müssen wir Gleichungen für unser System finden. +Um die Krafteinwirkung der Masse zu berechnen, müssen wir Gleichungen für unser System finden. \subsection{Systemgleichung} -Im Fall unseres Seismographen, kann die Differentialgleichung zweiter Ordnung einer gedämpften Schwingung am harmonischen Oszillator verwendet werden. -Diese lautet: +Im Paper~\cite{erdbeben:mendezmueller} wurde das System gleich definiert und vorgegangen. +Im Fall unseres Seismographen, handelt es sich um ein Feder-Masse-Pendel. +Dieser kann durch die Differentialgleichung zweiter Ordnung einer gedämpften Schwingung am harmonischen Oszillator beschrieben werden. +Die Gleichung lautet: \begin{equation} -m\ddot s + 2k \dot s + Ds = f +m\ddot s + 2k \dot s + Ds = f. \end{equation} -mit den Konstanten $m$ = Masse, $k$ = Dämpfungskonstante und $D$ = Federkonstante. -Da die DGL linear ist, kann sie in die kompaktere und einfachere Matrix-Form umgewandelt werden. Dazu wird die Differentialgleichung zweiter Ordnung substituiert: -\[ {s_1}=s \qquad -{s_2}=\dot s, \qquad\] -Somit entstehen die Gleichungen für die Position $s(t)$ der Masse : +wobei $m$ die Masse, $k$ die Dämpfungskonstante und $D$ die Federkonstante bezeichnet. +Da die Differentialgleichung linear ist, kann sie in die kompaktere und einfachere Matrix-Form umgewandelt werden. +Dazu verwenden wir die Subsitution: +\[ s_1 = s \qquad \text{und} \qquad s_2 = \dot s . \] +Somit entstehen die Gleichungen für die Position $ \dot s_1(t)$ der Masse : \[ \dot {s_1} = {s_2}\] und -\[ \dot s_2 = -\frac{D}{m} {s_1} -\frac{2k}{m} {s_2} + \frac{f} {m} \] für die Beschleunigung $a(t)$ der Masse. - +\[ \dot s_2 = -\frac{D}{m} {s_1} -\frac{2k}{m} {s_2} + \frac{f} {m} \] +für die Beschleunigung $\dot s_2(t)$ der Masse. Diese können wir nun in der Form -\[ {s_3}=-\frac{D}{m} {s_1} -\frac{2k}{m} {s_2} + \frac{f} {m} \] +\[ f =-\frac{D}{m} {s_1} -\frac{2k}{m} {s_2} + \frac{f} {m} \] auch als Matrix-Vektor-Gleichung darstellen. Dafür wird die Gleichung in die Zustände aufgeteilt. -Die für uns relevanten Zustände sind die Position der Masse, die Geschwindigkeit der Masse und die äussere Beschleunigung des ganzen System. -Dabei muss unterschieden werden, um welche Beschleunigung es sich handelt. -Das System beinhaltet sowohl eine Beschleunigung der Masse, innere Beschleunigung, als auch eine Beschleunigung der ganzen Apparatur, äussere Beschleunigung. -In unserem Fall wird die äusseren Beschleunigung gesucht, da diese der Erdbebenanregung gleich kommt. -\begin{equation} -\frac{d}{dt} \left(\begin{array}{c} {s_1} \\ {s_2} \end{array}\right) = \left( - \begin{array}{ccc} -0 & 1& 0 \\ -- \frac{D}{m} &-\frac{2k}{m} & \frac{1} {m}\\ -\end{array}\right) \left(\begin{array}{c} {s_1} \\ {s_2} \\ {s_3} \end{array}\right). -\end{equation} - -Durch Rücksubstituion ergibt sich: +Die für uns relevanten Zustände sind die Position der Masse, die Geschwindigkeit der Masse und die äussere Beschleunigung des ganzen Systems. + +Dabei muss unterschieden werden, um welche Beschleunigung es sich handelt. +Das System beinhaltet sowohl eine Beschleunigung der Masse (innere Beschleunigung) als auch eine Beschleunigung der ganzen Apparatur (äussere Beschleunigung). +In unserem Fall wird die äusseren Beschleunigung gesucht, da diese der Erdbebenanregung gleich kommt. +Dazu wird ein Zustandsvektor definiert: +\[ + \left(\begin{array}{c} {s_1} \\ {s_2} \\ {f} \end{array}\right). + \] +Durch Rücksubstituion ergibt sich uns folgende Systemgleichung in Matrix schreibweise, , wobei $\sot {s_1}= v$ ist: \begin{equation} -\frac{d}{dt} \left(\begin{array}{c} s(t) \\ v(t) \end{array}\right) = \left( +\frac{d}{dt} \left(\begin{array}{c} s(t) \\ v(t) \\ f(t) \end{array}\right) = \left( \begin{array}{ccc} 0 & 1& 0 \\ - \frac{D}{m} &-\frac{2k}{m} & \frac{1} {m}\\ diff --git a/buch/papers/erdbeben/teil1.tex b/buch/papers/erdbeben/teil1.tex index e07800f..6c334bf 100644 --- a/buch/papers/erdbeben/teil1.tex +++ b/buch/papers/erdbeben/teil1.tex @@ -14,6 +14,8 @@ \rhead{Kalman-Filter} \section{Kalman-Filter} +Interessante Grösse ist also Integral von Überlagerung zweier Kräfte. +Wir brauchen also dir zweite Ableitung von der Messung , ohne deren Eigendynamik. Da wir die äussere Kraft nicht direkt messen können, benötigen wir ein Werkzeug, welches aus der gemessenen Position, die Krafteinwirkung auf unsere System schätzt. Dies ist eine typische Anwendung für das Kalman-Filter. Unser Ziel ist es, anhand der Messung die eigentlich interessante Grösse $f$ zu bestimmen. @@ -23,8 +25,8 @@ Die Idee dahinter ist, dass das Kalman-Filter die nicht-deterministische Grösse Für mehrere Dimensionen (x,y,z) würde der Pythagoras für das System benötigt werden. Da sich der Pythagoras bekanntlich nicht linear verhält, kann kein lineares Kalman-Filter implementiert werden. Da das Kalman-Filter besonders effektiv und einfach für lineare Abläufe geeignet ist, würde eine zweidimensionale Betrachtung den Rahmen dieser Arbeit sprengen. -Für ein nicht-lineares System werden Extended Kalman-Filter benötigt, bei denen die System-Matrix (A) durch die Jacobi-Matrix des System ersetzt wird. Einfachheitshalber beschränken wir uns auf den linearen Fall, da dadurch die wesentlichen Punkte bereits aufgezeigt werden. +Für ein nicht-lineares System werden Extended Kalman-Filter benötigt, bei denen die System-Matrix (A) durch die Jacobi-Matrix des System ersetzt wird. \subsection{Geschichte} Das Kalman-Filter wurde 1960 von Rudolf Emil Kalman entdeckt und direkt von der NASA für die Appollo Mission benutzt. @@ -35,57 +37,60 @@ Das Filter schätzt den Zustand eines Systems anhand von Messungen und kann den Das Kalman-Filter schätzt den wahrscheinlichsten Wert zwischen Normalverteilungen. Dies bedeutet, das Filter schätzt nicht nur den Mittelwert, sondern auch die Standartabweichung. Da Normalverteilungen dadurch vollständig definiert sind, schätzt ein Kalman-Filter die gesamte Verteilungsfunktion des Zustandes. +In der Abbildung~\ref{erdbeben: Zwei Normalverteilungen} sind zwei Funktionen dargestellt. Die eine Funktion zeigt die errechnete Vorhersage des Zustands, bzw. deren Normalverteilung. Die andere Funktion zeigt die verrauschte Messung des nächsten Zustand, bzw. deren Normalverteilung. -Wie man am Beispiel der Gauss-Verteilungen unten sehen kann, ist sowohl der geschätzte Zustand als auch der gemessene Zustand normalverteilt und haben dementsprechend unterschiedliche Standardabweichungen $\sigma$ und Erwartungswerte $\mu$. - +Wie man am Beispiel der Gauss-Verteilungen in Abblidung~\ref{erdbeben: Zwei Normalverteilungen} sehen kann, ist sowohl der geschätzte Zustand als auch der gemessene Zustand normalverteilt und haben dementsprechend unterschiedliche Standardabweichungen $\sigma$ und Erwartungswerte $\mu$. Dies wird in~\cite{erdbeben:aragher_understanding_2012}beschrieben. \begin{figure} \begin{center} \includegraphics[width=5cm]{papers/erdbeben/Gausskurve2.pdf} \caption{Zwei Normalerteilungen; Die eine Funktion zeigt die Vorhersage, die andere die Messung} + \label{erdbeben: Zwei Normalverteilungen} \end{center} \end{figure} - - +Wir haben eine Vorhersage aus der Systemdynamik und eine Messung des Zustandes. +Diese widersprechen sich im Allgemeinen. +Jedoch wissen wir die Wahrscheinlichkeiten der beiden Aussagen. Um eine genauere Schätzung des Zustandes zu machen, wird nun ein Wert zwischen den beiden Verteilungen berechnet. Nun wird eine Eigenschaft der Normalverteilung ausgenutzt. Durch das Multiplizieren zweier Normalverteilungen entsteht eine neue Normalverteilung. Wir haben eine Normalverteilung der Vorhersage: - -\[ {y_1}(x;{\mu_1},{\sigma_1})=\frac{1}{\sqrt{2\pi\sigma_1^2}}\quad e^{-\frac{(x-{\mu_1})^2}{2{\sigma_1}^2}} \] +\[ +{y_1}(x;{\mu_1},{\sigma_1})=\frac{1}{\sqrt{2\pi\sigma_1^2}}\quad e^{-\frac{(x-{\mu_1})^2}{2{\sigma_1}^2}} +\] und der Messung: -\[ {y_2}(x;{\mu_2},{\sigma_2})=\frac{1}{\sqrt{2\pi\sigma_2^2}}\quad e^{-\frac{(x-{\mu_2})^2}{2{\sigma_2}^2}}. \] - - - -Diesen werden nun Multipliziert und durch deren Fläche geteilt um sie wieder zu Normieren: -\[ -{y_f}(x;{\mu_f},{\sigma_f})=\frac{ \frac{1}{\sqrt{2\pi\sigma_1^2}}e^{-\frac{(x-{\mu_1})^2}{2{\sigma_1}^2}} \cdot \frac{1}{\sqrt{2\pi\sigma_2^2}}e^{-\frac{(x-{\mu_2})^2}{2{\sigma_2}^2}}}{\int {y_1}\cdot{y_2} dx\,} - \] - +\[ +{y_2}(x;{\mu_2},{\sigma_2})=\frac{1}{\sqrt{2\pi\sigma_2^2}}\quad e^{-\frac{(x-{\mu_2})^2}{2{\sigma_2}^2}}. +\] +Diesen werden nun multipliziert und durch deren Fläche geteilt um sie wieder zu normieren, $\odot$ beschreibt dabei die Multiplikation und die Normierung auf den Flächeninhalt eins : +\begin{align*} {y_f}(x; {\mu_f}, {\sigma_f}) = {y_1}(x;{ \mu_1},{ \sigma_1}) \odot {y_2}(x; {\mu_2}, {\sigma_2}) + &= + \frac{1}{\sqrt{2\pi\sigma_1^2}}\quad e^{-\frac{(x-{\mu_1})^2}{2{\sigma_1}^2}} \odot \frac{1}{\sqrt{2\pi\sigma_2^2}}\quad e^{-\frac{(x-{\mu_2})^2}{2{\sigma_2}^2}} + \\ + &= \frac{ \frac{1}{\sqrt{2\pi\sigma_1^2}}e^{-\frac{(x-{\mu_1})^2}{2{\sigma_1}^2}} \cdot \frac{1}{\sqrt{2\pi\sigma_2^2}}e^{-\frac{(x-{\mu_2})^2}{2{\sigma_2}^2}}}{\int {y_1} {y_2} dx}. \end{align*} Diese Kombination der beiden Verteilungen resultiert wiederum in einer Normalverteilung -\[ {y_f}(x; {\mu_f}, {\sigma_f}) = {y_1}(x;{ \mu_1},{ \sigma_1}) {\cdot y_2}(x; {\mu_2}, {\sigma_2}), \] mit Erwartungswert \[ \mu_f = \frac{\mu_1\sigma_2^2 + \mu_2 \sigma_1^2}{\sigma_1^2 + \sigma_2^2} \] und Varianz -\[ \sigma_f^2 = \frac{\sigma_1^2 \sigma_2^2}{\sigma_1^2 + \sigma_2^2}. \] - +\[ +\sigma_f^2 = \frac{\sigma_1^2 \sigma_2^2}{\sigma_1^2 + \sigma_2^2}. +\] Dadurch gleicht sich die neue Kurve den anderen an. Interessant daran ist, dass die fusionierte Kurve sich der genauere Normal-Verteilung anpasst. Ist ${\sigma_2}$ klein und ${\sigma_1}$ gross, so wird sich die fusionierte Kurve näher an ${y_2}(x;{\mu_2},{\sigma_2})$ begeben. -Sie ist also gewichtet und die best mögliche Schätzung. - - +Somit ist $\mu_f$ ist das gewichtete Mittel der beiden $\mu_{1,2}$, und die Varianzen sind die Gewichte! +Die neue Funktion ist die best mögliche Schätzung für zwei Verteilungen, welche den selben Zustand beschreiben. +Dies ist in der Abbildung~\ref{erdbeben:Gauss3} anhand der rote Funktion ersichtlich. \begin{figure} \begin{center} \includegraphics[width=5cm]{papers/erdbeben/Gausskurve3.pdf} \caption{Durch das Multiplizieren der blauen und der orangen Verteilung entsteht die die rote, optimale Funktion} + \label{erdbeben:Gauss3} \end{center} \end{figure} - - Was in zwei Dimensionen erklärt wurde, funktioniert auch in mehreren Dimensionen. Dieses Prinzip mach sich das Kalman Filter zu nutze, und wird von uns für die Erdbeben Berechnung genutzt. \section{Filter-Matrizen} +Da wir nun ein Werkzeug besitzen, dass die Beschleunigung, welche auf das Gehäuse wirkt, ermitteln kann, wird dieses nun Schritt für Schritt erklärt. Um den Kalman Filter zu starten, müssen gewisse Bedingungen definiert werden. In diesem Abschnitt werden die einzelnen Parameter und Matrizen erklärt und erläutert, wofür sie nützlich sind. @@ -94,8 +99,6 @@ In diesem Abschnitt werden die einzelnen Parameter und Matrizen erklärt und erl Das Filter benötigt eine Anfangsbedingung. In unserem Fall ist es die Ruhelage, die Masse bewegt sich nicht. Zudem erfährt die Apparatur keine äussere Kraft. - - \[ {x_0 }= \left( \begin{array}{c} {s_0}\\ {v_0}\\{f_0}\end{array}\right) = \left( \begin{array}{c} 0\\ 0\\ 0\end{array}\right) \] \subsubsection*{Anfangsfehler / Kovarianzmatrix $P$} @@ -108,7 +111,6 @@ Kovarianz: Cov(x, y) und Varianz: Var(x) = Cov(x, x) In unserem Fall ist der Anfangszustand gut bekannt. Wir gehen davon aus, dass das System in Ruhe und in Abwesenheit eines Erdbeben startet, somit kann die Matrix mit Nullen bestückt werden. Als Initialwert für die Kovarianzmatrix ergibt sich - \[ {P_0 }= \left( @@ -145,9 +147,9 @@ Die Matrix $\Phi$ beschreibt die Übergänge zwischen zeitlich aufeinanderfolgen \subsubsection*{Prozessrauschkovarianzmatrix $Q$} Die Prozessrauschmatrix teilt dem Filter mit, wie sich der Prozess verändert. -Kalman-Filter berücksichtigen sowohl Unsicherheiten wie Messfehler und -rauschen. -In der Matrix $Q$ geht es jedoch im die Unsicherheit die der Prozess mit sich bringt. -Bei unserem Modell könnte das beispielsweise ein Windstoss an die Masse sein. +Kalman-Filter berücksichtigen Unsicherheiten wie Messfehler und -rauschen. +In der Matrix $Q$ geht es jedoch um die Unsicherheit, die der Prozess mit sich bringt. +Bei unserem Modell könnte das beispielsweise ein Windstoss an die Masse sein oder auch die Ungenauigkeiten im Modell, wie die Annahme das dich die Kraft nicht ändert. Für uns wäre dies: \[ Q = \left( @@ -157,7 +159,6 @@ Q = \left( 0 & 0& {\sigma_f }^2\\ \end{array}\right) \] - Die Standabweichungen müssten statistisch ermittelt werden, da der Fehler nicht vom Sensor kommt und somit nicht vom Hersteller gegeben ist. Das Bedeutet wiederum dass $Q$ die Unsicherheit des Prozesses beschreibt und nicht die der Messung. @@ -165,13 +166,15 @@ Das Bedeutet wiederum dass $Q$ die Unsicherheit des Prozesses beschreibt und nic Die Messmatrix gibt an, welche Parameter gemessen werden. $H$ ist die Gleichung die für die Vorhersage der Messung. In unserem Falle ist es die Position der Massen. - -\[ H = (1, 0, 0) \] +\[ +H = (1, 0, 0) +\] \subsubsection*{Messrauschkovarianz $R$} Die Messrauschkovarianzmatrix beinhaltet, wie der Name schon sagt, das Rauschen der Messung. In unserem Fall wird nur die Position der Masse gemessen. Da wir keine anderen Sensoren haben ist $R$ lediglich: -\[ R= ({\sigma_{sensor}}^2). +\[ +R= ({\sigma_\mathrm{sensor}}^2). \] Diese Messrauchen wird meistens vom Sensorhersteller angegeben. Für unsere theoretische Apparatur wird hier ein kleiner Fehler eingesetzt da heutige Sensoren sehr genau messen können. @@ -182,19 +185,25 @@ Zuerst wird der nächste Zustand der Masse vorhergesagt, danach wird die Messung Das Filter berechnet aufgrund der aktuellen Schätzung eine Vorhersage. Diese wird, sobald verfügbar, mit der Messung verglichen. Aus dieser Differenz und den Unsicherheiten des Prozesses ($Q$) und der Messung ($R$) wird der wahrscheinlichste, neue Zustand geschätzt. +Dabei muss genau auf den Index geachtet werden. Nach dem Artikel~\cite{erdbeben:wikipedia} ist die Indexierung so genormt: +Der Zeitschritt wird mit $k$ definiert, $k-1$ ist somit ein Zeitschritt vor $k$. +Auf der linken Seite von | wird der aktuelle Zustand verlangt, bzw. ausgegeben, auf der rechten Seiten den bisherigen Zustand. +Dies bedeutet, dass die Notation $x_{n|m}$ die Schätzung von $x$ zum Zeitpunkt $n$ bis und mit zur Zeitpunkt $m \leq \ n$ präsentiert. \subsubsection*{Vorhersage} Im Filterschritt Vorhersage wird der nächste Zustand anhand des Anfangszustand und der Systemmatrix berechnet. Dies funktioniert mit dem Rechenschritt: -\[ -{x_{k-1}}=\Phi \cdot {x_{k-1}}= \exp(A\Delta t)\cdot{x_{k-1}}. - \] - -Die Kovarianz $P_{pred}$ wird ebenfalls neu berechnet. Da wir ein mehrdimensionales System haben, kommt noch die Prozessunsicherheit $Q$ dazu, so dass die Unsicherheit des Anfangsfehlers $P$ laufend verändert. +\[ +{x_{k|k-1}}=\Phi{x_{k-1|k-1}}= \exp(A\Delta t){x_{k-1|k-1}}. +\] +Die Kovarianz $P_{k|k-1}$ wird ebenfalls neu berechnet. Zudem kommt noch die Prozessunsicherheit $Q$ dazu, so dass die Unsicherheit des Anfangsfehlers $P$ laufend verändert. Dies funktioniert durch multiplizieren der Systemmatrix mit dem aktualisierten Anfangsfehler. Dazu wird noch die Prozessunsicherheit addiert, somit entsteht die Gleichung -\[ {P_{k-1}} = {\Phi_k} {P_{k-1}} {\Phi_k} ^T + {Q_{k-1}} .\] -Es vergeht genau $t$ Zeit, und dieser Vorgang wird wiederholt. +\[ +{P_{k|k-1}}=\Phi {P_{k-1|k-1}} {\Phi _{k}}^T + {Q_{k-1}}. +\] +Es vergeht genau $\Delta t$ Zeit, und dieser Vorgang wird wiederholt. +Das hochgestellte T bezeichnet die transponierte Matrix. Dabei wird in den späteren Schritten überprüft, wie genau die letzte Anpassung von $P$ zur Messung stimmt. Ist der Unterschied klein, wird die Kovarianz $P$ kleiner, ist der Unterschied gross, wird auch die Kovarianz grösser. Das Filter passt sich selber an und korrigiert sich bei grosser Abweichung. @@ -202,74 +211,83 @@ Das Filter passt sich selber an und korrigiert sich bei grosser Abweichung. \subsubsection*{Messen} Der Sensor wurde noch nicht benutz, doch genau der liefert Werte für das Filter. Die aktuellen Messwerte $z$ werden die Innovation $w$ mit dem Zustandsvektor $x$ und der Messmatrix $H$ zusammengerechnet. -Hier bei wird lediglich die Messung mit dem Fehler behaftet, und die Messmatrix $H$ mit der Vorhersage multipliziert - -\[{w_{k}}={z_{k}}-{H}\cdot{x_{k-1}}.\] - +Hier bei wird lediglich die Messung mit dem Fehler behaftet, und die Messmatrix $H$ mit der Vorhersage multipliziert. +\[ +{w_{k}}={z_{k}}-{H}{x_{k|k-1}}. +\] Die Innovation ist der Teil der Messung, die nicht durch die Systemdynamik erklärt werden kann. Die Hilfsgröße Innovation beschreibt, wie genau die Vorhersage den aktuellen Messwert mittels der Systemmatrix $\Phi$ beschreiben kann. Für eine schlechte Vorhersage wird die dazugehörige Innovation gross, für eine genaue Vorhersage dagegen klein sein. Entsprechende Korrekturen müssen dann gross bzw. nur gering ausfallen. -Innovation = Messung - Vorhersage. Dies ist intuitiv logisch, eine Innovation von 0 bedeutet, dass die Messung nichts Neues hervorbrachte. +Innovation = Messung - Vorhersage. Dies leuchtet ein, eine Innovation von 0 bedeutet, dass die Messung nichts Neues hervorbrachte. Im nächsten Schritt wir analysiert, mit welcher Kovarianz weiter gerechnet wird. Hierbei wird die Unsicherheit $P$, die Messmatrix $H$ und die Messunsicherheit $R$ miteinander verrechnet. \[ -{S_{k}}={H}{P_{k-1}}{H}^T+{R_{k}} - \] +{S_{k}}={H}{P_{k|k-1}}{H}^T+{R_{k}} +\] \subsubsection*{Aktualisieren} Im nächsten Schritt kommt nun die Wahrscheinlichkeit dazu. -\[ -{K_{k}}= {{P_{k-1}} \cdot {H_{k}^T}}\cdot {S_{k}}^{-1} - \] +\[{K_{k}}= {P_{k|k-1}} {H^T}{S_{k}^{-1}}\] Dieser Vorgang wird Kalman-Gain genannt. -Er sagt aus, welcher Kurve mehr Vertraut werden soll, dem Messwert oder der Systemdynamik. -Das Kalman-Gain wird geringer, wenn der Messwert dem vorhergesagten Systemzustand entspricht. -Sind die Messwerte komplett anders als die Vorhersage, werden die Elemente in der Matrix $K$ grösser. -Anhand der Informationen aus dem Kalman-Gain $K$ wird das System aktualisiert. +Das Kalman-Gain gibt dem Zustand die Gewichtung, bzw. wie die Vorhersage auf den Zustand passt. +Vereinfacht gesagt: Es wird das das Verhältnis zwischen der Unsicherheit der Vorhersage $P_k$ zu der zugehörigen Messunsicherheit $R_k$ gebildet. +In unserem Fall wird werden die Elemente der Kalman-Matrix vorweg berechnet, da das Kalman-Gain ohne Messungen auskommt. -\[ -{x_{k|k}}={x_{k-1}}+({K_{k}}\cdot {w_{k}}) - \] +Anhand der Informationen aus dem Kalman-Gain $K$ wird das System aktualisiert. +\[ +{x_{k|k}}={x_{k|k-1}}+{K_{k}}{w_{k}} +\] +Dabei wird der Unterschied zwischen dem erwarteten, errechneten, Zustand und dem gemessenen Zustand berechnet. Dazu kommt eine neue Kovarianz für den nächste Vorhersageschritt: - -\[ -{P_{k}}=(I-({K_{k}} \cdot {H})) \cdot {P_{k-1}} - \] - +\[ +{P_{k|k}}=(I-{K_{k}}{H}){P_{k|k-1}} +\] Der ganze Algorithmus und beginnt wieder mit der Vorhersage - -\[ -{x_{k-1}}=\Phi \cdot {x_{k-1}}= \exp(A\Delta t)\cdot{x_{k-1}}. - \] - +\[ +{x_{k|k-1}}=\Phi{x_{k-1|k-1}}= \exp(A\Delta t){x_{k|k-1}}. +\] \subsection{Zusammenfassung } Zusammenfassend kann das Kalman-Filter in offizieller Typus dargestellt werden. Dabei beginnt das Filter mit dem Anfangszustand für $k=0$ 1. Nächster Zustand vorhersagen -\[{x_{k-1}}={\Phi} \cdot {x_{k-1}}= \exp(A\Delta t)\cdot{x_{k-1}}.\] +\[ +{x_{k|k-1}}=\Phi{x_{k-1|k-1}}= \exp(A\Delta t){x_{k-1|k-1}}. +\] 2. Nächste Fehlerkovarianz vorhersagen -\[{P_{k-1}}={\Phi} {P_{k-1}} {\Phi _{k}}^T + {Q_{k-1}}.\] +\[ +{P_{k|k-1}}=\Phi {P_{k-1|k-1}} {\Phi _{k}}^T + {Q_{k-1}}. +\] 3. Zustand wird gemessen -\[{w_{k}}={z_{k}}-{H}\cdot{x_{k-1}}.\] +\[ +{w_{k}}={z_{k}}-{H}{x_{k|k-1}}. +\] 4. Innovation (= Messung - Vorhersage) -\[ {S_{k}}={H}{P_{k-1}}{H}^T+{R_{k}}\] +\[ +{S_{k}}={H}{P_{k|k-1}}{H}^T+{R_{k}} +\] 5. Das Kalman Filter anwenden -\[{K_{k}}= {P_{k-1}} \cdot {H^T}\cdot {S_{k}^{-1}}\] +\[ +{K_{k}}= {P_{k|k-1}} {H^T}{S_{k}^{-1}} +\] 6. Schätzung aktualisieren -\[{x_{k}}={x_{k-1}}+({K_{k}}\cdot {w_{k}}) \] +\[ +{x_{k|k}}={x_{k|k-1}}+{K_{k}}{w_{k}} +\] 7. Fehlerkovarianz aktualisieren -\[{P_{k}}=(I-({K_{k}}\cdot {H})) \cdot {P_{k-1}} \] +\[ +{P_{k|k}}=(I-{K_{k}}{H}){P_{k|k-1}} +\] 8. Die Outputs von $k$ werden die Inputs für ${k-1}$ und werden wieder im Schritt 1 verwendet -- cgit v1.2.1 From 5daff6cc906d9abb2a913569588a0666b4d53b4a Mon Sep 17 00:00:00 2001 From: JODBaer Date: Wed, 28 Jul 2021 17:52:37 +0200 Subject: rewrite some texts --- buch/papers/reedsolomon/dtf.tex | 42 ++++++++----- buch/papers/reedsolomon/figures/polynom2.pdf | Bin 20327 -> 20317 bytes buch/papers/reedsolomon/idee.tex | 73 +++++++++++++--------- buch/papers/reedsolomon/packages.tex | 2 + buch/papers/reedsolomon/standalone/standalone.pdf | Bin 1828186 -> 1835615 bytes buch/papers/reedsolomon/tikz/polynom2.tex | 11 ++-- 6 files changed, 79 insertions(+), 49 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/dtf.tex b/buch/papers/reedsolomon/dtf.tex index 73d0d12..e9aacfb 100644 --- a/buch/papers/reedsolomon/dtf.tex +++ b/buch/papers/reedsolomon/dtf.tex @@ -3,57 +3,65 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Diskrete Fourier Transformation +\section{Übertragung mit hilfe der Diskrete Fourier Transformation \label{reedsolomon:section:dtf}} \rhead{Umwandlung mit DTF} Um die Polynominterpolation zu umgehen, gehen wir nun über in die Fourientransformation. -Dies wird weder eine erklärung der Forientransorfmation noch ein genauer gebrauchfür den Reed-Solomon-Code. +Dies wird weder eine Erklärung der Forientransorfmation, noch ein genauer gebrauch für den Reed-Solomon-Code. Dieser Abschnitt zeigt nur wie die Fourientransformation auf Fehler reagiert. wobei sie dann bei späteren Berchnungen ganz nützlich ist. \subsection{Diskrete Fourietransformation Zusamenhang \label{reedsolomon:subsection:dtfzusamenhang}} -Die Diskrete Fourietransformation ist definiert als +Mit hilfe der Fourietransformation werden die \textcolor{blue}{blauen Datenpunkte} transformiert, +zu den \textcolor{darkgreen}{grünen Übertragungspunkten}. +Durch eine Rücktransformation könnnen die \textcolor{blue}{blauen Datenpunkte} wieder rekonstruiert werden. +Nun zur definition der Diskrete Fourietransformation, diese ist definiert als \begin{equation} \hat{c}_{k} = \frac{1}{N} \sum_{n=0}^{N-1} {f}_n \cdot e^{-\frac{2\pi j}{N} \cdot kn} ,\label{reedsolomon:DFT} \end{equation} - wenn man nun \begin{equation} w = e^{-\frac{2\pi j}{N} k} \label{reedsolomon:DFT_summand} \end{equation} - ersetzte, und $N$ konstantbleibt, erhält man \begin{equation} \hat{c}_{k}= \frac{1}{N}( {f}_0 w^0 + {f}_1 w^1 + {f}_2 w^2 + \dots + {f}_{N-1} w^N) \label{reedsolomon:DFT_polynom} \end{equation} - was überaust ähnlich zu unserem Polynomidee ist. -\subsection{Übertragungsabfolge + +\subsection{Beispiel \label{reedsolomon:subsection:Übertragungsabfolge}} -Der Auftrag ist nun 64 Daten zu übertragen und nach 16 Fehler abzusicheren, -16 Fehler erkennen und rekonstruieren. +Der Auftrag ist nun 64 Daten zu übertragen und nach 32 Fehler abzusicheren, +16 Fehler erkennen und rekonstruieren. + Dieser Auftrag soll mittels Fouriertransformation bewerkstelligt werden. In der Abbildung \ref{reedsolomon:subsection:Übertragungsabfolge} sieht man dies Schritt für schritt, -und hier werden die einzelne Schritte erklärt. +und hier werden die einzelne Schritte erklärt: \begin{enumerate}[(1)] \item Das Signal hat 64 die Daten, Zahlen welche übertragen werden sollen. Dabei zusätzlich nach 16 Fehler abgesichert, macht insgesamt 96 Übertragungszahlen. -\item Nun wurde mittels der schnellen diskreten Fourientransformation diese 96 codiert. -Das heisst alle information ist in alle Zahlenvorhanden. -\item Nun kommen drei Fehler dazu an den Übertragungsstellen 7, 21 und 75. -\item Dieses wird nun Empfangen und mittels inversen diskreten Fourientransormation, wieder rücktransformiert. -\item Nun sieht man den Fehler im Decodieren in den Übertragungsstellen 64 bis 96. -\item Nimmt man nun nur diese Stellen 64 bis 96, auch Syndrom genannt, und Transformiert diese. -\item Bekommt man die Fehlerstellen im Locator wieder, zwar nichtso genau, dennoch erkkent man wo die Fehler stattgefunden haben. +(siehe Abschnitt \externaldocument{papers/reedsolomon/idee}\ref{reedsolomon:section:Fehlerkorrekturstellen}) +Die 32 Fehlerkorrekturstellen werden als Null Übertragen +\item Nun wurde mittels der diskreten Fourientransformation diese 96 codiert. +Das heisst alle Informationen ist in alle Zahlenvorhanden. (Auch die Fehlerkorrekturstellen Null) +\item Nun kommen drei Fehler dazu an den Übertragungsstellen 7, 21 und 75.(die Skala ist Rechts) +Die Fehler können auf den ganzen 96 Übertragungswerten liegen, wie die 75 zeigt. +\item Dieses wird nun Empfangen und mittels inversen diskreten Fourientransormation, wieder rücktransformiert.(Iklusive der Fehler) +\item Nun sieht man den Fehler im Decodieren in den Übertragungsstellen 64 bis 96, da es dort nicht mehr Null ist. +\item Nimmt man nun nur diese Stellen 64 bis 96, dies definieren wir als Syndrom, und transformiert nur dieses Syndrom. +\item Bekommt man die Fehlerstellen wieder, zwar nichtso genau, dennoch erkennt man wo die Fehler stattgefunden haben. +Dies definieren wir als Locator. \end{enumerate} +Nun haben wir mit Hilfe der Fourietransformation die 3 Fehlerstellen durch das Syndrom lokalisiert, +jetzt gilt es nur noch diese zu korrigieren und wir haben unser originales Signal wieder. \begin{figure} \centering diff --git a/buch/papers/reedsolomon/figures/polynom2.pdf b/buch/papers/reedsolomon/figures/polynom2.pdf index dd6cdd3..55a50ac 100644 Binary files a/buch/papers/reedsolomon/figures/polynom2.pdf and b/buch/papers/reedsolomon/figures/polynom2.pdf differ diff --git a/buch/papers/reedsolomon/idee.tex b/buch/papers/reedsolomon/idee.tex index 519e642..8ad3d27 100644 --- a/buch/papers/reedsolomon/idee.tex +++ b/buch/papers/reedsolomon/idee.tex @@ -1,5 +1,5 @@ % -% idee.tex -- Beispiel-File für das Paper +% idee.tex -- Polynom Idee % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % @@ -14,15 +14,19 @@ Das Problem liegt darin Informationen, Zahlen, zu Übertragen und Fehler zu erkennen. Beim Reed-Solomon-Code kann man nicht nur Fehler erkennen, man kann sogar einige Fehler korrigieren. -Der unterschied des Fehler erkennen und korrigiren, ist das beim Erkennen nur die Frage kommt hat es Fehler oder keine, -beim korrigieren muss man den Fehler erkennun und dann zusätzlich noch den original Wert rekonstruieren. -Auch eine variante wäre es die Daten nach einem Fehler einfach nochmals zu senden, was bei Reed-Solomon-Code-Anwendungen nicht immer sinnvolll ist. \ref(reedsolomon:section:anwendung) +Der unterschied des Fehler erkennen und korrigiren, ist das beim Erkennen nur die Frage beantwortet wird mit: Ist die Übertragung fehlerhaft oder nicht? +Beim Korrigieren werden Fehler erkennt und dann zusätzlich noch den original Wert rekonstruieren. +Auch eine Variante wäre es die Daten nach einem Fehler nachdem Fehlerhaften senden, nochmals versenden(auch hier wieder doppelt und dreifach Sendung), +was bei Reed-Solomon-Code-Anwendungen nicht immer sinnvoll ist. +\externaldocument{papers/reedsolomon/anwendungen} +\ref{reedsolomon:section:anwendung} +\subsection{Polynom-Ansatz +\label{reedsolomon:section:polynomansatz}} \rhead{Polynom-Ansatz} -Eine Idee ist aus den Daten -ein Polynom zu bilden. +Eine Idee ist aus den Daten ein Polynom zu bilden. Diese Polynomfunktion bei bestimmten Werten, ausrechnet und diese Punkte dann überträgt. -Nehmen wir als Beispiel die Zahlen \textcolor{blue}{2}, \textcolor{blue}{1}, \textcolor{blue}{5}, +\begin{beispiel} Nehmen wir die Zahlen \textcolor{blue}{2}, \textcolor{blue}{1}, \textcolor{blue}{5}, welche uns dann das Polynom \begin{equation} p(x) @@ -31,7 +35,8 @@ p(x) \label{reedsolomon:equation1} \end{equation} ergeben. -Übertragen werden nun die Werte dieses Polynomes an den Stellen 1, 2, 3\dots 7 dieses Polynomes. +Übertragen werden nun die \textcolor{darkgreen}{grünen Werte} +dieses \textcolor{blue}{blauen Polynomes} an den Stellen 1, 2, 3\dots 7 dieses Polynomes. Grafisch sieht man dies dann in Abbildung \ref{fig:polynom}, mit den Punkten, $p(1),p(2),...,p(7) = (\textcolor{darkgreen}{8}, \textcolor{darkgreen}{15}, \textcolor{darkgreen}{26}, @@ -39,9 +44,11 @@ mit den Punkten, $p(1),p(2),...,p(7) = (\textcolor{darkgreen}{8}, \textcolor{darkgreen}{83}, \textcolor{darkgreen}{110})$ Wenn ein Fehler sich in die Übertragung eingeschlichen hat, muss der Leser/Empfänger diesen erkennen und das Polynom rekonstruieren. Der Leser/Empfänger weiss, den Grad des Polynoms und dessen Werte übermittelt wurden. +Die Farbe blau brauchen wir für die \textcolor{blue}{Daten} welche wir mit der Farbe grün \textcolor{darkgreen}{Übermitteln}. +\end{beispiel} -\subsection{Beispiel} -Für das Beispiel aus der Gleichung \eqref{reedsolomon:equation1}, +\begin{beispiel} +Aus der Gleichung \eqref{reedsolomon:equation1}, ist ein Polynome zweiten Grades durch drei Punkte eindeutig bestimmbar. Hat es Fehler in der Übertragunge gegeben,(Bei Abbildung \ref{fig:polynom}\textcolor{red}{roten Punkte}) kann man diese erkennen, da alle Punkte, die korrekt sind, auf dem Polynom liegen müssen. @@ -51,29 +58,40 @@ Bei 2 Fehlern kann man noch eindeutig bestimmen, dass das Polynom mit 4 Punkten, gegenüber dem mit 5 Punkten falsch liegt.\ref{fig:polynom} Werden es mehr Fehler kann nur erkennt werden, dass das Polynom nicht stimmt. Das orginale Polynom kann aber nicht mehr gefunden werden. -Dafür sind mehr übertragene Werte nötig. +Da das Konkurenzpolynom, grau gestrichelt in Abbildung \ref{fig:polynom}, das orginal fehlleited. +Um das Konkurenzpolynom auszuschliessen, währen mehr \textcolor{darkgreen}{Übertragungspunkte} nötig. +\end{beispiel} \begin{figure} \centering \includegraphics[width=\textwidth]{papers/reedsolomon/figures/polynom2} - %\input{papers/reedsolomon/images/polynom2.tex} - \caption{Polynom $p(x)$ \eqref{reedsolomon:equation1}} + %\input{papers/reedsolomon/tikz/polynom2.tex} + \caption{Polynom $p(x)$ von der Gleichung\eqref{reedsolomon:equation1}} \label{fig:polynom} \end{figure} -\section{Fehlerbestimmung -\label{reedsolomon:section:Fehlerbestimmmung}} -So wird ein Muster indentifiziert, welches genau vorherbestimmen kann, -wie gross das Polynom sein muss und wie viele Übertragungspunkte gegeben werden müssen. -Um zu bestimmen wie viel Fehler erkennt und korriegiert werden können. -Die Anzahl Zahlen (Daten, ab hier verwenden wir das Wort Nutzlast), -die Entschlüsselt werden sollen, brauchen die gleiche Anzahl an Polynomgraden, beginnend bei Grad 0. ( \( k-1 \) ) -Für die Anzahl an Übertragungspunkte, muss bestimmt werden wieviel Fehler erkennt und korrigiert werden sollen. -Mit Hilfe der Tabelle, sieht man das es bei $t$ Fehlern und $k$ Nutzlast Zahlen, -$k+2t$ Punkte übertragen werden müssen. +\section{Fehlerkorekturstellen bestimmen +\label{reedsolomon:section:Fehlerkorrekturstellen}} +Um zu bestimmen wieviel zusätzliche \textcolor{darkgreen}{Übertragungspunkte} notwendig sind, die dann Fehler korrigieren, +muss man zuerst Wissen wieviel \textcolor{blue}{Daten} gesendet und wieviel \textcolor{red}{Fehler} erkennt werden sollen. +Die Anzahl \textcolor{blue}{Daten} (ab hier verwenden wir das Wort Nutzlast), die als Polynomkoeffizente $k$ übergeben werden, +brauchen die gleiche Anzahl an Polynomgraden, beginnend bei Grad 0 somit ergibt sich der Polynomgrad mit $k-1$. +Für die Anzahl der Fehler $t$, welche korrigiert werden können, gehen wir zum Beispiel. +\begin{beispiel} von den Polynom \ref{reedsolomon:equation1} in, welchem wir 7 \textcolor{darkgreen}{Übertragungspunkte} senden. +Durch 3 Punkte wird das Polyom eindeutig bestimmt, nun haben wir mehrere Konkurenzpolynome, doch mit maximal 2 Fehler liegen auf einem Konkurenzpolynom, +maximal 4 Punkte und auf unserem orginal 5 Punkte. Ansonsten hatt es mehr Fehler oder unser Konkurenzpolynom ist das gleiche wie das Original. +Somit können wir nun bestimmen, dass von den \textcolor{darkgreen}{7 Übertragungspunkten$u$} bis zu 2 Fehler korrigiert werden können und 4 Übertragungspunkte zusätzlich gesendet werden müssen. +\end{beispiel} +Durch das erkennen des Schemas in der Tabelle\ref{tabel:fehlerkorrekturstellen} +\begin{equation} + \frac{\textcolor{darkgreen}{u}-\textcolor{blue}{k}}{\textcolor{red}{t}} + =2 + \label{reedsolomon:equation2} +\end{equation} +zeigt sich das es $k+2t$ Übertragungspunkte braucht. \begin{center} - \begin{tabular}{ c c c } + \begin{tabular}{ c c | c} \hline Nutzlas & Fehler & Übertragen \\ \hline @@ -84,12 +102,11 @@ $k+2t$ Punkte übertragen werden müssen. $k$ & $t$ & $k+2t$ Werte eines Polynoms vom Grad $k-1$ \\ \hline \end{tabular} + Fehlerkorrekturstellen Bestimmung TODO: Tabellenreferenz + \label{tabel:fehlerkorrekturstellen} \end{center} -Ein toller Nebeneffekt ist das dadurch auch $2t$ Fehler erkannt werden. -Um zurück auf unser Beispiel zu kommen, -können von den 7 Übertragungspunkten bis zu $2t = 2\cdot2 = 4 $ Punkten falsch liegen -und es wird kein eindeutiges Polynom zweiten Grades erkannt, und somit die Nutzlast Daten als fehlerhaft deklariert. +Ein Nebeneffekt ist das dadurch auch $2t$ Fehler erkannt werden können, nicht aber korrigiert. Um aus den Übertragenen Zahlen wieder die Nutzlastzahlen zu bekommen könnte man eine Polynominterpolation anwenden, doch die Punkte mit Polynominterpolation zu einem Polynom zu rekonstruieren ist schwierig und Fehleranfällig. diff --git a/buch/papers/reedsolomon/packages.tex b/buch/papers/reedsolomon/packages.tex index b84e228..40c6ea3 100644 --- a/buch/papers/reedsolomon/packages.tex +++ b/buch/papers/reedsolomon/packages.tex @@ -10,3 +10,5 @@ \usepackage{pgfplots} \usepackage{filecontents} +\usepackage{xr} + diff --git a/buch/papers/reedsolomon/standalone/standalone.pdf b/buch/papers/reedsolomon/standalone/standalone.pdf index a984f35..1f2f0b9 100644 Binary files a/buch/papers/reedsolomon/standalone/standalone.pdf and b/buch/papers/reedsolomon/standalone/standalone.pdf differ diff --git a/buch/papers/reedsolomon/tikz/polynom2.tex b/buch/papers/reedsolomon/tikz/polynom2.tex index 456e067..47dc679 100644 --- a/buch/papers/reedsolomon/tikz/polynom2.tex +++ b/buch/papers/reedsolomon/tikz/polynom2.tex @@ -29,9 +29,14 @@ \def\hellpunkt#1{ \fill[color=lightgray] #1 circle[radius=0.08]; - \draw #1 circle[radius=0.07]; + \draw[gray] #1 circle[ radius=0.07]; } + \draw[color=gray,line width=1pt,dashed] + plot[domain=0.5:7, samples=100] + ({\x},{(7.832*\x^2-51.5*\x+121.668)/\teiler}); + + \punkt{(1,8/\teiler)} \hellpunkt{(2,15/\teiler)} \hellpunkt{(3,26/\teiler)} @@ -40,9 +45,7 @@ \punkt{(6,83/\teiler)} \punkt{(7,110/\teiler)} - \draw[color=gray,line width=1pt,dashed] - plot[domain=0.5:7, samples=100] - ({\x},{(7.832*\x^2-51.5*\x+121.668)/\teiler}); + \def\erpunkt#1{ \fill[color=red] #1 circle[radius=0.08]; -- cgit v1.2.1 From e26cac3a7ed4957e7ed3cfae4f0fc2281e4b1514 Mon Sep 17 00:00:00 2001 From: tim30b Date: Wed, 28 Jul 2021 17:59:59 +0200 Subject: fix intro Kristalle --- buch/papers/punktgruppen/crystals.tex | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index 18b8395..88e683f 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -1,9 +1,7 @@ \section{Kristalle} -% TODO: einleitung sollte noch an das ende von der Symmetrie angepasst werden -% TODO: sich jeder => paper sprache -Unter dem Begriff Kristall sollte sich jeder ein Bild machen können. -Wir werden uns aber nicht auf sein Äusseres fokussieren, sondern was ihn im Inneren ausmacht. -Die Innereien eines Kristalles sind glücklicherweise relativ einfach definiert. +Eine nicht allzu häufig gestellte Frage ist, wie ein Kristall definiert ist. +Um zu klären, was ein Kristall mit Symmetrien zu tun hat, ist genau diese Frage äusserst relevant. +Glücklicherweise ist das Innere eines Kristalles relativ einfach definiert. \begin{definition}[Kristall] Ein Kristall besteht aus Atomen, welche sich in einem Muster arrangieren, welches sich in drei Dimensionen periodisch wiederholt. \end{definition} @@ -81,8 +79,7 @@ solange wir ein unendlich grosses Kristallgitter verschieben. An der neuen Position \(B\) von \(A'\) muss also auch ein Punkt des Gitters sein, um die Rotationssymmetrie zu erfüllen. \item \(B\) ist unser Name für diesen neuen Punkt. Da auch die Eigenschaften des Kristallgitters periodisch mit dem Gitter sein müssen, dürfen wir \(C_n\) auch auf \(A'\) anwenden. - Also wenden wir \(C_n\) invertiert\footnote{Eine Rotationssymmetrie muss auch in die inverse Richtung funktionieren.} - auch auf \(A'\) an. + Also wenden wir \(C_n^{-1}\) auch auf \(A'\) an. Dies dreht \(A\) auf einen neuen Punkt. \item \(B'\) ist kein zufälliger Name für diesen neuen Punkt, denn wir wissen, dass zwischen allen Punkten eine Translationssymmetrie bestehen muss. Die Translationssymmetrie zwischen \(B\) und \(B'\) ist hier als \(\vec{Q}'\) bezeichnet. -- cgit v1.2.1 From 4d8e9b6051dcd25c34b6270c1fc1938668e7df6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Wed, 28 Jul 2021 18:05:37 +0200 Subject: fix files broken by JODBaer pull request --- buch/papers/erdbeben/teil0.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'buch/papers') diff --git a/buch/papers/erdbeben/teil0.tex b/buch/papers/erdbeben/teil0.tex index c099340..c985713 100644 --- a/buch/papers/erdbeben/teil0.tex +++ b/buch/papers/erdbeben/teil0.tex @@ -74,7 +74,7 @@ Dazu wird ein Zustandsvektor definiert: \[ \left(\begin{array}{c} {s_1} \\ {s_2} \\ {f} \end{array}\right). \] -Durch Rücksubstituion ergibt sich uns folgende Systemgleichung in Matrix schreibweise, , wobei $\sot {s_1}= v$ ist: +Durch Rücksubstituion ergibt sich uns folgende Systemgleichung in Matrix schreibweise, , wobei $\dot {s_1}= v$ ist: \begin{equation} \frac{d}{dt} \left(\begin{array}{c} s(t) \\ v(t) \\ f(t) \end{array}\right) = \left( \begin{array}{ccc} -- cgit v1.2.1 From a69eeb70b01b71089c31fb23654d38898ae26f44 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Wed, 28 Jul 2021 18:06:44 +0200 Subject: Fix symmetry paragraph and schonflies symbols --- buch/papers/punktgruppen/crystals.tex | 10 +++++----- buch/papers/punktgruppen/symmetry.tex | 7 +++---- 2 files changed, 8 insertions(+), 9 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index 88e683f..21c322d 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -88,7 +88,7 @@ solange wir ein unendlich grosses Kristallgitter verschieben. Wir beginnen, indem wir die Länge der Verschiebung \(|\vec{Q}| = Q\) setzen und \(|\vec{Q}'| = Q'\). Aus Abbildung \ref{fig:punktgruppen:rot-geometry} ist ersichtlich, dass \(Q' = Q + 2x\). Da \(\vec{Q}\) eine Translation um ein Grundvektor ist , muss \(\vec{Q}'\) ein ganzes Vielfaches von \(\vec{Q}\) sein. - Demnach ist auch die Länge + Demnach auch die Länge \[ Q' = nQ = Q + 2x . \] @@ -140,7 +140,7 @@ Im vorausgegangenen Abschnitt wurde gezeigt, dass in einem zweidimensionalen Kri \subsubsection{Schönflies-Symbolik} -Jede der 32 Kristallklassen auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} ist mit ihrem zugehörigen Schöönflies-Symbol bezeichnet. +Jede der 32 Kristallklassen auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} ist mit ihrem zugehörigen Schönflies-Symbol bezeichnet. Die Schönflies-Symbolik stammt von dem Mathematiker Arthur Moritz Schönflies, welcher sich unter anderem mit der Klasifizierung der Punktgruppen auseinandergesetzt hat. Er hat Untergruppen gebildet, welche als Grossbuchstaben in Abbildung \ref{fig:punktgruppen:Kristallkassen} zu sehen sind. Da nicht alle Symmetriegruppen in Kristallen möglich sind, werden nicht alle Untergruppen von Schönflies verwendet. @@ -151,10 +151,10 @@ Jede der 32 Kristallklassen auf der Abbildung \ref{fig:punktgruppen:Kristallkass \item Dank Abschintt \ref{txt:punktgruppen:Translationssymmetrie} wissen wir, wieso auf \(C\) nur ganz bestimmte Subskripte folgen, weil das Subskript \(n\) von \(C_n\) zeigt, dass es sich um eine \(n\)-fache Rotationssymmetrie handelt. Daher darf \(C_5\) auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} nicht vorkommen darf, da \(360^\circ/5 = 72^\circ\) was nach Abschnitt \ref{txt:punktgruppen:Translationssymmetrie} in einem Kristall keine mögliche Rotationssymmetrie ist. \item Sind im Subskript Buchstaben, definieren diese weitere Symmetrieeigenschaften der Klasse. - Wie zum Beispiel ein Inversionszentrum\footnote{Ein Objekt mit Inversionszentrum ist Punktsymmetrisch im Inversionszentrum.} \(i\) oder eine horizontale\footnote{Als Orientierungspunkt wird die Symmetrieachse höchster Ordnung (\(n\)) als vertikal definiert} Spiegelachse \(h\). - \item Zu beachten ist jedoch, dass manche Symmetriegruppen mit mehreren Schönflies-Symbolen beschieben werden können. - \(C_{3i}\) beschreibt genau das selbe wie \(S_6\), da eine dreifache Rotationssymmetrie mit einem Inversionszentrum einer sechsfachen Drehspiegelsymmetrie entspricht. + Wie zum Beispiel ein Inversionszentrum \(i\) oder eine horizontale Spiegelachse \(h\). \end{itemize} +Zu beachten ist jedoch, dass manche Symmetriegruppen mit mehreren Schönflies-Symbolen beschieben werden können. + \(C_{3i}\) beschreibt genau das selbe wie \(S_6\), da eine dreifache Rotationssymmetrie mit einem Inversionszentrum einer sechsfachen Drehspiegelsymmetrie entspricht. diff --git a/buch/papers/punktgruppen/symmetry.tex b/buch/papers/punktgruppen/symmetry.tex index a5b2fe2..0805d8b 100644 --- a/buch/papers/punktgruppen/symmetry.tex +++ b/buch/papers/punktgruppen/symmetry.tex @@ -28,16 +28,15 @@ Als Beispiel, kann das Quadrat in Abbildung \ref{fig:punktgruppen:geometry-examp Fasst man die möglichen Symmetrien zusammen, entsteht eine Symmetriegruppe. \begin{definition}[Symmetriegruppe] - %% TODO - Seien \(g\) und \(h\) umkehrbare Operationen, die ein mathematisches Objekt unverändert lassen. + Seien \(g\) und \(h\) umkehrbare Operationen, die ein mathematisches Objekt unverändert lassen, sogenannte Symmetrieoperationen. Die Komposition \(h\circ g\) definieren wir als die Anwendung der Operationen nacheinander. Alle möglichen Symmetrieoperationen bilden unter Komposition eine Gruppe, die Symmetriegruppe genannt wird. \end{definition} Eine Gruppe benötigt ausserdem auch zwingend ein neutrales Element, welches wir mit \(\mathds{1}\) bezeichnen. Die Anwendung der neutralen Operation ist gleichbedeutend damit, alles unverändert zu lassen. -\(\mathds{1}\) ist auch äquivalent dazu, eine Operation anzuwenden und sie dann rückgängig zu machen (ihre Inverse anzuwenden). -%% TODO +Weiterhin muss in einer Gruppe für jede Operation \(g\) auch eine inverse Operation \(g^{-1}\) vorkommen, die intuitiv rückgängig macht, was \(g\) getan hat. +Somit ist \(\mathds{1}\) auch äquivalent dazu, eine Operation und dann ihre Inverse anzuwenden. Die Definition der Symmetriegruppe ist mit der Kompositionsoperation gegeben, sie wird aber auch oft als Multiplikation geschrieben. Das liegt daran, dass in manchen Fällen die Zusammensetzung algebraisch durch eine Multiplikation berechnet wird. Die Verwendung einer multiplikativen Schreibweise ermöglicht es, einige Ausdrücke kompakter zu schreiben, z.B. -- cgit v1.2.1 From 7c0959264d5f9ed56fc50f38fef859aa61671c5b Mon Sep 17 00:00:00 2001 From: tim30b Date: Wed, 28 Jul 2021 18:55:05 +0200 Subject: =?UTF-8?q?rewrite=20sch=C3=B6nflies=20first=20two=20points?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buch/papers/punktgruppen/crystals.tex | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index 21c322d..705dbe5 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -143,13 +143,11 @@ Im vorausgegangenen Abschnitt wurde gezeigt, dass in einem zweidimensionalen Kri Jede der 32 Kristallklassen auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} ist mit ihrem zugehörigen Schönflies-Symbol bezeichnet. Die Schönflies-Symbolik stammt von dem Mathematiker Arthur Moritz Schönflies, welcher sich unter anderem mit der Klasifizierung der Punktgruppen auseinandergesetzt hat. Er hat Untergruppen gebildet, welche als Grossbuchstaben in Abbildung \ref{fig:punktgruppen:Kristallkassen} zu sehen sind. - Da nicht alle Symmetriegruppen in Kristallen möglich sind, werden nicht alle Untergruppen von Schönflies verwendet. \begin{itemize} - \item Es ist nur die Drehgruppe \(C\), Diedergruppe \(D\), Drehspiegelgruppe \(S\), Tetraedergruppe \(T\) und die Oktaedergruppe \(O\). - Für die eindeutige zuweisung in eine Kristallklasse werden noch identifizierende Merkmale als Subskript notiert. - Bei der Untergruppe \(C\) werden beispielsweise die möglichen Rotationssymmetrien gezeigt. - \item Dank Abschintt \ref{txt:punktgruppen:Translationssymmetrie} wissen wir, wieso auf \(C\) nur ganz bestimmte Subskripte folgen, weil das Subskript \(n\) von \(C_n\) zeigt, dass es sich um eine \(n\)-fache Rotationssymmetrie handelt. - Daher darf \(C_5\) auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} nicht vorkommen darf, da \(360^\circ/5 = 72^\circ\) was nach Abschnitt \ref{txt:punktgruppen:Translationssymmetrie} in einem Kristall keine mögliche Rotationssymmetrie ist. + \item In Kristallen ist nur die Drehgruppe \(C\), Diedergruppe \(D\), Drehspiegelgruppe \(S\), Tetraedergruppe \(T\) und die Oktaedergruppe \(O\) zu finden. + Es gäbe auch die Ikosaedergruppe \(I\) und die Kugelgruppe \(K\), diese sind aber nicht kompatibel mit der Translationssymmetrie eines Kristalles. + \item Dank Abschintt \ref{txt:punktgruppen:Translationssymmetrie} wissen wir, wieso in Abbildung \ref{fig:punktgruppen:Kristallkassen} auf \(C\) nur ganz bestimmte Subskripte folgen. Ist im Subskript eine Zahl \(n\) zu finden, symbolisiert \(n\), dass es sich um eine \(n\)-fache Symmetrie handelt. + Daher darf \(C_5\) auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} nicht vorkommen darf, da \(360^\circ/5 = 72^\circ\) was nach Abschnitt \ref{txt:punktgruppen:Translationssymmetrie} keine mögliche Rotationssymmetrie eines Kristalles ist. \item Sind im Subskript Buchstaben, definieren diese weitere Symmetrieeigenschaften der Klasse. Wie zum Beispiel ein Inversionszentrum \(i\) oder eine horizontale Spiegelachse \(h\). \end{itemize} -- cgit v1.2.1 From f2fdb2ec6ebef72d604e1919f6fe76b1158a308b Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Wed, 28 Jul 2021 18:55:35 +0200 Subject: Wrong schonflies symbol in stereographic projections --- buch/papers/punktgruppen/figures/projections.pdf | Bin 26440 -> 27957 bytes buch/papers/punktgruppen/tikz/projections.tex | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/figures/projections.pdf b/buch/papers/punktgruppen/figures/projections.pdf index bc04313..9dc3796 100644 Binary files a/buch/papers/punktgruppen/figures/projections.pdf and b/buch/papers/punktgruppen/figures/projections.pdf differ diff --git a/buch/papers/punktgruppen/tikz/projections.tex b/buch/papers/punktgruppen/tikz/projections.tex index 64ab468..e8a4a2e 100644 --- a/buch/papers/punktgruppen/tikz/projections.tex +++ b/buch/papers/punktgruppen/tikz/projections.tex @@ -44,7 +44,7 @@ \node[classcirc] (C2h) {} node[classlabel] {\(C_{2h}\)}; & \node[classcirc] (D2) {} node[classlabel] {\(D_{2}\)}; \\ - \node[classcirc] (D3d) {} node[classlabel] {\(D_{3d}\)}; & + \node[classcirc] (D3d) {} node[classlabel] {\(C_{3v}\)}; & \node[classcirc] (C2v) {} node[classlabel] {\(C_{2v}\)}; & \node[classcirc] (D2h) {} node[classlabel] {\(D_{2h}\)}; & \node[classcirc] (D3) {} node[classlabel] {\(D_{3}\)}; & -- cgit v1.2.1 From b7c2d5a19112e5bb5859797bd36c982f1ac2116a Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Wed, 28 Jul 2021 18:56:33 +0200 Subject: On subscripts --- buch/papers/punktgruppen/crystals.tex | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index 21c322d..ae48b0a 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -21,7 +21,7 @@ Die eingezeichneten Vektoren \(\vec{a}_1\) und \(\vec{a}_2\) sind die kleinstmö Wird ein beliebiger grauer Gitterpunkt in \ref{fig:punktgruppen:lattice} gewählt und um eine ganzzahlige Linearkombination von \(\vec{a}_1\) und \(\vec{a}_2\) verschoben, endet er zwangsweise auf einem Gitterpunkt, wenn nicht wieder am selben Ort. Im dreidimensionalen Raum können alle Gitterpunkte mit derselben Idee und einem zusätzlichen Vektor \(\vec{c}\) also \[ - \vec{r} = n_1 \vec{a}_1 + n_2 \vec{a}_2 + n_3 \vec{a}_3 = \sum_i n_i \vec{a}_i + \vec{r} = n_1 \vec{a}_1 + n_2 \vec{a}_2 + n_3 \vec{a}_3 = \sum_i n_i \vec{a}_i \] erreicht werden sofern \(n_1,n_2,n_3 \in \mathbb{Z}\) sind. Sind die Vektoren \(\vec{a}_1\), \(\vec{a}_2\), \(\vec{a}_3\) gegeben, ist ein Kristallgitter eindeutig beschrieben, weswegen sie auch als Grundvektoren bekannt sind. @@ -151,7 +151,10 @@ Jede der 32 Kristallklassen auf der Abbildung \ref{fig:punktgruppen:Kristallkass \item Dank Abschintt \ref{txt:punktgruppen:Translationssymmetrie} wissen wir, wieso auf \(C\) nur ganz bestimmte Subskripte folgen, weil das Subskript \(n\) von \(C_n\) zeigt, dass es sich um eine \(n\)-fache Rotationssymmetrie handelt. Daher darf \(C_5\) auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} nicht vorkommen darf, da \(360^\circ/5 = 72^\circ\) was nach Abschnitt \ref{txt:punktgruppen:Translationssymmetrie} in einem Kristall keine mögliche Rotationssymmetrie ist. \item Sind im Subskript Buchstaben, definieren diese weitere Symmetrieeigenschaften der Klasse. - Wie zum Beispiel ein Inversionszentrum \(i\) oder eine horizontale Spiegelachse \(h\). + \begin{itemize} + \item Der Subskript \(h\) bezeichnet eine horizontale Spiegelebene, während \(v\) eine Symmetrieebene. Eine Symmetrieebene ist eine Spiegelebene, die sich mit der Symmetrie dreht. \(C_{3v}\) hat zum Beispiel eine vertikale Spiegelebene, die als 3 Spiegelebenen erscheint, weil es eine 3-fache Drehung gibt. + \item + \end{itemize} \end{itemize} Zu beachten ist jedoch, dass manche Symmetriegruppen mit mehreren Schönflies-Symbolen beschieben werden können. \(C_{3i}\) beschreibt genau das selbe wie \(S_6\), da eine dreifache Rotationssymmetrie mit einem Inversionszentrum einer sechsfachen Drehspiegelsymmetrie entspricht. -- cgit v1.2.1 From 0bf83875f83587d3a36ddfb1e6c1b65c9ccf4855 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Wed, 28 Jul 2021 20:03:32 +0200 Subject: Subscripts for schoenflies notation --- buch/papers/punktgruppen/crystals.tex | 26 +++++++++++++++-------- buch/papers/punktgruppen/figures/projections.pdf | Bin 27957 -> 27957 bytes 2 files changed, 17 insertions(+), 9 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index befdb46..ce09063 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -127,7 +127,7 @@ ein. Im vorausgegangenen Abschnitt wurde gezeigt, dass in einem zweidimensionalen Kristallgitter nicht alle Symmetrien möglich sind. Mit weiteren ähnlichen Überlegungen kann gezeigt werden, dass Kristalle im dreidimensionalen Raum nur auf genau 32 Arten rein punktsymmetrische Symmetriegruppen bilden können. Diese 32 möglichen Symmetriegruppen scheinen durchaus relevant zu sein, denn sie werden unter anderem als Kristallklassen bezeichnet. - Die 32 möglichen Kristallklassen sind auf Abbildung \ref{fig:punktgruppen:Kristallkassen} zu sehen. + Die 32 möglichen Kristallklassen sind auf Abbildung \ref{fig:punktgruppen:kristallklassen} zu sehen. Die Darstellung von dreidimensionalen Punktsymmetrien wurde mit der stereographischen Projektion ermöglicht (siehe Abbildung \ref{fig:punktgruppen:stereographic-projections}), wobei die gestrichelten Klassen aus Gründen der Überschaubarkeit nicht im Detail gezeichnet wurden. @@ -135,23 +135,31 @@ Im vorausgegangenen Abschnitt wurde gezeigt, dass in einem zweidimensionalen Kri \centering \includegraphics[]{papers/punktgruppen/figures/projections} \caption{Kristallklassen mit zugehörigem Schönflies-Symbol} - \label{fig:punktgruppen:Kristallkassen} + \label{fig:punktgruppen:kristallklassen} \end{figure} \subsubsection{Schönflies-Symbolik} -Jede der 32 Kristallklassen auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} ist mit ihrem zugehörigen Schönflies-Symbol bezeichnet. +Jede der 32 Kristallklassen auf der Abbildung \ref{fig:punktgruppen:kristallklassen} ist mit ihrem zugehörigen Schönflies-Symbol bezeichnet. Die Schönflies-Symbolik stammt von dem Mathematiker Arthur Moritz Schönflies, welcher sich unter anderem mit der Klasifizierung der Punktgruppen auseinandergesetzt hat. - Er hat Untergruppen gebildet, welche als Grossbuchstaben in Abbildung \ref{fig:punktgruppen:Kristallkassen} zu sehen sind. + Er hat Untergruppen gebildet, welche als Grossbuchstaben in Abbildung \ref{fig:punktgruppen:kristallklassen} zu sehen sind. \begin{itemize} \item In Kristallen ist nur die Drehgruppe \(C\), Diedergruppe \(D\), Drehspiegelgruppe \(S\), Tetraedergruppe \(T\) und die Oktaedergruppe \(O\) zu finden. - Es gäbe auch die Ikosaedergruppe \(I\) und die Kugelgruppe \(K\), diese sind aber nicht kompatibel mit der Translationssymmetrie eines Kristalles. - \item Dank Abschintt \ref{txt:punktgruppen:Translationssymmetrie} wissen wir, wieso in Abbildung \ref{fig:punktgruppen:Kristallkassen} auf \(C\) nur ganz bestimmte Subskripte folgen. Ist im Subskript eine Zahl \(n\) zu finden, symbolisiert \(n\), dass es sich um eine \(n\)-fache Symmetrie handelt. - Daher darf \(C_5\) auf der Abbildung \ref{fig:punktgruppen:Kristallkassen} nicht vorkommen darf, da \(360^\circ/5 = 72^\circ\) was nach Abschnitt \ref{txt:punktgruppen:Translationssymmetrie} keine mögliche Rotationssymmetrie eines Kristalles ist. + Es gäbe auch die Ikosaedergruppe \(I\) und die Kugelgruppe \(K\), diese sind aber nicht kompatibel mit der Translationssymmetrie eines Kristalles und daher für uns nicht relevant. + \item Dank Abschintt \ref{txt:punktgruppen:Translationssymmetrie} wissen wir, wieso in Abbildung \ref{fig:punktgruppen:kristallklassen} auf \(C\) nur ganz bestimmte Subskripte folgen. + Ist im Subskript eine Zahl \(n\) zu finden, steht dies für eine \(n\)-fache Symmetrie. + Daher darf \(C_5\) auf der Abbildung \ref{fig:punktgruppen:kristallklassen} nicht vorkommen darf, da \(360^\circ/5 = 72^\circ\) was nach Abschnitt \ref{txt:punktgruppen:Translationssymmetrie} keine mögliche Rotationssymmetrie eines Kristalles ist. \item Sind im Subskript Buchstaben, definieren diese weitere Symmetrieeigenschaften der Klasse. + Für die folgenden Betrachtungen müssen wir uns Abbildung \ref{fig:punktgruppen:kristallklassen} genauer ansehen. + Dabei ist mit horizontal flach auf dem Papier gemeint. \begin{itemize} - \item Der Subskript \(h\) bezeichnet eine horizontale Spiegelebene, während \(v\) eine Symmetrieebene. Eine Symmetrieebene ist eine Spiegelebene, die sich mit der Symmetrie dreht. \(C_{3v}\) hat zum Beispiel eine vertikale Spiegelebene, die als 3 Spiegelebenen erscheint, weil es eine 3-fache Drehung gibt. - \item + \item[\(h\)] bezeichnet eine horizontale Spiegelebene und + \item[\(v\)] eine Symmetrieebene, was eine Spiegelebene ist, die sich mit der Symmetrie mitdreht. + Zum Beispiel hat \(C_{3v}\) eine vertikale Spiegelebene, die durch die 3-fache Drehsymmetrie als 3 Spiegelebenen erscheinen. + \item[\(s\)] ist ein spezielles Subskript um die beiden Symmetriegruppen \(C_{1v}\) und \(C_{1h}\) zu beschreiben, weil \(C_{1v} = C_{1h}\). + \item[\(d\)] symbolisiert eine diagonale Symmetrieebene. + Es wird ersichtlich wie diagonal gemeint ist, wenn man \(D_2\) zu \(D_{2d}\) vergleicht. + \item[\(i\)] steht für ein Inversionszentrum. Hat eine Symmetriegruppe ein Inversionszentrum, bedeutet dies dass sie im Ursprung punktsymmetrisch ist. \end{itemize} \end{itemize} Zu beachten ist jedoch, dass manche Symmetriegruppen mit mehreren Schönflies-Symbolen beschieben werden können. diff --git a/buch/papers/punktgruppen/figures/projections.pdf b/buch/papers/punktgruppen/figures/projections.pdf index 9dc3796..202fc8d 100644 Binary files a/buch/papers/punktgruppen/figures/projections.pdf and b/buch/papers/punktgruppen/figures/projections.pdf differ -- cgit v1.2.1 From 5c9bc9221d54daecf885b8e66286a5f13406e47b Mon Sep 17 00:00:00 2001 From: Pascal Schmid <81317360+paschost@users.noreply.github.com> Date: Wed, 28 Jul 2021 20:27:50 +0200 Subject: Diverse Anpassungen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Typos - Integration von Formeln in Sätze - \dot zu \dots --- buch/papers/verkehr/section1.tex | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/verkehr/section1.tex b/buch/papers/verkehr/section1.tex index 416e311..6ac86ad 100644 --- a/buch/papers/verkehr/section1.tex +++ b/buch/papers/verkehr/section1.tex @@ -84,15 +84,15 @@ Grundsätzlich setzt sich der PageRank Algorithmus mit der Fragestellung auseina -Für ungerichtete Graphen mit $n$ Knoten gilt \begin{equation}A_{i,j}=A_{j,i}\end{equation} und weiter \begin{equation}A_{i,i}=0\quad\forall i\in \left\{1\dot n\right\}\end{equation} +Für ungerichtete Graphen mit $n$ Knoten gilt \begin{equation}A_{i,j}=A_{j,i}\end{equation} und weiter \begin{equation}A_{i,i}=0\quad\forall i\in \left\{1\dots n\right\}\end{equation} Beim PageRank-Algorithmus wird eine abgewandelte Form der Adjazenz-Matrix verwendet. -Dabei werden die Matrix-Einträge spaltenweise durch die jeweilige Spaltensumme geteilt. -\[ P_{i,j}=\frac{A_{i,j}}{\sum_{i=1}^{n}A_{i,j}} \] +Dabei werden die Matrix-Einträge spaltenweise durch die jeweilige Spaltensumme geteilt: +\( P_{i,j}=\frac{A_{i,j}}{\sum_{i=1}^{n}A_{i,j}} \) Anschliessend multipliziert man diese Matrix $P$ mit einem Spaltenvektor $\Vec{r_0}$ mit $n$ Einträgen, für welchen gilt: -\[ \Vec{r_0}(i) = \frac{1}{n} \quad\forall i\in \left\{1\dot n\right\} \] +\( \Vec{r_0}(i) = \frac{1}{n} \quad\forall i\in \left\{1\dots n\right\} \) Dieser Vektor stellt ein neutrales Ranking dar. Alle Knoten werden gleich gewichtet. -Dadurch erhält man wiederum einen $n$-zeiligen Spaltenvektor $\Vec{r_1}$, der das ``erste" Ranking darstellt. Durch Multiplikation der ursprünglichen Matrix $P$ mit dem 1. Ranking-Vektor $\Vec{r_1}$ wird auf Basis des ersten Rankings ein zweites erstellt. -\[ \Vec{r_2} = P\cdot\Vec{r_1} = P\cdot(P\cdot\Vec{r_0}) = P^2\cdot\Vec{r_0}\] -somit -\begin{equation} \Vec{r_i} = P^i\cdot\Vec{r_0}\end{equation} +Dadurch erhält man wiederum einen $n$-zeiligen Spaltenvektor $\Vec{r_1}$, der das ``erste'' Ranking darstellt. Durch Multiplikation der ursprünglichen Matrix $P$ mit dem 1. Ranking-Vektor $\Vec{r_1}$ wird auf Basis des ersten Rankings ein zweites erstellt: +\( \Vec{r_2} = P\cdot\Vec{r_1} = P\cdot(P\cdot\Vec{r_0}) = P^2\cdot\Vec{r_0}\) +und somit allgemein: +\( \Vec{r_i} = P^i\cdot\Vec{r_0}\) Der Vektor $\Vec{r_i}$ konvergiert zu einem Eigenvektor von $P$ der das abschliessende Ranking darstellt. -- cgit v1.2.1 From 98e861762b2c70c04209f88222e8d5ff3437eb91 Mon Sep 17 00:00:00 2001 From: tim30b Date: Wed, 28 Jul 2021 22:13:15 +0200 Subject: small adjustments in intro --- buch/papers/punktgruppen/intro.tex | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/intro.tex b/buch/papers/punktgruppen/intro.tex index b6a72b5..7b3c6e3 100644 --- a/buch/papers/punktgruppen/intro.tex +++ b/buch/papers/punktgruppen/intro.tex @@ -1,6 +1,6 @@ \section{Einleitung} Es gibt viele Möglichkeiten sich in Kristallen zu verlieren. -Auch wen man nur die mathematischen Betrachtungsweisen berücksichtigt, +Auch wenn man nur die mathematischen Betrachtungsweisen berücksichtigt, hat man noch viel zu viele Optionen sich mit Kristallen zu beschäftigen. In diesem Kapitel wird daher der Fokus ``nur'' auf die Symmetrie gelegt. Zu Beginn werden wir zeigen was eine Symmetrie ausmacht und @@ -15,9 +15,9 @@ und sich kategorisieren lassen. Kategorien sind nicht nur für einen besseren Überblick nützlich, sondern kann man aus ihnen auch auf Physikalische Eigenschaften schliessen. Als spannendes Beispiel: Die Piezoelektrizität. -Die Piezoelektrizität ist vielleicht noch nicht jedem bekannt, -sie versteckt sich aber in diversen Altagsgegenständen -zum Beispiel sorgen sie in den meisten Feuerzeugen für die Zündung. +Piezoelektrizität ist kein weit verbreiteter Begriff, +jedoch beschreibt er ein Effekt, ohne welchen diverse Altagsgegenständen nicht besonders nützlich wären. +Wie zum Beispiel sorgen er in den allermeisten Feuerzeugen für die Zündung. Hiermit ist hoffentlich ein Funken Interesse geweckt um sich mit dem scheinbar trivialen Thema der Symmetrie auseinander zu setzten. -- cgit v1.2.1 From c17aee47f007b102c81cafa36cb307069612f185 Mon Sep 17 00:00:00 2001 From: tim30b Date: Thu, 29 Jul 2021 09:41:20 +0200 Subject: small rewrites in Kristalle --- buch/papers/punktgruppen/crystals.tex | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/crystals.tex b/buch/papers/punktgruppen/crystals.tex index ce09063..42008e1 100644 --- a/buch/papers/punktgruppen/crystals.tex +++ b/buch/papers/punktgruppen/crystals.tex @@ -1,6 +1,6 @@ \section{Kristalle} Eine nicht allzu häufig gestellte Frage ist, wie ein Kristall definiert ist. -Um zu klären, was ein Kristall mit Symmetrien zu tun hat, ist genau diese Frage äusserst relevant. +Um zu klären, was ein Kristall mit Symmetrien zu tun hat, ist jedoch genau diese Frage äusserst relevant. Glücklicherweise ist das Innere eines Kristalles relativ einfach definiert. \begin{definition}[Kristall] Ein Kristall besteht aus Atomen, welche sich in einem Muster arrangieren, welches sich in drei Dimensionen periodisch wiederholt. @@ -36,14 +36,13 @@ Mit anderen Worten: Jedes Kristallgitter $ G $ ist \emph{translationssymmetrisch wobei der Vektor $\vec{a}_i$ ein Grundvektor sein muss. Da die Translationssymmetrie beliebig oft mit allen Grundvektoren angewendet werden kann, können wir auch sagen, dass alle Verschiebungen um eine Linearkombination -der Vektoren $\vec{a}_1$ , $\vec{a}_2$ und $\vec{a}_3$ erlaubt sind oder kurz, um $\vec{r}$. -Verschiebungen um $\vec{r}$ bewirken demnach keine Veränderungen, -solange wir ein unendlich grosses Kristallgitter verschieben. +der Vektoren $\vec{a}_1$ , $\vec{a}_2$ und $\vec{a}_3$ erlaubt sind. +Dabei sollte erwähnt werden, dass eine Translationssymmetrie nur in unendlich grossen Kristallgittern besteht. \subsection{Limitierte Kristallsymmetrien} \label{txt:punktgruppen:Translationssymmetrie} Die Translationssymmetrie ist wohl keine grosse Überraschung, wenn man die Abbildung \ref{fig:punktgruppen:lattice} betrachtet. - Was nicht direkt ersichtlich ist, dass bei beliebigen Grundvektoren nicht beliebige Symmetrien erstellt werden können. - Die geforderte Translationssymmetrie eines Kristalles schränkt weitere Symmetrien deutlich ein. + Was nicht direkt ersichtlich ist, ist dass bei beliebigen Grundvektoren nicht beliebige Symmetrien erstellt werden können. + Dies weil die Translationssymmetrie eines Kristalles weitere Symmetrien deutlich einschränkt. \begin{figure} \centering @@ -145,10 +144,10 @@ Jede der 32 Kristallklassen auf der Abbildung \ref{fig:punktgruppen:kristallklas Er hat Untergruppen gebildet, welche als Grossbuchstaben in Abbildung \ref{fig:punktgruppen:kristallklassen} zu sehen sind. \begin{itemize} \item In Kristallen ist nur die Drehgruppe \(C\), Diedergruppe \(D\), Drehspiegelgruppe \(S\), Tetraedergruppe \(T\) und die Oktaedergruppe \(O\) zu finden. - Es gäbe auch die Ikosaedergruppe \(I\) und die Kugelgruppe \(K\), diese sind aber nicht kompatibel mit der Translationssymmetrie eines Kristalles und daher für uns nicht relevant. + Es gäbe auch die Ikosaedergruppe \(I\) und die Kugelgruppe \(K\), diese sind aber nicht kompatibel mit der Translationssymmetrie eines Kristalles und daher in der Kristallographie nicht relevant. \item Dank Abschintt \ref{txt:punktgruppen:Translationssymmetrie} wissen wir, wieso in Abbildung \ref{fig:punktgruppen:kristallklassen} auf \(C\) nur ganz bestimmte Subskripte folgen. Ist im Subskript eine Zahl \(n\) zu finden, steht dies für eine \(n\)-fache Symmetrie. - Daher darf \(C_5\) auf der Abbildung \ref{fig:punktgruppen:kristallklassen} nicht vorkommen darf, da \(360^\circ/5 = 72^\circ\) was nach Abschnitt \ref{txt:punktgruppen:Translationssymmetrie} keine mögliche Rotationssymmetrie eines Kristalles ist. + Daher darf \(C_5\) auf der Abbildung \ref{fig:punktgruppen:kristallklassen} nicht vorkommen, da \(360^\circ/5 = 72^\circ\) was nach Abschnitt \ref{txt:punktgruppen:Translationssymmetrie} keine mögliche Rotationssymmetrie eines Kristalles ist. \item Sind im Subskript Buchstaben, definieren diese weitere Symmetrieeigenschaften der Klasse. Für die folgenden Betrachtungen müssen wir uns Abbildung \ref{fig:punktgruppen:kristallklassen} genauer ansehen. Dabei ist mit horizontal flach auf dem Papier gemeint. -- cgit v1.2.1 From f2fde7d2b5abf7c11cd7dc1535b0db64a2e84ffd Mon Sep 17 00:00:00 2001 From: tim30b Date: Thu, 29 Jul 2021 09:42:42 +0200 Subject: rewrite small things in intro & symmetry --- buch/papers/punktgruppen/intro.tex | 2 +- buch/papers/punktgruppen/symmetry.tex | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/intro.tex b/buch/papers/punktgruppen/intro.tex index 7b3c6e3..1293234 100644 --- a/buch/papers/punktgruppen/intro.tex +++ b/buch/papers/punktgruppen/intro.tex @@ -17,7 +17,7 @@ sondern kann man aus ihnen auch auf Physikalische Eigenschaften schliessen. Als spannendes Beispiel: Die Piezoelektrizität. Piezoelektrizität ist kein weit verbreiteter Begriff, jedoch beschreibt er ein Effekt, ohne welchen diverse Altagsgegenständen nicht besonders nützlich wären. -Wie zum Beispiel sorgen er in den allermeisten Feuerzeugen für die Zündung. +Wie zum Beispiel sorgt er in den allermeisten Feuerzeugen für die Zündung. Hiermit ist hoffentlich ein Funken Interesse geweckt um sich mit dem scheinbar trivialen Thema der Symmetrie auseinander zu setzten. diff --git a/buch/papers/punktgruppen/symmetry.tex b/buch/papers/punktgruppen/symmetry.tex index 0805d8b..6aeeb85 100644 --- a/buch/papers/punktgruppen/symmetry.tex +++ b/buch/papers/punktgruppen/symmetry.tex @@ -22,20 +22,20 @@ Wie wir jedoch später sehen werden, ist das Konzept der Symmetrie eigentlich vi In Abbildung \ref{fig:punktgruppen:geometry-example} haben wir einige Formen, die offensichtlich symmetrisch sind. Zum Beispiel hat das Quadrat eine Gerade, an deren es gespiegelt werden kann, ohne sein Aussehen zu verändern. Regelmässige Polygone mit \(n\) Seiten sind auch gute Beispiele, um eine diskrete Rotationssymmetrie zu veranschaulichen, was bedeutet, dass eine Drehung um einen Punkt um einen bestimmten Winkel \(360^\circ/n\) die Figur unverändert lässt. -Das letzte Beispiel auf der rechten Seite ist eine unendliche Rotationssymmetrie. Sie wird so genannt, weil es unendlich viele Werte für den Drehwinkel \(\alpha \in \mathbb{R}\) gibt, der die Form unverändert lassen. +Das letzte Beispiel auf der rechten Seite ist eine unendliche Rotationssymmetrie. Sie wird so genannt, weil es unendlich viele Werte für den Drehwinkel \(\alpha \in \mathbb{R}\) gibt, die die Form unverändert lassen. Ein Objekt kann mehr als nur eine Symmetrie aufweisen. Als Beispiel, kann das Quadrat in Abbildung \ref{fig:punktgruppen:geometry-example} nicht nur um \(\sigma\) sondern auch diagonal gespiegelt werden oder um \(90^\circ\) gedreht werden. Fasst man die möglichen Symmetrien zusammen, entsteht eine Symmetriegruppe. \begin{definition}[Symmetriegruppe] - Seien \(g\) und \(h\) umkehrbare Operationen, die ein mathematisches Objekt unverändert lassen, sogenannte Symmetrieoperationen. + Seien \(g\) und \(h\) umkehrbare Operationen, sogenannte Symmetrieoperationen, die ein mathematisches Objekt unverändert lassen. Die Komposition \(h\circ g\) definieren wir als die Anwendung der Operationen nacheinander. Alle möglichen Symmetrieoperationen bilden unter Komposition eine Gruppe, die Symmetriegruppe genannt wird. \end{definition} Eine Gruppe benötigt ausserdem auch zwingend ein neutrales Element, welches wir mit \(\mathds{1}\) bezeichnen. Die Anwendung der neutralen Operation ist gleichbedeutend damit, alles unverändert zu lassen. -Weiterhin muss in einer Gruppe für jede Operation \(g\) auch eine inverse Operation \(g^{-1}\) vorkommen, die intuitiv rückgängig macht, was \(g\) getan hat. +Weiterhin muss in einer Gruppe für jede Operation \(g\) auch eine inverse Operation \(g^{-1}\) vorkommen, die intuitiv rückgängig macht, was \(g\) getan hat. % intuitiv weglassen oder anstelle sinnbildlich Somit ist \(\mathds{1}\) auch äquivalent dazu, eine Operation und dann ihre Inverse anzuwenden. Die Definition der Symmetriegruppe ist mit der Kompositionsoperation gegeben, sie wird aber auch oft als Multiplikation geschrieben. Das liegt daran, dass in manchen Fällen die Zusammensetzung algebraisch durch eine Multiplikation berechnet wird. @@ -64,15 +64,16 @@ durch Verwendung von Potenzen \(r^n = r\circ r \circ \cdots r\circ r\) für eine In ähnlicher Weise, aber weniger interessant enthält die Reflexionssymmetriegruppe \(\langle\sigma\rangle\) nur \(\left\{\mathds{1}, \sigma\right\}\), weil \(\sigma^2 = \mathds{1}\). \end{beispiel} -Wenn wir diese Idee nun erweitern, können wir mit einem Erzeugendensystemen +Wenn wir diese Idee nun erweitern, können wir mit einem Erzeugendensystem komplexere Strukturen aufbauen. +%TODO kontroliere alle erzeugendensystem ich glaube es hatt noch en fall fehler ich weiss nicht wie das wort genau definiert ist \begin{definition}[Erzeugendensysteme] Jede disktrete Gruppe kann durch eines oder mehrere ihrer Elemente generiert werden. Wir lassen \(g_1, g_2, \ldots, g_n\) erzeugenden Elemente einer Symmetriegruppe sein. - Da es mehrere Erzeuger gibt, müssen auch die sogenannte Definitionsgleichungen gegeben werden, die die Multiplikationstabelle vollständig definieren. + Da es mehrere Erzeuger gibt, müssen auch die sogenannten Definitionsgleichungen gegeben werden, die die Multiplikationstabelle vollständig definieren. Die Gleichungen sind ebenfalls in den Klammern angegeben. - Die erzeugende Elementen zusammen mit der Definitionsgleichungen bauen ein Erzeugendensysteme. + Die erzeugenden Elementen bauen zusammen mit den Definitionsgleichungen ein Erzeugendensysteme. \end{definition} \begin{beispiel} Wir werden nun alle Symmetrien eines \(n\)-Gons beschreiben, was bedeutet, dass wir die Operationen \(r\) und \(\sigma\) kombinieren. -- cgit v1.2.1 From 58cd49c22e5eea9f72bbe648a13e2e149c131ea7 Mon Sep 17 00:00:00 2001 From: tim30b Date: Thu, 29 Jul 2021 10:46:38 +0200 Subject: rewrite minor things in Piezo --- buch/papers/punktgruppen/piezo.tex | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/piezo.tex b/buch/papers/punktgruppen/piezo.tex index 67e6214..6ed7ee9 100644 --- a/buch/papers/punktgruppen/piezo.tex +++ b/buch/papers/punktgruppen/piezo.tex @@ -12,9 +12,9 @@ Die Piezoelektrizität ist die spannende Eigenschaft, dass gewisse Kristalle ein \subsection{Polarisierung} Piezoelektrizität basiert darauf, dass zwischen den Oberflächen des Kristalles ein Ladungsungleichgewicht entsteht (siehe Abbildung\ref{fig:punktgruppen:basicPiezo}). Dieses Ungleichgewicht resultiert, -weil durch den mechanischen Druck auf der einen Oberfläche des Kristalles positiv Ionen näher an die Oberfläche gelangen, -wärend auf der gegenüberliegenden Oberfläche sich mehr negative Ionen sammeln. -Das sich die atomare Struktur eines Kristalles unter Druck genau so verformt ist nicht bei jedem Kristall gegeben. +weil durch den mechanischen Druck auf der einen Oberfläche des Kristalles positive Ionen näher an die Oberfläche gelangen, +wärend auf der gegenüberliegenden Seite dasselbe mit negativen Ionen passiert. +Es besitzt jedoch nicht jeder Kristall eine atomare Struktur welche sich unter Druck genau so verformt. Der Aufbau und somit auch die Symmetrie des Kristalles sind daher relevant für die Entstehung dieses Effektes. \begin{figure} @@ -35,35 +35,35 @@ Der Aufbau und somit auch die Symmetrie des Kristalles sind daher relevant für \end{figure} \subsection{Atomarer Aufbau} -Die Polarisation resultiert über eine gesamte Oberfläche eines Kristalles, entscheidend ist aber der atomare Aufbau. +Die Polarisation entsteht an der Oberfläche eines Kristalles, die Erklärung dazu finden wir jedoch im atomaren Aufbau. Wir wollen dazu die verschiedenen Kristallstrukturen auf Abbildung \ref{fig:punktgruppen:atomPiezo} diskutieren. In Abbildung \ref{fig:punktgruppen:atomPiezo} gilt für alle Strukturen, dass rote Kreise positive Ionen und blaue negative Ionen repräsentieren. Struktur \subref{fig:punktgruppen:atoms-piezo} zeigt ein piezoelektrisches Material in Ruhe. Struktur \subref{fig:punktgruppen:atoms-piezo-fv} ist dasselbe Kristallgitter, jedoch wird es senkrecht belastet. -Eingezeichnet ist auch das elektrische Feld, welches entsteht, weil die mittleren Ladungsträger weiter auseinander gedrückt werden. +Eingezeichnet ist auch das elektrische Feld, welches entsteht, weil die Ladungsträger ganz links und rechts weiter auseinander gedrückt werden. Als Hilfe zur Vorstellung kann man \subref{fig:punktgruppen:atoms-piezo-fv} zwischen zwei leitende Platten setzen, so wird ersichtlich, dass mit wachsendem Druck eine negative Ladung an die rechte Platte gedrückt wird, während sich die positiven Ionen weiter entfernen. \par -\subref{fig:punktgruppen:atoms-grid} ist nicht piezoelektrisch. +Die Struktur \subref{fig:punktgruppen:atoms-grid} ist nicht piezoelektrisch. Dies wird ersichtlich, wenn man \subref{fig:punktgruppen:atoms-grid} unter Druck setzt und sich die Struktur zu \subref{fig:punktgruppen:atoms-grid-f} verformt. Setzt man \subref{fig:punktgruppen:atoms-grid-f} gedanklich auch zwischen zwei leitende Platten, scheint es als würden rechts mehr positive Ionen in die Platte gedrückt werden und links umgekehrt. -Dies ist aber nicht mehr der Fall, wenn die Struktur sich nach oben und unten periodisch wiederholt. -Struktur \subref{fig:punktgruppen:atoms-piezo-fh} zeigt \subref{fig:punktgruppen:atoms-piezo} in unter horizontaler Belastung. +Dies ist aber nicht mehr der Fall, wenn sich die Struktur nach oben und unten periodisch wiederholt. \par +Struktur \subref{fig:punktgruppen:atoms-piezo-fh} zeigt \subref{fig:punktgruppen:atoms-piezo} in unter horizontaler Belastung. Was zwischen \subref{fig:punktgruppen:atoms-piezo-fv} und \subref{fig:punktgruppen:atoms-piezo-fh} zu beobachten ist, -ist dass das entstandene Ladungsdifferenz orthogonal zu der angelegten Kraft entsteht, +ist, dass die entstandene Ladungsdifferenz orthogonal zu der angelegten Kraft entsteht, im Gegensatz zu \subref{fig:punktgruppen:atoms-piezo-fh}. Daraus kann man schliessen, dass \subref{fig:punktgruppen:atoms-piezo} keine Rotationssymmetrie von \(90^\circ\) besitzen kann, -weil die Eigenschaften ändern bei einer \(90^\circ\) Drehung. -Das Fehlen dieser Rotationssymmetrie kann in \subref{fig:punktgruppen:atoms-piezo} beobachtet werden. +weil die Eigenschaften der Struktur sich bei einer \(90^\circ\) Drehung ändern. +Das Fehlen dieser Rotationssymmetrie bestätigt sich auch wenn \subref{fig:punktgruppen:atoms-piezo} als Hexagon betrachtet wird. \subsection{Punktsymmetrie} Piezoelektrische Kristalle können nicht punktsymmetrisch sein. Kristallgitter, bei welchen eine Punktspiegelung eine symmetrische Operation ist, können keine piezoelektrische Kristalle bilden. Auf Abbildung \ref{fig:punktgruppen:atomPiezo} ist bewusst \subref{fig:punktgruppen:atoms-piezo} ein nicht punktsymmetrischer Kristall mit einem punktsymmetrischen \subref{fig:punktgruppen:atoms-grid} verglichen worden. -Als vereinfachte Erklärung kann man sich wieder das Bild eines Kristalles vor Augen führen, +Als vereinfachte Erklärung kann man sich wieder das Bild eines Kristalles wie \subref{fig:punktgruppen:atoms-piezo} vor Augen führen, welcher unter Druck auf der einen Seite negative und der anderen Seite positive Ionen an seine Oberfläche verdrängt. Spiegelt man nun den Kristall um den Gitterpunkt in der Mitte des Kristalles, so würden die negativen Ionen auf den positiven auf der anderen Seite landen, was der Definition einer Symmetrie deutlich widerspricht. @@ -72,10 +72,10 @@ was der Definition einer Symmetrie deutlich widerspricht. Piezoelektrizität hat durchaus Nutzen im Alltag. Feuerzeuge welche nicht auf dem Prinzip beruhen einen Zündstein abzuschleifen, sonder ohne Verschleiss auf Knopfdruck einen Zündfunken erzeugen, basieren auf dem Prinzip der Piezoelektrizität. -Drückt der Nutzende auf den Zündknopf, spannt sich eine Feder bis zu eine konfigurierten Spannung. -Wird vom Nutzenden weiter gedrückt entspannt sich die Feder schlagartig und beschleunigt mit der gespeicherten Energie ein Hammer, -welchen auf das Piezoelement aufschlägt. +Drückt der Nutzende auf den Zündknopf, spannt sich eine Feder bis zu einer konfigurierten Spannung. +Wird vom Nutzenden fester zugedrückt entspannt sich die Feder schlagartig und beschleunigt mit der gespeicherten Energie ein Hammer, +welcher auf das Piezoelement aufschlägt. Der augenblicklich hohe Druck sorgt an den Piezokontakten für eine eben so kurze aber hohe elektrische Spannung. Die Spannung reicht aus, um eine Funkenstrecke zu überwinden und so eine entflammbares Gas zu entzünden. -Sollte der Leser eines Tages in die Situation geraten, in welcher er zwei verschiedene Kristalle vor sich hat und ein piezoelektrisches Feuerzeug bauen musst, wobei bekannt ist, dass einer eine Punktsymmetrie aufweist, empfiehlt es sich mit die anderen zu versuchen. +Sollte der Leser eines Tages in die Situation geraten, in welcher er zwei verschiedene Kristalle vor sich hat und ein piezoelektrisches Feuerzeug bauen musst, wobei bekannt ist, dass der eine eine Punktsymmetrie aufweist, empfiehlt es sich, sich am anderen zu versuchen. -- cgit v1.2.1 From caea2650f150ddafa73b86885bcc9d759dded9a8 Mon Sep 17 00:00:00 2001 From: tim30b Date: Thu, 29 Jul 2021 10:51:51 +0200 Subject: fix? Erzeugendensystem --- buch/papers/punktgruppen/symmetry.tex | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/symmetry.tex b/buch/papers/punktgruppen/symmetry.tex index 6aeeb85..2067663 100644 --- a/buch/papers/punktgruppen/symmetry.tex +++ b/buch/papers/punktgruppen/symmetry.tex @@ -67,13 +67,13 @@ durch Verwendung von Potenzen \(r^n = r\circ r \circ \cdots r\circ r\) für eine Wenn wir diese Idee nun erweitern, können wir mit einem Erzeugendensystem komplexere Strukturen aufbauen. -%TODO kontroliere alle erzeugendensystem ich glaube es hatt noch en fall fehler ich weiss nicht wie das wort genau definiert ist -\begin{definition}[Erzeugendensysteme] +%@Naoki Are you ok with my grammar fixes I'm not 101% shore how to use the word Erzeugendensystem? +\begin{definition}[Erzeugendensystem] Jede disktrete Gruppe kann durch eines oder mehrere ihrer Elemente generiert werden. Wir lassen \(g_1, g_2, \ldots, g_n\) erzeugenden Elemente einer Symmetriegruppe sein. Da es mehrere Erzeuger gibt, müssen auch die sogenannten Definitionsgleichungen gegeben werden, die die Multiplikationstabelle vollständig definieren. Die Gleichungen sind ebenfalls in den Klammern angegeben. - Die erzeugenden Elementen bauen zusammen mit den Definitionsgleichungen ein Erzeugendensysteme. + Die erzeugenden Elementen bauen zusammen mit den Definitionsgleichungen ein Erzeugendensystem. \end{definition} \begin{beispiel} Wir werden nun alle Symmetrien eines \(n\)-Gons beschreiben, was bedeutet, dass wir die Operationen \(r\) und \(\sigma\) kombinieren. -- cgit v1.2.1 From 8cc6ee76118ec1b446a732b9b7e06147737957d1 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Thu, 29 Jul 2021 16:54:19 +0200 Subject: save typos --- buch/papers/reedsolomon/dtf.tex | 57 +++++++++++++++++-------------- buch/papers/reedsolomon/idee.tex | 56 +++++++++++++++--------------- buch/papers/reedsolomon/tikz/polynom2.tex | 2 +- 3 files changed, 60 insertions(+), 55 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/dtf.tex b/buch/papers/reedsolomon/dtf.tex index e9aacfb..e9717c8 100644 --- a/buch/papers/reedsolomon/dtf.tex +++ b/buch/papers/reedsolomon/dtf.tex @@ -9,35 +9,15 @@ Um die Polynominterpolation zu umgehen, gehen wir nun über in die Fourientransformation. Dies wird weder eine Erklärung der Forientransorfmation, noch ein genauer gebrauch für den Reed-Solomon-Code. Dieser Abschnitt zeigt nur wie die Fourientransformation auf Fehler reagiert. -wobei sie dann bei späteren Berchnungen ganz nützlich ist. +Das ganze zeigen wir mit einem Beispiel einer Übertragung von Zahlen mit Hilfe der Fourientransformation. \subsection{Diskrete Fourietransformation Zusamenhang \label{reedsolomon:subsection:dtfzusamenhang}} Mit hilfe der Fourietransformation werden die \textcolor{blue}{blauen Datenpunkte} transformiert, zu den \textcolor{darkgreen}{grünen Übertragungspunkten}. Durch eine Rücktransformation könnnen die \textcolor{blue}{blauen Datenpunkte} wieder rekonstruiert werden. -Nun zur definition der Diskrete Fourietransformation, diese ist definiert als -\begin{equation} - \hat{c}_{k} - = \frac{1}{N} \sum_{n=0}^{N-1} - {f}_n \cdot e^{-\frac{2\pi j}{N} \cdot kn} - ,\label{reedsolomon:DFT} -\end{equation} -wenn man nun -\begin{equation} - w = - e^{-\frac{2\pi j}{N} k} - \label{reedsolomon:DFT_summand} -\end{equation} -ersetzte, und $N$ konstantbleibt, erhält man -\begin{equation} - \hat{c}_{k}= - \frac{1}{N}( {f}_0 w^0 + {f}_1 w^1 + {f}_2 w^2 + \dots + {f}_{N-1} w^N) - \label{reedsolomon:DFT_polynom} -\end{equation} -was überaust ähnlich zu unserem Polynomidee ist. -\subsection{Beispiel +\subsubsection{Beispiel einer Übertragung mit Fourientransformation \label{reedsolomon:subsection:Übertragungsabfolge}} Der Auftrag ist nun 64 Daten zu übertragen und nach 32 Fehler abzusicheren, 16 Fehler erkennen und rekonstruieren. @@ -51,8 +31,8 @@ Dabei zusätzlich nach 16 Fehler abgesichert, macht insgesamt 96 Übertragungsza (siehe Abschnitt \externaldocument{papers/reedsolomon/idee}\ref{reedsolomon:section:Fehlerkorrekturstellen}) Die 32 Fehlerkorrekturstellen werden als Null Übertragen \item Nun wurde mittels der diskreten Fourientransformation diese 96 codiert. -Das heisst alle Informationen ist in alle Zahlenvorhanden. (Auch die Fehlerkorrekturstellen Null) -\item Nun kommen drei Fehler dazu an den Übertragungsstellen 7, 21 und 75.(die Skala ist Rechts) +Das heisst alle Informationen ist in alle Zahlenvorhanden. Auch die Fehlerkorrekturstellen Null. +\item Nun kommen drei Fehler dazu an den Übertragungsstellen 7, 21 und 75. Die Fehler können auf den ganzen 96 Übertragungswerten liegen, wie die 75 zeigt. \item Dieses wird nun Empfangen und mittels inversen diskreten Fourientransormation, wieder rücktransformiert.(Iklusive der Fehler) \item Nun sieht man den Fehler im Decodieren in den Übertragungsstellen 64 bis 96, da es dort nicht mehr Null ist. @@ -71,4 +51,31 @@ jetzt gilt es nur noch diese zu korrigieren und wir haben unser originales Signa } \caption{Übertragungsabfolge \ref{reedsolomon:subsection:Übertragungsabfolge}} \label{fig:sendorder} -\end{figure} \ No newline at end of file +\end{figure} + +Nun zur definition der Diskrete Fourietransformation, diese ist definiert als +\begin{equation} + \hat{c}_{k} + = \frac{1}{N} \sum_{n=0}^{N-1} + {f}_n \cdot e^{-\frac{2\pi j}{N} \cdot kn}. + ,\label{reedsolomon:DFT} +\end{equation} +Wenn man nun +\begin{equation} + w = + e^{-\frac{2\pi j}{N} k} + \label{reedsolomon:DFT_summand} +\end{equation} +ersetzte, und $N$ konstantbleibt, erhält man +\begin{equation} + \hat{c}_{k}= + \frac{1}{N}( {f}_0 w^0 + {f}_1 w^1 + {f}_2 w^2 + \dots + {f}_{N-1} w^N) + \label{reedsolomon:DFT_polynom} +\end{equation} +was überaust ähnlich zu unserem Polynomidee ist. +Die Polynominterpolation und die Fourientransformation rechnen beide mit reelen Zahlen. +Wenn die Fehlerabweichung sehr sehr klein ist, erkennt man diese irgendwann nicht mehr. +Zusätzlich muss mann immer Grenzen bestimmen auf wieviel Stellen gerechnet wird und wie die Fehler erkannt werden im Locator. +Deshalb haben Mathematiker einen neuen Körper gesucht und ihn in der Endlichkeit gefunden, +dies wird nun im nächsten Abschnitt genauer erklärt. + diff --git a/buch/papers/reedsolomon/idee.tex b/buch/papers/reedsolomon/idee.tex index 8ad3d27..d8b8a93 100644 --- a/buch/papers/reedsolomon/idee.tex +++ b/buch/papers/reedsolomon/idee.tex @@ -14,9 +14,9 @@ Das Problem liegt darin Informationen, Zahlen, zu Übertragen und Fehler zu erkennen. Beim Reed-Solomon-Code kann man nicht nur Fehler erkennen, man kann sogar einige Fehler korrigieren. -Der unterschied des Fehler erkennen und korrigiren, ist das beim Erkennen nur die Frage beantwortet wird mit: Ist die Übertragung fehlerhaft oder nicht? -Beim Korrigieren werden Fehler erkennt und dann zusätzlich noch den original Wert rekonstruieren. -Auch eine Variante wäre es die Daten nach einem Fehler nachdem Fehlerhaften senden, nochmals versenden(auch hier wieder doppelt und dreifach Sendung), +Der Unterschied des Fehler erkennen und korrigiren, ist das beim Erkennen nur die Frage beantwortet wird: Ist die Übertragung fehlerhaft oder nicht? +Beim Korrigieren werden Fehler erkannt und dann zusätzlich noch den original Wert rekonstruieren. +Auch eine Variante wäre die Daten nach einer Fehlerhaften sendung, nochmals zum senden auffordern(auch hier wieder doppelt und dreifach Sendung), was bei Reed-Solomon-Code-Anwendungen nicht immer sinnvoll ist. \externaldocument{papers/reedsolomon/anwendungen} \ref{reedsolomon:section:anwendung} @@ -24,8 +24,8 @@ was bei Reed-Solomon-Code-Anwendungen nicht immer sinnvoll ist. \subsection{Polynom-Ansatz \label{reedsolomon:section:polynomansatz}} \rhead{Polynom-Ansatz} -Eine Idee ist aus den Daten ein Polynom zu bilden. -Diese Polynomfunktion bei bestimmten Werten, ausrechnet und diese Punkte dann überträgt. +Eine Idee ist, aus den Daten ein Polynom zu bilden. +Diese Polynomfunktion bei bestimmten Werten errechnet und diese Punkte dann überträgt. \begin{beispiel} Nehmen wir die Zahlen \textcolor{blue}{2}, \textcolor{blue}{1}, \textcolor{blue}{5}, welche uns dann das Polynom \begin{equation} @@ -48,18 +48,17 @@ Die Farbe blau brauchen wir für die \textcolor{blue}{Daten} welche wir mit der \end{beispiel} \begin{beispiel} -Aus der Gleichung \eqref{reedsolomon:equation1}, -ist ein Polynome zweiten Grades durch drei Punkte eindeutig bestimmbar. -Hat es Fehler in der Übertragunge gegeben,(Bei Abbildung \ref{fig:polynom}\textcolor{red}{roten Punkte}) kann man diese erkennen, -da alle Punkte, die korrekt sind, auf dem Polynom liegen müssen. -(Bei Abbildung \ref{fig:polynom}\textcolor{darkgreen}{grünen Punkte}) +Ein Polynome zweiten Grades ist durch drei Punkte eindeutig bestimmbar. +Hat es Fehler in der Übertragunge gegeben,(Bei Abb. \ref{fig:polynom} \textcolor{red}{roten Punkte}), +kann man diese erkennen, da alle Punkte, die korrekt sind, auf der Parabel liegen müssen. +(Bei Abb. \ref{fig:polynom} \textcolor{darkgreen}{grünen Punkte}) Ab wie vielen Fehler ist das Polynom nicht mehr erkennbar beim Übertragen von 7 Punkten? Bei 2 Fehlern kann man noch eindeutig bestimmen, dass das Polynom mit 4 Punkten, -gegenüber dem mit 5 Punkten falsch liegt.\ref{fig:polynom} -Werden es mehr Fehler kann nur erkennt werden, dass das Polynom nicht stimmt. +gegenüber dem mit 5 Punkten falsch liegt. \ref{fig:polynom} +Werden es mehr Fehler kann nur erkannt werden, dass das Polynom nicht stimmt. Das orginale Polynom kann aber nicht mehr gefunden werden. -Da das Konkurenzpolynom, grau gestrichelt in Abbildung \ref{fig:polynom}, das orginal fehlleited. -Um das Konkurenzpolynom auszuschliessen, währen mehr \textcolor{darkgreen}{Übertragungspunkte} nötig. +Da das Konkurrenzpolynom, grau gestrichelt in Abbildung \ref{fig:polynom}, das orginal fehlleitet. +Um das Konkurrenzpolynom auszuschliessen, währen mehr \textcolor{darkgreen}{Übertragungspunkte} nötig. \end{beispiel} \begin{figure} @@ -72,25 +71,25 @@ Um das Konkurenzpolynom auszuschliessen, währen mehr \textcolor{darkgreen}{Übe \section{Fehlerkorekturstellen bestimmen \label{reedsolomon:section:Fehlerkorrekturstellen}} -Um zu bestimmen wieviel zusätzliche \textcolor{darkgreen}{Übertragungspunkte} notwendig sind, die dann Fehler korrigieren, -muss man zuerst Wissen wieviel \textcolor{blue}{Daten} gesendet und wieviel \textcolor{red}{Fehler} erkennt werden sollen. +Um zu bestimmen wieviel zusätzliche \textcolor{darkgreen}{Übertragungspunkte} notwendig sind, um die Fehler zu korrigieren, +muss man zuerst wissen, wieviel \textcolor{blue}{Daten} gesendet und wieviel \textcolor{red}{Fehler} erkennt werden sollen. Die Anzahl \textcolor{blue}{Daten} (ab hier verwenden wir das Wort Nutzlast), die als Polynomkoeffizente $k$ übergeben werden, -brauchen die gleiche Anzahl an Polynomgraden, beginnend bei Grad 0 somit ergibt sich der Polynomgrad mit $k-1$. +brauchen die gleiche Anzahl an Polynomkoeffizententräger, beginnend bei Grad 0 somit ergibt sich der Polynomgrad mit $k-1$. Für die Anzahl der Fehler $t$, welche korrigiert werden können, gehen wir zum Beispiel. -\begin{beispiel} von den Polynom \ref{reedsolomon:equation1} in, welchem wir 7 \textcolor{darkgreen}{Übertragungspunkte} senden. -Durch 3 Punkte wird das Polyom eindeutig bestimmt, nun haben wir mehrere Konkurenzpolynome, doch mit maximal 2 Fehler liegen auf einem Konkurenzpolynom, -maximal 4 Punkte und auf unserem orginal 5 Punkte. Ansonsten hatt es mehr Fehler oder unser Konkurenzpolynom ist das gleiche wie das Original. +\begin{beispiel} von den Polynom \ref{reedsolomon:equation1} in, welchem wir \textcolor{darkgreen}{7 Übertragungspunkte} senden. +Durch 3 Punkte wird das Polyom eindeutig bestimmt, nun haben wir mehrere Konkurrenzpolynome, doch mit maximal 2 Fehler liegen auf einem Konkurrenzpolynom, +maximal 4 Punkte und auf unserem orginal 5 Punkte. Ansonsten hatt es mehr Fehler oder unser Konkurrenzpolynom ist das gleiche wie das Original. Somit können wir nun bestimmen, dass von den \textcolor{darkgreen}{7 Übertragungspunkten$u$} bis zu 2 Fehler korrigiert werden können und 4 Übertragungspunkte zusätzlich gesendet werden müssen. \end{beispiel} -Durch das erkennen des Schemas in der Tabelle\ref{tabel:fehlerkorrekturstellen} +Man könnte auch dies in der Tabelle \ref{tab:fehlerkorrekturstellen} erkennen, doch mit dieser Gleichung \begin{equation} \frac{\textcolor{darkgreen}{u}-\textcolor{blue}{k}}{\textcolor{red}{t}} =2 \label{reedsolomon:equation2} \end{equation} -zeigt sich das es $k+2t$ Übertragungspunkte braucht. +zeigt sich, dass es $k+2t$ Übertragungspunkte braucht. -\begin{center} +\begin{table} \begin{tabular}{ c c | c} \hline Nutzlas & Fehler & Übertragen \\ @@ -102,11 +101,10 @@ zeigt sich das es $k+2t$ Übertragungspunkte braucht. $k$ & $t$ & $k+2t$ Werte eines Polynoms vom Grad $k-1$ \\ \hline \end{tabular} - Fehlerkorrekturstellen Bestimmung TODO: Tabellenreferenz - \label{tabel:fehlerkorrekturstellen} -\end{center} + \caption{\label{tab:fehlerkorrekturstellen} Fehlerkorrekturstellen Bestimmung.} +\end{table} -Ein Nebeneffekt ist das dadurch auch $2t$ Fehler erkannt werden können, nicht aber korrigiert. -Um aus den Übertragenen Zahlen wieder die Nutzlastzahlen zu bekommen könnte man eine Polynominterpolation anwenden, -doch die Punkte mit Polynominterpolation zu einem Polynom zu rekonstruieren ist schwierig und Fehleranfällig. +Ein Nebeneffekt ist, dass dadurch auch $2t$ Fehler erkannt werden können, nicht aber korrigiert. +Um aus den übertragenen Zahlen wieder die Nutzlastzahlen zu bekommen könnte man eine Polynominterpolation anwenden, +doch die Punkte mit Polynominterpolation zu einem Polynom zu rekonstruieren ist schwierig und fehleranfällig. diff --git a/buch/papers/reedsolomon/tikz/polynom2.tex b/buch/papers/reedsolomon/tikz/polynom2.tex index 47dc679..80557fb 100644 --- a/buch/papers/reedsolomon/tikz/polynom2.tex +++ b/buch/papers/reedsolomon/tikz/polynom2.tex @@ -14,7 +14,7 @@ %////////////////////////////////////// -\begin{tikzpicture}[>=latex,thick] +\begin{tikzpicture}[>=latex,thick,] \draw[color=blue, line width=1.4pt] plot[domain=0:8, samples=100] ({\x},{(2*\x^2+1*\x+5)/\teiler}); -- cgit v1.2.1 From 8cc40f152c49a8fe039e78bb6355fb077b932117 Mon Sep 17 00:00:00 2001 From: tim30b Date: Fri, 30 Jul 2021 10:57:58 +0200 Subject: add crystal video source --- buch/papers/punktgruppen/references.bib | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/references.bib b/buch/papers/punktgruppen/references.bib index a29640c..b669036 100644 --- a/buch/papers/punktgruppen/references.bib +++ b/buch/papers/punktgruppen/references.bib @@ -42,3 +42,12 @@ url = {http://archive.today/2021.07.22-083802/http://xrayweb.chem.ou.edu/notes/symmetry.html}, urldate = {2021-07-22}, } + +@online{punktgruppen:restriction, + title = {Structure of Materials}, + author = {Silvija Gradecak-Garaj}, + year = {2020}, + month = {4}, + day = {9}, + url = {https://www.youtube.com/watch?v=Ia2eHF1ZKoI}, + urldate = {2021-07-30}, \ No newline at end of file -- cgit v1.2.1 From c8e34520177223dee18e92c3c12334b68faef360 Mon Sep 17 00:00:00 2001 From: tim30b Date: Fri, 30 Jul 2021 11:04:11 +0200 Subject: add restriction citation to main but does still not work! --- buch/papers/punktgruppen/main.tex | 1 + 1 file changed, 1 insertion(+) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/main.tex b/buch/papers/punktgruppen/main.tex index ea19421..556fc2b 100644 --- a/buch/papers/punktgruppen/main.tex +++ b/buch/papers/punktgruppen/main.tex @@ -19,6 +19,7 @@ \nocite{punktgruppen:sands-crystal} \nocite{punktgruppen:lang-elt2} \nocite{punktgruppen:ouchem} +\nocite{punktgruppen:restriction} \printbibliography[heading=subbibliography] \end{refsection} -- cgit v1.2.1 From 34a84dc4897d19d29fcf4a3ddb82ce4528d5dbec Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Fri, 30 Jul 2021 11:08:48 +0200 Subject: Fix missing } in references.bib --- buch/papers/punktgruppen/references.bib | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/references.bib b/buch/papers/punktgruppen/references.bib index b669036..43125ad 100644 --- a/buch/papers/punktgruppen/references.bib +++ b/buch/papers/punktgruppen/references.bib @@ -50,4 +50,5 @@ month = {4}, day = {9}, url = {https://www.youtube.com/watch?v=Ia2eHF1ZKoI}, - urldate = {2021-07-30}, \ No newline at end of file + urldate = {2021-07-30}, +} -- cgit v1.2.1 From a36ac5a29b664e802f57ac2a965056f1f5dd1a41 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Fri, 30 Jul 2021 11:18:28 +0200 Subject: Fix commas and details in references.bib --- buch/papers/punktgruppen/references.bib | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/punktgruppen/references.bib b/buch/papers/punktgruppen/references.bib index 43125ad..05c803f 100644 --- a/buch/papers/punktgruppen/references.bib +++ b/buch/papers/punktgruppen/references.bib @@ -26,7 +26,7 @@ @book{punktgruppen:lang-elt2, title = {Elektrotechnik 2}, - author = {Hans-Dieter Lang}, + author = {Prof. Hans-Dieter Lang Ph.D}, publisher = {Fachhochschule Ostschweiz Rapperswil}, year = {2020}, month = {2}, @@ -35,7 +35,7 @@ @online{punktgruppen:ouchem, title = {Symmetry in Crystallography}, - author = {Dept. of Chemistry \& Biochemistry, Chemical Crystallography Laboratory, University of Oklahoma}, + author = {Dept. of Chemistry \& Biochemistry{,} Chemical Crystallography Laboratory{,} University of Oklahoma}, year = {2019}, month = {11}, day = {17}, @@ -44,8 +44,8 @@ } @online{punktgruppen:restriction, - title = {Structure of Materials}, - author = {Silvija Gradecak-Garaj}, + title = {Structure of Materials: Allowed Rotational Symmetry in Crystals}, + author = {Prof. Silvija Gradecak-Garaj{,} Massachusetts Institute of Technology (MIT)}, year = {2020}, month = {4}, day = {9}, -- cgit v1.2.1 From 0cd67d0c23d8781999522a05cf2c5c49e76e3326 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Fri, 30 Jul 2021 11:41:58 +0200 Subject: save --- buch/papers/reedsolomon/dtf.tex | 86 +++++++++++----------- buch/papers/reedsolomon/figures/plotfft.pdf | Bin 59617 -> 59617 bytes buch/papers/reedsolomon/idee.tex | 31 ++++---- buch/papers/reedsolomon/standalone/standalone.pdf | Bin 1835615 -> 1835758 bytes buch/papers/reedsolomon/tikz/plotfft.tex | 4 +- buch/papers/reedsolomon/tikz/plotfftraw.tex | 80 ++++++++++++++++++++ buch/papers/reedsolomon/tikz/polynomraw.tex | 50 +++++++++++++ 7 files changed, 193 insertions(+), 58 deletions(-) create mode 100644 buch/papers/reedsolomon/tikz/plotfftraw.tex create mode 100644 buch/papers/reedsolomon/tikz/polynomraw.tex (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/dtf.tex b/buch/papers/reedsolomon/dtf.tex index e9717c8..5cee77b 100644 --- a/buch/papers/reedsolomon/dtf.tex +++ b/buch/papers/reedsolomon/dtf.tex @@ -1,15 +1,13 @@ % -% teil3.tex -- Beispiel-File für Teil 3 +% dtf.tex -- Idee mit DFT % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Übertragung mit hilfe der Diskrete Fourier Transformation +\section{Übertragung mit Hilfe der Diskrten Fourientransformation \label{reedsolomon:section:dtf}} \rhead{Umwandlung mit DTF} -Um die Polynominterpolation zu umgehen, gehen wir nun über in die Fourientransformation. +Um die Polynominterpolation zu umgehen, gehen wir nun über in die Fourietransformation. Dies wird weder eine Erklärung der Forientransorfmation, noch ein genauer gebrauch für den Reed-Solomon-Code. -Dieser Abschnitt zeigt nur wie die Fourientransformation auf Fehler reagiert. -Das ganze zeigen wir mit einem Beispiel einer Übertragung von Zahlen mit Hilfe der Fourientransformation. +Dieser Abschnitt zeigt nur wie die Fourietransformation auf Fehler reagiert. +Das ganze zeigen wir mit einem Beispiel einer Übertragung von Zahlen mit Hilfe der Fourietransformation. \subsection{Diskrete Fourietransformation Zusamenhang \label{reedsolomon:subsection:dtfzusamenhang}} @@ -17,63 +15,69 @@ Mit hilfe der Fourietransformation werden die \textcolor{blue}{blauen Datenpunkt zu den \textcolor{darkgreen}{grünen Übertragungspunkten}. Durch eine Rücktransformation könnnen die \textcolor{blue}{blauen Datenpunkte} wieder rekonstruiert werden. -\subsubsection{Beispiel einer Übertragung mit Fourientransformation +\subsubsection{Beispiel einer Übertragung \label{reedsolomon:subsection:Übertragungsabfolge}} Der Auftrag ist nun 64 Daten zu übertragen und nach 32 Fehler abzusicheren, 16 Fehler erkennen und rekonstruieren. -Dieser Auftrag soll mittels Fouriertransformation bewerkstelligt werden. -In der Abbildung \ref{reedsolomon:subsection:Übertragungsabfolge} sieht man dies Schritt für schritt, +Dieser Auftrag soll mittels Fouriertransformation bewerkstelligt werden. +In der Abbildung \ref{reedsolomon:subsection:Übertragungsabfolge} sieht man dies Schritt für Schritt, und hier werden die einzelne Schritte erklärt: \begin{enumerate}[(1)] -\item Das Signal hat 64 die Daten, Zahlen welche übertragen werden sollen. -Dabei zusätzlich nach 16 Fehler abgesichert, macht insgesamt 96 Übertragungszahlen. -(siehe Abschnitt \externaldocument{papers/reedsolomon/idee}\ref{reedsolomon:section:Fehlerkorrekturstellen}) -Die 32 Fehlerkorrekturstellen werden als Null Übertragen -\item Nun wurde mittels der diskreten Fourientransformation diese 96 codiert. -Das heisst alle Informationen ist in alle Zahlenvorhanden. Auch die Fehlerkorrekturstellen Null. -\item Nun kommen drei Fehler dazu an den Übertragungsstellen 7, 21 und 75. -Die Fehler können auf den ganzen 96 Übertragungswerten liegen, wie die 75 zeigt. -\item Dieses wird nun Empfangen und mittels inversen diskreten Fourientransormation, wieder rücktransformiert.(Iklusive der Fehler) -\item Nun sieht man den Fehler im Decodieren in den Übertragungsstellen 64 bis 96, da es dort nicht mehr Null ist. -\item Nimmt man nun nur diese Stellen 64 bis 96, dies definieren wir als Syndrom, und transformiert nur dieses Syndrom. -\item Bekommt man die Fehlerstellen wieder, zwar nichtso genau, dennoch erkennt man wo die Fehler stattgefunden haben. -Dies definieren wir als Locator. -\end{enumerate} -Nun haben wir mit Hilfe der Fourietransformation die 3 Fehlerstellen durch das Syndrom lokalisiert, -jetzt gilt es nur noch diese zu korrigieren und wir haben unser originales Signal wieder. - + \item Das Signal hat 64 die Daten $k$, hier zufällige Zahlen, welche übertragen werden sollen. + Zusätzlich soll nach 16 Fehler $t$, die rekonstruierbar sind abgesichert werden. + Das macht dann insgesamt $k + 2t = + 64 +2 \cdot 16= 96$ Übertragungszahlen. + (siehe Abschnitt \externaldocument{papers/reedsolomon/idee}\ref{reedsolomon:section:Fehlerkorrekturstellen}) + Die 32 Fehlerkorrekturstellen werden als Nullzahlen Übertragen. + \item Nun werden mittels der diskreten Fourietransformation diese 96 codiert, transformiert. + Das heisst alle Informationen ist in alle Zahlenvorhanden, auch die Fehlerkorrekturstellen Nullzahlen. + \item Nun kommen drei Fehler dazu an den Übertragungsstellen 7, 21 und 75. + Die Fehler können auf den ganzen 96 Übertragungswerten liegen, wie die 75 zeigt. +Zu Beachten ist auch noch, dass der Fehler um das 20- bis 150-Fache kleiner ist.Die Fehlerskala ist rechts. + \item Dieses wird nun Empfangen, man kann keine Fehler erkennen, da diese soviel kleiner sind. + Für das Decodieren wird die Inverse Fourietransformation angewendet, und alle Fehler werden mittransformiert. + \item Nun sieht man die Fehler im decodierten Signal in den Übertragungszahlen. + Von den Übertragungsstellen 64 bis 96 erkennt man, das diese nicht mehr Null sind. + \item Diese Fehlerkorrekturstellen 64 bis 96, dies definieren wir als Syndrom. + In diesem Syndrom ist die Fehlerinformation gespeichert und muss nur noch transformiert werden. + \item Hier sieht man genau wo die Fehler stattgefunden haben. + Leider nicht mehr mit der Qualtiätt der Ursprünglichen Fehler, sie sind nur noch 0.6 oder 0.4 gross. + Obwohl der Fehler um das 20Fache kleiner ist erkennt man im Locator die Fehlerstellen wieder. + \end{enumerate} + Nun haben wir mit Hilfe der Fourietransformation die 3 Fehlerstellen durch das Syndrom lokalisiert, + jetzt gilt es nur noch diese zu korrigieren und wir haben unser originales Signal wieder. \begin{figure} \centering - \resizebox{\textwidth}{!}{ - \includegraphics[width=\textwidth]{papers/reedsolomon/figures/plotfft} - %\input{papers/reedsolomon/images/plotfft.tex} + \resizebox{1.1\textwidth}{!}{ + %\includegraphics[width=\textwidth]{papers/reedsolomon/figures/plotfft} + \input{papers/reedsolomon/tikz/plotfftraw.tex} } \caption{Übertragungsabfolge \ref{reedsolomon:subsection:Übertragungsabfolge}} \label{fig:sendorder} \end{figure} -Nun zur definition der Diskrete Fourietransformation, diese ist definiert als -\begin{equation} +Nun zur Definition der Diskrete Fourietransformation, diese ist definiert als + \begin{equation} \hat{c}_{k} = \frac{1}{N} \sum_{n=0}^{N-1} {f}_n \cdot e^{-\frac{2\pi j}{N} \cdot kn}. ,\label{reedsolomon:DFT} -\end{equation} -Wenn man nun -\begin{equation} + \end{equation} + Wenn man nun + \begin{equation} w = e^{-\frac{2\pi j}{N} k} \label{reedsolomon:DFT_summand} -\end{equation} -ersetzte, und $N$ konstantbleibt, erhält man -\begin{equation} + \end{equation} + ersetzte, und $N$ konstantbleibt, erhält man + \begin{equation} \hat{c}_{k}= \frac{1}{N}( {f}_0 w^0 + {f}_1 w^1 + {f}_2 w^2 + \dots + {f}_{N-1} w^N) \label{reedsolomon:DFT_polynom} -\end{equation} -was überaust ähnlich zu unserem Polynomidee ist. -Die Polynominterpolation und die Fourientransformation rechnen beide mit reelen Zahlen. + \end{equation} + was überaust ähnlich zu unserem Polynomidee ist. +Die Polynominterpolation und die Fourietransformation rechnen beide mit reelen Zahlen. Wenn die Fehlerabweichung sehr sehr klein ist, erkennt man diese irgendwann nicht mehr. Zusätzlich muss mann immer Grenzen bestimmen auf wieviel Stellen gerechnet wird und wie die Fehler erkannt werden im Locator. Deshalb haben Mathematiker einen neuen Körper gesucht und ihn in der Endlichkeit gefunden, diff --git a/buch/papers/reedsolomon/figures/plotfft.pdf b/buch/papers/reedsolomon/figures/plotfft.pdf index c5e21e3..80d17d2 100644 Binary files a/buch/papers/reedsolomon/figures/plotfft.pdf and b/buch/papers/reedsolomon/figures/plotfft.pdf differ diff --git a/buch/papers/reedsolomon/idee.tex b/buch/papers/reedsolomon/idee.tex index d8b8a93..41e0d4c 100644 --- a/buch/papers/reedsolomon/idee.tex +++ b/buch/papers/reedsolomon/idee.tex @@ -1,8 +1,6 @@ % % idee.tex -- Polynom Idee % -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% \section{Idee \label{reedsolomon:section:idee}} \rhead{Problemstellung} @@ -12,14 +10,14 @@ Doch nur schon um Fehler zu erkennen werden überproportional viele Daten doppel Der Reed-Solomon-Code macht dies auf eine andere, clevere Weise. Das Problem liegt darin Informationen, Zahlen, zu Übertragen und Fehler zu erkennen. -Beim Reed-Solomon-Code kann man nicht nur Fehler erkennen, +Speziell beim Reed-Solomon-Code kann man nicht nur Fehler erkennen, man kann sogar einige Fehler korrigieren. Der Unterschied des Fehler erkennen und korrigiren, ist das beim Erkennen nur die Frage beantwortet wird: Ist die Übertragung fehlerhaft oder nicht? Beim Korrigieren werden Fehler erkannt und dann zusätzlich noch den original Wert rekonstruieren. -Auch eine Variante wäre die Daten nach einer Fehlerhaften sendung, nochmals zum senden auffordern(auch hier wieder doppelt und dreifach Sendung), +Auch eine Variante wäre die Daten nach einer Fehlerhaften sendung, nochmals zum senden auffordern(auch hier wird doppelt und dreifach gesendung), was bei Reed-Solomon-Code-Anwendungen nicht immer sinnvoll ist. -\externaldocument{papers/reedsolomon/anwendungen} -\ref{reedsolomon:section:anwendung} +Anwendungen finden sind im Abchnitt \externaldocument{papers/reedsolomon/anwendungen} +\ref{reedsolomon:section:anwendung} beschrieben. \subsection{Polynom-Ansatz \label{reedsolomon:section:polynomansatz}} @@ -43,28 +41,29 @@ mit den Punkten, $p(1),p(2),...,p(7) = (\textcolor{darkgreen}{8}, \textcolor{darkgreen}{41}, \textcolor{darkgreen}{60}, \textcolor{darkgreen}{83}, \textcolor{darkgreen}{110})$ Wenn ein Fehler sich in die Übertragung eingeschlichen hat, muss der Leser/Empfänger diesen erkennen und das Polynom rekonstruieren. -Der Leser/Empfänger weiss, den Grad des Polynoms und dessen Werte übermittelt wurden. +Der Leser/Empfänger weiss, den Grad des Polynoms und dessen \textcolor{darkgreen}{Werte} übermittelt wurden. Die Farbe blau brauchen wir für die \textcolor{blue}{Daten} welche wir mit der Farbe grün \textcolor{darkgreen}{Übermitteln}. \end{beispiel} \begin{beispiel} Ein Polynome zweiten Grades ist durch drei Punkte eindeutig bestimmbar. -Hat es Fehler in der Übertragunge gegeben,(Bei Abb. \ref{fig:polynom} \textcolor{red}{roten Punkte}), -kann man diese erkennen, da alle Punkte, die korrekt sind, auf der Parabel liegen müssen. -(Bei Abb. \ref{fig:polynom} \textcolor{darkgreen}{grünen Punkte}) +Hat es Fehler in der Übertragunge gegeben,in der Abbilbung \ref{fig:polynom} die \textcolor{red}{roten Punkte}). +Erkennt man diese Fehler, da alle korrekten Punkte auf der Parabel liegen müssen. +Die \textcolor{darkgreen}{grünen Punkte} bestimmen die Parabel, und die Fehler können zu den +\textcolor{gray}{Orginalpunkte} rekonstruiert werden. Ab wie vielen Fehler ist das Polynom nicht mehr erkennbar beim Übertragen von 7 Punkten? Bei 2 Fehlern kann man noch eindeutig bestimmen, dass das Polynom mit 4 Punkten, gegenüber dem mit 5 Punkten falsch liegt. \ref{fig:polynom} Werden es mehr Fehler kann nur erkannt werden, dass das Polynom nicht stimmt. Das orginale Polynom kann aber nicht mehr gefunden werden. -Da das Konkurrenzpolynom, grau gestrichelt in Abbildung \ref{fig:polynom}, das orginal fehlleitet. +Da andere Polynome oder das Konkurrenzpolynom, grau gestrichelt in Abbildung \ref{fig:polynom}, das orginal fehlleitet. Um das Konkurrenzpolynom auszuschliessen, währen mehr \textcolor{darkgreen}{Übertragungspunkte} nötig. \end{beispiel} -\begin{figure} +\begin{figure}%[!ht] \centering - \includegraphics[width=\textwidth]{papers/reedsolomon/figures/polynom2} - %\input{papers/reedsolomon/tikz/polynom2.tex} + %\includegraphics[width=\textwidth]{papers/reedsolomon/figures/polynom2} + \input{papers/reedsolomon/tikz/polynomraw.tex} \caption{Polynom $p(x)$ von der Gleichung\eqref{reedsolomon:equation1}} \label{fig:polynom} \end{figure} @@ -90,6 +89,7 @@ Man könnte auch dies in der Tabelle \ref{tab:fehlerkorrekturstellen} erkennen, zeigt sich, dass es $k+2t$ Übertragungspunkte braucht. \begin{table} + \centering \begin{tabular}{ c c | c} \hline Nutzlas & Fehler & Übertragen \\ @@ -101,7 +101,8 @@ zeigt sich, dass es $k+2t$ Übertragungspunkte braucht. $k$ & $t$ & $k+2t$ Werte eines Polynoms vom Grad $k-1$ \\ \hline \end{tabular} - \caption{\label{tab:fehlerkorrekturstellen} Fehlerkorrekturstellen Bestimmung.} + \caption{ Fehlerkorrekturstellen Bestimmung.} + \label{tab:fehlerkorrekturstellen} \end{table} Ein Nebeneffekt ist, dass dadurch auch $2t$ Fehler erkannt werden können, nicht aber korrigiert. diff --git a/buch/papers/reedsolomon/standalone/standalone.pdf b/buch/papers/reedsolomon/standalone/standalone.pdf index 1f2f0b9..4a44333 100644 Binary files a/buch/papers/reedsolomon/standalone/standalone.pdf and b/buch/papers/reedsolomon/standalone/standalone.pdf differ diff --git a/buch/papers/reedsolomon/tikz/plotfft.tex b/buch/papers/reedsolomon/tikz/plotfft.tex index 14af683..bb74dfb 100644 --- a/buch/papers/reedsolomon/tikz/plotfft.tex +++ b/buch/papers/reedsolomon/tikz/plotfft.tex @@ -69,9 +69,9 @@ %FFT & IFFT deskription \draw[thin,gray,dashed] (0,9) to (0,-9); - \node(IFFT) [scale=0.8] at (0,9.3) {IFFT}; + \node(IFFT) [scale=0.9] at (0,9.3) {IFFT}; \draw[stealth-](IFFT.south west)--(IFFT.south east); - \node(FFT) [scale=0.8, above of=IFFT] {FFT}; + \node(FFT) [scale=0.9, above of=IFFT] {FFT}; \draw[-stealth](FFT.north west)--(FFT.north east); \draw[thick, ->,] (codiert)++(-1,0) +(0.05,0.5) -- +(-0.1,-0.1) -- +(0.1,0.1) -- +(0,-0.5); diff --git a/buch/papers/reedsolomon/tikz/plotfftraw.tex b/buch/papers/reedsolomon/tikz/plotfftraw.tex new file mode 100644 index 0000000..141d2ce --- /dev/null +++ b/buch/papers/reedsolomon/tikz/plotfftraw.tex @@ -0,0 +1,80 @@ +\begin{tikzpicture}[] + + %--------------------------------------------------------------- + %Knote + \matrix(m) [draw = none, column sep=25mm, row sep=2mm]{ + + \node(signal) [] { + \begin{tikzpicture} + \begin{axis} + [title = {\Large {Signal}}, + xtick={0,20,40,64,80,98}] + \addplot[blue] table[col sep=comma] {tikz/signal.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(codiert) [] { + \begin{tikzpicture}[] + \begin{axis}[ title = {\Large {Codiert \space + \space Fehler}}, + xtick={0,40,60,100}, axis y line*=left] + \addplot[green] table[col sep=comma] {tikz/codiert.txt}; + \end{axis} + \begin{axis}[xtick={7,21,75}, axis y line*=right] + \addplot[red] table[col sep=comma] {tikz/fehler.txt}; + \end{axis} + \end{tikzpicture}}; \\ + + \node(decodiert) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Decodiert}}] + \addplot[blue] table[col sep=comma] {tikz/decodiert.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(empfangen) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Empfangen}}] + \addplot[green] table[col sep=comma] {tikz/empfangen.txt}; + \end{axis} + \end{tikzpicture}};\\ + + \node(syndrom) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Syndrom}}] + \addplot[black] table[col sep=comma] {tikz/syndrom.txt}; + \end{axis} + \end{tikzpicture}}; & + + \node(locator) [] { + \begin{tikzpicture} + \begin{axis}[title = {\Large {Locator}}] + \addplot[gray] table[col sep=comma] {tikz/locator.txt}; + \end{axis} + \end{tikzpicture}};\\ + }; + %------------------------------------------------------------- + %FFT & IFFT deskription + + \draw[thin,gray,dashed] (0,9) to (0,-9); + \node(IFFT) [scale=0.9] at (0,9.3) {IFFT}; + \draw[stealth-](IFFT.south west)--(IFFT.south east); + \node(FFT) [scale=0.9, above of=IFFT] {FFT}; + \draw[-stealth](FFT.north west)--(FFT.north east); + + \draw[thick, ->,] (codiert)++(-1,0) +(0.05,0.5) -- +(-0.1,-0.1) -- +(0.1,0.1) -- +(0,-0.5); + %Arrows + \draw[thick, ->] (signal.east) to (codiert.west); + \draw[thick, ->] (codiert.south) to (empfangen.north); + \draw[thick, ->] (empfangen.west) to (decodiert.east); + \draw[thick, ->] (syndrom.east) to (locator.west); + \draw[thick](decodiert.south east)++(-1.8,1) ellipse (1.3cm and 0.8cm) ++(-1.3,0) coordinate(zoom) ; + \draw[thick, ->] (zoom) to[out=180, in=90] (syndrom.north); + + %item + \node[circle, draw, fill =lightgray] at (signal.north west) {1}; + \node[circle, draw, fill =lightgray] at (codiert.north west) {2+3}; + \node[circle, draw, fill =lightgray] at (empfangen.north west) {4}; + \node[circle, draw, fill =lightgray] at (decodiert.north west) {5}; + \node[circle, draw, fill =lightgray] at (syndrom.north west) {6}; + \node[circle, draw, fill =lightgray] at (locator.north west) {7}; +\end{tikzpicture} \ No newline at end of file diff --git a/buch/papers/reedsolomon/tikz/polynomraw.tex b/buch/papers/reedsolomon/tikz/polynomraw.tex new file mode 100644 index 0000000..02968fd --- /dev/null +++ b/buch/papers/reedsolomon/tikz/polynomraw.tex @@ -0,0 +1,50 @@ +% polynomraw + +\newcommand{\teiler}{40} + + +%////////////////////////////////////// + +\begin{tikzpicture}[>=latex,thick,] + \draw[color=blue, line width=1.4pt] + plot[domain=0:8, samples=100] + ({\x},{(2*\x^2+1*\x+5)/\teiler}); + + \draw[->] (-0.2,0) -- (8,0) coordinate[label={$x$}]; + \draw[->] (0,-0.2) -- (0,150/\teiler) coordinate[label={right:$p(x)$}]; + + \def\punkt#1{ + \fill[color=green] #1 circle[radius=0.08]; + \draw #1 circle[radius=0.07]; + } + + \def\hellpunkt#1{ + \fill[color=lightgray] #1 circle[radius=0.08]; + \draw[gray] #1 circle[ radius=0.07]; + } + + \draw[color=gray,line width=1pt,dashed] + plot[domain=0.5:7, samples=100] + ({\x},{(7.832*\x^2-51.5*\x+121.668)/\teiler}); + + + \punkt{(1,8/\teiler)} + \hellpunkt{(2,15/\teiler)} + \hellpunkt{(3,26/\teiler)} + \punkt{(4,41/\teiler)} + \punkt{(5,60/\teiler)} + \punkt{(6,83/\teiler)} + \punkt{(7,110/\teiler)} + + + + \def\erpunkt#1{ + \fill[color=red] #1 circle[radius=0.08]; + \draw #1 circle[radius=0.07]; + } + \erpunkt{(2,50/\teiler)} + \erpunkt{(3,37.66/\teiler)} + + \draw(0,100/\teiler) -- (-0.1,100/\teiler) coordinate[label={left:$100$}]; + \draw(1,0) -- (1,-0.1) coordinate[label={below:$1$}]; +\end{tikzpicture} \ No newline at end of file -- cgit v1.2.1 From b9cca93f61c5a1200503c75ef548ab12cce21887 Mon Sep 17 00:00:00 2001 From: JODBaer Date: Fri, 30 Jul 2021 11:45:36 +0200 Subject: sourc from tikz changed to pdf --- buch/papers/reedsolomon/dtf.tex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/reedsolomon/dtf.tex b/buch/papers/reedsolomon/dtf.tex index 5cee77b..4552bed 100644 --- a/buch/papers/reedsolomon/dtf.tex +++ b/buch/papers/reedsolomon/dtf.tex @@ -50,8 +50,8 @@ Zu Beachten ist auch noch, dass der Fehler um das 20- bis 150-Fache kleiner ist. \begin{figure} \centering \resizebox{1.1\textwidth}{!}{ - %\includegraphics[width=\textwidth]{papers/reedsolomon/figures/plotfft} - \input{papers/reedsolomon/tikz/plotfftraw.tex} + \includegraphics[width=\textwidth]{papers/reedsolomon/figures/plotfft} + %\input{papers/reedsolomon/tikz/plotfftraw.tex} } \caption{Übertragungsabfolge \ref{reedsolomon:subsection:Übertragungsabfolge}} \label{fig:sendorder} -- cgit v1.2.1 From 6c2ea74f867d898626e5ef25c61814cd2aa49bbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20K=C3=BChne?= Date: Sat, 31 Jul 2021 11:57:23 +0200 Subject: neue version --- buch/papers/munkres/teil1.tex | 17 +++++++++++++---- buch/papers/munkres/teil2.tex | 4 ++-- buch/papers/munkres/teil3.tex | 9 +++++---- 3 files changed, 20 insertions(+), 10 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/munkres/teil1.tex b/buch/papers/munkres/teil1.tex index c13732c..4532783 100644 --- a/buch/papers/munkres/teil1.tex +++ b/buch/papers/munkres/teil1.tex @@ -8,21 +8,30 @@ \rhead{Problemstellung} Das spezielle an einem Zuordnungsproblem ist, dass es an jedem Ort nur eine Einheit angeboten bzw. nachgefragt wird. Es werden hier nicht Mengen möglichst kostenminimal von einem zum anderen -Ort transportiert, sondern es geht um die kostenminimale Zuordnung von z.B. Personen, oder Bau-Materialien auf bestimmte Orte, Stellen oder Aufgaben. +Ort transportiert, sondern es geht um die kostenminimale Zuordnung von z.B. Personen, oder Bau-Maschinen auf bestimmte Orte, Stellen oder Aufgaben. Um dieses Problem in einer einfachen, händischen Art und Weise zu lösen wurde der Munkres-Algorithmus, auch die Ungarische Methode genannt, entwickelt. Diese Methode ist ein weiteres Hauptthema dieses Kapitels. \subsection{Zuordnungsproblem an einem konkreten Beispiel \label{munkres:subsection:bonorum}} +Man hat der Fall, wo ein Bauunternehmer einen Bauingenieur beauftragt eine optimale Transportroute für die Umplatzierung seiner Kräne zu eruieren. Das heisst, die Transportstrecke für die Umplatzierung seine Kräne +soll möglichst klein werden. +Die Frage lautet, wie sind die Kräne umzusetzen, damit deren Transportstrecke minimal wird? Bei der normalen Optimierung dürfen normalerweise beliebige reelle Werte angenommen werden.$\mathbb{R}$. +Beim Beispiel mit den Kräne gib es aber ein Problem. Bei der Suche nach der optimalen Lösung darf nur die Methode der ganzzahligen Optimierung gewählt werden.$\mathbb{Z}$. Materialien kann man aufteilen, jedoch Maschinen nicht. Die Bauarbeiter auf der neuen Baustelle benötigen einen ganzen Kran und nicht nur einen halben Kran. Es muss immer ein ganzer Kran von A nach B oder gar kein Kran verschoben werden. Also 1 oder 0. +Doch das Problem bleibt, mit ganzzahligen Punkten kann kein Optimum erzielt werden und ist eine träge, langsame Angelegenheit. \subsection{Zuordnungsproblem abstrakt \label{munkres:subsection:bonorum}} -Es sind alle Angebots- und Bedarfsmengen gleich 1 +In einem Zuordnungsproblem sind alle Angebots- und Bedarfsmengen gleich 1 \begin{equation} a_{i}=b_{j}=1 \end{equation} -\subsection{alternative Darstellungen des Zuordnungsproblems +Das Ziel ist es die Gesamtkosten zu minimieren. Mit Hilfe einer $n\times n$ Matrix $\mathbb{A}$ $\mathbb{\in}$ $\mathbb{R}^{n,n}$ kann dann auch der Faktor Kosten mit in die Rechnung eingebracht werden. + +In der Zelle dieser Matrix sind $a_{i,j}$ die Kosten dargestellt, die entstehen, wenn man z.B. einem Arbeiter $i$ die Aufgabe $j$ zuordnet. + +\subsection{Alternative Darstellungen des Zuordnungsproblems \label{munkres:subsection:bonorum}} \begin{equation} Netzwerk @@ -35,7 +44,7 @@ Bitpartiter Graph \end{equation} Ein bipartiter Graph ist ein mathematisches Modell für Beziehungen zwischen den Elementen zweier Mengen. -Es eignet sich sehr gut zur Untersuchung von Zuordnungsproblemen» +Es eignet sich sehr gut zur Untersuchung von Zuordnungsproblemen. \begin{figure} \centering \includegraphics[width=5cm]{papers/munkres/figures/Netzwerkdarstellung} diff --git a/buch/papers/munkres/teil2.tex b/buch/papers/munkres/teil2.tex index 9a44cd4..a3b249e 100644 --- a/buch/papers/munkres/teil2.tex +++ b/buch/papers/munkres/teil2.tex @@ -7,7 +7,7 @@ \label{munkres:section:teil2}} \rhead{Schwierigkeit der Lösung (Permutationen)} -Eine Permutation ist eine Anordnung von Objekten in einer bestimmten Reihenfolge oder eine Umordnung von Objekten aus einer vorgegebenen Reihung. Ist eine maximale Zuordnung (maximales Matching) gefunden, so steht in jeder Zeile und jeder Spalte der Matrix genau ein Element, das zur optimalen Lösung gehört, eine solche Gruppe von Positionen wird auch als Transversale der Matrix bezeichnet. +Eine Permutation ist eine Anordnung von Objekten in einer bestimmten Reihenfolge oder eine Umordnung von Objekten aus einer vorgegebenen Reihung. Ist eine optimale Zuordnung gefunden, so steht in jeder Zeile und jeder Spalte der Matrix genau ein Element, das zur optimalen Lösung gehört, eine solche Gruppe von Positionen wird auch als Transversale der Matrix bezeichnet. -Die Problemstellung kann auch so formuliert werden, dass man die Zeilen- oder die Spaltenvektoren so umordnet soll, dass die Summe der Elemente in der Hauptdiagonale maximal wird. Hieraus wird sofort ersichtlich, dass es in einer n×n-Matrix genau so viele Möglichkeiten gibt, die Zeilen- bzw. Spaltenvektoren zu ordnen, wie es Permutationen von n Elementen gibt, also n!. Außer bei kleinen Matrizen ist es nahezu aussichtslos, die optimale Lösung durch Berechnung aller Möglichkeiten zu finden. Schon bei einer 10×10-Matrix gibt es nahezu 3,63 Millionen (3.628.800) zu berücksichtigender Permutationen. +Die Problemstellung kann auch so formuliert werden, dass man die Zeilen- oder die Spaltenvektoren so umordnet soll, dass die Summe der Elemente in der Hauptdiagonale maximal wird. Hieraus wird sofort ersichtlich, dass es in einer $n$×$n$-Matrix genau so viele Möglichkeiten gibt, die Zeilen- bzw. Spaltenvektoren zu ordnen, wie es Permutationen von $n$ Elementen gibt, also $n!$. Außer bei kleinen Matrizen ist es nahezu aussichtslos, die optimale Lösung durch Berechnung aller Möglichkeiten zu finden. Schon bei einer 10×10-Matrix gibt es nahezu 3,63 Millionen (3.628.800) zu berücksichtigender Permutationen. diff --git a/buch/papers/munkres/teil3.tex b/buch/papers/munkres/teil3.tex index cd47c92..6307f55 100644 --- a/buch/papers/munkres/teil3.tex +++ b/buch/papers/munkres/teil3.tex @@ -7,7 +7,7 @@ \label{munkres:section:teil3}} \rhead{Der Munkres-Algorithmus (Ungarische Methode)} -Mit der ungarischen Methode können also lineare Optimierungsprobleme gelöst +Mit der ungarischen Methode können also Optimierungsprobleme gelöst werden, die bei gewichteten Zuordnungen in bipartiten Graphen entstehen. Mit ihr kann die eindeutige Zuordnung von Objekten aus zwei Gruppen so optimiert werden, dass die Gesamtkosten minimiert werden bzw.~der @@ -29,15 +29,16 @@ um eine $O(n^3)$-Laufzeit zu erreichen. \subsection{Besondere Leistung der Ungarischen Methode \label{munkres:subsection:malorum}} -Es ist ein kombinatorischer Optimierungsalgorithmus, der das Zuordnungsproblem +Die Ungarische Methode ist ein kombinatorischer Optimierungsalgorithmus, der das Zuordnungsproblem in polynomieller Zeit löst. Der Begriff polynomielle Laufzeit bedeutet, dass die Laufzeit des Programms -wie $n^2$, $n^3$, $n^4$, etc.~wächst und vernünftig skaliert. - +wie $n^2$, $n^3$, $n^4$, etc.~wächst und vernünftig skaliert. $n$ ist hierbei die "Grösse" des Problems. \subsection{Beispiel eines händischen Verfahrens \label{munkres:subsection:malorum}} +Die ungarische Methode kann in einem einfachen händischen Beispiel erläutert werden. Es gibt eine Ausgangsmatrix. Diese Matrix wird in mehreren Schritten immer weiter reduziert. Anschließend erfolgen mehrere Zuordnungen. Hierbei ist zu beachten, dass jede Zeile und jede Spalte immer genau eine eindeutige Zuordnung ergibt. Die optimale Lösung ist erreicht, wenn genau $n$ Zuordnungen gefunden sind. + \begin{figure} \centering \includegraphics[width=14cm]{papers/munkres/figures/beispiel_munkres} -- cgit v1.2.1 From 5c98f91bd4bc2b88c5ee0c746951c91f38963459 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20K=C3=BChne?= Date: Sun, 1 Aug 2021 14:19:47 +0200 Subject: neue version --- buch/papers/munkres/teil3.tex | 57 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 55 insertions(+), 2 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/munkres/teil3.tex b/buch/papers/munkres/teil3.tex index 6307f55..557d179 100644 --- a/buch/papers/munkres/teil3.tex +++ b/buch/papers/munkres/teil3.tex @@ -34,14 +34,67 @@ in polynomieller Zeit löst. Der Begriff polynomielle Laufzeit bedeutet, dass die Laufzeit des Programms wie $n^2$, $n^3$, $n^4$, etc.~wächst und vernünftig skaliert. $n$ ist hierbei die "Grösse" des Problems. +\subsection{Unterschiedliche Anzahl von Quellen und Zielen +\label{munkres:subsection:malorum}} +Es gibt Fälle, in welchen das Ausgangsproblem keine quadratische Form besitzt. Das ist z.B dann der Fall, wenn eine 3 Mitarbeiter 4 Eignungstests abdsolvieren müssen. In diesem Fall wird in der Ungarischen Methode die Matrix künstlich mittels einer Dummy Position quadratisch ergänzt. Dummy-Positionen werden dann mit der größten vorhandenen Zahl aus der Matrix besetzt. Beispielsweise eine $4\times 3$ wird zu einer $4\times 4$ Matrix. + \subsection{Beispiel eines händischen Verfahrens \label{munkres:subsection:malorum}} -Die ungarische Methode kann in einem einfachen händischen Beispiel erläutert werden. Es gibt eine Ausgangsmatrix. Diese Matrix wird in mehreren Schritten immer weiter reduziert. Anschließend erfolgen mehrere Zuordnungen. Hierbei ist zu beachten, dass jede Zeile und jede Spalte immer genau eine eindeutige Zuordnung ergibt. Die optimale Lösung ist erreicht, wenn genau $n$ Zuordnungen gefunden sind. +Die ungarische Methode kann in einem einfachen händischen Beispiel +erläutert werden. Es gibt eine Ausgangsmatrix. Diese Matrix wird in mehreren Schritten immer +weiter reduziert. Anschließend erfolgen mehrere Zuordnungen. Hierbei ist zu beachten, dass +jede Zeile und jede Spalte immer genau eine eindeutige Zuordnung ergibt. +Die optimale Lösung ist erreicht, wenn genau $n$ Zuordnungen gefunden +sind. + +\begin{enumerate} +\item Pro Zeile eruiert man die kleinste Zahl. Diese kleinste Zahl wird bei +allen anderen Ziffern in der jeweiligen Zeile subtrahiert. + +\item Danach zieht man wiederum die kleinste Zahl in jeder Spalte von allen +Zahlen in der Spalte ab. + +\item Es sollen möglichst viele Nullen markiert werden, welche freistehend sind. +(Freistehend bedeutet, sowohl in der jeweiligen Zeile und Spalte nur +eine markierte Null zu haben) + +\item Jeweilige Zeilen eruieren, bei welchen keine markierte Null vorhanden sind und kennzeichnen. + +\item In der vorherigen Zeile die 0 eruieren und die Spalte ebenfalls +kennzeichnen (*2) + +\item Im der selben Spalte die Markierte Null eruieren und die dazugehörige +Zeile kennzeichnen (*3) + +\item Alle Zeilen durchstreichen, welche KEINE Kennzeichnungen (*) haben + +\item Alle Spalten durchstreichen, welche EINE Kennzeichnung besitzt! (hier, *2) + +\item Kleinste Ziffer auswählen, welche nicht schon durchgestrichen sind. +(Im Beispiel ist es die Zahl 1. (Egal welche 1) + +\item Die eruierte kleinste Ziffer, wird von den nicht durchgestrichenen Ziffern +subtrahiert. Danach muss die Matrix wieder komplettiert werden. (inkl. Unterstreichen) + +\item Jeweilige Zahlen eruieren, welche vorgängig doppelt durchgestrichen wurden. + +\item Kleinste eruierte Ziffer von vorhin auf die zwei markierten Ziffern addieren. + +\item Es sollen wiederum von neuem möglichst viele Nullen markiert werden, +welche freistehend sind. In diesem Schritt werden nur die markierten Nullen betrachtet. + +\item Aus allen markierten Nullen in eine eins umwandeln. + +\item Die restlichen Ziffern, durch eine Null ersetzen. + +\item Zu guter letzt soll überall wo eine 1 steht, in der Ausgangsmatrix die +dazugehörige Ziffer ausgewählt werden. Nach Einsetzen und Eruieren der Zahlen ergeben sich nach Summieren der Zahlen der minimalste Transportweg. +\end{enumerate} \begin{figure} \centering -\includegraphics[width=14cm]{papers/munkres/figures/beispiel_munkres} +\includegraphics[width=14cm]{papers/munkres/figures/Ungarische Methode Beispiel} \caption{Händisches Beispiel des Munkres Algorithmus.} \label{munkres:Vr2} \end{figure} -- cgit v1.2.1 From 65966d22f384fa01a8db10b7fd47857efde92a81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20K=C3=BChne?= Date: Mon, 2 Aug 2021 11:06:30 +0200 Subject: neue version --- buch/papers/munkres/teil1.tex | 24 +++++++++++++++--------- buch/papers/munkres/teil3.tex | 2 +- 2 files changed, 16 insertions(+), 10 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/munkres/teil1.tex b/buch/papers/munkres/teil1.tex index 4532783..867830f 100644 --- a/buch/papers/munkres/teil1.tex +++ b/buch/papers/munkres/teil1.tex @@ -7,17 +7,25 @@ \label{munkres:section:teil1}} \rhead{Problemstellung} -Das spezielle an einem Zuordnungsproblem ist, dass es an jedem Ort nur eine Einheit angeboten bzw. nachgefragt wird. Es werden hier nicht Mengen möglichst kostenminimal von einem zum anderen +Das Spezielle an einem Zuordnungsproblem ist, dass es an jedem Ort nur eine Einheit angeboten bzw. nachgefragt wird. Es werden hier nicht Mengen möglichst kostenminimal von einem zum anderen Ort transportiert, sondern es geht um die kostenminimale Zuordnung von z.B. Personen, oder Bau-Maschinen auf bestimmte Orte, Stellen oder Aufgaben. Um dieses Problem in einer einfachen, händischen Art und Weise zu lösen wurde der Munkres-Algorithmus, auch die Ungarische Methode genannt, entwickelt. Diese Methode ist ein weiteres Hauptthema dieses Kapitels. \subsection{Zuordnungsproblem an einem konkreten Beispiel \label{munkres:subsection:bonorum}} -Man hat der Fall, wo ein Bauunternehmer einen Bauingenieur beauftragt eine optimale Transportroute für die Umplatzierung seiner Kräne zu eruieren. Das heisst, die Transportstrecke für die Umplatzierung seine Kräne +Man hat den Fall, wo ein Bauunternehmer einen Bauingenieur beauftragt, eine optimale Transportroute für die Umplatzierung seiner Kräne zu eruieren. Das heisst, die Transportstrecke für die Umplatzierung seine Kräne soll möglichst klein werden. -Die Frage lautet, wie sind die Kräne umzusetzen, damit deren Transportstrecke minimal wird? Bei der normalen Optimierung dürfen normalerweise beliebige reelle Werte angenommen werden.$\mathbb{R}$. -Beim Beispiel mit den Kräne gib es aber ein Problem. Bei der Suche nach der optimalen Lösung darf nur die Methode der ganzzahligen Optimierung gewählt werden.$\mathbb{Z}$. Materialien kann man aufteilen, jedoch Maschinen nicht. Die Bauarbeiter auf der neuen Baustelle benötigen einen ganzen Kran und nicht nur einen halben Kran. Es muss immer ein ganzer Kran von A nach B oder gar kein Kran verschoben werden. Also 1 oder 0. -Doch das Problem bleibt, mit ganzzahligen Punkten kann kein Optimum erzielt werden und ist eine träge, langsame Angelegenheit. +Die Frage lautet, wie sind die Kräne umzusetzen, damit deren Transportstrecke minimal wird? Bei der normalen Optimierung dürfen normalerweise beliebige reelle Werte angenommen werden $\mathbb{R}$. +Beim Beispiel mit den Kräne gibt es aber ein Problem. Bei der Suche nach der optimalen Lösung darf nur die Methode der ganzzahligen Optimierung gewählt werden $\mathbb{Z}$. Materialien kann man aufteilen, jedoch Maschinen nicht. Die Bauarbeiter auf der neuen Baustelle benötigen einen ganzen Kran und nicht nur einen halben Kran. Es muss immer ein ganzer Kran von A nach B oder gar kein Kran verschoben werden. Also 1 oder 0. +Für solche Optimierungsproblem für reelle Varianten sind verschiedene Verfahren entwickelt worden, die im Allgemeinen auch sehr effizient sind. Das reelle Problem ist also in einer einfachen Art uns weise lösbar. Doch das Problem bleibt, wie in der Illustration oben ersichtlich. Es kann mit ganzzahligen Punkten kein Optimum erzielt werden. Das Ziel ist es an das Optimum so nah wie möglich heranzukommen und dies ist eine vergleichsweise träge und langsame Angelegenheit. + +\begin{figure} +\centering +\includegraphics[width=5cm]{papers/munkres/figures/ganzzahlige_punkte} +\caption{$K_{3,3}$ Problem der Ganzzahligkeit.} +\label{munkres:Vr2} +\end{figure} + \subsection{Zuordnungsproblem abstrakt \label{munkres:subsection:bonorum}} @@ -26,10 +34,8 @@ In einem Zuordnungsproblem sind alle Angebots- und Bedarfsmengen gleich 1 \begin{equation} a_{i}=b_{j}=1 \end{equation} - -Das Ziel ist es die Gesamtkosten zu minimieren. Mit Hilfe einer $n\times n$ Matrix $\mathbb{A}$ $\mathbb{\in}$ $\mathbb{R}^{n,n}$ kann dann auch der Faktor Kosten mit in die Rechnung eingebracht werden. - -In der Zelle dieser Matrix sind $a_{i,j}$ die Kosten dargestellt, die entstehen, wenn man z.B. einem Arbeiter $i$ die Aufgabe $j$ zuordnet. +Das Ziel ist es die Gesamtkosten zu minimieren. Mit Hilfe einer $n\times n$ Matrix $\mathbb{A}$ $\mathbb{\in}$ $\mathbb{R}^{n,n}$ kann der Faktor Kosten mit in die Rechnung eingebracht werden. +In der Zelle dieser Matrix sind $a_{i,j}$ die Wege dargestellt, die entstehen, wenn man z.B. einem Kran $i$ den Einsatzort $j$ zuordnet. \subsection{Alternative Darstellungen des Zuordnungsproblems \label{munkres:subsection:bonorum}} diff --git a/buch/papers/munkres/teil3.tex b/buch/papers/munkres/teil3.tex index 557d179..7faf958 100644 --- a/buch/papers/munkres/teil3.tex +++ b/buch/papers/munkres/teil3.tex @@ -94,7 +94,7 @@ dazugehörige Ziffer ausgewählt werden. Nach Einsetzen und Eruieren der Zahlen \begin{figure} \centering -\includegraphics[width=14cm]{papers/munkres/figures/Ungarische Methode Beispiel} +\includegraphics[width=14cm]{papers/munkres/figures/Ungarische_Methode_Beispiel} \caption{Händisches Beispiel des Munkres Algorithmus.} \label{munkres:Vr2} \end{figure} -- cgit v1.2.1 From a8df39c46bc2ac0e92fc36d14d9d320d748bdf70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20K=C3=BChne?= Date: Mon, 2 Aug 2021 11:37:31 +0200 Subject: neue version --- buch/papers/munkres/teil1.tex | 2 +- buch/papers/munkres/teil3.tex | 22 ++++++++++++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) (limited to 'buch/papers') diff --git a/buch/papers/munkres/teil1.tex b/buch/papers/munkres/teil1.tex index 867830f..d22b57f 100644 --- a/buch/papers/munkres/teil1.tex +++ b/buch/papers/munkres/teil1.tex @@ -22,7 +22,7 @@ Für solche Optimierungsproblem für reelle Varianten sind verschiedene Verfahre \begin{figure} \centering \includegraphics[width=5cm]{papers/munkres/figures/ganzzahlige_punkte} -\caption{$K_{3,3}$ Problem der Ganzzahligkeit.} +\caption{Problem der Ganzzahligkeit.} \label{munkres:Vr2} \end{figure} diff --git a/buch/papers/munkres/teil3.tex b/buch/papers/munkres/teil3.tex index 7faf958..6dadf32 100644 --- a/buch/papers/munkres/teil3.tex +++ b/buch/papers/munkres/teil3.tex @@ -94,7 +94,25 @@ dazugehörige Ziffer ausgewählt werden. Nach Einsetzen und Eruieren der Zahlen \begin{figure} \centering -\includegraphics[width=14cm]{papers/munkres/figures/Ungarische_Methode_Beispiel} -\caption{Händisches Beispiel des Munkres Algorithmus.} +\includegraphics[width=14cm]{papers/munkres/figures/Ungarische_Methode_Beispiel.png} +\caption{Händisches Beispiel des Munkres Algorithmus, minimalster Transportweg.} \label{munkres:Vr2} \end{figure} + +\subsection{Zuordnung der Kräne +\label{munkres:subsection:malorum}} + +\begin{itemize} +\item Der Kran von Baustelle A1 soll zur Baustelle B2. +\item Der Kran von Baustelle A2 soll zur Baustelle B3. +\item Der Kran von Baustelle A3 soll zur Baustelle B4. +\item Der Kran von Baustelle A4 soll zur Baustelle B1. +\end{itemize} + +\begin{figure} +\centering +\includegraphics[width=3cm]{papers/munkres/figures/Ungarische Methode Beispiel Zuweisung.png} +\caption{Händisches Beispiel des Munkres Algorithmus, Zuweisung der Kräne } +\label{munkres:Vr2} +\end{figure} + -- cgit v1.2.1 From 8feb90a7677b2c93493958c8a22008c293cca0db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20K=C3=BChne?= Date: Mon, 2 Aug 2021 11:43:35 +0200 Subject: fehlendes bild --- .../munkres/figures/Ungarische_Methode_Beispiel.png | Bin 0 -> 1179631 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 buch/papers/munkres/figures/Ungarische_Methode_Beispiel.png (limited to 'buch/papers') diff --git a/buch/papers/munkres/figures/Ungarische_Methode_Beispiel.png b/buch/papers/munkres/figures/Ungarische_Methode_Beispiel.png new file mode 100644 index 0000000..fb4d061 Binary files /dev/null and b/buch/papers/munkres/figures/Ungarische_Methode_Beispiel.png differ -- cgit v1.2.1 From 97d2d95b6d2f50444221f060d986095c0129628f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20K=C3=BChne?= Date: Mon, 2 Aug 2021 11:45:45 +0200 Subject: fehlendes bild --- .../figures/Ungarische_Methode_Beispiel_Zuw.png | Bin 0 -> 117508 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 buch/papers/munkres/figures/Ungarische_Methode_Beispiel_Zuw.png (limited to 'buch/papers') diff --git a/buch/papers/munkres/figures/Ungarische_Methode_Beispiel_Zuw.png b/buch/papers/munkres/figures/Ungarische_Methode_Beispiel_Zuw.png new file mode 100644 index 0000000..73217d3 Binary files /dev/null and b/buch/papers/munkres/figures/Ungarische_Methode_Beispiel_Zuw.png differ -- cgit v1.2.1 From 2ce8b93410c15a7f4d72712d4e4a3e46e809bf71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20K=C3=BChne?= Date: Mon, 2 Aug 2021 11:46:17 +0200 Subject: fehlendes bild --- buch/papers/munkres/figures/ganzzahlige_punkte.png | Bin 0 -> 257390 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 buch/papers/munkres/figures/ganzzahlige_punkte.png (limited to 'buch/papers') diff --git a/buch/papers/munkres/figures/ganzzahlige_punkte.png b/buch/papers/munkres/figures/ganzzahlige_punkte.png new file mode 100644 index 0000000..5689825 Binary files /dev/null and b/buch/papers/munkres/figures/ganzzahlige_punkte.png differ -- cgit v1.2.1 From cbd9a9d63f0dfcd3141a9a420dac959e554f9b57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20K=C3=BChne?= Date: Mon, 2 Aug 2021 11:49:47 +0200 Subject: neue version --- buch/papers/munkres/teil3.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'buch/papers') diff --git a/buch/papers/munkres/teil3.tex b/buch/papers/munkres/teil3.tex index 6dadf32..874baae 100644 --- a/buch/papers/munkres/teil3.tex +++ b/buch/papers/munkres/teil3.tex @@ -111,7 +111,7 @@ dazugehörige Ziffer ausgewählt werden. Nach Einsetzen und Eruieren der Zahlen \begin{figure} \centering -\includegraphics[width=3cm]{papers/munkres/figures/Ungarische Methode Beispiel Zuweisung.png} +\includegraphics[width=3cm]{papers/munkres/figures/Ungarische_Methode_Beispiel_Zuw.png} \caption{Händisches Beispiel des Munkres Algorithmus, Zuweisung der Kräne } \label{munkres:Vr2} \end{figure} -- cgit v1.2.1