From 5e42e1c61a1ea764a7dc70401b8d579c9e4159b4 Mon Sep 17 00:00:00 2001 From: Tim Stadtmann <tim.stadtmann@rwth-aachen.de> Date: Fri, 17 Feb 2017 11:27:21 +0100 Subject: [PATCH] Prepare CommLayer comments to html-documentation ... and delete .pdf-documentation for now --- docs/_build/latex/Makefile | 78 -- docs/_build/latex/MindstormsEV3Toolbox.aux | 118 -- docs/_build/latex/MindstormsEV3Toolbox.idx | 51 - docs/_build/latex/MindstormsEV3Toolbox.ilg | 7 - docs/_build/latex/MindstormsEV3Toolbox.ind | 93 -- docs/_build/latex/MindstormsEV3Toolbox.log | 1091 ----------------- docs/_build/latex/MindstormsEV3Toolbox.out | 6 - docs/_build/latex/MindstormsEV3Toolbox.pdf | Bin 136359 -> 0 bytes docs/_build/latex/MindstormsEV3Toolbox.tex | 1256 -------------------- docs/_build/latex/MindstormsEV3Toolbox.toc | 27 - docs/_build/latex/fncychap.sty | 683 ----------- docs/_build/latex/iftex.sty | 97 -- docs/_build/latex/needspace.sty | 35 - docs/_build/latex/newfloat.sty | 737 ------------ docs/_build/latex/python.ist | 11 - docs/_build/latex/sphinx.sty | 917 -------------- docs/_build/latex/sphinxhowto.cls | 111 -- docs/_build/latex/sphinxmanual.cls | 130 -- docs/_build/latex/tabulary.sty | 452 ------- source/Command.m | 308 +++-- source/CommunicationInterface.m | 208 ++-- source/Motor.m | 57 +- 22 files changed, 280 insertions(+), 6193 deletions(-) delete mode 100644 docs/_build/latex/Makefile delete mode 100644 docs/_build/latex/MindstormsEV3Toolbox.aux delete mode 100644 docs/_build/latex/MindstormsEV3Toolbox.idx delete mode 100644 docs/_build/latex/MindstormsEV3Toolbox.ilg delete mode 100644 docs/_build/latex/MindstormsEV3Toolbox.ind delete mode 100644 docs/_build/latex/MindstormsEV3Toolbox.log delete mode 100644 docs/_build/latex/MindstormsEV3Toolbox.out delete mode 100644 docs/_build/latex/MindstormsEV3Toolbox.pdf delete mode 100644 docs/_build/latex/MindstormsEV3Toolbox.tex delete mode 100644 docs/_build/latex/MindstormsEV3Toolbox.toc delete mode 100644 docs/_build/latex/fncychap.sty delete mode 100644 docs/_build/latex/iftex.sty delete mode 100644 docs/_build/latex/needspace.sty delete mode 100644 docs/_build/latex/newfloat.sty delete mode 100644 docs/_build/latex/python.ist delete mode 100644 docs/_build/latex/sphinx.sty delete mode 100644 docs/_build/latex/sphinxhowto.cls delete mode 100644 docs/_build/latex/sphinxmanual.cls delete mode 100644 docs/_build/latex/tabulary.sty diff --git a/docs/_build/latex/Makefile b/docs/_build/latex/Makefile deleted file mode 100644 index d748006..0000000 --- a/docs/_build/latex/Makefile +++ /dev/null @@ -1,78 +0,0 @@ -# Makefile for Sphinx LaTeX output - -ALLDOCS = $(basename $(wildcard *.tex)) -ALLPDF = $(addsuffix .pdf,$(ALLDOCS)) -ALLDVI = $(addsuffix .dvi,$(ALLDOCS)) - -# Prefix for archive names -ARCHIVEPRREFIX = -# Additional LaTeX options -LATEXOPTS = -# format: pdf or dvi -FMT = pdf - -LATEX = latex -PDFLATEX = pdflatex -MAKEINDEX = makeindex - -all: $(ALLPDF) -all-pdf: $(ALLPDF) -all-dvi: $(ALLDVI) -all-ps: all-dvi - for f in *.dvi; do dvips $$f; done - -all-pdf-ja: - for f in *.pdf *.png *.gif *.jpg *.jpeg; do extractbb $$f; done - for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done - for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done - for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done - -for f in *.idx; do mendex -U -f -d "`basename $$f .idx`.dic" -s python.ist $$f; done - for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done - for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done - for f in *.dvi; do dvipdfmx $$f; done - -zip: all-$(FMT) - mkdir $(ARCHIVEPREFIX)docs-$(FMT) - cp $(ALLPDF) $(ARCHIVEPREFIX)docs-$(FMT) - zip -q -r -9 $(ARCHIVEPREFIX)docs-$(FMT).zip $(ARCHIVEPREFIX)docs-$(FMT) - rm -r $(ARCHIVEPREFIX)docs-$(FMT) - -tar: all-$(FMT) - mkdir $(ARCHIVEPREFIX)docs-$(FMT) - cp $(ALLPDF) $(ARCHIVEPREFIX)docs-$(FMT) - tar cf $(ARCHIVEPREFIX)docs-$(FMT).tar $(ARCHIVEPREFIX)docs-$(FMT) - rm -r $(ARCHIVEPREFIX)docs-$(FMT) - -gz: tar - gzip -9 < $(ARCHIVEPREFIX)docs-$(FMT).tar > $(ARCHIVEPREFIX)docs-$(FMT).tar.gz - -bz2: tar - bzip2 -9 -k $(ARCHIVEPREFIX)docs-$(FMT).tar - -xz: tar - xz -9 -k $(ARCHIVEPREFIX)docs-$(FMT).tar - -# The number of LaTeX runs is quite conservative, but I don't expect it -# to get run often, so the little extra time won't hurt. -%.dvi: %.tex - $(LATEX) $(LATEXOPTS) '$<' - $(LATEX) $(LATEXOPTS) '$<' - $(LATEX) $(LATEXOPTS) '$<' - -$(MAKEINDEX) -s python.ist '$(basename $<).idx' - $(LATEX) $(LATEXOPTS) '$<' - $(LATEX) $(LATEXOPTS) '$<' - -%.pdf: %.tex - $(PDFLATEX) $(LATEXOPTS) '$<' - $(PDFLATEX) $(LATEXOPTS) '$<' - $(PDFLATEX) $(LATEXOPTS) '$<' - -$(MAKEINDEX) -s python.ist '$(basename $<).idx' - $(PDFLATEX) $(LATEXOPTS) '$<' - $(PDFLATEX) $(LATEXOPTS) '$<' - -clean: - rm -f *.log *.ind *.aux *.toc *.syn *.idx *.out *.ilg *.pla *.ps *.tar *.tar.gz *.tar.bz2 *.tar.xz $(ALLPDF) $(ALLDVI) - -.PHONY: all all-pdf all-dvi all-ps clean zip tar gz bz2 xz -.PHONY: all-pdf-ja - diff --git a/docs/_build/latex/MindstormsEV3Toolbox.aux b/docs/_build/latex/MindstormsEV3Toolbox.aux deleted file mode 100644 index 82c29bb..0000000 --- a/docs/_build/latex/MindstormsEV3Toolbox.aux +++ /dev/null @@ -1,118 +0,0 @@ -\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]{} -\select@language{english} -\@writefile{toc}{\select@language{english}} -\@writefile{lof}{\select@language{english}} -\@writefile{lot}{\select@language{english}} -\newlabel{index::doc}{{}{1}{}{section*.2}{}} -\newlabel{source:module-source}{{}{1}{}{section*.3}{}} -\@writefile{toc}{\contentsline {chapter}{\numberline {1}EV3}{3}{chapter.1}} -\@writefile{lof}{\addvspace {10\p@ }} -\@writefile{lot}{\addvspace {10\p@ }} -\@writefile{loliteral-block}{\addvspace {10\p@ }} -\newlabel{source:ev3}{{1}{3}{EV3}{chapter.1}{}} -\newlabel{source::doc}{{1}{3}{EV3}{chapter.1}{}} -\newlabel{source:toolbox-for-controlling-lego-mindstorms-ev3-with-matlab}{{1}{3}{EV3}{chapter.1}{}} -\newlabel{source:source.EV3}{{1}{3}{EV3}{section*.4}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{3}{paragraph*.5}} -\newlabel{source:source.EV3.motorA}{{1}{3}{Notes}{section*.6}{}} -\newlabel{source:source.EV3.motorB}{{1}{3}{Notes}{section*.7}{}} -\newlabel{source:source.EV3.motorC}{{1}{3}{Notes}{section*.8}{}} -\newlabel{source:source.EV3.motorD}{{1}{3}{Notes}{section*.9}{}} -\newlabel{source:source.EV3.sensor1}{{1}{3}{Notes}{section*.10}{}} -\newlabel{source:source.EV3.sensor2}{{1}{3}{Notes}{section*.11}{}} -\newlabel{source:source.EV3.sensor3}{{1}{3}{Notes}{section*.12}{}} -\newlabel{source:source.EV3.sensor4}{{1}{3}{Notes}{section*.13}{}} -\newlabel{source:source.EV3.debug}{{1}{3}{Notes}{section*.14}{}} -\newlabel{source:source.EV3.batteryMode}{{1}{3}{Notes}{section*.15}{}} -\newlabel{source:source.EV3.batteryValue}{{1}{4}{Notes}{section*.16}{}} -\newlabel{source:source.EV3.isConnected}{{1}{4}{Notes}{section*.17}{}} -\@writefile{toc}{\contentsline {paragraph}{Examples}{4}{paragraph*.18}} -\newlabel{source:source.EV3.beep}{{1}{4}{Examples}{section*.19}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{4}{paragraph*.20}} -\@writefile{toc}{\contentsline {paragraph}{Example}{4}{paragraph*.21}} -\newlabel{source:source.EV3.connect}{{1}{4}{Examples}{section*.22}{}} -\@writefile{toc}{\contentsline {paragraph}{Examples}{4}{paragraph*.23}} -\newlabel{source:source.EV3.disconnect}{{1}{4}{Examples}{section*.24}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{4}{paragraph*.25}} -\@writefile{toc}{\contentsline {paragraph}{Example}{5}{paragraph*.26}} -\newlabel{source:source.EV3.playTone}{{1}{5}{Examples}{section*.27}{}} -\@writefile{toc}{\contentsline {paragraph}{Example}{5}{paragraph*.28}} -\newlabel{source:source.EV3.setProperties}{{1}{5}{Examples}{section*.29}{}} -\@writefile{toc}{\contentsline {paragraph}{Example}{5}{paragraph*.30}} -\newlabel{source:source.EV3.stopAllMotors}{{1}{5}{Examples}{section*.31}{}} -\newlabel{source:source.EV3.stopTone}{{1}{5}{Examples}{section*.32}{}} -\@writefile{toc}{\contentsline {paragraph}{Example}{5}{paragraph*.33}} -\newlabel{source:source.EV3.tonePlayed}{{1}{5}{Examples}{section*.34}{}} -\@writefile{toc}{\contentsline {chapter}{\numberline {2}Motor}{7}{chapter.2}} -\@writefile{lof}{\addvspace {10\p@ }} -\@writefile{lot}{\addvspace {10\p@ }} -\@writefile{loliteral-block}{\addvspace {10\p@ }} -\newlabel{source:motor}{{2}{7}{Motor}{chapter.2}{}} -\newlabel{source:source.Motor}{{2}{7}{Motor}{section*.35}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{7}{paragraph*.36}} -\newlabel{source:source.Motor.power}{{2}{7}{Notes}{section*.37}{}} -\newlabel{source:source.Motor.speedRegulation}{{2}{7}{Notes}{section*.38}{}} -\newlabel{source:source.Motor.smoothStart}{{2}{7}{Notes}{section*.39}{}} -\newlabel{source:source.Motor.smoothStop}{{2}{7}{Notes}{section*.40}{}} -\newlabel{source:source.Motor.limitValue}{{2}{7}{Notes}{section*.41}{}} -\newlabel{source:source.Motor.limitMode}{{2}{7}{Notes}{section*.42}{}} -\newlabel{source:source.Motor.brakeMode}{{2}{7}{Notes}{section*.43}{}} -\newlabel{source:source.Motor.debug}{{2}{8}{Notes}{section*.44}{}} -\newlabel{source:source.Motor.isRunning}{{2}{8}{Notes}{section*.45}{}} -\newlabel{source:source.Motor.tachoCount}{{2}{8}{Notes}{section*.46}{}} -\newlabel{source:source.Motor.currentSpeed}{{2}{8}{Notes}{section*.47}{}} -\newlabel{source:source.Motor.type}{{2}{8}{Notes}{section*.48}{}} -\newlabel{source:source.Motor.internalReset}{{2}{8}{Notes}{section*.49}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{8}{paragraph*.50}} -\newlabel{source:source.Motor.resetTachoCount}{{2}{8}{Notes}{section*.51}{}} -\newlabel{source:source.Motor.setBrake}{{2}{8}{Notes}{section*.52}{}} -\newlabel{source:source.Motor.setProperties}{{2}{8}{Notes}{section*.53}{}} -\@writefile{toc}{\contentsline {paragraph}{Example}{9}{paragraph*.54}} -\newlabel{source:source.Motor.start}{{2}{9}{Notes}{section*.55}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{9}{paragraph*.56}} -\newlabel{source:source.Motor.stop}{{2}{9}{Notes}{section*.57}{}} -\newlabel{source:source.Motor.syncedStart}{{2}{9}{Notes}{section*.58}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{10}{paragraph*.59}} -\@writefile{toc}{\contentsline {paragraph}{Example}{10}{paragraph*.60}} -\newlabel{source:source.Motor.syncedStop}{{2}{10}{Notes}{section*.61}{}} -\newlabel{source:source.Motor.waitFor}{{2}{10}{Notes}{section*.62}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{10}{paragraph*.63}} -\@writefile{toc}{\contentsline {chapter}{\numberline {3}Sensor}{11}{chapter.3}} -\@writefile{lof}{\addvspace {10\p@ }} -\@writefile{lot}{\addvspace {10\p@ }} -\@writefile{loliteral-block}{\addvspace {10\p@ }} -\newlabel{source:sensor}{{3}{11}{Sensor}{chapter.3}{}} -\newlabel{source:source.Sensor}{{3}{11}{Sensor}{section*.64}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{11}{paragraph*.65}} -\newlabel{source:source.Sensor.mode}{{3}{11}{Notes}{section*.66}{}} -\newlabel{source:source.Sensor.debug}{{3}{13}{Notes}{section*.67}{}} -\newlabel{source:source.Sensor.value}{{3}{13}{Notes}{section*.68}{}} -\newlabel{source:source.Sensor.type}{{3}{13}{Notes}{section*.69}{}} -\newlabel{source:source.Sensor.reset}{{3}{13}{Notes}{section*.70}{}} -\@writefile{toc}{\contentsline {paragraph}{Notes}{13}{paragraph*.71}} -\newlabel{source:source.Sensor.setProperties}{{3}{13}{Notes}{section*.72}{}} -\@writefile{toc}{\contentsline {paragraph}{Example}{14}{paragraph*.73}} -\@writefile{toc}{\contentsline {chapter}{\numberline {4}Indices and tables}{15}{chapter.4}} -\@writefile{lof}{\addvspace {10\p@ }} -\@writefile{lot}{\addvspace {10\p@ }} -\@writefile{loliteral-block}{\addvspace {10\p@ }} -\newlabel{index:indices-and-tables}{{4}{15}{Indices and tables}{chapter.4}{}} -\@writefile{toc}{\contentsline {chapter}{MATLAB Module Index}{17}{section*.74}} -\@writefile{toc}{\contentsline {chapter}{Index}{19}{section*.75}} diff --git a/docs/_build/latex/MindstormsEV3Toolbox.idx b/docs/_build/latex/MindstormsEV3Toolbox.idx deleted file mode 100644 index 98c686c..0000000 --- a/docs/_build/latex/MindstormsEV3Toolbox.idx +++ /dev/null @@ -1,51 +0,0 @@ -\indexentry{source (module)|hyperpage}{1} -\indexentry{EV3 (class in source)|hyperpage}{3} -\indexentry{motorA (source.EV3 attribute)|hyperpage}{3} -\indexentry{motorB (source.EV3 attribute)|hyperpage}{3} -\indexentry{motorC (source.EV3 attribute)|hyperpage}{3} -\indexentry{motorD (source.EV3 attribute)|hyperpage}{3} -\indexentry{sensor1 (source.EV3 attribute)|hyperpage}{3} -\indexentry{sensor2 (source.EV3 attribute)|hyperpage}{3} -\indexentry{sensor3 (source.EV3 attribute)|hyperpage}{3} -\indexentry{sensor4 (source.EV3 attribute)|hyperpage}{3} -\indexentry{debug (source.EV3 attribute)|hyperpage}{3} -\indexentry{batteryMode (source.EV3 attribute)|hyperpage}{3} -\indexentry{batteryValue (source.EV3 attribute)|hyperpage}{4} -\indexentry{isConnected (source.EV3 attribute)|hyperpage}{4} -\indexentry{beep() (source.EV3 method)|hyperpage}{4} -\indexentry{connect() (source.EV3 method)|hyperpage}{4} -\indexentry{disconnect() (source.EV3 method)|hyperpage}{4} -\indexentry{playTone() (source.EV3 method)|hyperpage}{5} -\indexentry{setProperties() (source.EV3 method)|hyperpage}{5} -\indexentry{stopAllMotors() (source.EV3 method)|hyperpage}{5} -\indexentry{stopTone() (source.EV3 method)|hyperpage}{5} -\indexentry{tonePlayed() (source.EV3 method)|hyperpage}{5} -\indexentry{Motor (class in source)|hyperpage}{7} -\indexentry{power (source.Motor attribute)|hyperpage}{7} -\indexentry{speedRegulation (source.Motor attribute)|hyperpage}{7} -\indexentry{smoothStart (source.Motor attribute)|hyperpage}{7} -\indexentry{smoothStop (source.Motor attribute)|hyperpage}{7} -\indexentry{limitValue (source.Motor attribute)|hyperpage}{7} -\indexentry{limitMode (source.Motor attribute)|hyperpage}{7} -\indexentry{brakeMode (source.Motor attribute)|hyperpage}{7} -\indexentry{debug (source.Motor attribute)|hyperpage}{8} -\indexentry{isRunning (source.Motor attribute)|hyperpage}{8} -\indexentry{tachoCount (source.Motor attribute)|hyperpage}{8} -\indexentry{currentSpeed (source.Motor attribute)|hyperpage}{8} -\indexentry{type (source.Motor attribute)|hyperpage}{8} -\indexentry{internalReset() (source.Motor method)|hyperpage}{8} -\indexentry{resetTachoCount() (source.Motor method)|hyperpage}{8} -\indexentry{setBrake() (source.Motor method)|hyperpage}{8} -\indexentry{setProperties() (source.Motor method)|hyperpage}{8} -\indexentry{start() (source.Motor method)|hyperpage}{9} -\indexentry{stop() (source.Motor method)|hyperpage}{9} -\indexentry{syncedStart() (source.Motor method)|hyperpage}{9} -\indexentry{syncedStop() (source.Motor method)|hyperpage}{10} -\indexentry{waitFor() (source.Motor method)|hyperpage}{10} -\indexentry{Sensor (class in source)|hyperpage}{11} -\indexentry{mode (source.Sensor attribute)|hyperpage}{11} -\indexentry{debug (source.Sensor attribute)|hyperpage}{13} -\indexentry{value (source.Sensor attribute)|hyperpage}{13} -\indexentry{type (source.Sensor attribute)|hyperpage}{13} -\indexentry{reset() (source.Sensor method)|hyperpage}{13} -\indexentry{setProperties() (source.Sensor method)|hyperpage}{13} diff --git a/docs/_build/latex/MindstormsEV3Toolbox.ilg b/docs/_build/latex/MindstormsEV3Toolbox.ilg deleted file mode 100644 index 7d5536a..0000000 --- a/docs/_build/latex/MindstormsEV3Toolbox.ilg +++ /dev/null @@ -1,7 +0,0 @@ -This is makeindex, version 2.15 [TeX Live 2013] (kpathsea + Thai support). -Scanning style file ./python.ist......done (6 attributes redefined, 0 ignored). -Scanning input file MindstormsEV3Toolbox.idx....done (51 entries accepted, 0 rejected). -Sorting entries....done (302 comparisons). -Generating output file MindstormsEV3Toolbox.ind....done (93 lines written, 0 warnings). -Output written in MindstormsEV3Toolbox.ind. -Transcript written in MindstormsEV3Toolbox.ilg. diff --git a/docs/_build/latex/MindstormsEV3Toolbox.ind b/docs/_build/latex/MindstormsEV3Toolbox.ind deleted file mode 100644 index 3d4ec78..0000000 --- a/docs/_build/latex/MindstormsEV3Toolbox.ind +++ /dev/null @@ -1,93 +0,0 @@ -\begin{theindex} -\def\bigletter#1{{\Large\sffamily#1}\nopagebreak\vspace{1mm}} - - \bigletter B - \item batteryMode (source.EV3 attribute), \hyperpage{3} - \item batteryValue (source.EV3 attribute), \hyperpage{4} - \item beep() (source.EV3 method), \hyperpage{4} - \item brakeMode (source.Motor attribute), \hyperpage{7} - - \indexspace - \bigletter C - \item connect() (source.EV3 method), \hyperpage{4} - \item currentSpeed (source.Motor attribute), \hyperpage{8} - - \indexspace - \bigletter D - \item debug (source.EV3 attribute), \hyperpage{3} - \item debug (source.Motor attribute), \hyperpage{8} - \item debug (source.Sensor attribute), \hyperpage{13} - \item disconnect() (source.EV3 method), \hyperpage{4} - - \indexspace - \bigletter E - \item EV3 (class in source), \hyperpage{3} - - \indexspace - \bigletter I - \item internalReset() (source.Motor method), \hyperpage{8} - \item isConnected (source.EV3 attribute), \hyperpage{4} - \item isRunning (source.Motor attribute), \hyperpage{8} - - \indexspace - \bigletter L - \item limitMode (source.Motor attribute), \hyperpage{7} - \item limitValue (source.Motor attribute), \hyperpage{7} - - \indexspace - \bigletter M - \item mode (source.Sensor attribute), \hyperpage{11} - \item Motor (class in source), \hyperpage{7} - \item motorA (source.EV3 attribute), \hyperpage{3} - \item motorB (source.EV3 attribute), \hyperpage{3} - \item motorC (source.EV3 attribute), \hyperpage{3} - \item motorD (source.EV3 attribute), \hyperpage{3} - - \indexspace - \bigletter P - \item playTone() (source.EV3 method), \hyperpage{5} - \item power (source.Motor attribute), \hyperpage{7} - - \indexspace - \bigletter R - \item reset() (source.Sensor method), \hyperpage{13} - \item resetTachoCount() (source.Motor method), \hyperpage{8} - - \indexspace - \bigletter S - \item Sensor (class in source), \hyperpage{11} - \item sensor1 (source.EV3 attribute), \hyperpage{3} - \item sensor2 (source.EV3 attribute), \hyperpage{3} - \item sensor3 (source.EV3 attribute), \hyperpage{3} - \item sensor4 (source.EV3 attribute), \hyperpage{3} - \item setBrake() (source.Motor method), \hyperpage{8} - \item setProperties() (source.EV3 method), \hyperpage{5} - \item setProperties() (source.Motor method), \hyperpage{8} - \item setProperties() (source.Sensor method), \hyperpage{13} - \item smoothStart (source.Motor attribute), \hyperpage{7} - \item smoothStop (source.Motor attribute), \hyperpage{7} - \item source (module), \hyperpage{1} - \item speedRegulation (source.Motor attribute), \hyperpage{7} - \item start() (source.Motor method), \hyperpage{9} - \item stop() (source.Motor method), \hyperpage{9} - \item stopAllMotors() (source.EV3 method), \hyperpage{5} - \item stopTone() (source.EV3 method), \hyperpage{5} - \item syncedStart() (source.Motor method), \hyperpage{9} - \item syncedStop() (source.Motor method), \hyperpage{10} - - \indexspace - \bigletter T - \item tachoCount (source.Motor attribute), \hyperpage{8} - \item tonePlayed() (source.EV3 method), \hyperpage{5} - \item type (source.Motor attribute), \hyperpage{8} - \item type (source.Sensor attribute), \hyperpage{13} - - \indexspace - \bigletter V - \item value (source.Sensor attribute), \hyperpage{13} - - \indexspace - \bigletter W - \item waitFor() (source.Motor method), \hyperpage{10} - -\end{theindex} diff --git a/docs/_build/latex/MindstormsEV3Toolbox.log b/docs/_build/latex/MindstormsEV3Toolbox.log deleted file mode 100644 index a90b8fa..0000000 --- a/docs/_build/latex/MindstormsEV3Toolbox.log +++ /dev/null @@ -1,1091 +0,0 @@ -This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) (format=pdflatex 2016.11.23) 13 DEC 2016 18:45 -entering extended mode - restricted \write18 enabled. - %&-line parsing enabled. -**MindstormsEV3Toolbox.tex -(./MindstormsEV3Toolbox.tex -LaTeX2e <2011/06/27> -Babel <3.9h> and hyphenation patterns for 78 languages loaded. -(./sphinxmanual.cls -Document Class: sphinxmanual 2009/06/02 Document class (Sphinx manual) -(/usr/share/texlive/texmf-dist/tex/latex/base/report.cls -Document Class: report 2007/10/19 v1.4h Standard LaTeX document class -(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo -File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option) -) -\c@part=\count79 -\c@chapter=\count80 -\c@section=\count81 -\c@subsection=\count82 -\c@subsubsection=\count83 -\c@paragraph=\count84 -\c@subparagraph=\count85 -\c@figure=\count86 -\c@table=\count87 -\abovecaptionskip=\skip41 -\belowcaptionskip=\skip42 -\bibindent=\dimen102 -)) (./iftex.sty -Package: iftex 2013/04/04 v0.2 Provides if(tex) conditional for PDFTeX, XeTeX, -and LuaTeX -) -(/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty -Package: inputenc 2008/03/30 v1.1d Input encoding file -\inpenc@prehook=\toks14 -\inpenc@posthook=\toks15 - -(/usr/share/texlive/texmf-dist/tex/latex/base/utf8.def -File: utf8.def 2008/04/05 v1.1m UTF-8 support for inputenc -Now handling font encoding OML ... -... no UTF-8 mapping file for font encoding OML -Now handling font encoding T1 ... -... processing UTF-8 mapping file for font encoding T1 - -(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.dfu -File: t1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc - defining Unicode char U+00A1 (decimal 161) - defining Unicode char U+00A3 (decimal 163) - defining Unicode char U+00AB (decimal 171) - defining Unicode char U+00BB (decimal 187) - defining Unicode char U+00BF (decimal 191) - defining Unicode char U+00C0 (decimal 192) - defining Unicode char U+00C1 (decimal 193) - defining Unicode char U+00C2 (decimal 194) - defining Unicode char U+00C3 (decimal 195) - defining Unicode char U+00C4 (decimal 196) - defining Unicode char U+00C5 (decimal 197) - defining Unicode char U+00C6 (decimal 198) - defining Unicode char U+00C7 (decimal 199) - defining Unicode char U+00C8 (decimal 200) - defining Unicode char U+00C9 (decimal 201) - defining Unicode char U+00CA (decimal 202) - defining Unicode char U+00CB (decimal 203) - defining Unicode char U+00CC (decimal 204) - defining Unicode char U+00CD (decimal 205) - defining Unicode char U+00CE (decimal 206) - defining Unicode char U+00CF (decimal 207) - defining Unicode char U+00D0 (decimal 208) - defining Unicode char U+00D1 (decimal 209) - defining Unicode char U+00D2 (decimal 210) - defining Unicode char U+00D3 (decimal 211) - defining Unicode char U+00D4 (decimal 212) - defining Unicode char U+00D5 (decimal 213) - defining Unicode char U+00D6 (decimal 214) - defining Unicode char U+00D8 (decimal 216) - defining Unicode char U+00D9 (decimal 217) - defining Unicode char U+00DA (decimal 218) - defining Unicode char U+00DB (decimal 219) - defining Unicode char U+00DC (decimal 220) - defining Unicode char U+00DD (decimal 221) - defining Unicode char U+00DE (decimal 222) - defining Unicode char U+00DF (decimal 223) - defining Unicode char U+00E0 (decimal 224) - defining Unicode char U+00E1 (decimal 225) - defining Unicode char U+00E2 (decimal 226) - defining Unicode char U+00E3 (decimal 227) - defining Unicode char U+00E4 (decimal 228) - defining Unicode char U+00E5 (decimal 229) - defining Unicode char U+00E6 (decimal 230) - defining Unicode char U+00E7 (decimal 231) - defining Unicode char U+00E8 (decimal 232) - defining Unicode char U+00E9 (decimal 233) - defining Unicode char U+00EA (decimal 234) - defining Unicode char U+00EB (decimal 235) - defining Unicode char U+00EC (decimal 236) - defining Unicode char U+00ED (decimal 237) - defining Unicode char U+00EE (decimal 238) - defining Unicode char U+00EF (decimal 239) - defining Unicode char U+00F0 (decimal 240) - defining Unicode char U+00F1 (decimal 241) - defining Unicode char U+00F2 (decimal 242) - defining Unicode char U+00F3 (decimal 243) - defining Unicode char U+00F4 (decimal 244) - defining Unicode char U+00F5 (decimal 245) - defining Unicode char U+00F6 (decimal 246) - defining Unicode char U+00F8 (decimal 248) - defining Unicode char U+00F9 (decimal 249) - defining Unicode char U+00FA (decimal 250) - defining Unicode char U+00FB (decimal 251) - defining Unicode char U+00FC (decimal 252) - defining Unicode char U+00FD (decimal 253) - defining Unicode char U+00FE (decimal 254) - defining Unicode char U+00FF (decimal 255) - defining Unicode char U+0102 (decimal 258) - defining Unicode char U+0103 (decimal 259) - defining Unicode char U+0104 (decimal 260) - defining Unicode char U+0105 (decimal 261) - defining Unicode char U+0106 (decimal 262) - defining Unicode char U+0107 (decimal 263) - defining Unicode char U+010C (decimal 268) - defining Unicode char U+010D (decimal 269) - defining Unicode char U+010E (decimal 270) - defining Unicode char U+010F (decimal 271) - defining Unicode char U+0110 (decimal 272) - defining Unicode char U+0111 (decimal 273) - defining Unicode char U+0118 (decimal 280) - defining Unicode char U+0119 (decimal 281) - defining Unicode char U+011A (decimal 282) - defining Unicode char U+011B (decimal 283) - defining Unicode char U+011E (decimal 286) - defining Unicode char U+011F (decimal 287) - defining Unicode char U+0130 (decimal 304) - defining Unicode char U+0131 (decimal 305) - defining Unicode char U+0132 (decimal 306) - defining Unicode char U+0133 (decimal 307) - defining Unicode char U+0139 (decimal 313) - defining Unicode char U+013A (decimal 314) - defining Unicode char U+013D (decimal 317) - defining Unicode char U+013E (decimal 318) - defining Unicode char U+0141 (decimal 321) - defining Unicode char U+0142 (decimal 322) - defining Unicode char U+0143 (decimal 323) - defining Unicode char U+0144 (decimal 324) - defining Unicode char U+0147 (decimal 327) - defining Unicode char U+0148 (decimal 328) - defining Unicode char U+014A (decimal 330) - defining Unicode char U+014B (decimal 331) - defining Unicode char U+0150 (decimal 336) - defining Unicode char U+0151 (decimal 337) - defining Unicode char U+0152 (decimal 338) - defining Unicode char U+0153 (decimal 339) - defining Unicode char U+0154 (decimal 340) - defining Unicode char U+0155 (decimal 341) - defining Unicode char U+0158 (decimal 344) - defining Unicode char U+0159 (decimal 345) - defining Unicode char U+015A (decimal 346) - defining Unicode char U+015B (decimal 347) - defining Unicode char U+015E (decimal 350) - defining Unicode char U+015F (decimal 351) - defining Unicode char U+0160 (decimal 352) - defining Unicode char U+0161 (decimal 353) - defining Unicode char U+0162 (decimal 354) - defining Unicode char U+0163 (decimal 355) - defining Unicode char U+0164 (decimal 356) - defining Unicode char U+0165 (decimal 357) - defining Unicode char U+016E (decimal 366) - defining Unicode char U+016F (decimal 367) - defining Unicode char U+0170 (decimal 368) - defining Unicode char U+0171 (decimal 369) - defining Unicode char U+0178 (decimal 376) - defining Unicode char U+0179 (decimal 377) - defining Unicode char U+017A (decimal 378) - defining Unicode char U+017B (decimal 379) - defining Unicode char U+017C (decimal 380) - defining Unicode char U+017D (decimal 381) - defining Unicode char U+017E (decimal 382) - defining Unicode char U+200C (decimal 8204) - defining Unicode char U+2013 (decimal 8211) - defining Unicode char U+2014 (decimal 8212) - defining Unicode char U+2018 (decimal 8216) - defining Unicode char U+2019 (decimal 8217) - defining Unicode char U+201A (decimal 8218) - defining Unicode char U+201C (decimal 8220) - defining Unicode char U+201D (decimal 8221) - defining Unicode char U+201E (decimal 8222) - defining Unicode char U+2030 (decimal 8240) - defining Unicode char U+2031 (decimal 8241) - defining Unicode char U+2039 (decimal 8249) - defining Unicode char U+203A (decimal 8250) - defining Unicode char U+2423 (decimal 9251) -) -Now handling font encoding OT1 ... -... processing UTF-8 mapping file for font encoding OT1 - -(/usr/share/texlive/texmf-dist/tex/latex/base/ot1enc.dfu -File: ot1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc - defining Unicode char U+00A1 (decimal 161) - defining Unicode char U+00A3 (decimal 163) - defining Unicode char U+00B8 (decimal 184) - defining Unicode char U+00BF (decimal 191) - defining Unicode char U+00C5 (decimal 197) - defining Unicode char U+00C6 (decimal 198) - defining Unicode char U+00D8 (decimal 216) - defining Unicode char U+00DF (decimal 223) - defining Unicode char U+00E6 (decimal 230) - defining Unicode char U+00EC (decimal 236) - defining Unicode char U+00ED (decimal 237) - defining Unicode char U+00EE (decimal 238) - defining Unicode char U+00EF (decimal 239) - defining Unicode char U+00F8 (decimal 248) - defining Unicode char U+0131 (decimal 305) - defining Unicode char U+0141 (decimal 321) - defining Unicode char U+0142 (decimal 322) - defining Unicode char U+0152 (decimal 338) - defining Unicode char U+0153 (decimal 339) - defining Unicode char U+2013 (decimal 8211) - defining Unicode char U+2014 (decimal 8212) - defining Unicode char U+2018 (decimal 8216) - defining Unicode char U+2019 (decimal 8217) - defining Unicode char U+201C (decimal 8220) - defining Unicode char U+201D (decimal 8221) -) -Now handling font encoding OMS ... -... processing UTF-8 mapping file for font encoding OMS - -(/usr/share/texlive/texmf-dist/tex/latex/base/omsenc.dfu -File: omsenc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc - defining Unicode char U+00A7 (decimal 167) - defining Unicode char U+00B6 (decimal 182) - defining Unicode char U+00B7 (decimal 183) - defining Unicode char U+2020 (decimal 8224) - defining Unicode char U+2021 (decimal 8225) - defining Unicode char U+2022 (decimal 8226) -) -Now handling font encoding OMX ... -... no UTF-8 mapping file for font encoding OMX -Now handling font encoding U ... -... no UTF-8 mapping file for font encoding U - defining Unicode char U+00A9 (decimal 169) - defining Unicode char U+00AA (decimal 170) - defining Unicode char U+00AE (decimal 174) - defining Unicode char U+00BA (decimal 186) - defining Unicode char U+02C6 (decimal 710) - defining Unicode char U+02DC (decimal 732) - defining Unicode char U+200C (decimal 8204) - defining Unicode char U+2026 (decimal 8230) - defining Unicode char U+2122 (decimal 8482) - defining Unicode char U+2423 (decimal 9251) -)) - defining Unicode char U+00A0 (decimal 160) - -(/usr/share/texlive/texmf-dist/tex/latex/cmap/cmap.sty -Package: cmap 2008/03/06 v1.0h CMap support: searchable PDF -) -(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty -Package: fontenc 2005/09/27 v1.99g Standard LaTeX package - -(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def -File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file -LaTeX Font Info: Redeclaring font encoding T1 on input line 43. -)<<t1.cmap>>) -(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty -Package: amsmath 2013/01/14 v2.14 AMS math features -\@mathmargin=\skip43 - -For additional information on amsmath, use the `?' option. -(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty -Package: amstext 2000/06/29 v2.01 - -(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty -File: amsgen.sty 1999/11/30 v2.0 -\@emptytoks=\toks16 -\ex@=\dimen103 -)) -(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty -Package: amsbsy 1999/11/29 v1.2d -\pmbraise@=\dimen104 -) -(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty -Package: amsopn 1999/12/14 v2.01 operator names -) -\inf@bad=\count88 -LaTeX Info: Redefining \frac on input line 210. -\uproot@=\count89 -\leftroot@=\count90 -LaTeX Info: Redefining \overline on input line 306. -\classnum@=\count91 -\DOTSCASE@=\count92 -LaTeX Info: Redefining \ldots on input line 378. -LaTeX Info: Redefining \dots on input line 381. -LaTeX Info: Redefining \cdots on input line 466. -\Mathstrutbox@=\box26 -\strutbox@=\box27 -\big@size=\dimen105 -LaTeX Font Info: Redeclaring font encoding OML on input line 566. -LaTeX Font Info: Redeclaring font encoding OMS on input line 567. -\macc@depth=\count93 -\c@MaxMatrixCols=\count94 -\dotsspace@=\muskip10 -\c@parentequation=\count95 -\dspbrk@lvl=\count96 -\tag@help=\toks17 -\row@=\count97 -\column@=\count98 -\maxfields@=\count99 -\andhelp@=\toks18 -\eqnshift@=\dimen106 -\alignsep@=\dimen107 -\tagshift@=\dimen108 -\tagwidth@=\dimen109 -\totwidth@=\dimen110 -\lineht@=\dimen111 -\@envbody=\toks19 -\multlinegap=\skip44 -\multlinetaggap=\skip45 -\mathdisplay@stack=\toks20 -LaTeX Info: Redefining \[ on input line 2665. -LaTeX Info: Redefining \] on input line 2666. -) -(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty -Package: amssymb 2013/01/14 v3.01 AMS font symbols - -(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty -Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support -\symAMSa=\mathgroup4 -\symAMSb=\mathgroup5 -LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' -(Font) U/euf/m/n --> U/euf/b/n on input line 106. -)) -(/usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty -Package: babel 2013/12/03 3.9h The Babel package - -(/usr/share/texlive/texmf-dist/tex/generic/babel-english/english.ldf -Language: english 2012/08/20 v3.3p English support from the babel system - -(/usr/share/texlive/texmf-dist/tex/generic/babel/babel.def -File: babel.def 2013/12/03 3.9h Babel common definitions -\babel@savecnt=\count100 -\U@D=\dimen112 -) -\l@canadian = a dialect from \language\l@american -\l@australian = a dialect from \language\l@british -\l@newzealand = a dialect from \language\l@british -)) -(/usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty -Package: times 2005/04/12 PSNFSS-v9.2a (SPQR) -) (./fncychap.sty -Package: fncychap 2007/07/30 v1.34 LaTeX package (Revised chapters) -\RW=\skip46 -\mylen=\skip47 -\myhi=\skip48 -\px=\skip49 -\py=\skip50 -\pyy=\skip51 -\pxx=\skip52 -\c@AlphaCnt=\count101 -\c@AlphaDecCnt=\count102 -) -(/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty -Package: longtable 2004/02/01 v4.11 Multi-page Table package (DPC) -\LTleft=\skip53 -\LTright=\skip54 -\LTpre=\skip55 -\LTpost=\skip56 -\LTchunksize=\count103 -\LTcapwidth=\dimen113 -\LT@head=\box28 -\LT@firsthead=\box29 -\LT@foot=\box30 -\LT@lastfoot=\box31 -\LT@cols=\count104 -\LT@rows=\count105 -\c@LT@tables=\count106 -\c@LT@chunks=\count107 -\LT@p@ftn=\toks21 -) (./sphinx.sty -Package: sphinx 2010/01/15 LaTeX package (Sphinx markup) - -(/usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty -\fancy@headwidth=\skip57 -\f@ncyO@elh=\skip58 -\f@ncyO@erh=\skip59 -\f@ncyO@olh=\skip60 -\f@ncyO@orh=\skip61 -\f@ncyO@elf=\skip62 -\f@ncyO@erf=\skip63 -\f@ncyO@olf=\skip64 -\f@ncyO@orf=\skip65 -) -(/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty -Package: textcomp 2005/09/27 v1.99g Standard LaTeX package -Package textcomp Info: Sub-encoding information: -(textcomp) 5 = only ISO-Adobe without \textcurrency -(textcomp) 4 = 5 + \texteuro -(textcomp) 3 = 4 + \textohm -(textcomp) 2 = 3 + \textestimated + \textcurrency -(textcomp) 1 = TS1 - \textcircled - \t -(textcomp) 0 = TS1 (full) -(textcomp) Font families with sub-encoding setting implement -(textcomp) only a restricted character set as indicated. -(textcomp) Family '?' is the default used for unknown fonts. -(textcomp) See the documentation for details. -Package textcomp Info: Setting ? sub-encoding to TS1/1 on input line 71. - -(/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def -File: ts1enc.def 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file -Now handling font encoding TS1 ... -... processing UTF-8 mapping file for font encoding TS1 - -(/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu -File: ts1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc - defining Unicode char U+00A2 (decimal 162) - defining Unicode char U+00A3 (decimal 163) - defining Unicode char U+00A4 (decimal 164) - defining Unicode char U+00A5 (decimal 165) - defining Unicode char U+00A6 (decimal 166) - defining Unicode char U+00A7 (decimal 167) - defining Unicode char U+00A8 (decimal 168) - defining Unicode char U+00A9 (decimal 169) - defining Unicode char U+00AA (decimal 170) - defining Unicode char U+00AC (decimal 172) - defining Unicode char U+00AE (decimal 174) - defining Unicode char U+00AF (decimal 175) - defining Unicode char U+00B0 (decimal 176) - defining Unicode char U+00B1 (decimal 177) - defining Unicode char U+00B2 (decimal 178) - defining Unicode char U+00B3 (decimal 179) - defining Unicode char U+00B4 (decimal 180) - defining Unicode char U+00B5 (decimal 181) - defining Unicode char U+00B6 (decimal 182) - defining Unicode char U+00B7 (decimal 183) - defining Unicode char U+00B9 (decimal 185) - defining Unicode char U+00BA (decimal 186) - defining Unicode char U+00BC (decimal 188) - defining Unicode char U+00BD (decimal 189) - defining Unicode char U+00BE (decimal 190) - defining Unicode char U+00D7 (decimal 215) - defining Unicode char U+00F7 (decimal 247) - defining Unicode char U+0192 (decimal 402) - defining Unicode char U+02C7 (decimal 711) - defining Unicode char U+02D8 (decimal 728) - defining Unicode char U+02DD (decimal 733) - defining Unicode char U+0E3F (decimal 3647) - defining Unicode char U+2016 (decimal 8214) - defining Unicode char U+2020 (decimal 8224) - defining Unicode char U+2021 (decimal 8225) - defining Unicode char U+2022 (decimal 8226) - defining Unicode char U+2030 (decimal 8240) - defining Unicode char U+2031 (decimal 8241) - defining Unicode char U+203B (decimal 8251) - defining Unicode char U+203D (decimal 8253) - defining Unicode char U+2044 (decimal 8260) - defining Unicode char U+204E (decimal 8270) - defining Unicode char U+2052 (decimal 8274) - defining Unicode char U+20A1 (decimal 8353) - defining Unicode char U+20A4 (decimal 8356) - defining Unicode char U+20A6 (decimal 8358) - defining Unicode char U+20A9 (decimal 8361) - defining Unicode char U+20AB (decimal 8363) - defining Unicode char U+20AC (decimal 8364) - defining Unicode char U+20B1 (decimal 8369) - defining Unicode char U+2103 (decimal 8451) - defining Unicode char U+2116 (decimal 8470) - defining Unicode char U+2117 (decimal 8471) - defining Unicode char U+211E (decimal 8478) - defining Unicode char U+2120 (decimal 8480) - defining Unicode char U+2122 (decimal 8482) - defining Unicode char U+2126 (decimal 8486) - defining Unicode char U+2127 (decimal 8487) - defining Unicode char U+212E (decimal 8494) - defining Unicode char U+2190 (decimal 8592) - defining Unicode char U+2191 (decimal 8593) - defining Unicode char U+2192 (decimal 8594) - defining Unicode char U+2193 (decimal 8595) - defining Unicode char U+2329 (decimal 9001) - defining Unicode char U+232A (decimal 9002) - defining Unicode char U+2422 (decimal 9250) - defining Unicode char U+25E6 (decimal 9702) - defining Unicode char U+25EF (decimal 9711) - defining Unicode char U+266A (decimal 9834) -)) -LaTeX Info: Redefining \oldstylenums on input line 266. -Package textcomp Info: Setting cmr sub-encoding to TS1/0 on input line 281. -Package textcomp Info: Setting cmss sub-encoding to TS1/0 on input line 282. -Package textcomp Info: Setting cmtt sub-encoding to TS1/0 on input line 283. -Package textcomp Info: Setting cmvtt sub-encoding to TS1/0 on input line 284. -Package textcomp Info: Setting cmbr sub-encoding to TS1/0 on input line 285. -Package textcomp Info: Setting cmtl sub-encoding to TS1/0 on input line 286. -Package textcomp Info: Setting ccr sub-encoding to TS1/0 on input line 287. -Package textcomp Info: Setting ptm sub-encoding to TS1/4 on input line 288. -Package textcomp Info: Setting pcr sub-encoding to TS1/4 on input line 289. -Package textcomp Info: Setting phv sub-encoding to TS1/4 on input line 290. -Package textcomp Info: Setting ppl sub-encoding to TS1/3 on input line 291. -Package textcomp Info: Setting pag sub-encoding to TS1/4 on input line 292. -Package textcomp Info: Setting pbk sub-encoding to TS1/4 on input line 293. -Package textcomp Info: Setting pnc sub-encoding to TS1/4 on input line 294. -Package textcomp Info: Setting pzc sub-encoding to TS1/4 on input line 295. -Package textcomp Info: Setting bch sub-encoding to TS1/4 on input line 296. -Package textcomp Info: Setting put sub-encoding to TS1/5 on input line 297. -Package textcomp Info: Setting uag sub-encoding to TS1/5 on input line 298. -Package textcomp Info: Setting ugq sub-encoding to TS1/5 on input line 299. -Package textcomp Info: Setting ul8 sub-encoding to TS1/4 on input line 300. -Package textcomp Info: Setting ul9 sub-encoding to TS1/4 on input line 301. -Package textcomp Info: Setting augie sub-encoding to TS1/5 on input line 302. -Package textcomp Info: Setting dayrom sub-encoding to TS1/3 on input line 303. -Package textcomp Info: Setting dayroms sub-encoding to TS1/3 on input line 304. - -Package textcomp Info: Setting pxr sub-encoding to TS1/0 on input line 305. -Package textcomp Info: Setting pxss sub-encoding to TS1/0 on input line 306. -Package textcomp Info: Setting pxtt sub-encoding to TS1/0 on input line 307. -Package textcomp Info: Setting txr sub-encoding to TS1/0 on input line 308. -Package textcomp Info: Setting txss sub-encoding to TS1/0 on input line 309. -Package textcomp Info: Setting txtt sub-encoding to TS1/0 on input line 310. -Package textcomp Info: Setting lmr sub-encoding to TS1/0 on input line 311. -Package textcomp Info: Setting lmdh sub-encoding to TS1/0 on input line 312. -Package textcomp Info: Setting lmss sub-encoding to TS1/0 on input line 313. -Package textcomp Info: Setting lmssq sub-encoding to TS1/0 on input line 314. -Package textcomp Info: Setting lmvtt sub-encoding to TS1/0 on input line 315. -Package textcomp Info: Setting qhv sub-encoding to TS1/0 on input line 316. -Package textcomp Info: Setting qag sub-encoding to TS1/0 on input line 317. -Package textcomp Info: Setting qbk sub-encoding to TS1/0 on input line 318. -Package textcomp Info: Setting qcr sub-encoding to TS1/0 on input line 319. -Package textcomp Info: Setting qcs sub-encoding to TS1/0 on input line 320. -Package textcomp Info: Setting qpl sub-encoding to TS1/0 on input line 321. -Package textcomp Info: Setting qtm sub-encoding to TS1/0 on input line 322. -Package textcomp Info: Setting qzc sub-encoding to TS1/0 on input line 323. -Package textcomp Info: Setting qhvc sub-encoding to TS1/0 on input line 324. -Package textcomp Info: Setting futs sub-encoding to TS1/4 on input line 325. -Package textcomp Info: Setting futx sub-encoding to TS1/4 on input line 326. -Package textcomp Info: Setting futj sub-encoding to TS1/4 on input line 327. -Package textcomp Info: Setting hlh sub-encoding to TS1/3 on input line 328. -Package textcomp Info: Setting hls sub-encoding to TS1/3 on input line 329. -Package textcomp Info: Setting hlst sub-encoding to TS1/3 on input line 330. -Package textcomp Info: Setting hlct sub-encoding to TS1/5 on input line 331. -Package textcomp Info: Setting hlx sub-encoding to TS1/5 on input line 332. -Package textcomp Info: Setting hlce sub-encoding to TS1/5 on input line 333. -Package textcomp Info: Setting hlcn sub-encoding to TS1/5 on input line 334. -Package textcomp Info: Setting hlcw sub-encoding to TS1/5 on input line 335. -Package textcomp Info: Setting hlcf sub-encoding to TS1/5 on input line 336. -Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 337. -Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 338. -Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 339. -Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 340. -) -(/usr/share/texlive/texmf-dist/tex/latex/fancybox/fancybox.sty -Package: fancybox 2010/05/15 1.4 - -Style option: `fancybox' v1.4 <2010/05/15> (tvz) -\@fancybox=\box32 -\shadowsize=\dimen114 -\@Sbox=\box33 -\do@VerbBox=\toks22 -\the@fancyput=\toks23 -\this@fancyput=\toks24 -\EndVerbatimTokens=\toks25 -\Verbatim@Outfile=\write3 -\Verbatim@Infile=\read1 -) (/usr/share/texlive/texmf-dist/tex/latex/titlesec/titlesec.sty -Package: titlesec 2011/12/15 v2.10.0 Sectioning titles -\ttl@box=\box34 -\beforetitleunit=\skip66 -\aftertitleunit=\skip67 -\ttl@plus=\dimen115 -\ttl@minus=\dimen116 -\ttl@toksa=\toks26 -\titlewidth=\dimen117 -\titlewidthlast=\dimen118 -\titlewidthfirst=\dimen119 -) -(./tabulary.sty -Package: tabulary 2008/12/01 v0.9 tabulary package (DPC) - (/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty -Package: array 2008/09/09 v2.4c Tabular extension package (FMi) -\col@sep=\dimen120 -\extrarowheight=\dimen121 -\NC@list=\toks27 -\extratabsurround=\skip68 -\backup@length=\skip69 -) -\TY@count=\count108 -\TY@linewidth=\dimen122 -\tymin=\dimen123 -\tymax=\dimen124 -\TY@tablewidth=\dimen125 -) -(/usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty -Package: makeidx 2000/03/29 v1.0m Standard LaTeX package -) -(/usr/share/texlive/texmf-dist/tex/latex/framed/framed.sty -Package: framed 2011/10/22 v 0.96: framed or shaded text with page breaks -\OuterFrameSep=\skip70 -\fb@frw=\dimen126 -\fb@frh=\dimen127 -\FrameRule=\dimen128 -\FrameSep=\dimen129 -) -(/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty -Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC) -) -(/usr/share/texmf/tex/latex/xcolor/xcolor.sty -Package: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK) - -(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg -File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive -) -Package xcolor Info: Driver file: pdftex.def on input line 225. - -(/usr/share/texlive/texmf-dist/tex/latex/pdftex-def/pdftex.def -File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX - -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty -Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO) -) -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty -Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO) -) -\Gread@gobject=\count109 -) -Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1337. -Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1341. -Package xcolor Info: Model `RGB' extended on input line 1353. -Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1355. -Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1356. -Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1357. -Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1358. -Package xcolor Info: Model `Gray' substituted by `gray' on input line 1359. -Package xcolor Info: Model `wave' substituted by `hsb' on input line 1360. -) -(/usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty -Package: fancyvrb 2008/02/07 - -Style option: `fancyvrb' v2.7a, with DG/SPQR fixes, and firstline=lastline fix -<2008/02/07> (tvz) (/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty -Package: keyval 1999/03/16 v1.13 key=value parser (DPC) -\KV@toks@=\toks28 -) -\FV@CodeLineNo=\count110 -\FV@InFile=\read2 -\FV@TabBox=\box35 -\c@FancyVerbLine=\count111 -\FV@StepNumber=\count112 -\FV@OutFile=\write4 -) (/usr/share/texlive/texmf-dist/tex/latex/threeparttable/threeparttable.sty -Package: threeparttable 2003/06/13 v 3.0 -\@tempboxb=\box36 -) -(/usr/share/texlive/texmf-dist/tex/latex/mdwtools/footnote.sty -Package: footnote 1997/01/28 1.13 Save footnotes around boxes -\fn@notes=\box37 -\fn@width=\dimen130 -) -(/usr/share/texlive/texmf-dist/tex/latex/wrapfig/wrapfig.sty -\wrapoverhang=\dimen131 -\WF@size=\dimen132 -\c@WF@wrappedlines=\count113 -\WF@box=\box38 -\WF@everypar=\toks29 -Package: wrapfig 2003/01/31 v 3.6 -) -(/usr/share/texlive/texmf-dist/tex/latex/parskip/parskip.sty -Package: parskip 2001/04/09 non-zero parskip adjustments -) -(/usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty -Package: alltt 1997/06/16 v2.0g defines alltt environment -) -(/usr/share/texlive/texmf-dist/tex/latex/upquote/upquote.sty -Package: upquote 2012/04/19 v1.3 upright-quote and grave-accent glyphs in verba -tim -) -(/usr/share/texlive/texmf-dist/tex/latex/float/float.sty -Package: float 2001/11/08 v1.3d Float enhancements (AL) -\c@float@type=\count114 -\float@exts=\toks30 -\float@box=\box39 -\@float@everytoks=\toks31 -\@floatcapt=\box40 -) -(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty -Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR) - -(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty -Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR) - -(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty -Package: trig 1999/03/16 v1.09 sin cos tan (DPC) -) -(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg -File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live -) -Package graphics Info: Driver file: pdftex.def on input line 91. -) -\Gin@req@height=\dimen133 -\Gin@req@width=\dimen134 -) -(/usr/share/texlive/texmf-dist/tex/plain/misc/pdfcolor.tex) -\sphinxcontinuationbox=\box41 -\sphinxvisiblespacebox=\box42 -\sphinxshadowsep=\skip71 -\sphinxshadowsize=\skip72 -\sphinxshadowrule=\skip73 -\py@argswidth=\skip74 -\lineblockindentation=\skip75 -\spx@image@box=\box43 - -(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty -Package: hyperref 2012/11/06 v6.83m Hypertext links for LaTeX - -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty -Package: hobsub-hyperref 2012/05/28 v1.13 Bundle oberdiek, subset hyperref (HO) - - -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty -Package: hobsub-generic 2012/05/28 v1.13 Bundle oberdiek, subset generic (HO) -Package: hobsub 2012/05/28 v1.13 Construct package bundles (HO) -Package hobsub Info: Skipping package `infwarerr' (already loaded). -Package hobsub Info: Skipping package `ltxcmds' (already loaded). -Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO) -Package ifluatex Info: LuaTeX not detected. -Package: ifvtex 2010/03/01 v1.5 Detect VTeX and its facilities (HO) -Package ifvtex Info: VTeX not detected. -Package: intcalc 2007/09/27 v1.1 Expandable calculations with integers (HO) -Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO) -Package ifpdf Info: pdfTeX in PDF mode is detected. -Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO) -Package etexcmds Info: Could not find \expanded. -(etexcmds) That can mean that you are not using pdfTeX 1.50 or -(etexcmds) that some package has redefined \expanded. -(etexcmds) In the latter case, load this package earlier. -Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO) -Package: kvdefinekeys 2011/04/07 v1.3 Define keys (HO) -Package: pdftexcmds 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO -) -Package pdftexcmds Info: LuaTeX not detected. -Package pdftexcmds Info: \pdf@primitive is available. -Package pdftexcmds Info: \pdf@ifprimitive is available. -Package pdftexcmds Info: \pdfdraftmode found. -Package: pdfescape 2011/11/25 v1.13 Implements pdfTeX's escape features (HO) -Package: bigintcalc 2012/04/08 v1.3 Expandable calculations on big integers (HO -) -Package: bitset 2011/01/30 v1.1 Handle bit-vector datatype (HO) -Package: uniquecounter 2011/01/30 v1.2 Provide unlimited unique counter (HO) -) -Package hobsub Info: Skipping package `hobsub' (already loaded). -Package: letltxmacro 2010/09/02 v1.4 Let assignment for LaTeX macros (HO) -Package: hopatch 2012/05/28 v1.2 Wrapper for package hooks (HO) -Package: xcolor-patch 2011/01/30 xcolor patch -Package: atveryend 2011/06/30 v1.8 Hooks at the very end of document (HO) -Package atveryend Info: \enddocument detected (standard20110627). -Package: atbegshi 2011/10/05 v1.16 At begin shipout hook (HO) -Package: refcount 2011/10/16 v3.4 Data extraction from label references (HO) -Package: hycolor 2011/01/30 v1.7 Color options for hyperref/bookmark (HO) -) -(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty -Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional -) -(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty -Package: auxhook 2011/03/04 v1.3 Hooks for auxiliary files (HO) -) -(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty -Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO) -) -\@linkdim=\dimen135 -\Hy@linkcounter=\count115 -\Hy@pagecounter=\count116 - -(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def -File: pd1enc.def 2012/11/06 v6.83m Hyperref: PDFDocEncoding definition (HO) -Now handling font encoding PD1 ... -... no UTF-8 mapping file for font encoding PD1 -) -\Hy@SavedSpaceFactor=\count117 - -(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg -File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive -) -Package hyperref Info: Option `unicode' set `true' on input line 4319. - -(/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def -File: puenc.def 2012/11/06 v6.83m Hyperref: PDF Unicode definition (HO) -Now handling font encoding PU ... -... no UTF-8 mapping file for font encoding PU -) -Package hyperref Info: Option `colorlinks' set `true' on input line 4319. -Package hyperref Info: Option `breaklinks' set `true' on input line 4319. -Package hyperref Info: Hyper figures OFF on input line 4443. -Package hyperref Info: Link nesting OFF on input line 4448. -Package hyperref Info: Hyper index ON on input line 4451. -Package hyperref Info: Plain pages OFF on input line 4458. -Package hyperref Info: Backreferencing OFF on input line 4463. -Package hyperref Info: Implicit mode ON; LaTeX internals redefined. -Package hyperref Info: Bookmarks ON on input line 4688. -\c@Hy@tempcnt=\count118 - -(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty -\Urlmuskip=\muskip11 -Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. -) -LaTeX Info: Redefining \url on input line 5041. -\XeTeXLinkMargin=\dimen136 -\Fld@menulength=\count119 -\Field@Width=\dimen137 -\Fld@charsize=\dimen138 -Package hyperref Info: Hyper figures OFF on input line 6295. -Package hyperref Info: Link nesting OFF on input line 6300. -Package hyperref Info: Hyper index ON on input line 6303. -Package hyperref Info: backreferencing OFF on input line 6310. -Package hyperref Info: Link coloring ON on input line 6313. -Package hyperref Info: Link coloring with OCG OFF on input line 6320. -Package hyperref Info: PDF/A mode OFF on input line 6325. -LaTeX Info: Redefining \ref on input line 6365. -LaTeX Info: Redefining \pageref on input line 6369. -\Hy@abspage=\count120 -\c@Item=\count121 -\c@Hfootnote=\count122 -) - -Package hyperref Message: Driver (autodetected): hpdftex. - -(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def -File: hpdftex.def 2012/11/06 v6.83m Hyperref driver for pdfTeX -\Fld@listcount=\count123 -\c@bookmark@seq@number=\count124 - -(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty -Package: rerunfilecheck 2011/04/15 v1.7 Rerun checks for auxiliary files (HO) -Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 -82. -) -\Hy@SectionHShift=\skip76 -) -(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/hypcap.sty -Package: hypcap 2011/02/16 v1.11 Adjusting the anchors of captions (HO) -) -\DUlineblockindent=\skip77 - (./newfloat.sty -Package: newfloat 2015/09/17 v1.1-109 Defining new floating environments (AR) -) -Package newfloat Info: New float `literal-block' with options `' on input line -874. -\c@literal-block=\count125 -Package newfloat Info: float type `literal-block'=4 on input line 874. - -(/usr/share/texlive/texmf-dist/tex/latex/capt-of/capt-of.sty -Package: capt-of 2009/12/29 v0.2 standard captions outside of floats -) (./needspace.sty -Package: needspace 2010/09/12 v1.3d reserve vertical space -) -** (sphinx) defining (legacy) text style macros without \sphinx prefix -** if clashes with packages, set latex_keep_old_macro_names=False in conf.py -) (/usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty -\bigstrutjot=\dimen139 -) -(/usr/share/texlive/texmf-dist/tex/latex/eqparbox/eqparbox.sty -Package: eqparbox 2013/03/15 v4.0 Create equal-widthed boxes -\eqp@tempdima=\skip78 -\eqp@tempdimb=\skip79 -\eqp@tabular@box=\box44 -\eqp@list@box=\box45 -\eqp@list@indent=\skip80 - -(/usr/share/texlive/texmf-dist/tex/latex/environ/environ.sty -Package: environ 2013/04/01 v0.3 A new environment syntax - -(/usr/share/texlive/texmf-dist/tex/latex/trimspaces/trimspaces.sty -Package: trimspaces 2009/09/17 v1.1 Trim spaces around a token list -))) -\@indexfile=\write5 -\openout5 = `MindstormsEV3Toolbox.idx'. - - -Writing index file MindstormsEV3Toolbox.idx -(./MindstormsEV3Toolbox.aux) -\openout1 = `MindstormsEV3Toolbox.aux'. - -LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 140. -LaTeX Font Info: ... okay on input line 140. -LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 140. -LaTeX Font Info: ... okay on input line 140. -LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 140. -LaTeX Font Info: ... okay on input line 140. -LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 140. -LaTeX Font Info: ... okay on input line 140. -LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 140. -LaTeX Font Info: ... okay on input line 140. -LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 140. -LaTeX Font Info: ... okay on input line 140. -LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 140. -LaTeX Font Info: Try loading font information for TS1+cmr on input line 140. - - -(/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd -File: ts1cmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions -) -LaTeX Font Info: ... okay on input line 140. -LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 140. -LaTeX Font Info: ... okay on input line 140. -LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 140. -LaTeX Font Info: ... okay on input line 140. -LaTeX Font Info: Try loading font information for T1+ptm on input line 140. - -(/usr/share/texlive/texmf-dist/tex/latex/psnfss/t1ptm.fd -File: t1ptm.fd 2001/06/04 font definitions for T1/ptm. -) -(/usr/share/texlive/texmf-dist/tex/context/base/supp-pdf.mkii -[Loading MPS to PDF converter (version 2006.09.02).] -\scratchcounter=\count126 -\scratchdimen=\dimen140 -\scratchbox=\box46 -\nofMPsegments=\count127 -\nofMParguments=\count128 -\everyMPshowfont=\toks32 -\MPscratchCnt=\count129 -\MPscratchDim=\dimen141 -\MPnumerator=\count130 -\makeMPintoPDFobject=\count131 -\everyMPtoPDFconversion=\toks33 -) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty -Package: epstopdf-base 2010/02/09 v2.5 Base part for package epstopdf - -(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty -Package: grfext 2010/08/19 v1.1 Manage graphics extensions (HO) -) -Package grfext Info: Graphics extension search list: -(grfext) [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE -G,.JBIG2,.JB2,.eps] -(grfext) \AppendGraphicsExtensions on input line 452. - -(/usr/share/texlive/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 -)) -\AtBeginShipoutBox=\box47 -Package hyperref Info: Link coloring ON on input line 140. - -(/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty -Package: nameref 2012/10/27 v2.43 Cross-referencing by name of section - -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty -Package: gettitlestring 2010/12/03 v1.4 Cleanup title references (HO) -) -\c@section@level=\count132 -) -LaTeX Info: Redefining \ref on input line 140. -LaTeX Info: Redefining \pageref on input line 140. -LaTeX Info: Redefining \nameref on input line 140. - -(./MindstormsEV3Toolbox.out) (./MindstormsEV3Toolbox.out) -\@outlinefile=\write6 -\openout6 = `MindstormsEV3Toolbox.out'. - -LaTeX Font Info: Try loading font information for T1+phv on input line 143. - -(/usr/share/texlive/texmf-dist/tex/latex/psnfss/t1phv.fd -File: t1phv.fd 2001/06/04 scalable font definitions for T1/phv. -) -LaTeX Font Info: Font shape `T1/phv/bx/n' in size <10> not available -(Font) Font shape `T1/phv/b/n' tried instead on input line 143. -LaTeX Font Info: Font shape `T1/phv/bx/n' in size <24.88> not available -(Font) Font shape `T1/phv/b/n' tried instead on input line 143. -LaTeX Font Info: Font shape `T1/phv/bx/it' in size <10> not available -(Font) Font shape `T1/phv/b/it' tried instead on input line 143. -LaTeX Font Info: Font shape `T1/phv/b/it' in size <10> not available -(Font) Font shape `T1/phv/b/sl' tried instead on input line 143. -LaTeX Font Info: Font shape `T1/phv/bx/it' in size <17.28> not available -(Font) Font shape `T1/phv/b/it' tried instead on input line 143. -LaTeX Font Info: Font shape `T1/phv/b/it' in size <17.28> not available -(Font) Font shape `T1/phv/b/sl' tried instead on input line 143. -LaTeX Font Info: Font shape `T1/phv/bx/n' in size <17.28> not available -(Font) Font shape `T1/phv/b/n' tried instead on input line 143. -<<ot1.cmap>><<oml.cmap>><<oms.cmap>><<omx.cmap>> -LaTeX Font Info: Try loading font information for U+msa on input line 143. - -(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd -File: umsa.fd 2013/01/14 v3.01 AMS symbols A -) -LaTeX Font Info: Try loading font information for U+msb on input line 143. - -(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd -File: umsb.fd 2013/01/14 v3.01 AMS symbols B -) -LaTeX Font Info: Font shape `T1/phv/bx/n' in size <12> not available -(Font) Font shape `T1/phv/b/n' tried instead on input line 143. - [1 - -{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] [2 - -] (./MindstormsEV3Toolbox.toc -LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <10> not available -(Font) Font shape `T1/ptm/b/n' tried instead on input line 2. -) -\tf@toc=\write7 -\openout7 = `MindstormsEV3Toolbox.toc'. - - [1 - -] -[2 - -] [1] [2 - -] -Chapter 1. -LaTeX Font Info: Font shape `T1/phv/bx/n' in size <14.4> not available -(Font) Font shape `T1/phv/b/n' tried instead on input line 150. -LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <14.4> not available -(Font) Font shape `T1/ptm/b/n' tried instead on input line 150. -LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <24.88> not available -(Font) Font shape `T1/ptm/b/n' tried instead on input line 150. -LaTeX Font Info: Try loading font information for T1+pcr on input line 1. -(/usr/share/texlive/texmf-dist/tex/latex/psnfss/t1pcr.fd -File: t1pcr.fd 2001/06/04 font definitions for T1/pcr. -) -LaTeX Font Info: Font shape `T1/pcr/bx/n' in size <10> not available -(Font) Font shape `T1/pcr/b/n' tried instead on input line 1. -LaTeX Font Info: Try loading font information for TS1+ptm on input line 162. - - -(/usr/share/texlive/texmf-dist/tex/latex/psnfss/ts1ptm.fd -File: ts1ptm.fd 2001/06/04 font definitions for TS1/ptm. -) [3] -LaTeX Font Info: Font shape `T1/pcr/m/it' in size <10> not available -(Font) Font shape `T1/pcr/m/sl' tried instead on input line 315. - -Underfull \hbox (badness 10000) in paragraph at lines 318--320 -[]\T1/pcr/b/n/10 serPort \T1/ptm/m/n/10 (\T1/pcr/m/sl/10 string in {'/dev/rfcom -m1', '/dev/rfcomm2', ...}\T1/ptm/m/n/10 ) -- - [] - -[4] -Underfull \hbox (badness 10000) in paragraph at lines 401--402 -[]\T1/pcr/b/n/10 batteryMode \T1/ptm/m/n/10 (\T1/pcr/m/sl/10 string in {'Voltag -e'/'Percentage'}\T1/ptm/m/n/10 ) -- see - [] - -[5] [6 - -] -Chapter 2. -[7] [8] [9] [10] -Chapter 3. -[11 - -] [12] [13] [14] -Chapter 4. -[15 - -] [16 - -] [17 - - -] (./MindstormsEV3Toolbox.ind [18 - - -] [19 - -]) -Package atveryend Info: Empty hook `BeforeClearDocument' on input line 1256. -Package atveryend Info: Empty hook `AfterLastShipout' on input line 1256. - -(./MindstormsEV3Toolbox.aux) -Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 1256. -Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 1256. - -Package rerunfilecheck Info: File `MindstormsEV3Toolbox.out' has not changed. -(rerunfilecheck) Checksum: E100CA1E8BEC3FF034AB7A951CE1136C;554. -Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 1256. - ) -Here is how much of TeX's memory you used: - 13363 strings out of 493304 - 182319 string characters out of 6139870 - 269862 words of memory out of 5000000 - 16432 multiletter control sequences out of 15000+600000 - 49812 words of font info for 63 fonts, out of 8000000 for 9000 - 958 hyphenation exceptions out of 8191 - 36i,12n,45p,266b,712s stack positions out of 5000i,500n,10000p,200000b,80000s -{/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc}</usr/share/texliv -e/texmf-dist/fonts/type1/urw/courier/ucrb8a.pfb></usr/share/texlive/texmf-dist/ -fonts/type1/urw/courier/ucrr8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/u -rw/courier/ucrro8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/ -uhvb8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uhvbo8a.pfb> -</usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uhvr8a.pfb></usr/share/ -texlive/texmf-dist/fonts/type1/urw/times/utmb8a.pfb></usr/share/texlive/texmf-d -ist/fonts/type1/urw/times/utmr8a.pfb></usr/share/texlive/texmf-dist/fonts/type1 -/urw/times/utmri8a.pfb> -Output written on MindstormsEV3Toolbox.pdf (23 pages, 136359 bytes). -PDF statistics: - 326 PDF objects out of 1000 (max. 8388607) - 284 compressed objects within 3 object streams - 103 named destinations out of 1000 (max. 500000) - 69 words of extra memory for PDF output out of 10000 (max. 10000000) - diff --git a/docs/_build/latex/MindstormsEV3Toolbox.out b/docs/_build/latex/MindstormsEV3Toolbox.out deleted file mode 100644 index 78857ab..0000000 --- a/docs/_build/latex/MindstormsEV3Toolbox.out +++ /dev/null @@ -1,6 +0,0 @@ -\BOOKMARK [0][-]{chapter.1}{\376\377\000E\000V\0003}{}% 1 -\BOOKMARK [0][-]{chapter.2}{\376\377\000M\000o\000t\000o\000r}{}% 2 -\BOOKMARK [0][-]{chapter.3}{\376\377\000S\000e\000n\000s\000o\000r}{}% 3 -\BOOKMARK [0][-]{chapter.4}{\376\377\000I\000n\000d\000i\000c\000e\000s\000\040\000a\000n\000d\000\040\000t\000a\000b\000l\000e\000s}{}% 4 -\BOOKMARK [0][-]{section*.74}{\376\377\000M\000A\000T\000L\000A\000B\000\040\000M\000o\000d\000u\000l\000e\000\040\000I\000n\000d\000e\000x}{}% 5 -\BOOKMARK [0][-]{section*.75}{\376\377\000I\000n\000d\000e\000x}{}% 6 diff --git a/docs/_build/latex/MindstormsEV3Toolbox.pdf b/docs/_build/latex/MindstormsEV3Toolbox.pdf deleted file mode 100644 index 8c116599065d13e5ffbae9aa15afeadfdb2b9938..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136359 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	ma_@h+>V#bJ-~SVWo<-TG{taQ6@MuZ;#N?*` zJ+jx1u4A3|tNe6_NLzV6Uqs#P1nb+<-+h!1nBP!4yJ}aC+IGM4-*Hou6U$N(wrj2n z>NQw$=vG#esnqkD&kEHlEXtwZQ_fT_5v^7{`D4dB3wF`I9gP3GugzY0YKd%<lcmoU z5hs`GbLY=on3kYgr8BMbQkeU(7+n^j|FR3THt*UtWgow(&HK}d%~}uR7j(p|w@_I2 zB*8(-;nQlhACvMkVv`<qFt>aNQ}XF6c-i&&?>ervruA!mPpkh_ov61nWnb&t>wKx_ z0uL%2dnUPR%7XyUHH?$bX+1MbxwmKqL(Kgjv)1m8uDyAouJ~X^>B%D1UF%-o(LZnW zqQz&zf&|+c8rQ#1UppzLJI$Uuyd-kN1;f(DBV{GqHv04!JnT%CbaM*LDehe0@xgt2 zSFT9$iQZ+rZvr2S{`TOFQ+s7_Z{B3Rq)lBB*W#9!?Yyvh#@7Uk`pb^C@pV@c_E|c8 zd}TG=eAPS7J0kIaA}?{@ymUc0H&U}Qfqh;qlfdb1`un<bc25qqjMKdG@yY9phXt0E zN0vA1Y!09BqSr;P>-vNRTLaJjSW<ic?(%=LU$+?_WNBfZRitOK?T4^y-JBb2|3WOj zM=#aAt8UHyLgm^iH+9*ru5W+xAGUqoFnjj>;E#^eB2%<q*xWgtU>9ZO#CJo}h?l)4 zs7m7cKGl}`Zz~UNTKH=9GKGtm6|UV4jnB4}n0x62&!#0a+D=aAonOD=OHPf}o4x55 zj}`r>lG**(RzEgMoKNA)WAhuL&t@-H_&M2EV~wlKUX8EmRq1{9E7qOtOJ$Yj^nN_0 zqfdL1nWmtb!TL72hu?kq$~Gq&US8U>H1p=ZygAbLmH*-v?a=S4+_L;h>5myPbGP+8 zIN@~lmIeD9CQ;1-g9PK#v%JK0Jf2OP_`-4a+(%9GdcMvIsO-BS`GRw%P(|vB*|GOG zEc*9&v$RK3`;B!=%(b7MyZdAHk!YnQ9+{RCCts9W&81}R&$fkqcg*DG+vb&5(|>+F z7BV5vqnX`)idtfd>!RJ7%U9n%y?6RHk>WQIh9|v_EncgA>GGXi-iz0s_+4t7x<Y)e zpT*hlTQc4J7RsGq{G#<DZ1Zu6d-vC`-WM!;&7NIyzq*5t#fg6c-469r?%tMUchInX z{r6hHiO8FuZ>lwA-r|_){%=xa;s;ja%3rP=+uwN<c^Ia-y#H)y=WuZ9dG%<`SLJ83 z3+l7(&%gG1*Zr*PFLPgAPV;e-`|ElCEyvn~`_?a3m~ZkA;}M?_9LzP_x4w7Mn;$&~ zBNjc3a!8-AU-`C5`^(deHcyAnl<kT}VoO|k%Vy;NIdYk!<Zu8>;I>8kmlvjngnLaF zxv|3O&Z|>C7BR~>Sj^w&2OETJ{J-<)@)r{CI)9#vF?!~G{imeXa>EH?*Ou+jV^V3e zzFhGBW%H5`m3`atEuPBiahLzy!J_r#dP>iftn6!%rThM`e9)(QOI+ra)7h2Qi_@#x zs`_$lSGwFfoo7|AR_rRh!8@Yyaj14zTbfBxyY5DP9?=7CX-pe-+_5>?a-MN>tB9IC zUsKjh5z{})zk<{^KW>hEs93Z-&(x@FLAQLz?zKq;J&t#^uP%uZ_o*;E=j|AOQD&}C zwcbn-$Am*CMZ6btyKUFqs=ZRrE#TupTg{2j7Fl(P>OD=H82!*^70=AZ<m)1vOtKR0 zr2LE6#xs54d=-oA$aD6g-*_z?cHYT49VI4xZL!<(9c?|{msn3LyxuA#qqWb=t%Ey8 zN=2?bvA(Q!#&w_Vt%}OFul<s@9XM+?Id`r=<!X}$H!Zn2xMn^$<Q*~9b4j<1{=M*b zar(D@a<S~*RH~8iByigE%!zY*`a{k6?{5DXwrPGrTw#b!=_>yhhfISy{o0aFDW$~4 z-!$8F_uZ_eC-xi<{_mW9p~lVJwA-iZb%Sc`3Y+V>j!H}0idG~p7y2SJ>D0MBQKAq2 zXr{8vJ{%t-WOU+%?!NP^cUX3(<Tjn#eIi%e`zqHjrK-aBQ?^Hy^xiYgiho%w`ptDh zzClr%*+#FAYXgI}uuM9i`Oo2Vo#v9(q)pk@2mbk8nYi{d_r8uK&z}KoQM|@`1!9u! z7~PrfxV-4|U#9xJ;+<z}?^@r{<C0Q5Iqk~D&+oc_=_Ec?<!IqmjSfF@txe3%a?-1O z3s$M9pMBj%A=4Uplf|zKsWvio++Mrw_qi?c1uRKomebmgJZSvb#b2}3ZA+bb4iEpm z$c2kPOyhb`f8)~j1y`%?*1b!-`fOkRKdG5BcjYliihW(3p2L(H-}+DH&BnU?OV`fa zG2s?rX+G@SrKn`H*73rJJ5EOF8E;n9K6`gyn{9i)pXnqUpX!=LzfBVsy}Mia?aIBg z{*jIMXMPFLIrB}p`QBe6#VA&-xZ~McC1)*muL$|)BKk~d`l&==*E9Ktj8C2DUpnvT z-+=k|G{olgm+V(MqIp_MEbY-t^Up%>J{`4bORYPm-YcSaHGJhEwctCUkzX1fRjyt0 zFSM+p;X>Jqt?Fi*<38{7Sskdu<9>JNy-k5TH10op8vbn7oEfuHv*IJqgz_-k9@E~_ zTs-H_-WwlHuN%w@;M-L>KYHQf*|WFud1~Fhc7F=j`^U%F>#{Pp=3IMkBm2tin4_Dj z&i&<@;=Cp)m0Mp*EdKeX>*eu71vS%e-|qSSx-X-?ujX?0wH)CaAM}}-gHLkK(pGe` z3b@UY>hja>^fddoZ(d!tJb&%yY3{~p$M!Js{oz0VW%c4IZOs`A*5|ZMpI5Up;NWlB zrG7gfKfhTa)9+>Q^u!6pJ111v9DTT9Vbj%cm$x&Qr8>=EUOs)b)N8I!*O~Pr3zXw; z$JiI#3A|jg^KW_UI)U?7vR9tWn6>agfG*2Z^|QO4Y>=D!dWzEZ)0<y*KU)9A_v2K% zTCTw3rkkGZV2xux$6D}%N#o&(>muvbGYXGPKATw@BHSn=x#T6E@(#t->;84^KKQ(F z593a*6lM<d#&D5~Z0+W)v-s}cOPgLN_Pax7i7TtvjGKA64KdX+qQSy8^<C+l6U$%q z1x&V^aLRQ>NvcAv-v7I-hIun9FNxc`HI-`eE??yHyPN;<XAXm`O`j(+EqwKdoribY ztoFzY>gs|*KC$XDtL@y5sCO&>P5AL+6KihYqeOYpO|lQyEj@p6ML|I;<AqnhS)Nrr z^3(fdqV)8B-s%^dIS$WZ-ROVn;q<>fJ3rV}Kks?=FEK<zJL-9u>DKg5sU`{stL9jr zP3D<f@8TG@|3~hA4}-mZUV=t0k}p{E#I?`QR0@&yzW90e?wK()w_M7t_PX55uD6)G zjq|6;%p<}(oCQ9dG}*M0L3*iL@7eyWvyXzcycT(DUJ2QD_gPOA(_v{-Hh%8rEt?Fc z8*yf8`Lk8Jy8E!M*Pi#b(JuTfOO@t(i9W@gzrLGo%MF=wR90m39#n|gcX!*5ou|tp z-kbluoaSKNd@tDk+KRNNOycZ`20yf?9Q|4Kis>42S6ggi$j;J~XTKQ()U3|2t5}81 z>B;v!aIM<geQv_ZFz0*v98Vmo-L_9SU3zHZ=S<7>Cp8o&erdZ^f3fJ=x>j)^1)t8? z+1GrW;xg=<tOZxDHq+ghaMsH6Ih)wp$3Nv&*7xKv%XEuOmao5dfKPd5?E6HPjTi5I z_q3n>r)t(C-4~ZnH7|TLCGx1m?3kT~0pEAU-sU$~J2FR(F<eDp^@ruBJR&^KO<-Q| zu;2h|b^Y3Y>E_c0XT8lXvHq?-6?db$Hfvg9nsmqO?6^I0uk&61>pivQO=C(kDrsJ^ z{AqSwV*JcMl^1F%E}mUj^*}sTsJ(mk<llN{we=?5l3C~-^<YxX(I@vlskbi)Tvumi z_$v7Ll|IjZd{?>D?W3-B&1&>5ZaI|X>K(a$LCjm}#S4BeIT)F9C%-jxTKKN@*|8!Y zE)}urPuH2eSa4m@twWXt7g8TtAFrRrY`DewW!BPH!9|yrT>DkLV~*Yddu?gX+?Q2T zo*e(+>DspD%^{H*{XLJHCdW<?eml{!<Ik@2JIm+At#~x)(x$gJeSPaUoULBwzxkr{ z7dFWrzDqKj?R8H)IbC+EOIP8u#fQSI<^T6_RbBed-76&b=ctB|VTs3O+r3O{8y5bz zx}Rvi<CPj$puey2>m4EALX3S{8N>tMOuJdxx-7p-X0FbYjpws3>^R-4Q@Hy1$6JL{ zXWf!fl)Lid1lzv-b5wPW^3Ino@u|p&-X*a}<wPdm#CJ~fRChjF*SY15h>B%aVJY|K zy@%3gW%nwrQ45Q&)4kGW!FIhg^7^{SJ(K6n-B9AmuX*g~io&Nir|*;Z*=!-SJC`Br zbbO6t%f%J#*)xiKjk32b`s-J`VxCQ@TzksgiLN&tKi@r{dU5@C-jksnY!}-;WWSoq z(B(H#SG(!sG85s`0ymQ8K9>Az{M%&4Qp+P*=4rf-|NT7N@mlU6L(gi%9sgOCZ~LV$ zaJAoa=wGve%T5(-QQMYyxw8pHEccncua<|LekgQH->5BAD5U44oj}P0#VH;$pT{RH zxxk%p(thd1{U=uJ&ZwJbBbfU!)wi@S>Ef>Y2QIs6=&sUE&NW>;cUPa?8#O`JB|Q4a zHuHt|g?N0eFg;PcD(u%E!~5xre@GtuC~Yn#vgnD8C&N=$_RNXdD{N0D<~rZ_wDg^( ztiL+%siFWy^Hjky?RB}$rN@>WwkQ>UX?HVExGM9KSyaW0q61G3y*l$*{p_jeN9*;c z{K{OnAWY+g^6Z0w!B0($yCP11n$ya*HTS7M+kw=g6UUy;cDg97c`~2zeniuR*(WDI z_c&+YX~m%z=y~J*wD(0_K04l?62rc8)K0f}6cX;8E#sBE)1tSvYR{1u()+H|>R<A% zwpv-~CDSSvUn+bh*`RW|k=C?nJj#zG%_A<S-Cm<KZBDq@`x^_d9onb3O!I)k4(mL3 z{;kp-+w4_t&OUH&Q~SDDc}D~9y%ZuxZKtdGIYPStmFlzS)b2yT-L?ff#MuF?0A zStQ&0{4|%fAD(VFwPt=&*zcK#UMyZvGfzppLU^<C2dSSw4ZqB?@)y4lE*0X&y!ThZ zs?8S9&Nrw%byJpznZ0^b>g{)$k2khd87{vrxo<%b!{fDEcjY`i-OPSr;v7#&i~4fQ zEUnT#%MMOx-P7o#@9Ntc{<iq^k4@I0+ofjdFdSol>A&mI`pFf~EkCR0aUP5mkyHKJ zGBtXwGQ%9(X-^kr$*p>AEfi<;eTG0t{n{gs|J*5jpJjV`N6S8`<t3c|zB0dHtLxL0 z<mldWVPa>iy@PuBy8hVnj5)`6%7Z$N@o>FKKEGbayx;MMpi8j-q!sJmPL2OxY2`7` z$@-*r%OM_CC8oSd^@|DxYS-IrsZ~_Fds^j2Y^sIAEg!=pUYx9N6gS<kj<-*HzU#1Y z`R>`ztgW^^ZR2l#f8k~RwiD|vu3GD4Ce$yJFB2N|H+0hm`)kIZh23Utc_+H5dzR?p z>0Or=M1`xK*t*x;>QC>EtG#@>^_rDIJN53!Ki%J=>t8;FPdWAGH7?e`u>H4X6DJt` z{iLCCQNPar+WXl*9j};c|DE}C#wD{UStgP%w{fXDe|0Y}Q4DWjOnk_+N4hHX{dp&L z&9<d`HFhsuvFQBKZH`BLW*ZCnui(&8o_PF{d8EaB=eT&^M_*1Xd4DU5$xP_b?r(4U zL;cE?Q_pUGefz;TLDul&4{Us9pJC$Vu<k!nBgVgI`TOnbOGCNCPPQNF>?>Texv^T) zwwq_xJB69G%!dpP7zYIwY+S!^)!vM#MJILcNhH{7?oy8JxwLq1q41sCjGp}SV%ASq zmOuN#!SMY=zYUu^IAvphygF^E5%BoeqkpBJK5af(aMe$ar8>+zNAinj%%{*lOI|Mh z`efdseMhI+rgcsJ7J2;OlQRCg)BjHURO-2^+czw+eA)D*By-P|z9}a<B$DIT6kI&= z%zI&@s!-$Yrb?C_EmN}$KDF*Tb@zkeK^Db3YUQ5~oC^Lr_rHnla)Fy3?CR=LOYUEn zW51ti$@+BDhLz?a5m(dy%)Y96i{;do8->rk`sZD!$=fsI@41&3X69TGZTQf3?+`zK z?KzgSKli=8@caP-tL&2L)&)neZQf|Ja{?Emai{Qa;p^u6mi#mOw|QFcCFB2BzDVco zSQa$t)JpA%EpanW&s4B%{ChEU{TyMZb+SFh=aSia{NGluZvW;jV^Fqm#oZZ9>YG)c z{I-qy^SZ94K4*HS#XPyYg`4&7zCOZK@6=hB9IAWoP^9*bi!&ywekl8$X>!}+gvnl^ zUwtO4xqBua|15fQ^WFz-kKVVwyMDOyj>w~?1!g6Wm+OByzTl~TvA*$9MON>C_H{Cz zXWLyC%B5J_x?Dba_kf9mZvXFj&F4-$+!*|!vqUcYYHZH3Wvu(XuNHk_nG-QhrNK4n zoz9|tNB7HG{o`_Xe<OTMb919mQt-sv;m3*+>f)_Ve!f|A(9U4Su5W&&N2D}ol|H*w zw@Lb!;Qcl7N*-;=IqKV#Bjk#<@1COS+OBjv^2}1*$!}IQ-SnE=Q*f&*t*8FyhBjW0 ztxqKWEUH{r(`>xBT#)as<NY+%U0K$LjK5pQKKW>)n)2Q7vFnqWCXf7ArMpxKO0}I~ zj8EE{<jG$6qsV@WnP>GD-~S8ZliOeGI`n5h6<TM{xJfU^i`D!aLs;}--k1ND-`@1} z*%ih$3@>-*2IS@axlqWY_)$4?RpbG!3f}!&if$FRPhR<c@0XhGckXU?R85`tFd+1Z z=YEC_iYBvc^KKbD%)hU+iaR2@WKmY_C$~=bBQf@2#c56oat^cQChQ6*Ke8Y#<D~xT zfaxLKf(y7;x364pvF)b9#;xU&ntwh&=a~KHU4o*OR^1)*%b6!`a&`QBeK_g*<;a_x zoE;}d3eKBq66vOx`S#-R4tJ(nUyJ@*m48lLFc&Va`L92@n*C~6(9LN*MH&`j>B31K z{5%uhyk{?8W^HNvzL)v=4W>Emw+!dl^$L3?-O8M#&S{@}X6jk%#ZOCj@m5^ql+Rt0 zGEL>f8@1w<eybVwalDx&Iq`^hnAe3z_Y+TWSsqEq^GHlI@(#Q0v&3BWdg<InTc@!u z+&PumL(+QF=EF)VQ!6<qy(+q1Gv&h%Z)T1Rf!f+K%iz#iVb88ur6gFF&)UjjDVV>Y zUZee<SYU!!UPZpD$3EuH57Nw+ZA1=xPfPk+_RV6Av9_?0EYk)3%I)?03cm?H>#R=n ziwtNxTQK8{@xl9NidSnqpQpQ0q2jH}<93^`{tpesdS<TQtGFp+%dJ0!ZDqIZ4JYp} z+Q{$ut5W}Gwcnge&-v98Ich}0Lk}Gdi}23R=hT<EaZPGkdR<Sm*6u0ntGGL^XKicw z!QHsy;LV$nTbz8;bG|<Bjd5C%eB`~#HMf#=Cp>&MdAHyD-O{~h^N}~_6y6lfknyXW zs-cv&>0s-}M#afyj}7Ec=eEDtu{Vcx%j-6~jh|yRXXaNwo!jkpxM}y&LriSZkwp!M z_g(sEwA}E%$&qVe5B}bJH(QpqaN%=Rj@-K*J6dviEdE~k<DK1_`N>#j@{6-Kuij>> zoWQB>^t?FEVT&+({Brv<*Y5VY?qnB>tL)aW`EgOGFTU#DB-iDuZ|plBqVBBjqTt4~ zFyq_iedUTZ$C~pGpZor2*U6NO@3X$=>2*f(Tz?`Z#Z$t!<lXet8L}&4&$3*f?N?c9 z`Fw4R=W@-uf0rk{ws<9E9qDCJswecZQaL6{jcd;PvZMv}{FNRx;gS+1$*<HVpHsRk z@<&=zzh$lx!_nuP_sE*p&D<EVRD05u8S!n4c-INstv)0!oe|<}@oRGLvKu%5YI~>_ zeKgXT|4?3K=|bIOk&0<zRdG@$TQZ#3+vW#+*}kl3U7y&5ZF&6uGer$^C0G8e*|hBE zx3r+?chtkO&s^9ir+!j4?y$h}@+*Q235<DmLL1fdat(KMneCi@%1P$@7qz+k$}v-o z8$aKi7icBN(s}jx^-U2Ae#ET_zx|zAao@7&^Xj7VIr}nSzYzYOW4-jAcHEcO;Yz&U ztN7n2E$&=+|4K(;cV?pftYvDZ$I6@4rd>Y7Bl72*?UFeczF5z{_&C)(L2hbOM}@zX z@a8k@>k~Yu>^mALarEa~_50=)i+kLhHS*5PIHSLPf}*d$8#kXt(=I<hF+JwSCS9}g zmzgflr~I2!SF!PG;8lmmx%qq5dDCvB3gu`DGz5NLA7U%)cC1@^@jh$elI^@U|1M3h zwWxUBYIStwvMm=4^v!nufADCMt6IRlb>8O!GS8jfS)zT;`^U*^>%=TJwO)Sv>0aLq zqm42(6W7f#bzHmg?t<b4g)3SspIe$_ot(JSqUm*w|KmWj>aDfk52(+qS~Yv)mow~3 z9|j3-PTKJ9nb@DRTtbtAuB_bl``}q6h2o<|S&h@X)+v?traD|KkrI^JF1)SxRv*h$ z@3WUKEn3x3o628W%@#hvNj53rvaJ8d7sbwVo4;3Et8EKn-SzC(742=JHC9nGGYak{ zh=nCJwo2H%abCJ?LgZuJh`BHCIg~A`lKff|nNs#gv@>*db-j#ZZ$i<cRQ2-6P19F5 zTsva3ILzm=m3=`}hy8`QPGWo3&S3JqU^dZ2HKx+3fg{UJ@BZ4Ehp${-95-uyQlW&0 z;=lh44M#p;Iffo|#G8Raeo~f#jSXyn6KEflp%IK{q+n`jj&&Q9silRb0vHgn4Jtf6 zWb*4x%gkM0Dsi-^?QPN1*sIlY&ymBk!NEg;bFVT}lgUdDcE*>X4vrJ_WLa5W?)A*? z>M-AR-tzaF+Vg*l-~F4obzgbfz4UoA)9*!U-+5Ej=HwMHMb<~Q^#~VZt7|Hw!jA5_ z)^6;rSHz4OEO#&$xOsBr<%yc`^t3LXuqr{vM=XJ>nJFYupkamtL&fuRvRru$T&J!| z^OhGJVXElm_4&!d!t#I1A1=llmH#g{@9u20R$$y-C@*Kga_TB;+mS~K|6X^u8Avd^ z=3u^YSkR!MYu&t^Vjj!~Rx=v0WgM7bU?RbIp?JIV0Y!#f3zoJc2YxVo(=cK9c$|^J zQE}mi_@#+0g%Ms73=$26t&R_NWE<#nocTK4Ti^kg^X>zN5_ilQ`WP)19Q4px#~vZV z(AT1HXW@R12XDTuxZe_UQ6r{>`&>KoW#_~V5*$+Rx>z4<dbM)Z|AWG>Igb51)!X>^ z4#N~%J)y3q9sjjnZs%uj{+x8MK!vTLwKB2(>857J1qD6YOmBKm_c9l|9<IM!aQwhT zzIr18mIaA?2__<phZ716EZ)T5{khri!2VGFvQpQI|NDA>$$r)6E6`zU+aSJ-q3dCh z(}o>)_zF~7Ppo&m=yYo_gTqDpHv#3>>wnoKytvQ%=&z}9jfGHx23O|?HiyJ-B1#G( zV$+2V{Jy_Z=g;@fKjt2PwsZX1e&Y9k;qU9E{@zyp_kZ8>{Z6ZQD+?%W;Lc<C7h%9~ zr_GUZ3*-JW9;Tju@edQkEe`#*kNJ_kK=Td%r2p)FVq!hnZ9<nA)jL*fcp>j*;U@cz zwfWV-jRNiswi1o6ujKDG6ykDLe&8YDck%vN77j*N*Z+@<i&~uLOxz!(|FfODt>xcT z8^0y@uekE`mioM3&GDyn`M<tPhco+4Kb0L7{Ozu3rSW1v-+qHBQv>4|;uY_3iwFr% zXY+U{bc&(z-+#s1`4SK2r^_0M@qTBDc;qF<`cLnV{C<1?YxRwR&Q1Xr;x{LCuqrRy z@$uL6hts7W^|?I``TO@#A?yFof2uDe8t6;3BxNzNPUJ52s-4%icGtwawhOXu-eXgF zQ}-q+Bs*k+ct~RwuTO8pj^M27z@HI2@;tt6I$2$F`s?viwg0Z(Gh<`%&o;_2|31xL z{r+y7S2u6xFJTRHc99bcT$VfA?(1FY%k$JXO%O7TjFq`yUJ+5@c*y9Bn~d+a@?+vh zUQQHuIbQmzN|#|$kg)fCpU`&q;Hmq!)><b%elunH=UV^r@YjqVcZ;Squ8Anhv;5H8 zutfKp%bM-FzjlZfdDgsBe7jR)`TvepJpmQg8$YhB*PoVqevkLcd(%BuS}VC&y`L(q zTz+dsT|$`px21_@%{P9F?{v%&e)YA+`EBVU_GX6Jdxbw)73F#EYi)}%nfrB*?8XGP z$mYYgD`#Gns9gU@biGDrYRX=(+b&D4Tv84@=XbR4YV&oOSpqlp->qLP7}=OR|D*Ov zo3~dkH=p3{i|f*qmCIbb{OG~gKXMIbIz7nz*x*+BcTaqFn9Thd9zUCRtlyr-vc;d} z<l&OUy1Geuj+es17cfZt<=XXIc=7_%MDe*I_fD+wiprW)ob~DaGjra?_i>gtHfY&* zEv`PGF8ZM{Tl=)z{`feh;wgcV4~nN;{&T5U#_vFM$*My~ESEpntiHPDm`zGV%eLct z-qrd0CKTr-ZJ*~X6nNY9Y3Pf)F5G!1`i?zFo;lZW>9xBplB&^9ql2rn|0YfLG1Tdv z`|39TZSLyc@Q~mJ>+eO@+h)J7YnR+M_h_C=uHy2STwbp)Mn`|_JHvR>?@vm_uK><d z<tw?~^)7vFmTMy=t`x4@$bG+Sa_5R;>@rMUf7Tm(wlcc9{_3<qZ`X}knlqY>IGIbi zt(e6We*Km5IsSgq+*41#PF)il&b(?_`kk;tzgsnu_N|Kga&XyuRr%!;#qXU=cqNng zBct|z)Hjx7u0v8eU;aEVS&_x-`nH{0>+jX{<T)Rwxm0l;kDh5QSt*#grB|-^>n^jH zm&p;g>pF|2yu1FTZS3#=Be?JWB#vH>U823KS~A=8fAC9*CfSDiT)lET-fTe;_nWSn z$6v{5cFWA)STfb)XpHuTh;x<kEdq<@OuQ9(ZT3$crA&?ICGK^Mwk64ttEPVRe5)Pw zQt#_o8MWeTf3m)<5_q-x!IrQ;n}2r*23&Z0xtDw0>qm2<JzF;aWfFXr+Y|F*S#9G# z6~m3Ytri`!-o5;w$%Gkmq8mPDC2Z7-G2Nz9w`<dnnZJ*_=-+!cop0L4e4RFFou;CR z&%<w8Om_dUL;byXJ+GlTS75f>yx6Ux8l}7SRj+(sI_bKXV%7Ik%O|{?)BE9R4f8|a zXQj{blGk!{z4N^Pw{!KXr#IA}Fv=>1_Ss!rr<16=^W3WExxVZSnN<&eP1tlq)_c`j z?mju&^1A04(g$m6E`}`K=M*XsmaD<D_SLN~&z837?cMh`d*#wYp9{8rOIWY9a#O-2 zp#}MJ`{u1|f4^L#*J}3sJuW|mx8$>4TYs%dtYT)4XG(X3>2hUN@ii>lA}ki26#uOh z{HXJIW&guD_Q|XG-+oyWH1D!V;J*4lmml}exc~6s(wJhqhLb|oZcisNnQRh?efUH~ ze&&_><d`?fKkF(oAO04SzMHq>V#mb&m*?{BI^0|R`eV4-2ZyCcUT=}T%aqb)bVlur z4trH*MVrn1%V9#x#q^V<IQG^a+@98dsl;>prW55$cI?@@UMNy!R_XrD+f`TB*1kFI z-dO*89@lzh3zi_}=t-6{3xEC-^R7&9KYq|zL^M~|d5;Z8m&~69w`2DghA!Fq{Y~Qj zX-|EZmVREekKvf9@cRcW^Mvvf)^o<Q&rFwHDE_zk>G^k6^6eVcu|*4~eVmZD{SoVS z`NOtbHirl8$e+3O{ONT%VH$H^8N7bHe&s{ch*>84XZTnf%vF}y8yfDBAh=pvDr7>Y z)I*^c(f{_Se(_PXU*=Q4Bh>w`>A`!GiZ{t0Zn)xe#GQ3=Rn6^tuIK9Fo=d;kx@_`e zpZCur9*5Xf26cUX@4R@w)otGsTWw1wW*4lj$!p|Y@mxW4i-$JToj(&UuGr>ZsJvi~ zp;L10{$qOCoVN2-X60Y@O;@<~&^B*|O7-^-tU@iWd2XuK6Fwzn&&Ua~)R~r_o|tiT zWsTg%y`@eeM*C+?da(JQ&ddKfU(330d4D_CIWbwZjQPy==<ijw_Orf-Pgs8CoQI9k zMXv4g{H>a^=AT}5y`Ocuh|Y@FQZhTY{M_@e;#lkxsox&#^A;;TOBVZj<<m8nrrq<` zq}~YH_vZ7rjh~k9@sn=n-!ii*#=gvwSNdgV;l_pAqgi{`P3Ou|JzF#Fd&TTom(D!( zzx~vS`?riwvg20SE!%|uZm6wSv3ywh<{`iP#C6HRiTm|mub#EgZtk9<aEH}lnqlcx zHL<&YKC$i0^xqP3Xot;@idYkMo=q=K-#>lZuq*z=@s-PqYrinLc%>KIVOi9em}nij zs?o6Lnd_SmKi$-Sw=f<Ix4*Pz@+y7%6KX3jzh1V!?MH;&!_!&b*H&xrFSOE5-jXyu z+_(Dsf$I?o&$_?tnl)+S-GzxI_dNdjl>L1A(b?ftZ_MROtJwv4epJUSdA98IO!v)u z8P8ACOP+ROvVVo_uHRB`|30^V;JK95sAc=kc^f=fde8Ok+UnldV4arpaboxJh5p6e zyiczkzmUxRuc$mq{>@*X4OdL|hq+emKKpRi@vGdkmlkGf{bTv0`Mb?ls!>F!*-|Qb z`SbK>Hl8K#n`@#L<@}hsOl{rKf=sv0UAnOorg7@-*^;~VO-JrA?#cC*77>1mQ<l9~ zzPaYujGZ<iMr&p-*tv8w%a+Oy0s5;hIDOu^_~Kv3{KJ#x$v=M8%Par1M?N*VcZVIv zlh;PiH+|I*KlE^|T<q>i@)HF=Jt~v_;$!r5#UYt5{}SIXJ8kDEmOk&5iS&zW7Bh1z z6K)(?YRVZqX~yD3&i*E=FF#`Z{KBSSNw?yY<~O&$soqUGSt)mI_oZ`U%v00!_DxY> zHP_j@W@~tui&jTd$@G}Y6U}?8YKvDX?PZvz@#D)gk-s0RRbMgI@G>pdv;C)*e}B2M z%&zX}Kh~XpEU$aTNvyq_Z<_R9QLcLNy}Zji@}fKPbTzC@4<3L1q~Ib?{XtWmJ*OBJ zELs0vc*jM@9zFG$H$Lw*duBHGgvZ{68+I%a`8_#u>U-8LUkVkpm+zSWdlyHxMMMm< z!`cn{3LO_OC>_teF8cbD{E{G}8^MAp4SuFq=0C{t7k>MwwD5{;+l`)&3;dsct1SK} zIdy&KTd!CKVZRXf*I_}kYgwPV^_V|>yZ6o6PS1GLR2PH2KefJo<$l{;^Y6#Oey?t> zjXY&Fo0tAsa`+<WQ_=R<p==WmrCihQcQ<?4m47ca#{Ss*D=7^3cI-TH=-axaQxn>D z9#Q)&S+1UG&bp5`#G*gqsa5%$T2`j>s~Piln$A0C{>{_s#huT;>-ZmU{xeNv+4rYH zVhVfK%}&Wv*Io8du;TBUc&@mrTQ*-~UYBd92byT#*gRq9<(Tys+=U+;T`jdnUNXvf z=k}Yc(`RiqJ#*mhr{08JdW-GzPfRq+sz1Mf+rzYoT;^vNR<G}Jy|I)}GwGS0)hWm6 z_3b4o5~rQyuEu{C3OF8ozO;E|(T7`ywH-ZOQYY1N?8wv?6$>lMJ9k-ZnziSHOVNJc z&OXv<_<gM?EOO_ghiBBQc-xF-)%I?1yBZyLe9nr={R@vBi80Mj@kwXx*{&&Zum6&W zO_tHLe-DKXOO~v#Ox6`p{Tca<d6KE)qGywJRUbE3y_%Ep@|DZ;w_@5^yJgF~CtW!? zv!?2$Uw8AlZW+1%dmL5IHa<|{-ES~4kdM=~{M?rOnL6=38~&|bx-+HrcuUF4Uy4>K z(T5kOZCR<<cT;QglLaru9_qACX1VETCmA@q?ciR00qqGkr5O<?nvc#qCDLSfD~jWL zzh=#<=3{eq-)7WgJ}k)A?le#PL3+BTU|jXTOZr8%yz_oM&b%!mdSQzF<tN$sqED>a z{GMhdzG`~<_3l(}b6&TzkJoIS$FXCUYxSZRj~4pRT6$gJa3|NiG_R7w>R+`5E}nV6 zC|05R)4#{!#y_5Fc<xc2_bWT}nfA6gzufidt<yU~#9l<N{kH1rp2JJ`v1a85J?Pxr z?(`=hS)4hfQhWN=E&h+zi#`)yUG@LT=}Dds&wehE2>Q0%<da9mqMsoP`%G*e81K3J zNl*1Rv(daKq2jl%-~3!L`)}1MfyuGw{%v=PZt0UadoAP2#lO<bkB%(6eRa>g+S5#H zC8aVox4CY;r5t0+-`&!mH)rRWd8he2npdy4lJAOWe;vd*VO4Bgp}z3<54<AXJ)MR} zR=qp+_eSs5-IhX%Cao6vEq8+}SFg2oIG6N#-Q_L8pPvR>akhI^zTM{kA}#RSBY)9Z zjX!tQczpl+$-F7m`_<C5X4h?#eto~2dHL?&qRb<oWp}@oTy#~+{>QA@5w~ttpS&xc zGl}EDh4;7nw@#a7deipvZ3(Ac(Yv?Vh}@VzceP}OZ~W;6-g<Svlj4~-ik801%<%V` z_;pI*Bc5rWBL8~ai(gqcC!xvu{@bJBhi0lw4K1|UJ$?4)wns6$-di>E{%XuV>N~Zt zH(8A<seDuFqoeV^-&dcXxGwmt-p|uU@m*6lND0Y%yZ8xv#^f$oI^Soxg5>MBX}2z) zub!)9Yr5^kPU-N#Y#x@zl)k>(p}*|zt=YY<(0Ai0zLbI!9`9ByEVVkRB|hoof`+@d z5>L$zj9jSkEJl5$|Ma4Fjt|%G&sCmp$=Bc3XEG-=wZ`YYe$Sfes)no`KGAc|?PR<2 zY+8C%<J+0Xylr!stWIdo*<Q2bp_XKQ_4ki={#HEN#qx7f`4>sKoje^or>DJHu$XiE zqK><v&goZLln%dX41U>hwp6;pJ|HC`Lc6cQW3%LunUYDrR~^Yc$6n`ObzsLrZ{MEu zCrZoaRQ>)sxjMJXgj4_AVM#a36O~){o{+PWe93(?Eyhb@U13q)QpvJ+ulFA7*-)PH zGP@w<y2WCxSxR!Y39h>4>TNPsH<#?*+5Ml#=We6-o)wb4;d8dmFZFpiD<W>Q^LpFn zp2+Rm_aA#{2)<mj#Xv|le{+;O=Pch#Hg=@~vvQuy$`@n2VY54D>bfgGKg|iPx$3rm zk@>0{!AnakOWL<rh|d4GFnPg+vzftF_PLqtldqZTmwMK{-CiRmr&5;|upn~F26J9T z*%!0UFRPsB7dg*l_W8U%(MP8e99-)+l)anIb@}F;(#Yw)JBsFN6sBGLk+Wu|mH*6| z>kkUneo(ji&%HeA-rAbHbfu7n!nO$q8x~1<FTOKHcXd+goI>qr_H+lYmsej4Crp=Q z@|JV#UQjVh<JP9CXXlfjZK%6o*ZI+OzP`}GO?&zIcz>V#-ar4~DxufELpjC!?wP%s z7v+BLT!r|llS|~?WX?_bB)n(VzSO1rZs&dcY_{^<v&M->e&-p!+9E2v|Bc4`$q{9L z*6AqAok~x;xa5||=i<$4o*A*swJFs6_)^Br;o!vJlg%PYvLBlde1Cnx`jH5ulgRsM zou8j#bza21;h1{xnh0y6f^B};BCl&wUSfVuPgO1dY_j$?NuQB>c2(b`$k|`d{#s=_ z>DF=oOu^#p;CHS8Pp<CK{Jg;H{*KeGsk+r6`Az20yZ&)Y*nF;<nzs2wagP1#J<H~N zKf25|(%S!X^gE5Zz{<RBlINCqD!cYve%x~KEyuno;g8(axbClr_l%QYz$y59iQ397 z|99RzzTP?i_^aLN(oCJ6b>&-(*B^1;-(|{s;Lg^|ueHlX9;8`r^j5hwedmnF-`$qo z+i>^q5<x-X>U}z{-MuA=%dhR(({Q-yuJ=RRrY))b^OyB>v{<jWBP^l1>gk-@;S01% zoPFZAG-q4i-_+SA*|W@N&+LZN#U^FP3@>lYJ9NIdUx4x6b<4J54)xrX*<U9AxS0`u zt!>f$@HyuGci$*}Gc5O#;eNaN@l%WUqEpyn)&Ks|++cNc!{VLq=e)ce{ns=1&03~y z>nFw(S_eIK5`VmvPloZn*o7Bo?k@dketzYv#SbK&t1WHI?c-PKnK5nZ#q2|7pCewC z-hQ*F^1~Kh+X9XAkvs0_KWQnx`pW9tjG7tS!%W^dztUyC#lI@qm?<Rj)U~agNgAiL z*9PtUZu{(O`s(LAA#yGuN>g`+wXrH&Ja~5S&iCVOSBmzr?T9!i$5DG<lkua0o?7$T z`vSjCUMN_(A#r7If3eqVu35rNI`eYolw7YpxwU4(+YOG#b@b)u&O26mMLF^AZKhqn zf4+;%O*r9I`lIPhwC>U?iHhC5yV=g<9Cxnf7TZyOr|zfV#Y^%VCw^YB!`$b<s>svA zCmwR1{Pe}P-DcIRt8<c?EIY4u&Auj3pTh2uF>#B>^kYvdLwCLG_!`@MM<8E(BHQC_ zU-FYWY&BO$|2_QqoJz&+%Rx(*7q0KQfB1d&vHI0t8Xh=b^J))2GJU)K<O9k#QXl_m z6kd1Usd}>h$`m#}jy0#eykgWg`D-3nwk>w+(GS(L_L}Hw&AH9eAn7Q({lm7Nt!B18 zU9nSz9&|pLx>0Pa%)9)T^B8~1$Sje*Fz@yC&OC9W;OkP2sR5bh+#y#zjNi}mk&xzm z_TABJpOTv2)0rarTiiO7jkGQ~CZ-#GQh$7>k6UZ~dDh>*kA%pr+{oDa=%G%d$@@23 zo|P)^o);Ssvs+`@1yR9kS&h!_HGir$ZMMt2W>|aoewVz)bNTt={QLIu-6-0Ty<chJ zxl6J+%BjCz3H-HEkAATAce3<K2L1kNpXaF9u<m(dEm_8#uy*?VBDR_3-)=4J@{cW% z@iF_&@Oja>kQr_5CClUQE@y4h+u!V$=3cphIf(tS(k{KL_VQ(ia{Z>4wA+>3-el~Y z(SF@?|CI0kV)YB3Mz&uOPwURr$$6>S{rv3P^;{?X_g+pB$*sC__m;~HnVB)?-Z@|S z;+yQbLnGK=+m-m1q-DFF6>BVdWvJTfeLBL?;lVtC-p#S^_ub9%WUHN5#M+>KP|fh) zX{!@PUsvDQS;(07yD#R?-gnj6DSusCpZK>VCA{XGdMoR0PjdL9n<cgG&XWy)3V%6l zvt%XXo}|6D_m?;P`BJ!2#na|L^XUpzEY~L)S(suy<jfd;l$nu&p@EqZoQrbEnW2f9 zIkBVrWvLM{Zzt(G3UlxsT&T#Be@AhLb3u8ARJl|+uaLry-Me@1b}rz2_l~9g^!K@z z#m_9u>&~9(f0w?0>#DGmtNxbND^3k(;*z>4(R4ItjiQ5Em0MoJnwe7<E<S87oh`XQ z>Bf=3a~Cf0d|=z4Soc#Yhu^GW#?6Rs35NrB7)&<^I<W9C85lFq*s)`Wz<!37+??3A zXMKDW8MH)QO|zn+cGXAzD`J$`^-s96yTrhFBU`{8TZ=~B+?=%su1zrS`d_#}NP?$f zMib+)v}p+q8|Lh3Te1dp*jX5>0^c^a+tLwCPh{^$F*2r{aY)E!H!wYL<Ct8+&wgfx zl;qr$Z{gW|U-Dy`_!yWQnsp^ozKOAwF*fG@Z+gM7EumW5n7w^_dc#cS14r&1kosiC z+`)U`j8w|Yj4$Dg`DMwo_j7OBy1nxAhN{E&PCUt#QQ%XkHjd_apu2ic#|`^eEi<GX z{+)W8@QsZ*r{}&+Z;nG>{njt$-`qa8Iq{rXBg-JLf&0n&n6`w5i8GtmE^T}r{m$Gd zx_a~e(*-34o6UZPvz9PaZ|H2?J5lw<!H2!idVjBf`DeBNf%=#C4qUr->FfK9+57kY z+stO%!F=P=47rJ&KXuhPK25uQ<c!qBhwD=(ZZX@&Xkhs7aNd)Q-~MMfbN+vCSn=<c z<g4vUJUuyUbYmIa5|UlmBBf76dof)7@00rLzxBlb{3`$K1%Lc^x%YqWj{oZ})>n4^ z-~Rsd{@`xQsHjs?5qotH*y~9ixUHMaJc02~>G=q$8_fT9WxtU*_&<I|<J6f;U)Kx& zc;A=xpkCy+e9eD8ZzrC6ZAuxrpVW9Jbk3ajQ9jL>-OyNk!^Az3EGb+DW*cf|-@IQY znytKH@6ws3KYVZRKmJSX$cZ2MGd8W1JaOokzTl02jE!r1|Ly%_zVn~nJV$4rfQXRh zZ~J#A{{J?m{x(a;rq#L<ALKKy?7J!P_xVG8IYmWj@doP&b2%AO(jGDt6l`F!m^s7d z|LmUn%Lad6|2fN$l>dzBLei4-loX~twf{eVUO)NV{)-(^%{e{)Zpo;2G;Y0kd(+?L z5A`LUWaR%}_VNDv|IwHK+x*}AEnx$<M9U6~bmm8#2L3*tO(Bm`zCcbsJNSkDme>`I z=V`yE+%Bn5XIo!9^@V*X%cbjm#rsWmo|C&}m+yV?4NqC!rX_DW*ypDSR@E(gcgih( zVaCG+cRway&~@;$3i|!9&P;hT+v=0&R_xkrxN5<Q+5cJmP3|2^`v33Ev|G<N2XEsS z`zaqSq95Q?s#2yMr7Pl=dhVg1>zRLV<xkyP*!XW>ANP)RxlFgdoZyeI;3?Sih|e=w zaow+P*G(6Q?_gKwd(JDzTE8Vo;@9FE$K>ZV3rsTZwL5549&zwrf_>kcs^UBPo|C!m zz1%xNX=#uD8RyDKJC)+3(kqYeZtW3IPPtpI#w(-pd`jiXvWFe>mAIrmj&LlIt<&W? z;Iy<`k$2PK3GCc{EN+vweUs>45%?}=n%l#@Hw5-vf843}QGy|M!6$VstC-#IuRiiv zJb$0dKdzLg&nj1iy-B<Oqu^z<cT9UhE5m}BK{rdR>RSG7yVqvC_`#8sEGIX%0N-!F z4fzTd-;2Cfu^{dIg)qOe#a#+qFaGN$C~4Xrp0hM^k7b<g8SB!2?K1_umh(MJT)cUC zeR;{gyaF#dufEGkT?NZd{=Vj4JoSgjwuPV7>v_L;DSns#{PNX~RR%&&Eh1L&`EInb z4&IQ_f6Oggd?}k8C#&fGqFSb#latgJGCn!A{aoh_skI+wID9#%xc`Z>hR(Ww92OT{ zrndC*pXRXr`Z89mZ&Scw+iAyI4}X<aoyRrl5Z63^-eXT%&jd*M=x1!be{=C!@f-`i z^KCYM^=eFKy2E#r<|b^M66yR<O(F53Wr45juL!TnToPZnd&^JnIS{n;g_~U;gTnSH z)ApU=DPdacwdA;`5RdT+W=HNnH3B)Ze=9e6C>`ArIDy&trhc$Klfup=haSfCmt^MU ze0`MGGb?jyzsTmP+{@=5dR@i7NBhc*{=++d6rDLClygR?ebYzgEwy`@m+dxK(>g_$ zt1Tl^GKs-|TV3A{P1};UUcO3Q7ullU{fs)2x~N<84`UhE?9%}+>=c>4pSfBo|8h%A zQth!){^-f`1R@iQn}sV<wt4b>h>HEPZ$`wI#o`J6v)9G@n{AY_b$@y)>uhvM#me(P zc{WSRJ<VG+<=-B~ZwgWJoIeDX`B;5l;WzhnvWH5a;iPT%)(8khcYK+h(vqL_<otmH zdRC4mYWdSuHswCI>z{hsEbsf3(}o_#%{Nl6{btDLG>w_Dy~cE*;H=}1Z|>D*T@-bq z`SZN1Z>HQ`{Q6z>9@hI=zofqKYwUS^@Zp})j$KxlcR!V%cqim<jo_SOlZyp*4}aMD z9<O9MCVK75!mvC4wy(U&ye;id|E)`_w%!sdWWPOqRh0A2_)qzLmo;m99Gh2kY<Kz0 zyu9lD7LKZG8y3EPtZLm5=<=|2?jrB=yo)%CXUxyH{nFYv+19bgznEFlU7BOFcJlo; zruw@p<!;SBzjms?6HBp)HNgVcUQ2y#J^60RhR+lB`LrII!do3G<4}?|=e5-oL*>BA z>zZqY{XZ56etG#?{L%~mJt-fXcl!pPDR<qF^Yq$eT~?1~M!jvf4>$B=e|xt6ecqQP z0>&3NE{xIJ+Qzx{_qiYIm}~{MGO3lVO_g~csL?d_htJ(J&O3gtD`QYpY39&oe!g?r z`Rj4_uU-|B6Q9EJ;8m;BQjg1bu3hi!%vJ6dU#4VyI`GyhyN-paJxuF!7cK3bBpMsG z@0D0rgO%rz-_fNZmu%GEc`^l5oU2@+E4gO-yWRySoo{K@=LA3NNi*EA+`~cf<LgD& z3)Evm_G<LLW_j^k(OFV8xvf%;?{ZDn4XvF!Bv+WWUO$@Uc=h(GFRYS=5grD|5*K@x zzi?afcSeH6iVG{QSO*`{Qt5e<@-FSUP(gIQ)ol*%GpRFozgjCAb^O+?led?L|5<w^ zCQel`WAS{i$d;$E8Zuv4jfBP0zWA*YciiWr&%L#H`@2)S<TA{rSKLYn`kQ$2P4NZQ z6%MnHRK4>Keid-u%3kfg-YSFaT$g#?N&)XZJP+)(*0MUmJ9$dY_nHZYOVoBgz8etD zSK@e|<3!N$uJubZwkPz3e_Q$V!=-Z~j(y8ROn2=#-Qi{UVCmJXE>%jq-?+5s{(N4N zedXtIgL7Nn?Xx+~Dsq+i-;eO?Q*@KREIww^awTNVKerpLtUu3)zue7#ke7RB!Z+v1 z*Q=vm8tpA`aQ$@e`kTek`=%Ib+~D~>L$B#;(W+O`ojtQ8wuDBp@BFEsljD>WZu5ob z-u-!e>~GU_cK4<1+huUUY|h;c-U`n?DIa&XymmO^b>wy3e=mi;DhKGPe^{dZrT6jn zA8+_>cU5nUEUmsT`rzNwKQ{vT^*PRNeDm`BtJL`F<(zpg?_VtZsNJLd&pbM){dDQl z14oZW{eJ6ve3rn={M36FKh1cf!`i>}LdrUqz%!SVmmE#Bmh2O)l6>t^lM^&CFk9(4 zzfzZ1n&I=95dPxVJASL3zv(4=LpoKr;CWJnHfz9?u(i4q_bhl^v0dujhBZq0@A)3L zWo+efnj3L*$;#*ZJYMrWKj@Qr^vXW=SHU}eyw~q)s7lS>GWT3h$w`TgukOnKkpF)1 zdizUJ<NjIeCLdy*cXuI&qkrMjrPA+0KM3=-9kjhBt?fB)>ul5g`A^QB3z{N0`PKc| zdOrQ;CFL?}_k9l)7kM<}YH^i(&+}lJ+@}u@YuhOYh16}*srX~O{sD7Hlw<A6W93(V zeED_k{k)828Ej{JwIzM|`Rn$F)=s?3t)sj}Z`#y+xn*ze2=<l!d>%K;>{OuH-Oq|E zFG=onzq`KcvtZ|Y%N6?sS{B@m@$k;}sB5_v-EPGFds+3RRTdBRzF$ttTdVxu@UFs? zHt%`MzMG4BPxNI;uK%4EyX>~^3fp*L-TVtSw+r8u8|%qfZ>~O<u9sN+#Q*(*UG<x{ z)bE^Zl$g6ncIJX53{&lX=R4Vbd1zEvV5!7lonx12E$6D#v`DM`!9#<53wEbFmwzuh z?<sWVPQfGF$fZl#KjoZj-)*P8p<rrd_CwuyO>S4VrfG1y{1iO9^G3@N#)$6)UP@1r zJDb0lND9^bnLPQ__ld_RnLb_gU2M(*rA@lipPMFIeVOvWEBmVgtG+y!?H09*2Hg6x zmR8BLj<{Sc*|J6GuiI^-s`Eh!TKjm?XQkWh?*A6c&;5GYZYAYY#lc%b{xDU?udRE} zvUcGzJwJy9uf8^zls!6AH1YAKJ(mtSy6&}`Bz|Gv@fi^Ze|u?8K9l0!EnvEQcGLfV zs_JK}WBb*A9M9eM^jeARQVa1lE%onKq(&)N8h$EYxV33^-rwaRZ>r9DuDpJfVfCcL zj!j%)m27-o+nF^gUWh0K{@N<AOKRE$0WCelY_<D|J(n_*L|M`*T;|;Gd=v1><7-k! z(er@HC8Zl#f+n0vVy}D1mLs!(tMPHEMWm9&zR0apOc&i&R@@mBzw>ug+}*!{m&}_# z3szk|7knp8>Gac&@2n0xhNw4J8p(*B4?6bBazfdg#V1WJh6uOKS^aT_k+D%^%1<4G zked~E{wAdT`W2I+QS6d%o^L1D*Qy}Kzkh!?UP!z>`P@8{;<Cz=eXlEz&V4rhEdQd~ z0P8uvv$yUqR-VLnLi1a#km2RW%cUbLHAR=6E7SXZLb&bQ@}`x+2_~@tvFaaoinCuh z|L?$Of3p)(yQ9m$8g$O$Y0G`K>4Si}<W|vdQC%)p7r!e$F}baK>w#V4e3>ZKlrt(W z_NRn9-%hq#6lNkEcW|*_)v8Zi@^;cSGs3#EpY5}bI<}ra>DHduEAIpL?{+DEnjmxM z;O2JGEi+SDug!U@^J`}ML+Ly2Z#?-GTh2vYuk3x`UBoZIn|S~Af$qf>KB1aF?q4}k zealE(dSOgWpVf!5S1k*V1Qpdxy`lSbVfxC97~e-lE&u=eewcA6$d=<qx6pPQ3n32e zOYJvboGRV6<JcAN<QpFk9=iT0sr)fp?q16`_uRDO?v=*O3-MGqDlFF_<Gypv-x(&` zKb??bG1Zs8u)cEpar<6vufm3?ZTHNs$Xs8u?EKsEHpO3CM1@vcT2_Cl{Js2<t6PQ9 zOxE0<QxQzBt-j5T;au}jZGXAdyws>upD%Gtd~GmCdVfl*!?q2Vx@T>?qMMw*^ajro zyM<mnKgDuaPx$Ndqk3}1jpG}hv2b??U3kCXmZ<C81uOF>FTc5D=fCPD0rJ;+E7B!0 z-(HV9st{i1=2nt=ktOZctP`?pyhEnG$m4roF|{b<{mZ>c`RkV|f4KF{t}nzPX5L{- zJtxHrf0R9Z{w^{-Et7hwD=mp*VnvsAMbnEZ@qb@C{P=0zdF1+Ki`f1P8RsMP@9dqr zB~hKv{!d1f;Nd*(rmZ)dH+`wQl#rox`B`q3k$73C%?*c(Ow9sS7Z<!)-#eLio9ib_ zGpXqZ-#La(HDG!4<{$6+%dNQrvk!;QD(*ZM7kyb!d*S(jMb$@(Lbg5a^(<jmyk4%r zdtt`Yo0V^uc<;8il8I7goamM@Q~&JC#}kWf#Djx+pRkrP-}k;~cP`kL|FA&j<ek$U z6@xD%2xMGR30T?fylLIv*<zhBbFMvAdg1e4@NR3k8`qc1f`9fhwp?Dfb)kCk?;OG1 zi%X~OygmJaYT2hxM!GR4?{r^&c660lOy+clj&B9|d+z)^<)JTqr2d&m*2)#>hmEDS z?RsXjgV82)n#v`%Lx+U6tiFH9tS?W(DkA!S)5>-KE(Qc>9bLn5s-<4#c8saZf$1;) z=bqO!&VJV{FmLM&7bz9BN(E-m$OASDE`2NFagh;R$9D7KNp@onM*Tgp+!HR`&^YsQ z=8MocfA@Qa4Av!*idQsGUb5eq_Hl*4noq{kL3TU+4+I=M9%IdVO>oIAHxr*{4p%3! zb^9JTp`~md_WrxE-;|oSdB>OC>JbW`Vt6St{NYZMU%p$-%}v*wdS)$Cmb51Osa3RY z;Y;t+QprUn-><%Yd;hP>y=5-kaV9g1b)r~J_Z`<^UZ|3~UFQGXd}+7OMG}t+miYv+ zdw1(8JI`T=eDrC%vyArC8`B@QeL4Q3ET`@7d7G_E`#tAK1?*>9bWMvn_F2SADVMWV zm40SP<-+w(PamEda&N|ENsaQ{0{czIPt4ET>OEU?D&cIa<C;H)61R1OwpbfCbshb2 zBQ$K4SY)E*gZr&Deo51rPaK#fWKejgo_l$piqp4eGewN^jvO*}ySQ(SsA1Rd&I9=u zy}PQH8C3;LY4m(KU81$J$S`N|tf~JOU!C)Rb!gNt!zpb-{I`_m+pg5`pJpkhm4Dl6 znYrrAiAMxiz1eGUPG2FV_{`a7?~HxEYcL*lkVrWhV^}`*?4K{S4Ln@TQ}n-<OG!+N z?DPuUV0pLvuULGt-iBhn=Ba$Q?)DsAxpPCS<nvVD#MjkA(*!H5uUuVj_s8bdR}-#T z4aw~P_i7(+ecy6uR`Rp3k0%4GJ##i3{;rpi8Nbsb_Vi3m%c$Lzr=wr<N&Y@=!{2p! z!D6))4yz;ff3!YiV<yV)|3j<B!n*P*%inzKQz8rhR3EFnpL?rjZPxc6D_2<*+HLT? z{^|7F!Vd3U9V-t9s}%9Ye^uNWDRgOvrGMd;o(G1fg2Q?OT`#<UHDhnet&Q3<jf$?U z*t)g8?AA{4M@#;#*7Q@1^t!a-4F6}zl|NEHy8pG?-y7{!!YaG|Vt%+ylYrU=&2;5h zP0ROz#?l4p>4x)G`Yi4Gc<7Wcv!~6piP;N7+`swVje2xL!teX{Kc%WCA0@4;@^EO2 zOAydw%F1(|`uxH3CmJ)Z&iJ}=&P&nfzD4V=Usg4%eJMS$LPP$VdS<nSy@dql{TcFm zro6mAD~zu$=jof)1Iw0$y*-|4m$9{OGJ6%@)Vu$rlq)}QipI>?pPRaJ;y$Y`)7*JI z#Zq2hw#a64nO@{uZP#(*TlRzfi3cTD#y%=B5}JJPV9AQFCrp&53Y{tJa+v+Nf%T;4 z(QK1Ce)V=wRndd<t~UR*RLp&S)9QF+`l_qHgZ)Z=M(x;s`uF*&Jo(C(k<Ec;933W| zWc_>XYt_q{@h1cg`KPU{wvy&7+_BM=<yPS04QdVZzh`u|M{6_h)wOEQ7HnLVn9y@c zRa&#KN_KD0@m0x(-)3GtXUTbt<JO~$hgr_z_g8;jd~<I_HOti(lQN4A3fc0%^_sot zQ^=7;zip<qg#8o#Cir1#is>P@#r>|n{YL*SFa270?UUi@T|Y1WUlSzlt#|rj?5EX9 zLFp%JFRNSpyWQ({IQ8I;c>yU;7mFBmR{r3f6Z%pyv-sSsl&KF)udn1iqhRjEnC8Cy z?a7{x`EKrJr>B-`K1#a59No25b(WqVV`1Zk$?qQ>KDPg-f@qZC(L9I7w1ubj|NV(H zztksl<jA&$Ydh~8jNO~`v(@qtOOS))!UK|TcPj+x^qc%Xyg_=;iR!XXcS}|>vqmn9 zGG&qZZ@PWG=*p)TN=`_~-{MxBqpBaX)yMFuL!xffJ;|9feOvnLnY^XT1AoqL3;wWX zPvWkk%%Tg=sspovxn$kW`Rsb)#gd?0_txdRf0<8GxzwgVYy20n9ZXS-6#XRT+cPI7 zMe<vBPdw)(6JBrQ7e!_pET*kJ?JaZ3eqN_?o-+3&xA$L#SDwoC`7QU!=<3s{-@E7k z)UVUoxO(2bz`U+g6~{$tmj0U>dsS7#%)>%gZ}ko#Q<WIzjIX@`kF4+K)&9Pww&*_Z zB>UAJ4_LQnzg?BN@kddKxlZYxhpBz9E>C~Y5|qw#YmMzyquM^prM7Q)s^;3~rp8Ay zaeRImuy^UiO8>w69oP@}{5zm|eVIc2$Mj`+_oG&CU;BEl#*dD*ts#tGSHE&*PW~+9 zTO;M^F(YnMde2vzIq8!+_1D~7ePp9nQ2oSnhGE`ktJZaEU9i0VX7a^p&avA|ru55k zZo0?*d_}rnTugcJQt!KO#V*X4T{OGKGhzP0gDi>DjkC_h-gtiURCMaysmtB%D(%)L z%v<R`Ct*vpJF7H@_FVZB?%j*>b2dI<xtFKo@U>|QPsgEME!BTyuP=XC-1}|XyRKu0 z!`D2Y{p;KtN1;=?&B~^4gc@(0P+8vW7<xsx<;12xtJ^F3L@yt)*JF$~o^sc>`}U%9 zpAKrM@w-<E2fTCLw=L(}okFH>hpuJ+`giZFR$F@Y&Y5)+)b%nnels$!h(39Ktz(xc zv()WC*V451-Sr!?zqf3e{^{#n`+4f6KY~77yr*S&sB4+W+!tj*Pn29(V$c5kY*J;y zVedV8>&L|nH~4?2q<S(OXR%YNd+g?^ro>`ec~;`#oBa$*61OEK!zKzA-%M_r7WeIG zW?1-{$qf}9$0`)Be&qRH?(VY8;Ks-N7)A3nFLhg;r>z#<Hz~0FZR*EwH_r8J|KlHh zXL%_f<H9DX`ROxaW4HKh_P4#u|73G)0K1S6+h5k3l6%u0n%O4oDUju#zP?u9dHRd| z8=DyZ++yN-qkp|NrmRQ!Ky%EUA4NiJ`!4<wYj#PQ!zIIh`N!6Sm6yJ&m888~;vpWf zD8RAy<K#~Hy~j89it(kVe}BZ+_xsY}ZZXa)QeT6+$|p@Yd8@f|N?H2L&*u-Q)Cw(Q zt-B`6>S3Ir+a=;v_3epBy;}N`FL8;F>NeT<uAK5XTf(p_$1UKvhk;JbFW+wm-!9{Q z`HtyTC~upz`$thb^N<_6l77hbK0AGG=Z}nr!-i)clzlxg<89`_-cL*OFMR9OXE*ej za+|Fo^6e6Hy^yq<-uJI<m-)JR^LfSIv{NGa9&AE0+g4|1x+kplk#y|8wKLB6<z~Ng z2Zc*!Xg5}ew{x6)KmUkm_vL#_s%D+CllhtRx9NH}=b!d(8JqTL7p^mujCY;w^w{yz z(!;Ah@GIrq^J(>!dB?Cz)3K9t;ctya3;z7RH%D`FUdrKXj~FtyOo{AD^r<u0$}d-S z;qi_y>!%i|MrcbOsc!Y0RUZE;%pvi4?*Ya7#{2$CHA`7G-E`sD`&rjgwIZ}A!oK|6 zH0C5;U!PUtuBzOD%R()Ei^JAxPO-c5GI`2=E#<oH{X46+#>Iq-9#Pw`vGnn4fxEJQ zl-w_yZ|})p)3)4GNH@FmQQ{8kcQSM5em}F(<=WZMs!vQ84en?hj`(~@-Fk-WA}z~f zS_i^IrcZ3#IWb&eOZaK)gwNl$Ew<&*RZa1$@pzS-Y;XBfY0X`M!n)Xs6N|H~vV!A3 zaL3jySDPf7yO3wkndUGD_A7jU&m3Mm&*IS&)nCerf2MuBcDOdzPoMp4vf;-GdqTMW zp5LR%!^tAfH^sGGxpZ~0;WGP&ChTwaSCmdw>OB&&Qv1eg;b)Kj&Rh1Z-e0wH+q<S; z%fFX*J`d@McvRtdQRDvm-y82bUT98O#`u>h%A8rQ>=*mJiTnx*_bx6vxO~dw<8S+x zXmjirI{Q%MrSZ1fXN4(?Cz*0MxmIK!4ZN-q|53zr%VVc@!><*mB+cuWJ8f~D;WR;| ze8P+szyC2Qsj=@0_xW{jy8ugv{sRB<%a>9o1}xxs-aK{pWc70`vYHPB(~rlU+#NRm zpW6#tUR&R$Y>O4Swm!D^m$q1_UoGC|UhAu|)Mwkl9Sbbv4YC$Y+M}5Eed)sv^S?f# zZ)Iidj*8A(y5Wrc-Va|*j3Zf%mhm%}&+ivpp~|{I<({hY&$A_Yfgukp?6og$IBxhg zu65Nq_Sz+`PefiyZ+ennEtWnfH2jCCg6cW(?q8O#4l<SOoZb0*vhAV|HEs8Fm$_Z& zcowVG`(}NI{$57Mi7RqyLpLw>=D2-rvqtH*sH%yMhf5F7S;u5me_+4JJ}#l6j!91# zw>Q6hFo9*uVy^Xp-B}0nCfPinw%uX5<X_`!RWHu_vu!iiJ{GGKl(E9Q`r?5Wz9k=* zF5dR1EPe4qyZs*zEj5_@BBY|_Y3GIrUQWIxg-i#gy?)d6?0xO~H_Os<#s5oOTKh^> z_i>B5w94duGw}oE0>7SgT{_+Qu$Wc+>$`wY*Ohtiv~vE^NcgR`^~AfDxuX344gFYR z=YEO&aP+j_O5JOAGv=AJ9NF!9{NLlGMqRhGf9Jn_Q{LBlJM}^TzcuL>OWX4<EdDCC zZADPW)YOl!ryM+<lA0>!`D5K?cVnJyH;Y-+7e8)E&sroCJ?)otOURb9YKNzuKX%CO zxO+!`)Iw21uJ88$1AN#dx7af**WM?@ZpO!ZV7*t;COMTlTS1#`mx}n>yyYGWUrI|q zuF8@0tL~Y{v$Xj?oA$<T+~V@>dBFM2E>pe~IBT`ZFIlv@x+LbP@`Kx^;Woh<D?_H= zczN#r{lNK;Utb6_`!?rD{Gn}c&Oct@vq9VTYs=*;!RDg-cqhM+akza)RBDc&kN?z` zpNSg+6FK$U&F%;NDBZ&sW^ESxN>WfT&(*(t^Sb=Sb^R88b`j_KyZ6nxQ<|1|h2f^r zWuY1K<}vUG>&>dtcT-N)i1q)&XBiyh_>=!z_@p;`MZf%u%(yQ(ea&~<%g##{x>sG% zV-a1*;U|CD@~!MQ4bhwGbLJo2vy`9z^yhE)n&T!$Za;O@<z;U5Ew6Hxq=cj`>D~6K zHt+OBjW2j`U*s035%_A!tr4?#*|nA?om=`9Qy9KF{kS%f)wKPS^s5vj=~Ld_)ib9g z-C0_uRH7-pN&V|N|Krn)cXrj><G8{fd@y_JTc@u~7nJi}u)McB(`>x2-lHVy&a|^i z#bFwpAv1K011A+$+;Ls2cd2uE&L{KEg=gjem*^xvY-Oolw5g0GDark1s>b6eKf?oo z8~*+X?!UaoD3+zj>geyob7E4=nR&Z5ZJN7?D{bdbB`f<4Cx3i8CnvqT?DVfH*{XEa zr=M3d95h^;;x*^nwOKa<5*w3#md!Z%wqpL`Q#UUjFl^)Nm6<%XCz1JicJ2Fr6X*Uu z)n~A@&>-pilha|GK3`%|1m4Rt-Jky8RD_XA?C<3z-(_nPgk;U~?k_rK_EgX^XntPK z&8e@CueVpyW03zlYo|)-{>T?!r+zM~sJL$~eMve*M&q*2yeqX|mYV%d4p_<5@@lTz z^gZh~{?Gc9_~GxXR);%1<=sBwMZb0Zqi)3r|2paQOl|6C{r~I44)(Z8Jlc0Xx>>ig zL1{MgWZ93>ZpRnIGg{A<nSW{B1?$>(o0nhpkC08X6y9v;+o<L@ck-%r`XxcKeACxn z4D#Q*{?c55KIRC9$C0b2UU>1PLTmb_g3_h&(_bxVIOR8YyBqrfl}wF=1-4lmG+eA& zS^RwU-|X}C?5x@{>#Fmcx|;AxQ~%F-%V+%S_qqGs<oY>zoysHg1=<yE$<MvSIZugm zkKw!v&tKL(51Tjp%0I=BYmYa|ow-&wL1E7-(Yc#1JwN;=B%r9Y$a!0Z?QFf@0bMUm z_}4zIy6{eTV_Db+X<e5~%D4YW34gyc_4u(Rd4kWQIM>SD=_=V!X})Odf}EY_wKo<V z)y?vo{x`AyL&c3NBI0r%uj^|ZvHo*ear>q2oc+5MzX&>H^m<L6E}L`l*ev~BvqBPr zR@%yy&%d+odc=ayQLED3!nRL&kzm}$E9B6~=`WcY!*cF(wHD9H2mBBA#@}e&x6IV$ zEoWDo+S^^tijCHnHHD;XHw8HuSq84xmARiPqxPBeQ4Q-C{+_ig`+q!Fadh#XdS$*5 z%Z?)sJ6(cqAK3HmkLeE+-??@>ZrrY(cDVRM=w)Z4bI%rMA252oEcH9@V*ZEB--5UK z?NwQn_U}v5f+-73<28fJl{%yN-76E8X=pWUnAGgP(`?F8v0KZh+8OHCwBGqAQ~f6} z*0MI+eh<U`tKxmXrmM2EW^G&hc+Wmf$BCCMqb9ucN{&$KtL2L=4!yUQd-JrJ@4P<E z<JFdZU=o~KFqcI)teDdze<sWQQt4GWf-1$c&Xlciv6f}svUh6hQ%{dWyQgMt-cggj zNz|D8bFNfJ=%VEz(X*1?`!8+uTEd(!*1)GJds5zIYn<GK!#u)Yt0jH~E>ZB>*ASMI ze9pLLf>xjqyQ#h9f0s><dsZx+U9Nn5)h`yEjQG1>Uj3bO`L(B;w)ySgD-li}N9vxr zH#dEG!`JQAeQ?&nps>~2GhbhP^YCK|x0}V+OI(ZEcb>gg!DSV4^UmMGne%wXmmj)v zaohJ|jo$i{4KF@Cs_477XwApx$No-uVeQ2H{mR7e?a`5^6IwdH8a#Sl{D05i+~=W% zS8ns$^NGYsbqWctoPO`*(>F`bWhGxv&|58jIlMv6V)d!F-|oA9JMX_{MIp~4f!OZs z<qy{V(s^`K>-O&Sum5#&u0C31F8OUePg~?aRj&JnA6`vcrFZf3!)+R8yaE&6&E@(X znR<80%NM)lV*`61ox1*T-<e`YeUIC6m7&|5rtc^(wbeNLIcGt`{r%jNXRz;e70hkT zczmTGiao0#JE~}h_?3)G78lnXiLPafC+etmF!Y@5eq;9eed8qCYmvr%E~Q7VT-m~O zFO>22>ishU>isqf_s+M{5Ij)D^6tDu?iY2B2gM~9-br+GhCY?EU0T_9YE|}}gG;#& z*via$IjzK5%tt(nIbZbqa<xt03S0vw|7Kh-lYFZ_Z*?ov{>fkdmMB&Azg^0?^<G); zYWL=i>Ich;?`0nNBWk7cXP$#W<KCNH3v#|(S8?0maWmz$fK$K`{<(J@{(AcCu3qHn zcgb>%G*_D++dtka9xcn26PgcxS@1^i`;q%y!E;{v1;ohLaK>ERT`O+zQ1#KV)J5~w z@v6-(QS){S@pj$WDH(g~%KICCRv*57d(Y-6Pj0#^Yh8M6!~Z>dn|1@!WX|RF0beJa z|50o0_p>)-mfoQqOFXyFef>KwFmlh%*Lki=D!SHB_NT2i$z1l-CB=G?{H5YqTa8=` zmmMtR?mRf_-$}1G?!PZJZGL;t$&l6j?YtjC>k?SLrPhDrw6VFP`0v@f-4`aE4zz#& zZo0Z(_^%>1>jgok%|^RgGObEE`Lk4mW0*rG-PEaW_hwli5;$jS*tS<W!n&*`^<7Pg z-M?n|FA8lh>fD>=b>WJl&gp_DpQ>$-2QFt#K3w+5aN`*V#nVX<{r))-9~b*>w+N_? zTbF13i|c9f^*^zzJw0~{6saV1%vzKGE7<vU_~H)#cdol#_-4(U^!;th`aq4NAK9~J zvz8xHRJ*?WO+lSUyI+=Bv2anV;gY1t?<rOm>L(1Nq&A*c+%|n{{T$Ec%2l;D@*fyw z6<s_#<3wKkd$vxdZznFEydvkpQtNN|AYe*Z%2{qhn~;+ww&rEU?Q!*A-tCI|cKk^j zOPYUuzoSUI;LP|*$Nh3rFLu|ZZ#@ug{Oa3B;YWLprB3Eo4%CwR_Jzxh$CF>|q~v0$ zCZ6n5Ys~M*eidNtvT<^rar=5J3!}%WyE9((nJ$;PdT70~Q`otVhz^shlV#7oT;e91 zx^3z#vlp+-k1d^)Z8AZ6Zr<@f->=8;Gct80>%6<WCqHrDigS5~KRvmlWx{@qZ*5#$ zso4QtrO4ZrQ%>Biolzmon7ijRvy#!e6muaZey+d1@3!C9xHMz&#Gl8ORQ!1rZzru7 zznp2`^N*Jn-rk(hF?n(ui<U;%&bw^(`-`Tm%Mx=x6S`L;VOy^D&aJ$j4AW0$X4SIK z?3!$Tv#9XS`Qo?F^;$MZ-?;Q}-s3Zg>)f2DOc$`3HEqISi<XI3**3S&47UB)IQtCK zrV9<_$&+<uuCBUyf7xO2Z+<&OKVEX~b9SDtEGneIt-tHRt1n3v=lBceMFf5L`#dH& zd8w(w^T=Mwq_&r0!PE0pgt%(<{#8yA`?E1CeaE-Uj9+49W?a7+Kjmq5-TyAB8HyY$ zX8qlh$ZcL5xBT3ecU6n*S9N@j{n}LYjMaBVy61-n8$V00%={D66C;0BzCA5FdS&8q z<_x>!b^f8p=daph>#9&3lA>JS6!}$fLTYa!Q}TwBCB6#FxKHpV{^5Im>x8o9!5&wc z+lxP#i)KEO7TLV{vc&vdMoA&^HmfQ(O;Bcalu-QV^!U;?>FJlYUMZ_NTpaR7u0)${ zCWl*+p4naNibH2)7Dnw94%wdkcJJH^>uxJeJ+bDwEu)`$<@brv3kpkY!Z%LeP*@_^ z*4QUK>&=U4|Fp|i74CoYNnpw?gNV;9N?yV<FLWflU&APPW5IQ$YkW4RWmYXsWVrY7 z&z$txWlY@xYl9UtLpAnw)z_`t`6_=$$UoW7GyFem>%7U3`L$H6wpF!f%W?LTffsJg zOE~r{{h(h{v{2&Vh{U3~ci%5{bMJqD>|<?SLGN3WbE*Z8Cd#SYRr|d05xe-0eHky0 z%}vaDp>w13?XsY~$>$zjOOdpj?SALQtKIwOq&b{iQ*R>JH#4ZLXKJ9+{<(6+=YP6R zd!T>2<4MQUXqoCq)+~V+WoC<9w7Jzh<w}yo7c1#J&oh;`jN`jJOCNlnKU4O`^Lwfm z28nYrOahlKsS^0K_~e4U4}_gQZdO&A(PiapAuH}W(ee7JC<zN!AFiA=ivKuNRPL{N zr)X4mAZRap%tn*Mi^taJ?pIfvxJ|A|Vb$EOKRtgH8L}2lHC3-|6<j~pa+$Vulm9X! z^U5!WlU}>mO+U)~>dg{;2AAuh{87ybVb6BS%r@&WwPKHXq8B?uQu^YwI7Qw2&tm>B zS6abx&u3!ei@g!o=IyGyrN6N_??7vQCWlPV_1xS4^q+j}`scmWX725yZ*!)yc>Z8N zUaY$8Qa|e*=h;ncIUUQc9C^qWnC7%DxcS=;E3pR)g{!CCo-<>@qtw1R=R}X?sBU`s z^XJwa-qqGyd(!V!ERK^o%qlJX-9I$w(ZfTxo@n>|Eh{n46g%WqDPMP>^MOO3=^}=S zBB~cm{<5vGIXgA_qm>WGRL#o!t9QAy+wT^*_TW1E4*_+bRi<%Y=1iD*`=rw5#&suJ z#e#R+>T|6Wjy<0eCwXmMW8#kIKTFNFZpdaadUjWMm)%v>FxFdLH`Kz<<h}Zo&bsRN zxscTBjTMDTskZO<ubplDvoLq2)3oES*`8PLuTYP>e*f#z+4bgc6pqfEJTd=CtM=`( zeKzG~PZYlk?bb^FY;;eRZJUvEz0P{sY{RnaTOvH(FfX2IEph+mb0^n_E;X8Ao>`l3 z7}*(?b$$?)PdcP4<-#vI@3MgPw>)_U6%jA>`X4-3Hbty>^2?(q=9-#lnn-sq<BjDr zdb-4V&*UCax$6I<y-#$a`lJcdL+-D>&SyV&>Lr~9-{)<;@h(1sn%h?jOu3+Od;iAl zdv&c^mtP5JDcm@%S*~a<XePLG<D?U-CAJ^3`KJAF=EcXQM>{7}=^HqU9e(z#Al~Xg zxNpqy{&%MebM`E1-0Qw?>avf`Y-b>kQ~1VAR{Nxy7;gPH9x4yxIB*?yFwj2s=^u zVe-A{w{y58t2v(}t~O5n`#^t&tZ12L!QY4V^WHGMVbUqN_xa#miDYwSrqe6J4a@tV ztLgmNr9Hor?{WJg)2&ADx897HY+uWHY#)!9nc1(-Jm-})PER{0i{H!+uvJr6xHc(3 zBWK-rDdi`(<*P4Gn^}7D!wJI<2Ic=biPw^5AK&}r{rw+Cx0a>^Pr2*ZGNo$0_iIm& zhaJnkg_bUvduhS)O&|X_Mf)kOmpv|N7542v!<@JmHe9KBDa9p4sfoEDR(?_zmyv}z z)-}`y7F_y1sd?!o8Ab}0mS%=99?BAG19J-_VwX^tr-sbAI7#>2JFyI#2@l@!9c<ox z*}>WQ@jI6C=?Mq#HnWtMH&qv?J2WKpKRI`1Zt49$vv%57t$iPI_2$;qWpkreXKLE7 zGVGk`?9+Hjz&c&cEG?|ALFmM_D@Q%g9`S4RlwmSs-y^j%AR|*%rcv#jLdV=CoyHU7 z7qFVJdoZ14c=LwA%+AhEB&vbs$i2gYDVa}sDpoICb@ao#yT9wB{<Sdp*#5ixx#}`! zN+$b)>c0i7O^V;PIaogr@A&`K)l@;?K@KZRM8g4xhL%t6vXQEi2cjiac^h~x@V&@j zVyh`JWNkjfz@=ckV6N~4#stPfmWKa@3^N?xoN=u8Do(09DpbrggJI5_#<T_3vmMHf z7yOmKUfp1O;iA}+CtrT?GFUR|$ojsS6JPy+hq2+!nFD&y>N)n@(p9MEylL$er<@aC zyFNi)(eIpJTAxC7`ho0g{gW>JfABIV_0b>o?ZPjv@-{^5ahv6QCg$IiFW0|weSTGH z#(2|`aZcmAbM-|tnHZlbs8?_3Jf8h7+@RY1LcElopMv%2dZP;d0+y&*7PFcg{ruJ& ztiMse>+^Xl#{X-pgsZDJ9KU~i!v4VjM;V{IVPT0jSiE85{%0n|b!T%qH#sN%G}hQu zCMLij{o4M`Gre#BUly}k{mZ>@+ur!_2d_g%WRlpwG0b4r4TzYcaBjUOWB&hgE#v>c zUH+MS{K*&mabM~Ef8RUxS6}S6ef0lz^}q0pOmTyVlSjUlGW^?^z_4EW80P|pADff^ z?T-+S7P#@azT@9@2i*tu694=aHl0&jpDVC=bIsJIsWZRIyG@vEazZxapWu_6G}a9U zjQhX6SRZ@%oXiUjwwsLcTmRg4V-S`WzrO#+m9-9OW@YuW&Yk^!opp=x|L|w)KmB=n zcG0p$ii-OG-^Fi#d4EO!`c>Aet8eTV`rU6OqWJ88>5pbbJ-$Nr3d4;b3m9ftL{!Gf zOKY<?^iMwjy#B;@@s79i(_Mwr-6vQ(yx*D;wr&5?|Ht3YS8uLwoVdxjdB*>l!lvoM z)}OCm{H1?be*4Vs#gA7ns*nGjee!?hKkFwB3#>2jq-M$`seL$U^|p9dF>m6z12dMy z`HM@xaoA8>xVOr2UcKm&%lf)Glh@z*vC(SA&cvqwJC8p8J@N15KAFew0>l|->@#Mq z_||%+ebz#2{_5U!Q=i|>Q|L}KtopSvY|8bYa}Kf1(KBED?A^5)U8@o=Dj%BN8OG<n z<a0Dzeb#lGdYf7C-z4^>tt{R6BR7IKz{2#W`|*-a_U-#${BC1s|7ETJaCf=K{nX=1 zm$_yL{8Ez-RI{v>u#USv+jgg6=*M(bw*KH*UwIS_?uTDqP<HXa+pdXS`!-q`dk8<e z(P5As^KI_r8|s!*lIK?hXFm|?zx`un?T^~S1`pcn7SEn#QTWq^@ws!SrgyXgf9kQ^ zNgmBhJ99mlbv4DCeC8*7SzEDV=ht5<YnGM=Y*9XSnnyjiY|{Et`D!cnuLqU2W@>L* z+EzA|N9*HbbN#>i&&#)+@46`-Bfz{?Q!qr$=cJBs!s+VodKs6aia)Q=zp_<d)izh! z;?}cd=M=kJ(>u@k<{#6p`fXvqZR&)=(<^w-c`6w!^JS3me#{oKzx&!cMeo{q+#RK* zGZkmwoOEjLMwjHrdav5&6#X}AXD^xh<Nj*@Q}UL((;xDh_b!kL((pa7;My5Kp`*Q3 zI-a|~yr>qB6gsZ{SnKBe#oJX<I~)TZsOWWm)TrOI`LKu7%eeXii`o9$o{Ha6d-#XZ z*nL;Qx6KS~_mx_n+SDA;S(0*m^#uW;eT$mSTE50SPj!`L3@E*M{n2J7PP<?iiTbr- zl5Fb^Z4Y~~^|sM{Ese(q1D{{v(yzaywZ{0b!J>GB>ghqjS`1pPmz^V*<_hd;wQ}J- zQgiy1?T6Q`OBJqL9r|YRYPQo^lkY~0`aCMXUog+PscKXxmMQe{4d=yWi55;}8K;-d zx$jx{{psEakt<fR``PLqeb0W~Ueu#7rLT%(Cd;WEH)ikc_-dc`R8jurqqbeT`f8jO zf;UTkAF@-ZVLtYv@WB6$;{B2Slk44{t&it8ay)@^nv|K^T+I}1#chYbcdIsiYfI%; ze(5sjy<%GRo_w|7mksk*-Z0eV_rC9U!jWGkes!-Wx9r#6hxgw^Jd>F%)c@eEu)orr zjN7);?f3m%T4E){HLGd%#00CQLb*x*9g?DTL`{>`58nzmz1J)8`SC(2o5z<Nu3H^y zxu#e5rnS{;S*_wh_lxr<7(cRo<t%y4!tlbbM}0HS+P*(<;cex-;4?vMmTe95c%a>} zZ_%8D!cx9hGk@d={nwq>lN1nQtGV>d)?GLKD%Za5QgS@5v1xVfwnHur4tK77w6&^L zXillvl>FQ2)S32Mr}EqG3f5&jJyEuU>rQEZa&T#cmr$ui%^mISpJ#s)V>vo)+tEL3 zem+Ro+SYz(ZF+!_GPl?Eu8{vvOv_G&&#yB7`1z;W|0yfoFC6|Mcwgg>$a7K2(%wso z&sIEHUes{wpp?e@7eWD7vhJ-@oOSU+M9GOGSsJsn`s>(RYxas%R|FL9I>gyo=&5v= zZ+#ZezI_QyEGN!x|M%kYwE1!Y=aw8$>xnL&_dLkeK_kn%m!;2CZj0^Fbs-mJXa3vJ zs(Qu1-#p3XN%HlG7gL*B_nzEb`27FeIfv#P`K{65I@kEh!@e3>m8fZno9s4k&AU~z zNq3jgUa6nT3X8vQ$hp$z&>q$2H>H~4miI0z%j4nRIu++<&2RWKMQLy3HLLVZOySdB zMz(C4%=7lF%<pC`eiJ681Dwk4OHW#Sh&fsK?0Ml-^(&s&!!)n{`SpEYchc@+LF*d# zHGi10EyHqBZ<O!k>1ObkeVHaT?V*@mugKT+haI0hHM5<r`uL07_gR_txn|qSHIA!k zi+@|Aa>iRtX3LbBI-x(y9^_qJS<B^S`jq{3i%iLvdpgg|jBb{A+ATgOv()qGH9=Rm zD`B%g%QdxF3mfm<9DeUrd()!iR|0BV#f=|)fBGTNOkXeJ;_lbC_0~U|&GPKc_Xkxi zH*RQfA5-@~-ZbU>uk6E9uh=bJ79F$PM!YX>-H$@=sr=${c86m#W*v9SVi)`LG$j1k zYNfh~6Uu*F5zx~P{5G#X__-X5|NGmll4_G5+1>vv@gw)S!-F|SZRZX>Fn+oq*qQ0E z%R13#9~}z*Z_-F+ElB-wteW4sm+AKp&zEohIcm*G)M?Yv{nQ-$Y?VMr=Oah;q?ChC z7d(hP@;l7oV3?c8nUdYBnRCKZu1uSe`Lg2ImZy{do$7VSKPTQ=6dLmEN3lQK)x>uX z9h|SpFOSJ+pDH*1W%fkRfJl~YjEQ?TFM0em_3|H!mv1}2PG8y=d+J8rhqpK7C8gLe z_h;72v=u$;JHe{KruDXG1uL(Nd*jkWD-Nkkh6+!e9W!;ONq^t|y-V-4e)=7vZ`!t@ zNTPbj?>y%Z?{?09@o1^4snyBSQ#{hrVGiHVN;q)rKgF=iZt22zveo%}B>$&NZ#=bd z<x8czw%&jF+WxMuJJa$qd0sbTSJsU+jf!!1MLB=IJ#_hZP&(Vmwg=iDizF)JR<AQP zpU3|C;hYB<=HCvU?rk_N8$920r@*Rf3wFPmaba=ss+YDdPw%q6=l4&wxV2s7O^@2z zb}rFF3%$%1UH;+8+jso)#7lb;MT=t|ys41PI`l60X*`Rs!W^CFdT(^g6(2V@ui?&j zd$Vrs?(+u0YQBflm#urEH{r-Xj$0;=->OVq8WCa@Hs|+z!Bm6%{SseJ?_a#ulReyl zSG#lm6n35&-&8tF{r3L!IS@EcS@E9djKcGG4ovG$|5$cyVf)IL!c`BL!#J#8E^sJy z^OdQszH}wU?|Z(;slaLT_ipbD|65`+>u<)9`@76!H+J}$ued4c_2lckD36MH#XIkX znTA%q{xi$=zh$$3(|5x^0osK%6;6x7Cd8?x$NjDp>OFTsSybH5#Fl5y`ekvMl55`m z3O!!C&t+3ouJSC#)Z*u{AGoiGGm4!L&foL%XZ*Y9sPZ2lv)Y1#WjVQ4&2Rqbpz8Rp zlsC0`cfwPvZx(MKnCKii|I@)NW4_+xFYPRD_2pvW8f)8>;x1R-ecilMMR={$v-B?x z8oTd`W`F0YnR)ssgN=+<U6$%gi$m#mwij>7Zj_s;G;RK+8-MkucdfZ8ZvX6q(gu~3 z4QDET3zzn=r+s)(uyvxayt_{Q(For&3!a{Sw@Jv%c=elv<xh^j%=oU`AGg0OB{0Nj z@urn5`%~WwZ~OZE+cM9&6X(_mZ{4Ah_AoDbd%nYtsG~cVtv1?pe9AG&(u^+-8`l2& znqJoVWcs6Te!6$|C1zLm9gSYpZ}Gv#Y?4cZJnL@XcM7vO>|D+*(Yd6X!n$h)&$Z-@ zw;g*@@5CzpbSjy@gi(g6chP~PYqUAG8`M9(yLjKt%dWo{zrUUIXvf2)OZT2$)m^JP zBh}JuX@1Gcf`d8D=XdPgSG#{+f7go@#`2HkQ^Y-M3^|@3K6(4N^4m*nJN9jIH&^7| zmLwSJd;Yl1F1rZ}isC!2CvN?~H~IGyjefb~4~rfOReZ^C(csv<=feG)+9o@=ULBbs z^sqv}``Xf$miU>st&-gi%*kN$ah%$dyX&XAj>II<AFLav3cEE;_IsR`yqh~EaMGdg z^<h(ViZ5RhK6_KrYp;E^+;yH)QmSjO?T}qu_DpU4I<4IK1?3S}D?JkpMQ7eyeC0xR z^lugJ>={#^JabRp>*DiYxxtv>+<n3Mu`Bl9-{Jkot9$B#!0vXhsWTi8ol%I|bML5; zwt0(5*)I*v)`K4y=9U)B+s5kYC>&G!Y;R<3Q{%6MR|`aK43B7gxCJ`3FRrrwxl`!k zkz*?NUN;>Oo^$*|b>xg!ua%b{@VcG(?{?)GHrCCHyG|VlJQwHQ?BsUULs@NQj9R$z z3QPU-@p{Tj1Mhz2XIyR9q{ouo$>*saeCXX`U6$Oa4R*2tf#QpkPwm@d(UQG1>E%|A z+bg21--gQsD_pKvYjdc~-{<C3!6?Sqnc0%Lp1LkeyB5w4&=c}0le|&#((!YdL&QHz zB`e1o%Wch1PJavc{F9Q}KiOpA3+sz_tRFA<Ep+qS(J7a9#b3{vWA%(%{ga9Ghu=Jc z(s>Vsa+YtItI(^v@J?H(?`5{<uXyMAuP!-TRe5aU?4n;ce|Ie}alNFHI7e=w@7c&N zZTh=qMT*z`sS3ULQK>(r`kT}yJ)ee`p{lb5K27-`n3K6er2a))`P-RV3`f~GJwI!T z<<EJ#lQ)R(Re_`F-C1%k@?9RLdw<^<^Y#7~*{kI>`Tk57zBEV9mJ7A3kJ@{0gOcwq z?&F2oFL-nR&O3XS@3~}mr)z4~PTudSOY94@Cs+8o&n?UqKBuA9s2;!CWHbM~JyY%d zUR67Be&}OZALzd2_JzRx|I<^xepz@(*xq^S^1l*qti)e_pK)-P#?f}Q#RrsK`Ng%v zH}RRTHC|gRt0EPX?$-J;th^>V_sJrTg*rREGUZIJ$1zErTy2zhoUy>6_U^OWXRWT8 z9~AH3H1$P%!M01PwHHGa@<koeCtu1a*V%9<=6KbgQ+C^3X0vmPF?gNkJ$g&xZN>dY ze-kbHJXO!s&+jdM6mgg7pYC`X*;dlR_x5#LliahPzPeJIu3og=5MWTTq4VvLi%zT7 z^onbU*7>x}vY*R8U+PXq`|)y>H!;hlJiFs+C!A@q3wT*<w0O?_84M3T8CpE|>j}+x zC0rx=#Z0C0uXLu^zk7;rIrpB?u<zt+HD0>@`h^v*O7!cSC$%>ns@C^BcHUBbg2lJg z%I<#cCpD*brf+!Hyw>yh8oS5KB$9d`Z2SE4pG)Z84zo{<2JOCinzHw8j=3Golx+>3 zdd^4RXRn$0#)6x7BE+q&7D=mo3{TrI@v&V0fq93*dxS(=m?xPjHCJwWplaPUziV0P zx7>gG<UU^V50>74S6{K{aK&_PkIQ{GrY(P7@FV)2rNcY3{KoqNonP)GetKCXTKjsU z(<kTHrcepJNguK+KkRW`{PxqnO;t7GW#(F!E_p|#zYLKG+^Rb-NG@c>g>){S)(s66 zUCC4ao%x>Hn*GFsG5yx{9V|*GI#2JvZ9I2DTJ;NqwVDn0KX#_n+`0Glkx$Et`n-)d zLT>oq`0&;1wT+3GtK8l*2FK5=Fy8imn}v;R<701U(=!5L`x&mT37xR3Yo&DD_f0ID z3;(aUJK1!_{ntu7cA>u$B`5u4dF<V_%DRVR*_=xMFH7S+-kk_HeN@uG#}~0=>V(jh zf1cI^zC9$hTkQ<5<qqB29pbw(&FgIR><rXz#A=D<9TB>^VRd|{((?5A31uAl85+?d zlk%&Tt|rVl)|-5}P}pZnrBsFR-l-=ytqd%1?q27=@%!iOH|JkWEB6XDkC$BW=N8v{ z<7$Q9G76ubZJp3@yvyx;*Zg_6CoRb23Vaf>%<%Kvb5BnsdRO%8^oDw@YoD`Jb&uHj zq?^az=F~a8X)izUVNHMJPvP$K$){fjw)t8#akiGbvMn)C)mymQZqXWhhQAeA^X*S< z4CS^wVA}1vST*d&wA8z5VjI8YeM`=o;-O_VTePetMXr5a^4!@Iei^?m>^oocsqUl0 zGmD)GD>mN?iEyv~t@taWA&z53*5o5;%Olt9P;D0se3@Xj|BA>7)&$S4EnGXfwCtE7 zWBpGWa?d;Y@Vb#&jH1G>ED>QdpFM@^KASSVYWVcc&hE&&AIA;%JgK;`)H<~!OVsAh z_wzGEw#0l|8r2nhMb*Er?}1UX^t?%OJqOt(*3`(KPhKRbtzXcR$5bz<+;Z-2QALc& z`^EpyT#39J^J_1kZ`iv#vlJ5L9CxktJoZbnwm@`aP1&}5*2R+d=CUhnd)jqa$Hgyi z_NnBjUk@+6x;NTqZB~`j)et>v6@fDg%5TIeRNnm2`Xshy`<ZvoRKvGQTSu80{^rc+ zkh12R67WPz)<65`w@1=f?!B*gyqwXge3R0Z;G+5bvhq(#Po}qT$ctg(O`aC>-0p<V zY$d%lJzIBdDxWFmqT*h<=}niL?4-a~SK}w^`4{Q!E}kOTTXxL8&?HXv?$-k8*brHZ zMWy>=b=5mO&-)x#^YRm7d9Srq$Jc=M%4xIY1U;qdE4oph+_iGkvaV>{m-<v_Rhbd6 zd-Ak9Tb@XByyB_2bL4;KE>HDhpDp1QM=kpAC)bpEgo_sbnKLni`RU5`gS=<|`YIM* zTYpX{WM(^Sz?nw1IV|B8>aAa7gkw_zK1|rDxNQG~$1m=w{Rxvgd(TIHmhPJ0H&(Gl z$vQt#j^Me`TDDjAx9rQx*bj27EAv&gg`P!j-S4$WQ)k!HnI2n$B*oi8-8QaCZU~#& zou-(}tUBA`gRYTmQ3A_Xsb{)B)~u*rwYlWZE|<n>r{fn*zV+XC-U7bR+I6mZPoGA0 z`7RJTcs+qtUAxldwEL};<9!`#g+Iq7ysGC}`>V(&cGd|?3-NvP|8p+x?Y+4tIqBxo z|GmBLr;dxPn8dwg27|@hT=Cb+lQItlo;Mf1IjQ7ESND|rj?HHs&pb@Zik9@KezB#& zuW_BFoB1n6my3=$TXaLa_6F<}I{LQk?a8Xji8oLD@Hiv(_eSwquD(V0T_SxPXN0Hm zzuhl+Z%+P)6D51+A2)Y??f<{@Nl}!c(yynAsUKX-?{Ehh-K=Z8<y55NWtKGYG}n5K zO>8T_HofPVckjZH0};AbqA5<QzL7f&ET!&yKHegxqxJ0)=Yj>5>60GBF0Xi<y6z?O zt6j!76Ej|=2Tcj*3XEM>VB&B?P-DTl8u7KaKQrG=aL$Q*Ei1ca*Zur?8*VIqRXq7z zWu&IQ(xKQ-pA54nc86SNF|pgeP<#sO;VdDG(>Bpp=S^w8`!qMO;i7NRmy?FUUwOZ3 z>T++n!M(BYyXB+wd%FUD#BSXY^5>z@izhqp3CT^gi~41grKWvZZeDEsnx;kK6GdK6 zZ1Vq}m*a6;zOqT}L6WFbpvqep&y@1`4U;;SX=*;b)5Evd`w@rngWUagg@&)~U))-I zZ$osQtj=QHJ>Q%){;uMCw|qKx_OrfOQ~5kZe$Em)@<a6&r|V)#<^E-R60Vh&-cp-x zwn$a=RPLrX$$sH&%BHo2hC<CdHmthLuG@OjrSnv(N{z=`xoz>XH>=+*O<jKS&sWE1 z3JPkxtA085c!>*`RmYW=zL~q5&F=b4$A{MEr6bOCtmVHF(aqMt`a~~pQHS+~gHC@o zUr2c$wr+h+;=N_wO~nsW$|t8J&DkjASn0Iw*M{HymGcz#hD86(H`Zv~v$Ib5(4_P> z@k96e-1GO8ANo7_R@bCm6YhMw)u7&J?ouZe#`RT0>%7`)&(8^cp6id_2&`r3bIgCD z5wN|@uj;$>?tWpW_nUlcSoAs7<fHO#R-as{TjhL>Z=z;!{iVyvm%0w+UHzKaA@r_H zZ^2*2*Ds7xK2FdoJi6Taw&Zes_wYdeNQ12mR}Sur>+d*f!+hVp<<;g%{}xBZb4@&% zA)Bt-aPJzYRDayRho?RYi+t~YS-Z(4hs!kRiv-i!_jf~TM5<dWHU~ugI<tR{lU~Wv ztgk;NZCLQ<@elP7!!LWcUua7Ic)wI9vbApYwdoV5tuM4)!7Eq9Wt89>ejvsA)2_t< zNz3oO<W!jUJEW>8?{7*xOKF{maZ2dMYmTf2{x<~H{oE5VDbOkDh^?6Gq?(1(vk&}W z(vqBe?aKZ~xs#Q<O%iQacyokQoo1AJ^>@*dpTEne$>hg&p6r|-eAMsUx1QQ8-#=PW zo90iD`Sa<RmGf-->iXYRy(`+4cQ~Xhah}#4a_)tRORerjZzfAtG2cCFH{NrOO#Sz* zH1(PD!7{b9V{xxoH-G1n=~lhx@$%}Ta?hTp0iiOd%YV+QKjvNF^!!v+cS`>H4cxb7 zr~MXNsHis0vrGQjnM%(MF79pH8gABTCY%tPw`l8+jOW!}Uj)2=r?5^rRJ1(Gw#D?x zk>0GQcf*rP`n;x8u!T<iE*Ha7$9H_@(Zg!_JC)vFSCRUdI-$nGVak`E#@e4Yt&>q_ zetA6c$5a1xrK?V#Oymh~{wxyX9oe(@iM>LiUB-ToEmu@uZ~WW5P<Er+ucOQ4{En*} zy7~CF`lqlg-`Tu(HTZuX_`34QC3n};Kb90fmM`P=EftVhbU}T-lDG1kw-S-w%cdk> zb_nH&nJ#}wPR(}h?lgC!ro!3EvtRLLhFdf^znFEQDQn-h{tq`V`)>cR!&@oO>T&N^ zaiOa*x8LSF=*>U-(qy`c7H8RNKD#%G`<H*7F7>;lMEA<cMLCBxe76@R$oiJ5EN1Kf z@yM)Bt%)yfZu5Ven*CxHZOTkvr||7Prnl5W%*gsc(GE|8pSJ40Q<V!-TNz?aiYuDG zuFev@!maIf`l_6L*N>da8KpH@>TABP`hTP&lkc>+-QN3>?YokntX?j8vnV1yOVpz7 z{`I?=b1sS$*i8*IoKvd!EJBg<IE(WXH?JP6vxUvAA8${%_sPmT=2?1jLxRld`m28) zC<Ph0cAu&|eN(A?camLG=!GpGzx+w%+x94Nu25N4MYxiOaF{?H*IYIpwy96&epqet zUgEy{nMW(L`q;(3<n2`ISjToKpLy%_s_-Wp{{Gpczq~+k+Q}!(1*goIO}vfX{!Tgd zDqvsh)uJiiznt=5|0^kA9eJ_$Pv#13<J11`FJlABU;DbaD<>7sjG9{R-~6P}=ab#m zM{=)|t7rIYUc7O%BtzgP_n)qR&-q`@*>j2~>^!%T%*)Ie(G#~N_Px5i$n^)i)XLmU zw=0V#bIp;O=hP9!HhsIaaGqeH|Gt#7(z`z9i|^{VKC6E%zjyErF$1}uDTX(_X3Vc{ ztqAj8>gbtMu$*_+;wrn>w|@TEcW;e-kCdhv7dP9@!&cERlm%6N1<y})v6;XA;qF7v z%2OoP-f?pJ=6+#Y=w~g?eRZ<7$NuUG3!Raw^!}ZbHskgw#aC-1Biq+`ho?<gFEvwF zz(jWPUZ486S5{|UT=y%~y}wz$aY51Mzl9u~Ix8K%B=ecp*ZQ(g*!ZgH%dz7@>q}xZ z_*Jj#Zc~1##*)#~p)4#NZ*1&Tsch!%>t9^ewC#z&)5X%K(+m#kZAdwK@yJ4Fi}zFi z6o|*$oz{6!_Dj;K@2~G#0onDkwK0W(>4D0&%a)3Uq)+fliFUgDg#XgTZ4v8uuJd`n zf4leS=8IL&`~|{A*C*fJ<xrhD#oyxVPqX`*qe_0f4r)3hGuim%x~=cir$3VE^b(g> zyZPdH-s#Jp{9kq}%~>}|`QH51;noK?21<v9Bpp-N`7>u~fP3S@1#91Y?OwdP*Jzga z!t9b|h1p5*`?LJ)SH>#3yt)+}G-s*4?+!P%MLWLjDO~Yo&!doIIcGB!n`cLyf6e`6 z#d7mPqwilM&C2H|mTGov`dL5c)8Xjp;cWZzR~!@#%SxPkS*BR;;?AlV+h&c3lgHP# zZByG+xuad&(~9*H%linIz$00D9>0(IUVHXz6(6smF@LDJ{aUd*%jatTlPWtg-A}94 zSL~5h<{j09+XuVy3fUJ;xbI{5;Cp^pr0qMwo|#%dQ|ev9>h648FS_bmOSO@HOlAG4 zspTE+$D<{DYL@T6o}nPUuKP<J<Fuyt7NJe1XBPb5w1eAQAn<6f--*W!V!D6S=Pbz8 zOZ@Wq{iBR|`Y%|XZ~ib%`>cqX^cTs-*vap-e@e*fEc3`;Bd|QFYxSn}8f#Cbr_8u7 z^S_2MbicO7HeJ7_Q!$2lGmT!D1UA(Cycu38?5*Lz#Aa$;o6hO%eqsIF*LhxtEYu#U zw>~N?yW8w{wt9!vp4I)Ti+2UTpB*Z=<y+9CjwL+Lk38IO_WsP`BlB!7746!!lTSoD zRDaFB&S`muAvd??A2$`5A}QbY{^;kdgKu+Z|NndS*Swi4t|>=ucy@0^{_l4M_Ghmz zJLJ6b?EklR-^zcdEt&VO<(xNXiQO^nx>D<H`p*NS?>{wv?sB?KHe!9dQOVXoMP{Q5 zCG&swdhTF#vbVUL+V;Tc^3xl~Zr;<s{-FGl@9O0KdWqjbweCSLv-jyt(OpzF<KT7i z`R?1Qr#;e4R`lDvch`RlVaG?$SSM5*+>y34x=yfJvRzN-)qZKVqiM^Omz(|h#y#Vb zO6tM<{^s<l)&CXFT;Fix?*2n@ei}Cn1q^~K!bLBAzN;pzT@-zeU1zmgCi@|~b;;a{ z59B>%d(KU$I?UfKaBS0&{bmat{}*?hVdoT#i|miy6sl6_SRQz$x?)L!aZ6ec$Cb;I z_rDT~J8#nV_~=&d`H{SfoQ+qkxcvJ-$D!{^ldNrLN#4Jn@6wgOX7*m+vg3E{b7Noe zhdwwkDM$a;KX;C;E@6T@=Fbsgu$3-JxbHIk^U1{y)7lpH9$4cUw9wSHLE}uH>^8RI zaL=GU3*_Cq|G%t!Ch@&iX4T;azktu0iN+Hb#IbV;*e1LbGYk!$v9-JJme#Sdg^NC3 zl>Y2#!}(dAXPwR#kGumK?J*D62hOr~^~?V*;dy745@*FOo{9G-7*}bpT%vL9`Fh9C zYY!^RH3fTf@rFwMSpMYM%dGdJt8%#mJlU?_+*%vR=2*t4ShSfb#HixbB1g+R<xRi4 z_!d|RDmtu6yB4~Mhb=fbE8^`ASz*Dc=fr1lf4^wHwcXU_w!+a3>lO(F-ITo3u=i@p zi|6@!YmLIp_H~AB|IW6Mjb+)9pUpYu%dE?mH@#Q5y-V=t^dAP-SZ;*3@BM4?yTtL& z?L$)^8Qpv)xMto9(aSt)D!(+W4j#z!o&K(7c|_vHcNvWv=LG&0p8E4q1kc+}e#Z09 zt0(>Kzs{Qax>Kou{SUL!UgISJEqBaL@R#qCn6u08-SsMgoPbjkJ&&EMDic@HP<&ig z^7&h9_3wATmxQdkV7`(47WX{&tkBR8XO39)xQms$h3~NVlrt&ripzn>vqqT=vossd zdu>p?aIR-n{=8kGJ+iu?v&(Ip>|eOf%bq?_<z0ZnSzpstTiq{srxo#6{roN?65?%9 zWTA4X?bAk)({1wGjn>cI85$ceo!wEmNL=%*!&M8Z)>^Bh(M8UtcfE~|1#Fj#Ywfyj z_$Bwzg8MB`RgXSs3Q7tVG?{08=J7kZKYIhiJ$qfZ9yRtXw*GZ!V!a`U|JSIO2PR9L zTb{-H?^?l(;!RcW)t_2@yRhP{an_DUS<?MWJJVJN_quh)*uPFwmzLVzq;er9#{XN~ zgxtc?bGzPG#2&ovc}{K038~i^4m%bkme1(iDX1>+_xOzJd5m=*G*&)2>CPK_=9Gif z%eh%^92G+so4Q?I5Gb%vQ)pAw%0u2II_)!_CA)rdNa%gKbd_U#<jOBL5v4!f{&cTc zHCOnk<=IX3&!y&zWs0mf)!ep>W3Qgd<D2hZWir|B+`D^)>3pkRam`JfF-ox-Temb$ z*kNJtZH+|E(b+529?Wby9lFafWZi8sQ=Kvwi#Z>YPpG~-*;R7eJAC%fm~J-vyGh&g zb_X(DuzeK!D#+*K+lRXDpFN*X%{_Ged*Y2O_UesizPiNm-(Mkr>!#o7wA+6svfsJ2 zCFrM3eqMUa$>)oHf0+10^UZwk->EBqYjKG$v0ZpKI@oFZ9!AN_(H*NYVx@}v6*Ka5 zT$7gSe7^1RC2?hvvi2ks!ITY*Z&w7|=Qw>_VSbZSc#+Qq*<)QAZHF&EO!(-Z8py^V zBqW>gzrXbL;mdumlrjpEzq}2-pZN8oR&(fF-+Jb0n&r7h^KP!oD6UFv?mhnF?o7tI z_gmFFwg)D57_a*KXwA;qU(4hdNZ-9FDf-2XIYp<4{iKmpM0;SB@3D*tHFDp&o@h+% z`peyr=HV)H>4!~6x${QW`0Ll#H<dcCHMtxjBq+RDEL6XL(lvtxEVG(3_&fV1N%W^} zIW<9w>6h6jPvw>^DmzT_nnNDlKOmlZ&(QztZBC0zLaO~-*{z3jE^%fGOjljKzgqat z?2H|{4u=fWw#=IUSm#E7%I6Q-Z2zks-&lBUvmkp+=_B1l#npmSW$an5PTug~?22ET zW50(q<Uh@DPYO8vaYgTeI~UZ<)C7L(T=%-W)^1uw;GM!0`4dhz692zGsb`(1{99_< z!K&p3uTs{=Pqn!HaPfDpzkw|C7Q5RQ`L5B+x|5i<WS!*6ujkgDVf@lz{WrP6bD>t; zuHEX5W@=?K0vWqiODw#zbZ4lPTSu;(m{#~Pgn9q{>2l{fcb)lu*<_p2H0E%jHL45a ztJlpo^3bXHK7Fysv^Kss0(0LUQBhucD9d+VmEiWyn25>DPbXe6-!tvE%9fXHIae1S z)p;qW;dnjLBbWWx5)G5K+B3e_V)-7X%-by_;rt+{NF{T6$)jmAI$59XJeRXcsqbUn zxt-55_?>&bo=#{g*&Db1ZCcv$32$28-#g~5lk{3OX6g~vyz?J#%cbo;HNAL7+Rfgx zrG<=_CwW-^kLN6v%6w=oe}Cdn{X~27%bCv(KCi#^eu==VtQ`C4o!k2EKaRNjEsjZj z^|iCg2UdRPQTLBAO+H+meTYf!w%v>?9|d?OlyN4QPOAu){xA19a*MYX&r-?F#}>#h zzWRKMaR1Y_m2Bs>Fhp#5B_Q+itaQ!PUZwj_XRNvs^5T|Z<5WF^Q^IcA84C^8ihFPM z;C5bl;e_m(Cj$MG1MNkOubyx&5}%%#7u$91)V-@`mA*>6SGsE#a?6DKp}OCX=Xb7u zQI=q^P1IW{{dV%=&SuxYY7cGRb_vc?@lq?{7gw309P{aKj$mcL*-17l_*UFVVEO1~ zry9#%_jX>4V5wcsiCD$kDT~7l*S?wOcc7eGN${}h>%CDdd^PMP8loXC+cqpooS3?a zLnTU4(MUs*Oa8=0&%1@Zf49hnoj>$QLgfC3@SZ>S%1>{6a4qioo`9cy%kIA0X6AP0 z&dy(6Op5vY8FxwCUifCwnb*~i@2r}i$-3&6zS_+YbK#9^pUqTbxO~C*jz(0;!iGE+ zhs}0sfiF51@qcFc{@Q|1H*s>Q-T$w_Pc}?h{Nm8Of~ki>vsMPZa6Q6$g=gZT{ATTs zu1>YdGM~Sk3kdmCs@r<4{Ga<`zczoH2QG)q0^h5NE&aZO@sv*K%d5Ap9C2*>x3Yhw zw#-90+kFQoO?|R`Qp?$P$CQi-M-Lx9VD!lCm8siYR<^E{UVQUhEaxrq?s;~{?x{Xk zq4D8lJKHULxBuR?N!57bxhv=09c=R|{+@~FVx1(!GXJ=<cI{&=HvO#Jhu-;1k3HX2 z*8Kg__K$)#vi!Lfj22Hqu53GT$Y_4rhU=D}w5zIQ`a*U|eB^&1UAE}td+m#Ut(DIE zS+owzXwLP^Jbk5<<?69%=P#|a-c&gAz>b#C(9_GcW~lzXB{;qC*8Kf?YNr)+rdj^Y znYr-Wiwlt_AKu9}-m=EQJvlOLOTAM!S9)7Q;oR*Hci9_#Rhx5a!wc>{*5|Pe4d&%j zT4x=N(!5aqqWQ~%_BpA>O5&mAXE)16a&6vnh$V}~G3Q^!m)-rlgcrLAEx!3#dxP+w zTq~6erFusyIAe>7jmkb+AA5S-a90&~zr+<cnL`hsrcBc3Txh@EGbLUky(PLPBWYtF z_ZN<-zmx1FMPoO;-gr-6s$hAazx|6n?p{)x+a_ww*POW~Pio%uL$9@F3(UPy8gI2j z#&~h^3XxTB7X<Eh5^QYN-NCwdic~(2hVyloUx`|3Z)ftQ2`li13kgrx>(70E^S`|a z`?MM^EUQv2v93xrGKH-}HBvA&F@#^@XRH7}<5$7V$jA`9C{=-|Yx^RCv$wImbX^sq zx$t|RhQi+OdV5<`S`s`OSOli<NmWhOQ&3PcZIGKKGEpmNNk^-iEECtIiDk{t&&{bk zH#ffc`SE+_|6SXCZTG9~^IRH^-|=!{?kQ=1p(L2WDe0N1+Ms#n_Fef@Ru>8H45fz& z%q9YS2bj$@SXs9GQE)Kf>Ab+UNYRTSnnPj%FC$}0Dx*<XSJxCK2Hhq86Xbbbb+U2X zj=0s;(b@T5b!Q0U4)(vy2cs7y1h6;={1;?sRIc5l$YC<?k-gcLCI^NLe~tspZ0!tN z&YXG6>+_Z2P}MRs23roMNA3QH?%bE<V`l70RN!D@6=bYX_{;FYo}WQLh_NkpS=*!| z#hD8j92icqGc`RttMJ`HV7|A9%me0+pW7A&{K#kEVQu)uD40>hd%=T&hq38*vp(~I z)3y`#Gk^N%{K$0AM~Qi7WICM|JJcD-n=rh;8Wa8fyv4<N4quk$i}3I>PmrtdH4u7I zKl4&PkAJiKMF$BcRtM*I3-xPvIx{3loMPwWIrRJ3<extd*0n$EZ&F-P@2bG}q1mCa zF2RDO_0Z)9JM~w84xiUhe^TznV`lzexxIhZemyUdkRihIPSI0Sx%)e()8ks_L=LZ& zrxOhwDij!vF4dnp_|NYD0VajI{oE=wmc~jy6dDp#nB-U(oNY9g`b^B&<K6I~{#xqE z|8bN5bL;+FZ}MaRrF;M5i~rwST)*?k|NFoHlxM}(Tig+O(JS9zKb?nRe`)|j@`0!G z7-RILBwqZV!LT>+!-D$cFXgV$C+0WC75$a{JvoY*@o2e=lUrEOFMmUxrQEyO8D}59 zpy1!YF3_icEq^C36VJ!y!vX>|!S&aL^Hr2To1eKQ%(kn0$C`ajkMcR182;Oq)y%JR z*DH0uf9jBj`<we~uic;Z?1!L3H2Y5nhX2yD)^ZB{Ie%ESf0^1Rxd;1N&YYdiz-gK3 z+R)SU#kb)R@6HMJk3XAFJQJTTtZ<9JjQ@d#uBNUo^MU>UKmI8#`X}AX$JD|S&(|v| z)xq%i`J4Go-V#sVKX1=}|9*A9|8M!{_l5Zz?=&}P?DtV}JasYdW~JqesA-4pIp!YU zo}bcDm0WWwF3Mh;Z@pt#OKS2y&9Gf_laf{9d9~-7v)3N^IY(ErOYi&s#5V5I6sJ0o z!j=!6C1RJ)bL`uvxlKm%X;7JI`eCz&|E{%sl-bza^kweTpN`z#)1NP2GUxF6r+-dt z=W{*uld0?Q`j7HIF0?dldNp}w)XO+QgDcY>n6X^G&d1-f>;BiT-%9?dyo}kU7dF91 zaRE;X=h*`vZQR&*{(QTaWiG4N6^*CMkMn$Nxc6<cmt6ACmG?df>u1M=KmYRQ;heQf z=Hl#GKcuV{ZauXxPs935<nuT4Pu&o>`_1pqRqF$bf}IykRb$@z`u9GQt|`~Pd9bq2 zS@!N>$J`UWN9DIAZjmxBI-mHr)#r@M;U_K+H6@c@t?Ms1tj-b6v|A=zF-`g5`tAO~ z$L7xZ5>_HC@hRfgvVRdO8b4K>lS<tWKPxC)I-zwh|EDC@P4g${`Op1q65a5OVaw?$ zA)AbBH>GC1v5)mXuWKoJMomS;JYdt=KTdllrgCi0t62N;c<HvaGrv!jYh24xX#C~+ zn)@?$NqkICY<%(bb4Sz9Kf1~+I=-f&ojjBDcC5YEDVxJTapA@Uoh8?rrA1cMUM}8! zu14gn4*T7Ow+<JqlW*kdwA<3ESrm8j?1@UZ<1^AT7L;2VJy<>Q<@^oz%NC?h-|^P% z?%bN|>+b(K+qH7agw$Vxzkg<AT-6o2_qHuU&Sm>W@%{(11QH)!_L5z%_Eo$8kKvrf z_hsf8d}6b{Gt(`!*~IeLTBdzmGtO{k?=kH^ovw9Z^~5KUYctHcawhUB8R+I;I@2sw zay0O#_QPL|dAqK0o&IFsKQF9-En;oD(<~M)BabgEuClJovY!qco9xQq72bZ;`m|`? zD$m%ZcQ49D_jfm(zEWN?>uAcO5Lb<g9ZGA0<n>vs^U_WktEITB&AzSY_1iZfdH!Cn zRckpCqWtz*8vm*L7+dz9U-NrxO!O)-&Lerto5N1`O!0g3F3)cJ8vV^|4;_MTzvyt~ z%zdw}bA5ZW`c}`Qy|(@mNxy&j{bec(b<$~Fb9&e02NJDk!xa<LGN1Vx+dZ`9Wn5#T z@^<p9)MeGbew_;6^;V}P^wPqW%002CpI`oYb9Lrd&9p+>&D*rXGIu<Dm1MU0xAH;L z$B{b{cQZz<30fku;BK6>`>K;y3Q8xaZj5@$Hf7tDrQgH3f9L2($F9Gg7}($1@^k(3 zUr#6ASoT1m>eGkqr<W?a{?UJ4=KcKAqqfMo({|sye#!GN`|P{v+Am_-zvNq8oX+sh z`pzS}S?^i6?{myuwX`U@A$;?M!(ZFI^%BmVd#@9aA7qo8#}zUydzB=o+Kq`HU)|Xj zcq&}`HFK9fw=rkHt4`H#Uu}M^*m6y?RA}+ZWua{oYt6K;&Dp$}XVMv|hMvBy+8OI5 z?<wq_CBh$Dae(dbuBWX_lIIrvu26CJxa)cE#GjAewh4EXcHB50`ef&Fy+gU{HGfW? zbYR0Z(>eCd7v<%zZHrsWTgK<dR_m#LecrF6Q_fKa8yD*DwYi_S>(sLq+3z~v%=l!! zd*z&evf5^0rSpvVx4g8zGB?n<^QwjGv!?oEek-p^=df7iY*g`**4wsjTdd+nwdDNE zg;TBf7WS5kpV+Wc)#asB+$6CppR?O;@7>kpx;$-C_Kqbw_rrFYO}G;yb?R%#;h-bh zdG)Ca4zHYF`hEJ>?~&6gzAoBzvNf5B^*KA&$-);7@0;3JHX1T<zF%%|>W+|ofaLAM zhkJLd=sYQ{?-|uIb4vNOJA0yYFV9tSllx+{qqpN@TTT1Zb8AF`uGU_?v(rld*?s{% zHdgojx69U?u~FL|%{4i5&BawmYOhQ;Em@bjj*EBB%xPvZa$j;!dLJmvU*nN5N$0JB zSz_F-Z@X@7X;pf@Pa*w#r`{UF=T{_`iMmhz@HKeSvyU$CnmB8VbuH!u=l5@Qk-a6p zA<FQ=)PEWO|Ap%c+-dcl{zL0sOr<i<ohgd^Vk?!uHNG-gWh3x!P5PsthnZ7C?iy<a z&Y2*W^RwuRRNcO-GvdyD+SC})v0L!Z>XY9$96DGUu}g3MGaD`0-f4T~vUr3xo}YDb z|9$WDr(gc$JY6`ySJ9|n;&kbCr=K@|uD<89#_!Sj*n^$2te5UB3*J6q%X)vS{OYa3 zawY<O%XNG%3(LoEuX~kiogm0qw5gC~v4RsLyW#WA)-w+qH7fC2%;NlH?Z4@4Fxw2@ zZQ9eG7dhQYoV1<8b#K;N9n<-fRxmidS9-sV)5R_@`q{;*J&FE5AB7}%tl$m1_UYlB zErF%ha|Bna_<4O=VXo1s)OY#AasBMut_RztSI8F&|MYIseZ9R_VXI~1(OIeyv$-!_ z|E+V#G@y?4)tbbGeXB2<@jU94TN2IlN6fh9;ic_s{MQ?DO?xEJblIg^Lhtc`=r`U% zx80oIoC=J!Zmryt#@@1BTW0&~M{h3s=G}}iH*-Devs72FtEWVN&mTph@Q(`>WoyNL zeJlQF{$}ge%^~Y7CeAmJkPH-9dak+R;4Ry8)fvB1&R5&`C5QK4Hj&c}I=AswolT{m zLV4h%`1F!RFADd09uT}Bz*t)P(k_e3<XK(0OvH?-Rrju}{kJPqN~@~AvBe>3zv_#v zyY}jRNh)KMR<B*F?V*@A|6IY(=ClN+zt5b!eF8V{+tTh>B)BreULt7z#1@lNS7MLn zMZZ4vsqNFD*>84BD*xPb_sAC+c8|}`W-QpQ_IBa<m{Sdz-V;3v<+j^?!82r&j6i zb=xC)`%iy8;@PS+cjLZyV$Xh8zS$fruGqHv*U>uHInfrM78Gy4E+~J$Xv^)eH|0N) zRIaXg-~3?Ov;!ZcbPP^8O*r*WeXeSo?7grJ&OSe44z)&RPjo0hTW+vwZQTQ>ukC$_ zlYN8iQ_9}SEq|E&M}O)*f%*KZn{AkV8|QDjcWqjYM?K4jdp6Q1oKo8A#N%ItwXF2& zeY<CG_NPV5Eni2z3XIg^mx=rr<D{3<q1dPEbM46U6SHr$=d4Jsz275LXJ51V*Pe!} z>y!mfzh5s|xGqew^6n?$WcEhyXvVN<u_f*dA4Re_{U)C}8)sQrJ^k{kw<U{S{PFm6 ztNQlCs*oq&%i~?T-W6@!`&i%L=EExWgaZ@fPagXl8{5dd+<DprZOeJ}Hd5<<9o-oC z+OgzlI8)qA|A?(=?Q@Fc)^Y!g{&Vw;iCY-c=Ov2oG|CI=QZmCcJ@`MCmK`&GxUYV5 z`Lq2?=AT}4^}WH;_g$ZEzq>OxI^vOJO@3T<?c)xo_Kp*iER2=8b5B3>?_v1jJ<F@Y zZmU{w&5vzeZ<oIRyD3cOu91BDg!1ytb<=xlUtU?4*wr&VYHDr2-@~l^7xj~JEq~6< z@@ZVCbwBh}jJ|i+r&OnIzy64eNxa&NHlFfam!;o(cj*(hxq9m-)u_+>b0PF+L{`RM z>#BzAbQ$f3$E|O6Po8aQ`f``>=K3$cH~)RIOy1=}<C4;<<suelYQIds=I>}b?pu5L zq-VsXyim3K-^8BJe--{H(&okPwjYyj-nNN$cz<G|wArzMji1*&FWh6LrLTL)H%n{D zCoi^efwTO=S>eLVBAR?oi8tmx5p4gvv%l=Ia!|#-YcX$?Kd<^)FKe(tnNR)XVvhYr zC0f$=WM*chy;PKwcqRDY!$kXkhBxkBitV|^pc=V<?Sb}MIY()iu$Xx|6STx^Z1XQ( z58E5sqG5e{<~N`FCJkQp$}<<<Ta+QLowe&yxK3u|U9ESEWD|||3U0l&^6~GazMl^( zPQE^B5_vhp$p5qL^Y!UXE|;}kYHXCnyp#2H-^GfSMM$V^c&uz3tM7lZSS9$b>SOj> zEp<<3cW}%tej;%rVOHO!>Zj~CW^aEbyDBQ_N!|vYRV%C|g=VUTJXLaZ(@Nto&N&+M zTFq*I;&v5dflHUQubQ}c2Q1%y?ClHDCC>}0zJ2_+zDTY56-#^e!cU)Kd^knDN_lNH zShih>wMz;4awq>`xR`n949B9A;b$+Nd-&HQD<wQ~#_F>cU#GsFKSLs=e&4E~a(};f ztGzeM875?IZQHTMW<^D!>;n~prH3O+m;Zan=olgV&wtTb$<E^uwK3i)X1=ca%Cmoo z9?8A8=I5Hp?e-@7q(3F)l?#{FS8_VKl&)x>V0ZVblG=IB^H=xzI_SJRxwqm^)w9f1 z6S_aY^0{+2=zPAK?3bnIQ}`r(r!QU9fA7r}*WY%bJB$Av@Sl*Y5!cU`^-rifgZtmN zj`FIdCJsff1kZgiUT|9Ofa1QsC2Kd;yV^f^zR)E{V)3n<q{WZknD!+9zOZeYtx`8* z+1~5Vtc91S-Je>QU$#eZKfmP5uN#W2pIEUhuTXze`^sa(=eOQ#e&lWc6>0l;x`OY- zu7g&7&v!;`cw)}u*0%4$(&PD?9vf!O+rpRSv3Tc;)ZIJg--r;KwITAo?4M=kN8FOG zIce6ez8?^@_Nzs2E@wdD)Cbp?dVj9{{JUeLP1oJe0zx|&t+spCe&_6WuamdDbGClQ z_0qD$#4UFx=o?Q{530IbZup=jan6$inJJ2Q4y-!<n@e2sO>5D_$EUlmrCs@zn0lo; z(yRaN=jNur0phQvPoMX%x#P;X=+ZmuHD!;!t=|;l%l&%U>bxV9_U?5)_jbmb1qMIX zTKt`%a(comwcHgf?d~o{SAJ)?C4Q@wJ$Bb4Y2}C8pRQcqz<cVl=|4}!_UroJX6K(W z<!-F*X;)SKz0o)Q@_CkZPh^WNSI!K&C3Mr>n!Ue7@QJ3-j%T($g7fSiWVZQj6n$N~ z^!eWp6Ynmoubc7ac+<7;Bf0z1{BGQtAe%kw$@BV}T&uhY>2r4;+hlGv*Hd*DNKkaW zr9At3(xL?lb^Z!sHX=(`%KI0*=b6N1z2?ZW^V@7IKdjjC+NW*Dtd!_uMb^7dv^)|% z_H1&@F@{O63p39yD(I{^sgziIM&t13@Ez5$-yLU8{KLeuRk11QNQY5fm)UFC8O`5V z?x+1&^>j(=f#-{EOnx6FJK05~srF7??^J~|hR&ihx;~r;oVj>Ucf1CZhvcN&6ZvY6 z#=nVkZZ?aVw?wYK&{%r2knE<{A>taJUE<!gK4qJ_>Ts#h!}!*Z%B)+rt@u#=rmIM& zeD6{&#^zRK?g^O%9s5jgEvgB4uW*<vkVpFe#~U}>P8Q7RIFXR~wQPQ^XvO#1Aoo3| z<vn_<_THVZY3LYSdb};1?*{vBzqLMbZ6E7Cb0x69TRGWu`9a(7%VtJ=UNZH&bYItt zd57+<D!O;kc+b}fzCGP1cfD4*|9L^?@^4M?F{U%)KW3G3wDSF)?wB9FtN3<&?<L{v zZ7MrV&gv=c4o^zk_xa;-o8|kmzD}C$qGO@e^?j{<=ew!;uPS^mg=E~HrBb%_Yu%!^ ze+3PDlpp&p+hw)N+f85e|C;^@@fF1;AG3M7PrseIq4W8)!o8;>ucrNyT-V*Wx01!Y zbbbHs-d^$k7gMXYrt~jS;g9r8<@ImrdpqMrTy8{AADjJ}i_<r8_g60zQFoWNt@em3 ztGHb_dHGTIf3MHF^S5X*e^OR5Q*DvI_roJ)Z7$dIZo4a4`%lO9RPPFzc{}5@N%Fxi zWiE>azuuHwK6AG5$rnd=;VE06e|gas_{A{iUh>i}-`2Z@|95;C^mB!vB=@EgF1484 zNf(aYvYhFt68$A|)%z&M9r@a?0y3hzC*E6=V6k%6{(l)^r>dgc3tv3(d8x);cE9_s zwRKOo_Kmgr4=hTa>`<QQ_VoJk5-0cM3rcFnaXMz}Pib~>IA61T)ERYe{R*C>r}c9_ zAHRIegU#JM?W&LYKI>CYl&$w{4c9t*XNIDnbHx4+Q>TfWxH(F{a_03H=R3BcY`)Lb zQ>-B~>aNA^s1ds^>3pl?RC&L@CI7mn><!Lw`6@xHb?tO@t{Se5{@(Mf_JM}M$J7-I zSFic{V)Op|jS>06Cvu-m6My<(-%9t>>6Kr6OH#J(-Qiue@$WAu>Dqz|cid*KyW<+U z^XrR~VF7+_-;91$<(9@c&R|%Vd@(zOcXh&}khu#(gYK5C7JcshKSFo!-sUscqFlBm z2ft6+e$Mi0V#BLq&$at5H!qvfX0%cG1nbQ8JvzN%i|*Y_etmS~yyI+p@4o-DVp;z6 zowIsZMpa}z`xqdlB6l%IO<2TVjc@A}DPFhw<umo<K74gA3-U5%XZYp)H9}}|xYx6l z&+Q+#h`X#*x4yj4+R4+~H{18ai>1^4#tP@%d#?EIZJPSpr3L{@PtBY4cnhn%DJQGp z-b3qkb)DTZqq^>`>}XzDxqZpE8i9{<LjqT=a!j4@?~c0l()7LVu6s7stURQ6CyvA4 z@cupR;@eMhpVe6QzWY@<HA`PeFD0LQ)2EZ=g0{vJ*CwczSVrA9)SJNfWKE>y+*^j* zKEJvpUFf-_?$v=gyCTH>!}~fuFUiukcz-_H_~m+|b5%{JE{pxU@JjWWvQ*h0=7?^O zuUBFjIG2}iXREvrd|&}P^O-9P&b|KL7yRRejREJ97XhYse;w2ceLLg2*e9QfUxMel z`#NdmmV9@Y=XmmSWu*Up_Trx@xd+rbO1;kQU6~Uas&}eECH~ak<!9I0txs;2w^@8d zH|-PmG1iJdvn(DpWafST87zBO<=~FOC;Pdd>{X5KshgZX(PXngWU2My+fSLRIkv25 zm=kekUEivXyFAXj*;o7jOH*jzv-0tC+H&9M)bA-Jx+`w|ShqF5Aee2w-G-U5CuJ_n z)>l2{+q!Z~?UdNQ$LluLEem<+de+_f=6nmL*7I!1f2Y}ruX=Uxb;POdmo9HTv?fB@ zclm-Xm*+Zll;zB7eRa(7!<q7`F170m6}Pgc_bf`T5ItU^XHa}WCFkSOZy6`7HjD0F zbj&|AAiXCdqi2_sO>xhWtxKmG`yJFz3O7C9cke}B#=(aCjg4Vx^ONk4O8pB`+aT~m zd5Lqn_%WNlh0={IlV@&8`5pIt+pMa~y*J&z3NU_Wd~Z;#p|+)i`-}0%#jVn-*7A9! zdf!QN$SHoa<;{}^i*sFB9s6Fq*~VtNyx;mOTLjOBnZJLA%{uodn(ue`UeAx`<#$YN ztE(@W^m&QJ3GM2uigDfLyiXsS{Oek$Vf5>2c5~7Gy?;c@|1FthVy7nByFBD6pZY|@ z)YqQDFKrkta*pvIYb#qg<K?TESRMhB!>=MV&ToqQuw=6F<i)>V^gJl!Ua-76=u>mK zd}QJ!>*kD00&gxHS{oAd@4e9ZkQ0xkAL^HQm;Sq8-W~E$r}J~}R?Z|vOEwAp-cyFE zT$73zZ?2xymn+R8Ise97fxMlZZ0nX!7QDszN&3gENy4dT=AYB;tDh`#qj2rwf1en0 zH)ds)`+oTxc{cNxPWijJ+a+1-gtxqK7nr^1>Y2wYv|EecDEGGI{%5Y3w=@gOB!;CS zwn+>_Gczvu(Hh2v#^x{{@+5|_g@q}xlNhDJl{QnN<+op+Fk3g}<w?EQH%{$q&o<vA zcI-?tPjXx2n@z$_Zn3V)TNK!)2IWoJYt)+5lH#r5E#BEuUUEP0{o8xrKmYkS=kwox z=kkBfdq2_k2}`h{>!UvhlPz=tSy!!E$8NE}`Hv@ygiQAGM@)-67?`iLIj5w?UUcF4 z!9UA!#$!hd!QR7B2ReD~nNDE2ark3Hn-xRo^<eu|%Xw4RTs7U#{^&zhgRq=zQ#acj z2c?eV3pVncVro}tZHQ3n5s~V0Z1xbJ(4hQKP{EO(BcbHm`Be>;dL~@`ZmdF#t&jEI zb$NN6vKLsfZk^r(`LA;sbsU(aT3Me+bQcITbKhNi#3PY4$<bzU=99cN!3=kVI@R9w zaci&$buO&R%38=+Frjg!5L3uTg+Skl7gwl?W%hC3^mS->la<zZteN9jKwy^rYq6fA zt_jKi7}*zWJdv-g=(#ZK_{J9oLK(>)?<cUa{A^t4ptNA^x`pdjuVZXTWRU3O2)V8M zQc9GoPI=*O1DWogZqB2vOpFCQj6Kfm4L$NIZ4CVEj7sxZjvf7@|M9yl3m5Bz3>Lu; z?14SmKPJv)Y-X%~_x7QSjg`=cu<+3EcBWUm@5is6+{5kqXv2&Z@(=kw2nYmh-dfl; z(^~tl&F}cYv@{DhFVPo*x(=?7SC}2v?CIHcYnFZbAMft>RyEFZAH4YgZRJ1ZrMzYg z>@WUV@;M)WuiV;P!E|_b!y$8NZKnG3?;DgC2`Vi3aM()y%GRrr>k|Jg_@A|M|HuDX zYvyOmC?^`+4+;Dc%-67xopA$mndrd-AOCZ-w=XaZ{9p9oxkLE}|L_0j+nBjnu=N@o zU1U&yvPDhC*}cg_-9%9E$MV>Ht9$-@<8xG(Vch$B5~Jt}voGrBOa*#5jy16`J=WV7 zs37(;*wb5wsof<xkfG;9fvQaZAMP7V1yyY3DW2cXoiyj~K7I#dDVBpC0*sQ29t-@^ zble^!x90lHF4q-4_SbVRTkhNDY_)>*<S_&Pm7BI$b+CkYWlpWLs+yPd@QQ3k$m6qF z=TFTk3p-=<+rwqUy2!~|>iZqE?7K^kHCA4|&Bj+{BfnFm>VH7K^@MV_B@aH$sSH{E z_0qysrv8!2pVR+rFqspu=g6+>XL4pJx6eqqD*8(9c;v1{@BZm~cK2PI5qz#n=CA)O z-7C$LE^+UuudUdg@BA-Z|K0A-^I2E;{;6aBQnq>Tt&e{*!vr3!?f;iFZ>sy3S@UhL z{1Cd4l6~pSACI3=X`O%0bV>DASN}QruuhI|;vbvNK)E=<iSt}?cMJSgWSJiE&>^xq zc>W>bd5hPF_-w3`|C6n}#OS_DxY%@$?g?)!)*e%LzxMv3$u9QUaSxfo0@TkhDdDu+ zaeZIl3paj2x!S@_zhie)W^aCbM5OoSGfq#n^p6!WxphH16yLr39U(m<|Mb*utFWED zQI5Noh4W5(^_S(s$FrvCnknm=-*>B~RV8@aowh4_bILC?`>kO!`?7sOr6q-B;qrR| zHSTWQCRK9a((Bc4FGwElKNG@tE8WxW?(rX&yF4#Q-Z&O?Iq>I^=<Jni1>VfszJq7w zTBp3ihb;fv8oy8Go!%v4xn$Cn1I8cCW766tS@T~Bj;+%?;&E!Xvhk+%oBF0iM4#pL zNn4wrcHrKeeZudf><qe?guKqpNqed}xjbQ4)NK7lrki7vuSl(LURh+XKD&C?Tx(0m zGX)O|+`^`RJnN)*+yCL8(ph!;*SUrNh&L!%V7Xz}$@?n#y{41%>iG=4_(SEMX11#) z`JUomd~HYG)&eh<dlwE$oL<{`qxAQ+|DT$Yw>;l|rMs!}d+T4JfVMp|o8^DVufF=> z)3XA%%AYFlR{NUU3WQ7wjK8>B^!JKB_M*9!$F@w@PBuE6QR?=1rsm6uGndbkeC45g z*VSQX;H$%%3}OXt6>R)H?_;2xpMFtG*5Zy`X09*3{hgg3v3SvI<wd39Cmqju&-l&T zW*oWd=*x1hw4k)@vT@fl?K_gZYa~;8uiyUt?cc(=_r<3K*zRn)^6}J)QihX-e{W3b zbZoS+x^ksHHFa&%^7m_#zCJ%}YP9pa)AV0z%YPKh@7(<|^~Gru$!+skyJp+lE%;hB z-Mm_DdBwda-&QW?^!ojb=X=EtxB3Nqma|y8+vog0ymQi=nzXi^`@?+W8||N~v@eTU zzWeWyKdZFvPj{&P>2g1Pmyc=kc}>xu`g0HON}u~h&+_Ap^h>tWXFgYWEikcbt*=!u zU-^~EO}~4+{~hj|W2-&s{Y;HRjHgxJyKTF$cCC2o(@P~$iw^moWq%zMJpZQ6*S1?L z+*;bx-+So3`>t!RDfs(Km{e;fOHJK_yUsUW-x2uh`FcV6;wimun||`Xc#zHfN-=%^ zmQN=wi|Q34TRrz}=K61^vu*a`9p97hp5WDu{CK7~RNta*{lhB_dNKRO{(jr~<*u~Q zS|R5TcTQSZHahBWd>!$^?y&IMylvla1n&3Qv#7)K%KMuxu{YmLGCT4`m{&@>+jetE z)}n$={t~YwpWQ#~*RU-u-?W+A){P?}QlEo$?wk`3mo1MpYxgoKu6vlXE$w_lSf@{o z%{rS!Oo_9zD&Gs9GD<hCTKRL&H&X}yhRHX--d(;VQ1;@{vl9J<Dk_&+4>Mjoz3)s` z?BSgjIs4bovCT-`|L)D&f0C-#I+FTkN3PW2pA{j0cgDlAEdN*RmCvfLnmjwMa_z_E z%=V+v)-SHyURSDr&DuKd?M;ETFYfL*S{S%CP)FtcjnhS!)uO(yoMvb~zj#8eck4#J zn0NEE(<1|q-<Ch;Dz9bvuHf$(?#ek|So75`oAuh>2w!B!YZCwO=O<g&t+Hmnp3AM@ z7g2NTjM3doEjL`ESGs65PgnjM$Sy9H{X!%>dEI43IlschxO=WEykhS=)_*^HYqibS zVusWpomB;bUmE@A>=d3Xp;9ZAcDnmYvb$8O+GaJ4b6GWa;`gO0KgeDCKjMUXpO>fX z)a6G-HSBu3SQdNFyLR^5&h@7Ib6(y(SK>3F-S*B8tqtP8J$(fxi2cjj^zF&pr~GS6 zYby_LG>QAP^8EUQzs2rpUvpO7jZaIvF-Pq6FV%ei6+P2FnjR{dVfQ^Hv$p6}yX=J{ zou8PtHMiW~dfj4b+Rm)lm9A#?cD3qt^L|D5KE9TkS<CmnJN#Bo`iog1PLH-c%04&w zujn?fgKqD|k`#`p?sH$^zy15%3F7bX?~gIOrl#akKA}=8F*%~{FGq~>f+hB48Ozfm zLw3|vFV465qu~BQ`?EG<zv?HQ?Z$V1E9x&3jry79TO8gxKk`S2OuFRxKD)fm&sEx6 z>^=t_^RHjpp1bI*#Uihj{W-_lvI8HVne*A_K%&z%#gmi!?@XP3YQE7@If+1@eX$(7 z<mw+*m|oG|cm1r}5e?6u7dCwPCmnG#bNiH-j0Ha<9A|eVF3VnZ?p#QwveFNp>M~zL zZI-*G7qz~ec^~AO!XI9@*7HhB&KEDiW3Tt5ZV%f#sZVoyWMc8kpV>!LuV;TUwPsIV zpkKLcwVTKs{rl%@R9z;|SndDuUPg$1@TXOk&a3z8-`e`(+~=)<n@u@0{$8nM-+Vl~ z!gKlKg3Fsl53wHVefq8G`L}CZj@x`p7mf_E4w|8?bUCxg*;4e#^_%nem+0xFJ<0cC zT~=M-shd||VmW8=yt?_dli~_JW#;+6$g100%+0(tIlDlVqp~i*|H4kIr-5Cz=YtM6 zy8P^0wjz1b;<(7SioDVD%>SNV@AJL7<WAqw8O1_>H=TMCz2mz1w9r_S`<i_+T_IP> zci&BQD4ab}eb1duHGW~;O0_3X%rMXuntR=|fBLVl3}I`3t=X_u-Su`Yd!?Mt1PAvO zo{yEHOQoXH)$Uz?V|!aP=I-|I$(hUQgP7ww7u|UzB)vKK!mYozI&&v4KQjH<Qr~z5 zd!9G^K95|U+KPUBG`D`!bkj!PA9aW8)^xqSplEHR=oEc<Yi!Zu;^rS~yO(OF?)hxk zY9%M0c+@?6{@f#TjOG6P+Ht(*m-yTAvw~~aPMXavcR+Uc$5|?plS^;83JO;owrtE; zYjfwsuc<dugqNMX6Jis3uKi~4iJLVBhc4->zScOj-b$sabUF8;pEGCe=~pjQxv#mD z=f<?(TTecJCq3ccQV;%RYkK;7FVEkkv|#G}i|h98o)UbtWTnMyk=nZk#fNU2T>Aac zZH|!qLAyIjU+3}umM;z047|IEOMczml~oGrbN(DxI{E$5ryUbpb6D<QdscljaCeP` z#vY^oxY}zkEsx#I=lRC*bHd6=t<T)=nM+-2-26PN{&DHMwD0%w7CC99t9<Yi<egaB ztyOd7)UvEsYg+EMCbww6xcDPcxynrJ(#I`T4^}^TD}6GPTlG=J?q@A8WFD{E_r~{= zsC3~q??Z{M-`QJ2#o7BJjy$V>RsGZQtwGcZ!>uRgsID(cxW8(0Q|Jsna}yW0ML|(t zzU(@g5zs!5%kb#-+kqusI}XWh^O+fS$+F;T_tEnIIqP0Kybb!$7iwxdwWRChnFPPZ zcgqYPo_uz@sA!TSll|VwK6``1?8T;qhh?nK5fE;BwdeR^<t<UZQY-&gRfIMATBs^k z#eOK675!EqF<^_4O`Gb;e;YmIT)Y+>-&uLlz?QGmpl9(BHD3+?8A^MM{R&T?NGo61 zcD<u7u<~SedzX1Mzgpd&D|csF)t}pNLU-#o7t`l!CY&*tS@b>h%vrtIDcju3#cG#6 zpK$tpX-D;Bw*IIT=^Byk->$ptGpanlbl>sCzE{>gWH`4V_mlH921S{7F@~u>7m7q) zzj;^1IW)ym*oZmyS*lue_*O60%Yl1Mmc4wen|roy{x;3{-G76=pG<Y;Syhqmuu^vN zgPc!$JFh>UYi!B5|EP_jUUufH#Tq8I*Y)o7NSsku@O3%<=*s7J6T>HLULNr!L&@FU z>Pgl4KV?fgj?7~Dd@eV7+Sb2!d=f9}AC>UDJ!7#hFO&6WXa3q#0iH1h7pKU~TG1Z0 z&iiuI;pf(ouixxG#`IFG`lpO8TifJcN7SN@{kX^ZrD)3^J++gSPG^5<tvA#;rF`#r z`P`?o9!Q^lx;Os&vzUo%7g}lM9$sk@eD}`F?%$IyHFkIu&ecket$68v@$-v0Gk%uW zDjlm`zAkc)=2iKNDUYRRzHhy~q?ED!vDeQU**h~m3J)(ntiCevws^scsXq_hE6&v` zX5OPKQ}(Si`lLbq^(NlbeXIX`J$<^d@8V<c@>#jAw>sia#y!k9EuidK+?DXy`~TO| z^DZ!j1V%c)s%QATV$pMKopfVtopduJq)xh_k%<|6;URJ_-O$+B&;Z;`Ct|4~=m5;y z({#n|+zsBbJGy}5-Mb(M#a7XGa(C|DRdm?!;2ldjzmP&igTsa6mfLsd_y7L&_hotg z6^Z+CM%QDq*X=#7A;lHSD^}?3Uc8`3S>n*4gQxU30@y5P?B2P`+DgNkOJkD;qpo9v zxi!BLZ|@TB3p`9kEZ#F68=4qo7pOXLWiUQ?!cxG&!J%-OK}B}%o*0K~W&#X*r|sfn z78d?&uUp^BaAxnn%b%yc<l4l>oN?doPUE*eKRyS8C%lj9=dNI6VNx)2Xb?Ri$1x!! z@ap8?X{;AcYh^R0G$t(Qo@wiF_3RzF6vhCSNQQ&!9M~GBF6KV)PoBM@Rr!X{m+<U$ zYw{x=tz$55SS@^k>B}^>FIyO_{yt4&vtW#saagx5|31S6?E|-t^6*s7W;`Ouz!ZIB zcjQ0U2WRu1{xDZm7eBt8quu<z^o&)DwU1mq#QKDVaZhOI)JZ?t{X2RkpRB*NZh^V^ zfs3znFI~EL=<WJx|Gw=#xTjJvO<{vJ1Jjq5KcS~(I5x2Cw7NOFa_`kT=Hep8zrKgh zin46`r_P+#z<uG?nWLBFUcCCn_POov^^$)#)gSCH&42bJ<^9+4ZIADR&cI|TWW5!= zQK`6K-_<P*d#-L{Yn*uV-z`zg4O5jHn*Yj|d7Cf)|79n0>_0hyzwy?GKe!z_b4f7g zJ?jRRD8<d1)=u}lm|pxZ*V_CK<qXXEJN~b_Sik$o|NY;8#xG30^XBc;voiO@9?0kO zJa{|NkeT`3J;?^82kYC9oqhP<%dnW?X7%6wlm3}TvH#%TCe-(B+W%LRn`i9pb&<*W ztHy1u{oB4rAzX5T`h_4-mW>-2BWB**fA)3$Zm}CeFOv9~nD3YTtzN<)##i>O{$u8? z2Awwt>NyX5<`);p`MLhf{UyI<+st0FY0IK5W|#ke*zr$x#jkBF0>1jo&GY_W?3%Rr zX}#>fril{@zOek*Q1IasbHt7vmiOM>lU8JmE8G8n;gkCgGXHI~XFA3>%wuTYzVD{x zzjy!a>;BtF{^jm5xpC;?r}bMeHq2<$y>Iq*KTrKm-8(Tc_gMb@{<OdJ@BHWc%jGz} zutX`W*Rzb`XuXw|lI~<D{Dj}%OY+P2q62*GmQ&3$r-`s$v;4-AQgcgig<0(?{^Y+# zx<4+x+gkDH%O3sn6$ZDu^Zl<+X0y>(`MNmih4!IaOWr<6w&F-L)^k5?bG7s1&WM0J zZI_>?Ubnk3Hze3xuewQn_PYl~j(c__b1W&+=Q^_V-`kdV`4jI+^k47%$;$P+_~S{< z+)w?x@0T<uD<5{Y4S)aZo9B#Ak0xfcoZ<Kr?5`1|5VuUv+*eHhz1*Fja~5nlc4y9) zr{SuR!n(8fr)frB%`;+4+01Kj_0^_#de^T1-B%Xib(PPoYhuBVShc0k!u}_(bG#<G zuC$<FBF`#K#qLF)?ly-xy^qZ?X3<M}^TGTRkGwVi?dRp6Voc}Xexba!x=^WqVZ^<| zp&AuM>OGa+1)rAGX>(>7e19HT_bXvusQ~YrT`#TM#HMhFTQpxj{V8rIkJM3v_IT~9 zYlYnQRLN`qU7CEex1dW;K}p#^V539A+1dY!vai&rFmGd!j(g*#Vc41IW4^BJc+7-^ zEnm!2KVA;or{I0}OuuQgihfE{=7n2AdCv}p&3e~c%6t0RYL1hyi#P;dACb?v)Osn> zb=l_c`bH9y4rHB6m>m7hJyUR#mb;1Ra!xnK*QIg|jP^=pn>KEC(*D!qP%MA&fLfj0 z7rl;c6)LuiAL!UVo>9}dmEV8cM8Quhj;v*hI^?Ho5p|vC8&{F=$#+V!L7hz#rdXdp zlUo~D=%{kK^H*iY@mrcI*Pfl0R&Xo+y!4pb1>WV_92?cugFg364Jj{+lCq!Znd29G zhW*RL(?57lRv0TDu6tH`?Zx8o*AJcxEM&R;^S;rvpd(Hj*Id0-q_(WB_*~S=?H~B} z|8}|-`LkO<fph0Nb=j~L9)BOqJITMA`+<D_?fnaT;=Vl26PjIHEc9yo+8-%_OzLH; zZZ7d^bCKTMzkX4!#9^PfHC1jm=UmD@CcEiW-mJW<v(}rPw~RFDcz<mFB`dq4=qtY_ zooNqRGxN}F^TaBHN{$yIUxd#*sQr4x<4m+9hp~5pfvUIl>Ia`ZHmM2<rv7<TwB5}| z_u4h(g&U8Ry_xkqMDBubp|<9O)I(pTy_gLP*fnKu3GSIGyyp8xtuqa;Z$4NkSf=^& z=htfc#D2qnWt~gomAYSk-Lhd~nU(dM>|MMrb-Vr?5M27nS^tpNgQd@Rzk8AV=5`0y z=g^?5f7_n*Rr%k{T=7jp)ln<^wV0aCGrQT#zOh)WSX|yv{Ke+_0o!x`d=phgmm7C; zhH)Rddf?{i72$^%bgaW!zb>oZyQEfU`}C=)ai><O*Ke8g!i)3tdS1i%Q;!K+hp-Et z<mEbDsJ|fDy7StHk9F<-6>mEwDsH9~aX)z`adDNUc!xpFLEbsnS!2KcQ`7YMw=_HY zZlk0Nw=Am_bAI4S?LSSIHMq6YIKDS;e#&j2d3e|TyItD8MpH#^E?c!v^U3R+QhnDc zGv`YCO&3~|Q2X6<vE3ZWW8JEYt5<jTz5fw;sM2eyhf93ojAQwoO#g$0Tv^}xJM=#3 z{5|b=+CKY2-RFCmW*6=)xEHK@@7u|~+*TbW-Ns*A-+jB)6m;ND>X}xCd%IGCnI@j` zyeTDjvdLme-mCLL?_=*toZfmWWonRG$j0Z}0}MC5x|N+?f5m?9tCifRtK*wyG^?>( zSbFTg0k7R%<#{d6N3P4-+)1&vzWc$(UeKoM-n3^w8Wch&?q0TIdjGM-7J}TLwl8}d zK7Id(V9%{-%!_!x%obhzX#NZ%5u?+`{tDK3sW0_yUf|~E^yIYPs+`|!Y@*XoYO2jV zc~)o-+w&9OAAkPM-gD?g|KewdStq_ds?s!j-2^+vTFwtMxwJ3ONeO8)TA-*99<sUc zRk!@tkDRwmHNE7vZN56=i=_0!Q}@fJ1r=W{@PGAj<MBDix{swudX!(xzms=ZivOe0 z+l{;2M8o_uR>VqH?EA%W<AJZg7~9F7Nafny=KmKS<@h+m``mIpkz4YCAD@Kt%{V`2 z%G(94f_|$VKVK;h6?*b{+g|xy9amfB#oqs4ay9v<akb0gokj+wPHU|na3$7X$dUi4 z^ZSsF?KBbBt`D5X*KLKnI({!M?qTsuT5fde*ZIGn)bIBG^A-_iIFv0vkMkyT*<8nG zKboy>&HTw9ey?u6Y2MSr@jC;UP0r616q1$SZ{g3X^ttuGWbU~qzh7As_2l`ps~)@f zH*T(bwJvdXLH*4JfpwFY#;jvMFlo>99riKo0&*HtwuP+R(V|^ASHt>8nOSo}Ugo-6 zvpuh=pNV^rYFs|AOCc-ycJT|Aho}CC+8hzdmH1I9q`|%M<sXIL8;-lD_4s_0%%5@n zcJ;){GrakiF1>$sZOS5}t2+uOOuhN-!?DX&x;wgKKfW)l@v?T2s}-_NpCO|d^Jh(~ z&9{<(6)c)NCfp1a5i)Z-!Na!e*^cRjj^$4-&ybb5o|pMqfmh_jIeX8urtxAMrq1}~ ztesucdi!E}Y4)<%@Ia@_^V45>9h+da+=^-9hl2%6YQ4`k$TE9A|Jx$wdMe~>O&!ma zPt}d@qZi*5=_!zS{3i8T;`2UX>8!gq4n|Gc_*8JQ>3xa(&$h2h+gcfZSxx$Q>ABdN zY!?1Una@`LvO2P#=i=@wc~@I3H(zCWY*e$<bKj@^#?!a%oGYwga!>agQyA}t3572# zwpyH%pRaSD;lfcHsVkgePm3gKmfZSLuV}qT$6Eib`NwrrySz5DcYj@Q$<-{7`=)D! z(KMkaw)JboGFI=q!@BXyWvL?uVowZvpZHvV;Cn4D*2dz_vcp}+yLo5L5H#Pm*--10 zl}Tl?$J9dI_=Ryd7ta3I(N`0D>DIxod{e(mmsBv#{S_gT#JqI&+GDL!`bk=w@Bh5^ z_hralo9%nEo`<lyPJOfIQBFtIE4v+G^=2A=&#tVM{k0%gez*6p;;@76O^qKaYp=+3 z@AI5<%kzpy(*!{QL(K&*yUTi_E^k}2Ao=}=h+?6CsX6ST4;cd+ZnDO5_HjNjN_Z^E z*ev;K>Qkk{n-{FzI$k(fA5NTNyk~9B99yrpru)k;E}r*|N2N66%CvJ9R_X<eJllNZ zcD;Bed90vF^`X?mUCVp##Tp+;Jinsg(A>FKg`UZLxmmC`LM9=q{K+N%nhW-xFTdQ= z{U*QESd_E$*P4E7t9sY)6*|pQr}kwXd#}+`)FrfiRaQ}e)Iv$~^+($OX54H@YWls} zNnqvihVH_raaRIAJP2#Kzm(<sf$K&^tgOpxH%An>pH*Js_J6k@hv2;L7o3#Vi>_QN zb@oVJVd&HySFcX2<J8*n+4)(>;V0_C@moHK=j{G7zn&#xPT<GK983BWm-Ds1lNJeD zX)JZtFr?Wz<vE+yx6}L%XI^|~Tr25#BT21s|E{;Ed}r`|wa=Bjm{st_>Keb_#~E6$ zI?Nq@FZUISuQpy+nbdyksn{2`n8L~1BplQ;?)hDx^iE-GOu^NZ=Knp%ik^2}oSNPK zA*Qm>yS80$Wo26P45tZU1*#KTrt}}VWdCBF_bRE<O{Wu`l$W@fEo;88YO2S=wyQO3 zV_xVLMBY2PE#L-|bx+L6e_J@Kl0Sy|xu2-=+%4>0{gCao?FP2Flg|d~xOh~Whx<D< z?Z2>K_ssCbyxV#l$$CcD{NKdxP!Qg!y|ygi_>Da$K1k(v=+2p8)2CkaE&B2HQ-_Z6 z@A$T@c$e|qKd*dG^fWE=d%o6El_O-+hUD^P9YwBDD~?R)ir=#Tqx}5>!JV(T694?V z^5*GpVU6WW=b!Dk{AXos$Yo=$Kfl?2sw#XtcJJroX4&E={Bgw-l)?qlR-eAqE2bhI zwJ2bZS*7eX<7tncZ1}x<>Cr0<7kHHKY0sbC@_JR@7Xv+KCx&f3YZwc+&yxJ(%~)BO z^kHuMv+ef_Q?{NvHT}8P&mV%@)8)>jv@Gh>uE|a|@;D%}wR)l!cU7xztn>W?&kcl` z*4_T`*>&gFo>a%w`{%7QcW-wJU*foM--#brV`Zl%8Xx*6*{H<x<Y;Pgu1aZPWzAF` zHL;h<yr$y%$LF8g>TR5rd~2(I|L=&;l|?1_>^z*G-M4hU&z=~&&3Nhj9#2cl%J&5= zTfO>R=LzP@9iKm??{3y{UZW2Z30G&#nRj8u{;~tl{om@zRz#UPHf@>vn&Y^~>Gt$b zvo>wca~3FKPTD^$OiSA)PCD$*u5EWWR9UWnoOJB(n;*WWZFSSuq`ZG&wW7MvDC=sb z;7-nME}QL68-{*LT60^j{o3J~sx`_7@}eGIJtm~_e{aE>sG$2_9=jxV_GuWg|E`|= zXKQ10nl9_->;COOLdr_HDmLpG`(F5xDPI~B5$Gge|5~-{(R7)V9p7)Loji5=fxW%k zYZX^^+to%3{q*zgLhEOJEZWr<n7F|E+FtGB-)^XhE6iUmSM*ssR8U}9uHXL~Rgb!b z)MeVPaQPp4<j*nx<TcxE*Y3MnA6Wb#eC6B|M>vB2P1=_&efHq<hO6ghZ<+7spYpfH zDLm-c;k2eE)BV#=8t4AEFwpdAdlI{0LF<|)+_q=u9&>5l|G#X<bk!xUTQ|?iJ^B7> zY3X-uR#j{Er`ZRb4=QyfXL|CvFHHKUKE>y$fNNud?F=;^yDqO-msNIiR<Fu_KBYp` zucm)a()SH4e>CRWem7Wn_ru!rJdvkoS^a);b+1iY@XXC(<t(a`p0!G_thD}Ke(#o@ ziJ$j=Yrkl1q0r-Nuj!uPjSnvpT<|watY8ku`Md0V>o&>zW*qs{<0Py#?dp#G8kq-< zs`plKNlwlSyeM3p`FzKx2Q|M6!);GD&#~S5Do(9>?yfDTE?+skaNE=MskSQ9+e{N) z{}VoGZ`(HGa`M~SMaM-7mWO}#*EP&%e!ch}-yON$!0Q{HSYKeeJ<+(0Gwr)RODkXL z-pd>fo9;Ys*UGZLS+a7%Uwwh9l8@=ewpTqL=o`wc3g0%Tc#qBcN~`?$nYXsiTkt8S zbH%B?*7!EbHv1;mt#fYuoK)RySD>=w$ZZyt57K6$>n5!6;WWzn`ApozeU;Arrt`%H z?7cIev8xy-%u+3!^hzk_!xhc~-5=XsL>gNacQAfhVfuG-#+J_A52wn<yRO%GcWeK0 z(R(4!qO-o<Jn(S~b9UU}HI~fF4z{q0>TSN)KbK{y(z)wLKZ~sL*l~8<!L^L~d{b5( zQ?8B9HC%ev;=9y3(RF`py0ucDyF5C2@-fTrs{56*t#0stSa$2$^wPtplUYw1diC(U z<9WKbSi#$sq5AO$@0{CiwTBmRH1{7~k{i*}#c$Sl=;&LXM_ejA>1P)O++X%yc3%u% zXynH@o*4mBd}=K9lYcLHsjm^csm-EcspeGOsYTZnPhK?AsQT8O_@VRaR{?>kbsRw( z+kc*$CA|GXN?*h^T{#)$FWOSY1xIJM{V?4(yM7N#Zhvrf<7&$zX>m6>ly1F05qx&) z)sKb2Gq?XwJsR2(vGMOo#%`sGS<<tX6t8NUcu+L#+6S}FNq<rp>gG-{yBcul%)S{` z^?hZz7ZrWapDWIaZkb)jl>acGrdw9{USpl$_W0H5cP2DA9+_pmJdfx1jTFDb8`)~C zs#|B4K9Z@CZ!}(_Z<{9fEBS+7l+o$m%lWTto6kLu_cq52z1ej_j^FOSV1A?0`7bm` zX|B|#(4QMK>#OQZ?mn7(qw7}E0*g=T`Y%7LW${$6+G4uGuE>smgPn$FL*~*m+qPf$ z{WQF9xB8Z+0S{HJ<Imlgc+`CB4EyTYL7`i^8$XKizhA0Te*Ni+Z=xHFckZ+Qdx5|7 z#`CvqNj-i3*;{|KUEWv3y7AA<M$h?M`d?c*KKbAAh4+M8-YKaAvp&4$>xy8p?TWhg zFXTgcT+79Ou}tdRMQ74P+!=*7=^qn%)KKW2{$%Y|x#N~Iw;y$6`m*#_Qs#m=Ii(7- z&hx(h99~oqJ8AI}Tcr@zbmcYAWn4Yq<on#evCHq*Q{BU9`QPH3zEp8u@d&;Yd5R&k z;)ccd`4)$_oLZ2ktn^&7=H#Rc%=U{zPH*h5Q>ik(pAl>Hon`O#jP?b0OZ+CtKekiv zE^`jLu#<DQK+cQIUo)6q-43r>d1&cx)4qbT)w|N#@0IT3{(q^D_38}U<8Id7{4cqM zmI(!SCG1={q0jpExf}NaRx3J$mvo0-O`jQ4zpv=~ylszO_TBoU>Q?Q>CO_$1!%XEb zPoHrLZaaRa*1))Xsd)7J!iEQ_pDu1byRK_hOr6iS1<Uo`eN()WvFO2$4~dF0E|S4q z6Zv;6z4>ZQQK6Y3bAiLu#Pd`C=Dl8UU2ErDNy`M@Nf}MXGFSe7v3nZCt{wAE^<43` zY{i&sFLv)xw_g>o-LLVxVwToz^{|_##BL|Pvtd_R^v3B|Ksf)Mh2b?di7j8J#|yXZ zE8@=hxG!uuPs_eHK{wj{wQsaK7xXXaHEEojn{cHd`5pK78DF;l)>*ZUuTrv5aM7Ql z_cNlWaVotpiGOTAr#$6WOnTDYIh!AyjK4L7X@5ipb3j(uu|*voCzmhref4ys-o^#> zzYZ#&dCZj2IZ=H_J)g9X$x{E~FJ>Bct9c)JGd?ZdAtB7O$yUm@u7AoyB^3dSPU*vn zD%Ta3^4|{*-`8%rqIxIKvn>6KF9QBf=9f-8kyK@T`K)5a&8BpH#o2AscON(!rt7F2 zBqKlLn!d0}!^GSE)AU$FFXnqH?!K@nt}wJNDEpwTQsQDyL)}G}->uwo-$riBMc&)L zZG;}^oSn|L+{r1Oxv1-z*h;g17Snpw)r$82+`u`TdG@|3O^#Bf!V`;w-mJQ(*O3^$ z!{W@!gdHtjY|E4-%@;lSckkAPfJdpvOU`dQvwN-5<{nckv0SEU$y?_ab!(k^mM>zM zxPS8QZ#Cs}rMx)BmG9Q%|Ici;{JHN1^PA)Ix8=?he=1gX`E1_~&p0NY$x4qjnO|FO z`_?UaM^s97b)xU4sObyB{JdB1OkMVVyUBcs#GSgzz2-`{rfArn{J4`pbfWL-uy<a| zCU==^`=0YCHRa_l&zoEJCrxs4+Wm#O`CYr3#cI~aZGFO(_tu`R{ieS9`}V&p-wFgx zwe|3@Ry%0lBgd6=s&dzw{q=7xr~h4`9r057H|x=YH|#>@C*L+cTwNUMVyWtTY8C5& zch*;OpX{E$xPoo}cd@La%Pr6Ek4Zl*Z(OzVrm?_>oNsF9pJ&Z5b<+^o`8E5Ap8f0Q z8nchi_ox476EBlX64R6ZeyFW#U8+cDmh=y+iyk>V|I!xbU%N78ldfD}mg}r!p`**J zY8UQVzG}VVIj)A#Gdgl%7MpAC%J5|#yWx_(UG`0rXw^bqxyMZ%ybPNcU8{-NE9)$l zku%r6`(?sfU-KWKiM|`RM>z5>Qo7G|qRze8cG<@e@0`h7s;0X(WIa<k8N~USolib_ z>greTzH<21HP3H0dbY~oQ1i?eVefA*y4SNq^4Fa9h#YU0D#e(0t@9gCShfh9-p{Xm zbCq{o*b<Lc0f(Onlcz2T%h>L^?~vuey?IfSv{yXYw>ea7F@J5vqmyF$_sdT#N?-6p zc4=L-rd$63g%T%6mmfbh4}aE<m!Ha!?(Hf+^TdKMy>!EQ?<(KQr2899$a`SUdsEMI zi{}Kb^t<1_9{IdVBH~(Bh{-G2xleXRq$@6|G-^C(yMF`!^K5V4|EKy?!p?{;pZH;# z{XXrJeh!ST6YKp|OA9xA3$n{;4T>`hY<m(cr1a4|%ezWc_`s%)(}6P@cmHcJpOvlZ z*WnxW=J(qfJ15*yb~*S$Rea~yQ;&+ccj;}-Sr?~Uef!}JjlQ{|A6}HnTkN%2a8q`t z&L0Oh_szc)qiR2W*SOrRus-NSl8B<z6z<%#_YpCxE?hoxkL^oy#I`@yrFU{K_&hwW zJh|V(_hZ)MrE5hePnX?hXQI_w731b_s((tqXw{<fmdn$t)s3D{sjJIznrnS}Z$;Up zJ2`U{oYwjpCO7Pkdi9KLjrHx5e6a>i6`Aj){It`;SI(dHGku-+(b)7?!t473mrEwy zc+KD?o3r+A`D*U$k8d=eUpN;Us(eZ%WW^+XZM_ncWfjX<daH$%u3m1GNDJPd&$MsN znnPM&mp--(4-;Ma&@Z_C)C*=SLw3Gbp3nbkPrRJee}Kcv{mNI??J9*nr#9U0y5Y8D zsmo+(Hjk;l4S(&PC?GL~OMm%+{<1m3;ooM<?K#`Pa%a}F6(%cM3qK_-dLVhGLsxZ& zRl-8awzIAVva_#GIk)z0h2$!Qx_j~#p?(FupU#&~TEYI%c3VbE*TEmYsxs?-h`mqg zck~y^{9jsF?XLIxQSye%MVfCHKmB;K>AKj_J-sWVpPxJscbuuR;C>wQMBleT_BZdH z67{>jDfL$|+m;>19S;;sA4PAky}aTgkLsNN#`>$yJvRE=d0gnU_wiGryL4xKmRq}9 z?m~o=km1s8Ch96PX0I??UKB5{HRq^WpXE81nHjmQcb9wJIXCb4qmP|?1-JC=*qZb6 zapzPm`xABh3Qwlr4?LpG`0q;78as0q+e=<Md#+B6TsUQ?-WLv&BxU)j-;{Lk29_UB zjGM;S#pQTeD!AnayT<+R)5Sa=+$;ZdyqVXtCb|1(rB>wB4^E1nS-*|EHeQf_Gez5i zNtG|LUS!gu&?T1FF3Iff-=3Hnd~)uls|9O<v;+>Ti#&bp5md9`+C={fzsQ?rKZLi- zy!?CfN8YJFI`Y3;_V18e(O&aLT==wlMq-J1?`L-Vdv=SrC)#&<MLIEy)!P^b@O?hR zZo!he%i?LiS5Eok1()B%#pKSERK4q_Je5!H+!yEg`M+ODi`D5&)Dzk2_;G6NzUApb zR~;1c&!id(FJNW=U39nP`MMAWlTBW4uiH;_Uz?jIJ}*+RA}CHkm1keh!c^_-<7$~Q zlPja7KW3~h;xLZ&{~L3qU~%9!C-%MNz1t-99-1Xs>@7`|U;X5>(+uv1e~q3zw8}G@ zdfc(HWAj_CqjTo1`M9QaRiD9$skLt<m4kmjva2q*?|Z)3Hr692lKu9@Cx--nPiYsP z-z6&QV4V6vb^B6{@Q;(<ESGlNbk#3Y;#=y&sPAbq%`;a0;SVqB+&yu|ky$5exMHlt zpYIl#ki%6f;dRJAZ7uT=^_?#Kv8!|$zpoI#8?bs^rb)^2g5BM>rr)1fdr(y<Fe~*k z^UghylVxW7*gf-Dtx3k*mpdFbrf-^{z-zdB-hsb?>1*E=XdJUJ{F(gOc7I#X&m;M% zb|*fu-w2I7k;rKOC**nh^8i7a>zBA+-ST}`XD_U(b3E!|>dOyT%PqCU1WxpP%LquY zTPQwBnKNZYZ?#n6=S;&rBKz{cx^kK|_8J<xG8WqUPQ7bfaMjb~MPW`|`)^h8`3Wv; zmKSmq-+p}?_Ozsb_OlnB$?0aQMw)*-FRvBpDE(u2@uFKqfJ#%xCsXMUYuydY^R8-h zzgua!)%fQ-h6yt!i&S}kxl_MtMWFcA73HtyeBT%0;&6KP%yUjXJQu@Rth8=)+|t|4 zeENj~&nms3=f%2GzNI&<b+{)U4N-kpd_!}e-{icMyq8Nm<NiivrTP05S6#_a&NImK z`RDOnfMff&zQ5<CdXkxEhx6E+bv_(+a1m!%<5r_<3|dvQnC^V)?@n_TPk!iLcP9Uj z$I0C89*3Drr@S}nx&2LJ<6)B@TtNa+-!D3asV|vr*`CR?&$Vi<(#2Chb~$J^$u#CY z<9XC2->JTDf|2EFU$dPXUND+&{Zlu`De|$ZO~32So^YNr4_0n-6`r?qgTn7=dA@o5 zIqK5u%dwAzTm+eaCjYBgWuw(+7<Xmq@9$^Kwsoi*BuBkDcXp2K@1oe1ySR`1jV)Tu zv3dU9;)UngKXShaw^Ooj6y^?|_S4-jz#$+;@y*oT!ut3A-gSCz9{0~6Ug~Cphqmg! zTV0OPpZabFY0bO6Q;hGAf-4VyM0)qvXFU_X**l)^E`6Hn{_ly5vM+a=+p}9?Py50W zqnFC3NfdS1*WLS8bb5~TgsJz^c!iplp7|<K6#t;UtA~FTW4^>$>yPiZtnUliJn8Im zaS@iNsE=XyYyau#)+)6h*)FWU{$1YnF4MlscjpYmR=-}cHhDwSx1Y5k{O2yt&z%($ z+AUaQ#V;x4!}Vs`g4TWEkN%|kOf6`5mODZC@auww;z={DZvQJi^1;Jwisfdu>I+p{ zwRCTFc%3Z!tFAQVV?p$3=3Z9j1?8FVK8dA!?z;B-oJd*ky~}eXw%eL;Zu}T9<^0D3 zO)so(Gnbczz2~^`shlNQ|4Qn~6U;jVPc&<LUhgUmoU-rg0r~yc<2VoJiDhl6n)TC+ z(W)zvSKMsB->KJ~%3f}tC%ifG)v)wVZ^x@2x?8i8dt_{cKS-%p${al++`IM3tO?hD z>^z(>@%-f1`^#8<r#5YM-B8-n{Oqr*NvZRV-<O@I?7yD9H@g2}lU1qcf#dv=J7!Mr z4_I7yB2?j6{EYjZ*~YhWew6M!Dc@ej_WtqFj;A3JzkHQCk1?3N=Ty5~__e?PXEoDL zw(qV-%Hp4HI=_9!w%hW4{3fT{J}0Z&-IP!Xe&G3GL0)j#wJSF+o}R;ekMmAfTZhtx zpAKtgcShNXKlJwx<a{`(?SM_PM1Xd|-dk726aN(K`1L?q$#YGGo~v=kz7yd$Pb;dp ziLzUrpI67l75An~t}pa;(#Nk0Y^|~iJq^B1TVS)fXOsSp<IUch@<~}$j<$EEuV448 zuW{u^>sL4TZm-;LelbK{uJG#q8i!LG#eNh%yZ&{}vhQ9Qolj@+T>EhL(%fCm)pBMR zq{BnCZa9Axjhg=E38&arwY0jPHp}nEUAl9!r1dY{_B4JxSw)Ba**C#!AJwO<-qj<| zl@^q;RnP79ZOK1}u3g@AxM;5h`*vNPXLpx;jNhU<>sQM|!P{4V$()$E_msWc?e6pP zUcygVrYEm?r@p&3|90?uVHM$Jk8KRUERZSklexF~dl9=*kj%1$c@xs_wtSr~{cd_U z??XkF=}sR!%7Rriev2(uR}Y*lq5s8Y;)cxKCLvFc9yQv3Eb%}%m(r#uwpYKEpY>?} za<KmCaXW_w&e8_HEp0KEL%bgL6i=8wp>5u=2*CsYSMDg<t`=#;c|P^w`M-PCOpe?5 z!q86T-Ca)egsBzJbXUhEo(uh@Q8l+*A<4h%-m7H>*>5Ma&DiotgRRo?a*EQcf1djf zD4jldIctp?*Ou##L_gHFgw2mXZ?e?Tli`(9z37`oD>^<(%fI{hG;EgYeUsTgEPdEB zzC7D;+SX^X^m*xP^0(gnVixeSuq@4;zwVrdZAOTK;rEYy>!tUeoZPF{TKsSFuUWnE z-zEPz6v#Up&FH@vvj5wL^kXg;^IrBGyu!3&`J4-~ca=Rg&uXp-%$C=8;|}S)W4ldv zuT<p4lYw3TbS6se%WM7V^6qq*wiio(p8C$apQL^yRkd&@YbPHT^4OCkxnFx`aG+>( zZj}3XZRJke&V>E9Di$k=xl4L)xc}5((zl1pgKp)gcvLQZDY;4X_=}W3T&mpnUY=;T zSTiZ*acCIZmIeGDZ*03I!x10&PbbP~`;A5yd7*p%K3y~@y1OCSpe|<Z>c+)7ZM${M zm;XH&qV~?-+xVMd@uHcYyCq&{t7b3EjC(Je^yFd{kDswqWU}PaAL+C0Ol)ly+3U)s zEx+r&DE81nN6RmzQOO?eS%I@;Y`0i0&eeRxlbDyZf3HdNhpS43mr|xIFbMtd;UcTK zx}eX8HA;3<XFQyB`h8*8-Jp)6!m8#=p38gQEL<TLIW?#u=j@m3>T5mTPCA!%k@=L4 zR$jeL&@A-`C(Ygf>(@Qp^K7T^aZX+Sk3;Gl>z%Mvmd<M%7lcb2Jblc(FjU{-TEQFL z)NAWERkQx$&9ghuXVm2PM9=P7l-!gFT^wJm&c01QJ9p(30pGdlS=z^h3n~_?q?}(= zXMIOlXinVc89f`7r!2}?YTmB3Cz&yVBku4Y!=;yx#drI-OPJQ!<y|v0%zR*09l~Z1 zs$P4*;LuMV^^*tvtsa(X3uHbszAkR*c*lJ1)JrqH6(^rrEq83kG{>@L_N#}^Z+~&G z`%2-jeIKs=pZBStbw-ru|H4eu<u9ZcJ8JVN^1E^H=JPvwvNSi8)>c*EkPi<kVT zX59+Oo4K>`;B4MJzatY}SFQMD*lTz7#OJiq=C^vEo_)FfP9l><DmL|7_u@NzQTG); z*-o5){Ao<#b1^=hsiw@AW;*YaIe4v_>8at2=3}#WuWbBujpKqtk|gIv$=gonPew34 z6^gob()5{OL7|_^g5AE1A<>e5+v<xRPM>`;^r@{-+=m?}0)Oi}?pS?=#n(b(vD32b zGjE%htluyG^~9m%pOY5saorvF`=VTeS;d!~mmi3KX4c>5^6tP)R%s(XHTjnf`f2%z zGx(%>PWJsf!sGCIN$7+dzdQ4<q*U`)D7&4SDdqaVV}sbY{nh-c&jTFF&wUkU;QQCM zORy(@!~9LNZcRFSmfdX93g>-Zm*?9(Uw=gA#ulgD`$HWP=SrLs`}iRB{gVBj>&~cu zD!nMdIC0sd1rM*qEJ!(BH}n0&><)vRccroqDn3abE#1gdbFX7<?*T_8=5zl&n~vRD zb5<*S-P*P(di@Ft+4BS&ENv&bm=#5D`*ZiwFVTxa=O+iN#@;l&lvBG$T4rz8GJmHs z=VP&doC?e5l^gB-usAlPrJ>9HZiuW+<^lV6A2&^7m!EfQsu6eW)2;m75BGGRT$=V` z?*54xY<@=RtwLf(uBN7bx7^!%>jf6IG%2;;I(xz@y68T`>Z$E>Jl{Oq6ug72%DsC@ zze%^zMzsy=To25NS>1SJpZ14Gn_GJ-e~9t%8hp14xGjA(U`brqY3>8Lrt^E(IC**% z%nwsOGH0fV?w=<DIup5r+djwsSM11Kxqq(VKi1n;pMM)wW__|*=FNHPyvECa>^npr z@b7O|-<HR`fTdhNZpYMZ+4oJRo$Bdh+Y*p2?8xV^yYBb(Gj?n9VnfgTb!e@;uXD=v zz{I@^UyHfbpPug}-k-`fWl{WHp99jMCXKv@&x316nD6a<{q>L3)UOlXO}1hRy#Io! z^VW=@W8ccfc5LPg6|A~kJL%`*#N;XGH9d2S?*|z#dh5aYD(YN__>(B(Wyv>QWe1h~ zc~Moopx5%M)=PWYu;X!j68#E#N6rWLo}D3<nwR$dLfgcvp@QBitn<@)gm=YG;XW9a z(6{|bQgcCln`U~|6`g)IK5?1e`5l}qYIxT_&=5)$N;R9~Z^gTO;i(JXBexuLo?h!w zyK?r2C*k64jL&BYPcuo9((E+*EaNUL<r&QXQ~!<j{OiU_%5rDZ%rlH$2}c><x?Hw) z)6(*l$sC5;PG&`AELFVxQL1a>4wLe0Q(O0}b943-^79RtdwS3E(!MppQwsDXy%*<t zwOLMM3f<@(n0eT}gWdMW>s^1{MCP;v6^e62WG4UoV7tlWw!*z*H)ef)%^PuEiRt>5 zrCVIoW_7at&UQM=uBiC*jQ8dccMoUh<&R>S%N}M6vz?vPF25zT?Z?A=lPCL$C0M%M zpUER{*TOmL+B%Nh`#ukiq*n%K%qeiT)N1jadvL4i?1*|Z(SMec{$z5x<rjxMIq>Sl zc1y1EPV<Adn^)X={N1DAaf1Dq4cER)9lhlfv{Yz&{=qXT3CSj|zbEGXcjEU`{_j(# znQ-y%Zk|<o$IL{ut=?2Aa5ny7GP|j`Exatt_Nm;Cy;DT^*>+2v(QjMbwtCSs9XG#b z-6@kVOT;()Z1CD%dX-mdN>B7-3zKth8_uuKQV`5`-M4*-(UzHF`x?vkKejn}+a|a1 zTjdPFdCWVXRc*0~wq3el_B;L>7oJ`9;w_%>z1K5}dA~-L`X{^=d0)9GRrzq<^A#^w z2RX`z&M9{1GG?C5;9b}CaOJHhbD#b{thr=*V!^pd+c`h$eW^WmUf6P})`mSSr_#67 zB|W{qI!VOul|Z%jWp2e~){?Cr(dqwuN@iNO1YO@}++p3HtW+9OyjO2k!-Z^vQ*|q{ z>!zNQsD0Y#WWL!?Uw79W3CYF2U(@wJZ@fLJ^ytG`$JUxYf64VEd=<az4~6fKAKbmk zT>d`QQ)lOdh;;$B3F!=qZVZd(zDhN}<16R1Y5nQKi<dZbTEE`uvJG{J{JBKqXXe#i zX4Y5T)vp`K?5xZ?5!EkoP~_n$+hc2gM!0sJ{U&hQML$-jS-DoZT(sitheLar1l@N{ z;**`K_2S;MvbCFB)_GlRyY#Z;d*Nd~4NWWA$lPBl_cpA}@)XL~=$jf7*{oc7!2YpY z`ms}*>(=_rvQWF<I3??MLw^2A$L;sOJX~H?^!IIy{wkH1Y8E@3EFK4O>6RPSpSojS z8J4}0acXza$~Rk^7_L4)$q~)8>^XDYybCPn66V>P$2Rjsx|A1&i%-!D{-&K^v}8Y% z%!TTw7msl&uPJ=8;{WosYr{e|Z%8?I)&GY4^N;g7zSvn>U$SnSK3zdz^B%8;nmqvx zPg|xX#GTz+-?rT>`u~HH(nQ{_%*(4B*n*=sz1<p}@4EVUYemJvo&Gx>Pm5^2wl4dQ z!F*q@S86sJYM0MUUOi{wxy1UmWAAU;#kM|M^X8XHip<2``8wM|)?P^3tdnT4k3k{8 z<-r=>$@#_`x2GsADKwe#uj!DBn#$FK4|o&PORH_uxAL2c-Z>H*eCpo~^OWjm{}q>% zURwE7^PuCM*(=(#mvt#?efd~wyvFzb!b|-=o`2i9*LcTx&Sck}66<akBR5rPwN%n~ z@gpY`?7rT7G{@|0#5CWl*VZ3Q*AJ*a@uIRwF6oN+@${Nk)~5<Cw`Qdsxy^AS{OPU3 zb;T7s63sn7X-V}(M7FnV|C3cGKmBZ+*vi&7){DE{)ZcSm>nT29+HiWa-Dz<ymx)b( z)_A;7t;yS{b&S9FmG{m~Uw$%%2yWNgF6aKD?AFs<q3N}$mQTH|ggf>0e@|NH%F%V# zkmt?RYfGd3_Z_Tkw=R7Dx2JoKg?Dm%+gq06J-L$;j&$r}NeM{Uf5~rdvBnmu*voRi ze|{-Qd(*-9-+No!LG@zQAW^PbziW4LC&pjA_jECDjb|^bG+&WVb5OB^)Q^jE{6D^W z9I>hXX?88op~@tl7a33H?yf8gX3|XF=D;t>9V6SGw!+cq@V2mf|6)B?`@UBH`7b>G z_RWpIrVFmj&i;S=>!X7oXCC^Q&9$s@YqgohC&s%+($9$`9$l7vtK-(8xXUq{`%G1) zEHTNex-tJN&*W3C5_tjAk7plY_z+r~xr)hudUO3ev2P1w)^FFB+)^mHanj!_-#2yf zoquQfWxneDRL_~L>t<U1=Hjt5bhtgOaZ%7t&YFr<EDxO~?s3y(+QPPX-lNL&iC)Lf zcpMFBOZU)fpTFVsu_Q;vM|&Re@*dkU>ET|6|4MQ$H)@NQs+U<CJS#XEu%g`Ro8-gX zzCOP7ZA-H`e*Zl!W;#`O?i4PojiMXa<YwP8%2(oEeb?*lieo1i6cmKz|7==z?fH_4 zHcRVY-&E<2YcC99-RvWJ`{CB-uh(3T4C^@ZhyA<o^<dY<dWRkbc1rE7d^ok4-&iU9 z>?2|E#OJ4e+CPcEvo!A6_iM(gVFxeV3(2;6dAYeNH(ojKSo<ZWeew^J9C?|zvpBXr zNauag&!k>#-&fRjW$V@?K^^6KSxFtyrqAN0XR;zv=dL_`<kGS%Fa3qjwwRhPS+(AL zPsg9TJC5moY@cD2x%*U`_y$22`AH?`gTkh}3nm$)EL_L%dd?Ri0h!7#hR<dugcN-a zmuif9yiNIF-1dXPe^!PrThit1e0=Y!hF9xb`I1c}a=+dA^VGs3uS8{TZrILdz6w6S z-Bq>oEzLA~Ow$g}N>@7Un#;G`XUWNbK|Sv^0-p50TL1pLjPb;u(kl~|_@~{;6Zg0@ zeMNy#fSIYyEaUUHA2!KeoPEB2+V(A0s~vo|s%_cJ&9mi7NZ~Wd9}|A`PK(U0+`H_0 z`2XG8=IVSnTKuua@b0qzwb5rb=!k80iaoAvzV6>tflsCXmQVC?x4SEA#2)e`XzTaM z;t{b`T|2I~tSeaUCnOsCqv}TY!$(FQH-B&Y#c#K$Yu@zq`(~Got-Owgc5(!+H2r&5 z(Wl+|rm(WhhRZ*s|GF$YKF6uPB`9P?dD5j@w_p0!Z+`qu+i&*nmF9YS_67WpBDw6( zisbxe7ngeNziPW{CV%eDM@!o?XL5!MOPlPuzGA7w0#04KS2L?Be1j5u&DSjdc}z9D zTIy(hOmRO))Vr8n6W>J%JX@aE_s}BUdPN_@hg}{9?{v>kbvqhxy57P|>X^K!#>AfF z3A@V|9Z)n=*RbBaa?*~BtH}<N&rUpeYF3Yr{DPi$_gCK7{xD}%;rf;3I@@=OZ!(ri z*gpNhg&QiGfxnn)E9ZJ?*#&yW9#b`_Pgtaq<6|Ee{Nm5ay*j3H2}U=XqI|ooX1A&& zb?BZ@FILcQUi0ytdhDg`v!4I3G?WZX+W+X=hVP~;eV_7~FZ=m#;`{jDJ@txiffxMu zsibzDPF?*<_-E#w^~qi;o0lhlu+N?)dsFmxgGa~8j6{}MsZvs%ey0}qvUFP1Jza1} ztG;y6Cwm)-mPe8^ZY-bEtS3HEVD;Q*9_>vBS3h3O=3%zm?)oW<w{;9_E57%nZ5O%{ zYjov>Lc*Qvvd{EVyX$-RH;0F5#$Wo~(CT@5Z-h$qI*~Z10?lc!rd2pit&WtMG-rj2 z6qo7GpVQ{#99HvKcJi3&WIYd&8*|^~nF?s$6yD>-`Qetfuu7O?TwP@!r?B^lrwdob zJWNZk=bL@+aN3*ZEfMjptLERjuuOE%8=LQ~`fsjoYf8<j>w36fJ+dKphp*5}<7MT) zx{kHKx3_$u9cMe$aosx)F^xHABqwQUhlw3?KkSqmyGvciL8rvW|8;rq^)2(|PZ;HI z_c-wG^2d%o+piz@t}PIE*DdOLo3|%kUnGdBmErB2Z#>8TRi+&Mv0Yo(*pDy9^y59I z+kBR<S5I?FTGnCpIZA{}V2!lM{`wy$bapQ0p4Kh=Zb{G4t@nesr!77zmo2_j+J^1B zX<+g~QLDZqC6V)X&D8u88o$Ts#<l;9iJF?Tux&ds#k%dt7=Dhqk%FOxxw$2_!$Ax! z&5R6)+;+5PTXM<L*zIaDg|4FNqVI2P%Uzz7%x=9++e~{~?&d{ZxzVDx&rN?`yZijh z!hP@T?>;|ndu*@Ty3Xu%mSU0<AMsl$E?7IUbI00VVOe2YWpf9)l-wt8R^(*s=ATye zUY?WmjOWLc%?Bq=?6jC6Vbz$E>%u$NX9wdeHHU^3orVoFB@Y}qdX&|jO<?2J;&O(W zGp!jlLZ@C`nURt4KloEW=YbP{>$B`^WgXMZ7(Shs7Z=u!w$2uoUhd!VKl`}6ni_+8 zv2cUtiBl{Jix#ZVRMlr(Fl9nGtH+ERGb|*c7)9pxu5mcV5IJFEXYXQ8(F0emF(!O{ z&wSv<H8zf4%T3&W`RgdUHz*#sc<zYAmzQae(sGi%_jidUq(4gFEh_o*hrL0DF^#Xy z%x}JJ!6w#*oSwCF8vm<&&@|urH{7X=Z`*vaYx8&c8@NWhtGg$&PnawGz<AZ76+iZW zE-^AM`K7*1`9(1A2GhS=SZ+yK{|~;jzhu6_{3vzj3BAe(P98b?a(;xH8iT@#i|0;V z_-p)4ea2ko7x9@E)=fEQ{uwhzH8gk5T*!Rk)RBuHg`Wxkp8xJo`rL;9ORJo%t+l_` zSKj`2`jveVgQexHh?$oT8yeOhGb#JklgqZLG5JS&*peKdTt=Us|I?V~zWulS+|eTs z<9QeTNl#m0H`##Y)~$%0%nfSG3V1$k^P8{8IOTu2&gK8#C;qwb@Ufoz;D6mO|MpM( z9dG$7Uhm`o*R}uFUwCvbEbLR;wfW2+-pexoh%st2YdCMqJc0Gk=8QEwvj6Js+O8>R zfB!%Edi~Zg^PlCr{<9lssvkbTjpOEw+MvT8=YQlYo(PnAlExImVktSB*@t(nUG+Ep zovU~+96899lKko9+x@q=79=O7{L!}(EuOG(=~;V~4S%CklbHXk7p=MUb^Ra7D@RhV zsH$ZCGw1#m-_|w1`N5J$dEaN={=dTQoY)Wf_WFdD*4(=c^GbZ)%we!f^ILZQ_xG6s z;>NGf|Mxvn&uIAfdE~hZCmElxUHG?V_QaR*SO53FxA))mpVjTmu^VDP&cFCmV6=s? z&hK_T$G<>nYio;|Nq^R}eu(_~-{ybzJ71qWK0OboiRbiIGU*0g3Z9#_VH5i?m#x*i zW-72Xz3F-#%Jr#cb<XaZAgAp+PVvUAZhj%Hw&Q;E-RJ#p?|oac@;_f`a#Uc6>dZOM zAN^HX_-k_eCcl5Po1d+>Z;mredevFA<oVG#Z`78ESuehI|E-~F>fS}+8GkzO>+r?v z%dM#KjQLb^(ewS=eU;Mc*N-M_Q8uq}Tzk^qPO;y<X2<du(sD8{-tTJqwYlAUvM96n zvE+`Yb1QtNJb04#pddQ`58u}}haN^4&cC=Ou2pFLt5=P`H$Cw2s1o1XdTdJ7F{gxY ziY(hsYwSo6QGQ${C&VLvHb&sMzqf^w(MqMY;kWlGlx{k*uPEyH`MF6m_Z<=CZMvV| z5i!9-Q8VFog?r#)ktuIxdtc}3WA$2PSfsRED|40W2j8L%*B)_9==@mUEwJXJte*D` zF`b@Ezu$hD{6IVY`E;+TQ|{e5Bka11(N2IRR^;-&>>q1w^%pN#u*}uqtLGEjGn<Pv zv$q`J)90(WRK>ik;N}k3qh}5niS#&lC6};!ZC!olr=H|#<1&t}C%a0S70Z`|nBDBX z?z<?iczT(8dY8m(`$uaU4nA@8Z}z$PE&Tg0M&Fa?HtVYzZTNHXljXfNol)xf_n-Bw z`YkP$u~nI`bla&y<6AA0FYP{bvs|d+!)3<r;%jDDKha}awbN6%<6z#yY4_6>|IQ9r z+J5le7s)dcYx|b0Hc5ERV6%U#(!T83*KD7)bw@TIm(b1qePUnV`hy*N8dm>oP@l4U z-P0|%TqjJv`SwuN&K*n6|37td-4TVGZxv?LbC<l!`{KiL_|hD`D;rn)Z;hT^(s(Yy z_g89MLW*TdOzZl2ESzo2jLzL(ctxW(`qi|zkCr9vEYzR9&?GBc$$OdHN#)0`mqRrf zRWz@^_&#xs_LQ?CYg0D6ZTrTpcagtnb!mw6zVbru4bJJiP6ww5{#wM5@o3jo2Qk-O zf>zoA^=nkznz_;$8yTnWf6bouR)f>2nYs8$_#VaRRp;M57I{&mHQ(j?xyalInXkEb z9A>P!J<;jib;H$Zf9iEI5`Owm<>HwrX}|6Hzb9QcKZH9yY~nrrI!*Q@+siu-w*3*k z%fIuU=Gi!|YqKWjFBSS}Hv8J#Me1u0d-g}VrC&aMIJKH3MJe|3hno#^V~wnL-I(x- zGeW#JdF4b+3pxAGtL<mhzBm_hnQ2j&!9KU&rENk}ood2E{MqMMm|yAqrevn`t!&TZ zCD&IR`lA%I<71T0$F&{Lu8Ua)-Hct?-t6V8^R>L6a}`(j*`}WP+j1U1{W$f^Dj%6Q zHkH$}bMu?d8=hY$r2ew^$K!;M9e4Y5Bz#t9AGd#<a#`U(`(d3A8Ot{mPE(3lmUScJ z#+paLd#3YRGE6qvz4bt2Q%%{A=sh`W0@N0ZAJ<ad$x~_^+J4yHUnfKVvZ?)n_cqqI zKk?<9zh4|>#PlrCAhpiq$JXPDoafS$E?l`cv$NxukP@HV1JS$_llyiu@9|ka>(RZv zA5JLog*dG*-u0}V<Cpb<rl2)~B}eD{?N?)&t!m>u&)w^U|2h?`u#fBsPUdWH{x9)! z@4YP6(*57#k?uuq;ns<vM?MQ1{%5o;Kg#s5SZ7vW$Mt}7#)51!`#-6$NbguNY5k0~ zTc)V}SNQN|@>%0;EfH+TcWveEz9o~!p8CM=*_-o*R}Tt@Ph?qjHg@-^eLP_tI=$~d z?J_%h{OPCam-nk*>*ln@`^-;}uBdIjEcKH~_t53P><owJZ_%sG;P%V;@T+f<ZTh0a z#hm-aH5vOQY8*mroBFogKPr;2R&MjA>6!UyPpdW=f8{RTeW$MQK>mto-{;DA3k^jb zHf%1eP0eL0F{m>75Pw~;_F32bw+Gzc9kdF|e)dqLujJ>>J3R+))OYSSPVV^5GG*zW zoyieS_l?uKH{JdqlTj`I{KFKJXUxqjFV32{AkJXnv6-$9R?T6Un^O>e?c4r!BC58_ zKYx-I|Gt*z@Efzfs)7ZYuQJYlcGJCixcB<*$RlajSNBd-?-R1-7K_^)`tTY5ofSV~ zx}9eWWVGyQPt!U2DL3V_LsM#w?xcS^!;h)G4v07uuwg2*lC9_A!_C#+TuVw9w5VOk zyT=y)bmKnTuz4#kRa7faUs-+rTz1nzS?@y!?1Y&_|C#k~*p<Dk^0sU5=O@L{ml!85 z+PUO}&!jIEd*<9yR?Y9b%%j53JNcsSE!VS7pW7||$WJ=1xoG=r*4~(tKQ}6P=>F!N zU(93nDBa`ykL=wcPLFRj?hE_0@nB`CUhw<kJ3TJFtw}x74Wag*Eh}?6H#VpLS=esD z?_0BZ%D+8sQx@D~p1F+6{MGN%8<-k;Hd==oT)VK>{JH)PIW^}UVdaiTo@eh)^!Z+Q zMlxeo%a#>4_~v@Z>{!k0_+^8awEc##lzYdlkJRnk`nu{>y3+p*i&r0;t0SwMrD8lu zfj7)7XnWukrTC0u+bzehX^FbudjBCPXu4+1+MKQYOBaO~%Qm(e7)hOZkbG(RVxx=q z6LU`}*}Vygad{Zr!2T#)QQ!>At}331t=7TwZoGQ;-IDvLkH$8OC#;S79V>lir@k+@ zajMVVcjrQ}=H$nX&Y}OeEv@@!@%`85W1-vsnogLIt^4XE_sOeCPsQdgIp{4Kzp02z zH#POvn=s+RHR3m&yj3E!4xZ3uI6Zgr?zN|`Pi9|KSi0`&M2*>e^0RGKbM7Yk|1l|? z&3tCL_6xD7gYR!;hboG#o@`>{b-E=YU$@_`;l1W62i>I&pVsVhF<3FZMf;*g#OgEl zKU~Ti)?b>l+HmG&Hm_v1rLj2&pUrmc3=I+}^R~TGGrQc{d1?4#aYJ8GLAT2uGXB@M zrYzp}iY@1e;T)~a>zDld6tCy`Ywot)8_RBrmWxO|*LqtJHH~$`wEeS71p=4Ou$?LQ zQBPp5lYzbSGtr}A2a{7D>2KhkY3G?>_IFXltgL!d)pMM2wn|<<tsU4-wY=B5dt(#Z zic=?kW^>fCx;#5+dH9>Gv7Epc%?3>uy=u4lF^0xxt|!%b@`U(4ZY;VbxNz03i%XfT zqP6F>E3eHdKbG`f!SvFmqL>*!3rxINAM*Y;dok^;O-$2vS8+N1vXzz@(-%(Vnc?Vq zS?+%I(H%SHGqQ``?fSgn+XDUcnehw1@>g7(Sa`~{I_>J?-S59hS_l>{3wUG0-?}EQ zty^T>_SNdUs|Ea;J4IwFb(Z;;{@_^Pw6NAt=hA_R$$!q}|9@wlul{H1<dp9vS8qk^ zT<PrEVSRVgTAPJ8q_!IUQ~v7NGQWPo+Iv}-&ev@63}aJ1da;(r^!6$4(*?ob)93T% zT#D!YKc#Awl#s^jpE)zTpY7OZ+c@V4>%QA1(wp2DUAyAet?QfP6J~r}?(3SuHOGYH zc~(RhpWd@6(qk^$7sJUP7kBJ%jCROezNKKZc~APW>5u<JaNf8VF5_dK|JWpI{?nQx zYi6X^tc~wDJo)q98_U<c;y5dnyZh&%({FxmkXZeB#)c!Q*PZ<CzF;)l%D2R|u3pTY z@1Ed7O{*<>f17`AKEdj4wmBlq_vXfWwXA~%i`$pVN~~JQJau^wH_yFa-Y@j}?_ZvF z$g}?C|D3qbzVG7JRVH~^x2^uRVwU#BPJcfE>pB0TZyDa!cz%SZ{q;M;gC`SXgUi>m zrQ~V4YE+a8=e4RC3Vb;6dv>|!)8+5{)oTvl`t+qEMEUf+tsmEZ+byo=rn*IwWgg#} zz-V3Bm8WZiYIKt8lfN<UQT%Lf_{49OE~|;q>Td@>%=p1KMXuFQ($G<Ni_%^u{Vje@ z^%ACw<Ic44mb7j-w`|i%F;<sT9-DVwc)oeXy8a#KOfH?XoVYlY@y}zmcgjC6b5GQ& zDK_N&6qt9?ZtKy-LMwynqrzS5-sXIG!))-Gp~>mjyLon;K3(FqRvmrr?58*8zAW&W z_4NLe3_kl?N+ugx`AoXq?`(YL@$?hx5i?)r^y@bY!=0pyie7vTDb~-LHbv^&zU|R9 z%1K2hIt%<()pqOecG_9?wKXnq<EdEQx$(Xe?Tk8)q_5gzKlg86!`nXbDVy!qKHB_> z`(@mg$~E5{8z!CWzAt^N_Hlqh<1CFw5qVZ>JpR@!;@3a(w8`IAzY<oi{{45voPWD{ zO~UT_$|(BT-M7%4cQ2y){rS2d^L&<wckGqt3w>|1$Xlu@$2>Ob^rBg=zjl^+g^BFo zyTTK1?NNBwV71fTEBD^ZJlYWC{7Pqcp8Ch`W0_fx%p`Tn7Cz;P=C@kD{Ac}%B}q!p zOJ_g**J!!5rMqg|)=8?5rHVeyNDbMqJ(o*^>-N;%Gu|ZzWt){sX75S)s<R*=WTMH- zlKgkZU*7#v5~%c2NdCA$>|0K@?Xf3MnTzg;D6i0YqQZS*u3UhVhEvp~VA&hnX8Lm9 zJ5e6J<LK{8m26)RPUv;+*()#ba{AO4o5~$i`0j;wZTrYN>t3F*)`7?qCg;CucYk;A z<`Yg~tjyD&_4lLlnF~zMxAbxzV=dXknRou#gxI`~>mJyos9!1+&rGiNn6_E}-}iv6 zeo32zeyxf>TB!f2W0^9?r2|eGm3w&F&K)?$`qkr=^=<Aji<J>F7GcF(%<o?M%fdc; zPH$86f$Q9-j<-I3lOotv{`<lk<_QtDL78niOP=S*ABvdCRQCN^*!_qV56f5e35wlp zWl4VI(bkY#SiR|)@I4*-sKwh~HN5|Jynw&z{ieDjpX4RBmF@_y{H7AzaPHdMCfA}* zUvHnaTz>6Ai}QPLfpxW>Gi6qr9_hR_ZEs%B!Y8XY<jikgaDMuIc@Ey00j9l$b6nO> zw#{20^mnsXQ(<#e%$^qkPbP@m2!7G?XMNJ6jM*M(HmhdLGVIko!pO8c`fmP?H;w$R z+ot<xl&}ZhF!X($BzdS|Md_By(bIN5jNegkb<@P7&t7Rr^UloNa{kZ;%V4S0#{H9K zG^m-#?&+7R-#O>uy4M2PN?N>HZ)zXEF}3wg;J9;i`iBG4`TGAC<iFDL4n4qqpSK}D zT58$4_p_q1r_5Jcz`iw7Oqu;V)8CHZr0zpjAD*1)<Jcl5wv|tjQMoqp#zL1PaTbSz zv>tPCZcywKSIT(&kTp}Zd$ZB<x=-u;Q{R1hCHvxgUaR?OpA&D^n{UqKG%dB!Jo4hv zO^3gs?E<RG`d-_7g10;=2&<5qb!nN5TkC|R;~VCfd{b)PDB{MR@vUKpen6>Gkk?XY zc^NC+2;s0i-<1}<t>WFUKMDGL%c$A8c+u5avW<LBUBNdqcw=@>P&l#kX0Y9>_{pcv zEj?v7agUp2=n~iao9dEg%9LC5?_aj?yCc_`Q{u(;m+R-gXy({Ag~yYZF?IWbPjgid zPqVnrAXG7L{_nN!-#<+V^c1>u@Q!-@J9DjB6-Ubq6X#XWeD^{7&gprf2D3Nx3s}v6 z$hU~2VYY1bg#DdXEeqa1dA3;AEp#%Uc*OgZ!WoQ<Cl^Gny)M%wvt<9O!!FA%o=>y$ zt)98%$R_b#MU_*^9rCfowUTo>)^3Uyd1m3Z(BzxJ<GuE7ANcoqd_5{X<8t1&y9X~9 zG5OuzWu~$Dzu!T-$9+@29y==VCrohODwhXUAI$<~>+B0p-kOtC5)<}qDf6FmS04NG z=|{W>`F8J1cKKPI**O|EQ$1F%6x8$#k=<BT$H8Bn9<}3@Sl7w758qtil)gB#DzagV zQ^sok!;94U^~0z7q!&nKHtt>F{Ws^*(Y?FtrDJ@e)}L{n>!Kvbq{(-q_lR>sxI)#V zMY(0MtWrJJyJo#k$m;99?P*c}&+VIt%HuhqxwXOhF<&qB`_}yETs%jf`@ORFto@g@ zAFgle-k^IpF52a8u%>ia%wHR&<<)EFO%bW@y~kZp5T3kXg-ElT>6?_ygS`ip8(A!@ zm#A2+j_}Sbk1?$IadlBjQ{r#l)j~p1Ew)plC0dpkJ*cvJ;Z(73%_Or)e>U+prJc$% zT>A0N>3v6Ce}`XPE~|K*Sz@8booTibOP+Qcm_2npz9ZCQ<*(<C{&S}6VLQ5W_Uya% zUN<B{jk|OHud=KZ2#gezVmItRux!_blSR^EouWU#7R;Q+Zld#9^NYXt)79O9O7<I< z9bQ(bB{XTl`dGG|PY=&Lz_*tBlz&Cl_P>3cKav{W8Liv#`C<OE#q2LWetmM+>BY6} zr(!=H;QrAl;c8+qsrrT4HHCxB$uYXc5BIx0n%JUP<QY-C^#5e#AF|I6X0N`TWUXdY zv3udeK(TZ^wL=k+tD~Ovwwr3L<!d(Ho-)Vt8>@Y5#z)W6Yw_EzMc#N@z`Lcrz`lLC z<gwW`7mb}XZtb7%`|oFq$j;L0iyu#LR~s43`g~mf!u3iH)dTM=lH$8hthbk`PIq1E zy1|Qk|C~Kh!W?C%V*)FzI(Hb)lre~%_eq(xwZMSig3V~^<huPVb6?g>U+2smSdp&3 zfNz(GhF9^y|586DKVLP+{8Z>k<4s}@lqTQ0w7vek@2wf;_a?ZCEuQc`s*d5b%%XFT z)~kO^TvfnhdxD35o#5Mj*_%6h=RM_I-KAfUm(uXD)wy%KuW3~$V@qbTW<#AunHc|7 zos}|ys;yej1lH(rdjJ1(BJHX0FYnw>6Vmre`h1(6CR`A)CeT-MdP36+)B8EQ4n?nG zkN8w~>coRri!2jGRkDJAO)mNKb%UnhC5QaO3z=W!uG3DQ(sOrGJ3A+jM%RWP-cRnV z^bRXB<v25WnVahTH|8m(^V%of{yz7i=hDxGVx{uw{>PRT9Tf4}Gtow@^#1-O#rG;( zy;mem&56Fq$<xhQvFU_N7?0xt)muOFWHo267Vq8udB%qDfTS0alC0TG=eB;5*u?Dj z;Ez(^2l@AJ#M??U+dqFkVPmso>0Qt8Rr;KrSI;a6Ibr!Ir#!!$k4f9{+Oa*2-w)02 zTDpAush9o+cR9IQOY2unut{2aTXA+?|Eq<cK5;j(9gg0ixVCzeKTrSs-yg2e_1X7D zQX(bbQp!=Typ=y5etLfY?1v+aT_)dEHpsO~Y}}q(K81a4hYH`)l2_HcUTolhRx12a zmM@s|xt^`bj6426E+nL@@XWlPyhHiz{x#ce*{h<zK9y78>D&CtYGH$^ZoTz}4_;p% zMHNptP?~Hdxhf~We#Uy1Lla9a1FdUaK3#BH<Qh3od&Ys99lyf7JVd{i$2;HrzI&dd zjzQ2j1rd%HQujL~e4ez(s(y(IJ(F|s?Egpliax4G{^{!bpZ3|YM6%Pi?VXrc#;$|5 zo;S6o->$i9SY2T?QM9h6VOHaswAoJ@Rho@5gw|Q=OqQQ=U+%S0@e3;(-8UK`NvFMx zj@4b0>t?9bjMY)odTD9>0i$J4!qI`=hy!vtFEBEKwcf%_8=8*4Z=d7W{H^lNxRw z5}RGRyfo5p7DM6PM<3iS-w;~!Mf%UOk1Yvzjhp(vJk`x${%<kk*vjA6SAAjXOSWdR zGhOQIBlq!+yw*O3h+98DrH8&}3%Z=$ZxQmv^N3LE&x%{Sp0|GM*!)%HtZQLHe0_>` zHs7k5;=dB^$jr5WI%W3Z+%q#xzg?IwZOvX(_tWZd_3w;{(^#U+=REZ|6>QD4?7p1f zrV`nFvv-Tc-!<!U-<nyr|Nnvm!Mj|lv%G8B?@pg0a8$YYKTG_r9rm89v-XRzT`~RV z74ZJH(yZpRW~+xk1#8s5F4<rgurxDy>g>gvR8tra8o%f@zqsP2LC|wfO9_wVTXXt< z&)ds=<X4--?daMZSD9OrKVF~U{NU!5YfdK$;)4}lYfZY$Uh-?9z^f*;^=nsmzjya| z%9D}w=BkufMy^B2=lf1a9eYdapB3b{)?9dAQYAInU2or=#^5&zt&V+Oi64$Hwwask zniak&D(Ztd=b|l}|272mT=^c-5pUxcq`={sEFsb&(3Qauy#I~vZC_!7H9KlA#W=<? zZEMV2x?B0~_sP|69-q^f`tz<{-tg&z%iIUDXYMtL7O(4$=gWGb>agRN!8aX~=^4*2 z7*>?)8qW1Uc__ngPQ9V0+CIUrKSX$itv8zV8%zn_ba;Z&?xai~vojxmm?<Bec`%x* zdh+TJ@iqUY>RA^Z%r}twADbxevd7@ax+k0d778(JH2k<FWA~)@`i(oLZMpp9sAAZc zX)T%mQdca^ea1FPs$}Moy)l`(a<iKCIhz;Em7R7~^7h%y?Tv5h&NCUu3Upj@Q>=P* zq*HPBoZ{5Kg>eZ}<w|B8O3M}T_^#C2R%G(KgZb#JgP)X|a<6i8ebSXlo501gxW`V< zReFz7TGwNDuI=V$4_`cf)bY*S$5S#?XM5b8o*2}vEI;e$;vm+k2kyjwy?T8XN9)s9 zTsrfn3!Er5IWSQs@oN11o#OK<zCHSr>%VmOM4jgL3+G!hH!h3Jds=qLU{}7uE*_t+ z2fkRC&#RboX1cL$eAo)6)!geAT{`5L!QL-yJ?Xq_mEcDn9_bfO=CZaOd~-{Vq&MnF zZgKm3-@JKu>xs(WmTfBQ4{F3ZPB(ijoL45GC*(RwB|5-v$%eUm&NFPzls0_X@_o5n z^rkw$S0}F7`@VSmbA@}-lGBroU#*_=#eZ{f*zDFz3{On=MRF`Io0B1RNBt|?EDp|> zZ!cc2;C~mS8z}SP=yu0jI^OyBn<Fh4-v8UqIW_QHl99~3-$ofJY5AOO8Pn@rc~aNE zjN2P-=5N&N!zF5_qgPg)C9tJyox!$`kIuah`Msp@{o%P;O1*v3F*S+>)@JAUxy&UP zmlV7|>|p%(#2LYmPh0<nUtPbaba&$i&dDpT1gI!j<UL${O~AV6g{XL|SBUhSexcCA zSwG`1_P&zX-I=g`n*KH~<zzQUroBzve;z7Ma%W)Iyu7Yy^B2pLZzj5AvY6PKh-7^U zX`K){IXc<$hfMlko2JfZQ$BS2sn1*ZDo6X_)kibtsWHlS1~JY3e&v{qk^GVJ*LDr_ zYWsi0gdXS4JK4Nu@1CE+e+sT>Se|*j(e}>V5S@7*JI-|V?b~M<=NB*hOv1#FZTi~} z6Qh4!FEwF$_$S!-MR7dyl#}0imhTXZklp%=wW~oz;(pbc3g6-jpJh9=+P;NoUTsYJ z6ZtAxa;;zRPgQF_>B~JfeI`DMYgNL&GGrxn)a-Qoz2?F3>sP<Ze&l4gd%oxHyG;Tz zcjw2}h)4y8yqDkq%%*5fBdeRk&n(^-x7W10Z52{lm9u`Tx%AW18z1VdoO15l_OA86 zUgo?kv3g+G!J>HHTk6~=bFpR_)x5R*j7@(8T$fY{DQka|Y|e?f7H=RK>#&@OCF%V7 zjGA*2Ue#Q+TLlH?`G45(?NGPR8{d@09a{^7b-q7JIh}u7fKe&SmG5Fk{FWOh4Ax8P zEDyeKwp*6p_F&y#$D4hRB@Z(cX<k0-vGe-&!;6n^cewpmB!uO1XZ}Km1JRRBTb@eD z?&h|=@O{aqIdA6No1Sx4*^&8*@_*ITe3ga=zfPW9GpqJZde$AmiJiM<U7xAkEIcPh zYI5pBxh)YB9@d&%o&N0XqMs4Zzn}T!py4~+kB4=Q-qqmj{)Y@#c^>Md9j~2pq+ELU zqnn&+*CS?@U(@sHc(GREy6|TQOIF2O2{N%)dw<Njuz<&WCR3A~#sT%md$gqTk|s*t zEG`k+Hg{30QDc?7?t%lqW*_=}wWlL+$?bhwwG*DYUO4=5!qaZm3%UQ?^+UB>*QT}o z3BERK`pUc=PAfvz*020iV<_o)eD4&sGkVS<YD-%Lg=W87J$;*v$N$wihgO%~WG`LD z;1%X}t^YIkk@ys$px{q$Jv1(SztXdr|HaQgTx!!-uI6vNxgzsKiQ@vD`UT$_W@~s> z{(5e*U-Yllj^D5L)MXcInD|fme=+&)HGMsE>3JVzUHiN$y|h1A|M|l6-=A}0?2>(t z68Y=HSdAwfd%^f&%b$Q<#Ze#oH_kWfG}~a-e|!3kw`ZojUDoifMmoMEA>iQO=a0@u zSndhhVZif3w<mfvi`t`}XHAhtN(ntrW(fRe<7}v4a0}@<(P~kCJ?fVbPvDGSi&?M6 zem<PzrdaA$RS{Qq>@Dx?$-7VTO=LJ1lk<G5SVb@2SCN(5XG>i$wSDokWLJEb(UdUL zk`li)C+cHA%H8+ZIB?_w)7)i|iBZ?L%A7m$=EL0QZ@=vp`?!A2LV2sEWhcIOcqm7F zJhJ@FiUV)TkF-jNdEW@Tzcnd$;o_4Gw(|O?s%k!-+3Gzh|H455ec2xjWhXcq?!VoA ztLaXZ;~53}TP!|_t-Gra-t7uKoX5LqxmN+Je5Ztd+<u|#sSzH{bzZFwH7fT)K0Dbp z+1AzVj|yUltX@*s#UHc$a8X8Oyu_YI?_^zPPZ0ll{ZC{#f1n(vRPsXBzDqpX{;zdj zIXUfOncbOJ_vk@(2J6$gU8RQ;|LnQ?*pYGh9@F-D$AlmKbhqPPwMjRYoq195Q>RB( z<(YG~97yc+Su^YQe*T1_)y;0fQ48*<U-P`4JiSm?+@g7!aQKse2f4wQ=D%NjE9}z} zmMJmU>^9~%FdefH{!+Ha^xlg0^9vcor)n>E*x(&8<<j?+EAKA0xV_6`gTV{CMGjT3 zciVr~_>q11^$bhb4$Uo#e&jX^^4YH0&7;{_a#ANtmUZ)Tm!;FZq`c=v=}aw2*|NWo z+j7B$@cg3_ychYLXxpEA`&&`r_5UqPkMXDe;@6*7c_sMP$7D;*mzS8|ry5s0sI%gC z5o&(?=5AN*I!noI4^Q%>)`u_H_;HSb#iE9_T=pH?6wbfD@Zq~T+iMG<Kdj+@zHE=q zf4nPwpJ!pL*}Z9@_Z`iTbJlJu>2T>4-KKUtp*nDbXX-Z3&BsE+C$8^!vTED1t6ir= z1?MH3EL{<_^^E5t6K>tw{kiiROHRB${PRlNM4crPsX^OfcNLwib2VUd`4C|vmlwJ9 zx4GrK{EJHsB3@2@pOjg3J3~i4vOetF<I{oHjvw85^F7P#z0vHmwT%`CNuE6>_L|p7 z*e^O%qkn%z`Z}5aCr&sg9C6Iad;j-W&`-XTN5p<57VUfb@I_qsRl7*W`pt^2jT_$@ zGk*SAC&}CS=b80CAIn&#b-Ta1$mYmaDe!nMS~b7I!actzWp_;aeUUIz>1%0AeICE{ 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 diff --git a/docs/_build/latex/MindstormsEV3Toolbox.tex b/docs/_build/latex/MindstormsEV3Toolbox.tex deleted file mode 100644 index ad54ed4..0000000 --- a/docs/_build/latex/MindstormsEV3Toolbox.tex +++ /dev/null @@ -1,1256 +0,0 @@ -% Generated by Sphinx. -\def\sphinxdocclass{report} -\newif\ifsphinxKeepOldNames \sphinxKeepOldNamestrue -\documentclass[letterpaper,10pt,english]{sphinxmanual} -\usepackage{iftex} - -\ifPDFTeX - \usepackage[utf8]{inputenc} -\fi -\ifdefined\DeclareUnicodeCharacter - \DeclareUnicodeCharacter{00A0}{\nobreakspace} -\fi -\usepackage{cmap} -\usepackage[T1]{fontenc} -\usepackage{amsmath,amssymb,amstext} -\usepackage{babel} -\usepackage{times} -\usepackage[Bjarne]{fncychap} -\usepackage{longtable} -\usepackage{sphinx} -\usepackage{multirow} -\usepackage{eqparbox} - - -\addto\captionsenglish{\renewcommand{\figurename}{Fig.\@ }} -\addto\captionsenglish{\renewcommand{\tablename}{Table }} -\SetupFloatingEnvironment{literal-block}{name=Listing } - -\addto\extrasenglish{\def\pageautorefname{page}} - -\setcounter{tocdepth}{3} - - -\title{Mindstorms EV3 Toolbox Documentation} -\date{Dec 13, 2016} -\release{v0.4-rc.10} -\author{LfB - RWTH Aachen} -\newcommand{\sphinxlogo}{} -\renewcommand{\releasename}{Release} -\makeindex - -\makeatletter -\def\PYG@reset{\let\PYG@it=\relax \let\PYG@bf=\relax% - \let\PYG@ul=\relax \let\PYG@tc=\relax% - \let\PYG@bc=\relax \let\PYG@ff=\relax} -\def\PYG@tok#1{\csname PYG@tok@#1\endcsname} -\def\PYG@toks#1+{\ifx\relax#1\empty\else% - \PYG@tok{#1}\expandafter\PYG@toks\fi} -\def\PYG@do#1{\PYG@bc{\PYG@tc{\PYG@ul{% - \PYG@it{\PYG@bf{\PYG@ff{#1}}}}}}} -\def\PYG#1#2{\PYG@reset\PYG@toks#1+\relax+\PYG@do{#2}} - -\expandafter\def\csname PYG@tok@gd\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} -\expandafter\def\csname PYG@tok@gu\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} -\expandafter\def\csname PYG@tok@gt\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} -\expandafter\def\csname PYG@tok@gs\endcsname{\let\PYG@bf=\textbf} -\expandafter\def\csname PYG@tok@gr\endcsname{\def\PYG@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} -\expandafter\def\csname PYG@tok@cm\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} -\expandafter\def\csname PYG@tok@vg\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} -\expandafter\def\csname PYG@tok@vi\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} -\expandafter\def\csname PYG@tok@mh\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} -\expandafter\def\csname PYG@tok@cs\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}\def\PYG@bc##1{\setlength{\fboxsep}{0pt}\colorbox[rgb]{1.00,0.94,0.94}{\strut ##1}}} -\expandafter\def\csname PYG@tok@ge\endcsname{\let\PYG@it=\textit} -\expandafter\def\csname PYG@tok@vc\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} -\expandafter\def\csname PYG@tok@il\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} -\expandafter\def\csname PYG@tok@go\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.20,0.20,0.20}{##1}}} -\expandafter\def\csname PYG@tok@cp\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\expandafter\def\csname PYG@tok@gi\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} -\expandafter\def\csname PYG@tok@gh\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} -\expandafter\def\csname PYG@tok@ni\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.84,0.33,0.22}{##1}}} -\expandafter\def\csname PYG@tok@nl\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.13,0.44}{##1}}} -\expandafter\def\csname PYG@tok@nn\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.05,0.52,0.71}{##1}}} -\expandafter\def\csname PYG@tok@no\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.38,0.68,0.84}{##1}}} -\expandafter\def\csname PYG@tok@na\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\expandafter\def\csname PYG@tok@nb\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\expandafter\def\csname PYG@tok@nc\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.05,0.52,0.71}{##1}}} -\expandafter\def\csname PYG@tok@nd\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.33,0.33,0.33}{##1}}} -\expandafter\def\csname PYG@tok@ne\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\expandafter\def\csname PYG@tok@nf\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.02,0.16,0.49}{##1}}} -\expandafter\def\csname PYG@tok@si\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.44,0.63,0.82}{##1}}} -\expandafter\def\csname PYG@tok@s2\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\expandafter\def\csname PYG@tok@nt\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.02,0.16,0.45}{##1}}} -\expandafter\def\csname PYG@tok@nv\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.38,0.84}{##1}}} -\expandafter\def\csname PYG@tok@s1\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\expandafter\def\csname PYG@tok@ch\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} -\expandafter\def\csname PYG@tok@m\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} -\expandafter\def\csname PYG@tok@gp\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.78,0.36,0.04}{##1}}} -\expandafter\def\csname PYG@tok@sh\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\expandafter\def\csname PYG@tok@ow\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\expandafter\def\csname PYG@tok@sx\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.78,0.36,0.04}{##1}}} -\expandafter\def\csname PYG@tok@bp\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\expandafter\def\csname PYG@tok@c1\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} -\expandafter\def\csname PYG@tok@o\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} -\expandafter\def\csname PYG@tok@kc\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\expandafter\def\csname PYG@tok@c\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} -\expandafter\def\csname PYG@tok@mf\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} -\expandafter\def\csname PYG@tok@err\endcsname{\def\PYG@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}} -\expandafter\def\csname PYG@tok@mb\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} -\expandafter\def\csname PYG@tok@ss\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.32,0.47,0.09}{##1}}} -\expandafter\def\csname PYG@tok@sr\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.14,0.33,0.53}{##1}}} -\expandafter\def\csname PYG@tok@mo\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} -\expandafter\def\csname PYG@tok@kd\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\expandafter\def\csname PYG@tok@mi\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}} -\expandafter\def\csname PYG@tok@kn\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\expandafter\def\csname PYG@tok@cpf\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}} -\expandafter\def\csname PYG@tok@kr\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\expandafter\def\csname PYG@tok@s\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\expandafter\def\csname PYG@tok@kp\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\expandafter\def\csname PYG@tok@w\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} -\expandafter\def\csname PYG@tok@kt\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.56,0.13,0.00}{##1}}} -\expandafter\def\csname PYG@tok@sc\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\expandafter\def\csname PYG@tok@sb\endcsname{\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\expandafter\def\csname PYG@tok@k\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}} -\expandafter\def\csname PYG@tok@se\endcsname{\let\PYG@bf=\textbf\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} -\expandafter\def\csname PYG@tok@sd\endcsname{\let\PYG@it=\textit\def\PYG@tc##1{\textcolor[rgb]{0.25,0.44,0.63}{##1}}} - -\def\PYGZbs{\char`\\} -\def\PYGZus{\char`\_} -\def\PYGZob{\char`\{} -\def\PYGZcb{\char`\}} -\def\PYGZca{\char`\^} -\def\PYGZam{\char`\&} -\def\PYGZlt{\char`\<} -\def\PYGZgt{\char`\>} -\def\PYGZsh{\char`\#} -\def\PYGZpc{\char`\%} -\def\PYGZdl{\char`\$} -\def\PYGZhy{\char`\-} -\def\PYGZsq{\char`\'} -\def\PYGZdq{\char`\"} -\def\PYGZti{\char`\~} -% for compatibility with earlier versions -\def\PYGZat{@} -\def\PYGZlb{[} -\def\PYGZrb{]} -\makeatother - -\renewcommand\PYGZsq{\textquotesingle} - -\begin{document} - -\maketitle -\tableofcontents -\phantomsection\label{index::doc} - - -Contents: -\phantomsection\label{source:module-source}\index{source (module)} - -\chapter{EV3} -\label{source:ev3}\label{source::doc}\label{source:toolbox-for-controlling-lego-mindstorms-ev3-with-matlab}\index{EV3 (class in source)} - -\begin{fulllineitems} -\phantomsection\label{source:source.EV3}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{source.}\sphinxbfcode{EV3}}{\emph{varargin}}{} -High-level class to work with physical bricks. - -This is the `central' class (from user's view) when working with this toolbox. It -delivers a convenient interface for creating a connection to the brick and sending -commands to it. An EV3-object creates 4 Motor- and 4 Sensor-objects, one for each port. -\paragraph{Notes} -\begin{itemize} -\item {} -Creating multiple EV3 objects and connecting them to different physical bricks has not -been thoroughly tested yet, but seems to work on a first glance. - -\end{itemize} -\index{motorA (source.EV3 attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.EV3.motorA}\pysigline{\sphinxbfcode{motorA}} -\emph{Motor} -- Motor-object interfacing port A - -\end{fulllineitems} - -\index{motorB (source.EV3 attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.EV3.motorB}\pysigline{\sphinxbfcode{motorB}} -\emph{Motor} -- Motor-object interfacing port B - -\end{fulllineitems} - -\index{motorC (source.EV3 attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.EV3.motorC}\pysigline{\sphinxbfcode{motorC}} -\emph{Motor} -- Motor-object interfacing port C - -\end{fulllineitems} - -\index{motorD (source.EV3 attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.EV3.motorD}\pysigline{\sphinxbfcode{motorD}} -\emph{Motor} -- Motor-object interfacing port D - -\end{fulllineitems} - -\index{sensor1 (source.EV3 attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.EV3.sensor1}\pysigline{\sphinxbfcode{sensor1}} -\emph{Sensor} -- Motor-object interfacing port 1 - -\end{fulllineitems} - -\index{sensor2 (source.EV3 attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.EV3.sensor2}\pysigline{\sphinxbfcode{sensor2}} -\emph{Sensor} -- Motor-object interfacing port 2 - -\end{fulllineitems} - -\index{sensor3 (source.EV3 attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.EV3.sensor3}\pysigline{\sphinxbfcode{sensor3}} -\emph{Sensor} -- Motor-object interfacing port 3 - -\end{fulllineitems} - -\index{sensor4 (source.EV3 attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.EV3.sensor4}\pysigline{\sphinxbfcode{sensor4}} -\emph{Sensor} -- Motor-object interfacing port 4 - -\end{fulllineitems} - -\index{debug (source.EV3 attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.EV3.debug}\pysigline{\sphinxbfcode{debug}} -\emph{numeric in \{0,1,2\}} -- Debug mode. \emph{{[}WRITABLE{]}} -\begin{itemize} -\item {} -0: Debug turned off - -\item {} -1: Debug turned on for EV3-object -\textgreater{} enables feedback in the console about what firmware-commands have been called when using a method - -\item {} -2: Low-level-Debug turned on -\textgreater{} each packet sent and received is printed to the console - -\end{itemize} - -\end{fulllineitems} - -\index{batteryMode (source.EV3 attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.EV3.batteryMode}\pysigline{\sphinxbfcode{batteryMode}} -\emph{string in \{`Percentage', `Voltage'\}} -- Mode for reading battery charge. -\emph{{[}WRITABLE{]}} - -\end{fulllineitems} - -\index{batteryValue (source.EV3 attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.EV3.batteryValue}\pysigline{\sphinxbfcode{batteryValue}} -\emph{numeric} -- Current battery charge. Depending on batteryMode, the reading -is either in percentage or voltage. \emph{{[}READ-ONLY{]}} - -\end{fulllineitems} - -\index{isConnected (source.EV3 attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.EV3.isConnected}\pysigline{\sphinxbfcode{isConnected}} -\emph{bool} -- True if virtual brick-object is connected to physical one. \emph{{[}READ-ONLY{]}} - -\end{fulllineitems} - -\paragraph{Examples} - -b = EV3(); -b.connect(`usb'); -ma = b.motorA; -ma.setProperties(`power', 50, `limitValue', 720); -ma.start(); -\% fun -b.sensor1.value -b.waitFor(); -b.beep(); -delete b; -\index{beep() (source.EV3 method)} - -\begin{fulllineitems} -\phantomsection\label{source:source.EV3.beep}\pysiglinewithargsret{\sphinxbfcode{beep}}{\emph{ev3}}{} -Plays a `beep'-tone on brick. -\paragraph{Notes} -\begin{itemize} -\item {} -This equals playTone(10, 1000, 100) (Wraps the same opCode in comm-layer) - -\end{itemize} -\paragraph{Example} - -b = EV3(); -b.connect(`bt', `serPort', `/dev/rfcomm0'); -b.beep(); - -\end{fulllineitems} - -\index{connect() (source.EV3 method)} - -\begin{fulllineitems} -\phantomsection\label{source:source.EV3.connect}\pysiglinewithargsret{\sphinxbfcode{connect}}{\emph{ev3}, \emph{varargin}}{} -Connects EV3-object and its Motors and Sensors to physical brick. -\begin{quote}\begin{description} -\item[{Parameters}] \leavevmode\begin{itemize} -\item {} -\textbf{\texttt{connectionType}} (\emph{\texttt{string in \{'bt', 'usb'\}}}) -- Connection type - -\item {} -\textbf{\texttt{serPort}} (\emph{\texttt{string in \{'/dev/rfcomm1', '/dev/rfcomm2', ...\}}}) -- Path to serial port -(if `bt') - -\item {} -\textbf{\texttt{beep}} (\emph{\texttt{bool}}) -- If true, EV3 beeps if connection has been established - -\end{itemize} - -\end{description}\end{quote} -\paragraph{Examples} - -\% Setup bluetooth connection via com-port 0 -b = EV3(); -b.connect(`bt', `serPort', `/dev/rfcomm0'); -\% Setup usb connection, beep when connection has been established -b = EV3(); -b.connect(`usb', `beep', `on', ); - -Check connection - -\end{fulllineitems} - -\index{disconnect() (source.EV3 method)} - -\begin{fulllineitems} -\phantomsection\label{source:source.EV3.disconnect}\pysiglinewithargsret{\sphinxbfcode{disconnect}}{\emph{ev3}}{} -Disconnects EV3-object and its Motors and Sensors from physical brick. -\paragraph{Notes} -\begin{itemize} -\item {} -Gets called automatically when EV3-object is destroyed. - -\end{itemize} -\paragraph{Example} - -b = EV3(); -b.connect(`bt', `serPort', `/dev/rfcomm0'); -\% do stuff -b.disconnect(); - -Reset motors and sensors before disconnecting - -\end{fulllineitems} - -\index{playTone() (source.EV3 method)} - -\begin{fulllineitems} -\phantomsection\label{source:source.EV3.playTone}\pysiglinewithargsret{\sphinxbfcode{playTone}}{\emph{ev3}, \emph{volume}, \emph{frequency}, \emph{duration}}{} -Plays tone on brick. -\begin{quote}\begin{description} -\item[{Parameters}] \leavevmode\begin{itemize} -\item {} -\textbf{\texttt{volume}} (\emph{\texttt{numeric in {[}0, 100{]}}}) -- in percent - -\item {} -\textbf{\texttt{frequency}} (\emph{\texttt{numeric in {[}250, 10000{]}}}) -- in Hertz - -\item {} -\textbf{\texttt{duration}} (\emph{\texttt{numeric \textgreater{}0}}) -- in milliseconds - -\end{itemize} - -\end{description}\end{quote} -\paragraph{Example} - -b = EV3(); -b.connect(`bt', `serPort', `/dev/rfcomm0'); -b.playTone(40, 5000, 1000); \% Plays tone with 40\% volume and 5000Hz for 1 -second. - -\end{fulllineitems} - -\index{setProperties() (source.EV3 method)} - -\begin{fulllineitems} -\phantomsection\label{source:source.EV3.setProperties}\pysiglinewithargsret{\sphinxbfcode{setProperties}}{\emph{ev3}, \emph{varargin}}{} -Set multiple EV3 properties at once using MATLAB's inputParser. -\begin{quote}\begin{description} -\item[{Parameters}] \leavevmode\begin{itemize} -\item {} -\textbf{\texttt{debug}} (\emph{\texttt{numeric in \{0,1,2\}}}) -- see EV3.debug \emph{{[}OPTIONAL{]}} - -\item {} -\textbf{\texttt{batteryMode}} (\emph{\texttt{string in \{'Voltage'/'Percentage'\}}}) -- see EV3.batteryMode \emph{{[}OPTIONAL{]}} - -\end{itemize} - -\end{description}\end{quote} -\paragraph{Example} - -b = EV3(); -b.connect(`bt', `serPort', `/dev/rfcomm0'); -b.setProperties(`debug', `on', `batteryMode', `Voltage'); -\% Instead of: b.debug = `on'; b.batteryMode = `Voltage'; - -See also EV3.DEBUG, EV3.BATTERYMODE - -\end{fulllineitems} - -\index{stopAllMotors() (source.EV3 method)} - -\begin{fulllineitems} -\phantomsection\label{source:source.EV3.stopAllMotors}\pysiglinewithargsret{\sphinxbfcode{stopAllMotors}}{\emph{ev3}}{} -Sends a stop-command to all motor-ports - -\end{fulllineitems} - -\index{stopTone() (source.EV3 method)} - -\begin{fulllineitems} -\phantomsection\label{source:source.EV3.stopTone}\pysiglinewithargsret{\sphinxbfcode{stopTone}}{\emph{ev3}}{} -Stops tone currently played -\paragraph{Example} - -b = EV3(); -b.connect(`bt', `serPort', `/dev/rfcomm0'); -b.playTone(10,100,100000000); \% Accidentally given wrong tone duration :) -b.stopTone(); \% Stops tone immediately. - -\end{fulllineitems} - -\index{tonePlayed() (source.EV3 method)} - -\begin{fulllineitems} -\phantomsection\label{source:source.EV3.tonePlayed}\pysiglinewithargsret{\sphinxbfcode{tonePlayed}}{\emph{ev3}}{} -Tests if tone is currently played. -\begin{quote}\begin{description} -\item[{Returns}] \leavevmode -\textbf{status} -- True if a tone is being played - -\item[{Return type}] \leavevmode -bool - -\end{description}\end{quote} -\begin{description} -\item[{Example}] \leavevmode -b = EV3(); -b.connect(`bt', `serPort', `/dev/rfcomm0'); -b.playTone(10, 100, 1000); -pause(0.5); -b.tonePlayed() -\textgreater{} Outputs 1 to console. - -\end{description} - -\end{fulllineitems} - - -\end{fulllineitems} - - - -\chapter{Motor} -\label{source:motor}\index{Motor (class in source)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Motor}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{source.}\sphinxbfcode{Motor}}{\emph{varargin}}{} -High-level class to work with motors. - -This class is supposed to ease the use of the brick's motors. It is possible to set all -kinds of parameters, request the current status of the motor ports and of course send -commands to the brick to be executed on the respective port. -\paragraph{Notes} -\begin{itemize} -\item {} -You don't need to create instances of this class. The EV3-class automatically creates -instances for each motor port, and you can work with them via the EV3-object. - -\item {} -The Motor-class represents motor ports, not individual motors! - -\item {} -If you start a motor with power=0, the internal state will still be set to -`isRunning' - -\end{itemize} -\index{power (source.Motor attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Motor.power}\pysigline{\sphinxbfcode{power}} -\emph{numeric in {[}-100, 100{]}} -- Power level of motor in percent. \emph{{[}WRITABLE{]}} - -\end{fulllineitems} - -\index{speedRegulation (source.Motor attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Motor.speedRegulation}\pysigline{\sphinxbfcode{speedRegulation}} -\emph{bool} -- Speed regulation turned on or off. When turned on, motor will -try to `hold' its speed at given power level, whatever the load. In this mode, the -highest possible speed depends on the load and mostly goes up to around 70-80 (at -this point, the Brick internally input 100\% power). When turned off, motor will -constantly input the same power into the motor. The resulting speed will be -somewhat lower, depending on the load. \emph{{[}WRITABLE{]}} - -\end{fulllineitems} - -\index{smoothStart (source.Motor attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Motor.smoothStart}\pysigline{\sphinxbfcode{smoothStart}} -\emph{numeric s. t. smoothStart+smoothStop \textless{} limitValue} -- Degrees/Time -indicating how far/long the motor should smoothly start. Depending on limitMode, -the input is interpreted either in degrees or milliseconds. The first -\{smoothStart\}-milliseconds/degrees of limitValue the motor will slowly accelerate -until reaching its defined speed. \emph{{[}WRITABLE{]}} - -\end{fulllineitems} - -\index{smoothStop (source.Motor attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Motor.smoothStop}\pysigline{\sphinxbfcode{smoothStop}} -\emph{numeric s. t. smoothStart+smoothStop \textless{} limitValue} -- Degrees/Time -indicating how far/long the motor should smoothly stop. Depending on limitMode, the -input is interpreted either in degrees or milliseconds. The last -{[}smoothStop{]}-milliseconds/degrees of limitValue the motor will slowly slow down -until it has stopped. \emph{{[}WRITABLE{]}} - -\end{fulllineitems} - -\index{limitValue (source.Motor attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Motor.limitValue}\pysigline{\sphinxbfcode{limitValue}} -\emph{numeric\textgreater{}=0} -- Degrees/Time indicating how far/long the motor should run. -Depending on limitMode, the input is interpreted either in degrees or -milliseconds. \emph{{[}WRITABLE{]}} - -\end{fulllineitems} - -\index{limitMode (source.Motor attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Motor.limitMode}\pysigline{\sphinxbfcode{limitMode}} -\emph{`Tacho'\textbar{}'Time'} -- Mode for motor limit. \emph{{[}WRITABLE{]}} - -\end{fulllineitems} - -\index{brakeMode (source.Motor attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Motor.brakeMode}\pysigline{\sphinxbfcode{brakeMode}} -\emph{`Brake'\textbar{}'Coast'} -- Action done when stopping. If `Coast', the motor will (at -tacholimit, if \textasciitilde{}=0) coast to a stop. If `Brake', the motor will stop immediately -(at tacholimit, if \textasciitilde{}=0) and hold the brake. \emph{{[}WRITABLE{]}} - -\end{fulllineitems} - -\index{debug (source.Motor attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Motor.debug}\pysigline{\sphinxbfcode{debug}} -\emph{bool} -- Debug turned on or off. In debug mode, everytime a command is passed to -the sublayer (`communication layer'), there is feedback in the console about what -command has been called. \emph{{[}WRITABLE{]}} - -\end{fulllineitems} - -\index{isRunning (source.Motor attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Motor.isRunning}\pysigline{\sphinxbfcode{isRunning}} -\emph{bool} -- True if motor is running. \emph{{[}READ-ONLY{]}} - -\end{fulllineitems} - -\index{tachoCount (source.Motor attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Motor.tachoCount}\pysigline{\sphinxbfcode{tachoCount}} -\emph{numeric} -- Current tacho count. \emph{{[}READ-ONLY{]}} - -\end{fulllineitems} - -\index{currentSpeed (source.Motor attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Motor.currentSpeed}\pysigline{\sphinxbfcode{currentSpeed}} -\emph{numeric} -- Current speed of motor. If speedRegulation=on this should equal power, -otherwise it will probably be lower than that. \emph{{[}READ-ONLY{]}} - -\end{fulllineitems} - -\index{type (source.Motor attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Motor.type}\pysigline{\sphinxbfcode{type}} -\emph{DeviceType} -- Type of connected device if any. \emph{{[}READ-ONLY{]}} - -\end{fulllineitems} - -\index{internalReset() (source.Motor method)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Motor.internalReset}\pysiglinewithargsret{\sphinxbfcode{internalReset}}{\emph{motor}}{} -Resets internal tacho count. Use this if motor behaves weird (i.e. not starting at all, or not correctly -running to limitValue) - -The internal tacho count is used for positioning the motor. When the -motor is running with a tacho limit, internally it uses another counter than the -one read by tachoCount. This internal tacho count needs to be reset if you -physically change the motor's position or it coasted into a stop. If the motor's -brakemode is `Coast', this function is called automatically. -\paragraph{Notes} -\begin{itemize} -\item {} -A better name would probably be resetPosition... - -\item {} -Gets called automatically when starting the motor and the internal tacho - -\end{itemize} - -count is \textgreater{} 0 - -See also MOTOR.RESETTACHOCOUNT - -\end{fulllineitems} - -\index{resetTachoCount() (source.Motor method)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Motor.resetTachoCount}\pysiglinewithargsret{\sphinxbfcode{resetTachoCount}}{\emph{motor}}{} -Resets tachocount - -\end{fulllineitems} - -\index{setBrake() (source.Motor method)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Motor.setBrake}\pysiglinewithargsret{\sphinxbfcode{setBrake}}{\emph{motor}, \emph{brake}}{} -Apply or release brake of motor -\begin{quote}\begin{description} -\item[{Parameters}] \leavevmode -\textbf{\texttt{brake}} (\emph{\texttt{bool}}) -- If true, brake will be pulled - -\end{description}\end{quote} - -\end{fulllineitems} - -\index{setProperties() (source.Motor method)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Motor.setProperties}\pysiglinewithargsret{\sphinxbfcode{setProperties}}{\emph{motor}, \emph{varargin}}{} -Sets multiple Motor properties at once using MATLAB's inputParser. -\begin{quote}\begin{description} -\item[{Parameters}] \leavevmode\begin{itemize} -\item {} -\textbf{\texttt{debug}} (\emph{\texttt{bool}}) -- - -\item {} -\textbf{\texttt{smoothStart}} (\emph{\texttt{numeric in {[}0, limitValue{]}}}) -- - -\item {} -\textbf{\texttt{smoothStop}} (\emph{\texttt{numeric in {[}0, limitValue{]}}}) -- - -\item {} -\textbf{\texttt{speedRegulation}} (\emph{\texttt{bool}}) -- - -\item {} -\textbf{\texttt{brakeMode}} (\emph{\texttt{'Coast'\textbar{}'Brake'}}) -- - -\item {} -\textbf{\texttt{limitMode}} (\emph{\texttt{'Time'\textbar{}'Tacho'}}) -- - -\item {} -\textbf{\texttt{limitValue}} (\emph{\texttt{numeric \textgreater{} 0}}) -- - -\item {} -\textbf{\texttt{power}} (\emph{\texttt{numeric in {[}-100,100{]}}}) -- - -\item {} -\textbf{\texttt{batteryMode}} (\emph{\texttt{'Voltage'\textbar{}'Percentage'}}) -- - -\end{itemize} - -\end{description}\end{quote} -\paragraph{Example} - -b = EV3(); -b.connect(`bt', `serPort', `/dev/rfcomm0'); -b.motorA.setProperties(`debug', `on', `power', 50, `limitValue', 720, `speedRegulation', `on'); -\% Instead of: b.motorA.debug = `on'; -\% b.motorA.power = 50; -\% b.motorA.limitValue = 720; -\% b.motorA.speedRegulation = `on'; - -\end{fulllineitems} - -\index{start() (source.Motor method)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Motor.start}\pysiglinewithargsret{\sphinxbfcode{start}}{\emph{motor}}{} -Starts the motor -\paragraph{Notes} -\begin{itemize} -\item {} -Right now, alternatingly calling this function with and without tacho limit -may lead to unexpected behaviour. For example, if you run the motor without -a tacholimit for some time using Coast, then stop using Coast, and then try -to run the with a tacholimit, it will stop sooner or later than expected, -or may not even start at all. - -\item {} -(OLD)After calling one of the functions to control the motor with some kind of -limit (which is done if limit\textasciitilde{}=0), the physical brick's power/speed value for -starting without a limit (i.e. if limit==0) is reset to zero. So if you want -to control the motor without a limit after doing so with a limit, you would -have to set the power manually to the desired value again. (I don't really -know if this is deliberate or a bug, and at this point, I'm too afraid to ask.) -To avoid confusion, this is done automatically in this special case. -However, this does not even work all the time. If motor does not -start, call stop() and setPower() manually. :/ - -\end{itemize} - -Check connection and if motor is already running - -\end{fulllineitems} - -\index{stop() (source.Motor method)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Motor.stop}\pysiglinewithargsret{\sphinxbfcode{stop}}{\emph{motor}}{} -Stops the motor - -\end{fulllineitems} - -\index{syncedStart() (source.Motor method)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Motor.syncedStart}\pysiglinewithargsret{\sphinxbfcode{syncedStart}}{\emph{motor}, \emph{syncMotor}, \emph{varargin}}{} -Starts this motor synchronized with another - -This motor acts as a `master', meaning that the synchronized control is done via -this one. When syncedStart is called, the master sets some of the slave's -(syncMotor) properties to keep it consistent with the physical brick. So, for -example, changing the power on the master motor will take effect -on the slave as soon as this method is called. -The following parameters will be affected on the slave: power, brakeMode, -limitValue, speedRegulation -\begin{quote}\begin{description} -\item[{Parameters}] \leavevmode\begin{itemize} -\item {} -\textbf{\texttt{syncMotor}} (\emph{\texttt{Motor}}) -- the motor-object to sync with - -\item {} -\textbf{\texttt{turnRatio}} (\emph{\texttt{numeric in {[}-200,200{]}}}) -- -\emph{{[}OPTIONAL{]}} (Excerpt of Firmware-comments, in c\_output.c): -``Turn ratio is how tight you turn and to what direction you turn. -\begin{itemize} -\item {} -0 value is moving straight forward - -\item {} -Negative values turn to the left - -\item {} -Positive values turn to the right - -\item {} -Value -100 stops the left motor - -\item {} -Value +100 stops the right motor - -\item {} -Values less than -100 makes the left motor run the opposite direction of the right motor (Spin) - -\item {} -Values greater than +100 makes the right motor run the opposite direction of the left motor (Spin)'' - -\end{itemize} - - -\end{itemize} - -\end{description}\end{quote} -\paragraph{Notes} -\begin{itemize} -\item {} -This is right now a pretty `heavy' function, as it tests if both motors are -connected AND aren't running, wasting four packets, keep that in mind - -\item {} -It is necessary to call syncedStop() and not stop() for stopping the motors -(otherwise the sync-state cannot be exited correctly) - -\end{itemize} -\paragraph{Example} - -b = EV3(); -b.connect(`usb'); -m = b.motorA; -slave = b.motorB; -m.power = 50; -m.syncedStart(slave); -\% Do stuff -m.syncedStop(); - -\end{fulllineitems} - -\index{syncedStop() (source.Motor method)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Motor.syncedStop}\pysiglinewithargsret{\sphinxbfcode{syncedStop}}{\emph{motor}}{} -Stops both motors previously started with syncedStart. - -See also MOTOR.SYNCEDSTART - -\end{fulllineitems} - -\index{waitFor() (source.Motor method)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Motor.waitFor}\pysiglinewithargsret{\sphinxbfcode{waitFor}}{\emph{motor}}{} -Stops execution of program as long as motor is running -\paragraph{Notes} -\begin{itemize} -\item {} -(OLD)This one's a bit tricky. The opCode OutputReady makes the brick stop sending -responses until the motor has stopped. For security reasons, in this toolbox -there is an internal timeout for receiving messages from the brick. It raises -an error if a reply takes too long, which would happen in this case. As a -workaround, there is an infinite loop that catches errors from outputReady and -continues then, until outputReady will actually finish without an error. - -\item {} -(OLD)OutputReady (like OutputTest in isRunning) sometimes doesn't work. If -outputReady returns in less than a second, another while-loop iterates until -the motor has stopped, this time using motor.isRunning() (this only works as -long as not both OutputTest and OutputReady are buggy). - -\item {} -(OLD)Workaround: Poll isRunning (which itself return (speed\textgreater{}0)) until it -is false (No need to check if motor is connected as speed correctly -returns 0 if it's not) - -\end{itemize} - -\end{fulllineitems} - - -\end{fulllineitems} - - - -\chapter{Sensor} -\label{source:sensor}\index{Sensor (class in source)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Sensor}\pysiglinewithargsret{\sphinxstrong{class }\sphinxcode{source.}\sphinxbfcode{Sensor}}{\emph{varargin}}{} -High-level class to work with sensors. - -The Sensor-class facilitates the communication with sensors. This mainly consists of -reading the sensor's type and current value in a specified mode. -\paragraph{Notes} -\begin{itemize} -\item {} -You don't need to create instances of this class. The EV3-class automatically creates -instances for each sensor port, and you can work with them via the EV3-object. - -\item {} -The Sensor-class represents sensor ports, not individual sensors! - -\end{itemize} -\index{mode (source.Sensor attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Sensor.mode}\pysigline{\sphinxbfcode{mode}} -\emph{DeviceMode.\{Type\}} -- Sensor mode in which the value will be read. By default, -mode is set to DeviceMode.Default.Undefined. Once a physical sensor is connected -to the port \emph{and} the physical Brick is connected to the EV3-object, the allowed -mode and the default mode for a Sensor-object are the following (depending on the -sensor type): \emph{{[}WRITABLE{]}} -\begin{itemize} -\item {} \begin{description} -\item[{Touch-Sensor:}] \leavevmode\begin{itemize} -\item {} -DeviceMode.Touch.Pushed \emph{{[}Default{]}} - -\item {} -DeviceMode.Touch.Bumps - -\end{itemize} - -\end{description} - -\item {} \begin{description} -\item[{Ultrasonic-Sensor:}] \leavevmode\begin{itemize} -\item {} -DeviceMode.UltraSonic.DistCM \emph{{[}Default{]}} - -\item {} -DeviceMode.UltraSonic.DistIn - -\item {} -DeviceMode.UltraSonic.Listen - -\end{itemize} - -\end{description} - -\item {} \begin{description} -\item[{Color-Sensor:}] \leavevmode\begin{itemize} -\item {} -DeviceMode.Color.Reflect \emph{{[}Default{]}} - -\item {} -DeviceMode.Color.Ambient - -\item {} -DeviceMode.Color.Col - -\end{itemize} - -\end{description} - -\item {} \begin{description} -\item[{Gyro-Sensor:}] \leavevmode\begin{itemize} -\item {} -DeviceMode.Gyro.Angular \emph{{[}Default{]}} - -\item {} -DeviceMode.Gyro.Rate - -\end{itemize} - -\end{description} - -\item {} \begin{description} -\item[{Infrared-Sensor:}] \leavevmode\begin{itemize} -\item {} -DeviceMode.InfraRed.Prox \emph{{[}Default{]}} - -\item {} -DeviceMode.InfraRed.Seek - -\item {} -DeviceMode.InfraRed.Remote - -\end{itemize} - -\end{description} - -\item {} \begin{description} -\item[{NXTColor-Sensor:}] \leavevmode\begin{itemize} -\item {} -DeviceMode.NXTColor.Reflect \emph{{[}Default{]}} - -\item {} -DeviceMode.NXTColor.Ambient - -\item {} -DeviceMode.NXTColor.Color - -\item {} -DeviceMode.NXTColor.Green - -\item {} -DeviceMode.NXTColor.Blue - -\item {} -DeviceMode.NXTColor.Raw - -\end{itemize} - -\end{description} - -\item {} \begin{description} -\item[{NXTLight-Sensor:}] \leavevmode\begin{itemize} -\item {} -DeviceMode.NXTLight.Reflect \emph{{[}Default{]}} - -\item {} -DeviceMode.NXTLight.Ambient - -\end{itemize} - -\end{description} - -\item {} \begin{description} -\item[{NXTSound-Sensor:}] \leavevmode\begin{itemize} -\item {} -DeviceMode.NXTSound.DB \emph{{[}Default{]}} - -\item {} -DeviceMode.NXTSound.DBA - -\end{itemize} - -\end{description} - -\item {} \begin{description} -\item[{NXTTemperature-Sensor}] \leavevmode\begin{itemize} -\item {} -DeviceMode.NXTTemperature.C \emph{{[}Default{]}} - -\item {} -DeviceMode.NXTTemperature.F - -\end{itemize} - -\end{description} - -\item {} \begin{description} -\item[{NXTTouch-Sensor:}] \leavevmode\begin{itemize} -\item {} -DeviceMode.NXTTouch.Pushed \emph{{[}Default{]}} - -\item {} -DeviceMode.NXTTouch.Bumps - -\end{itemize} - -\end{description} - -\item {} \begin{description} -\item[{NXTUltraSonic-Sensor:}] \leavevmode\begin{itemize} -\item {} -DeviceMode.NXTUltraSonic.CM \emph{{[}Default{]}} - -\item {} -DeviceMode.NXTUltraSonic.IN - -\end{itemize} - -\end{description} - -\item {} \begin{description} -\item[{HTAccelerometer-Sensor:}] \leavevmode\begin{itemize} -\item {} -DeviceMode.HTAccelerometer.Acceleration \emph{{[}Default{]}} - -\item {} -DeviceMode.HTAccelerometer.AccelerationAllAxes - -\end{itemize} - -\end{description} - -\item {} \begin{description} -\item[{HTCompass-Sensor:}] \leavevmode\begin{itemize} -\item {} -DeviceMode.HTCompass.Degrees \emph{{[}Default{]}} - -\end{itemize} - -\end{description} - -\item {} \begin{description} -\item[{HTColor-Sensor:}] \leavevmode\begin{itemize} -\item {} -DeviceMode.HTColor.Col \emph{{[}Default{]}} - -\item {} -DeviceMode.HTColor.Red - -\item {} -DeviceMode.HTColor.Green - -\item {} -DeviceMode.HTColor.Blue - -\item {} -DeviceMode.HTColor.White - -\item {} -DeviceMode.HTColor.Raw - -\item {} -DeviceMode.HTColor.Nr, - -\item {} -DeviceMode.HTColor.All - -\end{itemize} - -\end{description} - -\end{itemize} - -\end{fulllineitems} - -\index{debug (source.Sensor attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Sensor.debug}\pysigline{\sphinxbfcode{debug}} -\emph{bool} -- Debug turned on or off. In debug mode, everytime a command is passed to -the sublayer (`communication layer'), there is feedback in the console about what -command has been called. \emph{{[}WRITABLE{]}} - -\end{fulllineitems} - -\index{value (source.Sensor attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Sensor.value}\pysigline{\sphinxbfcode{value}} -\emph{numeric} -- Value read from hysical sensor. What the value represents depends on -sensor.mode. \emph{{[}READ-ONLY{]}} - -\end{fulllineitems} - -\index{type (source.Sensor attribute)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Sensor.type}\pysigline{\sphinxbfcode{type}} -\emph{DeviceType} -- Type of physical sensor connected to the port. Possible types are: {[}READ-ONLY{]} -\begin{itemize} -\item {} -DeviceType.NXTTouch - -\item {} -DeviceType.NXTLight - -\item {} -DeviceType.NXTSound - -\item {} -DeviceType.NXTColor - -\item {} -DeviceType.NXTUltraSonic - -\item {} -DeviceType.NXTTemperature - -\item {} -DeviceType.LargeMotor - -\item {} -DeviceType.MediumMotor - -\item {} -DeviceType.Touch - -\item {} -DeviceType.Color - -\item {} -DeviceType.UltraSonic - -\item {} -DeviceType.Gyro - -\item {} -DeviceType.InfraRed - -\item {} -DeviceType.HTColor - -\item {} -DeviceType.HTCompass - -\item {} -DeviceType.HTAccelerometer - -\item {} -DeviceType.Unknown - -\item {} -DeviceType.None - -\item {} -DeviceType.Error - -\end{itemize} - -\end{fulllineitems} - -\index{reset() (source.Sensor method)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Sensor.reset}\pysiglinewithargsret{\sphinxbfcode{reset}}{\emph{sensor}}{} -Resets value on sensor -\paragraph{Notes} -\begin{itemize} -\item {} -This clears ALL the sensors right now, no other Op-Code available... :( - -\end{itemize} - -\end{fulllineitems} - -\index{setProperties() (source.Sensor method)} - -\begin{fulllineitems} -\phantomsection\label{source:source.Sensor.setProperties}\pysiglinewithargsret{\sphinxbfcode{setProperties}}{\emph{sensor}, \emph{varargin}}{} -Sets multiple Sensor properties at once using MATLAB's inputParser. -\begin{quote}\begin{description} -\item[{Parameters}] \leavevmode\begin{itemize} -\item {} -\textbf{\texttt{debug}} (\emph{\texttt{bool}}) -- - -\item {} -\textbf{\texttt{mode}} (\emph{\texttt{DeviceMode.\{Type\}}}) -- - -\end{itemize} - -\end{description}\end{quote} -\paragraph{Example} - -b = EV3(); -b.connect(`bt', `serPort', `/dev/rfcomm0'); -b.sensor1.setProperties(`debug', `on', `mode', DeviceMode.Color.Ambient); -\% Instead of: b.sensor1.debug = `on'; -\% b.sensor1.mode = DeviceMode.Color.Ambient; - -\end{fulllineitems} - - -\end{fulllineitems} - - - -\chapter{Indices and tables} -\label{index:indices-and-tables}\begin{itemize} -\item {} -\emph{genindex} - -\item {} -\emph{modindex} - -\item {} -\emph{search} - -\end{itemize} - - -\renewcommand{\indexname}{MATLAB Module Index} -\begin{theindex} -\def\bigletter#1{{\Large\sffamily#1}\nopagebreak\vspace{1mm}} -\bigletter{s} -\item {\texttt{source}}, \pageref{source:module-source} -\end{theindex} - -\renewcommand{\indexname}{Index} -\printindex -\end{document} diff --git a/docs/_build/latex/MindstormsEV3Toolbox.toc b/docs/_build/latex/MindstormsEV3Toolbox.toc deleted file mode 100644 index 0a57b61..0000000 --- a/docs/_build/latex/MindstormsEV3Toolbox.toc +++ /dev/null @@ -1,27 +0,0 @@ -\select@language {english} -\contentsline {chapter}{\numberline {1}EV3}{3}{chapter.1} -\contentsline {paragraph}{Notes}{3}{paragraph*.5} -\contentsline {paragraph}{Examples}{4}{paragraph*.18} -\contentsline {paragraph}{Notes}{4}{paragraph*.20} -\contentsline {paragraph}{Example}{4}{paragraph*.21} -\contentsline {paragraph}{Examples}{4}{paragraph*.23} -\contentsline {paragraph}{Notes}{4}{paragraph*.25} -\contentsline {paragraph}{Example}{5}{paragraph*.26} -\contentsline {paragraph}{Example}{5}{paragraph*.28} -\contentsline {paragraph}{Example}{5}{paragraph*.30} -\contentsline {paragraph}{Example}{5}{paragraph*.33} -\contentsline {chapter}{\numberline {2}Motor}{7}{chapter.2} -\contentsline {paragraph}{Notes}{7}{paragraph*.36} -\contentsline {paragraph}{Notes}{8}{paragraph*.50} -\contentsline {paragraph}{Example}{9}{paragraph*.54} -\contentsline {paragraph}{Notes}{9}{paragraph*.56} -\contentsline {paragraph}{Notes}{10}{paragraph*.59} -\contentsline {paragraph}{Example}{10}{paragraph*.60} -\contentsline {paragraph}{Notes}{10}{paragraph*.63} -\contentsline {chapter}{\numberline {3}Sensor}{11}{chapter.3} -\contentsline {paragraph}{Notes}{11}{paragraph*.65} -\contentsline {paragraph}{Notes}{13}{paragraph*.71} -\contentsline {paragraph}{Example}{14}{paragraph*.73} -\contentsline {chapter}{\numberline {4}Indices and tables}{15}{chapter.4} -\contentsline {chapter}{MATLAB Module Index}{17}{section*.74} -\contentsline {chapter}{Index}{19}{section*.75} diff --git a/docs/_build/latex/fncychap.sty b/docs/_build/latex/fncychap.sty deleted file mode 100644 index 9a56c04..0000000 --- a/docs/_build/latex/fncychap.sty +++ /dev/null @@ -1,683 +0,0 @@ -%%% Copyright Ulf A. Lindgren -%%% -%%% Note Premission is granted to modify this file under -%%% the condition that it is saved using another -%%% file and package name. -%%% -%%% Revision 1.1 (1997) -%%% -%%% Jan. 8th Modified package name base date option -%%% Jan. 22th Modified FmN and FmTi for error in book.cls -%%% \MakeUppercase{#}->{\MakeUppercase#} -%%% Apr. 6th Modified Lenny option to prevent undesired -%%% skip of line. -%%% Nov. 8th Fixed \@chapapp for AMS -%%% -%%% Revision 1.2 (1998) -%%% -%%% Feb. 11th Fixed appendix problem related to Bjarne -%%% Aug. 11th Fixed problem related to 11pt and 12pt -%%% suggested by Tomas Lundberg. THANKS! -%%% -%%% Revision 1.3 (2004) -%%% Sep. 20th problem with frontmatter, mainmatter and -%%% backmatter, pointed out by Lapo Mori -%%% -%%% Revision 1.31 (2004) -%%% Sep. 21th problem with the Rejne definition streched text -%%% caused ugly gaps in the vrule aligned with the title -%%% text. Kindly pointed out to me by Hendri Adriaens -%%% -%%% Revision 1.32 (2005) -%%% Jun. 23th compatibility problem with the KOMA class 'scrbook.cls' -%%% a remedy is a redefinition of '\@schapter' in -%%% line with that used in KOMA. The problem was pointed -%%% out to me by Mikkel Holm Olsen -%%% -%%% Revision 1.33 (2005) -%%% Aug. 9th misspelled ``TWELV'' corrected, the error was pointed -%%% out to me by George Pearson -%%% -%%% Revision 1.34 (2007) -%%% Added an alternative to Lenny provided by Peter -%%% Osborne (2005-11-28) -%%% Corrected front, main and back matter, based on input -%%% from Bas van Gils (2006-04-24) -%%% Jul. 30th Added Bjornstrup option provided by Jean-Marc -%%% Francois (2007-01-05). -%%% Reverted to \MakeUppercase{#} see rev 1.1, solved -%%% problem with MakeUppercase and MakeLowercase pointed -%%% out by Marco Feuerstein (2007-06-06) - - -%%% Last modified Jul. 2007 - -\NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesPackage{fncychap} - [2007/07/30 v1.34 - LaTeX package (Revised chapters)] - -%%%% For conditional inclusion of color -\newif\ifusecolor -\usecolorfalse - - - -%%%% DEFINITION OF Chapapp variables -\newcommand{\CNV}{\huge\bfseries} -\newcommand{\ChNameVar}[1]{\renewcommand{\CNV}{#1}} - - -%%%% DEFINITION OF TheChapter variables -\newcommand{\CNoV}{\huge\bfseries} -\newcommand{\ChNumVar}[1]{\renewcommand{\CNoV}{#1}} - -\newif\ifUCN -\UCNfalse -\newif\ifLCN -\LCNfalse -\def\ChNameLowerCase{\LCNtrue\UCNfalse} -\def\ChNameUpperCase{\UCNtrue\LCNfalse} -\def\ChNameAsIs{\UCNfalse\LCNfalse} - -%%%%% Fix for AMSBook 971008 - -\@ifundefined{@chapapp}{\let\@chapapp\chaptername}{} - - -%%%%% Fix for Bjarne and appendix 980211 - -\newif\ifinapp -\inappfalse -\renewcommand\appendix{\par - \setcounter{chapter}{0}% - \setcounter{section}{0}% - \inapptrue% - \renewcommand\@chapapp{\appendixname}% - \renewcommand\thechapter{\@Alph\c@chapter}} - -%%%%% Fix for frontmatter, mainmatter, and backmatter 040920 - -\@ifundefined{@mainmatter}{\newif\if@mainmatter \@mainmattertrue}{} - -%%%%% - - - -\newcommand{\FmN}[1]{% -\ifUCN - {\MakeUppercase{#1}}\LCNfalse -\else - \ifLCN - {\MakeLowercase{#1}}\UCNfalse - \else #1 - \fi -\fi} - - -%%%% DEFINITION OF Title variables -\newcommand{\CTV}{\Huge\bfseries} -\newcommand{\ChTitleVar}[1]{\renewcommand{\CTV}{#1}} - -%%%% DEFINITION OF the basic rule width -\newlength{\RW} -\setlength{\RW}{1pt} -\newcommand{\ChRuleWidth}[1]{\setlength{\RW}{#1}} - -\newif\ifUCT -\UCTfalse -\newif\ifLCT -\LCTfalse -\def\ChTitleLowerCase{\LCTtrue\UCTfalse} -\def\ChTitleUpperCase{\UCTtrue\LCTfalse} -\def\ChTitleAsIs{\UCTfalse\LCTfalse} -\newcommand{\FmTi}[1]{% -\ifUCT - {\MakeUppercase{#1}}\LCTfalse -\else - \ifLCT - {\MakeLowercase{#1}}\UCTfalse - \else {#1} - \fi -\fi} - - - -\newlength{\mylen} -\newlength{\myhi} -\newlength{\px} -\newlength{\py} -\newlength{\pyy} -\newlength{\pxx} - - -\def\mghrulefill#1{\leavevmode\leaders\hrule\@height #1\hfill\kern\z@} - -\newcommand{\DOCH}{% - \CNV\FmN{\@chapapp}\space \CNoV\thechapter - \par\nobreak - \vskip 20\p@ - } -\newcommand{\DOTI}[1]{% - \CTV\FmTi{#1}\par\nobreak - \vskip 40\p@ - } -\newcommand{\DOTIS}[1]{% - \CTV\FmTi{#1}\par\nobreak - \vskip 40\p@ - } - -%%%%%% SONNY DEF - -\DeclareOption{Sonny}{% - \ChNameVar{\Large\sf} - \ChNumVar{\Huge} - \ChTitleVar{\Large\sf} - \ChRuleWidth{0.5pt} - \ChNameUpperCase - \renewcommand{\DOCH}{% - \raggedleft - \CNV\FmN{\@chapapp}\space \CNoV\thechapter - \par\nobreak - \vskip 40\p@} - \renewcommand{\DOTI}[1]{% - \CTV\raggedleft\mghrulefill{\RW}\par\nobreak - \vskip 5\p@ - \CTV\FmTi{#1}\par\nobreak - \mghrulefill{\RW}\par\nobreak - \vskip 40\p@} - \renewcommand{\DOTIS}[1]{% - \CTV\raggedleft\mghrulefill{\RW}\par\nobreak - \vskip 5\p@ - \CTV\FmTi{#1}\par\nobreak - \mghrulefill{\RW}\par\nobreak - \vskip 40\p@} -} - -%%%%%% LENNY DEF - -\DeclareOption{Lenny}{% - - \ChNameVar{\fontsize{14}{16}\usefont{OT1}{phv}{m}{n}\selectfont} - \ChNumVar{\fontsize{60}{62}\usefont{OT1}{ptm}{m}{n}\selectfont} - \ChTitleVar{\Huge\bfseries\rm} - \ChRuleWidth{1pt} - \renewcommand{\DOCH}{% - \settowidth{\px}{\CNV\FmN{\@chapapp}} - \addtolength{\px}{2pt} - \settoheight{\py}{\CNV\FmN{\@chapapp}} - \addtolength{\py}{1pt} - - \settowidth{\mylen}{\CNV\FmN{\@chapapp}\space\CNoV\thechapter} - \addtolength{\mylen}{1pt} - \settowidth{\pxx}{\CNoV\thechapter} - \addtolength{\pxx}{-1pt} - - \settoheight{\pyy}{\CNoV\thechapter} - \addtolength{\pyy}{-2pt} - \setlength{\myhi}{\pyy} - \addtolength{\myhi}{-1\py} - \par - \parbox[b]{\textwidth}{% - \rule[\py]{\RW}{\myhi}% - \hskip -\RW% - \rule[\pyy]{\px}{\RW}% - \hskip -\px% - \raggedright% - \CNV\FmN{\@chapapp}\space\CNoV\thechapter% - \hskip1pt% - \mghrulefill{\RW}% - \rule{\RW}{\pyy}\par\nobreak% - \vskip -\baselineskip% - \vskip -\pyy% - \hskip \mylen% - \mghrulefill{\RW}\par\nobreak% - \vskip \pyy}% - \vskip 20\p@} - - - \renewcommand{\DOTI}[1]{% - \raggedright - \CTV\FmTi{#1}\par\nobreak - \vskip 40\p@} - - \renewcommand{\DOTIS}[1]{% - \raggedright - \CTV\FmTi{#1}\par\nobreak - \vskip 40\p@} - } - -%%%%%% Peter Osbornes' version of LENNY DEF - -\DeclareOption{PetersLenny}{% - -% five new lengths -\newlength{\bl} % bottom left : orig \space -\setlength{\bl}{6pt} -\newcommand{\BL}[1]{\setlength{\bl}{#1}} -\newlength{\br} % bottom right : orig 1pt -\setlength{\br}{1pt} -\newcommand{\BR}[1]{\setlength{\br}{#1}} -\newlength{\tl} % top left : orig 2pt -\setlength{\tl}{2pt} -\newcommand{\TL}[1]{\setlength{\tl}{#1}} -\newlength{\trr} % top right :orig 1pt -\setlength{\trr}{1pt} -\newcommand{\TR}[1]{\setlength{\trr}{#1}} -\newlength{\blrule} % top right :orig 1pt -\setlength{\trr}{0pt} -\newcommand{\BLrule}[1]{\setlength{\blrule}{#1}} - - - \ChNameVar{\fontsize{14}{16}\usefont{OT1}{phv}{m}{n}\selectfont} - \ChNumVar{\fontsize{60}{62}\usefont{OT1}{ptm}{m}{n}\selectfont} - \ChTitleVar{\Huge\bfseries\rm} - \ChRuleWidth{1pt} -\renewcommand{\DOCH}{% - - -%%%%%%% tweaks for 1--9 and A--Z -\ifcase\c@chapter\relax% -\or\BL{-3pt}\TL{-4pt}\BR{0pt}\TR{-6pt}%1 -\or\BL{0pt}\TL{-4pt}\BR{2pt}\TR{-4pt}%2 -\or\BL{0pt}\TL{-4pt}\BR{2pt}\TR{-4pt}%3 -\or\BL{0pt}\TL{5pt}\BR{2pt}\TR{-4pt}%4 -\or\BL{0pt}\TL{3pt}\BR{2pt}\TR{-4pt}%5 -\or\BL{-1pt}\TL{0pt}\BR{2pt}\TR{-2pt}%6 -\or\BL{0pt}\TL{-3pt}\BR{2pt}\TR{-2pt}%7 -\or\BL{0pt}\TL{-3pt}\BR{2pt}\TR{-2pt}%8 -\or\BL{0pt}\TL{-3pt}\BR{-4pt}\TR{-2pt}%9 -\or\BL{-3pt}\TL{-3pt}\BR{2pt}\TR{-7pt}%10 -\or\BL{-6pt}\TL{-6pt}\BR{0pt}\TR{-9pt}%11 -\or\BL{-6pt}\TL{-6pt}\BR{2pt}\TR{-7pt}%12 -\or\BL{-5pt}\TL{-5pt}\BR{0pt}\TR{-9pt}%13 -\or\BL{-6pt}\TL{-6pt}\BR{0pt}\TR{-9pt}%14 -\or\BL{-3pt}\TL{-3pt}\BR{3pt}\TR{-6pt}%15 -\or\BL{-3pt}\TL{-3pt}\BR{3pt}\TR{-6pt}%16 -\or\BL{-5pt}\TL{-3pt}\BR{-8pt}\TR{-6pt}%17 -\or\BL{-5pt}\TL{-5pt}\BR{0pt}\TR{-9pt}%18 -\or\BL{-3pt}\TL{-3pt}\BR{-6pt}\TR{-9pt}%19 -\or\BL{0pt}\TL{0pt}\BR{0pt}\TR{-5pt}%20 -\fi - -\ifinapp\ifcase\c@chapter\relax% -\or\BL{0pt}\TL{14pt}\BR{5pt}\TR{-19pt}%A -\or\BL{0pt}\TL{-5pt}\BR{-3pt}\TR{-8pt}%B -\or\BL{-3pt}\TL{-2pt}\BR{1pt}\TR{-6pt}\BLrule{0pt}%C -\or\BL{0pt}\TL{-5pt}\BR{-3pt}\TR{-8pt}\BLrule{0pt}%D -\or\BL{0pt}\TL{-5pt}\BR{2pt}\TR{-3pt}%E -\or\BL{0pt}\TL{-5pt}\BR{-10pt}\TR{-1pt}%F -\or\BL{-3pt}\TL{0pt}\BR{0pt}\TR{-7pt}%G -\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}%H -\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}%I -\or\BL{2pt}\TL{0pt}\BR{-3pt}\TR{1pt}%J -\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}%K -\or\BL{0pt}\TL{-5pt}\BR{2pt}\TR{-19pt}%L -\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}%M -\or\BL{0pt}\TL{-5pt}\BR{-2pt}\TR{-1pt}%N -\or\BL{-3pt}\TL{-2pt}\BR{-3pt}\TR{-11pt}%O -\or\BL{0pt}\TL{-5pt}\BR{-9pt}\TR{-3pt}%P -\or\BL{-3pt}\TL{-2pt}\BR{-3pt}\TR{-11pt}%Q -\or\BL{0pt}\TL{-5pt}\BR{4pt}\TR{-8pt}%R -\or\BL{-2pt}\TL{-2pt}\BR{-2pt}\TR{-7pt}%S -\or\BL{-3pt}\TL{0pt}\BR{-5pt}\TR{4pt}\BLrule{8pt}%T -\or\BL{-7pt}\TL{-11pt}\BR{-5pt}\TR{-7pt}\BLrule{0pt}%U -\or\BL{-14pt}\TL{-5pt}\BR{-14pt}\TR{-1pt}\BLrule{14pt}%V -\or\BL{-10pt}\TL{-9pt}\BR{-13pt}\TR{-3pt}\BLrule{7pt}%W -\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}\BLrule{0pt}%X -\or\BL{-6pt}\TL{-4pt}\BR{-7pt}\TR{1pt}\BLrule{7pt}%Y -\or\BL{0pt}\TL{-5pt}\BR{3pt}\TR{-1pt}\BLrule{0pt}%Z -\fi\fi -%%%%%%% - \settowidth{\px}{\CNV\FmN{\@chapapp}} - \addtolength{\px}{\tl} %MOD change 2pt to \tl - \settoheight{\py}{\CNV\FmN{\@chapapp}} - \addtolength{\py}{1pt} - - \settowidth{\mylen}{\CNV\FmN{\@chapapp}\space\CNoV\thechapter} - \addtolength{\mylen}{\trr}% MOD change 1pt to \tr - \settowidth{\pxx}{\CNoV\thechapter} - \addtolength{\pxx}{-1pt} - - \settoheight{\pyy}{\CNoV\thechapter} - \addtolength{\pyy}{-2pt} - \setlength{\myhi}{\pyy} - \addtolength{\myhi}{-1\py} - \par - \parbox[b]{\textwidth}{% - \rule[\py]{\RW}{\myhi}% - \hskip -\RW% - \rule[\pyy]{\px}{\RW}% - \hskip -\px% - \raggedright% - \CNV\FmN{\@chapapp}\rule{\blrule}{\RW}\hskip\bl\CNoV\thechapter%MOD -% \CNV\FmN{\@chapapp}\space\CNoV\thechapter %ORIGINAL - \hskip\br% %MOD 1pt to \br - \mghrulefill{\RW}% - \rule{\RW}{\pyy}\par\nobreak% - \vskip -\baselineskip% - \vskip -\pyy% - \hskip \mylen% - \mghrulefill{\RW}\par\nobreak% - \vskip \pyy}% - \vskip 20\p@} - - - \renewcommand{\DOTI}[1]{% - \raggedright - \CTV\FmTi{#1}\par\nobreak - \vskip 40\p@} - - \renewcommand{\DOTIS}[1]{% - \raggedright - \CTV\FmTi{#1}\par\nobreak - \vskip 40\p@} - } - - -% - - -%%%%%% BJORNSTRUP DEF - -\DeclareOption{Bjornstrup}{% - \usecolortrue - % pzc (Zapf Chancelery) is nice. ppl (Palatino) is cool too. - \ChNumVar{\fontsize{76}{80}\usefont{OT1}{pzc}{m}{n}\selectfont} - \ChTitleVar{\raggedleft\Large\sffamily\bfseries} - - \setlength{\myhi}{10pt} % Space between grey box border and text - \setlength{\mylen}{\textwidth} - \addtolength{\mylen}{-2\myhi} - \renewcommand{\DOCH}{% - \settowidth{\py}{\CNoV\thechapter} - \addtolength{\py}{-10pt} % Amount of space by which the -% % number is shifted right - \fboxsep=0pt% - \colorbox[gray]{.85}{\rule{0pt}{40pt}\parbox[b]{\textwidth}{\hfill}}% - \kern-\py\raise20pt% - \hbox{\color[gray]{.5}\CNoV\thechapter}\\% - } - - \renewcommand{\DOTI}[1]{% - \nointerlineskip\raggedright% - \fboxsep=\myhi% - \vskip-1ex% - \colorbox[gray]{.85}{\parbox[t]{\mylen}{\CTV\FmTi{#1}}}\par\nobreak% - \vskip 40\p@% - } - - \renewcommand{\DOTIS}[1]{% - \fboxsep=0pt - \colorbox[gray]{.85}{\rule{0pt}{40pt}\parbox[b]{\textwidth}{\hfill}}\\% - \nointerlineskip\raggedright% - \fboxsep=\myhi% - \colorbox[gray]{.85}{\parbox[t]{\mylen}{\CTV\FmTi{#1}}}\par\nobreak% - \vskip 40\p@% - } -} - - -%%%%%%% GLENN DEF - - -\DeclareOption{Glenn}{% - \ChNameVar{\bfseries\Large\sf} - \ChNumVar{\Huge} - \ChTitleVar{\bfseries\Large\rm} - \ChRuleWidth{1pt} - \ChNameUpperCase - \ChTitleUpperCase - \renewcommand{\DOCH}{% - \settoheight{\myhi}{\CTV\FmTi{Test}} - \setlength{\py}{\baselineskip} - \addtolength{\py}{\RW} - \addtolength{\py}{\myhi} - \setlength{\pyy}{\py} - \addtolength{\pyy}{-1\RW} - - \raggedright - \CNV\FmN{\@chapapp}\space\CNoV\thechapter - \hskip 3pt\mghrulefill{\RW}\rule[-1\pyy]{2\RW}{\py}\par\nobreak} - - \renewcommand{\DOTI}[1]{% - \addtolength{\pyy}{-4pt} - \settoheight{\myhi}{\CTV\FmTi{#1}} - \addtolength{\myhi}{\py} - \addtolength{\myhi}{-1\RW} - \vskip -1\pyy - \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 2pt - \raggedleft\CTV\FmTi{#1}\par\nobreak - \vskip 80\p@} - -\newlength{\backskip} - \renewcommand{\DOTIS}[1]{% -% \setlength{\py}{10pt} -% \setlength{\pyy}{\py} -% \addtolength{\pyy}{\RW} -% \setlength{\myhi}{\baselineskip} -% \addtolength{\myhi}{\pyy} -% \mghrulefill{\RW}\rule[-1\py]{2\RW}{\pyy}\par\nobreak -% \addtolength{}{} -%\vskip -1\baselineskip -% \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 2pt -% \raggedleft\CTV\FmTi{#1}\par\nobreak -% \vskip 60\p@} -%% Fix suggested by Tomas Lundberg - \setlength{\py}{25pt} % eller vad man vill - \setlength{\pyy}{\py} - \setlength{\backskip}{\py} - \addtolength{\backskip}{2pt} - \addtolength{\pyy}{\RW} - \setlength{\myhi}{\baselineskip} - \addtolength{\myhi}{\pyy} - \mghrulefill{\RW}\rule[-1\py]{2\RW}{\pyy}\par\nobreak - \vskip -1\backskip - \rule{2\RW}{\myhi}\mghrulefill{\RW}\hskip 3pt % - \raggedleft\CTV\FmTi{#1}\par\nobreak - \vskip 40\p@} - } - -%%%%%%% CONNY DEF - -\DeclareOption{Conny}{% - \ChNameUpperCase - \ChTitleUpperCase - \ChNameVar{\centering\Huge\rm\bfseries} - \ChNumVar{\Huge} - \ChTitleVar{\centering\Huge\rm} - \ChRuleWidth{2pt} - - \renewcommand{\DOCH}{% - \mghrulefill{3\RW}\par\nobreak - \vskip -0.5\baselineskip - \mghrulefill{\RW}\par\nobreak - \CNV\FmN{\@chapapp}\space \CNoV\thechapter - \par\nobreak - \vskip -0.5\baselineskip - } - \renewcommand{\DOTI}[1]{% - \mghrulefill{\RW}\par\nobreak - \CTV\FmTi{#1}\par\nobreak - \vskip 60\p@ - } - \renewcommand{\DOTIS}[1]{% - \mghrulefill{\RW}\par\nobreak - \CTV\FmTi{#1}\par\nobreak - \vskip 60\p@ - } - } - -%%%%%%% REJNE DEF - -\DeclareOption{Rejne}{% - - \ChNameUpperCase - \ChTitleUpperCase - \ChNameVar{\centering\Large\rm} - \ChNumVar{\Huge} - \ChTitleVar{\centering\Huge\rm} - \ChRuleWidth{1pt} - \renewcommand{\DOCH}{% - \settoheight{\py}{\CNoV\thechapter} - \parskip=0pt plus 1pt % Set parskip to default, just in case v1.31 - \addtolength{\py}{-1pt} - \CNV\FmN{\@chapapp}\par\nobreak - \vskip 20\p@ - \setlength{\myhi}{2\baselineskip} - \setlength{\px}{\myhi} - \addtolength{\px}{-1\RW} - \rule[-1\px]{\RW}{\myhi}\mghrulefill{\RW}\hskip - 10pt\raisebox{-0.5\py}{\CNoV\thechapter}\hskip 10pt\mghrulefill{\RW}\rule[-1\px]{\RW}{\myhi}\par\nobreak - \vskip -3\p@% Added -2pt vskip to correct for streched text v1.31 - } - \renewcommand{\DOTI}[1]{% - \setlength{\mylen}{\textwidth} - \parskip=0pt plus 1pt % Set parskip to default, just in case v1.31 - \addtolength{\mylen}{-2\RW} - {\vrule width\RW}\parbox{\mylen}{\CTV\FmTi{#1}}{\vrule width\RW}\par\nobreak% - \vskip -3pt\rule{\RW}{2\baselineskip}\mghrulefill{\RW}\rule{\RW}{2\baselineskip}% - \vskip 60\p@% Added -2pt in vskip to correct for streched text v1.31 - } - \renewcommand{\DOTIS}[1]{% - \setlength{\py}{\fboxrule} - \setlength{\fboxrule}{\RW} - \setlength{\mylen}{\textwidth} - \addtolength{\mylen}{-2\RW} - \fbox{\parbox{\mylen}{\vskip 2\baselineskip\CTV\FmTi{#1}\par\nobreak\vskip \baselineskip}} - \setlength{\fboxrule}{\py} - \vskip 60\p@ - } - } - - -%%%%%%% BJARNE DEF - -\DeclareOption{Bjarne}{% - \ChNameUpperCase - \ChTitleUpperCase - \ChNameVar{\raggedleft\normalsize\rm} - \ChNumVar{\raggedleft \bfseries\Large} - \ChTitleVar{\raggedleft \Large\rm} - \ChRuleWidth{1pt} - - -%% Note thechapter -> c@chapter fix appendix bug -%% Fixed misspelled 12 - - \newcounter{AlphaCnt} - \newcounter{AlphaDecCnt} - \newcommand{\AlphaNo}{% - \ifcase\number\theAlphaCnt - \ifnum\c@chapter=0 - ZERO\else{}\fi - \or ONE\or TWO\or THREE\or FOUR\or FIVE - \or SIX\or SEVEN\or EIGHT\or NINE\or TEN - \or ELEVEN\or TWELVE\or THIRTEEN\or FOURTEEN\or FIFTEEN - \or SIXTEEN\or SEVENTEEN\or EIGHTEEN\or NINETEEN\fi -} - - \newcommand{\AlphaDecNo}{% - \setcounter{AlphaDecCnt}{0} - \@whilenum\number\theAlphaCnt>0\do - {\addtocounter{AlphaCnt}{-10} - \addtocounter{AlphaDecCnt}{1}} - \ifnum\number\theAlphaCnt=0 - \else - \addtocounter{AlphaDecCnt}{-1} - \addtocounter{AlphaCnt}{10} - \fi - - - \ifcase\number\theAlphaDecCnt\or TEN\or TWENTY\or THIRTY\or - FORTY\or FIFTY\or SIXTY\or SEVENTY\or EIGHTY\or NINETY\fi - } - \newcommand{\TheAlphaChapter}{% - - \ifinapp - \thechapter - \else - \setcounter{AlphaCnt}{\c@chapter} - \ifnum\c@chapter<20 - \AlphaNo - \else - \AlphaDecNo\AlphaNo - \fi - \fi - } - \renewcommand{\DOCH}{% - \mghrulefill{\RW}\par\nobreak - \CNV\FmN{\@chapapp}\par\nobreak - \CNoV\TheAlphaChapter\par\nobreak - \vskip -1\baselineskip\vskip 5pt\mghrulefill{\RW}\par\nobreak - \vskip 20\p@ - } - \renewcommand{\DOTI}[1]{% - \CTV\FmTi{#1}\par\nobreak - \vskip 40\p@ - } - \renewcommand{\DOTIS}[1]{% - \CTV\FmTi{#1}\par\nobreak - \vskip 40\p@ - } -} - -\DeclareOption*{% - \PackageWarning{fancychapter}{unknown style option} - } - -\ProcessOptions* \relax - -\ifusecolor - \RequirePackage{color} -\fi -\def\@makechapterhead#1{% - \vspace*{50\p@}% - {\parindent \z@ \raggedright \normalfont - \ifnum \c@secnumdepth >\m@ne - \if@mainmatter%%%%% Fix for frontmatter, mainmatter, and backmatter 040920 - \DOCH - \fi - \fi - \interlinepenalty\@M - \if@mainmatter%%%%% Fix for frontmatter, mainmatter, and backmatter 060424 - \DOTI{#1}% - \else% - \DOTIS{#1}% - \fi - }} - - -%%% Begin: To avoid problem with scrbook.cls (fncychap version 1.32) - -%%OUT: -%\def\@schapter#1{\if@twocolumn -% \@topnewpage[\@makeschapterhead{#1}]% -% \else -% \@makeschapterhead{#1}% -% \@afterheading -% \fi} - -%%IN: -\def\@schapter#1{% -\if@twocolumn% - \@makeschapterhead{#1}% -\else% - \@makeschapterhead{#1}% - \@afterheading% -\fi} - -%%% End: To avoid problem with scrbook.cls (fncychap version 1.32) - -\def\@makeschapterhead#1{% - \vspace*{50\p@}% - {\parindent \z@ \raggedright - \normalfont - \interlinepenalty\@M - \DOTIS{#1} - \vskip 40\p@ - }} - -\endinput - - diff --git a/docs/_build/latex/iftex.sty b/docs/_build/latex/iftex.sty deleted file mode 100644 index 7651466..0000000 --- a/docs/_build/latex/iftex.sty +++ /dev/null @@ -1,97 +0,0 @@ -%% -%% This is file `iftex.sty', - -%% -%% __________________________________ -%% Copyright © 2010–2013 Persian TeX Group -%% -%% License information appended. -%% -%% -\csname iftexloaded\endcsname -\let\iftexloaded\endinput -\expandafter\ifx\csname ProvidesPackage\endcsname\relax\else - \ProvidesPackage{iftex} - [2013/04/04 v0.2 Provides if(tex) conditional for PDFTeX, XeTeX, and LuaTeX] -\fi -\def\RequirePDFTeX{% - \ifPDFTeX\else - \begingroup - \errorcontextlines=-1\relax - \newlinechar=10\relax - \errmessage{^^J - ********************************************^^J - * PDFTeX is required to compile this document.^^J - * Sorry!^^J - ********************************************}% - \endgroup - \fi} -\def\RequireXeTeX{% - \ifXeTeX\else - \begingroup - \errorcontextlines=-1\relax - \newlinechar=10\relax - \errmessage{^^J - ********************************************^^J - * XeTeX is required to compile this document.^^J - * Sorry!^^J - ********************************************}% - \endgroup - \fi} -\def\RequireLuaTeX{% - \ifLuaTeX\else - \begingroup - \errorcontextlines=-1\relax - \newlinechar=10\relax - \errmessage{^^J - ********************************************^^J - * LuaTeX is required to compile this document.^^J - * Sorry!^^J - ********************************************}% - \endgroup - \fi} -\expandafter\ifx\csname ifPDFTeX\endcsname\relax\else - \expandafter\endinput -\fi -\expandafter\ifx\csname ifXeTeX\endcsname\relax\else - \expandafter\endinput -\fi -\expandafter\ifx\csname ifLuaTeX\endcsname\relax\else - \expandafter\endinput -\fi -\newif\ifPDFTeX -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname pdfmatch\endcsname\relax - \PDFTeXfalse -\else - \PDFTeXtrue -\fi -\newif\ifXeTeX -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname XeTeXinterchartoks\endcsname\relax - \XeTeXfalse -\else - \XeTeXtrue -\fi -\newif\ifLuaTeX -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname directlua\endcsname\relax - \LuaTeXfalse -\else - \LuaTeXtrue -\fi -%% -%% Copyright © 2010–2013 by Persian TeX Group <persian-tex@tug.org> -%% -%% Distributable under the LaTeX Project Public License, -%% version 1.3c or higher (your choice). The latest version of -%% this license is at: http://www.latex-project.org/lppl.txt -%% -%% This work is "maintained" (as per LPPL maintenance status) -%% by Persian TeX Group. -%% -%% -%% -%% -%% -%% End of file `iftex.sty'. diff --git a/docs/_build/latex/needspace.sty b/docs/_build/latex/needspace.sty deleted file mode 100644 index 113d872..0000000 --- a/docs/_build/latex/needspace.sty +++ /dev/null @@ -1,35 +0,0 @@ - -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{needspace}[2010/09/12 v1.3d reserve vertical space] - -\newcommand{\needspace}[1]{% - \begingroup - \setlength{\dimen@}{#1}% - \vskip\z@\@plus\dimen@ - \penalty -100\vskip\z@\@plus -\dimen@ - \vskip\dimen@ - \penalty 9999% - \vskip -\dimen@ - \vskip\z@skip % hide the previous |\vskip| from |\addvspace| - \endgroup -} - -\newcommand{\Needspace}{\@ifstar{\@sneedsp@}{\@needsp@}} - -\newcommand{\@sneedsp@}[1]{\par \penalty-100\begingroup - \setlength{\dimen@}{#1}% - \dimen@ii\pagegoal \advance\dimen@ii-\pagetotal - \ifdim \dimen@>\dimen@ii - \break - \fi\endgroup} - -\newcommand{\@needsp@}[1]{\par \penalty-100\begingroup - \setlength{\dimen@}{#1}% - \dimen@ii\pagegoal \advance\dimen@ii-\pagetotal - \ifdim \dimen@>\dimen@ii - \ifdim \dimen@ii>\z@ - \vfil - \fi - \break - \fi\endgroup} - diff --git a/docs/_build/latex/newfloat.sty b/docs/_build/latex/newfloat.sty deleted file mode 100644 index 47ac5e5..0000000 --- a/docs/_build/latex/newfloat.sty +++ /dev/null @@ -1,737 +0,0 @@ -%% -%% This is file `newfloat.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% newfloat.dtx (with options: `package') -%% -%% Copyright (C) 1994-2016 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm) -%% -%% http://sourceforge.net/projects/latex-caption/ -%% -%% -------------------------------------------------------------------------- -%% -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 -%% of this license or (at your option) any later version. -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3 or later is part of all distributions of LaTeX -%% version 2003/12/01 or later. -%% -%% This work has the LPPL maintenance status "maintained". -%% -%% This Current Maintainer of this work is Axel Sommerfeldt. -%% -%% This work consists of the files -%% CHANGELOG, README, SUMMARY, caption.ins, -%% caption.dtx, caption2.dtx, caption3.dtx, -%% bicaption.dtx, ltcaption.dtx, subcaption.dtx, -%% newfloat.dtx, and totalcount.dtx -%% the derived files -%% caption.sty, caption2.sty, caption3.sty, -%% bicaption.sty, ltcaption.sty, subcaption.sty, -%% newfloat.sty, and totalcount.sty -%% and the user manuals -%% caption-deu.tex, caption-eng.tex, and caption-rus.tex. -%% -\NeedsTeXFormat{LaTeX2e}[1994/12/01] -\def\caption@tempa$Id: #1 #2 #3-#4-#5 #6${% - \def\caption@tempa{#3/#4/#5 }\def\caption@tempb{#2 }} -\caption@tempa $Id: newfloat.dtx 109 2015-09-17 09:29:07Z sommerfeldt $ -\ProvidesPackage{newfloat}[\caption@tempa v1.1-\caption@tempb Defining new floating environments (AR)] -\newcommand*\newfloat@Info[1]{% - \PackageInfo{newfloat}{#1}} -\newcommand*\newfloat@InfoNoLine[1]{% - \newfloat@Info{#1\@gobble}} -\newcommand*\newfloat@Error[1]{% - \PackageError{newfloat}{#1}\newfloat@eh} -\newcommand*\newfloat@eh{% - If you do not understand this error, please take a closer look\MessageBreak - at the documentation of the `newfloat' package.\MessageBreak\@ehc} -\RequirePackage{keyval}[1997/11/10] -\newcommand*\newfloat@def[2]{% - \newfloat@ifundefined{#1}{% - \@namedef{#1}{#2}}} -\newcommand*\newfloat@let[2]{% - \newfloat@ifundefined{#1}{% - \expandafter\let\csname #1\endcsname#2}} -\newcommand*\newfloat@ifundefined[2]{% - \@ifundefined{#1}{#2}{% - \newfloat@Info{% - \expandafter\string\csname#1\endcsname\space is already defined}}} -\newcommand*\DeclareFloatingEnvironment{% - \@testopt\@DeclareFloatingEnvironment{}} -\@onlypreamble\DeclareFloatingEnvironment -\def\@DeclareFloatingEnvironment[#1]#2{% - \newfloat@Info{New float `#2' with options `#1'}% - \newfloat@ifundefined{c@#2}{\newcounter{#2}}% - \ifdefined\c@float@type % from float package - \expandafter\edef\csname ftype@#2\endcsname{\the\value{float@type}}% - \addtocounter{float@type}{\value{float@type}}% - \else\ifdefined\c@newflo@tctr % from memoir document class - \expandafter\edef\csname ftype@#2\endcsname{\the\c@newflo@tctr}% - \advance\c@newflo@tctr \c@newflo@tctr - \else - \ifdefined\newfloat@ftype \else - \newcount\newfloat@ftype - \newfloat@ftype=8\relax - \fi - \expandafter\xdef\csname ftype@#2\endcsname{\the\newfloat@ftype}% - \advance\newfloat@ftype\newfloat@ftype - \fi\fi - \newfloat@Info{float type `#2'=\@nameuse{ftype@#2}}% - \newfloat@def{fnum@#2}% - {\@nameuse{#2name}\nobreakspace\@nameuse{the#2}\@nameuse{autodot}}% - \newfloat@capitalize\newfloat@Type{#2}% - \newfloat@let{#2name}{\newfloat@Type}% - \newfloat@def{fleg#2}{\@nameuse{#2name}}% legend naming (memoir) - \newfloat@ifundefined{flegtoc#2}{\@namedef{flegtoc#2}##1{}}% - \ifcsname @tufte@float\endcsname - \newenvironment{#2}[1][htbp]% - {\begin{@tufte@float}[##1]{#2}{}}% - {\end{@tufte@float}}% - \newenvironment{#2*}[1][htbp]% - {\begin{@tufte@float}[##1]{#2}{star}}% - {\end{@tufte@float}}% - \else - \newenvironment{#2}{\@float{#2}}{\end@float}% - \newenvironment{#2*}{\@dblfloat{#2}}{\end@dblfloat}% - \fi - \newfloat@def{listof#2}{\newfloat@listof{#2}}% - \newfloat@def{listof#2s}{\@nameuse{listof#2}}% - \newfloat@def{listof#2es}{\@nameuse{listof#2s}}% - \newfloat@def{newfloat@listof#2@hook}{}% - \ifdefined\l@figure - \newfloat@let{l@#2}{\l@figure}% - \else - \newfloat@def{l@#2}{\@dottedtocline{1}{1.5em}{2.3em}}% - \fi - \edef\newfloat@tempa{List of \newfloat@Type s}% - \newfloat@let{list#2name}{\newfloat@tempa}% - \expandafter\let\csname fst@#2\endcsname\@undefined - \newfloat@ifundefined{fps@#2}{\newfloat@setplacement{#2}{tbp}}% - \newfloat@ifundefined{ext@#2}{\newfloat@setfileext{#2}{lo#2}}% - \newfloat@setoptions*{#2}{#1}% - \@expandtwoargs\newfloat@announce{#2}{\@nameuse{ext@#2}}% - \@ifnextchar[\newfloat@DFE@setname\relax} -\@onlypreamble\@DeclareFloatingEnvironment -\def\newfloat@DFE@setname[#1]{% - \KV@@newfloat@name{#1}% - \@ifnextchar[\newfloat@DFE@setlistname\relax} -\@onlypreamble\newfloat@DFE@setname -\def\newfloat@DFE@setlistname[#1]{% - \KV@@newfloat@listname{#1}} -\@onlypreamble\newfloat@DFE@setlistname -\newcommand*\newfloat@capitalize[2]{% - \edef\newfloat@tempa{\gdef\noexpand#1{\@car#2\@nil}}% - \uppercase\expandafter{\newfloat@tempa}% - \edef\newfloat@tempa{% - \noexpand\g@addto@macro\noexpand#1{\@cdr#2\@nil}}% - \newfloat@tempa} -\newcommand*\newfloat@listof[1]{% - \@expandtwoargs\newfloat@list@of{#1}{\@nameuse{ext@#1}}} -\newcommand*\newfloat@list@of[2]{% - \begingroup - \expandafter\let\expandafter\listfigurename\csname list#1name\endcsname - \def\ext@figure{#2}% - \let\newfloat@starttoc\@starttoc - \def\@starttoc##1{\newfloat@starttoc{#2}}% - \let\newfloat@listoftoc\listoftoc - \def\listoftoc##1{\newfloat@listoftoc{#2}}% - \@nameuse{newfloat@listof#1@hook}% - \listoffigures - \endgroup} -\newcommand*\newfloat@setoptions{% - \@ifstar - {\newfloat@@setoptions\@firstofone}% - {\newfloat@@setoptions\@gobble}} -\newcommand*\newfloat@@setoptions[3]{% - \let\newfloat@within@value\@undefined - \let\newfloat@chapterlistsgaps@value\@undefined - #1{\KV@@newfloat@within\newfloat@within@default}% set default value for new floats - \def\newfloat@type{#2}% - \setkeys{@newfloat}{#3}% - \ifx\newfloat@within@value\@undefined \else - \newfloat@setoption{within}\newfloat@within@value - \fi - \ifx\newfloat@chapterlistsgaps@value\@undefined \else - \newfloat@setoption{chapterlistsgaps}\newfloat@chapterlistsgaps@value - \fi} -\newcommand*\newfloat@within@default{% - \ifcsname c@chapter\endcsname chapter\else none\fi} -\@onlypreamble\newfloat@within@default -\newcommand*\newfloat@setoption[1]{% - \edef\caption@tempa{\noexpand\@nameuse{newfloat@set#1}{\newfloat@type}}% - \caption@tempa} -\newcommand*\newfloat@setfileext[2]{% - \@namedef{ext@#1}{#2}} -\define@key{@newfloat}{fileext}{% - \newfloat@setoption{fileext}{#1}} -\newcommand*\newfloat@setlistname[2]{% - \@namedef{list#1name}{#2}} -\define@key{@newfloat}{listname}{% - \newfloat@setoption{listname}{#1}} -\newcommand*\newfloat@setname[2]{% - \newfloat@@setname{#1}{#2}% - \begingroup - \ifcsname languagename\endcsname - \ifcsname captions\languagename\endcsname - \expandafter\g@addto@macro\csname captions\languagename\endcsname - {\newfloat@@setname{#1}{#2}}% - \fi - \fi - \endgroup} -%%\AtBeginDocument{\let\newfloat@setname\newfloat@@setname} -\newcommand*\newfloat@@setname[2]{% - \@namedef{#1name}{#2}} -\define@key{@newfloat}{name}{% - \newfloat@setoption{name}{#1}} -\newcommand*\newfloat@setplacement[2]{% - \@namedef{fps@#1}{#2}} -\define@key{@newfloat}{placement}{% - \newfloat@setoption{placement}{#1}} -\newcommand*\newfloat@setwithin[2]{% - \ifcsname c@chapter\endcsname - \@removefromreset{#1}{chapter}% - \fi - \@removefromreset{#1}{section}% - \edef\@tempa{#2}% - \ifx\@tempa\@empty - \def\@tempa{none}% - \fi - \def\@tempb{none}% - \ifx\@tempa\@tempb - \ifcsname c@chapter\endcsname - \@chapterlistsgap@off{#1}% - \fi - \newfloat@@setwithin{#1}{}{}% - \else - \def\@tempb{chapter}% - \ifx\@tempa\@tempb - \@addtoreset{#1}{chapter}% - \@chapterlistsgap@on{#1}% - \newfloat@@setwithin{#1}{\ifnum\c@chapter>\z@ \thechapter.\fi}{\theHchapter.}% - \else - \def\@tempb{section}% - \ifx\@tempa\@tempb - \@addtoreset{#1}{section}% - \ifcsname c@chapter\endcsname - \@addtoreset{#1}{chapter}% - \@chapterlistsgap@on{#1}% - \newfloat@@setwithin{#1}{\thesection.}{\theHsection.}% - \else - \newfloat@@setwithin{#1}{\ifnum\c@section>\z@ \thesection.\fi}{\theHsection.}% - \fi - \else - \newfloat@Error{Invalid value `#2' for option `within'}% - \fi - \fi - \fi} -\newcommand*\newfloat@@setwithin[3]{% - \global\@namedef{the#1}{#2\arabic{#1}}% - \global\@namedef{theH#1}{#3\arabic{#1}}} -\define@key{@newfloat}{within}{% - \def\newfloat@within@value{#1}} -\newcommand*\newfloat@setwithout[1]{% - \newfloat@setwithin{#1}{none}} -\define@key{@newfloat}{without}[]{% - \def\newfloat@within@value{none}} -\newcommand*\newfloat@setchapterlistsgaps[2]{% - \edef\@tempa{#2}% - \def\@tempb{off}% - \ifx\@tempa\@tempb - \@chapterlistsgap@off{#1}% - \else - \def\@tempb{on}% - \ifx\@tempa\@tempb - \@chapterlistsgap@on{#1}% - \else - \newfloat@Error{Invalid value `#2' for option `chapterlistsgaps'}% - \fi - \fi} -\define@key{@newfloat}{chapterlistsgaps}{% - \def\newfloat@chapterlistsgaps@value{#1}} -\providecommand*\@removefromreset[2]{{% - \expandafter\let\csname c@#1\endcsname\@removefromreset - \def\@elt##1{% - \expandafter\ifx\csname c@##1\endcsname\@removefromreset - \else - \noexpand\@elt{##1}% - \fi}% - \expandafter\xdef\csname cl@#2\endcsname{% - \csname cl@#2\endcsname}}} -\newcommand*\newfloat@announce[2]{% - \@cons\newfloat@list{{#1}}% - \@cons\newfloat@@list{{#1}}% - \newfloat@ifundefined{newfloat@ext@#2}{% - \@namedef{newfloat@ext@#2}{#1}% - \ifcsname c@lofdepth\endcsname - \newfloat@ifundefined{c@#2depth}{% - \newcounter{#2depth}% - \setcounter{#2depth}{1}}% - \fi - \ifcsname addtotoclist\endcsname - \addtotoclist[float]{#2}% - \newfloat@def{listof#2name}{\@nameuse{list#1name}}% - \fi - }% - \ifcsname contentsuse\endcsname - \contentsuse{#1}{#2}% - \fi - \newfloat@hook{#1}} -\@onlypreamble\newfloat@announce -\newcommand*\newfloat@@list{} -\newcommand*\SetupFloatingEnvironment[1]{% - \newfloat@addtolist{#1}% - \newfloat@setoptions{#1}} -\newcommand\ForEachFloatingEnvironment{% - \@ifstar - {\@ForEachFloatingEnvironment\@gobble}% - {\@ForEachFloatingEnvironment\@iden}} -\newcommand\@ForEachFloatingEnvironment[2]{% - \def\@elt##1{#2}% - \newfloat@list - \let\@elt\relax - #1{\newfloat@addtohook{#2}}} -\providecommand\newfloat@addtohook[1]{% - \toks@=\expandafter{\newfloat@hook{##1}#1}% - \edef\@tempa{\def\noexpand\newfloat@hook####1{\the\toks@}}% - \@tempa} -\providecommand*\newfloat@hook[1]{} -\newcommand\PrepareListOf[1]{% - \expandafter\g@addto@macro\csname newfloat@listof#1@hook\endcsname} -\@onlypreamble\PrepareListOf -\newcommand*\newfloat@list{} -\newcommand*\newfloat@addtolist[1]{% - \newfloat@ifinlist{#1}{}{% - \ifcsname ext@#1\endcsname - \@cons\newfloat@list{{#1}}% - \@namedef{newfloat@ext@\@nameuse{ext@#1}}{#1}% - \newfloat@let{@ifchapterlistsgap@#1}{\@iden}% - \else - \newfloat@Error{`#1' does not seem to be a floating environment}% - \fi}} -\newcommand*\newfloat@ifinlist[1]{% - \let\next\@secondoftwo - \begingroup - \expandafter\let\csname c@#1\endcsname\newfloat@ifinlist - \def\@elt##1{% - \expandafter\ifx\csname c@##1\endcsname\newfloat@ifinlist - \global\let\next\@firstoftwo - \fi}% - \newfloat@list - \endgroup - \next} -\ifcsname ext@figure\endcsname - \newfloat@addtolist{figure} -\fi -\ifcsname ext@table\endcsname - \newfloat@addtolist{table} -\fi -\ifcsname @chapter\endcsname - \providecommand*\@chapterlistsgap{10\p@}% - \providecommand*\@addchapterlistsgap[2]{% - \@nameuse{@ifchapterlistsgap@#1}{% if switched on - \@@addchapterlistsgap{#1}{#2}}} - \providecommand*\@@addchapterlistsgap[2]{% - \@ifundefined{@addchapterlistsgap@#2}{% only once per extension - \@namedef{@addchapterlistsgap@#2}{#1}% - \@@@addchapterlistsgap{#2}}{}} - \providecommand*\@@@addchapterlistsgap[1]{% - \ifdim \@chapterlistsgap>\z@ - \addtocontents{#1}{\protect\addvspace{\@chapterlistsgap}}% - \fi} - \providecommand*\@addchapterlistsgaps{% - \begingroup - \def\@elt##1{% - \@expandtwoargs\@addchapterlistsgap{##1}{\@nameuse{ext@##1}}}% - \newfloat@list - \endgroup} - \providecommand*\@chapterlistsgap@off[1]{% - \expandafter\let\csname @ifchapterlistsgap@#1\endcsname\@gobble - \ifcsname unsettoc\endcsname - \@expandtwoargs\unsettoc{\@nameuse{ext@#1}}{chapteratlist}% - \fi} - \providecommand*\@chapterlistsgap@on[1]{% - \expandafter\let\csname @ifchapterlistsgap@#1\endcsname\@iden - \ifcsname setuptoc\endcsname - \@expandtwoargs\setuptoc{\@nameuse{ext@#1}}{chapteratlist}% - \fi} -\fi -\define@key{newfloat}{chapterlistsgap}{% - \renewcommand*\@chapterlistsgap{#1}} -\define@key{newfloat}{within}{% - \def\newfloat@within@default{#1}% set new default value - \def\@elt##1{\newfloat@setwithin{##1}{#1}}% - \newfloat@list - \let\@elt\relax} -\define@key{newfloat}{without}[]{% - \KV@newfloat@within{none}} -\def\@elt#1{% - \define@key{newfloat}{#1name}{% - \newfloat@setname{#1}{##1}}% - \define@key{newfloat}{list#1name}{% - \newfloat@setname{list#1}{##1}}% - \define@key{newfloat}{#1within}{% - \newfloat@setwithin{#1}{##1}}% - \define@key{newfloat}{#1without}[]{% - \newfloat@setwithout{#1}}% -}% -\newfloat@list -\let\@elt\relax -\define@key{newfloat}{planb}[true]{% - \def\@tempa{#1}% - \def\@tempb{false}% - \ifx\@tempa\@tempb - \let\newfloat@ifplanb\@gobble - \else - \def\@tempb{true}% - \ifx\@tempa\@tempb - \let\newfloat@ifplanb\@iden - \else - \newfloat@Error{Invalid value `#1' for option `planb'}% - \fi - \fi} -\define@key{newfloat}{planb-fileext}{% - \newfloat@Info{Setting Plan B file extension to `#1'} - \xdef\newfloat@addtocontents@ext{#1}} - -\let\@tempc\relax -\@expandtwoargs\setkeys{newfloat}{planb,\@ptionlist{\@currname.\@currext}}% -\AtEndOfPackage{\let\@unprocessedoptions\relax} -\newcommand*\newfloatsetup{\setkeys{newfloat}} -\newcommand\newfloat@replace@chapter[2]{% - \begingroup - \let\if@twocolumn\iffalse - \let\if@mainmatter\iffalse - \let\if@thema\iffalse - \def\@tempa[##1]##2{#1}% - \ifx\@tempa\@chapter - \gdef\@chapter[##1]##2{#2}% - \global\let\newfloat@replace@chapter\@gobbletwo - \else\ifx\@tempa\Hy@org@chapter - \gdef\Hy@org@chapter[##1]##2{#2}% - \global\let\newfloat@replace@chapter\@gobbletwo - \fi\fi - \endgroup} -\ifcsname @chapter\endcsname \else - \let\newfloat@replace@chapter\@gobbletwo -\fi -\newfloat@replace@chapter{% - \ifnum \c@secnumdepth >\m@ne - \refstepcounter{chapter}% - \typeout{\@chapapp\space\thechapter.}% - \addcontentsline{toc}{chapter}% - {\protect\numberline{\thechapter}#1}% - \else - \addcontentsline{toc}{chapter}{#1}% - \fi - \chaptermark{#1}% - \addtocontents{lof}{\protect\addvspace{10\p@}}% - \addtocontents{lot}{\protect\addvspace{10\p@}}% - \if@twocolumn - \@topnewpage[\@makechapterhead{#2}]% - \else - \@makechapterhead{#2}% - \@afterheading - \fi -}{% - \ifnum \c@secnumdepth >\m@ne - \refstepcounter{chapter}% - \typeout{\@chapapp\space\thechapter.}% - \addcontentsline{toc}{chapter}% - {\protect\numberline{\thechapter}#1}% - \else - \addcontentsline{toc}{chapter}{#1}% - \fi - \chaptermark{#1}% - \@addchapterlistsgaps - \if@twocolumn - \@topnewpage[\@makechapterhead{#2}]% - \else - \@makechapterhead{#2}% - \@afterheading - \fi} -\newfloat@replace@chapter{% - \ifnum \c@secnumdepth >\m@ne - \if@mainmatter - \refstepcounter{chapter}% - \typeout{\@chapapp\space\thechapter.}% - \addcontentsline{toc}{chapter}% - {\protect\numberline{\thechapter}#1}% - \else - \addcontentsline{toc}{chapter}{#1}% - \fi - \else - \addcontentsline{toc}{chapter}{#1}% - \fi - \chaptermark{#1}% - \addtocontents{lof}{\protect\addvspace{10\p@}}% - \addtocontents{lot}{\protect\addvspace{10\p@}}% - \if@twocolumn - \@topnewpage[\@makechapterhead{#2}]% - \else - \@makechapterhead{#2}% - \@afterheading - \fi -}{% - \ifnum \c@secnumdepth >\m@ne - \if@mainmatter - \refstepcounter{chapter}% - \typeout{\@chapapp\space\thechapter.}% - \addcontentsline{toc}{chapter}% - {\protect\numberline{\thechapter}#1}% - \else - \addcontentsline{toc}{chapter}{#1}% - \fi - \else - \addcontentsline{toc}{chapter}{#1}% - \fi - \chaptermark{#1}% - \@addchapterlistsgaps - \if@twocolumn - \@topnewpage[\@makechapterhead{#2}]% - \else - \@makechapterhead{#2}% - \@afterheading - \fi} -\newfloat@replace@chapter{% - \refstepcounter{chapter}% - \ifnum\c@secnumdepth<\z@ \let\@secnumber\@empty - \else \let\@secnumber\thechapter \fi - \typeout{\chaptername\space\@secnumber}% - \def\@toclevel{0}% - \ifx\chaptername\appendixname \@tocwriteb\tocappendix{chapter}{#2}% - \else \@tocwriteb\tocchapter{chapter}{#2}\fi - \chaptermark{#1}% - \addtocontents{lof}{\protect\addvspace{10\p@}}% - \addtocontents{lot}{\protect\addvspace{10\p@}}% - \@makechapterhead{#2}\@afterheading -}{% - \refstepcounter{chapter}% - \ifnum\c@secnumdepth<\z@ \let\@secnumber\@empty - \else \let\@secnumber\thechapter \fi - \typeout{\chaptername\space\@secnumber}% - \def\@toclevel{0}% - \ifx\chaptername\appendixname \@tocwriteb\tocappendix{chapter}{#2}% - \else \@tocwriteb\tocchapter{chapter}{#2}\fi - \chaptermark{#1}% - \@addchapterlistsgaps - \@makechapterhead{#2}\@afterheading} -\@ifpackageloaded{tocbasic}{% - \let\newfloat@replace@chapter\@gobbletwo}{} -\ifcsname insertchapterspace\endcsname - \renewcommand*\insertchapterspace{\@addchapterlistsgaps} - \let\newfloat@replace@chapter\@gobbletwo -\fi -\newfloat@replace@chapter{% - \ifnum \c@secnumdepth >\m@ne - \refstepcounter{chapter}% - \typeout{\@chapapp\space\thechapter.}% - \addcontentsline{toc}{chapter}% - {\protect\numberline{\thechapter}\toc@font0 #1}% - \else - \addcontentsline{toc}{chapter}{\toc@font0 #1}% - \fi - \chaptermark{#1}% - \addtocontents{lof}{\protect\addvspace{10\p@}}% - \addtocontents{lot}{\protect\addvspace{10\p@}}% - \if@twocolumn - \@topnewpage[\@makechapterhead{#2}]% - \else - \@makechapterhead{#2}% - \@afterheading - \fi -}{% - \ifnum \c@secnumdepth >\m@ne - \refstepcounter{chapter}% - \typeout{\@chapapp\space\thechapter.}% - \addcontentsline{toc}{chapter}% - {\protect\numberline{\thechapter}\toc@font0 #1}% - \else - \addcontentsline{toc}{chapter}{\toc@font0 #1}% - \fi - \chaptermark{#1}% - \@addchapterlistsgaps - \if@twocolumn - \@topnewpage[\@makechapterhead{#2}]% - \else - \@makechapterhead{#2}% - \@afterheading - \fi} - % boek(3).cls [2004/06/07 v2.1a NTG LaTeX document class] -\newfloat@replace@chapter{% - \ifnum \c@secnumdepth >\m@ne - \if@mainmatter - \refstepcounter{chapter}% - \typeout{\@chapapp\space\thechapter.}% - \addcontentsline{toc}{chapter}% - {\protect\numberline{\thechapter}\toc@font0 #1}% - \else - \addcontentsline{toc}{chapter}{\toc@font0 #1}% - \fi - \else - \addcontentsline{toc}{chapter}{\toc@font0 #1}% - \fi - \chaptermark{#1}% - \addtocontents{lof}{\protect\addvspace{10\p@}}% - \addtocontents{lot}{\protect\addvspace{10\p@}}% - \if@twocolumn - \@topnewpage[\@makechapterhead{#2}]% - \else - \@makechapterhead{#2}% - \@afterheading - \fi -}{% - \ifnum \c@secnumdepth >\m@ne - \if@mainmatter - \refstepcounter{chapter}% - \typeout{\@chapapp\space\thechapter.}% - \addcontentsline{toc}{chapter}% - {\protect\numberline{\thechapter}\toc@font0 #1}% - \else - \addcontentsline{toc}{chapter}{\toc@font0 #1}% - \fi - \else - \addcontentsline{toc}{chapter}{\toc@font0 #1}% - \fi - \chaptermark{#1}% - \@addchapterlistsgaps - \if@twocolumn - \@topnewpage[\@makechapterhead{#2}]% - \else - \@makechapterhead{#2}% - \@afterheading - \fi} -\newfloat@replace@chapter{% - \ifnum \c@secnumdepth >\m@ne - \if@mainmatter - \refstepcounter{chapter}% - \typeout{\chaptername\space\thechapter.} - \if@thema - \ifx\@shortauthor\@empty - \addcontentsline{toc}{chapter}{% - \protect\numberline{\thechapter.}#1}% - \else - \addcontentsline{toc}{chapter}{% - \protect\numberline{\thechapter.}% - \@shortauthor\hfill\mbox{}\vskip\normallineskip #1}% - \fi - \else - \addcontentsline{toc}{chapter}{% - \protect\numberline{\thechapter.}#1}% - \fi - \else - \addcontentsline{toc}{chapter}{#1} - \fi - \else - \addcontentsline{toc}{chapter}{#1} - \fi - \chaptermark{#1} - \addtocontents{lof}{\protect\addvspace{10pt}} - \addtocontents{lot}{\protect\addvspace{10pt}} - \if@twocolumn - \@topnewpage[\@makechapterhead{#2}] - \else - \@makechapterhead{#2} - \@afterheading - \fi -}{% - \ifnum \c@secnumdepth >\m@ne - \if@mainmatter - \refstepcounter{chapter}% - \typeout{\chaptername\space\thechapter.}% - \if@thema - \ifx\@shortauthor\@empty - \addcontentsline{toc}{chapter}{% - \protect\numberline{\thechapter.}#1}% - \else - \addcontentsline{toc}{chapter}{% - \protect\numberline{\thechapter.}% - \@shortauthor\hfill\mbox{}\vskip\normallineskip #1}% - \fi - \else - \addcontentsline{toc}{chapter}{% - \protect\numberline{\thechapter.}#1}% - \fi - \else - \addcontentsline{toc}{chapter}{#1}% - \fi - \else - \addcontentsline{toc}{chapter}{#1}% - \fi - \chaptermark{#1}% - \@addchapterlistsgaps - \if@twocolumn - \@topnewpage[\@makechapterhead{#2}]% - \else - \@makechapterhead{#2}% - \@afterheading - \fi} -\ifx\newfloat@replace@chapter\@gobbletwo \else - \newfloat@InfoNoLine{% - Unsupported document class, or \noexpand\@chapter\MessageBreak - was already redefined by another package} - \newfloat@InfoNoLine{\string\@chapter\space=\space\meaning\@chapter} - \newfloat@InfoNoLine{\string\Hy@org@chapter\space=\space\meaning\Hy@org@chapter} - \newfloat@ifplanb{% - \newfloat@InfoNoLine{Trying Plan B..}% - \let\newfloat@addtocontents@ORI\addtocontents - \long\def\addtocontents#1#2{% - \newfloat@addtocontents{#1}{#2}#2\addvspace\newfloat@nil}% - \long\def\newfloat@addtocontents#1#2#3\addvspace#4\newfloat@nil{% - \def\newfloat@tempa{#4}% - \ifx\newfloat@tempa\@empty - \newfloat@addtocontents@ORI{#1}{#2}% - \else - \ifx\newfloat@addtocontents@ext\@undefined - \newfloat@Info{Setting Plan B file extension to `#1'...}% - \xdef\newfloat@addtocontents@ext{#1}% - \fi - \edef\newfloat@tempa{#1}% - \ifx\newfloat@tempa\newfloat@addtocontents@ext - \begingroup - \let\addtocontents\newfloat@addtocontents@ORI - \@addchapterlistsgaps - \endgroup - \fi - \fi}} -\fi -\newcommand\newfloat@ForEachNew[2][newfloat@@list]{% - \AtBeginDocument{% - \ifcsname#1\endcsname - \def\@elt##1{#2}% - \newfloat@@list - \let\@elt\relax - \fi}}% -\@onlypreamble\newfloat@ForEachNew -%% \begin{macrocode} -\newfloat@ForEachNew[float@exts]{% - \@nameuse{@ifchapterlistsgap@#1}{% if switched on - \let\float@do=\relax - \edef\@tempa{% - \noexpand\float@exts{\the\float@exts\float@do{\@nameuse{ext@#1}}}}% - \@tempa}} -\newfloat@ForEachNew[FP@floatBegin]{% - \newcounter{FP@#1C}% - \newenvironment{FP#1}{\FP@floatBegin{#1}}{\FP@floatEnd}} -\providecommand*\ext@lstlisting{lol}% -\newfloat@ForEachNew[@rotfloat]{% - \newenvironment{sideways#1}{\@rotfloat{#1}}{\end@rotfloat}% - \newenvironment{sideways#1*}{\@rotdblfloat{#1}}{\end@rotdblfloat}} -\newcommand*\newfloat@For@SC[2]{% - \def#1{b}% = \sidecaptionvpos{#2}{b} (v1.6) - \newenvironment{SC#2}% - {\SC@float[#1]{#2}}{\endSC@float}% - \newenvironment{SC#2*}% - {\SC@dblfloat[#1]{#2}}{\endSC@dblfloat}} -\@onlypreamble\newfloat@For@SC -\newfloat@ForEachNew[SC@float]{% - \expandafter\newfloat@For@SC\csname SC@#1@vpos\endcsname{#1}} -\newfloat@ForEachNew[wrapfloat]{% - \newenvironment{wrap#1}{\wrapfloat{#1}}{\endwrapfloat}} -\endinput -%% -%% End of file `newfloat.sty'. diff --git a/docs/_build/latex/python.ist b/docs/_build/latex/python.ist deleted file mode 100644 index 9ffa0f9..0000000 --- a/docs/_build/latex/python.ist +++ /dev/null @@ -1,11 +0,0 @@ -line_max 100 -headings_flag 1 -heading_prefix " \\bigletter " - -preamble "\\begin{theindex} -\\def\\bigletter#1{{\\Large\\sffamily#1}\\nopagebreak\\vspace{1mm}} - -" - -symhead_positive "{Symbols}" -numhead_positive "{Numbers}" diff --git a/docs/_build/latex/sphinx.sty b/docs/_build/latex/sphinx.sty deleted file mode 100644 index d025a07..0000000 --- a/docs/_build/latex/sphinx.sty +++ /dev/null @@ -1,917 +0,0 @@ -% -% sphinx.sty -% -% Adapted from the old python.sty, mostly written by Fred Drake, -% by Georg Brandl. -% - -\NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesPackage{sphinx}[2010/01/15 LaTeX package (Sphinx markup)] - -% this is the \ltx@ifundefined of ltxcmds.sty, which is loaded by -% hyperref.sty, but we need it before, and initial ltxcmds.sty -% as in TL2009/Debian had wrong definition. -\newcommand{\spx@ifundefined}[1]{% - \ifcsname #1\endcsname - \expandafter\ifx\csname #1\endcsname\relax - \expandafter\expandafter\expandafter\@firstoftwo - \else - \expandafter\expandafter\expandafter\@secondoftwo - \fi - \else - \expandafter\@firstoftwo - \fi -} - -\@ifclassloaded{memoir}{}{\RequirePackage{fancyhdr}} - -% for \text macro and \iffirstchoice@ conditional even if amsmath not loaded -\RequirePackage{amstext} -\RequirePackage{textcomp} -% fancybox not used anymore and will be removed at Sphinx-1.5 -\RequirePackage{fancybox} -\RequirePackage{titlesec} -\RequirePackage{tabulary} -\RequirePackage{makeidx} -% For framing code-blocks and warning type notices, and shadowing topics -\RequirePackage{framed} -\newif\ifspx@inframed % flag set if we are in a framed environment -% ifthen not used anymore and will be removed at Sphinx-1.5 -\RequirePackage{ifthen} -% The xcolor package draws better fcolorboxes around verbatim code -\IfFileExists{xcolor.sty}{ - \RequirePackage{xcolor} -}{ - \RequirePackage{color} -} -% For highlighted code. -\RequirePackage{fancyvrb} -% For table captions. -\RequirePackage{threeparttable} -% Handle footnotes in tables. -\RequirePackage{footnote} -\makesavenoteenv{tabulary} -% For floating figures in the text. -\RequirePackage{wrapfig} -% Separate paragraphs by space by default. -\RequirePackage{parskip} -% For parsed-literal blocks. -\RequirePackage{alltt} -% Display "real" single quotes in literal blocks. -\RequirePackage{upquote} -% For the H specifier. Do not \restylefloat{figure}, it breaks Sphinx code -% for allowing figures in tables. -\RequirePackage{float} - -% Redefine these colors to your liking in the preamble. -\definecolor{TitleColor}{rgb}{0.126,0.263,0.361} -\definecolor{InnerLinkColor}{rgb}{0.208,0.374,0.486} -\definecolor{OuterLinkColor}{rgb}{0.216,0.439,0.388} -% Redefine these colors to something if you want to have colored -% background and border for code examples. -\definecolor{VerbatimColor}{rgb}{1,1,1} -\definecolor{VerbatimBorderColor}{rgb}{0,0,0} - -% Uncomment these two lines to ignore the paper size and make the page -% size more like a typical published manual. -%\renewcommand{\paperheight}{9in} -%\renewcommand{\paperwidth}{8.5in} % typical squarish manual -%\renewcommand{\paperwidth}{7in} % O'Reilly ``Programmming Python'' - -% use pdfoutput for pTeX and dvipdfmx -% when pTeX (\kanjiskip is defined), set pdfoutput to evade \include{pdfcolor} -\ifx\kanjiskip\undefined\else - \newcount\pdfoutput\pdfoutput=0 -\fi - -\RequirePackage{graphicx} - -% for PDF output, use colors and maximal compression -\newif\ifsphinxpdfoutput % used in \maketitle -\ifx\pdfoutput\undefined\else - \ifnum\pdfoutput=\z@ - \let\py@NormalColor\relax - \let\py@TitleColor\relax - \else - \sphinxpdfoutputtrue - \input{pdfcolor} - \def\py@NormalColor{\color[rgb]{0.0,0.0,0.0}} - \def\py@TitleColor{\color{TitleColor}} - \pdfcompresslevel=9 - \fi -\fi - -% XeLaTeX can do colors, too -\ifx\XeTeXrevision\undefined\else - \def\py@NormalColor{\color[rgb]{0.0,0.0,0.0}} - \def\py@TitleColor{\color{TitleColor}} -\fi - -% Increase printable page size (copied from fullpage.sty) -\topmargin 0pt -\advance \topmargin by -\headheight -\advance \topmargin by -\headsep - -% attempt to work a little better for A4 users -\textheight \paperheight -\advance\textheight by -2in - -\oddsidemargin 0pt -\evensidemargin 0pt -%\evensidemargin -.25in % for ``manual size'' documents -\marginparwidth 0.5in - -\textwidth \paperwidth -\advance\textwidth by -2in - - -% Style parameters and macros used by most documents here -\raggedbottom -\sloppy -\hbadness = 5000 % don't print trivial gripes - -\pagestyle{empty} % start this way - -% Use this to set the font family for headers and other decor: -\newcommand{\py@HeaderFamily}{\sffamily\bfseries} -\newcommand{\sphinxSetHeaderFamily}[1]{\renewcommand{\py@HeaderFamily}{#1}} - -% Redefine the 'normal' header/footer style when using "fancyhdr" package: -\spx@ifundefined{fancyhf}{}{ - % Use \pagestyle{normal} as the primary pagestyle for text. - \fancypagestyle{normal}{ - \fancyhf{} - \fancyfoot[LE,RO]{{\py@HeaderFamily\thepage}} - \fancyfoot[LO]{{\py@HeaderFamily\nouppercase{\rightmark}}} - \fancyfoot[RE]{{\py@HeaderFamily\nouppercase{\leftmark}}} - \fancyhead[LE,RO]{{\py@HeaderFamily \@title, \py@release}} - \renewcommand{\headrulewidth}{0.4pt} - \renewcommand{\footrulewidth}{0.4pt} - % define chaptermark with \@chappos when \@chappos is available for Japanese - \spx@ifundefined{@chappos}{} - {\def\chaptermark##1{\markboth{\@chapapp\space\thechapter\space\@chappos\space ##1}{}}} - } - % Update the plain style so we get the page number & footer line, - % but not a chapter or section title. This is to keep the first - % page of a chapter and the blank page between chapters `clean.' - \fancypagestyle{plain}{ - \fancyhf{} - \fancyfoot[LE,RO]{{\py@HeaderFamily\thepage}} - \renewcommand{\headrulewidth}{0pt} - \renewcommand{\footrulewidth}{0.4pt} - } -} - -% Some custom font markup commands. -% *** the macros without \sphinx prefix are still defined at bottom of file *** -\newcommand{\sphinxstrong}[1]{{\textbf{#1}}} -% let \sphinxcode and \sphinxbfcode use straight quotes. \@noligs patched by upquote, -% but needs protection in "moving arguments" such as for captions. -% Use \scantokens to handle e.g. \item[{\sphinxcode{'fontenc'}}] -\DeclareRobustCommand{\sphinxcode}[1]{{\@noligs\scantokens{\texttt{#1}\relax}}} -\newcommand{\sphinxbfcode}[1]{\sphinxcode{\bfseries#1}} -\newcommand{\sphinxemail}[1]{\textsf{#1}} -\newcommand{\sphinxtablecontinued}[1]{\textsf{#1}} -\newcommand{\sphinxtitleref}[1]{\emph{#1}} -\newcommand{\sphinxmenuselection}[1]{\emph{#1}} -\newcommand{\sphinxaccelerator}[1]{\underline{#1}} -\newcommand{\sphinxcrossref}[1]{\emph{#1}} -\newcommand{\sphinxtermref}[1]{\emph{#1}} - -% miscellaneous related to footnotes -\newcommand*{\sphinxAtStartFootnote}{\mbox{ }} -% Support large numbered footnotes in minipage (cf. admonitions) -\def\thempfootnote{\arabic{mpfootnote}} - -% Redefine the Verbatim environment to allow border and background colors -% and to handle the top caption in a non separable by pagebreak way. -% The original environment is still used for verbatims within tables. -\let\OriginalVerbatim=\Verbatim -\let\endOriginalVerbatim=\endVerbatim - -\newcommand\spx@colorbox [2]{% -% #1 will be \fcolorbox or, for first part of frame: \spx@fcolorbox -% let the framing obey the current indentation (adapted from framed.sty's code). - \hskip\@totalleftmargin - \hskip-\fboxsep\hskip-\fboxrule - #1{VerbatimBorderColor}{VerbatimColor}{#2}% - \hskip-\fboxsep\hskip-\fboxrule - \hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth -} -% use of \color@b@x here is compatible with both xcolor.sty and color.sty -\def\spx@fcolorbox #1#2% - {\color@b@x {\fboxsep\z@\color{#1}\spx@VerbatimFBox}{\color{#2}}}% - -% The title is specified from outside as macro \sphinxVerbatimTitle. -% \sphinxVerbatimTitle is reset to empty after each use of Verbatim. -\newcommand*\sphinxVerbatimTitle {} -% Holder macro for labels of literal blocks. Set-up by LaTeX writer. -\newcommand*\sphinxLiteralBlockLabel {} -\newcommand*\sphinxSetupCaptionForVerbatim [2] -{% - \needspace{\sphinxliteralblockneedspace}% -% insert a \label via \sphinxLiteralBlockLabel -% reset to normal the color for the literal block caption -% the caption inserts \abovecaptionskip whitespace above itself (usually 10pt) -% there is also \belowcaptionskip but it is usually zero, hence the \smallskip - \def\sphinxVerbatimTitle - {\py@NormalColor\captionof{#1}{\sphinxLiteralBlockLabel #2}\smallskip }% -} - -% Inspired and adapted from framed.sty's \CustomFBox with extra handling -% of a non separable by pagebreak caption, and controlled counter stepping. -\newif\ifspx@myfirstframedpass -\long\def\spx@VerbatimFBox#1{% - \leavevmode - \begingroup - % framed.sty does some measuring but this macro adds possibly a caption - % use amsmath conditional to inhibit the caption counter stepping after - % first pass - \ifspx@myfirstframedpass\else\firstchoice@false\fi - \setbox\@tempboxa\hbox{\kern\fboxsep{#1}\kern\fboxsep}% - \hbox - {\lower\dimexpr\fboxrule+\fboxsep+\dp\@tempboxa - \hbox{% - \vbox{\ifx\sphinxVerbatimTitle\empty\else - % add the caption in a centered way above possibly indented frame - % hide its width from framed.sty's measuring step - % note that the caption brings \abovecaptionskip top vertical space - \moveright\dimexpr\fboxrule+.5\wd\@tempboxa - \hb@xt@\z@{\hss\begin{minipage}{\wd\@tempboxa}% - \sphinxVerbatimTitle - \end{minipage}\hss}\fi - % draw frame border _latest_ to avoid pdf viewer issue - \kern\fboxrule - \hbox{\kern\fboxrule - \vbox{\vskip\fboxsep\copy\@tempboxa\vskip\fboxsep}% - \kern-\wd\@tempboxa\kern-\fboxrule - \vrule\@width\fboxrule - \kern\wd\@tempboxa - \vrule\@width\fboxrule}% - \kern-\dimexpr\fboxsep+\ht\@tempboxa+\dp\@tempboxa - +\fboxsep+\fboxrule\relax - \hrule\@height\fboxrule - \kern\dimexpr\fboxsep+\ht\@tempboxa+\dp\@tempboxa+\fboxsep\relax - \hrule\@height\fboxrule}% - }}% - \endgroup - \global\spx@myfirstframedpassfalse -} - -% For linebreaks inside Verbatim environment from package fancyvrb. -\newbox\sphinxcontinuationbox -\newbox\sphinxvisiblespacebox -% These are user customizable e.g. from latex_elements's preamble key. -% Use of \textvisiblespace for compatibility with XeTeX/LuaTeX/fontspec. -\newcommand*\sphinxvisiblespace {\textcolor{red}{\textvisiblespace}} -\newcommand*\sphinxcontinuationsymbol {\textcolor{red}{\llap{\tiny$\m@th\hookrightarrow$}}} -\newcommand*\sphinxcontinuationindent {3ex } -\newcommand*\sphinxafterbreak {\kern\sphinxcontinuationindent\copy\sphinxcontinuationbox} - -% Take advantage of the already applied Pygments mark-up to insert -% potential linebreaks for TeX processing. -% {, <, #, %, $, ' and ": go to next line. -% _, }, ^, &, >, - and ~: stay at end of broken line. -% Use of \textquotesingle for straight quote. -\newcommand*\sphinxbreaksatspecials {% - \def\PYGZus{\discretionary{\char`\_}{\sphinxafterbreak}{\char`\_}}% - \def\PYGZob{\discretionary{}{\sphinxafterbreak\char`\{}{\char`\{}}% - \def\PYGZcb{\discretionary{\char`\}}{\sphinxafterbreak}{\char`\}}}% - \def\PYGZca{\discretionary{\char`\^}{\sphinxafterbreak}{\char`\^}}% - \def\PYGZam{\discretionary{\char`\&}{\sphinxafterbreak}{\char`\&}}% - \def\PYGZlt{\discretionary{}{\sphinxafterbreak\char`\<}{\char`\<}}% - \def\PYGZgt{\discretionary{\char`\>}{\sphinxafterbreak}{\char`\>}}% - \def\PYGZsh{\discretionary{}{\sphinxafterbreak\char`\#}{\char`\#}}% - \def\PYGZpc{\discretionary{}{\sphinxafterbreak\char`\%}{\char`\%}}% - \def\PYGZdl{\discretionary{}{\sphinxafterbreak\char`\$}{\char`\$}}% - \def\PYGZhy{\discretionary{\char`\-}{\sphinxafterbreak}{\char`\-}}% - \def\PYGZsq{\discretionary{}{\sphinxafterbreak\textquotesingle}{\textquotesingle}}% - \def\PYGZdq{\discretionary{}{\sphinxafterbreak\char`\"}{\char`\"}}% - \def\PYGZti{\discretionary{\char`\~}{\sphinxafterbreak}{\char`\~}}% -} - -\def\sphinx@verbatim@nolig@list {\do \`}% -% Some characters . , ; ? ! / are not pygmentized. -% This macro makes them "active" and they will insert potential linebreaks -\newcommand*\sphinxbreaksatpunct {% - \lccode`\~`\.\lowercase{\def~}{\discretionary{\char`\.}{\sphinxafterbreak}{\char`\.}}% - \lccode`\~`\,\lowercase{\def~}{\discretionary{\char`\,}{\sphinxafterbreak}{\char`\,}}% - \lccode`\~`\;\lowercase{\def~}{\discretionary{\char`\;}{\sphinxafterbreak}{\char`\;}}% - \lccode`\~`\:\lowercase{\def~}{\discretionary{\char`\:}{\sphinxafterbreak}{\char`\:}}% - \lccode`\~`\?\lowercase{\def~}{\discretionary{\char`\?}{\sphinxafterbreak}{\char`\?}}% - \lccode`\~`\!\lowercase{\def~}{\discretionary{\char`\!}{\sphinxafterbreak}{\char`\!}}% - \lccode`\~`\/\lowercase{\def~}{\discretionary{\char`\/}{\sphinxafterbreak}{\char`\/}}% - \catcode`\.\active - \catcode`\,\active - \catcode`\;\active - \catcode`\:\active - \catcode`\?\active - \catcode`\!\active - \catcode`\/\active - \lccode`\~`\~ -} - -\renewcommand{\Verbatim}[1][1]{% - % quit horizontal mode if we are still in a paragraph - \par - % list starts new par, but we don't want it to be set apart vertically - \parskip\z@skip - % first, let's check if there is a caption - \ifx\sphinxVerbatimTitle\empty - \addvspace\z@% counteract possible previous negative skip (French lists!) - \smallskip - % there was no caption. Check if nevertheless a label was set. - \ifx\sphinxLiteralBlockLabel\empty\else - % we require some space to be sure hyperlink target from \phantomsection - % will not be separated from upcoming verbatim by a page break - \needspace{\sphinxliteralblockwithoutcaptionneedspace}% - \phantomsection\sphinxLiteralBlockLabel - \fi - \fi - % non-empty \sphinxVerbatimTitle has label inside it (in case there is one) - % Customize framed.sty \MakeFramed to glue caption to literal block - \global\spx@myfirstframedpasstrue - % via \spx@fcolorbox, will use \spx@VerbatimFBox which inserts title - \def\FrameCommand {\spx@colorbox\spx@fcolorbox }% - \let\FirstFrameCommand\FrameCommand - % for mid pages and last page portion of (long) split frame: - \def\MidFrameCommand{\spx@colorbox\fcolorbox }% - \let\LastFrameCommand\MidFrameCommand - % fancyvrb's Verbatim puts each input line in (unbreakable) horizontal boxes. - % This customization wraps each line from the input in a \vtop, thus - % allowing it to wrap and display on two or more lines in the latex output. - % - The codeline counter will be increased only once. - % - The wrapped material will not break across pages, it is impossible - % to achieve this without extensive rewrite of fancyvrb. - % - The (not used in sphinx) obeytabs option to Verbatim is - % broken by this change (showtabs and tabspace work). - \sbox\sphinxcontinuationbox {\sphinxcontinuationsymbol}% - \sbox\sphinxvisiblespacebox {\FV@SetupFont\sphinxvisiblespace}% - \def\FancyVerbFormatLine ##1{\hsize\linewidth - \vtop{\raggedright\hyphenpenalty\z@\exhyphenpenalty\z@ - \doublehyphendemerits\z@\finalhyphendemerits\z@ - \strut ##1\strut}% - }% - % If the linebreak is at a space, the latter will be displayed as visible - % space at end of first line, and a continuation symbol starts next line. - % Stretch/shrink are however usually zero for typewriter font. - \def\FV@Space {% - \nobreak\hskip\z@ plus\fontdimen3\font minus\fontdimen4\font - \discretionary{\copy\sphinxvisiblespacebox}{\sphinxafterbreak} - {\kern\fontdimen2\font}% - }% - % go around fancyvrb's check of @currenvir (for case of minipage below) - \renewcommand*{\VerbatimEnvironment}{\gdef\FV@EnvironName{Verbatim}}% - % go around fancyvrb's check of current list depth - \def\@toodeep {\advance\@listdepth\@ne}% - % Allow breaks at special characters using \PYG... macros. - \sphinxbreaksatspecials - % The list environment is needed to control perfectly the vertical space. - % Note: \OuterFrameSep used by framed.sty is later set to \topsep hence 0pt. - % - if caption: vertical space above caption = (\abovecaptionskip + D) with - % D = \baselineskip-\FrameHeightAdjust, and then \smallskip above frame. - % - if no caption: (\smallskip + D) above frame. By default D=6pt. - % Use trivlist rather than list to avoid possible "too deeply nested" error. - \itemsep \z@skip - \topsep \z@skip - \partopsep \z@skip% trivlist will set \parsep to \parskip = zero (see above) - % \leftmargin will be set to zero by trivlist - \rightmargin\z@ - \parindent \z@% becomes \itemindent. Default zero, but perhaps overwritten. - \trivlist\item\relax - % use a minipage if we are already inside a framed environment - \ifspx@inframed\noindent\begin{minipage}{\linewidth}\fi - \MakeFramed {% adapted over from framed.sty's snugshade environment - \advance\hsize-\width\@totalleftmargin\z@\linewidth\hsize - \@setminipage }% - \small - % For grid placement from \strut's in \FancyVerbFormatLine - \lineskip\z@skip - % Breaks at punctuation characters . , ; ? ! and / need catcode=\active - % and the active comma should not be overwritten by \@noligs - \let\verbatim@nolig@list \sphinx@verbatim@nolig@list - \OriginalVerbatim[#1,codes*=\sphinxbreaksatpunct]% -} -\renewcommand{\endVerbatim}{% - \endOriginalVerbatim - \par\unskip\@minipagefalse\endMakeFramed - \ifspx@inframed\end{minipage}\fi - \endtrivlist -} - -% define macro to frame contents and add shadow on right and bottom -% use public names for customizable lengths -\newlength\sphinxshadowsep \setlength\sphinxshadowsep {5pt} -\newlength\sphinxshadowsize \setlength\sphinxshadowsize {4pt} -\newlength\sphinxshadowrule -% this uses \fboxrule value at loading time of sphinx.sty (0.4pt normally) -\setlength\sphinxshadowrule {\fboxrule} - -\long\def\spx@ShadowFBox#1{% - \leavevmode\begingroup - % first we frame the box #1 - \setbox\@tempboxa - \hbox{\vrule\@width\sphinxshadowrule - \vbox{\hrule\@height\sphinxshadowrule - \kern\sphinxshadowsep - \hbox{\kern\sphinxshadowsep #1\kern\sphinxshadowsep}% - \kern\sphinxshadowsep - \hrule\@height\sphinxshadowrule}% - \vrule\@width\sphinxshadowrule}% - % Now we add the shadow, like \shadowbox from fancybox.sty would do - \dimen@\dimexpr.5\sphinxshadowrule+\sphinxshadowsize\relax - \hbox{\vbox{\offinterlineskip - \hbox{\copy\@tempboxa\kern-.5\sphinxshadowrule - % add shadow on right side - \lower\sphinxshadowsize - \hbox{\vrule\@height\ht\@tempboxa \@width\dimen@}% - }% - \kern-\dimen@ % shift back vertically to bottom of frame - % and add shadow at bottom - \moveright\sphinxshadowsize - \vbox{\hrule\@width\wd\@tempboxa \@height\dimen@}% - }% - % move left by the size of right shadow so shadow adds no width - \kern-\sphinxshadowsize - }% - \endgroup -} - -% use framed.sty to allow page breaks in frame+shadow -% works well inside Lists and Quote-like environments -% produced by ``topic'' directive (or local contents) -% could nest if LaTeX writer authorized it -\newenvironment{sphinxShadowBox} - {\def\FrameCommand {\spx@ShadowFBox }% - % configure framed.sty not to add extra vertical spacing - \spx@ifundefined{OuterFrameSep}{}{\OuterFrameSep\z@skip}% - % the \trivlist will add the vertical spacing on top and bottom which is - % typical of center environment as used in Sphinx <= 1.4.1 - % the \noindent has the effet of an extra blank line on top, to - % imitate closely the layout from Sphinx <= 1.4.1; the \FrameHeightAdjust - % will put top part of frame on this baseline. - \def\FrameHeightAdjust {\baselineskip}% - \trivlist\item\noindent - % use a minipage if we are already inside a framed environment - \ifspx@inframed\begin{minipage}{\linewidth}\fi - \MakeFramed {\spx@inframedtrue - % framed.sty puts into "\width" the added width (=2shadowsep+2shadowrule) - % adjust \hsize to what the contents must use - \advance\hsize-\width - % adjust LaTeX parameters to behave properly in indented/quoted contexts - \FrameRestore - % typeset the contents as in a minipage (Sphinx <= 1.4.1 used a minipage and - % itemize/enumerate are therein typeset more tightly, we want to keep - % that). We copy-paste from LaTeX source code but don't do a real minipage. - \@pboxswfalse - % for footnotes, but Sphinx inactivates footnotes in topics - \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@ - \let\@footnotetext\@mpfootnotetext - \let\@listdepth\@mplistdepth \@mplistdepth\z@ - \@minipagerestore - \@setminipage - }% - }% - {% insert the "endminipage" code - \par\unskip - % handle (currently non existing) minipage style footnotes - \ifvoid\@mpfootins\else - \vskip\skip\@mpfootins\normalcolor\footnoterule\unvbox\@mpfootins - \fi - \@minipagefalse - \endMakeFramed - \ifspx@inframed\end{minipage}\fi - \endtrivlist - } - - -% \moduleauthor{name}{email} -\newcommand{\moduleauthor}[2]{} - -% \sectionauthor{name}{email} -\newcommand{\sectionauthor}[2]{} - -% Augment the sectioning commands used to get our own font family in place, -% and reset some internal data items: -\titleformat{\section}{\Large\py@HeaderFamily}% - {\py@TitleColor\thesection}{0.5em}{\py@TitleColor}{\py@NormalColor} -\titleformat{\subsection}{\large\py@HeaderFamily}% - {\py@TitleColor\thesubsection}{0.5em}{\py@TitleColor}{\py@NormalColor} -\titleformat{\subsubsection}{\py@HeaderFamily}% - {\py@TitleColor\thesubsubsection}{0.5em}{\py@TitleColor}{\py@NormalColor} -% By default paragraphs (and subsubsections) will not be numbered because -% sphinxmanual.cls and sphinxhowto.cls set secnumdepth to 2 -\titleformat{\paragraph}{\py@HeaderFamily}% - {\py@TitleColor\theparagraph}{0.5em}{\py@TitleColor}{\py@NormalColor} -\titleformat{\subparagraph}{\py@HeaderFamily}% - {\py@TitleColor\thesubparagraph}{0.5em}{\py@TitleColor}{\py@NormalColor} - -% {fulllineitems} is the main environment for object descriptions. -% -\newcommand{\py@itemnewline}[1]{% - \@tempdima\linewidth% - \advance\@tempdima \leftmargin\makebox[\@tempdima][l]{#1}% -} - -\newenvironment{fulllineitems}{ - \begin{list}{}{\labelwidth \leftmargin \labelsep 0pt - \rightmargin 0pt \topsep -\parskip \partopsep \parskip - \itemsep -\parsep - \let\makelabel=\py@itemnewline} -}{\end{list}} - -% \optional is used for ``[, arg]``, i.e. desc_optional nodes. -\newcommand{\sphinxoptional}[1]{% - {\textnormal{\Large[}}{#1}\hspace{0.5mm}{\textnormal{\Large]}}} - -\newlength{\py@argswidth} -\newcommand{\py@sigparams}[2]{% - \parbox[t]{\py@argswidth}{#1\sphinxcode{)}#2}} -\newcommand{\pysigline}[1]{\item[#1]\nopagebreak} -\newcommand{\pysiglinewithargsret}[3]{% - \settowidth{\py@argswidth}{#1\sphinxcode{(}}% - \addtolength{\py@argswidth}{-2\py@argswidth}% - \addtolength{\py@argswidth}{\linewidth}% - \item[#1\sphinxcode{(}\py@sigparams{#2}{#3}]} - -% Production lists -% -\newenvironment{productionlist}{ -% \def\sphinxoptional##1{{\Large[}##1{\Large]}} - \def\production##1##2{\\\sphinxcode{##1}&::=&\sphinxcode{##2}} - \def\productioncont##1{\\& &\sphinxcode{##1}} - \parindent=2em - \indent - \setlength{\LTpre}{0pt} - \setlength{\LTpost}{0pt} - \begin{longtable}[l]{lcl} -}{% - \end{longtable} -} - -% Notices / Admonitions -% - -% Code adapted from framed.sty's "snugshade" environment. -% Nesting works (inner frames do not allow page breaks). -\newcommand{\py@heavybox}{\par - \setlength{\FrameRule}{\p@}% 1pt - \setlength{\FrameSep}{\dimexpr.6\baselineskip-\FrameRule\relax} - % configure framed.sty's parameters to obtain same vertical spacing - % as for "light" boxes. We need for this to manually insert parskip glue and - % revert a skip done by framed before the frame. - \spx@ifundefined{OuterFrameSep}{}{\OuterFrameSep\z@skip}% - \vspace{\FrameHeightAdjust} - % copied/adapted from framed.sty's snugshade - \def\FrameCommand##1{\hskip\@totalleftmargin - \fboxsep\FrameSep \fboxrule\FrameRule\fbox{##1}% - \hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth}% - % use a minipage if we are already inside a framed environment - \ifspx@inframed - \noindent\begin{minipage}{\linewidth} - \else - % handle case where notice is first thing in a list item (or is quoted) - \if@inlabel - \noindent\par\vspace{-\baselineskip} - \else - \vspace{\parskip} - \fi - \fi - \MakeFramed {\spx@inframedtrue - \advance\hsize-\width \@totalleftmargin\z@ \linewidth\hsize - % minipage initialization copied from LaTeX source code. - \@pboxswfalse - % for footnotes - \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@ - \let\@footnotetext\@mpfootnotetext - \let\@listdepth\@mplistdepth \@mplistdepth\z@ - \@minipagerestore - \@setminipage }% - } -\newcommand{\py@endheavybox}{% - \par\unskip - % handles footnotes - \ifvoid\@mpfootins\else - \vskip\skip\@mpfootins\normalcolor\footnoterule\unvbox\@mpfootins - \fi - \@minipagefalse - \endMakeFramed - \ifspx@inframed\end{minipage}\fi - % arrange for similar spacing below frame as for "light" boxes. - \vskip .4\baselineskip - } - -\newcommand{\py@lightbox}{% - \par\allowbreak - \noindent\rule{\linewidth}{0.5pt}\par\nobreak - {\parskip\z@skip\noindent}% - } -\newcommand{\py@endlightbox}{% - \par - % counteract previous possible negative skip (French lists!): - % (we can't cancel that any earlier \vskip introduced a potential pagebreak) - \ifdim\lastskip<\z@\vskip-\lastskip\fi - \nobreak\vbox{\noindent\kern\@totalleftmargin - \rule[.4\baselineskip]{\linewidth}{0.5pt}\hss}\allowbreak - } - -% Some are quite plain: -\newcommand{\py@noticestart@note}{\py@lightbox} -\newcommand{\py@noticeend@note}{\py@endlightbox} -\newcommand{\py@noticestart@hint}{\py@lightbox} -\newcommand{\py@noticeend@hint}{\py@endlightbox} -\newcommand{\py@noticestart@important}{\py@lightbox} -\newcommand{\py@noticeend@important}{\py@endlightbox} -\newcommand{\py@noticestart@tip}{\py@lightbox} -\newcommand{\py@noticeend@tip}{\py@endlightbox} - -% Others gets more visible distinction: -\newcommand{\py@noticestart@warning}{\py@heavybox} -\newcommand{\py@noticeend@warning}{\py@endheavybox} -\newcommand{\py@noticestart@caution}{\py@heavybox} -\newcommand{\py@noticeend@caution}{\py@endheavybox} -\newcommand{\py@noticestart@attention}{\py@heavybox} -\newcommand{\py@noticeend@attention}{\py@endheavybox} -\newcommand{\py@noticestart@danger}{\py@heavybox} -\newcommand{\py@noticeend@danger}{\py@endheavybox} -\newcommand{\py@noticestart@error}{\py@heavybox} -\newcommand{\py@noticeend@error}{\py@endheavybox} - -\newenvironment{notice}[2]{ - \def\py@noticetype{#1} - \csname py@noticestart@#1\endcsname - \sphinxstrong{#2} % <- legacy code creates a space after {#2} -}{\csname py@noticeend@\py@noticetype\endcsname} - -% Allow the release number to be specified independently of the -% \date{}. This allows the date to reflect the document's date and -% release to specify the release that is documented. -% -\newcommand{\py@release}{} -\newcommand{\version}{} -\newcommand{\shortversion}{} -\newcommand{\releaseinfo}{} -\newcommand{\releasename}{Release} -\newcommand{\release}[1]{% - \renewcommand{\py@release}{\releasename\space\version}% - \renewcommand{\version}{#1}} -\newcommand{\setshortversion}[1]{% - \renewcommand{\shortversion}{#1}} -\newcommand{\setreleaseinfo}[1]{% - \renewcommand{\releaseinfo}{#1}} - -% Allow specification of the author's address separately from the -% author's name. This can be used to format them differently, which -% is a good thing. -% -\newcommand{\py@authoraddress}{} -\newcommand{\authoraddress}[1]{\renewcommand{\py@authoraddress}{#1}} - -% This sets up the fancy chapter headings that make the documents look -% at least a little better than the usual LaTeX output. -% -\spx@ifundefined{ChTitleVar}{}{ - \ChNameVar{\raggedleft\normalsize\py@HeaderFamily} - \ChNumVar{\raggedleft \bfseries\Large\py@HeaderFamily} - \ChTitleVar{\raggedleft \textrm{\Huge\py@HeaderFamily}} - % This creates chapter heads without the leading \vspace*{}: - \def\@makechapterhead#1{% - {\parindent \z@ \raggedright \normalfont - \ifnum \c@secnumdepth >\m@ne - \DOCH - \fi - \interlinepenalty\@M - \DOTI{#1} - } - } -} - -% Redefine description environment so that it is usable inside fulllineitems. -% -\renewcommand{\description}{% - \list{}{\labelwidth\z@% - \itemindent-\leftmargin% - \labelsep5pt% - \let\makelabel=\descriptionlabel}} - -% Definition lists; requested by AMK for HOWTO documents. Probably useful -% elsewhere as well, so keep in in the general style support. -% -\newenvironment{definitions}{% - \begin{description}% - \def\term##1{\item[##1]\mbox{}\\*[0mm]} -}{% - \end{description}% -} - -% Tell TeX about pathological hyphenation cases: -\hyphenation{Base-HTTP-Re-quest-Hand-ler} - - -% The following is stuff copied from docutils' latex writer. -% -\newcommand{\optionlistlabel}[1]{\normalfont\bfseries #1 \hfill}% \bf deprecated -\newenvironment{optionlist}[1] -{\begin{list}{} - {\setlength{\labelwidth}{#1} - \setlength{\rightmargin}{1cm} - \setlength{\leftmargin}{\rightmargin} - \addtolength{\leftmargin}{\labelwidth} - \addtolength{\leftmargin}{\labelsep} - \renewcommand{\makelabel}{\optionlistlabel}} -}{\end{list}} - -\newlength{\lineblockindentation} -\setlength{\lineblockindentation}{2.5em} -\newenvironment{lineblock}[1] -{\begin{list}{} - {\setlength{\partopsep}{\parskip} - \addtolength{\partopsep}{\baselineskip} - \topsep0pt\itemsep0.15\baselineskip\parsep0pt - \leftmargin#1} - \raggedright} -{\end{list}} - -% Re-define \includegraphics to resize images larger than the line width -% if the size is not specified. -% Warning: future version of Sphinx will not modify original \includegraphics, -% Below custom code will be direct definition of \sphinxincludegraphics, with -% \py@Oldincludegraphics replaced by direct use of original \includegraphics. -\let\py@Oldincludegraphics\includegraphics -\newbox\spx@image@box -\renewcommand*{\includegraphics}[2][\@empty]{% - \ifx\@empty #1% attention, #1 could be bb.., bad if first after \ifx - \setbox\spx@image@box=\hbox{\py@Oldincludegraphics{#2}}% - \ifdim \wd\spx@image@box>\linewidth - \py@Oldincludegraphics[width=\linewidth]{#2}% - \else - \leavevmode\box\spx@image@box - \fi - \else - \py@Oldincludegraphics[#1]{#2}% - \fi -} -% Writer will put \sphinxincludegraphics in LaTeX source, and with this, -% documents which used their own modified \includegraphics will compile -% as before. But see warning above. -\newcommand*{\sphinxincludegraphics}{\includegraphics} - -% to make pdf with correct encoded bookmarks in Japanese -% this should precede the hyperref package -\ifx\kanjiskip\undefined -% for non-Japanese: make sure bookmarks are ok also with lualatex - \PassOptionsToPackage{pdfencoding=unicode}{hyperref} -\else - \usepackage{atbegshi} - \ifx\ucs\undefined - \ifnum 42146=\euc"A4A2 - \AtBeginShipoutFirst{\special{pdf:tounicode EUC-UCS2}} - \else - \AtBeginShipoutFirst{\special{pdf:tounicode 90ms-RKSJ-UCS2}} - \fi - \else - \AtBeginShipoutFirst{\special{pdf:tounicode UTF8-UCS2}} - \fi -\fi - -% Include hyperref last. -\RequirePackage[colorlinks,breaklinks, - linkcolor=InnerLinkColor,filecolor=OuterLinkColor, - menucolor=OuterLinkColor,urlcolor=OuterLinkColor, - citecolor=InnerLinkColor]{hyperref} -% Fix anchor placement for figures with captions. -% (Note: we don't use a package option here; instead, we give an explicit -% \capstart for figures that actually have a caption.) -\RequirePackage{hypcap} - -% Set up styles of URL: it should be placed after hyperref -\urlstyle{same} - -% From docutils.writers.latex2e -% inline markup (custom roles) -% \DUrole{#1}{#2} tries \DUrole#1{#2} -\providecommand*{\DUrole}[2]{% - \ifcsname DUrole#1\endcsname% - \csname DUrole#1\endcsname{#2}% - \else% backwards compatibility: try \docutilsrole#1{#2} - \ifcsname docutilsrole#1\endcsname% - \csname docutilsrole#1\endcsname{#2}% - \else% - #2% - \fi% - \fi% -} - -\providecommand*{\DUprovidelength}[2]{% - \ifdefined#1\else\newlength{#1}\setlength{#1}{#2}\fi -} - -\DUprovidelength{\DUlineblockindent}{2.5em} -\ifdefined\DUlineblock\else - \newenvironment{DUlineblock}[1]{% - \list{}{\setlength{\partopsep}{\parskip} - \addtolength{\partopsep}{\baselineskip} - \setlength{\topsep}{0pt} - \setlength{\itemsep}{0.15\baselineskip} - \setlength{\parsep}{0pt} - \setlength{\leftmargin}{#1}} - \raggedright - } - {\endlist} -\fi - -% From footmisc.sty: allows footnotes in titles -\let\FN@sf@@footnote\footnote -\def\footnote{\ifx\protect\@typeset@protect - \expandafter\FN@sf@@footnote - \else - \expandafter\FN@sf@gobble@opt - \fi -} -\edef\FN@sf@gobble@opt{\noexpand\protect - \expandafter\noexpand\csname FN@sf@gobble@opt \endcsname} -\expandafter\def\csname FN@sf@gobble@opt \endcsname{% - \@ifnextchar[%] - \FN@sf@gobble@twobracket - \@gobble -} -\def\FN@sf@gobble@twobracket[#1]#2{} - -% adjust the margins for footer, -% this works with the jsclasses only (Japanese standard document classes) -\ifx\@jsc@uplatextrue\undefined\else - \hypersetup{setpagesize=false} - \setlength\footskip{2\baselineskip} - \addtolength{\textheight}{-2\baselineskip} -\fi - -% fix the double index and bibliography on the table of contents -% in jsclasses (Japanese standard document classes) -\ifx\@jsc@uplatextrue\undefined\else - \renewcommand{\theindex}{ - \cleardoublepage - \phantomsection - \py@OldTheindex - } - \renewcommand{\thebibliography}[1]{ - \cleardoublepage - \phantomsection - \py@OldThebibliography{1} - } -\fi - -% disable \@chappos in Appendix in pTeX -\ifx\kanjiskip\undefined\else - \let\py@OldAppendix=\appendix - \renewcommand{\appendix}{ - \py@OldAppendix - \gdef\@chappos{} - } -\fi - -% Define literal-block environment -\RequirePackage{newfloat} -\DeclareFloatingEnvironment{literal-block} -\spx@ifundefined{c@chapter} - {\SetupFloatingEnvironment{literal-block}{within=section,placement=h}} - {\SetupFloatingEnvironment{literal-block}{within=chapter,placement=h}} -\SetupFloatingEnvironment{literal-block}{name=List} -% control caption around literal-block -\RequirePackage{capt-of} -\RequirePackage{needspace} -% if the left page space is less than \literalblockneedspace, insert page-break -\newcommand{\sphinxliteralblockneedspace}{5\baselineskip} -\newcommand{\sphinxliteralblockwithoutcaptionneedspace}{1.5\baselineskip} - -% figure in table -\newenvironment{sphinxfigure-in-table}[1][\linewidth]{% - \def\@captype{figure}% - \begin{minipage}{#1}% -}{\end{minipage}} -% store original \caption macro for use with figures in longtable and tabulary -\AtBeginDocument{\let\spx@originalcaption\caption} -\newcommand*\sphinxfigcaption - {\ifx\equation$%$% this is trick to identify tabulary first pass - \firstchoice@false\else\firstchoice@true\fi - \spx@originalcaption } - -% by default, also define macros with the no-prefix names -\ifsphinxKeepOldNames - \typeout{** (sphinx) defining (legacy) text style macros without \string\sphinx\space prefix} - \typeout{** if clashes with packages, set latex_keep_old_macro_names=False in conf.py} - \@for\@tempa:=strong,bfcode,email,tablecontinued,titleref,% - menuselection,accelerator,crossref,termref,optional\do -{% first, check if command with no prefix already exists - \expandafter\newcommand\csname\@tempa\endcsname{}% - % if no error give it the meaning defined so far with \sphinx prefix - \expandafter\let\csname\@tempa\expandafter\endcsname - \csname sphinx\@tempa\endcsname - % redefine the \sphinx prefixed macro to expand to non-prefixed one - \expandafter\def\csname sphinx\@tempa\expandafter\endcsname - \expandafter{\csname\@tempa\endcsname}% -} - % robustified case needs special treatment - \newcommand\code{}\let\code\relax - \DeclareRobustCommand{\code}[1]{{\@noligs\scantokens{\texttt{#1}\relax}}} - \def\sphinxcode{\code}% -\fi diff --git a/docs/_build/latex/sphinxhowto.cls b/docs/_build/latex/sphinxhowto.cls deleted file mode 100644 index 8d5c592..0000000 --- a/docs/_build/latex/sphinxhowto.cls +++ /dev/null @@ -1,111 +0,0 @@ -% -% sphinxhowto.cls for Sphinx (http://sphinx-doc.org/) -% - -\NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesClass{sphinxhowto}[2009/06/02 Document class (Sphinx HOWTO)] - -\ifx\directlua\undefined\else -% if compiling with lualatex 0.85 or later load compatibility patch issued by -% the LaTeX team for older packages relying on \pdf<name> named primitives. - \IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{} -\fi - -% 'oneside' option overriding the 'twoside' default -\newif\if@oneside -\DeclareOption{oneside}{\@onesidetrue} -% Pass remaining document options to the parent class. -\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\sphinxdocclass}} -\ProcessOptions\relax - -% Default to two-side document -\if@oneside -% nothing to do (oneside is the default) -\else -\PassOptionsToClass{twoside}{\sphinxdocclass} -\fi - -\LoadClass{\sphinxdocclass} - -% Set some sane defaults for section numbering depth and TOC depth. You can -% reset these counters in your preamble. -% -\setcounter{secnumdepth}{2} - -% Change the title page to look a bit better, and fit in with the fncychap -% ``Bjarne'' style a bit better. -% -\renewcommand{\maketitle}{% - \noindent\rule{\textwidth}{1pt}\ifsphinxpdfoutput\newline\null\fi\par - \ifsphinxpdfoutput - \begingroup - % These \defs are required to deal with multi-line authors; it - % changes \\ to ', ' (comma-space), making it pass muster for - % generating document info in the PDF file. - \def\\{, }% - \def\and{and }% - \pdfinfo{ - /Author (\@author) - /Title (\@title) - }% - \endgroup - \fi - \begin{flushright} - \sphinxlogo - \py@HeaderFamily - {\Huge \@title }\par - {\itshape\large \py@release \releaseinfo}\par - \vspace{25pt} - {\Large - \begin{tabular}[t]{c} - \@author - \end{tabular}}\par - \vspace{25pt} - \@date \par - \py@authoraddress \par - \end{flushright} - \@thanks - \setcounter{footnote}{0} - \let\thanks\relax\let\maketitle\relax - %\gdef\@thanks{}\gdef\@author{}\gdef\@title{} -} - -\let\py@OldTableofcontents=\tableofcontents -\renewcommand{\tableofcontents}{ - \begingroup - \parskip = 0mm - \py@OldTableofcontents - \endgroup - \rule{\textwidth}{1pt} - \vspace{12pt} -} - -\@ifundefined{fancyhf}{ - \pagestyle{plain}}{ - \pagestyle{normal}} % start this way; change for -\pagenumbering{arabic} % ToC & chapters - -\thispagestyle{empty} - -% Fix the bibliography environment to add an entry to the Table of -% Contents. -% For an article document class this environment is a section, -% so no page break before it. -\let\py@OldThebibliography=\thebibliography -\renewcommand{\thebibliography}[1]{ - \phantomsection - \py@OldThebibliography{1} - \addcontentsline{toc}{section}{\bibname} -} - -% Same for the indices. -% The memoir class already does this, so we don't duplicate it in that case. -% -\@ifclassloaded{memoir}{}{ - \let\py@OldTheindex=\theindex - \renewcommand{\theindex}{ - \phantomsection - \py@OldTheindex - \addcontentsline{toc}{section}{\indexname} - } -} diff --git a/docs/_build/latex/sphinxmanual.cls b/docs/_build/latex/sphinxmanual.cls deleted file mode 100644 index f204494..0000000 --- a/docs/_build/latex/sphinxmanual.cls +++ /dev/null @@ -1,130 +0,0 @@ -% -% sphinxmanual.cls for Sphinx (http://sphinx-doc.org/) -% - -\NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesClass{sphinxmanual}[2009/06/02 Document class (Sphinx manual)] - -\ifx\directlua\undefined\else -% if compiling with lualatex 0.85 or later load compatibility patch issued by -% the LaTeX team for older packages relying on \pdf<name> named primitives. - \IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{} -\fi - -% chapters starting at odd pages (overridden by 'openany' document option) -\PassOptionsToClass{openright}{\sphinxdocclass} - -% 'oneside' option overriding the 'twoside' default -\newif\if@oneside -\DeclareOption{oneside}{\@onesidetrue} -% Pass remaining document options to the parent class. -\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\sphinxdocclass}} -\ProcessOptions\relax - -% Defaults two-side document -\if@oneside -% nothing to do (oneside is the default) -\else -\PassOptionsToClass{twoside}{\sphinxdocclass} -\fi - -\LoadClass{\sphinxdocclass} - -% Set some sane defaults for section numbering depth and TOC depth. You can -% reset these counters in your preamble. -% -\setcounter{secnumdepth}{2} -\setcounter{tocdepth}{1} - -% Change the title page to look a bit better, and fit in with the fncychap -% ``Bjarne'' style a bit better. -% -\renewcommand{\maketitle}{% - \begin{titlepage}% - \let\footnotesize\small - \let\footnoterule\relax - \noindent\rule{\textwidth}{1pt}\ifsphinxpdfoutput\newline\null\fi\par - \ifsphinxpdfoutput - \begingroup - % These \defs are required to deal with multi-line authors; it - % changes \\ to ', ' (comma-space), making it pass muster for - % generating document info in the PDF file. - \def\\{, }% - \def\and{and }% - \pdfinfo{ - /Author (\@author) - /Title (\@title) - }% - \endgroup - \fi - \begin{flushright}% - \sphinxlogo - \py@HeaderFamily - {\Huge \@title \par} - {\itshape\LARGE \py@release\releaseinfo \par} - \vfill - {\LARGE - \begin{tabular}[t]{c} - \@author - \end{tabular} - \par} - \vfill\vfill - {\large - \@date \par - \vfill - \py@authoraddress \par - }% - \end{flushright}%\par - \@thanks - \end{titlepage}% - \setcounter{footnote}{0}% - \let\thanks\relax\let\maketitle\relax - %\gdef\@thanks{}\gdef\@author{}\gdef\@title{} -} - -\let\py@OldTableofcontents=\tableofcontents -\renewcommand{\tableofcontents}{% - % before resetting page counter, let's do the right thing. - \if@openright\cleardoublepage\else\clearpage\fi - \pagenumbering{roman}% - \pagestyle{plain}% - \begingroup - \parskip \z@skip - \py@OldTableofcontents - \endgroup - % before resetting page counter, let's do the right thing. - \if@openright\cleardoublepage\else\clearpage\fi - \pagenumbering{arabic}% - \ifdefined\fancyhf\pagestyle{normal}\fi -} -\pagenumbering{alph}% avoid hyperref "duplicate destination" warnings - -% This is needed to get the width of the section # area wide enough in the -% library reference. Doing it here keeps it the same for all the manuals. -% -\renewcommand*\l@section{\@dottedtocline{1}{1.5em}{2.6em}} -\renewcommand*\l@subsection{\@dottedtocline{2}{4.1em}{3.5em}} - -% Fix the bibliography environment to add an entry to the Table of -% Contents. -% For a report document class this environment is a chapter. -\let\py@OldThebibliography=\thebibliography -\renewcommand{\thebibliography}[1]{ - \if@openright\cleardoublepage\else\clearpage\fi - \phantomsection - \py@OldThebibliography{1} - \addcontentsline{toc}{chapter}{\bibname} -} - -% Same for the indices. -% The memoir class already does this, so we don't duplicate it in that case. -% -\@ifclassloaded{memoir}{}{ - \let\py@OldTheindex=\theindex - \renewcommand{\theindex}{ - \if@openright\cleardoublepage\else\clearpage\fi - \phantomsection - \py@OldTheindex - \addcontentsline{toc}{chapter}{\indexname} - } -} diff --git a/docs/_build/latex/tabulary.sty b/docs/_build/latex/tabulary.sty deleted file mode 100644 index 11fdf74..0000000 --- a/docs/_build/latex/tabulary.sty +++ /dev/null @@ -1,452 +0,0 @@ -%% -%% This is file `tabulary.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% tabulary.dtx (with options: `package') -%% DRAFT VERSION -%% -%% File `tabulary.dtx'. -%% Copyright (C) 1995 1996 2003 2008 David Carlisle -%% This file may be distributed under the terms of the LPPL. -%% See 00readme.txt for details. -%% -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{tabulary} - [2008/12/01 v0.9 tabulary package (DPC)] -\RequirePackage{array} -\catcode`\Z=14 -\DeclareOption{debugshow}{\catcode`\Z=9\relax} -\ProcessOptions -\def\arraybackslash{\let\\=\@arraycr} -\def\@finalstrut#1{% - \unskip\ifhmode\nobreak\fi\vrule\@width\z@\@height\z@\@depth\dp#1} -\newcount\TY@count -\def\tabulary{% - \let\TY@final\tabular - \let\endTY@final\endtabular - \TY@tabular} -\def\TY@tabular#1{% - \edef\TY@{\@currenvir}% - {\ifnum0=`}\fi - \@ovxx\TY@linewidth - \@ovyy\TY@tablewidth - \count@\z@ - \@tempswatrue - \@whilesw\if@tempswa\fi{% - \advance\count@\@ne - \expandafter\ifx\csname TY@F\the\count@\endcsname\relax - \@tempswafalse - \else - \expandafter\let\csname TY@SF\the\count@\expandafter\endcsname - \csname TY@F\the\count@\endcsname - \global\expandafter\let\csname TY@F\the\count@\endcsname\relax - \expandafter\let\csname TY@S\the\count@\expandafter\endcsname - \csname TY@\the\count@\endcsname - \fi}% - \global\TY@count\@ne - \TY@width\xdef{0pt}% - \global\TY@tablewidth\z@ - \global\TY@linewidth#1\relax -Z\message{^^J^^JTable^^J% -Z Target Width: \the\TY@linewidth^^J% -Z \string\tabcolsep: \the\tabcolsep\space -Z \string\arrayrulewidth: \the\arrayrulewidth\space -Z \string\doublerulesep: \the\doublerulesep^^J% -Z \string\tymin: \the\tymin\space -Z \string\tymax: \the\tymax^^J}% - \let\@classz\TY@classz - \let\verb\TX@verb - \toks@{}\TY@get@body} -\let\TY@@mkpream\@mkpream -\def\TY@mkpream{% - \def\@addamp{% - \if@firstamp \@firstampfalse \else - \global\advance\TY@count\@ne - \edef\@preamble{\@preamble &}\fi - \TY@width\xdef{0pt}}% - \def\@acol{% - \TY@subwidth\col@sep - \@addtopreamble{\hskip\col@sep}}% - \let\@arrayrule\TY@arrayrule - \let\@classvi\TY@classvi - \def\@classv{\save@decl - \expandafter\NC@ecs\@nextchar\extracolsep{}\extracolsep\@@@ - \sbox\z@{\d@llarbegin\@nextchar\d@llarend}% - \TY@subwidth{\wd\z@}% - \@addtopreamble{\d@llarbegin\the@toks\the\count@\relax\d@llarend}% - \prepnext@tok}% - \global\let\@mkpream\TY@@mkpream - \TY@@mkpream} -\def\TY@arrayrule{% - \TY@subwidth\arrayrulewidth - \@addtopreamble \vline} -\def\TY@classvi{\ifcase \@lastchclass - \@acol \or - \TY@subwidth\doublerulesep - \@addtopreamble{\hskip \doublerulesep}\or - \@acol \or - \@classvii - \fi} -\def\TY@tab{% - \setbox\z@\hbox\bgroup - \let\[$\let\]$% - \let\equation$\let\endequation$% - \col@sep\tabcolsep - \let\d@llarbegin\begingroup\let\d@llarend\endgroup - \let\@mkpream\TY@mkpream - \def\multicolumn##1##2##3{\multispan##1\relax}% - \CT@start\TY@tabarray} -\def\TY@tabarray{\@ifnextchar[{\TY@array}{\@array[t]}} -\def\TY@array[#1]{\@array[t]} -\def\TY@width#1{% - \expandafter#1\csname TY@\the\TY@count\endcsname} -\def\TY@subwidth#1{% - \TY@width\dimen@ - \advance\dimen@-#1\relax - \TY@width\xdef{\the\dimen@}% - \global\advance\TY@linewidth-#1\relax} -\def\endtabulary{% - \gdef\@halignto{}% - \let\TY@footnote\footnote% - \def\footnote{}% prevent footnotes from doing anything - \expandafter\TY@tab\the\toks@ - \crcr\omit - {\xdef\TY@save@row{}% - \loop - \advance\TY@count\m@ne - \ifnum\TY@count>\z@ - \xdef\TY@save@row{\TY@save@row&\omit}% - \repeat}\TY@save@row - \endarray\global\setbox1=\lastbox\setbox0=\vbox{\unvbox1 - \unskip\global\setbox1=\lastbox}\egroup - \dimen@\TY@linewidth - \divide\dimen@\TY@count - \ifdim\dimen@<\tymin - \TY@warn{tymin too large (\the\tymin), resetting to \the\dimen@}% - \tymin\dimen@ - \fi - \setbox\tw@=\hbox{\unhbox\@ne - \loop -\@tempdima=\lastskip -\ifdim\@tempdima>\z@ -Z \message{ecs=\the\@tempdima^^J}% - \global\advance\TY@linewidth-\@tempdima -\fi - \unskip - \setbox\tw@=\lastbox - \ifhbox\tw@ -Z \message{Col \the\TY@count: Initial=\the\wd\tw@\space}% - \ifdim\wd\tw@>\tymax - \wd\tw@\tymax -Z \message{> max\space}% -Z \else -Z \message{ \@spaces\space}% - \fi - \TY@width\dimen@ -Z \message{\the\dimen@\space}% - \advance\dimen@\wd\tw@ -Z \message{Final=\the\dimen@\space}% - \TY@width\xdef{\the\dimen@}% - \ifdim\dimen@<\tymin -Z \message{< tymin}% - \global\advance\TY@linewidth-\dimen@ - \expandafter\xdef\csname TY@F\the\TY@count\endcsname - {\the\dimen@}% - \else - \expandafter\ifx\csname TY@F\the\TY@count\endcsname\z@ -Z \message{***}% - \global\advance\TY@linewidth-\dimen@ - \expandafter\xdef\csname TY@F\the\TY@count\endcsname - {\the\dimen@}% - \else -Z \message{> tymin}% - \global\advance\TY@tablewidth\dimen@ - \global\expandafter\let\csname TY@F\the\TY@count\endcsname - \maxdimen - \fi\fi - \advance\TY@count\m@ne - \repeat}% - \TY@checkmin - \TY@checkmin - \TY@checkmin - \TY@checkmin - \TY@count\z@ - \let\TY@box\TY@box@v - \let\footnote\TY@footnote % restore footnotes - {\expandafter\TY@final\the\toks@\endTY@final}% - \count@\z@ - \@tempswatrue - \@whilesw\if@tempswa\fi{% - \advance\count@\@ne - \expandafter\ifx\csname TY@SF\the\count@\endcsname\relax - \@tempswafalse - \else - \global\expandafter\let\csname TY@F\the\count@\expandafter\endcsname - \csname TY@SF\the\count@\endcsname - \global\expandafter\let\csname TY@\the\count@\expandafter\endcsname - \csname TY@S\the\count@\endcsname - \fi}% - \TY@linewidth\@ovxx - \TY@tablewidth\@ovyy - \ifnum0=`{\fi}} -\def\TY@checkmin{% - \let\TY@checkmin\relax -\ifdim\TY@tablewidth>\z@ - \Gscale@div\TY@ratio\TY@linewidth\TY@tablewidth - \ifdim\TY@tablewidth <\TY@linewidth - \def\TY@ratio{1}% - \fi -\else - \TY@warn{No suitable columns!}% - \def\TY@ratio{1}% -\fi -\count@\z@ -Z \message{^^JLine Width: \the\TY@linewidth, -Z Natural Width: \the\TY@tablewidth, -Z Ratio: \TY@ratio^^J}% -\@tempdima\z@ -\loop -\ifnum\count@<\TY@count -\advance\count@\@ne - \ifdim\csname TY@F\the\count@\endcsname>\tymin - \dimen@\csname TY@\the\count@\endcsname - \dimen@\TY@ratio\dimen@ - \ifdim\dimen@<\tymin -Z \message{Column \the\count@\space ->}% - \global\expandafter\let\csname TY@F\the\count@\endcsname\tymin - \global\advance\TY@linewidth-\tymin - \global\advance\TY@tablewidth-\csname TY@\the\count@\endcsname - \let\TY@checkmin\TY@@checkmin - \else - \expandafter\xdef\csname TY@F\the\count@\endcsname{\the\dimen@}% - \advance\@tempdima\csname TY@F\the\count@\endcsname - \fi - \fi -Z \dimen@\csname TY@F\the\count@\endcsname\message{\the\dimen@, }% -\repeat -Z \message{^^JTotal:\the\@tempdima^^J}% -} -\let\TY@@checkmin\TY@checkmin -\newdimen\TY@linewidth -\def\tyformat{\everypar{{\nobreak\hskip\z@skip}}} -\newdimen\tymin -\tymin=10pt -\newdimen\tymax -\tymax=2\textwidth -\def\@testpach{\@chclass - \ifnum \@lastchclass=6 \@ne \@chnum \@ne \else - \ifnum \@lastchclass=7 5 \else - \ifnum \@lastchclass=8 \tw@ \else - \ifnum \@lastchclass=9 \thr@@ - \else \z@ - \ifnum \@lastchclass = 10 \else - \edef\@nextchar{\expandafter\string\@nextchar}% - \@chnum - \if \@nextchar c\z@ \else - \if \@nextchar l\@ne \else - \if \@nextchar r\tw@ \else - \if \@nextchar C7 \else - \if \@nextchar L8 \else - \if \@nextchar R9 \else - \if \@nextchar J10 \else - \z@ \@chclass - \if\@nextchar |\@ne \else - \if \@nextchar !6 \else - \if \@nextchar @7 \else - \if \@nextchar <8 \else - \if \@nextchar >9 \else - 10 - \@chnum - \if \@nextchar m\thr@@\else - \if \@nextchar p4 \else - \if \@nextchar b5 \else - \z@ \@chclass \z@ \@preamerr \z@ \fi \fi \fi \fi\fi \fi \fi\fi \fi - \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi} -\def\TY@classz{% - \@classx - \@tempcnta\count@ - \ifx\TY@box\TY@box@v - \global\advance\TY@count\@ne - \fi - \let\centering c% - \let\raggedright\noindent - \let\raggedleft\indent - \let\arraybackslash\relax - \prepnext@tok - \ifnum\@chnum<4 - \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@ - \fi - \ifnum\@chnum=6 - \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@ - \fi - \@addtopreamble{% - \ifcase\@chnum - \hfil \d@llarbegin\insert@column\d@llarend \hfil \or - \kern\z@ - \d@llarbegin \insert@column \d@llarend \hfil \or - \hfil\kern\z@ \d@llarbegin \insert@column \d@llarend \or - $\vcenter\@startpbox{\@nextchar}\insert@column \@endpbox $\or - \vtop \@startpbox{\@nextchar}\insert@column \@endpbox \or - \vbox \@startpbox{\@nextchar}\insert@column \@endpbox \or - \d@llarbegin \insert@column \d@llarend \or% dubious "s" case - \TY@box\centering\or - \TY@box\raggedright\or - \TY@box\raggedleft\or - \TY@box\relax - \fi}\prepnext@tok} -\def\TY@box#1{% - \ifx\centering#1% - \hfil \d@llarbegin\insert@column\d@llarend \hfil \else - \ifx\raggedright#1% - \kern\z@%<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< - \d@llarbegin \insert@column \d@llarend \hfil \else - \ifx\raggedleft#1% - \hfil\kern\z@ \d@llarbegin \insert@column \d@llarend \else - \ifx\relax#1% - \d@llarbegin \insert@column \d@llarend - \fi \fi \fi \fi} -\def\TY@box@v#1{% - \vtop \@startpbox{\csname TY@F\the\TY@count\endcsname}% - #1\arraybackslash\tyformat - \insert@column\@endpbox} -\newdimen\TY@tablewidth -\def\Gscale@div#1#2#3{% - \setlength\dimen@{#3}% - \ifdim\dimen@=\z@ - \PackageError{graphics}{Division by 0}\@eha - \dimen@#2% - \fi - \edef\@tempd{\the\dimen@}% - \setlength\dimen@{#2}% - \count@65536\relax - \ifdim\dimen@<\z@ - \dimen@-\dimen@ - \count@-\count@ - \fi - \loop - \ifdim\dimen@<8192\p@ - \dimen@\tw@\dimen@ - \divide\count@\tw@ - \repeat - \dimen@ii=\@tempd\relax - \divide\dimen@ii\count@ - \divide\dimen@\dimen@ii - \edef#1{\strip@pt\dimen@}} -\long\def\TY@get@body#1\end - {\toks@\expandafter{\the\toks@#1}\TY@find@end} -\def\TY@find@end#1{% - \def\@tempa{#1}% - \ifx\@tempa\TY@\def\@tempa{\end{#1}}\expandafter\@tempa - \else\toks@\expandafter - {\the\toks@\end{#1}}\expandafter\TY@get@body\fi} -\def\TY@warn{% - \PackageWarning{tabulary}} -\catcode`\Z=11 -\AtBeginDocument{ -\@ifpackageloaded{colortbl}{% -\expandafter\def\expandafter\@mkpream\expandafter#\expandafter1% - \expandafter{% - \expandafter\let\expandafter\CT@setup\expandafter\relax - \expandafter\let\expandafter\CT@color\expandafter\relax - \expandafter\let\expandafter\CT@do@color\expandafter\relax - \expandafter\let\expandafter\color\expandafter\relax - \expandafter\let\expandafter\CT@column@color\expandafter\relax - \expandafter\let\expandafter\CT@row@color\expandafter\relax - \@mkpream{#1}} -\let\TY@@mkpream\@mkpream -\def\TY@classz{% - \@classx - \@tempcnta\count@ - \ifx\TY@box\TY@box@v - \global\advance\TY@count\@ne - \fi - \let\centering c% - \let\raggedright\noindent - \let\raggedleft\indent - \let\arraybackslash\relax - \prepnext@tok -\expandafter\CT@extract\the\toks\@tempcnta\columncolor!\@nil - \ifnum\@chnum<4 - \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@ - \fi - \ifnum\@chnum=6 - \global\expandafter\let\csname TY@F\the\TY@count\endcsname\z@ - \fi - \@addtopreamble{% - \setbox\z@\hbox\bgroup\bgroup - \ifcase\@chnum - \hskip\stretch{.5}\kern\z@ - \d@llarbegin\insert@column\d@llarend\hskip\stretch{.5}\or - \kern\z@%<<<<<<<<<<<<<<<<<<<<<<<<<<< - \d@llarbegin \insert@column \d@llarend \hfill \or - \hfill\kern\z@ \d@llarbegin \insert@column \d@llarend \or - $\vcenter\@startpbox{\@nextchar}\insert@column \@endpbox $\or - \vtop \@startpbox{\@nextchar}\insert@column \@endpbox \or - \vbox \@startpbox{\@nextchar}\insert@column \@endpbox \or - \d@llarbegin \insert@column \d@llarend \or% dubious s case - \TY@box\centering\or - \TY@box\raggedright\or - \TY@box\raggedleft\or - \TY@box\relax - \fi - \egroup\egroup -\begingroup - \CT@setup - \CT@column@color - \CT@row@color - \CT@do@color -\endgroup - \@tempdima\ht\z@ - \advance\@tempdima\minrowclearance - \vrule\@height\@tempdima\@width\z@ -\unhbox\z@ -}\prepnext@tok}% - \def\TY@arrayrule{% - \TY@subwidth\arrayrulewidth - \@addtopreamble{{\CT@arc@\vline}}}% - \def\TY@classvi{\ifcase \@lastchclass - \@acol \or - \TY@subwidth\doublerulesep - \ifx\CT@drsc@\relax - \@addtopreamble{\hskip\doublerulesep}% - \else - \@addtopreamble{{\CT@drsc@\vrule\@width\doublerulesep}}% - \fi\or - \@acol \or - \@classvii - \fi}% -}{% -\let\CT@start\relax -} -} -{\uccode`\*=`\ % -\uppercase{\gdef\TX@verb{% - \leavevmode\null\TX@vwarn - {\ifnum0=`}\fi\ttfamily\let\\\ignorespaces - \@ifstar{\let~*\TX@vb}{\TX@vb}}}} -\def\TX@vb#1{\def\@tempa##1#1{\toks@{##1}\edef\@tempa{\the\toks@}% - \expandafter\TX@v\meaning\@tempa\\ \\\ifnum0=`{\fi}}\@tempa!} -\def\TX@v#1!{\afterassignment\TX@vfirst\let\@tempa= } -\begingroup -\catcode`\*=\catcode`\# -\catcode`\#=12 -\gdef\TX@vfirst{% - \if\@tempa#% - \def\@tempb{\TX@v@#}% - \else - \let\@tempb\TX@v@ - \if\@tempa\space~\else\@tempa\fi - \fi - \@tempb} -\gdef\TX@v@*1 *2{% - \TX@v@hash*1##\relax\if*2\\\else~\expandafter\TX@v@\fi*2} -\gdef\TX@v@hash*1##*2{*1\ifx*2\relax\else#\expandafter\TX@v@hash\fi*2} -\endgroup -\def\TX@vwarn{% - \@warning{\noexpand\verb may be unreliable inside tabularx/y}% - \global\let\TX@vwarn\@empty} -\endinput -%% -%% End of file `tabulary.sty'. diff --git a/source/Command.m b/source/Command.m index bf20f96..8fb04c8 100755 --- a/source/Command.m +++ b/source/Command.m @@ -1,159 +1,157 @@ -% EV3 command construction -% -% Methods:: -% Command Constructor, creates an empty command object -% delete Destructor, clears the command object -% -% addHeaderSystem Adds a system header to the command object -% addHeaderSystemReply Adds a system header with reply to the command object -% addHeaderDirect Adds a direct header to the command object -% addHeaderDirectReply Adds a direct header with reply to the command object -% addLength Adds the length of the msg to the front of the command object -% addSystemCommand Adds a system command to the command object -% addDirectCommand Adds a direct command to the command object -% -% checkForError @MMI Checks error byte in received package -% isCorrupt @MMI Checks whether reply packet is corrupt -% -% clear Clears the command msg -% display Displays the command msg (decimal) -% displayHex Displays the command msg (hex) -% -% LC0 Adds a local constant 0 to the command object -% LC1 Adds a local constant 1 to the command object -% LC2 Adds a local constant 2 to the command object -% LC4 Adds a local constant 4 to the command object -% LV0 Adds a local variable 0 to the command object -% GV0 Adds a global variable 0 to the command object -% LCS Adds a local constant string to the command object -% -% addValue Adds a numerical value to the command object -% addArray Adds a numerical array to the command object -% addString Adds a string to the command object -% addLCSString Adds a LCS string to the command object -% -% LONGToBytes Adds a LONGToBytes to the command object -% WORDToBytes Adds a WORDToBytes to the command object -% BYTEToBytes Adds a BYTEToBytes to the command object -% -% PROGRAMHeader Adds a PROGRAMHeader to the command object -% addFileSize Adds the filesize to the command object -% VMTHREADHeader Adds a VMTHREADHeader to the command object -% SUBCALLHeader Adds a SUBCALLHeader to the command object -% BLOCKHeader Adds a BLOCKHeader to the command object -% GenerateByteCode Prints the command message to a file -% -% opNOP Adds a opNOP opcode to the command object -% opOBJECT_END Adds a opOBJECT_END opcode to the command object -% -% opJR Adds a opJR opcode to the command object -% -% opUI_FLUSH Adds a opUI_FLUSH opcode to the command object -% -% opUI_READ_GET_VBATT Adds a opUI_READ opcode with a GET_VBATT subcode to the command object -% opUI_READ_GET_LBATT Adds a opUI_READ opcode with a GET_LBATT subcode to the command object -% -% opUI_WRITE_PUT_STRING Adds a opUI_WRITE opcode with a PUT_STRING subcode to the command object -% opUI_WRITE_INIT_RUN Adds a opUI_WRITE opcode with a INIT_RUN subcode to the command object -% opUI_WRITE_LED Adds a opUI_WRITE opcode with a LED subcode to the command object -% -% opUI_DRAW_UPDATE Adds a opUI_DRAW opcode with a UPDATE subcode to the command object -% opUI_DRAW_CLEAN Adds a opUI_DRAW opcode with a CLEAN subcode to the command object -% opUI_DRAW_PIXEL Adds a opUI_DRAW opcode with a PIXEL subcode to the command object -% opUI_DRAW_LINE Adds a opUI_DRAW opcode with a LINE subcode to the command object -% opUI_DRAW_CIRCLE Adds a opUI_DRAW opcode with a CIRCLE subcode to the command object -% opUI_DRAW_TEXT Adds a opUI_DRAW opcode with a TEXT subcode to the command object -% opUI_DRAW_VALUE Adds a opUI_DRAW opcode with a VALUE subcode to the command object -% opUI_DRAW_FILLRECT Adds a opUI_DRAW opcode with a FILLRECT subcode to the command object -% opUI_DRAW_RECT Adds a opUI_DRAW opcode with a RECT subcode to the command object -% opUI_DRAW_INVERSERECT Adds a opUI_DRAW opcode with a INVERSERECT subcode to the command object -% opUI_DRAW_SELECT_FONT Adds a opUI_DRAW opcode with a SELECT_FONT subcode to the command object -% opUI_DRAW_TOPLINE Adds a opUI_DRAW opcode with a TOPLINE subcode to the command object -% opUI_DRAW_FILLWINDOW Adds a opUI_DRAW opcode with a FILLWINDOW subcode to the command object -% opUI_DRAW_FILLCIRCLE Adds a opUI_DRAW opcode with a FILLCIRCLE subcode to the command object -% opUI_DRAW_STORE Adds a opUI_DRAW opcode with a STORE subcode to the command object -% opUI_DRAW_RESTORE Adds a opUI_DRAW opcode with a RESTORE subcode to the command object -% -% opTIMER_WAIT Adds a opTIMER opcode with a WAIT subcode to the command object -% opTIMER_READY Adds a opTIMER opcode with a READY subcode to the command object -% opTIMER_READ Adds a opTIMER opcode with a READ subcode to the command object -% -% opSOUND_BREAK Adds a opSOUND opcode with a BREAK subcode to the command object -% opSOUND_TONE Adds a opSOUND opcode with a TONE subcode to the command object -% opSOUND_PLAY Adds a opSOUND opcode with a PLAY subcode to the command object -% opSOUND_REPEAT Adds a opSOUND opcode with a REPEAT subcode to the command object -% opSOUND_TEST Adds a opSOUND opcode with a TEST subcode to the command object -% opSOUND_READY Adds a opSOUND opcode with a READY subcode to the command object -% -% opINPUT_DEVICE_LIST Adds a INPUT_DEVICE opcode with a DEVICE_LIST subcode to the command object -% opINPUT_DEVICE_GET_TYPEMODE Adds a INPUT_DEVICE opcode with a GET_TYPEMODE subcode to the command object -% opINPUT_DEVICE_SET_TYPEMODE @MMI: Adds a INPUT_DEVICE opcode with a SET_TYPEMODE subcode to the command object -% opINPUT_DEVICE_GET_SYMBOL Adds a INPUT_DEVICE opcode with a GET_SYMBOL subcode to the command object -% opINPUT_DEVICE_CLR_ALL Adds a INPUT_DEVICE opcode with a CLR_ALL subcode to the command object -% opINPUT_DEVICE_CLR_CHANGES @MMI: Adds a INPUT_DEVICE opcode with a CLR_CHANGES subcode to the command object -% opINPUT_DEVICE_GET_NAME Adds a INPUT_DEVICE opcode with a GET_NAME subcode to the command object -% opINPUT_DEVICE_GET_MODENAME @MMI: Adds a INPUT_DEVICE opcode with a GET_MODENAME subcode to the command object -% opINPUT_DEVICE_GET_CONNECTION @MMI: Adds a INPUT_DEVICE opcode with GET_CONNECTION subcode to the command object -% opINPUT_DEVICE_GET_MINMAX @MMI: Adds a INPUT_DEVICE opcode with a GET_MINMAX subcode to the command object -% opINPUT_DEVICE_GET_CHANGES @MMI: Adds a INPUT_DEVICE opcode with a GET_CHANGES subcode to the command object -% opINPUT_DEVICE_GET_FORMAT @MMI: Adds a INPUT_DEVICE opcode with a GET_FORMAT subcode to the command object -% opINPUT_DEVICE_GET_BUMPS @MMI: Adds a INPUT_DEVICE opcode with a GET_BUMPS subcode to the command object -% opINPUT_READY Adds a opINPUT_READY opcode to the command object -% opINPUT_TEST @MMI: Adds a opINPUT_TEST opcode to the command object -% opINPUT_READ Adds a opINPUT_READ opcode to the command object -% opINPUT_READSI Adds a opINPUT_READSI opcode to the command object -% -% opOUTPUT_SET_TYPE Adds a opOUTPUT_SET_TYPE opcode to the command object -% opOUTPUT_RESET Adds a opOUTPUT_RESET opcode to the command object -% opOUTPUT_STOP Adds a opOUTPUT_STOP opcode to the command object -% opOUTPUT_SPEED Adds a opOUTPUT_SPEED opcode to the command object -% opOUTPUT_POWER Adds a opOUTPUT_POWER opcode to the command object -% opOUTPUT_START Adds a opOUTPUT_START opcode to the command object -% opOUTPUT_POLARITY Adds a opOUTPUT_POLARITY opcode to the command object -% opOUTPUT_READ Adds a opOUTPUT_READ opcode to the command object -% opOUTPUT_TEST Adds a opOUTPUT_TEST opcode to the command object -% opOUTPUT_READY Adds a opOUTPUT_READY opcode to the command object -% opOUTPUT_STEP_POWER Adds a opOUTPUT_STEP_POWER opcode to the command object -% opOUTPUT_TIME_POWER @MMI: Adds a opOUTPUT_TIME_POWER opcode to the command object -% opOUTPUT_STEP_SPEED Adds a opOUTPUT_STEP_SPEED opcode to the command object -% opOUTPUT_TIME_SPEED Adds a opOUTPUT_TIME_SPEED opcode to the command object -% opOUTPUT_STEP_SYNC Adds a opOUTPUT_STEP_SYNC opcode to the command object -% opOUTPUT_TIME_SYNC Adds a opOUTPUT_TIME_SYNC opcode to the command object -% opOUTPUT_CLR_COUNT Adds a opOUTPUT_CLR_COUNT opcode to the command object -% opOUTPUT_GET_COUNT Adds a opOUTPUT_GET_COUNT opcode to the command object -% -% opCOM_TEST @MMI: Adds a opCOM_TEST opcode to the command object -% opCOM_READY @MMI: Adds a opCOM_READY opcode to the command object -% opCOMGET_GET_BRICKNAME Adds a opCOMGET opcode with a GET_BRICKNAME subcode to the command object -% opCOMSET_SET_BRICKNAME Adds a opCOMSET opcode with a SET_BRICKNAME subcode to the command object -% opCOMGET_NETWORK @MMI: Adds a opCOMGET opcode with a GET_NETWORK subcode to the command object -% opCOMGET_ID @MMI: Adds a opCOMGET opcode with a GET_ID subcode to the command object -% -% opMAILBOX_WRITE Adds a opMAILBOX_WRITE opcode to the command object -% -% BEGIN_DOWNLOAD Adds a BEGIN_DOWNLOAD system command to the command object -% CONTINUE_DOWNLOAD Adds a CONTINUE_DOWNLOAD system command to the command object -% BEGIN_UPLOAD Adds a BEGIN_UPLOAD system command to the command object -% CONTINUE_UPLOAD Adds a CONTINUE_UPLOAD system command to the command object -% LIST_FILES Adds a LIST_FILES system command to the command object -% CONTINUE_LIST_FILES Adds a CONTINUE_LIST_FILES system command to the command object -% CREATE_DIR Adds a CREATE_DIR system command to the command object -% DELETE_FILE Adds a DELETE_FILE system command to the command object -% WRITEMAILBOX Adds a WRITEMAILBOX system command to the command object -% -% Notes:: -% - Refer to the EV3 documentation or source code for a more detailed -% description of the commands. -% -% Example:: -% cmd = Command(); -% cmd.addHeaderDirect(42,0,0); -% cmd.opSOUND_TONE(volume,frequency,duration); -% cmd.addLength(); - - classdef Command < handle - + % EV3 command construction + % + % Methods:: + % Command Constructor, creates an empty command object + % delete Destructor, clears the command object + % + % addHeaderSystem Adds a system header to the command object + % addHeaderSystemReply Adds a system header with reply to the command object + % addHeaderDirect Adds a direct header to the command object + % addHeaderDirectReply Adds a direct header with reply to the command object + % addLength Adds the length of the msg to the front of the command object + % addSystemCommand Adds a system command to the command object + % addDirectCommand Adds a direct command to the command object + % + % checkForError @MMI Checks error byte in received package + % isCorrupt @MMI Checks whether reply packet is corrupt + % + % clear Clears the command msg + % display Displays the command msg (decimal) + % displayHex Displays the command msg (hex) + % + % LC0 Adds a local constant 0 to the command object + % LC1 Adds a local constant 1 to the command object + % LC2 Adds a local constant 2 to the command object + % LC4 Adds a local constant 4 to the command object + % LV0 Adds a local variable 0 to the command object + % GV0 Adds a global variable 0 to the command object + % LCS Adds a local constant string to the command object + % + % addValue Adds a numerical value to the command object + % addArray Adds a numerical array to the command object + % addString Adds a string to the command object + % addLCSString Adds a LCS string to the command object + % + % LONGToBytes Adds a LONGToBytes to the command object + % WORDToBytes Adds a WORDToBytes to the command object + % BYTEToBytes Adds a BYTEToBytes to the command object + % + % PROGRAMHeader Adds a PROGRAMHeader to the command object + % addFileSize Adds the filesize to the command object + % VMTHREADHeader Adds a VMTHREADHeader to the command object + % SUBCALLHeader Adds a SUBCALLHeader to the command object + % BLOCKHeader Adds a BLOCKHeader to the command object + % GenerateByteCode Prints the command message to a file + % + % opNOP Adds a opNOP opcode to the command object + % opOBJECT_END Adds a opOBJECT_END opcode to the command object + % + % opJR Adds a opJR opcode to the command object + % + % opUI_FLUSH Adds a opUI_FLUSH opcode to the command object + % + % opUI_READ_GET_VBATT Adds a opUI_READ opcode with a GET_VBATT subcode to the command object + % opUI_READ_GET_LBATT Adds a opUI_READ opcode with a GET_LBATT subcode to the command object + % + % opUI_WRITE_PUT_STRING Adds a opUI_WRITE opcode with a PUT_STRING subcode to the command object + % opUI_WRITE_INIT_RUN Adds a opUI_WRITE opcode with a INIT_RUN subcode to the command object + % opUI_WRITE_LED Adds a opUI_WRITE opcode with a LED subcode to the command object + % + % opUI_DRAW_UPDATE Adds a opUI_DRAW opcode with a UPDATE subcode to the command object + % opUI_DRAW_CLEAN Adds a opUI_DRAW opcode with a CLEAN subcode to the command object + % opUI_DRAW_PIXEL Adds a opUI_DRAW opcode with a PIXEL subcode to the command object + % opUI_DRAW_LINE Adds a opUI_DRAW opcode with a LINE subcode to the command object + % opUI_DRAW_CIRCLE Adds a opUI_DRAW opcode with a CIRCLE subcode to the command object + % opUI_DRAW_TEXT Adds a opUI_DRAW opcode with a TEXT subcode to the command object + % opUI_DRAW_VALUE Adds a opUI_DRAW opcode with a VALUE subcode to the command object + % opUI_DRAW_FILLRECT Adds a opUI_DRAW opcode with a FILLRECT subcode to the command object + % opUI_DRAW_RECT Adds a opUI_DRAW opcode with a RECT subcode to the command object + % opUI_DRAW_INVERSERECT Adds a opUI_DRAW opcode with a INVERSERECT subcode to the command object + % opUI_DRAW_SELECT_FONT Adds a opUI_DRAW opcode with a SELECT_FONT subcode to the command object + % opUI_DRAW_TOPLINE Adds a opUI_DRAW opcode with a TOPLINE subcode to the command object + % opUI_DRAW_FILLWINDOW Adds a opUI_DRAW opcode with a FILLWINDOW subcode to the command object + % opUI_DRAW_FILLCIRCLE Adds a opUI_DRAW opcode with a FILLCIRCLE subcode to the command object + % opUI_DRAW_STORE Adds a opUI_DRAW opcode with a STORE subcode to the command object + % opUI_DRAW_RESTORE Adds a opUI_DRAW opcode with a RESTORE subcode to the command object + % + % opTIMER_WAIT Adds a opTIMER opcode with a WAIT subcode to the command object + % opTIMER_READY Adds a opTIMER opcode with a READY subcode to the command object + % opTIMER_READ Adds a opTIMER opcode with a READ subcode to the command object + % + % opSOUND_BREAK Adds a opSOUND opcode with a BREAK subcode to the command object + % opSOUND_TONE Adds a opSOUND opcode with a TONE subcode to the command object + % opSOUND_PLAY Adds a opSOUND opcode with a PLAY subcode to the command object + % opSOUND_REPEAT Adds a opSOUND opcode with a REPEAT subcode to the command object + % opSOUND_TEST Adds a opSOUND opcode with a TEST subcode to the command object + % opSOUND_READY Adds a opSOUND opcode with a READY subcode to the command object + % + % opINPUT_DEVICE_LIST Adds a INPUT_DEVICE opcode with a DEVICE_LIST subcode to the command object + % opINPUT_DEVICE_GET_TYPEMODE Adds a INPUT_DEVICE opcode with a GET_TYPEMODE subcode to the command object + % opINPUT_DEVICE_SET_TYPEMODE @MMI: Adds a INPUT_DEVICE opcode with a SET_TYPEMODE subcode to the command object + % opINPUT_DEVICE_GET_SYMBOL Adds a INPUT_DEVICE opcode with a GET_SYMBOL subcode to the command object + % opINPUT_DEVICE_CLR_ALL Adds a INPUT_DEVICE opcode with a CLR_ALL subcode to the command object + % opINPUT_DEVICE_CLR_CHANGES @MMI: Adds a INPUT_DEVICE opcode with a CLR_CHANGES subcode to the command object + % opINPUT_DEVICE_GET_NAME Adds a INPUT_DEVICE opcode with a GET_NAME subcode to the command object + % opINPUT_DEVICE_GET_MODENAME @MMI: Adds a INPUT_DEVICE opcode with a GET_MODENAME subcode to the command object + % opINPUT_DEVICE_GET_CONNECTION @MMI: Adds a INPUT_DEVICE opcode with GET_CONNECTION subcode to the command object + % opINPUT_DEVICE_GET_MINMAX @MMI: Adds a INPUT_DEVICE opcode with a GET_MINMAX subcode to the command object + % opINPUT_DEVICE_GET_CHANGES @MMI: Adds a INPUT_DEVICE opcode with a GET_CHANGES subcode to the command object + % opINPUT_DEVICE_GET_FORMAT @MMI: Adds a INPUT_DEVICE opcode with a GET_FORMAT subcode to the command object + % opINPUT_DEVICE_GET_BUMPS @MMI: Adds a INPUT_DEVICE opcode with a GET_BUMPS subcode to the command object + % opINPUT_READY Adds a opINPUT_READY opcode to the command object + % opINPUT_TEST @MMI: Adds a opINPUT_TEST opcode to the command object + % opINPUT_READ Adds a opINPUT_READ opcode to the command object + % opINPUT_READSI Adds a opINPUT_READSI opcode to the command object + % + % opOUTPUT_SET_TYPE Adds a opOUTPUT_SET_TYPE opcode to the command object + % opOUTPUT_RESET Adds a opOUTPUT_RESET opcode to the command object + % opOUTPUT_STOP Adds a opOUTPUT_STOP opcode to the command object + % opOUTPUT_SPEED Adds a opOUTPUT_SPEED opcode to the command object + % opOUTPUT_POWER Adds a opOUTPUT_POWER opcode to the command object + % opOUTPUT_START Adds a opOUTPUT_START opcode to the command object + % opOUTPUT_POLARITY Adds a opOUTPUT_POLARITY opcode to the command object + % opOUTPUT_READ Adds a opOUTPUT_READ opcode to the command object + % opOUTPUT_TEST Adds a opOUTPUT_TEST opcode to the command object + % opOUTPUT_READY Adds a opOUTPUT_READY opcode to the command object + % opOUTPUT_STEP_POWER Adds a opOUTPUT_STEP_POWER opcode to the command object + % opOUTPUT_TIME_POWER @MMI: Adds a opOUTPUT_TIME_POWER opcode to the command object + % opOUTPUT_STEP_SPEED Adds a opOUTPUT_STEP_SPEED opcode to the command object + % opOUTPUT_TIME_SPEED Adds a opOUTPUT_TIME_SPEED opcode to the command object + % opOUTPUT_STEP_SYNC Adds a opOUTPUT_STEP_SYNC opcode to the command object + % opOUTPUT_TIME_SYNC Adds a opOUTPUT_TIME_SYNC opcode to the command object + % opOUTPUT_CLR_COUNT Adds a opOUTPUT_CLR_COUNT opcode to the command object + % opOUTPUT_GET_COUNT Adds a opOUTPUT_GET_COUNT opcode to the command object + % + % opCOM_TEST @MMI: Adds a opCOM_TEST opcode to the command object + % opCOM_READY @MMI: Adds a opCOM_READY opcode to the command object + % opCOMGET_GET_BRICKNAME Adds a opCOMGET opcode with a GET_BRICKNAME subcode to the command object + % opCOMSET_SET_BRICKNAME Adds a opCOMSET opcode with a SET_BRICKNAME subcode to the command object + % opCOMGET_NETWORK @MMI: Adds a opCOMGET opcode with a GET_NETWORK subcode to the command object + % opCOMGET_ID @MMI: Adds a opCOMGET opcode with a GET_ID subcode to the command object + % + % opMAILBOX_WRITE Adds a opMAILBOX_WRITE opcode to the command object + % + % BEGIN_DOWNLOAD Adds a BEGIN_DOWNLOAD system command to the command object + % CONTINUE_DOWNLOAD Adds a CONTINUE_DOWNLOAD system command to the command object + % BEGIN_UPLOAD Adds a BEGIN_UPLOAD system command to the command object + % CONTINUE_UPLOAD Adds a CONTINUE_UPLOAD system command to the command object + % LIST_FILES Adds a LIST_FILES system command to the command object + % CONTINUE_LIST_FILES Adds a CONTINUE_LIST_FILES system command to the command object + % CREATE_DIR Adds a CREATE_DIR system command to the command object + % DELETE_FILE Adds a DELETE_FILE system command to the command object + % WRITEMAILBOX Adds a WRITEMAILBOX system command to the command object + % + % Notes:: + % - Refer to the EV3 documentation or source code for a more detailed + % description of the commands. + % + % Example:: + % cmd = Command(); + % cmd.addHeaderDirect(42,0,0); + % cmd.opSOUND_TONE(volume,frequency,duration); + % cmd.addLength(); + % % Communications format (c_com.h): % /* % System Command Bytes: diff --git a/source/CommunicationInterface.m b/source/CommunicationInterface.m index 1ff2026..f1ed918 100755 --- a/source/CommunicationInterface.m +++ b/source/CommunicationInterface.m @@ -1,113 +1,111 @@ -% Brick Interface to Lego Minstorms EV3 brick -% -% Methods:: -% brick Constructor, establishes communications -% delete Destructor, closes connection -% send Send data to the brick -% receive Receive data from the brick -% -% -% uiReadVBatt Returns battery level as a voltage -% uiReadLBatt Returns battery level as a percentage -% -% drawTest Shows the drawing capabilities of the brick -% -% -% soundTest @MMI: Returns state of speaker -% soundReady @MMI: Halts the execution of commands on Brick until speakers are ready -% soundPlayTone Plays a tone at a volume with a frequency and duration -% soundStopTone @MMI: Stops current sound playback -% -% beep Plays a beep tone with volume and duration -% playThreeTone Plays three tones one after the other -% -% -% inputDeviceList @MMI: Returns list of sensor types on each port -% inputDeviceGetName Returns the device name at a layer and NO -% inputDeviceGetTypeMode @MMI: Returns type and mode of device at a layer and NO -% inputDeviceSetTypeMode @MMI: Sets type and mode of device which is recognized by old -% type and mode. -% inputDeviceGetModeName @MMI: Returns the device's mode at a layer and NO -% inputDeviceGetConnection @MMI: Returns the connection type (=sensor type) at a layer and NO -% inputDeviceGetMinMax @MMI: Returns the min and max SI value of device at a layer and NO -% inputDeviceGetChanges @MMI: Returns positive changes(=button releases) since last clear at a layer and NO -% inputDeviceGetFormat @MMI: Returns no. of datasets, returned data type in -% active sensor mode, no. of sensor modes and no. of -% visible sensor modes at a layer and NO -% inputDeviceGetBumps @MMI: Returns negatives changes (=button presses) since last clear at a layer and NO -% inputDeviceSymbol Returns the symbol for the device at a layer, NO and mode -% inputDeviceClrChanges @MMI: Clears changes(&bumps) at a layer and NO -% inputDeviceClrAll Clears all the sensor data at a layer -% inputReady @MMI: Halts the execution of commands on Brick until given devices are ready -% inputTest @MMI: Returns the state of the device at a layer and NO -% inputRead @MMI: Reads a connected sensor at a layer, NO, type and mode in percentage -% inputReadSI Reads a connected sensor at a layer, NO, type and mode in SI units -% -% plotSensor Plots a sensor readings over time -% displayColor Displays the color from a color sensor -% -% -% outputStop Stops motor at a layer, NOS and brake -% outputStopAll Stops all the motors -% outputPower Sets motor output power at a layer, NOS and speed -% outputSpeed @MMI: Sets motor output speed at a layer, NOS and speed -% outputStart Starts motor at a layer, NOS and speed -% outputTest Returns the state of the motor at a layer and NOS -% outputStepSpeed Moves a motor to set position with layer, NOS, speed, -% ramp up angle, constant angle, ramp down angle and brake -% outputStepPower @MMI: Moves a motor to set position with layer, NOS, power, -% ramp up angle, constant angle, ramp down angle and brake -% outputTimeSpeed @MMI: Moves a motor for set time at a layer, NOS, speed, -% ramp up time, constant time, ramp down time and brake -% outputTimePower @MMI: Moves a motor for set time at a layer, NOS, power, -% ramp up time, constant time, ramp down time and brake -% outputStepSync @MMI: Moves two motors synchronized at a layer, NOS, -% power, turn ratio, tacho limit, and brake -% outputTimeSync @MMI: Moves two motors synchronized at a layer, NOS, -% power, turn ratio, time limit, and brake -% outputClrCount Clears a motor tachometer at a layer and NOS -% outputGetCount Returns the tachometer at a layer and NO -% outputReset @MMI: -% outputRead @MMI: -% outputPolarity @MMI: Sets a motor's polarity ('rotational direction') -% outputReady @MMI: Halts the execution of commands on Brick until given -% motors have stopped -% -% -% comTest @MMI: Returns state of communication adapter of device. -% comReady @MMI: Halts the execution of commands of Brick until -% communication adapter is ready -% comGetBrickName Returns the name of the brick -% comSetBrickName Sets the name of the brick -% comGetMACAddress@MMI: Returns the MAC-address of the brick -% comGetBTID @MMI: Returns BT-address information -% -% mailBoxWrite Writes a mailbox message from the brick to another device -% fileUpload Uploads a file to the brick -% fileDownload Downloads a file from the brick -% listFiles Lists files on the brick from a directory -% createDir Creates a directory on the brick -% deleteFile Deletes a file from the brick -% writeMailBox Writes a mailbox message to the brick -% readMailBox Reads a mailbox message sent from the brick -% -% -% threeToneByteCode Generates the bytecode for the playThreeTone function -% -% Example:: -% b = Brick('ioType','usb') -% b = Brick('ioType','wifi','wfAddr','192.168.1.104','wfPort',5555,'wfSN','0016533dbaf5') -% b = Brick('ioType','bt','serPort','/dev/rfcomm0') - - classdef CommunicationInterface < handle - + % Brick Interface to Lego Minstorms EV3 brick + % + % Methods:: + % brick Constructor, establishes communications + % delete Destructor, closes connection + % send Send data to the brick + % receive Receive data from the brick + % + % + % uiReadVBatt Returns battery level as a voltage + % uiReadLBatt Returns battery level as a percentage + % + % drawTest Shows the drawing capabilities of the brick + % + % + % soundTest @MMI: Returns state of speaker + % soundReady @MMI: Halts the execution of commands on Brick until speakers are ready + % soundPlayTone Plays a tone at a volume with a frequency and duration + % soundStopTone @MMI: Stops current sound playback + % + % beep Plays a beep tone with volume and duration + % playThreeTone Plays three tones one after the other + % + % + % inputDeviceList @MMI: Returns list of sensor types on each port + % inputDeviceGetName Returns the device name at a layer and NO + % inputDeviceGetTypeMode @MMI: Returns type and mode of device at a layer and NO + % inputDeviceSetTypeMode @MMI: Sets type and mode of device which is recognized by old + % type and mode. + % inputDeviceGetModeName @MMI: Returns the device's mode at a layer and NO + % inputDeviceGetConnection @MMI: Returns the connection type (=sensor type) at a layer and NO + % inputDeviceGetMinMax @MMI: Returns the min and max SI value of device at a layer and NO + % inputDeviceGetChanges @MMI: Returns positive changes(=button releases) since last clear at a layer and NO + % inputDeviceGetFormat @MMI: Returns no. of datasets, returned data type in + % active sensor mode, no. of sensor modes and no. of + % visible sensor modes at a layer and NO + % inputDeviceGetBumps @MMI: Returns negatives changes (=button presses) since last clear at a layer and NO + % inputDeviceSymbol Returns the symbol for the device at a layer, NO and mode + % inputDeviceClrChanges @MMI: Clears changes(&bumps) at a layer and NO + % inputDeviceClrAll Clears all the sensor data at a layer + % inputReady @MMI: Halts the execution of commands on Brick until given devices are ready + % inputTest @MMI: Returns the state of the device at a layer and NO + % inputRead @MMI: Reads a connected sensor at a layer, NO, type and mode in percentage + % inputReadSI Reads a connected sensor at a layer, NO, type and mode in SI units + % + % plotSensor Plots a sensor readings over time + % displayColor Displays the color from a color sensor + % + % + % outputStop Stops motor at a layer, NOS and brake + % outputStopAll Stops all the motors + % outputPower Sets motor output power at a layer, NOS and speed + % outputSpeed @MMI: Sets motor output speed at a layer, NOS and speed + % outputStart Starts motor at a layer, NOS and speed + % outputTest Returns the state of the motor at a layer and NOS + % outputStepSpeed Moves a motor to set position with layer, NOS, speed, + % ramp up angle, constant angle, ramp down angle and brake + % outputStepPower @MMI: Moves a motor to set position with layer, NOS, power, + % ramp up angle, constant angle, ramp down angle and brake + % outputTimeSpeed @MMI: Moves a motor for set time at a layer, NOS, speed, + % ramp up time, constant time, ramp down time and brake + % outputTimePower @MMI: Moves a motor for set time at a layer, NOS, power, + % ramp up time, constant time, ramp down time and brake + % outputStepSync @MMI: Moves two motors synchronized at a layer, NOS, + % power, turn ratio, tacho limit, and brake + % outputTimeSync @MMI: Moves two motors synchronized at a layer, NOS, + % power, turn ratio, time limit, and brake + % outputClrCount Clears a motor tachometer at a layer and NOS + % outputGetCount Returns the tachometer at a layer and NO + % outputReset @MMI: + % outputRead @MMI: + % outputPolarity @MMI: Sets a motor's polarity ('rotational direction') + % outputReady @MMI: Halts the execution of commands on Brick until given + % motors have stopped + % + % + % comTest @MMI: Returns state of communication adapter of device. + % comReady @MMI: Halts the execution of commands of Brick until + % communication adapter is ready + % comGetBrickName Returns the name of the brick + % comSetBrickName Sets the name of the brick + % comGetMACAddress@MMI: Returns the MAC-address of the brick + % comGetBTID @MMI: Returns BT-address information + % + % mailBoxWrite Writes a mailbox message from the brick to another device + % fileUpload Uploads a file to the brick + % fileDownload Downloads a file from the brick + % listFiles Lists files on the brick from a directory + % createDir Creates a directory on the brick + % deleteFile Deletes a file from the brick + % writeMailBox Writes a mailbox message to the brick + % readMailBox Reads a mailbox message sent from the brick + % + % + % threeToneByteCode Generates the bytecode for the playThreeTone function + % + % Example:: + % b = Brick('ioType','usb') + % b = Brick('ioType','wifi','wfAddr','192.168.1.104','wfPort',5555,'wfSN','0016533dbaf5') + % b = Brick('ioType','bt','serPort','/dev/rfcomm0') + properties % Debug debug; end - properties (SetAccess = 'private') + properties (SetAccess = private) % IO connection type ioType; % Bluetooth brick device name @@ -124,7 +122,7 @@ classdef CommunicationInterface < handle serPort; end - properties (Hidden, Access = 'private') + properties (Hidden, Access = private) % Connection handle conn; end diff --git a/source/Motor.m b/source/Motor.m index 27633f4..57e0a02 100755 --- a/source/Motor.m +++ b/source/Motor.m @@ -198,17 +198,7 @@ classdef Motor < MaskedHandle & dynamicprops % may lead to unexpected behaviour. For example, if you run the motor without % a tacholimit for some time using Coast, then stop using Coast, and then try % to run the with a tacholimit, it will stop sooner or later than expected, - % or may not even start at all. - % * (OLD)After calling one of the functions to control the motor with some kind of - % limit (which is done if limit~=0), the physical brick's power/speed value for - % starting without a limit (i.e. if limit==0) is reset to zero. So if you want - % to control the motor without a limit after doing so with a limit, you would - % have to set the power manually to the desired value again. (I don't really - % know if this is deliberate or a bug, and at this point, I'm too afraid to ask.) - % To avoid confusion, this is done automatically in this special case. - % However, this does not even work all the time. If motor does not - % start, call stop() and setPower() manually. :/ - % + % or may not even start at all. % Check connection and if motor is already running if ~motor.connectedToBrick @@ -363,31 +353,32 @@ classdef Motor < MaskedHandle & dynamicprops function syncedStart(motor, syncMotor, varargin) % Starts this motor synchronized with another % - % This motor acts as a 'master', meaning that the synchronized control is done via - % this one. When syncedStart is called, the master sets some of the slave's - % (syncMotor) properties to keep it consistent with the physical brick. So, for - % example, changing the power on the master motor will take effect - % on the slave as soon as this method is called. - % The following parameters will be affected on the slave: power, brakeMode, - % limitValue, speedRegulation + % The motor, with which this method is called, acts as a *master*, meaning that the + % synchronized control is done with it und uses its parameters. When syncedStart is + % called, the master sets some of the slave's (syncMotor) properties to keep it + % consistent with the physical brick. So, for example, if the master has another + % power-value than the slave, the slave's power-value will be set to that of the + % master when syncedStart() is called. + % The following parameters will be affected on the slave: *power*, *brakeMode*, + % *limitValue*, *speedRegulation* % % Arguments: - % syncMotor (Motor): the motor-object to sync with - % turnRatio (numeric in [-200,200]): *[OPTIONAL]* |br| (Excerpt of Firmware-comments, in c_output.c): - % "Turn ratio is how tight you turn and to what direction you turn. - % * 0 value is moving straight forward - % * Negative values turn to the left - % * Positive values turn to the right - % * Value -100 stops the left motor - % * Value +100 stops the right motor - % * Values less than -100 makes the left motor run the opposite direction of the right motor (Spin) - % * Values greater than +100 makes the right motor run the opposite direction of the left motor (Spin)" + % syncMotor (Motor): The motor-object to sync with + % turnRatio (numeric in [-200,200]): Ratio between the two master's and the + % slave's motor speed. With values!=0 one motor will be slower than the other + % or even turn into the other direction. This can be used for turning car-like + % robots, for example. (Read in Firmware-comments in c_output.c): |br| + % -> 0 is moving straight forward |br| + % -> Negative values turn to the left |br| + % -> Positive values turn to the right |br| + % -> Value -100 stops the left motor |br| + % -> Value +100 stops the right motor |br| + % -> Values less than -100 makes the left motor run the opposite direction of the right motor (Spin) |br| + % -> Values greater than +100 makes the right motor run the opposite direction of the left motor (Spin) |br| % % Notes: % * This is right now a pretty 'heavy' function, as it tests if both motors are % connected AND aren't running, wasting four packets, keep that in mind - % * It is necessary to call syncedStop() and not stop() for stopping the motors - % (otherwise the sync-state cannot be exited correctly) % % Example: % b = EV3(); |br| @@ -396,9 +387,9 @@ classdef Motor < MaskedHandle & dynamicprops % slave = b.motorB; |br| % m.power = 50; |br| % m.syncedStart(slave); |br| - % % Do stuff - % m.syncedStop(); |br| - % + % % Do stuff |br| + % m.stop(); |br| + turnRatio = 0; % Check parameters -- GitLab