From d1c5ad9e2f25f73b84c87ef3bcec2432ff6e4ac6 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Tue, 6 Sep 2022 03:01:30 +0000 Subject: CTAN sync 202209060301 --- macros/latex/contrib/democodetools/README.md | 84 +- .../contrib/democodetools/doc/democodetools.tex | 708 +-- .../democodetools/latex/democodelisting.sty | 1044 +-- .../contrib/democodetools/latex/democodetools.sty | 678 +- macros/latex/contrib/llncs/README.md | 2 +- macros/latex/contrib/llncs/history.txt | 4 + macros/latex/contrib/llncs/llncs.cls | 8 +- macros/latex/contrib/llncs/llncsdoc.pdf | Bin 218741 -> 230144 bytes macros/latex/contrib/llncs/llncsdoc.tex | 4 +- macros/latex/contrib/ufrgscca/README.txt | 67 + macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf | 6689 ++++++++++++++++++++ macros/latex/contrib/ufrgscca/doc/ufrgscca.tex | 1125 ++++ .../latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty | 494 ++ .../contrib/ufrgscca/latex/ufrgscca-coord.sty | 1006 +++ .../latex/contrib/ufrgscca/latex/ufrgscca-core.sty | 279 + .../contrib/ufrgscca/latex/ufrgscca-cover.sty | 340 + .../contrib/ufrgscca/latex/ufrgscca-curr-graph.sty | 127 + .../contrib/ufrgscca/latex/ufrgscca-curr-tab.sty | 166 + .../latex/contrib/ufrgscca/latex/ufrgscca-curr.sty | 181 + .../contrib/ufrgscca/latex/ufrgscca-en-base.def | 97 + .../contrib/ufrgscca/latex/ufrgscca-en-coord.def | 129 + .../contrib/ufrgscca/latex/ufrgscca-en-core.def | 101 + .../contrib/ufrgscca/latex/ufrgscca-en-forms.def | 215 + .../contrib/ufrgscca/latex/ufrgscca-forms.sty | 561 ++ .../latex/contrib/ufrgscca/latex/ufrgscca-gen.sty | 152 + .../contrib/ufrgscca/latex/ufrgscca-lists.sty | 118 + .../latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty | 501 ++ .../contrib/ufrgscca/latex/ufrgscca-ptBR-base.def | 95 + .../contrib/ufrgscca/latex/ufrgscca-ptBR-coord.def | 129 + .../contrib/ufrgscca/latex/ufrgscca-ptBR-core.def | 101 + .../contrib/ufrgscca/latex/ufrgscca-ptBR-forms.def | 215 + macros/latex/contrib/ufrgscca/latex/ufrgscca.cls | 211 + 32 files changed, 14367 insertions(+), 1264 deletions(-) create mode 100644 macros/latex/contrib/ufrgscca/README.txt create mode 100644 macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf create mode 100644 macros/latex/contrib/ufrgscca/doc/ufrgscca.tex create mode 100644 macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty create mode 100644 macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty create mode 100644 macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty create mode 100644 macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty create mode 100644 macros/latex/contrib/ufrgscca/latex/ufrgscca-curr-graph.sty create mode 100644 macros/latex/contrib/ufrgscca/latex/ufrgscca-curr-tab.sty create mode 100644 macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty create mode 100644 macros/latex/contrib/ufrgscca/latex/ufrgscca-en-base.def create mode 100644 macros/latex/contrib/ufrgscca/latex/ufrgscca-en-coord.def create mode 100644 macros/latex/contrib/ufrgscca/latex/ufrgscca-en-core.def create mode 100644 macros/latex/contrib/ufrgscca/latex/ufrgscca-en-forms.def create mode 100644 macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty create mode 100644 macros/latex/contrib/ufrgscca/latex/ufrgscca-gen.sty create mode 100644 macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty create mode 100644 macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty create mode 100644 macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-base.def create mode 100644 macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-coord.def create mode 100644 macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-core.def create mode 100644 macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-forms.def create mode 100644 macros/latex/contrib/ufrgscca/latex/ufrgscca.cls (limited to 'macros/latex') diff --git a/macros/latex/contrib/democodetools/README.md b/macros/latex/contrib/democodetools/README.md index 43121c20c0..5c43895db6 100644 --- a/macros/latex/contrib/democodetools/README.md +++ b/macros/latex/contrib/democodetools/README.md @@ -1,42 +1,42 @@ -%%%============================================================================== -%% Copyright 2022 by Alceu Frigeri -%% -%% -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3c -%% 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 2005/12/01 or later. -%% -%% This work has the LPPL maintenance status “maintained”. -%% -%% The Current Maintainer of this work is Alceu Frigeri -%% -%% This is version 1.0beta (2022/09/01) -%% -%% -%% This work consists of the files -%% -%% democodelisting.sty set of macros to typeset and demonstrate LaTeX code -%% democodetools.sty set of macros to document LaTeX packages -%% -%% README.md (this file) quick introduction -%% -%% democode.tex LaTeX documentation -%% democode.pdf documentation in PDF form -%% -%%%============================================================================== - -This is 'yet another doc/docx/doc3' package for LaTeX code documetation (and demonstration). -It is designed to be 'as class independent as possible', -meaning: it makes no assumption about page layout (besides 'having a marginpar') or underline macros. -Furthermore, it's assumed that \maketitle and the abstract environment -were modified by the underline class, so alternatives (based on the article class) are provided. - -For more details, see the documentation, democodetools.pdf (source code: democodetools.tex) - -The main idea is to be able to document a package/class loading it first and then this package, -making it possible not only to document the 'syntax' -but also to show the end result 'as is' when using that other specific class/package. +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status "maintained". +%% +%% The Current Maintainer of this work is Alceu Frigeri +%% +%% This is version 1.0beta (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% democodelisting.sty set of macros to typeset and demonstrate LaTeX code +%% democodetools.sty set of macros to document LaTeX packages +%% +%% README.md (this file) quick introduction +%% +%% democode.tex LaTeX documentation +%% democode.pdf documentation in PDF form +%% +%%%============================================================================== + +This is 'yet another doc/docx/doc3' package for LaTeX code documetation (and demonstration). +It is designed to be 'as class independent as possible', +meaning: it makes no assumption about page layout (besides 'having a marginpar') or underline macros. +Furthermore, it's assumed that \maketitle and the abstract environment +were modified by the underline class, so alternatives (based on the article class) are provided. + +For more details, see the documentation, democodetools.pdf (source code: democodetools.tex) + +The main idea is to be able to document a package/class loading it first and then this package, +making it possible not only to document the 'syntax' +but also to show the end result 'as is' when using that other specific class/package. diff --git a/macros/latex/contrib/democodetools/doc/democodetools.tex b/macros/latex/contrib/democodetools/doc/democodetools.tex index 6aa11e81f2..41c7a271ae 100644 --- a/macros/latex/contrib/democodetools/doc/democodetools.tex +++ b/macros/latex/contrib/democodetools/doc/democodetools.tex @@ -1,355 +1,355 @@ -%%%============================================================================== -%% Copyright 2022 by Alceu Frigeri -%% -%% -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3c -%% 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 2005/12/01 or later. -%% -%% This work has the LPPL maintenance status “maintained”. -%% -%% The Current Maintainer of this work is Alceu Frigeri -%% -%% This is version 1.0beta (2022/09/01) -%% -%% -%% This work consists of the files -%% -%% democodelisting.sty set of macros to typeset and demonstrate LaTeX code -%% democodetools.sty set of macros to document LaTeX packages -%% -%% README.md quick introduction -%% -%% democodetools.tex LaTeX documentation (this file) -%% democodetools.pdf documentation in PDF form -%% -%%%============================================================================== -\makeatletter -\def\tc@tmp@packname{democodetoolsdoc} -\def\tc@tmp@altpackname{democodetoolsdoc} -\def\tc@tmp@packdesc{Demo Code Tools Documentantion} -\def\tc@tmp@packdate{2022/09/01} -\def\tc@tmp@packversion{1.0beta} -\let\@exp\expandafter -\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} -\makeatother - -\documentclass[dctools,english]{ufrgscca} -\usepackage{democodetools} - -\dcTitle{The democodetools and democodelisting Packages - Version \democodetoolsversion} -\dcAuthor{Alceu Frigeri} -\dcDate{September 2022} - -\begin{document} - -\dcMakeTitle - -\begin{dcAbstract} -This is `yet another doc/docx/doc3' package. It is designed to be `as class independent as possible', meaning: it makes no assumption about page layout (besides `having a marginpar') or underline macros. Furthermore, it's assumed that \Macro{\maketitle}{} and the \Key{abstract} environment were modified by the underline class, so alternatives (based on the article class) are provided. The main idea is to be able to document a package/class loading it first and then this, so that it is possible not only to document the `syntax' but also to show the end result `as is' when using that other specific class/package. - -\end{dcAbstract} - -\tableofcontents - -\section{Introduction} -The packages/classes doc/docx/doc3 (and for that matter doctools) where designed to be used with dtx files, which is handy for package developers, as long as one is fine with the `default article' format (which is true most of the time). This came to be from the willingness of having the `new look and feel' used in doc3, but, instead of having to rely on a standard class, being able to use any class as the base one, which allows to `demonstrate the documented commands with the final layout'.\\ - -\Pack{democodelisting} defines a few macros to display and demonstrate \LaTeX~ code verbatim (using \Pack{listings} and \Pack{scontents}), whilst \Pack{democodetools} defines a series of macros to display/enumerate macros and environments (somewhat resembling the \Pack{doc3} style).\\ -\subsection{Current Version} -This doc regards to \Pack{democodelisting} version \democodelistingversion~ and \Pack{democodetools} version \democodetoolsversion. Those two packages are 'usable' but they haven't been thoroughly tested, nor should anyone consider them stable (they might be considered more or less stable but more due the 'maintainer' lack of time than anything else. Use it at your own risk.) - -\section{democodelisting Package} - -It requires two packages: \Pack{listings} and \Pack{scontents}\\ -Defines an environment: \Env{stcode} and\\ - 4 commands: \Macro{\DemoCode}{}, \Macro{\DisplayCode}{}, \Macro{\TabbedDisplayCode}{} and \Macro{\setdclisting}{}. - -\subsection{In Memory Code Storage} -Thanks to \Pack{scontents} (\Pack{expl3} based) it's possible to store \LaTeX~ code snippets in a \Pack{expl3} key. - -\begin{Envs}{stcode} - \begin{Syntax}% - \Macro{\begin{stcode}}[keys]{} \Macro{\end{stcode}}{} - \end{Syntax} -This environment is an alias to \Env{scontents} environment (from \Pack{scontents} package), all \Pack{scontents} keys are valid, with an additional one: \Key{st} which is an alias to the \Key{store-env} key. -The environment body is stored verbatim in the \Key{st} named key. -\end{Envs} - -\subsection{Code Display/Demo} -\begin{Macros}{\DisplayCode,\DemoCode,\TabbedDemoCode} - \begin{Syntax}% - \Macro{\DisplayCode}[dclisting-keys]{st-name} - \Macro{\DemoCode}[dclisting-keys]{st-name} - \Macro{\TabbedDemoCode}[dclisting-keys]{st-name} - \end{Syntax} -\end{Macros} -\Macro{\DisplayCode}{} just typesets \Arg{st-name} (the key-name created with \Env{stcode}), in verbatim mode with syntax highlight.\\ -\Macro{\DemoCode}{} first typesets \Arg{st-name}, as above, then it \emph{executes} said code. -Finally \Macro{\TabbedDemoCode}{} does the same, but typesetting it, and executed code, side by side. N.B. Both typeset and executed code are placed inside a \Env{minipage} so that, when \emph{executing} the code, one can have, for instance, 'normal' paragraph indentation.\\ -For Example: - -\begin{stcode}[st=demostcode] - \begin{stcode}[st=stmeta] - Some \LaTeX~coding, for example: \ldots. -\end{stcode} -This will just typesets \Key{stmeta}: - - \DisplayCode{stmeta} - -and this will demonstrate it, side by side with source code: - -\TabbedDemoCode[numbers=left,codeprefix={inner code},resultprefix={inner result}]{stmeta} -\end{stcode} - -\DemoCode[emph={DisplayCode,TabbedDemoCode},keywd2={stcode}]{demostcode} - -\begin{Macros}{\setdclisting} - \begin{Syntax}% - \Macro{\setdclisting}{dclisting-keys} - \end{Syntax} -Instead of setting/defining \Meta{dclisting-keys} per \Macro{\Demo}{}/\Macro{\Display}{} call, one can set those \emph{globally}, better said, \emph{in the called context group} .\\ -N.B.: All \Macro{\Display}{}/\Macro{\Demo}{} commands create a local group (\Macro{\begingroup}{}) in which the \Meta{dclisting-keys} are defined, and discarded once said local group is closed. \Macro{\setdclisting}{} defines those keys in the \emph{current} context/group (\Macro{\def}{}, \Macro{\edef}{}) -\end{Macros} - -\subsubsection{\Meta{dclisting-keys}} -Using a \Key{key}\,=\Value{value} syntax, one can fine tune \Pack{listings} syntax highlight. -\begin{Args} -\DescribeArg{dclisting-keys} -\begin{Syntax} % - \Keylst{settexcs,settexcs2,settexcs3} - \Keylst{texcs,texcs2,texcs3} - \Keylst{texcsstyle,texcs2style,texcs3style} -\end{Syntax}Those define sets of \LaTeX~commands (csnames), the \Key{set} variants initialize/redefine those sets (an empty list, clears the set), while the others extend those sets. The \Key{style} ones redefines the command display style (an empty \Meta{par} resets the style to it's default).\\ - -\begin{Syntax} % - \Keylst{setkeywd,setkeywd2,setkeywd3} - \Keylst{keywd,keywd2,keywd3} - \Keylst{keywdstyle,keywd2style,keywd3style} -\end{Syntax} -Same for other \emph{keywords} sets.\\ - -\begin{Syntax} % - \Keylst{setemph,setemph2,setemph3} - \Keylst{emph,emph2,emph3} - \Keylst{emphstyle,emph2style,emph3style} -\end{Syntax} -for some extra emphasis sets.\\ - -\begin{Syntax} % - \Keylst{numbers,numberstyle} -\end{Syntax} -\Key{numbers} possible values are \Value{none} (default) and \Value{left} (to add tinny numbers to the left of the listing). With \Key{numberstyle} one can redefine the numbering style.\\ - -\begin{Syntax} % - \Keylst{stringstyle,commentstyle} -\end{Syntax} -to redefine \Key{strings} and \Key{comments} formatting style.\\ - -\begin{Syntax} % - \Key{bckgndcolor} -\end{Syntax} -to change the listing background's color.\\ - -\begin{Syntax} % - \Keylst{codeprefix,resultprefix} -\end{Syntax} -those set the \Key{codeprefix} (default: \LaTeX~Code:) and \Key{resultprefix} (default: \LaTeX~Result:) -\end{Args} - -\section{democodetools Package} - - - - -\subsection{Environments} -\begin{Envs}{Macros,Envs} -\begin{Syntax}% -\Macro{\begin{Macros}}{macrolist} -\Macro{\begin{Envs}}{envlist} -\end{Syntax} -Those are the two main environments to describe \Env{Macros} and \Env{Environments}. Both typeset \Arg{macrolist} (csv list) or \Arg{envlist} (csv list) in the margin. N.B. Each element of the list gets \Macro{\detokenize}{} -\end{Envs} - -\begin{Envs}{Syntax} -\begin{Syntax}% -\Macro{\begin{Syntax}}{} -\end{Syntax} -The \Env{Syntax} environment sets the fontsize and activates \Macro{\obeylines}{}, so one can list macros/cmds/keys use, one per line. - -\begin{stcode}[st=demoD] -\begin{Envs}{Macros,Envs} -\begin{Syntax}% -\Macro{\begin{Macros}}{macrolist} -\Macro{\begin{Envs}}{envlist} -\end{Syntax} -Those are the two main ... -\end{Envs} -\end{stcode} -\DisplayCode{demoD} - -\end{Envs} - - -\begin{Envs}{Args,Keys,Values,Options} -\begin{Syntax}% -\Macro{\begin{Args}}{} -\Macro{\begin{Args+}}{} -\Macro{\begin{Keys}}{} -\Macro{\begin{Keys+}}{} -\Macro{\begin{Values}}{} -\Macro{\begin{Values+}}{} -\Macro{\begin{Options}}{} -\Macro{\begin{Options+}}{} -\end{Syntax} - -Those environments are all the same, starting a dedicated \emph{description list}. Together with the many \Macro{\Description...}{} commands, one can list all \Keylst{Options, Args, Keys, Values} as needed. The \Key{+} form are meant to be used with the \Macro{\Description...+}{} forms, for \emph{in text} lists. The non \Key{+} form are meant to have the many \emph{'descriptors'} in the \emph{margin par}. -\end{Envs} - -\subsection{Describe Commands} -\begin{Macros}{\DescribeMacro} -\begin{Syntax}% -\Macro!{\DescribeMacro}<*!+>{\marg{csname}\oarg{oarglist}\marg{marglist}} -\end{Syntax} -\begin{Args+} -\DescribeKey+{*} typesets the macro name in bold face. -\DescribeKey+{!} \Arg{marglist} is treated as an expandable code, 'as is'. -\DescribeKey+{+} the macro name is typeseted in text. -\DescribeArg+{csname} macro name (\Macro{\detokenize}{}) -\DescribeArg+{oarglist} csv list of optional args. -\DescribeArg+{marglist} csv list of mandatory args. -\end{Args+} -\end{Macros} - -\begin{Macros}{\DescribeArg,\DescribeKey,\DescribeValue,\DescribeOption,\DescribePackage,} -\begin{Syntax}% -\Macro{\DescribeArg}<*+>[type]{arg} -\Macro{\DescribeKey}<*+>[type]{arg} -\Macro{\DescribeValue}<*+>[type]{arg} -\Macro{\DescribeOption}<*+>[type]{arg} -\Macro{\DescribePackage}<*+>[type]{arg} -\end{Syntax} -\begin{Args+} -\DescribeKey+{*} typesets it in bold face. -\DescribeKey+{+} typesets in text (not in marginpar) -\DescribeArg+{type} key/arg/... format -\DescribeArg+{arg} key/arg/... name. -\end{Args+} -\end{Macros} - - -\subsection{Macros Typeset} -\begin{Macros}{\Macro} - \begin{Syntax}% - \Macro!{\Macro}{\marg{csname}\xarg{embl}\oarg{olist}\marg{mlist}} - \Macro!{\Macro}{\marg{csname}\xarg{embl}\marg{par.desc.}} - \end{Syntax} - When describing a macro \Arg{csname} (Command Sequence, csname) the \Arg{olist} and \Arg{mlist} are comma separated lists (csv) of optional and mandatory arguments. \Arg{embl} are optional, single char, 'embellishment' tokens, like {\bfseries * ! +}. Finally, in the {\bfseries !} form, the \Arg{par.desc.} is any text representing the macro parameter list (for non regular, non usual, cases). - - \begin{stcode}[st=demoB] - \Macro - {\Macro}<*!>[opt1,opt2]{arg3} - \Macro! - {\Macro}{\xarg{embl}\marg{par.desc.}} -\end{stcode} - \TabbedDemoCode{demoB} -\end{Macros} - -\subsection{Args Typeset} -\begin{Macros}{\oarg,\marg,\parg,\xarg,\Arg,\Meta} - \begin{Syntax}% - \Macro{\oarg}[type]{arg} - \Macro{\marg}[type]{arg} - \Macro{\parg}[type]{arg} - \Macro{\xarg}[type]{arg} - \Macro{\Arg}[type]{arg} - \Macro{\Meta}{arg} - \end{Syntax} - Those are meant to typeset the diverse kinds of 'command's arguments' (mandatory, optional, parenthesis . . .). \Macro{\Meta{arg}}{} typesets \emph{arg} as \Meta{arg}. - \begin{Args} - \DescribeArg{type} defaults to \Value{Meta} (it's the csname of any valid formatting command, like Meta, textbf, etc.) - \DescribeArg{arg} the argument name itself. - \end{Args} - \begin{stcode}[st=demoA] - \oarg{fam} - \parg{xtra} - \marg[textbf]{text} - \xarg{x-text} -\end{stcode} - \TabbedDemoCode{demoA} -\end{Macros} - -\subsection{Keys Typeset} -\begin{Macros}{\Key,\Keylst,\KeyUse} - \begin{Syntax}% - \Macro{\Key}[pre]{key} - \Macro{\Keylst}[default]{keylst} - \Macro{\KeyUse}{key}{value} - \end{Syntax} - To typeset a \Arg{Key} or \Arg{keylst} (csv list). \Arg{pre} is just prepended to \Arg{key} whilst \Arg{default} is the default key value. \Macro{\KeyUse}{} is just a short-cut for a, possible, common construction. - - \begin{stcode}[st=demoC] - \Key{Akey} - - \Keylst[Bkey]{Akey,Bkey} - - \KeyUse{keyA}{arg} -\end{stcode} - \TabbedDemoCode{demoC} - -\end{Macros} - -\begin{Macros}{\Env,\Pack,\Value} - \begin{Syntax}% - \Macro{\Env}[pre]{key} - \Macro{\Pack}[pre]{key} - \Macro{\Value}[pre]{key} - \end{Syntax} - Similar to \Macro{\Key}{} above, they will typeset a \Arg{Key}. \Arg{pre} is just prepended to \Arg{key} whilst \Arg{default} is the default key value. - - -\end{Macros} - - -\subsection{Others} -\begin{Macros}{\MetaFmt} - \begin{Syntax}% - \Macro{\MetaFmt}<*>[type]{} - \end{Syntax} -It sets the font size, series, face as defined by \Meta{type}, \Meta{type} being one of \Keylst{Oarg,Marg,Parg,Xarg,Macro,Code,Key,KeyVal,Option,Value,Default}. The star version uses bold. -\end{Macros} - - -\begin{Macros}{\MarginNote} - \begin{Syntax}% - \Macro{\MarginNote}{text} - \end{Syntax} -As the name implies, to add small margin notes. -\end{Macros} - - -\begin{Macros}{\dcAuthor,\dcDate,\dcTitle,\dcMakeTitle} - \begin{Syntax}% - \Macro{\dcAuthor}{name} - \Macro{\dcDate}{date} - \Macro{\dcTitle}{title} - \Macro{\dcMakeTitle}{} - \end{Syntax} -Those allow one to define (as in standard article, book, report classes) the document \emph{author}, \emph{date} and \emph{date} \Macro{\dcMakeTitle}{} will write a typical title+author heading (as in the article class). -\end{Macros} - -\begin{Envs}{dcAbstract} - \begin{Syntax}% - \Macro{\begin{dcAbstract}}{} \Macro{\end{dcAbstract}}{} - \end{Syntax} -Same as above, for the abstract. -\end{Envs} - - - - +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status “maintained”. +%% +%% The Current Maintainer of this work is Alceu Frigeri +%% +%% This is version 1.0beta (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% democodelisting.sty set of macros to typeset and demonstrate LaTeX code +%% democodetools.sty set of macros to document LaTeX packages +%% +%% README.md quick introduction +%% +%% democodetools.tex LaTeX documentation (this file) +%% democodetools.pdf documentation in PDF form +%% +%%%============================================================================== +\makeatletter +\def\tc@tmp@packname{democodetoolsdoc} +\def\tc@tmp@altpackname{democodetoolsdoc} +\def\tc@tmp@packdesc{Demo Code Tools Documentantion} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0beta} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} +\makeatother + +\documentclass[dctools,english]{ufrgscca} +\usepackage{democodetools} + +\dcTitle{The democodetools and democodelisting Packages - Version \democodetoolsversion} +\dcAuthor{Alceu Frigeri} +\dcDate{September 2022} + +\begin{document} + +\dcMakeTitle + +\begin{dcAbstract} +This is `yet another doc/docx/doc3' package. It is designed to be `as class independent as possible', meaning: it makes no assumption about page layout (besides `having a marginpar') or underline macros. Furthermore, it's assumed that \Macro{\maketitle}{} and the \Key{abstract} environment were modified by the underline class, so alternatives (based on the article class) are provided. The main idea is to be able to document a package/class loading it first and then this, so that it is possible not only to document the `syntax' but also to show the end result `as is' when using that other specific class/package. + +\end{dcAbstract} + +\tableofcontents + +\section{Introduction} +The packages/classes doc/docx/doc3 (and for that matter doctools) where designed to be used with dtx files, which is handy for package developers, as long as one is fine with the `default article' format (which is true most of the time). This came to be from the willingness of having the `new look and feel' used in doc3, but, instead of having to rely on a standard class, being able to use any class as the base one, which allows to `demonstrate the documented commands with the final layout'.\\ + +\Pack{democodelisting} defines a few macros to display and demonstrate \LaTeX~ code verbatim (using \Pack{listings} and \Pack{scontents}), whilst \Pack{democodetools} defines a series of macros to display/enumerate macros and environments (somewhat resembling the \Pack{doc3} style).\\ +\subsection{Current Version} +This doc regards to \Pack{democodelisting} version \democodelistingversion~ and \Pack{democodetools} version \democodetoolsversion. Those two packages are 'usable' but they haven't been thoroughly tested, nor should anyone consider them stable (they might be considered more or less stable but more due the 'maintainer' lack of time than anything else. Use it at your own risk.) + +\section{democodelisting Package} + +It requires two packages: \Pack{listings} and \Pack{scontents}\\ +Defines an environment: \Env{stcode} and\\ + 4 commands: \Macro{\DemoCode}{}, \Macro{\DisplayCode}{}, \Macro{\TabbedDisplayCode}{} and \Macro{\setdclisting}{}. + +\subsection{In Memory Code Storage} +Thanks to \Pack{scontents} (\Pack{expl3} based) it's possible to store \LaTeX~ code snippets in a \Pack{expl3} key. + +\begin{Envs}{stcode} + \begin{Syntax}% + \Macro{\begin{stcode}}[keys]{} \Macro{\end{stcode}}{} + \end{Syntax} +This environment is an alias to \Env{scontents} environment (from \Pack{scontents} package), all \Pack{scontents} keys are valid, with an additional one: \Key{st} which is an alias to the \Key{store-env} key. +The environment body is stored verbatim in the \Key{st} named key. +\end{Envs} + +\subsection{Code Display/Demo} +\begin{Macros}{\DisplayCode,\DemoCode,\TabbedDemoCode} + \begin{Syntax}% + \Macro{\DisplayCode}[dclisting-keys]{st-name} + \Macro{\DemoCode}[dclisting-keys]{st-name} + \Macro{\TabbedDemoCode}[dclisting-keys]{st-name} + \end{Syntax} +\end{Macros} +\Macro{\DisplayCode}{} just typesets \Arg{st-name} (the key-name created with \Env{stcode}), in verbatim mode with syntax highlight.\\ +\Macro{\DemoCode}{} first typesets \Arg{st-name}, as above, then it \emph{executes} said code. +Finally \Macro{\TabbedDemoCode}{} does the same, but typesetting it, and executed code, side by side. N.B. Both typeset and executed code are placed inside a \Env{minipage} so that, when \emph{executing} the code, one can have, for instance, 'normal' paragraph indentation.\\ +For Example: + +\begin{stcode}[st=demostcode] + \begin{stcode}[st=stmeta] + Some \LaTeX~coding, for example: \ldots. +\end{stcode} +This will just typesets \Key{stmeta}: + + \DisplayCode{stmeta} + +and this will demonstrate it, side by side with source code: + +\TabbedDemoCode[numbers=left,codeprefix={inner code},resultprefix={inner result}]{stmeta} +\end{stcode} + +\DemoCode[emph={DisplayCode,TabbedDemoCode},keywd2={stcode}]{demostcode} + +\begin{Macros}{\setdclisting} + \begin{Syntax}% + \Macro{\setdclisting}{dclisting-keys} + \end{Syntax} +Instead of setting/defining \Meta{dclisting-keys} per \Macro{\Demo}{}/\Macro{\Display}{} call, one can set those \emph{globally}, better said, \emph{in the called context group} .\\ +N.B.: All \Macro{\Display}{}/\Macro{\Demo}{} commands create a local group (\Macro{\begingroup}{}) in which the \Meta{dclisting-keys} are defined, and discarded once said local group is closed. \Macro{\setdclisting}{} defines those keys in the \emph{current} context/group (\Macro{\def}{}, \Macro{\edef}{}) +\end{Macros} + +\subsubsection{\Meta{dclisting-keys}} +Using a \Key{key}\,=\Value{value} syntax, one can fine tune \Pack{listings} syntax highlight. +\begin{Args} +\DescribeArg{dclisting-keys} +\begin{Syntax} % + \Keylst{settexcs,settexcs2,settexcs3} + \Keylst{texcs,texcs2,texcs3} + \Keylst{texcsstyle,texcs2style,texcs3style} +\end{Syntax}Those define sets of \LaTeX~commands (csnames), the \Key{set} variants initialize/redefine those sets (an empty list, clears the set), while the others extend those sets. The \Key{style} ones redefines the command display style (an empty \Meta{par} resets the style to it's default).\\ + +\begin{Syntax} % + \Keylst{setkeywd,setkeywd2,setkeywd3} + \Keylst{keywd,keywd2,keywd3} + \Keylst{keywdstyle,keywd2style,keywd3style} +\end{Syntax} +Same for other \emph{keywords} sets.\\ + +\begin{Syntax} % + \Keylst{setemph,setemph2,setemph3} + \Keylst{emph,emph2,emph3} + \Keylst{emphstyle,emph2style,emph3style} +\end{Syntax} +for some extra emphasis sets.\\ + +\begin{Syntax} % + \Keylst{numbers,numberstyle} +\end{Syntax} +\Key{numbers} possible values are \Value{none} (default) and \Value{left} (to add tinny numbers to the left of the listing). With \Key{numberstyle} one can redefine the numbering style.\\ + +\begin{Syntax} % + \Keylst{stringstyle,commentstyle} +\end{Syntax} +to redefine \Key{strings} and \Key{comments} formatting style.\\ + +\begin{Syntax} % + \Key{bckgndcolor} +\end{Syntax} +to change the listing background's color.\\ + +\begin{Syntax} % + \Keylst{codeprefix,resultprefix} +\end{Syntax} +those set the \Key{codeprefix} (default: \LaTeX~Code:) and \Key{resultprefix} (default: \LaTeX~Result:) +\end{Args} + +\section{democodetools Package} + + + + +\subsection{Environments} +\begin{Envs}{Macros,Envs} +\begin{Syntax}% +\Macro{\begin{Macros}}{macrolist} +\Macro{\begin{Envs}}{envlist} +\end{Syntax} +Those are the two main environments to describe \Env{Macros} and \Env{Environments}. Both typeset \Arg{macrolist} (csv list) or \Arg{envlist} (csv list) in the margin. N.B. Each element of the list gets \Macro{\detokenize}{} +\end{Envs} + +\begin{Envs}{Syntax} +\begin{Syntax}% +\Macro{\begin{Syntax}}{} +\end{Syntax} +The \Env{Syntax} environment sets the fontsize and activates \Macro{\obeylines}{}, so one can list macros/cmds/keys use, one per line. + +\begin{stcode}[st=demoD] +\begin{Envs}{Macros,Envs} +\begin{Syntax}% +\Macro{\begin{Macros}}{macrolist} +\Macro{\begin{Envs}}{envlist} +\end{Syntax} +Those are the two main ... +\end{Envs} +\end{stcode} +\DisplayCode{demoD} + +\end{Envs} + + +\begin{Envs}{Args,Keys,Values,Options} +\begin{Syntax}% +\Macro{\begin{Args}}{} +\Macro{\begin{Args+}}{} +\Macro{\begin{Keys}}{} +\Macro{\begin{Keys+}}{} +\Macro{\begin{Values}}{} +\Macro{\begin{Values+}}{} +\Macro{\begin{Options}}{} +\Macro{\begin{Options+}}{} +\end{Syntax} + +Those environments are all the same, starting a dedicated \emph{description list}. Together with the many \Macro{\Description...}{} commands, one can list all \Keylst{Options, Args, Keys, Values} as needed. The \Key{+} form are meant to be used with the \Macro{\Description...+}{} forms, for \emph{in text} lists. The non \Key{+} form are meant to have the many \emph{'descriptors'} in the \emph{margin par}. +\end{Envs} + +\subsection{Describe Commands} +\begin{Macros}{\DescribeMacro} +\begin{Syntax}% +\Macro!{\DescribeMacro}<*!+>{\marg{csname}\oarg{oarglist}\marg{marglist}} +\end{Syntax} +\begin{Args+} +\DescribeKey+{*} typesets the macro name in bold face. +\DescribeKey+{!} \Arg{marglist} is treated as an expandable code, 'as is'. +\DescribeKey+{+} the macro name is typeseted in text. +\DescribeArg+{csname} macro name (\Macro{\detokenize}{}) +\DescribeArg+{oarglist} csv list of optional args. +\DescribeArg+{marglist} csv list of mandatory args. +\end{Args+} +\end{Macros} + +\begin{Macros}{\DescribeArg,\DescribeKey,\DescribeValue,\DescribeOption,\DescribePackage,} +\begin{Syntax}% +\Macro{\DescribeArg}<*+>[type]{arg} +\Macro{\DescribeKey}<*+>[type]{arg} +\Macro{\DescribeValue}<*+>[type]{arg} +\Macro{\DescribeOption}<*+>[type]{arg} +\Macro{\DescribePackage}<*+>[type]{arg} +\end{Syntax} +\begin{Args+} +\DescribeKey+{*} typesets it in bold face. +\DescribeKey+{+} typesets in text (not in marginpar) +\DescribeArg+{type} key/arg/... format +\DescribeArg+{arg} key/arg/... name. +\end{Args+} +\end{Macros} + + +\subsection{Macros Typeset} +\begin{Macros}{\Macro} + \begin{Syntax}% + \Macro!{\Macro}{\marg{csname}\xarg{embl}\oarg{olist}\marg{mlist}} + \Macro!{\Macro}{\marg{csname}\xarg{embl}\marg{par.desc.}} + \end{Syntax} + When describing a macro \Arg{csname} (Command Sequence, csname) the \Arg{olist} and \Arg{mlist} are comma separated lists (csv) of optional and mandatory arguments. \Arg{embl} are optional, single char, 'embellishment' tokens, like {\bfseries * ! +}. Finally, in the {\bfseries !} form, the \Arg{par.desc.} is any text representing the macro parameter list (for non regular, non usual, cases). + + \begin{stcode}[st=demoB] + \Macro + {\Macro}<*!>[opt1,opt2]{arg3} + \Macro! + {\Macro}{\xarg{embl}\marg{par.desc.}} +\end{stcode} + \TabbedDemoCode{demoB} +\end{Macros} + +\subsection{Args Typeset} +\begin{Macros}{\oarg,\marg,\parg,\xarg,\Arg,\Meta} + \begin{Syntax}% + \Macro{\oarg}[type]{arg} + \Macro{\marg}[type]{arg} + \Macro{\parg}[type]{arg} + \Macro{\xarg}[type]{arg} + \Macro{\Arg}[type]{arg} + \Macro{\Meta}{arg} + \end{Syntax} + Those are meant to typeset the diverse kinds of 'command's arguments' (mandatory, optional, parenthesis . . .). \Macro{\Meta{arg}}{} typesets \emph{arg} as \Meta{arg}. + \begin{Args} + \DescribeArg{type} defaults to \Value{Meta} (it's the csname of any valid formatting command, like Meta, textbf, etc.) + \DescribeArg{arg} the argument name itself. + \end{Args} + \begin{stcode}[st=demoA] + \oarg{fam} + \parg{xtra} + \marg[textbf]{text} + \xarg{x-text} +\end{stcode} + \TabbedDemoCode{demoA} +\end{Macros} + +\subsection{Keys Typeset} +\begin{Macros}{\Key,\Keylst,\KeyUse} + \begin{Syntax}% + \Macro{\Key}[pre]{key} + \Macro{\Keylst}[default]{keylst} + \Macro{\KeyUse}{key}{value} + \end{Syntax} + To typeset a \Arg{Key} or \Arg{keylst} (csv list). \Arg{pre} is just prepended to \Arg{key} whilst \Arg{default} is the default key value. \Macro{\KeyUse}{} is just a short-cut for a, possible, common construction. + + \begin{stcode}[st=demoC] + \Key{Akey} + + \Keylst[Bkey]{Akey,Bkey} + + \KeyUse{keyA}{arg} +\end{stcode} + \TabbedDemoCode{demoC} + +\end{Macros} + +\begin{Macros}{\Env,\Pack,\Value} + \begin{Syntax}% + \Macro{\Env}[pre]{key} + \Macro{\Pack}[pre]{key} + \Macro{\Value}[pre]{key} + \end{Syntax} + Similar to \Macro{\Key}{} above, they will typeset a \Arg{Key}. \Arg{pre} is just prepended to \Arg{key} whilst \Arg{default} is the default key value. + + +\end{Macros} + + +\subsection{Others} +\begin{Macros}{\MetaFmt} + \begin{Syntax}% + \Macro{\MetaFmt}<*>[type]{} + \end{Syntax} +It sets the font size, series, face as defined by \Meta{type}, \Meta{type} being one of \Keylst{Oarg,Marg,Parg,Xarg,Macro,Code,Key,KeyVal,Option,Value,Default}. The star version uses bold. +\end{Macros} + + +\begin{Macros}{\MarginNote} + \begin{Syntax}% + \Macro{\MarginNote}{text} + \end{Syntax} +As the name implies, to add small margin notes. +\end{Macros} + + +\begin{Macros}{\dcAuthor,\dcDate,\dcTitle,\dcMakeTitle} + \begin{Syntax}% + \Macro{\dcAuthor}{name} + \Macro{\dcDate}{date} + \Macro{\dcTitle}{title} + \Macro{\dcMakeTitle}{} + \end{Syntax} +Those allow one to define (as in standard article, book, report classes) the document \emph{author}, \emph{date} and \emph{date} \Macro{\dcMakeTitle}{} will write a typical title+author heading (as in the article class). +\end{Macros} + +\begin{Envs}{dcAbstract} + \begin{Syntax}% + \Macro{\begin{dcAbstract}}{} \Macro{\end{dcAbstract}}{} + \end{Syntax} +Same as above, for the abstract. +\end{Envs} + + + + \end{document} \ No newline at end of file diff --git a/macros/latex/contrib/democodetools/latex/democodelisting.sty b/macros/latex/contrib/democodetools/latex/democodelisting.sty index 1041b6f249..21e74cac82 100644 --- a/macros/latex/contrib/democodetools/latex/democodelisting.sty +++ b/macros/latex/contrib/democodetools/latex/democodelisting.sty @@ -1,522 +1,522 @@ -%%%============================================================================== -%% Copyright 2022 by Alceu Frigeri -%% -%% -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3c -%% 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 2005/12/01 or later. -%% -%% This work has the LPPL maintenance status “maintained”. -%% -%% The Current Maintainer of this work is Alceu Frigeri -%% -%% This is version 1.0beta (2022/09/01) -%% -%% -%% This work consists of the files -%% -%% democodelisting.sty set of macros to typeset and demonstrate LaTeX code -%% democodetools.sty set of macros to document LaTeX packages -%% -%% README.md quick introduction -%% -%% democodetools.tex LaTeX documentation -%% democodetools.pdf documentation in PDF form -%% -%%%============================================================================== -\NeedsTeXFormat{LaTeX2e}[2022/06/01] -\def\tc@tmp@packname{democodelisting} -\def\tc@tmp@altpackname{democodelisting} -\def\tc@tmp@packdesc{Demo Code Listing} -\def\tc@tmp@packdate{2022/09/01} -\def\tc@tmp@packversion{1.0beta} -\let\@exp\expandafter -\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} -\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] - -\RequirePackage{listings} -\RequirePackage{scontents} - -\newlength{\dc@demo@parindent} -\newlength{\dc@org@parindent} -\setlength\dc@org@parindent{\parindent} -\setlength\parindent{0pt} - - -\colorlet{dc@lightcyan}{white!97!cyan} -\colorlet{dc@lightgray}{white!97!black} -\definecolor{dc@grayblack}{rgb}{0.8,0.8,0.8} - -\colorlet{dc@darkgreen}{green!45!black!100} -\colorlet{dc@darkteal}{teal!45!black!100} -\colorlet{dc@darkblue}{blue!40!black!100} -\colorlet{dc@darkred}{red!45!black!100} - -\colorlet{dc@blueishblack}{blue!75!black!100} -\colorlet{dc@reddishblack}{red!60!black!100} -\colorlet{dc@greenishblack}{green!45!black!100} - -\def\dc@lstbckgndcolordefault{dc@lightgray}% -\def\dc@lststringcolordefault{dc@darkteal} -\def\dc@lstcommentcolordefault{dc@darkgreen} -\def\dc@lsttexcscolordefault{dc@darkblue} -\def\dc@lstkeywdcolordefault{dc@darkblue} - -\def\dc@lsttexcsBcolordefault{dc@blueishblack} -\def\dc@lstkeywdBcolordefault{dc@greenishblack} -\def\dc@lstemphcolordefault{dc@reddishblack} - -\colorlet{dc@lstnumbercolordefault}{white!50!black!100} - -\def\dc@lstrulecolordefault{gray} -\def\dc@lstnumbercolordefault{gray} - -\DeclareKeys[dclisting]{ - settexcs.usage = general, - settexcs.code = {\ifblank{#1}{\def\dc@lsttexcs{}}{\def\dc@lsttexcs{#1}}}, - texcs.usage = general, - texcs.code = {\ifblank{#1}{}{\edef\dc@lsttexcs{\dc@lsttexcs,#1}}}, - texcsstyle.usage = general, - texcsstyle.code = {\ifblank{#1}{\def\dc@lsttexcsstyle{\bfseries\color{\dc@lsttexcscolordefault}}}{\def\dc@lsttexcsstyle{#1}}}, - - settexcs2.usage = general, - settexcs2.code = {\ifblank{#1}{\def\dc@lsttexcsB{}}{\def\dc@lsttexcsB{#1}}}, - texcs2.usage = general, - texcs2.code = {\ifblank{#1}{}{\edef\dc@lsttexcsB{\dc@lsttexcsB,#1}}}, - texcs2style.usage = general, - texcs2style.code = {\ifblank{#1}{\def\dc@lsttexcsBstyle{\bfseries\color{\dc@lsttexcsBcolordefault}}}{\def\dc@lsttexcsBstyle{#1}}}, - - settexcs3.usage = general, - settexcs3.code = {\ifblank{#1}{\def\dc@lsttexcsC{}}{\def\dc@lsttexcsC{#1}}}, - texcs3.usage = general, - texcs3.code = {\ifblank{#1}{}{\edef\dc@lsttexcsC{\dc@lsttexcsC,#1}}}, - texcs3style.usage = general, - texcs3style.code = {\ifblank{#1}{\def\dc@lsttexcsCstyle{\bfseries\color{\dc@lsttexcsBcolordefault}}}{\def\dc@lsttexcsCstyle{#1}}}, - - setkeywd.usage = general, - setkeywd.code = {\ifblank{#1}{\def\dc@lstkeywd{}}{\def\dc@lstkeywd{#1}}}, - keywd.usage = general, - keywd.code = {\ifblank{#1}{}{\edef\dc@lstkeywd{\dc@lstkeywd,#1}}}, - keywdstyle.usage = general, - keywdstyle.code = {\ifblank{#1}{\def\dc@lstkeywdstyle{\bfseries\color{\dc@lstkeywdcolordefault}}}{\def\dc@lstkeywdstyle{#1}}}, - - setkeywd2.usage = general, - setkeywd2.code = {\ifblank{#1}{\def\dc@lstkeywdB{}}{\def\dc@lstkeywdB{#1}}}, - keywd2.usage = general, - keywd2.code = {\ifblank{#1}{}{\edef\dc@lstkeywdB{\dc@lstkeywdB,#1}}}, - keywd2style.usage = general, - keywd2style.code = {\ifblank{#1}{\def\dc@lstkeywdBstyle{\bfseries\color{\dc@lstkeywdBcolordefault}}}{\def\dc@lstkeywdBstyle{#1}}}, - - setkeywd3.usage = general, - setkeywd3.code = {\ifblank{#1}{\def\dc@lstkeywdC{}}{\def\dc@lstkeywdC{#1}}}, - keywd3.usage = general, - keywd3.code = {\ifblank{#1}{}{\edef\dc@lstkeywdC{\dc@lstkeywdC,#1}}}, - keywd3style.usage = general, - keywd3style.code = {\ifblank{#1}{\def\dc@lstkeywdCstyle{\bfseries\color{\dc@lstkeywdBcolordefault}}}{\def\dc@lstkeywdCstyle{#1}}}, - - setemph.usage = general, - setemph.code = {\ifblank{#1}{\def\dc@lstemph{}}{\def\dc@lstemph{#1}}}, - emph.usage = general, - emph.code = {\ifblank{#1}{}{\edef\dc@lstemph{\dc@lstemph,#1}}}, - emphstyle.usage = general, - emphstyle.code = {\ifblank{#1}{\def\dc@lstemphstyle{\bfseries\color{\dc@lstemphcolordefault}}}{\def\dc@lstemphstyle{#1}}}, - - setemph2.usage = general, - setemph2.code = {\ifblank{#1}{\def\dc@lstemphB{}}{\def\dc@lstemphB{#1}}}, - emph2.usage = general, - emph2.code = {\ifblank{#1}{}{\edef\dc@lstemphB{\dc@lstemphB,#1}}}, - emph2style.usage = general, - emph2style.code = {\ifblank{#1}{\def\dc@lstemphBstyle{\bfseries\color{\dc@lstemphcolordefault}}}{\def\dc@lstemphBstyle{#1}}}, - - setemph3.usage = general, - setemph3.code = {\ifblank{#1}{\def\dc@lstemphC{}}{\def\dc@lstemphC{#1}}}, - emph3.usage = general, - emph3.code = {\ifblank{#1}{}{\edef\dc@lstemphC{\dc@lstemphC,#1}}}, - emph3style.usage = general, - emph3style.code = {\ifblank{#1}{\def\dc@lstemphCstyle{\bfseries\color{\dc@lstemphcolordefault}}}{\def\dc@lstemphCstyle{#1}}}, - - stringstyle.usage = general, - stringstyle.code = {\ifblank{#1}{\def\dc@lststringstyle{\color{\dc@lststringcolordefault}}}{\def\dc@lststringstyle{#1}}}, - - commentstyle.usage = general, - commentstyle.code = {\ifblank{#1}{\def\dc@lstcommentstyle{\color{\dc@lstcommentcolordefault}}}{\def\dc@lstcommentstyle{#1}}}, - - bckgndcolor.usage = general, - bckgndcolor.code = {\ifblank{#1}{\def\dc@lstbckgndcolor{\color{\dc@lstbckgndcolordefault}}}{\def\dc@lstbckgndcolor{#1}}}, - - rulecolor.usage = general, - rulecolor.code = {\ifblank{#1}{\def\dc@lstrulecolor{\color{\dc@lstrulecolordefault}}}{\def\dc@lstrulecolor{#1}}}, - - numbers.usage = general, - numbers.code = {\ifblank{#1}{\def\dc@lstnumbers{none}}{\def\dc@lstnumbers{#1}}}, - - numberstyle.usage = general, - numberstyle.code = {\ifblank{#1}{\def\dc@lstnumberstyle{\tiny\color{\dc@lstnumbercolordefault}}}{\def\dc@lstnumberstyle{#1}}}, - - parindent.usage = general, - parindent.code = {\setlength\dc@demo@parindent{\parindent}\setdcpar{#1}}, - - default.usage = general, - default.code = {\dc@lstkeysdefault}, -} -\NewDocumentCommand{\setdclisting}{m}{\SetKeys[dclisting]{#1}} -\NewDocumentCommand{\dc@lstkeysdefault}{}{% - \setdclisting{% - settexcs,texcsstyle,settexcs2,texcs2style,settexcs3,texcs3style,% - setkeywd,keywdstyle,setkeywd2,keywd2style,setkeywd3,keywd3style,% - setemph,emphstyle,setemph2,emph2style,setemph3,emph3style,% - stringstyle,commentstyle,bckgndcolor,rulecolor,% - numbers,numberstyle,% - }% -} -\setdclisting{default} - -\DeclareKeys[dcpar]{ - org.usage = general, - org.code = {\setlength\dc@demo@parindent\dc@org@parindent}, - default.usage = general, - default.code = {\setlength\dc@demo@parindent\parindent}, -} -\DeclareUnknownKeyHandler[dcpar]{\ifblank{#1}{\setlength\dc@demo@parindent\dc@org@parindent}{\setlength\dc@demo@parindent{#1}}} - -\NewDocumentCommand{\setdcpar}{m}{\SetKeys[dcpar]{#1}} - -\DeclareKeys[dclisting]{ - codeprefix.usage = general, - codeprefix.code = {\ifblank{#1}{\def\dc@codeprefix{\LaTeX~Code:}}{\def\dc@codeprefix{#1}}}, - - resultprefix.usage = general, - resultprefix.code = {\ifblank{#1}{\def\dc@resultprefix{\LaTeX~Result:}}{\def\dc@resultprefix{#1}}}, - - defaulttools.usage = general, - defaulttools.code = {\SetKeys[dclisting]{codeprefix,resultprefix}} , -} -%\DeclareUnknownKeyHandler[dclisting]{\setdclisting{#1={#2}}} - -%\NewDocumentCommand{\setdctools}{m}{\SetKeys[dctools]{#1}} -\SetKeys[dclisting]{defaulttools} - - - -%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%% -%%% -%%% From doctools.dtx file -%%% lstlistings 'definitions' -%%% -%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%% - -%%% listings -% -\lstdefinestyle{lstStyleDefault}{ -%%% appearance - ,basicstyle=\small\ttfamily % Standardschrift -%%% Space and placement - ,floatplacement=tbp % is used as float place specifier - ,aboveskip=\medskipamount % define the space above and - ,belowskip=\medskipamount % below displayed listings. - ,lineskip=0pt % specifies additional space between lines in listings. - ,boxpos=c % c,b,t -%%% The printed range - ,showlines=false % prints empty lines at the end of listings -%%% characters - ,extendedchars=true % allows or prohibits extended characters - % in listings, that means (national) - % characters of codes 128-255. - ,upquote=true % determines printing of quotes - ,tabsize=2, % chars of tab - ,showtabs=false % do not show tabs - ,showspaces=false % do not show spaces - ,showstringspaces=false % do not show blank spaces in string -%%% Line numbers - ,numbers=none % left, right, none -%%% Captions - ,numberbychapter=true % - ,captionpos=b % t,b - ,abovecaptionskip=\smallskipamount % the vertical space respectively above - ,belowcaptionskip=\smallskipamount % or below each caption -%%% Margins and line shape - ,linewidth=\linewidth % defines the base line width for listings. - ,xleftmargin=0pt % extra margins - ,xrightmargin=0pt % - ,resetmargins=false % indention from list environments like enumerate - % or itemize is reset, i.e. not used. - ,breaklines=true % line breaking of long lines. - ,breakatwhitespace=false % allows line breaks only at white space. - ,breakindent=0pt % is the indention of the second, third, ... - % line of broken lines. - ,breakautoindent=true % apply intendation - ,columns=flexible % - ,keepspaces=true % -} - - -\lstdefinestyle{lstDocStyleBase}{ -%%% base style -% - ,style=lstStyleDefault -%%% appearance - ,commentstyle=\slshape -%%% Line numbers - ,numbers=left % left, right, none - ,stepnumber=1 % seperation between numbers - ,numberfirstline=false % number first line always - ,numberstyle={\dc@lstnumberstyle} % style of numbers - ,numbersep=5pt % distance to text - ,numberblanklines=true % -%%% language - ,language = [LaTeX]TeX -%%% commands - % LaTeX programming - ,moretexcs={setlength,usepackage,newcommand,renewcommand,providecommand,RequirePackage,SelectInputMappings,ifpdftex,ifpdfoutput,AtBeginEnvironment,ProvidesPackage}, - % other commands - ,moretexcs={maketitle,text,includegraphics,chapter,section,subsection, - subsubsection,paragraph,textmu,enquote,blockquote,ding,mathds,ifcsdef,Bra,Ket,Braket,subcaption,lettrine,mdfsetup,captionof,listoffigures,listoftables,tableofcontents,appendix} - % tables - ,moretexcs={newcolumntype,rowfont,taburowcolors,rowcolor,rowcolors,bottomrule, - toprule,midrule,} - % hyperref - ,moretexcs={hypersetup} - % glossaries - ,moretexcs={gls,printglossary,glsadd,newglossaryentry,newacronym} - % Koma - ,moretexcs={mainmatter,frontmatter,geometry,KOMAoptions,setkomafont,addtokomafont} - % SI, unit - ,moretexcs={si,SI,sisetup,unit,unitfrac,micro} - % biblatex package - ,moretexcs={newblock,ExecuteBibliographyOptions,addbibresource} - % math packages - ,moretexcs={operatorname,frac,sfrac,dfrac,DeclareMathOperator,mathcal,underset} - % demo package - ,moretexcs={democodefile,package,cs,command,env,DemoError,PrintDemo} - % tablestyles - ,moretexcs={theadstart,tbody,tsubheadstart,tsubhead,tend} - % code section package - ,moretexcs={DefineCodeSection,SetCodeSection,BeginCodeSection, - EndCodeSection} - % template tools package - ,moretexcs={IfDefined,IfUndefined,IfElseDefined,IfElseUndefined,IfMultDefined,IfNotDraft,IfNotDraftElse,IfDraft,IfPackageLoaded,IfElsePackageLoaded,IfPackageNotLoaded,IfPackagesLoaded,IfPackagesNotLoaded,ExecuteAfterPackage,ExecuteBeforePackage,IfTikzLibraryLoaded,IfColumntypeDefined,IfColumntypesDefined,IfColorDefined,IfColorsDefined,IfMathVersionDefined,SetTemplateDefinition,UseDefinition,IfFileExists,iflanguage} - % tablestyles - ,moretexcs={setuptablefontsize,tablefontsize,setuptablestyle,tablestyle, setuptablecolor,tablecolor,disablealternatecolors, tablealtcolored,tbegin,tbody,tend,thead, theadstart,tsubheadstart,tsubhead,theadrow,tsubheadrow,resettablestyle,theadend,tsubheadend,tableitemize,PreserveBackslash} - % todonotes - ,moretexcs={todo,missingfigure} - % listings - ,moretexcs={lstloadlanguages,lstdefinestyle,lstset} - % index - ,moretexcs={indexsetup} - % glossaries - ,moretexcs={newglossarystyle,glossarystyle,deftranslation,newglossary} - % tikz - ,moretexcs={usetikzlibrary} - % color - ,moretexcs={definecolor,colorlet} - % caption - ,moretexcs={captionsetup,DeclareCaptionStyle} - % floatrow - ,moretexcs={floatsetup} - % doc.sty - ,moretexcs={EnableCrossrefs,DisableCrossrefs,PageIndex,CodelineIndex,CodelineNumbered} - % refereces - ,moretexcs={cref,Cref,vref,eqnref,figref,tabref,secref,chapref} -} - -%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%% -%%% -%%% From doctools.dtx file -%%% lstlistings 'definitions' -%%% -%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%% - - - -\lstloadlanguages{[LaTeX]TeX} -\lstdefinestyle{codestyle}{ -%%% base style - style=lstDocStyleBase, - language=[LaTeX]{TeX}, - numbers=none,%{\dc@lstnumbers},% - %%% colors - rulecolor={\dc@lstrulecolor}, - backgroundcolor={\dc@lstbckgndcolor},% - stringstyle={\dc@lststringstyle}, - commentstyle={\dc@lstcommentstyle}, - framerule=0pt,%0.4pt, - nolol=true, - frame=none, - aboveskip=-2ex, - belowskip=-2ex, - basicstyle=\footnotesize\ttfamily , % Standardschrift - rulesep = 0pt, - breaklines=true, - breakindent=3em, - moretexcs={\dc@lsttexcs}, - moretexcs=[2]{\dc@lsttexcsB}, - moretexcs=[3]{\dc@lsttexcsC}, - texcsstyle=*{\dc@lsttexcsstyle}, - texcsstyle=*[2]{\dc@lsttexcsBstyle}, - texcsstyle=*[3]{\dc@lsttexcsCstyle}, - morekeywords={\dc@lstkeywd}, - morekeywords=[2]{\dc@lstkeywdB}, - morekeywords=[3]{\dc@lstkeywdC}, - keywordstyle={\dc@lstkeywdstyle}, - keywordstyle=[2]{\dc@lstkeywdBstyle}, - keywordstyle=[3]{\dc@lstkeywdCstyle}, - emph={\dc@lstemph}, - emph=[2]{\dc@lstemphB}, - emph=[3]{\dc@lstemphC}, - emphstyle={\dc@lstemphstyle}, - emphstyle=[2]{\dc@lstemphBstyle}, - emphstyle=[3]{\dc@lstemphCstyle}, -} -\lstset{style=codestyle} - -%%% -%%% Using scontents package !!!! -%%% -\ExplSyntaxOn -\keys_define:nn { scontents / scontents} - { - st.meta:nn = { scontents } { store-env = #1 }, - st.value_required:n = true - } -\ExplSyntaxOff - -\newenvsc{stcode} -\let\verbatimsc\@undefined -\let\verbatimsc@\@undefined -\let\endverbatimsc\@undefined -\lstnewenvironment{verbatimsc}{\lstset{style=codestyle}}{} - - -\NewDocumentEnvironment{verbsc}{m}{% - \let\verbatimsc\@undefined - \let\verbatimsc@\@undefined - \let\endverbatimsc\@undefined - \setdclisting{#1} - \edef\dc@tmp{style=codestyle,moretexcs={\dc@lsttexcs},moretexcs=[2]{\dc@lsttexcsB},moretexcs=[3]{\dc@lsttexcsC},% - morekeywords={\dc@lstkeywd},morekeywords=[2]{\dc@lstkeywdB},morekeywords=[3]{\dc@lstkeywdC},% - emph={\dc@lstemph},emph=[2]{\dc@lstemphB},emph=[3]{\dc@lstemphC},% - numbers={\dc@lstnumbers}} - \lstnewenvironment{verbatimsc}{\expandafter\lstset\expandafter{\dc@tmp}}{} -}{% -} - -\NewDocumentCommand{\DisplayCodeB}{O{}m}{% - {% - \begin{verbsc}{#1}% - \begin{tabular}{J{.98\textwidth}}\dc@codeprefix \\ - \typestored{#2}% - \end{tabular}% - \end{verbsc}% - }% -} - -\NewDocumentCommand{\DemoCodeB}{O{}m}{{% - \setlength\parindent\dc@org@parindent - \begin{verbsc}{#1}% - \begin{tabular}{J{.98\textwidth}}% - \dc@codeprefix \\% - \typestored{#2}\\% - \end{tabular}% - - \begin{tabular}{J{.98\textwidth}}% - \dc@resultprefix \\\hline\\[-1ex]% - \getstored{#2}\\\hline% - \end{tabular}% - \end{verbsc}% -}} - -\NewDocumentCommand{\TabbedDemoCodeB}{O{}m}{{% - \setlength\parindent\dc@org@parindent - \begin{verbsc}{#1}% - \arrayrulecolor{gray} - \begin{tabular}{J{.49\textwidth}@{}J{.49\textwidth}}% - \dc@codeprefix & \dc@resultprefix\\\hline\\[-1ex]% - \typestored{#2} & \getstored{#2}\\\hline% - \end{tabular}% - \end{verbsc}% -}} - - -\NewDocumentCommand{\DisplayCode}{O{}m}{{% - \begin{verbsc}{#1}% - \vspace*{0.5ex} - \begin{minipage}{1\textwidth}\dc@codeprefix \\ - \typestored{#2}% - \end{minipage}% - \\[1.5ex]% - \end{verbsc}% -}} - -\NewDocumentCommand{\DemoCode}{O{}mO{1ex}}{{% - \begin{verbsc}{#1}% - \vspace*{1ex} - \begin{minipage}{1\textwidth}\dc@codeprefix \\ - \typestored{#2}% - \end{minipage}% - \\[3ex] - \begin{minipage}{1\textwidth}% - \dc@resultprefix \\[-1.5ex]% - \rule{\textwidth}{0.2pt}\vspace*{0.75ex}% - \setlength\parindent\dc@demo@parindent% - - \getstored{#2}% - \end{minipage}% - \\[#3]% - \rule{1\textwidth}{0.2pt}%\vspace*{0.25ex} - \end{verbsc}% -}} - -\NewDocumentCommand{\TabbedDemoCode}{O{}mO{1ex}}{{% - \begin{verbsc}{#1}% - \begin{minipage}{.5\textwidth}% - \dc@codeprefix% - \end{minipage}% - \begin{minipage}{.5\textwidth}% - \dc@resultprefix% - \end{minipage}\\[-1.5ex]% - \rule{\textwidth}{0.2pt}\vspace*{1ex}% - - \begin{minipage}{.5\textwidth}\vspace*{2ex}% - \typestored{#2}\vspace*{1.5ex}% - \end{minipage}% - \begin{minipage}{.5\textwidth}% - \setlength\parindent\dc@demo@parindent% - \getstored{#2}% - \end{minipage}% - \\[#3]% - \rule{1\textwidth}{0.2pt}%\vspace*{0.5ex} - \end{verbsc}% -}} -%%% -%%% Using scontents package !!!! -%%% - - -%%% -%%% from https://en.wikibooks.org/wiki/LaTeX/Source_Code_Listings#Encoding_issue -\lstset{literate= - {á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1 - {Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1 - {à}{{\`a}}1 {è}{{\`e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1 - {À}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1 - {ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1 - {Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1 - {â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1 - {Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1 - {ã}{{\~{a}}}1 {õ}{{\~{o}}}1 - {Ã}{{\~{A}}}1 {Õ}{{\~{O}}}1 - {ý}{{\'{y}}}1 {Ý}{{\'{Y}}}1 {ÿ}{{\"{y}}}1 {Ÿ}{{\"{Y}}}1 - {œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1 - {ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1 - {€}{{\EUR}}1 {£}{{\pounds}}1 -} - -\endinput +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status “maintained”. +%% +%% The Current Maintainer of this work is Alceu Frigeri +%% +%% This is version 1.0beta (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% democodelisting.sty set of macros to typeset and demonstrate LaTeX code +%% democodetools.sty set of macros to document LaTeX packages +%% +%% README.md quick introduction +%% +%% democodetools.tex LaTeX documentation +%% democodetools.pdf documentation in PDF form +%% +%%%============================================================================== +\NeedsTeXFormat{LaTeX2e}[2022/06/01] +\def\tc@tmp@packname{democodelisting} +\def\tc@tmp@altpackname{democodelisting} +\def\tc@tmp@packdesc{Demo Code Listing} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0beta} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} +\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] + +\RequirePackage{listings} +\RequirePackage{scontents} + +\newlength{\dc@demo@parindent} +\newlength{\dc@org@parindent} +\setlength\dc@org@parindent{\parindent} +\setlength\parindent{0pt} + + +\colorlet{dc@lightcyan}{white!97!cyan} +\colorlet{dc@lightgray}{white!97!black} +\definecolor{dc@grayblack}{rgb}{0.8,0.8,0.8} + +\colorlet{dc@darkgreen}{green!45!black!100} +\colorlet{dc@darkteal}{teal!45!black!100} +\colorlet{dc@darkblue}{blue!40!black!100} +\colorlet{dc@darkred}{red!45!black!100} + +\colorlet{dc@blueishblack}{blue!75!black!100} +\colorlet{dc@reddishblack}{red!60!black!100} +\colorlet{dc@greenishblack}{green!45!black!100} + +\def\dc@lstbckgndcolordefault{dc@lightgray}% +\def\dc@lststringcolordefault{dc@darkteal} +\def\dc@lstcommentcolordefault{dc@darkgreen} +\def\dc@lsttexcscolordefault{dc@darkblue} +\def\dc@lstkeywdcolordefault{dc@darkblue} + +\def\dc@lsttexcsBcolordefault{dc@blueishblack} +\def\dc@lstkeywdBcolordefault{dc@greenishblack} +\def\dc@lstemphcolordefault{dc@reddishblack} + +\colorlet{dc@lstnumbercolordefault}{white!50!black!100} + +\def\dc@lstrulecolordefault{gray} +\def\dc@lstnumbercolordefault{gray} + +\DeclareKeys[dclisting]{ + settexcs.usage = general, + settexcs.code = {\ifblank{#1}{\def\dc@lsttexcs{}}{\def\dc@lsttexcs{#1}}}, + texcs.usage = general, + texcs.code = {\ifblank{#1}{}{\edef\dc@lsttexcs{\dc@lsttexcs,#1}}}, + texcsstyle.usage = general, + texcsstyle.code = {\ifblank{#1}{\def\dc@lsttexcsstyle{\bfseries\color{\dc@lsttexcscolordefault}}}{\def\dc@lsttexcsstyle{#1}}}, + + settexcs2.usage = general, + settexcs2.code = {\ifblank{#1}{\def\dc@lsttexcsB{}}{\def\dc@lsttexcsB{#1}}}, + texcs2.usage = general, + texcs2.code = {\ifblank{#1}{}{\edef\dc@lsttexcsB{\dc@lsttexcsB,#1}}}, + texcs2style.usage = general, + texcs2style.code = {\ifblank{#1}{\def\dc@lsttexcsBstyle{\bfseries\color{\dc@lsttexcsBcolordefault}}}{\def\dc@lsttexcsBstyle{#1}}}, + + settexcs3.usage = general, + settexcs3.code = {\ifblank{#1}{\def\dc@lsttexcsC{}}{\def\dc@lsttexcsC{#1}}}, + texcs3.usage = general, + texcs3.code = {\ifblank{#1}{}{\edef\dc@lsttexcsC{\dc@lsttexcsC,#1}}}, + texcs3style.usage = general, + texcs3style.code = {\ifblank{#1}{\def\dc@lsttexcsCstyle{\bfseries\color{\dc@lsttexcsBcolordefault}}}{\def\dc@lsttexcsCstyle{#1}}}, + + setkeywd.usage = general, + setkeywd.code = {\ifblank{#1}{\def\dc@lstkeywd{}}{\def\dc@lstkeywd{#1}}}, + keywd.usage = general, + keywd.code = {\ifblank{#1}{}{\edef\dc@lstkeywd{\dc@lstkeywd,#1}}}, + keywdstyle.usage = general, + keywdstyle.code = {\ifblank{#1}{\def\dc@lstkeywdstyle{\bfseries\color{\dc@lstkeywdcolordefault}}}{\def\dc@lstkeywdstyle{#1}}}, + + setkeywd2.usage = general, + setkeywd2.code = {\ifblank{#1}{\def\dc@lstkeywdB{}}{\def\dc@lstkeywdB{#1}}}, + keywd2.usage = general, + keywd2.code = {\ifblank{#1}{}{\edef\dc@lstkeywdB{\dc@lstkeywdB,#1}}}, + keywd2style.usage = general, + keywd2style.code = {\ifblank{#1}{\def\dc@lstkeywdBstyle{\bfseries\color{\dc@lstkeywdBcolordefault}}}{\def\dc@lstkeywdBstyle{#1}}}, + + setkeywd3.usage = general, + setkeywd3.code = {\ifblank{#1}{\def\dc@lstkeywdC{}}{\def\dc@lstkeywdC{#1}}}, + keywd3.usage = general, + keywd3.code = {\ifblank{#1}{}{\edef\dc@lstkeywdC{\dc@lstkeywdC,#1}}}, + keywd3style.usage = general, + keywd3style.code = {\ifblank{#1}{\def\dc@lstkeywdCstyle{\bfseries\color{\dc@lstkeywdBcolordefault}}}{\def\dc@lstkeywdCstyle{#1}}}, + + setemph.usage = general, + setemph.code = {\ifblank{#1}{\def\dc@lstemph{}}{\def\dc@lstemph{#1}}}, + emph.usage = general, + emph.code = {\ifblank{#1}{}{\edef\dc@lstemph{\dc@lstemph,#1}}}, + emphstyle.usage = general, + emphstyle.code = {\ifblank{#1}{\def\dc@lstemphstyle{\bfseries\color{\dc@lstemphcolordefault}}}{\def\dc@lstemphstyle{#1}}}, + + setemph2.usage = general, + setemph2.code = {\ifblank{#1}{\def\dc@lstemphB{}}{\def\dc@lstemphB{#1}}}, + emph2.usage = general, + emph2.code = {\ifblank{#1}{}{\edef\dc@lstemphB{\dc@lstemphB,#1}}}, + emph2style.usage = general, + emph2style.code = {\ifblank{#1}{\def\dc@lstemphBstyle{\bfseries\color{\dc@lstemphcolordefault}}}{\def\dc@lstemphBstyle{#1}}}, + + setemph3.usage = general, + setemph3.code = {\ifblank{#1}{\def\dc@lstemphC{}}{\def\dc@lstemphC{#1}}}, + emph3.usage = general, + emph3.code = {\ifblank{#1}{}{\edef\dc@lstemphC{\dc@lstemphC,#1}}}, + emph3style.usage = general, + emph3style.code = {\ifblank{#1}{\def\dc@lstemphCstyle{\bfseries\color{\dc@lstemphcolordefault}}}{\def\dc@lstemphCstyle{#1}}}, + + stringstyle.usage = general, + stringstyle.code = {\ifblank{#1}{\def\dc@lststringstyle{\color{\dc@lststringcolordefault}}}{\def\dc@lststringstyle{#1}}}, + + commentstyle.usage = general, + commentstyle.code = {\ifblank{#1}{\def\dc@lstcommentstyle{\color{\dc@lstcommentcolordefault}}}{\def\dc@lstcommentstyle{#1}}}, + + bckgndcolor.usage = general, + bckgndcolor.code = {\ifblank{#1}{\def\dc@lstbckgndcolor{\color{\dc@lstbckgndcolordefault}}}{\def\dc@lstbckgndcolor{#1}}}, + + rulecolor.usage = general, + rulecolor.code = {\ifblank{#1}{\def\dc@lstrulecolor{\color{\dc@lstrulecolordefault}}}{\def\dc@lstrulecolor{#1}}}, + + numbers.usage = general, + numbers.code = {\ifblank{#1}{\def\dc@lstnumbers{none}}{\def\dc@lstnumbers{#1}}}, + + numberstyle.usage = general, + numberstyle.code = {\ifblank{#1}{\def\dc@lstnumberstyle{\tiny\color{\dc@lstnumbercolordefault}}}{\def\dc@lstnumberstyle{#1}}}, + + parindent.usage = general, + parindent.code = {\setlength\dc@demo@parindent{\parindent}\setdcpar{#1}}, + + default.usage = general, + default.code = {\dc@lstkeysdefault}, +} +\NewDocumentCommand{\setdclisting}{m}{\SetKeys[dclisting]{#1}} +\NewDocumentCommand{\dc@lstkeysdefault}{}{% + \setdclisting{% + settexcs,texcsstyle,settexcs2,texcs2style,settexcs3,texcs3style,% + setkeywd,keywdstyle,setkeywd2,keywd2style,setkeywd3,keywd3style,% + setemph,emphstyle,setemph2,emph2style,setemph3,emph3style,% + stringstyle,commentstyle,bckgndcolor,rulecolor,% + numbers,numberstyle,% + }% +} +\setdclisting{default} + +\DeclareKeys[dcpar]{ + org.usage = general, + org.code = {\setlength\dc@demo@parindent\dc@org@parindent}, + default.usage = general, + default.code = {\setlength\dc@demo@parindent\parindent}, +} +\DeclareUnknownKeyHandler[dcpar]{\ifblank{#1}{\setlength\dc@demo@parindent\dc@org@parindent}{\setlength\dc@demo@parindent{#1}}} + +\NewDocumentCommand{\setdcpar}{m}{\SetKeys[dcpar]{#1}} + +\DeclareKeys[dclisting]{ + codeprefix.usage = general, + codeprefix.code = {\ifblank{#1}{\def\dc@codeprefix{\LaTeX~Code:}}{\def\dc@codeprefix{#1}}}, + + resultprefix.usage = general, + resultprefix.code = {\ifblank{#1}{\def\dc@resultprefix{\LaTeX~Result:}}{\def\dc@resultprefix{#1}}}, + + defaulttools.usage = general, + defaulttools.code = {\SetKeys[dclisting]{codeprefix,resultprefix}} , +} +%\DeclareUnknownKeyHandler[dclisting]{\setdclisting{#1={#2}}} + +%\NewDocumentCommand{\setdctools}{m}{\SetKeys[dctools]{#1}} +\SetKeys[dclisting]{defaulttools} + + + +%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%% +%%% +%%% From doctools.dtx file +%%% lstlistings 'definitions' +%%% +%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%% + +%%% listings +% +\lstdefinestyle{lstStyleDefault}{ +%%% appearance + ,basicstyle=\small\ttfamily % Standardschrift +%%% Space and placement + ,floatplacement=tbp % is used as float place specifier + ,aboveskip=\medskipamount % define the space above and + ,belowskip=\medskipamount % below displayed listings. + ,lineskip=0pt % specifies additional space between lines in listings. + ,boxpos=c % c,b,t +%%% The printed range + ,showlines=false % prints empty lines at the end of listings +%%% characters + ,extendedchars=true % allows or prohibits extended characters + % in listings, that means (national) + % characters of codes 128-255. + ,upquote=true % determines printing of quotes + ,tabsize=2, % chars of tab + ,showtabs=false % do not show tabs + ,showspaces=false % do not show spaces + ,showstringspaces=false % do not show blank spaces in string +%%% Line numbers + ,numbers=none % left, right, none +%%% Captions + ,numberbychapter=true % + ,captionpos=b % t,b + ,abovecaptionskip=\smallskipamount % the vertical space respectively above + ,belowcaptionskip=\smallskipamount % or below each caption +%%% Margins and line shape + ,linewidth=\linewidth % defines the base line width for listings. + ,xleftmargin=0pt % extra margins + ,xrightmargin=0pt % + ,resetmargins=false % indention from list environments like enumerate + % or itemize is reset, i.e. not used. + ,breaklines=true % line breaking of long lines. + ,breakatwhitespace=false % allows line breaks only at white space. + ,breakindent=0pt % is the indention of the second, third, ... + % line of broken lines. + ,breakautoindent=true % apply intendation + ,columns=flexible % + ,keepspaces=true % +} + + +\lstdefinestyle{lstDocStyleBase}{ +%%% base style +% + ,style=lstStyleDefault +%%% appearance + ,commentstyle=\slshape +%%% Line numbers + ,numbers=left % left, right, none + ,stepnumber=1 % seperation between numbers + ,numberfirstline=false % number first line always + ,numberstyle={\dc@lstnumberstyle} % style of numbers + ,numbersep=5pt % distance to text + ,numberblanklines=true % +%%% language + ,language = [LaTeX]TeX +%%% commands + % LaTeX programming + ,moretexcs={setlength,usepackage,newcommand,renewcommand,providecommand,RequirePackage,SelectInputMappings,ifpdftex,ifpdfoutput,AtBeginEnvironment,ProvidesPackage}, + % other commands + ,moretexcs={maketitle,text,includegraphics,chapter,section,subsection, + subsubsection,paragraph,textmu,enquote,blockquote,ding,mathds,ifcsdef,Bra,Ket,Braket,subcaption,lettrine,mdfsetup,captionof,listoffigures,listoftables,tableofcontents,appendix} + % tables + ,moretexcs={newcolumntype,rowfont,taburowcolors,rowcolor,rowcolors,bottomrule, + toprule,midrule,} + % hyperref + ,moretexcs={hypersetup} + % glossaries + ,moretexcs={gls,printglossary,glsadd,newglossaryentry,newacronym} + % Koma + ,moretexcs={mainmatter,frontmatter,geometry,KOMAoptions,setkomafont,addtokomafont} + % SI, unit + ,moretexcs={si,SI,sisetup,unit,unitfrac,micro} + % biblatex package + ,moretexcs={newblock,ExecuteBibliographyOptions,addbibresource} + % math packages + ,moretexcs={operatorname,frac,sfrac,dfrac,DeclareMathOperator,mathcal,underset} + % demo package + ,moretexcs={democodefile,package,cs,command,env,DemoError,PrintDemo} + % tablestyles + ,moretexcs={theadstart,tbody,tsubheadstart,tsubhead,tend} + % code section package + ,moretexcs={DefineCodeSection,SetCodeSection,BeginCodeSection, + EndCodeSection} + % template tools package + ,moretexcs={IfDefined,IfUndefined,IfElseDefined,IfElseUndefined,IfMultDefined,IfNotDraft,IfNotDraftElse,IfDraft,IfPackageLoaded,IfElsePackageLoaded,IfPackageNotLoaded,IfPackagesLoaded,IfPackagesNotLoaded,ExecuteAfterPackage,ExecuteBeforePackage,IfTikzLibraryLoaded,IfColumntypeDefined,IfColumntypesDefined,IfColorDefined,IfColorsDefined,IfMathVersionDefined,SetTemplateDefinition,UseDefinition,IfFileExists,iflanguage} + % tablestyles + ,moretexcs={setuptablefontsize,tablefontsize,setuptablestyle,tablestyle, setuptablecolor,tablecolor,disablealternatecolors, tablealtcolored,tbegin,tbody,tend,thead, theadstart,tsubheadstart,tsubhead,theadrow,tsubheadrow,resettablestyle,theadend,tsubheadend,tableitemize,PreserveBackslash} + % todonotes + ,moretexcs={todo,missingfigure} + % listings + ,moretexcs={lstloadlanguages,lstdefinestyle,lstset} + % index + ,moretexcs={indexsetup} + % glossaries + ,moretexcs={newglossarystyle,glossarystyle,deftranslation,newglossary} + % tikz + ,moretexcs={usetikzlibrary} + % color + ,moretexcs={definecolor,colorlet} + % caption + ,moretexcs={captionsetup,DeclareCaptionStyle} + % floatrow + ,moretexcs={floatsetup} + % doc.sty + ,moretexcs={EnableCrossrefs,DisableCrossrefs,PageIndex,CodelineIndex,CodelineNumbered} + % refereces + ,moretexcs={cref,Cref,vref,eqnref,figref,tabref,secref,chapref} +} + +%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%% +%%% +%%% From doctools.dtx file +%%% lstlistings 'definitions' +%%% +%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%% + + + +\lstloadlanguages{[LaTeX]TeX} +\lstdefinestyle{codestyle}{ +%%% base style + style=lstDocStyleBase, + language=[LaTeX]{TeX}, + numbers=none,%{\dc@lstnumbers},% + %%% colors + rulecolor={\dc@lstrulecolor}, + backgroundcolor={\dc@lstbckgndcolor},% + stringstyle={\dc@lststringstyle}, + commentstyle={\dc@lstcommentstyle}, + framerule=0pt,%0.4pt, + nolol=true, + frame=none, + aboveskip=-2ex, + belowskip=-2ex, + basicstyle=\footnotesize\ttfamily , % Standardschrift + rulesep = 0pt, + breaklines=true, + breakindent=3em, + moretexcs={\dc@lsttexcs}, + moretexcs=[2]{\dc@lsttexcsB}, + moretexcs=[3]{\dc@lsttexcsC}, + texcsstyle=*{\dc@lsttexcsstyle}, + texcsstyle=*[2]{\dc@lsttexcsBstyle}, + texcsstyle=*[3]{\dc@lsttexcsCstyle}, + morekeywords={\dc@lstkeywd}, + morekeywords=[2]{\dc@lstkeywdB}, + morekeywords=[3]{\dc@lstkeywdC}, + keywordstyle={\dc@lstkeywdstyle}, + keywordstyle=[2]{\dc@lstkeywdBstyle}, + keywordstyle=[3]{\dc@lstkeywdCstyle}, + emph={\dc@lstemph}, + emph=[2]{\dc@lstemphB}, + emph=[3]{\dc@lstemphC}, + emphstyle={\dc@lstemphstyle}, + emphstyle=[2]{\dc@lstemphBstyle}, + emphstyle=[3]{\dc@lstemphCstyle}, +} +\lstset{style=codestyle} + +%%% +%%% Using scontents package !!!! +%%% +\ExplSyntaxOn +\keys_define:nn { scontents / scontents} + { + st.meta:nn = { scontents } { store-env = #1 }, + st.value_required:n = true + } +\ExplSyntaxOff + +\newenvsc{stcode} +\let\verbatimsc\@undefined +\let\verbatimsc@\@undefined +\let\endverbatimsc\@undefined +\lstnewenvironment{verbatimsc}{\lstset{style=codestyle}}{} + + +\NewDocumentEnvironment{verbsc}{m}{% + \let\verbatimsc\@undefined + \let\verbatimsc@\@undefined + \let\endverbatimsc\@undefined + \setdclisting{#1} + \edef\dc@tmp{style=codestyle,moretexcs={\dc@lsttexcs},moretexcs=[2]{\dc@lsttexcsB},moretexcs=[3]{\dc@lsttexcsC},% + morekeywords={\dc@lstkeywd},morekeywords=[2]{\dc@lstkeywdB},morekeywords=[3]{\dc@lstkeywdC},% + emph={\dc@lstemph},emph=[2]{\dc@lstemphB},emph=[3]{\dc@lstemphC},% + numbers={\dc@lstnumbers}} + \lstnewenvironment{verbatimsc}{\expandafter\lstset\expandafter{\dc@tmp}}{} +}{% +} + +\NewDocumentCommand{\DisplayCodeB}{O{}m}{% + {% + \begin{verbsc}{#1}% + \begin{tabular}{J{.98\textwidth}}\dc@codeprefix \\ + \typestored{#2}% + \end{tabular}% + \end{verbsc}% + }% +} + +\NewDocumentCommand{\DemoCodeB}{O{}m}{{% + \setlength\parindent\dc@org@parindent + \begin{verbsc}{#1}% + \begin{tabular}{J{.98\textwidth}}% + \dc@codeprefix \\% + \typestored{#2}\\% + \end{tabular}% + + \begin{tabular}{J{.98\textwidth}}% + \dc@resultprefix \\\hline\\[-1ex]% + \getstored{#2}\\\hline% + \end{tabular}% + \end{verbsc}% +}} + +\NewDocumentCommand{\TabbedDemoCodeB}{O{}m}{{% + \setlength\parindent\dc@org@parindent + \begin{verbsc}{#1}% + \arrayrulecolor{gray} + \begin{tabular}{J{.49\textwidth}@{}J{.49\textwidth}}% + \dc@codeprefix & \dc@resultprefix\\\hline\\[-1ex]% + \typestored{#2} & \getstored{#2}\\\hline% + \end{tabular}% + \end{verbsc}% +}} + + +\NewDocumentCommand{\DisplayCode}{O{}m}{{% + \begin{verbsc}{#1}% + \vspace*{0.5ex} + \begin{minipage}{1\textwidth}\dc@codeprefix \\ + \typestored{#2}% + \end{minipage}% + \\[1.5ex]% + \end{verbsc}% +}} + +\NewDocumentCommand{\DemoCode}{O{}mO{1ex}}{{% + \begin{verbsc}{#1}% + \vspace*{1ex} + \begin{minipage}{1\textwidth}\dc@codeprefix \\ + \typestored{#2}% + \end{minipage}% + \\[3ex] + \begin{minipage}{1\textwidth}% + \dc@resultprefix \\[-1.5ex]% + \rule{\textwidth}{0.2pt}\vspace*{0.75ex}% + \setlength\parindent\dc@demo@parindent% + + \getstored{#2}% + \end{minipage}% + \\[#3]% + \rule{1\textwidth}{0.2pt}%\vspace*{0.25ex} + \end{verbsc}% +}} + +\NewDocumentCommand{\TabbedDemoCode}{O{}mO{1ex}}{{% + \begin{verbsc}{#1}% + \begin{minipage}{.5\textwidth}% + \dc@codeprefix% + \end{minipage}% + \begin{minipage}{.5\textwidth}% + \dc@resultprefix% + \end{minipage}\\[-1.5ex]% + \rule{\textwidth}{0.2pt}\vspace*{1ex}% + + \begin{minipage}{.5\textwidth}\vspace*{2ex}% + \typestored{#2}\vspace*{1.5ex}% + \end{minipage}% + \begin{minipage}{.5\textwidth}% + \setlength\parindent\dc@demo@parindent% + \getstored{#2}% + \end{minipage}% + \\[#3]% + \rule{1\textwidth}{0.2pt}%\vspace*{0.5ex} + \end{verbsc}% +}} +%%% +%%% Using scontents package !!!! +%%% + + +%%% +%%% from https://en.wikibooks.org/wiki/LaTeX/Source_Code_Listings#Encoding_issue +\lstset{literate= + {á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1 + {Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1 + {à}{{\`a}}1 {è}{{\`e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1 + {À}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1 + {ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1 + {Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1 + {â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1 + {Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1 + {ã}{{\~{a}}}1 {õ}{{\~{o}}}1 + {Ã}{{\~{A}}}1 {Õ}{{\~{O}}}1 + {ý}{{\'{y}}}1 {Ý}{{\'{Y}}}1 {ÿ}{{\"{y}}}1 {Ÿ}{{\"{Y}}}1 + {œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1 + {ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1 + {€}{{\EUR}}1 {£}{{\pounds}}1 +} + +\endinput diff --git a/macros/latex/contrib/democodetools/latex/democodetools.sty b/macros/latex/contrib/democodetools/latex/democodetools.sty index 1360cd7fc6..f5d613ee31 100644 --- a/macros/latex/contrib/democodetools/latex/democodetools.sty +++ b/macros/latex/contrib/democodetools/latex/democodetools.sty @@ -1,340 +1,340 @@ -%%%============================================================================== -%% Copyright 2022 by Alceu Frigeri -%% -%% -%% This work may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3c -%% 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 2005/12/01 or later. -%% -%% This work has the LPPL maintenance status “maintained”. -%% -%% The Current Maintainer of this work is Alceu Frigeri -%% -%% This is version 1.0beta (2022/09/01) -%% -%% -%% This work consists of the files -%% -%% democodelisting.sty set of macros to typeset and demonstrate LaTeX code -%% democodetools.sty set of macros to document LaTeX packages -%% -%% README.md quick introduction -%% -%% democodetools.tex LaTeX documentation -%% democodetools.pdf documentation in PDF form -%% -%%%============================================================================== -\NeedsTeXFormat{LaTeX2e}[2022/06/01] -\def\tc@tmp@packname{democodetools} -\def\tc@tmp@altpackname{democodetools} -\def\tc@tmp@packdesc{Demo Code Tools} -\def\tc@tmp@packdate{2022/09/01} -\def\tc@tmp@packversion{1.0beta} -\let\@exp\expandafter -\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} -\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] - -\RequirePackage{democodelisting} - - - - -\setdclisting{settexcs2={Macro,Arg,xarg,oarg,marg,parg,Key,Keylst,DescribeMacro,DescribeKey,DescribeValue,DescribeOption,DescribeArg},setkeywd2={Envs,Macros,Args,Syntax,Keys,Values,Options}} - - -\def\dc@keyvaluestr{Value} -\def\dc@keyvaluemeanstr{Meaning} -\def\dc@keydefaultstr{Default} -\def\dc@csfontsize{\small} - - -\NewDocumentCommand{\MarginNote}{+m}{\marginpar{{\scriptsize\hfill#1}}} - - -%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%% -\DeclareDocumentCommand{\Meta}{m}{\ensuremath\langle#1\ensuremath\rangle} - -%%% -%%% In text arg -%%% -\gdef\dc@ArgHack{} -\NewDocumentCommand{\dc@arg}{st+O{Code}O{}mmm}{{\MetaFmt[#3]{\dc@ArgHack#5\csname #4\endcsname{{\IfBooleanT{#1}{\bfseries}\IfBooleanTF{#2}{#6}{\detokenize{#6}}}}#7}}\gdef\dc@ArgHack{\,}} -\NewDocumentCommand{\oarg}{O{Meta}m}{\dc@arg+[Oarg][#1]{[}{#2}{]}} -\NewDocumentCommand{\marg}{O{Meta}m}{\dc@arg+[Marg][#1]{\{}{#2}{\}}} -\NewDocumentCommand{\parg}{O{Meta}m}{\dc@arg+[Parg][#1]{(}{#2}{)}} -\NewDocumentCommand{\xarg}{O{Meta}m}{\dc@arg+[Xarg][#1]{<}{#2}{>}} -\NewDocumentCommand{\Arg}{m}{\def\dc@ArgHack{}\dc@arg+[Marg][Meta]{}{#1}{}} - -\NewDocumentCommand{\dc@x}{O{}O{}m}{#1\dc@arg+[#2][]{}{#3}{}}% single mandatory value => \dc@arg -\NewDocumentCommand{\dc@xhack}{O{}m}{\dc@x[\dc@XHack][#1]{#2}\def\dc@XHack{\,, }}% single mandatory value => \dc@arg -\NewDocumentCommand{\dc@xlst}{O{}O{}m}{\gdef\dc@ArgHack{}\def\dc@XHack{}\forcsvlist{\dc@xhack[#2]}{#3}\ifblank{#1}{}{\hfill\dc@keydefaultstr:~{\bfseries\Key{#1}}}}%single KEY... LIST of ValueS... default Value (if any) - - -\NewDocumentCommand{\Key}{O{}m}{\dc@x[#1][Value]{#2}} -\NewDocumentCommand{\Keylst}{O{}m}{\dc@xlst[#1][Value]{#2}} - -\NewDocumentCommand{\KeyUse}{mm}{\Key{#1}\space $=$ \Meta{#2}} - - -\NewDocumentCommand{\Env}{O{}m}{\dc@x[#1][Env]{#2}} -\NewDocumentCommand{\Envlst}{O{}m}{\dc@xlst[#1][Env]{#2}} - -\NewDocumentCommand{\Pack}{O{}m}{\dc@x[#1][Pack]{#2}} -\NewDocumentCommand{\Packlst}{O{}m}{\dc@xlst[#1][Pack]{#2}} - -\NewDocumentCommand{\Value}{O{}m}{\dc@x[#1][Value]{#2}} -\NewDocumentCommand{\Valuelst}{O{}m}{\dc@xlst[#1][Value]{#2}} - -\NewDocumentCommand{\Option}{O{}m}{\dc@x[#1][Option]{#2}} -\NewDocumentCommand{\Optionlst}{O{}m}{\dc@xlst[#1][Option]{#2}} - - -%%% -%%% In text macro -%%% -\NewDocumentCommand{\Macro}{t!mD<>{}O{}m}{{\MetaFmt[Code]{\expandafter\zap@space\detokenize{#2#3} \@empty}}\IfBooleanTF{#1}{#5}{\gdef\dc@ArgHack{\,}\forcsvlist{\oarg}{#4}\forcsvlist{\marg}{#5}}}% - - -\NewDocumentCommand{\dc@Describe}{st+O{Key}O{Meta}m}{% - \IfBooleanTF{#2}% - {\item[{\dc@arg+[#3][#4]{}{#5}{}}]}% - {\item[]~\hspace{-0.6675em}\IfBooleanTF{#1}% - {\dc@margincode*+[#3]{{\dc@arg+[#3][#4]{}{#5}{}}}}% - {\dc@margincode+[#3]{{\dc@arg+[#3][#4]{}{#5}{}}}}}% -}% - -\NewDocumentCommand{\DescribeArg}{st+O{Key}m}{% - \IfBooleanTF{#2}% - {\dc@Describe+[#3][Meta]{#4}}% - {\IfBooleanTF{#1}% - {\dc@Describe*[#3][Meta]{#4}}% - {\dc@Describe[#3][Meta]{#4}}}% -}% -\NewDocumentCommand{\DescribeKey}{st+O{Key}m}{% - \IfBooleanTF{#2}% - {\dc@Describe+[#3][]{#4}}% - {\IfBooleanTF{#1}% - {\dc@Describe*[#3][]{#4}}% - {\dc@Describe[#3][]{#4}}}% -}% -\let\DescribeValue\DescribeKey -\let\DescribeOption\DescribeKey -\let\DescribePackage\DescribeKey - -\NewDocumentCommand{\DescribeMacro}{st!t+mO{}m}{% - \IfBooleanTF{#3}% - {\item[{\Macro{#4}{}}]}% - {\item[]~\hspace{-0.6675em}\IfBooleanTF{#1}% - {\dc@margincode*{#4}}% - {\dc@margincode{#4}}}\IfBooleanTF{#2}{{\Macro!{}[]{#6}}}{{\Macro{}[#5]{#6}}}% -}% - -\SetEnumitemKey{marginlst}{leftmargin=0mm,labelindent=0mm,listparindent=0mm,labelwidth=0mm,labelsep=0mm} -\SetEnumitemKey{intextlst}{leftmargin=7.5mm,labelindent=0mm,listparindent=0mm,labelwidth=20mm,labelsep=2.5mm} - -\NewDocumentCommand{\dc@margincode}{st+O{Code}m}{\ifvmode\leavevmode\else\fi{\marginpar{\raggedleft\MetaFmt[#3]{\IfBooleanT{#1}{\bfseries}\vspace{-1.35ex}\IfBooleanTF{#2}{#4}{\expandafter\zap@space\detokenize{#4} \@empty}\vspace{0.3ex}}}}} - -\NewDocumentEnvironment{Macros}{m}{% - \ifvmode\vspace{1ex}\leavevmode\else\fi{\marginpar{\vspace*{-1.755ex}~\color{gray}\hrule\vspace{0.3ex}}\forcsvlist\dc@margincode{#1}\marginpar{\vspace{-1.1ex}~\color{gray}\hrule}}% - }{} - \NewDocumentEnvironment{Envs}{m}{\begin{Macros}{#1}}{\end{Macros}}% - -\NewDocumentEnvironment{Syntax}{}{\begingroup\setlength{\parindent}{0pt}\obeylines\hspace{-0.382em}\dc@csfontsize}{\endgroup} - -\NewDocumentEnvironment{Args}{}{\begin{description}[nosep,marginlst]\vspace{0.5ex}}{\end{description}} -\NewDocumentEnvironment{Args+}{}{\begin{description}[nosep,intextlst]\vspace{0.5ex}}{\end{description}} -\NewDocumentEnvironment{Keys}{}{\begin{Args}}{\end{Args}} -\NewDocumentEnvironment{Keys+}{}{\begin{Args+}}{\end{Args+}} -\NewDocumentEnvironment{Values}{}{\begin{Args}}{\end{Args}} -\NewDocumentEnvironment{Values+}{}{\begin{Args+}}{\end{Args+}} -\NewDocumentEnvironment{Options}{}{\begin{Args}}{\end{Args}} -\NewDocumentEnvironment{Options+}{}{\begin{Args+}}{\end{Args+}} - - -%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%% - - -\colorlet{dc@ColorCode}{blue!40!black} -\colorlet{dc@ColorMacro}{blue!40!black} -\colorlet{dc@ColorMarg}{gray!60!black} -\colorlet{dc@ColorOarg}{gray!90!black} -\colorlet{dc@ColorParg}{gray!60!black} -\colorlet{dc@ColorXarg}{gray!60!black} -\colorlet{dc@ColorDefaultVal}{blue!60!black} -\colorlet{dc@ColorDefault}{blue!60!black} -\colorlet{dc@ColorKeys}{teal!40!black} -\colorlet{dc@ColorValue}{teal!40!black} -\colorlet{dc@ColorKey}{teal!40!black} -\colorlet{dc@ColorOptions}{green!30!black} -\colorlet{dc@ColorOthers}{green!30!black} -\colorlet{dc@ColorEnv}{green!30!black} -\colorlet{dc@ColorPack}{green!30!black} - - - -\def\dc@metafont{\dc@csfontsize\ttfamily} - -\DeclareKeys[MetaFormat]{ - Oarg.usage = general, - Oarg.code = {\def\dc@Metafmt{\color{dc@ColorOarg}\dc@metafont}}, - % - Marg.usage = general, - Marg.code = {\def\dc@Metafmt{\color{dc@ColorMarg}\dc@metafont}}, - % - Parg.usage = general, - Parg.code = {\def\dc@Metafmt{\color{dc@ColorParg}\dc@metafont}}, - % - Xarg.usage = general, - Xarg.code = {\def\dc@Metafmt{\color{dc@ColorXarg}\dc@metafont}}, - % - Macro.usage = general, - Macro.code = {\def\dc@Metafmt{\color{dc@ColorCode}\dc@metafont}}, - % - Code.usage = general, - Code.code = {\def\dc@Metafmt{\color{dc@ColorCode}\dc@metafont}}, - % - Key.usage = general, - Key.code = {\def\dc@Metafmt{\color{dc@ColorKey}\dc@metafont\slshape}}, - % - KeyVal.usage = general, - KeyVal.code = {\def\dc@Metafmt{\color{dc@ColorKeyVal}\dc@metafont\slshape}}, - % - Option.usage = general, - Option.code = {\def\dc@Metafmt{\color{dc@ColorOptions}\dc@metafont}}, - % - Default.usage = general, - Default.code = {\def\dc@Metafmt{\color{dc@ColorDefault}\dc@metafont}}, - % - Value.usage = general, - Value.code = {\def\dc@Metafmt{\color{dc@ColorValue}\dc@metafont\slshape}}, - % - Env.usage = general, - Env.code = {\def\dc@Metafmt{\color{dc@ColorEnv}\dc@metafont\slshape}}, - % - Pack.usage = general, - Pack.code = {\def\dc@Metafmt{\color{dc@ColorPack}\dc@metafont\slshape}}, - } -\DeclareUnknownKeyHandler[MetaFormat]{\def\dc@Metafmt{\color{dc@ColorOthers}\ttfamily}} - -\NewDocumentCommand{\MetaFmt}{sO{}}{\ifblank{#2}{}{\dc@@MetaFmt{#2}}\IfBooleanT{#1}{\bfseries}\dc@Metafmt} -\NewDocumentCommand{\dc@@MetaFmt}{m}{\SetKeys[MetaFormat]{#1}} -\dc@@MetaFmt{Code} - - -\titleformat{\chapter}{\sffamily\bfseries\selectfont\large}{\thechapter}{2ex}{} -\titleformat{name=\chapter,numberless}{\sffamily\bfseries\selectfont\large\center}{}{0pt}{} -\titlespacing{\chapter}{0pt}{\tc@chapbefore}{\tc@chapafter} - - -\def\tc@chapbefore{18pt plus 4pt minus 4pt} -\def\tc@chapafter{12pt plus 3pt minus 3pt} -\def\tc@secbefore{12pt plus 3pt minus 3pt} -\def\tc@secafter{8pt plus 2pt minus 2pt} - -\titleformat{\section}[hang]{\normalfont\selectfont\large}{\thesection}{.5em}{} -\titlespacing{\section}{0pt}{\tc@secbefore}{\tc@secafter} -\titleformat{\subsection}[hang]{\normalfont\sffamily\slshape\selectfont}{\thesubsection}{.5em}{} - -\titleformat{name=\section,numberless}[hang]{\normalfont\large\bfseries\scshape\selectfont\center}{}{0pt}{} -\titlespacing{name=\section,numberless}{0pt}{\tc@secbefore}{\tc@secafter} - - - -\reversemarginpar - - -\NewDocumentCommand{\dcAuthor}{m}{\def\dc@author{#1}} -\NewDocumentCommand{\dcDate}{m}{\def\dc@date{#1}} -\NewDocumentCommand{\dcTitle}{m}{\def\dc@title{#1}} - -\NewDocumentCommand\dcMakeTitle{}{\par - \begingroup - \renewcommand\thefootnote{\@fnsymbol\c@footnote}% - \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}% - \long\def\@makefntext##1{\parindent 1em\noindent - \hb@xt@1.8em{% - \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% - \if@twocolumn - \ifnum \col@number=\@ne - \dc@maketitle - \else - \twocolumn[\dc@maketitle]% - \fi - \else - \newpage - \global\@topnum\z@ % Prevents figures from going at top of page. - \dc@maketitle - \fi - \thispagestyle{plain}\@thanks - \endgroup -} -\def\dc@maketitle{% - \newpage - \null - \vskip 2em% - \begin{center}% - \let \footnote \thanks - {\LARGE \dc@title \par}% - \vskip 1.5em% - {\large - \lineskip .5em% - \begin{tabular}[t]{c}% - \dc@author - \end{tabular}\par}% - \vskip 1em% - {\large \dc@date}% - \end{center}% - \par - \vskip 1.5em} - -\NewDocumentEnvironment{dcAbstract}{}{% - \if@twocolumn - \section*{\abstractname}% - \else - \small - \begin{center}% - {\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}% - \end{center}% - \quotation - \fi}{\if@twocolumn\else\endquotation\fi} - - - -\def\convertto#1#2{\strip@pt\dimexpr #2*65536/\number\dimexpr 1#1} - -\NewDocumentCommand{\bigtab}{}{ -\begin{center}\begin{tabular} - {>{\def\colunit{pt}}l<{\convertto{\rowunit}{1\colunit}} - >{\def\colunit{mm}}l<{\convertto{\rowunit}{1\colunit}} - >{\def\colunit{cm}}l<{\convertto{\rowunit}{1\colunit}} - >{\def\colunit{ex}}l<{\convertto{\rowunit}{1\colunit}} - >{\def\colunit{em}}l<{\convertto{\rowunit}{1\colunit}} - >{\def\colunit{bp}}l<{\convertto{\rowunit}{1\colunit}} - >{\def\colunit{dd}}l<{\convertto{\rowunit}{1\colunit}} - >{\def\colunit{pc}}l<{\convertto{\rowunit}{1\colunit}} -% >{\def\colunit{in}}l<{\convertto{\rowunit}{1\colunit}} - >{\bfseries}l} -\multicolumn{1}{l}{\bfseries 1pt} & \multicolumn{1}{l}{\bfseries 1mm} & \multicolumn{1}{l}{\bfseries 1cm} & \multicolumn{1}{l}{\bfseries 1ex} & \multicolumn{1}{l}{\bfseries 1em} & \multicolumn{1}{l}{\bfseries 1bp} & \multicolumn{1}{l}{\bfseries 1dd} & \multicolumn{1}{l}{\bfseries 1pc} & \\%\multicolumn{1}{l}{\bfseries 1in} & \\ -\gdef\rowunit{pt} & & & & & & & & \rowunit\\ -\gdef\rowunit{mm} & & & & & & & & \rowunit\\ -\gdef\rowunit{cm} & & & & & & & & \rowunit\\ -\gdef\rowunit{ex} & & & & & & & & \rowunit\\ -\gdef\rowunit{em} & & & & & & & & \rowunit\\ -\gdef\rowunit{bp} & & & & & & & & \rowunit\\ -\gdef\rowunit{dd} & & & & & & & & \rowunit\\ -\gdef\rowunit{pc} & & & & & & & & \rowunit\\ -%\gdef\rowunit{in} & & & & & & & & & \rowunit\\ -\end{tabular}\end{center} -} - - - +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status “maintained”. +%% +%% The Current Maintainer of this work is Alceu Frigeri +%% +%% This is version 1.0beta (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% democodelisting.sty set of macros to typeset and demonstrate LaTeX code +%% democodetools.sty set of macros to document LaTeX packages +%% +%% README.md quick introduction +%% +%% democodetools.tex LaTeX documentation +%% democodetools.pdf documentation in PDF form +%% +%%%============================================================================== +\NeedsTeXFormat{LaTeX2e}[2022/06/01] +\def\tc@tmp@packname{democodetools} +\def\tc@tmp@altpackname{democodetools} +\def\tc@tmp@packdesc{Demo Code Tools} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0beta} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} +\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] + +\RequirePackage{democodelisting} + + + + +\setdclisting{settexcs2={Macro,Arg,xarg,oarg,marg,parg,Key,Keylst,DescribeMacro,DescribeKey,DescribeValue,DescribeOption,DescribeArg},setkeywd2={Envs,Macros,Args,Syntax,Keys,Values,Options}} + + +\def\dc@keyvaluestr{Value} +\def\dc@keyvaluemeanstr{Meaning} +\def\dc@keydefaultstr{Default} +\def\dc@csfontsize{\small} + + +\NewDocumentCommand{\MarginNote}{+m}{\marginpar{{\scriptsize\hfill#1}}} + + +%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%% +\DeclareDocumentCommand{\Meta}{m}{\ensuremath\langle#1\ensuremath\rangle} + +%%% +%%% In text arg +%%% +\gdef\dc@ArgHack{} +\NewDocumentCommand{\dc@arg}{st+O{Code}O{}mmm}{{\MetaFmt[#3]{\dc@ArgHack#5\csname #4\endcsname{{\IfBooleanT{#1}{\bfseries}\IfBooleanTF{#2}{#6}{\detokenize{#6}}}}#7}}\gdef\dc@ArgHack{\,}} +\NewDocumentCommand{\oarg}{O{Meta}m}{\dc@arg+[Oarg][#1]{[}{#2}{]}} +\NewDocumentCommand{\marg}{O{Meta}m}{\dc@arg+[Marg][#1]{\{}{#2}{\}}} +\NewDocumentCommand{\parg}{O{Meta}m}{\dc@arg+[Parg][#1]{(}{#2}{)}} +\NewDocumentCommand{\xarg}{O{Meta}m}{\dc@arg+[Xarg][#1]{<}{#2}{>}} +\NewDocumentCommand{\Arg}{m}{\def\dc@ArgHack{}\dc@arg+[Marg][Meta]{}{#1}{}} + +\NewDocumentCommand{\dc@x}{O{}O{}m}{#1\dc@arg+[#2][]{}{#3}{}}% single mandatory value => \dc@arg +\NewDocumentCommand{\dc@xhack}{O{}m}{\dc@x[\dc@XHack][#1]{#2}\def\dc@XHack{\,, }}% single mandatory value => \dc@arg +\NewDocumentCommand{\dc@xlst}{O{}O{}m}{\gdef\dc@ArgHack{}\def\dc@XHack{}\forcsvlist{\dc@xhack[#2]}{#3}\ifblank{#1}{}{\hfill\dc@keydefaultstr:~{\bfseries\Key{#1}}}}%single KEY... LIST of ValueS... default Value (if any) + + +\NewDocumentCommand{\Key}{O{}m}{\dc@x[#1][Value]{#2}} +\NewDocumentCommand{\Keylst}{O{}m}{\dc@xlst[#1][Value]{#2}} + +\NewDocumentCommand{\KeyUse}{mm}{\Key{#1}\space $=$ \Meta{#2}} + + +\NewDocumentCommand{\Env}{O{}m}{\dc@x[#1][Env]{#2}} +\NewDocumentCommand{\Envlst}{O{}m}{\dc@xlst[#1][Env]{#2}} + +\NewDocumentCommand{\Pack}{O{}m}{\dc@x[#1][Pack]{#2}} +\NewDocumentCommand{\Packlst}{O{}m}{\dc@xlst[#1][Pack]{#2}} + +\NewDocumentCommand{\Value}{O{}m}{\dc@x[#1][Value]{#2}} +\NewDocumentCommand{\Valuelst}{O{}m}{\dc@xlst[#1][Value]{#2}} + +\NewDocumentCommand{\Option}{O{}m}{\dc@x[#1][Option]{#2}} +\NewDocumentCommand{\Optionlst}{O{}m}{\dc@xlst[#1][Option]{#2}} + + +%%% +%%% In text macro +%%% +\NewDocumentCommand{\Macro}{t!mD<>{}O{}m}{{\MetaFmt[Code]{\expandafter\zap@space\detokenize{#2#3} \@empty}}\IfBooleanTF{#1}{#5}{\gdef\dc@ArgHack{\,}\forcsvlist{\oarg}{#4}\forcsvlist{\marg}{#5}}}% + + +\NewDocumentCommand{\dc@Describe}{st+O{Key}O{Meta}m}{% + \IfBooleanTF{#2}% + {\item[{\dc@arg+[#3][#4]{}{#5}{}}]}% + {\item[]~\hspace{-0.6675em}\IfBooleanTF{#1}% + {\dc@margincode*+[#3]{{\dc@arg+[#3][#4]{}{#5}{}}}}% + {\dc@margincode+[#3]{{\dc@arg+[#3][#4]{}{#5}{}}}}}% +}% + +\NewDocumentCommand{\DescribeArg}{st+O{Key}m}{% + \IfBooleanTF{#2}% + {\dc@Describe+[#3][Meta]{#4}}% + {\IfBooleanTF{#1}% + {\dc@Describe*[#3][Meta]{#4}}% + {\dc@Describe[#3][Meta]{#4}}}% +}% +\NewDocumentCommand{\DescribeKey}{st+O{Key}m}{% + \IfBooleanTF{#2}% + {\dc@Describe+[#3][]{#4}}% + {\IfBooleanTF{#1}% + {\dc@Describe*[#3][]{#4}}% + {\dc@Describe[#3][]{#4}}}% +}% +\let\DescribeValue\DescribeKey +\let\DescribeOption\DescribeKey +\let\DescribePackage\DescribeKey + +\NewDocumentCommand{\DescribeMacro}{st!t+mO{}m}{% + \IfBooleanTF{#3}% + {\item[{\Macro{#4}{}}]}% + {\item[]~\hspace{-0.6675em}\IfBooleanTF{#1}% + {\dc@margincode*{#4}}% + {\dc@margincode{#4}}}\IfBooleanTF{#2}{{\Macro!{}[]{#6}}}{{\Macro{}[#5]{#6}}}% +}% + +\SetEnumitemKey{marginlst}{leftmargin=0mm,labelindent=0mm,listparindent=0mm,labelwidth=0mm,labelsep=0mm} +\SetEnumitemKey{intextlst}{leftmargin=7.5mm,labelindent=0mm,listparindent=0mm,labelwidth=20mm,labelsep=2.5mm} + +\NewDocumentCommand{\dc@margincode}{st+O{Code}m}{\ifvmode\leavevmode\else\fi{\marginpar{\raggedleft\MetaFmt[#3]{\IfBooleanT{#1}{\bfseries}\vspace{-1.35ex}\IfBooleanTF{#2}{#4}{\expandafter\zap@space\detokenize{#4} \@empty}\vspace{0.3ex}}}}} + +\NewDocumentEnvironment{Macros}{m}{% + \ifvmode\vspace{1ex}\leavevmode\else\fi{\marginpar{\vspace*{-1.755ex}~\color{gray}\hrule\vspace{0.3ex}}\forcsvlist\dc@margincode{#1}\marginpar{\vspace{-1.1ex}~\color{gray}\hrule}}% + }{} + \NewDocumentEnvironment{Envs}{m}{\begin{Macros}{#1}}{\end{Macros}}% + +\NewDocumentEnvironment{Syntax}{}{\begingroup\setlength{\parindent}{0pt}\obeylines\hspace{-0.382em}\dc@csfontsize}{\endgroup} + +\NewDocumentEnvironment{Args}{}{\begin{description}[nosep,marginlst]\vspace{0.5ex}}{\end{description}} +\NewDocumentEnvironment{Args+}{}{\begin{description}[nosep,intextlst]\vspace{0.5ex}}{\end{description}} +\NewDocumentEnvironment{Keys}{}{\begin{Args}}{\end{Args}} +\NewDocumentEnvironment{Keys+}{}{\begin{Args+}}{\end{Args+}} +\NewDocumentEnvironment{Values}{}{\begin{Args}}{\end{Args}} +\NewDocumentEnvironment{Values+}{}{\begin{Args+}}{\end{Args+}} +\NewDocumentEnvironment{Options}{}{\begin{Args}}{\end{Args}} +\NewDocumentEnvironment{Options+}{}{\begin{Args+}}{\end{Args+}} + + +%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%% + + +\colorlet{dc@ColorCode}{blue!40!black} +\colorlet{dc@ColorMacro}{blue!40!black} +\colorlet{dc@ColorMarg}{gray!60!black} +\colorlet{dc@ColorOarg}{gray!90!black} +\colorlet{dc@ColorParg}{gray!60!black} +\colorlet{dc@ColorXarg}{gray!60!black} +\colorlet{dc@ColorDefaultVal}{blue!60!black} +\colorlet{dc@ColorDefault}{blue!60!black} +\colorlet{dc@ColorKeys}{teal!40!black} +\colorlet{dc@ColorValue}{teal!40!black} +\colorlet{dc@ColorKey}{teal!40!black} +\colorlet{dc@ColorOptions}{green!30!black} +\colorlet{dc@ColorOthers}{green!30!black} +\colorlet{dc@ColorEnv}{green!30!black} +\colorlet{dc@ColorPack}{green!30!black} + + + +\def\dc@metafont{\dc@csfontsize\ttfamily} + +\DeclareKeys[MetaFormat]{ + Oarg.usage = general, + Oarg.code = {\def\dc@Metafmt{\color{dc@ColorOarg}\dc@metafont}}, + % + Marg.usage = general, + Marg.code = {\def\dc@Metafmt{\color{dc@ColorMarg}\dc@metafont}}, + % + Parg.usage = general, + Parg.code = {\def\dc@Metafmt{\color{dc@ColorParg}\dc@metafont}}, + % + Xarg.usage = general, + Xarg.code = {\def\dc@Metafmt{\color{dc@ColorXarg}\dc@metafont}}, + % + Macro.usage = general, + Macro.code = {\def\dc@Metafmt{\color{dc@ColorCode}\dc@metafont}}, + % + Code.usage = general, + Code.code = {\def\dc@Metafmt{\color{dc@ColorCode}\dc@metafont}}, + % + Key.usage = general, + Key.code = {\def\dc@Metafmt{\color{dc@ColorKey}\dc@metafont\slshape}}, + % + KeyVal.usage = general, + KeyVal.code = {\def\dc@Metafmt{\color{dc@ColorKeyVal}\dc@metafont\slshape}}, + % + Option.usage = general, + Option.code = {\def\dc@Metafmt{\color{dc@ColorOptions}\dc@metafont}}, + % + Default.usage = general, + Default.code = {\def\dc@Metafmt{\color{dc@ColorDefault}\dc@metafont}}, + % + Value.usage = general, + Value.code = {\def\dc@Metafmt{\color{dc@ColorValue}\dc@metafont\slshape}}, + % + Env.usage = general, + Env.code = {\def\dc@Metafmt{\color{dc@ColorEnv}\dc@metafont\slshape}}, + % + Pack.usage = general, + Pack.code = {\def\dc@Metafmt{\color{dc@ColorPack}\dc@metafont\slshape}}, + } +\DeclareUnknownKeyHandler[MetaFormat]{\def\dc@Metafmt{\color{dc@ColorOthers}\ttfamily}} + +\NewDocumentCommand{\MetaFmt}{sO{}}{\ifblank{#2}{}{\dc@@MetaFmt{#2}}\IfBooleanT{#1}{\bfseries}\dc@Metafmt} +\NewDocumentCommand{\dc@@MetaFmt}{m}{\SetKeys[MetaFormat]{#1}} +\dc@@MetaFmt{Code} + + +\titleformat{\chapter}{\sffamily\bfseries\selectfont\large}{\thechapter}{2ex}{} +\titleformat{name=\chapter,numberless}{\sffamily\bfseries\selectfont\large\center}{}{0pt}{} +\titlespacing{\chapter}{0pt}{\tc@chapbefore}{\tc@chapafter} + + +\def\tc@chapbefore{18pt plus 4pt minus 4pt} +\def\tc@chapafter{12pt plus 3pt minus 3pt} +\def\tc@secbefore{12pt plus 3pt minus 3pt} +\def\tc@secafter{8pt plus 2pt minus 2pt} + +\titleformat{\section}[hang]{\normalfont\selectfont\large}{\thesection}{.5em}{} +\titlespacing{\section}{0pt}{\tc@secbefore}{\tc@secafter} +\titleformat{\subsection}[hang]{\normalfont\sffamily\slshape\selectfont}{\thesubsection}{.5em}{} + +\titleformat{name=\section,numberless}[hang]{\normalfont\large\bfseries\scshape\selectfont\center}{}{0pt}{} +\titlespacing{name=\section,numberless}{0pt}{\tc@secbefore}{\tc@secafter} + + + +\reversemarginpar + + +\NewDocumentCommand{\dcAuthor}{m}{\def\dc@author{#1}} +\NewDocumentCommand{\dcDate}{m}{\def\dc@date{#1}} +\NewDocumentCommand{\dcTitle}{m}{\def\dc@title{#1}} + +\NewDocumentCommand\dcMakeTitle{}{\par + \begingroup + \renewcommand\thefootnote{\@fnsymbol\c@footnote}% + \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}% + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{% + \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% + \if@twocolumn + \ifnum \col@number=\@ne + \dc@maketitle + \else + \twocolumn[\dc@maketitle]% + \fi + \else + \newpage + \global\@topnum\z@ % Prevents figures from going at top of page. + \dc@maketitle + \fi + \thispagestyle{plain}\@thanks + \endgroup +} +\def\dc@maketitle{% + \newpage + \null + \vskip 2em% + \begin{center}% + \let \footnote \thanks + {\LARGE \dc@title \par}% + \vskip 1.5em% + {\large + \lineskip .5em% + \begin{tabular}[t]{c}% + \dc@author + \end{tabular}\par}% + \vskip 1em% + {\large \dc@date}% + \end{center}% + \par + \vskip 1.5em} + +\NewDocumentEnvironment{dcAbstract}{}{% + \if@twocolumn + \section*{\abstractname}% + \else + \small + \begin{center}% + {\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}% + \end{center}% + \quotation + \fi}{\if@twocolumn\else\endquotation\fi} + + + +\def\convertto#1#2{\strip@pt\dimexpr #2*65536/\number\dimexpr 1#1} + +\NewDocumentCommand{\bigtab}{}{ +\begin{center}\begin{tabular} + {>{\def\colunit{pt}}l<{\convertto{\rowunit}{1\colunit}} + >{\def\colunit{mm}}l<{\convertto{\rowunit}{1\colunit}} + >{\def\colunit{cm}}l<{\convertto{\rowunit}{1\colunit}} + >{\def\colunit{ex}}l<{\convertto{\rowunit}{1\colunit}} + >{\def\colunit{em}}l<{\convertto{\rowunit}{1\colunit}} + >{\def\colunit{bp}}l<{\convertto{\rowunit}{1\colunit}} + >{\def\colunit{dd}}l<{\convertto{\rowunit}{1\colunit}} + >{\def\colunit{pc}}l<{\convertto{\rowunit}{1\colunit}} +% >{\def\colunit{in}}l<{\convertto{\rowunit}{1\colunit}} + >{\bfseries}l} +\multicolumn{1}{l}{\bfseries 1pt} & \multicolumn{1}{l}{\bfseries 1mm} & \multicolumn{1}{l}{\bfseries 1cm} & \multicolumn{1}{l}{\bfseries 1ex} & \multicolumn{1}{l}{\bfseries 1em} & \multicolumn{1}{l}{\bfseries 1bp} & \multicolumn{1}{l}{\bfseries 1dd} & \multicolumn{1}{l}{\bfseries 1pc} & \\%\multicolumn{1}{l}{\bfseries 1in} & \\ +\gdef\rowunit{pt} & & & & & & & & \rowunit\\ +\gdef\rowunit{mm} & & & & & & & & \rowunit\\ +\gdef\rowunit{cm} & & & & & & & & \rowunit\\ +\gdef\rowunit{ex} & & & & & & & & \rowunit\\ +\gdef\rowunit{em} & & & & & & & & \rowunit\\ +\gdef\rowunit{bp} & & & & & & & & \rowunit\\ +\gdef\rowunit{dd} & & & & & & & & \rowunit\\ +\gdef\rowunit{pc} & & & & & & & & \rowunit\\ +%\gdef\rowunit{in} & & & & & & & & & \rowunit\\ +\end{tabular}\end{center} +} + + + \endinput \ No newline at end of file diff --git a/macros/latex/contrib/llncs/README.md b/macros/latex/contrib/llncs/README.md index de41045d18..c621504692 100644 --- a/macros/latex/contrib/llncs/README.md +++ b/macros/latex/contrib/llncs/README.md @@ -1,6 +1,6 @@ # llncs -_2022/01/12 v2.21_ +_2022/09/05 v2.22_ Copyright (c) 1996-2022 Springer diff --git a/macros/latex/contrib/llncs/history.txt b/macros/latex/contrib/llncs/history.txt index 79a199ccd4..0e51fd8218 100644 --- a/macros/latex/contrib/llncs/history.txt +++ b/macros/latex/contrib/llncs/history.txt @@ -142,3 +142,7 @@ Version history for the LLNCS LaTeX2e class Alexander Malkis, Technical University of Munich; use detokenized argument in the definition of \doi to allow underscores in DOIs + +05.09.22 llncs.cls 2.22 robust redefinition of \vec (bold italics), bug + reported by Alexander Malkis, TUM + diff --git a/macros/latex/contrib/llncs/llncs.cls b/macros/latex/contrib/llncs/llncs.cls index 075d73327c..de80a15ad9 100644 --- a/macros/latex/contrib/llncs/llncs.cls +++ b/macros/latex/contrib/llncs/llncs.cls @@ -1,4 +1,4 @@ -% LLNCS DOCUMENT CLASS -- version 2.21 (12-Jan-2022) +% LLNCS DOCUMENT CLASS -- version 2.22 (05-Sep-2022) % Springer Verlag LaTeX2e support for Lecture Notes in Computer Science % %% @@ -19,7 +19,7 @@ %% Right brace \} Tilde \~} %% \NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesClass{llncs}[2022/01/12 v2.21 +\ProvidesClass{llncs}[2022/09/05 v2.22 ^^J LaTeX document class for Lecture Notes in Computer Science] % Options \let\if@envcntreset\iffalse @@ -374,7 +374,7 @@ You should not use \verb|\subparagraph| with this class.\vskip0.5cm} \let\footnotesize\small \if@custvec -\def\vec#1{\mathchoice{\mbox{\boldmath$\displaystyle#1$}} +\DeclareRobustCommand\vec[1]{\mathchoice{\mbox{\boldmath$\displaystyle#1$}} {\mbox{\boldmath$\textstyle#1$}} {\mbox{\boldmath$\scriptstyle#1$}} {\mbox{\boldmath$\scriptscriptstyle#1$}}} @@ -890,7 +890,7 @@ to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}} \par\addvspace\baselineskip \noindent\keywordname\enspace\ignorespaces#1}% \@ifpackageloaded{hyperref}{% -\def\doi#1{\href{https://doi.org/\detokenize{#1}}{\url{https://doi.org/\detokenize{#1}}}}}{ +\def\doi#1{\href{https://doi.org/\detokenize{#1}}{\url{https://doi.org/#1}}}}{ \def\doi#1{https://doi.org/\detokenize{#1}}} } \def\homedir{\~{ }} diff --git a/macros/latex/contrib/llncs/llncsdoc.pdf b/macros/latex/contrib/llncs/llncsdoc.pdf index f0983cf795..e2f638a5fd 100644 Binary files a/macros/latex/contrib/llncs/llncsdoc.pdf and b/macros/latex/contrib/llncs/llncsdoc.pdf differ diff --git a/macros/latex/contrib/llncs/llncsdoc.tex b/macros/latex/contrib/llncs/llncsdoc.tex index b8c8f38540..0dd0ec5599 100644 --- a/macros/latex/contrib/llncs/llncsdoc.tex +++ b/macros/latex/contrib/llncs/llncsdoc.tex @@ -1,6 +1,6 @@ % This is LLNCSDOC.TEX the documentation file of % the LaTeX2e class from Springer-Verlag -% for Lecture Notes in Computer Science, version 2.21 +% for Lecture Notes in Computer Science, version 2.22 \documentclass{llncs} \usepackage{llncsdoc} \usepackage{graphicx} @@ -12,7 +12,7 @@ \title{Instructions for Using Springer's \texttt{llncs} Class for Computer Science Proceedings Papers} % -\subtitle{\texttt{llncs}, Version 2.21, Jan 12, 2022} +\subtitle{\texttt{llncs}, Version 2.22, Sep 05, 2022} % \author{} \institute{} diff --git a/macros/latex/contrib/ufrgscca/README.txt b/macros/latex/contrib/ufrgscca/README.txt new file mode 100644 index 0000000000..88495bcbab --- /dev/null +++ b/macros/latex/contrib/ufrgscca/README.txt @@ -0,0 +1,67 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status “maintained”. +%% +%% The Current Maintainer of this work is Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md (this file) quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== + + +This bundled is aimed at producing undergraduate students +final work/report (tcc) at UFRGS/EE closely following ABNT rules +(ABNT stands for Brazilian Association of Technical Norms). + +For more details, see the documentation, ufrgscca.pdf (source code: ufrgscca.tex) + +As of September 2022, the CTAN version of it is 1.0 (first CTAN submission), +except the -ppc and -curr files which shall be +considered 1.0beta (to keep the same 'overall' version number). diff --git a/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf b/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf new file mode 100644 index 0000000000..631f4faa35 --- /dev/null +++ b/macros/latex/contrib/ufrgscca/doc/ufrgscca.pdf @@ -0,0 +1,6689 @@ +%PDF-1.5 +% +4 0 obj +<< /S /GoTo /D (section.1) >> +endobj +7 0 obj +(\376\377\000I\000n\000t\000r\000o\000d\000u\000c\000t\000i\000o\000n) +endobj +8 0 obj +<< /S /GoTo /D (subsection.2) >> +endobj +11 0 obj +(\376\377\000C\000u\000r\000r\000e\000n\000t\000\040\000V\000e\000r\000s\000i\000o\000n) +endobj +12 0 obj +<< /S /GoTo /D (section.3) >> +endobj +15 0 obj +(\376\377\000u\000f\000r\000g\000s\000c\000c\000a\000\040\000C\000l\000a\000s\000s) +endobj +16 0 obj +<< /S /GoTo /D (subsection.4) >> +endobj +19 0 obj +(\376\377\000C\000l\000a\000s\000s\000\040\000O\000p\000t\000i\000o\000n\000s) +endobj +20 0 obj +<< /S /GoTo /D (subsection.5) >> +endobj +23 0 obj +(\376\377\000C\000l\000a\000s\000s\000\040\000D\000e\000c\000l\000a\000r\000e\000d\000\040\000C\000o\000m\000m\000a\000n\000d\000s) +endobj +24 0 obj +<< /S /GoTo /D (section.6) >> +endobj +27 0 obj +(\376\377\000u\000f\000r\000g\000s\000c\000c\000a\000-\000a\000b\000n\000t\000\040\000P\000a\000c\000k\000a\000g\000e) +endobj +28 0 obj +<< /S /GoTo /D (subsection.7) >> +endobj +31 0 obj +(\376\377\000P\000a\000c\000k\000a\000g\000e\000\040\000O\000p\000t\000i\000o\000n\000s) +endobj +32 0 obj +<< /S /GoTo /D (subsection.16) >> +endobj +35 0 obj +(\376\377\000E\000n\000v\000i\000r\000o\000n\000m\000e\000n\000t\000s) +endobj +36 0 obj +<< /S /GoTo /D (subsection.25) >> +endobj +39 0 obj +(\376\377\000T\000a\000b\000u\000l\000a\000r\000\040\000N\000e\000w\000\040\000C\000o\000l\000u\000m\000n\000s) +endobj +40 0 obj +<< /S /GoTo /D (subsection.26) >> +endobj +43 0 obj +(\376\377\000e\000n\000u\000m\000i\000t\000e\000m\000\040\000E\000x\000t\000r\000a\000\040\000K\000e\000y\000s) +endobj +44 0 obj +<< /S /GoTo /D (section.125) >> +endobj +47 0 obj +(\376\377\000u\000f\000r\000g\000s\000c\000c\000a\000-\000c\000o\000r\000e\000\040\000P\000a\000c\000k\000a\000g\000e) +endobj +48 0 obj +<< /S /GoTo /D (subsection.126) >> +endobj +51 0 obj +(\376\377\000C\000o\000r\000e\000\040\000F\000o\000r\000m\000s\000\040\000C\000o\000m\000m\000a\000n\000d\000s) +endobj +52 0 obj +<< /S /GoTo /D (subsection.127) >> +endobj +55 0 obj +(\376\377\000C\000o\000r\000e\000\040\000G\000l\000o\000b\000a\000l\000\040\000C\000o\000m\000m\000a\000n\000d\000s) +endobj +56 0 obj +<< /S /GoTo /D (subsection.128) >> +endobj +59 0 obj +(\376\377\000C\000o\000r\000e\000\040\000S\000p\000e\000c\000i\000f\000i\000c\000\040\000C\000o\000m\000m\000a\000n\000d\000s) +endobj +60 0 obj +<< /S /GoTo /D (section.129) >> +endobj +63 0 obj +(\376\377\000u\000f\000r\000g\000s\000c\000c\000a\000-\000c\000o\000v\000e\000r\000\040\000P\000a\000c\000k\000a\000g\000e) +endobj +64 0 obj +<< /S /GoTo /D (subsection.130) >> +endobj +67 0 obj +(\376\377\000P\000a\000c\000k\000a\000g\000e\000\040\000O\000p\000t\000i\000o\000n\000s) +endobj +68 0 obj +<< /S /GoTo /D (subsection.131) >> +endobj +71 0 obj +(\376\377\000D\000e\000f\000i\000n\000e\000d\000\040\000C\000o\000m\000m\000a\000n\000d\000s) +endobj +72 0 obj +<< /S /GoTo /D (section.132) >> +endobj +75 0 obj +(\376\377\000u\000f\000r\000g\000s\000c\000c\000a\000-\000f\000o\000r\000m\000s\000\040\000P\000a\000c\000k\000a\000g\000e) +endobj +76 0 obj +<< /S /GoTo /D (subsection.133) >> +endobj +79 0 obj +(\376\377\000F\000o\000r\000m\000s\000\040\000D\000e\000f\000i\000n\000e\000d\000\040\000C\000o\000m\000m\000a\000n\000d\000s) +endobj +80 0 obj +<< /S /GoTo /D (section.134) >> +endobj +83 0 obj +(\376\377\000u\000f\000r\000g\000s\000c\000c\000a\000-\000l\000i\000s\000t\000s\000\040\000P\000a\000c\000k\000a\000g\000e) +endobj +84 0 obj +<< /S /GoTo /D (subsection.135) >> +endobj +87 0 obj +(\376\377\000E\000n\000v\000i\000r\000o\000n\000m\000e\000n\000t) +endobj +88 0 obj +<< /S /GoTo /D (subsection.149) >> +endobj +91 0 obj +(\376\377\000D\000e\000c\000l\000a\000r\000e\000d\000\040\000C\000o\000m\000m\000a\000n\000d\000s) +endobj +92 0 obj +<< /S /GoTo /D (section.158) >> +endobj +95 0 obj +(\376\377\000u\000f\000r\000g\000s\000c\000c\000a\000-\000g\000e\000n\000\040\000P\000a\000c\000k\000a\000g\000e\000\040\000\050\000e\000x\000t\000e\000n\000d\000e\000d\000\040\000d\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n\000\051) +endobj +96 0 obj +<< /S /GoTo /D (subsection.159) >> +endobj +99 0 obj +(\376\377\000P\000a\000c\000k\000a\000g\000e\000\040\000O\000p\000t\000i\000o\000n\000s) +endobj +100 0 obj +<< /S /GoTo /D (subsection.160) >> +endobj +103 0 obj +(\376\377\000D\000e\000f\000i\000n\000e\000d\000\040\000C\000o\000m\000m\000a\000n\000d\000s) +endobj +104 0 obj +<< /S /GoTo /D (section.169) >> +endobj +107 0 obj +(\376\377\000u\000f\000r\000g\000s\000c\000c\000a\000-\000c\000o\000o\000r\000d\000\040\000P\000a\000c\000k\000a\000g\000e\000\040\000\050\000e\000x\000t\000e\000n\000d\000e\000d\000\040\000d\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n\000\051) +endobj +108 0 obj +<< /S /GoTo /D (subsection.170) >> +endobj +111 0 obj +(\376\377\000P\000a\000c\000k\000a\000g\000e\000/\000R\000e\000p\000o\000r\000t\000\040\000O\000p\000t\000i\000o\000n\000s) +endobj +112 0 obj +<< /S /GoTo /D (subsection.171) >> +endobj +115 0 obj +(\376\377\000D\000e\000f\000i\000n\000e\000d\000\040\000C\000o\000m\000m\000a\000n\000d\000s) +endobj +116 0 obj +<< /S /GoTo /D (subsubsection.177) >> +endobj +119 0 obj +(\376\377\000G\000l\000o\000b\000a\000l\000\040\000C\000o\000m\000m\000a\000n\000d\000s\000\040\000I) +endobj +120 0 obj +<< /S /GoTo /D (subsubsection.192) >> +endobj +123 0 obj +(\376\377\000G\000l\000o\000b\000a\000l\000\040\000C\000o\000m\000m\000a\000n\000d\000s\000\040\000I\000I) +endobj +124 0 obj +<< /S /GoTo /D (subsubsection.213) >> +endobj +127 0 obj +(\376\377\000S\000t\000u\000d\000e\000n\000t\000\040\000S\000p\000e\000c\000i\000f\000i\000c\000\040\000C\000o\000m\000m\000a\000n\000d\000s) +endobj +128 0 obj +<< /S /GoTo /D (section.226) >> +endobj +131 0 obj +(\376\377\000u\000f\000r\000g\000s\000c\000c\000a\000-\000p\000p\000c\000\040\000P\000a\000c\000k\000a\000g\000e\000\040\000\050\000b\000e\000t\000a\000\051\000\040\000\050\000e\000x\000t\000e\000n\000d\000e\000d\000\040\000d\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n\000\051) +endobj +132 0 obj +<< /S /GoTo /D (subsection.227) >> +endobj +135 0 obj +(\376\377\000P\000a\000c\000k\000a\000g\000e\000\040\000O\000p\000t\000i\000o\000n\000s) +endobj +136 0 obj +<< /S /GoTo /D (subsection.228) >> +endobj +139 0 obj +(\376\377\000D\000e\000f\000i\000n\000e\000d\000\040\000C\000o\000m\000m\000a\000n\000d\000s) +endobj +140 0 obj +<< /S /GoTo /D (subsection.231) >> +endobj +143 0 obj +(\376\377\000E\000n\000v\000i\000r\000o\000n\000m\000e\000n\000t\000s) +endobj +144 0 obj +<< /S /GoTo /D (section.232) >> +endobj +147 0 obj +(\376\377\000u\000f\000r\000g\000s\000c\000c\000a\000-\000c\000u\000r\000r\000\040\000P\000a\000c\000k\000a\000g\000e\000\040\000\050\000b\000e\000t\000a\000\051\000\040\000\050\000e\000x\000t\000e\000n\000d\000e\000d\000\040\000d\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n\000\051) +endobj +148 0 obj +<< /S /GoTo /D (subsection.233) >> +endobj +151 0 obj +(\376\377\000C\000o\000m\000m\000a\000n\000d\000s\000\040\000C\000r\000e\000a\000t\000i\000n\000g\000\040\000t\000h\000e\000\040\000m\000a\000n\000y\000\040\000l\000i\000s\000t\000s) +endobj +152 0 obj +<< /S /GoTo /D (subsection.234) >> +endobj +155 0 obj +(\376\377\000L\000i\000s\000t\000\040\000P\000r\000o\000c\000e\000s\000s\000i\000n\000g\000\040\000C\000o\000m\000m\000a\000n\000d\000s) +endobj +156 0 obj +<< /S /GoTo /D (section.235) >> +endobj +159 0 obj +(\376\377\000u\000f\000r\000g\000s\000c\000c\000a\000-\000c\000u\000r\000r\000-\000t\000a\000b\000\040\000P\000a\000c\000k\000a\000g\000e\000\040\000\050\000a\000l\000p\000h\000a\000\051\000\040\000\050\000e\000x\000t\000e\000n\000d\000e\000d\000\040\000d\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n\000\051) +endobj +160 0 obj +<< /S /GoTo /D (subsection.236) >> +endobj +163 0 obj +(\376\377\000T\000a\000b\000u\000l\000a\000r\000\040\000P\000r\000e\000s\000e\000n\000t\000a\000t\000i\000o\000n\000\040\000C\000o\000m\000m\000a\000n\000d\000s) +endobj +164 0 obj +<< /S /GoTo /D (section.237) >> +endobj +167 0 obj +(\376\377\000u\000f\000r\000g\000s\000c\000c\000a\000-\000c\000u\000r\000r\000-\000g\000r\000a\000p\000h\000\040\000P\000a\000c\000k\000a\000g\000e\000\040\000\050\000a\000l\000p\000h\000a\000\051\000\040\000\050\000e\000x\000t\000e\000n\000d\000e\000d\000\040\000d\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n\000\051) +endobj +168 0 obj +<< /S /GoTo /D (subsection.238) >> +endobj +171 0 obj +(\376\377\000G\000r\000a\000p\000h\000\040\000P\000r\000e\000s\000e\000n\000t\000a\000t\000i\000o\000n\000\040\000C\000o\000m\000m\000a\000n\000d) +endobj +172 0 obj +<< /S /GoTo /D [173 0 R /Fit] >> +endobj +234 0 obj +<< +/Length 4342 +/Filter /FlateDecode +>> +stream +x]K6Wȩ2h8+٪l6 k*ɫGl_,JlXD(ţ"׷a77$`U-XT.:nu6{u6sŰ<\.N߷3mvw^ovv|?zjͥ.;wftW~-T[mh-կKKmE*uYږ3~r?HY zTzx3},xz=K˵A=o{WNo(zݭZm0o6.x2/>`=t]ê΋]ٿ֣Qُ{A7 njW~v#읝}髯yE3_Vl7~uPPf azc ʱ!e+uC&Dv; f= YdGӋJeߞu]э?y4^fLfxd0fvu<>ȕn}Z9?,>\ʉ@B!ܛ<6#)QPSg+3*;&TiB_Xߛ:|5Xf|E/CD'<>B|aXC8c+s7.Զ{V(VłBS="lܝJFBά:հ`( #X6,dAa! +MجXE7aY렵cE'Щ`K) ,N#V{j4߆>1pShHô3rjhrM[CYkB)oÐ|7m34TۉF+1ejVS嵚:0&&ۓQ@;:s2&c2~:UHḀc$vu}}ah-aɘ2(]DtȻ*RL)Ut}_5<` A},8b0Xnq奊%gH1>d|,8P`\K4%C0>NpS٧k)]Ա EV| Y9%HwN%Ne$Nd8NeLN`NtN]"8uESWũ%w\ ], Mk:H +c|d`0Ih #@ +10#1:4kiɁU/pU.U,#t8&!MuU<#v$::*BY1%)D5$Cc0T7v;NO\HmȎ7 偙>61в(=Ay2w2&c2ոRG5ِ9wZtEdLdtYTӘivh ҬAt^ @;Xv .٧o~p '옃AL8A^BSG9d`v8y>`8TS@$rAMd9aB8ebC' sXN|N !NEN #3|2D*t"E3 #t~t}-UC :hXc|AgEVV!^/ᙇtNB?[3ˉc)1rfG01if>@3v@3?4IU2&(Zw@G|]E"-e=Ur;H)+5G¥Hc{ uxVIwUOzjQRy-"Y~f8j(.B`TaԊFWc!0*t`\R Quz(jZU 0XT腰010V +%`Iz[ƵdP/sțz3FgL-(l"FȆ/Ɒ\ 1y=dhbֶA4y A49 +pE"˂iAġJDւ”:t*- 1L鄩μ0 F_PY>'*#|bI$c;:l mrM%$P +/vzތU&tޕ7@*#+L5?? RU1?U& +pB#12/S̙r;*ɘq~k\U7l5Co Q/~Ey͈!/.t]\>w1낐4[h.6\"8 LqAګA4Wc. Ea: ) q:&: + +Fg&6274!E! aN +N,N +RN9Cڥ YHb$&g( gAPkzpOpU^bwX3 VuAHEahꂐ: B~m + +vgFS~w|>A`HcS,L3 jJSOM!v0S0sB9a68\)"}9Ƀ5Ɗ`Ɛ u{DY(ljXȞ֌5R[m0\_t,N%9\fyg9̳PDXḍ-,$XYXeF1Fق]/$^+1;5Tr3XbNpG\+jE>DrXd \rX.d8kƩ7ENpע*~ww)oϗ| xB軏 E`d6}Q2&c2e: Gɘ=n +endstream +endobj +173 0 obj +<< +/Type /Page +/Contents 234 0 R +/Resources 233 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 243 0 R +/Annots [ 175 0 R 177 0 R 179 0 R 181 0 R 183 0 R 185 0 R 187 0 R 189 0 R 191 0 R 193 0 R 195 0 R 197 0 R 199 0 R 201 0 R 203 0 R 205 0 R 207 0 R 209 0 R 211 0 R 213 0 R 215 0 R 217 0 R 219 0 R 221 0 R 223 0 R ] +>> +endobj +175 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 415.489 269.145 431.927] +/A << /S /GoTo /D (section.1) >> +>> +endobj +177 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 401.043 286.768 417.481] +/A << /S /GoTo /D (subsection.2) >> +>> +endobj +179 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 383.763 277.148 400.201] +/A << /S /GoTo /D (section.3) >> +>> +endobj +181 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 369.317 276.173 385.755] +/A << /S /GoTo /D (subsection.4) >> +>> +endobj +183 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 354.871 341.693 371.309] +/A << /S /GoTo /D (subsection.5) >> +>> +endobj +185 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 337.591 318.8 354.029] +/A << /S /GoTo /D (section.6) >> +>> +endobj +187 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 323.145 290.836 339.583] +/A << /S /GoTo /D (subsection.7) >> +>> +endobj +189 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 308.699 275.879 325.137] +/A << /S /GoTo /D (subsection.16) >> +>> +endobj +191 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 294.253 320.262 310.691] +/A << /S /GoTo /D (subsection.25) >> +>> +endobj +193 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 279.807 317.496 296.246] +/A << /S /GoTo /D (subsection.26) >> +>> +endobj +195 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 262.527 316.523 278.965] +/A << /S /GoTo /D (section.125) >> +>> +endobj +197 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 248.081 325.694 264.519] +/A << /S /GoTo /D (subsection.126) >> +>> +endobj +199 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 233.635 328.15 250.073] +/A << /S /GoTo /D (subsection.127) >> +>> +endobj +201 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 219.189 332.948 235.628] +/A << /S /GoTo /D (subsection.128) >> +>> +endobj +203 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 201.909 322.051 218.347] +/A << /S /GoTo /D (section.129) >> +>> +endobj +205 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 187.463 290.836 203.901] +/A << /S /GoTo /D (subsection.130) >> +>> +endobj +207 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 173.017 305.145 189.456] +/A << /S /GoTo /D (subsection.131) >> +>> +endobj +209 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 155.737 324.067 172.175] +/A << /S /GoTo /D (section.132) >> +>> +endobj +211 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 141.291 340.489 157.729] +/A << /S /GoTo /D (subsection.133) >> +>> +endobj +213 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 124.01 316.003 140.449] +/A << /S /GoTo /D (section.134) >> +>> +endobj +215 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 109.565 271.261 126.003] +/A << /S /GoTo /D (subsection.135) >> +>> +endobj +217 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 95.119 310.997 111.557] +/A << /S /GoTo /D (subsection.149) >> +>> +endobj +219 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 77.838 452.119 94.277] +/A << /S /GoTo /D (section.158) >> +>> +endobj +221 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 63.392 290.836 79.831] +/A << /S /GoTo /D (subsection.159) >> +>> +endobj +223 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 48.947 305.145 65.385] +/A << /S /GoTo /D (subsection.160) >> +>> +endobj +235 0 obj +<< +/D [173 0 R /XYZ 140.732 808.885 null] +>> +endobj +236 0 obj +<< +/D [173 0 R /XYZ 141.732 771.024 null] +>> +endobj +233 0 obj +<< + /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R +/Font << /F34 237 0 R /F37 238 0 R /F59 239 0 R /F56 240 0 R /F63 241 0 R /F68 242 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +271 0 obj +<< +/Length 5427 +/Filter /FlateDecode +>> +stream +x][㶱~_7s4q!H@$!ɓo_W_~˄Ҭ. +'TЬ,):emw߿__Q80OhrU\J6O~sla$x%" u>yp8~,h-k/iixCX\$/ƑA8RdER< ,H,d(HjZ#fYӝi8u'7tq4xgNfTdhTNŋ8,Xg-X@"%n%_#z,)`MP6A⃱X#4HQ0K"`` Cnn'bD #)HF* ;B< '(ݮ;zk8jx\"+RZ-iˬf4XYQ:fͥb_㻉wbĆƆJS~u11%'"Y$Y]cLT]""3TRuA1(OLU "2=7N] &QڎMa (>'82Ki)WM{;IA'k:K +ڟnh: KyAJ*.o[3x:3GI݅uo!W\z:_lf85"BrkBXUU_Ù'O9wMHC;Iɹ۪D~o_p)^+L=[ug9v'寗~foF +t|S*vm xj<}{:X!uYko|X8JLv/kd}QS~5aN>6i{R:^(f~W_kmv;C;xh[o}:xZ23k7@Z{!Ѽ=4+bptIVg9=S;%^bOK)k;@e$ +3% O' +^&Ϟ0PQ9=4/)wnrOb% oR&Jiϝ69nMtOpm]V੔?'Qɬ>^z~ޠzsqSe˅SΔWqg=ѵwio;z|Ӛ|Yg^2M0Y+ y:h9(\Yʼ g2.28Eb\Cﭜ]mN2^9!lKr +qA2vk>s\is _r;|2ߍ/Zxgvzpᇣ}rwU~?6,w/!Aє#Z|?8" 5K. t뿟>u{}@g㆏ޮ~wk*jZ4sfΜBj)?wԵRl9(:6Ā l-1AQ>dS܉j&M`sb+P0Gs08Ǐizw V`c!^`M69fg卦.EagHu^E +{3~6 +/pn|5`\\Bv·欒SOaIwz6deuԙsjpZ~شF?ŗwzv:亖N8Grjlfg +R FR'UգHEpSP-F?2SjX0%Q0# +r>Wv`\yH+q8VƆNsq:*Ar`/`}}gSueYIM{ҿ4mΈ ?ÅgX.8bWrg4ty]ԋwtO=W7xCЇج;/R$$$, g;{@GwzIJTog{ []@S߸ս-RWIɕIpm2 QFj:ے6O8g ?&!nKQ) i +1gI@* )V$A-ү0KBzysW5WQ?A u=ٲ@ Al$%jrj)ҮFDiU*.43 J* PlO]̞/6{v6A%vPX8+|`۝NRVC㔓?;PjYs{L6lA3edKwt蒨 JojrFnz<708=Lҕ*ҵkvP +$muv9]އK*_Qݽm +8]/Qˌ9G"O7cv.1(tc(C,ӜgoQe[`j2OO] |P-%j(>VV0te[Am͛`ֈ +t>3mXJBTt͙3^N퐉1{`rfh ;B=)P/BOSj[e&kLe`|CaP k/Yyl:j+OۙbcRtmr ͘g)vs>§c1[v"C %dWij\Le`~2]k;sANeH('G-Qن^}ov& Oz*2.?F]Ii=]ݷM?͚{wKV/ +endstream +endobj +270 0 obj +<< +/Type /Page +/Contents 271 0 R +/Resources 269 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 243 0 R +/Annots [ 225 0 R 227 0 R 229 0 R 231 0 R 244 0 R 246 0 R 248 0 R 250 0 R 252 0 R 254 0 R 256 0 R 258 0 R 260 0 R 262 0 R 264 0 R 266 0 R 273 0 R 268 0 R ] +>> +endobj +225 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 753.738 462.85 770.177] +/A << /S /GoTo /D (section.169) >> +>> +endobj +227 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 739.293 332.292 755.731] +/A << /S /GoTo /D (subsection.170) >> +>> +endobj +229 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 724.847 305.145 741.285] +/A << /S /GoTo /D (subsection.171) >> +>> +endobj +231 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 710.401 308.311 726.839] +/A << /S /GoTo /D (subsubsection.177) >> +>> +endobj +244 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 695.955 312.86 712.393] +/A << /S /GoTo /D (subsubsection.192) >> +>> +endobj +246 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 681.509 348.882 697.948] +/A << /S /GoTo /D (subsubsection.213) >> +>> +endobj +248 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 664.229 488.538 680.667] +/A << /S /GoTo /D (section.226) >> +>> +endobj +250 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 649.783 290.836 666.221] +/A << /S /GoTo /D (subsection.227) >> +>> +endobj +252 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 635.337 305.145 651.775] +/A << /S /GoTo /D (subsection.228) >> +>> +endobj +254 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 620.891 275.879 637.33] +/A << /S /GoTo /D (subsection.231) >> +>> +endobj +256 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 603.611 490.814 620.049] +/A << /S /GoTo /D (section.232) >> +>> +endobj +258 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 589.165 386.731 605.603] +/A << /S /GoTo /D (subsection.233) >> +>> +endobj +260 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 574.719 343.869 591.158] +/A << /S /GoTo /D (subsection.234) >> +>> +endobj +262 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 557.439 516.523 573.877] +/A << /S /GoTo /D (section.235) >> +>> +endobj +264 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 542.993 374.47 559.431] +/A << /S /GoTo /D (subsection.236) >> +>> +endobj +266 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 525.712 539.579 542.151] +/A << /S /GoTo /D (section.237) >> +>> +endobj +273 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [140.736 511.267 229.804 527.705] +/A << /S /GoTo /D (section.237) >> +>> +endobj +268 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [203.098 496.821 362.454 513.259] +/A << /S /GoTo /D (subsection.238) >> +>> +endobj +272 0 obj +<< +/D [270 0 R /XYZ 140.732 808.885 null] +>> +endobj +5 0 obj +<< +/D [270 0 R /XYZ 141.732 485.862 null] +>> +endobj +9 0 obj +<< +/D [270 0 R /XYZ 141.732 291.109 null] +>> +endobj +13 0 obj +<< +/D [270 0 R /XYZ 141.732 184.409 null] +>> +endobj +269 0 obj +<< + /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R +/Font << /F37 238 0 R /F73 274 0 R /F63 241 0 R /F96 275 0 R /F62 276 0 R /F103 277 0 R /F106 278 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +281 0 obj +<< +/Length 3928 +/Filter /FlateDecode +>> +stream +x[s~_36gM&צMLr}IHbM*Aw Aَ%|a"(Dn7+ *K Lmm-qۿL/~pSd0]kQE.%\ N&,JB= 7K +i(e0mNK RЕ> >|I0+) RX,ވ );zK-lV{%9Ց,ȓa/hӽVdirrAx DMˍ2vY(+T+R в >L65]y<`sPB~𜽾<zANɸM_'NtfA(sz46~ kSF_uEw%DmNpY/+ + ΓtpYS%2 /D߅<”=^TOPy +88n\+@"J:*P*Fhfa -զP”ar6H!m[u#SWXh$y>qSsOR悆ytdx5~|ma$Xd"q508"1{C;\6[gDRMoL +# {Tt&,IIaR'rp-m9 s1z[۶WbI*#]ǿ@n[6n@rYFYhQwpA.ք  Бqr8'^MV]+{7'}WnI207YXx13RpUЀ1@8XJrZṕf͝m D$RlnPRAŒSz#2 [L9Ua!ꁃ1t9 >9F91Ίj؝E{bEv`8fڑ*sv`n \ ,+WB@uO-,bp^#Tŝ=<ǶVv:M. +)6!H6zF8N #]"NFAQPߚT7S֑/u L,ծ”פ?8N }zRد_OBr4F):ҬҘ5W(}kb2H+a@Ñy [W@1#v(x{[An!|j8GFM@C+7o @aWM7QVix0/ƞf-nL՚6ϔL[/|mRn`nk-tZs4gr&KA쎘@Ұ3\X}`~n:mzeݗ#XW~ ד0 ":Z˵KWhgm?P1ɋpi5%'&%UKՔb ;;xL}mcQO%p ^|8 |DH,vq$'Sl) 0smtKR +}6Z^i*[=IPTt֝e 2σTG,[㜜ΦAFS?R`aaU!>hO!+zP'{x ,!F3! 8@ncj1xJ{TB:/!ҝ2L'Wwr[d67} ;ryЕt2jSMű44s|^5Ά1 <df0w +8 ]vydJ:tߚ]}gS. xqJ,vƾ +[؋뙗.яghel,Fuwڥ1cbZ;,[k+5sCa%;fn.X^~1&~6l:;Cf=|2> fG4.UT\×(J@Epg{qBwHv XF"k;4p"Oq}e_}_d$X>|v6ȍ?)q}dHEUuaD&lNIӒjr||5FW\p strs`v?#__tn9j0{~I 9^mBF?<l M,4}ߦڟo/mK +endstream +endobj +280 0 obj +<< +/Type /Page +/Contents 281 0 R +/Resources 279 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 243 0 R +>> +endobj +282 0 obj +<< +/D [280 0 R /XYZ 140.732 808.885 null] +>> +endobj +17 0 obj +<< +/D [280 0 R /XYZ 141.732 771.024 null] +>> +endobj +279 0 obj +<< + /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R +/Font << /F103 277 0 R /F37 238 0 R /F63 241 0 R /F81 283 0 R /F93 284 0 R /F62 276 0 R /F106 278 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +287 0 obj +<< +/Length 4096 +/Filter /FlateDecode +>> +stream +x\Y~_7kQ/$i 5I@(#1+2Iyvf4lig}+ꪯuG߾~u;DLkG\q%:cIU~nf.o2.+|<ޤbv,FqgUdC[|/Ub7?pk/yȈ,3n՝+$OyxP[jw)߾2& D gŏsųyCKք7nWP$DHi1\V|WH `qBD[ﲑ$0F$7PEScSsl:OĕNZ g[ ke/sD DI\i@{g'ŕ笋Za{\o8X*uܽyc_m_diw :m7s0h,,X$e0Zc.ȱ,3z~&X +H9g1d|NL)M1d~CZuShT٫`'_~WwuA,6[@;nSt偕{LiƬ6>ub[1C5Ç|]@ѥ9w%V[E Jr]e f}] pĜQگ6{sDL]H0Y ]xL'򓱚 ̡0<屵ЂHvydN"Z+?3`z%2&oGz?\d аbY/:3%0npAu +KD@7TA%rX]Z ]&" @ +z,,*ds/n`~yi tvRsE(T4p%8n$`KO +c9jBI !}"3l}q RqYz>)/_vP2i *`% {` XT8tV*)H#PBqE>_c +l_~Jd:^^Ak@"sDw]q"tCg}XwG~*{iYo:sqbsὨ>]CݡO-IeG(3&lOC} + Gߌ涬ghFi[Nn)ȵ~r rn| ay&IL2x_2 z0@dέ 1M3nR"硪Cm3mm&$!9"5IG:iE~=IMAt)hc4F7i<ao l)S,q KІ4I0Ә(* +:B[:U(tr6v%0&s Il6 \L;< +\GA|=(I &Sd*h“E# @o +t0W >' BM!|a "uf`aΪ#ki*?Y:5-bMun8ENUG/Df1ep+ۣ:֮;?q +I5Vc]إqjJ3JcliR;snjڲM GKc8\IfTfN@+RfĮ~bL =/f7{{+t?+sYW7L@Ǻ%fb-Жվc +8k=͍+4Hk4ش_%7'[,p:W +}AsܯzHSq 63PU&a&S~yn+ 5Q[6\Νw+ܢ[Cp)&frY>өBvQ)вڷձ~1Z^gb Q~j:n_FI9uҌW(&Rv/xi8^tr9 F}7V$DZcvC I/\>+4<U` +0yĢīZb} 8ɶO xu~t%J6A*ZI2.V-*'˃S*D$5/!ɦqg1\U}s)jUGWL }A1^dd LʒjO8eSk+6ä5R,Nh/Ts^+aSꐎ6mʄ$;T;+JC]EX)[AF`6ÙB\Q{llob,]G13[p/JMX0qUȃ-xѲ.=5 TS74!ƩBIr ūO;G/wbmۭ'z|N錢(Qly^=@#Uj'Sxc[s<@ ӜPA㸻 x< Ժ +.12:/Z}eEƒF/mKF*|@Ur߽x +nv㔏Tx8Qg::4U#n,boLm;(}mH>ƙ#?xn| g %zli[v'?y`(>ekX5\=#j}9!0"d,(JE mJ{bHvS ̃qvV:s! nZؖܕ-ȒÍlaEs+aIfRW=v5ݦY?K"G5Jqyr +6,5,L K*0! VTluj)ưO@3o0<9*J0z}ELnĸoD4Р[?̬z3+#%ǦrRHb̯nN8# p9~&d4͹IdṾ̋-'y-' KW0,Fb sIJjeĎO_٪M%ꨠ)WMp2XA`W#g񤴲ge fŸx["8v. +aoXVr?//ɤnQ ,blV6Ȥۡ2whٌChIVrKEoYq -(Z8ָilHY0T-;*?Crb=?xx`P81=2>e?gtu( 4Dž`!8?RvcRpEYAk@\s3%jK]Qo~G* Yb->0|6ft7ڳs%uy L7הybyl]?FWf cCBJ(t7jۭ gfՉyf\ӄ Gya6 V.HQp0>|HLelRilRT?kM\y|g%%Z=9jnb9Jܽ?+< +endstream +endobj +286 0 obj +<< +/Type /Page +/Contents 287 0 R +/Resources 285 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 243 0 R +>> +endobj +288 0 obj +<< +/D [286 0 R /XYZ 140.732 808.885 null] +>> +endobj +21 0 obj +<< +/D [286 0 R /XYZ 141.732 744.789 null] +>> +endobj +25 0 obj +<< +/D [286 0 R /XYZ 141.732 548.653 null] +>> +endobj +29 0 obj +<< +/D [286 0 R /XYZ 141.732 395.631 null] +>> +endobj +285 0 obj +<< + /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R +/Font << /F37 238 0 R /F63 241 0 R /F103 277 0 R /F62 276 0 R /F93 284 0 R /F106 278 0 R /F133 289 0 R /F81 283 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +292 0 obj +<< +/Length 4046 +/Filter /FlateDecode +>> +stream +xَ}B/j1Wɼ%""@$dUnel#̿dC;Cu*M.ɒdG~rPJ,ydZ/&TPJ$S&yI>}پ]pfrW˷LyuWZoW+qraԮ\w }7E^ݴ +~r)s oV52K.4Rb$Y-^gDߧH&y0 saԎ0H[Ê001̋HeadC~Q.>Ou +# wo e|Ar"$27N x޷͵?-džb}/{Ko޿Ǜ~h,7o>%+xΚѵ$i"uÛ?mL3֐% /=GRKЗ{X0w3P""leqYzㄨ7eI[~ċ"x!|w])w˫uk"? ['xzYg)t8KIƃ4z]& rm=*}/*/Pǭ+;$(=EU`.Gc6bYvyWEbi9BK?塑@ng_$hB5{QSi*|pDj .h(#KbZ)P{ `Q\,G ڹ+~^^'|$DN|]6Mn-{aͰ.6^o!um6\qmz/oAŁR6-eE +;Q9x' ~"ih/m8n}P;_ȳRTKj3"mTɂEX/cV@N2y1b!`%ŌwGFp^{rM' 8Zb: ;+ +fL2+|獝LIfN2˜t4Eޅ&qf8 8o7]Óv" Ӓdl/𓜃:},`$Gֹ!lA|(#=̇RAΧ`<4oM ~>xc~ 㼀>NAQ׺uE +c2DuX@n("\D`shتQntE$\|38̠GWؒY/C"eDB];ZjisڞMAsBt"o9bY]sp'b_&b8_)b +~9'2Ҏ#Aa|(Rڎ)-K`9Ȅ!讉TJ-1Wx!uGtl½LnLD@l}-8!h{ZDhj2!ժheU) &[{_7ߠC& w]wB=ӹDQ1|_j)>Jdl9TJ@O~6!G{pԁ 4D->c|fDɤm,c{hC|ۣO!}=w="gCP,6t~O*>*!| (<|rO]J= NrUc>JNQ}MqyRNua?*0İ0R8o|<$[wX2sG$o>2n]9-?+@h8W$+ 'Yi?wIlD '@Qy' GaTˏřAŃxG!N + C7]8 +g:ܴv_i!܈)$HGq%q%G8NOXݟ_vgqWѾ\3 (wY9Uã14ևrJ8㤰 hGU J) ՠ1aWοJ%j`6#8o2{菞 J<'NJ[~?m>l0c|TMKPmt:+*<zV4jh<Ș:oQ]iskŴ 4ڊ KUOO<y3sN6ydȼ<;i(Q'3ҡuaxlu)mhW>c/m~z5«1sf!26 ̯ARp k}Ryw]\s/6onn[2a=]p0*8$`@G:j?h|".Np6&tWlsd/TU,d6D_ܧp^U]Se3P/d6s=R k:@`ҙr8]87d +5Vgϋ:" +ǐ rt2T`Nt5 WTxi3 li[Ikv1tòXW\i\kV +FK2PrCW$,R3 >a~R eL <ͭqpW{kҳ<(^$*}á1(3KukR:gis,Й|a'C o]{&'AZtW*Q0Im2J#L5f$M +''_4ӓ3) 8ZϠ3q0ɘ$&(%Iqp$Eqcovڸl PFe} !2$Dv<:9>G +2z6'{`2qe.N$?W c~XT}k/̠(sSܕ_. vXyuw uN&1RM-fLAWFi$1p\Z]3"Fid c1uuv; +endstream +endobj +291 0 obj +<< +/Type /Page +/Contents 292 0 R +/Resources 290 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 243 0 R +>> +endobj +293 0 obj +<< +/D [291 0 R /XYZ 140.732 808.885 null] +>> +endobj +294 0 obj +<< +/D [291 0 R /XYZ 141.732 486.042 null] +>> +endobj +295 0 obj +<< +/D [291 0 R /XYZ 141.732 486.042 null] +>> +endobj +296 0 obj +<< +/D [291 0 R /XYZ 141.732 474.087 null] +>> +endobj +298 0 obj +<< +/D [291 0 R /XYZ 141.732 377.807 null] +>> +endobj +299 0 obj +<< +/D [291 0 R /XYZ 141.732 381.393 null] +>> +endobj +300 0 obj +<< +/D [291 0 R /XYZ 141.732 248.813 null] +>> +endobj +301 0 obj +<< +/D [291 0 R /XYZ 141.732 248.813 null] +>> +endobj +302 0 obj +<< +/D [291 0 R /XYZ 141.732 236.857 null] +>> +endobj +33 0 obj +<< +/D [291 0 R /XYZ 141.732 93.689 null] +>> +endobj +290 0 obj +<< + /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R +/Font << /F37 238 0 R /F63 241 0 R /F62 276 0 R /F93 284 0 R /F73 274 0 R /F96 275 0 R /F133 289 0 R /F139 297 0 R /F103 277 0 R /F56 240 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +305 0 obj +<< +/Length 2952 +/Filter /FlateDecode +>> +stream +x[[oF~ϯ[i }}@v^XJ%n$KRq}ϙ"C˔+;nļ ϜpDgճ 3cJ3:c3&͌ vv6Ŝ2$_% +CVΟ^LV03Sј,MLvdQelyΏ-%J>\* +$c" +$`vΌކ/ҁl}n1B.:npϣ +"m-e^[Z̯PfK\̙6#rš 0;n{CɩFHzV5[7p\@)4v3!YALc t=ObXX"EGp(6m0,G8kȮ׮0|iJ +5+a$l0t:7ygfˉ w|RWKB X{L!P4CÅB6}q]a9"hkV}Κ*FE{=.@4_C}]`WMTt +ҕ& +:H? *B0DiL[" v8eB#Wie!sF43}{Svtc JRjX́38vX6X n%>؄K9u61AEnF&bMM9ŝ,GVZ.=q#ψkVJ+jʿ )=WiWrãC^ PӀ΃c%1OcP~]D !Ca̱Xvq,#aؠMi͋QLwo6ZQY>'1g2zeX(.P c=*1 +EЄElLjHs 9$Q}-mu2VDǕs$D*ne`z g'3Ͽ\pj\e__²Ƒkqt\:-}UZ-b#/M.SWs"8iC̈́ߟLSOwV jRBm$@9 ᘉ 84aI-"bK($!j'{Ȝ" /=NB?Y>Yd?B}"cr2B|eVFtP=I5*2DT &Q?bmN ) `C.B〷`:k!iU࢟~F/ 1v߲mxǮʵ@at'ez ~/1fɃ2 `X.E;}<@Ԍ‰`K9cCm5:}: S:f\.C}h7ݟ;t? o +4juoI%ȋ_i$%sCxA0DI3GQj 05ney_o򛀿(ϰ[1T,o݆/ ~R-~ECƐ2L\|ϏoRm&  wђ`鎶UUU!ΰf*ԃ7XgIJV6nNef[_"vJ(yRa 6O&jm3.*LO;ܚ/":rbӬj\:ǐ\k'Ŀ8Ry8UCU +ѰfQGy1A_c襴jdۦuuNQC+@m(+o7cL1K{VcYճ|U +endstream +endobj +304 0 obj +<< +/Type /Page +/Contents 305 0 R +/Resources 303 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 243 0 R +>> +endobj +306 0 obj +<< +/D [304 0 R /XYZ 140.732 808.885 null] +>> +endobj +307 0 obj +<< +/D [304 0 R /XYZ 141.732 711.796 null] +>> +endobj +308 0 obj +<< +/D [304 0 R /XYZ 141.732 711.796 null] +>> +endobj +309 0 obj +<< +/D [304 0 R /XYZ 141.732 699.841 null] +>> +endobj +310 0 obj +<< +/D [304 0 R /XYZ 141.732 687.886 null] +>> +endobj +311 0 obj +<< +/D [304 0 R /XYZ 141.732 675.93 null] +>> +endobj +312 0 obj +<< +/D [304 0 R /XYZ 141.732 567.814 null] +>> +endobj +313 0 obj +<< +/D [304 0 R /XYZ 141.732 567.814 null] +>> +endobj +314 0 obj +<< +/D [304 0 R /XYZ 141.732 543.903 null] +>> +endobj +37 0 obj +<< +/D [304 0 R /XYZ 141.732 376.558 null] +>> +endobj +41 0 obj +<< +/D [304 0 R /XYZ 141.732 238.754 null] +>> +endobj +303 0 obj +<< + /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R +/Font << /F37 238 0 R /F63 241 0 R /F62 276 0 R /F96 275 0 R /F133 289 0 R /F93 284 0 R /F56 240 0 R /F73 274 0 R /F103 277 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +317 0 obj +<< +/Length 2240 +/Filter /FlateDecode +>> +stream +xZMo8W6AܒA`0`>, wvc%^oU$:mvdKEHMR$U(\%4pF3WIFQ0m\r4 +n?qF8=5'ƕ +UqJ%U\>|Iu?=?{ 84eo +(ES y_mŗߺ>_׼`DX5~WYY'λSqG( 80@$0); i]X*7#c M DKؼrZˢhM^t] v0&F1輺ɪM΋fdіͧm%1vvꣵ#\L>pbaйVp+51M5vZd%QلG"ֺ gD2;-4\Jg(<'&bfʣ!N< +S"<*IKY؍ 7;QF5v¬(`#'5/|~#v\ڌ}R3}m`!OU\ +/*Te^*'<~/L0K4W1e.OKDum5M\I#w~;Ɯ xЅ 'MƷz +ߌw aQFN ̰M=IW+8i >7!3hl7%JbbqS϶rmz[/0cnD?b1O54Xin&L- &k6eU,4jpK:_t Pqgځ%tR7 5ܬ_v(/u=5"a D duZ ǫ c7-Q4]OPX1iQVlʐa'Y(!&]#`lvv6 m +n7i}߼KHk Ky\fmKĻ[F KYh0pKfw5#u~sw\;]";B6?nkI (K,Vd^QW42\*?wR*CLv0= +0A'U~p:5 aXPhʥUjct"[Qwܕ3ԿX~‰qWH,:Cs 4l+Cw]9+^DY,h?9)f) H/5y 6ݾI +0|i^RBlY ^5ӣJ]q^4B&A2HaB>X;mW@4!#77D8[frʃ7Y~Z>AL_NHL¯Hf?M +ǏH&ۻ-? w50důHPDN~uK6qر灩jP$ Ub\545mh^acF=kovD\u?҂>`ĝ]Q{h{'R'@E<‘a +uE_9Y,*ج;lsU},MqfM(el>.^ƌPo񴼱3LveL99MP05mzyH42tUuSW +1 #kzBigQH{՛KiuY?oxh~3(Lb- p߇dD,%9 338TbP V<<Ǚ΁e O( RڂJuD<^Uv5(MgNP6!,]zh}y/6+#6+Z?S!,eq`YDfe C-TTqVQ= !"@ bl T6algպރ|mVNF:Ţ,}t<&C;.ʦΟ)E$e\X҄ ݵ#bG<)<2ᛅ{Gp&@ݰS3h}??^4AuOD?7UZw 4l2ZjGJ4=<6a2n6Q^=*>BEyT18 M# ih4; lꝆnH +endstream +endobj +316 0 obj +<< +/Type /Page +/Contents 317 0 R +/Resources 315 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 365 0 R +>> +endobj +318 0 obj +<< +/D [316 0 R /XYZ 140.732 808.885 null] +>> +endobj +319 0 obj +<< +/D [316 0 R /XYZ 141.732 752.925 null] +>> +endobj +320 0 obj +<< +/D [316 0 R /XYZ 141.732 756.511 null] +>> +endobj +321 0 obj +<< +/D [316 0 R /XYZ 141.732 744.556 null] +>> +endobj +322 0 obj +<< +/D [316 0 R /XYZ 141.732 732.601 null] +>> +endobj +323 0 obj +<< +/D [316 0 R /XYZ 141.732 720.646 null] +>> +endobj +324 0 obj +<< +/D [316 0 R /XYZ 141.732 708.691 null] +>> +endobj +325 0 obj +<< +/D [316 0 R /XYZ 141.732 696.736 null] +>> +endobj +326 0 obj +<< +/D [316 0 R /XYZ 141.732 684.78 null] +>> +endobj +327 0 obj +<< +/D [316 0 R /XYZ 141.732 672.825 null] +>> +endobj +328 0 obj +<< +/D [316 0 R /XYZ 141.732 660.87 null] +>> +endobj +329 0 obj +<< +/D [316 0 R /XYZ 141.732 648.915 null] +>> +endobj +330 0 obj +<< +/D [316 0 R /XYZ 141.732 636.96 null] +>> +endobj +331 0 obj +<< +/D [316 0 R /XYZ 141.732 625.005 null] +>> +endobj +332 0 obj +<< +/D [316 0 R /XYZ 141.732 613.049 null] +>> +endobj +333 0 obj +<< +/D [316 0 R /XYZ 141.732 601.094 null] +>> +endobj +334 0 obj +<< +/D [316 0 R /XYZ 141.732 589.139 null] +>> +endobj +335 0 obj +<< +/D [316 0 R /XYZ 141.732 577.184 null] +>> +endobj +336 0 obj +<< +/D [316 0 R /XYZ 141.732 565.229 null] +>> +endobj +337 0 obj +<< +/D [316 0 R /XYZ 141.732 553.274 null] +>> +endobj +338 0 obj +<< +/D [316 0 R /XYZ 340.157 751.162 null] +>> +endobj +339 0 obj +<< +/D [316 0 R /XYZ 340.157 732.964 null] +>> +endobj +340 0 obj +<< +/D [316 0 R /XYZ 340.157 708.555 null] +>> +endobj +341 0 obj +<< +/D [316 0 R /XYZ 340.157 684.147 null] +>> +endobj +342 0 obj +<< +/D [316 0 R /XYZ 340.157 659.738 null] +>> +endobj +343 0 obj +<< +/D [316 0 R /XYZ 340.157 635.33 null] +>> +endobj +344 0 obj +<< +/D [316 0 R /XYZ 340.157 610.921 null] +>> +endobj +345 0 obj +<< +/D [316 0 R /XYZ 340.157 586.513 null] +>> +endobj +346 0 obj +<< +/D [316 0 R /XYZ 141.732 432.703 null] +>> +endobj +347 0 obj +<< +/D [316 0 R /XYZ 141.732 436.29 null] +>> +endobj +348 0 obj +<< +/D [316 0 R /XYZ 141.732 424.335 null] +>> +endobj +349 0 obj +<< +/D [316 0 R /XYZ 141.732 412.38 null] +>> +endobj +350 0 obj +<< +/D [316 0 R /XYZ 141.732 400.424 null] +>> +endobj +351 0 obj +<< +/D [316 0 R /XYZ 141.732 388.469 null] +>> +endobj +352 0 obj +<< +/D [316 0 R /XYZ 141.732 376.514 null] +>> +endobj +353 0 obj +<< +/D [316 0 R /XYZ 141.732 364.559 null] +>> +endobj +354 0 obj +<< +/D [316 0 R /XYZ 141.732 352.604 null] +>> +endobj +355 0 obj +<< +/D [316 0 R /XYZ 141.732 340.649 null] +>> +endobj +356 0 obj +<< +/D [316 0 R /XYZ 141.732 328.693 null] +>> +endobj +357 0 obj +<< +/D [316 0 R /XYZ 141.732 316.738 null] +>> +endobj +358 0 obj +<< +/D [316 0 R /XYZ 141.732 304.783 null] +>> +endobj +359 0 obj +<< +/D [316 0 R /XYZ 340.157 420.098 null] +>> +endobj +360 0 obj +<< +/D [316 0 R /XYZ 340.157 401.899 null] +>> +endobj +361 0 obj +<< +/D [316 0 R /XYZ 340.157 372.51 null] +>> +endobj +362 0 obj +<< +/D [316 0 R /XYZ 340.157 356.005 null] +>> +endobj +363 0 obj +<< +/D [316 0 R /XYZ 340.157 331.596 null] +>> +endobj +364 0 obj +<< +/D [316 0 R /XYZ 340.157 317.151 null] +>> +endobj +315 0 obj +<< + /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R +/Font << /F133 289 0 R /F62 276 0 R /F37 238 0 R /F63 241 0 R /F96 275 0 R /F73 274 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +368 0 obj +<< +/Length 1655 +/Filter /FlateDecode +>> +stream +x[K6WVm$HK>lk!򣖍 -;CJxv6J$5C~8)yGy9`w:<~!-z8B=eƑ$j86Ñ&eW6Y/".pj(.b# |iJq}V%2*{]\ D2STtOZ K &vmolZ)cSާkPpFJBPsup#|ǣ`,>V: Sudؚx>8$Z%ӌև۶fR#`ԬpH)b'/x iXE-;L z!FQ/BS Q/A/U^Z/,z*ghbH|(@7t?K,dq{~_K> +endobj +369 0 obj +<< +/D [367 0 R /XYZ 140.732 808.885 null] +>> +endobj +370 0 obj +<< +/D [367 0 R /XYZ 141.732 496.572 null] +>> +endobj +371 0 obj +<< +/D [367 0 R /XYZ 141.732 500.159 null] +>> +endobj +372 0 obj +<< +/D [367 0 R /XYZ 141.732 488.204 null] +>> +endobj +373 0 obj +<< +/D [367 0 R /XYZ 141.732 476.249 null] +>> +endobj +374 0 obj +<< +/D [367 0 R /XYZ 141.732 464.293 null] +>> +endobj +375 0 obj +<< +/D [367 0 R /XYZ 141.732 452.338 null] +>> +endobj +376 0 obj +<< +/D [367 0 R /XYZ 141.732 440.383 null] +>> +endobj +377 0 obj +<< +/D [367 0 R /XYZ 141.732 428.428 null] +>> +endobj +378 0 obj +<< +/D [367 0 R /XYZ 141.732 416.473 null] +>> +endobj +379 0 obj +<< +/D [367 0 R /XYZ 141.732 404.518 null] +>> +endobj +380 0 obj +<< +/D [367 0 R /XYZ 141.732 392.562 null] +>> +endobj +381 0 obj +<< +/D [367 0 R /XYZ 141.732 380.607 null] +>> +endobj +382 0 obj +<< +/D [367 0 R /XYZ 141.732 368.652 null] +>> +endobj +383 0 obj +<< +/D [367 0 R /XYZ 141.732 356.697 null] +>> +endobj +384 0 obj +<< +/D [367 0 R /XYZ 141.732 344.742 null] +>> +endobj +385 0 obj +<< +/D [367 0 R /XYZ 141.732 332.787 null] +>> +endobj +386 0 obj +<< +/D [367 0 R /XYZ 141.732 320.831 null] +>> +endobj +387 0 obj +<< +/D [367 0 R /XYZ 141.732 308.876 null] +>> +endobj +388 0 obj +<< +/D [367 0 R /XYZ 141.732 296.921 null] +>> +endobj +389 0 obj +<< +/D [367 0 R /XYZ 141.732 284.966 null] +>> +endobj +390 0 obj +<< +/D [367 0 R /XYZ 141.732 273.011 null] +>> +endobj +391 0 obj +<< +/D [367 0 R /XYZ 141.732 261.056 null] +>> +endobj +392 0 obj +<< +/D [367 0 R /XYZ 141.732 249.1 null] +>> +endobj +393 0 obj +<< +/D [367 0 R /XYZ 141.732 237.145 null] +>> +endobj +394 0 obj +<< +/D [367 0 R /XYZ 141.732 225.19 null] +>> +endobj +395 0 obj +<< +/D [367 0 R /XYZ 141.732 213.235 null] +>> +endobj +396 0 obj +<< +/D [367 0 R /XYZ 340.157 515.067 null] +>> +endobj +397 0 obj +<< +/D [367 0 R /XYZ 340.157 496.869 null] +>> +endobj +398 0 obj +<< +/D [367 0 R /XYZ 340.157 472.46 null] +>> +endobj +399 0 obj +<< +/D [367 0 R /XYZ 340.157 448.052 null] +>> +endobj +400 0 obj +<< +/D [367 0 R /XYZ 340.157 423.643 null] +>> +endobj +401 0 obj +<< +/D [367 0 R /XYZ 340.157 396.744 null] +>> +endobj +402 0 obj +<< +/D [367 0 R /XYZ 340.157 377.317 null] +>> +endobj +403 0 obj +<< +/D [367 0 R /XYZ 340.157 357.89 null] +>> +endobj +404 0 obj +<< +/D [367 0 R /XYZ 340.157 335.972 null] +>> +endobj +405 0 obj +<< +/D [367 0 R /XYZ 340.157 311.563 null] +>> +endobj +406 0 obj +<< +/D [367 0 R /XYZ 340.157 287.155 null] +>> +endobj +407 0 obj +<< +/D [367 0 R /XYZ 340.157 260.256 null] +>> +endobj +408 0 obj +<< +/D [367 0 R /XYZ 340.157 237.84 null] +>> +endobj +409 0 obj +<< +/D [367 0 R /XYZ 340.157 218.413 null] +>> +endobj +410 0 obj +<< +/D [367 0 R /XYZ 340.157 196.495 null] +>> +endobj +366 0 obj +<< + /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R +/Font << /F37 238 0 R /F63 241 0 R /F96 275 0 R /F133 289 0 R /F62 276 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +413 0 obj +<< +/Length 3000 +/Filter /FlateDecode +>> +stream +x\KH ;w鸰 6vo-wkƶKa'oCnɏvCLTVfV族RO%Y*s_a`$x~ٱ.3?~#<'"ƯC,Y%7W/^Ɣ&94~D`s5I> >bnr1ekA:OR"yϲ)>4y9ӍequR$GfOc*A,9񖪫y1L96XOk!mĶ8MO7NkSY#V%MLn>'6 {Z(:,߮fy~b+zR1i%(扐)n;[\"蓢RK2qDzZ0r̿$#(ET>PC0bX=-&l,0T?V-bVRv?T 1 +% }9ךCc\Ub!bTߌ쑋jiƐ'Vsꓘ[>>iyi,Ϸچr$>Չ.ioljm'Z$LπOcShhjii664Mc\?턐WP(b X`^i1`d4&8))LR$HfdIx;h$O@U:3Eޭ^TS9b⨦jY?wO5I.j,GXQ+h򹬁f`=}y(Ѽ$YQS/bZam,a>[C JO!Oͫy17x>h~ljB|JI3tZLfv5ik9S>k$%!w)˳jht_/6r^[mschFO\uBtưx|,ix|gȄ%im[0$u"lM^iQHPђіbc; L6f;`ucS" >!䚤#Π_d\ )x6r%LгZR &$Zy*A%{E"VUݔZ؛jsP]7BlY1R'!frf<3SjT~Vܵק@NN uJիqU-')`S6Bo_ttGk\A(cA@2wbR,wq)7O X#hYt. z–qC4'9ʁ]$t3JXQkauŨI#+сo1$M~mSղ.vGlIэ0^>n~l Xȳ樃HBRDn#H " 3ux#"zE  +=lNICJ-CC0=z1hy|L񱮳7<(3j譯-;"& ra ˺h}kukV];53]FtTWuC=v3sm\>- ȮL/Jj鴟?sR{cj|6T B3 ) 4[kc;?nt=D&j63K}ѓ'7Gzo`> mfEb6M?>FƽbT!T_0x)Q &2FfAw,6" K9]uKX,!2;PEۋ`#ߟ8r=Ln$/rrXfdXWEj>tAѶoX;H䠇Il[ ЄYá3!6ndHdGU0LF :7i#np\hq{:y qX(rpw޽/D*A, H ,͠l&N[8ۢD# G9aOn,}ܟy0$R9hzRY)rvÜ},PcӮef5#y}J8L@D@urHcr7P盋l#.XdY*ryRS DJ$R8$v!ϣ C.jH?pD@[+RhIOբ\Ptd:~\…0dH~*̏8\¼u#6ӯ`r\M zʗ9d +endstream +endobj +412 0 obj +<< +/Type /Page +/Contents 413 0 R +/Resources 411 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 365 0 R +>> +endobj +414 0 obj +<< +/D [412 0 R /XYZ 140.732 808.885 null] +>> +endobj +415 0 obj +<< +/D [412 0 R /XYZ 141.732 752.925 null] +>> +endobj +416 0 obj +<< +/D [412 0 R /XYZ 141.732 756.511 null] +>> +endobj +417 0 obj +<< +/D [412 0 R /XYZ 141.732 744.556 null] +>> +endobj +418 0 obj +<< +/D [412 0 R /XYZ 141.732 732.601 null] +>> +endobj +419 0 obj +<< +/D [412 0 R /XYZ 141.732 720.646 null] +>> +endobj +420 0 obj +<< +/D [412 0 R /XYZ 141.732 708.691 null] +>> +endobj +421 0 obj +<< +/D [412 0 R /XYZ 141.732 696.736 null] +>> +endobj +422 0 obj +<< +/D [412 0 R /XYZ 141.732 672.825 null] +>> +endobj +423 0 obj +<< +/D [412 0 R /XYZ 141.732 660.87 null] +>> +endobj +424 0 obj +<< +/D [412 0 R /XYZ 141.732 648.915 null] +>> +endobj +425 0 obj +<< +/D [412 0 R /XYZ 141.732 636.96 null] +>> +endobj +45 0 obj +<< +/D [412 0 R /XYZ 141.732 603.978 null] +>> +endobj +49 0 obj +<< +/D [412 0 R /XYZ 141.732 520.458 null] +>> +endobj +53 0 obj +<< +/D [412 0 R /XYZ 141.732 396.954 null] +>> +endobj +57 0 obj +<< +/D [412 0 R /XYZ 141.732 221.209 null] +>> +endobj +411 0 obj +<< + /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R +/Font << /F133 289 0 R /F62 276 0 R /F146 426 0 R /F37 238 0 R /F63 241 0 R /F103 277 0 R /F93 284 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +429 0 obj +<< +/Length 3426 +/Filter /FlateDecode +>> +stream +x\KsFWfa@&ړLb>W=P =R{ =GQDD?&W9v/o.hJ4*"-s,^F_(]R5ڮv|`Mx}H U3M2##N.xmڪݷcxGIL9J%qe蘛Ԅi>+3{rZ1bQ\6qnw NEhzD g\=CbSmHi!qPh,f,0&x/}|/f4mpJb0˪' 4Pޔۥ cN\'ςppy~jg( KUؼ1pG%$Ø<5AY~gk6ND1'\/;Ӂ."UhR\,w֫ bf}:n`..m@MkifCӳ|g>d1뵹&`K?qv!&kh3aZp+$?|RC݅! ׀!|-' ˠ%R~SޙXe4ք :>_<5׻SFu)]Cyk}%m9պ=B",2e >"GݾnGyB1}\7'>{>;)sJ#X@@Y:0s( q̢X@oP =pކH23vjuSXݸ؄'m̝aTYIr[:h! A6 =[X(.bD.=MVjiJps=S"5A5xO?xGkl|ʨ^)ڒ~i}$'H7#/fh6oLӅ˟XUN_ jn%AUqq7RbߴMn{VmrY .Ra;弿龛 oqž3 ř9G0ߊ߻Vv {PE]ҨgaO\L 3&6_G\_W?~{2if\}33(!bQxrX 4sQ"}h4J40!kH4L~D〶!DnH4L4!8p@3]M!DS!NwH&)hQ@f'LP'(3Mif&A^ &L&dO0euH5{= &R~ ïBC]ƈDtޞ`/#͇:$cxuXy5+=GW1;)elwD4=.4#qQ+qL?bh&HQ9$si L!"̣U"g4Y.* Ra*t"J0czھpz79yp&7 K=ԌJl7:H +HkE9uCsBS ̖Ռ +`yП]9e~FtP8 ]z;Ӻyefyʒ?蜅΃ɉo(7w: T,(,=gx > +endobj +430 0 obj +<< +/D [428 0 R /XYZ 140.732 808.885 null] +>> +endobj +61 0 obj +<< +/D [428 0 R /XYZ 141.732 679.895 null] +>> +endobj +65 0 obj +<< +/D [428 0 R /XYZ 141.732 598.437 null] +>> +endobj +69 0 obj +<< +/D [428 0 R /XYZ 141.732 504.374 null] +>> +endobj +73 0 obj +<< +/D [428 0 R /XYZ 141.732 224.224 null] +>> +endobj +77 0 obj +<< +/D [428 0 R /XYZ 141.732 157.474 null] +>> +endobj +427 0 obj +<< + /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R +/Font << /F62 276 0 R /F93 284 0 R /F37 238 0 R /F103 277 0 R /F63 241 0 R /F73 274 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +433 0 obj +<< +/Length 3572 +/Filter /FlateDecode +>> +stream +x]oF=/HE~R_\;ܵ~8 ) +ZZټJKvf?(2K%tރM(.$z"ytM1~|݋_~9pd"qt0H0\Dd2z?=oia$D#e)|c^Y]wEǔꦨFm$Ca"ű1 12_uYNUCo]!lg"zx6Ž{Qղί6_;K9¿7,휳@nNT-3D2ِF<nZzWY70>$<)>H9COL~ިxR{RMUUm;ݞUR5*.-yϻ0Ynx{";O5Ys@!aDxL1)0b".w~8 A` @bI~I0A;R0|LuˋKx݅.gJ@JQFRKͪ<^C|6^a2{#by^ Cq+qKYޘWʈ{u`Qϼ@ "VK4 h^J@Jג\1,%Pb TP ƣTr2?3=Frxcc<4n`pg\/QA1_1:QGXabitPFeHdQ8&Q8PcC>#41]Y B0GuszHc1F񂤑ac Ã?8"fĻ1sD#}ؤ`Do&9NW{~4פ!Pjj\5^G|Mb\9|}g/|rŐJ2_巎j[׭̞0pd|>$l̻UH{|CqQǃQH4dH$h +, K[+  +`tq&،<;ENfj{[TsgvA*.adi1Sl{WNuS`DRbۤ2.AsG"plȷV;cצj+|#.1 ]R}T}\i(!L4&*0zXjbx IJ`M]qB>9+La~S!}d2A+t"]Tr*2VEShK7ABLم,r4/GdKkQr,R{{3Tr [330kG%6*} q=#[JCu8 lf(ٙĞD+DX>)б8?/kS (%V]vmQ 'k/59C0pNF4o7XXeL_cLUjQOKwUo݇o^O, +X3̾(N#Qeݴ|Q i:_TaIA,s]İ=". K&MLnD2^ .oZ;s<ک;x巿ML$yxo! g\RKs.t<69NTOd7I;KkSU;sVn6vYOk礤"}Ҕ@ф#} $}v?V}LV"*iS;-\QI٢R+ʀ>B1\am(tBkok]dו-Wt*u1Ktt;CBV+Ouv]DzF.N]@ީIȡTpeAÃyƺrЇKNV ڏYcڮ)^kCP%chĪecEIeC?I,")FL'[;Q3YH Ƕ@F"bv-}P . 1|ʼn^ +0ɻXeMrf(EO:k!W?1lWTـ(0Bb`ۀ(G]*<{[lAቪ:ԧ1Į˃G̸ +0"[_j_pwu sjʁ A[j[&þ5!Nwڟ& +y OP&dYBaci'ǥ/ g&Ŵ/6("< ixaokC A -6Hcb) pقlC AH[CmFPldӶ ߱ۂm Psd5>w`DPs&x_:{A x[`NwM_K~Ӝ0M͉Ԭ20e}S?m"2yK:DRlkf5\{ۜHjDпy1XLL@k*_Kp'Xz*RȠgc-B~k<䋪}^P~X k{>ͳĞrWZ[wXJ3Ζ̮n @_.5Nr66#H1MV䨷 9C +endstream +endobj +432 0 obj +<< +/Type /Page +/Contents 433 0 R +/Resources 431 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 365 0 R +>> +endobj +434 0 obj +<< +/D [432 0 R /XYZ 140.732 808.885 null] +>> +endobj +81 0 obj +<< +/D [432 0 R /XYZ 141.732 658.347 null] +>> +endobj +85 0 obj +<< +/D [432 0 R /XYZ 141.732 577.641 null] +>> +endobj +436 0 obj +<< +/D [432 0 R /XYZ 141.732 505.642 null] +>> +endobj +437 0 obj +<< +/D [432 0 R /XYZ 141.732 505.642 null] +>> +endobj +438 0 obj +<< +/D [432 0 R /XYZ 141.732 493.687 null] +>> +endobj +439 0 obj +<< +/D [432 0 R /XYZ 141.732 481.732 null] +>> +endobj +440 0 obj +<< +/D [432 0 R /XYZ 141.732 469.777 null] +>> +endobj +441 0 obj +<< +/D [432 0 R /XYZ 141.732 457.821 null] +>> +endobj +442 0 obj +<< +/D [432 0 R /XYZ 141.732 445.866 null] +>> +endobj +443 0 obj +<< +/D [432 0 R /XYZ 141.732 433.911 null] +>> +endobj +444 0 obj +<< +/D [432 0 R /XYZ 141.732 421.956 null] +>> +endobj +445 0 obj +<< +/D [432 0 R /XYZ 141.732 410.001 null] +>> +endobj +446 0 obj +<< +/D [432 0 R /XYZ 141.732 398.046 null] +>> +endobj +447 0 obj +<< +/D [432 0 R /XYZ 141.732 386.09 null] +>> +endobj +448 0 obj +<< +/D [432 0 R /XYZ 141.732 374.135 null] +>> +endobj +89 0 obj +<< +/D [432 0 R /XYZ 141.732 346.771 null] +>> +endobj +449 0 obj +<< +/D [432 0 R /XYZ 141.732 210.675 null] +>> +endobj +450 0 obj +<< +/D [432 0 R /XYZ 141.732 210.675 null] +>> +endobj +451 0 obj +<< +/D [432 0 R /XYZ 141.732 198.72 null] +>> +endobj +452 0 obj +<< +/D [432 0 R /XYZ 141.732 186.765 null] +>> +endobj +453 0 obj +<< +/D [432 0 R /XYZ 141.732 174.809 null] +>> +endobj +454 0 obj +<< +/D [432 0 R /XYZ 141.732 162.854 null] +>> +endobj +455 0 obj +<< +/D [432 0 R /XYZ 141.732 150.899 null] +>> +endobj +456 0 obj +<< +/D [432 0 R /XYZ 141.732 138.944 null] +>> +endobj +93 0 obj +<< +/D [432 0 R /XYZ 141.732 111.579 null] +>> +endobj +431 0 obj +<< + /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R +/Font << /F151 435 0 R /F37 238 0 R /F106 278 0 R /F63 241 0 R /F73 274 0 R /F103 277 0 R /F62 276 0 R /F56 240 0 R /F96 275 0 R /F133 289 0 R /F93 284 0 R /F68 242 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +461 0 obj +<< +/Length 3704 +/Filter /FlateDecode +>> +stream +xێ_\s3EQ8I A>p@K\j]k̍" k}mΝ3̓E'?<{~i1Ҝ& #II"FP N1qn*dz\N@:"B )#$ްp&(a,#PzAW8v3O/2D'՝tp> tsȀM#\=ig<E"&'0'MIZ=\eP \f" pJ?ź,6WvP_[wWPQץ--\UgŃ<C5q$~OtXEe..)H }m2#3"eTLVgJcVAPJإyZAu:Ķ +no_֭Ag+)+y|R!5 ZCŸBC6"S] +@/ 9Zx_mڰ0]ZSV:rZs +5.Waܚ_ A* SMAaZj:o7#`TqeBsIL {^.2HW?$ɺ7B}B&D/1KmP DN7#,r4`Ounvؙn?_LNtCf <>=T\LGBC5W|>pL +$sW& 8b7΢Ǝ]ТfS,hO1xs9 Svˈ>t C$e8e<:cPgAU?$)@G˸A4|HEE) &P_P0*L33ív{SN@K]*~C*jV`?}sk +TftzWm*kb_,*%tT +eO%݉08깿&|f {9jvF;EC#Uo[SV- W[{#gF79N~7=ơ5w\b(c>Rpv !03d=ϝn\W x(#zFFN +èІ#&!AiFDGZ8'a>7Ltlq) +Q.hei|2;B16#aDu#5R\tpݿNf ]% (lek*f2rko^@H!0]$cƻvm sj>ak?~(`Up't. 7.!ªkM`Z IU&71#5 iJFo͢z9/`;/ ;Vd`* XR.Z# ?}t1`-4GxaI>?O]RWQ/ԑ~3R$ j9w<׿^>CC;p2}p +B#ʸ}cMq|͔|A0۩ s[}` 39ϧ5*L*kߦOq۩t!2P/>E 5s"dʀ)M$:vu44Km=T<+e:a&>RR5ZԳYg[]Cłvgh42|RXaH 0Ĺw8Kל9+9]arS'7WÐxW. $qZlǧV'>,vjj$YPg"k*4NSY$k^HwY/g!kqa{W}px,>1d&O`Y|VSwB$|L2UH"ϒI$u齏DM"2HWf2&'bVQ6"[TId'< Id<_B2MʎF2GCqNΣW106 '볱AVhLOג$"csHtVNt1{}>H/qxr3;tloQtW׋ͬv1+ns0Nﺴq~usmI=緤$;'٤_Ws'p1GͩߊtS{T.7E8`ՍDNNzV<]-%ᘎynA칔GwU?xJH;@wwXm7]n5y|5bZt4gF1EZ AJFɚ7 [9(ahWjn_تu"OқL_8N:607rSVUs`:VZG,*=gcŵ['cwSGg Q{ <_~^ |ѷ 8OKrqZ`bUoݑ}]Wdw}VNXMhDWҺ_ qxuHS}ˍC=m^'}Z҃ozuqvӼb f~]N8,u3KAs3ͫ +'.}rJGɄ \w|5['[T@JLI +jr^A 6VM)%|JTT~(ԓM,EOD!s^wZ3#Qҹ[wu vm@jO +!!X 8eʧ`*qrbW:ݬՑḾH;|xE60; ; \/ {䬧 @]Bg/ +endstream +endobj +460 0 obj +<< +/Type /Page +/Contents 461 0 R +/Resources 459 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 365 0 R +/Annots [ 457 0 R 458 0 R ] +>> +endobj +457 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [462.758 190.679 537.889 203.232] +/A << /S /GoTo /D (subsection.133) >> +>> +endobj +458 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [140.736 178.558 278.126 188.786] +/A << /S /GoTo /D (subsection.133) >> +>> +endobj +462 0 obj +<< +/D [460 0 R /XYZ 140.732 808.885 null] +>> +endobj +97 0 obj +<< +/D [460 0 R /XYZ 141.732 771.024 null] +>> +endobj +101 0 obj +<< +/D [460 0 R /XYZ 141.732 706.285 null] +>> +endobj +463 0 obj +<< +/D [460 0 R /XYZ 141.732 390.467 null] +>> +endobj +464 0 obj +<< +/D [460 0 R /XYZ 141.732 390.467 null] +>> +endobj +465 0 obj +<< +/D [460 0 R /XYZ 141.732 378.512 null] +>> +endobj +466 0 obj +<< +/D [460 0 R /XYZ 141.732 366.557 null] +>> +endobj +467 0 obj +<< +/D [460 0 R /XYZ 141.732 354.601 null] +>> +endobj +468 0 obj +<< +/D [460 0 R /XYZ 141.732 342.646 null] +>> +endobj +469 0 obj +<< +/D [460 0 R /XYZ 141.732 330.691 null] +>> +endobj +470 0 obj +<< +/D [460 0 R /XYZ 141.732 318.736 null] +>> +endobj +105 0 obj +<< +/D [460 0 R /XYZ 141.732 291.719 null] +>> +endobj +109 0 obj +<< +/D [460 0 R /XYZ 141.732 168.218 null] +>> +endobj +459 0 obj +<< + /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R +/Font << /F103 277 0 R /F37 238 0 R /F63 241 0 R /F62 276 0 R /F93 284 0 R /F73 274 0 R /F96 275 0 R /F133 289 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +475 0 obj +<< +/Length 3579 +/Filter /FlateDecode +>> +stream +x\[o8~ +M-ibg6]`:Bm++M}!)Rd[vK1Xh\s(]/pD)QRՈ +JBGTtws2a gWLWPo5Qb{JCks0eq+fr;/|D}|E$ h g5SW3PA,?间\De"Km,?G_e D7h*D啴 I2CUjh:a/Por +ǧh$Q\ anX|FF,ԮUXi]r3F1^δ6`4uzp"}O,G4ïjedQH̒ yNfIWptʊVve?"N&/ML'>JN"X}:)̎w=>Y*ާ>M3;?)tY4G)Q5k|w^ŽrV1`z=> ի734]ee ~~˄Li-> =!OūeBCÐ`ۼv*vFQ3_BoᏨr\M"eL6Ië?ZJC}Q1~:"9hG)ѭ0  >F A_M@X,!.Pau #!ID0zOYO2-8`4byw Xƍlz DzXA T}S#F𪷪jثlwhB$pvNP{Esف8³OEz8Z(.yv>̒+\5#[G TDa6tA_> > Vޫ1T/﵋@A UsT 2XOjlh0M3/_/.mXW_mH5F*&=䚥CմQ /Ez=sp[ț +; +Y%{c!Ddsׄ$<"/ܔ':3L)=,ܳŋ,CZ(pA^Er 4F +~곈o 5V젍ˀhm d2 `|A<DE;,*v(+/QUa*@WK@n6t9σy zL۫No!^ߔovj`s!@v|9(M&OJJ3?ϻS4=lA.%2ث;;B.!k ) C[!ץ6%] .fUKl?t Yl#.[e~E/+zf[a3 +jr/MVuu.HxWp,dJ-!#k +98Ѻ ʀ{RصX4*G |vfG\خNù*N` B &o Rp٤ +?rUZ͞()PeG_Vfw3{r$jY;r = @]{+>~4e~rdnk*.xhS6A~[z0 +!m>ZYVFK3z@$xh<^8jj'cՕ7 |qejfqo&tkztdJhdtsK0wwsqv{$$$D$?a9氹~o_bi:{ﻏT0s9K!dz;Ű$A{ '(ZC2.Ѻۡ!4#aWyKyp'XbIoG!ӾpEBAl3n!GɊԾs]AۯWi^`1DD=Omm|<RgT6gߵS{7۠P聂GJgkhPG#@}NÞGp86Z$? +~gAD;"=qo a]jFdoA?!+P?OLCz j6(͐X~`zLź,[2 _t=# >ҩCZ] K͓ۊE6f'Wa:<^&0@^ /) QGjkD!L1_ZE;(WD@] Qtz0y,ɗDy\OTJ:?y6J"{vF<|XA#i~/Uy9˖s=5?T@"I`ެz#^#7-:`C?6?rϬH^eym[ uG8&'E6䢔oF;P6Š~ + |8H`j a=@'ʉPԐ#]tA9st,#fa(OB)q3ۯӾSg$݀q!Smnt>焲 ;;wB +OHl—!O9YÐ995 ʳ'˅@}eEG=:S#w"=E1.9{|F7UͲj}B%ֈW ፫]se4mJ2 +}7q4:^^C0".[O4S|Psumj> +endobj +471 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [390.401 553.526 466.623 567.473] +/A << /S /GoTo /D (subsection.127) >> +>> +endobj +472 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [473.359 553.526 539.579 567.473] +/A << /S /GoTo /D (subsection.127) >> +>> +endobj +482 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [140.736 539.744 200.024 552.297] +/A << /S /GoTo /D (subsection.127) >> +>> +endobj +476 0 obj +<< +/D [474 0 R /XYZ 140.732 808.885 null] +>> +endobj +113 0 obj +<< +/D [474 0 R /XYZ 141.732 729.946 null] +>> +endobj +477 0 obj +<< +/D [474 0 R /XYZ 141.732 684.5 null] +>> +endobj +478 0 obj +<< +/D [474 0 R /XYZ 141.732 665.162 null] +>> +endobj +479 0 obj +<< +/D [474 0 R /XYZ 141.732 650.052 null] +>> +endobj +480 0 obj +<< +/D [474 0 R /XYZ 141.732 636.27 null] +>> +endobj +481 0 obj +<< +/D [474 0 R /XYZ 141.732 619.257 null] +>> +endobj +117 0 obj +<< +/D [474 0 R /XYZ 141.732 591.869 null] +>> +endobj +483 0 obj +<< +/D [474 0 R /XYZ 141.732 316.73 null] +>> +endobj +484 0 obj +<< +/D [474 0 R /XYZ 141.732 316.73 null] +>> +endobj +485 0 obj +<< +/D [474 0 R /XYZ 141.732 280.865 null] +>> +endobj +486 0 obj +<< +/D [474 0 R /XYZ 141.732 256.955 null] +>> +endobj +487 0 obj +<< +/D [474 0 R /XYZ 141.732 244.999 null] +>> +endobj +488 0 obj +<< +/D [474 0 R /XYZ 141.732 233.044 null] +>> +endobj +489 0 obj +<< +/D [474 0 R /XYZ 141.732 209.134 null] +>> +endobj +490 0 obj +<< +/D [474 0 R /XYZ 141.732 197.179 null] +>> +endobj +491 0 obj +<< +/D [474 0 R /XYZ 141.732 185.224 null] +>> +endobj +492 0 obj +<< +/D [474 0 R /XYZ 141.732 173.268 null] +>> +endobj +493 0 obj +<< +/D [474 0 R /XYZ 141.732 149.358 null] +>> +endobj +494 0 obj +<< +/D [474 0 R /XYZ 141.732 137.403 null] +>> +endobj +495 0 obj +<< +/D [474 0 R /XYZ 141.732 125.448 null] +>> +endobj +496 0 obj +<< +/D [474 0 R /XYZ 141.732 113.493 null] +>> +endobj +473 0 obj +<< + /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R +/Font << /F37 238 0 R /F63 241 0 R /F103 277 0 R /F73 274 0 R /F62 276 0 R /F93 284 0 R /F96 275 0 R /F139 297 0 R /F133 289 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +504 0 obj +<< +/Length 3281 +/Filter /FlateDecode +>> +stream +xio +@a +'sf$HSt +x+:7)RA)0`R̻yxp?w/ #\ 'H1:P ,z< oh^\qwS<^1*WlgR+߿ +}t@02FBHJ7H)yPIVu ;!JD ;᫷UI&O嬞Qx[NRd';{:h|'д1kp +sw( +^`q3z&*$`:- \'NI(FLla0Qw^OҠ jY<$Q#8~8)GE)$ 2xPHR Jo_'D#{.ۈ‰0]H̝iq=ż|/iaڢT!AꎌLEo 8>n2b`H}֛T[uwݤC7ұ'ށ!Ϭq|>u(h^A/ep3ZZdNA>bƳ$PI Oe2@gԖۧI`\- rLYDF3è1NWz7 &d4F囷vGl4qƺ0Y)O8g`E6 +ɬpb{WYC;.@ޔ_jfWYk #чҏ߁~++8%_;`HmR+vHR+6H-_/Zn5,e~,w[tj\m`0#A l`ov"e8[f]d⸸ 0'MPDjH벘X"4.]Zfv{d rA0<5p)0gPIiv. XQD>-YNQqӑ!9šaP;A~Jix6TDQ3T-'-0y&!,/i]RqˏL.,shYQ^#*}@'4}Z H*/N7ՐLj̗x۴&͒⾈!$X@lH<#  ΂'1H`G&eq1J !w&P I%BkW9 ETg۸Jn^,- h^,Ra|3cw%4*oeLr1F-mU,C'ҞQnY<>,<R&[j[ƖP: cXQSKs[d? +> l+G&}NY=|u ʿ:UuC-M/MYw_0T +A$[n>2TnK!`)q^K20>"wI3w |PC! ++WDAIPn?`jYuۮ)7\^{*MvdVViݧP($B4muP z,;^m_u׃*ce}~X][uwwz!̷T +N1&bU׍@Dio0kIC+{e΄`L1#uMua2ظ`k/Ft4. r01YrXvWHЊfK:F5T79 +ņ: $Wk@lY7tޫ@bXtTPKđ50RZ[ۥGwo7cO(|ڟǾH#i6/Ob+_$!-'ѡnǥSbЋ^TIkШ"#%_\ **,4xJXWO\ +`c%.OVEvdy]gv%дI_7,|DkpF1maoܼ%M.RUHs +'3cT40݈,#'slhbyy +hԞQzhz7a +pdx]kbvR̭%r@ o_Mڞ=O&h?41]Q*Iw54tAHC!e^K6@/v8\ nl)YSi#4De*U!pE O|妨QSDCCԸOD$9Jt8.o%dHApԁ})ի0Y\o< gW=8exaL +D`-Ap; |(5 O`$0)_ER;2{^@$d!ElX-.,ۭU?&0g^&O"t?P6}H1,hHAn@7EuA>i8:bIyM% '%Y1Ϡ)Y\|ދ3&#v!SB IO%d$b;M?FC\+tė[h{yF]AY>01 +q W,Q;(62w>rdJȑVGaY1N%m_%?tg9Zsy." }C!+Ѽ(Z%XS Xڣ8RgdFap1 X;)yYh׆^7 /2 E2f⇇@|z4RPHT!1eբZh>u-ӞBD$g3ZXR dZuZVi6\;`\i?7;B^ 7[gk79+u8(/T- +endstream +endobj +503 0 obj +<< +/Type /Page +/Contents 504 0 R +/Resources 502 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 497 0 R +/Annots [ 498 0 R 506 0 R 499 0 R 500 0 R 501 0 R 507 0 R ] +>> +endobj +498 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [502.261 699.787 539.579 712.742] +/A << /S /GoTo /D (subsection.128) >> +>> +endobj +506 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [140.736 685.743 181.833 698.296] +/A << /S /GoTo /D (subsection.128) >> +>> +endobj +499 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [187.019 685.743 317.134 698.296] +/A << /S /GoTo /D (subsection.128) >> +>> +endobj +500 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [349.047 685.743 449.639 698.296] +/A << /S /GoTo /D (subsubsection.213) >> +>> +endobj +501 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [454.824 685.743 539.579 698.296] +/A << /S /GoTo /D (subsubsection.213) >> +>> +endobj +507 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [140.736 670.633 201.17 684.581] +/A << /S /GoTo /D (subsubsection.213) >> +>> +endobj +505 0 obj +<< +/D [503 0 R /XYZ 140.732 808.885 null] +>> +endobj +121 0 obj +<< +/D [503 0 R /XYZ 141.732 771.024 null] +>> +endobj +509 0 obj +<< +/D [503 0 R /XYZ 141.732 627.446 null] +>> +endobj +510 0 obj +<< +/D [503 0 R /XYZ 141.732 627.446 null] +>> +endobj +511 0 obj +<< +/D [503 0 R /XYZ 141.732 615.49 null] +>> +endobj +512 0 obj +<< +/D [503 0 R /XYZ 141.732 603.535 null] +>> +endobj +513 0 obj +<< +/D [503 0 R /XYZ 141.732 591.58 null] +>> +endobj +514 0 obj +<< +/D [503 0 R /XYZ 141.732 579.625 null] +>> +endobj +515 0 obj +<< +/D [503 0 R /XYZ 141.732 567.67 null] +>> +endobj +516 0 obj +<< +/D [503 0 R /XYZ 141.732 555.715 null] +>> +endobj +517 0 obj +<< +/D [503 0 R /XYZ 141.732 543.759 null] +>> +endobj +518 0 obj +<< +/D [503 0 R /XYZ 141.732 531.804 null] +>> +endobj +519 0 obj +<< +/D [503 0 R /XYZ 141.732 519.849 null] +>> +endobj +520 0 obj +<< +/D [503 0 R /XYZ 141.732 507.894 null] +>> +endobj +521 0 obj +<< +/D [503 0 R /XYZ 141.732 495.939 null] +>> +endobj +522 0 obj +<< +/D [503 0 R /XYZ 141.732 483.984 null] +>> +endobj +523 0 obj +<< +/D [503 0 R /XYZ 141.732 472.028 null] +>> +endobj +524 0 obj +<< +/D [503 0 R /XYZ 141.732 460.073 null] +>> +endobj +525 0 obj +<< +/D [503 0 R /XYZ 141.732 448.118 null] +>> +endobj +526 0 obj +<< +/D [503 0 R /XYZ 141.732 436.163 null] +>> +endobj +527 0 obj +<< +/D [503 0 R /XYZ 141.732 424.208 null] +>> +endobj +528 0 obj +<< +/D [503 0 R /XYZ 141.732 412.253 null] +>> +endobj +125 0 obj +<< +/D [503 0 R /XYZ 141.732 352.737 null] +>> +endobj +502 0 obj +<< + /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R +/Font << /F103 277 0 R /F62 276 0 R /F93 284 0 R /F37 238 0 R /F96 275 0 R /F90 508 0 R /F73 274 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +537 0 obj +<< +/Length 3965 +/Filter /FlateDecode +>> +stream +x\_s6ϧM!}6msrm깹$DۼHKRqr@%V%_g2! - It%g~w\GTJ_F$ ~K"QA,2%2"z-E6=3Il%nge7hخ⬮W|$@5]~,_1}.겂?oiuq6zqvMMD1TY3f,'/xmV8ㅃKpwN2fl"@ KϫQ.ڱ-"떲gS^>o\u9ջԏ'jkUc +7<|WunPN y%DDU޾{ XD$C|L)"-}~\|_M6ߡ]\WAaxlSB1PY bd0 nl9Ϳtө{=m +'D πmLD9E vkkG]Qr*`pq!L~20!!O1UytÞT1em+)1i69ݷUJ 3iuTRDJ3b\+neQ5QCD"=允G0{ Y1k].<(5A j=)y~w[V&}l%BKpzLDziQ. +! ߨ6oNY娬Id]ە®kwDgFjL]2 +e O>GT/!Fc^)%^B[tU֔,EN|k10H|i^lҁކ̴<=,mMy,;sFHaq0 +.Obvz& +Z17һPॸqHSvs|:0,j0iRݍA3 0/fVfL\lGv' 'ݐ`H.\8䄛1ӟKz쮔۷QqaO"-sw )^>;?=OK@P.g~KmPp "Ct5km;]љpJ$}V,iZm| 3!U+`P 0% [(acM5v2 2@-]g{;_ B'[,<,TyִEs}о.57;} +Cp@c>B 'C;MH`e/{Qse;ezgJLa`ރa`ZSE*<ǼM?qql{&PS[k5pOIoeRMY #H{-) x=H%ba [Ye5&oUC}E;0%zuiSKGF 1=ʅ~pI*|"OK7U~SVaU xU< +}MڬAKf.%i*Ѓ//R3)œhB%[pŭOl'x]?lkK﯃ +_CDp/&b%Svuw¯j2.=;)1s?-\SH9BG(vmpEֺ+OsoN]4(Rä/S} +&X#?U"H]w{FK: /GţMAfr<Թ7^3o(PM[bJ݊j_t+ jGv +F2::NQ뚦OB_R"n'w"Q5ܽ?F TgOuC1Y*Ujq5I5ĦY$.v$is(jUP;>Л_5UUSAɌOHX`sUS0 _d@=Fz(]NM^t1 pck[e|q"$p8)l:'NB'YOFgML# S(lX 4 +r.i oD*y4:5Ŧx +w0 ?  7:g:r($0 @4 @Cy$pZ +uu`*r;鋆M֞t{;!LW aa`͇%N*aoO\hwKߒO *͙՗b^d4hY[+`1iʫ=h/2HrVLDgMYL*7mS"/3J!Utɶ gǘ$2eCv +?qd wmͤ }GNjw*;)ݑWr?r6y9no6?\묘Rs]7҈i2oCr8h?SJ Ǥ¨? -78mQX7vY6NLcVu_6 +;EiB7@\L;;^4e IE6(= _$} u9Y;/,qE|{f듟s@Tb4w ,U??ZT߶얊3X]]学 +gWVr~]lGC);`V-}6`Fiݢ2P~ {̗?5yL\^5<?->Ȣ)1 .qxĹC,sM(0Y.9Y ju/C?F{jϩK +?,PC>(6f3ctR2{ju'0 l}{g9 +endstream +endobj +536 0 obj +<< +/Type /Page +/Contents 537 0 R +/Resources 535 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 497 0 R +/Annots [ 529 0 R 530 0 R 551 0 R 531 0 R 532 0 R 552 0 R 533 0 R 534 0 R ] +>> +endobj +529 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [343.281 389.067 440.927 401.62] +/A << /S /GoTo /D (subsubsection.192) >> +>> +endobj +530 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [445.338 389.067 539.579 401.62] +/A << /S /GoTo /D (subsubsection.192) >> +>> +endobj +551 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [140.736 376.946 151.5 387.174] +/A << /S /GoTo /D (subsubsection.192) >> +>> +endobj +531 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [372.613 340.815 447.837 354.762] +/A << /S /GoTo /D (subsection.170) >> +>> +endobj +532 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [453.325 340.815 539.579 354.762] +/A << /S /GoTo /D (subsection.170) >> +>> +endobj +552 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [140.736 327.033 183.115 339.586] +/A << /S /GoTo /D (subsection.170) >> +>> +endobj +533 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [461.14 217.008 537.889 229.964] +/A << /S /GoTo /D (subsection.170) >> +>> +endobj +534 0 obj +<< +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [140.736 202.301 269.93 216.248] +/A << /S /GoTo /D (subsection.170) >> +>> +endobj +538 0 obj +<< +/D [536 0 R /XYZ 140.732 808.885 null] +>> +endobj +539 0 obj +<< +/D [536 0 R /XYZ 141.732 696.786 null] +>> +endobj +540 0 obj +<< +/D [536 0 R /XYZ 141.732 696.786 null] +>> +endobj +541 0 obj +<< +/D [536 0 R /XYZ 141.732 684.83 null] +>> +endobj +542 0 obj +<< +/D [536 0 R /XYZ 141.732 672.875 null] +>> +endobj +543 0 obj +<< +/D [536 0 R /XYZ 141.732 660.92 null] +>> +endobj +544 0 obj +<< +/D [536 0 R /XYZ 141.732 648.965 null] +>> +endobj +545 0 obj +<< +/D [536 0 R /XYZ 141.732 637.01 null] +>> +endobj +546 0 obj +<< +/D [536 0 R /XYZ 141.732 625.055 null] +>> +endobj +547 0 obj +<< +/D [536 0 R /XYZ 141.732 613.099 null] +>> +endobj +548 0 obj +<< +/D [536 0 R /XYZ 141.732 589.189 null] +>> +endobj +549 0 obj +<< +/D [536 0 R /XYZ 141.732 577.234 null] +>> +endobj +550 0 obj +<< +/D [536 0 R /XYZ 141.732 565.279 null] +>> +endobj +129 0 obj +<< +/D [536 0 R /XYZ 141.732 191.342 null] +>> +endobj +535 0 obj +<< + /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R +/Font << /F37 238 0 R /F62 276 0 R /F96 275 0 R /F133 289 0 R /F93 284 0 R /F73 274 0 R /F63 241 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +555 0 obj +<< +/Length 3465 +/Filter /FlateDecode +>> +stream +xr6>_[Ă$ΤMf7Mr%f$zEjS[@P]=I`/ Cg3: ]ysQ1cXn$#FQPn ]qs\Zi->d\pX妊6׫tgĦLJII5L;U^y*6+x෕IQs<ޙdYT ChR?~6!Ib,Y YR]'W?UVOWwٺX} +ˤ[\g?ysVс2G@ˈ!H*O|LN5LdinΙ$ 7.SYFM]z.>˜L!#Ҫx(8x(83hygO?6~TdW8`U6C?ss99%N]/ɋJbe8DZ" +jKGwmDwiL(k<Ьv<%c~F]/M7q\>;Y])@qƌQ%ϗ}ܩ:UC6_~ #:wM6*Y[2~Smo/^Pwӗ)y˷fWω^OG ?@b !*Iwdg z? 0ヮn8w#8+Hd뼜v CX ٖ$?]ˢӄU['<s=ۣ1D/kXd07uodC>,ٰ" [ yrMX"4%T,%Dq )!)K)a>,*f8;u@r<'_/ê2),> ^"E:( + Yb 'ڬZKՂ_5}l\蒵4!S + +mgseZ0*%PB24P"4sJ(8yѧrx9\C8M#ND3+YD(n&y̶@_X1 CrEc(!18WM%Gd 9snS_׃`:WÀb%Jxg4cRca@SaTX u#nL0#}3ow +.2Xs8)8ؾIAN/ q.(<~v\bM &TWV%.􉠔30jj0<C\&"D -[1JЄryvfԊ)@#06Y +";@kL{r: b1)}X y]Q_!ûh }D"ުI֌igTa +<sODniuG4x;~v2^0rݜ2"XTm*mOR pbHc}۩q2ZnnoJ2<`D/Ǔt3lsyplﰒm[xs_bj ms%U>bɀ%*> +endobj +556 0 obj +<< +/D [554 0 R /XYZ 140.732 808.885 null] +>> +endobj +133 0 obj +<< +/D [554 0 R /XYZ 141.732 771.024 null] +>> +endobj +137 0 obj +<< +/D [554 0 R /XYZ 141.732 662.016 null] +>> +endobj +553 0 obj +<< + /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R +/Font << /F103 277 0 R /F37 238 0 R /F63 241 0 R /F62 276 0 R /F93 284 0 R /F73 274 0 R /F151 435 0 R /F68 242 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +559 0 obj +<< +/Length 4050 +/Filter /FlateDecode +>> +stream +x\KPrYNj&^]q\JC*k5bVeI=h9gNʇ]Q hјxv7g߼Wo43ΙZn3xg\q&9Xf>_몾BE*|i]o+jx[gb=mxH*f v׫o}#LʻYoDx\2pb͔q2s <4cUV2hzM ~&ʺyGzfX"$y|{4@mx"bPEN[83](qR]`G 7:zOqO9&y+2d@1dcnqےɟ"~.q~}73)3lyx7Bg̸0Lko>^F tfl%L[\eF̀t*;412=u!veey~?(9 V,s^l@>*g#6eh@ߗEUQ2[feFs1HvjRq+0G!C@-L@g.*4 F8zWӍeQ+ԚW>Zh ߿^`iau<"2k>+8=Rbt[kLޑ56K?.^{dev `/Nma#H 6yR"gC ani: _Rڥy l#^*eͺ&"mVEYWB(×SD%yc]@z@68eCAvC}Mۢn%zcADcF雈,8X˛߲sܿ}Vz_Vꗅ? %%pkab$Y${Bż+44w_lbМD9٩F|%I.{Ia¶ӉY .`p޲5,z+|K *%94 SM"w`Rm,wDU@?k ȋ9{ \3*Η*fvvf^C6ڿnŬWH V1BߞXwX=\"묬 VC3aK0#ls5& +OFA솆 ({F<k:u7 +uVi5/Oe@ja;!g W^gDT&42z4xX tYX,2Jˌg)-}5״>rhmw!JŸNd-Wi}I0pDhLGn/Ùʹ!+JyV2[LT*4};2=W(ִ\f>& -xY:wO/7 taV؟ >'v ʜ ٺyuF0vRBss}n2wtj `dU|[ee/m i3M3InvБBGS +}.8a@8>)yu)8K~+juVw1D SZ@1ĀXB܅bž@α~+n*gNvI ߢ_NjU1):By)l|2^@9WcU{sN3w0"`Rb~x}?}_1Oh@qM09X ZT T>sA!\G-<lDv8m񟓋f҈![ύUbŲʑLP't`ո܈!F )i Z|HJ N'YŇNO +t!ZrSy= lTTԇp.IJ!x!\$DeXmGەG}YbQJO\(i'bT9y r!aq}tu~-;~U#UkS 2Bq,3) T:+(E!,jx *S8\׹gDk`Y KKP9D@ɉtQTXȻ L:,-r %^XyЃvYpW$;|Em|,#,k@!ÔijwCF$ hܨP +A"5"TM`)D +gKCLӜ&w5G2Z)}GKt\}0LTK$(G`.9x/Aׂ7&ؤ=ϧ ]T`y4Eu$,þbָYx=`$r&dsOfp#jsn;>̵z8%ո~Bymm6JUAO]}elFS>mH;7uTyn&ЈSC'{AJMT* +\U9ഴĕ5Q?>2>:)!퐩gn'#yXpR@EBYNnbJIA`KM8kʛѦ(eh]$ъM^gP; (~iJP.p T*Yu +(,Y*"?I xNY>`0vDt F> +endobj +560 0 obj +<< +/D [558 0 R /XYZ 140.732 808.885 null] +>> +endobj +557 0 obj +<< + /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R +/Font << /F37 238 0 R /F62 276 0 R /F93 284 0 R /F96 275 0 R /F90 508 0 R /F63 241 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +563 0 obj +<< +/Length 3994 +/Filter /FlateDecode +>> +stream +x]~hѦA<$yڵzHm9,y|p'Y"3!ɒdwo>{uB))dɻ +J4gVR"LEUf,U]VvI2#HQe50GjeXbS+).@}km%Y]&uɠ'XiH/(r +Bʹ&9-≯걿(=`/.„7u9x˽=Wl +2aU%ҧz?kd&\/ťJE]Lմb_7aP L |F W  +Y W "Y&rH9dm2ߤQ=!eݴꍴə% +S3@T,f׎oCwS J.$pb2KHDwH]*rA_!# + Ԑw()lDŸ<6ok鮝7@s0NۏC^\}KCcrZ(;"Bc8)BcZJ"wxcӹK؈ct`@\J'CDqdCcp)rbB0GpHe()]!UHt<>ϲg5TH%W|\*fcW qҒĮb$AM\MT:TaTl El΄9^MyВW (N-ɓdk,/E6JE.J,O%?Y a$F'dp,Y*'dt&&dєS, ĸwsZ;%(nG,AViA:#d|YS4'ɜCs,Faz Yb҂9(҉sRLi:}2Wlao(fP󸺡駡o|iځs4-;R gO3HgXea=uEu]!v޻mK~QۉUNT /ys ϗak$7+yǶmnF9Mc }{4,-7Y Kpqsk]0&MsNjGpU.]{[7DB|?간[{teL*|SzE鮏fۣ;m=pens%\ E UȲ;w&k{{@;{lx,##RX;즸RVG?1Fxpv $LfZX~*[dLk,s;Í; 4cQM: pgXNcע#:S  +vnBb]e6٦Ҷ +8pӶn;Zr?1ZΫFeeGhfK9nj>|j9}T`xS؀=ݯ+|Е-@2#&}ci63fR$s:ecnb7n#3uww0H\u:mG-n򹚩4;dc +Iuw|xiLn( QEzHr_[+8z0f +XJ56j۹PU幯$m]/:n72)QZ?T8N9}bW?mFzkW;P6 +I$s0)`gaA,a*G5ߑh~ ʭlby(Ltuݔ}_OL#"8~:9v1 ~αgl}093q4'^3|-M+ r]WӚϥc, Dds/9BL3qtGeDz EWۋq+fncC5aޝYyҙua4Cdߞ\šs!xy0J炝t@AMS!/TŤ?zcF^MEZ?o˝he"<Ş;wC T)P!ΐ +H&& U~|vFX{Np- &{s߭p㦽EB-y= -`/ +sFo*S#2ʨk-K +g +B 8Rʤpi +f a"dE<Ʀ?%Ss~(G]IWY>@y?~ +endstream +endobj +562 0 obj +<< +/Type /Page +/Contents 563 0 R +/Resources 561 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 497 0 R +>> +endobj +564 0 obj +<< +/D [562 0 R /XYZ 140.732 808.885 null] +>> +endobj +565 0 obj +<< +/D [562 0 R /XYZ 141.732 758.637 null] +>> +endobj +566 0 obj +<< +/D [562 0 R /XYZ 141.732 758.637 null] +>> +endobj +141 0 obj +<< +/D [562 0 R /XYZ 141.732 520.552 null] +>> +endobj +145 0 obj +<< +/D [562 0 R /XYZ 141.732 438.592 null] +>> +endobj +149 0 obj +<< +/D [562 0 R /XYZ 141.732 253.852 null] +>> +endobj +561 0 obj +<< + /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R +/Font << /F37 238 0 R /F133 289 0 R /F62 276 0 R /F93 284 0 R /F56 240 0 R /F63 241 0 R /F103 277 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +569 0 obj +<< +/Length 3613 +/Filter /FlateDecode +>> +stream +x]}~oT-7T!wWwuev6L#u7lljIԒp(.GDPpbH%4xx +*hH*DXi]?!/?C#>^@Gc N-DSߍ;O|B27#r•$Eib;4Lϯ Y̯nGnCp0v2iuވݥw/nUV/ڋjkZ~G8@+ Xx}+x (DJ$z7c&1Svw+܅Q:k !U$N9ʶi,qXETl_ZH"i2ŷRuV_oN/K i7HZv8)&.foKT Bm$0u4&}5S.C" 2O|_fwQC=iDtY!˅ +-葪$šVhExe/q Rb֙eN0N6!x"#=8T@赻`} Fkl?*LDҋHW2=32a2Ȑ|s ﮟDM;@`t(&Lj#@/_͹_g5 +,?3Q{Փs爜ƂKX ; +:=tic!KlYchy +yvggEDC!-FMM7%eY xDʟ,0Zj^"/ѓ3NԢDӀC\DP!8C;;c\&. P4"q|{b' Đ#tpf;n/q>lak=ffDǽڵ(͑*CaFt2J['6.,Jc6W ^ ^>z ]D!qhpniMB 9wch |"2Ku!6PQVDWn=MrmH%! 0 6NA$vϕՍeeϷmk*pQnjT“mS{ ˣan:e*M:;6r" - +%Dqz?ͷq-n8.{V.2x0'n TxLNެl]FMEu?82,W9]VvJ tcjiKgCw\QaD}hܪrzR{%4;-[]Mb<`Cٲ\8Z5%ffؠ 5%ejWCMiO8G_r .3sJ+(k9 '|}!ծW]CO}S۟Sp^=1 ʴsbn-pkCOׇN1.&?Nt'xZ~K?]r8VP/n +v0B07N[7n6x2CA*r8^,Ҟp,3mp<͗54{O厍REmr_ӵJNbIM?H(G0 rɋ.SRcol~{P_klYVCAz <Ĩc|ZAO,/gѕ.bVtf7r_WX]||v$ 9{AiPyZe_^ؐr]Aړ +endstream +endobj +568 0 obj +<< +/Type /Page +/Contents 569 0 R +/Resources 567 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 571 0 R +>> +endobj +570 0 obj +<< +/D [568 0 R /XYZ 140.732 808.885 null] +>> +endobj +153 0 obj +<< +/D [568 0 R /XYZ 141.732 464.506 null] +>> +endobj +157 0 obj +<< +/D [568 0 R /XYZ 141.732 303.307 null] +>> +endobj +161 0 obj +<< +/D [568 0 R /XYZ 141.732 221.85 null] +>> +endobj +567 0 obj +<< + /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R +/Font << /F62 276 0 R /F93 284 0 R /F37 238 0 R /F63 241 0 R /F73 274 0 R /F103 277 0 R /F56 240 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +574 0 obj +<< +/Length 1520 +/Filter /FlateDecode +>> +stream +xڝYKs6WḦ́${LdC'm|}`DXv߻xPdbBoaFVw7[TFGrIA2Sqr[k|0dnZ 2erssHHyAuø!n+pH͙4ݪ_.ttՕZ)H +&y@fX$Gh#G"hTH<M9o9R +9A*]r=oy7\gyˠ̇gCftqF 2󦳰AHN"J'8陸Uh 9cj@ƼC_IAxJL!)oU)P5 |k7餅abo)G(`mQAa 2А%$xSu,ddq + E 78'ؾ|G + D9h}1G6$0,q9; :ꀎ*SC|qvSWX +uy98e}4 "/@c~؀ %r!L\Er3f.aOS``Fˤj)o *evPjCnrqN T@81׸篑T,y=J0cg{JdɯfSnϓFƛSHj\wp\w^MsX"yɰ z|k`mS~ 3 +yG:gB!V ?0~N+l4:s_CkڗeIcd^u$>̀n-S$nWR(0n iqnb?='xn.bw]|$C<)II K[}Lb_|Hg0mF,V)Źoя!I zPErXJ?l[lW +gimلmPK&__Kc501:6mYDT* J9{1J׃{.A8k +m۪kP ~" + _$'{uBQ0hSm9вSSSvsϥUݜ)) ?.]qf.(H+6s݊ +uD &ܼzV_i.e+GDo7J(,ݣ/{yx:Q +^]K +[yQע՟p1ճ2_i==<(M4al9"$?5IN]jlEvaÃݓpzBc$չ<6.*dDv>R #C_Y2"pA?::N/rGgznWFtG_Q6~Bu벉xQH1:ϩ(ƆPW?v&l8G?/td +endstream +endobj +573 0 obj +<< +/Type /Page +/Contents 574 0 R +/Resources 572 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 571 0 R +>> +endobj +575 0 obj +<< +/D [573 0 R /XYZ 140.732 808.885 null] +>> +endobj +165 0 obj +<< +/D [573 0 R /XYZ 141.732 771.024 null] +>> +endobj +169 0 obj +<< +/D [573 0 R /XYZ 141.732 727.188 null] +>> +endobj +572 0 obj +<< + /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R +/Font << /F37 238 0 R /F103 277 0 R /F63 241 0 R /F62 276 0 R /F93 284 0 R >> +/ProcSet [ /PDF /Text ] +>> +endobj +1 0 obj +<<>> +endobj +2 0 obj +<<>> +endobj +3 0 obj +<< /pgfprgb [/Pattern /DeviceRGB] >> +endobj +577 0 obj +[458.2] +endobj +579 0 obj +[525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] +endobj +581 0 obj +[761.6 924.6 598 435.2 299.2 707.2 1006 734 768.2 666.2 734 720.6 462.4 462.4 544 962.7 1430 462.2 693.4 892 489.5 658.1 761.6] +endobj +582 0 obj +[525] +endobj +583 0 obj +[525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] +endobj +585 0 obj +[388.9 388.9] +endobj +587 0 obj +[761.6] +endobj +588 0 obj +[536.1 536.1 813.9 813.9 500 319.4 433.8 833.3 500 833.3 758.3 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 777.8 777.8 777.8 472.2 666.7 666.7 666.7 638.9 722.2 597.2 569.4 666.7 708.3 277.8 472.2 694.4 541.7 875 708.3 736.1 638.9 736.1 645.8 555.5 680.5 687.5 666.7 944.4 666.7 666.7 611.1 288.9 500 288.9 555.5 666.7 277.8 480.5 516.7 444.5 516.7 444.5 305.5 500 516.7 238.9 266.7 488.9 238.9 794.4 516.7 500 516.7 516.7 341.7 383.3 361.1 516.7 461.1 683.3 461.1 461.1 434.7] +endobj +589 0 obj +[523.2 523.2 795.2 795.2 489.6 311.3 424 816 489.6 816 740.7 272 380.8 380.8 489.6 761.6 272 326.4 272 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 272 272 761.6 761.6 761.6 462.4 652.7 647 649.9 625.6 704.2 583.3 556.1 652.7 686.3 266.2 459.5 674.2 528.9 849.5 686.3 722.2 622.7 722.2 630.2 544 667.8 666.7 647 919 647 647 598.4 283 500 283 555.6 647 272 468.7 502.3 435.2 502.3 435.2 299.2 489.6 502.3 230.3 257.5 475.1 230.3 774.3 502.3 489.6 502.3 502.3 332.7 375.3 353.6 502.3 447.9 665.5 447.9 447.9] +endobj +590 0 obj +[525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] +endobj +591 0 obj +[795.9] +endobj +592 0 obj +[550 575 862.5 875 500 300 388 800 489.6 800 750 300 400 400 500 750 300 350 300 500 500 500 500 500 500 500 500 500 500 500 300 300 761.6 750 761.6 500 750 726.8 688.4 700 738.4 663.4 638.4 756.7 726.8 376.9 513.4 751.8 613.4 876.8 726.8 750 663.4 750 713.4 550 700 726.8 726.8 976.8 726.8 726.8 600 300 500 300 555.6 726.8 300 500 450 450 500 450 300 450 500 300 300 450 250 800 550 500 500 450 412.5 400 325 525 450 650 450 475 400] +endobj +593 0 obj +[562.5 875 312.5 375 312.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 312.5 312.5 894.4 875 894.4 531.2 875 849.5 799.7 812.5 862.3 738.4 707.2 884.2 879.6 419 581 880.7 675.9 1067.2 879.6 844.9 768.5 844.9 839.2 625 782.4 864.6 849.5 1162 849.5 849.5 687.5 312.5 575 312.5 555.6 849.5 312.5 546.9 625 500 625 513.3 343.7 562.5 625 312.5 343.7 593.7 312.5 937.5 625 562.5 625 593.7 459.5 443.7 437.5 625] +endobj +594 0 obj +[525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] +endobj +595 0 obj +[555.5 555.5 833.3 833.3 500 277.8 373.8 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 777.8 777.8 777.8 472.2 777.8 750 708.3 722.2 763.9 680.5 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.5 777.8 736.1 555.5 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 555.5 750 277.8 500 555.5 444.5 555.5 444.5 305.5 500 555.5 277.8 305.5 527.8 277.8 833.3 555.5 500 555.5 527.8 391.7 394.4 388.9 555.5 527.8 722.2 527.8 527.8 444.5] +endobj +596 0 obj +[869.4 818 830.6 881.9 755.5 723.6 904.2 900 436.1 594.4 901.4 691.7 1091.7 900 863.9 786.1 863.9 862.5 638.9 800 884.7 869.4 1188.9 869.4 869.4 702.8 319.4 575 319.4 555.5 869.4 319.4 559 638.9 511.1 638.9 527.1 351.4 575 638.9 319.4 351.4 607 319.4 958.3 638.9 575 638.9 607 473.6 453.6 447.2] +endobj +597 0 obj +[461.6 461.6 461.6 544 544 489.6 979.2 0 382 272 299.2 571.2 544 544 816 816 489.6 272 358 816 489.6 816 761.6 272 380.8 380.8 489.6 761.6 272 326.4 272 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 272 272 761.6 761.6 761.6 462.4 761.6 734 693.4 707.2 747.8 666.2 639 768.2 734 353.2 503 761.2 611.8 897.3 734 761.6 666.2 761.6 720.6 544 707.2 734 734 1006 734 734 598.4 272 500 272 555.6 734 272 489.6 544 435.2 544 435.2 299.2 489.6 544 272 299.2 516.8 272 816 544 489.6 544 516.8 380.8 386.2 380.8 544 516.8 707.2 516.8 516.8 435.2] +endobj +598 0 obj +[354.1 354.1 458.6 719.8 249.7 301.9 249.7 458.6 458.6 458.6 458.6 458.6 458.6 458.6 458.6 458.6 458.6 458.6 249.7 249.7 761.6 719.8 761.6 432.5 719.8 693.3 654.3 667.6 706.6 628.2 602.1 726.3 693.3 327.6 471.5 719.4 576 850 693.3 719.8 628.2 719.8 680.4 510.9 667.6 693.3 693.3 954.5 693.3 693.3 563.1 249.7 500 249.7 555.6 693.3 249.7 458.6 510.9 406.4 510.9 406.4 275.8 458.6 510.9 249.7 275.8 484.7 249.7 772.1 510.9 458.6 510.9 484.7 354.1 359.4 354.1 510.9 484.7 667.6 484.7] +endobj +599 0 obj +<< +/Length1 1711 +/Length2 20278 +/Length3 0 +/Length 21385 +/Filter /FlateDecode +>> +stream +xڴePݖ6;8ww %;Ip>w朚_Q˯ֵv7UP(1%@ ,̼yU;[# 3)Bhli7r-J&Vff +t0= +@g#u{ Aə [4!bvs107Z kdbmdm 0dvnJK` 01ؙԁ_jj)U% e5Əj.vELM]C ..j4V>?|8 WPQV`a{ d`@hfvP[8;21189393O fh x:m4dNg  @r Azs[ #b啕F g dl4@ @o 692 ]dz6^>Fn91#Ϳd@ /z3SQPSg A; Fgwp3sXx$~vB>qˏ>99z0Avn ԚYLvŞId/́ft7`[UU`fd4~<\gG604q Ǣ ]dfk,)džځl<@3&E;2PcQKFH O/#[K-_G;T_]^" sDQi#~\:, ;>hb :98h_&yUQiU?N ;SK9`hVMsػ8$W`2d?I,,&%~q_"'ߏw*.d5gG;k\-u?xwVVEڹ{1ssXy8,\|-_?MVLRC}% +g*)xϿc ~Z͘% +gRK&JPcټm%UMߙ*Hj2jf*WtҜheǷ4Ox:{NݤUC/`:ڠut;?bF-AաK-P7l^:6#U!i\!bOpEf$ud )˔շPh #6W]d~@4eEMmLs4a}kncml*|)XV.ʑ}Q >@ BdJ[ 41}kkiU,6d&*S/.@z]r>9&jmH(!Z ^âJ<2e= %#7 f(2* W!'>cI߼c5Vǖ:< z_ +#82Vϭ<D:$ \Y 6~]G#r~; 8NSHtP6.ex̄,44 H_VwZ1=\E0\ =c`ؒ>(O$3MF_kN*ն֩uo<1>Y5{((I6>RKk*iuC'*4&}|S$$ƒ!9o9rD-ma}UMtd`.X¼SpM :qj;"pGtјgG%/%|r"^E&v,mrSTGg1 NYg + ䷀i %rYմ~%!ty4Vy?aFq;/*먵-]+%#!JJ~d۸(eC5/HL4~]K2ή_H\:On4qMw )o'Bá~f FimdL_{hEFxWdd>xtŌe212@@J<_9SIJЁgPG *зX)&!%˫E$/?9-ڗ$$T-@ +ZuMcjM|#!ARŪGd`~O6)eW|dvn;b+q'R@.cB@9l4O00 K̈́o^a0g:ٟ~|?dH|uA;ﺍ8t2&{ Q(Wccc#e^\y{P|!VAd&ȶ0#M.7ԝvt89FS]~F;a|HK|()<Y ɉ UF݇Ԋz7'ޞWJsH-ND$a߇'*%|9ꪹBxs\tQ9T:T\]>Eg0iռMI<=%|: A9k>=ĀB>w;;#%\Eܖ}(t>eh˾ 7max1VV)p{K)ZqU4Co[9^UV&.yʅ}W7gh*e212\O\mc'T7WIј y$ CsKιec^lp_Є8d+оm)A42f_ aKnBWL#\XZ^S +a9aVO1UvuTϱm(vLbOO{~W=4M|iy [PYw`rGցwUՁ=*cL0SVվu}dZVl6!dß[+: L-yCkeS +Ug9$VKZ󦊈@#^Ҋ]EBs + }rIXX6rn.nz"P;1l |0<'2_q:M≠O<3fGT@<$6#%*Sy`r;S2oL8&oQDXήvMBm mk=wCh[Q#-gp.UP̔{<i vj5-stT^6Al6OF ͬ{zJ#lWA_^l+X]F6ēDH"nA(#{g̈:]g#@+ـMW\MC֘n&7yAvfjrOպ02/wƈ- L| +ݨ!)-vذgGxb4D6 Yڧ7ͱgE:7ʗ<V{}P ȃó#(qYI@,x$(7[ 4;ù6 +k5#9& {3K9 ɛZ<c^2ygo:urk@Y*)̨U@.Bj)NaxFR@a< +>]vE銎]&Sfs7Zgе ?[=hY>y@)yMYUB_en'>j&K=;{gh-5kay_lzi2Gv@ ;p鑐%Hb%i{$:]1_L)g'X/ >:)u /-;ހ%-FC#ʻGWU{XvV6= [z/Fw=j= y BR7<-)6GY|AYՉ٪\%XkH%Z>77vo9DXQrV1o YHLTٕ3zEu2;CpBLS%мtF5$%b)Zt~k b%1B<|iu +k)!0Ug|`[ ЋXnIQV I*J0qQ<8XiXzrt[Bz8wN;(`9ەKy_|fVv!а޽aHԆ jB(\'6XJ]JN{jB&q ^YA1gcl/ܓKhDbQ\aBKP}[@%:}ٽL(%ĺ#EL֟&H +i?ѿ9⫺5 Â8]~q #qD9} 15ȡl؄&ȧ3FI+c0:ԺA$.}!o:2Xqsn(#u/W$`;K?ϻZVˠ5`ю +%meiIg^%4y^3v66sݏ=UxeY7`7_br&dqph.stFSWBt@=?eS6DZT&g~$ S2%vӈt JXDlW]ߛG%tsue ,A9 `]ಮQ^%;>Նm"/ IOI',-JUתz3x%pHU@'39bFV-1}RZ$$"\H7A$!jI-a*,wkNPj'nZyjYKjWkM~^J/tn%㞆L_5mițI;B|qA+"DžtʈJ_ה^wc\-7a~h sHȣĜtKq`92`%vEZC'Kr 'Mv,l eH5\.k JhI "% +G$7M/x'RR /E'&ό}*N3 mnX<ȅBZ[I9)Z gn!/B}cR%zU*C 1#/mX/}@Ǟh~ K̦?N"Ʃɣ& 6g`D3huDWמ16(* &b;i֩FNÂBѸGQWqcq(Q9.lwT\hڋ *◐COR: ULWy:$iuVH[7^p")\B(E:FS,3<+xcfրLn,A:~XrU0v:VIipCp'(!-,!ݯ ,&-{?Fg헢(o3E4poQbq0΁=)Nczd9s΄e{?1 m_ǫ .R^pﻮy 2`$B|ɋ}#k{·Y_+yp WKu^?"lU ɮ ic~I7L"rj^(>y)$Ʀʾ4#*tBa}9Q]ciÎ Z\d.NpY bݕIY$n.b[i'S&Q:[x7ɪQk}x" A=/9#Ix Irhh5 ,W'vZ߁  Hh_{x!b,u.f0ͤ6HT-@Xlut7YLpd 鈏!}QgOmtof!BsFoc"('yJ;L?Ax?&nMW+1swds}GLI݃B$ڥU< l.z1^%Q8 Lk1CQ1ʶh|LZדq Z ScfBD$ +&ɲ*21mvwЅ>ia<Ke@_\Qۿ: +XҦ]]ݍm[>y86qd oN)-v2lrLQ'I9k]VEs{D0$^( 6? %twj^ߚaKΩzQ < BQ0ݫx2ߎ0(?H2]5أo:p=4#"S +#~R*g^< vaTSHih h LܩEG_zXf)Ik}K4zb T7<8*lns"47X499Mk"!Wb4VzB Zgk3&;j*5 @0L_ˡ~ʃȅW^1ZiSlX7EkF 'X@mh?*?;M/¶f%yJ!8R._ԁ]K!a3X[\"WPY}Y= b ^a<>i``|jb0fU]0qڋ8˞-WwʲWj[0NMeVQtdE_-:ej|Q %d1ESGI&^~eZ6ʵqws1Y }#9RTy~I1s:hc(P߾呝o1{zθ7~IɠbXn![$/q28;1berZ^0=(/-o\Tϸgmz{"ҮyZlu-'8k^ZUʘAYG,zSq5~⷟z hX=;sN)5aǫ`atR5 ~ rG=9RyE)򇏹wMl]qݜ,2}'""´;]Ξ.(vK}M!iR\ݯp|pR-ұOcyUAyܿ9TG|3:GbP+n!IQVȻcpi( >@}ͨBćЈGVcd1Q +Yl= \稪B@&e5D";E-=|!rCSYUX#򥯃V <\L'Ƈ$60y`:k_-;ydСT^ xO֤,E"sq~vEzVgځPQLK~ڃg=XfSuF44eAԶJ_d7µ6x^.s;h:*Ĭi%J0LڢԚ4eƝҷԎ+GHļ!*ë) +ll6:߱Տ Id bHې4<+e$ߚGCG~}f=+{\8T&ES3~8eG +!V ++ rQjm'2b>7~h")7`t)ƒ|=+Du\BVq7(Y]Kib(/ +c4䰳97۞E fN|0Ս챱8T*~Ntg; +J-aN.=;88ӌK N[V GNcw=#82en-[%Ʌ:M.~[8lPZ)U= +QA@tY=5eͷRɞpe%l/սL'PZ)a0GiSOYj껷 N;{m|>A}lM`n/pFP&|!ĵ[{,C:oּ)}#+Q[k)/MV߽!i̼~yy 1KpEW𒪷 VxRM]Jirܵ,h}ΛmхvۊI/E D7^Rhنt|cM<S'ys듲o +ĸ$sjx1Se~'CIߞW[&=t?Q*\QNTԿ[_ivB̧뀌B#@;w.>PuOxR .o9'uISw%}IehhES(yѻ$ka-(O=mB,ygFb L7Uf+F?k4Q5|coY_!.^OsToČNÝXBv_tk<҇l$54nB5bekbȚ8m],b0·$쯌{@;xNDJmC il_yG_*E mE|7# +Ua(? +TɋV4:aS>y}?IwB`m 2>xQ̰]FpW|J>HPtSUAu*؋e#hq6s }>L塛9mаWIoݶ"O;J5!U-`yP_r~7{(g?JbZxH\^*:4E$h\4z-m7l1\ܟi}~ĽjSE?K#$8zJuV[F癯@(j+FsBWXs\{88wnWgif%j=޵k+y3ꍝMO4PxArm5&hL[_S!(mk5'qVHID_?q{LXK݋^`&$^M%RM# Ր©m-eޱ0gLW[3ɯ'9mw(r#e#P:H &Yyy yA$q +-P,+^k2dնmD+A֖MY炳@SdU:Z,)tJ!^JR{G|[\ͧ+j1*h2[RN% .)k/DѠ5'@?߯rqOF 3H)unoŷR>7>tJ +Ej\` N(,% ͈wX@ -[JCڐTi,*Ip{s_xAݐ{'eK=RB٥6,laBPAxm9qlDQK[3uj@Px%S-=>eϏxm*:.SF6Hh9_`(bH7ZB*y;+&>my׍<#Kv3h篲O,< HLby|zRU x0=Ǭ.\CR) + &?)Pջ?fQuiroz{;qi*~r \C ԋ[vFcK,hfsi_\ոL逡5L;;,p.s 1k)ԽtGl)| 8jcYd`a<,z*LWO$tBD +C&p曱/ІUj9Dj/. .:~p'&BhOՋ:^aԫN'Dh#,G3A?!n ]KZdLxZqށ)T~$mnf?+|Ul px+%OSO08 :\KUQ+aJ8Ar~qNu~-&+f֜ _Wթ/dWeٲ]Lhվdƴn( 9ZϠm\|*"j#<€Y]pԈY' 1ZBYCjx軂)Y&SQ'%'{S#wq55 f; kV%vN>ѓxbH,J@)Y;9pƀ/x̯>ag8sfDy +x|4s0vN\QRWX&}2|toߩ.z/IidbߛA ~Ja$J*҆w)}J3M'tQ]̦4A_%fv +JSuAEݡ`ʢqD,t9uۗ *o^1:YW-f9@A/P?4f%n;ȡ[pB*jlj*h`HnnV\5q,!ࣝma,i6Nb.}Ζ_$$f;bwh"4!gD☎5޻szֆҸÛ aq^\c͙a 0Ev dQeV.=1(0g.YI_a8O_^+Uǩ{llol(|ίS%O C֩7q[ST߇nTh VҡSϹ+cW-# n7Xc5ۉQ3/^h?eIZ80zӰtSʀJRgw5u9S|E6oz&A56xQxYofjXʶsTsuЯ72p73PXp^nn8Kr=h&AJ^It[o|ks^NG̍h%FL?CG` bqьtk(CXx$4ZʼܽtmpX䲲?ӻSOIh *u8X]QטJOk_YX*Xq~󜮎|޷xx',&~\iH>kZTFO + QoD3US@zqhc0=Ԭ2mUF7)4gND'y<67OԜe2r\u&-ݨXdRX?Q[ ЮvkDN5\&8OKY輷P +mS@J 4qTG?XMOg#Aas(ML|7.-YϪ^SVQYC9 Av,$e1G[\eL?':O]C"3uNYviqv){mWY@[>E{҈qcY0WvԴ^,9K/ H⿯Ql~` g | +n2\cʹ1:=o~6?KX7@Sϫz^1h>IfMՅxh۹ ''ek>*Ko-ic<9 +KwKdNkĉ·,V~iCt}N;+we}?KY9 TUV?B6V杄$:re{~ayRW/*,n͟E#P։@fg#i]{8%kAR_~둮P6h$tk@"m fpɾl2˾NL.'i8ұI&plg-ؕql5lD!fי!Zn~> dtչB Ħ0/fB9n ~/wqs2 r!B7&c,\}؃~ńv^ZVQT?Sp [s7j6] f]Rtme*NX &Ҋke0 2c@'P覬d@ gC?$5<3GKxr6vM7fж}W]^^͗ Y0d\Gb~Ld&0${3T|| W$]m}REm4˭)q[b)i! +a#Sʟ݅lL媳 $̳Rﴟ"=`x 7>!liqZrr!]?fp;΁M U1?9GvV.=n}1s˻=%dâ7.DoE,'\-{8/s`}1Jht i!WƺBHWy*uVۉK+O=J,.C\X0K̆@٤Fyrԩ'KXWJ )PR&82Ϩ"/A]$Xu hI's,*^^ͭƔz>ikᏁ=xEē2}xb#lw.Ģ̦lZvp|N6 +W?I4"[q +endstream +endobj +600 0 obj +<< +/Type /FontDescriptor +/FontName /LRBAHR+LMRoman10-Bold +/Flags 4 +/FontBBox [-486 -295 1607 1133] +/Ascent 699 +/CapHeight 699 +/Descent -194 +/ItalicAngle 0 +/StemV 114 +/XHeight 444 +/CharSet (/A/a/b/c/r/s/t) +/FontFile 599 0 R +>> +endobj +601 0 obj +<< +/Length1 1785 +/Length2 20235 +/Length3 0 +/Length 21414 +/Filter /FlateDecode +>> +stream +xڴct$-[;Vcb۶mmw۶/3o(,5s"'VP458330ddl lYl, LLlp@'s['  oY`ab#mAc;@dndPc(::8~66@a[;wsS3k]o@``c beٺ~:T6C **)ĕU>Vvu?XUT"r*@\UY +)@N3grYQAMQfƿ{0\6OdYj`kO#+)?Twbm?t2kG178+hIgѧ$VJ8Z3hL/@rmt< \ l=ܶVḼ;=3s|rb*2³ddž 8lO Z[vK'ONjKeَQ()r?]p3:@{ȌoImn|t4pޞO `ln)AguI[ܟH'!Pc[+w1QS Ts3R'e`mny Ql(f4V0w22K:|^ +y"TΑէ`?/wbZ4::88 ?9/E `TVPP/$jcdklnc +`a881}j)ec?"02:}윝&p(`4sGd0Z}n4 aj!![7Oz6N= 7"+gZ>t-Y6NCs3!1ف-M(oˤ(IAaޚTXێhj@_y Tnf tf[|!@uX)eu +Nyj>k,s3" +n'd'zlAQ)(nMxR < +* RƋ&|}:2uhىdܥ g_\K9*8θL)WtD . _fT|үe%/x?7D^T>tf`_]o _). ow~IX[ĂeG㍫jZHXaX=I+Ty HtSґGW&FRrvRƱzo 91!mVRmZ߭4!+ M LHK!P EhuZ.:ᅺ1Dzf.nn؆sPBdWeH)aC)SNgBfDJނJWU- /y<\.&MYizG-5KIt)ha"]F=/9r򮍰\1oЩk/X҄DkvZ\5̑,5uCὯLuxfڲ>oBUc.LQrVxwgk NC]`( :J&? +Oak!gfn ~[ Zr0&q*뵰p. +کܾibVZ+fܞ,2!g'A?d3`xChŁ^pn/ p^o 迃0gl&Hp(-cv ?"ܓYO'LE +Cy={ru:PTgXXЏLhKt(1/_~xfY˝B9d7XR|jwIխa %LYYEnJR1ܶwd#tOoPb_]i)Ky}M`T7p\r/%ؽl*P=&Н74mCաS8yTD˫xZޮN؟^BaQz|~1}>uƬb5`@Z,-[2SɴS3A#e"Ƽ#T`jx}~#°ŀVw㝼}hN8d o[.Q`kNs*ϕ;##͂p2g :5H{L׳޼Pȭ'ܢyC'M.6s!_IyS q +Q403XSӔhRVUT9CnCں +dR0[5|[i4hr/校&3;%8Ǜx B|twM6G)MOpp]YS%ǖ8{xp4yt!VYp:}WD {D9GAX&n.=YIU`o7C _@ ̈́sujg ћ8d(XÀ.'S鏳ol՜R.2AuMq|!; +FJMd#dCNCҌ8Hs!h[+!+"A-I8X#t9 ^GVOɼPWy؍B!Dⴺ^FYr2==["=~U7}O$^YhVbkafiZϻ$ԐMSˆgL s-8_+.sYLd fbAd9{h/ .D~!=`R*bhN(d@"8 nfZlkW6X-Y]ȔW lLOd"J~.?2|٭M:QR 5gUpǷ0>T<Qժ3XxKď5b@&B_- W7|.dE}i'X457PeKnC-i7oQc]瓝MwtP_Q k08=cgP +IYeDdi"sL>Vsu23DrE.2Ya; + +pCG)}As/RoI\IYt6VnA} OA;g1}1gyX̰4{ 0Ã`} ')99!e|4k.RݏA=O +ߝ?t5*/Opp~p lQ I'LrŤ!'UӘKq:Nz FeGG'X)~^_0ȬOFRmR|Ϳ2N_:n9>} +ry~z +UtǕ +9 =cO` _aRkgP4j*@I$0,g#vwgM\ blXtCV)HAfU H3amؕ߆T3cD`bL|Z|SzM79A?mG<9>і{p˨_z w^hOrQ{([Z5eZ,K/eEe 11jDk,Bz- v,x(:{𵅏 d׌ QM +l'"I,1OCod̢AT4s `MfWg:dͩ!n)cfͰ0zT W} F-]kQ K=G WĢ3^ qnvcL0nGfrB^83%Mjc`k ƀ=^!=KQaHQH(+ilWVHGKQҼ4>wDh~ +vN>TM-xϵO*Zm)7@;cΑ ܚʬ!H3WÖCR&>tf#vn +Gfeb#P!Aǟmr>L)w@suz~^ι=EF FKmpy\GbpHh/l50MaHnmE~Gt|`ҌG4 @~f۬ +>uv۠ +x/z="0 {bQx}kϪ4Up3-bĢDs,QG(B+ćFʌR1oK(X2t50Du0m=YԺc/|^,,["!#81Xk":'7?3{o!:`omAw}_/ I;:8chҐF!j!-s5wȮb g+dTGSof<iǒ#f9c*F\gӗ w(lq< E7D tIBd6! !=v2{Dg<gg GAFv$)&nuf܅/2RS6q6EH3w$%Q)n5~n}̈7DىaL'R^,6sG6*VU*ay?kj9yjົGrUo +֭Džlaѡd>Q[˾'e g<5jvL9,D^:j.UPt8-ieބBU ȷ  +8E~:TfVUo6 挮Tn.~)s/18Q#qUNZ%&BkJVt|~LW}>rc8(>ٹ  H2{p }>E \@ 1k,ډL3R @ C>o\d}&i$|o(q/u"bSXq>p_){L7k-.!xk_ɮyZ'g:KxB\炧E' ki +ÆEh^V-97ד{c:oqpp/S}*o5T>v϶7~:>dPÒ{m.}l<8t 1™zu<ߗfن_fUFE6bŖ)ːj{ ܚꣻZioFh5Hd`-^Sn/6 Hgo2n]}ڧ;_ ot3Rp!q` +a%B1H$^VСʥrI4C/ )pli%=iO-<_p"䍕׽Lf=$e%jO,t˝+&vP=\Լzw?%M>lZBQ~H;rEJOaԷȊُjV_5m8fSM2HJ/ T\L):?|n|*iڌ|[Q$-WK% y7Y>n{ a'X;s{UfM{@~!A;>uYN }[Qh#n>u0/yD%XSG8 ׇaBCxdytb[d$tA-!Ͱ&@o/cu >@ '|gl/~NG,')}1 BL:ШF\=\ĢBzhԄ/!>4Im<Zp4޳34QCcT5B5_*elxQT=8VA|gjY J"^d܋\d¡E0Dk4>BTp/15]NIHl؝ІH]B,1caB dK +? yj=rXL ~`*V'aycy]{-KIGswaҎB7{d*|Yr)KiF;KuaݚZ8w[: MY` yL#Nu,c2f:TGC3wm |Jt}b +c,م\oP~>'usb +vjt::x1SEbLe;'GސW&]إ3Ԙs4tVoYr +eH@7v ~`K Y-jUIs)x3Z+ǞwΧ'ߴtR |2vFB5̮DLWٻ/2ŽDys W\xENQ-.<(!ö EEZ94e}acH䪅F8y~l[b@aGTC) +՞&#A +k)SKF󓆂Va2lǛ/f+"j]5WTuSBzvZqex<_I +YkjZfkK=o5/ + YsT4ڱ J@W3f&N ٲHW_&F\ƇI|fҡU>=-I>΃ecדԟ{NWl}FeE[ r7eʻj}G耒L5B`I>ŀBPeίPȦ|YbFxRZa +>WvTT#SDwjy<4L/ +չ桽:d^t ƒ'U2/lh^7@sSZR RdFM*pZv]XPR-+:w<9uWq=okGC֧Щ' 5l uȡS|ִSҦ- +S"ݯ#lUMJs'=D%>ߩJUD^]n-dG#Ml⾒RmD4Mu~UۖV;N6XW$BA.y'^#GŢ2^`dQ 2G&EZG8 +/b!qTRU?cuf?w,s mӰ1XR)sOګS1Q̠]YiB͞rLkXkd-aR2e$rlxXRc2֦j̉Gm;k==3BPt#qx@a0( m"c/- $)dHS0 4hwP^3^ZNEn( +qJ4dAȘ4aV=}4;˻9_e; FVʏ61H?79r۹@jjѦ[2fTcN%f&?$)z h؜Sg6i:.,Ep7 ӄlچS b z#֏%{фRAͭy%4շ P30)6GId0J~#en;QI߀+ +',}t{v۪#ihʱ(%*O+,aLWmk%4[^2X}JW2h ɲ/ `:m{TZq))ZCAavv[bRӾUxP_2edОXujtcR3ȵP\N1ȧtq_R)0;|']ڥ߭FT6x&7 nmExg\Z.ٿ$INTP3x<_39sk RPR0 B,ɵ  !?1PGC98"@ +(g.HQ \f\oVg/\1PM;cFؓFC46x\H"-q1,!ymіtGr/~s]K)1@L5?u@*-z,k wℊO ">]6,i  +LkgŲnnP.8\xt԰QgaL9h~^$JiU5]qۺ]*4 @ RcAZ+tBzYpwBN.:8)C7ZQ0941uMY:>dҸ󦌸R(:f9vKɊȽv;ڹ +>tXL1Ye5XPh\vb imtth>OHCs"|: _0nX\gr4x(#Oy.H9Oz"CvhI-},5ӄ@KdkO]KnӼ K'oyΞbQЊ)LtnBӌe:0,g]0I&7f]'9h(G9TRָ0@&)/o#L-JȣDY|Kc|@-tB7Anpxq ] NL윟,cO ՘׀?iItَ?\^y/p/6[#:Ǚher!{*j{2 ֹ+8gg_nE˖QBB[cdpz׃0ud>Џ ˟s)%dj%vE@WFAO2&O1mpdM@7c:oj-,:EI7Qx'>ɋT (ivQ9egYt]+`ⱱ|kc< xz3C[ނi-;c([ 4R_d;hѭ@D\9xl*S7hi$WE)b5fbWanQrc)  k Pq\/O[iT_7Hd1/pۢz(&oFo.j笸2,[4U|Tr J.tG%ZiPTr;&z̈́< ۚ/߯_m"i$T+,V¤j +1F&]+ň{hsݘ3858VK%վGέ.‰#s%A f}Cʏ t$nߧpffRcGbT\NKO{3XW3V?LVKa'>4"45PXuW.S9Xoe>  V[EB@H$[ GY;# rЩ`@0j1M[|8(i(Wk1eG +2]}a.RPmL/rCrϦ叻)ί#N֒9Ʊ)v8"{Ds]^d.cwhD 9܌BlZ45~pw_|>dX^#]{FlRK vtS2\T ?j-Ԣebn.3ٔo/)[l.@;J]ObEP]Oިޖʏ ZC˭]cwQ/}{r(%2/qr-ITC ]C8`T5AV= r)&Z=ra~1SӃHMd ~Yu'uJi} g jW=T'a.:闹6zzBREEe{>j(ξg}IN ^Ãbm&B3,A_Ǫ2nl;b]9 4Gn|ζtT W֥zuh^BkQ_mG=UPϴlZoKnȃZ\Ձ1[QqfYDEea !A'G P2_ULd'"Ƀ6Q J3@c`BeYNڑ+&y[gH5CjbD/E1k!tڅף-B͉*{+[Ew/Mdt`g4ZcL[)i A)dǕ'_t%IЉw7&Q^\O1s`ɒqaΗcdj]5nCGqGBn݂cě1rH~(hJA taq+-t +Flz ;bmB߹ DUo +PKL)RMoU(5E`8վqxsM",2x~f!5 _xyL"gA2 BafeiH U*m=>\K~Ywu(ɣZlܸJjE+k9,{ [#ID.Ƨ!vXtiZBzQmb40M !s?ƄΪʢ.bzu?^|`)}Gש! bc oRV fdhq*X9{"m> n1E1<X|ޭa4wڅ1 +_kKS˷tne~緟)MɎsB ٤p&~k`v=NxHagc^>sp +m.d*v/0v@8Ljfu{zFP=^;8Z)[&c;>L=ӆ|Xcv;mdW M_d|&/jl|]~ .C,)FOqo#M9 +m*~oM0X/l`.غK#ܤ܅ qMZ”/@ȳ6' )8T^nנ6-2ж"mBEnI3Vnd-1}h4רֲңRԷ-vj—t_2cSS$MN1y`^\a.ߺxy+aj R,Jܯ.#(@Va'&𥓻jpj9Oʆ H|&X?+|i7^[)Jʌ-0$ܫ2}LfygL݅7±:&y1 =,P2">O[9k96vi(ƧCrhѵ[Uz\"]|l^ ޅ.eX)^,.VpbA8!CPO}vxWN%y_` 9$a7SJ4N4o~u^:qW݋Bm?pvg0 *s$v6dFrMHCU\KI.˜>$~aΎd#X:y}Wk=pԽM*HOݨ|; 0` G>#[hj+i۩8^2@m>Eg2`FJͬ۰[ސ +p$}$3ycsto|oR A{vwo'cvT7 ~\ \%oe&J^[c1Ӝ jqE4F?%(hJ:xQ᩹>\y&mzEio *v;ǓD~5$WKYQvՍxU8E[J>̑@5Ca\ZѦCg~W̟?ӣO\ޘlO 4rܥVBe[˪?Hs|!Z'cG.r@kj h`, }Sg5L6ushj%Xe-}voUW_*%| +\"_)K;k1Sk,0y'lhнWE !63h!f4^WLFLq"*wxtn +xaݴqHk+Ȑ֧YUo{? [/[^ə) L?U946J ie9Yo'}zf .#1[FMQ%IhXBMBǖm!ۚ1 A|zY +Rں\m:hn M.Z'HRE0 YuT {:q{ [Aq7#ztZhSWr]d֎9 IZ(Fho)_{t.B("h3~ľfM xجZ+?m0_ |!r=HpG1xN-0jXU6~砀1|8s֩ߞxZz-yDA M? +/!yZu`UN)/? w boRBIp +/c.V8HYOR,Τ짼1w8(_c⶜J~ Kq3~vj1i䇻/EF_Q<`=4|} r}_=>}MX|]rڛqݦ<- a4j<|@kyiv1رm +u9ulIy5o?Xx-z1HE)=RX^~}%a&;ZyҬLϖv7B[ 4ȅFߒ9a\%C/\2B K`q =dJ˪-toAܶ铹=s.{ :j +lMЙ+HC$/ih|[ %6;l j? s$!8]>̢X5U>U \H) ~If/܂ ~~xD$jdm45on6UbL-SZ +jH(>q-k7m/&o?#F8i ^97[XP9-YJ=5{9竛ly%h3u{ݿ%zTKmv!p} +kL1چ'j2Z2z5t_b`cAK'0 sJ-pGI{`?40r|]*L~a 8$Á\ޞ#x9h"b +v8eqݙb"^URYд%M_{ +s[u􇃱{;Tңx+1~s?ߌ@5JUv{zKvǥrqV-X?`XLw1uyh[ ,z{A̐xvpc3rn 7?ZM"XՖ1wҹ:_ OsW$돴I]~UV a#jTӘ1 L{ϗGwn qdFUCԷqk x ǹd~DW5>h,y1 8 DI$`,~2+4udcj#ɍ@tw=ȵXWK{ #Q;Rj+>̈́ ݬ< ,ri3tPpyi!|%/]8 iP#d:'izoܟ9`<5L~TV'Dzl CoHdų̌k _ֱSAyHD1+@(,U׶R=!ŭ=}:>x.0_:1*/:0"-)lhMycB4͵%3 a~%ZJzCnd9:x6Zm1gjS#wX5D|30$Дԙf獦s7L9wH.7S$;*uZ˨7Z[c2|X#p){Tq< jG+* l>?i)-Q+"d''WÏg_ߌKY$ QZBu*0X‹Hx55-ɯA4J*]@ȴ`L΁r?q3αHvJw lb`i)qM+QCI\7߃Ra͵E[ (eJ,%c&gU|XڟHpRQGGq$B47Tʁ&g)ﲀ]/l2t$?k̬P2Ւ%a@qWXSEB9f˲$[tu1*26<ڭp"t=]@cryLtKްuxM6(KhDrP@s"u޸B 2(Jd6RnmzIf_6Tv=ﻬox;Ays#e|ڵ"{9 Cmҳ[$*T㩿X$)K6rɣ aEO- !]&"Uz'ˀ?-QRuR˦j,`JQxGZqÙSg`Bɑj5ֺv\KW6DG+l :wJD$~4bcQ<~s`Mªڲ9 W^qzEb˰,'׷M*ȯEޠ :# ?rzʣV +xJxd/1D-+K3pa̘a=1R?V 'MƖX>{5D85LƶiqY+(ztMH4^ONmcBy#pSѭXvyqPԉ+2y޺ŦkPGvV;̥ic4_dk\E2OUilτx*>)jnjye(t  }ۙ\E-_݁'muOt4TK"_UD&aU#fW8m&@B^jH1 LS* MP|]S3 *"ΆjmRf%CզB8x&2MZ]W/7{ 쩍܋@F/flӤt-]z S]fWt r+j) }#B:}H&M =fbXטú/,Q .WG|øPx!vl!u(<1l@*,H|PI NFEl(Bt-` $ЖȣV>'~NŧZP<vsx}AtvyȊe)59 SFL PxF^iUS?uCcBaK'd񁈌-}T,O2)㰂yGE;F~=>LLwd#i3ھe|BPVtMgķyT;|?I +1GMsS(p.ƛD,O/ҌZ::)B]PMym=MS +h/6S %ϥB#2{XYщtˆ'd|e(mRSSYFke!0_7V#Eq2=> +endobj +603 0 obj +<< +/Length1 1686 +/Length2 1354 +/Length3 0 +/Length 2391 +/Filter /FlateDecode +>> +stream +xڵTiXzQr) +Bv"UV)$(!9I 3a2 h+^*z^TZds㺡mQPp +LЪ<}Lf~{~nzd4[$#a Il>1ZLcj\B(x<1' J+A40!R@$ pOqIjivX)-Δm&bRCrL0JxpIIINKsHJѨJ\ HJЛjhlvJ89K!LP 9&V d"A39Ճ@ {e0!RHcN m聲Y!QS# DU u_l:%KzbӮx7o[JZ\Kk3B Րae 'pQDp`@GICi7O> +=NXkYLq' rəS4\ '`db) x&*Lir31hH cj-LX)Zl94)X|7 å4=1{0!'1y $@,nI#qfnH@Z%@oPo,W'mAR zkq=ET9A`*PC;sxBW "aMd&2Cgg#QgGp\ѼPX@HIN(`%xH!G—AQB!HNrb1,jE}*̤{f\G qqA|)\TGv{^'חԧ3m'pn."wQo PjJJ=3y,(-pΝdܘn7f@'sgag|~Ӭ.-H_O?xzà +r˲˦Ʌ?ʗXr>㖔B}) /-lĪD-Ϛt!dL儶ϕ{'0vh"΍๙)k<䐣{[#K;V ˊVyw)Nu{VMX'̟C'9Bq nΫc2g6 U)\lz/1痜+-]n^3 r5u%S$V3Z|$ Iwqlu'm&Τ; r  4 ZP0t4ﺜ^aC꘠;ʢuTTmi +5n_N=1]ʢWHEf>]Ώ7/|(kۊ39ۇ __ǝojzdo,gHvO1F ;SFɮ{to/&+Wet-0+dmק=a֨zV}|JmG;cӮ+6 xխ{.W4Sh%Nm,~ U/}^fYxӫ]tnW)vԭmY/Fw//چ +_Mry\e춨=A%^1Xz`ç⣶bc_Mev>f{Zfmi*;5s] >щЪyB6xRWbđ/ǘ*j;Ζγ&Z?2m8zݎ-,gRiwˁj/RMN5jz}wTĬ\|*OYܰ| m+r**B c̭e?=,{~SƴXlnwΛIȹו4rWe_fouPy)vþDUX֍.8Vw: ,@wI#gkcyy3 +fJt{ߜ}ⓥNK8NczV΍h(jwճ7 ֵw/?l۷^\JVyO^Z㬒knu4-nٿ_E׌#"n'n>wmw Gϻj'OeK3wJl-!sηh}gF߿x6:LM&˶1ݭǯ 6XѴj6u+fcw0NRxjɥ  5֫9`K;;'V?ϐg/ه"q8n6p +endstream +endobj +604 0 obj +<< +/Type /FontDescriptor +/FontName /AHKBFZ+LMMathItalic12-Regular +/Flags 4 +/FontBBox [-31 -250 1026 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 59 +/XHeight 431 +/CharSet (/epsilon) +/FontFile 603 0 R +>> +endobj +605 0 obj +<< +/Length1 2273 +/Length2 27487 +/Length3 0 +/Length 28838 +/Filter /FlateDecode +>> +stream +xڴeX۲5ӸCpwwFn !YO?-t̚U6:PhoʤrؙYY9]n6n@~5@݂ + t+-f^E @kPqtuc23u}Wlt.N^.6Vnbp01[ gjnjg0u1+2=ޅ6ZGd phuji5eMu:NN.E\]CS !! j155|j[14qWUdcs#OF 7wWKGhܜYX<<<]ݘ]@Ӱqx8޿] _qwx/5_ +@ +$/{)ߝn&^?1A2/_` A @OU;Rs|?oc;:ڸ+"`ial)*JIk0)7{u<OTB `7;kW?哰yml;G[;h:8e%] +`@Osk? ?b?B89:,MA@?KG O"6{ _e,|3_4_J> /E%h%)iOMe ÖV_:W)OJ/{:XHH{}Y_&6Nҽ/7{!{Jh0߶N + 0uq1B`}v..{c[=j ۻ `B,DBE߈"7bH8,#^ҿ/;Eon7h޹hXLF1F8ߣld-)Y ߣYC=IZ{9Ya.;swlCw߹mLW$h b:]A0xn~GUz|?_?^k=L 8m,DS}!_?PK-& +`b{מ?|xk? 4GXYr4h ,c>##=C'QC. ̡.uT7O r(ס +ntX+HNh1k(.VVp~J"hN?Ʊϼ_TwA{-c0<z zbMDWLq`1c˄?`J>:ojG"PU[IhR p<q #gQJ]܃eiC[痟8}uE4~gH:̰ϲV nDH$5=)~auzi:ԳםBx݁{h]1N%q9g* 9gCOGkV"gB3DW#KB0 %/-R?AzAEr'[]-n_h$(D:R=HCxť,Tpw*&P kj/)z8~Ccae&.gr?ʭm+H&%$Gc/z:(Z$ =6+g':PZ6cV/$߬ʾNz +sKUX(S)Y5$S:Sm~-$\v !*w~V%y!-Dm,"-o:/iPTH V/M˸ox<8fs Alt[Z8gW{ώpù6*UGV9~M,ǽuEV~ v"AT[j+:1A5aCOik(ȗVX?hABIxmaá`vBv<ܑa0/doꞜ_2[|=AP/U-u}trG[RAQC5,hkB[fT.T;]Bvrw#pT!|tPۊ<, \)y!όa(˩L7;#X-ݸ-׿*֦߰N4[: X'htvRyXM''@|eDc-dDU2-p; +,ck|x%+KDg^ԓ{N9V}8fPHPQVn>sms3!*~VRB|5gˢXJ1Q~h.^4?RqG(zF5b-EXznAt<[M[5ǾsTkw94Ud33zc՞1B!QtkyiT)am}v0G=[̈́v>mg\=Z@@w­>;"%3Wa2A OvbW蠜 pi&0z)U·hn|/?/A+%E[Vq{0xXGqo$?[%;蓒[D77teD(r_;㐓y`7Ͷ +ܓ1qK9eba?+'}P{Q# +INS)) 4U U/8= 9ܐ@60Wx\qN'2f,1[wz6&P [R.xe_;n{t6s? /4JwC'ZU'OZ &9jCYAMNs rqM܌\RbDi֠6a[7 M됙q1쳩MU+B UY@y!\EJSZڍ>:7 fJl ߩ-?x^J4@FܪEvk^_בD;:Gh]mz1낪Nnio:xh5xd>r\݂ -Ɇҫ-[F0yxa[VrT_o}fH:o/^s^[MP+ZT?hHw:k08؝ TC&n6jxcd ATTlsApo#CwbK1 CP MםoLM_ByO5V Z6pA +j>`d+جJȞ6k M "Jp7vȣ$}/9$ą8Mhc`eAy Z '6^9[!*L(SVL냡u5+g_~J% +vicoRԓ5Am©VyPg#Niv~OދGdISoݛ|V^+CpHUђ| |oF˜_YϹئYÖ{M؇W j«YV4YR,RPiQFn3p|~MVES$[*eG#0V]Bף]K(\J-AO{fq[l*!\laMkv$[BH1\8q}y:yN$-Ҁ߹q0)iBoEK~є%ka+:P]b?7aLkNdv$g p8lB# 'KǦ}(c^WRc-kSED'34CӔ7goS񼖑}ICGy|+{ ?,AO2d, +J`Iγ8&7ld%D4x ~U. ׆,( rB+2Rlݽ/B=D|dcY ˌ}ɔd {V2dhM NE%5X;w)װƂb&<9}#zz`;9>UQCbw)G_4\jWrJu:SML^_#) `IМd(C_;\"^@~αqI:t`Wv6{E[l|R6ЛmY#doD3\Ohju$&k +Ókwg8ቓLt"geJl+Tt0$6"]grެ3axWg˝!rSi)6窉ȻF]~4r:c$'e\0SJϐ3CႡdBvw]~p=ª)p$H!q1SN_W4q}ۼC5F .ٮ:Z Ncn]{}؉cseB06Qilbu)U$}Y 7t\#s rBwG4aG% cAѲR8PULI;ӈ̗~?<;UHO?EY|y! +خ$utxiț0O)L1gĔWS  z-#8=Q?GgrOwz&t,eH\ZJ#ND{EnrWXqj:ɞ;jDSu&ۿ_Z(:/5H(qʺJ|eŧ".envDx;_-q{Hiq«w[Mn6@ՇW +[ޡصEt80a$?4Qvg~hmP>m]\+dt*+ԋHLhZcx*n'ڪ|'\{r̜L{õ6)"ςU +X;AEܦ^ˀJ88cx)ܬZ/wYlS6>=|gϤQ)d "LA>/m%žYa[Ǥuܕo(ZDʛ˹,ӝUxp-$&Mrkdʮ+o?{/?}+N'4QV1me0pUD#8㝀Y·eaE1}S&2}~ V#͖Zl?dY%ې"x1I[n[HV$`hP۬LwRq-G-P-X_'}x㒍?.:|߼]ݣ"7%legNQ ݮjLYF*+}q,p`PQ:5 |}tEͯ"$6ߠ0A&/(vkl'O@`a/ $>zjggy;ԡ7e2[oBK+۩S~!$_?-G &H-}e\AR7Ӊ KG1@6Ĺ묽#rL:G~Xm[p:#]XxP4ĜըeXi+aFrrV'ԵKYw +a**2kK7US nvel ,O0Jy/4@7dE+^K|Aa5>R0NVj ,04I2 ;gKX +S|Oܶ+G򰛙I.0x)m/ٳîB45<[-V#V=K3{c hRa5:!;t)W~,, ϭx@BDks@frd?3x'ݯyD3é9!(LAvIlbNIesb ?< x-,q66B%_w}E oiMp#{k[͓^( +>&EX}+f>#yA ;Mʬ6u[m8&Xl)*n1yVXb s!a׺2NRPyܦҗ7\\~:ɦ)oz>iZL2ZsԋDfK4m{6VC 菨5Pm7paH#EVx^i(#Dp@-RrT3X c2׺G9XTpBlakm^l zJ[ TH9gM (d,Kn$G¡gbt\:~C X k`:G#v4a<Sƈ/Uԉ &Dp_бI-QXUa_aǜyżSO(R._]a c%aq[{~g 1UPq;bn8_ nA0vN襡U`V<Չyc,*0Tm3LDyIGG w1Ďq~]|O'h FKY-[o $ǫ:9a Q8ZosI1${Ni1X>9oa[.(Pv?0}p32K ȚϑSYEM\5MQLv {G~R Fkd΂{Zq2rLOO+wQsyAGFY(1f!Y٥ +3" ^+6uΚH mU=Jl=_]LgO/>cB>c7f׏g[8 [iSP)L哧? M32S5dNMjgX~t%Y d?z(7槫>'xFwu{T\ds`0*Q.MZ4@Uh#}b: Lf] kn[8ú~iXvj 8I'cyNm ޕ}0ѯ*cSEN2@(P|'Մ*ObBױs \\|A ED19T +b h8 PAӝĀLzZ NZU`ЦfA NH&4귭O[: +W1{o8 5K +6<' e:uE$yᾩR])ή2eO [8O,0]M"A筜q - ^{fm::1 _~a ]1X5 +`sq~́1 +Y'{$] bٹ6WH0:~-`_1T&u* ̇QվksZ$R?]Y}s7|UnWl2g! +rʖf0/fPzMdrNR 6Su+jV5O_~PwH$v.%e|?1v3&uY8~)%EƂ I` u^asCHΘv8& BOC]2JܝgVF2~< E38eKF+ +:q&yT5CIfVUzU#>kɨ/WrO-|׵4fy&QJyw?HdHI'q.N ZfImI<qmrdqA-83"g =yze{%,xtw{nfG=cM8Ã<9&axEȜRW9v+KQHz2&4JaPŷ^m.HVS_Ftk$+44ͩi_C#ԭ_z ad5>84uuCWȪkR{HlI^f\2-4Q/ P@[_ƿGx=.,@lb-%b; - 1'GIH` P*k>xz(_<$EJn>S?%(!rUq,RP:'כ 46R#y5mb=.]7"Sѳ/fd6lI<@A\˺I&|[[}2F%c"D1m1ުM4UȺͼ1Y2~1LH)6L%jlku }״=f/H~%?ڤ{@ED\sh'9(8U -E ۤ~FW vՃqαըĩ,eYWL2CISMlg8%zѯ{)Ƭgi@Q@a & e0i wVH܀.? / Pr#-m1t'}5XbRB >Z1w[/9<'1e|axgs$3Ջaς'`ʿ1=?HwRC͚^-v?YIHrO7Q.^Wꥬ'w1_"Wq&>ݯ+Y~(UPi,#61SeNM۽eÒBR0`^-1Oi nRn/#G:w3zٯICO9}3m]@kB@m>־큟MOWppu.7C.`׃sJMOn91,oxf9Td<@YN[aڂϡo6njckG3K,֥Vv/~u þWBT "k)~- ~JQ.vs8y;dP&{tF=H ^J;w)gCzmx.+vo;ÖuY!#y)n9TY b̷]bW87n5<}h +d#&UTod]Bg/`g ֡yE*N2t%o9K~--#m9p'Cinl\;[=Og_ĵg?[Tf΅ؒU5/m5*^07hR?eZSP|:恲]֡n>ꨊask'e6(tXj.Iz:NL&LSp2j7-EAC}ݲUװFsKkf^®봁i +Ƽ;$eK4:($#%I?єڃ/)mED2(Eli12U-x~`0}`GSQ<yWgĖ~/qm,jh!Z`h vj潒&v>7+\iC쾾oQ +DVk.tr z#Z)tSȉ* `fc5w?*)c#}`<&cFåUhv&SN=pR(mß_LYchoxyGW`hs  ȹ10u_|v{zWv>[fD)h UApY? +)&R\KX"/@f ^Jqg #aw}px^[3BlR7!ҲN-d"h8m^N:u>>P'IK.G0֜MRMDSRT, VxNcz>=ߓWǡ'e۲w2\$guBG8{YNe'r`%%?FFR`RLy`w~ބRDM3|ocM)^IB@P3hn@Z גfh ͬEe +{Љ.pO8n~rJFn2l0ITs8ڛAlc.-*} ]F5bLoLnaO֢crK>Yݷ (XՅn!^x -:˞ +_򈌓ݰ Ӆes> -y0K0\퇴A!̚b (+wCK_]HϒEzQZ'@[sItG +@ݦ#%S7@(T9t0XĈq "ukwlBkD$Zm۶m۶ml۶m۶Y?"#FЭj `#S7e _XE5tuR']ƞ^y"Qw.ѥ]}<܌ɕ},8Hpr8NA܍ N#/&4l O-Ҭ*uXyk=ϫIW&Ծq"ש-ydzh.-?e2X,M, Y]YBKMѡ-iVL i3>A,Japʋ;hԄz]A:ƳEq6V֧|y.M[^WQ^섭ĩW9q8K$lM;Vb,3M7OWYٵ$ʺkD?Dzb+x7bσ"eU}rl/Ͻ3܎dU:Q|+/ p='E>"n Tm,\@%x/a+,UF'y"&V};ek:.}Ց%},@*o? ]&-dY tE{|rA0g΃4)Pn0818 +PQeʷ(]ONpinJiztlV0J= #1'1V9n4ٲc:7[|mgu]d|i-렆|HU7EeZJ0;eMO\g⭳ro2F(4W؈Qm];sP$N\=$_z9yj -[wqgf>x‘$[(ei{.9&ͯ s7k.mj<41gn4D0`} P'(:m?/N’vJ҂8?}!u$>y-Ig'D^A>+UfvF5@% jQ)qnB7*TS!w<2XL_([n>q*eAE9z*6c\d'm:C[_n\뙇Y'4ټ:cuB+{ HR68d S2> C63oC$(㦎K5pF`pr Qœ +r_`ߕLR|FU\9 ,J߫0[ PsE)ڰxukyI%$IQ7bˡ6iewMR:'x5=ym څ 6H6R?lMf L=܏:ZfPsh`׿'8h.j֌)&- v.15᝹ 6UeVdϔ;fPR1%  c«D&n +^ 0gA]! +o][\sN\~oW]nGu97 .!s*- \v^F@o%XfRj)쨕|LƉzn2;2pj;Wqr_d BMlhMKrz?g}&xQdK5yBT+S4+n Z}1 nj„=΀y<[fhJ&վ_5i-]Op&( ee C?h=I]9 JW^F`$0 Z2,̏ 4q`=).w[uy>y24†͈TsR7zT(@ֺiK ݲ{Z1'tlp_zps_=GO~& -hUD'd 7Sb7J;Oϗ*PG g1aƏ穹oCf4k/̒kNUQл{ mϳ t^ zSJIo4XeI!@g +'py:;L&[ח_[{X2&sxA&NTSuߨkEɰo8#CEٟL# + b +xyrz?RwRWXsRݡ8Bˮ#hT giRB\;id( : | `'Xg>AĎ^eYOEկb:{̖` Ij|>EQvO LۏXgoLTMHLB Nh=`A9߯ qQi\3lMJpHL7~?FtK,$ѣa_` GNA)E~fO"JKܲލͩݔ>xsm.R{zLz |49-60C_# D 䫨/hx;cWgE\g*L,*~\321iy^ .yג$ȇNծHs?:9 MpW%G۩7TQ9xɀܦ33Hmk e+I{cGZlA[!mGSj;Ta:w( .7_:"{jk(RYzB҈ +7ʶ;#bR&k%j1=#i6Lr绝}gn'N)׈oG +(6Vvlu 6r@d̝/mLxO+&͂JȀ@n怄RۇqqfD1OϹrjP~ey:~77zUtB|#LPbVK%m] Q*'!Wԩf,;=5Qw6~*zJmlI12; cidhp&yU263zq\Ijh <.{jtN\XM,"?s3iPSv8D +)쿁=8(}g+uMf+3mc*JЖհ}}!uEÖIpr0tikaevF77VY5v µ'oIɦmB(8]DLYXEx_"REYvi#&bcw {Mm1AMz="D0 ű Ǘ" +=E!$!_$ Gl*a5cI9CBivy"j&d6M"q͠PZt"&%BKDíõrϯ[B܎1k +sLO)d OrPEĠ拿 .͗L&slkyEqvufz4xҺwϹ%Lpz/~k:3%7okW><ʤIPfъ`z u{UTٺ _Z`ɯ*HsYFK5vdPT,^]Gj|V[2D؟j|B'C4(y06Q`>sa ';AJaLAK@\[6]Pf>_}Vt,[|C +[Uhx41.=admާFk="cP5_qGݣG\|V}ㄞ|R,1*OP{&Zi`ErV]pU"ݘ.6MDnr+ pF# LEw^צ +5of? + Y[ liԯWUC+n |_!fuG8 Tq7<^u7B#б&oqgt17Cf0LM501p؆`vMVium@G~Q|~&#W[΋u=gUf:Ko3ڼ2ab{4E ]ezLL=ܩZ蓷2ōAd|Dd)e1q]Ib߫sdO~)J4 ^gn[ޫMhie"kW;V5*"˹/UAgwY+B +|/_憻A wƝ޴MXgPG6QDNU$1K?Ւk:ͅBp (u/~ѡQF/4vדv52uLګO#˴X$VjesZT+ +' 8^[³C 9Qh,@b yNiʮ?(ϊU|/՝\3D~R*y!rfs}%,lb1?(\-i*oh鴑D+Y)cp~ΔUS(,K ]kI5qq!hrwN]Ԉ MGv3b.@_p:jćJ_BJD.a0At%I>àG3!dYs2O↾ҲU1*Q+ї c bHpʫ6p!dγR&(),J&D/iScMfoy:RɸԘg6l&OQoncW8Je;}KqNr";P.SWT*)4f3:~'"[ +QR,q$"Jep ZdH%⪓pn3'/ ͱ ;ftN)tey2'W}?_ṯ\vB$ﻧS{`O%ʜ]Wl0ko|U +̔ 4RI @HD_+n$JYr7}|!~qtG_Ap붧H2.h1d<|+F0hRI#r$#j8nI 9f +$]oNP W03̟_z x[):+f>eOjЗV`fVG/4&lq_8@oN&ZۈTcW K`G]:%0tϕym +8}P/^>=qmwkUO*3յR(k!Y.mb,i1зhȍ%UjY ΏǹcIlyckF(plfyC3 Uv쾹5 6LiKoWSB7k3W]1媋ZM{Ǒq1wR6+1yk(aʛqC;^F+8{~<_7jPr{l6!6xāpʑG)?tHQ}C*A\-H٫&<J?N tKOb} [1wgcl]c$/hkAI&%[Vd̷:iA(E$ﭼ\ ]8aT oDps'L>1#а ӣF +oHaD/lcY♾ scjl:{Yϖ1{^ki㤐)w9Ҡa֣Vwp-c,b< +1`67$AW*̔i敬ZUQMs U'0VDD8- :"cdU%xk.w57񚼪.BGL\!s8<+. TU"p)u~qBf;ʙKr,ҦkHce\&u<]+GyӴ`XXf ?:XmA8?Q:YF乑VH qGM7!ȇ">*t?챭\clk̠h +Q+ND +܂2sijYxdڼ@/DCG{Wn:Z>}#3לVSڸӨ&$qPH7^IPL$%@h2dRм#k?-}Kp.JGğD*w2h)t`f%5kU☯  q]WCwbG&N!BaJ\=ܝux6/Un,wWYU:$1DIbKKsr/K)\WXao}3]}5o^ +PkvO-0B .dtcSQ#) ߌ2 +-p)2GɵEeh Ⴕ]q=:p Ѩaa~)5h&%=[ b2>xR )^L ʯ +L}ҫ! n@w)Ke݌ ½69 +hUZ ˇ9mVG]ja[0s5X >RJsh}x'l%vcD( +_D}d!K-LɣbX y2&sOʷ^)[/ ڃQnO^0JdeʌzQ#&{׵%t3y>gRg&үl\h?È#f*Dzʐ pTE&h{ܮV...sBȬzw +)NmUO㭞FN?m (DRUD$4Besc 4A8HT~B1dX|:{XAmy+4G {j7 EfV\KlBg5utΔNN).S 8 gϠַR8~}0CP=NL3KM{R oGVۥ'됚-sPh'2 Xщ*Q(K&6J,wcwMAjMx*Ul ܤG0s593- B/՘D6@OR ѕ^ '<2uQ;yC!)4o{c.buO?B&6sU,`V e0΂cXSp՗B{80W0':]퐔7l?@4w}#c̝K2bl 2DwkG +IS|mt^Xn%J{UQ [;*wYjz"z[;v#?q5|1Ɯ6Z"4Q06ȝiz.~ 3R$51F7|$ VX~8 cF aF\RoV}10?t=3$wvGU!J'^+7|4?ؾCTmK |;ժR46k0zs^uq| N[e>s7FC{Qc9FK5Jr܋s s^/kNl(!D"!F ܋J3P -kjG/*Ü*̲`n@$2rtlZf%9EW*O~|h{H=ӣf"> +Sqf4`43^FC>2':@Pp84hJTb'Al[sՋ7o6pvC.` Dc,5b +^uwȣS_ n^9t-ܫa'rE!ZsF."gMjwʛ9Ŭ(q%@{YƓ[γB+2ڹ҆37@ G:9KV+RF85!]U7;#2wd kDs?&çJ2Δ$c!Feid ',d;5%)q)w ˩i%E +{K2tuq:_]Anv|U6veZ5j) =6ܢoQW\i +n,dꂓrI9]8)8zvd!OBC'Z6ȝ!JSs< 4Rhfp/G=B ~0@#[*O^L:B-Q|桸,-,C:96yhϭT]s';N[- al1E]weK#kg=I4*>\3۔r2T +p0r&0ֈДKj*ETWPKLyczhZG}0?#l7 j{.ILG0s1>aݷ.)\(*+Ȭ{Sf8CHS{zR^V&0DT?wQ(_I<BCVlX3.Wg 9w|-+tH&K9`(ZCޅM*Z;("66MrlG?wV*i)o1 Y- +Q[gs#$egWnHq0t^E噣gY Y9x-k3FaYE8Qwyw\^{dCGz[ ra-[r _gWy r{-oEHgA3]^ +S-/",.nex.eO]7u\}cQ';{z|`dHϩH/{ w}&#xgE@Ҕa5\h05n"rAEt d=T.έH8 +qhT.gIoK:O0 #g|kt| pgC=ڮg.+,?Ręk@8؟κ!%hB4=\&1tߎX2&&\ 632`FWrUzbGMLxp+p,.ĀR3>?Iσkx3/}L[Sx_0lMM\/Cԡ;u5Kټ:t1ĄY*P>nzdyrx7*9-Uaa;*eg}Ux1(=t#֦_rY6EjC$dO$Bx=zZbim P?Tz)dATyy3.ùTk@ΓElm 0:> +endobj +607 0 obj +<< +/Length1 2853 +/Length2 31846 +/Length3 0 +/Length 33454 +/Filter /FlateDecode +>> +stream +xڴuT>SJIK ]2 ݍtw )!Hwt9Gõw5Td*Lv );3+;>-Ƥ2w:ؘ߽@w-@gl X{NjDA)rjx؃X31 - :LL#cMܜ-@)@YdZhc `g4%jʚ*t̐.vE\]CS !! i155~!J<*,k\AN7j3jW3G;h-XXܘ]͙maaps@>A66W`i;~;IKi i% "w1H#Ǵ9 4@|TT@K3 @ .Nd_)Ϳ.s([4.fL+8y՛.d 7{kf G($+%<0;`fgwPrATl*ngk a}>99zm s{PYM~ŞEl?s x9@&,3/ŬŐFx̀6N K3 +8;|V7BbZ8CF]. 6K ao ?[OM6S3d$h'D 6m?&ڠlim6ttX:X:!/ +6A-e]c0rs2&`҈a o9)e1-5wlؙZl\#d89^63,f3`0sD\ߢ!. `x,/E?EbHAl?"q@ \ ?]dWdW U Hv?]d 5 Hv? ?E?A+1dH!?'2&@&"@ӿ BПwpG26@ۿ@:cAhYI!a'$ow;ǿB\:,T鮅Dfb/i_BbX!D愸!/=%v@K )l@fRj6=btrF. ?[j}m++bT1g,_ +vӤׂpB̝,dt+$ӟ8[8FHrp Bjs Bx!=ECT}t~>s/s߻hg Ҷ4)2Q:;Z뽃\j9W?_bbv^LLlB υ +9/ ; UjShdT+*^J!xSxy ᢀL";>pU0jkR䥩WїURt4WY30Sqѿ@.@c&-9z(}6qB_Ѷʭx ":A'T'ۏ^F8rtcUZ` +gOc=cF22t c-%4r_ć`v'0X@ bEE +K*gyJ,4Hφ;V<"/_fRomqu^:S+I0^6w!q!fDZ`c2P2HW}Tr0NUApI . HGנ`J,)ͼ~BuIߘ)0||i* >Z숾7^m,Mj^JgL>Sln%$״ +jhY|D>y+kLL~g[ eCYgCk٩-Al \Bߊ󒊱+jh9:/.|+Q:;c.}X_vZ9mҖ / Ol>xzMbYU7t6G$lX,{T$"QbB iJ*b6Ւ( +Bu:@H (g( p)њza8vmo}xuK| G"TE b[@emBuȤEW'ũ!̣J,\l!\&LC_^Z3ȅA[{5,*Nׇh"q١zr\a\1rNa0(_ʛ%W*NgC*(q cq16oRGp2w}mf35J͟P"CN4mp\> u޾q1 {+1eCC;:W7~~z:ub+ջPzp}ѭ9{T^ן,S=\T-y&߰]bP~ѭ 4MĆh!JM8~'7(553Z#Ʌ!XXQb8:<28(fĭ "//y99=X;GY= #>XHy쁦|&\%nK vW38$vJ~uȻ~=Pm +f*^v*2Nr=C2( $gLѯgAg<#'e<2to\9] HrZaDmMǵ"+2^FxH?yhү3>R3l$]gTde[-ƺ/O+`{qR×ٺiD:aCVRY:u/I40Ҧˆ$mFUa HՔ \zYz%a^pN]f/Ϝ˧Yn F? Bt5/_84^mРHGd'l,B+`N)}&+I8ZC*l]b1-h[޿= Zٴo]W6QIuᩤHȍ;3|$/HԴa/gwE?6oZ0}w#eZ k0>9oWjPgU |;}+2r Jj +_2m +I(ś@ĉC6&upHє{|(}/Ud 2Ek_Q ZطѾ%^0v"k ܬvqP2TQh!!BtR-|]DQSI~,'`BVQ߫<{j(>ԣ_/<ԛHa gQ2Kw0銲" 3Mi-XY╅3F=~I0nZ +̜ZP<LBOqb,>jA1}̈iJ!]%6rm~'N +`$S=+pU$7[MEUlY,m<;}Cu{5_,?:߆+SIij@_^ܮ"6|lS ڄ_uS,ʝ.x!M=icx+L<O1s%Y럡fZNf䭔%0;–1 er3) k(Tkn6߮ϼ?aHEoBGK{Rx-٠if|D3exka|r1AT8bB U+d}mE8. \j$LurW-$XH8@PyDё"L0/f`43%uZܴ " v(:c$UuvT#pܚx#iW"i<^$hG+6\xʟ'Ou;7~μ^3aOXB5̩o'8X$/kn%- I;мeA("JI(%6E{sNcM< GRR%lJ9VqOxa<1<"x, ?pZFP7MoFWhf͸b=ghjm1Ƴ6,n{aVp\dBe2NU'xf|Bz>[Z㯪PϺB<갦5Cf7O7cϪVY{>@xǗ;28%޳ 65.ܥL,7GM>#u&E=܍Nݻ?B?Q0.tEV ؟MH 6? ( +G"BVXf׈0<.w@ ӈ0qEπ_yZi9"7ʧ2-W fw?R;4̶ёsĦ=x4.̴p]-wd?^#f_(JB#U^A7V]mlD@Iy: bqqVu=.`@<&wp[Vt_UØ_{ՀYXoG? ؠ~(I*Z=>q`b<ƒwI)&iScD0 7f>7iӠ>zuz ).a$ailYlEndxak&k6-Ɛ#cf|?2&,QNcl="e*37&OFc֮WXx7fMT +DcxqnV_fg[b"px&Qw.֞IK]EׅN/ՏV-||o_QGaɓru΍!r3y6zC-y|Si;@k٬ zxzv])Zk(5]XZ0bź>oY|RZԏ( +dǤoWJzjϵ:)6k9w(/sm:1rߪ\IYI] +SI ThoO]6cnOKyK\NR;e233e +՟Rs+^O +#Ne'?x``MqbR;Xo_ +G}%CE_5hБVTEMz` +Fg+{A%(wxHvĝ?2}IafjFj}rY%$pTZ=E+=4etzOH-] s4߸@m=8te7f9m,E SṈ֭҉d!eGG*͸Q{>`[q̯so=޷ !;/fw}LJP\OH!3)hܭlih1uX?w9cf:PFߑSPqn! &p#Ub458'BOƶ,0\rYZ$IG\R}5<)WStţMam_Ipy-sBlAHΛ447Y> N4^; SWSmqS=~WOi;3 (5v5ʳj DZ Gθ'3k dc⡃e;Pg +}tuQ +-  R|5 :[KF 7VXHlGW)g1&YA-*hTi!/kM̺Uޓh" =hJ-{?feDxZoyiq8/pBC:_XCf`tU^[O>o!3ë蕖+K*a%SP*J\`i;#Z jFIy"Q)J3ĶAvΓY#9.0&eZfhfⰆNt] +\%8Ο)}U,*"@;6KfpLH~G$핾o rnSO*V!}/3@+f~N R区ӱ\Cp"TbL}Bd,v +sJ邩5DpE)^05V| +5|gGlNsJm_g<BOlQ |jGv'@5uZ6?HGJǧīݼ`A¡WK"͏$Z$_/F_R+0Bc8_S], ի kv|ANBmZ .CS-_Ho I,6um#k<xSEB+c1\,ڦV GPOgMbҺ7)!`SIVs;\ +-I#A@asuT9l|xU"9{u@-*c-0B?ynȠfv7.bJtm:LcP${]ܖ%6ٖ"a^d0ps%2@󉾗kK}SЗmdmٌD?}Ik \[EESbBN X7yX|3%HO4" MdOowēQ1%[d,|u`h%E"h]$t[lfh|v,g{ywM)F*!rM { 6O[0_$e,nR]L$g[r]_FacfZQ +DıNfG{JPDp/,=Y/ x5CI|hCD$lz tUAns ՘(ð`[ t\2^\.p6*07}9(0Ygh9-gcs9C~C㦡Y ؘ)_/"k"έ'#ǣR0z/~c(jȤ-J\A9w/hL(yjWRi #,#j-3*>kQTuO jquW 4:`N_Rj"qvv迢8ߗO67d|[mSBvr[H,ӕ@[bT%Im}Ou@V6| HC0hxɝco6_>Jl[Tdmi a;B9KZw}H/@;œDΘ^ Y-R<`'w ~+K`% ]2\\gsdŰ^$^eΚ4(lsҹf6G[z$+gˢjXtc>d(G_]v8 +ތ=5o7>7{yꖱ*>Tu7*|RfxmQr_+̻݅8zh?m'Ͳ>w-qJAT;NC| hP?6 +7ї 2$9:9BW$}C<& =f碧ؕEP +ɘɖ]`c ,719mjZ󹿚þ[繇y-}=奬mj=xTeAϏ| 0 +"<'.d.YƑ,ubf$LoUyYM38umhBBb^mNAO ⠚S2S,-dH/ L^>Y>Qғ'ǑB$fWZwQ̀b8~jj($BSEKζX_l:u Ծ^hAS©áJ=~h۞SdOBPp; +,HW@]:a2m2H0Qiwq Scxm!1BmӖ텐K*ra.()G4xg^l@zp)#HOU[u|:y놾p2g^f 4s8;yD͍67%/a_+79*wU}w.i+pVv$wk,ʘfFHa&+Ru +Keʊ ]eGazptqn BV0Wq[k;c) lЈE'|v1hL%(R!eᲴ{ZE$4+= ؛k3J :G>zMYX@͛l[G ic 2qAvHE:b"F1-=/%\AJn}$>^N{J"1PT#SDK +fGX_@W䰅KX&ZuѸ&5Txw ~ Ť?kWjpa,t\֚8;`\IR,;uglRQ9e]I hm#w(Acmi'8tq]Lr\Ʒh QlsYbadtl&aD:wA+?u +t>lC7bԁ#V͖.ь]Xǿ- +mxL?VĹq؅vʣz5']XKb](5UYR ?'R1Ysnw?Pv򎥍:.1ݻt+1k!$R RdAa!<`t5j?~;NzD4P^kApfi@NOQWB\jٛ'ݾ∫7a5O+3F~n{CՁes6ҌY:pRS)ު1cM?S-|qAs"2'iɚ5]$Q+/6[K(4z3HIB.g

J)/tMGۃs>>M>a?HԽǐu(}ad+(UNlh+;JOIf0n$Ŵ khǭ:c嬅sMЀCetA/m.p|I۸1~ةDvNjF9v u!x i }g79C.Bͦl)&7(Jy[:ڗlOEocal@sQ!YHÝG|MI/mv`8H{I'b}I=oуBwbhp$XSګbVz^+=#'p(*s(0f_LX<2)ScB\e(@ST:|UqUh(vV|1{Tq +~;4>b䠱n JI؆~,Y9|c02c6'd\':χd M*ȑ639-G8fpƤop.ORA+*#}—hA;%\c^ŮYo +nZ!>(Lz]8(gH@ݹO*(D, +>RDeO8q40 r+E;0̗$+uas/P~歰OUi+V(-ZGsɼ@ k1]:kb $q]#Lc(v8)tM.ͭJ5 v,}FNAْ^-=ı2hWo1Pmp,?gSM=0Zdeb"w?=aZ]SBVjCsʅJԏybtWey~:\uXdn?[<2*)1Dj!=vT)v%b Yq'w=mf*[Q^gw1)_.jќY`MqYU O&rE1 B7ON-5Lq'6gIs]QM^قux'Migѝ}1tA&Xztc6'bQdU}?-B:K~9v'}Vԑ~?/8/7P45#πW-tn Ԫ>{dD~ْSsi`g1uL +fiMw8ԂϼwVdKs8aY#*;b tskbpm7[!Z/4|kTf2N'OЋy0k54QjYzF?,|t>\̡u4c6?[mDDE ]q3MZ [6}π$miY(5FU65omJ6%/,ssdݒY)ZEE [}-KZ8[kr%x|j2#jv@ oi5n,qH1憇JÚMT}SBgSuM_ +|me[w@oiegi j&k>h+s }.^G$CTXn/%Ϸ6ΞSՌ'' +\{:MO+z(V[Хx*˗'tGEx%ࢣZa?9;J%f5>U@E^W&YE{1[I>Idd%jXh~-GS6!΋ πbe63ВxzPTau*Fw2O]#<]8QizQ$I v.u* Z )bb I@wp'$-~_:OhS}Ka(h%}+fF+LadvVyZrU/]DuO@툪oT\g{a=U.jP'Y'V(bU^T23;r+6)ޮ"A);dBgj/8[rЛG'nycԸQ1g/:q|g =^'P4~dC{{8#alWIJ[J!~*-°m0=&3C,Q'kRM=BYw 1¦__UN}P+95L e߽囆z̯=g975kMݧ +V]u ix7Q~4jIXZ]$7Uhߴ+ތ\Ȭ;HuN1xHwNix̖$qly #&%E;=R3o>NQx^(ܦYS]7u +J f6_o-0OxgN ErjdfElY3>=t̓dK T0؃T笇%pH[e驇J]ҋi_i>֮ 챃E[G4܋4B +R?>;찉E e=\lwEq|Uz1&cН^Uw7/HX.^a\Pel}e||>*XT#MFu0 9 l , LS=KX\h᷈s4"qMQ,E21Nk8N +GIX)Y$YHW)1&*8U|r(fQ)ɕ/[OFt J`=f;MITV82dp>?Sw/xpLÿ1`D"^6R:P op["-~fȭcn-;op]–3ͤ4nM聿f|<Ò{Wщ6G_24Y3VI-i;}7NS'=X3 KbQ,E:1e6Bc*T;mZqYvawN+!1tL&G*$%KRxxG仡ixEq2sXA6|Q0ruT%[}[KhL7hw2{Z5;* 橨Ĝ&~L&6V3\SHz$`1%;*`45R^U~1˶!JO-=[f]Nv#9޽C_\ޙRZ\Έ87E.¤dES_}ՒE0mhF+K[,wvؒ{I`+Sܗ&gi_F)Iz o;75rn6/Wjz*W# +[{4H2鞊SO͞Rf_Rhdvk1v;"fc d/8o @[B-ݲ"fQRƦ7M1˕Dv VQS)pm7hggK=V1bcB 6hp-Uu/ҨB>D5S*YŅIuZ/Ǚĩx'7OӪ.>+ԩo2W!9Ml^P:A*] T`;iěîq%<-)Xv*"čKFU]Cf1`@ZՎK7\[CkN.>2;!>{(WA7U+1ǻ\JAЮsC[uԒK3xa}:d9"^;]$z *:="ҭg :*r-.6"[VMոh,] +8F_ +~GMw rK#qAHOײ y*;ǁ/eGlIUHU FrT%OlB#Yc4$3GGExR7q#ً70{#o ;~Uz-_/]td\+G9,ՕD( gWM9XxC6ȃKOiNgN-xuWF̦PWnYw#Ʉ?sЖǖe@<8 j<1!#>bZMEc"p~_ +0'Q簸1J52n7 ^l`ߦ|Q;ְG]> J㶽 gM1$jul7 + }ov/ߙ4E>._d51u p??wn҄g} MZ<:H1q[IOm9"CAq?y=-ԏ/7zD%>DS {(dI޼ Q#bG5i Ǫ1L]Zl?uZQPk<13 {4wdܨڟ6}!ςk&\$_Y( [┐| +~WUE59VuW"䩖6Z8`K\К]9BP}WLn9΂ m+!<7! }L%wW[e# ]&T9S} XiԑЖH.B:]2|fo~cu =I9 8d_`/h5[ ]t0n| \>)C|7v\ 쨖R@h"XCaݴ<wqBL~Pf#B"ޅ8vBN(Y >BH(%p_+=&POxø4 \%/M<{x@NR΁`fNЋe;~W`P^ !_= UW/$.A ]LF-0zosGH><KO5#K"#^)Ԓ:2ʴ߅>cN/ +W1Ohx'%i/BDZ~A8ON=U)o^b f]?] `Y!NJMףDwn}΁h-)}Ax-ecAG#;hҲ5'GpYF]񔛿l(m8OԐJgkkh݋RҋlKT4 V0tzA*}=l4̌7 U.`<`˃Aϰtiw!;y ^ +  2bD.llh-Y sS9]?|ԟ?Tkj^w35rJ#8}!7YxIFk?2&+a&T Qv?zE?N4\Q ƍ.98\iTǿ@ZO$6џilE +ZR)49d;K)R`HyS K}՛Y$|;AĀ;>]>7OǙPV&>пNՀkLЃ,s_e.*`tj/HE7RLbEyU$x mEEdO_귦.MIUî}|x* bϼ@ϒytPKG$^e)eTt],ɀkįOɆAkz<Ψ!V.s? ¨lV{V +3D1?.egVLږ*p\,B垟W,uCʿ(ڥzKS$ J) +:6*SU#,=,^:1$4+<孍CbD)(Z`tg,ɳ;N͑b9†,dqXDqqJ? 1Ш9͚93,p"-8Ŀ~$9Y?5aSυLx-1{22Ve21!{첃7<$ͽL&+1w)v+嫲QYʶz5 V$h\`#RdeoE@r<ҩ5MEA, ⲡmμ{[cכ|JYUB/ A>}*3&Y'QRzrs9TԽ W C涶?ٱx)a&"ITsJ-mþj=)1cX)" +c)ҵkʚU[zut؁jk~2Sįmu2Z!0maDO\b`Lư92hVj +LJ)w|V̐/)h<̿4c5m\KX[6R +{alcy6ҵԯҜ~{WUWwb^%;ʴ4{?T +vRqi#A5ؚ#M!N{rP^z. xٽN~X}2ʈk_拿)V/@ѱا Z*-8ͽ t9ne"*iN!݁袎\\;Ko nf2ߗ|bKfdȨt#S(i'5ꊠVօ<Ԅ38XkTЪ:%`^G=S-12m +,<_VzD~Rjpi?SG#VuMYQRchpx b6Tkl< +d|?L@ nhB:q4{}p&16B 1h'=W+I4B. Ue}7nE-%4clfǘIPI EdϞUB 0( 4|JeF t-=JR(_tq?z Q{ '|v1Ɂm SF0j0 oƷY½]',O&7"h]ruqI>3?Z/ԺI<۸"RЦ*9)f.`xF?{9%qδ&;KC_s3iܰc_D<9@<0MNf@mWvSod"ƃ?Tuך¤͒n |:]B+2}QB9l.Q͇t@-" a<\csf!Ȅef?F?!`l.VFy L}v1btDa%Av81 u+nbYO7Ed\_SR[X!2w'6SRu:z{{GBY$?%("h_;l}M;~:j%qb +`%}WD '7ncHcC2iE.´H# Ԡ<O ti~7+~t>+ʕ H.N!?vCzy#ҔBm`hY=UH"`WpkvGQq \ȯEy +H.E?NAËbFJ3M*FWIueFYl˨fVז^!}νZ}yzS?JLDDދ(5јUX%ځ.&d4 d.\zzuk7[H<ʝrq3u}#zS.B]5l2>]2ᘆ%B":#k[Ƭ;c+[Bw)0Ϡ,ԻA-%zNͿTH3g`$WP4uEÄq-/IۅCj~|\t~I;v}jw<-6 + +2K1 {v%@zmߔB tl%\4Z&_]3McjWE* 5WPZ-"~؈+.8iy .}A3%f[sCC}{3l`bk-DkhU,@=A(|Y>$rPMh\5#~mm,ֿeS3q;gE>F?M(Vi!8fطK/NPʰͻ}kulkSK[NxUϴA2^L_.[D,y-WaJlYpiӂ29f2yz7:Dc . W"A[|wX9B6xlJ1מvμB +|.)u!ӷ鞚bˏyǴ D̹_2L>6^hjMjzݙKƽ'+?Ɩ*D3c{NĻkgg8Wp:5᷏35Y@\o*cB@bˊD\kei{[a܀8/s)|5nPiT-u3qq=J:ywOK]ޟԳF֫]"='/g,TlYuӥ (Q n#7͍^K,{gK%1xJkF5g31oeP21aQmx$h4^./ z) kpV:(`m}zpRVX.X#q,{`ZLB@/atVUoꢱrgS9?=2+F.1-?t~sJ`C=Kvp󜩦q٠nyI1ƂfpPX +b!Ԏbɼ5OJP_٪B3]UlW@[Fhh᥹%GgnZx0\%W{9FdKG+^w@܀6~u/cוΒAYԴ[E.,5# "/ő)p#bM)ve*׸tNKagVJ$/WWrHy4 `:tDTs a*,rȑg@PX4/V.8 l]mֲ"әAQ±[^kwrzwl8h_ w uUh&\oK*7AE3RMW{"S!K[C܀}9`U:랎R8-^kWˍԼs +pLXYi6ʆKStt&/0w6tHQzH !e(X0DW@:vh23  -s Q.ԙ!XH|V Q}T?R[uhvͥCҠ 3\6J߅Y$FߌF4XB[}MMtb|tI'ܐmBAbfHHہV/I! KyJS\u4U@16 +dD^FM_^1n^([ѫF%"/!{ `r4&| ߵu&Is `WHS/ 44McЅDcj;*%C4N-ש67~gYuQR +MY2RS!r g,FP"hV̉zD4L tS mŌIBKuR74uLRrl[; +|>KݧK;X#ӗ(oSY#HQ`^,r < ??0]8{YCI+>͗3xQNU {XT~]LF{/[^GE9{PxMwR;-āQ;gzC?W&)j3h +G`]MXlJP1'^ugrv-P5d,P4vKY|2^kC4Ҙb+fN =6P줨iW/V% 1H3t"( hW[y]Yz aWMr2ޫ]RL 6M: igXhmF֦3x:d5:bL'i)` }dQ[sBJ[+}-eLCI!S#2 +qI>'0K?R^_Dk#nijro&q.`&f=옩oǶr%aEI x㣻IaD4o`vl Am9S$XRkrX!KE"Gk@"E9F*fg@E:44JK&ll "ta΍2:qR^4\⹅3k aӽ< 5s4gBtO]~Dh6yʽ<5)K^"ɓ.+ߣik<%Lҫ`mk`3MbkA .Y8ޓ 1$1\6w_6KmK=8ڇ)Is`t\PK[9h}ރ_oEXKOpHU0`r zϢh&byh ^LVɌf쓒xS髶ΊRϦ*L  ^b9P"F%U䴀F +[ƁSO uN&]U/"Qsz=z BGQ-%[*Jqπ'"LbQ0N[W߭ 7Rϲ3Ay14-5|f`!YE#[ZaS?F9M]3s Rge_H[QHLC @S=p^[) 䊿lZ&1V0w$/UA@K{*Xu&M:?}WɽAW6R Yވ'M#]׬+Rąri/f mnen^gh=+r.Ȣj M @-$YҲ $nQ*Q~PޗvIA;z 0hrh*(@4nƠP1IS&A3 HDTZ70e4Lh hJr-@2Ρ'wD mgB6$xVC1d )_h IfF ΖYDa3O`G\v &[=u>P5EFlƅ5T懳m< 6A>:mn7ҡ@[gB }g@ŭC[(w4ffkyQN'^U8dh=33M [ :8XK-ޛ=))+~'d^ی,EYW՜'w˓T U@,J̹{X&* E #4 {R_5j7&Ise'Z`ASv 'eH{Fq0ϜߊBL*7Z~dzd]jOM^+PbIz(nӉ&c%lT1A0!&XȒpgυ&M>c{_,k_ç9)xOy2JL2 Em0#gcaϯLqpLg(i!67[%dc.pR ݲ&1hdE0R9#2xAU-uM62L\{]€ON8L$Zps׆8b(P\.YvaM7ѝ Q4aSqABa4LXeXӦKҲtpL$_]u=.s wF=fy&yDH5=<pk2f))㤁lUF]g?X'~ 3iZyNABs3D;RbBgrhN!I4 0`몸 +|1zwYN* *[0V: ZlK6(0>e''Krs98lX\.<_IX1p|Gg0vOWZ +9j{yǖ 5;J`Z/zWIѻƲіk$LN6n#;X72:رc!9 sF!{IP*&x̸zlFQ(/"ϑs&8@ ΋v4.&̓iyÁWI9 $>8ITXjNs&0+\ăDկw0j0޷3~!!cOγK][h!I& .(5{K5L<*i-SHuPĊ̈́oxi*Qc}~H6]Pt6N_ChoQ'_~E=|gr#ZEs$h/Q9R)ܱ#1iZ s8TjZkv/D1 uݲEs*v[]j -u(3}y4dpWr^Pd +g )5Off{+LdgV&z9h|ᩨH0re_y%/ PZM uHD7=XDisq ĢaK~9Omn0jڷS5F%4" <ŤB?su؉V4@-QI}6^1*wXN_K/yfLWe;;),p9 A]Vٷ <|͸[H 8kx|0% X;_a"ak8?$V*k +[o"0x#A@/O:_!=k,* 5^Hw񘺪 #U/r S&%).[j\qq\5N Pxo_\-e~pGz)߅xBy֜n[hI5]Y$'po D^EuETf5Nk#t?4*s~$j', bbORd [#mAxKDḩbłv-O@_?|wƵO YbE%QEZ!Ƕ8X[epl~Ohңll+9N_#? `^3ƗS8YX~j@< haI - /6Fn=iWBL0=GE>,ow}A|,IꃓYV,Ht7"!W>4}a6Juۿ_Ϳ_?r}C{dKbѽj`{9 +ǟW.+h$v$xN#44<ky +RC>vt%ki(?H!&`6򈮸(uH쮸1 +1Ӂ·NR-D YX4fB@:N ?8#I׽*erͨm@zf=XQTU,3+T{7'j{0c]`S5lv}:$z.c^pxk +YƜ,,L7Ӵj9A͢ļ7!af@AJ il}LVʎvˉk(5QI(A`,rU ` +!g!yo lD`Έ|k;ܥ".P_ڎ(&5g+DZک(%>!\+':7YZf*&k*/ ^fۻ?5 $==s3(>&֗jtfIjNo}53џ.][n: Ba_"}Q̸fkq}9[XY`4?}6L)X S,cx! +=aY MH?msl38bW-c`XuoΔ ,}tO'~C/kR^ۧJ b)u+L.?2 AF Uz |]剑pbrWXSpds12tV)(Y^]>A7H~ +endstream +endobj +608 0 obj +<< +/Type /FontDescriptor +/FontName /JFOBVR+LMRoman12-Regular +/Flags 4 +/FontBBox [-422 -280 1394 1127] +/Ascent 0 +/CapHeight 0 +/Descent 0 +/ItalicAngle 0 +/StemV 65 +/XHeight 431 +/CharSet (/A/B/C/D/E/F/G/H/I/J/K/L/N/O/P/Q/R/S/T/U/V/W/X/a/b/bullet/c/colon/comma/d/e/eight/equal/exclam/f/ff/ffi/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/openbullet/p/parenleft/parenright/period/q/question/quotedblleft/quotedblright/quoteleft/quoteright/r/s/seven/six/slash/t/three/two/u/v/w/x/y/z/zero) +/FontFile 607 0 R +>> +endobj +609 0 obj +<< +/Length1 2037 +/Length2 24066 +/Length3 0 +/Length 25294 +/Filter /FlateDecode +>> +stream +xڴct$ں5:ӝTl۶m۶m6;t}}~Fa>Ys@^F(jcH@K Qҷf`Q8YiaHHf6@N)@## 8n-@qp1wpM̬)B6nf&j0'[ oha`aз6Hdm\>frkT`c PTDbr*Jlmm5@X@VYT()yUZ7*.#,!/@g 3OF oj6V5::rѹК898؛ZObcoxZ8M+i3CONQ~$} Դ;GS}rVf֎@k}kÏ@G}G'_'Јo@2roQX?f6v0spt"`lf ϞYeQR5ti]SO@XN``THꃵ̟ }ލ +06623{#'[:k3;'`m3:@;ДOÿ1/[[ 8;#"ho2|? H}#[PՃci?F5 aVl ͓KEg H8h*0x%cWf:psv |~-6މ~E$o[ ӷF +{2޸"٪*2+e]ǒysmmx!HƩw$B\f4{K$NܕOh}zy㒐Hڪ)*S rzhN7(u&k&6٭+q3+jŹuvtv;+ \Ȟ +TuPGM ety󇩅T#P ;LtIIgGIElO{;+31Ĺ!J/l"R5QOw/ܪ YzA:Kۦ3UT#@ bҡ6 m +O>/zzICqGJ'<ڎ9k{M&-B}<(okp2-^hDy[TؒPGJ#W˾YsYg\ٸ%(7+Dc 4 ô+n*& eķ8ߴA50>&4R$BchBR d׉AblFP  Wѐ˲ FXJf b2h+HV`82wT'$fX3^`i_b1l+a(Fnpf6Mr]2)䛮o ̻ւUmK0jr6oZ< b+.v6\ȄKo¨)Ͻ떊BS(34>mL:ߢ EW"f 4#H xc]e,3Dz`vW coA|pޏ)p<4PA_8Vi}EpHb U$+Y5_zPM?~`q8γq!#jo;Gz'{Ih֑S|p3);Yu\jN룍+c-N03OGj.hbZOzU-RóIebD$]SO$HeNt +ֹM^tAzY+UpARU'ȗ E :Մ[uQ]vL15Ҿ4VI>w+I7':LP0oi@-GO}Xw@[Z]VO(ɡoI[Dž60-Eg1<[$I96[D,zI' G tJJ +y2 T?#ݚC;2$tkῈ~2lSיEM?~tL\ݩ$<0}Wڴ^|Ҙ %Z^ٍC8Nq0=K ߌN>u`OĮ@ v継8ƾ7W3 +]>?3nR%dpoK4+Q޸,N/~|/Iv׏'fMe1=s``,TwgSQG뷣$XiAj~iq\O*4e@SM(ZPZۿ= bl!^c.EY6+KzOT'0]YGw"o;H3Lb=vhx+K +C5Eq-,!}ϫ'_mŪ5i ][gb.9d7\mqbÆ8qn$瞷%n} ߦb>Gw}NpwyAn‡H4RD )GĜ< r&G[>3^RC0z~hȹt]o +3ndi}iJ1v2RR`#9udw=ud>.ƌ8VlKhm lMU)ew"bU sB"0c8 +Zٟ?e|bG2K5'|܈atWC{/ƺY(ǡq"z=zG9ΗP#I^)Y}V?u(TgtM/]K| 0-bE[Bt WUj,0;͵3 Np) Kfe[1oNgPnC +M| \~Mϖh#+ +,q}GKNn>.u5^+5ތBOzU{1ie8fKb,؎ _o6J,|L__[:bAyWxqQ*ԭ `rm@zjy C ;G[d{K^з(yy|Cfb5 +X:_Ruqz0bN;}ow4UlnR +)dCs خr=RlhI<B7i[[J\+ՊF_GԆo߫V.@ylv_Q / JqV f5)GzbLUHKH#? +fC)Dڙcߣn:L]!mRY4f.߽,kL#ն_JunpӘ~Hc5*uPq.B*{J}Ǣme~Dj3WQs :-CLg Rb%i8\1b~xN p@DXˬ)hgsFQeB sgvє +BXɕIJYM:UHf2AmƮIAΩР\ +WL,*q4S^9XiȹB(zL1y[D +2HWL c +R+bc/_'|h$ hu,; z_!l46@jQl| :$9\B/s0u^ds;xk9#I +D`6뼭 ^Hiu*,-/d xdY9rjp/峭sۿC* +z.=yzhiG[^7 +H@datc߬2atJܤ]5T"܂*" j4:)h7ڋ 6]<73wOnZ>cV7#FPqz q#VO(?9$$ewBY4(I)db-D:ƇXlbs^!ړBHaf snNhckق=ERvhZVl1j:+֓Pl҂Hb.$̤*-ٌOg(48dž.Rc +e!AĽW vMݣT<{/HvXZ ^OjJT iɾLu" Y"mWYPkޠ46 纴{߅79Mi7x6g!|0&)hcsO @}]㴖=UG)%X8 +r<qz@B=HynF>v9!wṳ)ЋuH+L;Kݙr)"w~9A ٸYT ptkB=A021.HR ZNNI,Pŵ+^YT6ˢԾeL'RCHӰɻ֦',18~1)"]LKZ&~P2 +M).&]% ؖߺ)B +Յ'Uʮ'Wl(UEݱ>`fX\.KzA%YD~Wb.ڴ]8A\P7?C!Xrv2f +߼'= +*6)7.KqNnRbeULPK&BG'j$#GLȊ(M"D":#vݞ&T^4ߴ3InT +'6be `kbp=2W zsӢ. +ʢ<'d%oȱ/,~׏N +6>H q#z%?Ub$Cd`t dgd1sZ6"4*nͶт {7x_&UԓF&?iC쬗: '8q>ZKYS;{G:oU,KrT1#SK>ߺOxhO) +L3AJߏ 'ł ոMkLzHD4"Ql#u{ WHZ&(3EɈEH`qZD`e$D, +!Y|^J1,027Yjwe]-\3}# t`_b.iQO>l gXD5 !ut;q.aQpI)|:qOGQ.s,_h,`4ey4-p[!27.P7zzv>F#䭌Ipȇ%ZF!v7GǸj7{VHbK`= ~R/Q䔍Q20d [2w rlU̶W1Q O̩~u1t<;G+&\D#7D{;O;K;2- g ىݜv4NY=!p*ͩv o<`/n9PlCbP$ean}c8FHX&GbU +V(gYTt8.~GϙXqQ>A_0$Lݞ{G2`m2"F ~_S[wvW/#>XE&?nV0Ӷg#O 0n42,[y0LOs߿5(pes?_lu{mZEoeM*I\;$S$%Rc1Y:& 93N 1hB>LT<:Ehl0<#z>~ = "vH%r_]*FVPv^MH7y>kOB؀5JzsN2f5~@G ziD+`DP3~Ć(*~X<ɻbioxہ`feVuYɵo}TLz +xPfϏrM{^C geϹ Ԥ%[b $/:_Mg|}"6./=b>1\[crƅ^?}"|}P3i=u$>^$ +9b c KF +U3u  żS~6<K]-@*oEa1e(WVC%FFo=IUU +)kWNoG *J2;Wy2ׄ,Z_ ] +!E_,%ESqV\gHb K,JGgIPEY\W<`f']SoL9Nh?x iG&hW-?0*̻}Y){&Y<6 p"Eܜa0[߱QC 9(B&0b]=A)Q=QIz ҙI[UFL^<%斫@eʊz6LE0d]>g.} +Y+Vxw5za׷ӱ2Qe[+K|k |lђ9蝓 r:Y2W}lDD־i],*{7ڟ3g}(Mx%mK;Ƭkd湖Q2ɷ4e^x1ӲwIwA;mJ;״m  E*N1&7cJ5 ?Zgю7A +Cϒ˕UϪ@G~%$X>o'i{A4tyIjwI9h1ǟ.O#W[GǛfǴz;_a[<ڽ̸1xbe&&>{9A?jKtw<{!Gb%IZMAKʡ]ct+*b1cc؏~O>yZtsi/Ϥ;5pJɡ *Dqi_E''5&߶['g AmSQIȤ͇!1ƯA` mLR0]'o 4!ʠi|i;#RikST93muRۨ12\ +y1g=c[iz$*ʴ[ݽK:+2 Ln^X*<@̘@>Tv$~jMfe?qjzal>~P8DO*֋ 0_meqKa0$ϸ$*_)k<1^8I1 4c +Tt'! @r'4:aތz IvZ G:1'7,y+rIeEOb"7^פs5~^lʣR@K[E N!\l:4 +Q=2Tb#1 +8 h/Sی<.\Du0BPK-G;+_[UBbϹE4*7*R关\ќ ߱+ +4hVzsM(]`i[!Cp,E~Z=\@gAxFTY-1(t/fLmV&f-?3%w"R`>{*9UE>c1j51$PSOukkOj PbcWL)ڄD>/\ cc,P֐e"vRIE^/G')^|N!t֙y.16D7s +vHLUͼgG M\GiZS=ݡD+T#;{o."r@k9(0S$ ͓0쐵:swn2u' e҃q{RU[:t5dSUn}D]~AʹR(@ji:3%ѫĥ>_lns~][N͔X'I8!t xP l/=_I/!^vrm /:j2ZN!&oMC2)8V"hIO*`R . ;^7d=`-MEayd d"?z{dGpfP< +A0Ź kV*UYB#rP\8غS⥍S,i +bh^Z'BDVd=ʩ5ƭaA7Csŕ~4rz;KKu.0 W>󩰫O!_;Sk!Ӝ5Z z`4S0۔@Sefy4*lnY#Gjl%$7E9=QL$3z^Ӻ/N ܕ7m/f䵡--i QHP_-ߪ,bS*Ld`s1l4NiR2L^c@xr]q[cedc7pI;X *ih%B_|+N_m&ړ%WSuAisQ0fu}^%n2AJҡF(:i9ⷵ~nᎍ ~Ii5 C[MHTU%B(,1Bs1u1r.~Lj*4"M`\p[P/-e(s]G ]eC6K^ͤmPp<AJa0p@\):`=|'L`_gqYHhRSn{g1T&4/wlGykJ +M_SB:kpspPf3`)"02brm# \Գ}a1]~+/`DrTWzjވh'/6^1A%,ke{isƕ.1;)]W*߹g~U};ɭ6b/qN|۟,`T4ъd1d8 SQmif>jHBSdw[TJ:Å, +Em%0|sԈuhl^OҍݭuGD-aíbF\+ %"f C|C c{lQйZTȽTYV+vaʤ*!Kelp̌ 9\_(M箖c 9ɶ (fn)R_FFҺyc>Xib۱K76UG#| s[7-Lrsy1/h5_tyo P䭺Of7IC[mOqZCDT*бTy#\ ΄מSi.gN y5=~Ն;-7l^H^':;g_ýز}۹VvІ 9(*fgg ? G05+2 ZUnIgXI|yZ:+n*_о&0^DwL/#{$,#0Pu3s#lSGʯ +}>X[ܶRd dLIޕγFil4OG:f) yC *"ۮA4Ӭ3Sl+\[ً); +􉘝F!Üa"t1t׀!.\ BRMD 6M)߭mh 5OsM;IIK.Mq3 +!%5īnͭvd]OV45M`Rоv>w!#wWexY)H<4 M^4gr ij~ժOhK>#H1gUgn.JD^]Fݪ1bݩ0kUEsQ  (X;Ԫ?'jl +",FhC3`|yNAhjP7A gepΓzpHo26ai -w:얂0ι2һ]c7aVJ(1gi\5p LlPA/Oݔ“IYmͥ[:1;~ +(o)Ze5'W+I؎-tb5N޻9` Ϥ?ݢ"xI=]`BVp(|-f#%TzW]XGzF)EDy$N¨$su3{dSz˄X:W޾8w7GyD*;7#}Hς'tLD%D3F άUC}ͪ7]i0D3(=X)evkZBx9Ubfm?e4oNX-U(|znq|tMx%,VܢRF +C#KV/#x{Ǒj]6c,tʺL㣽 X1k':Pa3b, ё8h54łܗa79]Q)a@mJ@B*9:}ߥh+7Qxl&ʹv=D'ϔ) )r"b$ֺ53LM'N/.?SWSa>pxdb;%~ PIdD %]N vzl"'^%*DԖ0f3'CeԎWSB}amO|gý蓴W@Ҿ?o0 Wz|ÃB*ڙ9@CYb71W,Y=yv3ZC +ƴ &pn5oetMb=@\X*#A˃FvTQd^X稊$xvpk͈k{^7Q#˼Y~(6*O_)e@ M7.{ġ_Pz>Wܜ>câk-5,gUJ)surEnY@o_`v@7Ol]qt.r-4Kn_x2=qٓm;h:4K@aq=Ƽ02/ôÒsy +x`VVtX;#Z"Ó@yn7@8 ;[ +SEqm8q/޽bv> +@ny+q#ݮ\9+I8VOr.QAɴM;tG5Ybjcvokmyc8B-'}n> OךDj5 @ }gp KUDPx&[Tؼ4p!Ns[d=M4&K]'F7v *ӤU7OFHń9hl؁ba _mB掄a&h9D;zgn!|< dw861[>&#OKv-~Z.l悷k7뛿#"ERd(OV'h?QEc8pD6Yʖ= 88EnlnlVĶm7&$ilt~zvg ѩB1:zV$yqiK_G4ӤgJ5y2~p:/_Rf6'&e;O- +2iק%ŬLf1Z2`4Ɉ >! &dԮ~:^2wO!Hr.f wPYi͇1$|6|cdvc''cȠ۠C*d[Qƹ<\<_/52>輡7S̍ƮRTѠ˽Υ:kbpMA( \.|=wD75a -sYN N~W(p"%hwȚiYo-W5l:e*^B*3WU,v4%]qOyb$iN#nǺ ,(LCY8RԬ: $ЕJo]QzW4B3_݅#ŵ FE+QfIu4͡=`oUt`ܪ{7rXw,n *VԛPd8rh +L%fЌtP͵`|K.PU_4-&{ʼO\U+)J3Efӌ>b 厕١frvPSWm,|_B]C +'G -ѫs>l4 +H>IΎңemXIpJh+Bi_oBlo!7@V?쭊V +/bo$QVY"v 4db9Yaw<aCۋ)j ;OR[R!z%Ж 2y{+nO|y+TA"MoO8 +o 6XCWЂ0:㮸{rF IP s]qbjEDmlpPao"'uhhcIdV3 "xeH|vi]߲U~XmGJǰ\ʙNKG6"1#"G񜽧Sh%s jzk +lhiUoY=B?lhԕhQDU\5v.AwM h,i+@]fʮtNH+QkcOt;{勚,$rcZۛ*hNKLZlу[C] ~9ړB3Ă"qJ҆P_BT8(6qT e+V򴱐(O;+&S8m1ut{n|KiP@BU;k*n+cмHb)u2G"(tQ_9  nNٸ(-G^7<f“oϊ|݋|()s'8r \;Bi|򍖬'ߒ;| +\i;CYzMq2b.s+皮kɞɯ_!ȑC:7٬n=nSFvRޣ +1>R{@7=.CwꪂSM{z߯etF+~c߻{A#J`pC=ui7qh쑀:_]~m­6 JTGZm$6X|IRM{ cJ j.c㾞~s\ 76R+}+&wu4œ〟 нʢΪg ,˶;rIܡndϰL\N'͗{(ev}ٲ򃍘{|Raŗ]Y ]NP ݻfno]lh@1 @7m)AVXG5ԘE +F!!\PۍR o:zOӔ9{ULx*j,M*A2+s(i~"!L=:nM!-o /])# ,!p(S>,A>h +r3tq{h0o`扗]|x&2XHݯo0/U'U6iNH[eXVc6)&j[ͣ@1Y_X̆8d{S(8I0&%1Ldҍ !5G g=# 9z ]@뒥$> +J,-{@5a'ն&*rSO@mkq,{'*TY5ykZW5,yAU^J#Ź:jS*LfLgV¤fY@Ub)7o`N +7 +iy j/.w ^t0Yyj(6OTK_ؠ{D cjF7NY61۰"wF;tѭU26hqgq]n^^i/ط!Pw$=a4.s(r~J:d';ȟ;~*91*ى!ѦS;l-Bc/䔹 ,%c7r_>(:Ƀ1soj0FSXnf; ,z: O6TAOp'L/*s9ϽLy^Nwi X"~e>cpiiq^(PԮL*v%uXi}t`Kk - i脰e(ׄو +Cw3T,Lf\#R)4}=tp/a#>4 +R61rx>\>FȮ Zy!?Y2.ΘOotT8ѷ5&Gp\qMMpy'"yᇅljsR#&fk >!(3nGF1h +8@ %c-4NUn&o*&= Uay9k2^m#w cNA]JٌwWKחK?:PlIޢϺŁMP'\ CȘmx/zC准,GXvddUT!{D<Qc'}A_-1UxX!JMo8*ᄌx4;{4Eկ& 22ß f'-gLvN)O_\( Y:z6BpA?GF?bE%%84ȟ?MKbaw`hzF)tx>͜i$[v7~G|O͗X_)ثXDp)@|xB=۝in%NWk*=1lF֝ KC7;eZ b?p cJvHOvp&NY6!3IsQ& C fZYN0?Ò%;#OPECp6ąI9f P(|G\{xtb'Rcn~yb]0HծƲEѡ6>CqJBQ.Nd@7TZ/ZYy*TRNXG:]80\0tp&L= /HPn5lqENļ>P.@ōrAVr7sj $;rؤg Xqяu#VIн7)'bsB[ܤ]}(!޹;kxwJT~gpLSY{Boq&B6^+*%-o$RGB^?܋L18:ړ"acL ~^Fe* C5^cُ35ngϫ:}#@߆"g흔 ":rc _n@.f, BrEuWU<{vyGgׅlW+ nkiS/hs?˕?N-(L΀lDq̰][U+|-2aʻDJ#4MfK|~!.тr}H0țS@휶5m'MI+xz ?_%"֏a3 5o (B9o,16+2^f7q| +SEC0 +#{*3!B3\Z]?+Ph 4+ Jelh{yƝXbPK!?G_(ϢX5XOO*Z*;?(gfSSⵓ,u"`sUZh"un~Z(["ˠ6)!=硡o M }E/1c7#$mcڵV׺Qϟ0h/p{BS^s2ODs'v-o;Nŋ(j@K?miͣ]ޭ]w#,kFV(3sT\뗲äSz.gVY݄vK\Ơl{|Wgb-tтXr,aޣKv5+K +og6@X~mf h8G(M{^I;aȹaDkT0&y֦=Z2@غPgQ0Ox.g]*g+ڢ;o%=;ui&߇#Gfq1C/D%D +h| />N?Gͳŝw}U2hr C(F,R9ScIAW=b/o*=/2WZgPeC5pkkVu]?!l1,Ÿ/lxFzAN\}Bx#!QqӓH_>Fg(<€o--$c9qJ,W ^>5ϸg6ůVi\_E$AP|~N.^_x +xr(u10M@sxj؎p+8%ބDl򴆞IqUhqp'8>0K8~r~{s<ŀ%jbȊ*Nù|>I,q"63Z+F۩ZhWDhp77X&pq@KG:>N`?3zO;-v`$&+5{[`0ZTuSMtaC tW&T%jj[:Z{+[zT2#vVh5|8iah G2׷NЛ}>F&#QBc̰rdJ.(>%jgw  <̝QԗpP{J}P͵!u))k'jڲUyA7dkt5S Zwq6|=\US+D<3̶b djY3*>@؈@4!>D),切CXS\InD+pU\OR9 +gݕAՁ9e)ڷmF# H6yF/wmd1C@i8@3+<9ochZB版NWym<\9~Zڠ1?bVnnRybU$g!"x>mLS w&az)( aՎAwC^/4f``aJgwOa]ʞ =˪+OVO &_P#S){Tw/bI¸3^DDVyQl2K┩!H$mU%tM͌{$Qceypך- tq,A! AkI0)|M5hF0?%/Gm-8T*%(4/3GpL)Z3ت4>"L:  ?ߩC.,Zsv9>bk[WfM˫MDZVм?W +|J!X"lɣMZ*iBm& v5_Ug< a@=ׄbǏ偕&;2]p^ASQI#:4 6+?@z"P9 +S@~=wcfb8t2zόQRQn*V]M[YYQ9Y19`l1-*4Jgd}1l\diz'ttDs.'^cQ9ँHq=f +o佻#&T<YoZpomUCKɺ62 ^nEE}Ku4@ܞ{5+~r G|= 8q &Of_߃|b [< Y9Sw߿?T8 Q, W6 o4Iև%4`ud9a3zZn\@V asz_ZZ _ed IfzބtW!{GwӨSCwޥ@RAMYEӒ;.S\"UcT|WX8Vhvl"$Ipp$e:bk3b숻iƴ:W]9K$B?DB^MEu89wN_.ݥA7n" b! aj,Roi\Ve=>+2!⬸4t%rkFT2D~^3+G?Jϓs[ +\\W?mR=H?a`ӂ?EQV /C + V`ܪ!?6W}? +endstream +endobj +610 0 obj +<< +/Type /FontDescriptor +/FontName /JLVZZZ+LMRoman17-Regular +/Flags 4 +/FontBBox [-400 -286 1338 1125] +/Ascent 683 +/CapHeight 683 +/Descent -195 +/ItalicAngle 0 +/StemV 18 +/XHeight 430 +/CharSet (/P/T/V/a/c/comma/d/e/f/g/h/i/k/m/n/o/one/parenleft/parenright/period/r/s/t/u/x/zero) +/FontFile 609 0 R +>> +endobj +611 0 obj +<< +/Length1 1635 +/Length2 13356 +/Length3 0 +/Length 14428 +/Filter /FlateDecode +>> +stream +xڵuT[ߺ5w/ +ݥ 8 Zݭ(nE ).{{yGk>k +U 1s)Hva`e(*C, KW;F t%. @-- ޜSOYB]XLon bxK8x:Y[ZlqV<lk Je@LAV@;  hiHkdUT5X +k:8@ 3@RLYS +fhih[25MWS`{oF ?R- 4[8Z:B,Yie p8ޮN ;?ĸtM(ZΠIҐ9ߨ|Kz`oDip3om**`6{ t:LAtH:9.濡C;:{/n `gkgU,@;3k?6%1e9i) M7Y oY]<\[OLRQ `\bo/}o<@ۤ5IWU '[o'~/e$RE[Q0K ٽ&W]nѥĆY>g)Tdؗ++jKh#h Hwpb]RV-ùOs4:a{c z [`2)w٭d-0$dsg(OAd4u.\].ً^P?c'd!elFk.ΡBvUAHr=<9lx̪'L2kG#ZC3z.đF9Q(Ofbj`Y!̳st +5T1Cb;ʈ̖5H'N!MMc9/z%G8[A"<)ma~;Xj.qY-ӓ*6mk: tUz $r|+5'wډmh +X x/԰ux+c;_Xc.kg;guWk ɲydO$ + v.Kv+$Z#xq`ˑټ5+mκe^c;+Umi_^K>tvN7Q Q:jh|I UO*?/h3Hi{)9IP;PI2ױ2H.:Ƕi۸X}!"/dҁ-+45"g8:Oԫ]KŶPdV,D7toM*Id8[H}D3_8{k8ȜeS <dYP+410#e?8N1pOױ/ xpr"?Z! =idUxe2=pX.4ntAo#Œ9e℄ڥ_FlVۿ иH5e8'qL WbF +~ o^67{64U iSV3MzK=ɉ{b۠Y63}rLo + %;c+xȤ}RY(||>Q]vӃo6Van52g-&M2IThR,_22|O:1gM8 &Ix|2ZG0Wa{tU-&9_vHU8{ + ݶi2$yE_ij6B?#ේjԤh:P`\OJnE>I:8ߚa1[r16y/k&Bp%7&x͌? 6.=HB)3_bl7nOY[cwTOֹf>坂(I^? %bF{g$78AS=P5f핓3) a +زuaaGɦItI=i{H5ÄrY^@ +fB6VN팾TڠQ)*OΘf-G4t«Q; _sٸ)TEr~T*}<\SZapvNO9p%vc0s0gEcJf]bH@P6;@@'WRk} +ћU^P zF1Qј0}.H|({ GD{Ih'!n.!nceC6c_-&t?HieF5qiWvIꚀ{j K=4J,ТׯP$c4PS1BV uTi^NzmxhA8qn/6veT +cX rZl*M.*D$!Mѥjb>͍T[WmЧnos5Ԗ"M#)t;]e6*KG"R[DQTȗ|e1mْ8Ť~0l04#Y{)EzF ^Jc$LXъ|ƛ;-4!C1T=FiUt,p\k #/eZ,(4M#,3a-V4z_T](-+<ĚVLqQE|#u5TN 5O1J/<̐;s{*uD%p2k9U5PҘ9ȝ1"Nˡ+`9TD1Ţ')`k{|m ,X)dJսd L6އ +hO(*%5Y?֯eci^Ahy`ھ wzNh^(N`]_dQZL1I]%̱nqB3bcvsQE`]5{\`,O޾2yFmC4rOsXzoC7nF>=Θ#-?wסG4׆a޸۹>Ϫd?W9i ?|}#_j!;/7,Dg <${t@/F[Aw,+L2J8?VrK`F2O8Zw^Hq*}&LugH j^ 5yT) j9ߖˇcκto0g݉T7.BesbZE^ +$uA&T'i7Qt=]ZOj0=Kz#1h )*d9FV;2a"_Y䢪f94G\bk^"#0WB&^֠f"̦iD3b@9 ndH~c68Mr+!<F2|FfaDfOF*$Y&jtZcJ + +&iJ}VɱyJug-%ݤKf:k զ,˅YbpBMkA/Eu(Z*:/% nSfM ,^"¿z&?ȗbf̸QX6_O;uVc4I*f\Shal=s~Y= 0ɐx*(qR[[+9ӟGp]{>KJyÖz7G/-6rVK̏e#I_ $vnh?cu;poys +I`cz *uЧ,ۺr.NlDsjdz*z$gXQ hXVz5?,>^Z{$q) lISO-5O|sjSx"`UH%Uct>sC1"fh}Ei RZOC0]=Gyͤ,OBD95Oֶ1} }8OruK١˾'۾z}.\]PmI H 1G0';}gVQ{j`< (;|*G7&ĜJ +wu*㞩Eu xAmqFJ)G%^wf&ۇߤUqZTs m/O ԗJU+3F&V!;C?δsS-ҥ ? h)N u(ee3/" $d dTgh> 3J# +Tt,}֥㛣)ҘHXZ +G!v4uч &sqf8YXۆg?<2LP,5Ch̝̎Ʈ8/2{%AwHe9Kjbˇ _d[q#`x+Фt"tB]"yEzK͖&,+HNꀊ I]b݆}HԼQSeLD7Q[l[FAS6HiU">sZEWp`&+JMkN\̬i>kb2(bba)ƩVAO}=IlU3-ETw %Av9ս&RطBZ~ \C6FX`@8y37WCA1|.`𾫩?CIpNQb&<Snpa]5w,ZjaFC!&#,iEGY&tLȍ5R}@Be 7OK%.ϫù] eqg%Ss(yVQ 1TpUAJVZ4϶&JP :$//Mol+q5폵\OYdZLq@6fvy`zBw]C1)jn-(`؄p)Wc-_D'J,s5 +ն{U=!V,5I'N4_ 8 .| ~{Ԩ<5%ǖ@l/s/# dNHzn:ٌ^ CP# ) 񔞼`>g(Bt[T;۴gH6Vc_gj$t;gJ$hWe K%ug&4dF~q-ݯeFkJ~lҡ2%FXT=Lf.ZAHyJx(g%:F#e=]yAd?74"\jۣpjٔmrl$KfRz!>č˚fנ_ +U5mBgT>E&6ҷc805؝L||;AR7GG8;NfLSn}EK3+@8jU8fy +y#gP5Չ +}〺SAV$GҌTw D@ڱwNh&a.p(AAß :7z .d,N|.ɸY$> Yb,r_kh`><0z LNdc6yr~à +0{2+^1dm5/ftoa +{>#!ynI>r_LSFܾD[Lgw}֙ƈ9ݑ! +MSpn*]GX05Rt,b/C{azbukhYA^P1)PΠZ-P[iKǨb=D#O f`D(͊*v.7˄ }Lϓ!+To`:4*,kQ7x ;ʋQD/y &HnMC9 Q%PI7 +A +x«(>]Y? Ӭc*Xp6K NלiFÄ 8g*4=HB=._vZkd4/|N:<9^1Becx؛X>&;)8hbV c,kE +GX8gz@yb4gq.ӸF}9J/w^*9)xV "0VG]ԯ68OTTI(7s;{mk'j!Y7NѦ'F|{w2_HIFc#Ou؅M[0҈ݰiӕ6"4>k[]LR}k5$}6*YQ5֗s>poh2,[|u:ܸ̙CeJłkgg(aj&o)伫[eݞmX9ř +5V'0=t~>43v6YF)z"g>)Vmxy"(ݚS.yu8lxn{ 8{ktVȺIW%[$`UXUQvmא|b̾P6qT;۬p(ޟ~:sY˪ v7e|"nk>YYQ)92RT- 5E p9م%JK.Ya\$,]rv屬\b5m.̾9`ͽ>q}w[ 岋-l" 9a|ΒNOij2_]Y-r[# 뿑gB vSv?Uo&nshS|\kWؕMFIt47\a˻Cٟ}&ezKnjkWPuB@.YpV@8?./C*m.j$Z%'ZZ +;xN-Í7l@E%?j]b#壠;MlA9KjnMx\B[0cmH٬\U l%+;ڪp ш e!{y,Yn?,aN!ݑ恥kxkʈ +m#24WdzJz;%p%~\obP֑敺ټ٩%oaJd+9|S_Tcd:u3&X%~Wu{ޞѯ:>ʷL+G6{34؍q_J5zkeōP_ aƁL6۳G>"3SI|\ͨdu,˭dJ+?Ehb Q=]~Xb(C]P3(t?M\)4SA geKJuz@u헗@;e3 9kvLֽ26e\z?-umN8"BNe=7A \O+2=W"jQ n*yp^ e2+%kcTߣ| ^F/u"]Ŏ`ѩ tAa˝iT$-9W{NoQ,]A.R jiu3\8`F s;~{ NHRX>Xs7B{^{H;"G-OS逑 YGfA\\/v٧) +v9E P1kޭka /ٌ֘#kF;& hKBt#W\tP#{pO4Y0qHDGP\j'zW;.f`J7U/V)x=9.Q % /9:hA:tÖidD$_wyebHJ%) l4q0dhmN⁁_VUlΜfdH|q1{3R3찑-(~XepQ +}f?>TyYpuQd2A~<ҝ=/S_b}WD=E͵>䓍W[)Jr'jK&9{~Ev롸uX? {vTi.xb@1@)];I̎'p]ʩhD_ lpJRg";wy[/2 f1y珂!-V)7ާ* +(&fT!NMM"ksͣo]"VeS@7mxgFwyLU]@=Vzi8pwe]%Ӣ6#hJuw'+'Os~֮hCyY;Q}RUc@wD u,X}n& +HZ=rJ]XXAd7b+B~nQ7cJi^JlJvX=^?n0:!MSc-;5$+쀺knj2SbyJzPye\U}Q!0Kb+`)> +endobj +613 0 obj +<< +/Length1 2168 +/Length2 17513 +/Length3 0 +/Length 18854 +/Filter /FlateDecode +>> +stream +xڴvctnұmͨc۶m۶Nҝcضmۺk}~1S|z띤J4v&v4 iE;[F gk ##-==34) ' g`&ؚ8~*ge{_@əSmbkfakB"dghaf' ͟HiFVvnNV[c$ -@Sh XL&%E%g`%{{;""F URT|*~7*4.#,!/@ WG'?iOf}:@nlIGFkLkhFko?es '¸_4 madbdI_JR~:}ʝMbZdbi 򕖗X:}:88}ME ' }>w6uprvWDNzfaLF@VBTDIFslid>cKxҜvzV3sHElll>Y;A)g=\[ڹz_өZ8Ho3`0q72i#f#,= bO"h6迢Kؚ8%d*)5B9s_D]e lLmg`caef,,D-M-UK@LK/ʟce9; +Գs4lML>_?{6NLJIS@_f"FvfFV4@0>g9]}v#b tBFl:#vz߈@7b)tF1 F1 F:# :ϔCO_S1ӧ??9~27d,?,>eG?f2|&G(OvYr{G <*';O*N\?~2sG>~2dQ6Ua%gG;+5 {&2ΎZS_:-oAA;w/ff #;gKY?|um>?;`bnb4oglZ+k W]2tdp6 _^@<;iqNu`4[c__x*2%($j2OgķTF8:?SKZVsgQq'ہ?Pc (gsCG$:Pt͑ 88sAcFqػ4+~e߁ !G9m\Ŷov[k)Buk-u+LRK%BWmScLz~̐ErXq/f[` 5 SL.o(pbw"Is$Pl:^,xȡzQwN&鿲|4;$0k:7m 5OrYDZ5C1̭Q!ɕ&7+ʍʧhǧҝ-HUri5W{&8BY>p[:rpnƑP7&A BPrz>QqҼ.CyJvVάvvU#L/V[9̈́e*a~G99`j hD\,b__0_#L5͉xJ1U +O>Z=dVǧP22`~ @M("0]7!dBNf(Hvij"YfILNt9Jp_/n\gd^;߸~uԷ*^@iX{Pc^;ɟ,5qJ9G^' 3cF-9YTLً)n*9#w–,\Dj0n+Y[yx'w  2kClL"3Xta[Eqp LG P^qh,AHK> +VcZ !j@L|F։x[Vʚޟv#fΜjX;y6:MB9F ̞[sZw? |ăė-&6( 9q$$[%Z(#s1GMa'DPPEУƳ5I^|`﵊ITGh(8[@? Uo`/Id25+öp A~܎End?l{0{6a"gTnPs:(ޯژ"tl>Է4 +Y':q8LB ?ii&Q9(jzքk_IU⢖n,cm{Ӧ˻<Y/-7D3+dc8Ϸd`P8>D$~@GdUT09B'OKm.{rF qPzyUDk3~6_aF}i&!WQiFŒ=i{5pp^@$m/ L \F)JC`n[68 a3)/O3̜67 +GÇ(tQoXLF6f0z8$ aUx>\nAāju5!!И4]mϾYj)TmJY6o?(!)\_퉂9 F[$@ۆSϭrk7qN.)~6aa +' ^;hG&}qBUkt4=՗wQǞ*x5m vDŽoR(_h22X#a8 /F]GIh7\b׷ M%Zo3b\y L8殡JG@ i#S8i:v$mb.y3;`3B'D@E'flm۞U'(AfDa_$Q/.=/ǎP(T%x!my;:8 1CKM-~C ilCUQiO.CvGtar0"ƪQZ^nN'Y\+Y+M"^xIȸģ3bg U:]R_l<| Rmvi>~ +堞(ȆjTk~4- +[.W{U2"!r0a,Q:$oۢQBu^RI)bH\Md5灭$Q9㚷cai_\ ˙ F3hړuI]"`-VKW:a/+q_,!I'Sc5x53cڎm_&c[j +ǰsE#3`D<#:J):1QM?y>aжSl-㞜C3_SV);~[#α*Q9%a_9W gkĻ,`$3ְ%h43ú0>j56O)xUC~M6[x o,[įf@xuhn`G"& a3q;F2}hly3>kvXzGg+:ԫ萄ʟxV*륨goZ/ +'}ۅ!*1/[ +%9Fa)/HLȥצE0`]Z͘~̂v[Qwm5ԉƗt?N mɎŋ^\1;Q0Y56՚Td +]sqY㔎/mHat0DѮ7Oalj9ŵSD`gZn2^WJl{{k"*9ϻrMR Q6piy̺/X1 oɒQL6RB9F%&xrZ~r̆V{cc3c-P;QsB,-5[6P9!܏l%^pPl[8%4r)3q<b}^N#!4uw)zx؃UpP*V,DUnr]ߖkЛaZ{3dƧy!+_μ.kΨDh;|7 VxvY +&I/eGa9$X ?٧ԏIU$K`ue0G m >XϢrfD!j8p׏!yXEa( 'V23^(kxεw"XVQdR60w({E_FVʥVD} $lȗ~!cĜ8nd^Am﵍ MC,~ȕXc۝A + %5^Ip]ӏJ鑆]MEqXB~IH2^{f`eFLy]%&Cm]űw]FUqƳᝤeڃtĽ+W%I"$ibQCp +=ҹ")ⅫE{pI Aot{Q/<b%d30۷n)Ct4v(K:Z4{RP}O$z*J1+: ! $I$֔(ASV^-mUW(7 O⋏knP^ TԇAʔ`-O +]{ֺI+.d |ԍ֡MܠWO6 pYXZN"ވХI$N6BG&ȗρh[s?`wIQ8 Gh:Ca:q[hE_ewr2{*ybA2ëJmA3BjIT .!ƈu$NJrA@.DŽҡ_~{uU=O)7>v%U F+WM`-}_ZZMm^=v"I1;VSҲ] +Q̫쥞7ܩ\XK 0Ꝃ|hk:G\V5ځcD1,a>:᚟DI 5?LЧ粪~YDF2$#%wg|GdtP|=A[V-l,"`䠕y?y\㓟ĺ;k~YmNsGWU<\8e в웇v/j'2GkW[ҊG`pc+W$|S > skV5)??׫ o{b9ED5"neŕ&O1ok[' L%ʂ@aBahw!Y sxb/ 3k.=J:ejˆ@PBR)|@ sP-[s7ҕ(Q=Cu"[4rvczO"R1Ĺ#0g@{ǒte .ΚҦk9[d6dax6߂7&YߠJrE%Y1"qꯃE# W"cqC{{tVt=XY6,95w;~NWk7ĨߩެSKvvk?=D3#T%5Ph\ӿo{w@-3gkDR+*Gaf2R +CUxxyJƂ*zaLRֹ^lQYE qFVs՗ jFCm Gƃ͑ZT_4V| k OpqV(ͥ^^b_$zRa O/ry $  P+˙3IJ, ~iT (*FG60(o "69G'IF2~p>ܪwa-ڷXh (cb%0Ugꩶqk"rzNhyS $kǶo":j6 ۠n==38v |.yor\fڢˣ"3FJ/N7Z+%CPȋ3)٭ =n >1%)K8VBF-7 h|=ēuhH:-ƍ[;.+FhmTjWLdKw&lڛ5(,%5ίEl[knϕ_eDV(5\BqA{`A#T7ɦ.j +(&_0v5JW+otwF!u8`YiKD]8OIrnR`fj[Ξ`L:HM/EC=%]--5"Fɧ]8ʢ 50)VGŽ0IU'G]_*)\_ĎM݊ Y4ݑ):u)`Ž.B^ .Xm'9`A;6%AHT&eJo7!^pdV7z^)s@mFÐejndɣ||O]_GѧӘEcbW1cFP0}*^Q:BaOՓRwZ;7B13 ,;t~Yh2N[©QkkDz" نO +8{:F`~$'ې3h6Ԕ }_㙚`۷MWwAFH*0UO ^7& HE5~ wJ{L(/2tKn ft<Y%ĽՖv>xCゞB^l2FBN_5Z7[:͞[- dCӍ[7؂C޷GyMPVYsؤj)5_ԜR7H}<k/- #oTMCt)Uƫm3`i0dMX%Os9_jtYzH$p_UhwS) {AF6z4dަV=䶜{ 񜺣]VSmwjx&,G򍞯Q'4ˆY`O+eժԷy9QڳO$.{.e4oa"n-r?,7 WW=<] #\Nl}PiW6/\Ѭ +pfRΎ ?4\!7{V0ugόC$4bG;{%<Ի|F+`xyrTH?oS#Of`3}́ں=F↥72 #݁ARIvXBt87̭2|E2]bӦbkLv8̲I&1fY@lxRgT8>'PLCŷY@C`Evhx @(C XJDGW6Tm5Qiz:f)l2]l>Ac"-{ + %|YvZj[t>}ƽFsOoGs;>UlپLtjJb%|Ҳ<*C첌pX0qjqs8n& YDsXO2{vv>Nێ6Gxy>AD6osU}&|+Mfj 25mU>{w(C#Ӌ({&T +h3uH6uz?o\Z"c/Lv\:E9ᎌ"Uٵ#oho? +F3vU]MϬڶ{i_;T)g'0.Ͳ>fl肔_k~7Yv#~E?T`QqNR4 :I͊i^}CѕD$HQ 2.6c zr^gꢱvaS?=fr8AB +]aцq0w^8t.KM*MשypgF߿`]xk#X8={ŏ0LX(3oT`:/ü9_ +@/iޡf0=s g\pQ:* 7+F%hscCwUrt9bro`K١?#Bxcc h^\wlTH̼{]f_ +ooWWwlQgc4̑ %0BoT'Bޓb,.Աz Ia/b7 wBr4ujkuÉ479t7 mBSCv)ZrYrߡ>&tI~upKF [A&JzbEaW2akJXxFT})uXRP$&Œke7eƢʍS(=-ᦄҸ(H3 +:t +|䳧F4}M9õ4ſyڱە{462-rIѳuH&SAYS\|k%lY9XogJ2i4$I<~TGKnLIxI 6&Ճ'72}_1\:ePGE[tNCf۬Koo&/QO1[ܨVF O`>{d|Cծ47򼾇1s5ޑqY;L -xs}#yIP= dMqo~PC,6 =^N^ABa*^ ' V@s|?”Xz 6Zagyhs+k$bҕە 2& |`:t1~(#cC|@7 RD-4`c8*EAw&ٜQ1t!/1`1[^VT@ {U-/E`_+mvKdDdDpJav%[ٯG'5dO~Y=yX*|/ZPI p=v!yW^"@ьUgN b + +h6ILF 4GG9ؑ`ĚET_0?r'cg j/Gmr\ rr%~&b.a[t+,c] b<h"6+2W?JZ%Z3](f=~LG7K`rnl2 ۄgH!y uA-MiX;Ub#'$Fy̲qSV1P2I2H4г.Z@7|C0i LE~2'Cr{_D>1 +cwG +BF:h]3ESy):~!zft$׾#-Ɓ#>tecOk?鵁5X[/Di,_q=@ $ 'RPȴxiQq/\cZ\6 +,iq _We_્)O։R֘f!'mRx[׌LwR~īAח.NI1Cbzmc%^ykޓnmw@ +{xAiu JH`uFY>Xtjߝ)R'>@z'.x\Cz񃎞Xz7>/:yS̙* [w*?$`.7B[ laO.- D`St;>raLK +,گybNf/82"`7iLFཔk(\2K&!l!6U(D@1t &0ڡc/1ECs3C5{/L AM1D7vFeW) {@͹7 `xpJ%sEYT!|ד3y3,#kc(J+Xz j+_c~iֲ{6X^N,ȱjbTKZRkٸዙq_~wNN6NAd򽦒bQ luƎ6h^>*Et]p#x%0e(g/+tf)U^FOc'yG":NV%\LoOMv} }'CJ@hَED\D4DFI_z*Y R'Z;4fSU#hVۊ"kP{-'"7xKV\HJE*HibT9muq_V+q,wyԼ_a)Cf~}(Q. ,k#I+_-jQc5Y|AXJL5Dտ6  X^$-%{8ҟ!DH&5[2C9;;5X.\BODJ~|aJNA;0tJ2kنGh2)B5Lac6]B,'.9xFYg `;]= A\nah_eI܊"5y'Qʓs^}\د-f"hȐL86??[Q w-]MTjʓ(妙_9!D쮀/JzG{qmZz1<3bfowh8H}@,άI|P":3$| +E.x&9);S-,</)BƖ7V g.T`q[,Bo7ji&sah*L׮N+FܘѢ@s<+߸+e߭*s$9ܟKYJY|jN̂5[kDpHiz 7h9T\-F,L/pn;RkTxIn.n'fM54(}N 0 pBj`3-O&?f -w=R\g3pZptל1*o4KDRot?.r:u${Uz[S:D;Q~h" 2oEMY{N<&Ǩރ};j?%th6rrg]Q+F]?p&!C/Fډ8qё|OH\vtN,d1-9pE>7@2Oq&W#- XЦerBd"½n +e^:)M%m=[^sXv렫CƵ֧-T])8KwjyiXAy~ZQx'nG}@[ph+^e—r!XTi xMD@;kD,=tǮ )[>Hjs]!| FGsVA(zf9 qG9Gy%arE-L{U@]4SdPa^dh)wDNU-usq+b/DL򺨍\d=VA6Ua RLvު(+=*+ZO Ha¹Tl+4^KtXYy@ M%7C"ۧI K N~ _AESM$UWO@Sx_ Ƹ.$jب +(xWav.^4'́䴍$Z b~\d9')F.^kYiPc{IД0s֪){LJwuY^`"zpŦQ2}ʪc–9ذd{7Urpmz~?aϻxWk{0=w]O ;~þ!1HO +*:!& *H@(H8iYGaqfUlm +M3 BҶ$$2ғUt ʰjj9SlƠPݼ2z;乕O 2`K A툓F~|kR;,I@A%5$DZ`CJXq?Ge:35F;ף RdKIk刍%/MkLp+\zHP;:6 {ٷh\B5%TWTD[&<`TUDOT[Q00յ5 :N/mԄFkfؒ91ܼ̃'v2 FEPVi/t8{p|PMq5l'7J/fKN#{WBDZ+rk*=ϔ)!} BL E~u<ܙ"rKL1cGgwkD0Rǂ&?`B_GJ!'^+npZ߅0RAMw[[+/O{C8~jq2~G{V&ODdG<: !H( +t,)ٺ +gsȘ.\Npy ͭvDm],d5B2UuF}1T-?)Ĝ!+aU@y ͍3lݣ>>|%oK^ˣ $ھ!xQ ɓ3[ЙP +[3^ o}'#OCay.oIp eג[ +X@[*T򄄲GD3,&=c엧Ӳ`!߂-Ј\|xTCnñ.&Ut'^ r } {9׮툰Fx{ Jpc6>Ld5 #z=w їT\fy;2&W GS7XhJ3qr +C!+RWք#PҬ+y|V,$=sCVw54S2Hس+>W >$k~D +bKm +endstream +endobj +614 0 obj +<< +/Type /FontDescriptor +/FontName /GKSZAX+LMRoman12-Italic +/Flags 4 +/FontBBox [-449 -289 1358 1125] +/Ascent 689 +/CapHeight 689 +/Descent -194 +/ItalicAngle -14 +/StemV 52 +/XHeight 431 +/CharSet (/A/B/C/N/P/R/S/T/a/b/c/d/e/f/fi/fl/g/h/hyphen/i/k/l/m/n/o/p/period/r/s/t/u/v/w/x/y/z) +/FontFile 613 0 R +>> +endobj +615 0 obj +<< +/Length1 2194 +/Length2 22824 +/Length3 0 +/Length 24175 +/Filter /FlateDecode +>> +stream +xڴweT۲-Akpwwoqw ݝ#{>~YjMB(H#`dc`,j0s 4VvFZzzf8!{c} PXd `d AFzz81]i0pH\m9ûhj4xwu775DC'oAZ9@h8 6@ dPVQP)*)RоVt7!E%e1jX ]ߔ ݟ 'c{?i;3]MmJ 7l9蜝iM@6VS23w8[?퍭j#轝 3s()sCc'Q)[./FĴ9?Ҙ;+%''7@wC>؈_BrHuAʴ=nmht0w9+1{?gfK&- #.*D#>x@iiA.ӳ8C*4~g}}ػ8hdFt?2q[c;ݟtM1{@S+c 㿄.o?]_4;8R7(waD6F@S# +@^}YX Smd׬h6w#`bc<ٙtJD!6߈@g7/b~3|tF :? t&C&cp&V0gЙ0;r53]xY٭ ~o26\fK Agklon1Wj^?{YdfoOru;^?᝻?{8:9r_{S/4V57zDZdoIDO?-(hNJaz?K;̞k_ .ƆpK6\IAE^"P$'jKxY[D|?}}~Ʃ W# z]k/1CTU!SNDq(^<9 O~}N`lYU1QC5 /ڑuG?ۜ -B?Z#u#Bwt7!5>R7=X +k&|ػRU~N)8BϤ3WD#؅CvvME&3PH+0#bp0V[0yi^3?ҧ۞sPrr8޼RV2נ]R 9rjxC +K;ѬDN37ШDьċ_>kZಉw1Sހ%[ R(ˆnU"3 amZ'<8Tu j:T ]UΰU(XDoNخyl}vIjCM@eq-PJuԍ#9M22'"_omG} e!.oR3J;Yu>эoz}E8e!d (j` !+՚b@/I>+o~]1`2,b-j?L4r&afMiDpX.߿,-`^⨙%S"V[+ cq6!d&I)sCrPשĺ>BJAmkYz:s:1Hk8Pfk ѿg4Iꏐzq~NkƳ)hZWfkUX}'j$S@1OCp3*-(է2L4V:\jepnpc'fUZHÐ5>VA\@غU#F)* _sRZp1Y~ @30XC`8RQS28IDYCcޞ/5T)%s->_0a(a{ 4:QOr{o"|GǀqmsG]vNBoEiKiRQFRؘ,ρ'2014ыs*d>KNMőbQY }(xQhv&dqƢ~2uyʄOX<,#';~8܊3drV]K}UUh[h7rE@ʾ1fŃ#I 7\:sS,LNaZ 1b ,9l!EM?3A{:7^C_Um0݋ +!ut υ[0E @ 3tcJnad=vZ_,n~p%2SV%x> !89:H U#kumŽ[똢8;ub'>L:-.l!VO.t-$qG?Fu.8=!gھʁ4T9rM%& ZT쒭Y}wEA_<0Y&M>K~A ~:4EE&gR3݂ߒK#s?JB@ Z1?]zLazTa#k*nu&Yu]2!اny2#_;z_f0K7NvᠩY@|i/T\Ȋa(mrp{IqvЇ:hl:Tps^J")d8ʙDK@=ͭ{ޫd'4P&ci-%AwP.V]"btF\VXX{qylE3}_\.?/f z6,OXX?t{‹4x#S5EuKF0ep͡`!,/QA"s0PNE${f#ETHkj<>Jȟ^Mڛvf-'G~[t.HjvhSJ(skOuWCűWBt.R"JٵfЏj UDqfkC'+s{ͻ1_ѥS +W>5 +MuV'qk.T0nJ)I4!i_ fblxK2o.e/df]϶cgˌ9*yX=UpY 4fAMJ(W>'J-^ $tÖ$N-,YqȡdsM =Ra(|4s2,uEi~bzڌF}/P>JɬWJ$MoYm̒rhpAnҐf^S 1 +˜V|r\ +rY63正`^R>nqB'O 0-"fιBNef%8] +,kdvJ'+k2%GhJP^; X=[W$Z5ժ%žmAȪVX 2ΖqJ-0 E0|kJ9[X1^W/Ea,V*qbZS@<~}$]ܸc0{N#6jV<H{0Ӫ畛[y2sQ3>iT'.CE _ӜG`Kԑ0)ZK95 X 9VW"#a b.R"|rd9r+|5~"el.V}aʨY2ѡEy%\j"?[6*4CG}L3(??D%2Efih\5Q4|0[E>KytP2f#'^YDsѮM--GN{}޺%olc ^]<&5cxp;K +yk0alkȟ]x`$[P58%OWWFgv3+hG 3(-,w a]P^nK-{ύc'3ݨ4u$0u6αbrn=~ƹl lOU +ެUeX!5 &xN|õJ$TYF@~gEeS$"Q~Zr=Bedas;-ty|:Díc.( Uyk~qWGobf5FKI@ewhIc"ќr@.(A%%GJ#f[K/**{|>EZ4D(te{*TO|A;wz,vg ra2@ao?[UEPMTrED糕DΩފRz&?t}KbNR SAE: 9}AR)8"2c'Sѡ{UDΣ*>7N>#am#W ,UåAA?0?SIL'ۖ}?%ko=wd# ђS_.ЃkE w#@׷#Ex pPy;TՄZhnmj6lpQ{K"S9޷O ظnfB +6\~71O\$R,կCsi\*]d(?5K8\_,hU`5cƊk6y +0z +6TooɅ8m]W|t1xH*'J̙9srŷiZG?/@S '|R/nOf(Mk3W;6y[YZ=N'fSS?du$B q:t[Lިdxq'|PM`T.+3i-Z%vzI,icߺ@$S;hڥV|\6foe*--=\zJjxbi'6l3ӏ+ +9Z\vNy C㫲Yu,͊^c_}}t!'5A\*7!;OTѳS)`m҄Kju Ojy Q8߯ٸ2> A 14˂5r bΪ˕3>*XFڟ17H7kx^rz텂RJ ai,_yblZ;({Wpw^Pc8`Zs?Dm_Vq&$Me4K6s\g +˞r+-o)dn.v89J>JѲ;e1EҺhh=; ]!)c'^u,.i +cD5?V_dz$/}[ ͒І1ḥS{Hͻgk&K pu oR[4"G$;BkQT1u$fAMhs@[]qT5zqgr3{vf`얒7P~Z' a١:D+F6:Uؘn j̃=͗3`b(M^IڨlF?Gg3> KqC&Hld%Q7NKW8©i+S#&ׅ 9jvZh0b~ғU MmZDAeRlX_0.4qAN+LHKEME /[V +۵ƨ$$<5xLƋb;?Vh`﬈D+$jЖ(|vbıP 9jY* M?brA֋B{^>DW͏l*JPrytvcկ%ҵ@d⣂CIʰDo@N9 ^ k?MLKnm$JdeO[*!QmAt"F:8Bv.\4Gvfx&5*QB( . <#[X$!A +z7Att%MV~a$X;w(E>μ^?KBlmUDCL +??@-;V$ydbmɵ D]x~w-!{ m Aa*'T5<=Gg{'+}b %4;h5X|6h < +Rvrz60Txˊ# o?s;](,'ҧe|r"|2\)D2i-(.wb' {) +D .n0VmY姘Jq.lT3mO X=33es_^reF)2[+vB_BDE{>MS{ +2gSi*7.[*c7H!;Zj],nBT 2D+Y 9=3Yoi5trfU` +dDnu6gؒ]}Hjԫ+ýhǃmT_bwYWf㕇8XS,W%A?{ph[;o6HЯG;O<ժy/ SYkJ퇯5//* +3H" 0%y1]'0D.U0&cW cwCdiuU7\f>6.Mk{Џ'H-ev|; vj*j_#S^b;\t\Hfu--b(;!OC7RiFƨIQlNA 1W% [#RԴ2%,™Ă#3NJո|%Keu}vh-BsiL`Yv0 S,T|$Z{xGJ@y\ A|CV] \.K uY _˟[斪;d_vZ%40i-IXeQ^)3>ŏ1ASjJi1nDl|%rY|57>''xY8T5M@"|ң]QB;F>twG@Cly]rݱ^)MtZF0UŬZ(M!'Q=&Iv֊UrԧΎ6 w>kOJ\P4q#j%mL_~,:5M=kuO]Y1Ixo;Ji +֓>@=AWg*[|2%2+ iѹo+&hf"{ pI"R e, *l <1F,&M@nM$TNpUׇ>Q1aX'JUf3@m_XܶVBѮKՕ V)3$M[)3[eWnd?BrۂK`sWՂ9i$0uPl2twZDQ $l?D:rD0:Xg#degYDn+2 3A& 4[{u2n{LXR1|RM9r% Y MiR=u\=&h_-m&Z6Zw6|_QK +_dp''gdkx$</ O5qF/"qU<}}sCc'{S)- +04 sk2T6SW-$%p3TSr#bh#ZUPd'Q<ӪܲC־ݕ ec1/+jШ12[¾tR +CBō\_VmMz'yfG0Χ2jPUC?8"%-ݤ=#7c@M ͏ 6Q]_>|_H.1fįwi剼)өQ+zn`xM۰qn@tÐ-]W:A!w0ic'LEy<+=gå Nh?챋!Cfe88Xǎ?At(}_k=WXB̋+^᜹E)44c3NQ{=$U A6:9q>Sm[h\*;%5'n Z@e?m_s!޳XCFб+,te[*zam5^,}Gc/Z!5G~#KTk[a 9l9@USl5qG|YWX|6ư k|ޭҪŶO{fNvo +r!XRuo/[-Ҫ.B{uY/!ǟ9xr.Z.Eo.X7j؛tF- @$`|bPڊX+ƈ]"nw +׭dB0ե#wspS hoPl/I%ۭ$C\LfrѹU!+Dqh1H|NY|)+QTEK #Xu[$G//]׭ +\ѣ-=6UgN:!W/L BgKFժ31aŰSE19d_=h-!HtiW>@Sv'քrʄ`?aK&#=~v8TTe\]Rd4)zhu*Y)Y3D N.o]mf)=8A)bkÐ \3Y":Pc +/L 1-9-މ}—ޓD+RT_ރĴ8hEiLhj: v"0O,_ArHaZ?Ƌ7,<xPS#k<Q3h!UyW +ʚMMw8Nmki(/1>08X$*B¦d c(f%/Fŷ4res!g [0`k_d٧"J8vљ:I, R6[,K 0^xs+6<9DobR6Y 77DK )(Oo.߆ NxsP1u(nE9/Abb2bP墘}t!IU1;_hK!F !~2QLXb=YI~Jv x!&W,1tzH zHA[;Uzs%:N{8(RYxZf$tg\nzcSL1^^ +-ھ0 '{KJHVYݳ=Y*e(!AMn\ONp}e7έ5o"ԥʹ5Kܝc +/5/οi Z 9j-I+-}RbcņSgvm.A`Eߋ,E +zW>y.*(vq0G$1e(Ԭ q]yTJm! 5ޕ!A1:2v>y,JM%u J Ԩ;; t$0Wά;)D2W|'ف h;]=Ւ?cVxNq+bIu`hR"8?S<GoD5_-2.0>ulKp% q&h!\KmbQ$<eԎIYULI*F 7MT9"{}P9dW>U.@/ֆ`5v$_l@`b..MjҹdԚi +GGn#k/Ƥ̎>[T]jN,J/5G%9z0x RR] +NçkwF٦²osz8S [/*҇i,b4YK}Ü}cq2Ͳ^ODN+pq4h5oD,$nTZd;uwq͔(JDx'V$}-%DM{,k*:Acz~pCn-D% Οw BcnѺ*7.靴3W?48Or~{-tF<fd+;;T;.\AL_2 M@}z4U +3{uP[÷sy]_|&]U>H"ctQn>D0 P?zsg~(IأM~^;Q5іg91K6F_n:͘pšny-CU W\X!=֍,A)ٝ(*|Az։[*lr=VV}Ž@NvNqmy~p11?ь)[sŦu3 RQ+Zh,5@e+ظi;"t. =3iN ߏ~1 n^:[.Ngvm !H ?V/g`זrxFQu5^%B}}TIM!ҼO;XLeVf*D+{rs@4Uޜ UE CÌՖ3X@fTlڼ2,VlxFz +Z8瘛Du1=)Jc@ +x'vEu$BWH0Q>O~d3AKό1(aUrTkc"$ݧC +yI?ڣS]vGKj ǓJbr +&e#!)"#π=RvTē+Hן: o2.eȖPG#X@"P@w6Mm)-~rd>wY??!ao3u9V  +c!*Y=/EA$)3!Ph Ǫ,\X#HOK l~eia8OLO]u y[apR_05ld-lL:9qL;d(c~ޘ?'9,?^ Ża%*?#Uĩf^rwhA2 ƴϘѸ/Ъ7R[7=+ +QSfi\i=6acsdȢ˳beHc%!٢0][GĈt0RPA+Mݪ/y~s}-"X`v!iNrn^ 9}Xԍ +vloÐ"f$AV')R+|h +UMF+59Ű-ښ.@\ ՟ʮ /B!~؝=-B j>Ǿԅ&kd.9V7F@eA0Ms+ ΈMd{Bxt~Vf!xT0TSJiefuuZ)(Y!E`ǵ,NG_@s LfL4o(̘a=1тAmfEJ@6 <7C['m;6P[^DbԋY^iv-dP]gڼ|GS+K{CЌP[pSs\.x}d]oy۳UVC&E5%!eÃe gH; mS#Anq; ϒ<ݩݨQf7,4|׃56CF(՗9{W|bJ Zc4r#, My%\}2B  ;m~)ana BY1ۖ.ƮA\Zƿr*U[яm#H"'\$=GPV (kÏczbeWZtvImjoX6%Ʀw}]\ ͮ~e>a8cѹB=H \Rhװ5 0qYe0aI3>vo2ބ0 bE8m]T* =^+l6)RWeh H>b"d8.PDS 3 WUi=x_zZ02e6;"@;yyh!|_grNjvbIxS yCp| +4&נXb.*CLx込xi9 +̠Ӌk0U?Թs^S|7 N + fv-e,O&p=U]vZ+"0D_fqp04 &+}S=[5_ECbtk +Z~mnѣ &B0?gP]'ëDZtXDLUa'D7 C\r X8:ƶf 64| .:ЮbV=R@H]rN$6f&f ^ AUf1C"KjGNjsƢ +dO-QcEWblɭ1v1Akt-E,! ,CڼJY<>XwvOtAH0n$x +8ȃ5ŏs}CMĤ~viy8Flm!Z?-kY:Nj Q@ @$CܔMzRdaױ5c5a LM2 4m2܄L 뿜| *O P1U;}M2f/Xuj'Kr6S jFFë^Qߥ .͋\` + jO$TJySGSA"['"yD` h/W.|Hz+CX;rQu.{[e1!Aߡs66Jd%ǫfլMh\f,(sJ",˝V 8`a&#V}!7s2i[5[magi]k.TV9R_?j* k@ePVTu.NgvψΞ.an YD9tau`ſjЦUWk*w֐;vGYfJEa6-m}rc6flAV%W%CrV5 %)R.l|ذ|1:&HKWjZ٘ˉ[*)9 +'Zem>6ڲZ2bɾV +iQw/FNdkmZ/w>R{ +-cwǗJ]%"C81hC Re0Zg\P!׽.JâLTmo.җ=:5inINT%I HyKa(vJC[r0{x70RUΩ\%-W5z;He 7B4'X=d1Pn> +-LksA0~v>vUn]TD葻ps3~(@ qjqMu&cAOFްN{>2~d@ǕIaf;ں2 [Gy׳G=d53S G~6}#v,zuE;U(О^z=ȵXWd o+^K+dFc.ܘ\9-Fa4Ai8m=DY"&Ҿ8 d^{6f +٠mp~1f 6=YG*rZ2iv;ݲWX E/ g^0riCߤ<} U!| +:r,3z -dh_K?[ +/p} jH:9c,[9 +uҥ"#V(^oϕ0(raJ0BSZ +>DU"Z `4+AD&N$#a[, UrĜY+͇U^ +Øx_N@I@8m@ +,gdZ,yBϤ7s#N9 ,ZlkK1Ѻ,ꪙTTV;Tz Q$j삧Э*hnU؎G%|L5M&b;0vԆ2z"4lUkq*Zy`?:V"$Ywf՚Bp'79}>SYs3ǰO2҂Xd5 z OOEȪZyD|`ҁ)lVCR_Zo=av6t_Jئ3"wZbU* >+@;s*-G,AO7Nfrϕj+ 8Xvr1D[vvl`}ėYsM +~6:~F@!<a/![v0>)m-is*vc 3toc]P!1;} "J9@em^+i*~"UtG7YD =%Χ_#A=cfgg+PK,{̅w9&9\hÝȾo e8hlE)+liRR6S4?td83WHcG%s.њs + x@9oF /6 +$W bkG[1.8_Ã:=6'|]'U5W]ڸXrgN،fѧ1*( SCO38j=E٤SvCrMѾWH¸q&:TPB/OEICez݄/80z@1r1ʕ~6n[*56E +w8w9HwȊAzDHZ4o74^Yg<,fVFͳ6o[AnITUpS*飌QHZ} +^ܚf!R٬׳c\i&B2~($YoLVbƢ 0g\Tݣ{nYh|Wc.(Jo tm/>"V{8aOm>`IH܌n/;ʐ85&Snt-)s⍉qKcMdT2rS2`AWnې|j[}p.m+\tŬCāqu\FO]E2Qds'=i+cA5,ّ"tM=e?\"!g, +Xs?r>.4 {7rmpC~{ZK=?-!zꪨ|4;dWþ>вLWS =6ޡ{sEɳ8زi}0u4<v2Cc澨rvSMJQ (ئ]9u?0-F]ٯbܭ +B+ԬR.x׃qL BT- UcWR dz 8ʶ0._ iLЩ +g{|? &ac؂΄*_efɪ "u 8p/tuI:6caQM/sg {3% +I5 5U1q$/~?a`>mG)wB  ,38bnA. k"aphԲIxכGӇvGfT}/7?pn)teVP˖~xTG&y| +0oY{OB\"jkY:|^>.y,jqǔ̄f4NJP1{p=a3dMg+̘ۼ( +V".db,NMDtJa?3gh01R“FWDTècr92#+Z+d^>Sȋ7T3CDalf}lk@vJ!p.KR;fݑR*.pHZ>TMbe8_v}Wp!y R^D٨xѡvfgsttO"3aTSShp{W((tK_cH\-[#zc+"-V#~1P +Xҵ~)9" 5b]~]_[$#YWƇZ/ly궚 ?^S}SH}h,ct HN'+1X=)6yמx@6k844mQbo%ԿL1oI(ʖd +No륝 M{IJM*- ?m#8LKxݦ1fVY NgKckMEmipɹ†EPNɥ[0AmlyM?}l @y C,O(7"y%g#X{)@Ц)g9qoIRr}MKPW"]]4d[rb@)&ZǎZٿߠ"Lhg;p`}5A?ž9c–*̀\IO>nEiE, &R4XʯUTc īdp!\?ƣ=&g-׆Δ)ٟЕ:qˑE\ 7`[1"cWFIecE߿ +- +endstream +endobj +616 0 obj +<< +/Type /FontDescriptor +/FontName /YVSTKC+LMSans10-Oblique +/Flags 4 +/FontBBox [-460 -309 1469 1154] +/Ascent 694 +/CapHeight 694 +/Descent -194 +/ItalicAngle -12 +/StemV 89 +/XHeight 444 +/CharSet (/T/a/b/c/comma/d/e/eight/f/fi/fl/g/h/hyphen/i/k/l/m/n/o/one/p/parenleft/parenright/period/q/r/s/t/three/u/v/w/x/y/z) +/FontFile 615 0 R +>> +endobj +617 0 obj +<< +/Length1 2383 +/Length2 24329 +/Length3 0 +/Length 25751 +/Filter /FlateDecode +>> +stream +xڴ{eXݺ5-ݝFcѰEwJtIJt#tK7Hwٺ]\w9=jru&1 Pfbcf((:3)8̬.@S Q T;++"5@tyuZ̼@ @kPL]_@G+G kJřrv W;@Yx5hA3%d 4ե2jʚ*t̯ݜ@.EB]CS )!j1d45~:b(iy (!"{ 6;wF k Zk0؉à rbv+bxtUN5_~o +@ +$ UפW;^ip+mM]UPQQ88毁`S+7n..{(m8ue>~cni69ڸ]Uf{l))JKk0)#"UGf'$6>NJ9ZH^Y"OU'0ŋ̵#-m-,+oĢ&+?ѯ&?6+  +:,3-lͯ28@?K;vqO1aA%/+usP^O `DdQ_9^nJ@Ll#"*\Lg*m P[Ke/he0˨@ٿNczupu(N\W! XtTU%dU&hqsqL]\LY_G :@f~K H6 X$ >Կ+EbA? "qXJk#*;EzqX4ZF|+2^AX_Z_7|埙ni'7t+啲%寒!VWWl@W::_ŀ 9_A~V' /5^WF@w_ ^]m<|ejor^Q |K{Jx|/&65/ZTo˿j9SesV6(]ln_cn TVKb )@s@>}" e9֣xsh~rc-@?mR;,ՉJ!)^iPA$ ӛ\u: :nK`}Fo!{ʌCܮ-AYRHJ0F:Ž<Sݖٿk*K.QM}rQ>0>),J^v0]?/D zݨ#/_H۶&'1>m.W + +[Ӧht qѾ6{R lwLIx@Ä*DN{{#F梎S$2S8)L[0|}3ob( O곰*/& 0xՈhTOl*g.(t9;0ϏBf#AÄc]3n.6}%Ɓ,aѓH 󰻫aHf +='tΈ7JypCP; +L&kmGaR]фP5˶;eۅ~,b6t]QԾLIƞ^.Y +ԪyIKwZK+T}ZֈH0ķkJVŅt{/oM4GkI\PkPuT\"_> c(f+j?߻ьz>pBmAD:'f7S4,ř9ǹQ 羅텭Ç9z:ZC!'=h󐧈.:=GH[~c!~1 5]WFEICBVy`O a6H'y[m_y-~ aA PvQy2]w{h}yIX4]m3zm#rDzBi1D.TF b|N$>8;]ayv38wHrL( g' ea(}$}9ΉY#1{8<[yw xCV3!b}>q"Br,)4=e|kƣFN{ۉ6x ΗlPF7"@z%j| @>%w +Ajo_6fw7PC4 !qQ71(5)PGY 0W wwь1Hwk +Rv18]|` t?&ACq',[UfS1Sn1s7ZJȌW!;;("D3KD`}ڔ!%!F@6}d%ytY[:KAG2}pLG9@b PW4Z9O1ߵ@ln2Hoݰ O)jݯo G@ܲ`piqc +/AR7A{nz!ˮ3KG~L^ +8V>ˮbYê6 9ĎgQ ,:?M}^ Uً/o.iT3zAQ}h$?DP0bMG RKӖ~?fy?@-aBrV✖u!E].6xG[הi<^ z_s{ jKXU:ь7P^@:RO%;v F! ΧDYBwv" aнNB$w$hA輪~7y2ŐW̚h*({3P83c.}Oc؈ yY5ǿAHn=/䝦~p dzQ<֤lN/}\{wY8jpgL{X7c_X鑭k$.~l AUxdV=s9S 偿31As!s$sWs0ݰԡ(YأqX 3Cہ t9],Q VNiAy-`oiᓫެ-TFїĸO87Zӥ`t"ӰVHhIRP1-i +1vƶɠ=)n@|Utx&v#IOݿa ɐ>pҘٮ( x-k;C}k +}Q}"JW\oQЙ曭bR*:[ADs962PބJ1b2Jtl2a -Bo` v\-Ӱz輊(>6|Kԩ݈A7ڸnZlm_ڬ6z/!C!"xR\=}#JO;:Չ7J9IV\fDE.}]FAG{R?o Ƣl !~e~/MdǿYڷQX_LdxԴ)YFJ8'4vvٟK_pWnV.@J{jn劬O%Rwod͠Q6uU7Ñ9~̲QxG/_  40anөL7*(Lkh)dtc/?2溨uPE5bt c ˰v>EjO,\ƕqfq2*0cdQٻ. @5d{+ QDiNWM<5G p8!U8_%uE7V`iL(m zak^>6LoYHnK].?$y];bJ>OQ3pJon׾jIXrwӠ%I;hܽBxxv7@!:VژL +S|WXyuثwoooyY'.<4i{ .}]lvVh{UҘ`E hmR}H +Mzax^N2}U=L-=sdQ0s8*/5 ;u8d.@$'HF q3E!]Aߠs~*L;.AuZ) tʌZH#w(S^Cms +3G묷Ϊ/H)v Fs~4t1PPTv?{ +:yuv:dp\xY\K&46t/+~(]G>6;k.K(jǍr}J1"謖e(62_D kEsαXXbChPLYY fXG9wWoRs%ߜ>݇xT@rs͸R[W:WV~?u@^0K3Zs(y묽-@F.@?)>&fikt5{#LϢ2jvMNEI+ 2ld \6œ 9CO47G0X巌Ĕ:]P:-} [G% 9!Ya\?^q;䛔rc ς#%BL_y[ +\ϲŲ5o+-5[&5'z +ujшʌ#O',otㆉX " ݻ6j*@ӢOw96}/fpEM|MIM{:cTw|]5{';$2v U9RmĶ#s$bsqQJD腔@zjl)G@τ冘~0L5r~q\.3!v.rD~WTႼZh +PFA:swVdlMUgNWPM]ME~0b;`u+xJ[fPT +ntO^oQͮA5w֛t¡aaPMݫA1&^S{A +fO7K;łtiy?sq)V)%Q^E5X{Wj2#&r$n~)TtI8Aa G'jhGt=ɠmpi,0 mC Bn яZxK0C&|G͔;|I>EJD-"UH\ 2|礳~4%e7nn_:~.(tԳ<:l&yY`?k3CHt)$p {?z7:~+jsnbW.ׁg[ґ˥wyH2P~qiy#<<] ra«#ip"]4]ɟ3+NYu*!7?X-b-Ƴʹ@~c2y*W | Q//xj0%#2}_ l`C #Xw 9p|-'}OvM|5PQԌBsu6*wLJ  +YdE]'!=5iɿX_!j1}8*teۇP\oە Sa5B-+X}AB8 xGu[$h4Vq^-wTY/yܜ g9FAdOwBPw3/U8CPJ֞4m2'9m0>ƇXD%tt W>,,1U dd>#"Oizg$2]f-2WEݑtL2pD} 3yH9wޖun^-eYNVk1/Rl>%Xb,NcP^EQjퟸmzpvy(#F$ad`d™c=!rېջ8?#[/'o i4Z}S8,֍!YL,-Yu'%(Rn1= hX>5c**s%3~h4ZGtm+0|B_ b>HxU]C󂨣H[Ѷ|pH=Mhz=VAc#. /̖;1WHHۖCz(Ìd Lp o|~e-3W 9/La_T(Gkz2WvWJ3 zYYjdj180 hͶP4p4 Y}ܗ<4<-(,YBL0 >d;V0ACpS!UXdof$*{nm}c8>/GGצpI-hO9*\rul +Yi 4" bAb ~iX۩k~9X(wCM<ǵI!.mKv٠v ]RV>F$FTzxz\0roJN32N( +Hq2zmdkTlYY€F}G [>掅~@6`쇣xϰ&{R:e0!onLAqPsʤkeWqt };nwWoYbkUhVYbHwYĉVmH±`odDY*+H!J,k!/D+no9 Ou L/ߑ4дsDU/o-==TmmjX /xCSx{{<+l?pKڙ{a|imbE,C\uKQ u갡d*6^IZ v "`e4y=4٬$0}Z'FĹVv.sI"څ&eƷ5?i-ə,MeNz1KaԔU y(c|,{QKMFV/Tc6/q42 or>-N [B~A+Bz80hQc +` 7ߛDH^\cΊ&ԉ^W+nSɡ277Kj\up,u\邈uRDWMsʅalAT-َ9 /mDoU+Ҩ˫BиҽmI@#f)/ +;ZsDH"תּh{X!QuѢ(tbZDj!Eͺ.[{ŕ{!Ón?V[3_a͍s6(1ʡvrIV!%ϲ1ɷK=ab'2ra%G@ tv+bjgl_ryT0/lhZ~$R[,r7/wD6ϡ"'g9w|YOYLp@"* +[@L\ +"ZhA5è.r]%Ī9)>`!HmqY8 4.܆?M H{cq/JXnnlbAD|=:.C0f}g0iqkmSŀ#K_݄Q({T [!EN^uWV?XO6Z@<\V"ٮ1KNx(ҮsJ Ec\OҪ[&f' +,ylř/z.cR: "9xBz+(u.q^KI9EA[_Vѽ,!ng逭4QHqϰpB#l,9+j!"Yhޕ0q+̎7r/5կ"(eeۨJwS1pŰ*jfI'Uhh"p<ɻ$ #l]?A*BՊicَ:ި +XjCkz`H 94zVmg]5kn5ї&ob&>7׎?|r))>;&ٖlhԊS1/H )P;lI.Os ձy[$M}=+*f("^,"'^cV&eR!"A+D'"j} 돘5zI |9z ^s1|Y0EAkוg;^/dI;xR7@K_?&٦1~\ai5BX2ˁ$z$&$VqzV@NӇ& OC 6uhd6WiW}"_p|KױdLs~[D*fv:n˜`-gHØz 1)cQЏqe /n;'4l vIO?UȚֆ_/`Yi$6@g`y~-]r &:-}r ?[ѴLq4I\3B~uޝ>̋1Rr)Կ4g]˱8i Oͼե _1f\^W/h+>-A<4>8>Lm!n/qͿh + k[?0kƚa8:}2F ?y zwk߼ڝJ{NOB.f\nnjH6|n,<Ħh+FEI^;+fP%_O-9{/> +fX/vi|@P iE D#JzN,ؔD-^H=\O"Ē"昬3F\PƶKz0E7+Ōj+< ٕUd[UKPnlf\qG%s+DGx_{R KlvBF< Fٕ’ G2|tdI?lF^t3Q# ((75N6B;rBQ~8^JIyȴd[ u>l\#<`xvqߣ}20U H*/CBfխ҂fe;'_Jcx|a@KƊҊ̒MZ;&q>ٌُlN%Dzv)|WĠ s:t{ +~CЕ_B>FR+s\;PEnc:l@Ra,lu{ʍ\"P VGEVfΣVHM"{"P^n'n8y]BՍETN(x D88'¦u%9AJKToCw&?75F7[y$S 0~b%rQ!KGι<2.y^K!1U| $E~.X{w %u6,Yk#h~vDx'LvG[Hț6]%l&wƢ.yޢЌ4}ٚEPxOc9ZYAMDLԸiC.ΈN;̋{Zy()zѮ.s%ʹWeo&7xnzWƺj4ǿO +d[i!Pْ; +4$B>ݡM>@J@!R.#iQJ5YǓ@qR(4Ѓ"5UG.&6'YYwp@ж|*aaA,ݬ:=N"N)5ě|^|Z)2pSx~ApJ%dk42++O3뭄9^{t ĬvhQ*ğ1nR12b@J!38''<(THt*7Tmt&]"R/{sC+`338nEK-XDYvb$Y7WW~̆UJI;z 𫆝VUA`̧A+iؕMXe3`"G\ΆB/Km^pF˚C6-OXu=Ò +TaI}~lz\XkOD(#̶l2)P?/h q:pj]X.{:$x9Vɏ<`қ:ǫY/#<ܔB j:5..kOArN,B#nLؼCwcuRBfS0?&V,5]Z9aн~pi.$q֓Qt2~'T+9X\}Ժ +@ܲE(=QrqS-{chw8p֍gy7v۹,WPcaB`N*ʽ\I 47,h )CL%G^qr =26= 'ԇ㾠[* , mT|l`Wk~ V~++{[ba - VCgᲝv;.neXlu_ۙ9>3Fc:2en'76SA!Uvք&;ūQ{Z57a_>ySp q*`@,Df{u]_ܙ(s{OI-\BZo bڕŌaE٦NQ*Z!yQܧ#mnOڙ#x,wtڣTq,ݑǭ7\DG;=+F:*N#{Z$kj$ȵ֏rAyK$]/7Z'oyw!luC@SGbBRZ|Nj:ߙ& clW|7Um1XtIt_b-ɏ3EF81U( z!1pvSa1&/ro@'1Zy8X-2öRzf^a&/$0|LYk+&Y27]IR~&7'kDlI#J֧3,ߌύ~gՂ ~)1M? +UY(s +f >X<idSlH,M־"^jlaW؞TuԷHn(%$Ks)'CS!s57!5kJzi MwT8,I5OiDzG㢺ϗeiTȋѰIW> h0=C "OaZjUz翚OvbbLJ|'Lv" +qiKؓgz5RBR|Wf=C |k1Rtl#BRP~~Lu wB:K&t C3Ngbe,2 &&J/ڊlr#E;t̃i{|g~G}~Imؙ+ËSN]Ed›`ΰf'x\F? s+p$-Vy%f>3e+c%,&8|n&^= Jtq w9iղmbĂx_iI>_#W_&=@͈ڑLt\`\2vE;7ʈ>GϱڂT#{3Iot +y؍S&FV BS,hzIbxL-_eƌD]sf f\s&s)+иZD 9mK*?1fL{!i9d)vο#W\oD} H8#7T+C@VTֺkc6_ |rE_vmOSۧ&lϟ_43ES]Yv5 nJ,%E*سęt24⛚d[N6rKx$ݚًL.2G.Sm)RZ/-KHnjF}vR/abRzQdALT]i׭^jwjH.BL߆st,)a8ϕTyM »X`< R1j +wgsW.|ӍUdMc`uǓs5F7'T1iPv vw*ʾcvصnh{` WcFRcdǁHbA։("}H`cxJ&Z7k6;ضmcvұm۶ضsƷ?Qs֨gq-3ȣ`7S^n#SK(!{1N 0guȁJ|Kz3 %cd+DJ6C:JxX| 4 sTlϢO]hP:^B_0S2W %hkM=s`^+UڸYv$f\Ց#b?(+`jJBjooZG+&6YN\@(0D3+G!FrJhhٶThʾ]f0iTY*Hge*^gGHK#'1?KߧS P ~ 5z$&4iEC+ʧY\hte{X7yS9cxt?J '8 >^/DhC5zJ2ũ/TK:483i &PN)h32SqQVHԁ&s;WT*nlku:\'gotwb.1}{ݺ&S蛜 K7٦d9OIP22)D+cJ\Q.d`nXt^/ +-D,fHhc})^0ՑjRZ>TGG9x/x*)9a -KsZZVhOFLZa# |㉽q]܆ҪD'R7 v-~/!XTdT>B?nkzrX.V8KxkDLޕUP;YhHVKDCL$Ud:El"kĸ*f;V}ŮD?86_PdnhP]lqVwlz*(-#p>=f(Ky=0SŒ;l5 !j+/ ̦CgD>c]`aOs[G5dgAc E cFhzr#LG&n@ٺušawCP321̇gI]W$<_O[v{0Ĺ+{sP)Jmy6*O5zqmRbG5#[Ia?~"xaYITOe(w_gИl!u0ov3ND +&ПRH 䱈ֵYx'Tdlq Sg*͑γjN? I_Ǩ +Jm97EKޝ@_DpF;Fy; F1cYW[ozf?L# IզH4;R2 -ڏ(H]uӭg^0+6 ;4pHYx +iKݤ&Ih<ŧkZ6,{l6i\Mz[o~Vva ;7!\w&WbXI;r،25^YYFBS3aIjڻB.O}vK^Z#H ke#;Uqx0q !e3|Ѣ~m tIYjkW +tֳ5ۏ/Py@| {c6ZgK)bϜR3E>+GotΞfPd +ޥ%YW几OM0D*< I}U)6"nKA?Jzڿ1ȓUeޏ|^;Si4m3+&pY[SQO//m`zv١Z<Bk* +sό*+w꺩6}Q|Ax$gnۅYip䰁@L(w63 zP2~;)p a}8ҋmbN~5x1&19,g'v9 TDߡi: wRCf(K#E@yY:l%F{u+Tnb_{3H4;P't~]IO,BA|έ$25ZL|^>Ѭo~|($ ;@텼WWv89:7;ø>Glta2=K ,*S"?HS3"p7>8 |oPm-_ߍzINqp5bFȋ#kt'^w7&9HVK5j%qGg_p'Q$&-7 +nB~jC9AϜpr10;dnٿT[Ѫg%f'(ڪXs0˭,BP:s[HcNVXJ`:DOT LYNkk 3#a^B$22!?؅ݗcmsDz +``:W_@h*Z،pϒLqGXbbpqHz<3= ?lLrR?Ă1;ދcA%z84,cnnH"@4xo0%8^y2_<\eY<~8o"}Ls݁Ų[׻Ӄ:I]nٮڝh쁲:Y9͋$jE.ŽJyQM0bα"(B'-Gix<4h_A`dyf;3u3AW@yBpC\8g0g{PYto(3ZA~Dŀ Wv0 >A69Đ6#/i+g(P>I~ DZEz3({fj5ntu1 W?l$~Xbd/,{˾Wyi o xUmMG.V4 6 NC pN"%j\Iv풞K%H2 ꁢ)A>`ܫ3#S*ڑv ]>;g7vJfryF}Dg?c1 ,ॻ=ۉvgFHe&\:v>ϵl>2$/NKP';ip~Cj')V5UY4nYu˃eor]+0Ekū(LsW>Ozį[e0D8%I;qC=QH컻I'o·7~aTT|4b.BU) Ѡ|q[wk"N{F]c{ _dkt$ߥ6(=}Kvߤb kw +cJC@n;5LL1JkJW{׹Rݐ=EO4K*y1XlR0aFtN!q_` w+fbg`x~ 4j|M&6ϵ/1$FyG yN;6lUwI&wsGԤ1mmtǔ _K23`vK쥱^û`80Ӌi?Ϛ+6PJܣpWst`RCd?ԀMd3MɢGd~B nTlt0+=:~XQ}lv%uᴗI\9sȗRr`EK^a/Ԡr+=jeF1{ 4F4״>Aw@TšGba|vg&9^>_S]:(둉ݖTKE՛LÏ; 捊xljGkHC)Kq2I& +")y aMa5Ͽ$G>h dxe2bhk9ξstZ<ǣ|K ̭Z!4.޹8(<-{62ZJ>'] '+kqcIpYvBf!ՂZ1ntB?_)>E,օpj(q2nWxD%a)W[Z쟼ZvD/ ,WJĚ.ڡoɼC1?Ӓ Cv/Yw-q/|P2]F[^cb`dsy +\˝[/Uf]8\Uqք{`LcKS)i?[oI\b> ~c -x&I~ 62aoev5Rѡ{=E6<&7BHX0ͷdFzUcoJKQw5(eٯ`O[ƥ1]='Qg}-a@s}Prd2&0}r5Ccը/qXl.fB$)n]WF8@qt1%p4w'Mky}$Ա1Ȣ@2. -;.vK`xc|o +kיȓxbʀsDzι+vApyRuU/2L~X.?4ٿJz?C+QINe<4\?:H^]ns;LЩ< ԋKQwt 2 2œc&nSІWSXwZ x#G7~^!6 }WO~ǕTE؋/QP5P{D{ӫîV$ ?Qd7H1Woe0=9 jsh"/l']`y&k=wB0iyA9jхhs,u0d9Fb `%A8O.ҒQS71\K,#0YU0?øՀA9}sfTO[*rO^(%wR +Ė*׳Tv7$L/i✗]ό4NͻK9#IuRu!]<Z+O~<ʸkpcsu0s zkixԎ66ZUIAd<j6ݠ}g{pN+mqõ|P$-p8JcK`N:Q9tKFE +,ϻ4#yҴ4d(>(ΓnKrkio:Lۊ%+ZK)pl'K;,oN/5+Gb>>qʿ穥j n4Ikwoi 0,r#/UC!Z+>+0WSPSyYO[9HG +bi|DJ)} nq6:/ӽH-q,JLel ~gFi~5U '}RkR2ji[iXzvGXs8 l  1 K܏+DFS>sXJS,O-a?J©h!6ՀY8Mh$ d@/^ͭ?{o.~ѠYDp)x34i2q3 g pk'uE wc[g ~Sbڴ}l'wXh1J?]uW2)+.BGbA\t;Y%_#RSЖ~ɦP|2l9-)5]U-ЋNvQJf~+4pPBz4O9mYA +I2Ar&πAz\:ףA>ukS2ȧ]ĚTbJS%,ʭ\h&..7r^aS-:+6ìwn!D껏v7LZiCIehb5 w0`k߮ XFjAM|)=jtkblTI +'+zh '97;j*`"r9odX:}O2wUc| tY:rHk}ݓ +|#Rt#n8᭗V,[/'8dj̳R j`!!w1C1L dx;i #PlTGau6jr ىKf*E4:oU찗 [*FcY* #fp yͦt7vm\odNrn: ߐJTӜa)s cU:Z7L. k0%xO5kVٳ\bmʏzC +2f[@ "BYyKD!+ɝl- 9kMhvzvF" {!;F9b]Vn )%͎'5q`_͕)Z"asrj+nXRQ%uֵ'8:v0r8Se!kcߟx0X>4B :R؛R?5l<{tJ=gY*kj܆<7v3Gip`xVis.b 㜦/guW)5J{ ]+欱:#DX젞| +_$LEA?xEY|=}|RyXUsxy5[ر{mK4,/&._F69VPV6ڀgb:Y .zaE"pZ?H5LМ@df^*hv-UcdzUUҡv:9CVUŲNjsi.<į+q?L&S53 1'ᤨVzӽ''CoACпd#T%X>2FIsӂ7M1Z f{ԡ_=}_+?Â%7|NL6!eI߭fPv4h$8aQՓk0Zݽq/85ۑesڝTP!)T1K|P(qȦ=O"X(J[ hv޺*g$H;?qA?ZW(tk^ n"fKdh~S|A@rD3|=/U& +endstream +endobj +618 0 obj +<< +/Type /FontDescriptor +/FontName /XQQCIP+LMSans12-Oblique +/Flags 4 +/FontBBox [-452 -308 1445 1154] +/Ascent 694 +/CapHeight 694 +/Descent -194 +/ItalicAngle -12 +/StemV 86 +/XHeight 444 +/CharSet (/C/D/E/F/G/I/K/L/N/O/P/R/S/T/V/a/b/c/d/e/eight/fi/five/four/g/h/i/k/l/m/n/nine/o/one/p/period/r/s/seven/six/slash/t/three/two/u/v/w/x/y/zero) +/FontFile 617 0 R +>> +endobj +619 0 obj +<< +/Length1 1728 +/Length2 1402 +/Length3 0 +/Length 2459 +/Filter /FlateDecode +>> +stream +xڵTiXWEQQTԺ M"$aQL0̄IAJ>A (JVZ,Z [ .LЪjVAɩp$IAHKP,-bLA;R'AF} az`j^@Ŀe^P%j2͈aLOfқ׏1%)r #*T$33D! #)KHkcp;2Ro&_H02:`0\Y6LQON8oRx7*S9(: Cpa dҦQa[Øyn9S +ѐЌ $P3_^JTAѲWƒ}!L3y=(Ozm81%TpqgՊk4шz-1AqaZD3CbR yBX G_ ):p†/ ZNЃ(9*60f|Yi>/K(Oq_qEe\Z\xg6@h ++bNNù{;/ stҼm%9L ~WftF%.\UwyG)FDYc!cٲեU5u.=Q U~ͥ_do?nKbWw 3DB3:CCg'n܀ +iy9"w(kq9.)JoʩxrbbNﻼJdR֛*u=òt..MNuYQvUz=uɍCOp*gz%N9{o4;ILWtﮜ a<mT<~O~dܖ^14&+\76]ݬ3f/"xc>-Pl:a[g&mcS^s)Yg+kL>좝AZk%#'WOs mpkԟMZ+ow=־?:ܯ69ten[ Q-zzA՚vyijh?v!؁M:9PXpdu)nj𢖇UOr9mBitۚ,oovwYi3&إgi [4qrsd{:KEd2OF:,v2ӝCAQ#B[GTϿ U e9ɾ{uNXSWX^ a(/tw0{m' +7&]コ=|O|yuuYǖۍNgG7昮3Z[]ZCf8Wrn_hWpV? EŬ;+MA =^tgy8"GoeįaZg=ZtꙠ%w6>lQ[2ÐUki?>=Wo>2.6F~۾_fZ~IXхiG~<}KjЌa ]5G1w?~qy(2\uclpdc+r@ٮgO~?Qo̓ڻθ{/v.{^=탒COVg. +.Qt`\tӫHdw{[mxY+=/^h=l*5aw}&ki;ioÊs'+-jmOpϚr1z⣞Kb[&.ܴ"81+BN׷ ^ouBj +endstream +endobj +620 0 obj +<< +/Type /FontDescriptor +/FontName /XPVMCL+LMMathSymbols10-Regular +/Flags 4 +/FontBBox [-29 -960 1116 775] +/Ascent 750 +/CapHeight 683 +/Descent -194 +/ItalicAngle -14 +/StemV 40 +/XHeight 431 +/CharSet (/angbracketleft/angbracketright) +/FontFile 619 0 R +>> +endobj +621 0 obj +<< +/Length1 1998 +/Length2 24600 +/Length3 0 +/Length 25777 +/Filter /FlateDecode +>> +stream +xڴuX]>C upwwwBp Npw #Ͼ~w5s)O:3MJL+hbguec832 +YX`IIv"@.#',)@h t<@gC{ #/`Lkd1 5R~{8Z;>|0Z ehlede05H> +;[`g +PjTEJ +ʔt]8 @DPNET*Thr*|(1UTTe3#d'q#`7SSG;(̝\bnps|bkt8jd,N?FbvHч_>ǧ?N@17tVFAA`cha 55Pt6tvq%xMAvqtCC +OBv3ӱ1t3uq[nsvNNNZXwfd$DUhe>JΖV#;ti'("``01>SD惵X|у #651w{zU[ )`-3:@؜Oj变# >^vSCk')d +8;}>`baQ[/v?s + J;Ml=&@SXz9;rgW,1kk9C e m,=KtԁRk '1 w_IXmͬKHVُcah٘klNNI/@/,*!&I󗖨 `hQL/Ər6U&z:[;R8"Bz#N';߈},B zAF=oÅ 3o@o7o764l?h ~а7o#4\?h2}u +ixfW ΎvV@u g:;Zk3|lEt#鿻߬ܽhYXYbgfsN05GO |T?݁ư v) Set|R SmX" 3 +d$t}lk[m45Q1EQS ̐]/By$Y2ђBP=l|axGNSֲV4؈h⾄ӎ4m#L5k1*e݉EPXڭ Xk ru"6c`K~q-:WroTfg'1"-+Hj)8nqyWL5Ve6[ &6Hc͐Tj`9YOjhݸS$߭u!ԆĆ}|_hR(EYsu3t:KjZo*M?ß#>+tt+r-:s8xvD>CpAe L=vLo^ݴ\fGU~voH6i 'qJ؋;y!dxM"^7d^Aw )Ei3ͦd|G}R[ET!JL6PkcTkb7y"w'iIQou3q񣲁B z+gR jwYJyLa@jQULCZm4BB) iD^AVQJ5Yl"¬ Z"/iؑ')ڂu=]qVtܥc&Ŕa+W0&OYX<ȇ^kF=DnKtⷸu ZJ]>l>q7 +PD7K +{.qc˘|(%Jz ,ko̾FV \F'vmQNf4:a, 8o\j#^`<̃4En`7%,rm')ֈrI^ 'Kzi9w#gr#/\l-MxtOҧ=h_tfbwe.Z3u(e7[~{Lk a{(kly9[FKӃˌ +FNpd._4c`šzt% S1QFuf>q[ MTSņQHFQs~6SV;m?Jq35,čܨ`L#k`fU;p2Z5F8H}Eс]fN2="l{Ut +zAʹ&'sl}!st\ͦ?Mъ>H>"ۣ{wh]KhҘȞYLZ5/۸ zK1Gh'GGV$m⋗^Z*b sDUHHF<̖?&9oSot!=.#$@JbQ/ rn_OCL`$:4vfӱ]M,ȐxiͣZ&l *EFSQe$K%yf[u[M͊I _i$5^1D>g~9AT +yB JQJ nn::W,6Trjr6G,)6BۨT&$+jm n kWW > }u%brUc+3};o}}heO*[&L&c1M}6{- 9H"Yקǖ9D]Qy[Wt4hzN׍,FK(x8CT"b7B謦rP ϑ\T7h F1PCbxZEM$GainO bUv 6=Smhum/m}GvڪJ2GZE$+/@x4k`SjcoOEmO/ +p]A kOf +PX?B~-&,eQ;,)^~:  +@٦!5ST+3K@FҺ ӈ !6粫'ugdkߊJ4T"V=$Z-pG3<ɩ9 v5#ەo$cW0k[%6g5r倨x307tqpZ1` dW%YC<(-nqGnmZcEgܭ˞nQU6&s-.T=I0}2iܰ||<:{}.t0>@E 9+$JȈ`Bf{د|fFC^<v994?]-*kma]BoEIf#{^{{C ,V[p0D^/A.qf2pQ[.~a{9giц]:F#V+W;xfXzp Ԑ8c Dɯ i~?;Q1m66i͗~RܪEl@O K%ʏSL0qXuV攂YguTMQltDjVnNOCj]*tލGV>`=nF?Rs"܉<4K%k!$s;AoF E"EBeЬۈ7Ul?EJQ_6Q֫.ʼ ݧ=NќeeFe0t`_Oj{K-`S;@!dVj;@5 mb΁e~ vtдvڸO^#$TIE)Pk?w})ko +AP0%a:2A%]~O\fi6%&-'%n"^v!)q/ G|cĐ+CKhdcrad#Z=(G$+K3Em1{< +F +vSd 2LB6b~S.zѢ-w `ݟq3/gQb8b]ã=Pr _:/,Cլ&w*nx&x!K>(VA8MCxvF1S_\>@iqʅWS;RƧ\7Q^_3;D[2uϽFm,j1 ; "xNƿeY3W6%Lςh +`b'sY:橨E05<g()dn1 ȦևF3kj/w{*`>VU}KworC_@$bP?c&sbf{b8@}2&_=no$ ~ST̒%k +a!b(L F5UJT/L΂ga2,ۮauþjjz]8H32t )GĎ6-% +!zF@0Dc 9uXK:!ë;t1ڱu$ܭRw QU콣aEtkPb+٭cK] 0:T# ׂJ-9~lzB9Za C«U>aIzp٧-w ʛ$W: ?B9ݎl?ٕ7~XAVI\%Af'N +r! v{D<0 zmEx[]>2DzD~J8qFbfBTfQݻz`m#spVT4s[^S8~Hwv1|KK9Z %v sQ{l|,3S"<$[f:X&h %< $KsWn ɱX|pNMLv%ʋڽG&2m|ѫ=\7"$:N( z. +K3bXv -q2u|i¢ 3SlÆ2ouRSy7@\,]0G RV>V콕<}Q2(==jap#h'? 9]*Pʣ,|+hZ^o†1 VTb6Ur,'%YtW2(v32kO -P6T5 +ZԪ.5?\={€1밨:m49FUI, gQ(YQ1N$?&@ q I-),k~Tzp\Tet"e*iv}"Wl s>چI~IӎH>+V'96+ZrUw@Gߡ{7<3NPP~HԒ؋G<7`\7> afcf0FA.Ϣ]=ܟx7]3gdF̠Y3)WwCoB~aٚl>nYBu+7 MRAr\J…a9Yuq49NL<>ȋ+NŧjQP>6g,+啕֢h*Gv"5J.h2{wg5\,g@l +w1OB_}@H ;|2GڵRr-4"dB˔1!afW; -^ړ'V{~<*[1sɃTQod*Z>KێxY-(G - +n %,!X~_WTҳB:3?ߩ_L"L) lO{5,Dpj Je4Z?Ear*\6F^t|,;|J!p|mq0 dpam+[$|C!0!3dݫB]\֌('iO}\i o )A, fy~z{CՔU@yMw@I͖ +E;'Z::J&a7)& BJ~ݲwQ^ L026-*+0HcpHQ5ݙC7:vF`.Z7@?dCQj[s] h(ANɖWn՚n`È|/n9 +d 4ae:(SNp3 2!m[yGnJeMM 92!C &WZ2b[#[>Ωec+!yoM%i6w +_|w"nb$xS}Bno^Mk~M^j>tOJ ΫUpYH|Odfnh-&YƖDNHs/융}px:y qζmjNkBlAx/KwI(:&dM30l(6<*lRqgٹM%+ѦJ j3ྀP(ûLPDJYypmXWKcl?Kp;ysK@䁽b@|N~1{2# oŋ)㽐̜ͺ&dȉ+7AU2?`4X#@X]4\mc? +JH7>xƜ;VrEio{U;&&~VSIsp_;a'R=NAJqȩ&#Z^[J%k4f3͚?k'Se[WK3/1 y403 zvSh`Ns- hgS &yfD*_ta2W1bn%14;3K[ۤĻV!'X,G1]Tz'bU U9ڢsʶ#n,ȍrRP'+yԺX7o4s#Zg+6,mFП^|dӅ ~CWbVr +HC%c +ׄ3?! +?% 6Fp4P|;z^+6 ` ިu% 6n\s hSR=dJa.qR9DQ[u3 5B..-P*`9j\/ +B#\^N qѷ"JvzN쵭4 aL4pԀCMM1v9@y8:+bSIç{ʕr+ קS S6?AVTEtEfj{3!֖Ps|ѽ8*&c_0^jYEԥ!ͽ%޵eFulkg ] RDP_b}BpZ Ob:Cm?^Ψ-괰VV^hBs3v./4RsxL"[ExCo[MRXMi.R0\՟&%mkZ>NdVBsȟ7n5saw<}Ӄܰq KÈCeW_`*0RyԤ87V2xF8ϡ_' +q5\MH)RRSoƸu*N&R +~zO$L<Փq| r>P=8PJc|d/|ۮv?tUHo F#,uCIgظÉl;̭t1XiPoaިBZJHEt2!9aLDڌZHMe.1z; +gx VJySN,^Ii\~Nὁ+++5AFO1TFL0@)x(xDy'e6`&͐TG24!/4hng-0%Neo5aRcF8oZ"pTOT `+79?;a6.)H8uN l׷ekS59iTWA!^@b Ԇb&vj@N G\B"ϱ٥t#WdLUYX 2 +;;ڮJ0}V=)If^͔$:r)<ځ.Y iAusS1Zn.tRqv1J++mqwGv꬛ M+h޸_d2Թ)X ?t~>:@Np4ةi@nJnqa)}c!(@=uF_m&?ӻEm9SɁMg =>N~ +R~jtM|^ ,XRx AM1 lt" X[] ߵ .0Y80vix6iivCڬpE1jn dm>Oo0r%Sw];-;ޕ01`PʒSW=);С.lpS̢wzIՏB6X`m"a/۫Id>mc1ub@^X&'cԂjdj+*QpƿM{#Z㼒qq}yVm Ltdaې/ b)coݛ 5 + 7P]OUgZY㈝me.)(M&f$q7_eY:_5!{8`=!.?fQ!ʃo +QOuzK`7 Fҧ뗚-]ݯ? D/fNs.Q@(gf-6ӚrKa&Z`qAl$Z3V|/+wr}eEim7ĝWcQUXڰ} <t zҪT +eTџ3.hJG<#67iF뀊ͅHei䁀&k gDoOy|rb}wNyG~k{,3t4 yVǦ @D1yt)xLzu.0(1QI+tKWD't~K Nx%^ D6Ќ|2{о=F +кRu9bt]Rwb1yDt a-y?-QpӮI$Vܕ3F[`xE/!x]fR/kC=-iMHǾE/ыq롹>#V -l5d۸ 91%nF'(\+-:Az''\|*dr)P7$>r. g=}һߌ{i79hU~ aܱʝ}q[acMþ_Ɍ%jg}Zu1 V1MM! &!zv$ʓ|- C#Y\)V,IxDօ'#e9@(tQAlAU3xa4x#Y ҡLZ}K8hNmJ%^7Gܾ*+.i1ہͶlj#i'hځs򄤊Q\@Į&I.k+1Հj682Iʴ@Jb.1';TkzhXU`Qd T0 #3Hxy-mXI3q S|'" ,d9l &135@*BVl@  |r^P6S +9U:[ol:3;'3{ 2^k!SJČ3o‡hwDG- +K] +_+Y>tDt4* `v0;I$)y Qw[dOb=ʤT:?𚡖YI4&|*}9BNdpm7VHcQzĸe^9lpnh?GƧ + T]S0EV.KWhzimt^ݠ4D\ycO0镴ÉJ_f%߄G`y1д2_1Sw᳊p |HwpYHfcԣLܞ퉌~Q?~Һ ibY YؘbdDtP񊝺qEmndNH©΄!֘6AAшd +bG&~Ѥ#J,J=jVB%'U"6#=}V2, 2b{#>jU)3sY2~#hL".LX2V~;;}lҊG' Ix?WPQ QA ky6>Gh=SG\b'$ynE\S>|];,-WțP~q^@NQwW4(bWb5+5TV2 ؚٳ`!cL>VZbl*W7ΎܫSp`Ts2yb|Qу?ZmʛHăԻ`|$ׯ<#elΔ$7Li,֭0D"\%8r1XJD2Wɮb·[_H-# UO`} +_f* E|ޠK(;"x=Sb`wP +#2eY ^0+wM IP@Z0Tuv S9qj4>df70[~N6 ^h6$Si⎧dFl]ܕT :)Fa4]s1vJ-:.Nnio,`q߫74 DCPkuOlZw)&-Z3j`M!Ay9qNIRECinm+ds6J ˜c+.us &nIp"h!^!RABd*az'璀̆/4F&{u-1G 󶔃h!Q=A# ȧQOuK=М'۷on[Y -F*ҩ7y۞XeaIỺhâ 8l%[v;:%Ehy]xiv~8-_S( b] X &1e C!&*\{ kEwDM̥ ^?Kģ(DҐA;Z3Z?(ytEAxc2/ϊ_y@zuBnõ0['!F)⃄z6u%J~8wOY-at$ +9:h@N +ikfQzXsѳ~TuRj}c:|4{E?% Zа3L|T*i_BYyaY9wιq)?8OkrЅҗ8N='{ l[7BZRCE?wyAAG")v}ς ı|qj:2IWߖ$oC bc Dh|:pTMpk펲gũ~jʉ];{i6Rl +,gWh{6(/ V2GP0祜dvV0`4[4M OpDoT"VY8,/ +6 t-2qzgtR> dj`}t\vdq8|eōUKb[rFO}, oaVBG]HCExǀ(8DQm?ԧS}TEK""P'EOܿ*b72i" )8OذlPb\]2!1ݒJTQ83,զ+Ǯ7<&խ-̂'M!5膚bgȒ!"5Ճ.x 19wWxb?9 OE:\`ځx 촃w 01v2w޳E֕]SΆ_>T%CC/]itGtZ ]\-ӚR?QFBj QP]-L! J}!|TFz;#ܬ v+6,Uz\ b1K^]ULrj로~!;n.B9vݿ;8x?Kv(mD4%CfiΛCT+e+Thc 6P\x^!=p-1jafߌ11Pi֎ Ү'sD}2eqPa zgLpuE_nFi3qwB$R1}/-Rnm{!Ag@XKׂpą +yJ"DmzwNq,8tO6 87I ,~ *eѳ]@‚Pޛ<_ +5B;=uwXu0kzs.o7eg:/QeH,h6k0 >1:`fXJEI SxpKezDӜ" +br`Ug&wh)01h_MdVF%?;D>_b.5u +MtldqTYpj|j&y$ n)~br†Nu}샃)2 q +Z2]-rpؚs:jP|65sP8Ul&ARbk⃴3JK Pv7jZK/X)$N Hlk( J̓)4"|ۭ*ދt^Dq{fP9RRc@FIdq"8oqD0a\yVS!~ceQ`ؠ6n՝o͘DzdU=ϒC%?SLp[~C{`2p* +JԵ?_`0'`:.7qV/yFjm}.T*9ϼ OӚow*ye8'HP/ӳ<`b'{MxB? ~`X;4Ua8āc++UĊ߯D{3NGm7.x)84ULםc[鎐YB&-)LެʙrO;sJ +‰F4NaW~隥ECv!z՝I2Ix̮@ˢepA2lP>QV VAơ8vL/TṿJ`t|Q(zDˉlēA=!I_|le0rc˗u aCr'_]`o`$qMK^"ZT:޻f3~\.&/"SI Nj'B̴K!yqɽ-` В;yy}Ux,|^צ*H?&wj$W"-hTL9)XuldF7*{o:Z[7iA1;*?;-a# &'v*k7-Oi@cmYpI{! ~q?߱5fX& @t>!3  it̡rn75x˗G*bj*chhM??l&[S<\N;Zy0-UZS}<2 <2YV,l ^TI1-_a&$-*l|K@u+J.`d$4D1]QCBH%UtT`p-Q#G*S!{ۯU4l!!{t +Zp>T&DΈ|g$֚rMD%>3#nykkZ&`5ENsڂb\z c_uy IcBK m]mBX݊9O r1P +ʤpxُuWigP)``_b1>I^#_c^.ibWSl`(qnG,(Nm]VHilq_Vx,};6rzs j֍[S Hht 'A'53%}9;(aU#fW8q28|k:iwD3.\c*9\t`oE/46Žް@yrl?ʾI5J_R`7<濲\^l^K(hyB[?mRpMӴ KKӖS(i񒢈Uݩ+/boYlڢVV6Z#N +bmB}W^;̢F>/+X3מSD`)wcLGjרqگiW _%8`6Ұأj]=u~$0T){Rt>,DftUqn-sF"T*)9<΋4rrD)p5jd᷆ÍLJFZPJo؏]ERC q(<Bf89]ȫSef!taB"wl5SqQIfL<Owh}]oHʾ}tFmw % M!JjM]pR0=(Ln6Ŏq2ȏ3O%CL-y&VPjy^ErJ!h_p W@J{\T*5*IOsCr +5a#oۧ&KXh%|[-b!ȶ+ u!{`W2H?}@ c4dZҐtHhH.VeR^yjhXy}sኝh0m伀 X@7ZREt-%0>7 5&;Q|WqGh rk=WA˦e/n7`]{!|m}mdT܀Muš`5B!j[ϛªp>nB췸@{@z00,E%De㓁lo9JiEPՌ|\YQMKQy ,>v ܦ@ q`Vz d5LOzd~O:j?$v:HI;cZ_rе_R,B`z%-wPH*m!jb.^!sM ^{,ܽBdpfL]U $⪖(7@*+DWDtjeL_JRB(' +" pw z|8Q?;Ďs(; ۪|_^|8Ē:Y\:^]"څ:)MCX>1Cgm$#b壹}6|MZ udL\>?iJjlX=%<%{Xre<HÂ`1%D4FPkCj€3cjFrI j٘KR\5a +򟺹=uQI7%^yIWqv :^v*H i.ulD'KlM3!.dIXBkln9]k:%T/ h|w̝;͇,M1Sq2&]D5x>`c v u|VwlAz񭉢!Co +H^+ d .<&[dPB-SRπym&db_b }w%&/Fco+%:Pwe`dݠGC#K"cj%0c5-a)43Pt"raX:=[ɹ`Ks.Nm +C)o&dlIYڍkR)o LMܶ}i q/lfünZ"HwIJP`2}=8$>䟿(V9DkCh{)$Jz9w11JRZsO{'w(3 W4 NC5:RĐ{F }O/<!`Rj;sK$TZ O~8ݩA W3d~t9$CHF~:_%AB{O[CA{QA҉:|py+봘1{ I`ΌEԾ<ÆuN*=μk",,w[idV,n~|A'gU2fejaau8]j +f] 0 \'-1G-pDgpYQ}bavWȑ)7N 8KU&2ڷq*k-e^Ԉb99][:;ydL'%|%MlSv8-70# :aW(!Uv] IB~1Mi[Py%Cx[:E%|>'_I;[24P[i!g#ag5`|e3(m}S ?5KoB'K@T:(hqJ}Am*Q:S@2.L~P>c +q=iČ&H/U<"¿OT9U'`J\-lMPl5%A]\~8B8kXd|25^c.;$?@1GLUa'D7 CRLӌfS!oU,Y.R)V% +UJb.W^#gxkm戡!ebI{~r !hW9?ȋCGZoa1UȜ):$C=7ja\fc{$#m௞WGjӃqlJںȩ`z`oǓ@ Ml:Ȥi +]b_Eme ?-00ܮЪy[%0r՜c3R*@_l)E +!|(Œt !OԚOϟԹpɥ H|`K0frH{\mxCYŽ@ I)!]Tr;r2F?G_gj Rea1T^=Z[Y`$E_Sz{&-ZKyVq>?[#~wBޖ&IEn=NAE;+sE=aZBAGe§NA/%ׄє1V-ogE B"3503"(ZޠZ-O hW'-e %84ZIqvknZUːY7-[aZҔ`tDA+<,--B2we0@xe{!LsG +|:M!OdDYyC:sz;Ğ@CCNT'hƴQ{UVC7 Q;`A2m)K %Ola}w Xk񶜽1 [&Lw"-Jma;~ ݱe; 1Tuj'ùGX!w45_.= F4gK!$;iREhtJJ̔] +;GVIa]a iKbe_%@>EN_ZdyEܘAMRi~h Ipa>KJqI -/0jp4"1(g%: R635ȍsMk/HepUß 7>FU{0FrLdA@Jwmt=ÓEϽi\ζs&n2}N-z5|@vγL>|F2*ᐼ* IteslK?*+o_re ?c,g좭K$Yg +7ٟ7vCcno[~)~R815B?]U+p + &h {hHj} )v*C/]SjPí4aYb^뫷;i/ evls`w)Dvm)tM`5u~a2 3ƗڈEP}6ݣ%[<%SKA\_/;jpz9{,{=U @6 %טP%NrWLVZN_q. 5ֻ]N57F]ҀAsGWZDf e\fY E..PE {J3iaq_9&yH5U;> +endobj +623 0 obj +<< +/Length1 2073 +/Length2 32439 +/Length3 0 +/Length 33593 +/Filter /FlateDecode +>> +stream +xڴeX\ۖ5S[pw!.-Hp@pK~O=UԱk]EE$fhvtpcbcf((*::8*2;Y(ف݁vfVVN** A `efcefgeC.b 7@fdКT]ݘL]@+Edex'oqfSs[GOW[Y.hf@kS;K%@TRSȨ)k1Vwwrrt/.2I1% )P S`tb(iy7(!"g 6'p~gڻ_ nnN,,Vn̎.VNvӰ<]lW¸;X]n)9I_JR;{!Ĵ9iM]UPQQ؛܀nndoͿ..r([iM]}evc>\+_K{?{rK($'-rLq`vrO<1I~/'ޞR]O^'7Gom=|/%.X;h:Iϻo +:^,R9l%urtXڹA "6_,|3ځJ~V-@K%GG.iw;;%S{ ^6yhp?4 WiBfnW-%s3}? bVv@3'7;N{;$ПY`b{:]]3EIMRSFh-@Vv.n7{gsq|WX]NnKG?`#Hx,#>#wKſѻR/E߻og߈b`X,|lo=?{dwպ|g7dg/?Ck.u7 8An4Q4usy鳾`w Gg?|8yYL{*p5\kv + 6iREST|'U8:3:$Ɂ"A-YŎ +Pb۽TOX(Hi1kg).Vt}+-jKl#hKut?IJO_T@{̱}rZB#$\w{{1[5) ۍǐV{W\ޫZke(vy} 1cbmHyu#5W||kVz(;*zNkX{\D(wƋ.|2X'62hcќm5ۉJ&T"m[rNf+!V=luą>^Z􈐨 r*< cD9\eroe"]ƌPlQ3Zs/O~: +mL[PYo!~_ +m y1YbлX,ݗMAzrG>p<>4%qW)jv(_~VI>RQ!CZѻ;yJ~xoB۪.Yy gd8H^ lZm_0Ux̷>bn9C1/!pN@f/P cN>1,#_wj}qW%!j:`Y>7RΒN.w(<RzM@Љѻ5*}\냥iY?@gsKt" +$KZ,1/ާzN ˶k/࿊}և`!:?5_<_LKp顦"gق@H"XT=,MFMNIJ*'BWj?斗-kqhQgF9WiQb|ۨ*.;F:VR;̂(훤*P2iÁ>1BrZ7<-Ī:=7 DYJP{Z_'¼9utyCC 6]2.;08*_ ƹ-6q:o-3ۀ8 >H*xlrSl/"9AXdw*Uiۧ%.a/LˎOgj+*XZx uɕɺVoI ]Df篞~6=֥z͋xv2|W&PxnMXxlX5\fxH(%ԌZebWuȏ 8ˮlCTYlVN_7Js6o Rj"՟%[-R% +hNX:$<=?[Ve;So:}j_$)cۛwm{!00GŝsYl4өI>i^"eɺ~*o;3ھA dLY+J4GtY>*K+zm(  Z9 +C'~ғaKm>uVymߌ~9 +4J7mBb/P0 R,ZI/D{GIsDO,Ry'F/۽AR۪ >ek1,5]>=:r̎hV;nc[<à1(r-o[j[mKk}$ᒺ! E!$IJۓ"Z;(|?҆LH>+tJC)29#튩!WV\ + tֱQJ_]g/yxKF MΤ9dYG/d+ +Lʄy⼻IbIiĠq@]NGE[փjbK@kHԺhh .Nx ᐜۈG)m<:3īYFzE%MDϘDʊ9)X s@ K%bl(R?uPSX1*Lݐܵ FVW6?Za5m\)+ESbݫO=^*0%P1J$FZWL~B!`WIDK jR&؊th֏ O_ɊfA;O`E!ɠXՋ(zG,9\ͣҪ\%ImCёX 'rOS2:&ع7,N^\sѫm bdF^& G7O$GFg}ʐSdg\ @aPH1۸vy>¾ =C9GH>gieWŸ=ey]18$pAoVʛEpk&̓9eui;)R.&ĺ420!Ag[Н )݅$q3ÞRYq.96ţQ0F#)F0hLaVxY.va-ݓ}M$O@q'Lo:lW-MO ,Y7,ɳBI6_Q;G.>jU#]J}i @iI;8dBC{vڢpkSq\jJ{PԦ&8E:,妟"z"{s>RMM5v)8Ci4ɄKA[`к=:@*5&1|Y=j.P5z~{{.ӭe%~V_BDNh5 lu:q!H]W~v+=xBbL1)A']™fb 9)MMzEݣƟ/mוcG̙9uFC0gW-ᗚ[|i^ʱZOYQ/Sc"ef5]Ӆ$&NtG DFp2-4IFSp2;^~̉dQ%a6uMJ͊.r>UoQ1e+j> =D!^gaKr8F= аL@yٙ0I@2*TKd!h-/o2xMxͬNnOV',ة:Rkkw@-^!]Lfa +Π'EB_[=zK?:%>K^LU1F@ܼY/ w@ZSQa[^5\~[XցqV*ye=Ȝƅ a8OFZW\>~g2ԏ B21a$ܚh3%c%@@Dx`./AAٺ {SngOMe2q5.HkaL 6,qlb*qR<ۢ| +|\y\bF f8*K8c{']'#ϚakHm1i1>hY iJ1qx:hU8FR*- +xP\#KJ4 wom$SXFuX0u}͞ lUKwf|ךjOVnw͵-@A_y522Ti 93vo9߁ |_ꫤDFGH^LNA4|%,˂,vsJĤu|A:4H#/(,]'$7e`QۮcÔ$Q9_vA}1|~\ 9Q90 _t?ֻ.3:BH^hɫmZN<½$ObGއ@o#+GqCa8I&A3ib+(\aiWC"r$5.G]Ip㊎F5%myy82Hh}ќKLƴ.} XBU.r2ݲ#EJ<+@qh{0И&/UX8iYD8M5LĻa|gҳʌ.o_Eu,:;~"ˤ͌B(#|/b X``B _3+ސ!";Kl0OI^BDJZl<9cUyUpGq/yyDu`s0]3=aI$ 1Dfµݵ4BxQ3e!VzW9m iu` U@8SH }k4ڍ_KtJմY\'~Op? ;%ht]*TP˄w-"=)9%Ps/ K&A%-<SD!ĕJYY=˸ɕcm7F-{Qz+^~%2sK?xq{b<|C]X,!_+ApUlI%cMcvd]ï"'>+ڮ^jҙ]pn2Evv=aV:&S +TEh݃|֏PwrnK< cDl aGӇ^zh3/:Ə E&R?G5ܩrGZ~ Šeo*vKJ~#BBcmۜZ{[_PS|-8| +7ml:М$T@=_=`^B"s"H7F>b[XΝ_鼮[`z1gr,5)6sl.jvv\ڔHjع"^ח&+~]gYlI(B:5OHe ۹4]lLټUp*̼jEG|zl~3&X ~}ʏ(J.C~E{y;u).,E%  .w|l用hĪk86%NJ'IF<]z! ~*~k\v 7Kif)w u{Noa!P?S̫̟ +M"#qT{8R߯c?ZEiS0qsWrVgB.W0γڙ.geH&F9E6aKGJ1A^^3}s*r;ȅE)ࣚ\T*G(;Þ)QbBc,ވ& +lTşQ7TX F@Rˁe~FRpe8/Z߭M= irx*`qx98I&[+|Pm{~s +y_zOCzWV5'ȝh/Q[0+F$1Æ4BS6=ZTT_x u=>Ya26?CTA,~AqfGw9j%G5/7h>%acA!qW}>(Ks+©$фF7qg̳*vg% >?5L,CYC#i0Go6b ,鰯}uUUPIWri[,RRu mEbHdb:x߷vNYTKCnYrVoʷ!F +ncfE|\lV +u#EFLfTpoa/p<!lOŤgCآsov!zg_jbWis$ l$KjM|5 +i0XVs@v~;2aV!֮pHs׸6%zyto4lsO/ؽBg};5-MaBD[}֨H}8ors*-%?'Wѽ ]J,腠U/%3Ts~aMX P]SO(\Zނz5 |U +u-OįSFZgVtO%̐$w~gњt%3Qoÿbnd $Usn͆PUtQo7RTv5JGA{`5E >=&߫ƴ_Dit +q~20)6}JVB''F%7v*^ OBA\TyݒUdY5AHr ( B@їe"T3nZ^ӈB*[ө7޴1ܡ;:t0_xZ8*By&o7U )'^TيÈ#w߇\'uWg\#_yI"]?&i-jS0Vqz{A*=TL|Ȑ{$3[gE™{}Ihrxthz{y4 KD5 'OSuID yXTgK0(|GPWqP9P.PKx~1i? +>m UFTt&Y)Pqseq.8ohYB )-K-SSNall"Ģ.71Q3;&@L,3|NJz {CP@Ma*0f'bYN=&^F%V!Yg褠M0`9S.ԏ⣠}Ļ1tQ$mN(ƍxP93z!Gj=d!/q`e3cqŒuyDhxS/bX>578U)9-aR:‹j3jUl`<: NVsN$xur1uCA"d]d ͉-* ,}\2hn8ND;vdo'u8a*l$ՅvZ4:z\y}eQg'hW30{j> +j-NXFI 'YQMV{xgI7Y'țIjC`ahUpMWpGF̾:r608=]넴QĨ [ȸUoE'ΐ>b;& +p|;ו*6;K2WI%ڂaWif<Ɍ62:Ҵ$roXew[{R~*X.ؽ*` ^y@퉲jG`jN)TiRdb{ o?:Àij`8oN`X83AL@2euf~x+u/kL{qRUqr(>Ed8@"+g'\g&o!ѦhjiSqvXս_5ol3DUVON QT |*8+ǫ@\0 r>#eQ.Ɩ!tYە^rG|CzϾ Z4 ;SxIiqL^[Sf3υ0oz]p}I +>x#=!%Kކ={pM0t$v9((Et`+fM0(O|jhLTS~Ւ;Io=uj:8B7We_AQ#joɶoq8}зֻxL^ࡖ4̕΂#krC5Lz_j _N.h`ʁ= +DO 0ק7t9Fc[G?sG]Sx|6I I􏍸$$;|cOUӅcjGTWvTpy:eAOW4i?`)p!v߶z X#"I!ïLG,.~p1 cIHA'Gr~ZMjT`ޯsIitjQh>Zt)`R$ `H!<=.D.), KKn-ePVz[,˨hq"8aG"|4GiZ" %- + aR }U3v>zmGPO`aśnAG R$ 0*@_ɹyPhMP=4eШZ$0 +G+| nѿ/$6XoBQC T;hث'v㢧Ȥ4"F]&*f>Qye ѯΨl+B)On "gp'[2I}sS,㊞Ce?P}oZ +"*կNL܀,TArBD]y<-mөL<#K`Z@2O%(9PU˖:V|5lv7aki V7rJ/Gi||Na&vvY>.(|\C^r@NVJ*{2Z3aH;9}aFr3 r0zQЉTQԓ˽g3EN._lX#y3k=שbooU,]mO`Hj<oBJlbQ&I],K+Z?w<_ީݵ/0v +Ǜ:>WX;!pL!?;xn2jef%O"׹{Bvx#|kSuѺ qSr6hQ-$s O0/`ɶhPa$>4!hbg%i(1X؀)m~Zy&tғ~T`@zIl5+WĵfXu^Kݑ +*ˆ㭗oA$o5,64Sz97^`A-x: m\U<깰w|B}.pͧxm6wXӮ~ڹK^EϜr?5?>KՒ7E԰B񼲑]-%-d7*H뉵Mj -xkRXʓ]CR-t8UHhpԯf8qy+T1]na 7,[fW5\͵ޠ2lCU1 ^>S8 쐧dAHek`OZFWUcm !n V=tHIZep&!Ӓ4N?t~I;)dus[ϻC6_ r~}^XTc1fj)Ps)C9B:`<˵u2dq&.P4BUQ58h7"ݏQԣ+b-gPɃKdUIx< Q Vn]Ft47w*ǶDoֻB~X2t *wM6yR `W^nwlҤEQ@c~q׹U&HӴC+0mꊴA-x>oN' |f!-KPgyY@<@ѕW{(1҇Z,Jsb[ufd5Г8uf+^## ⻒x8_k{)tˍr +mXf$wY 2N˕b<>0{<7afrko10_[ Jn4ȮZV\Ka2LlP߫- v7C΂b2ȴҍ= YZf;$ؕ(јaE6B=swźg//Y*`5B-| ʩ0an^>"c(n e,:!3"̅j1_1I!gL$[9qTB=1bi‚!t(c~B,DS԰]. "xDp=6GT !|b~;kS[iȆ(Ȳ.,x1:YHyiAu:%|4l% +|=72+[D޳QUaǢN:I !K@)PtN>FSJj6|vZp'&`h\Ad{焲tT56;}iI)uvU 64퐿;rq)EA@ZM!$Ζǭ_"H;(c{'GږOۉ(Iڭ%4Q?zT3C(cF:aзlfy1k)rbo1!Nm(M 7?bg=כu L9?iG[m۶m۶>m۶m۶m۶;/p]ɮZOA#kzrnu\CأU^EQtrzF~qGpe3궎WӓkbdiT=2> Cd08mgEiNC#.Zs5veet4*>Z- 'b p&&uGw +0g̀52}An틡UM28=d:o։ȖuvHE9(mZIiRD_UE&_EJn*Zf*ꃑA])uylM_lh~gܕ ib'iv@ 3GƿKwBgI.n2Uk&em.f_JI {DĶ3LP;:SaB ZV>`^mWS-Uv(|/%~͝{)߇;'_Mv~2?;Y~7a3%5f{?|UՔ`\zyX6?CM7WzMOeEGJ j +艞0vpSGx{f+rεq~t۳cFu"6JQhKT.G/+CIX_'!% &\W)`0BNݎv#Gv7t~TwVUlK,d@W;F>q\pI狼,d'DkL2&2gg-rPk[3y~T!2$\-ոN@y,36&kVT_zO򅞙0 ART+dԼ,;R\41)crsľ2 +x}u)@FnhA.W`B5sw@{~k,b}"fO" %gD`brG.XPZy1buJ;2-H I>qpMC08|TCVoIU0Cq226ՊmykwXa&:"@R6QیCc<&]xBow3.fe63&BALˡA֎0xIlj\7.|KFdĺfv$QmMt* <$˹Y'? s׻A(0 *QZF `2)'!:Մ +2vQ2FK.$uuTpYF0P=c9eT3wɩ;Ft9ԤzK;KQI56sÞ=DY^ezG5/qݏI-c2, <: 'F#@$?=.SdL"p[ek2A2bT}3ҏS ;쇰#PAg"FJ@מ-Y}iV\y~fRp.`"&1ߠ:C?7g-=Xxټ6 %k8DգH6?wjtI-C@5y}n+0JCe$:Ono9_<+]((u1ӿ^܏BRpBdEMQg/o}N  kPuP?AnMq~ӷ5^]o),D9h-󧑑.se;AQYbJ1$ONI^5$ݳΧ+&q4 #WFfjM')T6Ѣ@3O^}rfDuAؒGM`?M k* +Ý|!!K(7'?c'$>݄͆"2w- 0n Gx r~a8qQqgD峅 4^'PYgㅪu1,ϙX?K,dˤ_6/,±"7|Xaq />[4bot?ܖGv/r٧a.\/ɖYps$1k[#)>)#1cK7o E;QGtuƾ 뚠9HB{>,Z< +PzIۄvPI37b<)|}\IJ4164*cR`;=o&rɯZd^>S/eDS8|eax,-u SI? G}7} Ci#Qv0`%kcrB,i&M3S#O{\ ŵw-=0 =OT$aP&mX8F@{X\XoTo3.R3T!Sof,@cG( +4itىw{(L|_\\-pߋ^,.'׋:Zډn;^CrhnpjnP^ڹe9{ٓo=\5'D TF h׽a.tm61Y0bUdt6k/qL]ߗ25.?Z{V8LPūČfq/ ɞ*,: ڦJFB`bN97װErcnu}8v(6yFЮr·#p^R_"焳~/'%D|܀ ÷1^1nPbDFW z$ZI~vyBM;} +;7R KSd9GY0HĥU..k/ Xtpȗ nڜ-]u)q5U5rbWN[2ƒ\X5tU.3H0iqˀh;JqvtLjy]yF_!r* )y1m_SyxæP[y7|Xxi# +17 +^iQ)Ar?|eऔHtK"|MA xX# G87]@~"^h%r,!i‘Zg(ːu#iެA -=ƉH*^xj V9hi +,z99OxsKK] Q9f+E"5&?z.yvtiI}Lx)GŅ$y[GJS%z~'d'4P5X/Z?qv +$较k YpZL`fP|i@/CF1,LO7Kw~j*'útOJGL,h™Xb:j%>*&nl u7l.1V#HYD&hIȯy {L``pWszC`)TH&.cHk;Ǹrl(nh k7> +؈_i$(G%+ T-M0KvcY~7Qbƅ4npKH*nTzߋ4)]&ahH*0:" P|| H4$#ZBd!m wW,Q3 ]D*n5yq +F\X;P[qyw#[_Y\Ao pp?F +}AƬ0WߨW@ZҤֵdyhq[3o/}et /M)豷0B}he8t[>f@U>^QEl:)iSA>]].t?+?dJooϚ?;͌LތF_pnL dd%`-eF?\:͵-<$<}GHz>||uԅ&ǚ$f`]Ӊu߬LMշ]/-t8}S3rW (@rk:ooSz:eJ>NiΤu ;'%a)01޻%7+}q&6A(20T?,#pa*UM/SR_+5n֗y9Js6a Ty6~DM^<ˢwmG6KR.Te +t^3XmtᝆB9_zُB8wt5 #| Si?1P͟K4[%c4IvBU~ EJ>쫆 fW&b:ov"@ˆ`5${!3:j//?L,֪ G>Z)^Gآ_M##F/M6WXs`D̩^#="q߱,uKSXcg#ƙ1=u_mcᦸSָ8 +V6JZa6sItx3Z^Jgi +r+{ZEQԣ1UQ +(v%s+-u yͅ)kDžNpYdw9i*e#ki˕bkuUjPœZ[m B&ʪ;wvZ`+SAs~oqCHW|g)`xbm$9lpD@UW%'E؃mAnxaywJԱ*~V231`xu|ai.,#^\-@to@#mA[[|g{nVTSClUKKX W*Tkk3ґUpysxK,.Pxl!s3 +IZMUv4Ԝ1?oM-|)h~(ҟC''\*Df$yFSm{xAkOI0y"~glTu|ccc_C.aXeswC;KniS&j!- +d@Z<@eyV[K̗ǀg\CfF5`t;IMkox9Rـ'0إ6P?{hN-gx=l*{!^֯ӟ_v0M), 0y[(FZ*,B}B_)?NsrU.Z6Ϛ/H7-;6]0"#u5]`Q?cj(ړ5rK6.NJRE[(LsQ&:9~Nϥ{4sIAO]kيm>UVg + +HThEC-DE][m8N'2xRZW7۴ȩePɺmݲB5LVV߾"*@S[n2'vXz!sT8ڀ?hf3j5'Q݀(ׄr.P +v9d1y=Eϔ +:BA+[->bAqke)|򂨯LB}03K=c~a{[жgpΝSMVoD%!m'dWgT0q~5qb>e=gU.]۝5!L`M3th'y?W"{]Sr1+ϧZ̢# wQo8F/#-1;/emF()Z(kMcZt#ߒ-I&fͻ<+{r{ }n[at4 |qŅhM!袁<^K7V{qbp7+l"#P' 7<ߛdiub U^?KoH-a. cY)a4FkIOk"nۧsѸIԙAgeY/VJHn9yv*mL 'úJ#WwޣaY䇴"? +}>DiB4L&D@Dj@C-G*V\M1^q lj] ҩ(2*'RpUֽϔ7Y Q<5j26 J +b|[H`MWYkTbD;zLiMPk;D8o¹0f&m]J*˃M8k<\2 QeoOXɄCł8rrq$3[6BB n_ P gӆX_9_1aDE +%wK"'bOGbvUȔqqMP8Ⱦ+o:&8*t7'f B(ysIl|h_A|9dnt7L.Noч9uh%ɋU`&z< OM&?G[Yxyp|{I̋7E,Xx KN"JZ"LU +{G|ŨÃ@K2&G,V2"C&mC!0 'PJWv2V _MQZ>]WJoY(1I(ՓϹ]1T-mu ~#ԍgNpq_ne(4tqtd ձxiVnHd:.H`J[ QWo~ѡ⹍Ps;rހ_)3`3~tB:>>"-g~!@ٗ <ؙO1gOQhˊ\۱0\k#=.5U`N68 m~OZǽAʶnj U~5)Aj3l0XE11KiϾ E>^.m;.{dvec52⊤j7وP|n!8jg.Hў#WShxM%fYԠ az\ž[C (2'%3jݬQ[\[:Svu/d潑^L-=,Z'[QԔ +$NqM=8f[YR$GLDQO&BRS'7ݯX*DٓLt׷p#AѾnLs,[5M*2^`&}͆7_e9XU~Ѷ0xw-baY'$C2R5 j7,Sp_N I8{ud+:=/ü]OkV窞<顰e>R.繚CVdeNkqA~Sёc 9^R&ښjR0WS fKK0?&dec4,dḢmsN򜎧WKae? ּ<tB,μM,vo.f^|2ٱmcgeim nq/1U$zL-N )֖>zp%Hc!K9 )! +lpn~f;ċ{OMqyLc,^J/ӢBlrH1/Qˠ$PqBqcƣ|u5 0g)8-'9FrY +`ŝdB׏SxV1O;,fT@ R'cO[{(xH1]Ge;+?t꺂a%v=B1pu\DzFDn+t1~MY&8Dwɼ>.|"/;U MLƧ4^g`oº=֯6_޸C뻲ֽ<#9 _군VFٞXA>px~ҥrw~Wy%-_{%̇˴o>B[<)*i#ɠaBM*96/tmԆlߦUIw:j6՞._'.| gn܉{AlmgT%a܆` +UjZpP5ffOYbj]ꃵ~˓0+@2mVTM̝ *:52i f:L\"rRֳ2 ] + nPnYiRpkl]KQ)ogqD`L-~ IV|pCH8qiLZwox=xxWK훧9)!H3@vd#K5JܺCFA0R +ڄY fV1! +TN `7!RꝞrB7\-Ϸ)xag܁ +M8e Q!OāʟA8DH9 +%XɚaVy󁮫s~ԩ-@hhᨅ*[x}Xx|Lה`+̸-f Ib D-[C{I_]qZu.嫷$VR8q(ey[kGVBW|Z<+X6vGQ/:[TV@5{. +2RWFճ?="6V 8S~V 0-#v3@Yz +JBTdTk4vWcXL*|h~P3Ĝ&\hp}hrjKuf۪ XG3HSzܒŃIѡoA'2?2Av+i;y"a+|O6~"d"K}s6՜R5gOBJk|I {:5<(48ʥH1/JAiAog=M)_ib!@p*Wpō|iU+ŏXˮL62&G.'7\}F#aR)dqC I# A'WA@QJֱ2zdIFgMc/YiCUV1S-+c@;[fI ҖiIUҥj?hL)n<7,l~f-CQO c!:s4_{JK!ӛK(Ȱ*q1ẏ$@`>t75g#MԸ6u8Gu?#\1 tBw0i#d.) +Ϧ?T쎹gW3AU(m]i~iM;LD zVsȫ)$@cf3#pUB=/0|#Q'&[AԊ*ZI!u fwmcpw'N/w7^ +ܹ>SR9{!8ɧM˸HVeM]9wt$Gh9N%~Tϼ|Sp%$UFMrtr|R +SѮI} /Գ1wA^Ah͋Փ/0B5ۘs+!Ӏ'&Z/yZ:dpuē:YBQBG+"fMDMgY\*5p!tO]QvLٖud(%iGƧmc yDuZ$! +eUGӟkZJKP6f+4H\Uyg/>yĔ佰oi"lBY @uGNS"]o + 'R3 _RTD!ܹ(\=[J]V+WV5/j+<@ﰂOaq-N3sk7eOp/'ao '}ԛ}Q< %f +C_F8~Y*#B@.>.AWёaw f)>hw 4C*@Ҧc.!89.S?!6Pybܱ-4KCxZ;PV_9d̄ibyZ +˄ 7V.Ӂu؆Ӿ*\^ÂZ=J3 "- +4㧛"\Zm_x 9԰ea{'7L l_4a%B`:S+ 0mh+13 G_AlV<{r7W7kjy QI&51<󲟛V +>I2Cpd/йwĘrwR~L9^H=>!puKyx +õӏEU9n$0gFdL Ys٩)kzϿVdfDoNV'Ua|PGd(+,_'Ǝ-\=k6lU߈lQW:ϼ 0|qvTI?]:Uc4 z>aIBQVs,s!IM>p)C˧y:0.tvb=j(7QwRӿ?:n^PXDŏtn\<4Vab(lgAB@?քCkJm TEFIHEa)m)XTvٝ$A "xH芰.4M<w*ƙ퍴Yp*JZ.]=`̐!C1r\JhF VM +7򕧤2AySY=Y 7}8«01 A/;)n-r +4 8MxtØA\-jw%0(G):' $uda8 CE 2-0fdMMDL'+GK'-|R E41^r!)Qv coG}i3|lEjL!P}`ؘ/w4k%bu|hތlm@pAN"5 y`jP.I!m*U쪾PO>=;nxHT$~<-vl-΅EI8`SF,{̜cƃ8ҟb(^b8tԿq *qz>| G܀ʅ<92A*ZDVFf:|Hw\_џ}bxc HG[*oC6 +1o׮]|R p`RgRoC~+=r^8Bh(Sͥ^֦\"k f^$m^ 5"e{_ʁ\*rM_!ehj$sOj@XNQY)uFk@dn(u( +[$:j>ة!lX3(ɞ/oyο#q-X;^I>o+p@+<_?fܿ:-뛡ODV\Uą3nD }:\rź:n9,̈́Tˈx=×/:1Ƀ= 0pU>^ +<MF9{ab(PNez}]9GG2zw6(|ʙCzrcg&7mZis䀺ѥi&%FOk }p^P!)g?M/+$(=(qviG={eA>H@pHn]+5ӊs1'!k"FdK&T6I_T&|_ƹnisxӤMceir+l`tƉ`ւ]SyU3-Ѵc/޸=;^un$ +d8&xTYZ w}Hp&",ѪhoGł#՗彁s~T)`@Z>$5!0e\p+x>1{>9Ͻ+/1?Yg&ZFRUf]6P|-WvX3hp8q$:#ZC4:*3!h +['ڄUYRJXB^d~ +qW֒uKzFp H~M r靭֔_swI'[ vsoy&&L}!Tpv)n]8"8=T'3m_:qّz̎ylf])cYח+BjW7I%A:p^ AW0G"&@ +N UT'%'t f]. +endstream +endobj +624 0 obj +<< +/Type /FontDescriptor +/FontName /NRDUGX+LMMonoLt10-BoldOblique +/Flags 4 +/FontBBox [-480 -308 789 1039] +/Ascent 600 +/CapHeight 600 +/Descent -217 +/ItalicAngle -9 +/StemV 83 +/XHeight 431 +/CharSet (/A/C/D/E/M/N/O/S/a/b/c/d/e/f/i/l/m/n/o/p/q/r/s/t/u/v/w/x/y) +/FontFile 623 0 R +>> +endobj +625 0 obj +<< +/Length1 3069 +/Length2 31074 +/Length3 0 +/Length 32786 +/Filter /FlateDecode +>> +stream +xڴeT5Lp n{=O.!'@יw[,h#vՔ*ꌢ掦@)GWFV&>#+ HI)4qvt0q]fP /"%@tL@W /' +/re45@Zp쌌2cș:zl&9&E&h qtL, @S]RM NN. Q% IP ߒU+\QRCT㭊$+9X@Í + 8+WW'>ff&K7+%_4AG[hK7sVZ$=XJp1r*ce+VAEE`ob +t0q0;@s n..j(w2.m=m3G5wF =ךY;eSUT`T7#X&WO׿P"7 nRIsqG{{0k/$::x1uppv ks_ʛ91k:X;e% 6!Y],3if_ `abY[> w "+7͂WvY Gf0hڨ]j`0Z 2+9}?L4+[y<(9؛Ϙ5Hhbjfe]M/`i_&_ܶ`d1pG:A _C@ +,/fmr:ert0s4vqrL\\LY} a9F0398CNn~ G_ `eq~#no`x̒ no +`2;Y70F`.o(F`. 0\]7WW5~#p=?\i>1\A'3q +q3fmdghbb>-\0s~' f[yOx^fỲvv ihfboۇ,G^p}o=+4`Q,~XXװ`㖿 ?]  +fyY<+ b+{\`i~`CV\3q0RI7?~\tlVde+;L|8Xcw ;Wl֎[2Nvn +8Vr:"ڱ hotcA9I@ֿ3m +&>'xV.?: n_&˟&&'zK387oT~=Y~_y1]]m.&S|agD9z0rbd >:_fz+_' 4C\w4I_hGHG.z)sO" (\EU gPCmf\Ud_џERt,OI38Kq1\^2鬶6؁8o{],T2ʶo0%\0<:';^aǘ.uBӥO+9Io9!\@f(U;&,1$.׋-~*M4VX`%X>kTMz;zPl k9?(=*jQaI( .ֽ2m.._' \Ⲣ9Re-T1'_~&1TqrdVmLA}ۥvk*5c^6&x~ !JӤ +meMzՕQ< +IyMz[8@68V/JNø(j:nG8WD޺ ;颃K\Yt"B7/ _5:D~& BwH| [o̹[Sx$>ʂ=jV}iG7ξzʫ쥋SԳ:ӍѸfdlS+ChM +OL<@uU?]zds[>.[&9kj*!J)f|*9W[˙MPOXU0#\j^A(ś~IO}%Ow{Ouِت#pO)KO(sl I̷!ܰ)j# )š@.l8Jr 21nDNJOH2qbasWnt/ fWm"WMj)FOkvd4Tt$3Mqx +[\3~G6ԸŶgAŅȻ_V Y7iOWV}:[z~|Sk泦vʃS#0-*>ǔFWw~({H$͢'rk(7s}\@^)gCP(vko ]+cY]Y, j~B!=nj%`zzaY1equ=lc,7=Jzr(P@Cnʾ&{MtT +Auuu϶UztI r?:®#)P2ü£k +b|d|#d8a8{*f8΃#i|@rV8ˡF"$8T(dK.'C+?iת!8NXMS5t d@}9Q@K47*?Ge>9qEG6Lgth%\P_YI +lї4Wd\fAh8;p#!ֹ(sVKa#Ń}(  Ƒl9m{+jkh n!WMDm0M5F7 *@[! x8VTD:&`^ԟTL`rbh!/ƅMCJҖaI윷=A1FLNʱgrecC3w;%5 SʹC<ѸRʔhDOʧ!`JeѤ_%d`R@?o.4L5'o-Q\{4'{$5ӛI2Yް~7rI˞6W !y`|&V}WԵV9E,f!8 OB$oDgbƻ?Gt + /귾FZo֤ +S3ki^>qYc.òbI|fikNC]xwTqw_>}[Ay% |n'iN'oν®Wx#C+ ]׫w PmRh[`: cyOʼnca0|/vmÿ훦<^vO'- BQS5Ў·\LƖ2t}45FG5hcR2Pg O1;2_&PjꚥS\ɛv8(b %[r)` +#"tV얭7pUȇvb6mjzni%42uhF5i ^bbx15i<4ȵpƽ4 Kc[̺N_7Sk\x%?qY\ +~ݫ&Ƈ}o ?l.ΔWRW:I*G~eESk|7"EفRa'`>9 QON=@P? +W%|L]#:U +t{C!*l؈aɜDj4#Z t(9o|s2Qu$m%1ֿO13Kotߜh(c45IwpACMVZtr1R 7ĜMiyrŽ*gcl;YHQ 8n|QQ̫/ dP.1nOKlڦjر.0jm*b^Pm :C:~^º{YN*7=#0+ +AڃUsٛ s:Y7U\" F&l?P/gG h"m? 750Y6Xp ҚAm;^wlJq[J.k)Lʰ@;V+;3,R7M Y#0zr?]Hx]96iXq  +w凲4_@?JxSk b$弭[_#aC o y$֮V+ے_YF׊7XkQ|NpHbZy>J'4I\%ߊ%,audM~ +氌X3P 23f'EudKr*ϐxWdYk=§eoѶ?޽W#)g5Nَ)+sOѤT_0 u 8Yq_Mݸ5ah @?6_kE^nH >*p:H?4(0p4go)vcܖӪ܄&?$JO)KA|fkW!H61!?δCo-xY|NGcBM=ň3=Ԉ]fWH+D uf=St>I$t.F7%oul#nE-m.L_V%PZ+v8jjCVB' 2OW氌Pkbp֓$46)Ƥ{c_UZִ3lwc:l녩JDCb oRQ6Gk׭ ȳC=Nԗh+V/5 Oqa+je ڐ8vZ~+TYK²ϩ AN_W\ow&7E;CT^C@?{ag\QHp6H0AU^{g*Zκ4M@(ShS#>]`S J̈́?\׬QR~G̺󹎡 F^ Jd'uSjOl-ޙ&i0STf\z |n9xͶrJbZ/&܎׉6<. (Q1QB黖YȂ1YkXvdX .LYGg|ATtbC +jLn(sPQ $$*ݍ0r~*+ԍZE>i[ Ͽc2"Et/.}蓇 <ݞ6]qdy'9lTdl1U \ѷۿ$S)ƃ͘S{PLÕ_9)@kwfn^ɴʳE9jd1|A-2eܯ_f2&{6ϱHܠ%ieRlqރJݦ}9ّ {8hY^7Q,ĘG0:GUwrH߲Bo*uN~&pC.ߌ,(:D9cj14ة'cļ*mAF_٫y/cPE檏OG҃2" +mfu"43(u+rbuOIstW_U7]M㫬eі5_:9fVcLElz;!CB֭7SQ*{$S#2ˉb'O!:"W>}r!+Oa8 VP!=L Y4 wN= |RPMB_VcgϏe˗вmqvcib> &z:GPTʼn~o=bQ$ Q8>}? 1AQ&x :ogkē%dhD"O9y.d m]}rF;mWt 4F=:&O6&QHuko2tx@?_Q0Ҭ\̺%I /c}bzg玮Je?gc|5sY + hKw X5{G>z*g٠rșjK>KzO˿e:G9hqIΒyOҁRGm܏ +I[j +hCZY')T髜ol4O 6UP<}d~&05{d +y 7FDf,j4VƉvEI7JX@8ӳ&G$ +%6`7@:J,mR_yD&"Ei6)5Ճ(=M;!_Œ!#[ؾg% s^KY=r Idϰ2lm4nNhEo\&Kk62Ad8 +~fvPXnotLE5$F |9  `kb,\) @1]VWeay*P͚6 7`a܊ͷ>Qqs?bT6(q&[P5p"H=d"0ժ" EXnByww/}l6^4[3<ˡ1š/|pS8qT@ep ԾV-p*1dWe0z]nYd3,.S"tʶyHO`ԁLvlM""߁l 6l Xd/kz|*6gl*Q۞)\M%/ +J'Es}smUEe;U.KyA@ioGѽ=ǜtntוB;Qso<&V7{7P|WҀ،=k0,!BJCH&ʑL<"d[#:}HuRSwfQRT^ y?gx UM +/w\ C]U+RF~vQn2W qЍ\jkwIl7hy!M_nw2߸ouF`7uQmc6)hu20IVaמ3n:ײ;MQLY&RY(kmdA-> }Ҍ"L"O{o}c_h:4;(&W-6ZӇB0W_\^cZh6nR6f/Q;mornlQ'tD=\X8ibcg~wgUIDA}C:ud +q|3L27 y%}"Qeh*((~~,Y4A, 3:o +vkr|ج!Uq_ĉ)/_TUbg~U}&ܽ~ ?ɇT]es_SC<ԕM +ͬ{WɯMa?zϿG/ϭx ,/`A3_L':AS3hc+>[-AGTvGCF;?W)^&:tGu$n9} _TNV}()`9(uf făU(YJ sG> ˻| =\ V/1y Ql9/@@^z_M;0IĆp g.Xe׶V3i4aͥ;8uTdw46y`z=vϏ~1?0f5!o]z4ڎ|lq*Np cǕS0Hn%(Dα%6Kj PqH + #pF3 +6;7o*9[pCbiz+%к7_"m^ah0^G,WZZm7rǙ!V U鏛 m끙 n7ѓ[!wnmV6g#BГF))"[0تnK+kku??wS`Osnmin?1뤔vz9b6T6kw(ߔY 퐿E7 +X|W*dUrym5~fT.u}M["缜P$Ebsv鹏*O2W/-?R 6@(byTV*F-gW.WBp>tJAy;,R|xTg S|maQ\=uf*Z9T}5FSHiP>Y{k#I+ƭcw*#^QkgfP8XA@j[q~LȊ~/= u"7YV3jiٯ j! +]mͥ G蛄 Hխo5i$%Č4GW/{Х:lS`*cOŴƤH>ndj_۷~;́ .uVq3 U3ʻm#$ުB fHkwQraUE H$,\KV$ ]X +/(n&& mD6?P4W|=JhR9ޏeȳ+qU?j]Ysub$4@8 1?ϜH T^m~u. +Oz6&s0RWVvwr4`BGʻ)EDq Q!HB/a?-͑ tg[ sI;E]kv1}Og W0f"hx8X;DWqCMhftF[[zG;ko!. +wWW6GmYb_|YMS->o?^Ֆ+mM#z,6s7CwՅAE\<4wǵdUWP! ^!Kh9({(R?E +ͺSܠj2[cVdY7IuҬ_,v0g{.#K֣&nT\"|%#dcQLEq-[l/22ynYt䅣+46WmY01B~mm]Lw^JJs}x^j__Umk||JG|[P7V;jc +ŘJ@OW}?atGkb/`8bJ ?,I9[M~]D^e/nONv$}F͛RDs(\KkUp 7+^a,p+̔%%uOw0(;Z;'-{Iسukɪo>[<},?kiBl cP88m d0*$O56&.UrWy25utJ;QTέG +]1d(ߡ; p>|lkNxO#h7eQ!\K]f܈j)ѝ3F|eM@S$jDMkdq0#vJ#^̜L,nqJPb |lOuޟ/X*tESAr((̥?Ǟ?l}[ *+^f>vƊ$q!a=3wnM%' ~^sBtV3eeldV[+@j2to4hBF0r5z%E #38,Y-=BczZA^Wr/7iDcԏS})2SY%sqjP(!7l݁Q<>Bqgi/KeJ# E33+K!"E[ug R% + Xfjw'{+=8m /nmd*E[ +]׷ iNF 0("9U7쀗ψ+F$̺&4 l:>]|h*6w0=lوx) ;v*[dq}ada*櫺kdX9>yΉaBkVQS_: +/FjyTE;rlg>> ͂Cx293[~_aZБ5N%'8iM+/&$ լ3ҡ:EJU2뼄׮ݠXxMBS0!ܻ~yrõz|h}y3*ǏXkNT:;ڗؔp10gtIK$#xn2yt2z-%ַs_5E3X5qn3WPK3kYoLa.,% !#:_@I7[9W|Q}`FApp`Cí3K?W=u=QԷ"cG;i ٫W|Q°!,Uev@~xf|y)0n@b}+b9i6p3jJ ׄ]z8(ƀJJjNmrVW N[KqXׅ\XDZ=(;ڄUzXK~@u + o@rG!5ˍ.vgnX'leiވ|[8|uQF7K>uR):~q#|-jK^5*X-BKI4" +]{6M03)E6k! +E3Xh/Hn=nexo؍ܾ߅=jf+}I6 +2 H@3!+5u{.yGȞxk@m\:?&@*> ՝3T$ D'+dY눔pdLu=yDdmޯ}2 ZknrrMo0x[R _= +¯+Q.uy-}a<+r,#Ow\*Ht`a$,o-DEN|8<{*h@<=Ki -9Wrx;rs\M~mpTX׮OD׶`4H)vh?zs ZeeK4uV.CJ[UsĞŁThJ%?D-Y*ԇ;x%S.iMރ 3g?{g=;gbE.8-CJHtze&0xm(S7ou%h+دSbU}gAxm3s@9^ s9qY8(40Rm_Nܒ*y0WbK[O=ҋ(ץEZ6Z]GWQKz)>Y975F* +י"W _qO缟̮= j:3ilBy-cxx1 WSP(js@rj1ؚ:Ї( 0U JL]dUfduơU-Lp0ҍ_.M'>7hh ;=iЃաR?( %.JjTέH%\kƭ$̯&u5?͐Q>\ITI1B)=c\S/cY5D)zEFTz_5q((_ _t̬j7ӡeSN;n|1F'1 +ޔGB#P=ϜˀEvߒY*WkE~oyqSU +~"1, >pOќ6jBK zf70Lk7ÊLRڭjhd}#z +J ~Vds7\ =Ԓj*an.U 3Lcrw[l /OCfR'?QԤUf˭25Tfnq1hvM=~Dkczx1aUkZu4džR0}`ָ: +eFZy'Vtd +B)!&MRn[sIzGt k[ Z g|>̿ɶ uJŶv\PY9#&Tm%RYaq)̃Gfk>exy> @ ^x9phfg <>C/:m=sW !xk_9/EkkbZ=!>ֿ,_*b8Jni¶;߉Q#X]}H71"?e3͜较(-tІO.nׅ570ꈛGCG '-S?EbkG^{>iٱA Nn퓲QgZ0aJ5J(@<ץġ+=$D%؃Ê)?_@-Z76m_ ow %,`@P!,LW89[e:LJhPtni,ygi Bd?^ecp'`nI j37//6j⻆~stn()o4_8}p3G#'_RN@ VQ)twDŽ3C7aąr4_5*4Q;mQ42k2&?ΛlP_믑gͥOof4 oDL)OW߬^N +m3xJ!!pkymIIk5 +m?9͛Wަ"8cr͔^S^n- +"LhFXtH/i.I^<Ů\MBoN~(6 hN+wD,тR!|rtrVk/ćPI⾺[30gM8_4/.TU=Jn$ !N'xoӿml37x60 "OUD~#QjwY.ɻK&Q8%/;T ґ7,bf­*~+KMrTJs fbgB2WZc0J$vLL%Zde*2_ؓU?FkɗbMl +no 5j5$43pL9,dfJIY1`e7n@>?Ed[OW# b #o*E-ߪRl@3CKћ((67t3wVP^O3 )X6ː|]{L߶\q(\jK cΩLM_Q,xЁ LM!V%tSZJZX ԉϨjfbBژVg*A^v߁<2/pAԦd+} ;rMZ `Ź9HOH]j*"Sb(KIڼfyV广BAWFc5R%*i r&;EΪI{:M9m2Od[OWW ;ȤBGx3Ѝݠ~8S)pW1\hL7BMŘS}ؤy #Xg)vd)S$J;\J:2q}KЊ3ѳKV[M1 9\hÝȾo e8m65ܿ_G+KpKZW 9W,n =A@N|J> g=Pu=]+Uަa213 +R fB +Z#2-:w7Օ_LjjP#j[pNu4sIyJުa3 OE{=j55RҼږZQwNh6ei8\Lل@ =6Ƒhj_PcCh@ۤ7XO2cÿa@xfאI .6U:d>݄H,( L_bYm@Fk\y<[07b;}m;kdp/?5l1hL.?یiDx l} ǹ=Vi'Oqi콩7MB._l'SCXx3Q5UTnbh:V6aQvn rxe#TKGuxI?,Ic|oz4V7Q:b.yE|B69z*+!\wM#ZTtv0-A{^)67?y%i_`r_"SdGbUޝRq%c!Ү?ԲPU"q >/BX-3NHėavb@DvlJ6zS:HqLS ~L. _!;VyBY8ƊqMд=OTJPxkk-p8KJ\ iV%-W4̘yWigĐpߞvuz 2{낾ǻ@^MAZf)bOۧva#}ҘLlV.zo= z1ݙrϢ$X~?C0Ӓ?lጙMGyüO3y pwQ,K#O֑;?5aâ) {p%<[+Rxτ⮴8;|Q9*"ty aL5&^fn%k^h)EOԢ@/# 49iey=S p(Tp^%Rr;3^2T G"*Ol=ZGCn|UGmNҧ,m|TNR'~L 3xFqSK\:`iLux8ܽbjohDZԇrG_2#]QZr"Ui%±2u5oޤ =L<p1PƦ-LץR#, !KIo 7ù +k@cP_g\2+~[>r5R;jl&[Y t+܎RDI>bx[mVÏsswMV^^w _uyهLREA6yT CAL[#bb֙N_짻cJ;4Y\Zh@ ݅=Ւ8cTf@<4 p~'˲@GVQJA~&c TD`OD Nu)sT/g-"\Ax bOR0DbHLy?;>RWε9ImT U`sWRoA}=.xVE$liqT>ŴWm"_? +[e܊(he&A;'Z;ҩ?M$P fhXy6N C[Q<_MƸn+œh?!Jtoo Cu=  s6 C M?kq-?0 ;9w-7™" [qh8ĞrXGl!ZM xW w+q;٦16ja +DFEuha< EDz &֟o$5/naT@ [GYh*Ub~<)fVHVI8,aXHW[;?b ܮ"NҦu~,kq.('JrkF- 0 DG,v{ B-Z +S>Ȗʘ^m[N+4SCs{c6Ҭ`m zB},[)*;%=Gt^c{!7 kKbo TG^~\E¨6ɥudj>mt 5=T/V [ XFVc|<$ ݹd1\`3 `Ō5!DkYO%E} +8(9*ND3K|Ϋ,&Ʋn="eW߹&>9Nί a1Bv~h}\ҿ8ghM F*ͥkl+)=E-[8Ab9r$XǀLQӻGRW03la@oJ:QiٶOwZlιAF?OsIu?@93Ɠ]r$2 +9?O ҙPr +j7Ee?[Q'_ |Vy'+DWb|ԺD4w'hNTKKltrI:4q{wx€9Uʗ[D*ejc pSXiB`G W\͖}CK3h6dyh$h']O6ϧ⳦& +4 BIqZE#ҋVAE*G.LZsuP9)+²0[}=)#N N;Zh <-$lO{pq5ݕ8hmO8+b1͓s3BBOJ}o 9n1ᢇZ2,+gruZJX<3z|c;O~z'(hL*q-<jGSwq7 BzOz~ ft1l+eJbmXm.M; `nEͮgZ@O2Z?6L3m}LKbdR1c(4r:"@Y4csOS)Bhq;',~K;CFؕÖMb{$9 ==~G +t _ +XF,%b{B+%7P&xqua(1M)? T_=]G`>lIv~Bz tpJR6[SF3 +rrly:^t9l26N~QTE6|\$ڐ3mr{lrTXuqg:qApÏE~p_O3|ļ#QV-pXh" ++F"]FEN?1E\\.(^Pʜ6oG" ѩ_T-z5W"t= hQ=S0L^&ͮa +AbU)BmUF$}''om$(8*5P>y\ײS&U)hdʛk_x\Q= o1،%MĶP!rV>j!1k*v1lD2~fO(a^+dwʷ[]Rg=vo$[ "Ǯh\wgE-C<3XX!@N}Wmt~CKlM Q?܍j!05y81܉#D1G#ZOK^>{s,OE FK;!$~~8ϭFx˃g3 ŃizoF 1Y"ck*] uW-ҭ`D AVanoi,=fCBgJ=* }JfhTNH5B~:SP3279FH<7EJ6j% -2MX`:/{2@hɣE׳24q4 L'c&@v.WA:M}WmK߰O@m?$1f72 +F> X ٪BRIfDedN^qN8OV-X'H$zvP&@FKU1!QN<'E]QcW۽P_mSdJWރlN =yl\A4fZIy؄0AWFBhm1illuL > ̄W#>8*5T?eL}\! ~x\]J w,\]c+KK>^ۆ biދmM.T o'7!CP6}O6Tlhj!y + d| ,(.0,Ew|vv[gtJ{cU/[M0y*+='J0HH+*1[/V[Dǜ[3`D`K̈́6)]LFO4hd*gR6j`H̢LmO;'oAL'5z{!g{Q&A)8ڲ=`T~mmt<ؐ\=@h=T;fFx>KzI/VQd2%Us,wL S=|$Olw6]]0 }#ymi^y#lK#o! ׆ Fp%9 +թ8 jpƒ8/cYğB'*FR3JɧTlvXċ GhJhQnŝX /U"w[UZVI/kBg#o۠WM>RqεQ1*sTUO_mQml;A8ŚV#>U>9i&c̑pxcF0qGMY-FR3`,PuJH%dj +Kn6S):vLj,@Wye7w5\3;#+zWdg, Xe_þ7ó%C \/bN?16hإdlh!1/LJ OHY@?jeBf4&i$g?יghF3kRAũk&r )VPϤBtv> +endobj +627 0 obj +<< +/Length1 2307 +/Length2 28047 +/Length3 0 +/Length 29362 +/Filter /FlateDecode +>> +stream +xڴeT۲k-kpwwoܝC sw7Y +t&vF@1;[g:&zFn3#L +GN.4t1tr8\pq-Ci0 UT>|qUTTebS +ttQ|0M*sgg{n777z3'gz;G3z{[8@k_q5h9_ @h$f/G+?>&?1ep#_2 + +2C [g񇡳/7Є_aG?9dW4K]2kOoC>1C[mlgd@5{?gfaLVPNRLTYNcld>cKx"2 `ff0~ k'?蓳=VvnJS [?g`bϠjk233tݍ$kn?iog05vz[?^< ]gG?8&#6pE5pKU3 T,ǾZ{Lp rvAW.1kk9C 66:k*9;GCY8YM,ĒΆ hkf qѳ3KgϬ?Rs9K1V@'';_*GWQ!`PהUS/[Q[c; [33;c8Lotkz v.{go#ܟfg0 F#VR߈7b0(>T>,F X? ?oNѿ3t44L!ff\01321~1d0?~6gw@X|,?ߐ?B1}0`fw[{Ï;?? u3}7\?p(A?G_ + ]uo<2ΎvV@u 05tvpf>_$ '+fN?zxuE~l?O4[^3 Ln +)͟*$?אXN$MRNQ`'#o[AiޚP9yk(c#냇$*8F.WEB}$Y:FP=~fxGN")k[ͅt+cjpFs_B[u~Ĉ2\5 FѢMS8rU>L8 +[X-tWhFP aam2e T0YFHبD`L%rLǒsio(.URw/kpbvwf׏rvV@jO3L9Qt~5CT +/srYOb-D^NM%06FhrHنGYW߈8 yG[F28$\,l2d cUdV39 'T]A"є:$Tp&#gj 1x΃EԔ6NI&!s/+Tp3ͳvTXՓ]Uߌ>a;cߋ_\tQw{ܨ2?\ZFִ-  ,0oy.V?qV_4 ]loQ ZE|[$s bϣs0NzQI uXD|"F$\e +'ߊY/y I-^_4S#x"7܆$ t&kC껢sG >.߭Au ˌGJZWK$ pMozu}IveE~`=&=­`۽z$zɎ{y͕;留ŎH mZ:ggy`~;S>cO4Vɺ2IP\n_ +OתfϙW[`[~}mJޅ$]5҈] #&(.oOPK /:5w'kaet*J;}9|P@8@[zbN8X5d 9 @T)/HZz.9কiK(|; E"[_@͑N6nNg)l&v%oôO\:&:S[ ,YWMQW*tTi.ݭ}z e^e6f#7ƟԌηOCAOtR+b͈|%$K_OmA@%|82MTQѷ`$$XQTN_QmۧIkȅN>pֻ(ͪp`ؓ{!|b[9`n`R05'1E ωUaL,{Ops &O=[5VZjś(cS{tCZefh[j+*e)_=q?"0Ish#5BL+<̹g _e߲ޚq"i~R)Mם)t4! MA[pVLՊvЌ,(eHe1[nޖMSS|4!ce{s+ش#[8\;P17ۻt7ы,qr{<` [#̨}m"w ɒ*le*룚C6J3A% +%pu \^Aj^+FUeɻ +s{L]jv3υ; ;eH <ULD$J烋?qdjApJԴ6V0nu;L3E&lexm,k6RZz]Y[x]MX>yWQԋ>/Đ'< 4ne~l4~V2IJe*@+^'&toDDܭߜ XZ]Q)Im,)VmUQ!! E7luTѴY!$Ug`))jjc~gyC +E!0kU7No/G&]&wL;m>yŦ9սwn3Za9PӚQO ׇUĵDӷ̇F.iSҎ&ՍR~0Q6|O[꣍vg7tOC!HDJfy@ 2D"Po霤4.gKѩ;0mUb|Er) T,1A$ +%CЛ٬k]R{+Vl܈A$$bԸ_+1 46@qT8_wKd?hRFo+3k2?p\?R1ٕ}x !H=уcK!9:oH}QCc1Ȑ'0:8g>[TFF$XSM"?EkN?'/ +Ъ nC |`W~+z.D8zU0cORO~M֚.v) uFoٺn=fcs]TLM1$^NGA_*vY+ }KQŢ3҈xiRYGMu4=Cf[1 ?ex]j~J^:-bRw+tpXym%I…x.f7(cI"mb"1NV>Ҹ]3ji.Mأs\735&KyڠR !GzKɆ]ϑ>uߧvOO 3/h#j3Vb~Π<<,zXS\u-$9\,sU;fXZY+ef1xo/=oO~X$B@8;np-TwJI`@7F"<_Թ^M1b]3g@!2!Ȩ;~ zEcQADNU#}A=*GaEd)F,-{' &K Ⱦ"r6YXL)4٤DCI|UM$.ǝʗߑ/hj#Sm̲Q3PFwBV:)n՘H7V|4"1=^yg2/N.QDG3:3GM.(Ɖ-7K$4`z$|5ګnWv9oʼOlȽ>c=xژ5bF_1ƚCV $*seP1_%,r#GCQzx="]Op#jg##NKܿ b47P$F{;)F ;&zς/ g{6.)/[мqWm 0 G#p暞Vc54TMd§|=J%;\ᑡ +G=g7z3xKDX*doo‡)_W678h uԅB(f/ =&4śƛofEUoHk0:EŅ(Ϫ{Y.¯rEUc:wi'j5U˾aU///»f䎭 +GZY(f&CyRr1X<^Ak M`=&CnR\>`]5 1}7dNгrm3n<7"̈́CXu/JS9 2bsx ~Dg9ϽՆZVruƅ0>Iv$QtAgN ]mL?1 +Z4Q ݨGeM{ҐԿ=ʄt5-'jlΉCS4?M +bP/lvjTkSz~,_EznlA~ֹS3H4v8)YKo F;5eݛoHpz} ܆9H1PIڞț + o䝉=YE>m~RmM=m8𩖐!EH$pڗjtH.UNP̧IܘCBOݏ6xYo`-?w#;ȀK&1/QiJ 6EHrfm@b!{TCoiMۯ2p(C1@Y + !j e"(?l84fL6@c 7{[kT$ RSS^@CȬ 8xr\W/vX:"٢φo׬B5w5gXT2 L}⎧$$gNgꓤӝʥ +i Z{k[n;zE!HFWN™r9\W;V)ɝ]tƒ_q@rqo>#ຜbp~XJqמVD2JW+ƭ]c]]#б_nB!ԉD438 / @qW1-~.%nz,r:xMtLّey߬j$֑h-3{4l !7r@@[$Cm@w%&10E,'4\{sKxWQAw-FHoqdқ-X'׃ؐpN"ソ"tREk w pe sAS5[TO)L}X~~-1ϦG*MՐjɛ}Y,Lol{}Fv4)}i[Nf$,.nڗÂȺP5)|RdtWklo(F]XN߶ +qC;&\۴^6ypȍ4\N[-N'6II8H>9V\N * `mvf {PK+ ha _-S=p1PIa)c0}ʫmkhE)!&B@R_R!N5R d5M1-Nur-δR[h]$:#e:+ue|ۃY^7ƅW(<V.{yhdB+ş%|Ferml1t(έt7&°G ?NFoҲ +%܌5<="l!Ml0IS1o6){ݏ~rjteLv"s9}b^=hS4;a̶Y k rA%X5~N?-Ng~>σ|?HEn䇦cZsP =$#$ 2?] +~OsVjWYĨn+ʉf_۹8QW"A~q=ueXȹ=gqlRW#6cp+q=NTI[Ln,E]rskh2 :H2STt +z5X'3N# aLw2֎,sUKptnb  +@. ͽr"dɄ524=ecw= _M~_Kw)R:"/+e_@:E#=B&.t)17k(Z[3@[|ʣ"Yi$c=b4!,{#`#&U/Re(gf48G%١3`Ng k0}GF-M^طUwH{ಏXFHw'n9PpWqQ|ј]()ewkݖle+K'nQAodz&<_dSTF]CΔYM4*QLf@1p9AߞsPU6-~x[f$eȦ=E*m Th:}u4Aa>ٖc]Ŧ +퍈tZX4nsJZiH,K~gz<bT`fXXY1 g@0o4E ēӾf򅧳dder<.^m"qJJej4wHHWƓ.&5]OrXf qM& 7ZBESV(:v~9b1";N u]4m __N1b9JZՍFٹiSn=rESO$PX-=蝢h4υNPi T"c^|L:r,P ޳IK\w^9tbO_Gڣ<02 dm}k$I]B'وZ3T=T Qlw4  Rv;P o͈[#eG4 + +a6\+b) ΝxoY.RKfIr {Vvǝ(򧍘.tbMfDo +#f20X}KWG(MH>oEU~%Kd.[JG[70n^8F#]pxU]cWY+=福E22nKTm-uKIw3VG:ݣ*ZӴ4&93h tjiu)!a1A*9J'j4P^1_SȲ H +Z|NjY +&Hȭ^2qb}FHwߧKWA3+{Jkֿ`{Ѹ'n~ vVfgOOh +$D-g"E*%ZrZ+W@U}}-k;pߟwLem6T*4ݾ"qns&?fjDd/ըEh|Ry{Q3,F'ds2aO6 =,I[)I|lۂb w:Y`H;YwC/M3 ހ=>O*Ű;H0>bVIm:'H`?gYo~'B#C"Kvf!Ƒ~[:% %Ճ;Tw3<9;j՗Q\s +=L (#1)rGCPE{# ɐ4 >Y%# +|z m  4S5ph9D{Ӂdm#Il˻~Y-,ˊMܤD7 S+)؜0 +K]m=I {ա2nLm,g 2O4sG)7LfЅ Y(/OJti5;@4b gP +/! UH{gUF0X?Nԓy-ZD y•6mҌvs{ f# )yфv ̾zg30)bj-a9(}*zѪ*8MZT&T\B$V:jqZYC~uB + lC9T :QjƩ&ȍxhF| {)QWܾ>[h8eN ´lIVDvZӡ-$7#G^rܕSڸ$KDy0JZk;ׅ.ȸkVVei;]<@4zI&-װNDЩL'%ڊn?H; -4֧9 +QкZjˍ#]V:OzVO-[%0@6L{8,=EENXȋ9[~C_PI&$oAOԏ75ֻ; 4K2jnfWQzqMFRd}ػ:Uv3ȈGY'd7t`}na<'?24{bohe|Yp<(;ж7^PEjOw)*$ƽHb\caCw3z\" ]:H3mg͒,V1mh +jy8h*q +\E! fѿΧ]9UB ;!v^fxh4p\_(1jd?5Tu!VMf$ &VC9WuޖA8L(2 a:)w1(qosZ7z81rpMqMؽj +O)@!e3ˌz|ȴ_+b_?0}< 84c}ϠgEI5;Q(ο:?2UIlL_]~A{DP%Sy[;BDcy{EU:K0I-O43dNY'3t"55hNz ~׸1֥^GX\58Ԃ\ĢzEO~c<*c ".1{.yKr 'pT!I\ԙ*b|֋R-YgSkajՍ&/ +J\WU [͖,:QΉ2iڹb2v6yv+ K an(:%~NT|BǀYw5W-z.߰ϣF rK0餛F*h#J(G4lzǰ8;]Y(o!ȿiD? AT`J `ġ*uetE)\^:tWTEXJp;&xb/VV`Yy +5^_D iRuUxޮ\:IK$#peG +wZ{ nXQ9f.Wu5hb;.GGT_d}x|=W40,Ķ:3>H-.:-([o +L) 9XZ@OTY,tI;4i3l[0)&%_X7]J=F3q]+hVMv!:l>p&G0;RnK3qvMKJecCp&?6`zA^akLmZ)4M fohx +Zد˾*.޷uyp^DFI3!jЋsf?h/T]OqM!s1\ .԰BtH :~8vJ +u[ M(apOˬ.CYH2VD!Txno$T(П8+m׃Qz*gSU۰Ի[lJ2`Q"0C;Oo RVM^Z%Yѧ ,||GI.E?ìd4*Q$p>3ә t$kΑ#n-z!3 ΐ2bz4%t{Q%uި#@45Sn /JgD{Z|I)!h`du>5[s( zS*3NAp (iǘvpr[G(Z4 6w_߬3ߨ  r8n D?> lFNaD5p$e^v-"bq-62š蓑HR7?߶_s'9ˆRmIYQ❡ VL!wrasSr0qvv>pZttc( sI)(s'W :c/?xbR_c)H6N|ۮț6\ JC{8_' .P3t%߮Np>~ъpp#(TZdI"ZXͭ㣫ނ~H&gf͢zrɼH+JW%^!iM$iL EmDybF `y4<( oĐ~5!T6q:1ZFcL}=Jŏ!>DDM_@ãK'8At8O?vBA_=b'; R `lрIҙ{4>31%bfvF gDZ@4h@Ax>ܥ׾p&rg$[dfkt0@3DF, Yg*Ɂ,֧ +lz4Wܮ鈷{<|nU~\hA"֡ks'95.d7+jKqԺ +M έ:C7SO qRW}f {b%UO.@۝@"3G/F)tX6qQo 0-#>D4e3$KNQzLHXG)AjU„}uHVn'<4ˣ2v4[OvX(aYRiׂe*S1UQa倽@R+~}n ĦnF\g7IS,嫯%7MyoTKH_c[L !EyCd חY(Ԭmv/QLSВ{bQ6s$AORMdpvS1~ _5ЋȇiQ3 V8K.sdm5^WENw]@9v /K6%i![ +}Wrl(#m+#F4< 2oc֘^}y8PWRu%C*`l(]sgL7WCLjapN5q~;뺑IܣU7m29ʣ1poT$OǑUqص.Zt7W>GP[=lrad1YHe0E7< xG Vcm`#6CE!À$gɶ|G*_O>*-P)h1##Sim*Y:O/GJlQ>[Vc #>' ǃlVa.^7amT#gMDm!u懒R. za_gpZ_vT6 +9jqL@`lqpD|n$D2w Mu%{4k:f\kWճR_'0}P8@,,'h^[sd1$rSn'6)W1&B_G4ȉ榞mЮG<_Aa1Ȕp>*R܅sxZ}ل:<Fr82u9,Vpl۶m۶m۶m۶uǶmH6ĩ:UJUZOspI!9%N^2Q6] m,@9zU uĉ_vVʻSFi&Vؽf#\`2!֧)y,|Qa^ oڗ>޷ZCp`ޤ2esrUǏtWkJO:t7FNM)&X4끟C ~oMEnď̸+{#rM5LT8yٛei'(yre~sTvK88 TY(x[vRp'2 s;7ϡ#L,IO?ISqb5]+HL=J'{gB]Okt2Yg`0̈́WO?񄳡ӄ;=y! +>DHlӧ/a}1wrf4 {1c}ҵL9q-3IL0x%X;Yѓcj?Arbõ!I_Q-@?wD}ZVOžAt^xp 9J@glt +W|WgȴIiEiA%M5»>L ̂ZeHq3^\0ϽJ2LYyl ְ()ӻU6sCQ2KM}cBaN75wVg.%7q5iMYQ YKvv){0c36vGL8:1z|oߖ +yE:kX k%5qŹtT٦7yX$_.ݬNT/ ]q/,=oQ]/ZGx.n[>Nᬗk׻5_H*Ql+ @"2=_1^#w[ BE]|ypύ#ˏ%R\5>N+G 6߆]D&!7|h ۚY![ +*LiP",c\_SIH`:8.:N+u幘)89Hbnhb?^`as?=a>W^DhOiΜ\Ń& TGtj nPzGJ[;z\]>۫:M Pki|^aWx5nt W*Z寯?XN7c/;;;&tJGTxշ0quZ4tֵBٰA >&bx eo+{q˨m*2ϩ }GNC5/b <) +K]/}kz}~‹$PECHPLhzlolY <ˈ:`R}gXCD/\"ܛ`eóݒElAk$6`xܙ cj!NDh VaPu.\Ȕk2gqYIFE +- +9nQ,L]f€:~^C6^ק4TtZ)j1\P읙G x} + y*tVTA"C+qZHʆx]ǗNbء۝bL8+Ǩ:DegNrW\Ձ#IPL1$ {1#2vTMx.x-K'eN"?ֻAY\꧃Ϣ +ŻwKaLu6 _¼1.HrH4R\, + }`6)γdQxټ~ N + ;rU霼@Dzah., +kWHܸTuWpbi1IV5[DV"!zX΄IB-(0~ s,-,c +թ/@#\Co$W͞Q +hE<8 !RyPT~+.N=,,f8|blg AR5d}]عdyJ ӅVÆ_HXU*6Vh| !.u֥yy s#e_4k^%ĺ +tmr'C*-pKHx&a$/f$(p9G[eKd0u~?YQKy rՇWy`Ó A +lz N: Ā&ϱ9lӛL~3q|4>=DnAX]Gat!.P1ggrׅ]vEuue;_G66T6``QՆ-0'e2e[PV0$IkTշ jIβ}osfKq-˻7^"PD5I$Rؚe,H%A]#SMxc\HXý#rM?.-3L^GN +4 +ܧGQOc"|Bfgi.U*&mYZ{K1 S(yv4@MR5A-ɮ I=*#RZ`c%g^0KgY^L+²̨!^D _gv* >m#j\"~ "z8Gb fP/`Meb,&ږhPʄ:_C=)Uk۶seѓJN!ީcm4T3,%6kӰ_o|qp@˼cӅ&ۛ3e'jX31#hvp[#kʹ*#iEjۖaӃmWW$f"d1m6Q2@# U5s=WcgMMmv{zke%n״%Z @={Fњ;yAviQ)H }/_-Ͱ(ʆ~\k#b7Z8<GG&/0T&")Ӝ^9|{YcKȓ!d~F:r ;(†mf,z~Ll)~nݖ잙t2!1?muF.jE0j_{:4aoLoUVryߨ},> ݚ#V:!'\zs`_Ưk_R* n Y saDMD +DmuqhXom8#h(C+%#bdaL.!Izd'*\˜:y`kggkoHӦCV 7uh a&G3 )>q1^ + rf-pQ׎XϼI{RuB#ŕr9&I[غ*+iSd.V +|y vӭ-cBpQkn6 *sֱ5{k +nk3xɝ +Xx /yW;btUp68nGu|ԁd~){*N _@uY_Y3CsK"c9i.znf$ڦuG>z޶:[rkK =eyD3b8Zf%?#a6qCnShvgt})!eU!/doCfte?Z7 + $&>VpGOvq<C55Ddj`"8<.j.m +Xq ZM*xDNdoף=8 o73.h陋h)cQ3tэZݺbbV_x(ҞU_{w' Ll=xII@Twf3 |r2=J7Iuz)t,4>[B gFYx=䔕[6Cgh`$՗>WcC/)e=3[Oʒ`N +?:V̠1Z~tLXJ^H3S/J ,ND%Tեέ*_B3^.W1Cm}.-& +<1vY5-MJ)Iy;x +>_D˧rQJ~Y*8pBFj`+"ڮn&bo"\F3F,+¥Cv_SԖ@HNAɡJZ( kV/0"K"Kl 2`#:|Ƒ93XoN;!6[)Rm'b?f-j qe"4]7\,>8;5$q#1=Iϳҩ@?ΔL#U} |m=DеV:]c~RMP;zc "&Q28:s Ng>nT}G=ˏA +t n3k R|$8Tu_QJ<8H\ah.ryf7g?OPJ(D`gM@ jvfWPvF _2?x +yLR{s@*m 5IrfY[z<X[w +B嵴hx_g`bNUz!EXn[j/ 4=|n8Kq 6Fb ȴ%r4X"K/X"Q\YpD"DJ Izr|ٴ%rTZ} cOrHa{T̶N>y,GbE"3?kҠtmJbs ގ裌O!LA +/g{A$"A.1gϡd5+/am?2m4nT8|E F]%^ Zך2 gB Gs-iJjv|~cB)gNĥQK¼Of* QܝCI~h6 Wh>+'b3CGmS o>meC}Wgbq˺`Uj4Mxǝ0Et IVCߏ"6G|O+)Fy?LwȮ6~5RX/c@Y~-0C:kb+R3} _ T^S5^>?̙n5px aGYhBPAZ%T)#~gxr"yʎDG!HJɫUA>Aٚ4Lv!}7|q` +״ժɁ/cFJT[Bu_K<(uV9)yb``iۄI͘-wm%{r؉O!Q +`NϠΑmAcs\vgO\$B~Ag[KN҆L 5}2ޘ~Kvt{|Gݻ$OQ&<^u}2}"Gl箷 c4:vTaι\צ@^9Do9|nz^ɹ6I]lڴsOKhRNѩ˅+$EM\, :%1uѷf#:_T0sC}13mpU3,S“KhI|$1vmeͽ ]9ڹUu&Gqc+s|ϖav {i H)1LELeUgBhBwl2]\,swM 4ionoC\%a/jY*H  +—aXF7;}2ѥǧ FqNb)ZJn_UVǴ}MmmKDotۅ^dOV *nė{UgձK>#n}| 88LRҧrt{pV"#L?ygcT% %d[j[3{6bqB@,38#:Y.nоl0@2?nL'ݯ!1=0-%729D}q+!I@0?#aWkr&}v'7,B{\֟qZL$ U͔ա%t ep˦mWTKp#S,Jdhtdžk}ChB<5 6ċhhS"%e݌_FmNm3 +/Vp,/c,xIo>_Y#͓xPMb$*%kG]O>`c K/;̉0LR-=YE$t ɟNg6|d9 +?Q8LTC N IkZٻtC͵1L2 D䣳-wbkyB?[s}9M\mN-TL1ig52[LF&6!5ӈ"SWq G pRܹ_P62v9eV:yKn1-jUFC%_X5zI mkv+5(.#"+C4G/=\ԦDOm]"]g-L1A۔?:ōR+T8r, viS& "̽B( c^qwU&z{%{hV7i>EZ"U\l|='{ī-=gSa~ە)gܤBT,0Dh)ۇ<!EyE"E->^6QԦe  u5Pɜ^kzgl?Ǽ"pSH}@b4d,RZ}ݟ1`8& wn%2nsKju#ygH߲9#RO lH(~S&s×%nt.8ʠ~솋+w@/S`-4TS1a&)>b)ݬ!R Ё䄈J&dL\4zz ȇb LC_X +w3i~يt7U}75sw݀D:FXV魠H+{UEځ:Q^Eڳa:H`\ui_/ڔ>GR{mϹ', y>]bq̼4&{􍸊U*TռUEپ7*VB8&r<,.L0@7=Zy붼2w 6ע9~9#XW4./xV^U Zt̔sxH&0Z&>p}&}gADuVISQ.υTJ3,ڗ[;;Zb0Z<&yR۟TVN>Ϫ7\cAOցABky fK(c,+\GBWەT:ĮpC2 eBԶG4nHDn7C %!Í'o?ɤ_h2g 8Ɛg$A, .Y) wf/ x)TM-RVQlCڜ7LܹW6`%QF%V7xcb5boAz7`$?!!-XvxiQע qeJx, [ӯTfEt{J %5z#bVzC߻n.Fɔִv)9{e͊lOBwvڔ4>m|yS/3si9Zi%}|S>&D_Cqm7 +F^jI7_S0006Xuلbǒ|x +T},Zų́<1A]A^K=Z*-lEO/KMzx>ZPcMyT˩ Oa^>{~,O$7*UAQ\zM$L:ojbKye9q+HI{T:a\L17\G)Y!PB}!gS?բ=dĖ;9ڪͤ-`>3-޾p&<@&nxVÛhjK>c.\Ep1qTV5z$R~{R@-Œ*9)zxվ͠ +!LJ'ڴ؂MY-լy7'/tĻ4[:@"b7p%gMK 2}oڙ:@]gL'(fsWpR 0TMbevSb *5:cQhR+Fl\a&L&C.M}ǂŰt|yF4comdR+Ye +?$ +endstream +endobj +628 0 obj +<< +/Type /FontDescriptor +/FontName /WOYMVV+LMMonoSlant10-Regular +/Flags 4 +/FontBBox [-477 -316 786 1016] +/Ascent 599 +/CapHeight 599 +/Descent -222 +/ItalicAngle -9 +/StemV 69 +/XHeight 431 +/CharSet (/A/B/C/J/L/P/R/T/Z/a/asterisk/b/braceleft/braceright/c/comma/d/e/f/g/h/hyphen/i/k/l/m/n/o/p/parenleft/parenright/period/r/s/t/u/v/w/x/y/z) +/FontFile 627 0 R +>> +endobj +578 0 obj +<< +/Type /Encoding +/Differences [16/quotedblleft/quotedblright 27/ff/fi/fl/ffi 33/exclam 37/percent 39/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright 95/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft 125/braceright 227/atilde 231/ccedilla 233/eacute 237/iacute 244/ocircumflex/otilde/odieresis] +>> +endobj +576 0 obj +<< +/Type /Encoding +/Differences [34/epsilon] +>> +endobj +584 0 obj +<< +/Type /Encoding +/Differences [104/angbracketleft/angbracketright] +>> +endobj +586 0 obj +<< +/Type /Encoding +/Differences [61/equal] +>> +endobj +580 0 obj +<< +/Type /Encoding +/Differences [39/quotesingle.ts1 136/bullet 158/openbullet] +>> +endobj +629 0 obj +<< +/Length 844 +/Filter /FlateDecode +>> +stream +xmUMo@Wla_BZX& +Q+K62 5fI`x;fͳضߺItճ;סqT}s=ùֵA= }vu[Uyk֍I{wQ/5qhe9xSTQO7}̽][GLrFMG}}"Im!00jEV%H^/v}0<_7RyL U~C`PރSӯ|' +imXYӷ|4nt.kP^k?IFsuB`nlB +=@ )U 9yI(ѥ +S*043``ÍSqf|kiCc, pDˆzF:x0)ljsn l9u}SrI4"nXCA8%&ٵ6AI cMXS?S/w,;: fyR(#c^g!ch"ƨ/kC^d cRx~h K^| +МQV14Ld5cY9Y?=C9돡'g ?%>O:ShYg{ΈrYgDk>[bghX|&^V|sig33qgng3tZ[Yog,g-g B|B|\3gg|2?f)> +endobj +630 0 obj +<< +/Length 844 +/Filter /FlateDecode +>> +stream +xmUMo@Wla_BZX& +Q+K62 5fI`x;fͳضߺItճ;סqT}s=ùֵA= }vu[Uyk֍I{wQ/5qDŽ r Gէn8A{,쏘LEvDB``B9zK~;_q`>Wgy o.>ݫﭯAbZ%?6G_Nzy;9ڰoiܰ^]0zu\~3ݍܥ: ل0%1 " 0Z{q́0R0r0QK5<T`,if,1gT Hӆp1X:,p8}u +8alSM3?r>x\i"EܰpJMkl4\?ǚc:#?^YHwuprQF^odž1BЖEQ?1^׆ƨАԗ039+ãbLi~jЙ}s~zrCOe fYJ|֟uМ8gΈrY׆}ŊϘъ1LҊkgigϘ݊og3f3|3ߊY[3 =L3f/gd ,' f)Rx jb&'W *.MGZN(:p~7a?}]TyԟE}Ư%Vu'e% +endstream +endobj +242 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /IRKPPV+LMRoman12-Bold +/FontDescriptor 602 0 R +/FirstChar 42 +/LastChar 117 +/Widths 593 0 R +/Encoding 578 0 R +/ToUnicode 630 0 R +>> +endobj +631 0 obj +<< +/Length 841 +/Filter /FlateDecode +>> +stream +xmUMo0+J! ᫊"RVmk +N)$̛3njNelܬ=WW\?;׺v=ݩqhY]jwOҺ=po]IAu~\3FXҝA5(O)suߖcHQIܮQW Lڮ9ˊ6nK5NoغWi~r<d(Vu;_=85vѩֆu5CNmm悥+U=#)\][|, MHS"#p #>y| #:##0)%T\`YQqJƚ`ci|1Mَbo4m `2WQ/cW888sέ-./qJ;&\ k(d?F#h0\?Ipa]~9Vk?q1Bx.BzҬÀhƘ'g 2xk=6u2,bق6E0F,eL燆LY` YecODV3Μ蛳;zr֟P.O0{S3ux9(uF: }6,V|ƌV|gegV|F_+>O+>G|V|~+>C1 V|B|FB|/g)g1{!>_|&~'a9i0K!cB{XTK5;)NŽbPq> +endobj +632 0 obj +<< +/Length 841 +/Filter /FlateDecode +>> +stream +xmUMo0+J! ᫊"RVmk +N)$̛3njNelܬ=WW\?;׺v=ݩqhY]jwOҺ=po]IAu~\3F;;=}kPQ/7SVk-8s擸]׷QPP]sݛ麟;l,j7O4uc׿x;P:XTv~{pjS! j֝ƍKWjY׫{FR^wwPG*X$D F @F@k} 89@FJuFF#`R0Jt +5 5553Tg_c.\Y7ь1O*ezl,d mY50ymȋ,aYʘ8 xA} /Y1<*T71މf 97g19w(g1?\֟`g Yg +9LsQ.(ulgYˊx/V|V|&٭ V|N+>cv+>7+>S} ~!>_Sϔ+>cB|&LOr`B,&+jwRP{x${y儢 1~g|sGӿNu]>~?,5(z +endstream +endobj +238 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /JFOBVR+LMRoman12-Regular +/FontDescriptor 608 0 R +/FirstChar 16 +/LastChar 122 +/Widths 597 0 R +/Encoding 578 0 R +/ToUnicode 632 0 R +>> +endobj +633 0 obj +<< +/Length 841 +/Filter /FlateDecode +>> +stream +xmUMo0+J! ᫊"RVmk +N)$̛3njNelܬ=WW\?;׺v=ݩqhY]jwOҺ=po]IAu~\3F;;=}kPQ/7SVk-8s擸]׷QPP]sݛ麟;l,j7O4uc׿x;P:XTv~{pjS! j֝ƍKWjY׫{FR^wwPG*X$D F @F@k} 89@FJuFF#`R0Jt +5 5553Tg_c.\Y7ь1O*ezl,d mY50ymȋ,aYʘ8 xA} /Y1<*T71މf 97g19w(g1?\֟`g Yg +9LsQ.(ulgYˊx/V|V|&٭ V|N+>cv+>7+>S} ~!>_Sϔ+>cB|&LOr`B,&+jwRP{x${y儢 1~g|sGӿNu]>~?,5(z6 +endstream +endobj +237 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /JLVZZZ+LMRoman17-Regular +/FontDescriptor 610 0 R +/FirstChar 40 +/LastChar 120 +/Widths 598 0 R +/Encoding 578 0 R +/ToUnicode 633 0 R +>> +endobj +634 0 obj +<< +/Length 841 +/Filter /FlateDecode +>> +stream +xmUn0CƆ"RVmk +N7RIU70W?'^$Is}=}exǡ}'u]U=ow_XߓJ?)裮_o'h P=mbKLQ/?C̭:}W {pCM/6۾EzĪ۶'Yѽ3~< |OaxIM4};?n7uEYy>;JG& ߯^M~*aUaqݿhB͛foH]n-I&H8@l: ld`TYg``&Bkk0jNXXр0#` w]jG1 F60q'kgqScsnl9Ns`qKK%pNI8qJ9q4Ϯ%p 2\XWkz,_8x1g1=ia4c̓˳G6ڀ cxmcfƨog!/lmΘ8+^P_-C#[34IN؆1t?E߂ޡSrY ֟gg9433.XgB3\iafq3fts +,>G|F/'>t3:~:83fw3;:ٝ ߜLgw3t33 ~)>CO)>SK3- ,YJa)SMV襤:?85JC4I^ E'b4>> +endobj +635 0 obj +<< +/Length 843 +/Filter /FlateDecode +>> +stream +xmUMo0+J! ᫊"RVmk +N)$ݪ70W?g^,ɝظYs{ \wu{S<.7զ7u{R޺>f?  G՗_nO:ShYg{ΈrYgDk>[bghX|&^V|sig33qgng3tZ[Yog,g-g B|B|\3gg|2?f)> +endobj +636 0 obj +<< +/Length 845 +/Filter /FlateDecode +>> +stream +xuUMo@+H.ȲrhQիԒ ؇6jo73o{q3mfѭVOn/Cf)rtskzf꺼Ɠpi?p>fv8coJ?< a9(})suזÌ\$qATh L}s6G +7o],jotuþ{UןtptZ|MÏѩNN6[7ݫ ZԲWO&suB`ilB +=@ )U 9yI(ѥ +S*043``MSiv|kiCXc, pDˆzA:x0)ljsn l9u}SrI4"nXCA8%&ٵ6AI cMϱXS_S/w"': fyRy(#c^g!ch"ƨ-kC^d cRx~h K^| +МQV14Nd5cY9Y?C9돡'g ?%>O:ShYggΈrYgDg>[bghX|&^V|{ig33qgng3tZ[Yog,g-g B|B|\3gg3?f)O5[TT+&GUP#a#7a/c?w:'dEgtdbP2ڂ +endstream +endobj +278 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /YVSTKC+LMSans10-Oblique +/FontDescriptor 616 0 R +/FirstChar 28 +/LastChar 122 +/Widths 588 0 R +/Encoding 578 0 R +/ToUnicode 636 0 R +>> +endobj +637 0 obj +<< +/Length 845 +/Filter /FlateDecode +>> +stream +xuUMo@+H.ȲrhQիԒ ؇6jo73o{q3mfѭVOn/Cf)rtskzf꺼Ɠpi?p>fv8coBy>x sXQO7SVk-#RInߵR/P,+m$oƳ;w>X. C}?77 D`RއۣS/&}g= +imX[ӷnx\i"EܰpJMkl4\?ǚc:7^EHOupQF^odž1BЖEQ?[0^׆ƨАԗ0 9+ãbLi~jЙ}s~zrCOe fYJ|֟uМ8gΈrYφ}ŊϘъ1LҊkgigϘ݊og3f3|3ߊY[3 =L3f/gxg ,; f)Rx jb&'W *.lMr0߫j١hGF}o.:_hW~tOȢή*ڌ +endstream +endobj +277 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /XQQCIP+LMSans12-Oblique +/FontDescriptor 618 0 R +/FirstChar 28 +/LastChar 121 +/Widths 589 0 R +/Encoding 578 0 R +/ToUnicode 637 0 R +>> +endobj +638 0 obj +<< +/Length 844 +/Filter /FlateDecode +>> +stream +xmUMo@+H.Ȳ|h%Qի ۇ6웙7X=Tg ]NncT5ob<Y:socsOPcYB?9Os֙3\Q.4ڰX3Z9#>\Z} ?L[ V|V|oV|3[: } B|)W|L| ,Y +a!SM~W,:?8C8…I^U E'b|82 8ϻ޽YtїkZbu_G4 +endstream +endobj +289 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /CENXFI+LMMonoLt10-Bold +/FontDescriptor 622 0 R +/FirstChar 66 +/LastChar 120 +/Widths 583 0 R +/Encoding 578 0 R +/ToUnicode 638 0 R +>> +endobj +639 0 obj +<< +/Length 845 +/Filter /FlateDecode +>> +stream +xuUMo@+H.Ȳ|hQիԪ 73$mof<`zbM[ܩ 7u{Z׎wOwq蛵;rUƓW]ndT]AAu~N\3ο{?Vyi_0aE?pݝ2ZkXvm0) 5%nw];* Ukβ]AtvU\Myx#7ahݰ^gqr<(,u[_p985bwѩֆ5}NMMꂹ 5E=#)/ۑ\]PG"$D F @F@k} 89@FJuFF#`R0Jt +% %553Tg ]8 IncT5obY:socsOPcYB?9Os֙3\Q.4ٰX3Z9#>^Z} ?L[ V|V|oV|3[: } B|)W|L| e,Y +a!SMV,鸞:?8C8…I{U-;H؈qte@ w{?Yt5X=[_ +endstream +endobj +435 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /NRDUGX+LMMonoLt10-BoldOblique +/FontDescriptor 624 0 R +/FirstChar 65 +/LastChar 121 +/Widths 579 0 R +/Encoding 578 0 R +/ToUnicode 639 0 R +>> +endobj +640 0 obj +<< +/Length 843 +/Filter /FlateDecode +>> +stream +xmUMo0+J! ᫊"RVmk +N7R!ݪ70W?g_,ɝиYs{ +]7;׺v=ߩǡoݨM'opiT}IAu~\3;he?<{Q%(SVk-#&9sQ擾ݾk^!00j(+m$?Gwt>X.oTuþ{S_tpСtZ|I1?H/'BZV;ݛ ZԲW/{FR^ww?U4H6!L@@B@q\s *G|F/+>㹴3Z~Z83f3[:٭ ߬Lg3t33 ~!>CO!>S 33>IY +?BXIAup*Çq G潪N$p|eO_:q;:'dE_kCa +endstream +endobj +276 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /WSYJXC+LMMono10-Regular +/FontDescriptor 626 0 R +/FirstChar 37 +/LastChar 246 +/Widths 590 0 R +/Encoding 578 0 R +/ToUnicode 640 0 R +>> +endobj +641 0 obj +<< +/Length 845 +/Filter /FlateDecode +>> +stream +xuUMo@+H.ȲrhQիԒ Ƈ6jo73o{q3mfѭVO_SpuUsk;8ƍ꺼x]snbT}AAu~\3;DZ7cAޏO|X}+JZka\$qATh L}3ʊ~wɛݮK57F:oкa߽t:8Q:XTvIYo'BZ;ݫ ZԲWO&suB`ilB +=@ )U 9yI(ѥ +S*043``MSiv|kiCXc, pDˆzA:x0)ljsn l9u}SrI4"nXCA8%&ٵ6AI cMϱXS_S/w"': fyRy(#c^g!ch"ƨ-kC^d cRx~h K^| +МQV14Nd5cY9Y?C9돡'g ?%>O:ShYggΈrYgDg>[bghX|&^V|{ig33qgng3tZ[Yog,g-g B|B|\3gg3?f)O5[TT+&GUP#a#7a/c?w:'dEgtdbPMڌ +endstream +endobj +241 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /WOYMVV+LMMonoSlant10-Regular +/FontDescriptor 628 0 R +/FirstChar 40 +/LastChar 125 +/Widths 594 0 R +/Encoding 578 0 R +/ToUnicode 641 0 R +>> +endobj +642 0 obj +<< +/Length 600 +/Filter /FlateDecode +>> +stream +xuTn@+fH@!BHMV{5@,lsw m6n냝g)>mW_NiFq]J[o6nWbmmUON%О[:b',v_2~"!~PGGZPvE] +,tĦʣD37ⱨJSZENJ7]omuRL?e׷WMܶEuGsrwi!Jr9: +Mg޲:]fMR2IV;e8p<_9"*G(dS>sQ  DDr "qX+&Gha:$r5PHi@S91jU|s(V8>l;JۈYDI aoykrA)ς1R;JS΄U!ar .Qsy4M纑9Ҍi~h7!cD<`1 ySMgg>2 cs(>ZC@ f fP7Fo?],}/Kۺ=/mS7m'{LD +endstream +endobj +508 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /AHKBFZ+LMMathItalic12-Regular +/FontDescriptor 604 0 R +/FirstChar 34 +/LastChar 34 +/Widths 577 0 R +/Encoding 576 0 R +/ToUnicode 642 0 R +>> +endobj +643 0 obj +<< +/Length 790 +/Filter /FlateDecode +>> +stream +xuUMo0Wx B +HJ+ML ~fVyyfln~=&iټwͥ-d{nn|?z_r|=)vm.uq~T_U%AqNdGwH_d?(DwZ?~^JM]6EU]+Ң~xŻkӶ>4b!/e׷WyMҷU.n /waDh?vz[є; w-\E/#_iKvr'ht1 b 6aA8iHAxx*%) BSDjn@P˄AȘʠ0a8F + +8An)  +4bX*^cH`&f P;6 <9Bi2)LeTV.>HEW0*50^ s غ~${S$2ˀQ lC]j{Q\8jFجA`Z1Fcf1ur=#1SƤx- 907O`aaeVrLӔhVje y Q( a0<x?hkSIc/ -ur^vҁ7#!}BzUaQRZa~JÃy1KNqHC4cmӹy 7]t"jy3Vч.OOy/ +endstream +endobj +284 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /XPVMCL+LMMathSymbols10-Regular +/FontDescriptor 620 0 R +/FirstChar 104 +/LastChar 105 +/Widths 585 0 R +/Encoding 584 0 R +/ToUnicode 643 0 R +>> +endobj +644 0 obj +<< +/Length 962 +/Filter /FlateDecode +>> +stream +xmVn8+$eI@0@vf0 {u$&k >N&bZͪ$毟+?Ώa~W8͗e1ir{cwOeY6wݴ?ixTN:!Zbl ?/}cQQ?a92_ֱMc3`㔬EZ_=q=cոrE!99*o+i,cXӳ(-޺/2N[581;kúy nnzIVU}M4qϤt~Rmʦq,fZsBGq!MąBIUf`6QbFYa +h ɨ%X8Zێ +'U[:th鹥CK["OntZB~kul:e\ow:gLsJԋ84sy3ݾ_7~_9x<xe. 0y!Vz) ou/ Ϟṯֵ*跖` )<3'jIC&s2pBCֳ/5h~s +I{8g 0F2|2F0Ƴ(gĉ1q#9~IȣAήa}t-c/9c]:K֟aݒggSzY%/sKY)YgJ3^i૔K%g|Lkyπ#9ûK%gx3r3͗KYKX%gkzjəz%gx%gK',S/9GZ6h-C S#ܚ_* jp@L[06e~_g!}/\XN8Jν,HN:q).~(%D +endstream +endobj +283 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /JFOBVR+LMRoman12-Regular +/FontDescriptor 608 0 R +/FirstChar 61 +/LastChar 61 +/Widths 587 0 R +/Encoding 586 0 R +/ToUnicode 644 0 R +>> +endobj +645 0 obj +<< +/Length 700 +/Filter /FlateDecode +>> +stream +xuTMo0+J!m0U !mTto4j{zv|tv ںQf|6'op݅uM{}ugfci"Amƃ}>,%rtPRJ(:X'Ab~oںT7h uSӌ]Acq`sy̟M.n? D`އщ7+d~4Wj7vw VRŪ,ׁk/bxO0+,F )1!Pp #]QxQTv)#ZBYLt/X^r<1u%pr_d9٢PSi0@WQ_Uh֩h諵"qFM]RrCpt39Âж~j3Fezp888Q:1bc7~}Hq('bĄ>^m# &zd}4)` +"H,4%!%AQ߄B[B~)ҙ́ _)M?DM;豬;kyoQnNRd\Ӎ;WA} +zoZZgbTU +|_ +endstream +endobj +426 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /JFOBVR+LMRoman12-Regular +/FontDescriptor 608 0 R +/FirstChar 136 +/LastChar 158 +/Widths 581 0 R +/Encoding 580 0 R +/ToUnicode 645 0 R +>> +endobj +646 0 obj +<< +/Length 701 +/Filter /FlateDecode +>> +stream +xuTn0+Cl + m8(zu$:`K$Q4pufn}f)ɻ|tùA<]u6m;O޴\+$ޚv}qff8*h$iƃ}E>.>ttPRJ(:X/rߴu&^!3PZM5^F$o߇7 V+1ؿһ`׮o7qIݞO!Znz/~N̿Z䄦buUWᴫ\k\r-Ve\[3sB A `ehHiJ }*>`!â)dHUA^UwEZK5h"uS/g bρ#)p̹18yi r<ܗ8-pN(T1 PUF9a*~0'ujE5z4jgǺ4QSkj sE8-_ZQY\2=<"NNL>9fѓ@D9{&&gnI0䑱Ӊ3 hxRE"7Yp/hJXCKH eR3ə$Sޛ{cYrwDz~ !G9Kûq_nY3/Bu{XcD~ӺԝE?zO,Fef~ +endstream +endobj +297 0 obj +<< +/Type /Font +/Subtype /Type1 +/BaseFont /WSYJXC+LMMono10-Regular +/FontDescriptor 626 0 R +/FirstChar 39 +/LastChar 39 +/Widths 582 0 R +/Encoding 580 0 R +/ToUnicode 646 0 R +>> +endobj +243 0 obj +<< +/Type /Pages +/Count 6 +/Parent 647 0 R +/Kids [173 0 R 270 0 R 280 0 R 286 0 R 291 0 R 304 0 R] +>> +endobj +365 0 obj +<< +/Type /Pages +/Count 6 +/Parent 647 0 R +/Kids [316 0 R 367 0 R 412 0 R 428 0 R 432 0 R 460 0 R] +>> +endobj +497 0 obj +<< +/Type /Pages +/Count 6 +/Parent 647 0 R +/Kids [474 0 R 503 0 R 536 0 R 554 0 R 558 0 R 562 0 R] +>> +endobj +571 0 obj +<< +/Type /Pages +/Count 2 +/Parent 647 0 R +/Kids [568 0 R 573 0 R] +>> +endobj +647 0 obj +<< +/Type /Pages +/Count 20 +/Kids [243 0 R 365 0 R 497 0 R 571 0 R] +>> +endobj +648 0 obj +<< +/Type /Outlines +/First 6 0 R +/Last 166 0 R +/Count 13 +>> +endobj +170 0 obj +<< +/Title 171 0 R +/A 168 0 R +/Parent 166 0 R +>> +endobj +166 0 obj +<< +/Title 167 0 R +/A 164 0 R +/Parent 648 0 R +/Prev 158 0 R +/First 170 0 R +/Last 170 0 R +/Count -1 +>> +endobj +162 0 obj +<< +/Title 163 0 R +/A 160 0 R +/Parent 158 0 R +>> +endobj +158 0 obj +<< +/Title 159 0 R +/A 156 0 R +/Parent 648 0 R +/Prev 146 0 R +/Next 166 0 R +/First 162 0 R +/Last 162 0 R +/Count -1 +>> +endobj +154 0 obj +<< +/Title 155 0 R +/A 152 0 R +/Parent 146 0 R +/Prev 150 0 R +>> +endobj +150 0 obj +<< +/Title 151 0 R +/A 148 0 R +/Parent 146 0 R +/Next 154 0 R +>> +endobj +146 0 obj +<< +/Title 147 0 R +/A 144 0 R +/Parent 648 0 R +/Prev 130 0 R +/Next 158 0 R +/First 150 0 R +/Last 154 0 R +/Count -2 +>> +endobj +142 0 obj +<< +/Title 143 0 R +/A 140 0 R +/Parent 130 0 R +/Prev 138 0 R +>> +endobj +138 0 obj +<< +/Title 139 0 R +/A 136 0 R +/Parent 130 0 R +/Prev 134 0 R +/Next 142 0 R +>> +endobj +134 0 obj +<< +/Title 135 0 R +/A 132 0 R +/Parent 130 0 R +/Next 138 0 R +>> +endobj +130 0 obj +<< +/Title 131 0 R +/A 128 0 R +/Parent 648 0 R +/Prev 106 0 R +/Next 146 0 R +/First 134 0 R +/Last 142 0 R +/Count -3 +>> +endobj +126 0 obj +<< +/Title 127 0 R +/A 124 0 R +/Parent 114 0 R +/Prev 122 0 R +>> +endobj +122 0 obj +<< +/Title 123 0 R +/A 120 0 R +/Parent 114 0 R +/Prev 118 0 R +/Next 126 0 R +>> +endobj +118 0 obj +<< +/Title 119 0 R +/A 116 0 R +/Parent 114 0 R +/Next 122 0 R +>> +endobj +114 0 obj +<< +/Title 115 0 R +/A 112 0 R +/Parent 106 0 R +/Prev 110 0 R +/First 118 0 R +/Last 126 0 R +/Count -3 +>> +endobj +110 0 obj +<< +/Title 111 0 R +/A 108 0 R +/Parent 106 0 R +/Next 114 0 R +>> +endobj +106 0 obj +<< +/Title 107 0 R +/A 104 0 R +/Parent 648 0 R +/Prev 94 0 R +/Next 130 0 R +/First 110 0 R +/Last 114 0 R +/Count -2 +>> +endobj +102 0 obj +<< +/Title 103 0 R +/A 100 0 R +/Parent 94 0 R +/Prev 98 0 R +>> +endobj +98 0 obj +<< +/Title 99 0 R +/A 96 0 R +/Parent 94 0 R +/Next 102 0 R +>> +endobj +94 0 obj +<< +/Title 95 0 R +/A 92 0 R +/Parent 648 0 R +/Prev 82 0 R +/Next 106 0 R +/First 98 0 R +/Last 102 0 R +/Count -2 +>> +endobj +90 0 obj +<< +/Title 91 0 R +/A 88 0 R +/Parent 82 0 R +/Prev 86 0 R +>> +endobj +86 0 obj +<< +/Title 87 0 R +/A 84 0 R +/Parent 82 0 R +/Next 90 0 R +>> +endobj +82 0 obj +<< +/Title 83 0 R +/A 80 0 R +/Parent 648 0 R +/Prev 74 0 R +/Next 94 0 R +/First 86 0 R +/Last 90 0 R +/Count -2 +>> +endobj +78 0 obj +<< +/Title 79 0 R +/A 76 0 R +/Parent 74 0 R +>> +endobj +74 0 obj +<< +/Title 75 0 R +/A 72 0 R +/Parent 648 0 R +/Prev 62 0 R +/Next 82 0 R +/First 78 0 R +/Last 78 0 R +/Count -1 +>> +endobj +70 0 obj +<< +/Title 71 0 R +/A 68 0 R +/Parent 62 0 R +/Prev 66 0 R +>> +endobj +66 0 obj +<< +/Title 67 0 R +/A 64 0 R +/Parent 62 0 R +/Next 70 0 R +>> +endobj +62 0 obj +<< +/Title 63 0 R +/A 60 0 R +/Parent 648 0 R +/Prev 46 0 R +/Next 74 0 R +/First 66 0 R +/Last 70 0 R +/Count -2 +>> +endobj +58 0 obj +<< +/Title 59 0 R +/A 56 0 R +/Parent 46 0 R +/Prev 54 0 R +>> +endobj +54 0 obj +<< +/Title 55 0 R +/A 52 0 R +/Parent 46 0 R +/Prev 50 0 R +/Next 58 0 R +>> +endobj +50 0 obj +<< +/Title 51 0 R +/A 48 0 R +/Parent 46 0 R +/Next 54 0 R +>> +endobj +46 0 obj +<< +/Title 47 0 R +/A 44 0 R +/Parent 648 0 R +/Prev 26 0 R +/Next 62 0 R +/First 50 0 R +/Last 58 0 R +/Count -3 +>> +endobj +42 0 obj +<< +/Title 43 0 R +/A 40 0 R +/Parent 26 0 R +/Prev 38 0 R +>> +endobj +38 0 obj +<< +/Title 39 0 R +/A 36 0 R +/Parent 26 0 R +/Prev 34 0 R +/Next 42 0 R +>> +endobj +34 0 obj +<< +/Title 35 0 R +/A 32 0 R +/Parent 26 0 R +/Prev 30 0 R +/Next 38 0 R +>> +endobj +30 0 obj +<< +/Title 31 0 R +/A 28 0 R +/Parent 26 0 R +/Next 34 0 R +>> +endobj +26 0 obj +<< +/Title 27 0 R +/A 24 0 R +/Parent 648 0 R +/Prev 14 0 R +/Next 46 0 R +/First 30 0 R +/Last 42 0 R +/Count -4 +>> +endobj +22 0 obj +<< +/Title 23 0 R +/A 20 0 R +/Parent 14 0 R +/Prev 18 0 R +>> +endobj +18 0 obj +<< +/Title 19 0 R +/A 16 0 R +/Parent 14 0 R +/Next 22 0 R +>> +endobj +14 0 obj +<< +/Title 15 0 R +/A 12 0 R +/Parent 648 0 R +/Prev 6 0 R +/Next 26 0 R +/First 18 0 R +/Last 22 0 R +/Count -2 +>> +endobj +10 0 obj +<< +/Title 11 0 R +/A 8 0 R +/Parent 6 0 R +>> +endobj +6 0 obj +<< +/Title 7 0 R +/A 4 0 R +/Parent 648 0 R +/Next 14 0 R +/First 10 0 R +/Last 10 0 R +/Count -1 +>> +endobj +649 0 obj +<< +/Names [(Doc-Start) 236 0 R (Item.100) 397 0 R (Item.101) 398 0 R (Item.102) 399 0 R (Item.103) 400 0 R (Item.104) 401 0 R] +/Limits [(Doc-Start) (Item.104)] +>> +endobj +650 0 obj +<< +/Names [(Item.105) 402 0 R (Item.106) 403 0 R (Item.107) 404 0 R (Item.108) 405 0 R (Item.109) 406 0 R (Item.110) 407 0 R] +/Limits [(Item.105) (Item.110)] +>> +endobj +651 0 obj +<< +/Names [(Item.111) 408 0 R (Item.112) 409 0 R (Item.113) 410 0 R (Item.172) 477 0 R (Item.173) 478 0 R (Item.174) 479 0 R] +/Limits [(Item.111) (Item.174)] +>> +endobj +652 0 obj +<< +/Names [(Item.175) 480 0 R (Item.176) 481 0 R (Item.46) 338 0 R (Item.47) 339 0 R (Item.48) 340 0 R (Item.49) 341 0 R] +/Limits [(Item.175) (Item.49)] +>> +endobj +653 0 obj +<< +/Names [(Item.50) 342 0 R (Item.51) 343 0 R (Item.52) 344 0 R (Item.53) 345 0 R (Item.67) 359 0 R (Item.68) 360 0 R] +/Limits [(Item.50) (Item.68)] +>> +endobj +654 0 obj +<< +/Names [(Item.69) 361 0 R (Item.70) 362 0 R (Item.71) 363 0 R (Item.72) 364 0 R (Item.99) 396 0 R (lstlisting.11) 298 0 R] +/Limits [(Item.69) (lstlisting.11)] +>> +endobj +655 0 obj +<< +/Names [(lstlisting.114) 415 0 R (lstlisting.13) 300 0 R (lstlisting.136) 436 0 R (lstlisting.150) 449 0 R (lstlisting.161) 463 0 R (lstlisting.17) 307 0 R] +/Limits [(lstlisting.114) (lstlisting.17)] +>> +endobj +656 0 obj +<< +/Names [(lstlisting.178) 483 0 R (lstlisting.193) 509 0 R (lstlisting.214) 539 0 R (lstlisting.22) 312 0 R (lstlisting.229) 565 0 R (lstlisting.27) 319 0 R] +/Limits [(lstlisting.178) (lstlisting.27)] +>> +endobj +657 0 obj +<< +/Names [(lstlisting.54) 346 0 R (lstlisting.73) 370 0 R (lstlisting.8) 294 0 R (lstnumber.10) 296 0 R (lstnumber.115) 416 0 R (lstnumber.116) 417 0 R] +/Limits [(lstlisting.54) (lstnumber.116)] +>> +endobj +658 0 obj +<< +/Names [(lstnumber.117) 418 0 R (lstnumber.118) 419 0 R (lstnumber.119) 420 0 R (lstnumber.12) 299 0 R (lstnumber.120) 421 0 R (lstnumber.121) 422 0 R] +/Limits [(lstnumber.117) (lstnumber.121)] +>> +endobj +659 0 obj +<< +/Names [(lstnumber.122) 423 0 R (lstnumber.123) 424 0 R (lstnumber.124) 425 0 R (lstnumber.137) 437 0 R (lstnumber.138) 438 0 R (lstnumber.139) 439 0 R] +/Limits [(lstnumber.122) (lstnumber.139)] +>> +endobj +660 0 obj +<< +/Names [(lstnumber.14) 301 0 R (lstnumber.140) 440 0 R (lstnumber.141) 441 0 R (lstnumber.142) 442 0 R (lstnumber.143) 443 0 R (lstnumber.144) 444 0 R] +/Limits [(lstnumber.14) (lstnumber.144)] +>> +endobj +661 0 obj +<< +/Names [(lstnumber.145) 445 0 R (lstnumber.146) 446 0 R (lstnumber.147) 447 0 R (lstnumber.148) 448 0 R (lstnumber.15) 302 0 R (lstnumber.151) 450 0 R] +/Limits [(lstnumber.145) (lstnumber.151)] +>> +endobj +662 0 obj +<< +/Names [(lstnumber.152) 451 0 R (lstnumber.153) 452 0 R (lstnumber.154) 453 0 R (lstnumber.155) 454 0 R (lstnumber.156) 455 0 R (lstnumber.157) 456 0 R] +/Limits [(lstnumber.152) (lstnumber.157)] +>> +endobj +663 0 obj +<< +/Names [(lstnumber.162) 464 0 R (lstnumber.163) 465 0 R (lstnumber.164) 466 0 R (lstnumber.165) 467 0 R (lstnumber.166) 468 0 R (lstnumber.167) 469 0 R] +/Limits [(lstnumber.162) (lstnumber.167)] +>> +endobj +664 0 obj +<< +/Names [(lstnumber.168) 470 0 R (lstnumber.179) 484 0 R (lstnumber.18) 308 0 R (lstnumber.180) 485 0 R (lstnumber.181) 486 0 R (lstnumber.182) 487 0 R] +/Limits [(lstnumber.168) (lstnumber.182)] +>> +endobj +665 0 obj +<< +/Names [(lstnumber.183) 488 0 R (lstnumber.184) 489 0 R (lstnumber.185) 490 0 R (lstnumber.186) 491 0 R (lstnumber.187) 492 0 R (lstnumber.188) 493 0 R] +/Limits [(lstnumber.183) (lstnumber.188)] +>> +endobj +666 0 obj +<< +/Names [(lstnumber.189) 494 0 R (lstnumber.19) 309 0 R (lstnumber.190) 495 0 R (lstnumber.191) 496 0 R (lstnumber.194) 510 0 R (lstnumber.195) 511 0 R] +/Limits [(lstnumber.189) (lstnumber.195)] +>> +endobj +667 0 obj +<< +/Names [(lstnumber.196) 512 0 R (lstnumber.197) 513 0 R (lstnumber.198) 514 0 R (lstnumber.199) 515 0 R (lstnumber.20) 310 0 R (lstnumber.200) 516 0 R] +/Limits [(lstnumber.196) (lstnumber.200)] +>> +endobj +668 0 obj +<< +/Names [(lstnumber.201) 517 0 R (lstnumber.202) 518 0 R (lstnumber.203) 519 0 R (lstnumber.204) 520 0 R (lstnumber.205) 521 0 R (lstnumber.206) 522 0 R] +/Limits [(lstnumber.201) (lstnumber.206)] +>> +endobj +669 0 obj +<< +/Names [(lstnumber.207) 523 0 R (lstnumber.208) 524 0 R (lstnumber.209) 525 0 R (lstnumber.21) 311 0 R (lstnumber.210) 526 0 R (lstnumber.211) 527 0 R] +/Limits [(lstnumber.207) (lstnumber.211)] +>> +endobj +670 0 obj +<< +/Names [(lstnumber.212) 528 0 R (lstnumber.215) 540 0 R (lstnumber.216) 541 0 R (lstnumber.217) 542 0 R (lstnumber.218) 543 0 R (lstnumber.219) 544 0 R] +/Limits [(lstnumber.212) (lstnumber.219)] +>> +endobj +671 0 obj +<< +/Names [(lstnumber.220) 545 0 R (lstnumber.221) 546 0 R (lstnumber.222) 547 0 R (lstnumber.223) 548 0 R (lstnumber.224) 549 0 R (lstnumber.225) 550 0 R] +/Limits [(lstnumber.220) (lstnumber.225)] +>> +endobj +672 0 obj +<< +/Names [(lstnumber.23) 313 0 R (lstnumber.230) 566 0 R (lstnumber.24) 314 0 R (lstnumber.28) 320 0 R (lstnumber.29) 321 0 R (lstnumber.30) 322 0 R] +/Limits [(lstnumber.23) (lstnumber.30)] +>> +endobj +673 0 obj +<< +/Names [(lstnumber.31) 323 0 R (lstnumber.32) 324 0 R (lstnumber.33) 325 0 R (lstnumber.34) 326 0 R (lstnumber.35) 327 0 R (lstnumber.36) 328 0 R] +/Limits [(lstnumber.31) (lstnumber.36)] +>> +endobj +674 0 obj +<< +/Names [(lstnumber.37) 329 0 R (lstnumber.38) 330 0 R (lstnumber.39) 331 0 R (lstnumber.40) 332 0 R (lstnumber.41) 333 0 R (lstnumber.42) 334 0 R] +/Limits [(lstnumber.37) (lstnumber.42)] +>> +endobj +675 0 obj +<< +/Names [(lstnumber.43) 335 0 R (lstnumber.44) 336 0 R (lstnumber.45) 337 0 R (lstnumber.55) 347 0 R (lstnumber.56) 348 0 R (lstnumber.57) 349 0 R] +/Limits [(lstnumber.43) (lstnumber.57)] +>> +endobj +676 0 obj +<< +/Names [(lstnumber.58) 350 0 R (lstnumber.59) 351 0 R (lstnumber.60) 352 0 R (lstnumber.61) 353 0 R (lstnumber.62) 354 0 R (lstnumber.63) 355 0 R] +/Limits [(lstnumber.58) (lstnumber.63)] +>> +endobj +677 0 obj +<< +/Names [(lstnumber.64) 356 0 R (lstnumber.65) 357 0 R (lstnumber.66) 358 0 R (lstnumber.74) 371 0 R (lstnumber.75) 372 0 R (lstnumber.76) 373 0 R] +/Limits [(lstnumber.64) (lstnumber.76)] +>> +endobj +678 0 obj +<< +/Names [(lstnumber.77) 374 0 R (lstnumber.78) 375 0 R (lstnumber.79) 376 0 R (lstnumber.80) 377 0 R (lstnumber.81) 378 0 R (lstnumber.82) 379 0 R] +/Limits [(lstnumber.77) (lstnumber.82)] +>> +endobj +679 0 obj +<< +/Names [(lstnumber.83) 380 0 R (lstnumber.84) 381 0 R (lstnumber.85) 382 0 R (lstnumber.86) 383 0 R (lstnumber.87) 384 0 R (lstnumber.88) 385 0 R] +/Limits [(lstnumber.83) (lstnumber.88)] +>> +endobj +680 0 obj +<< +/Names [(lstnumber.89) 386 0 R (lstnumber.9) 295 0 R (lstnumber.90) 387 0 R (lstnumber.91) 388 0 R (lstnumber.92) 389 0 R (lstnumber.93) 390 0 R] +/Limits [(lstnumber.89) (lstnumber.93)] +>> +endobj +681 0 obj +<< +/Names [(lstnumber.94) 391 0 R (lstnumber.95) 392 0 R (lstnumber.96) 393 0 R (lstnumber.97) 394 0 R (lstnumber.98) 395 0 R (page.1) 235 0 R] +/Limits [(lstnumber.94) (page.1)] +>> +endobj +682 0 obj +<< +/Names [(page.10) 430 0 R (page.11) 434 0 R (page.12) 462 0 R (page.13) 476 0 R (page.14) 505 0 R (page.15) 538 0 R] +/Limits [(page.10) (page.15)] +>> +endobj +683 0 obj +<< +/Names [(page.16) 556 0 R (page.17) 560 0 R (page.18) 564 0 R (page.19) 570 0 R (page.2) 272 0 R (page.20) 575 0 R] +/Limits [(page.16) (page.20)] +>> +endobj +684 0 obj +<< +/Names [(page.3) 282 0 R (page.4) 288 0 R (page.5) 293 0 R (page.6) 306 0 R (page.7) 318 0 R (page.8) 369 0 R] +/Limits [(page.3) (page.8)] +>> +endobj +685 0 obj +<< +/Names [(page.9) 414 0 R (section.1) 5 0 R (section.125) 45 0 R (section.129) 61 0 R (section.132) 73 0 R (section.134) 81 0 R] +/Limits [(page.9) (section.134)] +>> +endobj +686 0 obj +<< +/Names [(section.158) 93 0 R (section.169) 105 0 R (section.226) 129 0 R (section.232) 145 0 R (section.235) 157 0 R (section.237) 165 0 R] +/Limits [(section.158) (section.237)] +>> +endobj +687 0 obj +<< +/Names [(section.3) 13 0 R (section.6) 25 0 R (subsection.126) 49 0 R (subsection.127) 53 0 R (subsection.128) 57 0 R (subsection.130) 65 0 R] +/Limits [(section.3) (subsection.130)] +>> +endobj +688 0 obj +<< +/Names [(subsection.131) 69 0 R (subsection.133) 77 0 R (subsection.135) 85 0 R (subsection.149) 89 0 R (subsection.159) 97 0 R (subsection.16) 33 0 R] +/Limits [(subsection.131) (subsection.16)] +>> +endobj +689 0 obj +<< +/Names [(subsection.160) 101 0 R (subsection.170) 109 0 R (subsection.171) 113 0 R (subsection.2) 9 0 R (subsection.227) 133 0 R (subsection.228) 137 0 R] +/Limits [(subsection.160) (subsection.228)] +>> +endobj +690 0 obj +<< +/Names [(subsection.231) 141 0 R (subsection.233) 149 0 R (subsection.234) 153 0 R (subsection.236) 161 0 R (subsection.238) 169 0 R (subsection.25) 37 0 R] +/Limits [(subsection.231) (subsection.25)] +>> +endobj +691 0 obj +<< +/Names [(subsection.26) 41 0 R (subsection.4) 17 0 R (subsection.5) 21 0 R (subsection.7) 29 0 R (subsubsection.177) 117 0 R (subsubsection.192) 121 0 R] +/Limits [(subsection.26) (subsubsection.192)] +>> +endobj +692 0 obj +<< +/Names [(subsubsection.213) 125 0 R] +/Limits [(subsubsection.213) (subsubsection.213)] +>> +endobj +693 0 obj +<< +/Kids [649 0 R 650 0 R 651 0 R 652 0 R 653 0 R 654 0 R] +/Limits [(Doc-Start) (lstlisting.11)] +>> +endobj +694 0 obj +<< +/Kids [655 0 R 656 0 R 657 0 R 658 0 R 659 0 R 660 0 R] +/Limits [(lstlisting.114) (lstnumber.144)] +>> +endobj +695 0 obj +<< +/Kids [661 0 R 662 0 R 663 0 R 664 0 R 665 0 R 666 0 R] +/Limits [(lstnumber.145) (lstnumber.195)] +>> +endobj +696 0 obj +<< +/Kids [667 0 R 668 0 R 669 0 R 670 0 R 671 0 R 672 0 R] +/Limits [(lstnumber.196) (lstnumber.30)] +>> +endobj +697 0 obj +<< +/Kids [673 0 R 674 0 R 675 0 R 676 0 R 677 0 R 678 0 R] +/Limits [(lstnumber.31) (lstnumber.82)] +>> +endobj +698 0 obj +<< +/Kids [679 0 R 680 0 R 681 0 R 682 0 R 683 0 R 684 0 R] +/Limits [(lstnumber.83) (page.8)] +>> +endobj +699 0 obj +<< +/Kids [685 0 R 686 0 R 687 0 R 688 0 R 689 0 R 690 0 R] +/Limits [(page.9) (subsection.25)] +>> +endobj +700 0 obj +<< +/Kids [691 0 R 692 0 R] +/Limits [(subsection.26) (subsubsection.213)] +>> +endobj +701 0 obj +<< +/Kids [693 0 R 694 0 R 695 0 R 696 0 R 697 0 R 698 0 R] +/Limits [(Doc-Start) (page.8)] +>> +endobj +702 0 obj +<< +/Kids [699 0 R 700 0 R] +/Limits [(page.9) (subsubsection.213)] +>> +endobj +703 0 obj +<< +/Kids [701 0 R 702 0 R] +/Limits [(Doc-Start) (subsubsection.213)] +>> +endobj +704 0 obj +<< +/Dests 703 0 R +>> +endobj +705 0 obj +<< +/Type /Catalog +/Pages 647 0 R +/Outlines 648 0 R +/Names 704 0 R +/PageMode/UseOutlines +/OpenAction 172 0 R +>> +endobj +706 0 obj +<< +/Producer (MiKTeX pdfTeX-1.40.24) +/Author()/Title()/Subject()/Creator(LaTeX with hyperref)/Keywords() +/CreationDate (D:20220904144523-03'00') +/ModDate (D:20220904144523-03'00') +/Trapped /False +/PTEX.Fullbanner (This is MiKTeX-pdfTeX 4.11.0 (1.40.24)) +>> +endobj +xref +0 707 +0000000174 65535 f +0000112817 00000 n +0000112837 00000 n +0000112857 00000 n +0000000015 00000 n +0000026145 00000 n +0000490522 00000 n +0000000060 00000 n +0000000146 00000 n +0000026205 00000 n +0000490463 00000 n +0000000194 00000 n +0000000299 00000 n +0000026265 00000 n +0000490339 00000 n +0000000345 00000 n +0000000445 00000 n +0000030720 00000 n +0000490265 00000 n +0000000494 00000 n +0000000589 00000 n +0000035343 00000 n +0000490191 00000 n +0000000638 00000 n +0000000786 00000 n +0000035404 00000 n +0000490066 00000 n +0000000832 00000 n +0000000967 00000 n +0000035465 00000 n +0000489992 00000 n +0000001016 00000 n +0000001121 00000 n +0000040548 00000 n +0000489905 00000 n +0000001171 00000 n +0000001258 00000 n +0000044561 00000 n +0000489818 00000 n +0000001308 00000 n +0000001436 00000 n +0000044622 00000 n +0000489744 00000 n +0000001486 00000 n +0000001614 00000 n +0000059022 00000 n +0000489619 00000 n +0000001662 00000 n +0000001797 00000 n +0000059083 00000 n +0000489545 00000 n +0000001848 00000 n +0000001976 00000 n +0000059144 00000 n +0000489458 00000 n +0000002027 00000 n +0000002160 00000 n +0000059205 00000 n +0000489384 00000 n +0000002211 00000 n +0000002354 00000 n +0000063159 00000 n +0000489259 00000 n +0000002402 00000 n +0000002542 00000 n +0000063220 00000 n +0000489185 00000 n +0000002593 00000 n +0000002698 00000 n +0000063281 00000 n +0000489111 00000 n +0000002749 00000 n +0000002859 00000 n +0000063342 00000 n +0000488986 00000 n +0000002907 00000 n +0000003047 00000 n +0000063403 00000 n +0000488925 00000 n +0000003098 00000 n +0000003241 00000 n +0000067488 00000 n +0000488800 00000 n +0000003289 00000 n +0000003429 00000 n +0000067549 00000 n +0000488726 00000 n +0000003480 00000 n +0000003562 00000 n +0000068415 00000 n +0000488652 00000 n +0000003613 00000 n +0000003728 00000 n +0000068971 00000 n +0000488525 00000 n +0000003776 00000 n +0000004043 00000 n +0000073611 00000 n +0000488450 00000 n +0000004094 00000 n +0000004199 00000 n +0000073672 00000 n +0000488373 00000 n +0000004251 00000 n +0000004362 00000 n +0000074230 00000 n +0000488242 00000 n +0000004411 00000 n +0000004689 00000 n +0000074292 00000 n +0000488163 00000 n +0000004741 00000 n +0000004882 00000 n +0000078919 00000 n +0000488045 00000 n +0000004934 00000 n +0000005045 00000 n +0000079288 00000 n +0000487966 00000 n +0000005100 00000 n +0000005219 00000 n +0000085000 00000 n +0000487873 00000 n +0000005274 00000 n +0000005398 00000 n +0000086299 00000 n +0000487794 00000 n +0000005453 00000 n +0000005612 00000 n +0000092867 00000 n +0000487662 00000 n +0000005661 00000 n +0000005973 00000 n +0000096859 00000 n +0000487583 00000 n +0000006025 00000 n +0000006131 00000 n +0000096921 00000 n +0000487490 00000 n +0000006183 00000 n +0000006294 00000 n +0000106081 00000 n +0000487411 00000 n +0000006346 00000 n +0000006434 00000 n +0000106143 00000 n +0000487279 00000 n +0000006483 00000 n +0000006800 00000 n +0000106205 00000 n +0000487200 00000 n +0000006852 00000 n +0000007052 00000 n +0000110346 00000 n +0000487121 00000 n +0000007104 00000 n +0000007258 00000 n +0000110408 00000 n +0000486989 00000 n +0000007307 00000 n +0000007649 00000 n +0000110470 00000 n +0000486924 00000 n +0000007701 00000 n +0000007880 00000 n +0000112516 00000 n +0000486806 00000 n +0000007929 00000 n +0000008281 00000 n +0000112578 00000 n +0000486741 00000 n +0000008333 00000 n +0000008497 00000 n +0000012970 00000 n +0000000176 00000 f +0000013301 00000 n +0000000178 00000 f +0000013453 00000 n +0000000180 00000 f +0000013608 00000 n +0000000182 00000 f +0000013760 00000 n +0000000184 00000 f +0000013915 00000 n +0000000186 00000 f +0000014070 00000 n +0000000188 00000 f +0000014220 00000 n +0000000190 00000 f +0000014375 00000 n +0000000192 00000 f +0000014531 00000 n +0000000194 00000 f +0000014687 00000 n +0000000196 00000 f +0000014843 00000 n +0000000198 00000 f +0000014997 00000 n +0000000200 00000 f +0000015154 00000 n +0000000202 00000 f +0000015310 00000 n +0000000204 00000 f +0000015467 00000 n +0000000206 00000 f +0000015621 00000 n +0000000208 00000 f +0000015778 00000 n +0000000210 00000 f +0000015935 00000 n +0000000212 00000 f +0000016089 00000 n +0000000214 00000 f +0000016246 00000 n +0000000216 00000 f +0000016399 00000 n +0000000218 00000 f +0000016556 00000 n +0000000220 00000 f +0000016712 00000 n +0000000222 00000 f +0000016864 00000 n +0000000224 00000 f +0000017019 00000 n +0000000226 00000 f +0000023270 00000 n +0000000228 00000 f +0000023423 00000 n +0000000230 00000 f +0000023580 00000 n +0000000232 00000 f +0000023737 00000 n +0000000245 00000 f +0000017298 00000 n +0000008547 00000 n +0000017174 00000 n +0000017236 00000 n +0000471888 00000 n +0000470774 00000 n +0000467435 00000 n +0000469660 00000 n +0000480820 00000 n +0000468549 00000 n +0000486143 00000 n +0000023897 00000 n +0000000247 00000 f +0000024056 00000 n +0000000249 00000 f +0000024216 00000 n +0000000251 00000 f +0000024370 00000 n +0000000253 00000 f +0000024527 00000 n +0000000255 00000 f +0000024684 00000 n +0000000257 00000 f +0000024840 00000 n +0000000259 00000 f +0000024994 00000 n +0000000261 00000 f +0000025151 00000 n +0000000263 00000 f +0000025308 00000 n +0000000265 00000 f +0000025462 00000 n +0000000267 00000 f +0000025618 00000 n +0000000000 00000 f +0000025926 00000 n +0000026326 00000 n +0000022995 00000 n +0000017487 00000 n +0000026083 00000 n +0000025772 00000 n +0000474116 00000 n +0000473002 00000 n +0000479703 00000 n +0000476350 00000 n +0000475233 00000 n +0000030781 00000 n +0000030539 00000 n +0000026530 00000 n +0000030658 00000 n +0000484006 00000 n +0000482764 00000 n +0000035526 00000 n +0000035162 00000 n +0000030985 00000 n +0000035281 00000 n +0000477466 00000 n +0000040608 00000 n +0000039871 00000 n +0000035744 00000 n +0000039990 00000 n +0000040052 00000 n +0000040114 00000 n +0000040176 00000 n +0000485953 00000 n +0000040238 00000 n +0000040300 00000 n +0000040362 00000 n +0000040424 00000 n +0000040486 00000 n +0000044683 00000 n +0000043885 00000 n +0000040852 00000 n +0000044004 00000 n +0000044066 00000 n +0000044128 00000 n +0000044190 00000 n +0000044252 00000 n +0000044314 00000 n +0000044375 00000 n +0000044437 00000 n +0000044499 00000 n +0000050260 00000 n +0000047234 00000 n +0000044913 00000 n +0000047353 00000 n +0000047415 00000 n +0000047477 00000 n +0000047539 00000 n +0000047601 00000 n +0000047663 00000 n +0000047725 00000 n +0000047787 00000 n +0000047849 00000 n +0000047910 00000 n +0000047972 00000 n +0000048033 00000 n +0000048095 00000 n +0000048156 00000 n +0000048218 00000 n +0000048280 00000 n +0000048342 00000 n +0000048404 00000 n +0000048466 00000 n +0000048528 00000 n +0000048590 00000 n +0000048652 00000 n +0000048714 00000 n +0000048776 00000 n +0000048838 00000 n +0000048900 00000 n +0000048961 00000 n +0000049023 00000 n +0000049085 00000 n +0000049147 00000 n +0000049208 00000 n +0000049270 00000 n +0000049331 00000 n +0000049393 00000 n +0000049455 00000 n +0000049517 00000 n +0000049579 00000 n +0000049641 00000 n +0000049703 00000 n +0000049765 00000 n +0000049827 00000 n +0000049889 00000 n +0000049951 00000 n +0000050013 00000 n +0000050074 00000 n +0000050136 00000 n +0000050198 00000 n +0000486260 00000 n +0000054903 00000 n +0000052186 00000 n +0000050450 00000 n +0000052305 00000 n +0000052367 00000 n +0000052429 00000 n +0000052491 00000 n +0000052553 00000 n +0000052615 00000 n +0000052677 00000 n +0000052739 00000 n +0000052801 00000 n +0000052863 00000 n +0000052925 00000 n +0000052987 00000 n +0000053049 00000 n +0000053111 00000 n +0000053173 00000 n +0000053235 00000 n +0000053297 00000 n +0000053359 00000 n +0000053421 00000 n +0000053483 00000 n +0000053545 00000 n +0000053607 00000 n +0000053669 00000 n +0000053731 00000 n +0000053791 00000 n +0000053853 00000 n +0000053914 00000 n +0000053976 00000 n +0000054038 00000 n +0000054100 00000 n +0000054161 00000 n +0000054223 00000 n +0000054285 00000 n +0000054347 00000 n +0000054409 00000 n +0000054470 00000 n +0000054532 00000 n +0000054594 00000 n +0000054656 00000 n +0000054718 00000 n +0000054779 00000 n +0000054841 00000 n +0000059266 00000 n +0000058161 00000 n +0000055080 00000 n +0000058280 00000 n +0000058342 00000 n +0000058404 00000 n +0000058466 00000 n +0000058528 00000 n +0000058590 00000 n +0000058652 00000 n +0000058714 00000 n +0000058776 00000 n +0000058838 00000 n +0000058899 00000 n +0000058961 00000 n +0000484978 00000 n +0000063464 00000 n +0000062978 00000 n +0000059471 00000 n +0000063097 00000 n +0000069032 00000 n +0000067307 00000 n +0000063654 00000 n +0000067426 00000 n +0000478582 00000 n +0000067610 00000 n +0000067672 00000 n +0000067734 00000 n +0000067796 00000 n +0000067858 00000 n +0000067920 00000 n +0000067982 00000 n +0000068044 00000 n +0000068106 00000 n +0000068168 00000 n +0000068230 00000 n +0000068292 00000 n +0000068353 00000 n +0000068476 00000 n +0000068538 00000 n +0000068600 00000 n +0000068661 00000 n +0000068723 00000 n +0000068785 00000 n +0000068847 00000 n +0000068909 00000 n +0000073235 00000 n +0000073392 00000 n +0000074354 00000 n +0000073088 00000 n +0000069303 00000 n +0000073549 00000 n +0000073734 00000 n +0000073796 00000 n +0000073858 00000 n +0000073920 00000 n +0000073982 00000 n +0000074044 00000 n +0000074106 00000 n +0000074168 00000 n +0000078386 00000 n +0000078543 00000 n +0000080216 00000 n +0000078231 00000 n +0000074571 00000 n +0000078857 00000 n +0000078981 00000 n +0000079041 00000 n +0000079103 00000 n +0000079165 00000 n +0000079226 00000 n +0000078700 00000 n +0000079350 00000 n +0000079411 00000 n +0000079472 00000 n +0000079534 00000 n +0000079596 00000 n +0000079658 00000 n +0000079720 00000 n +0000079782 00000 n +0000079844 00000 n +0000079906 00000 n +0000079968 00000 n +0000080030 00000 n +0000080092 00000 n +0000080154 00000 n +0000486377 00000 n +0000083988 00000 n +0000084302 00000 n +0000084459 00000 n +0000084619 00000 n +0000086361 00000 n +0000083809 00000 n +0000080447 00000 n +0000084938 00000 n +0000084145 00000 n +0000084779 00000 n +0000481697 00000 n +0000085062 00000 n +0000085124 00000 n +0000085186 00000 n +0000085247 00000 n +0000085309 00000 n +0000085370 00000 n +0000085432 00000 n +0000085493 00000 n +0000085555 00000 n +0000085617 00000 n +0000085679 00000 n +0000085741 00000 n +0000085803 00000 n +0000085865 00000 n +0000085927 00000 n +0000085989 00000 n +0000086051 00000 n +0000086113 00000 n +0000086175 00000 n +0000086237 00000 n +0000090805 00000 n +0000090964 00000 n +0000091281 00000 n +0000091438 00000 n +0000091752 00000 n +0000091908 00000 n +0000092929 00000 n +0000090610 00000 n +0000086564 00000 n +0000092064 00000 n +0000092126 00000 n +0000092188 00000 n +0000092250 00000 n +0000092311 00000 n +0000092373 00000 n +0000092434 00000 n +0000092496 00000 n +0000092557 00000 n +0000092619 00000 n +0000092681 00000 n +0000092743 00000 n +0000092805 00000 n +0000091123 00000 n +0000091595 00000 n +0000096983 00000 n +0000096678 00000 n +0000093132 00000 n +0000096797 00000 n +0000101512 00000 n +0000101331 00000 n +0000097200 00000 n +0000101450 00000 n +0000106267 00000 n +0000105776 00000 n +0000101701 00000 n +0000105895 00000 n +0000105957 00000 n +0000106019 00000 n +0000110531 00000 n +0000110165 00000 n +0000106471 00000 n +0000110284 00000 n +0000486494 00000 n +0000112640 00000 n +0000112335 00000 n +0000110734 00000 n +0000112454 00000 n +0000466194 00000 n +0000112910 00000 n +0000465634 00000 n +0000112935 00000 n +0000466411 00000 n +0000113182 00000 n +0000113327 00000 n +0000113350 00000 n +0000466259 00000 n +0000113589 00000 n +0000466348 00000 n +0000113620 00000 n +0000113645 00000 n +0000114198 00000 n +0000114743 00000 n +0000115596 00000 n +0000115621 00000 n +0000116074 00000 n +0000116519 00000 n +0000116882 00000 n +0000117418 00000 n +0000117731 00000 n +0000118305 00000 n +0000118804 00000 n +0000140310 00000 n +0000140553 00000 n +0000162088 00000 n +0000162353 00000 n +0000164864 00000 n +0000165108 00000 n +0000194067 00000 n +0000194418 00000 n +0000227993 00000 n +0000228519 00000 n +0000253934 00000 n +0000254248 00000 n +0000268797 00000 n +0000269029 00000 n +0000288004 00000 n +0000288320 00000 n +0000312616 00000 n +0000312963 00000 n +0000338835 00000 n +0000339207 00000 n +0000341786 00000 n +0000342054 00000 n +0000367952 00000 n +0000368240 00000 n +0000401954 00000 n +0000402248 00000 n +0000435155 00000 n +0000435779 00000 n +0000465262 00000 n +0000466510 00000 n +0000467624 00000 n +0000468738 00000 n +0000469852 00000 n +0000470966 00000 n +0000472080 00000 n +0000473192 00000 n +0000474307 00000 n +0000475424 00000 n +0000476541 00000 n +0000477656 00000 n +0000478779 00000 n +0000479894 00000 n +0000481016 00000 n +0000481893 00000 n +0000482963 00000 n +0000484197 00000 n +0000485171 00000 n +0000486579 00000 n +0000486665 00000 n +0000490631 00000 n +0000490811 00000 n +0000490989 00000 n +0000491167 00000 n +0000491340 00000 n +0000491510 00000 n +0000491692 00000 n +0000491915 00000 n +0000492138 00000 n +0000492354 00000 n +0000492571 00000 n +0000492789 00000 n +0000493005 00000 n +0000493222 00000 n +0000493440 00000 n +0000493658 00000 n +0000493875 00000 n +0000494093 00000 n +0000494310 00000 n +0000494527 00000 n +0000494745 00000 n +0000494962 00000 n +0000495180 00000 n +0000495398 00000 n +0000495609 00000 n +0000495819 00000 n +0000496029 00000 n +0000496239 00000 n +0000496449 00000 n +0000496659 00000 n +0000496869 00000 n +0000497079 00000 n +0000497288 00000 n +0000497486 00000 n +0000497656 00000 n +0000497825 00000 n +0000497987 00000 n +0000498171 00000 n +0000498372 00000 n +0000498577 00000 n +0000498795 00000 n +0000499017 00000 n +0000499240 00000 n +0000499463 00000 n +0000499573 00000 n +0000499690 00000 n +0000499812 00000 n +0000499933 00000 n +0000500053 00000 n +0000500172 00000 n +0000500285 00000 n +0000500399 00000 n +0000500492 00000 n +0000500602 00000 n +0000500688 00000 n +0000500777 00000 n +0000500815 00000 n +0000500943 00000 n +trailer +<< /Size 707 +/Root 705 0 R +/Info 706 0 R +/ID [<1A61B82F14871264005A8AB2A6063E9A> <1A61B82F14871264005A8AB2A6063E9A>] >> +startxref +501217 +%%EOF diff --git a/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex b/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex new file mode 100644 index 0000000000..99d765b04a --- /dev/null +++ b/macros/latex/contrib/ufrgscca/doc/ufrgscca.tex @@ -0,0 +1,1125 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status “maintained”. +%% +%% The Current Maintainer of this work is Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation (this file) +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== + +\documentclass[dctools,english]{ufrgscca} % tcbundle tcpack tcmain +\usepackage{democodetools} +\usepackage{ufrgscca-curr} + +\maxdeadcycles=500 %%the many marginpar statements are actually a pain. +\newif\iffulldoc + +\fulldoctrue + +\iffulldoc + \dcTitle{The ufrgscca, and associated, Packages\\ Version \ufrgsccaversion \\(extended documentation)} +\else + \dcTitle{The ufrgscca, and associated, Packages\\ Version \ufrgsccaversion} +\fi + +\dcAuthor{Alceu Frigeri} +\dcDate{September 2022} +\makeatletter + + +\begin{document} + + \dcMakeTitle + + + \begin{dcAbstract} + This bundled is aimed at producing undergraduate students final work/report at UFRGS/EE (Engineering School at the Federal University of Rio Grande do Sul), closely following ABNT rules (Brazilian Association for Technical Norms). It is composed of a main class, \Pack{ufrgscca}, and a set of auxiliary packages, some of which can be used independently. + + \end{dcAbstract} + +\tableofcontents + + \section{Introduction} + \emph{ABNT} rules can be quite challenging some times (read: bibliography style/references) and sometimes just odd (line spacing, front matter, page layout), nevertheless it is a \emph{Brazilian Standard} for typography whose students at UFRGS should grow cherished to follow. + + In short, as of version \ufrgsccaversion\space the bundle is composed of a class, \Pack{ufrgscca} (based on the standard \LaTeX2e \Pack{report} class), which pre-loads all other, as needed, packages: \Packlst{ufrgscca-abnt, ufrgscca-core, ufrgscca-cover, ufrgscca-forms, ufrgscca-gen, ufrgscca-lists, ufrgscca-curr, ufrgscca-coord, ufrgscca-ppc}. + + N.B.: This bundle requires a quite recent \LaTeX2e kernel, at least as recent as June 2022, which allows to declare package options using the new \Key{key}~=\Key{value} system and declare commands with \Macro{\NewDocumentCommand}{}, out-of-the-box. + +\subsection{Current Version} +For the sake of the 'maintainers' sanity, since this is a bundle, all files are saved with the same version (bundle version), with two exceptions: \Pack{ufrgscca-curr.sty} \Pack{ufrgscca-ppc.sty} which are less tested than the others, and somewhat in what one would call 'beta' state. Better said, all files are version \ufrgsccaversion, except \Pack{ufrgscca-curr} and \Pack{ufrgscca-ppc} whose versions are \ufrgsccacurrversion. + +\section{\tightul{ufrgscca} Class} + +The following packages are always pre-loaded: {\MetaFmt[Pack]\sffamily etex, etoolbox, lmodern, fontenc (T1), inputenc (utf8), silence, ufrgscca-abnt, ufrgscca-gen, ufrgscca-cover, ufrgscca-core, hyperref} and (if it exists) a \emph{local.tex} file. + +Other set of auxiliary packages are also pre-loaded, depending on the class options used, and finally it loads (normally) the \Pack{report} class (the exception being if one uses the \Option{dctools} option). + +Being based on the report class, one can use all class options one would with a report, plus the ones listed below. +\subsection{Class Options} +\begin{Options} + \DescribeOption{tocdepth} use: \KeyUse{tocdepth}{number}, whereas \Meta{number} indicates the deepest sectioning to appears in the Table of Contents (0 being the top section, which is \Macro{\chapter}{} for report based classes, 1 being \Macro{\section}{}, and so on.) The default value being 3 (\Macro{\subsubsection}{}). + \DescribeOption{secdepth} use: \KeyUse{secdepth}{number}, whereas \Meta{number} indicates the deepest sectioning to be numbered. (0 being the top section, which is \Macro{\chapter}{} for report based classes, 1 being \Macro{\section}{}, and so on.) The default value being 4 (\Macro{\paragraph}{}). + \DescribeOption{english} the default language being Portuguese, this option changes locale to English. + \DescribeOption{brazilian} in some rare cases (to be further investigated) babel seems to get confused about which language is active, this “shouldn't be necessary” but one can explicitly tell babel to use THIS language (which should, otherwise, be the default one). + \DescribeOption{relnum} by default, figures, tables, etc. are numbered as a continuous series. With this switch, those lists are reset at each chapter, e.g. Figure 5.1 instead of Figure 23. + \DescribeOption{openright} in case of printed material, this will assure that a \Macro{\chapter}{} always starts at an odd page, which is relevant in case of printing out (double sided) the document. + \DescribeOption{oneside} in case the document will be printed in single side sheets, otherwise it's assumed a two-sided printing. + \DescribeOption{strict-abnt} to assure asymmetric margins, as defined by ABNT: inner ones greater than outer ones, which matters if you are going to print the doc and make a book of it, but makes it odd to look at in a computer screen, reason by which the current default setting is for symmetric margins (same text width). + \DescribeOption{repeatfields} in case of authors with multiple publications, their names will be repeated for each entry. In the default setting the author's name is written only in the first entry, and replaced by underscores in the other entries. + \DescribeOption{xlists} this will load the ufrgscca-lists package, for the definition of new floats/lists. + \DescribeOption{xpacks} this will load a series of packages, which can be handy when writing Engineering reports: {\MetaFmt[Pack]\sffamily relsize, keyval, graphicx, mathtools, mathrsfs, amsfonts, amssymb, empheq, amsthm, ext\-arrows, mathfixs, bigdelim, circuitikz, steimenz} and tikz libraries: {\MetaFmt[Pack]\sffamily fit, math, calc, shapes.geometry, shapes.misc, shapes.multipart, graphs, 3d, positioning, shadows, babel}. One is advised to look after each package documentation (ctan.org) for further information. + \DescribeOption{report} in case the doc is just a class assignment with, possibly, many co-authors. It changes mainly the front matter, which is simplified (no referral page, for instance). + \DescribeOption{internship} in case the doc is an internship report. + \DescribeOption{forms} in the process of submitting a student final work/report, there is a series of forms to be submitted, this allows the customization of said forms in a simple way. + \DescribeOption{chapternopagenum} to suppress the page numbers at chapters begin. + \DescribeOption{nomicrotype} in some rare cases, \Pack{microtype} might hurt page layout, this allows the suppression of \Pack{microtype}. + \DescribeOption{showframes} for layout proof only, it will draw frames around each page main parts. + \DescribeOption{showlabels} it will put a reference mark in each label created, and print out it's name. + \DescribeOption{nofontwarning} in case of \Pack{ufrgscca-ppc} is loaded, it will suppress some font related warnings. + \DescribeOption{dctools} this will change page layout and base class to article, it is meant to document the class itself. + \DescribeOption{texlive} this is a reserved key, in case some workaround for texlive is needed. + \DescribeOption{overleaf} this is a reserved key, in case some workaround for overleaf is needed. + \DescribeOption{miktex} this is a reserved key, in case some workaround for miktex is needed. +\end{Options} + +\subsection{Class Declared Commands} +\begin{Macros}{\autonameref,\annexref,\autoannexref} + \begin{Syntax}% + \Macro!{\autonameref}{\oarg{sep}\marg{label}\oarg{spc}} + \Macro{\annexref}{label} + \Macro!{\autoannexref}{\oarg{sep}\marg{label}\oarg{spc}} + \end{Syntax} +The \Pack{hyperref} package, sometimes, gets the \Macro{\autoref}{} name wrong (when referencing an annex), therefore the \Macro{\annexref}{label} will assure the correct annex name is used. + +\Macro{\autonameref}{label} produces an entry of the form `\Macro{\autoref}{label} \Arg{sep} \Macro{\nameref}{label} \Arg{spc}' + +\Macro{\autoannexref}{label} produces an entry of the form `\Macro{\annexref}{label} \Arg{sep} \Macro{\nameref}{label} \Arg{spc}' + +The default \Arg{sep} being a comma, and the default \Arg{spc} being empty space. + +\end{Macros} +\section{\tightul{ufrgscca-abnt} Package} +This package is the one that sets the page layout (using \Packlst{geometry, titlesec, titletoc}) and adjusts the main float environments (figure, tables, captions). +It can be used as a stand alone package, regardless of the underlying class. + +The following packages are always pre-loaded: {\MetaFmt[Pack]\sffamily babel, csquotes, geometry, appendix, titlesec, titletoc, enumitem, chngctr, caption, biblatex, microtype, array, nicematrix, contour} and {\MetaFmt[Pack]\sffamily soul}. + +Take note that \Pack{biblatex} is loaded with the \textbf{\Option{biber}} option, to correctly handle ABNT biography style. + +\subsection{Package Options} +\begin{Options} + \DescribeOption{strict-abnt} to assure asymmetric margins, as defined by ABNT: inner ones greater than outer ones, which matters if you are going to print the doc and make a book of it, but makes it odd to look at in a computer screen, reason by which the current default setting is for symmetric margins (same text width). + \DescribeOption{chapternopagenum} to suppress the page numbers at chapters begin. + \DescribeOption{relnum} by default, figures, tables, etc. are numbered as a continuous series. With this switch, those lists are reset at each chapter, e.g. Figure 5.1 instead of Figure 23. + \DescribeOption{repeatfields} in case of authors with multiple publications, their names will be repeated for each entry. In the default setting the author's name is written only in the first entry, and replaced by underscores in the other entries. + \DescribeOption{nomicrotype} in some rare cases, \Pack{microtype} might hurt page layout, this allows the suppression of \Pack{microtype}. + \DescribeOption{showframes} for layout proof only, it will draw frames around each page main parts. + \DescribeOption{showlabels} it will put a reference mark in each label created, and print out it's name. + \DescribeOption{tocdepth} use: \KeyUse{tocdepth}{number}, whereas \Meta{number} indicates the deepest sectioning to appears in the Table of Contents (0 being the top section, which is \Macro{\chapter}{} for report based classes, 1 being \Macro{\section}{}, and so on.) The default value being 3 (\Macro{\subsubsection}{}). + \DescribeOption{secdepth} use: \KeyUse{secdepth}{number}, whereas \Meta{number} indicates the deepest sectioning to be numbered. (0 being the top section, which is \Macro{\chapter}{} for report based classes, 1 being \Macro{\section}{}, and so on.) The default value being 4 (\Macro{\paragraph}{}). + \DescribeOption{dctools} this will change page layout and base class to article, it is meant to document the class itself. +\end{Options} + +\begin{Macros}{\keyword} + \begin{Syntax}% + \Macro{\keyword}{keyword} + \end{Syntax} +\end{Macros} + This command can be invoked many times, it will construct a list of keywords to be used when printing out the abstract environment. + +\begin{Macros}{\sourcecitation,\note} + \begin{Syntax}% + \Macro{\sourcecitation}{source} + \Macro{\note}{text} + \end{Syntax} +\end{Macros} +When describing floating elements (like figure, tables, circuits) one always has to cite the source of it, and in some cases it might be necessary to add a special note. Those assure uniformity when doing that. + +\begin{Macros}{\nonum,\notoc} + \begin{Syntax}% + \Macro!{\nonum}{\Macro{\chapter}{chap.title}} + \Macro!{\nonum}{\Macro{\section}{sec.title}} + \Macro!{\notoc}{\Macro{\chapter}{chap.title}} + \Macro!{\notoc}{\Macro{\section}{sec.title}} + \end{Syntax} +\end{Macros} +In some cases, it might be necessary to create a numberless chapters or sections. Those two commands can be used as a \emph{prefix} to any sectioning command. Whilst \Macro{\nonum}{} will just suppress the sectioning number, the \Macro{\notoc}{} will also suppress it from the table of contents. + +\begin{stcode}[st=demononum] + \nonum\chapter{some title} %this one will appear in the toc + \notoc\section{some other title} %this won't even appear in the toc +\end{stcode} +\DisplayCode[emph={nonum,notoc}]{demononum} + +\begin{Macros}{\tightul} + \begin{Syntax}% + \Macro{\tightul}{text} + \end{Syntax} +\end{Macros} +This will \emph{underline} a short text, take note that \Meta{text} `can't be broken' (think paragraph justification), which can lead to \emph{text overflows} and bad justification. + +\begin{stcode}[st=demotight] + \tightul{Some text example}% +\end{stcode} + +\TabbedDemoCode[emph={tightul}]{demotight}[-0.75ex] + +\begin{Macros}{\NewChapListEnv} + \begin{Syntax}% + \Macro{\NewChapListEnv}{envname,displayname} + \end{Syntax} +\end{Macros} +This is the command used to created those \emph{chapter like} lists, like `List of Symbols' or `List of acronyms'. With it, a new environment is created, \Arg{envname}, with an associated `numberless' chapter name \Arg{displayname}. The newly created environment will implement a \emph{description} like environment (thanks to \Pack{enumitem}) with an optional and a mandatory argument (see below). + +\begin{stcode}[st=d.newchapenv] + \def\listabbrvname{Lista de Abreviaturas} + \NewChapListEnv{listofabbrv}{\listabbrvname} % this is the actual code used in ufrgscca-abnt.sty +\end{stcode} +\DisplayCode{d.newchapenv} + +\begin{Macros}{\date,\today,\monthname} + \begin{Syntax}% + \Macro{\date}[day]{month,year} + \Macro{\today}{} + \Macro{\monthname}{} + \end{Syntax} +\end{Macros} +The command \Macro{\date}{} is redefined, to allow a separation between the many arguments \Arg{day}, \Arg{month} and \Arg{year}. If not called by the user it \emph{defaults} to current month / year. \Macro{\today}{} returns the current \emph{locale} date, whilst \Macro{\monthname}{} returns the \emph{locale} name of the current month. + + +\subsection{Environments} + +\begin{Envs}{abstract} + \begin{Syntax}% + \Macro{\begin{abstract}}[lang]{keywords}\ldots\Macro{\end{abstract}}{} + \end{Syntax} + The standard environment \Env{abstract} is redefined as a numberless chapter based on the current locale (default: Portuguese), at the end of it the keywords list created with \Macro{\keyword}{} will be added. +\end{Envs} + +\begin{stcode}[st=d.abstract] + \keyword{a keyword} + \keyword{another keyword} + \begin{abstract} some short summary of things\ldots + \end{abstract} +\end{stcode} +\DisplayCode{d.abstract} + +\begin{Envs}{otherabstract} + \begin{Syntax}% + \Macro{\begin{otherabstract}}[lang]{keywords}\ldots\Macro{\end{otherabstract}}{} + \end{Syntax} +This is the environment to create an abstract in a language other than the default one. +The default value for \Arg{lang} is english, and it can be any value that \Pack{babel} understands. The \Arg{keywords} are just a list of keywords which will be added at the end of the \emph{otherabstract}. +\end{Envs} + +\begin{stcode}[st=d.oabstract] + \begin{otherabstract}[english]{a keyword, another keyword} some short summary of things\ldots + \end{otherabstract} +\end{stcode} +\DisplayCode{d.oabstract} + + +\begin{Envs}{listofabbrv,listofsymbols} + \begin{Syntax}% + \Macro{\begin{listofabbrv}}[enum-opt]{ABBRV}\ldots\Macro{\end{listofabbrv}}{} + \Macro{\begin{listofsymbols}}[enum-opt]{SYMB}\ldots\Macro{\end{listofsymbols}}{} + \end{Syntax} +\end{Envs} +Both environments create a description like list preceded by a numberless (\Macro{\nonum}{}) chapter. \Arg{enum-opt} is any \Pack{enumitem} list valid key. Whereas \Arg{ABBRV} / \Arg{SYMB} are just the `biggest' abbreviation/symbol to be used as a tab reference. + +\begin{Envs}{appendix,annex} + \begin{Syntax}% + \Macro{\begin{appendix}}{}.... \Macro{\end{appendix}}{} + \Macro{\begin{annex}}{}.... \Macro{\end{annex}}{} + \end{Syntax} +\end{Envs} +Those two environments start the appendices and annex chapters (using locale). Chapters are alphabetic \emph{numbered} (starting at A). +\subsection{Tabular New Columns} +Thanks to \Pack{array} some new columns types are defined: +\begin{Values} + \DescribeValue{P} \Value{P\marg{width}} Normal text, ragged left. + \DescribeValue{B} \Value{B\marg{width}} Bold text, ragged left. + \DescribeValue{C} \Value{C\marg{width}} Normal text, centered. + \DescribeValue{R} \Value{R\marg{width}} Normal text, ragged left. + \DescribeValue{L} \Value{L\marg{width}} Normal text, ragged right. + \DescribeValue{J} \Value{J\marg{width}} Normal text, justified. + + \end{Values} +\subsection{enumitem Extra Keys} +Besides the \emph{default} keys defined by the \Pack{enumitem} package a few others are defined for author's convenience: +\begin{Keys} + \DescribeKey{ppc, tcc} \Key{ppc} and \Key{tcc} are alias of each other, and just assure that lists indentation will be the same as paragraphs default. + \DescribeKey{parindent} with \Key{parindent}, the list number/mark is aligned with paragraph indentation. + \DescribeKey{noindent} \Key{noindent} removes the label indentation. + + \begin{stcode}[st=enumA] +\begin{enumerate}[tcc] + \item some A + \item some B +\end{enumerate} +\begin{enumerate}[tcc,parindent] + \item some A + \item some B +\end{enumerate} +\begin{enumerate}[parindent] + \item some A + \item some B +\end{enumerate} +\begin{enumerate}[noindent] + \item some A + \item some B +\end{enumerate} + +New paragraph, for reference. +\end{stcode} + + \TabbedDemoCode[parindent=org]{enumA} + + \DescribeKey{tight} allows for very tight lists (no indentation) to be used, for instance, inside quotes. N.B. don't use it in normal paragraph mode, otherwise the labels will spill outside the default text window. + \DescribeKey{miditemsep} \Key{miditemsep} halves items separation, as an alternative to \Key{noitemsep} from \Pack{enumitem} + \begin{stcode}[st=enumB] + \begin{enumerate}[tcc] + \item some A + \item some B + \end{enumerate} + \begin{enumerate}[tcc,miditemsep] + \item some A + \item some B + \end{enumerate} + \begin{enumerate}[tcc,noitemsep] + \item some A + \item some B + \end{enumerate} +\end{stcode} + +\TabbedDemoCode{enumB} + + + \DescribeKey{arabic} That's the \emph{default} enumerate style. Arabic numbers, starting at 1, followed by a dot. + \DescribeKey{arabic)} Label will be constructed as number followed by a parenthesis. + \DescribeKey{(arabic)} Label will be enclosed by parenthesis. + \DescribeKey{arabic*} (for secondary lists) Label will be constructed by the label of the outer list, this item number and a final dot. + \DescribeKey{arabic*)} (for secondary lists) Label will be constructed by the label of the outer list, this item number and a final parenthesis. + + \DescribeKey{roman} This and below keys are the same as the arabic ones, but using lower case roman numbers. + \DescribeKey{roman)} lower case roman number, followed by a parenthesis. + \DescribeKey{(roman)} enclosed by parenthesis. + \DescribeKey{roman*} preceding one followed by roman number and a final dot. + \DescribeKey{roman*)} same, followed by a final parenthesis. + + \DescribeKey{Roman} This and below keys are the same as the arabic ones, but using upper case roman numbers. + \DescribeKey{Roman)} upper case roman number, followed by a parenthesis. + \DescribeKey{(Roman)} enclosed by parenthesis. + \DescribeKey{Roman*} preceding one followed by roman number and a final dot. + \DescribeKey{Roman*)} same, followed by a final parenthesis. + + \DescribeKey{alpha} This and below keys are the same as the arabic ones, but using lower case alpha numbers. + \DescribeKey{alpha)} lower case alpha number, followed by a parenthesis. + \DescribeKey{(alpha)} enclosed by parenthesis. + \DescribeKey{alpha*} preceding one followed by alpha number and a final dot. + \DescribeKey{alpha*)} same, followed by a final parenthesis. + + \DescribeKey{Alpha} This and below keys are the same as the arabic ones, but using upper case alpha numbers. + \DescribeKey{Alpha)} upper case roman number, followed by a parenthesis. + \DescribeKey{(Alpha)} enclosed by parenthesis. + \DescribeKey{Alpha*} preceding one followed by roman number and a final dot. + \DescribeKey{Alpha*)} same, followed by a final parenthesis. + \begin{stcode}[st=enumC] + \begin{enumerate}[tcc,roman] + \item some A + \item some B + \item some C + \end{enumerate} + \begin{enumerate}[tcc,Roman] + \item some A + \item some B + \begin{enumerate}[tcc,alpha*] + \item some A + \item some B + \item some C + \end{enumerate} + \item some C + \end{enumerate} + \begin{enumerate}[tcc,arabic] + \item some A + \item some B + \begin{enumerate}[tcc,roman*)] + \item some A + \item some B + \item some C + \end{enumerate} + \item some C + \end{enumerate} +\end{stcode} + +\TabbedDemoCode{enumC} + + \DescribeKey{bullet} for simple itemized lists, it will replace the default black dot by an `open bullet' + \begin{stcode}[st=enumD] + \begin{itemize}[tcc,miditemsep] + \item some A + \item some B + \item some C + \end{itemize} + \begin{itemize}[tcc,bullet,miditemsep] + \item some A + \item some B + \item some C + \end{itemize} +\end{stcode} + +\TabbedDemoCode{enumD} + + +\end{Keys} + +\section{\tightul{ufrgscca-core} Package} +The \Pack{ufrgscca-core} package defines a set of commands for authors, students, advisors and examiners names and related info. It is needed by most/all of the tc bundled packages. + +\subsection{Core Forms Commands} +\begin{Macros}{\tccbrief,\tcccoadvisorbrief,\tccadvisorsreview} + \begin{Syntax}% + \Macro{\tccbrief}{brief} + \Macro{\tcccoadvisorbrief}{brief} + \Macro{\tccadvisorsreview}{brief} + \end{Syntax} +Those commands are only of use when using \Pack{ufrgscca-forms}. \Macro{\tccbrief}{} sets the work initial summary, \Macro{\tcccoadvisorbrief}{} sets the justification for having a co-advisor, \Macro{\tccadvisorsreview}{} sets the advisor's review. +\end{Macros} + +\subsection{Core Global Commands}\label{core-commands} + +\begin{Macros}{\location} + \begin{Syntax}% + \Macro{\location}{city,state} + \end{Syntax} + To redefine the default values of \Arg{city} and \Arg{state} (Porto Alegre and RS).\\ +\end{Macros} + +\begin{Macros}{\TCCcoord,\TCCcoordtitle} + \begin{Syntax}% + \Macro!{\TCCcoord}{\marg{(title) full name}\oarg{gender}} + \Macro{\TCCcoordtitle}{coordinator denomination} + \end{Syntax} +\end{Macros} + +\begin{Macros}{\coursecoord,\coursecoordtitle} + \begin{Syntax}% + \Macro!{\coursecoord}{\oarg{(title) full name}\oarg{gender}} + \Macro{\coursecoordtitle}{course coordinator denomination} + \end{Syntax} +\end{Macros} + \Arg{coordinator denomination} and \Arg{course coordinator denomination} are the full 'job title' of their position. \Arg{gender} can be either 'm' or 'f'. + +\subsection{Core Specific Commands}\label{core-specific-commands} + +The following commands are more or less self-explanatory, \Arg{ID} is the student's university ID. \Arg{Nproc} is the process/request number. \Arg{gender} can be either 'm' or 'f'. + + +\begin{Macros}{\author,\authorinfo,\student,\studentinfo}%,\studentgender} + \begin{Syntax}% + ~\Macro!{ \author}{\marg{last}\marg{first}\oarg{gender}} + \Macro{\authorinfo}[Nproc]{ID,email} + \Macro!{\student}{\marg{last}\marg{first}\oarg{gender}} + \Macro{\studentinfo}[Nproc]{ID,email} + \end{Syntax} +\end{Macros} + + +\begin{Macros}{\advisor,\advisorinfo}%,\advisorgender} + \begin{Syntax}% + ~\Macro!{\advisor}{\oarg{title}\marg{last}\marg{first}\oarg{gender}} + \Macro{\advisorinfo}{Institut,title-info,email,phone} + \end{Syntax} +\end{Macros} + +\begin{Macros}{\coadvisor,\coadvisorinfo}%,\coadvisorgender} + \begin{Syntax}% + ~\Macro!{\coadvisor}{\oarg{title}\marg{last}\marg{first}\oarg{gender}} + \Macro{\coadvisorinfo}{Institut,title-info,email,phone} + \end{Syntax} +\end{Macros} + +\begin{Macros}{\examiner,\examinerinfo}%,\examinergender} + \begin{Syntax}% + ~\Macro!{\examiner}{\oarg{title}\marg{last}\marg{first}\oarg{gender}} + \Macro{\examinerinfo}{Institut,title-info,email,phone} + \end{Syntax} +\end{Macros} + +\begin{Macros}{\altexaminer,\altexaminerinfo}%,\altexaminergender} + \begin{Syntax}% + ~\Macro!{\altexaminer}{\oarg{title}\marg{last}\marg{first}\oarg{gender}} + \Macro{\altexaminerinfo}{Institut,title-info,email,phone} + \end{Syntax} +\end{Macros} + + +\section{\tightul{ufrgscca-cover} Package} +This package is the one that sets the front pages, depending on the kind of 'report' being generated. The default being to generate 3 cover pages: an identification on, followed by presentation one, then an referral/approval one. + +\subsection{Package Options} +\begin{Options} + \DescribeOption{report} in case the doc is just a class assignment with, possibly, many co-authors. It changes mainly the front matter, which is simplified (no referral page, for instance). + \DescribeOption{internship} in case the report is a internship one. +\end{Options} + +\subsection{Defined Commands} +\begin{Macros}{\maketitle} + \begin{Syntax}% + \Macro{\maketitle}{} + \end{Syntax} +This is the only main command, which will typeset the front matter. It requires that all \emph{specific info} be already set up (like work title, author's name, affiliation, etc.) +\end{Macros} + + +\begin{Macros}{\course,\courseacronym,\graduationtitle,\university,\universityacronym,% + \universitydivision,\divisiongradcouncil,\department,\classcode,\classname,\subject} +\begin{Syntax}% + \Macro{\course}{arg} + \Macro{\courseacronym}{arg} + \Macro{\graduationtitle}{arg} + \Macro{\university}{arg} + \Macro{\universityacronym}{arg} + \Macro{\universitydivision}{arg} + \Macro{\divisiongradcouncil}{arg} + \Macro{\department}{arg} + \Macro{\classcode}{arg} + \Macro{\classname}{arg} + \Macro{\subject}{arg} +\end{Syntax} +In case some customization is needed, one can change them as needed. The default values are set for the \emph{control and automation} course at UFRGS/EE. +\end{Macros} + +\section{\tightul{ufrgscca-forms} Package} +This package defines just two user commands to generate specific forms needed at UFRGS/EE. +\subsection{Forms Defined Commands}\label{forms.commands} +\begin{Macros}{\tcforms,\tcemptyforms} + \begin{Syntax}% +\Macro{\tcforms}{formslist} +\Macro{\tcemptyforms}{formslist} +\end{Syntax} +\Macro{\tcforms}{} will generate the many forms (\Arg{formslist}) using the information from \emph{local.tex}, whilst \Macro{\tcemptyforms}{} will generate said forms with 'blanks' (to be fulfilled by hand, for instance). + +\Arg{formslist} is a csv list of any of: +\begin{Options+} + \DescribeOption+{reqform} Registration requirement form. + \DescribeOption+{coadvisor} Coadvisor justification form. + \DescribeOption+{boardsapproval} Boards approval form. + \DescribeOption+{advisorsapproval} Advisors approval form. + \DescribeOption+{receipts} Receipts forms (one per board member). + \DescribeOption+{examinersforms} Grades and correction forms (per board member). + \DescribeOption+{rectifyapprovalform} Corrections approval form. +\end{Options+} + +\end{Macros} + + +\section{\tightul{ufrgscca-lists} Package} +The following packages are always pre-loaded: {\MetaFmt[Pack]\sffamily newfloat, listings} and \Pack{xcolor}. +It defines a new \emph{floating environment}. Combined with \Pack{listings} one can typeset exempts of \emph{code listing}. + +\subsection{Environment} +\begin{Envs}{codelist} + \begin{Syntax}% + \Macro{\begin{codelist}}{}\ldots \Macro{\end{codelist}}{} + \end{Syntax} +\Macro{\caption}{} will be named 'Listing' (Listagem). + +\begin{stcode}[st=d.listing] + \begin{codelist}[htbp] + \caption{sample C code} + \label{code01} + \begin{lstlisting}[language=C] + struct i2c_msg + { + __u16 addr; /* endereco do escravo */ + __u16 flags; + } + \end{lstlisting} + {\sourcecitation{\textcite{Garg:SMA-2000}}} + \end{codelist} +\end{stcode} +\DisplayCode{d.listing} + +\end{Envs} + +\subsection{Declared Commands} +\begin{Macros}{listofcodelist} + \begin{Syntax}% + \Macro{\listofcodelist}{} + \end{Syntax} +This will create the 'List of ...' associated with the previous environment. +\end{Macros} + +\iffulldoc + +\begin{Macros}{\DeclareNewFloat} + \begin{Syntax}% + \Macro{\DeclareNewFloat}{env-name,file-ext,listname,listofname} + \end{Syntax} +A new float environment, named \Env{env-name}, will be created. Captions will be associated (numbered) as \textbf{\Arg{listname} num:}. Finally, an associated command \Macro{\listof...}{} will be defined, using \Arg{listofname} as a numberless \Macro{\chapter}{} title. + +\begin{stcode}[st=d.float] + \def\listingname{Listing}% + \def\listlistingname{List of Listings}% + \DeclareNewFloat{codelist}{lox}{\listingname}{\listlistingname}%% + %% after that, one can do as in the previous example + %% + %% the list of, will be created as + \listofcodelist +\end{stcode} + +\DisplayCode[emph={codelist,listofcodelist}]{d.float} +\end{Macros} +\fi + +\iffulldoc +\section{\tightul{ufrgscca-gen} Package (extended documentation)} +Just two set of commands are defined, one is kind of a 'command factory' aimed at creating macros in a standard way, while the other helps create 'case like' commands. + + +\subsection{Package Options} +\begin{Options} + \DescribeOption{family} sets the family name, defaults to \Value{tcdef}. + \DescribeOption{group} sets the group name, defaults to \Value{gen}. +\end{Options} + +\subsection{Defined Commands} +\begin{Macros}{\cmdfactory,\factory,\tcgen@cdef} + \begin{Syntax}% + \Macro!{\cmdfactory}{\oarg{fam}\xarg{grp}\marg{cmd-list}} + \Macro!{\factory}{\oarg{fam}\xarg{grp}\marg{cmd}} + \Macro!{\tcgen@cdef}{\oarg{fam}\xarg{grp}\marg{cmd}\marg{new-val}} + \end{Syntax} + \Macro{\cmdfactory}{} is the actual command meant to be used (the other two are just auxiliary ones). \Arg{cmd-lst} is a csv list of commands. \Arg{fam} is the command \emph{family} (defaults to \emph{tcdef}) and \Arg{grp} is the family group (defaults to \emph{gen}). + + The newly created commands will be based on \Macro{\tcgen@cdef}{} (the actual assigment command) having the form \Macro{\cmd}{new-val}, accepting a single mandatory value. Internally \Arg{new-val} will be stored in a macro likely named \Macro{\fam@grp@cmd}{}. + + \Macro{\factory}{} is basically the same as \Macro{\cmdfactory}{}, whilst to create just one new command (it is the command called by \Macro{\cmdfactory}{} via \Macro{\forcsvlist}{}.) +\end{Macros} + +\begin{Macros}{\mkswitch,\addcase} + \begin{Syntax}% + \Macro{\mkswitch}[default]{sw-name} + \Macro{\addcase}{sw-name,str-case,code} + \end{Syntax} + \Macro{mkswitch}{} will create a command, \Macro{\sw-name}{case}, which will behave like a switch/case in other programming languages. \Arg{default} is the code to be executed in case a \emph{switching value} isn't defined. + \Macro{\addcase}{} adds \emph{cases}, one by one, to the switch. \Arg{str-case} can be any \Macro{\csname}{} valid name. \Arg{code} is the code to be executed. + + \begin{stcode}[st=d.switch] + \mkswitch[\gr@depcut]\gr@case@angle + \addcase\gr@case@angle{}{\def\gr@ANG{0}} + \addcase\gr@case@angle{A}{\def\gr@ANG{\gr@A}} + %% + %% actual use of the switch + \gr@case@angle{A} % this will result in \def\gr@ANG{\gr@A} + \end{stcode} + \DisplayCode{d.switch} +\end{Macros} +\fi + +\iffulldoc +\section{\tightul{ufrgscca-coord} Package (extended documentation)} +This package defines a set of auxiliary commands meant to support the Professor coordinating students work. +it will always pre-load the \Pack{longtable} and \Pack{ufrgscca-forms} packages. One can select the reports/forms to be generated using the package options or the command \Macro{\setreports}{keys} + +N.B. It might be also useful to use the commands defined at \autonameref{forms.commands}. + +\subsection{Package/Report Options}\label{ufrgscca-coord.options} +\begin{Options} + \DescribeOption{calendar} Calendar for the period. + \DescribeOption{checklist} a students check list. + \DescribeOption{report} a student control report. + \DescribeOption{boards} exam board dates. + \DescribeOption{boarddates} exam board dates with highlighted dates. + \DescribeOption{studentlist} a simple student list. + \DescribeOption{revforms} per student reviews forms. + \DescribeOption{referral} per student referral letters. + \DescribeOption{cocertificate} per student coadvisor certificate letter (if any). +\end{Options} + +\subsection{Defined Commands} +The \emph{report document} to be created is composed of 2 main parts: +\begin{enumerate}[tcc,arabic,miditemsep] + \item A global preamble, where one sets + \begin{enumerate}[tcc,alpha*,noitemsep] + \item the current semester, Course/TCC coordinator names, etc. , + \item auxiliary data, like students \emph{check list} items and + \item students data. + \end{enumerate} + \item A 'final part' whereas one set which reports are to be generated. +\end{enumerate} + +\subsubsection{Global Commands I} +One can (should) use the commands listed at \autonameref{core-commands}, and these below: + +\begin{Macros}{\tcccalendareventdate,\boardstitleB,\boardsOBS,\TCCperiod} + \begin{Syntax}% + \Macro{\tcccalendareventdate}{date} + \Macro{\boardstitleB}{titleB} + \Macro{\boardsOBS}{obs} + \Macro{\TCCperiod}{semester} + \end{Syntax} +Use \Macro{\tcccalendareventdate}{} to set the date of a given 'event' (the list of 'calendar events' are (might have been) set in the \emph{ufrgscca-ptBR-coord.def} or \emph{ufrgscca-en-coord.def} file). \Macro{boardstitleB}{} sets a 2nd title line for the 'boards schedule report'. \Macro{\boardsOBS}{} allows to add an observation (\Arg{obs}) for the 'boards schedule report', finally, \Macro{\TCCperiod} sets the current semester value. +\end{Macros} + + +\begin{Macros}{\checkdef}%,\checklist} + \begin{Syntax}% + \Macro{\checkdef}{checkLC,check-item,check-text} + \end{Syntax} +Whereas one has a '4x5 alphabetic matrix', lines A to D, columns A to E. \Arg{checkLC} being one element of that matrix (from checkAA up to checkDE), \Arg{chek-item} is a free identifier (to be used with the \Macro{\checklist}{}), and \Arg{check-text} the text to appear in the 'check list report'. So, for instance: + +\begin{stcode}[st=d.check] + \checkdef{checkAA}{tcc-part}{Rel. Parcial} % this creates the 'check item' tcc-part and associates it with the AA position (first line, first column), display text 'Rel. Parcial' + \checkdef{checkBA}{partOK}{Aprov. Rel. Parcial} % this creates 'partOK' and associates it with BA position + + \checkdef{checkAB}{board}{Banca def.} % + \checkdef{checkBB}{board-date}{Data defesa} % 'board-date' is associated with the BB position + + \checkdef{checkAE}{tcc-final}{TCC final} % + \checkdef{checkBE}{approval}{Aprovação Correções} % + \checkdef{checkDE}{exam}{Em Exame} % 'exam' (display 'Em Exame') is associated with the DE position + %% + %% + %% later on, one can use (inside a \NewStudent command) + \checklist{tcc-part,partOK,exam} % this will, for a given student, 'mark' the 'tcc-part', 'partOK' and 'exam' items. +\end{stcode} + + +\DisplayCode[emph={{tcc-part},partOK,board,board-date,{tcc-final},approval,exam}]{d.check} + +Be aware that, \Macro{\checkdef}{} can and should be only used at the preamble, whereas \Macro{\checklist}{} can only be used at the 'student data definition' context (meaning, inside the \Macro{\NewStudent}{} command). +\end{Macros} + + +\subsubsection{Global Commands II}\label{new-student} + +\begin{Macros}{\NewStudent} + \begin{Syntax}% + \Macro{\NewStudent}{studentname,code} + \end{Syntax} + This is the main command describing each \Arg{student} associated work, advisor and exam board. In \Arg{code} one should use the commands defined in \autonameref{core-specific-commands}, and \autonameref{student-specific-commands} (although one can use any valid \LaTeXe~ preamble code, keep in mind those will be executed BEFORE \Macro{\begin{document}}{}), to describe a student work. + So, for instance: + \begin{stcode}[st=d.newstudent] +\NewStudent{Artur}{ + \student{last}{first}[m] + + \studentinfo[]{243716}{email@somewhere} + \TCCtitle{work title} + \advisor{de Amorin}{Heraldo José}[m] + \coadvisor{Camargo Nardelli}{Vítor}[m] + \examinergrades{9.2}{8.5}{9.2} + \examiner{Götz}{Marcelo}[m] + \examinergrades{10}{9.5}{9.5} + \examiner{Comparsi Laranja}{Rafael Antônio} + \examinergrades{8.5}{8.5}{8} + \altexaminer{Ventura Bayan Henriques}{Renato} + %% + %% + \timeslot[Teams]{12/11}{15:30} + + \studentFate[Dismiss] %% FF or Dismiss ?? +} +\end{stcode} + +\DisplayCode{d.newstudent} + +N.B. Internally, \Macro{\NewStudent}{} will create a command named \Macro{\studentname}{}, with a \emph{hook} named \Macro{\studentname.hook}{} (the dot is part of the hook's name). +\end{Macros} + +\subsubsection{Student Specific Commands}\label{student-specific-commands} +\begin{Macros}{\studentFate} + \begin{Syntax}% + \Macro{\studentFate}[fate]{} + \end{Syntax} +This assigns the \Arg{fate} of a student, for those cases that one cannot rely on the 'calculated one' (from examiners individual grades). \Arg{fate} can be either C or D (in case a student got in exam), FF for those that haven't finished the work or 'Dismiss' for those that, for whatever reason, got dismissed. The default is 'do nothing' (no \Arg{fate} assigned) +\end{Macros} + +\begin{Macros}{\studenttimeslot,\timeslot} + \begin{Syntax}% + \Macro{\studenttimeslot}[local]{date,time} + \Macro{\timeslot}[local]{date,time} + \end{Syntax} +\Macro{\timeslot}{} is just an alias of \Macro{\studenttimeslot}{}. They set, for the Boards Report, the \Arg{local}, \Arg{date} and \Arg{time} in which a student will have its work presented. Those commands are meant to be used 'inside' a \Macro{\NewStudent}{} command. +\end{Macros} + + + +\begin{Macros}{\studentTCCtitle,\TCCtitle,\studentremark} + \begin{Syntax}% + \Macro{\studentTCCtitle}{title} + \Macro{\TCCtitle}{title} + \Macro{\studentremark}{remark} + \end{Syntax} +\end{Macros} +\Macro{\TCCtitle}{} is also just an alias to \Macro{\studentTCCtitle}{} which just 'defines' the current student “work's title”. \Macro{\studentremark}{} just inserts a \Arg{remark}, which will appear in the \emph{report}'s report (\ldots report option). + + +\begin{Macros}{\DistinctBoard,\DefaultBoard} + \begin{Syntax}% + \Macro{\DistinctBoard}{} + \Macro{\DefaultBoard}{} + \end{Syntax} +Normally, the default, it's assumed that the student's advisor will also be a member of the student's exam board. For the ones in which this doesn't holds true, one should use the \Macro{\DistinctBoard}{} after informing a student's name (via \Macro{\student}{}) and before informing its advisor name (via \Macro{\advisor}{}). For instance: + + \begin{stcode}[st=d.distinct] + \NewStudent{Artur}{ + \student{last}{first}[m] + + \studentinfo[]{243716}{email@somewhere} + \TCCtitle{work title} + \DistinctBoard + \advisor{de Amorin}{Heraldo José}[m] + \examiner{Götz}{Marcelo}[m] % He will be the 1st examiner + \examiner{Comparsi Laranja}{Rafael Antônio} % the 2nd + \examiner{Ventura Bayan Henriques}{Renato} % the 3rd + } +\end{stcode} + +\DisplayCode[emph={DistinctBoard}]{d.distinct} +\end{Macros} + + + +\begin{Macros}{\examinergrades} + \begin{Syntax}% + \Macro{\examinersgrades}{N1,N2,N3} + \end{Syntax} +Quite obvious, this set the grades given by an examiner (the one defined by the 'last' \Macro{\examiner}{} before this.). +\end{Macros} + +\begin{Macros}{\checklist} + \begin{Syntax}% + \Macro{\checklist}{csv-checkitems} + \end{Syntax} + \Arg{csv-checkitems} is a csv list of valid 'items' (the ones defined by \Macro{\checkdef}{}) and it will 'mark' (check) the corresponding items for a given student. +\end{Macros} + + +\begin{Macros}{\addtostudent} + \begin{Syntax}% + \Macro{\addtostudent}{student,code} + \end{Syntax} +\Arg{code} will be appended to the command created with \Macro{\NewStudent}{}. \Arg{student} must be an already defined one, whilst \Arg{code} can be anything valid in the context of a \Macro{\NewStudent}{} as described in \autonameref{new-student}. +\end{Macros} + +\begin{Macros}{\setreports} + \begin{Syntax}% + \Macro{\setreports}{rep-list} + \end{Syntax} + \Arg{rep-list} is a csv list of keys as defined at \autonameref{ufrgscca-coord.options}. +\end{Macros} + +\begin{Macros}{\setstudentlist} + \begin{Syntax}% + \Macro{\setstudentlist}{listID,list} + \end{Syntax} +This command will define/create a list named \Arg{listID} composed of a csv \Arg{list}~ of student names (as defined by \Macro{\Newstudent}{}). +\end{Macros} + +\begin{Macros}{\tcreports} + \begin{Syntax}% + \Macro{\tcreports}[rep-list]{listID} + \end{Syntax} + This is the main command, to be used only once, at the end of the file. It will typeset the reports, as set by \Macro{\setreports}{}, using the student list identified by \Arg{listID}. + \Arg{rep-list} is a csv list of keys as defined at \autonameref{ufrgscca-coord.options}. +\end{Macros} + + +\section{\tightul{ufrgscca-ppc} Package (beta) (extended documentation)} +This contains a set of auxiliary commands to keep track of many \emph{indicators} whilst writing a \emph{PPC document} (which is going to be evaluated based on said \emph{indicators}, though the track of those \emph{indicators} themselves shall not appear in the final version of it). Keep in mind, when considering the use of it: “it works as is” but it hasn't being properly debugged, and it might change “as needed locally”. + +The packages \Pack{longtable}, \Pack{pdfcomment}, \Pack{mdframed} and \Pack{ufrgscca-curr} will always be pre-loaded. + +\subsection{Package Options} +\begin{Options} +\DescribeOption{showind} (for drafts) it will display the report indicators, of those indicators whose family wasn't set to hide. +\DescribeOption{indlong} (for drafts) when displaying an indicator, the long version of them will be used. +\DescribeOption{nocomments} (for drafts) comments (created with the command \Macro{\comment}) will be suppressed. +\end{Options} + +\subsection{Defined Commands} +\begin{Macros}{\maketitle} + \begin{Syntax}% + \Macro{\maketitle}{} + \end{Syntax} +\Macro{\maketitle}{} is redefined for the specifics of a \emph{PPC document}. +\end{Macros} + +The next few commands use a finite set of \Arg{status} which are a pre-defined list of: +\begin{Values+} + \DescribeValue+{tbd} “To Be Done”% + \DescribeValue+{done} “Done”% + \DescribeValue+{review} “to be reviewed”% + \DescribeValue+{attention} Needs Attention% + \DescribeValue+{NSA} NSA (portuguese for “do not apply”)% + \DescribeValue+{noref} no references% + \DescribeValue+{EAD} EAD (portuguese for “distance learning”)% + \DescribeValue+{MDi} course ware (portuguese for “didactic material”) % + \DescribeValue+{DOCs} other DOCs% + \DescribeValue+{default} everything else% +\end{Values+} + +\begin{Macros}{\declareindicator, \indicatorDesc, \indicatorText} + \begin{Syntax}% + \Macro{\declareindicator}<*+>[status]{fam,ID,text} + \Macro{\indicatorDesc}{longdesc,extra} + \Macro{\indicatorText}{text} + \end{Syntax} +\Macro{\declareindicator}{} is the command to create/define a given “indicator”. \Arg{fam} set's its \emph{family} group, \Arg{ID} is the particular ID/term used to reference it (in a family of indicators), \Arg{text} is a short text describing it (it is the text displayed when using the \Macro{\indref}{} below.). \Macro{\indicatorDesc}{} adds a \Arg{longdesc} (long description) and \Arg{extra} (extra long description) to a defined \Macro{\declareindicator}{} (it will add those text fields to the “last declared one”). \Arg{longdesc} will also be displayed when using the \Macro{\indref}{} commands, but only if the \Option{indlong} option was used. The \Arg{extra} will only be used/displayed with the \Macro{\PrintIndicators}{} command. Finally, \Macro{indicatorText}{} adds a remark \Arg{text}, which will be also printed out when using \Macro{\lstind}{} (akin of an explanation/remark field.) +\end{Macros} + +\begin{Macros}{\indsetstatus, \indsetview, \indsethide} + \begin{Syntax}% + \Macro{\indsetstatus}[status]{fam,ID} + \Macro{\indsetview}{fam} + \Macro{\indsethide}{fam} +\end{Syntax} +\Macro{indsetstatus}{} sets the \Arg{status} of a given indicator defined by \Arg{fam} and \Arg{ID}. \Macro{\indsetview}{} and \Macro{indsethide} set the visibility (or not) of a given “family” of indicators, meaning, if those indicators are going to be visible or not (command \Macro{\indref}{}, for instance) if the option \Option{showind} is in use. +\end{Macros} + +\begin{Macros}{\lstind} + \begin{Syntax}% + \Macro{\lstind}[seclvl1,seclvl2]{fam} +\end{Syntax} +\Macro{\lstind}{} will produce a sectioning like list, \Arg{seclvl1} defaults to \Macro{\section}{} and \Arg{seclvl2} defaults to \Macro{\subsection}{}, those indicators marked with an \textbf{*} (when creating them) will be issued with \Arg{seclvl1}, those marked with an \textbf{+} will be issued with \Arg{seclvl2}. The indicator's short text will be the sectioning title, whilst the indicator's 'text' (the one assigned with \Macro{indicatorText}{} will be the sectioning body.) +\end{Macros} + +\begin{Macros}{\PrintIndicators} + \begin{Syntax}% + \Macro{\PrintIndicators}[fam]{} + \end{Syntax} + \Macro{\PrintIndicators}{} will produce a “list of contents” like list (with cross reference to all used \Macro{\indref}{} pages). It will either issue a list of all \Macro{\declareindicator}, or just the ones belonging to \Arg{fam}. \Arg{fam} can be a csv list of families. Each entry will be composed by indicator's “family”, “ID”, “short text”, “long text” and “extra description” but not the text issued with \Macro{\indicatorText}{}. +\end{Macros} + + +\begin{Macros}{\helpindicators} + \begin{Syntax}% + \Macro{\helpindicators}{} +\end{Syntax} +This will just prints, middle text, a quick “help text” listing the few main “indicators related command” (to help out those less \LaTeXe~ savvy writers.) +\end{Macros} + +\begin{Macros}{ \ifshowind} + \begin{Syntax}% + \Macro{\ifshowind}{code-ifshow,code-ifnot} + \end{Syntax} +Just a helping command, based on the package options. If the option \Option{showind} was used, \Arg{code-ifshow} is executed, otherwise \Arg{code-ifnot}. +\end{Macros} + + +\begin{Macros}{\textmark, \comment} + \begin{Syntax}% + \Macro{\textmark}[status]{text} + \Macro{\comment}[status]{title,text} +\end{Syntax} +Those are annotation, remark commands. The difference being that \Macro{\textmark}{} will just highlight the \Arg{text} (using \Arg{status} “format”), whilst \Macro{comment}{} will create a “remark box” (the same used when inserting an indicator's reference, commands below). N.B. \Macro{\comment}{} is suppressed unless the option \Option{showind} is used. +\end{Macros} + +\begin{Macros}{\indref,\indreflst} + \begin{Syntax}% + \Macro{\indref}<*>[status]{fam,ID,comment} + \Macro{\indreflst}<*>[status]{fam,IDlist,comment} +\end{Syntax} +\Macro{\indref}{} creates a box (\Pack{TikZ} based \Pack{mdframed} ) of the indicator denoted by \Arg{fam} and \Arg{ID}. The family and IDs will be issued as the “frame title”, the current indicator's \Arg{status} will be printed out (the whole box will be highlighted accordly), the short version of the indicator will be used (the long version will “appear” as a \Pack{pdfcomment}), finally any \Arg{comment} will be added to the text box. Each \Macro{\indref}{} box will have a link to the indicator's list (issued with \Macro{\PrintIndicators}{}). If the optional argument \Arg{status} is used, the indicator's status will be updated accordly. The star version also prints the indicator's long text. + +\Macro{\indreflst}{} behaves similarly, with the difference that \Arg{IDlist} is a csv list of IDs (same family), moreover, each item of said list can have the form either just \Arg{ID} or \Arg{status:ID}, in the last form, that ID will have its status updated, as well. +\end{Macros} + +\begin{Macros}{\fancyquote} + \begin{Syntax}% + \Macro{\fancyquote}[vspc]{text,author,dateref} +\end{Syntax} +As quick “quote” hack, \Macro{\fancyquote}{} will typesets a \Arg{text} (small size, italic text, in a minipage environment) followed by \Arg{author} and \Arg{dateref}. This is meant to be used after a \Macro{\chapter}{} or \Macro{\section}{} commands. \Arg{vspc} is to be used in case one has to adjust the vertical space between the sectioning command, and the quote one. +\end{Macros} + + +\begin{Macros}{\labelhack} + \begin{Syntax}% + \Macro{\labelhack}{text} + \end{Syntax} +As the name implies, it is a hack. In some cases (which we haven't manage to found why/what), \Pack{hyperref} would fail miserably when using the \Macro{\nameref}{} (in some cases getting the sectioning correct, but not the name!). This just assures that \Macro{\nameref}{} will use the correct sectioning name in those cases. +\begin{stcode}[st=d.labelhack] + \section{this section}\labelhack{this section}\label{somelabel} +\end{stcode} +\DisplayCode[codeprefix={For Example:},emph={labelhack}]{d.labelhack} +\end{Macros} + +\begin{Macros}{\acrodef, \acro,\acrol,\acrols,\acrosl,\acrofoot,\printacrolist} + \begin{Syntax}% + \Macro{\acrodef}{acroID}{acronym}{long} + \Macro{\acro}{acroID} + \Macro{\acrol}{acroID} + \Macro{\acrols}{acroID} + \Macro{\acrosl}{acroID} + \Macro{\acrofoot}{acroID} + \Macro{\printacrolist}[enumkeys]{widest} + \end{Syntax} +Those are yet another acronym hack. \Macro{\acrodef}{} “creates” an acronym, identified by \Arg{acroID}, whose short (acronym) version is \Arg{acronym} and the long version in \Arg{long}. \Macro{\acro}{} just typesets the \Arg{acronym}, \Macro{\acrol}{} the \Arg{long} version. +\Macro{\acrols}{} typesets the the long version followed by the short (using a comma as separator). +\Macro{\acrosl}{} prints the short version first. Finally, \Macro{\acrofoot}{} typesets the short version in text and the long as a footnote. \Macro{\printacrolist}{} creates a description list based on the \Env{listofabbrv} environment. +\end{Macros} + +\subsection{Environments} +\begin{Envs}{ppc.quote} + \begin{Syntax}% + \Macro{\begin{ppc.quote}}{} \ldots \Macro{\end{ppc.quote}}{} + \end{Syntax} +\end{Envs} +This is just a tailored “quote” environment, using almost all page width, just in a smaller font size. + +\section{\tightul{ufrgscca-curr} Package (beta) (extended documentation)} +This package is mostly in beta state, some parts of it should be identified as alpha state. Those are mostly rushed out adaptations of other “solutions at hand”. Literally, try to use it at your own peril. + +The background of it: To have the ability to “describe” (store the information in a “structured way”) an University Course curricula and later on have the possibility to presented that same information in many different ways (including a dependence graph). To an extended, most of it is done (and working), but hopeless lacking more testing and debugging. + +Why is it included in the bundle? Well, it is needed, in part for completeness, by \Pack{ufrgscca-ppc} which is “locally important”. + +\subsection{Commands Creating the many lists} +The following commands “describe” a curricula, whereas one is a sequence of semesters \Arg{semID}, each semester is composed by a list of classes, \Arg{classID}, and each class has a list of dependencies, \Arg{classID} as \Macro{\depdef}{}. All those lists are stored as csv lists, so “processing them” can be systematized. + +\begin{Macros}{\topicdef,\defaulttopic} +\begin{Syntax}% + \Macro{\topicdef}[color]{topicID,text} + \Macro{\defaulttopic}{topicID} +\end{Syntax} +\Macro{\topicdef}{} defines \Arg{topicID} (to be used when describing a class) and associates a \Arg{text} description and a \Arg{color} (for topic highlight). \Macro{\defaulttopic}{} sets the default one (if not explicitly given when describing a class). +\end{Macros} + + +\begin{Macros}{\semdef} + \begin{Syntax}% + \Macro!{\semdef}{\oarg{pos}\xarg{cod}\marg{semID}} + \end{Syntax} +This “defines” a semester, \Arg{semID}, and associates with it a \Arg{cod} (for reference) and a \Arg{pos} (to be used by, for instance, \Pack{ufrgscca-curr-graph}.) +\end{Macros} + + +\begin{Macros}{\classdef,\setclass,\classremark} + \begin{Syntax}% + \Macro!{\classdef}{\oarg{topicID}\xarg{pos}\marg{classID}\marg{cred}\marg{typ}\marg{name}\marg{desc}} + \Macro{\setclass}{classID} + \Macro{\classremark}{remark} + \end{Syntax} +\Macro{\classdef}{} defines a class, associating with a \Arg{topicID}, \Arg{pos} (for \Pack{ufrgscca-curr-graph}), \Arg{classID}, number and type, \Arg{typ}, of credits, \Arg{cred}, a long name, \Arg{name} and description, \Arg{desc}. \Macro{\classremark}{} adds an extra remark to it. + +The following commands always refer to the “last defined” \Macro{\classdef}{} unless \Macro{\setclass}{} is used, which changes the “current class” for the following commands. +\end{Macros} + +\begin{Macros}{\depdef,\altdef} + \begin{Syntax}% + \Macro!{\depdef}{\oarg{topicID}\xarg{pos}\marg{classID}} + \Macro{\altdef}{} + \end{Syntax} +\Macro{\depdef}{} inserts/creates a “class dependency” list. The highlight color (if used) is usually defined by the current class topic (informing \Arg{topicID} changes the highlight color). \Arg{pos} is used by \Pack{ufrgscca-curr-graph} to determine the incident line angle. + +\Macro{\altdef}{} defines/start and alternate dependency list. +\end{Macros} + +\begin{Macros}{\bibdef} + \begin{Syntax}% + \Macro{\bibdef}[type]{text} + \end{Syntax} +This is used to set a list of bibliographies, one per issued command. The default \Arg{type} value is just \emph{bib}, possible values (as understood by \Pack{ufrgscca-curr-tab}) are \emph{bib}, \emph{basic} and \emph{comp}. +\end{Macros} + +\subsection{List Processing Commands} +Those are the main loop commands that go through the lists. +\begin{Macros}{\LstClass,\LstDep,\LstTopic} + \begin{Syntax} + \Macro{\LstClass}[cmd]{semID} + \Macro!{\LstDep}{\oarg{cmd}\xarg{ang}\marg{classID}} + \Macro{\LstTopic}[cmd]{topicID} + \end{Syntax} +\Arg{cmd} can be any command accepting a single argument. It will, in fact, be the one defining the way the data will be, effectively, be presented. + +\Macro{\LstClass}{} will process \Arg{cmd} over all classes associated with \Arg{semID}. + +\Macro{\LstDep}{} will process \Arg{cmd} over all dependency classes associated with \Arg{classID}. + +\Macro{\LstTopic}{} will process \Arg{cmd} over all classes associated with \Arg{topicID}. + +\end{Macros} + +\section{\tightul{ufrgscca-curr-tab} Package (alpha) (extended documentation)} +This is truly a work in progress (based on some old ideas), not really tested. It shall be revised and, mostly sure, it will be changed (no compatibility guaranties). It always pre-load \Pack{ufrgscca-curr} and \Pack{longtable}. + +\subsection{Tabular Presentation Commands} +\begin{Macros}{\TabEtp,\TabTopic} + \begin{Syntax}% + \Macro!{\TabEtp}{\xarg{type}\oarg{sectioning}c\marg{semID}} + \Macro{\TabTopic}[type]{topicID} + \end{Syntax} +\Macro{\TabEtp}{} will construct a longtable with all classes associated with \Arg{semID} (including it's dependencies and bibliography). + +\Macro{\TabTopic}{} will construct a longtable with all classes associated with \Arg{topicID}. + +\end{Macros} + +\section{\tightul{ufrgscca-curr-graph} Package (alpha) (extended documentation)} + +\subsection{Graph Presentation Command} +Ironically, this is the “oldest” of the \Pack{-curr-} packages, but it is the less tested one, and the one whose code is more prone to fail in unexpected ways, be advised: do not try to use it, unless you know the internal code well. It always pre-load \Pack{ufrgscca-curr} (N.B. it also depends on \Pack{tikz}). + +\begin{Macros}{\GraphSem} + \begin{Syntax}% + \Macro{\GraphSem}[type]{semID} + \end{Syntax} +It will create a dependency graph for a given \Arg{semId}. N.B. to start with, it is highly dependent on the semester sequence, one shall start with first semester and go from there. +\end{Macros} + +\fi + + + +\end{document} diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty new file mode 100644 index 0000000000..f3cc97e63a --- /dev/null +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-abnt.sty @@ -0,0 +1,494 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status “maintained”. +%% +%% The Current Maintainer of this work is Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\NeedsTeXFormat{LaTeX2e}[2022/06/01] +\def\tc@tmp@packname{ufrgscca-abnt} +\def\tc@tmp@altpackname{ufrgsccaabnt} +\def\tc@tmp@packdesc{UFRGS/CCA ABNT layout} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} +\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] + +\def\tc@tocdepth{3} % Table of Contents depth +\def\tc@secdepth{4} % Sectioning numbers depth (3 -> subsubsection) + +\DeclareKeys[ufrgscca-abnt]{ + strict-abnt.usage = load, + strict-abnt.if = tcif@strictabnt, + + chapternopagenum.usage = load, + chapternopagenum.if = tcif@chapternopagenum, + + english.usage = load, + english.if = tcif@english, + relnum.usage = load, + relnum.if = tcif@relnum, + repeatfields.usage = load, + repeatfields.if = tcif@repeatfields, + + showframes.usage = load, + showframes.if = tcif@showframes, + showlabels.usage = load, + showlabels.if = tcif@showlabels, + + tocdepth.usage = load, + tocdepth.store = \tc@tocdepth, + secdepth.usage = load, + secdepth.store = \tc@secdepth, + + nomicrotype.usage = load, + nomicrotype.if = tcif@nomicrotype, + + + dctools.usage = load, + dctools.if = tcif@dctools, +} + +\ProcessKeyOptions[ufrgscca-abnt]\relax + +%%%%%%%%%%%%%%%%%%%%% +%%% Packages Loading +%%%%%%%%%%%%%%%%%%%%% +\RequirePackage[english,brazilian]{babel}% +\RequirePackage{csquotes}% + +\iftcif@strictabnt + \RequirePackage[a4paper,inner=2cm,outer=3cm,top=3cm,bottom=2cm,twoside]{geometry} +\else + \iftcif@dctools + \RequirePackage[a4paper,margin=5cm,right=2cm,marginparwidth=4.5cm,asymmetric,top=2.5cm,bottom=1.5cm]{geometry} + \else + \RequirePackage[a4paper,inner=2.5cm,outer=2.5cm,top=3cm,bottom=2cm,twoside]{geometry} + \fi +\fi + +\RequirePackage[toc,page,title]{appendix} +\RequirePackage[pagestyles,clearempty]{titlesec} +\RequirePackage{titletoc} +\RequirePackage[inline]{enumitem} + +\RequirePackage{chngcntr} + +\def\tc@captionwidth{0.75\textwidth} +\def\tc@notewidth{0.635\textwidth} %% 0.84666667\tc@captionwidth +\RequirePackage[position=above,font=small,labelfont=bf,textfont=md,textfont+=sl,width=\tc@captionwidth]{caption}% +%%% +%%% commands for 'floats' +%%% +% +\NewDocumentCommand{\sourcecitation}{m}{{\small{\sourcename\ #1}}}% +% +\newlength{\noteindent}%%auxiliary length +\NewDocumentCommand{\note}{O{}+m}{{\footnotesize\settowidth{\noteindent}{\notename#1:}\addtolength{\noteindent}{3pt}\begin{center}\begin{minipage}{\tc@notewidth}{\parindent=-\the\noteindent\notename#1:\hspace{2.9pt}#2}\end{minipage}\end{center}}}%% +% +% + + +%%%%%%%%%%%%%%%%%%%%% +%%% Packages Loading +%%%%%%%%%%%%%%%%%%%%% +\RequirePackage{array} +\RequirePackage{nicematrix} +\NiceMatrixOptions{cell-space-limits = 1pt} + +\newcolumntype{P}[1]{>{\raggedleft\arraybackslash}p{#1}} +\newcolumntype{B}[1]{>{\raggedleft\arraybackslash\bfseries}p{#1}} +\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} +\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}} +\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}} +\newcolumntype{J}[1]{>{\arraybackslash}p{#1}} + + +%%%%%%%%%%%%%%%%%%%%% +%%% Packages Loading +%%%%%%%%%%%%%%%%%%%%% +\WarningFilter{biblatex}{File 'brazilian-abnt-abnt.lbx'}% +\WarningFilter{biblatex}{Conflicting options}% +\iftcif@repeatfields% + \RequirePackage[backend=biber,style=abnt,pretty,giveninits,extrayear,repeatfields]{biblatex}% +\else% + \RequirePackage[backend=biber,style=abnt,pretty,giveninits,extrayear]{biblatex}% +\fi% +%% +%%% +%%% Language selection {package babel} +%%% +\iftcif@english%% + \selectlanguage{english}% + \AtBeginDocument{\selectlanguage{english}}% +\else + \selectlanguage{brazilian}% + \AtBeginDocument{\selectlanguage{brazilian}}% +\fi% + + +%%% +%%% typeset adjusting {package microtype} +%%% +\iftcif@nomicrotype\else\RequirePackage[tracking,kerning,spacing,babel]{microtype}\fi% +% +% pdftex native protruding +% +\pdfprotrudechars=2 +\pdfadjustspacing=2 + +%%% +%%% \so \ul command {package soul}... contour is just to make a fancy underline +%%% +\RequirePackage{contour} +\RequirePackage{soul} + + +\iftcif@showframes% + \RequirePackage{showframe}%% +\fi +%% +\iftcif@showlabels% + \RequirePackage{showlabels}%% + \showlabels{cite}%% + \showlabels{textcite}%% + \RenewDocumentCommand{\showlabelfont}{}{\tiny\ttfamily\color{blue}}%% +\fi%% + + +%%% +%%% ToC and Headings format. {package titlesec/titletoc/titleps} +%%% + +\setcounter{tocdepth}{\tc@tocdepth} % Table of Contents depth +\setcounter{secnumdepth}{\tc@secdepth} % Sectioning numbers depth (3 -> subsubsection) + +\NewDocumentEnvironment{tocless}{}% + {\setcounter{secnumdepth}{-1}\addtocontents{toc}{\protect\setcounter{tocdepth}{-1}\ignorespaces}}% + {\setcounter{secnumdepth}{\tc@secdepth}\addtocontents{toc}{\protect\setcounter{tocdepth}{\tc@tocdepth}\ignorespaces}}% +\def\notoc#1#2{\begin{tocless}#1{#2}\end{tocless}} + +\NewDocumentEnvironment{numberless}{}{\setcounter{secnumdepth}{-1}}{\setcounter{secnumdepth}{\tc@secdepth}} +\def\nonum#1#2{\begin{numberless}#1{#2}\end{numberless}} + + + +%%% +%%% ToC definitions {package titletoc} +%%% +\def\tc@lblmargin{22mm} +\contentsmargin{2.2em} +\def\tc@dotspacing{0.5pc} +\titlecontents{chapter}[\tc@lblmargin]{\vspace{3mm}\normalfont\scshape\selectfont}{\contentslabel{\tc@lblmargin}}{\hspace{-\tc@lblmargin}}{\titlerule*[\tc@dotspacing]{.}\normalsize\normalfont\contentspage} +\titlecontents{section}[\tc@lblmargin]{\vspace{1mm}}{\contentslabel{\tc@lblmargin}}{\hspace{-\tc@lblmargin}}{\titlerule*[\tc@dotspacing]{.}\contentspage} + +\dottedcontents{subsection}[\tc@lblmargin]{}{\tc@lblmargin}{\tc@dotspacing} + +\dottedcontents{subsubsection}[\tc@lblmargin]{}{\tc@lblmargin}{\tc@dotspacing} + +\dottedcontents{figure}[\tc@lblmargin]{}{\tc@lblmargin}{\tc@dotspacing} +\dottedcontents{table}[\tc@lblmargin]{}{\tc@lblmargin}{\tc@dotspacing} + +\RenewDocumentEnvironment{appendix}{O{\defappendixpagename}O{\defappendixname}}{% + \titleformat{\chapter}{\bfseries\Large\sffamily}{#2 \thechapter\hspace{1.5ex}-}{2ex}{\MakeUppercase}% + \titlecontents{chapter}[\tc@lblmargin]{\vspace{3mm}\sc}{\hspace{-\tc@lblmargin}{#2~\thecontentslabel\ -\enspace}}{\hspace{-\tc@lblmargin}}{\titlerule*[\tc@dotspacing]{.}\normalsize\normalfont\contentspage} + \def\appendixname{#2}% + \def\appendixpagename{#1}% + \def\appendixtocname{#1}% + \begin{appendices}% + \let\tc@appendixautorefname@tmp\appendixautorefname + \def\appendixautorefname{#2} + }% + {\let\appendixautorefname\tc@appendixautorefname@tmp\end{appendices}} + +\NewDocumentEnvironment{annex}{O{\defannexpagename}O{\defannexname}}{\begin{appendix}[#1][#2]}{\end{appendix}} + +%%% +%%% Headings definitions {package titlesec} +%%% +%\RenewDocumentCommand{\thechapter}{}{\arabic{chapter}} +\titleformat{\chapter}{\sffamily\bfseries\selectfont\Large}{\thechapter}{2ex}{\MakeUppercase} +\titleformat{name=\chapter,numberless}{\sffamily\bfseries\selectfont\Large\center}{}{0pt}{\MakeUppercase} +\titlespacing{\chapter}{0pt}{\tc@chapbefore}{\tc@chapafter} + +%\def\tc@chapbefore{18pt plus 3pt minus 6pt} +%\def\tc@chapafter{9pt plus 3pt minus 3pt} +%\def\tc@secbefore{12pt plus 6pt minus 3pt} +%\def\tc@secafter{6pt plus 2pt minus 2pt} + +\def\tc@chapbefore{70pt plus 12pt minus 8pt} +\def\tc@chapafter{36pt plus 8pt minus 8pt} +\def\tc@secbefore{27pt plus 6pt minus 6pt} +\def\tc@secafter{18pt plus 4pt minus 4pt} + +\titleformat{\section}[hang]{\normalfont\scshape\selectfont\large}{\thesection}{.5em}{} +\titlespacing{\section}{0pt}{\tc@secbefore}{\tc@secafter} + +\titleformat{name=\section,numberless}[hang]{\normalfont\large\bfseries\scshape\selectfont\center}{}{0pt}{} +\titlespacing{name=\section,numberless}{0pt}{\tc@secbefore}{\tc@secafter} + +\titleformat{\subsection}[hang]{\normalfont\sffamily\bfseries\slshape\selectfont}{\thesubsection}{.5em}{} +\titlespacing{\subsection}{0pt}{\tc@secbefore}{\tc@secafter} + +\titleformat{\subsubsection}[hang]{\normalfont\sffamily\slshape\selectfont}{\thesubsubsection}{.5em}{} +\titlespacing{\subsubsection}{0pt}{\tc@secbefore}{\tc@secafter} + +\titleformat{\paragraph}[hang]{\normalfont\sffamily\selectfont}{\theparagraph}{.5em}{\tightul} +\titlespacing{\paragraph}{0pt}{\tc@secbefore}{\tc@secafter} + +\titleformat{\subparagraph}[hang]{\normalfont\sffamily\selectfont}{\thesubparagraph}{.5em}{\tightul} +\titlespacing{\subparagraph}{0pt}{\tc@secbefore}{\tc@secafter} + +%%% +%%% Relative/Absolute counters... {package chngcntr} +%%% +\iftcif@dctools +\else +\iftcif@relnum% + \counterwithin{figure}{chapter}% + \counterwithin{table}{chapter}% +\else% + \counterwithout{figure}{chapter}% + \counterwithout{table}{chapter}% +\fi +\fi +%%% +%%% Page Heading format {titlesec/titleps} +%%% +\renewpagestyle{plain}{\sethead[\ifthechapter{\sffamily\thepage}{}][][]{}{}{\ifthechapter{\sffamily\thepage}{}}} +\newpagestyle{main}{\sethead[\ifthechapter{\sffamily\thepage}{}][][]{}{}{\ifthechapter{\sffamily\thepage}{}}} +\newpagestyle{bibliography}{\sethead[\sffamily\thepage][][]{}{}{\sffamily\thepage}} +\pagestyle{main} + +\iftcif@chapternopagenum\renewpagestyle{plain}{\sethead[][][]{}{}{}}\fi + +\let\tc@temp@printbibliography\printbibliography + +\defbibheading{bibliography}[\refname]{\nonum\chapter{#1}\pagestyle{bibliography}} + +\let\tc@temp@listoffigures\listoffigures +\def\listoffigures{\tc@temp@listoffigures\addcontentsline{toc}{chapter}{\MakeUppercase\listfigurename}} +%% +\let\tc@temp@listoftables\listoftables +\def\listoftables{\tc@temp@listoftables\addcontentsline{toc}{chapter}{\MakeUppercase\listtablename}} +%% + + +\newlength{\tc@lblwidth} +\NewDocumentCommand{\NewChapListEnv}{mm}{ + \NewDocumentEnvironment{#1}{O{}m}{% + \settowidth{\tc@lblwidth}{##2***}% + \nonum\chapter{\MakeUppercase{#2}}% + \begin{description}[tcc,noindent,leftmargin=\tc@lblwidth,labelwidth=!,##1]% + }{\end{description}} +} + +\NewChapListEnv{listofabbrv}{\listabbrvname} +\NewChapListEnv{listofsymbols}{\listsymbolname} + + +%%% +%%% lists formating {package enumitem} +%%% + +\def\tc@enumbase{6mm} +\def\tc@enummarging{12mm} +\def\tc@enummargingB{18mm} +\def\tc@enumlabelsep{2.5mm} +\setlength{\parindent}{\tc@enummarging} + +\SetEnumitemValue{label}{arabic}{\arabic*.} +\SetEnumitemValue{label}{roman}{\roman*.} +\SetEnumitemValue{label}{alpha}{\alph*.} +\SetEnumitemValue{label}{bullet}{\hfill\textopenbullet} + +\SetEnumitemKey{ppc}{leftmargin=\tc@enummarging,labelindent=\tc@enumbase,labelsep=\tc@enumlabelsep,labelwidth=!,style=nextline} +\SetEnumitemKey{tcc}{leftmargin=\tc@enummarging,labelindent=\tc@enumbase,labelsep=\tc@enumlabelsep,labelwidth=!,style=nextline} +% +\SetEnumitemKey{parindent}{leftmargin=\tc@enummargingB,labelindent=\tc@enummarging,labelwidth=!} +\SetEnumitemKey{noindent}{labelindent=0pt,labelwidth=!} +\SetEnumitemKey{tight}{leftmargin=0pt,listparindent=5mm,labelwidth=5mm} +% +\SetEnumitemKey{miditemsep}{parsep=0ex,itemsep=0.4ex} + +%\SetEnumitemKey{ppctight}{leftmargin=0pt,listparindent=5mm,labelwidth=5mm} + + +\SetEnumitemKey{arabic}{label=\arabic*.} +\SetEnumitemKey{arabic)}{label=\arabic*)} +\SetEnumitemKey{(arabic)}{label=(\arabic*)} +\SetEnumitemKey{arabic*}{label*=\arabic*.} +\SetEnumitemKey{arabic*)}{label*=\arabic*)} +\SetEnumitemKey{roman}{label=\roman*.} +\SetEnumitemKey{roman)}{label=\roman*)} +\SetEnumitemKey{(roman)}{label=(\roman*)} +\SetEnumitemKey{roman*}{label*=\roman*.} +\SetEnumitemKey{roman*)}{label*=\roman*)} +\SetEnumitemKey{Roman}{label=\Roman*.} +\SetEnumitemKey{Roman)}{label=\Roman*)} +\SetEnumitemKey{(Roman)}{label=(\Roman*)} +\SetEnumitemKey{Roman*}{label*=\Roman*.} +\SetEnumitemKey{Roman*)}{label*=\Roman*)} +\SetEnumitemKey{alpha}{label=\alph*.} +\SetEnumitemKey{alpha)}{label=\alph*)} +\SetEnumitemKey{(alpha)}{label=(\alph*)} +\SetEnumitemKey{alpha*}{label*=\alph*.} +\SetEnumitemKey{alpha*)}{label*=\alph*)} +\SetEnumitemKey{Alpha}{label=\Alph*.} +\SetEnumitemKey{Alpha)}{label=\Alph*)} +\SetEnumitemKey{(Alpha)}{label=(\Alph*)} +\SetEnumitemKey{Alpha*}{label*=\Alph*.} +\SetEnumitemKey{Alpha*)}{label*=\Alph*)} +\SetEnumitemKey{bullet}{label=\hfill\textopenbullet} + +%%% +%%% tight underline {packages soul, countour} +%%% +\contourlength{0.17ex}% +\contournumber{96}% + +\NewDocumentCommand{\tightul}{m}{% + \setul{0.355ex}{0.075ex}% + \ul{{\phantom{{#1}}}}% + \llap{\contour{white}{#1}}% +} + +%%% +%%% keyword command definition (for abstract) +%%% +\newcounter{tc@kwcounter}% +\NewDocumentCommand{\keyword}{m}{%% + \stepcounter{tc@kwcounter}%% + \expandafter\gdef\csname keyw\alph{tc@kwcounter}\endcsname{#1}%% +}% +\NewDocumentCommand{\tcabnt@abstractkw}{}{%% + \@ifundefined{keywa}{}{\expandafter\MakeUppercase\keywa}%% + \@ifundefined{keywb}{}{, \keywb}%% + \@ifundefined{keywc}{}{, \keywc}%% + \@ifundefined{keywd}{}{, \keywd}% + \@ifundefined{keywe}{}{, \keywe}% + \@ifundefined{keywf}{}{, \keywf}% + \@ifundefined{keywg}{}{, \keywg}% + \@ifundefined{keywh}{}{, \keywh}% + \@ifundefined{keywi}{}{, \keywi}% + \@ifundefined{keywj}{}{, \keywj}% +}% + +\let\tc@org@abstract\abstract +\let\tc@org@endabstract\endabstract + +\RenewDocumentEnvironment{abstract}{}{%% + \notoc\chapter{\abstractname}% +}{%% + \par\vspace{2ex} %\vfill% + \noindent\textbf{\keywordsname:} \tcabnt@abstractkw.% +}% + +\NewDocumentEnvironment{otherabstract}{O{english}m}{%% + \gdef\tc@otherkeywords{#2}%% + \begin{otherlanguage}{#1}% + \notoc\chapter{\abstractname}% +}{% + \par\vspace{2ex} %\vfill% + \noindent\textbf{\keywordsname:} \tc@otherkeywords.% + \end{otherlanguage}% +}% + + + +%==============================================================================% +% date redefinition (separated month and year) +%==============================================================================% +\RenewDocumentCommand{\date}{O{\number\day}mm}{% + \gdef\tc@publmonth{#2}% + \gdef\tc@publyear{#3}% + \gdef\tc@publday{\ifnum #1<10 0\fi #1}% +}% +\date{\monthname}{\number\year}% + +%for english% +\@namedef{captionsenglish}{%% + \input{ufrgscca-en-base.def}%% +}% +\@namedef{dateenglish}{%% + \def\today{\monthname\space\number\day,\space\number\year}%% + \def\monthname{%% + \ifcase\month\or%% + January\or February\or March\or April\or%% + May\or June\or July\or August\or September\or%% + October\or November\or December%% + \fi%% + }%% + \def\tc@date{\tc@publmonth~\tc@publyear}%% +}% +% +%para portugues% +\@namedef{captionsbrazilian}{%% + \input{ufrgscca-ptBR-base.def}%% +}% +\@namedef{datebrazilian}{%% + \def\today{\number\day\space de\space\monthname\space de\space\number\year}%% + \def\monthname{%% + \ifcase\month\or%% + Janeiro\or Fevereiro\or Março\or Abril\or%% + Maio\or Junho\or Julho\or Agosto\or Setembro\or%% + Outubro\or Novembro\or Dezembro%% + \fi%% + }%% + \def\tc@date{\tc@publmonth\ de~\tc@publyear}%% +}% +% +% +% Mainly for 'cover pages' +\def\tc@pagebreak{\if@openright\cleardoublepage\else\clearpage\fi} + diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty new file mode 100644 index 0000000000..fc83276076 --- /dev/null +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty @@ -0,0 +1,1006 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status “maintained”. +%% +%% The Current Maintainer of this work is Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\NeedsTeXFormat{LaTeX2e}[2022/06/01] +\def\tc@tmp@packname{ufrgscca-coord} +\def\tc@tmp@altpackname{ufrgsccacoord} + \def\tc@tmp@packdesc{UFRGS/CCA coord commands} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} + \let\@exp\expandafter + \@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} + \@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] + +\newif\iftcif@coord@emptyforms\tcif@coord@emptyformsfalse +\DeclareKeys[ufrgscca-coord]{ + calendar.usage = general, + calendar.if = tcif@coord@calendar, + checklist.usage = general, + checklist.if = tcif@coord@checklist, + report.usage = general, + report.if = tcif@coord@report, + boards.usage = general, + boards.if = tcif@coord@boards, + boarddates.usage = general, + boarddates.if = tcif@coord@boarddates, + studentlist.usage = general, + studentlist.if = tcif@coord@studentlist, + revforms.usage = general, + revforms.if = tcif@coord@forms@revforms, + referral.usage = general, + referral.if = tcif@coord@forms@referral, + cocertificate.usage = general, + cocertificate.if = tcif@coord@forms@cocertificate, +} +\ProcessKeyOptions[ufrgscca-coord]\relax +\NewDocumentCommand{\setreports}{m}{\SetKeys[ufrgscca-coord]{#1}} + +\def\c@one#1:#2:{\csname #1\endcsname} +\def\c@two#1:#2:{\csname #1\endcsname[newpage]} +\def\tccoord@split#1:#2:#3#4#5,{#4#1:#2:} +\NewDocumentCommand{\tccoord@student@exec}{m}{\tccoord@split#1::\c@two\c@one\empty,} + +\RequirePackage{longtable} +\RequirePackage{ufrgscca-forms} +\RequirePackage{ufrgscca-gen} +\RequirePackage{ufrgscca-core} + +%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%% +\cmdfactory{boardstitle} +\cmdfactory{boardsworklabel} +\cmdfactory{TCCgradesNlabel,TCCgradesClabel}% + +\cmdfactory{calendartitle,tcccalendardesc}% +\cmdfactory{tccreporttitle,tccreportopening,tccreportdesc,tccreportabsents,tccreportdismiss}% +\cmdfactory{tccreferralopening,referralfailed,referralapproved,referralfailFF} +\cmdfactory{referralexamapprovedtext,referralexamfailtext,referralfatetext}% +\cmdfactory{boardlabel,cocertificatetitle,cocertificateopenning,cocertificatetext}% +\cmdfactory{TCCperiod,boardstitleB,boardsOBS}% +\cmdfactory{studentlistformtitle,studentlistactivity,studentlistdate}% + + + +%%% this should go to ufrgscca-coord !!!! +\NewDocumentCommand{\TCCgrades}{mmmmm}{% + \gdef\tc@TCCgradeA{#1}% + \gdef\tc@TCCgradeB{#2}% + \gdef\tc@TCCgradeC{#3}% + \gdef\tc@TCCgradeD{#4}% + \gdef\tc@TCCgradeFF{#5}% +}% +% +%%% this should go to ufrgscca-coord !!!! +\NewDocumentCommand{\TCCgradesN}{mmm}{% + \gdef\tc@TCCgradeAN{#1}% + \gdef\tc@TCCgradeBN{#2}% + \gdef\tc@TCCgradeCN{#3}% +}% + + +%%%%%%%%% +%%%%%%%%% ufrgscca-coord !!! +%%%%%%%%% +\NewDocumentCommand{\tccoord@studentExam}{m}{% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}Exam\endcsname{#1}% +}% + \NewDocumentCommand{\tccoord@studentFF}{}{% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}FF\endcsname{1}% + \gdef\tc@TCCff@flag{1}% +}% +\NewDocumentCommand{\tccoord@studentDismiss}{}{% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}Dismiss\endcsname{1}% + \gdef\tc@TCCdismiss@flag{1}% +}% +\NewDocumentCommand{\studentFate}{O{}}{%% + \ifthenelse{\equal{#1}{C}}{%% + \tccoord@studentExam{C}%% + }{%% + \ifthenelse{\equal{#1}{D}}{%% + \tccoord@studentExam{D}%% + }{%% + \ifthenelse{\equal{#1}{FF}}{%% + \tccoord@studentFF%% + }{%% + \ifthenelse{\equal{#1}{Dismiss}}{%% + \tccoord@studentDismiss%% + }{%% + }%% + }%% + }%% + }%% +}%% +% +% +\NewDocumentCommand{\studenttimeslot}{O{}mm}{%% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}date\endcsname{#2}% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}time\endcsname{#3}% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}local\endcsname{#1}% +}% +\let\timeslot\studenttimeslot% +% +\NewDocumentCommand{\tccdate}{mm}{%% + \expandafter\gdef\csname date:#1\endcsname{#2}% +}% +% + +%%%%%%%%% +%%%%%%%%% ufrgscca-coord !?!! +%%%%%%%%% +\NewDocumentCommand{\studentTCCtitle}{m}{%% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}title\endcsname{#1}% +}% +\let\TCCtitle\studentTCCtitle% +% +%%%%%%%%% +%%%%%%%%% ufrgscca-coord !!! +%%%%%%%%% +\NewDocumentCommand{\studentremark}{m}{%% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}remark\endcsname{#1}% +}% +% + + + +% +\NewDocumentCommand{\tccoord@checklist}{m}{\expandafter\gdef\csname tc@student\Alph{tc@studentcount}:#1\endcsname{}}% +\NewDocumentCommand{\checklist}{m}{\forcsvlist{\tccoord@checklist}{#1}}% +% +\NewDocumentCommand{\addtostudent}{mm}{\@ifundefined{#1}{}{\csappto{#1.hook}{#2}}} +% +\NewDocumentCommand{\checkedbox}{}{\ooalign{$\square$\cr\hidewidth\raise.3ex\hbox{$\checkmark\mkern-7mu$}\hidewidth\cr}}% +\NewDocumentCommand{\uncheckedbox}{}{$\square$}% +\NewDocumentCommand{\tccoord@@check}{mm}{\@ifundefined{tc@student#1:#2}{\uncheckedbox}{\checkedbox}}% +\NewDocumentCommand{\tccoord@check}{mm}{\@ifundefined{#2}{}{\tccoord@@check{#1}{\csname #2\endcsname} \csname @\csname #2\endcsname\endcsname}}% +\NewDocumentCommand{\checkdef}{mmm}{\expandafter\gdef\csname #1\endcsname{#2}\expandafter\gdef\csname @#2\endcsname{#3}}% +%\chekmark% + +%%%%% +%%%%% ufrgscca-coord !!!! +%%%%% +\NewDocumentCommand{\tccoord@studentboardsnewpage}{}{% %%% see ufrgscca-core for counters... + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}BoardsNP\endcsname{1}% +}% + +\NewDocumentCommand{\NewStudent}{m+m}{%% + \expandafter\NewDocumentCommand\csname #1\endcsname{O{}}{%% + #2% + \csname #1.hook\endcsname + \@ifundefined{tccoord@studentboards##1}{}{\csname tccoord@studentboards##1\endcsname}%% + \iftcif@coord@forms@revforms + \tcforms@examinersForms + \fi + \iftcif@coord@forms@referral + \tccoord@TCCreferralletter + \fi + \iftcif@coord@forms@cocertificate + \tccoord@TCCcocertificateletter + \fi + + \@defaultboard% + }%% + \expandafter\NewDocumentCommand\csname #1.hook\endcsname{}{} +}% + + + +\NewDocumentCommand{\@distinctboard}{}{\def\tc@nBoard{}}% +\NewDocumentCommand{\@defaultboard}{}{\let\tc@nBoard\undefined}% +% +% +\newcounter{tc@calendareventcount}% +\NewDocumentCommand{\tcccalendarevent}{mm}{%% + \stepcounter{tc@calendareventcount}%% + \expandafter\gdef\csname tc@tcccalendarevent\Alph{tc@calendareventcount}week\endcsname{#1}%% + \expandafter\gdef\csname tc@tcccalendarevent\Alph{tc@calendareventcount}desc\endcsname{#2}%% +}% +\NewDocumentCommand{\tcccalendarhead}{mmm}{\gdef\tc@tcccalendarhead{#1 & #2 & #3\\}}% +% +\newcounter{tc@calendareventdatecount}% +\NewDocumentCommand{\tcccalendareventdate}{m}{%% + \stepcounter{tc@calendareventdatecount}%% + \expandafter\gdef\csname tc@tcccalendarevent\Alph{tc@calendareventdatecount}date\endcsname{#1}%% +}% +% + + +% +\NewDocumentCommand{\examinergrades}{mmm}{%% + \expandafter\def\csname tc@student\Alph{tc@studentcount}@examiner\Alph{tc@examinercount}pointA\endcsname{#1}%% + \expandafter\def\csname tc@student\Alph{tc@studentcount}@examiner\Alph{tc@examinercount}pointB\endcsname{#2}%% + \expandafter\def\csname tc@student\Alph{tc@studentcount}@examiner\Alph{tc@examinercount}pointC\endcsname{#3}%% + \ifthenelse{\equal{#1}{}}{%% + \expandafter\def\csname tc@student\Alph{tc@studentcount}@examiner\Alph{tc@examinercount}grade\endcsname{0}% + }{%% + \expandafter\edef\csname tc@student\Alph{tc@studentcount}@examiner\Alph{tc@examinercount}grade\endcsname{\fpeval{round((\tc@TCCpointAweight * #1 + \tc@TCCpointBweight * #2 + \tc@TCCpointCweight * #3),2,1)} }% + }% + }% + + +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC calendar% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\tc@calendartab{11.5cm}% +\NewDocumentCommand{\tccoord@TCCcalendarline}{m}{\@ifundefined{tc@tcccalendarevent#1week}{}{\textbf{\csname tc@tcccalendarevent#1date\endcsname} & \csname tc@tcccalendarevent#1week\endcsname & \csname tc@tcccalendarevent#1desc\endcsname\\\hline}}% +%%% +%% +%%% +\NewDocumentCommand{\tccoord@TCCcalendar}{}{% + \tc@formtopbox{\tcdef@forms@formstitle}{\tcdef@coord@calendartitle}% +% + { \footnotesize% + \begin{center} +% + \resizebox{\textwidth}{!}{%% + \begin{tabular}{ccp{\tc@calendartab}}% + \tc@tcccalendarhead\hline% + \tccoord@TCCcalendarline{A}% + \tccoord@TCCcalendarline{B}% + \tccoord@TCCcalendarline{C}% + \tccoord@TCCcalendarline{D}% + \tccoord@TCCcalendarline{E}% + \tccoord@TCCcalendarline{F}% + \tccoord@TCCcalendarline{G}% + \tccoord@TCCcalendarline{H}% + \tccoord@TCCcalendarline{I}% + \tccoord@TCCcalendarline{J}% + \tccoord@TCCcalendarline{K}% + \tccoord@TCCcalendarline{L}% + \tccoord@TCCcalendarline{M}% + \tccoord@TCCcalendarline{N}% + \tccoord@TCCcalendarline{O}% + \end{tabular}} +% + \end{center}% + %\if@lmodern + \tiny + %\fi + \tcdef@coord@tcccalendardesc% + }% + \vfill% +% + \pagebreak% +}% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% Student list form% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\tc@stlistrule{65mm}% +\def\tc@stlisttab{70mm}% +%%% +%% +%%% +\NewDocumentCommand{\tccoord@studentlistrow}{m}{%% + \@ifundefined{tc@student#1}{\rule{\tc@stlistrule}{.1pt}}{\csname tc@student#1\endcsname}\hrulefill & \rule{\tc@stlistrule}{.1pt}\\% +}% +% +\NewDocumentCommand{\tccoord@studentlistform}{}{% + \stepcounter{tc@studentcount}% + \tc@formtopbox{\tcdef@forms@formstitle}{\tcdef@coord@studentlistformtitle}% + \vspace{20mm}% +% + {\small% + \begin{tabular}{p{\tc@stlisttab}@{ }p{\tc@stlisttab}}% + \tcdef@forms@formsstudentlabelgen & \tcdef@forms@studentsignaturegen\\\hline\\[2mm]% + +% + \tccoord@studentlistrow{A} +% + \tccoord@studentlistrow{B}% + \tccoord@studentlistrow{C}% + \tccoord@studentlistrow{D}% + \tccoord@studentlistrow{E}% +% + \tccoord@studentlistrow{F}% + \tccoord@studentlistrow{G}% + \tccoord@studentlistrow{H}% + \tccoord@studentlistrow{I}% + \tccoord@studentlistrow{J}% +% + \tccoord@studentlistrow{K}% + \tccoord@studentlistrow{L}% + \tccoord@studentlistrow{M}% + \tccoord@studentlistrow{N}% + \tccoord@studentlistrow{O}% +% + \tccoord@studentlistrow{P}% + \tccoord@studentlistrow{Q}% + \tccoord@studentlistrow{R}% + \tccoord@studentlistrow{S}% + \tccoord@studentlistrow{T}% +% + \tccoord@studentlistrow{U}% + \tccoord@studentlistrow{V}% + \tccoord@studentlistrow{W}% + \tccoord@studentlistrow{X}% + \tccoord@studentlistrow{Y}% + \end{tabular}}% + \vfill% +% + \pagebreak% +}% +% +%%% +%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% student info row (for reports and referral letters)% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\tc@BoardTabA{38mm}% +\def\tc@BoardTabB{38mm}% +\def\tc@BoardTabC{60mm}% +\def\tc@BoardTabD{13mm}% +%%% +%% +%%% +\NewDocumentCommand{\tccoord@studentboardrow}{m}{%% + \@ifundefined{tc@student#1}{}{% + \@ifundefined{tc@student#1Dismiss}{%% + \@ifundefined{tc@student#1FF}{%% + \@ifundefined{tc@student#1time}{}{%% + \multirow{4}{\tc@BoardTabA}{\textbf{\csname tc@student#1\endcsname}} & \multirow{4}{\tc@BoardTabB}{{\csname tc@student#1@advisor\endcsname}} & \csname tc@student#1@examinerA\endcsname & \multirow{5}{\tc@BoardTabD}{\iftcif@coord@boarddates\else\csname tc@student#1date\endcsname\\\fi + \csname tc@student#1time\endcsname\\[1mm]\csname tc@student#1local\endcsname + }\\*% + & & \csname tc@student#1@examinerB\endcsname & \\*% + & & \csname tc@student#1@examinerC\endcsname & \\*% + & & (\csname tc@student#1@altexaminerA\endcsname\ ) & \\*% + \multicolumn{3}{l}{\textsc{\tcdef@coord@boardsworklabel:} \begin{minipage}{0.90\textwidth}\textit{\csname tc@student#1title\endcsname}\end{minipage}} & \\[2mm]\hline% + }% + }{}% + }{}% + }% +}% +% +\NewDocumentCommand{\tccoord@testdaterow}{mm}{%% +% \@ifundefined{tcif@coord@boarddates}{}{%% + \iftcif@coord@boarddates% + \@ifundefined{tc@student#2}{}{%% + \@ifundefined{tc@student#2Dismiss}{%% + \@ifundefined{tc@student#2FF}{%% + \@ifundefined{tc@student#2BoardsNP}{%% + \tccoord@@testdaterow{\csname tc@student#1date\endcsname}{\csname tc@student#2date\endcsname}%% + }{\kill\pagebreak\tccoord@daterow{#2}}%% + }{}%% + }{}%% + }%% + \fi + %}%%@boarddates +}%% +% +\NewDocumentCommand{\tccoord@@testdaterow}{mm}{\ifthenelse{\equal{#1}{#2}}{\\[-4.35mm]\hline\\[-4mm]}{\tccoord@@daterow{#2}}}% +\NewDocumentCommand{\tccoord@daterow}{m}{\gdef\tc@date{\csname tc@student#1date\endcsname}\tccoord@@daterow{\tc@date}}% +\NewDocumentCommand{\tccoord@@daterow}{m}{& & \multicolumn{2}{r}{\textsc{\textbf{\csname date:#1\endcsname\ --- #1}}} \\*% + \textsc{\tcdef@forms@formsstudentlabelgen} & \textsc{\tcdef@forms@formsadvisorlabelgen} & \textsc{\tcdef@forms@formsboardtitle} & \textsc{\tcdef@forms@formstimelabel}\\*\hline}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC Boards announce table% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tccoord@TCCboards}{}{% + \stepcounter{tc@studentcount}% + \tc@formtopbox{\tcdef@forms@formstitle}{\tcdef@coord@TCCperiod}% +% + {%% + \footnotesize\gdef\tc@date{\csname tc@studentAdate\endcsname}% + \setlength\LTleft{-8mm} \begin{center}% + {%% + \begin{longtable}{p{\tc@BoardTabA}p{\tc@BoardTabB}p{\tc@BoardTabC}p{\tc@BoardTabD}}% + \multicolumn{4}{c}{\textbf{\textsc{\tcdef@coord@boardstitle}}}\\\hline% + \iftcif@coord@boarddates\else\textsc{\tcdef@forms@formsstudentlabelgen} & \textsc{\tcdef@forms@formsadvisorlabelgen} & \textsc{\tcdef@forms@formsboardtitle} & \textsc{\tcdef@forms@formstimelabel}\\\hline\fi% + \endhead% + \tccoord@testdaterow{T}{A}% + \tccoord@studentboardrow{A} \tccoord@testdaterow{A}{B}% + \tccoord@studentboardrow{B} \tccoord@testdaterow{B}{C}% + \tccoord@studentboardrow{C} \tccoord@testdaterow{C}{D}% + \tccoord@studentboardrow{D} \tccoord@testdaterow{D}{E}% + \tccoord@studentboardrow{E} \tccoord@testdaterow{E}{F}% +% + \tccoord@studentboardrow{F} \tccoord@testdaterow{F}{G}% + \tccoord@studentboardrow{G} \tccoord@testdaterow{G}{H}% + \tccoord@studentboardrow{H} \tccoord@testdaterow{H}{I}% + \tccoord@studentboardrow{I} \tccoord@testdaterow{I}{J}% + \tccoord@studentboardrow{J} \tccoord@testdaterow{J}{K}% +% + \tccoord@studentboardrow{K} \tccoord@testdaterow{K}{L}% + \tccoord@studentboardrow{L} \tccoord@testdaterow{L}{M}% + \tccoord@studentboardrow{M} \tccoord@testdaterow{M}{N}% + \tccoord@studentboardrow{N} \tccoord@testdaterow{N}{O}% + \tccoord@studentboardrow{O} \tccoord@testdaterow{O}{P}% +% + \tccoord@studentboardrow{P} \tccoord@testdaterow{P}{Q}% + \tccoord@studentboardrow{Q} \tccoord@testdaterow{Q}{R}% + \tccoord@studentboardrow{R} \tccoord@testdaterow{R}{S}% + \tccoord@studentboardrow{S} \tccoord@testdaterow{S}{T}% + \tccoord@studentboardrow{T}% +% + \end{longtable}% + }% + \end{center}% + {\bf \tcdef@coord@boardsOBS}% + }% + \vfill% + \pagebreak% +}% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% \tccoord@fate => A,B,C,D as a function of student grade% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tccoord@fate}{m}{% + \ifthenelse{1 = \fpeval{#1 < \tc@TCCgradeCN}}% + {\tc@TCCgradeD}% + { + \ifthenelse{1 = \fpeval{#1 < \tc@TCCgradeBN}}% + {\tc@TCCgradeC}% + { + \ifthenelse{1 = \fpeval{#1 < \tc@TCCgradeAN}}% + {\tc@TCCgradeB}% + {\tc@TCCgradeA}% + }% + }% +} +\NewDocumentCommand{\tccoord@@fate}{m}{\tccoord@fate{\csname tc@student#1Temp\endcsname}}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% \tc@student grade => average of the 3 examiners grade% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tccoord@studentgrade}{m}{%% + \@ifundefined{tc@student#1}{}{% + \expandafter\edef\csname tc@student#1Temp\endcsname{%% +\fpeval{round((\csname tc@student#1@examinerAgrade\endcsname + \csname tc@student#1@examinerBgrade\endcsname + \csname tc@student#1@examinerCgrade\endcsname)/3,2,1)}% + }% + }% +}% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% examiners info (grades) for report/referral letters% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tccoord@examinersline}{mm}{%% +& \csname tc@student#1@examiner#2\endcsname & \csname tc@student#1@examiner#2pointA\endcsname & \csname tc@student#1@examiner#2pointB\endcsname & \csname tc@student#1@examiner#2pointC\endcsname & \csname tc@student#1@examiner#2grade\endcsname &% +}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% student extra info (process number, ID, email) for report% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tccoord@studentextrainfo}{m}{%% + (\csname tc@student#1Nproc\endcsname )\ \ \csname tc@student#1ID\endcsname\ / \csname tc@student#1email\endcsname%% +}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% student info (all examiners, advisor, etc.) for report and referral letters.% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tccoord@studentrow}{O{}m}{%% + \@ifundefined{tc@student#2}{}{%% + \@ifundefined{tc@student#2FF}{%% + \@ifundefined{tc@student#2Dismiss}{%% + \multirow{4}{\tc@ReportTabA}{\csname tc@student#2\endcsname} %% + \tccoord@examinersline{#2}{A}\\*%% + \tccoord@examinersline{#2}{B}\\*%% + \tccoord@examinersline{#2}{C}\\*%% + & \multicolumn{4}{c}{\tcdef@cover@advisorname : \csname tc@student#2@advisor\endcsname} & \textbf{\csname tc@student#2Temp\endcsname} & %% + \textbf{\tccoord@@fate{#2}}%% + \@ifundefined{#1}{\\}{\\*%% + \multicolumn{6}{l}{\tcdef@coord@boardsworklabel: \csname tc@student#2title\endcsname}\\*%% + \multicolumn{6}{l}{\tccoord@studentextrainfo{#2}}\\*% + \multicolumn{6}{c}{{\bf \csname tc@student#2remark\endcsname}}\\% + }%% + \hline%% + }{%% + }%% + }{%% + }%% + }%% +}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% student FF info (report)% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tccoord@studentFFrow}{m}{%% + \@ifundefined{tc@student#1}{}{%% + \@ifundefined{tc@student#1Dismiss}{%% + \@ifundefined{tc@student#1FF}{%% + }{%% + \multicolumn{6}{l}{\csname tc@student#1\endcsname } & \tc@TCCgradeFF\\*%% + \multicolumn{6}{l}{\tccoord@studentextrainfo{#1} } & \\*%% + \multicolumn{6}{l}{\tcdef@cover@advisorname : \csname tc@student#1@advisor\endcsname} & \\\hline%% + }%% + }{}%% + }%% +}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% student info (report), dimiss case% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\tc@studentDismissrow}[1]{%% + \@ifundefined{tc@student#1}{}{%% + \@ifundefined{tc@student#1FF}{%% + \@ifundefined{tc@student#1Dismiss}{%% + }{%% + \multicolumn{6}{l}{\csname tc@student#1\endcsname} & \\*%% + \multicolumn{6}{l}{\tccoord@studentextrainfo{#1} } & \\*%% + \multicolumn{6}{l}{\tcdef@cover@advisorname : \csname tc@student#1@advisor\endcsname} & \\\hline%% + }%% + }{}%% + }%% +}% +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC report (student grades, FF, dismiss)% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\tc@ReportTabA{32mm}% +\def\tc@ReportTabB{42mm}% +\def\tc@ReportTabC{15mm}% +\def\tc@ReportTabD{15mm}% +\def\tc@ReportTabE{15mm}% +\def\tc@ReportTabF{8mm}% +\def\tc@ReportTabG{12mm}% +%%%% +%% +%%%% +\NewDocumentCommand{\tccoord@TCCreport}{}{% + \stepcounter{tc@studentcount}% + \tc@formtopbox{\tcdef@forms@formstitle}{\tcdef@coord@tccreporttitle\ - \tcdef@coord@TCCperiod}% + {%% +% \footnotesize% + \tiny% +%% + \tccoord@studentgrade{A}% + \tccoord@studentgrade{B}% + \tccoord@studentgrade{C}% + \tccoord@studentgrade{D}% + \tccoord@studentgrade{E}% + \tccoord@studentgrade{F}% + \tccoord@studentgrade{G}% + \tccoord@studentgrade{H}% +%% + \tccoord@studentgrade{I}% + \tccoord@studentgrade{J}% + \tccoord@studentgrade{K}% + \tccoord@studentgrade{L}% + \tccoord@studentgrade{M}% + \tccoord@studentgrade{N}% + \tccoord@studentgrade{O}% + \tccoord@studentgrade{P}% +%% + \tccoord@studentgrade{Q}% + \tccoord@studentgrade{R}% + \tccoord@studentgrade{S}% + \tccoord@studentgrade{T}% + \tccoord@studentgrade{U}% + \tccoord@studentgrade{V}% + \tccoord@studentgrade{W}% + \tccoord@studentgrade{X}% +%% + \begin{center}% + \begin{longtable}{p{\tc@ReportTabA}@{\ }p{\tc@ReportTabB}@{\ }p{\tc@ReportTabC}@{\ }p{\tc@ReportTabD}@{\ }p{\tc@ReportTabE}@{\ }p{\tc@ReportTabF}@{\ }p{\tc@ReportTabG}}% + \multicolumn{7}{c}{\tcdef@forms@formstitle\ \tcdef@coord@TCCperiod}\\\hline% + & \tcdef@coord@boardlabel & \tc@TCCpointAlabel & \tc@TCCpointBlabel & \tc@TCCpointClabel &% + \tcdef@coord@TCCgradesNlabel & \tcdef@coord@TCCgradesClabel\\\hline% + \endhead% + \tccoord@studentrow[tc@studentextrainfo]{A}% + \tccoord@studentrow[tc@studentextrainfo]{B}% + \tccoord@studentrow[tc@studentextrainfo]{C}% + \tccoord@studentrow[tc@studentextrainfo]{D}% + \tccoord@studentrow[tc@studentextrainfo]{E}% + \tccoord@studentrow[tc@studentextrainfo]{F}% + \tccoord@studentrow[tc@studentextrainfo]{G}% + \tccoord@studentrow[tc@studentextrainfo]{H}% +%% + \tccoord@studentrow[tc@studentextrainfo]{I}% + \tccoord@studentrow[tc@studentextrainfo]{J}% + \tccoord@studentrow[tc@studentextrainfo]{K}% + \tccoord@studentrow[tc@studentextrainfo]{L}% + \tccoord@studentrow[tc@studentextrainfo]{M}% + \tccoord@studentrow[tc@studentextrainfo]{N}% + \tccoord@studentrow[tc@studentextrainfo]{O}% + \tccoord@studentrow[tc@studentextrainfo]{P}% +%% + \tccoord@studentrow[tc@studentextrainfo]{Q}% + \tccoord@studentrow[tc@studentextrainfo]{R}% + \tccoord@studentrow[tc@studentextrainfo]{S}% + \tccoord@studentrow[tc@studentextrainfo]{T}% + \tccoord@studentrow[tc@studentextrainfo]{U}% + \tccoord@studentrow[tc@studentextrainfo]{V}% + \tccoord@studentrow[tc@studentextrainfo]{W}% + \tccoord@studentrow[tc@studentextrainfo]{X}% + \@ifundefined{tc@TCCff@flag}{}{% + & & & & & & \\% + & & & & & & \\% + \multicolumn{6}{l}{{\bf \tcdef@coord@tccreportabsents}}\\\hline% + \tccoord@studentFFrow{A}% + \tccoord@studentFFrow{B}% + \tccoord@studentFFrow{C}% + \tccoord@studentFFrow{D}% + \tccoord@studentFFrow{E}% + \tccoord@studentFFrow{F}% + \tccoord@studentFFrow{G}% + \tccoord@studentFFrow{H}% +%% + \tccoord@studentFFrow{I}% + \tccoord@studentFFrow{J}% + \tccoord@studentFFrow{K}% + \tccoord@studentFFrow{L}% + \tccoord@studentFFrow{M}% + \tccoord@studentFFrow{N}% + \tccoord@studentFFrow{O}% + \tccoord@studentFFrow{P}% +%% + \tccoord@studentFFrow{Q}% + \tccoord@studentFFrow{R}% + \tccoord@studentFFrow{S}% + \tccoord@studentFFrow{T}% + \tccoord@studentFFrow{U}% + \tccoord@studentFFrow{V}% + \tccoord@studentFFrow{W}% + \tccoord@studentFFrow{X}% + }% + \@ifundefined{tc@TCCdismiss@flag}{}{% + & & & & & & \\% + & & & & & & \\% + \multicolumn{6}{l}{{\bf \tcdef@coord@tccreportdismiss}}\\\hline% + \tc@studentDismissrow{A}% + \tc@studentDismissrow{B}% + \tc@studentDismissrow{C}% + \tc@studentDismissrow{D}% + \tc@studentDismissrow{E}% + \tc@studentDismissrow{F}% + \tc@studentDismissrow{G}% + \tc@studentDismissrow{H}% +%% + \tc@studentDismissrow{I}% + \tc@studentDismissrow{J}% + \tc@studentDismissrow{K}% + \tc@studentDismissrow{L}% + \tc@studentDismissrow{M}% + \tc@studentDismissrow{N}% + \tc@studentDismissrow{O}% + \tc@studentDismissrow{P}% +%% + \tc@studentDismissrow{Q}% + \tc@studentDismissrow{R}% + \tc@studentDismissrow{S}% + \tc@studentDismissrow{T}% + \tc@studentDismissrow{U}% + \tc@studentDismissrow{V}% + \tc@studentDismissrow{W}% + \tc@studentDismissrow{X}% + }%% + \end{longtable}%% + \end{center}%% + } %end of footnotesize% + + \vfill% + \pagebreak% +}% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% student check list row% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tccoord@studentcheckrow}{m}{%% + \@ifundefined{tc@student#1}{}{%% + \@ifundefined{tc@student#1FF}{%% + \@ifundefined{tc@student#1Dismiss}{%% + \multirow{4}{\tc@ReportTabA}{\csname tc@student#1\endcsname} % + & \tccoord@check{#1}{checkAA} & \tccoord@check{#1}{checkAB} & \tccoord@check{#1}{checkAC} & \tccoord@check{#1}{checkAD} & \tccoord@check{#1}{checkAE}\\*% + & \tccoord@check{#1}{checkBA} & \tccoord@check{#1}{checkBB} & \tccoord@check{#1}{checkBC} & \tccoord@check{#1}{checkBD} & \tccoord@check{#1}{checkBE}\\*% + & \tccoord@check{#1}{checkCA} & \tccoord@check{#1}{checkCB} & \tccoord@check{#1}{checkCC} & \tccoord@check{#1}{checkCD} & \tccoord@check{#1}{checkCE}\\*% + & \tccoord@check{#1}{checkDA} & \tccoord@check{#1}{checkDB} & \tccoord@check{#1}{checkDC} & \tccoord@check{#1}{checkDD} & \tccoord@check{#1}{checkDE}\\\hline%% + }{}%% + }{}%% + }%% +}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC check list% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tccoord@TCCchecklist}{}{% + \stepcounter{tc@studentcount}% + \tc@formtopbox{\tcdef@forms@formstitle}{Check List - \tcdef@coord@TCCperiod}% + {%% +% \footnotesize% + \scriptsize% + \setlength\LTleft{-10mm}% + \begin{center}% + \begin{longtable}{p{\tc@ReportTabA}lllll}% + \\\hline% + \endhead% + \tccoord@studentcheckrow{A}% + \tccoord@studentcheckrow{B}% + \tccoord@studentcheckrow{C}% + \tccoord@studentcheckrow{D}% + \tccoord@studentcheckrow{E}% + \tccoord@studentcheckrow{F}% + \tccoord@studentcheckrow{G}% + \tccoord@studentcheckrow{H}% +%% + \tccoord@studentcheckrow{I}% + \tccoord@studentcheckrow{J}% + \tccoord@studentcheckrow{K}% + \tccoord@studentcheckrow{L}% + \tccoord@studentcheckrow{M}% + \tccoord@studentcheckrow{N}% + \tccoord@studentcheckrow{O}% + \tccoord@studentcheckrow{P}% +%% + \tccoord@studentcheckrow{Q}% + \tccoord@studentcheckrow{R}% + \tccoord@studentcheckrow{S}% + \tccoord@studentcheckrow{T}% + \tccoord@studentcheckrow{U}% + \tccoord@studentcheckrow{V}% + \tccoord@studentcheckrow{W}% + \tccoord@studentcheckrow{X}% + \end{longtable}%% + \end{center}%% + } %end of footnotesize% + + \vfill% + \pagebreak% +}% +% +% +% +% +% +%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%% +% +% +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC referral letters :: approved/failed/FF% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tccoord@TCCcocertificateletter}{}{% tc@student\Alph{tc@studentcount}@#1 + \@ifundefined{tc@student\Alph{tc@studentcount}@coadvisor}{}{% + \tc@formtopbox{\tcdef@forms@formstitle}{\tcdef@coord@cocertificatetitle}% + + \noindent \tcdef@coord@cocertificateopenning% + \vfill% +\begin{center} +{\sc \csname tc@student\Alph{tc@studentcount}@coadvisor\endcsname} +\end{center} + +\vfill + +\tcdef@coord@cocertificatetext + + + + \vfill% + \begin{flushright}% + \tc@city, \tc@publday\ de \tc@publmonth\ de \tc@publyear .% + \vfill % + +% \vfill% + + $\overline{\text{\tcdef@core@TCCcoord}}$\\% + \tcdef@core@TCCcoordtitle% + \vfill + $\overline{\text{\tcdef@core@coursecoord}}$\\% + \tcdef@core@coursecoordtitle\\% + \tcdef@cover@course% + + \end{flushright}% + \vfill% + \pagebreak% + }{}% +}% +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% referral fate :: failed or approved as per student grade% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tccoord@referralfate}{m}{\ifthenelse{1 = \fpeval{#1 <= \tc@TCCgradeCN}}{\tcdef@coord@referralfailed}{\tcdef@coord@referralapproved}}% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC referral letters :: approved/failed/FF% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tccoord@TCCreferralletter}{}{% + \@ifundefined{tc@student\Alph{tc@studentcount}Dismiss}{% + \tc@formtopbox{\tcdef@forms@formstitle}{\tcdef@coord@TCCperiod}% + + \noindent\tcdef@coord@tccreferralopening% + \vfill% + + \@ifundefined{tc@student\Alph{tc@studentcount}FF}{% + \@ifundefined{tc@student\Alph{tc@studentcount}Exam}{% + \tccoord@studentgrade{\Alph{tc@studentcount}}% + \tcdef@coord@referralfatetext% + + \vfill% + + {\footnotesize% + \begin{center}% + \resizebox{\textwidth}{!}{% + \begin{tabular}{p{\tc@ReportTabA}@{\ }p{\tc@ReportTabB}@{\ }c@{\ }c@{\ }c@{\ }c@{\ }c}%\hline% + & \tcdef@coord@boardlabel & \tc@TCCpointAlabel & \tc@TCCpointBlabel & \tc@TCCpointClabel &% + \tcdef@coord@TCCgradesNlabel & \tcdef@coord@TCCgradesClabel\\\hline% + \tccoord@studentrow{\Alph{tc@studentcount}}% + \end{tabular}% + }% + \end{center}% + }% + }{% + \ifthenelse{\equal{\csname tc@student\Alph{tc@studentcount}Exam\endcsname}{D}}{% + \tcdef@coord@referralexamfailtext% + \vfill% + }{% + \tcdef@coord@referralexamapprovedtext% + \vfill% + }% + {%% + \footnotesize% + \begin{center}% + \begin{tabular}{p{\tc@ReportTabA}@{\ }p{\tc@ReportTabB}@{\ }c}%\hline% + & \tcdef@coord@boardlabel \\\hline% + \multirow{3}{\tc@ReportTabA}{\csname tc@student\Alph{tc@studentcount}\endcsname} % + &\csname tc@student\Alph{tc@studentcount}@examinerA\endcsname\\% + &\csname tc@student\Alph{tc@studentcount}@examinerB\endcsname\\% + &\csname tc@student\Alph{tc@studentcount}@examinerC\endcsname\\% + \multicolumn{2}{l}{\tcdef@forms@formsadvisorlabel : \csname tc@student\Alph{tc@studentcount}@advisor\endcsname} \\\hline% + \end{tabular}% + \end{center}% + }% + }% + }{% + \tcdef@coord@referralfailFF% + }% + + \vfill% + \begin{flushright}% + \tc@city, \tc@publday\ de \tc@publmonth\ de \tc@publyear .% + \vfill % + + \tcdef@core@TCCcoordtitle% + \vfill% + + $\overline{\text{\tcdef@core@TCCcoord}}$% + \end{flushright}% + \vfill% + \pagebreak% + }{}% +}% +% + +\NewDocumentCommand{\tccoord@calendarfill}{}{% +% + \@ifundefined{tc@tcccalendareventdateh}{\tcccalendareventdate{---}}{}% + \@ifundefined{tc@tcccalendareventdateh}{\tcccalendareventdate{---}}{}% + \@ifundefined{tc@tcccalendareventdateh}{\tcccalendareventdate{---}}{}% + \@ifundefined{tc@tcccalendareventdateh}{\tcccalendareventdate{---}}{}% + \@ifundefined{tc@tcccalendareventdateh}{\tcccalendareventdate{---}}{}% + \@ifundefined{tc@tcccalendareventdateh}{\tcccalendareventdate{---}}{}% + \@ifundefined{tc@tcccalendareventdateh}{\tcccalendareventdate{---}}{}% + \@ifundefined{tc@tcccalendareventdateh}{\tcccalendareventdate{---}}{}% +} + + +\NewDocumentCommand{\setstudentlist}{mm}{\tcgen@cdef{list#1}{#2}} + +\NewDocumentCommand{\tcreports}{O{}m}{%% + \setreports{#1} + \tccoord@calendarfill% + \iftcif@coord@calendar% + \tccoord@TCCcalendar% + \fi% + \@ifundefined{tcdef@coord@list#2}{}{% + \expandafter\expandafter\expandafter\forcsvlist\expandafter\expandafter\expandafter\tccoord@student@exec\expandafter\expandafter\expandafter{\csname tcdef@coord@list#2\endcsname} + } + \iftcif@coord@checklist% + \tccoord@TCCchecklist% + \fi% + \iftcif@coord@report% + \tccoord@TCCreport% + \fi% + \iftcif@coord@boards% + \tccoord@TCCboards% + \fi% + \iftcif@coord@studentlist% + \tccoord@studentlistform% + \fi% +}%% + +%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%% +% +\iftcif@english% +\input{ufrgscca-en-coord.def}% +\else% +\input{ufrgscca-ptBR-coord.def}% +\fi% + diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty new file mode 100644 index 0000000000..6d948f5f1b --- /dev/null +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-core.sty @@ -0,0 +1,279 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status “maintained”. +%% +%% The Current Maintainer of this work is Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\NeedsTeXFormat{LaTeX2e}[2022/06/01] +\def\tc@tmp@packname{ufrgscca-core} +\def\tc@tmp@altpackname{ufrgsccacore} +\def\tc@tmp@packdesc{UFRGS/CCA core commands} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} +\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% student commands% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% +\NewDocumentCommand{\tccore@articledefx}{mmmmm}{% + \expandafter\gdef\csname #1article\endcsname{#2}% + \expandafter\gdef\csname #1narticle\endcsname{#3}% + \expandafter\gdef\csname #1Article\endcsname{#4}% + \expandafter\gdef\csname #1Narticle\endcsname{#5}% +}% +\NewDocumentCommand{\tccore@articledefn}{m}{% + \tccore@articledefx{#1}{o(a)}{(a)}{O(A)}{(A)}% +}% +\NewDocumentCommand{\tccore@articledefm}{m}{% + \tccore@articledefx{#1}{o}{}{O}{}% +}% +\NewDocumentCommand{\tccore@articledeff}{m}{% + \tccore@articledefx{#1}{a}{a}{A}{A}% +}% +\NewDocumentCommand{\tccore@articledef}{mm}{% + \ifthenelse{\equal{#2}{m}}{%% + \tccore@articledefm{#1}%% + }{%% + \ifthenelse{\equal{#2}{f}}{%% + \tccore@articledeff{#1}%% + }{%% + \tccore@articledefn{#1}%% + }%% + }%% +}% + +% +% Exception:: those are only used at ufrgscca-forms, but, it make sense to be used at 'local.tex' +% +\cmdfactory{formlocal} +\cmdfactory{tccbrief,tcccoadvisorbrief,tccadvisorsreview} + + +\cmdfactory{TCCcoordtitle} +\NewDocumentCommand{\TCCcoord}{mO{}}{% + \tcgen@cdef{TCCcoord}{#1}% + \tccore@articledef{tcdef@core@TCCcoord}{#2}%% +} + +\cmdfactory{coursecoordtitle}% +\NewDocumentCommand{\coursecoord}{mO{}}{% + \tcgen@cdef{coursecoord}{#1}% + \tccore@articledef{tcdef@core@coursecoord}{#2}%% +} +% +% +\def\tccore@ref@advisor{tc@student\Alph{tc@studentcount}@advisor} +\def\tccore@ref@coadvisor{tc@student\Alph{tc@studentcount}@coadvisor} + +\NewDocumentCommand{\tccore@examiners}{m}{\def\tc@@examiners{tc@student\Alph{tc@studentcount}@#1}}% +\def\tccore@ref@examiner{\tc@@examiners} +\def\tccore@ref@student{tc@student\Alph{tc@studentcount}} +\def\tccore@ref@coursecoord{tcdef@core@coursecoord} +\def\tccore@ref@TCCcoord{tcdef@core@TCCcoord} + +\NewDocumentCommand{\tccore@@ref}{mm}{\expandafter\csname\csname tccore@ref@#1\endcsname#2\endcsname}% +% +% +\let\tc@org@author\author +% +\newcounter{tc@studentcount}% +\RenewDocumentCommand{\author}{mmO{}}{% + \stepcounter{tc@studentcount}% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}last\endcsname{#1}% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}first\endcsname{#2}% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}\endcsname{#2 #1}% + \tccore@articledef{tc@student\Alph{tc@studentcount}}{#3}%% +}% +% +\NewDocumentCommand{\authorinfo}{O{}mm}{% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}Nproc\endcsname{#1}% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}ID\endcsname{#2}% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}email\endcsname{#3}% +}% +\NewDocumentCommand{\student}{mmO{}}{\author{#1}{#2}[#3]}% +\NewDocumentCommand{\studentinfo}{O{}mm}{\authorinfo[#1]{#2}{#3}}% +%---------- +%---------- +% +\NewDocumentCommand{\tccore@ProfFields}{mmmmm}{%% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}@#1last\endcsname{#3}%% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}@#1first\endcsname{#4}%% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}@#1\endcsname{#2~#4 #3}%% + \tccore@articledef{tc@student\Alph{tc@studentcount}@#1}{#5}% + +}% +\NewDocumentCommand{\tccore@ProfInfo}{mmmmm}{%% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}@#1institution\endcsname{#2}%% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}@#1titleinfo\endcsname{#3}%% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}@#1email\endcsname{#4}%% + \expandafter\gdef\csname tc@student\Alph{tc@studentcount}@#1phone\endcsname{#5}%% +}% +% +% +% +\newcounter{tc@examinercount}[tc@studentcount]% +% +\NewDocumentCommand{\advisor}{O{}mmO{}}{%% + \tccore@ProfFields{advisor}{#1}{#2}{#3}{#4}%% +%%% the advisor is also the first examiner if not @nBoard% + \@ifundefined{tc@nBoard}{\examiner[#1]{#2}{#3}[#4]}{}%% +}% +\NewDocumentCommand{\advisorinfo}{mmmm}{%% + \tccore@ProfInfo{advisor}{#1}{#2}{#3}{#4}%% +%%% the advisor is also the first examiner if not @nBoard% + \@ifundefined{tc@nBoard}{\examinerinfo{#1}{#2}{#3}{#4}}{}%% +}% +% +\NewDocumentCommand{\coadvisor}{O{}mmO{}}{%% + \tccore@ProfFields{coadvisor}{#1}{#2}{#3}{#4}%% +}% +\NewDocumentCommand{\coadvisorinfo}{mmmm}{%% + \tccore@ProfInfo{coadvisor}{#1}{#2}{#3}{#4}%% +}% +% +% +\NewDocumentCommand{\examiner}{O{}mmO{}}{%% + \stepcounter{tc@examinercount}%% + \tccore@ProfFields{examiner\Alph{tc@examinercount}}{#1}{#2}{#3}{#4}%% +}% +\NewDocumentCommand{\examinerinfo}{mmmm}{%% + \tccore@ProfInfo{examiner\Alph{tc@examinercount}}{#1}{#2}{#3}{#4}%% +}% +% +\newcounter{tc@altexaminercount}[tc@studentcount]% +\NewDocumentCommand{\altexaminer}{O{}mmO{}}{%% + \stepcounter{tc@altexaminercount}%% + \tccore@ProfFields{altexaminer\Alph{tc@altexaminercount}}{#1}{#2}{#3}{#4}%% +}% +\NewDocumentCommand{\altexaminerinfo}{mmmm}{%% + \tccore@ProfInfo{altexaminer\Alph{tc@altexaminercount}}{#1}{#2}{#3}{#4}%% +}% +% +%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%% +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% assure that student/advisor/examiners... commands are defined with underlines (if not already defined)% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\tc@IDrule{30mm}% +\def\tc@emailrule{40mm}% +\def\tc@namerule{50mm}% +\def\tc@titlerule{40mm}% +\def\tc@phonerule{20mm}% +\def\tc@agreerule{25mm}% +\def\tc@daterule{15mm}% +%%% +%% +%%% +\NewDocumentCommand{\tccore@emptyfields}{}{% + + \@ifundefined{tc@studentA}{% + \student{\rule{\tc@namerule}{.1pt}}{}% + \studentinfo{\rule{\tc@IDrule}{.1pt}}{\rule{\tc@emailrule}{.1pt}}% + }{}% + \@ifundefined{tc@studentA@advisor}{% + \advisor{\rule{\tc@namerule}{.1pt}}{}% + \advisorinfo{}{\rule{\tc@titlerule}{.1pt}}{\rule{\tc@emailrule}{.1pt}}{\rule{\tc@phonerule}{.1pt}}% + }{}% +% + \@ifundefined{tc@studentA@examinerC}{% + \examiner{\rule{\tc@namerule}{.1pt}}{}% + \examinerinfo{}{\rule{\tc@titlerule}{.1pt}}{\rule{\tc@emailrule}{.1pt}}{\rule{\tc@phonerule}{.1pt}}% + }{}% + \@ifundefined{tc@studentA@examinerC}{% + \examiner{\rule{\tc@namerule}{.1pt}}{}% + \examinerinfo{}{\rule{\tc@titlerule}{.1pt}}{\rule{\tc@emailrule}{.1pt}}{\rule{\tc@phonerule}{.1pt}}% + }{}% + \@ifundefined{tc@studentA@examinerC}{% + \examiner{\rule{\tc@namerule}{.1pt}}{}% + \examinerinfo{}{\rule{\tc@titlerule}{.1pt}}{\rule{\tc@emailrule}{.1pt}}{\rule{\tc@phonerule}{.1pt}}% + }{}% + \@ifundefined{tc@studentA@altexaminerA}{% + \altexaminer{\rule{\tc@namerule}{.1pt}}{}% + \altexaminerinfo{}{\rule{\tc@titlerule}{.1pt}}{\rule{\tc@emailrule}{.1pt}}{\rule{\tc@phonerule}{.1pt}}% + }{}% + % + % add an \iftcif@forms !!! + % + \@ifundefined{tcdef@core@tccbrief}{% + \tccbrief{\tcdef@core@formsblanklines}% + }{}% + \@ifundefined{tcdef@core@tcccoadvisorbrief}{% + \tcccoadvisorbrief{\tcdef@core@formsblanklines}% + }{}% + \@ifundefined{tcdef@core@tccadvisorsreview}{% + \tccadvisorsreview{\tcdef@core@formsblanklines}% + }{}% +}% + +\NewDocumentCommand{\tccore@resetfields}{}{% + \setcounter{tc@studentcount}{0} + \csundef{tc@studentA} + \csundef{tc@studentA@advisor} + \csundef{tc@studentA@coadvisor} + \csundef{tc@studentA@examinerC} + \csundef{tc@studentA@altexaminerA} + \csundef{tcdef@core@tccbrief} + \csundef{tcdef@core@tcccoadvisorbrief} + \csundef{tcdef@core@tccadvisorsreview} +} \ No newline at end of file diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty new file mode 100644 index 0000000000..b0578df792 --- /dev/null +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-cover.sty @@ -0,0 +1,340 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status “maintained”. +%% +%% The Current Maintainer of this work is Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\NeedsTeXFormat{LaTeX2e}[2022/06/01] +\def\tc@tmp@packname{ufrgscca-cover} +\def\tc@tmp@altpackname{ufrgsccacover} +\def\tc@tmp@packdesc{UFRGS/CCA cover commands} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} +\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] + +\DeclareKeys[ufrgscca-cover]{ + report.usage = load, + report.if = tcif@report, + internship.usage = load, + internship.if = tcif@internship +} +\ProcessKeyOptions[ufrgscca-cover]\relax + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% student commands% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\cmdfactory{course} +\cmdfactory{courseacronym}% +\cmdfactory{graduationtitle} +\cmdfactory{university,universityacronym,universitydivision} +\cmdfactory{divisiongradcouncil}% +\cmdfactory{department,classcode,classname,subject}% +\cmdfactory{secretaryacronym,secdivisionacronym}% +\cmdfactory{advisorname,coadvisorname} +\cmdfactory{examinername}% +\cmdfactory{reportspecificinfo,approvalspecificinfo}% +\cmdfactory{advisorwidth} +\cmdfactory{profname,coprofname}% +% +\advisorwidth{0.55\textwidth}% +% +\NewDocumentCommand{\class}{mm}{\classcode{#1}\classname{#2}}% +% + + +%%%%%%%%%%%%%%%%%%%%%%% +%%%% +%%% cover pages and related macros% +%%%% +%%%%%%%%%%%%%%%%%%%%%%% +\newlength{\tc@formwinvoffset}% +\setlength{\tc@formwinvoffset}{24mm}% +\NewDocumentCommand\tc@formtopbox{O{}+m+m}{%% + \begin{center}%% + \noindent%% + \parbox[t]{\textwidth}{%% + \centering%% + \vbox to \tc@formwinvoffset{%% + \tccover@covertopinfo%% + {\sc #2}% + }%% + }% + + {\bf #3}\@ifundefined{#1}{}{\footnote[1]{\csname #1\endcsname}}%% + \end{center}%% +}% + + +% +\NewDocumentCommand{\tccover@covertopinfo}{}{%% + \@ifundefined{tcdef@cover@university}{}{\MakeUppercase{\tcdef@cover@university}\\}% + \@ifundefined{tcdef@cover@universitydivision}{}{\MakeUppercase{\tcdef@cover@universitydivision}\\}% + \@ifundefined{tcdef@cover@course}{}{\MakeUppercase{\tcdef@cover@course}\\}% + \@ifundefined{tcdef@cover@department}{}{\MakeUppercase{\tcdef@cover@department}\\}%% + \@ifundefined{tcdef@cover@classname}{}{\MakeUppercase{\tcdef@cover@classcode\ --\ \tcdef@cover@classname}\\}% + \@ifundefined{tcdef@cover@subject}{}{\MakeUppercase{\tcdef@cover@subject}}% +}% + + +\NewDocumentCommand{\tccover@coveradvisorinfo}{}{%% + \@ifundefined{tc@studentA@advisor}{}{\vfill{\scshape\tcdef@cover@advisorname}:\\\null\hfill\tc@studentA@advisor}% + \@ifundefined{tc@studentA@coadvisor}{}{\\[6ex]{\scshape\tcdef@core@coadvisorname}:\\\null\hfill\tc@studentA@coadvisor}% +}% +% +\NewDocumentCommand{\tccover@reportadvisorinfo}{}{%% + \@ifundefined{tc@studentA@advisor}{}{\vfill{\scshape\iftcif@internship\tcdef@cover@advisorname\else\tcdef@cover@profname\fi}:\\\null\hfill\tc@studentA@advisor}% + \@ifundefined{tc@studentA@coadvisor}{}{\\[6ex]{\scshape\iftcif@internship\tcdef@core@coadvisorname\else\tcdef@cover@coprofname\fi}:\\\null\hfill\tc@studentA@coadvisor}% +}% +% + +%%%%%%%%%%%%%%%%%%% +\let\tc@org@maketitle\maketitle +\RenewDocumentCommand{\maketitle}{}{\coverpages}% + +\NewDocumentCommand{\coverpages}{}{%% + \thecoverpage%that´s the first page% + \iftcif@report + \else + \thetitlepage%that´s the second page (for tcc)% + \theapprovalpage%that´s the third page (for tcc)% + \fi +}% +% + +%%%%%%%%% +%%% +%% 1st cover page% +%%% +%%%%%%%%% +%% +\newlength{\tc@coverwinwidth}\setlength{\tc@coverwinwidth}{95mm}%% +\newlength{\tc@coverwinheight}\setlength{\tc@coverwinheight}{64mm}%% +\newlength{\tc@coverwinvoffset}\setlength{\tc@coverwinvoffset}{112mm}%% +\NewDocumentCommand{\location}{mm}{%% + \gdef\tc@city{#1}%% + \gdef\tc@state{#2}%% +}%% + + +\NewDocumentCommand{\thecoverpage}{}{%% + \begin{titlepage}% + \noindent\tc@covertopbox% + \vfill% + \iftcif@report{%% + \@ifundefined{tc@studentA@advisor}{}{%% + \hspace*{\fill}\parbox[b]{\tcdef@cover@advisorwidth}{\tccover@reportadvisorinfo}% + \vfill% + }%% + }%% + \else\fi + \centerline{\tc@city}% + \centerline{\tc@date}% + \end{titlepage}%% + \tc@pagebreak +}% +% +% +%%%%%%%%% +%%% +%% 2nd cover page (title page)% +%%% +%%%%%%%%% +\NewDocumentCommand{\thetitlepage}{}{%% + \begin{titlepage}% + \noindent\tc@covertopbox% + \vfill% + \@ifundefined{tcdef@cover@reportspecificinfo}{}{% + \hspace*{\fill}\makebox[.55\textwidth][l]{%% + \parbox[b]{8.5cm}{\tcdef@cover@reportspecificinfo}%% + }% + \vfill% + }% + \@ifundefined{tc@studentA@advisor}{}{% + \hspace*{\fill}\parbox[b]{\tcdef@cover@advisorwidth}{%% + \tccover@coveradvisorinfo% + }% + \vfill% + }% + \centerline{\tc@city}% + \centerline{\tc@date}% + \end{titlepage}% + \tc@pagebreak +}% +% +% +% +\NewDocumentCommand{\tccover@studentdesc}{m}{\@ifundefined{#1}{}{\MakeUppercase{\textbf{\csname #1\endcsname\ - \csname #1ID\endcsname}}\\}} +% + + +\NewDocumentCommand\tc@covertopbox{}{%% + \parbox[t]{\textwidth}{%% + \centering%% + \vbox to \tc@coverwinvoffset{%% + \tccover@covertopinfo\vfill\tc@winbox% + }% + }% +}% + + + \NewDocumentCommand\tc@winbox{}{%% + %\fbox{% + \parbox[b]{\tc@coverwinwidth}{%% + \centering\vbox to \tc@coverwinheight{%% + \vspace*{\fill}% + \iftcif@report% + \tccover@studentdesc{tc@studentA}% + \tccover@studentdesc{tc@studentB}% + \tccover@studentdesc{tc@studentC}% + \tccover@studentdesc{tc@studentD}%% + \else% + \tccover@studentdesc{tc@studentA}%% + \fi% + \vspace{\stretch{4}}% + {\large\MakeUppercase{\textbf{\@title}}\par}% + \vfill% + }%% + %}%% + }%% + }% + + + +% +%%%%%%%%% +%%% +%% 3rd cover page (approval page)% +%%% +%%%%%%%%% +\NewDocumentCommand{\theapprovalpage}{}{%% + \begin{center}% + \noindent\tc@covertopbox% + \vfill% + \@ifundefined{tcdef@cover@approvalspecificinfo}{}{% + \hspace*{\fill}\makebox[.55\textwidth][l]{%% + \parbox[b]{8.5cm}{\tcdef@cover@approvalspecificinfo}%% + }% + \vfill% + }% + \@ifundefined{tc@studentA@advisor}{}{% + \hspace*{\fill}\parbox[b]{.70\textwidth}{%% + \tccover@approvalpageadvisorinfo% + }% + \vfill% + }% + \@ifundefined{tc@studentA@examinerA}{}{% + \hspace*{\fill}\parbox[b]{1.0\textwidth}{\tcdef@cover@examinername:}% + \vfill% + \hspace*{\fill}\parbox[b]{.90\textwidth}{%% + \tccover@approvalpageexaminerinfo% + }% + \vfill% + }% + \@ifundefined{tcdef@core@coursecoord}{}{% + \hspace*{\fill}\parbox[b]{.70\textwidth}{%% + \tccover@approvalpagecoordinfo% + }% + \vfill% + }% + \vfill% + \hfill\tc@city, \tc@date + \end{center}% + \tc@pagebreak +}% +% +\NewDocumentCommand{\tccover@approvalpageadvisorinfo}{}{%% + \@ifundefined{tc@studentA@advisor}{}{%% + \vfill% + \tcdef@cover@advisorname: \hrulefill\\% + \tc@studentA@advisor, \tc@studentA@advisorinstitution\\% + \tc@studentA@advisortitleinfo % + }% +}% +\NewDocumentCommand{\tccover@@aprovalexaminerinfo}{m}{ + \@ifundefined{#1}{}{%% + \csname #1\endcsname, \csname #1institution\endcsname\\% + \csname #1titleinfo\endcsname\\% + }% +}% +\NewDocumentCommand{\tccover@approvalpageexaminerinfo}{}{%% + \vfill% + \tccover@@aprovalexaminerinfo{tc@studentA@examinerA}% + + \tccover@@aprovalexaminerinfo{tc@studentA@examinerB}% + + \tccover@@aprovalexaminerinfo{tc@studentA@examinerC}% + + \tccover@@aprovalexaminerinfo{tc@studentA@examinerD}% + + \tccover@@aprovalexaminerinfo{tc@studentA@examinerE}% +}% +% + + +\NewDocumentCommand{\tccover@approvalpagecoordinfo}{}{%% + \@ifundefined{tcdef@core@coursecoord}{}{%% + \vfill% + \hrulefill\\% + \tcdef@core@coursecoord\\% + \tcdef@core@coursecoordtitle\\% + \tcdef@cover@course% + }% +}% +% + + + diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr-graph.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr-graph.sty new file mode 100644 index 0000000000..3de86ce446 --- /dev/null +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr-graph.sty @@ -0,0 +1,127 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status “maintained”. +%% +%% The Current Maintainer of this work is Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\NeedsTeXFormat{LaTeX2e}[2022/06/01] +\def\tc@tmp@packname{ufrgscca-curr-graph} +\def\tc@tmp@altpackname{tccurrgraph} +\def\tc@tmp@packdesc{UFRGS/CCA graph curricula commands} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0alpha} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} +\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] + + +\RequirePackage{ufrgscca-curr} + + +%%%%%%%%%%% +%%%%%%%%%%% +%%%%%%%%%%% + +\NewDocumentEnvironment{tikzGraphSem}{O{4.2:2.1}D<>{11.5:-18.5}}{% + \StrCut{#1}{:}{\gr@dX}{\gr@dY} + \StrCut{#2}{:}{\gr@xX}{\gr@yY} + \def\gr@Xa{0}\def\gr@Xb{\gr@xX*\gr@dX} + \def\gr@Ya{0}\def\gr@Yb{\gr@yY*\gr@dY} + \begin{tikzpicture}[% + disc/.style={% + ellipse split, double, draw, line width=2pt,% + every text node part/.style={font=\small\bfseries},% + every lower node part/.style={font=\large\bfseries,color=blue}},% + dep/.style={->,dotted,line width=3pt}]% + \begin{scope}\clip(\gr@Xa,\gr@Ya) -- (\gr@Xa,\gr@Yb) -- (\gr@Xb,\gr@Yb) -- (\gr@Xb,\gr@Ya);% + \filldraw[color=red](5.5*\gr@dX,-0.25*\gr@dY)node{\Huge\textbf{\GraphTitle}};% +}{% + \end{scope}% + \end{tikzpicture}% +} + +\NewDocumentCommand\GraphSem{O{ob}m}{% + \LstClass[\GraphClass]{#2}% + \draw (\csname gr@etidx:\csname gr@et:\gr@sem.idx\endcsname.pos\endcsname*\gr@dX-0.5*\gr@dX,-\gr@dY) node[disc](Et. #2){Etapa #2 \nodepart{lower} \arabic{gr@cred#1},#1};% +} + +\NewDocumentCommand\GraphClass{m}{% + \edef\gr@topic{\csname gr@class:#1.topic\endcsname}% + \edef\gr@color{\csname gr@topic:\gr@topic.color\endcsname}% + \draw[\gr@color] (\csname gr@etidx:\csname gr@et:\gr@sem.idx\endcsname.pos\endcsname*\gr@dX-0.5*\gr@dX,\csname gr@class:#1.pos\endcsname*\gr@dY-1.25*\gr@dY) node[disc](#1){#1 \nodepart{lower} \csname gr@class:#1.cred\endcsname,\csname gr@class:#1.typ\endcsname};% + \LstDep[\GraphDep]{#1}% +} + +\NewDocumentCommand\GraphDep{m}{% + \edef\gr@topic{\csname gr@class:\gr@disc.dep\gr@depSeq:#1.topic\endcsname}% + \xdef\gr@DepColor{\csname gr@topic:\gr@topic.color\endcsname}% + %\xdef\gr@DepColor{\csname gr@class:\gr@disc.dep\gr@depSeq:#1.topic\endcsname}% + \def\gr@angOUT{\gr@ANG} \def\gr@angIN{180-\gr@ANG}% + \xdef\gr@deppos{\csname gr@class:\gr@disc.dep\gr@depSeq:#1.pos\endcsname}% + \def\gr@depcut{\StrCut{\gr@deppos}{:}{\gr@angOUT}{\gr@ANG}}% + \gr@case@angle{\gr@deppos}% + \path[dep,\gr@DepColor] (#1)edge[out=\gr@angOUT,in=\gr@angIN] (\gr@disc);% +} + +\def\gr@Z{0} \def\gr@A{30} \def\gr@B{60} \def\gr@C{80} + +\mkswitch[\gr@depcut]\gr@case@angle +\addcase\gr@case@angle{}{\def\gr@ANG{0}} +\addcase\gr@case@angle{A}{\def\gr@ANG{\gr@A}} +\addcase\gr@case@angle{B}{\def\gr@ANG{\gr@B}} +\addcase\gr@case@angle{C}{\def\gr@ANG{\gr@C}} +\addcase\gr@case@angle{-A}{\def\gr@ANG{-\gr@A}} +\addcase\gr@case@angle{-B}{\def\gr@ANG{-\gr@B}} +\addcase\gr@case@angle{-C}{\def\gr@ANG{-\gr@C}} + + diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr-tab.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr-tab.sty new file mode 100644 index 0000000000..1852c7c14f --- /dev/null +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr-tab.sty @@ -0,0 +1,166 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status “maintained”. +%% +%% The Current Maintainer of this work is Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\NeedsTeXFormat{LaTeX2e}[2022/06/01] +\def\tc@tmp@packname{ufrgscca-curr-tab} +\def\tc@tmp@altpackname{ufrgsccacurrtab} +\def\tc@tmp@packdesc{UFRGS/CCA curricula tabular commands} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0alpha} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} +\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] + +\RequirePackage{longtable} +\RequirePackage{ufrgscca-curr} + +\NewDocumentCommand\TabClass{m}{% + & #1 & \csname gr@class:#1.cred\endcsname & \csname gr@class:#1.typ\endcsname & \multicolumn{2}{J{11cm}}{\csname gr@class:#1.nam\endcsname}\\*% + \edef\gr@disc{#1}% + \ifcsdef{gr@class:#1.depA}{% + & & & & % + & \def\gr@tab{\ }% + \LstDep[\TabDepX]{#1}\\*% + }{}% + \ifcsdef{gr@class:#1.depB}{% + & & & & OU\\*% + & & & & % + & \def\gr@tab{\ }% + \LstDep[\TabDepX]{#1}\\*% + }{}% + \ifcsdef{gr@class:#1.depC}{% + & & & & OU\\*% + & & & & % + & \def\gr@tab{\ }% + \LstDep[\TabDepX]{#1}\\*% + }{}% + \ifshowind{\ifcsundef{gr@class:#1.remark}% + {}{& & & & \multicolumn{2}{l}{{\larger[2]{\color{red} \csname gr@class:#1.remark\endcsname}}}\\*}}{}% +\xdef\gr@topic{\csname gr@class:#1.topic\endcsname}% +& & & & \multicolumn{2}{J{11cm}}{{\sc\color{\csname gr@topic:\gr@topic.color\endcsname} \csname gr@topic:\gr@topic.txt\endcsname}}\\* +& & & & \multicolumn{2}{l}{{\smaller{\sc Súmula: }}}\\*% +& & & & & {{\smaller\csname gr@class:#1.desc\endcsname}}\\ % +\ifcsundef{gr@class:#1.bibA}{}{& & & & \multicolumn{2}{l}{{\smaller{\sc Bibliografia Básica Essencial: }}}\\* & & & & &{\smaller \textopenbullet\ \csname gr@class:#1.bibA\endcsname}\\*}% +\ifcsundef{gr@class:#1.bibB}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.bibB\endcsname}\\}% +\ifcsundef{gr@class:#1.bibC}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.bibC\endcsname}\\}% +\ifcsundef{gr@class:#1.bibD}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.bibD\endcsname}\\}% +\ifcsundef{gr@class:#1.bibE}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.bibE\endcsname}\\}% +\ifcsundef{gr@class:#1.bibF}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.bibF\endcsname}\\}% +\ifcsundef{gr@class:#1.bibG}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.bibG\endcsname}\\}% +\ifcsundef{gr@class:#1.bibH}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.bibH\endcsname}\\}% +\ifcsundef{gr@class:#1.bibI}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.bibI\endcsname}\\}% +\ifcsundef{gr@class:#1.bibJ}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.bibJ\endcsname}\\}% +\ifcsundef{gr@class:#1.basicA}{}{& & & & \multicolumn{2}{l}{{\smaller{\sc Bibliografia Básica: }}}\\* & & & & &{\smaller \textopenbullet\ \csname gr@class:#1.basicA\endcsname}\\*}% +\ifcsundef{gr@class:#1.basicB}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.basicB\endcsname}\\}% +\ifcsundef{gr@class:#1.basicC}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.basicC\endcsname}\\}% +\ifcsundef{gr@class:#1.basicD}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.basicD\endcsname}\\}% +\ifcsundef{gr@class:#1.basicE}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.basicE\endcsname}\\}% +\ifcsundef{gr@class:#1.basicF}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.basicF\endcsname}\\}% +\ifcsundef{gr@class:#1.basicG}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.basicG\endcsname}\\}% +\ifcsundef{gr@class:#1.basicH}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.basicH\endcsname}\\}% +\ifcsundef{gr@class:#1.basicI}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.basicI\endcsname}\\}% +\ifcsundef{gr@class:#1.basicJ}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.basicJ\endcsname}\\}% +\ifcsundef{gr@class:#1.compA}{}{& & & & \multicolumn{2}{l}{{\smaller{\sc Bibliografia Complementar: }}}\\* & & & & &{\smaller \textopenbullet\ \csname gr@class:#1.compA\endcsname}\\*}% +\ifcsundef{gr@class:#1.compB}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.compB\endcsname}\\}% +\ifcsundef{gr@class:#1.compC}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.compC\endcsname}\\}% +\ifcsundef{gr@class:#1.compD}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.compD\endcsname}\\}% +\ifcsundef{gr@class:#1.compE}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.compE\endcsname}\\}% +\ifcsundef{gr@class:#1.compF}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.compF\endcsname}\\}% +\ifcsundef{gr@class:#1.compG}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.compG\endcsname}\\}% +\ifcsundef{gr@class:#1.compH}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.compH\endcsname}\\}% +\ifcsundef{gr@class:#1.compI}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.compI\endcsname}\\}% +\ifcsundef{gr@class:#1.compJ}{}{& & & & &{\smaller \textopenbullet\ \csname gr@class:#1.compJ\endcsname}\\}% + \\[-1.5ex]% +} + + +%%%gr@class:\gr@disc.bib\Alph{gr@class:\gr@disc.bibcnt} + +\NewDocumentCommand\TabDepX{m}{% + { + \ifshowind{\ifcsundef{gr@class:#1.remark}{}{\color{red}\bfseries}}{} + \gr@tab\ #1 (\csname gr@class:#1.et\endcsname) % + } + \def\gr@tab{E}% +} + +\NewDocumentCommand\TabDep{m}{% + & & & & #1 (\csname gr@class:#1.et\endcsname)\\[-1pt]% +} + +\NewDocumentCommand\TabEtp{D<>{ob}O{\notoc\section}m}{% + #2{Etapa #3}% + \begin{longtable}{l@{\,}l@{\ }c@{\ }c@{\ }J{5mm}@{}J{10.7cm}}% + \LstClass[\TabClass]{#3}% +% & \textbf{Total} & \textbf{\arabic{gr@cred#1}} & \textbf{#1}\\% + \end{longtable}% +} + +\NewDocumentCommand\@TabTopic{m}{% + #1 & \csname gr@class:#1.cred\endcsname & \csname gr@class:#1.typ\endcsname & \csname gr@class:#1.nam\endcsname & (\csname gr@class:#1.et\endcsname)\\% +} + +\NewDocumentCommand\TabTopic{O{ob}m}{% + +\noindent\csname gr@topic:#2.txt\endcsname +\@ifundefined{gr@topic:#2}{\\\textbf{--No Classes Associated--}}{ + \begin{longtable}{l@{\,}l@{\ }c@{\ }J{11.2cm}@{\,}l}\smaller% + \LstTopic[\@TabTopic]{#2}% + \end{longtable}% + } +} + + diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty new file mode 100644 index 0000000000..4b365ce28b --- /dev/null +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-curr.sty @@ -0,0 +1,181 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status “maintained”. +%% +%% The Current Maintainer of this work is Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\NeedsTeXFormat{LaTeX2e}[2022/06/01] +\def\tc@tmp@packname{ufrgscca-curr} +\def\tc@tmp@altpackname{ufrgsccacurr} +\def\tc@tmp@packdesc{UFRGS/CCA curricula commands} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0beta} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} +\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] + + +\newcounter{gr@credob} +\newcounter{gr@credel} +\newcounter{gr@credalt} +\NewDocumentCommand{\gr@setcred}{}{\setcounter{gr@credob}{0}\setcounter{gr@credel}{0}\setcounter{gr@credalt}{0}} +\NewDocumentCommand{\gr@addclasscred}{m}{\addtocounter{gr@cred\csname gr@class:#1.typ\endcsname}{\csname gr@class:#1.cred\endcsname}} + +\let\@ex\expandafter + +%%%%%%%%%%% +%%%%%%%%%%% +%%%%%%%%%%% + +\NewDocumentCommand\topicdef{O{black}mm}{ + \expandafter\gdef\csname gr@topic:#2.txt\endcsname{#3}% + \expandafter\gdef\csname gr@topic:#2.color\endcsname{#1}% +} + +\NewDocumentCommand\defaulttopic{m}{\xdef\gr@defaulttopic{#1}} + +%%%%%%%%%%% +%%%%%%%%%%% +%%%%%%%%%%% + +\NewDocumentCommand\semdef{O{#3}D<>{#3}m}{% + \expandafter\gdef\csname gr@et:#3.idx\endcsname{x#3}% + \expandafter\gdef\csname gr@etidx:x#3.cod\endcsname{#2}% + \expandafter\gdef\csname gr@etidx:x#3.nam\endcsname{#3}% + \expandafter\gdef\csname gr@etidx:x#3.pos\endcsname{#1}% + \gdef\gr@sem{#3}% + \gdef\gr@semcod{#2}% +} +%%%%%%%%%%% +%%%%%%%%%%% +%%%%%%%%%%% + +\NewDocumentCommand\classdef{O{\gr@defaulttopic}D<>{}mmmmm}{% + \@ifundefined{gr@topic:#1.txt}% + {\expandafter\gdef\csname gr@class:#3.topic\endcsname{\gr@defaulttopic}}% + {\expandafter\gdef\csname gr@class:#3.topic\endcsname{#1}}% + \expandafter\gdef\csname gr@class:#3.pos\endcsname{#2}% + \expandafter\gdef\csname gr@class:#3.cred\endcsname{#4}% + \expandafter\gdef\csname gr@class:#3.typ\endcsname{#5}% + \expandafter\gdef\csname gr@class:#3.nam\endcsname{#6}% + \expandafter\gdef\csname gr@class:#3.desc\endcsname{#7}% + \expandafter\xdef\csname gr@class:#3.et\endcsname{\gr@semcod}% + \gdef\gr@disc{#3} + \newcounter{gr@class:#3.bibcnt} + \newcounter{gr@class:#3.basiccnt} + \newcounter{gr@class:#3.compcnt} + \newcounter{gr@class:#3.dep} + \stepcounter{gr@class:#3.dep} + \ifcsundef{gr@et:\gr@sem}{\csgdef{gr@et:\gr@sem}{#3}}{\csgappto{gr@et:\gr@sem}{,#3}} + \ifcsundef{gr@topic:#1}{\csgdef{gr@topic:#1}{#3}}{\csgappto{gr@topic:#1}{,#3}} +} +\NewDocumentCommand{\setclass}{m}{\ifcsundef{gr@class:#1.et}{{\color{red} #1 undef\\}}{\gdef\gr@disc{#1}}} + +\NewDocumentCommand{\classremark}{m}{% + \expandafter\gdef\csname gr@class:\gr@disc.remark\endcsname{#1}% +} + +%%%%%%%%%%% +%%%%%%%%%%% +%%%%%%%%%%% + +\NewDocumentCommand\depdef{O{\csname gr@class:\gr@disc.topic\endcsname}D<>{}m}{% + \ifcsundef{gr@class:\gr@disc.dep\Alph{gr@class:\gr@disc.dep}}{\csgdef{gr@class:\gr@disc.dep\Alph{gr@class:\gr@disc.dep}}{#3}}{\csgappto{gr@class:\gr@disc.dep\Alph{gr@class:\gr@disc.dep}}{,#3}} + \expandafter\gdef\csname gr@class:\gr@disc.dep\Alph{gr@class:\gr@disc.dep}:#3.topic\endcsname{#1}% + \expandafter\gdef\csname gr@class:\gr@disc.dep\Alph{gr@class:\gr@disc.dep}:#3.pos\endcsname{#2}% +} + +%%%%%%%%%%% +%%%%%%%%%%% +%%%%%%%%%%% + +\NewDocumentCommand\bibdef{O{bib}m}{% + \stepcounter{gr@class:\gr@disc.#1cnt}% + \expandafter\gdef\csname gr@class:\gr@disc.#1\Alph{gr@class:\gr@disc.#1cnt}\endcsname{#2}% +} + + +%%%%%%%%%%% +%%%%%%%%%%% +%%%%%%%%%%% + + +\NewDocumentCommand\altdef{}{% + \stepcounter{gr@class:\gr@disc.dep}% +} + +%%%%%%%%%%% +%%%%%%%%%%% +%%%%%%%%%%% + +\NewDocumentCommand\goo{m}{} +\NewDocumentCommand\gooble{m}{} + +\NewDocumentCommand\LstDep{O{\goo}D<>{A}m}{% + \xdef\gr@disc{#3}% + \xdef\gr@depSeq{#2}% + \ifcsdef{gr@class:#3.dep#2}{\@ex\@ex\@ex\forcsvlist\@ex\@ex\@ex#1\@ex\@ex\@ex{\csname gr@class:#3.dep#2\endcsname}}{} +} + +\NewDocumentCommand\LstClass{O{\gooble}m}{% +\xdef\gr@sem{#2}% +\gr@setcred% +\@ex\@ex\@ex\forcsvlist\@ex\@ex\@ex\gr@addclasscred\@ex\@ex\@ex{\csname gr@et:#2\endcsname}% +\@ex\@ex\@ex\forcsvlist\@ex\@ex\@ex#1\@ex\@ex\@ex{\csname gr@et:#2\endcsname}% +} + +\NewDocumentCommand\LstTopic{O{\goo}m}{% +\xdef\gr@topic{#2}% +\@ex\@ex\@ex\forcsvlist\@ex\@ex\@ex#1\@ex\@ex\@ex{\csname gr@topic:#2\endcsname}% +} + diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-base.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-base.def new file mode 100644 index 0000000000..3b9cbc0ce7 --- /dev/null +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-base.def @@ -0,0 +1,97 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status “maintained”. +%% +%% The Current Maintainer of this work is Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\makeatletter + +\def\tc@tmp@packname{ufrgscca-en-base} +\def\tc@tmp@altpackname{ufrgsccaenbase} +\def\tc@tmp@packdesc{UFRGS/CCA English base defs} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} + +%%%%% +%% +%% those are loaded, on the fly, when selecting, or switching, to english (\@namedef{captionsenglish} vis-à-viz \begin{otherlanguage}{}) +%% +%%%%% + +% \def\bibname{References}% deprecated by biber +% \def\refname{\bibname} + \def\abstractname{Abstract}% + \def\englishabstractname{Abstract}% + \def\contentsname{Contents}% + \def\listfigurename{List of Figures}% + \def\listtablename{List of Tables}% + \def\figurename{Figure}% + \def\tablename{Table}% + \def\byname{by}% + \def\keywordsname{Keywords}% + + \def\listabbrvname{List of Abbreviations}% + \def\listsymbolname{List of Symbols}% + + \def\listingname{Listing} + \def\listlistingname{List of Listings} + + \def\defappendixname{Appendix}% + \def\defappendixpagename{Appendices}% + \def\defannexname{Annex}% + \def\defannexpagename{Annexe}% + \def\sourcename{Source:} + \def\notename{Note}%% + diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-coord.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-coord.def new file mode 100644 index 0000000000..3143da0b31 --- /dev/null +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-coord.def @@ -0,0 +1,129 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status “maintained”. +%% +%% The Current Maintainer of this work is Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\makeatletter + +\def\tc@tmp@packname{ufrgscca-en-coord} +\def\tc@tmp@altpackname{ufrgsccaencoord} +\def\tc@tmp@packdesc{UFRGS/CCA English coord defs} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} + + +\calendartitle{Calendário – \tcdef@coord@TCCperiod} + +\tcccalendarhead{Data/Período}{Semana Letiva}{Evento} +\tcccalendarevent{01}{Apresentação da disciplina. Informações gerais. Reunião presencial com início às 18:30h, no Salão de Eventos do DELET.\newline {\bf Presença obrigatória.}} +\tcccalendarevent{02}{Requerimento de matrícula. O(A) aluno(a) deve preencher o \emph{Formulário de Requerimento de Matrícula}, já com o resumo do trabalho, e encaminhá-lo ao setor de protocolos da UFRGS para abertura de processo. Posteriormente, o número do processo deve ser encaminhado por e-mail para \tccore@@ref{TCCcoord}{article} coordenador\tccore@@ref{TCCcoord}{narticle} da atividade. \newline{\bf Obs.~1}} +%\tcccalendarevent{03}{Entrega do \emph{Formulário de Inscrição}, juntamente com o resumo do trabalho, no \tcdef@cover@secdivisionacronym .} +\tcccalendarevent{09}{Encontro presencial: Como redigir um TCC, melhores práticas. Início às 18:30h, no Salão de Eventos do DELET.}% \newline {\bf Presença obrigatória.}} +\tcccalendarevent{09}{Entrega VIA MOODLE do \emph{Relatório Parcial}, juntamente com o \emph{Formulário de Aprovação do Relatório Parcial e Banca Examinadora} assinado pelo orientador. \newline{\bf Obs.~2}} +\tcccalendarevent{15}{Entrega de uma cópia impressa (ou eletrônica) do Trabalho de Conclusão a cada membro da banca, juntamente com os \emph{Formulários de Avaliação} e \emph{Formulários de correções} do trabalho. Entrega VIA MOODLE de uma cópia eletrônica do trabalho juntamente com o \emph{Formulário de Aprovação para Apresentação} e os recibos de recebimento assinados e datados pelos membros das bancas.} +\tcccalendarevent{16}{Encontro presencial: Como apresentar um TCC, melhores técnicas. Início às 18:30h, no Salão de Eventos do DELET.}% \newline {\bf Presença obrigatória.}} +\tcccalendarevent{17}{Apresentações dos Trabalhos de Conclusão de Curso. \newline{\bf Obs.~3}} +\tcccalendarevent{17}{Entrega VIA MOODLE dos \emph{Formulários de correções} dos membros da banca.} +\tcccalendarevent{18}{Entrega VIA MOODLE da versão final corrigida do trabalho e o \emph{Formulário de Aprovação das Correções}. Entrega do formulário de autorização para publicação (biblioteca) assinado na secretaria do DELAE. \newline{\bf Obs.~4}} +\tcccalendarevent{19}{Para os TCCs em RECUPERAÇÃO, entrega VIA MOODLE da versão final corrigida do trabalho e o \emph{Formulário de Aprovação das Correções}. Entrega do formulário de autorização para publicação (biblioteca) assinado na secretaria do DELAE. \newline{\bf Obs.~5}} + + +\tcccalendardesc{\begin{description} +\item[Obs. 1]: Caso o aluno(a) já tenha um processo aberto de TCC, reusar o mesmo apenas anexando o novo requerimento de matrícula, caso necessário. +\item[Obs. 2]: O relatório deve conter as declarações de concordância em participar da banca da parte dos professores convidados. +\item[Obs. 3]: As bancas serão marcadas após a entrega do relatório parcial, de acordo com a disponibilidade dos professores convidados. +\item[Obs. 4]: O \emph{Formulário de Aprovação das Correções} deve estar assinado pelo(a) orientador(a). Para relatórios em que o campo “Revisarei o trabalho depois de corrigido” tiver sido assinalado por algum membro da banca, a assinatura do(a) mesmo(a) também deverá constar no \emph{Formulário de Aprovação das Correções}. +\item[Obs. 5]: Trabalho em RECUPERAÇÃO é aquele cuja nota final quando da defesa é insuficiente para aprovação OU aquele em que o campo “Reescrever tudo” do formulário de correções foi marcado por algum membro da banca. Neste caso, o \emph{Formulário de Aprovação das Correções} deve estar assinado tanto pelo(a) orientador(a) como pelo(s) membro(s) da banca designado(s) para reavaliar o trabalho, incluindo obrigatoriamente aqueles que tiverem marcado o campo “Revisarei o trabalho depois de corrigido”.\\\hrule +\item[IMPORTANTE]: O(A) aluno(a) estará {\bf REPROVADO(A)} \emph{se falhar na entrega de qualquer um dos documentos aqui citados dentro dos prazos estipulados}. +\end{description}} + + +\studentlistformtitle{Lista de presença, \tcdef@coord@studentlistactivity, dia \tcdef@coord@studentlistdate} +\studentlistactivity{apresentação da atividade de TCC} +\studentlistdate{\number\day/\number\month} + +\tccreporttitle{Relatório parcial/final} +\tccreportopening{Para registro} +\tccreportdesc{Relatório parcial/final referente aos alunos matriculados na atividade de ensino de \tcdef@forms@formstitle\ semestre \tcdef@coord@TCCperiod .} + +\tccreportabsents{Desistentes com conceito (segundo semestre)} +\tccreportdismiss{Desistentes sem conceito (primeiro semestre)} +\tccreferralopening{Ao\\ \tcdef@cover@secretaryacronym\ da \tcdef@cover@universitydivision} + +\referralfailed{{REPROVAD\tccore@@ref{student}{Article}}} +\referralapproved{{APROVAD\tccore@@ref{student}{Article}}} + +\referralexamapprovedtext{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ apresentou o trabalho intitulado \emph{\tccore@@ref{student}{title}}\ no dia \tccore@@ref{student}{date}, n\~{a}o tendo sido considerad\tccore@@ref{student}{article} apt\tccore@@ref{student}{article} pela banca listada abaixo. Posto em exame, \tccore@@ref{student}{article} mesm\tccore@@ref{student}{article} foi \tcdef@coord@referralapproved\ com conceito final \tc@TCCgradeC .} + +\referralexamfailtext{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ apresentou o trabalho intitulado \emph{\tccore@@ref{student}{title}}\ no dia \tccore@@ref{student}{date}, n\~{a}o tendo sido considerad\tccore@@ref{student}{article} apt\tccore@@ref{student}{article} pela banca listada abaixo. Posto em exame, \tccore@@ref{student}{article} mesm\tccore@@ref{student}{article} foi \tcdef@coord@referralfailed\ com conceito final \tc@TCCgradeD .} + +\referralfatetext{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ apresentou o trabalho intitulado \emph{\tccore@@ref{student}{title}}\ no dia \tccore@@ref{student}{date}, tendo sido \tccoord@referralfate{\tccore@@ref{student}{Temp}} com conceito final \textbf{\tccoord@@fate{\Alph{tc@studentcount}}}, conforme quadro de notas abaixo. } + +\referralfailFF{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ n\~{a}o concluiu o trabalho de conclus\~{a}o de Curso tendo sido \tcdef@coord@referralfailed\ com conceito final \textbf{FF}.} + +\boardlabel{Banca Examinadora} +\boardstitle{Apresentações TCC em \tcdef@cover@course\ \tcdef@coord@TCCperiod\ \tcdef@coord@boardstitleB\ } +\boardsworklabel{Título} +\TCCgradesNlabel{Nota} +\TCCgradesClabel{Conceito} +\TCCgrades{A}{B}{C}{D}{FF} +\TCCgradesN{9}{7.5}{6} + +\cocertificatetitle{CERTIFICADO} +\cocertificateopenning{\`{A} quem interessar possa,\\ certificamos que} +\cocertificatetext{atuou como co-orientador\tccore@@ref{coadvisor}{narticle} d\tccore@@ref{student}{article} alun\tccore@@ref{student}{article}\ \emph{\tccore@@ref{student}{}}\ no trabalho de conclus\~{a}o de curso intitulado \emph{\tccore@@ref{student}{title}}\ no semestre \tcdef@coord@TCCperiod.} + +\TCCcoordtitle{Coordenador\tccore@@ref{TCCcoord}{narticle} da atividade de ensino de\\ \tcdef@forms@formstitle\ } diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-core.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-core.def new file mode 100644 index 0000000000..f96e2529d4 --- /dev/null +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-core.def @@ -0,0 +1,101 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status “maintained”. +%% +%% The Current Maintainer of this work is Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\makeatletter + +\def\tc@tmp@packname{ufrgscca-en-core} +\def\tc@tmp@altpackname{ufrgsccaencore} +\def\tc@tmp@packdesc{UFRGS/CCA English core defs} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} + + +\location{Porto~Alegre}{RS} + +\university{Federal University of Rio Grande do Sul} +\universityacronym{UFRGS} +\universitydivision{Engineering School} +\divisiongradcouncil{\tcdef@cover@universitydivision Undergraduate Council} + +\secretaryacronym{SACAD} +\secdivisionacronym{\tcdef@cover@secretaryacronym/EE} +\graduationtitle{Control and Automation Engineering} +\course{Control and Automation Engineering} +\courseacronym{CCA} +\coursecoord{current course coordinator} +\coursecoordtitle{Course Coordinator} +\advisorname{Advisor}% +\coadvisorname{Coadvisor}% +\examinername{Exam Committee}% + +\reportspecificinfo{% + Graduation Project presented to COMGRAD-\tcdef@cover@courseacronym\ of \tcdef@cover@university\ + in partial fulfillment of the requirements for the + degree of \emph{\tcdef@cover@graduationtitle }. +}% + +\approvalspecificinfo{% + This Project was considered adequate for obtaining the + credits of the course TCC (Diplom Project) of \emph{\tcdef@cover@course } + and approved in its final form by the Advisor and the Examination Committee. +}% + +\profname{Professor} +\coprofname{Professor} + + diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-forms.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-forms.def new file mode 100644 index 0000000000..7ffeefb01b --- /dev/null +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-en-forms.def @@ -0,0 +1,215 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status “maintained”. +%% +%% The Current Maintainer of this work is Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\makeatletter + +\def\tc@tmp@packname{ufrgscca-en-forms} +\def\tc@tmp@altpackname{ufrgsccaenforms} +\def\tc@tmp@packdesc{UFRGS/CCA English forms defs} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} + + +%%%%%% +%%%%%% +%%%%%% forms +%%%%%% +%%%%%% +%%%%%% + +\formlocal{\tc@city,\hspace{4mm} de \hspace{1.2cm} de 20\hspace{4mm}.} + +\formssignaturelabel{Assinatura} +\examinersignature{Assinatura\ \ d\tccore@@ref{examiner}{article}\ \ Avaliador\tccore@@ref{examiner}{narticle}} +\boardsignature{Assinatura\ \ do\ \ Membro\ \ da\ \ Banca} +\advisorsignature{Assinatura\ \ d\tccore@@ref{advisor}{article}\ \ Orientador\tccore@@ref{advisor}{narticle}} +\coadvisorsignature{Assinatura\ \ d\tccore@@ref{coadvisor}{article}\ \ Co-orientador\tccore@@ref{coadvisor}{narticle}} +\studentsignature{Assinatura\ \ d\tccore@@ref{student}{article}\ \ Alun\tccore@@ref{student}{article}} +\studentsignaturegen{Assinatura\ \ do(a)\ \ Aluno(a)} +\formsstudentlabel{Alun\tccore@@ref{student}{article}} +\formsstudentlabelgen{Aluno(a)} +\formproflabel{Professor(a)} +\profname{Professor\tccore@@ref{advisor}{narticle}} +\coprofname{Professor\tccore@@ref{coadvisor}{narticle}} +\formsboardlabel{Membro da Banca} +\formsadvisorlabel{Orientador\tccore@@ref{advisor}{narticle}} +\formsadvisorlabelgen{Orientador(a)} +\formscoadvisorlabel{Co-orientador\tccore@@ref{advisor}{narticle}} +\formsexaminerlabel{Avaliador\tccore@@ref{examiner}{narticle}} +\formsaltexaminerlabel{Suplente} +\formstimelabel{Horário} + + +%\formstopicAlabel{Conteúdo} +%\formstopicBlabel{Trabalho Escrito} +%\formstopicClabel{Apresentação} +\formsworktitlelabel{Título do Trabalho} +\formstemptitlelabel{Título Provisório} +\formsstudentIDlabel{Cartão} +\formsemaillabel{e-mail} +\formsphonelabel{ramal} +\agreelabel{De Acordo} + +\continuelabel{Continua...} + +\formsdatelabel{Data} +\formstitle{Trabalho de Conclusão de Curso em \tcdef@cover@course} +\formsfootnote{Entregar a cada membro da banca juntamente com a cópia do trabalho.} + + +\renewreqformtitle{Formulário de Renovação da Inscrição na Atividade de Ensino Trabalho de Conclusão em \tcdef@cover@course} + +\renewreqformnotes{O resumo deve ser curto, i.e., não deve exceder este espaço. O texto deve ser escrito em parágrafo único, e por se tratar de proposta, poderá utilizar tempo futuro e não necessita ter motivação ou justificativa.\\ +Deve conter: +\begin{enumerate*}[alpha)] +\item O QUE será feito - descrição e objetivos. +\item COMO será feito - metodologia. +\item Resultados esperados. +\end{enumerate*} +} + +\reqformtitle{Formul\'{a}rio de Requerimento de Matr\'{i}cula} +\reqformopening{Ilm\tccore@@ref{coursecoord}{article}. Sr\tccore@@ref{coursecoord}{narticle}.\par +Coordenador\tccore@@ref{coursecoord}{narticle} da Comissão de Graduação do Curso em \tcdef@cover@course {da \tcdef@cover@universityacronym\ }} +%\reqformopening{algo} + +\reqformdesc{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \tc@studentA , REGULARMENTE MATRICULAD\tccore@@ref{student}{Article} neste período letivo no curso \emph{\tcdef@cover@course\ }, desta universidade, portador\tccore@@ref{student}{narticle} do cartão de identificação n$^o$ \tc@studentAID\ vem por meio desta solicitar matrícula na atividade de ensino de \tcdef@forms@formstitle} + +\coadvisorformtitle{Requerimento de Autorização de Co-Orientação} +\coadvisorformdesc{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \tc@studentA , REGULARMENTE MATRICULAD\tccore@@ref{student}{Article} na atividade de TCC neste período letivo, vem por meio desta solicitar autorização para registro de co-orientador de TCC, conforme justificativa abaixo.} + +\formsbrieflabel{Resumo} + +\formsstudentemaillabel{Email d\tccore@@ref{student}{article} Alun\tccore@@ref{student}{article}} + +\formsadvisoremaillabel{Email d\tccore@@ref{advisor}{article} Orientador\tccore@@ref{advisor}{narticle}} + +\formsreasonlabel{Justificativa} + + +\examformtitle{Formul\'{a}rio de Avalia\c{c}\~{a}o} + +\examformdesc{A nota (variando de zero a dez) atribuída por cada membro da banca examinadora será dada considerando o desempenho d\tccore@@ref{student}{article} alun\tccore@@ref{student}{article} nos 3 pontos apresentados na tabela abaixo.} + +\examformnoteslabel{Observações} + +\examformnotes{\ \\Posteriormente, \tccore@@ref{TCCcoord}{article} professor\tccore@@ref{TCCcoord}{narticle} coordenador\tccore@@ref{TCCcoord}{narticle} calculará a nota final atribuída por cada membro da banca examinadora, de acordo com a seguinte ponderação:\\[2mm] {\bf Nota Final Banca = \tc@TCCpointAweight\ x \tc@TCCpointAlabel\ + \tc@TCCpointBweight\ x \tc@TCCpointBlabel\ + \tc@TCCpointCweight\ x \tc@TCCpointClabel\ } \\[2mm] A média final da atividade será dada pela média das notas finais (calculadas com a expressão acima) atribuidas por cada um dos membros da banca examinadora.} + +\examboardformtitle{Formulário de Aprovação do Relatório Parcial e Banca Examinadora} + +\examboardformdesc{Aprovo o Relatório Parcial e nominata da Banca Examinadora acima relacionada.} + +\formsboardtitle{Banca Examinadora} + +\advisorapprovalformtitle{Formulário de Aprovação para Apresentação} + +\advisorapprovalformdesc{{\bf Parecer d\tccore@@ref{advisor}{article} Orientador\tccore@@ref{advisor}{narticle}}\footnote{Preenchimento Obrigatório}} + +\advisorapprovalformdescB{Aprovo a versão final do trabalho submetido pel\tccore@@ref{student}{article} alun\tccore@@ref{student}{article} e considero \tccore@@ref{student}{article} mesm\tccore@@ref{student}{article} apt\tccore@@ref{student}{article} para apresentação.} + +\rectifyapprovalformtitle{Formulário de Aprovação das Correções} + +\rectifyapprovalformdesc{\begin{description} +\item[Observação 1:] A nota final será a já atribuída pela Banca Examinadora no momento da Defesa. Caso a versão final corrigida do trabalho mais este formulário não sejam entregues até a data estipulada, o conceito do aluno passará a ser {\bf D}. +\item[Observação 2:] A assinatura d\tccore@@ref{advisor}{article} orientador\tccore@@ref{advisor}{narticle} é obrigatória, entretanto a assinatura dos membros da banca só é necessária caso o(a) mesmo(a) tenha marcado a opção "$\Box$ Revisarei o trabalho depois de corrigido" no \emph{Formulário de Correções}. +\end{description}} + +\receiptformtitle{Recibo de entrega de cópia da versão final do Trabalho de Conclusão} + +\receiptformfootnote{Entregar a cada membro da banca juntamente com a cópia do trabalho final e após encaminhar ao \tcdef@cover@secretaryacronym .} + +\receiptformdesc{Declaro que encontra-se em minha posse cópia da versão final do Trabalho de Conclusão de Curso em \tcdef@cover@course\ d\tccore@@ref{student}{article} alun\tccore@@ref{student}{article} } + + +\reviewformtitle{Formulário de Correções} +\reviewformdesc{Correções: \parbox[t]{.8\textwidth}{ +\begin{description}[tcc,noitemsep] +\item[$\Box$] Nenhuma +\item[$\Box$] Ortográfica +\item[$\Box$] Regras de Escrita +\item[$\Box$] Equações +\item[$\Box$] Resumo +\item[$\Box$] Abstract +\item[$\Box$] Índice +\item[$\Box$] Introdução +\item[$\Box$] Conclusões +\item[$\Box$] Corpo do Trabalho +\item[$\Box$] Resultados +\item[$\Box$] Adicionar mais exemplos +\item[$\Box$] Figuras +\item[$\Box$] Tabelas +\item[$\Box$] {\bf Reescrever tudo}\footnotemark[2] +\item[$\Box$] Outras: \\ +\begin{tabular}{p{0.7\textwidth}} +~\\\hline +~\\\hline +~\\\hline +~\\\hline +\end{tabular}\\[-1mm] +\item[$\Box$] {\bf Revisarei o trabalho depois de corrigido}%\footnotemark[2] +\end{description}} +} + +\reviewformfootnoteB{Neste caso \tccore@@ref{student}{article} alun\tccore@@ref{student}{article} estará em EXAME e receberá conceito final C ou D, conforme revisão final do texto.} + +\reviewformfootnote{\tcdef@forms@formsfootnote\ Após a apresentação, retornar este à coordenação do TCC.} + +\formsrectifyOKdesc{Correções satisfatórias: \hspace*{1cm}$\Box$\ sim\hspace*{2cm}$\Box$\ não} + +\TCCpointsweight{0.35}{0.35}{0.3} +\TCCpointslabel{Conteúdo}{Trab. Escrito}{Apresentação} diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty new file mode 100644 index 0000000000..d2f7b26adf --- /dev/null +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-forms.sty @@ -0,0 +1,561 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status “maintained”. +%% +%% The Current Maintainer of this work is Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\NeedsTeXFormat{LaTeX2e}[2022/06/01] +\def\tc@tmp@packname{ufrgscca-forms} +\def\tc@tmp@altpackname{ufrgsccaforms} +\def\tc@tmp@packdesc{UFRGS/CCA forms commands} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} +\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] + +\RequirePackage{amsfonts} + + +%% local for tc@formsigdate {ufrgscca-forms} + +\cmdfactory{formssignaturelabel,examinersignature,boardsignature,advisorsignature,coadvisorsignature} +\cmdfactory{studentsignature,studentsignaturegen}% +\cmdfactory{formsstudentlabel,formsstudentlabelgen,formproflabel}% +\cmdfactory{formsboardlabel,formsadvisorlabel,formsadvisorlabelgen}% +\cmdfactory{formscoadvisorlabel,formsexaminerlabel,formsaltexaminerlabel} +\cmdfactory{formstimelabel,formsworktitlelabel,formstemptitlelabel} +\cmdfactory{formsstudentIDlabel,formsemaillabel,formsphonelabel} +\cmdfactory{agreelabel,continuelabel} +\cmdfactory{formsdatelabel,formstitle,formsfootnote} +\cmdfactory{renewreqformtitle,renewreqformnotes,reqformtitle,reqformopening,reqformdesc}% +\cmdfactory{coadvisorformtitle,coadvisorformdesc} +\cmdfactory{formsbrieflabel,formsstudentemaillabel,formsadvisoremaillabel} +\cmdfactory{formsreasonlabel} +\cmdfactory{examformtitle,examformdesc,examformnoteslabel} +\cmdfactory{examformnotes,examboardformtitle,examboardformdesc}% +\cmdfactory{formsboardtitle,advisorapprovalformtitle,advisorapprovalformdesc,advisorapprovalformdescB} +\cmdfactory{rectifyapprovalformtitle,rectifyapprovalformdesc}% +\cmdfactory{receiptformtitle,receiptformfootnote,receiptformdesc}% +\cmdfactory{reviewformtitle,reviewformdesc,reviewformfootnoteB,reviewformfootnote} +\cmdfactory{formsrectifyOKdesc} + +\NewDocumentCommand{\TCCpointsweight}{mmm}{% + \gdef\tc@TCCpointAweight{#1}% + \gdef\tc@TCCpointBweight{#2}% + \gdef\tc@TCCpointCweight{#3}% +}% + +\NewDocumentCommand{\TCCpointslabel}{mmm}{% + \gdef\tc@TCCpointAlabel{#1}% + \gdef\tc@TCCpointBlabel{#2}% + \gdef\tc@TCCpointClabel{#3}% +}% +% + + +\iftcif@english% +\input{ufrgscca-en-forms.def}% +\else% +\input{ufrgscca-ptBR-forms.def}% +\fi% + +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% Examiners forms% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@examinersForms}{}{% + \tccore@examiners{examinerA}% + \tcforms@examinersform{examinerA}% + \tcforms@reviewform{examinerA}% + \tccore@examiners{examinerB}% + \tcforms@examinersform{examinerB}% + \tcforms@reviewform{examinerB}% + \tccore@examiners{examinerC}% + \tcforms@examinersform{examinerC}% + \tcforms@reviewform{examinerC}% + \tccore@examiners{altexaminerA}% + \tcforms@examinersform{altexaminerA}% + \tcforms@reviewform{altexaminerA}% +}% +% +\NewDocumentCommand{\tcforms@examinerforms}{m}{% + \tcforms@examinersform{#1}% + \tcforms@reviewform{#1}% +}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% Board receipt forms% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@receiptforms}{}{% + \tcforms@receiptform{examinerA}% + \tcforms@receiptform{examinerB}% + \tcforms@receiptform{examinerC}% + \tcforms@receiptform{altexaminerA}% +}% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% Aux commands% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@formsigdate}{m}{%% + \begin{flushright} \tcdef@core@formlocal % + ~\vspace*{6mm}\\% +% + $\overline{#1}$%% + \end{flushright}% +}% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% examiners description (for Board approval forms)% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@examinerdesc}{O{\tcdef@forms@formsexaminerlabel}mm}{%% + \tccore@examiners{#3}% + \@ifundefined{tc@#2@#3}{--}{#1: {\bf \csname tc@#2@#3\endcsname}% + + \hfill \tcdef@forms@formsemaillabel: {\bf \csname tc@#2@#3email\endcsname} ~\tcdef@forms@formsphonelabel: {\bf \csname tc@#2@#3phone\endcsname} ~\tcdef@forms@agreelabel: \rule{\tc@agreerule}{.1pt}\\}% +}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC description (for many forms)% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@tccdesc}{}{%% + \tcdef@forms@formsstudentlabel : {\bf \tc@studentA} \hfill \tcdef@forms@formsstudentIDlabel : {\bf \tc@studentAID}% + + \tcdef@forms@formsworktitlelabel : {\bf \@title}\\[-4mm]% + + \tcdef@forms@formsadvisorlabel : {\bf \tc@studentA@advisor}\\% +}% +% + + +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC examiner form (grades)% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@examinersform}{m}{% + \tc@formtopbox[tcdef@forms@formsfootnote]{\tcdef@forms@formstitle}{\tcdef@forms@examformtitle}% +% + \vfill% + \tcdef@forms@formsstudentlabel : {\bf \csname tc@student\Alph{tc@studentcount}\endcsname}\\% + \tcdef@forms@formsexaminerlabel : \csname tc@student\Alph{tc@studentcount}@#1\endcsname% + \vfill% + \tcdef@forms@examformdesc% + + \vfill% + + \begin{center} + \begin{tabular}{|c|c|c|}% + \hline% + \tc@TCCpointAlabel & \tc@TCCpointBlabel & \tc@TCCpointClabel \\\hline% + & & \\\hline + \end{tabular}% + \end{center}% + + \vfill% + + \tcforms@formsigdate{\tcdef@forms@examinersignature}% + \vfill% + \begin{description} + \item[\tcdef@forms@examformnoteslabel:] \tcdef@forms@examformnotes + \end{description}% + + \vfill% + \pagebreak% +}% +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC examiners reviewer form (corrections)% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@reviewform}{m}{% + \tc@formtopbox[tcdef@forms@reviewformfootnote]{\tcdef@forms@formstitle}{\tcdef@forms@reviewformtitle}% + + \vfill% + \tcdef@forms@formsstudentlabel : {\bf \expandafter\csname tc@student\Alph{tc@studentcount}\endcsname}\\% + \tcdef@forms@formsexaminerlabel : \expandafter\csname tc@student\Alph{tc@studentcount}@#1\endcsname% + \vfill% + \resizebox{0.9\textwidth}{!}{%% + \tcdef@forms@reviewformdesc% + }% + \footnotetext[2]{\tcdef@forms@reviewformfootnoteB}% + \vfill% + + \tcforms@formsigdate{\tcdef@forms@examinersignature}% + \vfill% + \pagebreak% +}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC requirement form (TCC register)% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@reqform}{}{% + \tc@formtopbox{\tcdef@forms@formstitle}{\tcdef@forms@reqformtitle}% + + \vfill% + + \tcdef@forms@reqformopening% + \vfill% + + \tcdef@forms@reqformdesc% + \vfill% + + \tcdef@forms@formstemptitlelabel : \@title % + + \tcdef@forms@formsstudentemaillabel : {\bf \tc@studentAemail} % + + \tcdef@forms@formsadvisorlabel : \tc@studentA@advisor% + + \tcdef@forms@formsadvisoremaillabel : {\bf \tc@studentA@advisoremail}% + \hfill \tcdef@forms@formsphonelabel : {\bf \tc@studentA@advisorphone}% + + {\bf \tcdef@forms@formsbrieflabel}:\footnote[1]{\tcdef@forms@renewreqformnotes}% + + \vfill% + \tcdef@core@tccbrief% + + \parbox[t]{.45\textwidth}{\tcforms@formsigdate{\tcdef@forms@studentsignature}}\hfill% + \parbox[t]{.45\textwidth}{\tcforms@formsigdate{\tcdef@forms@advisorsignature}}% + \pagebreak% +}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC co-advisor requirement form (TCC register)% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@coadvisorform}{}{% + \@ifundefined{tc@studentA@coadvisor}{% + \coadvisor{\rule{\tc@namerule}{.1pt}}{}% + \coadvisorinfo{}{\rule{\tc@titlerule}{.1pt}}{\rule{\tc@emailrule}{.1pt}}{\rule{\tc@phonerule}{.1pt}}% + }{}% + \tc@formtopbox{\tcdef@forms@formstitle}{\tcdef@forms@coadvisorformtitle}% + + \vfill% + + \tcdef@forms@reqformopening% + \vfill% + + \tcdef@forms@coadvisorformdesc% + \vfill% + + \tcdef@forms@formstemptitlelabel : \@title % + + \tcdef@forms@formsadvisorlabel: \tc@studentA@advisor + + \tcdef@forms@formscoadvisorlabel: \tc@studentA@coadvisor% + + \vfill% + {\bf \tcdef@forms@formsreasonlabel}:% + + \tcdef@core@tcccoadvisorbrief% !!!! What a Hell ?!?!?! + + \tcforms@formsigdate{\tcdef@forms@studentsignature}% + + \parbox[t]{.45\textwidth}{\tcforms@formsigdate{\tcdef@forms@advisorsignature}}\hfill% + \parbox[t]{.45\textwidth}{\tcforms@formsigdate{\tcdef@forms@coadvisorsignature}}% + \pagebreak% +}% +% +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC renew requirement form (TCC register)% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@renewreqform}{}{% + \tc@formtopbox{\tcdef@forms@formstitle}{\tcdef@forms@renewreqformtitle}% + + \vfill% + \tcforms@tccdesc% + + \tcdef@forms@formsstudentemaillabel : {\bf \tc@studentAemail} % + + \hfill \tcdef@forms@formsadvisoremaillabel : {\bf \tc@studentA@advisoremail}% + + \hfill \tcdef@forms@formsphonelabel : {\bf \tc@studentA@advisorphone}% + \vfill% + {\bf \tcdef@forms@formsbrieflabel}:\footnote[1]{\tcdef@forms@renewreqformnotes}% + + \tcdef@core@tccbrief% + \vfill% + \tcforms@formsigdate{\tcdef@forms@studentsignature}% + \vfill% + + \tcforms@formsigdate{\tcdef@forms@advisorsignature}% + \vfill% + \pagebreak% +}% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC Board approval form% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@examboardform}{}{% + \tc@formtopbox{\tcdef@forms@formstitle}{\tcdef@forms@examboardformtitle}% + + \vfill% + + \tcforms@tccdesc% + + \vfill% + \begin{center} + \tcdef@forms@formsboardtitle + \end{center}% + + \tcforms@examinerdesc{studentA}{examinerA}% + + \tcforms@examinerdesc{studentA}{examinerB}% + + \tcforms@examinerdesc{studentA}{examinerC}% + + \tcforms@examinerdesc[\tcdef@forms@formsaltexaminerlabel]{studentA}{altexaminerA}% + + \vfill% + + \tcdef@forms@examboardformdesc% + \vfill% + + \tcforms@formsigdate{\tcdef@forms@advisorsignature}% + \vfill% + + \pagebreak% +}% +% +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC Board receipts form% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@receiptform}{m}{% + \tc@formtopbox[tcdef@forms@receiptformfootnote]{\tcdef@forms@formstitle}{\tcdef@forms@receiptformtitle}% + + \vfill% + + \tcforms@tccdesc% + + \tcdef@forms@formsboardlabel : {\bf \csname tc@student\Alph{tc@studentcount}@#1\endcsname }% + + \vfill% + \tcdef@forms@receiptformdesc {\bf \tc@studentA},\ \ \ \tcdef@forms@formsstudentIDlabel : {\bf \tc@studentAID}.% + + \vfill% + + \tcforms@formsigdate{\tcdef@forms@boardsignature}% + \vfill% + \pagebreak% +}% +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% examiners approval/not signature (for rectify approval form)% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@approvalsigdate}{mm}{%% + \tcdef@forms@formsrectifyOKdesc% + \hfill\tcdef@forms@formsdatelabel:\rule{\tc@daterule}{.1pt}\\[3mm]% + #1: #2 \hfill \tcdef@forms@formssignaturelabel:\rule{\tc@namerule}{.1pt}% +}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC Board rectify approval form% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@rectifyexaminersig}{O{\tcdef@forms@formsexaminerlabel}m}{\@ifundefined{#2}{}{\tcforms@approvalsigdate{#1}{\csname #2\endcsname}}\\[3mm]}% +% +\NewDocumentCommand{\tcforms@rectifyapprovalform}{}{% + \tc@formtopbox{\tcdef@forms@formstitle}{\tcdef@forms@rectifyapprovalformtitle}% + + \vfill% + + \tcforms@tccdesc% + + \vfill% + \tcdef@forms@rectifyapprovalformdesc% + + \vfill% + + \tcforms@rectifyexaminersig[\tcdef@forms@formsadvisorlabel]{tc@studentA@advisor}% + + \vfill% + + \@ifundefined{tc@nBoard}{}{% + \tcforms@rectifyexaminersig{tc@studentA@examinerA}% + }% + + \tcforms@rectifyexaminersig{tc@studentA@examinerB}% + + \tcforms@rectifyexaminersig{tc@studentA@examinerC}% + + \tcforms@rectifyexaminersig{tc@studentA@altexaminerA}% + \vfill% + \pagebreak% +}% +% +% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% TCC Advisor approval form% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NewDocumentCommand{\tcforms@advisorapprovalform}{}{% + \tc@formtopbox{\tcdef@forms@formstitle}{\tcdef@forms@advisorapprovalformtitle}% + + \vfill% + + \tcforms@tccdesc% + + \vfill% + \tcdef@forms@advisorapprovalformdesc% + + \vfill% + + \tcdef@core@tccadvisorsreview% + + \vfill% + \tcdef@forms@advisorapprovalformdescB% + + \tcforms@formsigdate{\tcdef@forms@advisorsignature}% + \vfill% + + \tcforms@formsigdate{\tcdef@forms@studentsignature}% + \vfill% + \pagebreak% +}% +% +% +%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%% +% + +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% set of blank lines% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\cmdfactory{formsblanklines} +\formsblanklines{\hrulefill\\% + +\hrulefill\\% + +\hrulefill\\% + +\hrulefill\\% + +\hrulefill\\% + +\hrulefill\\% + +\hrulefill% +}% +% + + +\DeclareKeys[forms]{ + reqform.usage = general, + reqform.code = {\tcforms@reqform}, + coadvisor.usage = general, + coadvisor.code = {\tcforms@coadvisorform}, + boardsapproval.usage = general, + boardsapproval.code = {\tcforms@examboardform}, + advisorsapproval.usage = general, + advisorsapproval.code = {\tcforms@advisorapprovalform}, + receipts.usage = general, + receipts.code = {\tcforms@receiptforms}, + examinersforms.usage = general, + examinersforms.code = {\tcforms@examinersForms}, + rectifyapproval.usage = general, + rectifyapproval.code = {\tcforms@rectifyapprovalform}, +} + + +\NewDocumentCommand{\tcforms}{m}{% + \SetKeys[forms]{#1}% +} + +\NewDocumentCommand{\tcemptyforms}{m}{% + \tccore@resetfields% + \title{\rule{\tc@namerule}{.1pt}}% + \tccore@emptyfields% + \SetKeys[forms]{#1}% +} diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-gen.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-gen.sty new file mode 100644 index 0000000000..9d72af827d --- /dev/null +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-gen.sty @@ -0,0 +1,152 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status “maintained”. +%% +%% The Current Maintainer of this work is Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\NeedsTeXFormat{LaTeX2e}[2022/06/01] +\def\tc@tmp@packname{ufrgscca-gen} +\def\tc@tmp@altpackname{ufrgsccagen} +\def\tc@tmp@packdesc{UFRGS/CCA generic/miscellany commands} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} +\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] + +\def\tcgen@fam{tcdef} +\def\tcgen@factgrp{gen}% +% + +\DeclareKeys[ufrgscca-gen]{ + family.usage = load, + family.store = \tcgen@fam, + + group.usage = load, + group.store = \tcgen@factgrp, +} +\ProcessKeyOptions[ufrgscca-gen]\relax + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% \tcgen@cdef[fam]{#1}{#2} => \gdef\@#1{#2}% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +\NewDocumentCommand{\tcgen@cdef}{O{\tcgen@fam}D<>{\tcgen@factgrp} m +m}{% + \expandafter\gdef\csname #1@#2@#3\endcsname{#4}% +}% +% +\NewDocumentCommand{\factory}{O{\tcgen@fam}D<>{\tcgen@factgrp}m}{% + \expandafter\long\expandafter\xdef\csname #3\endcsname##1{\noexpand\tcgen@cdef[#1]<#2>{#3}{##1}}% + %\csname #3\endcsname{-default-} + \expandafter\def\csname #3.fam\endcsname{#1}% + \@ifundefined{#3undef}{}{\expandafter\gdef\csname tc@factdup@#3\endcsname{}} + \expandafter\def\csname #3undef\endcsname{\expandafter\let\csname #1@#2@#3\endcsname\undefined}% +}% +\NewDocumentCommand{\cmdfactory}{O{\tcgen@fam}D<>{\tcgen@factgrp}m}{% + \forcsvlist{\factory[#1]<#2>}{#3}% + \ifcsundef{tc@factgrplist@#2}{% + \ifcsundef{tc@factgrplist}{\csgdef{tc@factgrplist}{#2}}{\csgappto{tc@factgrplist}{,#2}}% + \csgdef{tc@factgrplist@#2}{#3}% + }{\csgappto{tc@factgrplist@#2}{,#3}}% +}% +% +% +% 'debug' auxiliary commands (mainly to find out dups, defined/undefined ones) +% +% +\NewDocumentCommand{\tcgen@factcmd@prt}{m}{\@ifundefined{tc@factdup@#1}{#1}{#1 (dup)} +\expandafter\@ifundefined\expandafter{\csname #1.fam\endcsname @#1}{\textbf{ NOT Defined} \\}{ {\csname\csname #1.fam\endcsname @#1\endcsname} \\}} +\NewDocumentCommand{\tcgen@factcmd@def}{m}{\csname #1.fam\endcsname @\@ifundefined{tc@factdup@#1}{#1}{#1 (dup)} % + \expandafter\@ifundefined\expandafter{\csname #1.fam\endcsname @#1}{\textbf{ NOT Defined} \\}{ {\slshape Defined} \\} } +%\NewDocumentCommand{\tcgen@factcmd@prt}{m}{{#1} \\} +%\NewDocumentCommand{\tcgen@factcmd@def}{m}{{#1} :: \@ifundefined{tc@#1}{-- \textbf{NOT Defined} --\\}{Defined \\} } +\NewDocumentCommand{\tcgen@factgrp@prt}{m}{\tightul{#1} \\% + \expandafter\expandafter\expandafter\forcsvlist\expandafter\expandafter\expandafter\tcgen@do\expandafter\expandafter\expandafter{\csname tc@factgrplist@#1\endcsname}% +} +\NewDocumentCommand{\listfactorycmds}{sO{}}{% + \IfBooleanTF{#1}{\def\tcgen@do##1{\tcgen@factcmd@def{##1}}}{\def\tcgen@do##1{\tcgen@factcmd@prt{##1}}} + \ifblank{#2}{% + \ifcsundef{tc@factgrplist}{Factories Groups: \textbf{empty list}\\ }{% + Factories: \\ % + \expandafter\expandafter\expandafter\forcsvlist\expandafter\expandafter\expandafter\tcgen@factgrp@prt\expandafter\expandafter\expandafter{\csname tc@factgrplist\endcsname}% + % + } + }{% + }% +} + + +%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%% +% +% \mkswitch creates a switch (somewhat 'like' a programming switch) +% a 'default case' is associated with the switch when creating it +% one can add many 'cases' later on. +% one can have any code associated with a 'switch/case' +% +%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%% + + +\NewDocumentCommand\mkswitch{O{}m}{% + \NewDocumentCommand{#2}{m}{% + \ifcsname\string#2@case@##1\endcsname\csname\string#2@case@##1\endcsname\else#1\fi% + }% +}% +\NewDocumentCommand{\addcase}{mmm}{\expandafter\def\csname\string#1@case@#2\endcsname{#3}}% +\let\addswitchcase\addcase + diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty new file mode 100644 index 0000000000..b419ea04f1 --- /dev/null +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-lists.sty @@ -0,0 +1,118 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status “maintained”. +%% +%% The Current Maintainer of this work is Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\NeedsTeXFormat{LaTeX2e}[2022/06/01] +\def\tc@tmp@packname{ufrgscca-lists} +\def\tc@tmp@altpackname{ufrgsccalists} +\def\tc@tmp@packdesc{UFRGS/CCA auxiliary lists commands} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} +\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] + + +\DeclareKeys[ufrgscca-lst]{ + relnum.usage = load, + relnum.if = tcif@relnum, +} +\ProcessKeyOptions[ufrgscca-lst]\relax + +%%%%%%%%%%%%%%%%%%%%% +%%% Packages Loading +%%%%%%%%%%%%%%%%%%%%% + +\RequirePackage{newfloat} +\RequirePackage{listings}% +\RequirePackage{xcolor}% + +%%% +%%% command to declare a new 'list of ...' things {package newfloat} +%%% +\NewDocumentCommand{\DeclareNewFloat}{mmmm}{% + \DeclareFloatingEnvironment[% + fileext={#2},% + listname={#4},% + name={#3},% + placement=htb,% + chapterlistsgaps=off]{#1} % + \iftcif@relnum\SetupFloatingEnvironment{#1}{within=chapter}% + \else\SetupFloatingEnvironment{#1}{within=none}% + \fi % +}% + + +% +%%%%\def\listoflistings{\lstlistoflistings}% +\definecolor{lstgray}{rgb}{0.965,0.965,0.965}% +\lstset{basicstyle=\ttfamily\small,% + columns=fullflexible,% + keepspaces=true,% + frame=tb,% + inputencoding=latin1,% +% inputencoding=utf8,% + extendedchars=true,% + backgroundcolor=\color{lstgray},% + breaklines=true,% +% xleftmargin=7pt,% +% xrightmargin=7pt% +}% +% +\def\listingname{Listing}% +\def\listlistingname{List of Listings}% +\DeclareNewFloat{codelist}{lox}{\listingname}{\listlistingname}%% + + diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty new file mode 100644 index 0000000000..ac25899438 --- /dev/null +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ppc.sty @@ -0,0 +1,501 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status “maintained”. +%% +%% The Current Maintainer of this work is Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\NeedsTeXFormat{LaTeX2e}[2022/06/01] +\def\tc@tmp@packname{ufrgscca-ppc} +\def\tc@tmp@altpackname{ufrgsccappc} +\def\tc@tmp@packdesc{UFRGS/CCA PPC commands} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} +\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] + + +\DeclareKeys[ufrgscca-ppc]{ + showind.usage = load, + showind.if = @showindicators, + + indlong.usage = load, + indlong.if = @indlongtext, + nocomments.usage = load, + nocomments.if = @indnocomments, +} +\ProcessKeyOptions[ufrgscca-ppc]\relax + +\RequirePackage{longtable} +\RequirePackage{pdfcomment} +\WarningFilter{latex}{name}% +\RequirePackage[tikz]{mdframed}% +\RequirePackage{ufrgscca-abnt} +%\RequirePackage{ufrgscca-curr} +\RequirePackage{ufrgscca-curr-tab} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% PPC macros +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% +%% pre-defined status: +% noref (default, still not in the text) +% tbd (to be done) +% review (in review, probably done) +% attention (to be looked at) +% done (done) +% NSA (not relevant) +% * (undefined, copy text) +%% +%%%%%%%%%%%%%%%%%%% +%\iftc@ppc + \RenewDocumentCommand{\maketitle}{}{\tcppc@PPCcoverpages}% +%\fi + +% +\NewDocumentCommand{\tcppc@PPCcoverpages}{}{ + \begin{titlepage}% + \noindent\tc@covertopbox% + \vfill% + \centerline{\tc@city}% + \centerline{\tc@publyear}% + \end{titlepage}%% + \if@openright\cleardoublepage\else\clearpage\fi%% +}% + \RenewDocumentCommand\tc@winbox{}{%% + \parbox[b]{\tc@coverwinwidth}{%% + \centering\vbox to \tc@coverwinheight{%% + \vspace*{\fill}% + {\large\MakeUppercase{\textbf{\@title}}\par}% + \vfill% + }%% + }%% +}% + +% +% +\NewDocumentCommand{\set@statuscolor}{m}{%% + \@ifundefined{#1@txtcolor}{% + \gdef\ind@txtcolor{\csname default@txtcolor\endcsname}%% + \gdef\ind@bgcolor{\csname default@bgcolor\endcsname}%% + }{% + \gdef\ind@txtcolor{\csname #1@txtcolor\endcsname}%% + \gdef\ind@bgcolor{\csname #1@bgcolor\endcsname}%% + }% +}% +% +% +\newcounter{@indcounter}% +% +\NewDocumentCommand{\declareindicator}{st+O{noref}mmm}{% +%#3: status #4:org #5:mark #6:short text #7:long text #8:extra text #9:'clarification text'(for inep/mec) + \stepcounter{@indcounter}% + \IfBooleanTF{#1}{\expandafter\gdef\csname @indicator#4#5star\endcsname{#1}\ifcsundef{@indicator#4lst}{\csgdef{@indicator#4lst}{#5}}{\csgappto{@indicator#4lst}{,#5}}}{} + \IfBooleanTF{#2}{\ifcsundef{@indicator#4lst}{\csgdef{@indicator#4lst}{#5}}{\csgappto{@indicator#4lst}{,#5}}}{} + \expandafter\gdef\csname @indicator#4#5status\endcsname{#3}% + \expandafter\gdef\csname @indicator#4#5short\endcsname{#6}% + \expandafter\gdef\csname @indicator#4#5long\endcsname{}% + \expandafter\gdef\csname @indicator#4#5extra\endcsname{}% + \expandafter\gdef\csname @indicator#4#5text\endcsname{}% + \expandafter\gdef\csname @indrefA\arabic{@indcounter}\endcsname{#4}% + \expandafter\gdef\csname @indrefB\arabic{@indcounter}\endcsname{#5}% + \newcounter{@indcount#4#5}% + \@ifundefined{iftcppc@indset#4view}{\expandafter\newif\csname iftcppc@indset#4view\endcsname\csname tcppc@indset#4viewtrue\endcsname}{} + \gdef\tcppc@indindex{#4#5} +}% +\NewDocumentCommand{\indicatorDesc}{+m+m}{% + \expandafter\gdef\csname @indicator\tcppc@indindex long\endcsname{#1} + \expandafter\gdef\csname @indicator\tcppc@indindex extra\endcsname{#2} +} +\NewDocumentCommand{\indicatorText}{+m}{% + \expandafter\gdef\csname @indicator\tcppc@indindex text\endcsname{#1} +} + +\NewDocumentCommand{\lstind}{O{\section}O{\subsection}m}{% + \def\doit##1{\ifcsundef{@indicator#3##1star}{#2{\csname @indicator#3##1short\endcsname}}{#1{\csname @indicator#3##1short\endcsname}} \csname @indicator#3##1text\endcsname\par}% +\expandafter\expandafter\expandafter\forcsvlist\expandafter\expandafter\expandafter\doit\expandafter\expandafter\expandafter{\csname @indicator#3lst\endcsname} +} + +% +%\newcommand{\indsetstatus}[3][attention]{\expandafter\gdef\csname @indicator#2#3status\endcsname{#1}} +\NewDocumentCommand{\indsetstatus}{O{attention}mm}{% + \gdef\tcppc@indsetstatus##1{\expandafter\gdef\csname @indicator#2##1status\endcsname{#1}}% + \expandafter\forcsvlist\expandafter\tcppc@indsetstatus\expandafter{#3}% +} +% +\NewDocumentCommand{\indsetview}{m}{\csname tcppc@indset#1viewtrue\endcsname}% +% +\NewDocumentCommand{\indsethide}{m}{\csname tcppc@indset#1viewfalse\endcsname}% +% +\NewDocumentEnvironment{listofindicators}{m}{% + \begin{list}{\textbf{??}}{% + \settowidth{\labelwidth}{#1}% + \setlength{\labelsep}{1em}% + \setlength{\itemindent}{0mm}% + \setlength{\leftmargin}{\labelwidth}% + \addtolength{\leftmargin}{\labelsep}% + \setlength{\rightmargin}{0mm}% + \setlength{\itemsep}{.1\baselineskip}% + \renewcommand{\makelabel}[1]{\makebox[\labelwidth][l]{##1}}% + }% +}{% + \end{list}% +}% +% +\NewDocumentCommand{\tcppc@indrefitem}{O{, }m}{% + \@ifundefined{r@@indlabel\tcppc@indA\tcppc@indB:#2}{}{#1 \ref{@indlabel\tcppc@indA\tcppc@indB:#2} (\pageref{@indlabel\tcppc@indA\tcppc@indB:#2})}% +}% +% +\newif\iftcppc@itemdisp% +\NewDocumentCommand{\tcppc@indicatorsitem}{m}{%% + \@ifundefined{@indrefA#1}{}{%% + \gdef\tcppc@indA{\csname @indrefA#1\endcsname}%% + \gdef\tcppc@indB{\csname @indrefB#1\endcsname}%% + \csname iftcppc@indset\tcppc@indA view\endcsname% + \gdef\tcppc@status{\csname @indicator\tcppc@indA\tcppc@indB status\endcsname}%% + \iftcppc@ind@filter\expandafter\tcppc@ind@filtercase\expandafter{\tcppc@status}\else\tcppc@itemdisptrue\fi% + \iftcppc@itemdisp% + \set@statuscolor{\tcppc@status}%% + \@ifundefined{theind@\tcppc@status @count}{\stepcounter{ind@default@count}}{\stepcounter{ind@\tcppc@status @count}}%% + \item[\textbf{\color{\ind@txtcolor}\hypertarget{@indlabel\tcppc@indA\tcppc@indB\tcppc@ind@filterstatus}{\tcppc@indA: \tcppc@indB}}]% + {\color{\ind@txtcolor}\emph{\csname @indicator\tcppc@indA\tcppc@indB short\endcsname}} \dotfill % + {\normalsize\color{\ind@txtcolor}\textbf{\csname @indicator\tcppc@indA\tcppc@indB status\endcsname}} % + \ifthenelse{\equal{\csname @indicator\tcppc@indA\tcppc@indB long\endcsname}{}}{\break}{\newline\csname @indicator\tcppc@indA\tcppc@indB long\endcsname \csname @indicator\tcppc@indA\tcppc@indB extra\endcsname\hfill\break}%% + \tcppc@indrefitem[.\dotfill]{1}%% + \forcsvlist\tcppc@indrefitem{2,3,4,5,6,7,8,9,10,11,12,13}% + \fi% + \fi% + }%% +}% +% +\NewDocumentCommand{\tcppc@indicatorsbatch}{m}{\forcsvlist\tcppc@indicatorsitem{#10,#11,#12,#13,#14,#15,#16,#17,#18,#19}}% +% +\NewDocumentCommand{\tcppc@indicatorsBatch}{m}{\forcsvlist\tcppc@indicatorsbatch{#10,#11,#12,#13,#14,#15,#16,#17,#18,#19}}% +% +% +\NewDocumentCommand{\tcppc@helpstatus}{+m}{\makebox[5mm]{}\makebox[17mm][r]{\textbf{#1}}\ \ \csname #1@text\endcsname\newline}% +% +\NewDocumentCommand{\tcppc@helpbf}{+m}{\textbf{\color{black}\textbackslash #1}$\,\,$}% +\NewDocumentCommand{\tcppc@helpO}{+m}{{\color{darkteal}\textbf{[}#1\textbf{]}}$\,\,$}% +\NewDocumentCommand{\tcppc@helpM}{+m}{{\color{darkblue}\textbf{\{}#1\textbf{\}}}$\,\,$}% +% +\NewDocumentCommand{\helpindicators}{}{{\footnotesize% + \if@showindicators% + \begin{itemize}[nosep,label=,leftmargin=0mm]% + \item \tcppc@helpbf{indsethide}\tcppc@helpM{} - Hide an indicator's set% + \item \tcppc@helpbf{comment}\tcppc@helpO{}\tcppc@helpM{}\tcppc@helpM{<comment>} - Just a comment% + \item \tcppc@helpbf{indref}\tcppc@helpO{}\tcppc@helpM{<set>}\tcppc@helpM{<ref>}\tcppc@helpM{<comment>} - Single indicator's reference% + \item \tcppc@helpbf{indref*}\tcppc@helpO{}\tcppc@helpM{<set>}\tcppc@helpM{<ref>}\tcppc@helpM{<comment>} - (Short text only)% + \item \tcppc@helpbf{indreflst}\tcppc@helpO{}\tcppc@helpM{<set>}\tcppc@helpM{\tcppc@helpO{:}<ref> , \tcppc@helpO{:}<ref> , ...}\tcppc@helpM{<comment>} - Referece list % + \item \tcppc@helpbf{indreflst*}\tcppc@helpO{}\tcppc@helpM{<set>}\tcppc@helpM{\tcppc@helpO{:}<ref> , \tcppc@helpO{:}<ref> , ...}\tcppc@helpM{<comment>} - (Single box)% + \item \tcppc@helpbf{indsetstatus}\tcppc@helpO{}\tcppc@helpM{<set>}\tcppc@helpM{<ref> , <ref> , ...} - Set the status of a list of indicators.% + \end{itemize}% + where status:\newline% + \expandafter\forcsvlist\expandafter\tcppc@helpstatus\expandafter{\ind@statuslst}% + \fi% +}}% +% +\NewDocumentCommand{\tcppc@printcount}{+m}{\item[ ] {\color{\attention@txtcolor}\large\textbf{\makebox[15mm][r]{#1 :} \csname theind@#1@count\endcsname}}% +}% +% +% +% +%\NewDocumentCommand{\ifshowindicators}{m}{\if@showindicators#1\fi} +%\NewDocumentCommand{\ifthenelseshowindicators}{+m+m}{\if@showindicators#1\else#2\fi} +\NewDocumentCommand{\ifshowind}{+m+m}{\if@showindicators#1\else#2\fi} +% +% +\newif\iftcppc@ind@filter% +\mkswitch[\tcppc@itemdispfalse]\tcppc@ind@filtercase% +\NewDocumentCommand{\tcppc@ind@filteraux}{+m}{\addcase\tcppc@ind@filtercase{#1}{\tcppc@itemdisptrue}}% +\NewDocumentCommand{\PrintIndicators}{O{}}{\footnotesize% + \if@showindicators%% + \def\tcppc@ind@filterstatus{#1}% + \ifthenelse{\equal{#1}{}}{\tcppc@ind@filterfalse}{\tcppc@ind@filtertrue\expandafter\forcsvlist\expandafter\tcppc@ind@filteraux\expandafter{#1}}% + \if@openright\cleardoublepage\else\clearpage\fi%%% + \phantomsection%% + \chapter*{Indicadores #1}%\newpage%% + \begin{listofindicators}{EMPTY LIST . . .}%% + \iftcppc@ind@filter\else\item[ ] {\color{\attention@txtcolor}\large\textbf{\the@indcounter}\ Indicadores.}\fi%% + \tcppc@indicatorsbatch{}% + \tcppc@indicatorsBatch{}% + \forcsvlist\tcppc@indicatorsBatch{1,2,3,4,5,6,7,8,9}% + \iftcppc@ind@filter\else\expandafter\forcsvlist\expandafter\tcppc@printcount\expandafter{\ind@statuslst}\fi% + \end{listofindicators}% + \fi% +}% +% +% +\NewDocumentCommand{\textmark}{O{attention}m}{\set@statuscolor{#1}{\color\ind@txtcolor {\textbf{!! #2 !!}}}} + + +\NewDocumentCommand{\comment}{O{attention}m+m}{% + \if@showindicators% + \if@indnocomments\else% + \set@statuscolor{#1}% + \ \hfill\parbox{0.9\textwidth}{\small% + \begin{mdframed}[style=indicatorsTikZ,frametitle=\tikztitle{#2}]% + {\footnotesize #3\par}% + \hfill\emph{status: }\textbf{\color{\ind@txtcolor}#1}% + \end{mdframed}% + }\\[-2.7mm]% + \fi% + \fi% +}% +\let\remark\comment +% +\NewDocumentCommand{\indtext}{mm}{\csname @indicator#1#2short\endcsname} +% +\NewDocumentCommand{\tcppc@indhack}{smm+m}{% + \csname iftcppc@indset#2view\endcsname% + \set@statuscolor{\tcppc@status}% + \ \hfill\parbox{0.9\textwidth}{\small%% + \begin{mdframed}[style=indicatorsTikZ,frametitle=\tikztitle{\hyperlink{@indlabel#2#3}{#2 : #3}}]%% + \pdftooltip{\emph{\csname @indicator#2#3short\endcsname}}{\csname @indicator#2#3long\endcsname}\par%% + \if@indlongtext%% + \IfBooleanF{#1}{%% + \ifthenelse{\equal{\csname @indicator#2#3long\endcsname}{}}{}{\enquote{\footnotesize\csname @indicator#2#3long\endcsname}\par}%% + }% + \fi%% + \if@indnocomments\else\ifthenelse{\equal{#4}{}}{}{{\emph{\color{\comments@txtcolor}{#4}}}\par}\fi%% + \hfill\emph{status: }\textbf{\color{\ind@txtcolor}\tcppc@status}%% + \end{mdframed}%% + }\\[-2.7mm]%% + \fi% +} + +\NewDocumentCommand{\indref}{sO{}mm+m}{%% + \ifthenelse{\equal{#2}{}}{}{\expandafter\gdef\csname @indicator#3#4status\endcsname{#2}}%% + \expandafter\gdef\expandafter\tcppc@status{\csname @indicator#3#4status\endcsname}% + \stepcounter{@indcount#3#4}\label{@indlabel#3#4:\csname the@indcount#3#4\endcsname}%% + \if@showindicators%% + \IfBooleanTF{#1}{\tcppc@indhack*{#3}{#4}{#5}}{\tcppc@indhack{#3}{#4}{#5}} + \fi% % +}% +% +% +\newcommand{\tcppc@indreflstitem}[4][]{% + \ifthenelse{\equal{#1}{}}{}{\expandafter\gdef\csname @indicator#2#3status\endcsname{#1}}% + \expandafter\gdef\expandafter\tcppc@status{\csname @indicator#2#3status\endcsname}% + \stepcounter{@indcount#2#3}\label{@indlabel#2#3:\csname the@indcount#2#3\endcsname}%% + \set@statuscolor{\tcppc@status}% + \hyperlink{@indlabel#2#3}{\textbf{#3 :}}\pdftooltip{\emph{\csname @indicator#2#3short\endcsname}}{\csname @indicator#2#3long\endcsname}\par%% + \if@indlongtext%% + \ifthenelse{\equal{\csname @indicator#2#3long\endcsname}{}}{}{\enquote{\footnotesize\csname @indicator#2#3long\endcsname}\par}%% + \fi%% + \hfill\emph{status: }\textbf{\color{\ind@txtcolor}\tcppc@status\break}%% +}% + +\NewDocumentCommand{\indreflst}{sO{}mmm}{% + \IfBooleanTF{#1}{% + \gdef\tcppc@indreflst##1{\StrCut{##1}{:}\tcppc@parA\tcppc@parB\IfStrEq{\tcppc@parB}{}{\tcppc@indreflstitem{#3}{\tcppc@parA}{#5}}{\expandafter\tcppc@indreflstitem\expandafter[\tcppc@parA]{#3}{\tcppc@parB}{#5}}}% + \if@showindicators% + \csname iftcppc@indset#3view\endcsname% + \ \hfill\parbox{0.9\textwidth}{\small% + \begin{mdframed}[style=indicatorsTikZ,frametitle=\tikztitle{#3}]%% + \expandafter\forcsvlist\expandafter\tcppc@indreflst\expandafter{#4}% + \if@indnocomments\else\ifthenelse{\equal{#5}{}}{}{{\emph{\color{\comments@txtcolor}{#5}}}\par}\fi%% + \set@statuscolor{#2}% + \end{mdframed}% + }% + \fi% + \fi% + }{% + \gdef\tcppc@indreflst##1{\StrCut{##1}{:}\tcppc@parA\tcppc@parB\IfStrEq{\tcppc@parB}{}{\indref{#3}{\tcppc@parA}{}}{\indref[\tcppc@parA]{#3}{\tcppc@parB}{}}}% + \expandafter\forcsvlist\expandafter\tcppc@indreflst\expandafter{#4}% + \comment[#2]{comment}{#5}% + }% +}% +% +% other default colors (xcolor pack): lime, olive, orange, pink, purple. +% +\def\tcppc@defcolorpair#1{\colorlet{light#1}{white!85!#1}\colorlet{dark#1}{#1!70!black!100}} +% +% +\definecolor{grayblack}{rgb}{0.8,0.8,0.8}% +% +% +\NewDocumentCommand{\ind@defstatus}{mmm}{% + \newcounter{ind@#1@count}% + \tcppc@defcolorpair{#2}% + \expandafter\gdef\csname #1@txtcolor\endcsname{dark#2}% + \expandafter\gdef\csname #1@bgcolor\endcsname{light#2}% + \expandafter\gdef\csname #1@text\endcsname{#3 (#2)}% + \@ifundefined{ind@statuslst}{\gdef\ind@statuslst{#1}}{\edef\ind@statuslst{\ind@statuslst,#1}}% +}% +% +\ind@defstatus{tbd}{gray}{To Be Done}% +\ind@defstatus{done}{green}{Done}% +\ind@defstatus{review}{yellow}{to be reviewed}% +\ind@defstatus{attention}{red}{needs Attention}% +\ind@defstatus{NSA}{brown}{NSA}% +\ind@defstatus{noref}{magenta}{no references}% +\ind@defstatus{EAD}{violet}{EAD}% +\ind@defstatus{MDi}{teal}{(courseware)...}% +\ind@defstatus{DOCs}{blue}{other DOCs}% +\ind@defstatus{default}{cyan}{everything else}% +% +\def\comments@txtcolor{darkblue}% +% +% +\def\ind@TikZpos{0.44}% +\NewDocumentCommand{\tikztitle}{m}{\tikz[baseline=(current bounding box.east),outer sep=0pt,xshift=1cm,thin,color=grayblack] \draw (0,0) (\ind@TikZpos,0) node[anchor=west,rectangle,rounded corners,fill=white,draw] at (\ind@TikZpos,0) {#1} node[anchor=west,rectangle,rounded corners,color=black] at (\ind@TikZpos,0) {#1};}%% +% +% +\mdfdefinestyle{indicatorsTikZ}{% + linecolor=grayblack,%% + linewidth=0.4pt,% +% skipabove=0.65\baselineskip,% +% skipbelow=0.5\baselineskip,% + skipabove=0pt,% + skipbelow=0pt,% + leftmargin =-3.5pt,% + rightmargin=-3.5pt,% + innerleftmargin=3pt,% + innerrightmargin=3pt,% + needspace=3\baselineskip,% + backgroundcolor=\ind@bgcolor,% + usetwoside=false,% +% innertopmargin = 3pt,% +% innerbottommargin = 2pt,% + innertopmargin = 2pt,% + innerbottommargin = 2pt,% + roundcorner = 4pt,% + frametitle={\tikztitle{TITLE}},% + frametitleaboveskip=-0.6\baselineskip,% + frametitlebelowskip=0pt,% + frametitlealignment = \raggedleft,% + leftline = true,% + rightline = true,% + nobreak = true,% +}% + +\NewDocumentCommand{\fancyquote}{O{-2\topsep-2\parsep-2\partopsep-2\parskip}+mmm}{% + \vspace{#1}{% + \ \hfill\begin{minipage}{0.5\textwidth}\noindent\scriptsize\emph{''#2''}% + {\vspace{-\parsep}\begin{flushright}\footnotesize#3\\\sc #4\end{flushright}} \end{minipage}\\ + }} + + +\NewDocumentEnvironment{ppc.quote}{}{\begin{displayquote}\begin{itshape}\smaller}{\end{itshape}\end{displayquote}} +%\preto\displayquote{\begingroup\setlength{\leftmargini}{0mm}} +%\appto\enddisplayquote{\endgroup} +\RenewDocumentEnvironment{quote}{}{% + \list{}{\leftmargin20mm\rightmargin0mm}% + \item\relax% +}{\endlist} +% + +\NewDocumentCommand{\labelhack}{m}{\def\@currentlabelname{#1}} + +\NewDocumentCommand{\acrolist}{}{} +\NewDocumentCommand{\acrodef}{mmm}{% + %\expandafter\DeclareFixedFootnote\expandafter{\csname #1\endcsname}{#3}% + \expandafter\def\csname #1\endcsname{\footnote{#3}}% + \expandafter\def\csname acrolsti:#1\endcsname{\item[#2] #3}% + \appto\acrolist{\item[#2] #3}% + \expandafter\def\csname acroS:#1\endcsname{#2}% + \expandafter\def\csname acroL:#1\endcsname{#3}% +} +\NewDocumentCommand{\acroitem}{m}{\csname acrolsti:#1\endcsname} +\NewDocumentCommand{\printacrolist}{O{}m}{\begin{listofabbrv}[#1]{#2}\acrolist\end{listofabbrv}} +\NewDocumentCommand{\acro}{m}{\csname acroS:#1\endcsname} +\NewDocumentCommand{\acrol}{m}{\csname acroL:#1\endcsname} +\NewDocumentCommand{\acrols}{m}{\csname acroL:#1\endcsname, \csname acroS:#1\endcsname} +\NewDocumentCommand{\acrosl}{m}{\csname acroS:#1\endcsname, \csname acroL:#1\endcsname} +\NewDocumentCommand{\acrofoot}{m}{\csname acroS:#1\endcsname\csname #1\endcsname} + + +\RenewDocumentCommand{\subparagraph}{m}{} +\RenewDocumentCommand{\part}{m}{} +% +%Se alguém é capaz de me convencer e me evidenciar que o que penso +%ou faço não é correto, será com contentamento que me corrigirei; afinal, +%procuro a verdade, a qual jamais causou danos a alguém. Aquele, porém, +%que persevera no engano e na ignorância causa danos a si mesmo. + +%Observa com olho crítico seus princípios norteadores e os indivíduos +%sensatos, tanto aquilo de que se esquivam como aquilo que buscam. + +%Prestei algum benefício à comunidade? Se o fiz, então prestei um +%benefício a mim. Em todas as ocasiões tem isso sempre em mente e em lugar +%algum deixes de abrigar esse pensamento. + +%%Caso ajas conforme a reta razão com referência ao que se coloca +%diante de ti, com seriedade, firmeza, benevolência, não admitindo que nada +%secundário te desvie de tua ação, mas conservando pura a divindade que +%existe em ti, como se devesses restituí-la de imediato; caso te vincules a isso, +%sem nada esperar nem fugir de nada, contente com tua atividade presente +%conforme a natureza, a dizer e murmurar em todo som emitido de tua boca +%uma verdade heroica, então viverás feliz. E não existe ninguém com o poder +%de impedi-lo. + +%Se tu mesmo não consegues com teu esforço realizar algo, não penses +%ser isso impossível para o ser humano; se, entretanto, algo é possível ao ser +%humano e lhe é próprio, pensa que isso a ti também é acessível. + + +%É indispensável ter compreensão, atentando para cada palavra, daquilo +%que se diz, e sobre cada ação, deve-se ter compreensão do seu efeito. Nesse +%caso, é necessário ver diretamente a relação do ponto de vista de sua meta, +%ou melhor, a qual meta a ação se relaciona; quanto ao outro caso, é preciso +%observar o significado das palavras. + +%Como és uma parte que ajuda a tornar um sistema social completo, +%faz toda ação tua ser uma parte integrante completa da vida social. Assim, +%qualquer ação tua que não tenha referência imediata ou remotamente ao fim +%social produz em tua vida uma ruptura violenta, impedindo que seja íntegra, +%e é de caráter sedicioso \ No newline at end of file diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-base.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-base.def new file mode 100644 index 0000000000..5456330673 --- /dev/null +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-base.def @@ -0,0 +1,95 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status “maintained”. +%% +%% The Current Maintainer of this work is Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\makeatletter + +\def\tc@tmp@packname{ufrgscca-ptBR-base} +\def\tc@tmp@altpackname{ufrgsccaptbrbase} +\def\tc@tmp@packdesc{UFRGS/CCA Portuguese base defs} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} + +%%% +%% +%% those are loaded, on the fly, when selecting, or switching, to portuguese (\@namedef{captionsbrazilian} vis-à-viz \begin{otherlanguage}{}) +%% +%%%%% + + \def\abstractname{Resumo}% + \def\englishabstractname{Abstract}% + \def\contentsname{Sum{\'{a}}rio}% + \def\listfigurename{Lista de Ilustra\c{c}\~oes}% + \def\listtablename{Lista de Tabelas}% + \def\figurename{Figura}% + \def\tablename{Tabela}% + \def\byname{por}% + \def\keywordsname{Palavras-chave}% + + \def\listabbrvname{Lista de Abreviaturas}% + \def\listsymbolname{Lista de S{\'{\i}}mbolos}% + + \def\listingname{Listagem} + \def\listlistingname{Lista de Listagens} + + \def\defappendixname{Ap{\^{e}}ndice}% + \def\defappendixpagename{Ap{\^{e}}ndices}% + \def\defannexname{Anexo}% + \def\defannexpagename{Anexos}% + \def\sourcename{Fonte:} + \def\notename{Nota}%% + diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-coord.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-coord.def new file mode 100644 index 0000000000..6d27b761fa --- /dev/null +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-coord.def @@ -0,0 +1,129 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status “maintained”. +%% +%% The Current Maintainer of this work is Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\makeatletter + +\def\tc@tmp@packname{ufrgscca-ptBR-coord} +\def\tc@tmp@altpackname{ufrgsccaptbrcoord} +\def\tc@tmp@packdesc{UFRGS/CCA Portuguese coord defs} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} + + +\calendartitle{Calendário – \tcdef@coord@TCCperiod} + +\tcccalendarhead{Data/Período}{Semana Letiva}{Evento} +\tcccalendarevent{01}{Apresentação da disciplina. Informações gerais. Reunião presencial com início às 18:30h, no Salão de Eventos do DELET.\newline {\bf Presença obrigatória.}} +\tcccalendarevent{02}{Requerimento de matrícula. O(A) aluno(a) deve preencher o \emph{Formulário de Requerimento de Matrícula}, já com o resumo do trabalho, e encaminhá-lo ao setor de protocolos da UFRGS para abertura de processo. Posteriormente, o número do processo deve ser encaminhado por e-mail para \tccore@@ref{TCCcoord}{article} coordenador\tccore@@ref{TCCcoord}{narticle} da atividade. \newline{\bf Obs.~1}} +%\tcccalendarevent{03}{Entrega do \emph{Formulário de Inscrição}, juntamente com o resumo do trabalho, no \tcdef@cover@secdivisionacronym .} +\tcccalendarevent{09}{Encontro presencial: Como redigir um TCC, melhores práticas. Início às 18:30h, no Salão de Eventos do DELET.}% \newline {\bf Presença obrigatória.}} +\tcccalendarevent{09}{Entrega VIA MOODLE do \emph{Relatório Parcial}, juntamente com o \emph{Formulário de Aprovação do Relatório Parcial e Banca Examinadora} assinado pelo orientador. \newline{\bf Obs.~2}} +\tcccalendarevent{15}{Entrega de uma cópia impressa (ou eletrônica) do Trabalho de Conclusão a cada membro da banca, juntamente com os \emph{Formulários de Avaliação} e \emph{Formulários de correções} do trabalho. Entrega VIA MOODLE de uma cópia eletrônica do trabalho juntamente com o \emph{Formulário de Aprovação para Apresentação} e os recibos de recebimento assinados e datados pelos membros das bancas.} +\tcccalendarevent{16}{Encontro presencial: Como apresentar um TCC, melhores técnicas. Início às 18:30h, no Salão de Eventos do DELET.}% \newline {\bf Presença obrigatória.}} +\tcccalendarevent{17}{Apresentações dos Trabalhos de Conclusão de Curso. \newline{\bf Obs.~3}} +\tcccalendarevent{17}{Entrega VIA MOODLE dos \emph{Formulários de correções} dos membros da banca.} +\tcccalendarevent{18}{Entrega VIA MOODLE da versão final corrigida do trabalho e o \emph{Formulário de Aprovação das Correções}. Entrega do formulário de autorização para publicação (biblioteca) assinado na secretaria do DELAE. \newline{\bf Obs.~4}} +\tcccalendarevent{19}{Para os TCCs em RECUPERAÇÃO, entrega VIA MOODLE da versão final corrigida do trabalho e o \emph{Formulário de Aprovação das Correções}. Entrega do formulário de autorização para publicação (biblioteca) assinado na secretaria do DELAE. \newline{\bf Obs.~5}} + + +\tcccalendardesc{\begin{description} +\item[Obs. 1]: Caso o aluno(a) já tenha um processo aberto de TCC, reusar o mesmo apenas anexando o novo requerimento de matrícula, caso necessário. +\item[Obs. 2]: O relatório deve conter as declarações de concordância em participar da banca da parte dos professores convidados. +\item[Obs. 3]: As bancas serão marcadas após a entrega do relatório parcial, de acordo com a disponibilidade dos professores convidados. +\item[Obs. 4]: O \emph{Formulário de Aprovação das Correções} deve estar assinado pelo(a) orientador(a). Para relatórios em que o campo “Revisarei o trabalho depois de corrigido” tiver sido assinalado por algum membro da banca, a assinatura do(a) mesmo(a) também deverá constar no \emph{Formulário de Aprovação das Correções}. +\item[Obs. 5]: Trabalho em RECUPERAÇÃO é aquele cuja nota final quando da defesa é insuficiente para aprovação OU aquele em que o campo “Reescrever tudo” do formulário de correções foi marcado por algum membro da banca. Neste caso, o \emph{Formulário de Aprovação das Correções} deve estar assinado tanto pelo(a) orientador(a) como pelo(s) membro(s) da banca designado(s) para reavaliar o trabalho, incluindo obrigatoriamente aqueles que tiverem marcado o campo “Revisarei o trabalho depois de corrigido”.\\\hrule +\item[IMPORTANTE]: O(A) aluno(a) estará {\bf REPROVADO(A)} \emph{se falhar na entrega de qualquer um dos documentos aqui citados dentro dos prazos estipulados}. +\end{description}} + + +\studentlistformtitle{Lista de presença, \tcdef@coord@studentlistactivity, dia \tcdef@coord@studentlistdate} +\studentlistactivity{apresentação da atividade de TCC} +\studentlistdate{\number\day/\number\month} + +\tccreporttitle{Relatório parcial/final} +\tccreportopening{Para registro} +\tccreportdesc{Relatório parcial/final referente aos alunos matriculados na atividade de ensino de \tcdef@forms@formstitle\ semestre \tcdef@coord@TCCperiod .} + +\tccreportabsents{Desistentes com conceito (segundo semestre)} +\tccreportdismiss{Desistentes sem conceito (primeiro semestre)} +\tccreferralopening{Ao\\ \tcdef@cover@secretaryacronym\ da \tcdef@cover@universitydivision} + +\referralfailed{{REPROVAD\tccore@@ref{student}{Article}}} +\referralapproved{{APROVAD\tccore@@ref{student}{Article}}} + +\referralexamapprovedtext{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ apresentou o trabalho intitulado \emph{\tccore@@ref{student}{title}}\ no dia \tccore@@ref{student}{date}, n\~{a}o tendo sido considerad\tccore@@ref{student}{article} apt\tccore@@ref{student}{article} pela banca listada abaixo. Posto em exame, \tccore@@ref{student}{article} mesm\tccore@@ref{student}{article} foi \tcdef@coord@referralapproved\ com conceito final \tc@TCCgradeC .} + +\referralexamfailtext{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ apresentou o trabalho intitulado \emph{\tccore@@ref{student}{title}}\ no dia \tccore@@ref{student}{date}, n\~{a}o tendo sido considerad\tccore@@ref{student}{article} apt\tccore@@ref{student}{article} pela banca listada abaixo. Posto em exame, \tccore@@ref{student}{article} mesm\tccore@@ref{student}{article} foi \tcdef@coord@referralfailed\ com conceito final \tc@TCCgradeD .} + +\referralfatetext{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ apresentou o trabalho intitulado \emph{\tccore@@ref{student}{title}}\ no dia \tccore@@ref{student}{date}, tendo sido \tccoord@referralfate{\tccore@@ref{student}{Temp}} com conceito final \textbf{\tccoord@@fate{\Alph{tc@studentcount}}}, conforme quadro de notas abaixo. } + +\referralfailFF{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \emph{\tccore@@ref{student}{}}\ n\~{a}o concluiu o trabalho de conclus\~{a}o de Curso tendo sido \tcdef@coord@referralfailed\ com conceito final \textbf{FF}.} + +\boardlabel{Banca Examinadora} +\boardstitle{Apresentações TCC em \tcdef@cover@course\ \tcdef@coord@TCCperiod\ \tcdef@coord@boardstitleB\ } +\boardsworklabel{Título} +\TCCgradesNlabel{Nota} +\TCCgradesClabel{Conceito} +\TCCgrades{A}{B}{C}{D}{FF} +\TCCgradesN{9}{7.5}{6} + +\cocertificatetitle{CERTIFICADO} +\cocertificateopenning{\`{A} quem interessar possa,\\ certificamos que} +\cocertificatetext{atuou como co-orientador\tccore@@ref{coadvisor}{narticle} d\tccore@@ref{student}{article} alun\tccore@@ref{student}{article}\ \emph{\tccore@@ref{student}{}}\ no trabalho de conclus\~{a}o de curso intitulado \emph{\tccore@@ref{student}{title}}\ no semestre \tcdef@coord@TCCperiod.} + +\TCCcoordtitle{Coordenador\tccore@@ref{TCCcoord}{narticle} da atividade de ensino de\\ \tcdef@forms@formstitle\ } diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-core.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-core.def new file mode 100644 index 0000000000..0ef6373d13 --- /dev/null +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-core.def @@ -0,0 +1,101 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status “maintained”. +%% +%% The Current Maintainer of this work is Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\makeatletter + +\def\tc@tmp@packname{ufrgscca-ptBR-core} +\def\tc@tmp@altpackname{ufrgsccaptbrcore} +\def\tc@tmp@packdesc{UFRGS/CCA Portuguese core defs} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} + + +\location{Porto~Alegre}{RS} + +\university{Universidade Federal do Rio Grande do Sul} +\universityacronym{UFRGS} +\universitydivision{Escola de Engenharia} +\divisiongradcouncil{Conselho de Graduação da \tcdef@cover@universitydivision} + +\secretaryacronym{SACAD} +\secdivisionacronym{\tcdef@cover@secretaryacronym/EE} +\graduationtitle{Bacharel em Eng. de Controle e Automa\c{c}\~{a}o} +\course{Eng. de Controle e Automa\c{c}\~{a}o} +\courseacronym{CCA} +\coursecoord{Atual Coordenador(a) do Curso} +\coursecoordtitle{Coordenador\tccore@@ref{coursecoord}{narticle} de curso} +\advisorname{Orientador\tccore@@ref{advisor}{narticle}}% +\coadvisorname{Co-orientador\tccore@@ref{coadvisor}{narticle}}% +\examinername{Banca Examinadora}% + +\reportspecificinfo{% + Trabalho de Conclus\~{a}o de Curso (TCC-\tcdef@cover@courseacronym ) apresentado \`{a} + COMGRAD-\tcdef@cover@courseacronym\ da \tcdef@cover@university\ como parte dos requisitos para a + obten{\c{c}}{\~a}o do t\'{\i}tulo de \emph{\tcdef@cover@graduationtitle\ }. +}% + +\approvalspecificinfo{% + Este Trabalho de Conclus\~{a}o de Curso foi julgado adequado para a + obten\c{c}\~ao dos cr\'editos da Disciplina de TCC do curso \emph{\tcdef@cover@course\ } e aprovado em sua forma final pel\tccore@@ref{advisor}{article} + Orientador\tccore@@ref{advisor}{narticle} e pela Banca Examinadora. +}% + +\profname{Professor\tccore@@ref{advisor}{narticle}} +\coprofname{Professor\tccore@@ref{coadvisor}{narticle}} + + diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-forms.def b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-forms.def new file mode 100644 index 0000000000..e8967788f0 --- /dev/null +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-ptBR-forms.def @@ -0,0 +1,215 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status “maintained”. +%% +%% The Current Maintainer of this work is Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\makeatletter + +\def\tc@tmp@packname{ufrgscca-ptBR-forms} +\def\tc@tmp@altpackname{ufrgsccaptbrforms} +\def\tc@tmp@packdesc{UFRGS/CCA Portuguese forms defs} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} + + +%%%%%% +%%%%%% +%%%%%% forms +%%%%%% +%%%%%% +%%%%%% + +\formlocal{\tc@city,\hspace{4mm} de \hspace{1.2cm} de 20\hspace{4mm}.} + +\formssignaturelabel{Assinatura} +\examinersignature{Assinatura\ \ d\tccore@@ref{examiner}{article}\ \ Avaliador\tccore@@ref{examiner}{narticle}} +\boardsignature{Assinatura\ \ do\ \ Membro\ \ da\ \ Banca} +\advisorsignature{Assinatura\ \ d\tccore@@ref{advisor}{article}\ \ Orientador\tccore@@ref{advisor}{narticle}} +\coadvisorsignature{Assinatura\ \ d\tccore@@ref{coadvisor}{article}\ \ Co-orientador\tccore@@ref{coadvisor}{narticle}} +\studentsignature{Assinatura\ \ d\tccore@@ref{student}{article}\ \ Alun\tccore@@ref{student}{article}} +\studentsignaturegen{Assinatura\ \ do(a)\ \ Aluno(a)} +\formsstudentlabel{Alun\tccore@@ref{student}{article}} +\formsstudentlabelgen{Aluno(a)} +\formproflabel{Professor(a)} +\profname{Professor\tccore@@ref{advisor}{narticle}} +\coprofname{Professor\tccore@@ref{coadvisor}{narticle}} +\formsboardlabel{Membro da Banca} +\formsadvisorlabel{Orientador\tccore@@ref{advisor}{narticle}} +\formsadvisorlabelgen{Orientador(a)} +\formscoadvisorlabel{Co-orientador\tccore@@ref{advisor}{narticle}} +\formsexaminerlabel{Avaliador\tccore@@ref{examiner}{narticle}} +\formsaltexaminerlabel{Suplente} +\formstimelabel{Horário} + + +%\formstopicAlabel{Conteúdo} +%\formstopicBlabel{Trabalho Escrito} +%\formstopicClabel{Apresentação} +\formsworktitlelabel{Título do Trabalho} +\formstemptitlelabel{Título Provisório} +\formsstudentIDlabel{Cartão} +\formsemaillabel{e-mail} +\formsphonelabel{ramal} +\agreelabel{De Acordo} + +\continuelabel{Continua...} + +\formsdatelabel{Data} +\formstitle{Trabalho de Conclusão de Curso}% em \tcdef@cover@course} +\formsfootnote{Entregar a cada membro da banca juntamente com a cópia do trabalho.} + + +\renewreqformtitle{Formulário de Renovação da Inscrição na Atividade de Ensino Trabalho de Conclusão em \tcdef@cover@course} + +\renewreqformnotes{O resumo deve ser curto, i.e., não deve exceder este espaço. O texto deve ser escrito em parágrafo único, e por se tratar de proposta, poderá utilizar tempo futuro e não necessita ter motivação ou justificativa.\\ +Deve conter: +\begin{enumerate*}[alpha)] + \item O QUE será feito - descrição e objetivos. + \item COMO será feito - metodologia. + \item Resultados esperados. +\end{enumerate*} +} + +\reqformtitle{Formul\'{a}rio de Requerimento de Matr\'{i}cula} +\reqformopening{Ilm\tccore@@ref{coursecoord}{article}. Sr\tccore@@ref{coursecoord}{narticle}.\par + Coordenador\tccore@@ref{coursecoord}{narticle} da Comissão de Graduação do Curso em \tcdef@cover@course {da \tcdef@cover@universityacronym\ }} +%\reqformopening{algo} + +\reqformdesc{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \tc@studentA , REGULARMENTE MATRICULAD\tccore@@ref{student}{Article} neste período letivo no curso \emph{\tcdef@cover@course\ }, desta universidade, portador\tccore@@ref{student}{narticle} do cartão de identificação n$^o$ \tc@studentAID\ vem por meio desta solicitar matrícula na atividade de ensino de \tcdef@forms@formstitle} + +\coadvisorformtitle{Requerimento de Autorização de Co-Orientação} +\coadvisorformdesc{\tccore@@ref{student}{Article} alun\tccore@@ref{student}{article} \tc@studentA , REGULARMENTE MATRICULAD\tccore@@ref{student}{Article} na atividade de TCC neste período letivo, vem por meio desta solicitar autorização para registro de co-orientador de TCC, conforme justificativa abaixo.} + +\formsbrieflabel{Resumo} + +\formsstudentemaillabel{Email d\tccore@@ref{student}{article} Alun\tccore@@ref{student}{article}} + +\formsadvisoremaillabel{Email d\tccore@@ref{advisor}{article} Orientador\tccore@@ref{advisor}{narticle}} + +\formsreasonlabel{Justificativa} + + +\examformtitle{Formul\'{a}rio de Avalia\c{c}\~{a}o} + +\examformdesc{A nota (variando de zero a dez) atribuída por cada membro da banca examinadora será dada considerando o desempenho d\tccore@@ref{student}{article} alun\tccore@@ref{student}{article} nos 3 pontos apresentados na tabela abaixo.} + +\examformnoteslabel{Observações} + +\examformnotes{\ \\Posteriormente, \tccore@@ref{TCCcoord}{article} professor\tccore@@ref{TCCcoord}{narticle} coordenador\tccore@@ref{TCCcoord}{narticle} calculará a nota final atribuída por cada membro da banca examinadora, de acordo com a seguinte ponderação:\\[2mm] {\bf Nota Final Banca = \tc@TCCpointAweight\ x \tc@TCCpointAlabel\ + \tc@TCCpointBweight\ x \tc@TCCpointBlabel\ + \tc@TCCpointCweight\ x \tc@TCCpointClabel\ } \\[2mm] A média final da atividade será dada pela média das notas finais (calculadas com a expressão acima) atribuidas por cada um dos membros da banca examinadora.} + +\examboardformtitle{Formulário de Aprovação do Relatório Parcial e Banca Examinadora} + +\examboardformdesc{Aprovo o Relatório Parcial e nominata da Banca Examinadora acima relacionada.} + +\formsboardtitle{Banca Examinadora} + +\advisorapprovalformtitle{Formulário de Aprovação para Apresentação} + +\advisorapprovalformdesc{{\bf Parecer d\tccore@@ref{advisor}{article} Orientador\tccore@@ref{advisor}{narticle}}\footnote{Preenchimento Obrigatório}} + +\advisorapprovalformdescB{Aprovo a versão final do trabalho submetido pel\tccore@@ref{student}{article} alun\tccore@@ref{student}{article} e considero \tccore@@ref{student}{article} mesm\tccore@@ref{student}{article} apt\tccore@@ref{student}{article} para apresentação.} + +\rectifyapprovalformtitle{Formulário de Aprovação das Correções} + +\rectifyapprovalformdesc{\begin{description} +\item[Observação 1:] A nota final será a já atribuída pela Banca Examinadora no momento da Defesa. Caso a versão final corrigida do trabalho mais este formulário não sejam entregues até a data estipulada, o conceito do aluno passará a ser {\bf D}. +\item[Observação 2:] A assinatura d\tccore@@ref{advisor}{article} orientador\tccore@@ref{advisor}{narticle} é obrigatória, entretanto a assinatura dos membros da banca só é necessária caso o(a) mesmo(a) tenha marcado a opção "$\Box$ Revisarei o trabalho depois de corrigido" no \emph{Formulário de Correções}. +\end{description}} + +\receiptformtitle{Recibo de entrega de cópia da versão final do Trabalho de Conclusão} + +\receiptformfootnote{Entregar a cada membro da banca juntamente com a cópia do trabalho final e após encaminhar ao \tcdef@cover@secretaryacronym .} + +\receiptformdesc{Declaro que encontra-se em minha posse cópia da versão final do Trabalho de Conclusão de Curso em \tcdef@cover@course\ d\tccore@@ref{student}{article} alun\tccore@@ref{student}{article} } + + +\reviewformtitle{Formulário de Correções} +\reviewformdesc{Correções: \parbox[t]{.8\textwidth}{ + \begin{description}[tcc,noitemsep] + \item[$\Box$] Nenhuma + \item[$\Box$] Ortográfica + \item[$\Box$] Regras de Escrita + \item[$\Box$] Equações + \item[$\Box$] Resumo + \item[$\Box$] Abstract + \item[$\Box$] Índice + \item[$\Box$] Introdução + \item[$\Box$] Conclusões + \item[$\Box$] Corpo do Trabalho + \item[$\Box$] Resultados + \item[$\Box$] Adicionar mais exemplos + \item[$\Box$] Figuras + \item[$\Box$] Tabelas + \item[$\Box$] {\bf Reescrever tudo}\footnotemark[2] + \item[$\Box$] Outras: \\ + \begin{tabular}{p{0.7\textwidth}} + ~\\\hline + ~\\\hline + ~\\\hline + ~\\\hline + \end{tabular}\\[-1mm] + \item[$\Box$] {\bf Revisarei o trabalho depois de corrigido}%\footnotemark[2] + \end{description}} +} + +\reviewformfootnoteB{Neste caso \tccore@@ref{student}{article} alun\tccore@@ref{student}{article} estará em EXAME e receberá conceito final C ou D, conforme revisão final do texto.} + +\reviewformfootnote{\tcdef@forms@formsfootnote\ Após a apresentação, retornar este à coordenação do TCC.} + +\formsrectifyOKdesc{Correções satisfatórias: \hspace*{1cm}$\Box$\ sim\hspace*{2cm}$\Box$\ não} + +\TCCpointsweight{0.35}{0.35}{0.3} +\TCCpointslabel{Conteúdo}{Trab. Escrito}{Apresentação} diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls b/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls new file mode 100644 index 0000000000..5686f2fcce --- /dev/null +++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca.cls @@ -0,0 +1,211 @@ +%%%============================================================================== +%% Copyright 2022 by Alceu Frigeri +%% +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3c +%% 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 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status “maintained”. +%% +%% The Current Maintainer of this work is Alceu Frigeri +%% +%% This is version 1.0 (2022/09/01) +%% +%% +%% This work consists of the files +%% +%% ufrgscca.cls main class (bundle) +%% +%% ufrgscca-abnt.sty abnt page geometry, and chapter/sectioning/etc. settings +%% ufrgscca-core.sty core macros (students related data, advisor, work title, etc.) +%% ufrgscca-cover.sty cover pages macros +%% ufrgscca-lists.sty New float environments (for code listing, for instance) +%% ufrgscca-gen.sty a switch/case macro construct and +%% 'macro factory', for instance to create commands used in the .def files. +%% ufrgscca-forms.sty forms creation macros (course specific) +%% ufrgscca-coord.sty student work coordenation related macros (course specific) +%% ufrgscca-ppc.sty ppc specific macros (ppc stands for Course Pedagogic Project) +%% ufrgscca-curr.sty curricula specific macros (as a set of semesters and class dependency lists) +%% ufrgscca-curr-tab.sty curricula tabular macros (to display the curricula as tables) +%% ufrgscca-curr-graph.sty curricula graph macros (to display the curricula as a dependency graph) +%% +%% ufrgscca-en-base.def locale, English, base def's (for babel) +%% ufrgscca-en-core.def locale, English, for -core.sty +%% ufrgscca-en-forms.def locale, English, for -forms.sty +%% ufrgscca-en-coord.def locale, English, for -coord.sty +%% +%% ufrgscca-ptBR-base.def locale, Portuguese, base def`s (for babel) +%% ufrgscca-ptBR-core.def locale, Portuguese, for -core.sty +%% ufrgscca-ptBR-forms.def locale, Portuguese, for -forms.sty +%% ufrgscca-ptBR-coord.def locale, Portuguese, for -coord.sty +%% +%% README.md quick introduction +%% +%% ufrgscca.tex LaTeX documentation +%% ufrgscca.pdf documentation in PDF form +%% +%% UFRGS stands for "Federal University of Rio Grande do Sul" in south Brazil +%% EE stands for "Engineering School" +%% CCA stands for "Control and Automation Engineering Course" (Portuguese acronym) +%% +%%%============================================================================== +\NeedsTeXFormat{LaTeX2e}[2022/06/01] +\def\tc@tmp@packname{ufrgscca} +\def\tc@tmp@altpackname{ufrgscca} +\def\tc@tmp@packdesc{UFRGS/CCA class} +\def\tc@tmp@packdate{2022/09/01} +\def\tc@tmp@packversion{1.0} +\let\@exp\expandafter +\@exp\edef\csname\tc@tmp@altpackname version\endcsname{\tc@tmp@packversion} +\@exp\@exp\@exp\ProvidesPackage\@exp\@exp\@exp{\@exp\tc@tmp@packname\@exp}\@exp[\tc@tmp@packdate\space v\tc@tmp@packversion\space\tc@tmp@packdesc] + + +\RequirePackage{etex} +\RequirePackage{etoolbox} +\RequirePackage{lmodern}% + +\RequirePackage[T1]{fontenc} +\RequirePackage[utf8]{inputenc} + +%============================================================================== +% Declaração de opções +%============================================================================== +\DeclareKeys[tc]{ + tocdepth.usage = load, + tocdepth.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}}, + secdepth.usage = load, + secdepth.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}}, + + english.usage = load, + english.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}\OptionNotUsed}, + relnum.usage = load, + relnum.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}\PassOptionsToPackage{\CurrentOption}{ufrgscca-lists}\OptionNotUsed}, + oneside.usage = load, + oneside.code = {\AtEndOfClass{\@twosidefalse}\OptionNotUsed}, + strict-abnt.usage = load, + strict-abnt.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}}, + repeatfields.usage = load, + repeatfields.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}}, + chapternopagenum.usage = load, + chapternopagenum.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}}, + + nomicrotype.usage = load, + nomicrotype.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}}, + + showframes.usage = load, + showframes.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}}, + showlabes.usage = load, + showlabes.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-abnt}}, + + xlists.usage = load, + xlists.if = tc@xlists, + xpacks.usage = load, + xpacks.if = tc@xpacks, + + nolocal.usage = load, + nolocal.if = tcif@nolocal, + + nofontwarning.usage = load, + nofontwarning.if = @nofontwarning, + + report.usage = load, + report.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-cover}}, + internship.usage = load, + internship.code = {\PassOptionsToPackage{\CurrentOption}{ufrgscca-cover}}, + + texlive.usage = load, + texlive.if = tcif@texlive, + overleaf.usage = load, + overleaf.if = tcif@overleaf, + miktex.usage = load, + miktex.if = tcif@miktex, + + dctools.usage = load, + dctools.if = tcif@dctools, +} + +\DeclareUnknownKeyHandler[tc]{\PassOptionsToClass{\CurrentOption}{report}} +\ProcessKeyOptions[tc]\relax + +\iftcif@dctools + \LoadClass[12pt]{article} +\else + \LoadClass[12pt,twoside,openright]{report} +\fi + +%%%%%%%%%%%%%%%%%%%%% +%%% Packages Loading +%%%%%%%%%%%%%%%%%%%%% +\RequirePackage{silence}% +\if@nofontwarning% + \WarningFilter{latexfont}{Font shape}% + \WarningFilter{latexfont}{Size substitutions with differences}% + \WarningFilter{latexfont}{Some font shapes were not available}% +\fi% + + +\RequirePackage{ufrgscca-abnt} + +\iftc@xlists\RequirePackage{ufrgscca-lists}\fi + +\RequirePackage{ufrgscca-gen} +\RequirePackage{ufrgscca-cover} +\RequirePackage{ufrgscca-core} + + +\iftc@xpacks + \RequirePackage{relsize} + \RequirePackage{keyval,graphicx} + \RequirePackage{mathtools} + \RequirePackage{empheq} + \RequirePackage{mathrsfs, amsfonts,amssymb}% + \RequirePackage{amsthm}% + \RequirePackage{extarrows}% + \RequirePackage{mathfixs}% + \RequirePackage{bigdelim}% + \RequirePackage[american,siunitx,cuteinductors,smartlabels,arrowmos,EFvoltages,betterproportions]{circuitikz}% + \usetikzlibrary{fit}% + \usetikzlibrary{math}% + \usetikzlibrary{calc}% + \usetikzlibrary{shapes.geometric} %needed for the triangle% + \usetikzlibrary{shapes.misc} %needed for the triangle% + \usetikzlibrary{shapes.multipart} + \usetikzlibrary{graphs}% + \usetikzlibrary{3d}% + \usetikzlibrary{positioning}% + \usetikzlibrary{shadows}% + \usetikzlibrary{babel} + \RequirePackage{steinmetz}% +\fi + + +\WarningFilter{hyperref}{Option `pdftex' has already} + +\RequirePackage[hidelinks,hypertexnames=false]{hyperref}% +%% +%% A few (hyperref related) commands +%% +\NewDocumentCommand{\autonameref}{O{, }mO{\space}}{\autoref{#2}#1\nameref{#2}#3} +\gdef\annexref#1{\hyperref[#1]{\defannexname\ \ref*{#1}}} +\NewDocumentCommand{\autoannexref}{O{, }mO{\space}}{\annexref{#2}#1\nameref{#2}#3} + + +\iftcif@english% + \input{ufrgscca-en-core.def}% +\else% + \input{ufrgscca-ptBR-core.def}% +\fi% + + +\iftcif@nolocal% +\else% + \IfFileExists{local.tex}{\input{local.tex}}{}% + \tccore@emptyfields% +\fi + + -- cgit v1.2.3